Repository: ashmind/mirrorsharp Branch: main Commit: 5794caa99da9 Files: 521 Total size: 2.4 MB Directory structure: gitextract_r2cs43rh/ ├── #scripts/ │ ├── build.ps1 │ ├── demo-watch.ps1 │ ├── pack.ps1 │ ├── restore.ps1 │ ├── setup.ps1 │ └── test.ps1 ├── .config/ │ └── dotnet-tools.json ├── .editorconfig ├── .gitattributes ├── .github/ │ └── workflows/ │ ├── dotnet.yml │ └── web-assets.yml ├── .gitignore ├── AspNetCore/ │ ├── AspNetCore.csproj │ ├── CHANGELOG.md │ ├── Internal/ │ │ └── Middleware.cs │ ├── MirrorSharpStartupExtensions.cs │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ └── packages.lock.json ├── AspNetCore.Demo/ │ ├── .browserslistrc │ ├── .vscode/ │ │ └── settings.json │ ├── AspNetCore.Demo.csproj │ ├── Extensions/ │ │ └── SetOptionsFromClientExtension.cs │ ├── Program.cs │ ├── Properties/ │ │ └── launchSettings.json │ ├── Startup.cs │ ├── app.css │ ├── app.js │ ├── index.html │ ├── package.json │ └── packages.lock.json ├── AspNetCore.Demo.Library/ │ ├── AspNetCore.Demo.Library.csproj │ ├── IScriptContext.cs │ ├── IScriptGlobals.cs │ └── packages.lock.json ├── AspNetCore.Demo.Net6/ │ ├── .browserslistrc │ ├── AspNetCore.Demo.Net6.csproj │ ├── Extensions/ │ │ └── SetOptionsFromClientExtension.cs │ ├── Program.cs │ ├── Properties/ │ │ └── launchSettings.json │ ├── app.css │ ├── app.js │ ├── appsettings.Development.json │ ├── appsettings.json │ ├── index.html │ ├── package.json │ └── packages.lock.json ├── Benchmarks/ │ ├── Benchmarks.csproj │ ├── Of.Json/ │ │ ├── ComplexObjectArrayBenchmarks.cs │ │ ├── JsonBenchmarksBase.cs │ │ ├── WriteValueInt32Benchmarks.cs │ │ └── WriteValueStringBenchmarks.cs │ ├── Program.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── SignatureHelpBenchmarks.cs │ └── packages.lock.json ├── Common/ │ ├── Advanced/ │ │ ├── EarlyAccess/ │ │ │ ├── IConnectionSendViewer.cs │ │ │ ├── IRoslynCompilationGuard.cs │ │ │ ├── IRoslynSourceTextGuard.cs │ │ │ ├── RoslynCompilationGuardException.cs │ │ │ └── RoslynSourceTextGuardException.cs │ │ ├── FastJsonWriterExtensions.cs │ │ ├── IExceptionLogger.cs │ │ ├── IFastJsonWriter.cs │ │ ├── IRoslynSession.cs │ │ ├── ISetOptionFromClientExtension.cs │ │ ├── ISlowUpdateExtension.cs │ │ ├── IWorkSession.cs │ │ └── MirrorSharpRoslynOptions.cs │ ├── CHANGELOG.md │ ├── Common.csproj │ ├── Internal/ │ │ ├── Abstraction/ │ │ │ ├── CurrentCompletion.cs │ │ │ ├── ILanguage.cs │ │ │ └── ILanguageSession.cs │ │ ├── Argument.cs │ │ ├── AsyncData.cs │ │ ├── AsyncDataConvert.cs │ │ ├── CharArrayString.cs │ │ ├── CommandIds.cs │ │ ├── Connection.cs │ │ ├── CurrentSignatureHelp.cs │ │ ├── CustomWorkspace.cs │ │ ├── EncodingExtensions.cs │ │ ├── FastConvert.cs │ │ ├── FastJsonWriterExtensions.cs │ │ ├── FastUtf8JsonWriter.cs │ │ ├── Handlers/ │ │ │ ├── ApplyDiagnosticActionHandler.cs │ │ │ ├── CompletionStateHandler.cs │ │ │ ├── ICommandHandler.cs │ │ │ ├── MoveCursorHandler.cs │ │ │ ├── ReplaceTextHandler.cs │ │ │ ├── RequestInfoTipHandler.cs │ │ │ ├── RequestSelfDebugDataHandler.cs │ │ │ ├── SetOptionsHandler.cs │ │ │ ├── Shared/ │ │ │ │ ├── CompletionSupport.cs │ │ │ │ ├── ICompletionSupport.cs │ │ │ │ ├── ISignatureHelpSupport.cs │ │ │ │ ├── ITypedCharEffects.cs │ │ │ │ ├── SignatureHelpSupport.cs │ │ │ │ └── TypedCharEffects.cs │ │ │ ├── SignatureHelpStateHandler.cs │ │ │ ├── SlowUpdateHandler.cs │ │ │ └── TypeCharHandler.cs │ │ ├── IConnectionOptions.cs │ │ ├── ILanguageManagerOptions.cs │ │ ├── ILanguageSessionExtensions.cs │ │ ├── IMiddlewareOptions.cs │ │ ├── IWorkSessionOptions.cs │ │ ├── ImmutableExtensionServices.cs │ │ ├── LanguageManager.cs │ │ ├── MetadataReferenceFactory.cs │ │ ├── MiddlewareBase.cs │ │ ├── PooledGrowableArray.cs │ │ ├── PreloadedAnalyzerAssemblyLoader.cs │ │ ├── Results/ │ │ │ ├── ICommandResultSender.cs │ │ │ └── NullCommandResultSender.cs │ │ ├── Roslyn/ │ │ │ ├── CSharpLanguage.cs │ │ │ ├── IRoslynLanguageOptions.cs │ │ │ ├── Internals/ │ │ │ │ ├── CodeActionPriority.cs │ │ │ │ ├── ICodeActionInternals.cs │ │ │ │ ├── ISignatureHelpProviderWrapper.cs │ │ │ │ ├── ISignatureHelpProviderWrapperResolver.cs │ │ │ │ ├── IWorkspaceAnalyzerOptionsInternals.cs │ │ │ │ ├── SignatureHelpItemData.cs │ │ │ │ ├── SignatureHelpItemsData.cs │ │ │ │ ├── SignatureHelpOptionsData.cs │ │ │ │ ├── SignatureHelpParameterData.cs │ │ │ │ ├── SignatureHelpTriggerInfoData.cs │ │ │ │ └── SignatureHelpTriggerReason.cs │ │ │ ├── RoslynAssemblies.cs │ │ │ ├── RoslynInternals.cs │ │ │ ├── RoslynLanguageBase.cs │ │ │ ├── RoslynLanguageDependencies.cs │ │ │ ├── RoslynScriptHelper.cs │ │ │ └── RoslynSession.cs │ │ ├── SelfDebug.cs │ │ └── WorkSession.cs │ ├── MirrorSharpCSharpOptions.cs │ ├── MirrorSharpOptions.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ └── packages.lock.json ├── Directory.Build.props ├── FSharp/ │ ├── Advanced/ │ │ ├── FSharpFileSystem.cs │ │ ├── FSharpParseAndCheckResults.cs │ │ ├── FSharpProjectOptionsExtensions.cs │ │ ├── FSharpTargetNames.cs │ │ ├── FSharpVirtualFile.cs │ │ ├── IFSharpSession.cs │ │ └── WorkSessionExtensions.cs │ ├── CHANGELOG.md │ ├── FSharp.csproj │ ├── Internal/ │ │ ├── CustomAssemblyLoader.cs │ │ ├── CustomFileSystem.cs │ │ ├── FSharpLanguage.cs │ │ ├── FSharpSession.cs │ │ ├── LineColumnMap.cs │ │ ├── ReusableMemoryStreamWrapper.cs │ │ └── SymbolTags.cs │ ├── MirrorSharpFSharpOptions.cs │ ├── MirrorSharpOptionsExtensions.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ └── packages.lock.json ├── IL/ │ ├── Advanced/ │ │ ├── IILSession.cs │ │ └── WorkSessionExtensions.cs │ ├── CHANGELOG.md │ ├── IL.csproj │ ├── Internal/ │ │ ├── IILSessionInternal.cs │ │ ├── ILLanguage.cs │ │ └── ILSession.cs │ ├── MirrorSharpILOptions.cs │ ├── MirrorSharpOptionsExtensions.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ └── packages.lock.json ├── Internal.Roslyn33/ │ ├── CodeActionInternals.cs │ ├── Internal.Roslyn33.csproj │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ ├── SignatureHelpProviderWrapper.cs │ ├── SignatureHelpProviderWrapperResolver.cs │ ├── WorkspaceAnalyzerOptionsInternals.cs │ └── packages.lock.json ├── Internal.Roslyn36/ │ ├── CodeActionInternals.cs │ ├── Internal.Roslyn36.csproj │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ ├── SignatureHelpProviderWrapper.cs │ ├── SignatureHelpProviderWrapperResolver.cs │ ├── WorkspaceAnalyzerOptionsInternals.cs │ └── packages.lock.json ├── Internal.Roslyn41/ │ ├── CodeActionInternals.cs │ ├── Internal.Roslyn41.csproj │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ ├── SignatureHelpProviderWrapper.cs │ ├── SignatureHelpProviderWrapperResolver.cs │ ├── WorkspaceAnalyzerOptionsInternals.cs │ └── packages.lock.json ├── Internal.Roslyn410/ │ ├── CodeActionInternals.cs │ ├── Internal.Roslyn410.csproj │ ├── MirrorSharpDiagnosticAnalyzerService.cs │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ ├── SignatureHelpProviderWrapper.cs │ ├── SignatureHelpProviderWrapperResolver.cs │ ├── WorkspaceAnalyzerOptionsInternals.cs │ └── packages.lock.json ├── Internal.Roslyn411/ │ ├── CodeActionInternals.cs │ ├── Internal.Roslyn411.csproj │ ├── MirrorSharpDiagnosticAnalyzerService.cs │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ ├── SignatureHelpProviderWrapper.cs │ ├── SignatureHelpProviderWrapperResolver.cs │ ├── WorkspaceAnalyzerOptionsInternals.cs │ └── packages.lock.json ├── Internal.Roslyn412/ │ ├── CodeActionInternals.cs │ ├── Internal.Roslyn412.csproj │ ├── MirrorSharpDiagnosticAnalyzerService.cs │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ ├── SignatureHelpProviderWrapper.cs │ ├── SignatureHelpProviderWrapperResolver.cs │ ├── WorkspaceAnalyzerOptionsInternals.cs │ └── packages.lock.json ├── Internal.Roslyn42/ │ ├── CodeActionInternals.cs │ ├── Internal.Roslyn42.csproj │ ├── MirrorSharpDiagnosticAnalyzerService.cs │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ ├── SignatureHelpProviderWrapper.cs │ ├── SignatureHelpProviderWrapperResolver.cs │ ├── WorkspaceAnalyzerOptionsInternals.cs │ └── packages.lock.json ├── Internal.Roslyn43/ │ ├── CodeActionInternals.cs │ ├── Internal.Roslyn43.csproj │ ├── MirrorSharpDiagnosticAnalyzerService.cs │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ ├── SignatureHelpProviderWrapper.cs │ ├── SignatureHelpProviderWrapperResolver.cs │ ├── WorkspaceAnalyzerOptionsInternals.cs │ └── packages.lock.json ├── Internal.Roslyn44/ │ ├── CodeActionInternals.cs │ ├── Internal.Roslyn44.csproj │ ├── MirrorSharpDiagnosticAnalyzerService.cs │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ ├── SignatureHelpProviderWrapper.cs │ ├── SignatureHelpProviderWrapperResolver.cs │ ├── WorkspaceAnalyzerOptionsInternals.cs │ └── packages.lock.json ├── Internal.Roslyn45/ │ ├── CodeActionInternals.cs │ ├── Internal.Roslyn45.csproj │ ├── MirrorSharpDiagnosticAnalyzerService.cs │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ ├── SignatureHelpProviderWrapper.cs │ ├── SignatureHelpProviderWrapperResolver.cs │ ├── WorkspaceAnalyzerOptionsInternals.cs │ └── packages.lock.json ├── Internal.Roslyn46/ │ ├── CodeActionInternals.cs │ ├── Internal.Roslyn46.csproj │ ├── MirrorSharpDiagnosticAnalyzerService.cs │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ ├── SignatureHelpProviderWrapper.cs │ ├── SignatureHelpProviderWrapperResolver.cs │ ├── WorkspaceAnalyzerOptionsInternals.cs │ └── packages.lock.json ├── Internal.Roslyn47/ │ ├── CodeActionInternals.cs │ ├── Internal.Roslyn47.csproj │ ├── MirrorSharpDiagnosticAnalyzerService.cs │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ ├── SignatureHelpProviderWrapper.cs │ ├── SignatureHelpProviderWrapperResolver.cs │ ├── WorkspaceAnalyzerOptionsInternals.cs │ └── packages.lock.json ├── Internal.Roslyn48/ │ ├── CodeActionInternals.cs │ ├── Internal.Roslyn48.csproj │ ├── MirrorSharpDiagnosticAnalyzerService.cs │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ ├── SignatureHelpProviderWrapper.cs │ ├── SignatureHelpProviderWrapperResolver.cs │ ├── WorkspaceAnalyzerOptionsInternals.cs │ └── packages.lock.json ├── Internal.Roslyn49/ │ ├── CodeActionInternals.cs │ ├── Internal.Roslyn49.csproj │ ├── MirrorSharpDiagnosticAnalyzerService.cs │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ ├── SignatureHelpProviderWrapper.cs │ ├── SignatureHelpProviderWrapperResolver.cs │ ├── WorkspaceAnalyzerOptionsInternals.cs │ └── packages.lock.json ├── Internal.RoslynInternals/ │ ├── Internal.RoslynInternals.csproj │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ └── packages.lock.json ├── LICENSE.md ├── MirrorSharp.sln ├── MirrorSharp.sln.DotSettings ├── NuGet.Common.props ├── Owin/ │ ├── AppBuilderExtensions.cs │ ├── CHANGELOG.md │ ├── Internal/ │ │ └── Middleware.cs │ ├── MirrorSharpServices.cs │ ├── Owin.csproj │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ └── packages.lock.json ├── Owin.Demo/ │ ├── .browserslistrc │ ├── Extensions/ │ │ └── SetOptionsFromClientExtension.cs │ ├── Owin.Demo.csproj │ ├── Startup.cs │ ├── Web.config │ ├── app.css │ ├── app.js │ ├── index.html │ ├── package.json │ └── packages.lock.json ├── Php/ │ ├── Advanced/ │ │ ├── IPhpSession.cs │ │ ├── RoslynTypesExtensions.cs │ │ └── WorkSessionExtensions.cs │ ├── CHANGELOG.md │ ├── Internal/ │ │ ├── PhpLanguage.cs │ │ └── PhpSession.cs │ ├── MirrorSharpOptionsExtensions.cs │ ├── MirrorSharpPhpOptions.cs │ ├── Php.csproj │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ └── packages.lock.json ├── Publish-ToNpm.ps1 ├── README.md ├── Testing/ │ ├── CHANGELOG.md │ ├── Internal/ │ │ ├── HandlerTestArgument.cs │ │ ├── MaybeNullAttribute.cs │ │ ├── Results/ │ │ │ ├── ChangesResult.cs │ │ │ ├── CompletionsItem.cs │ │ │ ├── CompletionsItemInfoPart.cs │ │ │ ├── CompletionsItemInfoResult.cs │ │ │ ├── CompletionsResult.cs │ │ │ ├── ResultChange.cs │ │ │ ├── SignaturesItem.cs │ │ │ ├── SignaturesItemInfo.cs │ │ │ ├── SignaturesItemInfoParameter.cs │ │ │ ├── SignaturesItemInfoPart.cs │ │ │ ├── SignaturesItemPart.cs │ │ │ └── SignaturesResult.cs │ │ ├── StubCommandResultSender.cs │ │ └── TextWithCursor.cs │ ├── MirrorSharpServices.cs │ ├── MirrorSharpTestDriver.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ ├── Results/ │ │ ├── InfoTipResult.cs │ │ ├── InfoTipSection.cs │ │ ├── InfoTipSectionPart.cs │ │ ├── OptionsEchoResult.cs │ │ ├── ResultSpan.cs │ │ ├── SlowUpdateDiagnostic.cs │ │ ├── SlowUpdateDiagnosticAction.cs │ │ └── SlowUpdateResult.cs │ ├── Testing.csproj │ └── packages.lock.json ├── Tests/ │ ├── ApplyDiagnosticActionHandlerTests.cs │ ├── CompletionStateHandlerTests.cs │ ├── ConnectionTests.cs │ ├── FSharp/ │ │ ├── CustomFileSystemTests.cs │ │ ├── FSharpProjectOptionsExtensionsTests.cs │ │ ├── FSharpSessionTests.cs │ │ └── FSharpTests.cs │ ├── FastUtf8JsonWriterTests.cs │ ├── Features/ │ │ └── RoslynScriptModeTests.cs │ ├── Internal/ │ │ ├── ObjectMembers.cs │ │ └── TrackingArrayPool.cs │ ├── MirrorSharpOptionsWithXmlDocumentation.cs │ ├── MoveCursorHandlerTests.cs │ ├── PhpTests.cs │ ├── Properties/ │ │ └── AssemblyInfo.cs │ ├── ReplaceTextHandlerTests.cs │ ├── RequestInfoTipHandlerTests.cs │ ├── SetOptionsHandlerTests.cs │ ├── SignatureHelpStateHandlerTests.cs │ ├── SlowUpdateHandlerTests.cs │ ├── Tests.csproj │ ├── TypeCharHandlerTests.cs │ └── packages.lock.json ├── Tests.Roslyn410/ │ ├── Tests.Roslyn410.csproj │ └── packages.lock.json ├── Tests.Roslyn411/ │ ├── Tests.Roslyn411.csproj │ └── packages.lock.json ├── Tests.Roslyn44/ │ ├── Tests.Roslyn44.csproj │ └── packages.lock.json ├── Tests.Roslyn45/ │ ├── Tests.Roslyn45.csproj │ └── packages.lock.json ├── Tests.Roslyn46/ │ ├── Tests.Roslyn46.csproj │ └── packages.lock.json ├── Tests.Roslyn47/ │ ├── Tests.Roslyn47.csproj │ └── packages.lock.json ├── Tests.Roslyn48/ │ ├── Tests.Roslyn48.csproj │ └── packages.lock.json ├── Tests.Roslyn49/ │ ├── Tests.Roslyn49.csproj │ └── packages.lock.json ├── Tests.RoslynLatest/ │ ├── Tests.RoslynLatest.csproj │ └── packages.lock.json ├── VisualBasic/ │ ├── CHANGELOG.md │ ├── Internal/ │ │ └── VisualBasicLanguage.cs │ ├── MirrorSharpOptionsExtensions.cs │ ├── MirrorSharpVisualBasicOptions.cs │ ├── PublicAPI.Shipped.txt │ ├── PublicAPI.Unshipped.txt │ ├── VisualBasic.csproj │ └── packages.lock.json ├── WebAssets/ │ ├── .brackets.json │ ├── .depcheckrc.json │ ├── .eslintrc.json │ ├── .npmrc │ ├── .storybook/ │ │ ├── main.cjs │ │ ├── preview.js │ │ └── test-runner.js │ ├── .vscode/ │ │ ├── launch.json │ │ └── settings.json │ ├── CHANGELOG.md │ ├── README.md │ ├── build/ │ │ ├── plugins/ │ │ │ └── add-import-extensions.ts │ │ └── storybook.ts │ ├── build.ts │ ├── docs/ │ │ └── migration-from-2.md │ ├── package.json │ ├── src/ │ │ ├── .eslintrc.json │ │ ├── codemirror/ │ │ │ ├── __snapshots__/ │ │ │ │ └── languages.tests.ts.snap │ │ │ ├── create.ts │ │ │ ├── helpers/ │ │ │ │ ├── apply-changes-from-server.ts │ │ │ │ ├── convert-position.tests.ts │ │ │ │ ├── convert-position.ts │ │ │ │ ├── get-text.ts │ │ │ │ └── switchable-extension.ts │ │ │ ├── keymaps.ts │ │ │ ├── languages/ │ │ │ │ ├── cil.ts │ │ │ │ ├── csharp.ts │ │ │ │ ├── fsharp.ts │ │ │ │ ├── php.ts │ │ │ │ ├── test.data.ts │ │ │ │ └── vb.ts │ │ │ ├── languages.stories.ts │ │ │ ├── languages.tests.ts │ │ │ ├── languages.ts │ │ │ ├── notify-on-text-changes.ts │ │ │ ├── server/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ ├── autocompletion.tests.ts.snap │ │ │ │ │ ├── infotips.tests.ts.snap │ │ │ │ │ └── signature-help.tests.ts.snap │ │ │ │ ├── autocompletion.stories.ts │ │ │ │ ├── autocompletion.tests.ts │ │ │ │ ├── autocompletion.ts │ │ │ │ ├── connection-state.ts │ │ │ │ ├── diagnostics.stories.ts │ │ │ │ ├── diagnostics.tests.ts │ │ │ │ ├── diagnostics.ts │ │ │ │ ├── infotips.stories.ts │ │ │ │ ├── infotips.test.data.ts │ │ │ │ ├── infotips.tests.ts │ │ │ │ ├── infotips.ts │ │ │ │ ├── send-changes.tests.ts │ │ │ │ ├── send-changes.ts │ │ │ │ ├── signature-help.stories.ts │ │ │ │ ├── signature-help.test.data.ts │ │ │ │ ├── signature-help.tests.ts │ │ │ │ └── signature-help.ts │ │ │ └── tests/ │ │ │ ├── hints.tests.ts │ │ │ └── tab.tests.ts │ │ ├── helpers/ │ │ │ ├── define-effect-field.ts │ │ │ ├── ensure-defined.ts │ │ │ └── render-parts.ts │ │ ├── images/ │ │ │ └── unnecessary.pdn │ │ ├── main/ │ │ │ ├── connection-loss-view.stories.ts │ │ │ ├── connection-loss-view.ts │ │ │ ├── container-root.ts │ │ │ ├── instance.ts │ │ │ └── theme.ts │ │ ├── mirrorsharp.css │ │ ├── mirrorsharp.tests.ts │ │ ├── mirrorsharp.ts │ │ ├── protocol/ │ │ │ ├── connection.tests.ts │ │ │ ├── connection.ts │ │ │ ├── languages.ts │ │ │ ├── line-separator.ts │ │ │ ├── messages.ts │ │ │ ├── session.options.tests.ts │ │ │ ├── session.slow-update.tests.ts │ │ │ └── session.ts │ │ ├── testing/ │ │ │ ├── jest/ │ │ │ │ ├── jsdom.d.ts │ │ │ │ ├── setup-jest.ts │ │ │ │ ├── test-dom-events.ts │ │ │ │ └── test-text.ts │ │ │ ├── shared/ │ │ │ │ ├── mock-socket.ts │ │ │ │ └── test-receiver.ts │ │ │ ├── storybook/ │ │ │ │ ├── browser-fake-timers.ts │ │ │ │ ├── mock-socket-with-action-log.ts │ │ │ │ ├── story-with-dark-theme.ts │ │ │ │ └── test-driver-story.ts │ │ │ ├── test-driver-base.ts │ │ │ ├── test-driver-jest.ts │ │ │ └── test-driver-storybook.ts │ │ ├── tsconfig.build.json │ │ ├── tsconfig.json │ │ └── tsconfig.storybook.json │ └── tsconfig.json ├── ms.bat └── tye.yaml ================================================ FILE CONTENTS ================================================ ================================================ FILE: #scripts/build.ps1 ================================================ param ( $configuration = 'Debug' ) Set-StrictMode -Version 2 $ErrorActionPreference = 'Stop' Write-Output 'dotnet build' dotnet build --no-restore --configuration $configuration if ($LastExitCode -ne 0) { throw "dotnet build exited with code $LastExitCode" } Write-Output 'npm run build' @('WebAssets', 'Owin.Demo', 'AspNetCore.Demo') | % { try { Write-Output " $_" Push-Location $_ npm run build if ($LastExitCode -ne 0) { throw "npm run build exited with code $LastExitCode" } } finally { Pop-Location } } ================================================ FILE: #scripts/demo-watch.ps1 ================================================ Set-StrictMode -Version 2 $ErrorActionPreference = 'Stop' dotnet tye run ================================================ FILE: #scripts/pack.ps1 ================================================ param ( [string] $parameter ) Set-StrictMode -Version 2 $ErrorActionPreference = 'Stop' $configuration = 'Debug' $versionSuffix = $parameter if ($parameter -match 'Debug|Release') { $configuration = $parameter $versionSuffix = '' } $output = (Resolve-Path .) @( 'Common', 'VisualBasic', 'FSharp', 'Php', 'Owin', 'AspNetCore', 'Testing' ) | % { dotnet pack $_ --version-suffix=$versionSuffix --output $output --configuration $configuration --no-build --no-restore if ($LastExitCode -ne 0) { throw "dotnet pack exited with code $LastExitCode" } } npm pack ./WebAssets/dist if ($LastExitCode -ne 0) { throw "npm pack exited with code $LastExitCode" } ================================================ FILE: #scripts/restore.ps1 ================================================ Set-StrictMode -Version 2 $ErrorActionPreference = 'Stop' Write-Output 'dotnet restore' dotnet restore if ($LastExitCode -ne 0) { throw "dotnet restore exited with code $LastExitCode" } Write-Output 'npm install' @('WebAssets', 'Owin.Demo', 'AspNetCore.Demo') | % { try { Write-Output " $_" Push-Location $_ # not worth using npm ci until https://github.com/npm/npm/issues/20104 npm install --no-audit if ($LastExitCode -ne 0) { throw "npm ci exited with code $LastExitCode" } } finally { Pop-Location } } ================================================ FILE: #scripts/setup.ps1 ================================================ Set-StrictMode -Version 2 $ErrorActionPreference = 'Stop' ./restore.ps1 ./build.ps1 ================================================ FILE: #scripts/test.ps1 ================================================ Set-StrictMode -Version 2 $ErrorActionPreference = 'Stop' Write-Output 'dotnet test' dotnet test if ($LastExitCode -ne 0) { throw "dotnet test exited with code $LastExitCode" } Write-Output 'npm test' try { Push-Location 'WebAssets' npm test if ($LastExitCode -ne 0) { throw "npm test exited with code $LastExitCode" } } finally { Pop-Location } ================================================ FILE: .config/dotnet-tools.json ================================================ { "version": 1, "isRoot": true, "tools": { "microsoft.tye": { "version": "0.5.0-alpha.20555.1", "commands": [ "tye" ] } } } ================================================ FILE: .editorconfig ================================================ root = true [*] charset = utf-8 indent_style = space indent_size = 4 trim_trailing_whitespace = true insert_final_newline = false [*.md] trim_trailing_whitespace = false [*.{html,config,csproj,props}] indent_size = 2 [project.json] indent_size = 2 [package.json] indent_size = 2 [*.cs] csharp_new_line_before_open_brace = none csharp_style_var_for_built_in_types = true:warning csharp_style_var_when_type_is_apparent = true:warning csharp_style_var_elsewhere = true:warning # IDE0005: Using directive is unnecessary. dotnet_diagnostic.IDE0005.severity = warning # IDE0090: 'new' expression can be simplified. dotnet_diagnostic.IDE0090.severity = warning ================================================ FILE: .gitattributes ================================================ **/__image_snapshots__/**/* filter=lfs diff=lfs merge=lfs -text ================================================ FILE: .github/workflows/dotnet.yml ================================================ name: 'Server (C#)' on: push: paths-ignore: - '.github/workflows/web-assets.yml' - 'WebAssets/**' - '*.Demo*/**/*.cs' - '*.Demo*/**/*.css' - '*.Demo*/**/*.html' - '*.Demo*/**/package.json' - '*.Demo*/**/package-lock.json' pull_request: workflow_dispatch: jobs: build-and-publish: name: 'Build and Publish' runs-on: windows-latest env: NUGET_PACKAGES: ${{github.workspace}}/.nuget/packages steps: - uses: actions/checkout@v4 - uses: actions/setup-dotnet@v4 with: dotnet-version: | 2.1.x 3.1.x 7.0.x # https://github.com/actions/setup-dotnet/issues/155#issuecomment-748452076 - run: dotnet nuget locals all --clear - uses: actions/cache@v4 with: path: ${{github.workspace}}/.nuget/packages key: ${{runner.os}}-nuget-${{hashFiles('**/packages.lock.json')}} restore-keys: | ${{runner.os}}-nuget- - run: dotnet build --configuration Release - run: dotnet test --no-build --configuration Release - run: dotnet pack --no-build --output . --configuration Release - if: github.ref == 'refs/heads/main' run: dotnet nuget push *.nupkg --source https://api.nuget.org/v3/index.json --api-key ${{secrets.NUGET_TOKEN}} --skip-duplicate - if: github.ref == 'refs/heads/main' uses: actions/upload-artifact@v4 with: path: '*.nupkg' ================================================ FILE: .github/workflows/web-assets.yml ================================================ name: Client (JS) on: push: paths: - '.github/workflows/web-assets.yml' - 'WebAssets/**' - '*.Demo*/**/*.ts' - '*.Demo*/**/*.css' - '*.Demo*/**/*.html' - '*.Demo*/**/package.json' - '*.Demo*/**/package-lock.json' pull_request: workflow_dispatch: jobs: build-and-publish: name: Build and Publish runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: lfs: 'true' - uses: actions/setup-node@v4 with: node-version: '20.14.0' cache: 'npm' cache-dependency-path: '**/package-lock.json' - name: 'WebAssets: npm ci' run: npm ci working-directory: WebAssets - name: 'WebAssets: npm run build' run: npm run build working-directory: WebAssets - name: 'WebAssets: npm test' run: npm test -- --runInBand working-directory: WebAssets - name: 'WebAssets: npm run build-storybook' run: npm run build-storybook working-directory: WebAssets - name: 'WebAssets: npm run test-storybook' run: npm run test-storybook working-directory: WebAssets - name: "[Failure] Run actions/upload-artifact@v4 (diff output)" uses: actions/upload-artifact@v4 if: failure() with: name: __diff_output__ path: WebAssets/src/**/__image_snapshots__/__diff_output__ if-no-files-found: ignore - name: '[Failure] WebAssets: npm run test-storybook-with-update' run: npm run test-storybook-with-update working-directory: WebAssets if: failure() - name: "[Failure] Run actions/upload-artifact@v4 (updated snapshots)" uses: actions/upload-artifact@v4 if: failure() with: name: '__image_snapshots__ (updated)' path: WebAssets/src/**/__image_snapshots__ if-no-files-found: ignore - name: 'AspNetCore.Demo: npm ci' run: npm ci working-directory: AspNetCore.Demo - name: 'AspNetCore.Demo: npm run build' run: npm run build working-directory: AspNetCore.Demo - name: 'AspNetCore.Demo.Net6: npm ci' run: npm ci working-directory: AspNetCore.Demo.Net6 - name: 'AspNetCore.Demo.Net6: npm run build' run: npm run build working-directory: AspNetCore.Demo.Net6 - name: 'Owin.Demo: npm ci' run: npm ci working-directory: Owin.Demo - name: 'Owin.Demo: npm run build' run: npm run build working-directory: Owin.Demo - if: github.ref == 'refs/heads/main' uses: JS-DevTools/npm-publish@v1 with: package: './WebAssets/dist/package.json' token: ${{ secrets.NPM_TOKEN }} ================================================ FILE: .gitignore ================================================ *.user project.lock.json .vs/ .tye/ .idea/ node_modules/ .cache/ .parcel-cache/ storybook-static/ .temp/ bin/ obj/ /*.tgz /WebAssets/dist /WebAssets/coverage /Owin.Demo/wwwroot /AspNetCore.Demo/wwwroot /AspNetCore.Demo.Net6/wwwroot ================================================ FILE: AspNetCore/AspNetCore.csproj ================================================ MirrorSharp.AspNetCore MirrorSharp.AspNetCore netcoreapp3.1 4.0.0 MirrorSharp ASP.NET Core server. $(DescriptionSuffix) Roslyn;CodeMirror true ================================================ FILE: AspNetCore/CHANGELOG.md ================================================ # Changelog ## [4.0.0] - 2022-04-04 ## [4.0.0-test-2021-04-02-1] - 2021-04-02 ## [4.0.0-test-2021-04-01-1] - 2021-04-01 ### Changed - Updated to support MirrorSharp.Common 3.0.0 ### Added - Internal healthcheck work (not yet released) ### Removed - Obsolete method UseMirrorSharp is now marked Obsolete(true) and will not compile ## [3.0.3] - 2020-03-04 ### Changed - Updated to support MirrorSharp.Common 2.2.3 ## [3.0.2] - 2021-05-01 ### Fixed - WebSocket connections handle shutdowns better, e.g. allowing faster processing of app_offline.htm ## [3.0.1] - 2020-12-17 ### Changed - Updated to support MirrorSharp.Common 2.2.2 ================================================ FILE: AspNetCore/Internal/Middleware.cs ================================================ using System; using System.Threading; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Hosting; using MirrorSharp.Advanced; using MirrorSharp.Advanced.EarlyAccess; using MirrorSharp.Internal; namespace MirrorSharp.AspNetCore.Internal { internal class Middleware : MiddlewareBase { private readonly RequestDelegate _next; private readonly IHostApplicationLifetime _applicationLifetime; private readonly MirrorSharpOptions _options; public Middleware( RequestDelegate next, IHostApplicationLifetime applicationLifetime, MirrorSharpOptions options, ISetOptionsFromClientExtension? setOptionsFromClient = null, ISlowUpdateExtension? slowUpdate = null, IRoslynSourceTextGuard? roslynSourceTextGuard = null, IRoslynCompilationGuard? roslynCompilationGuard = null, IConnectionSendViewer? connectionSendViewer = null, IExceptionLogger? exceptionLogger = null ) : base(options, new ImmutableExtensionServices( #pragma warning disable CS0618 // Type or member is obsolete setOptionsFromClient ?? options.SetOptionsFromClient, slowUpdate ?? options.SlowUpdate, roslynSourceTextGuard, roslynCompilationGuard, connectionSendViewer, exceptionLogger ?? options.ExceptionLogger #pragma warning restore CS0618 )) { _next = Argument.NotNull(nameof(next), next); _applicationLifetime = Argument.NotNull(nameof(applicationLifetime), applicationLifetime); _options = Argument.NotNull(nameof(options), options); } public Task InvokeAsync(HttpContext context) { if (!context.WebSockets.IsWebSocketRequest) { if (context.Request.Path == "/status") return SlowTestAndReportStatusAsync(context); return _next(context); } return StartWebSocketLoopAsync(context); } private async Task SlowTestAndReportStatusAsync(HttpContext context) { try { await SlowTestStatusAsync(context.RequestAborted).ConfigureAwait(false); } catch (Exception ex) { // TODO: Consolidate constant message with the other usage var message = (_options?.IncludeExceptionDetails ?? false) ? ex.ToString() : "A server error has occurred."; context.Response.StatusCode = 500; await context.Response.WriteAsync(message).ConfigureAwait(false); return; } context.Response.StatusCode = 200; await context.Response.WriteAsync("OK"); } private async Task StartWebSocketLoopAsync(HttpContext context) { using var cancellationSource = new CancellationTokenSource(); using var requestRegistration = context.RequestAborted.Register(() => cancellationSource.Cancel()); using var applicationStoppingRegistration = _applicationLifetime.ApplicationStopping.Register(() => cancellationSource.Cancel()); var webSocket = await context.WebSockets.AcceptWebSocketAsync().ConfigureAwait(false); await WebSocketLoopAsync(webSocket, cancellationSource.Token).ConfigureAwait(false); } } } ================================================ FILE: AspNetCore/MirrorSharpStartupExtensions.cs ================================================ using System; using System.ComponentModel; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Routing; using MirrorSharp.AspNetCore.Internal; using MirrorSharp.Internal; namespace MirrorSharp.AspNetCore { /// MirrorSharp setup extensions. public static class MirrorSharpStartupExtensions { /// Adds MirrorSharp middleware to the . /// The app builder. /// The object used by the MirrorSharp middleware. [EditorBrowsable(EditorBrowsableState.Never)] [Obsolete("This method will be removed in the next major version. Use app.MapMirrorSharp() instead.", true)] public static IApplicationBuilder UseMirrorSharp(this IApplicationBuilder app, MirrorSharpOptions? options = null) { Argument.NotNull(nameof(app), app); app.UseMiddleware(options ?? new MirrorSharpOptions()); return app; } /// Maps MirrorSharp middleware to a certain path in the . /// The app builder. /// Relative path to be used by MirrorSharp server, e.g. '/mirrorsharp'. /// The object used by the MirrorSharp middleware. public static IApplicationBuilder MapMirrorSharp(this IApplicationBuilder app, PathString path, MirrorSharpOptions? options = null) { Argument.NotNull(nameof(app), app); Argument.NotNull(nameof(path), path.Value); return app.Map(path, a => a.UseMiddleware(options ?? new MirrorSharpOptions())); } /// Maps MirrorSharp middleware to a certain route in the . /// The endpoint route builder. /// The route pattern to be used by MirrorSharp server, e.g. '/mirrorsharp'. /// The object used by the MirrorSharp middleware. public static IEndpointConventionBuilder MapMirrorSharp(this IEndpointRouteBuilder endpoints, string pattern, MirrorSharpOptions? options = null) { Argument.NotNull(nameof(endpoints), endpoints); Argument.NotNullOrEmpty(nameof(pattern), pattern); var pipeline = endpoints.CreateApplicationBuilder() .UseMiddleware(options ?? new MirrorSharpOptions()) .Build(); return endpoints.Map(pattern, pipeline); } } } ================================================ FILE: AspNetCore/PublicAPI.Shipped.txt ================================================ #nullable enable MirrorSharp.AspNetCore.MirrorSharpStartupExtensions static MirrorSharp.AspNetCore.MirrorSharpStartupExtensions.MapMirrorSharp(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, Microsoft.AspNetCore.Http.PathString path, MirrorSharp.MirrorSharpOptions? options = null) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! static MirrorSharp.AspNetCore.MirrorSharpStartupExtensions.MapMirrorSharp(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder! endpoints, string! pattern, MirrorSharp.MirrorSharpOptions? options = null) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder! static MirrorSharp.AspNetCore.MirrorSharpStartupExtensions.UseMirrorSharp(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, MirrorSharp.MirrorSharpOptions? options = null) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! ================================================ FILE: AspNetCore/PublicAPI.Unshipped.txt ================================================ ================================================ FILE: AspNetCore/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETCoreApp,Version=v3.1": { "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "2.9.4", "contentHash": "alIJhS0VUg/7x5AsHEoovh/wRZ0RfCSS7k5pDSqpRLTyuMTtRgj6OJJPRApRhJHOGYYsLakf1hKeXFoDwKwNkg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "N5yQdGy+M4kimVG7hwCeGTCfgYjK2o5b/Shumkb/rCC+/SAkvP1HUAYK+vxPFS7dLJNtXLRsmPHKj3fnyNWnrw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "2.9.4", "System.Collections.Immutable": "1.5.0", "System.Memory": "4.5.3", "System.Reflection.Metadata": "1.6.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2", "System.Text.Encoding.CodePages": "4.5.1", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "WDUIhTHem38H6VJ98x2Ssq0fweakJHnHYl7vbG8ARnsAwLoJKCQCy78EeY1oRrCKG42j0v6JVljKkeqSDA28UA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "t9uIwsLzT5zQ1Q3ZIpwE4EOnAf/lGdbQwyeqhyO/BJ+AWDt267Hxlz5k6ypPy14Z6+PW6pTggAGz6MwN31RElQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Features": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "dHs/UyfLgzsVC4FjTi/x+H+yQifgOnpe3rSN8GwkHWjnidePZ3kSqr1JHmFDf5HTQEydYwrwCAfQ0JSzhsEqDA==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "lvMC69ABN/YEaw3ke4cQRqBYZ2V7DJTOT8QXIeAJGJUfwVHTBN0iq2O5zZQrYnnUN2wmeCzCoAg59PKBosVO7g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": "2.9.5", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]", "Microsoft.DiaSymReader": "1.3.0", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": { "type": "Transitive", "resolved": "2.9.5", "contentHash": "SqwdTocsxU7u0Y8am67BY7KSLAhrtDXdBBwt0Nv9TxLVzPBPtPPFS2bHUsxucpOBMBmc10rWE1eJ+IDrr/0/nQ==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "NfBz3b5hFSbO+7xsCNryD+p8axsIJFTG7qM3jvMTC/MqYrU6b8E1b6JoRj5rJSOBB+pSunk+CMqyGQTOWHeDUg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "System.Composition": "1.0.31" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.3.0", "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "2.1.2", "contentHash": "mOJy3M0UN+LUG21dLGMxaWZEP6xYpQEpLuvuEQBaownaX4YuhH6NmNUlN9si+vNkAS6dwJ//N1O4DmLf2CikVg==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "Microsoft.Win32.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "NETStandard.Library": { "type": "Transitive", "resolved": "1.6.1", "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.Win32.Primitives": "4.3.0", "System.AppContext": "4.3.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Console": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.Compression.ZipFile": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Net.Http": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Net.Sockets": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Timer": "4.3.0", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XDocument": "4.3.0" } }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.AppContext": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Buffers": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "1.5.0", "contentHash": "EXKiDFsChZW0RjrZ4FYHu9aW6+P4MCgEDCklsVseRfhoO0F+dXeMSsMRAlVXIo06kGJ/zv+2w1a2uc2+kxxSaQ==" }, "System.Composition": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "I+D26qpYdoklyAVUdqwUBrEIckMNjAYnuPJy/h9dsQItpQwVREkDFs4b4tkBza0kT2Yk48Lcfsv2QQ9hWsh9Iw==", "dependencies": { "System.Composition.AttributedModel": "1.0.31", "System.Composition.Convention": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Composition.TypedParts": "1.0.31" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "NHWhkM3ZkspmA0XJEsKdtTt1ViDYuojgSND3yHhTzwxepiwqZf+BCWuvCbjUt4fe0NxxQhUDGJ5km6sLjo9qnQ==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.Convention": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "GLjh2Ju71k6C0qxMMtl4efHa68NmWeIUYh4fkUI8xbjQrEBvFmRwMDFcylT8/PR9SQbeeL48IkFxU/+gd0nYEQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "fN1bT4RX4vUqjbgoyuJFVUizAl2mYF5VAb+bVIxIYZSSc0BdnX+yGAxcavxJuDDCQ1K+/mdpgyEFc8e9ikjvrg==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0LEJN+2NVM89CE4SekDrrk5tHV5LeATltkp+9WNYrR+Huiyt0vaCqHbbHtVAjPyeLWIc8dOz/3kthRBj32wGQg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0Zae/FtzeFgDBBuILeIbC/T9HMYbW4olAmi8XqqAGosSOWvXfiQLfARZEhiGd0LVXaYgXr0NhxiU1LldRP1fpQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Console": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.Tracing": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Buffers": "4.3.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.IO.Compression": "4.3.0" } }, "System.IO.Compression.ZipFile": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", "dependencies": { "System.Buffers": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.IO.FileSystem": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==" }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Net.Sockets": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", "dependencies": { "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "1.6.0", "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==" }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "4.5.2", "contentHash": "wprSFgext8cwqymChhrBLu62LMg/1u92bU+VOwyfBimSPVFXtsNqEWC92Pf9ofzJFlk4IHmJA75EDJn1b2goAQ==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.InteropServices.RuntimeInformation": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0" } }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Cng": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==", "dependencies": { "Microsoft.NETCore.Platforms": "2.1.2", "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "System.Text.Encoding.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { "System.Runtime": "4.3.1" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "+MvhNtcvIbqmhANyKu91jQnvIRVSTiaOiFNfKWwXGHG48YAb4I/TyH8spsySiPYla7gKal5ZnF3teJqZAximyQ==" }, "System.Threading.Timer": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Xml.ReaderWriter": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Tasks.Extensions": "4.3.0" } }, "System.Xml.XDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } } } } } ================================================ FILE: AspNetCore.Demo/.browserslistrc ================================================ last 2 Chrome versions last 2 Firefox versions last 2 Edge versions ================================================ FILE: AspNetCore.Demo/.vscode/settings.json ================================================ { "cSpell.words": [ "mirrorsharp" ] } ================================================ FILE: AspNetCore.Demo/AspNetCore.Demo.csproj ================================================ netcoreapp3.1 MirrorSharp.AspNetCore.Demo MirrorSharp.AspNetCore.Demo false PreserveNewest PreserveNewest ================================================ FILE: AspNetCore.Demo/Extensions/SetOptionsFromClientExtension.cs ================================================ using System; using MirrorSharp.Advanced; using MirrorSharp.AspNetCore.Demo.Library; namespace MirrorSharp.AspNetCore.Demo.Extensions { public class SetOptionsFromClientExtension : ISetOptionsFromClientExtension { public bool TrySetOption(IWorkSession session, string name, string value) { if (name != "x-mode") return false; switch (value) { case "script": if (!session.IsRoslyn) throw new NotSupportedException("Only Roslyn sessions support script mode."); session.Roslyn.SetScriptMode(true, typeof(IScriptGlobals)); break; case "regular": if (!session.IsRoslyn) return true; session.Roslyn.SetScriptMode(false); break; default: throw new ArgumentException($"Unknown mode: {value}."); } return true; } } } ================================================ FILE: AspNetCore.Demo/Program.cs ================================================ using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; namespace MirrorSharp.AspNetCore.Demo { public static class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args).UseStartup(); } } ================================================ FILE: AspNetCore.Demo/Properties/launchSettings.json ================================================ { "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:63675", "sslPort": 0 } }, "profiles": { "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, "AspNetCore.Demo": { "commandName": "Project", "launchBrowser": true, "applicationUrl": "http://localhost:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } } } ================================================ FILE: AspNetCore.Demo/Startup.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.IO; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.CodeAnalysis; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using MirrorSharp.Advanced; using MirrorSharp.AspNetCore.Demo.Extensions; using MirrorSharp.AspNetCore.Demo.Library; namespace MirrorSharp.AspNetCore.Demo { public class Startup { public void ConfigureServices(IServiceCollection services) { services.AddSingleton(); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseDefaultFiles() .UseStaticFiles(); app.UseWebSockets(); app.UseRouting(); app.UseEndpoints(e => e.MapMirrorSharp( "/mirrorsharp", new MirrorSharpOptions { SelfDebugEnabled = true, IncludeExceptionDetails = true } .SetupCSharp(o => { o.MetadataReferences = GetAllReferences().ToImmutableList(); }) .EnableFSharp() .EnableIL() )); } private static IEnumerable GetAllReferences() { yield return ReferenceAssembly("System.Runtime"); yield return ReferenceAssembly("System.Collections"); var assembly = typeof(IScriptGlobals).Assembly; yield return MetadataReference.CreateFromFile(assembly.Location); foreach (var reference in assembly.GetReferencedAssemblies()) { yield return ReferenceAssembly(reference.Name!); } } private static MetadataReference ReferenceAssembly(string name) { var rootPath = Path.Combine( Path.GetDirectoryName(new Uri(typeof(Startup).Assembly.EscapedCodeBase).LocalPath)!, "ref-assemblies" ); var assemblyPath = Path.Combine(rootPath, name + ".dll"); var documentationPath = Path.Combine(rootPath, name + ".xml"); return MetadataReference.CreateFromFile( assemblyPath, documentation: XmlDocumentationProvider.CreateFromFile(documentationPath) ); } } } ================================================ FILE: AspNetCore.Demo/app.css ================================================ @import './node_modules/mirrorsharp-codemirror-6-preview/mirrorsharp.css'; @import './node_modules/typeface-open-sans/index.css'; * { box-sizing: border-box; } html, body { width: 100%; height: 100%; } body { padding: 0; margin: 0; font-size: 16px; display: flex; flex-direction: column; padding: 10px; } nav { display: flex; font-family: 'Open Sans', sans-serif; } nav ul { list-style: none; display: flex; padding: 0; margin: 0; } nav li { margin-left: 10px; } a { text-decoration: none; } a:hover { text-decoration: underline; } .CodeMirror { flex-grow: 1; margin-top: 10px; border: 1px solid #ddd; } ================================================ FILE: AspNetCore.Demo/app.js ================================================ import mirrorsharp from 'mirrorsharp-codemirror-6-preview'; const getCode = (language, mode) => { if (mode === 'script') { return 'var messages = Context.Messages;'; } else if (language == 'C#') { return `using System; class C { const int C2 = 5; string f; string P { get; set; } event EventHandler e; event EventHandler E { add {} remove {} } C() { } void M(int p) { var l = p; } } class G { }`.replace(/(\r\n|\r|\n)/g, '\r\n') // Parcel changes newlines to LF .replace(/^ /gm, ''); } else if (language === 'F#') { return '[]\r\nlet main argv = \r\n 0'; } else if (language === 'IL') { return '.class private auto ansi \'\'\r\n{\r\n}'; } } const getLanguageAndCode = () => { const params = window.location.hash.replace(/^\#/, '').split('&').reduce((result, item) => { const [key, value] = item.split('='); result[key] = value; return result; }, {}); const language = (params['language'] || 'CSharp').replace('Sharp', '#'); const mode = params['mode'] || 'regular'; const code = getCode(language, mode); return { language, mode, code }; } const initial = getLanguageAndCode(); const ms = mirrorsharp(document.getElementById('editor-container'), { serviceUrl: window.location.href.replace(/^http(s?:\/\/[^/]+).*$/i, 'ws$1/mirrorsharp'), language: initial.language, text: initial.code, serverOptions: (initial.mode !== 'regular' ? { 'x-mode': initial.mode } : {}) }); window.addEventListener('hashchange', () => { const updated = getLanguageAndCode(); ms.setLanguage(updated.language); ms.setServerOptions({ 'x-mode': updated.mode }); ms.setText(updated.code); }); ================================================ FILE: AspNetCore.Demo/index.html ================================================ MirrorSharp Demo
================================================ FILE: AspNetCore.Demo/package.json ================================================ { "name": "mirrorsharp.demo", "version": "0.0.0", "private": true, "scripts": { "build": "parcel build index.html --dist-dir wwwroot --no-optimize --no-cache" }, "dependencies": { "mirrorsharp-codemirror-6-preview": "file:../WebAssets/dist", "typeface-open-sans": "0.0.75" }, "devDependencies": { "parcel": "^2.8.2", "process": "^0.11.10" } } ================================================ FILE: AspNetCore.Demo/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETCoreApp,Version=v3.1": { "FSharp.Compiler.Service": { "type": "Transitive", "resolved": "43.8.300", "contentHash": "CoPjQYXXwmYkkHm+yxBHSW9IJVLpvwkKGEzXa5A6ebf8v6GfYaxZc5G+VHojDr586oezp1elFemu+A1WWH095A==", "dependencies": { "FSharp.Core": "[8.0.300]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "7.0.0", "System.Diagnostics.DiagnosticSource": "7.0.2", "System.Memory": "4.5.5", "System.Reflection.Emit": "4.7.0", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "FSharp.Core": { "type": "Transitive", "resolved": "8.0.300", "contentHash": "Jv44fV7TNglyMku89lQcA4Q6mFKLyHb2bs1Yb72nvSVc+cHplEnoZ4XQUaaTLJGUTx/iMqcrkYGtaLzkkIhpaA==" }, "Microsoft.Build.Framework": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "jleteC0seumLGTmTVwob97lcwPj/dfgzL/V3g/VVcMZgo2Ic7jzdy8AYpByPDh8e3uRq0SjCl6HOFCjhy5GzRQ==", "dependencies": { "Microsoft.Win32.Registry": "5.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "Microsoft.Build.Utilities.Core": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "pU3GnHcXp8VRMGKxdJCq+tixfhFn+QwEbpqmZmc/nqFHFyuhlGwjonWZMIWcwuCv/8EHgxoOttFvna1vrN+RrA==", "dependencies": { "Microsoft.Build.Framework": "17.12.6", "Microsoft.NET.StringTools": "17.12.6", "Microsoft.Win32.Registry": "5.0.0", "System.Collections.Immutable": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0", "System.Text.Encoding.CodePages": "7.0.0" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "2.9.4", "contentHash": "alIJhS0VUg/7x5AsHEoovh/wRZ0RfCSS7k5pDSqpRLTyuMTtRgj6OJJPRApRhJHOGYYsLakf1hKeXFoDwKwNkg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "N5yQdGy+M4kimVG7hwCeGTCfgYjK2o5b/Shumkb/rCC+/SAkvP1HUAYK+vxPFS7dLJNtXLRsmPHKj3fnyNWnrw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "2.9.4", "System.Collections.Immutable": "1.5.0", "System.Memory": "4.5.3", "System.Reflection.Metadata": "1.6.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2", "System.Text.Encoding.CodePages": "4.5.1", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "WDUIhTHem38H6VJ98x2Ssq0fweakJHnHYl7vbG8ARnsAwLoJKCQCy78EeY1oRrCKG42j0v6JVljKkeqSDA28UA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "t9uIwsLzT5zQ1Q3ZIpwE4EOnAf/lGdbQwyeqhyO/BJ+AWDt267Hxlz5k6ypPy14Z6+PW6pTggAGz6MwN31RElQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Features": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "dHs/UyfLgzsVC4FjTi/x+H+yQifgOnpe3rSN8GwkHWjnidePZ3kSqr1JHmFDf5HTQEydYwrwCAfQ0JSzhsEqDA==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "lvMC69ABN/YEaw3ke4cQRqBYZ2V7DJTOT8QXIeAJGJUfwVHTBN0iq2O5zZQrYnnUN2wmeCzCoAg59PKBosVO7g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": "2.9.5", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]", "Microsoft.DiaSymReader": "1.3.0", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": { "type": "Transitive", "resolved": "2.9.5", "contentHash": "SqwdTocsxU7u0Y8am67BY7KSLAhrtDXdBBwt0Nv9TxLVzPBPtPPFS2bHUsxucpOBMBmc10rWE1eJ+IDrr/0/nQ==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "NfBz3b5hFSbO+7xsCNryD+p8axsIJFTG7qM3jvMTC/MqYrU6b8E1b6JoRj5rJSOBB+pSunk+CMqyGQTOWHeDUg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "System.Composition": "1.0.31" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.3.0", "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", "resolved": "2.2.0", "contentHash": "uyjY/cqomw1irT4L7lDeg4sJ36MsjHg3wKqpGrBAdzvZaxo85yMF+sAA9RIzTV92fDxuUzjqksMqA0+SNMkMgA==" }, "Microsoft.NET.StringTools": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "w8Ehofqte5bJoR+Fa3f6JwkwFEkGtXxqvQHGOVOSHDzgNVySvL5FSNhavbQSZ864el9c3rjdLPLAtBW8dq6fmg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "Microsoft.Win32.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "Microsoft.Win32.Registry": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", "dependencies": { "System.Security.AccessControl": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "Mobius.ILasm": { "type": "Transitive", "resolved": "0.1.0", "contentHash": "0uB5lko7fQZ4eOqkEyApSwxSwdMqdrduTpi6aAvr1nr03Lw+muS6UaAYCvk2ICN+AR94lPelvSx1+HCCwBMhTQ==", "dependencies": { "System.Reflection.Emit": "4.7.0", "System.Security.Permissions": "5.0.0" } }, "NETStandard.Library": { "type": "Transitive", "resolved": "1.6.1", "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.Win32.Primitives": "4.3.0", "System.AppContext": "4.3.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Console": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.Compression.ZipFile": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Net.Http": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Net.Sockets": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Timer": "4.3.0", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XDocument": "4.3.0" } }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.AppContext": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Composition": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "I+D26qpYdoklyAVUdqwUBrEIckMNjAYnuPJy/h9dsQItpQwVREkDFs4b4tkBza0kT2Yk48Lcfsv2QQ9hWsh9Iw==", "dependencies": { "System.Composition.AttributedModel": "1.0.31", "System.Composition.Convention": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Composition.TypedParts": "1.0.31" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "NHWhkM3ZkspmA0XJEsKdtTt1ViDYuojgSND3yHhTzwxepiwqZf+BCWuvCbjUt4fe0NxxQhUDGJ5km6sLjo9qnQ==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.Convention": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "GLjh2Ju71k6C0qxMMtl4efHa68NmWeIUYh4fkUI8xbjQrEBvFmRwMDFcylT8/PR9SQbeeL48IkFxU/+gd0nYEQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "fN1bT4RX4vUqjbgoyuJFVUizAl2mYF5VAb+bVIxIYZSSc0BdnX+yGAxcavxJuDDCQ1K+/mdpgyEFc8e9ikjvrg==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0LEJN+2NVM89CE4SekDrrk5tHV5LeATltkp+9WNYrR+Huiyt0vaCqHbbHtVAjPyeLWIc8dOz/3kthRBj32wGQg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0Zae/FtzeFgDBBuILeIbC/T9HMYbW4olAmi8XqqAGosSOWvXfiQLfARZEhiGd0LVXaYgXr0NhxiU1LldRP1fpQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==", "dependencies": { "System.Security.Cryptography.ProtectedData": "8.0.0" } }, "System.Console": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "7.0.2", "contentHash": "hYr3I9N9811e0Bjf2WNwAGGyTuAFbbTgX1RPLt/3Wbm68x3IGcX5Cl75CMmgT6WlNwLQ2tCCWfqYPpypjaf2xA==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.Tracing": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Drawing.Common": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "uoozjI3+dlgKh2onFJcz8aNLh6TRCPlLSh8Dbuljc8CdvqXrxHOVysJlrHvlsOCqceqGBR1wrMPxlnzzhynktw==" }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Buffers": "4.3.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.IO.Compression": "4.3.0" } }, "System.IO.Compression.ZipFile": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", "dependencies": { "System.Buffers": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.IO.FileSystem": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==" }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Net.Sockets": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==" }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "MclTG61lsD9sYdpNz9xsKBzjsmsfCtcMZYXz/IUr2zlhaTaABonlr1ESeompTgM+Xk+IwtGYU7/voh3YWB/fWw==", "dependencies": { "System.Collections.Immutable": "7.0.0", "System.Memory": "4.5.5" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.InteropServices.RuntimeInformation": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0" } }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", "dependencies": { "Microsoft.NETCore.Platforms": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Cng": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==", "dependencies": { "System.Memory": "4.5.5" } }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Permissions": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "uE8juAhEkp7KDBCdjDIE3H9R1HJuEHqeqX8nLX9gmYKWwsqk3T5qZlPx8qle5DPKimC/Fy3AFTdV7HamgCh9qQ==", "dependencies": { "System.Security.AccessControl": "5.0.0", "System.Windows.Extensions": "5.0.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.Encoding.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { "System.Runtime": "4.3.1" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "+MvhNtcvIbqmhANyKu91jQnvIRVSTiaOiFNfKWwXGHG48YAb4I/TyH8spsySiPYla7gKal5ZnF3teJqZAximyQ==" }, "System.Threading.Timer": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Windows.Extensions": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "c1ho9WU9ZxMZawML+ssPKZfdnrg/OjR3pe0m9v8230z3acqphwvPJqzAkH54xRYm5ntZHGG1EPP3sux9H3qSPg==", "dependencies": { "System.Drawing.Common": "5.0.0" } }, "System.Xml.ReaderWriter": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Tasks.Extensions": "4.3.0" } }, "System.Xml.XDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "MirrorSharp.AspNetCore": { "type": "Project", "dependencies": { "MirrorSharp.Common": "[3.0.9, )" } }, "MirrorSharp.AspNetCore.Demo.Library": { "type": "Project" }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } }, "MirrorSharp.FSharp": { "type": "Project", "dependencies": { "FSharp.Compiler.Service": "[43.8.300, )", "FSharp.Core": "[8.0.300, )", "Microsoft.Build.Utilities.Core": "[17.12.6, )", "Microsoft.IO.RecyclableMemoryStream": "[2.2.0, )", "MirrorSharp.Common": "[3.0.9, )" } }, "MirrorSharp.IL": { "type": "Project", "dependencies": { "MirrorSharp.Common": "[3.0.9, )", "Mobius.ILasm": "[0.1.0, )", "System.Drawing.Common": "[9.0.0, )" } } } } } ================================================ FILE: AspNetCore.Demo.Library/AspNetCore.Demo.Library.csproj ================================================ netstandard2.1 false MirrorSharp.AspNetCore.Demo.Library MirrorSharp.AspNetCore.Demo.Library ================================================ FILE: AspNetCore.Demo.Library/IScriptContext.cs ================================================ using System.Collections.Generic; namespace MirrorSharp.AspNetCore.Demo.Library { public interface IScriptContext { string Arguments { get; } IReadOnlyList Messages { get; } } } ================================================ FILE: AspNetCore.Demo.Library/IScriptGlobals.cs ================================================ namespace MirrorSharp.AspNetCore.Demo.Library { public interface IScriptGlobals { IScriptContext Context { get; } } } ================================================ FILE: AspNetCore.Demo.Library/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETStandard,Version=v2.1": {} } } ================================================ FILE: AspNetCore.Demo.Net6/.browserslistrc ================================================ last 2 Chrome versions last 2 Firefox versions last 2 Edge versions ================================================ FILE: AspNetCore.Demo.Net6/AspNetCore.Demo.Net6.csproj ================================================ net6.0 enable MirrorSharp.AspNetCore.Demo.Net6 MirrorSharp.AspNetCore.Demo.Net6 false PreserveNewest PreserveNewest ================================================ FILE: AspNetCore.Demo.Net6/Extensions/SetOptionsFromClientExtension.cs ================================================ using System; using MirrorSharp.Advanced; using MirrorSharp.AspNetCore.Demo.Library; namespace MirrorSharp.AspNetCore.Demo.Extensions { public class SetOptionsFromClientExtension : ISetOptionsFromClientExtension { public bool TrySetOption(IWorkSession session, string name, string value) { if (name != "x-mode") return false; switch (value) { case "script": if (!session.IsRoslyn) throw new NotSupportedException("Only Roslyn sessions support script mode."); session.Roslyn.SetScriptMode(true, typeof(IScriptGlobals)); break; case "regular": if (!session.IsRoslyn) return true; session.Roslyn.SetScriptMode(false); break; default: throw new ArgumentException($"Unknown mode: {value}."); } return true; } } } ================================================ FILE: AspNetCore.Demo.Net6/Program.cs ================================================ using System.Collections.Immutable; using Microsoft.CodeAnalysis; using MirrorSharp; using MirrorSharp.Advanced; using MirrorSharp.AspNetCore; using MirrorSharp.AspNetCore.Demo.Extensions; using MirrorSharp.AspNetCore.Demo.Library; var builder = WebApplication.CreateBuilder(args); builder.Services.AddSingleton(); var app = builder.Build(); app.UseDefaultFiles(); app.UseStaticFiles(); app.UseWebSockets(); app.MapMirrorSharp( "/mirrorsharp", new MirrorSharpOptions { SelfDebugEnabled = true, IncludeExceptionDetails = true } .SetupCSharp(o => { o.MetadataReferences = GetAllReferences().ToImmutableList(); }) .EnableFSharp() .EnableIL() ); app.Run(); static IEnumerable GetAllReferences() { yield return ReferenceAssembly("System.Runtime"); yield return ReferenceAssembly("System.Collections"); var assembly = typeof(IScriptGlobals).Assembly; yield return MetadataReference.CreateFromFile(assembly.Location); foreach (var reference in assembly.GetReferencedAssemblies()) { yield return ReferenceAssembly(reference.Name!); } } static MetadataReference ReferenceAssembly(string name) { var rootPath = Path.Combine(AppContext.BaseDirectory, "ref-assemblies"); var assemblyPath = Path.Combine(rootPath, name + ".dll"); var documentationPath = Path.Combine(rootPath, name + ".xml"); return MetadataReference.CreateFromFile( assemblyPath, documentation: XmlDocumentationProvider.CreateFromFile(documentationPath) ); } ================================================ FILE: AspNetCore.Demo.Net6/Properties/launchSettings.json ================================================ { "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:39287", "sslPort": 44358 } }, "profiles": { "AspNetCore.Demo.Net6": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, "applicationUrl": "https://localhost:7177;http://localhost:5177", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } } } ================================================ FILE: AspNetCore.Demo.Net6/app.css ================================================ @import './node_modules/mirrorsharp-codemirror-6-preview/mirrorsharp.css'; @import './node_modules/typeface-open-sans/index.css'; * { box-sizing: border-box; } html, body { width: 100%; height: 100%; } body { padding: 0; margin: 0; font-size: 16px; display: flex; flex-direction: column; padding: 10px; } nav { display: flex; font-family: 'Open Sans', sans-serif; } nav ul { list-style: none; display: flex; padding: 0; margin: 0; } nav li { margin-left: 10px; } a { text-decoration: none; } a:hover { text-decoration: underline; } .CodeMirror { flex-grow: 1; margin-top: 10px; border: 1px solid #ddd; } ================================================ FILE: AspNetCore.Demo.Net6/app.js ================================================ import mirrorsharp from 'mirrorsharp-codemirror-6-preview'; const getCode = (language, mode) => { if (mode === 'script') { return 'var messages = Context.Messages;'; } else if (language == 'C#') { return `using System; class C { const int C2 = 5; string f; string P { get; set; } event EventHandler e; event EventHandler E { add {} remove {} } C() { } void M(int p) { var l = p; } } class G { }`.replace(/(\r\n|\r|\n)/g, '\r\n') // Parcel changes newlines to LF .replace(/^ /gm, ''); } else if (language === 'F#') { return '[]\r\nlet main argv = \r\n 0'; } else if (language === 'IL') { return '.class private auto ansi \'\'\r\n{\r\n}'; } } const getLanguageAndCode = () => { const params = window.location.hash.replace(/^\#/, '').split('&').reduce((result, item) => { const [key, value] = item.split('='); result[key] = value; return result; }, {}); const language = (params['language'] || 'CSharp').replace('Sharp', '#'); const mode = params['mode'] || 'regular'; const code = getCode(language, mode); return { language, mode, code }; } const initial = getLanguageAndCode(); const ms = mirrorsharp(document.getElementById('editor-container'), { serviceUrl: window.location.href.replace(/^http(s?:\/\/[^/]+).*$/i, 'ws$1/mirrorsharp'), language: initial.language, text: initial.code, serverOptions: (initial.mode !== 'regular' ? { 'x-mode': initial.mode } : {}) }); window.addEventListener('hashchange', () => { const updated = getLanguageAndCode(); ms.setLanguage(updated.language); ms.setServerOptions({ 'x-mode': updated.mode }); ms.setText(updated.code); }); ================================================ FILE: AspNetCore.Demo.Net6/appsettings.Development.json ================================================ { "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } } } ================================================ FILE: AspNetCore.Demo.Net6/appsettings.json ================================================ { "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*" } ================================================ FILE: AspNetCore.Demo.Net6/index.html ================================================ MirrorSharp Demo
================================================ FILE: AspNetCore.Demo.Net6/package.json ================================================ { "name": "mirrorsharp.demo", "version": "0.0.0", "private": true, "scripts": { "build": "parcel build index.html --dist-dir wwwroot --no-optimize --no-cache" }, "dependencies": { "mirrorsharp-codemirror-6-preview": "file:../WebAssets/dist", "typeface-open-sans": "0.0.75" }, "devDependencies": { "parcel": "^2.8.2", "process": "^0.11.10" } } ================================================ FILE: AspNetCore.Demo.Net6/packages.lock.json ================================================ { "version": 1, "dependencies": { "net6.0": { "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.3.1, )", "resolved": "4.3.1", "contentHash": "Qbi3OxVMnP7igt5iTaSNDFELvNSfDSQBGL+ViOyR2OWhrfLx4pEeGyh9MlE2N3fcEGo6BcEikJBS3TF8n8s5jQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.3.1]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Direct", "requested": "[4.3.1, )", "resolved": "4.3.1", "contentHash": "qR0MBLaKvuFzFaZi7N1sozQxdGtIfRon/qiX+2iQc/cxQOWVb6nxtowGga0QF2EMrblj3K7OPIQ0mLdcgJc9Ww==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.CSharp": "[4.3.1]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.3.1]", "Microsoft.CodeAnalysis.Common": "[4.3.1]", "Microsoft.CodeAnalysis.Features": "[4.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.3.1]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Direct", "requested": "[4.3.1, )", "resolved": "4.3.1", "contentHash": "cYxnDj4Qaflc4GAG7GY1UAeI/N8oPcdsncz/2H/w9lXHPjvrjG5cskr4vgLAiusI83cllz01hy/W2wgHc70L9g==", "dependencies": { "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Common": "[4.3.1]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Scripting.Common": "[4.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.3.1]", "Microsoft.DiaSymReader": "1.4.0", "Microsoft.VisualStudio.RemoteControl": "16.3.44", "System.Text.Json": "6.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Direct", "requested": "[4.3.1, )", "resolved": "4.3.1", "contentHash": "PtkBobNNtAJ6teR/tzuDGf4829DcIUJJqN4wRtshRG28Xs+DRvnE4znFvZWJ8hsnBWGsywqjpRYjvoAdIYi3NA==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "6.0.0", "Microsoft.CodeAnalysis.Common": "[4.3.1]", "System.Composition": "6.0.0", "System.IO.Pipelines": "6.0.3" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "FSharp.Compiler.Service": { "type": "Transitive", "resolved": "43.8.300", "contentHash": "CoPjQYXXwmYkkHm+yxBHSW9IJVLpvwkKGEzXa5A6ebf8v6GfYaxZc5G+VHojDr586oezp1elFemu+A1WWH095A==", "dependencies": { "FSharp.Core": "[8.0.300]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "7.0.0", "System.Diagnostics.DiagnosticSource": "7.0.2", "System.Memory": "4.5.5", "System.Reflection.Emit": "4.7.0", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "FSharp.Core": { "type": "Transitive", "resolved": "8.0.300", "contentHash": "Jv44fV7TNglyMku89lQcA4Q6mFKLyHb2bs1Yb72nvSVc+cHplEnoZ4XQUaaTLJGUTx/iMqcrkYGtaLzkkIhpaA==" }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.14.1", "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==" }, "Microsoft.Build.Framework": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "jleteC0seumLGTmTVwob97lcwPj/dfgzL/V3g/VVcMZgo2Ic7jzdy8AYpByPDh8e3uRq0SjCl6HOFCjhy5GzRQ==", "dependencies": { "Microsoft.Win32.Registry": "5.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "Microsoft.Build.Utilities.Core": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "pU3GnHcXp8VRMGKxdJCq+tixfhFn+QwEbpqmZmc/nqFHFyuhlGwjonWZMIWcwuCv/8EHgxoOttFvna1vrN+RrA==", "dependencies": { "Microsoft.Build.Framework": "17.12.6", "Microsoft.NET.StringTools": "17.12.6", "Microsoft.Win32.Registry": "5.0.0", "System.Collections.Immutable": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0", "System.Text.Encoding.CodePages": "7.0.0" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.3.3", "contentHash": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "wexpJffSEEwptwe6UTMxRDZCCtz+XubI4Qewl4JECnNhcQrtb0anhSUEV9Nz7WkoNfWkx1fptR8xh1egoxYrqw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.3", "System.Collections.Immutable": "6.0.0", "System.Memory": "4.5.4", "System.Reflection.Metadata": "5.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "6.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "5C9VHvahL98tumlyaT/loB5rW+K/6q0UU7uLyT1Dv15YjZraRkqML9u2t2e8GaO7XqEOtBVqK/SlxXOPqwzxog==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "mRTePOunrPzWkUT7I/FUQF6EFopAuYt0EiYbznkULOyHFT9eHDtN+gaHxqx9or/edAXgpm0KVeybQ83ri/M9Ww==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.CSharp": "[4.3.1]", "Microsoft.CodeAnalysis.Common": "[4.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.3.1]" } }, "Microsoft.CodeAnalysis.Elfie": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "r12elUp4MRjdnRfxEP+xqVSUUfG3yIJTBEJGwbfvF5oU4m0jb9HC0gFG28V/dAkYGMkRmHVi3qvrnBLQSw9X3Q==", "dependencies": { "System.Configuration.ConfigurationManager": "4.5.0", "System.Data.DataSetExtensions": "4.5.0" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "WRX2GecORKhED3VoyYsbjFFBvV3D41BF3N4SDpbdM02Hm3rPdPqsxIQaF6xxHZ9iX0+m/YgT9mV6TiHjQL3qOw==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.3.1]" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "V3yW779IRoi8skcbLYBhryviGgIgtKfkQ4EQKSLHUe6++olAT1pCuE+kbgwXxTpoHqhI4Wc1gEkjNNmgQ3MKgg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.3.1]" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "pnN5bSd/jdf2Qw6pT6X/lFf0oIeDoMyYXEQ+FfPPh/2lOpH+irNNSr1+RMbwCCCo+f6ToI3+NL6lI/aL+Z9THg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.3.1]", "Microsoft.CodeAnalysis.VisualBasic": "[4.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.3.1]" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.4.0", "contentHash": "iLtWq5/W5ePzSraavAFeXAbasE6REDByizTz6M8yQO3e4jf+6pRqPLdNCSvnSfKRVqsF7y/lTVWhqlf89ttweg==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", "resolved": "2.2.0", "contentHash": "uyjY/cqomw1irT4L7lDeg4sJ36MsjHg3wKqpGrBAdzvZaxo85yMF+sAA9RIzTV92fDxuUzjqksMqA0+SNMkMgA==" }, "Microsoft.NET.StringTools": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "w8Ehofqte5bJoR+Fa3f6JwkwFEkGtXxqvQHGOVOSHDzgNVySvL5FSNhavbQSZ864el9c3rjdLPLAtBW8dq6fmg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "Microsoft.VisualStudio.RemoteControl": { "type": "Transitive", "resolved": "16.3.44", "contentHash": "hbc2FxReEyotRXM1dtQSZxt2ccNMBgPbcX6MylKp9UDbHsTPJ0dk5CEuZAqoqOFKUzFtorZL6A7BcRAjP9HU1g==", "dependencies": { "Microsoft.VisualStudio.Utilities.Internal": "16.3.36", "System.Configuration.ConfigurationManager": "4.5.0", "System.IO.FileSystem.AccessControl": "4.5.0" } }, "Microsoft.VisualStudio.Utilities.Internal": { "type": "Transitive", "resolved": "16.3.36", "contentHash": "tVOE9DJbd4PETSgBW+9448jvRdhm/hNHJFaGyCq6Gtlg+ElELBmfMFxgp2rsrqzUkLjehwnrw6uX4Yj9krOfJQ==", "dependencies": { "Microsoft.Win32.Registry": "4.5.0" } }, "Microsoft.Win32.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "Microsoft.Win32.Registry": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", "dependencies": { "System.Security.AccessControl": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "Mobius.ILasm": { "type": "Transitive", "resolved": "0.1.0", "contentHash": "0uB5lko7fQZ4eOqkEyApSwxSwdMqdrduTpi6aAvr1nr03Lw+muS6UaAYCvk2ICN+AR94lPelvSx1+HCCwBMhTQ==", "dependencies": { "System.Reflection.Emit": "4.7.0", "System.Security.Permissions": "5.0.0" } }, "NETStandard.Library": { "type": "Transitive", "resolved": "1.6.1", "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.Win32.Primitives": "4.3.0", "System.AppContext": "4.3.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Console": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.Compression.ZipFile": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Net.Http": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Net.Sockets": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Timer": "4.3.0", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XDocument": "4.3.0" } }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.AppContext": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Composition": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "d7wMuKQtfsxUa7S13tITC8n1cQzewuhD5iDjZtK2prwFfKVzdYtgrTHgjaV03Zq7feGQ5gkP85tJJntXwInsJA==", "dependencies": { "System.Composition.AttributedModel": "6.0.0", "System.Composition.Convention": "6.0.0", "System.Composition.Hosting": "6.0.0", "System.Composition.Runtime": "6.0.0", "System.Composition.TypedParts": "6.0.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "WK1nSDLByK/4VoC7fkNiFuTVEiperuCN/Hyn+VN30R+W2ijO1d0Z2Qm0ScEl9xkSn1G2MyapJi8xpf4R8WRa/w==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "XYi4lPRdu5bM4JVJ3/UIHAiG6V6lWWUlkhB9ab4IOq0FrRsp0F4wTyV4Dj+Ds+efoXJ3qbLqlvaUozDO7OLeXA==", "dependencies": { "System.Composition.AttributedModel": "6.0.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "w/wXjj7kvxuHPLdzZ0PAUt++qJl03t7lENmb2Oev0n3zbxyNULbWBlnd5J5WUMMv15kg5o+/TCZFb6lSwfaUUQ==", "dependencies": { "System.Composition.Runtime": "6.0.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "qkRH/YBaMPTnzxrS5RDk1juvqed4A6HOD/CwRcDGyPpYps1J27waBddiiq1y93jk2ZZ9wuA/kynM+NO0kb3PKg==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "iUR1eHrL8Cwd82neQCJ00MpwNIBs4NZgXzrPqx8NJf/k4+mwBO0XCRmHYJT4OLSwDDqh5nBLJWkz5cROnrGhRA==", "dependencies": { "System.Composition.AttributedModel": "6.0.0", "System.Composition.Hosting": "6.0.0", "System.Composition.Runtime": "6.0.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==", "dependencies": { "System.Security.Cryptography.ProtectedData": "8.0.0" } }, "System.Console": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Data.DataSetExtensions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw==" }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "7.0.2", "contentHash": "hYr3I9N9811e0Bjf2WNwAGGyTuAFbbTgX1RPLt/3Wbm68x3IGcX5Cl75CMmgT6WlNwLQ2tCCWfqYPpypjaf2xA==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.Tracing": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Drawing.Common": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "uoozjI3+dlgKh2onFJcz8aNLh6TRCPlLSh8Dbuljc8CdvqXrxHOVysJlrHvlsOCqceqGBR1wrMPxlnzzhynktw==" }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Buffers": "4.3.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.IO.Compression": "4.3.0" } }, "System.IO.Compression.ZipFile": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", "dependencies": { "System.Buffers": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.IO.FileSystem": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.AccessControl": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "TYe6xstoqT5MlTly0OtPU6u9zWuNScLVMEx6sTCjjx+Hqdp0wCXoG6fnzMpTPMQACXQzi9pd2N5Tloow+5jQdQ==", "dependencies": { "System.Security.AccessControl": "4.5.0", "System.Security.Principal.Windows": "4.5.0" } }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==" }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Net.Sockets": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==" }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "MclTG61lsD9sYdpNz9xsKBzjsmsfCtcMZYXz/IUr2zlhaTaABonlr1ESeompTgM+Xk+IwtGYU7/voh3YWB/fWw==", "dependencies": { "System.Collections.Immutable": "7.0.0" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.InteropServices.RuntimeInformation": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0" } }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", "dependencies": { "Microsoft.NETCore.Platforms": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Cng": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==" }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Permissions": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "uE8juAhEkp7KDBCdjDIE3H9R1HJuEHqeqX8nLX9gmYKWwsqk3T5qZlPx8qle5DPKimC/Fy3AFTdV7HamgCh9qQ==", "dependencies": { "System.Security.AccessControl": "5.0.0", "System.Windows.Extensions": "5.0.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.Encoding.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { "System.Runtime": "4.3.1" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==" }, "System.Threading.Timer": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Windows.Extensions": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "c1ho9WU9ZxMZawML+ssPKZfdnrg/OjR3pe0m9v8230z3acqphwvPJqzAkH54xRYm5ntZHGG1EPP3sux9H3qSPg==", "dependencies": { "System.Drawing.Common": "5.0.0" } }, "System.Xml.ReaderWriter": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Tasks.Extensions": "4.3.0" } }, "System.Xml.XDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "MirrorSharp.AspNetCore": { "type": "Project", "dependencies": { "MirrorSharp.Common": "[3.0.9, )" } }, "MirrorSharp.AspNetCore.Demo.Library": { "type": "Project" }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } }, "MirrorSharp.FSharp": { "type": "Project", "dependencies": { "FSharp.Compiler.Service": "[43.8.300, )", "FSharp.Core": "[8.0.300, )", "Microsoft.Build.Utilities.Core": "[17.12.6, )", "Microsoft.IO.RecyclableMemoryStream": "[2.2.0, )", "MirrorSharp.Common": "[3.0.9, )" } }, "MirrorSharp.IL": { "type": "Project", "dependencies": { "MirrorSharp.Common": "[3.0.9, )", "Mobius.ILasm": "[0.1.0, )", "System.Drawing.Common": "[9.0.0, )" } } } } } ================================================ FILE: Benchmarks/Benchmarks.csproj ================================================ netcoreapp3.1 MirrorSharp.Benchmarks Exe false false MirrorSharp.Benchmarks false ================================================ FILE: Benchmarks/Of.Json/ComplexObjectArrayBenchmarks.cs ================================================ using System.Text.Json; using BenchmarkDotNet.Attributes; using MirrorSharp.Internal; using Newtonsoft.Json; namespace MirrorSharp.Benchmarks.Of.Json { [InProcess] public class ComplexObjectArrayBenchmarks : JsonBenchmarksBase { /* { "type":"completions", "completions":{ "span":{"start":70,"length":0}, "list":[ { "filterText":"Equals", "displayText":"Equals", "tags":["method","public"] }, { "filterText":"GetHashCode", "displayText":"GetHashCode", "tags":["method","public"] },{ "filterText":"GetType", "displayText":"GetType", "tags":["method","public"] },{ "filterText":"ToString", "displayText":"ToString", "tags":["method","public"] } ] } } */ private const int Operations = 1000; [Benchmark(OperationsPerInvoke = Operations)] public void NewtonsoftJson_JsonWriter() { var writer = _newtonsoftJsonWriter!; writer.WriteStartArray(); for (var i = 0; i < Operations; i++) { writer.WriteStartObject(); writer.WritePropertyName("type"); writer.WriteValue("completions"); writer.WritePropertyName("completions"); writer.WriteStartObject(); writer.WritePropertyName("span"); writer.WriteStartObject(); writer.WritePropertyName("start"); writer.WriteValue(70); writer.WritePropertyName("length"); writer.WriteValue(0); writer.WriteEndObject(); writer.WritePropertyName("list"); writer.WriteStartArray(); WriteCompletion(writer, "Equals"); WriteCompletion(writer, "GetHashCode"); WriteCompletion(writer, "GetType"); WriteCompletion(writer, "ToString"); writer.WriteEndArray(); writer.WriteEndObject(); writer.WriteEndObject(); } writer.WriteEndArray(); } [Benchmark(OperationsPerInvoke = Operations)] public void MirrorSharp_FastJsonWriter() { var writer = _fastJsonWriter!; writer.WriteStartArray(); for (var i = 0; i < Operations; i++) { writer.WriteStartObject(); writer.WritePropertyName("type"); writer.WriteValue("completions"); writer.WritePropertyName("completions"); writer.WriteStartObject(); writer.WritePropertyName("span"); writer.WriteStartObject(); writer.WritePropertyName("start"); writer.WriteValue(70); writer.WritePropertyName("length"); writer.WriteValue(0); writer.WriteEndObject(); writer.WritePropertyName("list"); writer.WriteStartArray(); WriteCompletion(writer, "Equals"); WriteCompletion(writer, "GetHashCode"); WriteCompletion(writer, "GetType"); WriteCompletion(writer, "ToString"); writer.WriteEndArray(); writer.WriteEndObject(); writer.WriteEndObject(); } writer.WriteEndArray(); } [Benchmark(OperationsPerInvoke = Operations)] public void SystemTextJson_Utf8JsonWriter() { var writer = _systemTextJsonWriter!; writer.WriteStartArray(); for (var i = 0; i < Operations; i++) { writer.WriteStartObject(); writer.WritePropertyName("type"); writer.WriteStringValue("completions"); writer.WritePropertyName("completions"); writer.WriteStartObject(); writer.WritePropertyName("span"); writer.WriteStartObject(); writer.WritePropertyName("start"); writer.WriteNumberValue(70); writer.WritePropertyName("length"); writer.WriteNumberValue(0); writer.WriteEndObject(); writer.WritePropertyName("list"); writer.WriteStartArray(); WriteCompletion(writer, "Equals"); WriteCompletion(writer, "GetHashCode"); WriteCompletion(writer, "GetType"); WriteCompletion(writer, "ToString"); writer.WriteEndArray(); writer.WriteEndObject(); writer.WriteEndObject(); } writer.WriteEndArray(); } private static void WriteCompletion(JsonTextWriter writer, string text) { writer.WriteStartObject(); writer.WritePropertyName("filterText"); writer.WriteValue(text); writer.WritePropertyName("displayText"); writer.WriteValue(text); writer.WritePropertyName("tags"); writer.WriteStartArray(); writer.WriteValue("method"); writer.WriteValue("public"); writer.WriteEndArray(); writer.WriteEndObject(); } private static void WriteCompletion(FastUtf8JsonWriter writer, string text) { writer.WriteStartObject(); writer.WritePropertyName("filterText"); writer.WriteValue(text); writer.WritePropertyName("displayText"); writer.WriteValue(text); writer.WritePropertyName("tags"); writer.WriteStartArray(); writer.WriteValue("method"); writer.WriteValue("public"); writer.WriteEndArray(); writer.WriteEndObject(); } private static void WriteCompletion(Utf8JsonWriter writer, string text) { writer.WriteStartObject(); writer.WritePropertyName("filterText"); writer.WriteStringValue(text); writer.WritePropertyName("displayText"); writer.WriteStringValue(text); writer.WritePropertyName("tags"); writer.WriteStartArray(); writer.WriteStringValue("method"); writer.WriteStringValue("public"); writer.WriteEndArray(); writer.WriteEndObject(); } } } ================================================ FILE: Benchmarks/Of.Json/JsonBenchmarksBase.cs ================================================ using System; using System.Buffers; using System.IO; using System.Text.Json; using BenchmarkDotNet.Attributes; using MirrorSharp.Internal; using Newtonsoft.Json; namespace MirrorSharp.Benchmarks.Of.Json { public class JsonBenchmarksBase { // ReSharper disable InconsistentNaming protected MemoryStream? _memoryStream; protected JsonTextWriter? _newtonsoftJsonWriter; internal FastUtf8JsonWriter? _fastJsonWriter; protected IBufferWriter? _bufferWriter; protected Utf8JsonWriter? _systemTextJsonWriter; // ReSharper restore InconsistentNaming [IterationSetup] public void Setup() { _memoryStream = new MemoryStream(4096); _newtonsoftJsonWriter = new JsonTextWriter(new StreamWriter(_memoryStream)) { Formatting = Formatting.None }; _fastJsonWriter = new FastUtf8JsonWriter(ArrayPool.Create()); _bufferWriter = new ArrayBufferWriter(4096); _systemTextJsonWriter = new Utf8JsonWriter(_bufferWriter, new JsonWriterOptions { Indented = false }); } protected ArraySegment FlushNewtonsoftJsonWriterAndGetBuffer() { _newtonsoftJsonWriter!.Flush(); ArraySegment buffer; _memoryStream!.TryGetBuffer(out buffer); return buffer; } protected ReadOnlyMemory FlushSystemTextJsonWriterAndGetBuffer() { _systemTextJsonWriter!.Flush(); return _bufferWriter!.GetMemory(); } [IterationCleanup] public void Cleanup() { _fastJsonWriter!.Dispose(); _systemTextJsonWriter!.Dispose(); } } } ================================================ FILE: Benchmarks/Of.Json/WriteValueInt32Benchmarks.cs ================================================ using BenchmarkDotNet.Attributes; namespace MirrorSharp.Benchmarks.Of.Json { [InProcess] public class WriteValueInt32Benchmarks : JsonBenchmarksBase { [Params(-100, -111, 1, 1111111)] public int Value { get; set; } [Benchmark] public void NewtonsoftJson_JsonWriter() { _newtonsoftJsonWriter!.WriteValue(Value); _newtonsoftJsonWriter.Flush(); } [Benchmark] public void MirrorSharp_FastJsonWriter() { _fastJsonWriter!.WriteValue(Value); } [Benchmark] public void SystemTextJson_Utf8JsonWriter() { _systemTextJsonWriter!.WriteNumberValue(Value); _systemTextJsonWriter.Flush(); } } } ================================================ FILE: Benchmarks/Of.Json/WriteValueStringBenchmarks.cs ================================================ using System; using BenchmarkDotNet.Attributes; namespace MirrorSharp.Benchmarks.Of.Json { [InProcess] public class WriteValueStringBenchmarks : JsonBenchmarksBase { [Params("test", @"using System; public class C { public void M() { } } ", "")] public string? Value { get; set; } [Benchmark] public void NewtonsoftJson_JsonWriter() { _newtonsoftJsonWriter!.WriteValue(Value); _newtonsoftJsonWriter.Flush(); //return FlushNewtonsoftJsonWriterAndGetBuffer(); } [Benchmark] public void MirrorSharp_FastJsonWriter() { _fastJsonWriter!.WriteValue(Value); //return _fastJsonWriter.WrittenSegment; } [Benchmark] public void SystemTextJson_Utf8JsonWriter() { _systemTextJsonWriter!.WriteStringValue(Value); _systemTextJsonWriter.Flush(); //return FlushSystemTextJsonWriterAndGetBuffer(); } } } ================================================ FILE: Benchmarks/Program.cs ================================================ using BenchmarkDotNet.Running; using MirrorSharp.Benchmarks.Of.Json; namespace MirrorSharp.Benchmarks { public static class Program { public static void Main(string[] args) { BenchmarkRunner.Run(); } } } ================================================ FILE: Benchmarks/Properties/AssemblyInfo.cs ================================================ using System.Reflection; 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: AssemblyCompany("Andrey Shchekin")] [assembly: AssemblyProduct("MirrorSharp.Benchmarks")] // 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("35d73c72-267b-4598-abc0-f1e1bacde451")] ================================================ FILE: Benchmarks/SignatureHelpBenchmarks.cs ================================================ using System; using System.Text; using System.Threading; using System.Threading.Tasks; using BenchmarkDotNet.Attributes; using MirrorSharp.Internal; using MirrorSharp.Internal.Handlers; using MirrorSharp.Internal.Handlers.Shared; using MirrorSharp.Testing; using MirrorSharp.Testing.Internal; namespace MirrorSharp.Benchmarks { public class SignatureHelpBenchmarks { private static readonly AsyncData LeftParenthesis = new(Encoding.UTF8.GetBytes("("), false, () => Task.FromResult?>(null)); private static readonly AsyncData Semicolon = new(Encoding.UTF8.GetBytes(";"), false, () => Task.FromResult?>(null)); private TypeCharHandler? _handler; private WorkSession? _sessionWithHelp; private WorkSession? _sessionWithNoHelp; [IterationSetup] public void Setup() { _sessionWithHelp = MirrorSharpTestDriver.New().SetTextWithCursor("class C { void M(int a) { M| } }").Session; _sessionWithNoHelp = MirrorSharpTestDriver.New().SetTextWithCursor("class C { void M(int a) { M()| } }").Session; _handler = new TypeCharHandler(new TypedCharEffects(new CompletionSupport(), new SignatureHelpSupport())); } [Benchmark] public void TypeCharExpectingSignatureHelp() { _handler!.ExecuteAsync(LeftParenthesis, _sessionWithHelp!, new StubCommandResultSender(_sessionWithHelp!), CancellationToken.None) .GetAwaiter().GetResult(); } [Benchmark] public void TypeCharNotExpectingSignatureHelp() { _handler!.ExecuteAsync(Semicolon, _sessionWithNoHelp!, new StubCommandResultSender(_sessionWithHelp!), CancellationToken.None) .GetAwaiter().GetResult(); } } } ================================================ FILE: Benchmarks/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETCoreApp,Version=v3.1": { "BenchmarkDotNet": { "type": "Direct", "requested": "[0.11.5, )", "resolved": "0.11.5", "contentHash": "abTGKOzR+Et3ubC2nS/nmQPa82oeibgf1NtlUyYdT05yDAnhaYRtxIS+YjLBlcGXzmI2tjq8zqk/HAQfJzLMtA==", "dependencies": { "BenchmarkDotNet.Annotations": "0.11.5", "CommandLineParser": "2.4.3", "Microsoft.CodeAnalysis.CSharp": "2.10.0", "Microsoft.DotNet.PlatformAbstractions": "2.1.0", "Microsoft.Win32.Registry": "4.5.0", "System.Collections.Immutable": "1.5.0", "System.Diagnostics.FileVersionInfo": "4.3.0", "System.Management": "4.5.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Metadata": "1.6.0", "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", "System.Threading.Tasks.Extensions": "4.5.2", "System.ValueTuple": "4.5.0", "System.Xml.XPath.XmlDocument": "4.3.0", "System.Xml.XmlSerializer": "4.3.0" } }, "Newtonsoft.Json": { "type": "Direct", "requested": "[13.0.3, )", "resolved": "13.0.3", "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" }, "BenchmarkDotNet.Annotations": { "type": "Transitive", "resolved": "0.11.5", "contentHash": "ppKQBf/0k2RpLFtQ6B6XI9x6KRxXR/7jATv4jF03jj8B+M910JDXAZwMWtAdQe24JU5uGKIqlEluhqVE+TT2Yw==" }, "CommandLineParser": { "type": "Transitive", "resolved": "2.4.3", "contentHash": "U2FC9Y8NyIxxU6MpFFdWWu1xwiqz/61v/Doou7kmVjpeIEMLWyiNNkzNlSE84kyJ0O1LKApuEj5z48Ow0Hi4OQ==" }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "2.9.4", "contentHash": "alIJhS0VUg/7x5AsHEoovh/wRZ0RfCSS7k5pDSqpRLTyuMTtRgj6OJJPRApRhJHOGYYsLakf1hKeXFoDwKwNkg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "N5yQdGy+M4kimVG7hwCeGTCfgYjK2o5b/Shumkb/rCC+/SAkvP1HUAYK+vxPFS7dLJNtXLRsmPHKj3fnyNWnrw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "2.9.4", "System.Collections.Immutable": "1.5.0", "System.Memory": "4.5.3", "System.Reflection.Metadata": "1.6.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2", "System.Text.Encoding.CodePages": "4.5.1", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "WDUIhTHem38H6VJ98x2Ssq0fweakJHnHYl7vbG8ARnsAwLoJKCQCy78EeY1oRrCKG42j0v6JVljKkeqSDA28UA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "t9uIwsLzT5zQ1Q3ZIpwE4EOnAf/lGdbQwyeqhyO/BJ+AWDt267Hxlz5k6ypPy14Z6+PW6pTggAGz6MwN31RElQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Features": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "dHs/UyfLgzsVC4FjTi/x+H+yQifgOnpe3rSN8GwkHWjnidePZ3kSqr1JHmFDf5HTQEydYwrwCAfQ0JSzhsEqDA==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "lvMC69ABN/YEaw3ke4cQRqBYZ2V7DJTOT8QXIeAJGJUfwVHTBN0iq2O5zZQrYnnUN2wmeCzCoAg59PKBosVO7g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": "2.9.5", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]", "Microsoft.DiaSymReader": "1.3.0", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": { "type": "Transitive", "resolved": "2.9.5", "contentHash": "SqwdTocsxU7u0Y8am67BY7KSLAhrtDXdBBwt0Nv9TxLVzPBPtPPFS2bHUsxucpOBMBmc10rWE1eJ+IDrr/0/nQ==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "NfBz3b5hFSbO+7xsCNryD+p8axsIJFTG7qM3jvMTC/MqYrU6b8E1b6JoRj5rJSOBB+pSunk+CMqyGQTOWHeDUg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "System.Composition": "1.0.31" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.3.0", "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.DotNet.PlatformAbstractions": { "type": "Transitive", "resolved": "2.1.0", "contentHash": "9KPDwvb/hLEVXYruVHVZ8BkebC8j17DmPb56LnqRF74HqSPLjCkrlFUjOtFpQPA2DeADBRTI/e69aCfRBfrhxw==", "dependencies": { "System.AppContext": "4.1.0", "System.Collections": "4.0.11", "System.IO": "4.1.0", "System.IO.FileSystem": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.InteropServices": "4.1.0", "System.Runtime.InteropServices.RuntimeInformation": "4.0.0" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "2.1.2", "contentHash": "mOJy3M0UN+LUG21dLGMxaWZEP6xYpQEpLuvuEQBaownaX4YuhH6NmNUlN9si+vNkAS6dwJ//N1O4DmLf2CikVg==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "Microsoft.Win32.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "Microsoft.Win32.Registry": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "+FWlwd//+Tt56316p00hVePBCouXyEzT86Jb3+AuRotTND0IYn0OO3obs1gnQEs/txEnt+rF2JBGLItTG+Be6A==", "dependencies": { "System.Security.AccessControl": "4.5.0", "System.Security.Principal.Windows": "4.5.0" } }, "NETStandard.Library": { "type": "Transitive", "resolved": "1.6.1", "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.Win32.Primitives": "4.3.0", "System.AppContext": "4.3.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Console": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.Compression.ZipFile": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Net.Http": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Net.Sockets": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Timer": "4.3.0", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XDocument": "4.3.0" } }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.AppContext": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.CodeDom": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "gqpR1EeXOuzNQWL7rOzmtdIz3CaXVjSQCiaGOs2ivjPwynKSJYm39X81fdlp7WuojZs/Z5t1k5ni7HtKQurhjw==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "1.5.0", "contentHash": "EXKiDFsChZW0RjrZ4FYHu9aW6+P4MCgEDCklsVseRfhoO0F+dXeMSsMRAlVXIo06kGJ/zv+2w1a2uc2+kxxSaQ==" }, "System.Composition": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "I+D26qpYdoklyAVUdqwUBrEIckMNjAYnuPJy/h9dsQItpQwVREkDFs4b4tkBza0kT2Yk48Lcfsv2QQ9hWsh9Iw==", "dependencies": { "System.Composition.AttributedModel": "1.0.31", "System.Composition.Convention": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Composition.TypedParts": "1.0.31" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "NHWhkM3ZkspmA0XJEsKdtTt1ViDYuojgSND3yHhTzwxepiwqZf+BCWuvCbjUt4fe0NxxQhUDGJ5km6sLjo9qnQ==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.Convention": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "GLjh2Ju71k6C0qxMMtl4efHa68NmWeIUYh4fkUI8xbjQrEBvFmRwMDFcylT8/PR9SQbeeL48IkFxU/+gd0nYEQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "fN1bT4RX4vUqjbgoyuJFVUizAl2mYF5VAb+bVIxIYZSSc0BdnX+yGAxcavxJuDDCQ1K+/mdpgyEFc8e9ikjvrg==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0LEJN+2NVM89CE4SekDrrk5tHV5LeATltkp+9WNYrR+Huiyt0vaCqHbbHtVAjPyeLWIc8dOz/3kthRBj32wGQg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0Zae/FtzeFgDBBuILeIbC/T9HMYbW4olAmi8XqqAGosSOWvXfiQLfARZEhiGd0LVXaYgXr0NhxiU1LldRP1fpQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Console": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Diagnostics.FileVersionInfo": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "omCF64wzQ3Q2CeIqkD6lmmxeMZtGHUmzgFMPjfVaOsyqpR66p/JaZzManMw1s33osoAb5gqpncsjie67+yUPHQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Reflection.Metadata": "1.4.1", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.Tracing": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Buffers": "4.3.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.IO.Compression": "4.3.0" } }, "System.IO.Compression.ZipFile": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", "dependencies": { "System.Buffers": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.IO.FileSystem": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Management": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "Z6ac0qPGr3yJtwZEX1SRkhwWa0Kf5NJxx7smLboYsGrApQFECNFdqhGy252T4lrZ5Nwzhd9VQiaifndR3bfHdg==", "dependencies": { "Microsoft.NETCore.Platforms": "2.0.0", "Microsoft.Win32.Registry": "4.5.0", "System.CodeDom": "4.5.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==" }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Net.Sockets": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", "dependencies": { "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "1.6.0", "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==" }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "4.5.2", "contentHash": "wprSFgext8cwqymChhrBLu62LMg/1u92bU+VOwyfBimSPVFXtsNqEWC92Pf9ofzJFlk4IHmJA75EDJn1b2goAQ==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.InteropServices.RuntimeInformation": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0" } }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "vW8Eoq0TMyz5vAG/6ce483x/CP83fgm4SJe5P8Tb1tZaobcvPrbMEL7rhH1DRdrYbbb6F0vq3OlzmK0Pkwks5A==", "dependencies": { "Microsoft.NETCore.Platforms": "2.0.0", "System.Security.Principal.Windows": "4.5.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Cng": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "U77HfRXlZlOeIXd//Yoj6Jnk8AXlbeisf1oq1os+hxOGVnuG+lGSfGqTwTZBoORFF6j/0q7HXIl8cqwQ9aUGqQ==", "dependencies": { "Microsoft.NETCore.Platforms": "2.0.0" } }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==", "dependencies": { "Microsoft.NETCore.Platforms": "2.1.2", "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "System.Text.Encoding.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { "System.Runtime": "4.3.1" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "+MvhNtcvIbqmhANyKu91jQnvIRVSTiaOiFNfKWwXGHG48YAb4I/TyH8spsySiPYla7gKal5ZnF3teJqZAximyQ==" }, "System.Threading.Timer": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.ValueTuple": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" }, "System.Xml.ReaderWriter": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Tasks.Extensions": "4.3.0" } }, "System.Xml.XDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "System.Xml.XmlDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "System.Xml.XmlSerializer": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "MYoTCP7EZ98RrANESW05J5ZwskKDoN0AuZ06ZflnowE50LTpbR5yRg3tHckTVm5j/m47stuGgCrCHWePyHS70Q==", "dependencies": { "System.Collections": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XmlDocument": "4.3.0" } }, "System.Xml.XPath": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "v1JQ5SETnQusqmS3RwStF7vwQ3L02imIzl++sewmt23VGygix04pEH+FCj1yWb+z4GDzKiljr1W7Wfvrx0YwgA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "System.Xml.XPath.XmlDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "A/uxsWi/Ifzkmd4ArTLISMbfFs6XpRPsXZonrIqyTY70xi8t+mDtvSM5Os0RqyRDobjMBwIDHDL4NOIbkDwf7A==", "dependencies": { "System.Collections": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XPath": "4.3.0", "System.Xml.XmlDocument": "4.3.0" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } }, "MirrorSharp.Testing": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )", "Newtonsoft.Json": "[13.0.3, )", "System.Buffers": "[4.5.1, )" } } } } } ================================================ FILE: Common/Advanced/EarlyAccess/IConnectionSendViewer.cs ================================================ using System; using System.Threading; using System.Threading.Tasks; namespace MirrorSharp.Advanced.EarlyAccess { internal interface IConnectionSendViewer { Task ViewDuringSendAsync(string messageTypeName, ReadOnlyMemory message, IWorkSession session, CancellationToken cancellationToken); } } ================================================ FILE: Common/Advanced/EarlyAccess/IRoslynCompilationGuard.cs ================================================ using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Text; namespace MirrorSharp.Advanced.EarlyAccess { internal interface IRoslynCompilationGuard { void ValidateCompilation(Compilation compilation, IRoslynSession session); } } ================================================ FILE: Common/Advanced/EarlyAccess/IRoslynSourceTextGuard.cs ================================================ using Microsoft.CodeAnalysis.Text; namespace MirrorSharp.Advanced.EarlyAccess { internal interface IRoslynSourceTextGuard { void ValidateSourceText(SourceText sourceText); } } ================================================ FILE: Common/Advanced/EarlyAccess/RoslynCompilationGuardException.cs ================================================ using System; namespace MirrorSharp.Advanced.EarlyAccess { internal class RoslynCompilationGuardException : Exception { public RoslynCompilationGuardException() { } public RoslynCompilationGuardException(string message) : base(message) { } public RoslynCompilationGuardException(string message, Exception inner) : base(message, inner) { } } } ================================================ FILE: Common/Advanced/EarlyAccess/RoslynSourceTextGuardException.cs ================================================ using System; namespace MirrorSharp.Advanced.EarlyAccess { internal class RoslynSourceTextGuardException : Exception { public RoslynSourceTextGuardException() { } public RoslynSourceTextGuardException(string message) : base(message) { } public RoslynSourceTextGuardException(string message, Exception inner) : base(message, inner) { } } } ================================================ FILE: Common/Advanced/FastJsonWriterExtensions.cs ================================================ using System; using System.Collections.Immutable; using System.Text; using MirrorSharp.Internal; namespace MirrorSharp.Advanced { /// /// Provides common helper methods for . /// public static class FastJsonWriterExtensions { /// Writes a new JSON property with a string value (e.g. "name": "value"). /// Writer to write the property to. /// Name of the property to write. /// Value of the property to write; can be null. public static void WriteProperty(this IFastJsonWriter writer, string name, string? value) { Argument.NotNull(nameof(writer), writer); writer.WritePropertyName(name); writer.WriteValue(value); } /// Writes a new JSON property with a string value (e.g. "name": "value"). /// Writer to write the property to. /// Name of the property to write. /// Value of the property to write; can be null. public static void WriteProperty(this IFastJsonWriter writer, string name, StringBuilder? value) { Argument.NotNull(nameof(writer), writer); writer.WritePropertyName(name); writer.WriteValue(value); } /// Writes a new JSON property with a string value (e.g. "name": "value"). /// Writer to write the property to. /// Name of the property to write. /// Value of the property to write. public static void WriteProperty(this IFastJsonWriter writer, string name, ArraySegment value) { Argument.NotNull(nameof(writer), writer); writer.WritePropertyName(name); writer.WriteValue(value); } /// Writes a new JSON property with a string value (e.g. "name": "value"). /// Writer to write the property to. /// Name of the property to write. /// Value of the property to write; can be null. public static void WriteProperty(this IFastJsonWriter writer, string name, ImmutableArray value) { Argument.NotNull(nameof(writer), writer); writer.WritePropertyName(name); writer.WriteValue(value); } /// Writes a new JSON property with a single-character string value (e.g. "name": "c"). /// Writer to write the property to. /// Name of the property to write. /// Value of the property to write. public static void WriteProperty(this IFastJsonWriter writer, string name, char value) { Argument.NotNull(nameof(writer), writer); writer.WritePropertyName(name); writer.WriteValue(value); } /// Writes a new JSON property with an integer value (e.g. "name": 1). /// Writer to write the property to. /// Name of the property to write. /// Value of the property to write. public static void WriteProperty(this IFastJsonWriter writer, string name, int value) { Argument.NotNull(nameof(writer), writer); writer.WritePropertyName(name); writer.WriteValue(value); } /// Writes a new JSON property with a boolean value (e.g. "name": true). /// Writer to write the property to. /// Name of the property to write. /// Value of the property to write. public static void WriteProperty(this IFastJsonWriter writer, string name, bool value) { Argument.NotNull(nameof(writer), writer); writer.WritePropertyName(name); writer.WriteValue(value); } /// Writes a new JSON property and opens its object value (e.g. "name": {). /// Writer to write the property to. /// Name of the property to write. public static void WritePropertyStartObject(this IFastJsonWriter writer, string name) { Argument.NotNull(nameof(writer), writer); writer.WritePropertyName(name); writer.WriteStartObject(); } /// Writes a new JSON property and opens its array value (e.g. "name": [). /// Writer to write the property to. /// Name of the property to write. public static void WritePropertyStartArray(this IFastJsonWriter writer, string name) { Argument.NotNull(nameof(writer), writer); writer.WritePropertyName(name); writer.WriteStartArray(); } } } ================================================ FILE: Common/Advanced/IExceptionLogger.cs ================================================ using System; namespace MirrorSharp.Advanced { /// Provides a way to log unhandled exceptions. public interface IExceptionLogger { /// Logs a given exception. /// Exception to log. /// Current /// Implementations should avoid throwing exceptions from this method. void LogException(Exception exception, IWorkSession session); } } ================================================ FILE: Common/Advanced/IFastJsonWriter.cs ================================================ using System; using System.Collections.Immutable; using System.IO; using System.Text; namespace MirrorSharp.Advanced { /// /// JSON writer used to communicate with MirrorSharp clients. /// /// /// At the moment the output is not actively validated -- /// writer can produce invalid JSON if not used carefully. /// public interface IFastJsonWriter : IDisposable { /// Opens a new JSON object ({). void WriteStartObject(); /// Closes current JSON object (}). void WriteEndObject(); /// Opens an new JSON array ([). void WriteStartArray(); /// Closes current JSON array (]). void WriteEndArray(); /// Writes a new JSON property name (e.g. "name":). /// Name of the property to write. void WritePropertyName(string name); /// Writes value as a JSON string. /// Value to write; can be null. void WriteValue(string? value); /// Writes value as a JSON string. /// Value to write; can be null. void WriteValue(StringBuilder? value); /// Writes value as a JSON string. /// Value to write. void WriteValue(ArraySegment value); /// Writes value as a JSON string. /// Value to write. void WriteValue(ImmutableArray value); /// Writes value as a JSON string. /// Value to write. void WriteValue(char value); /// Writes value as a JSON number. /// Value to write. void WriteValue(int value); /// Writes value as a JSON boolean. /// Value to write. void WriteValue(bool value); /// Writes a start " for a JSON string, and returns a for writing its content. /// A writer for writing into the JSON string. /// The returned writer should be disposed for the string to be closed properly. TextWriter OpenString(); } } ================================================ FILE: Common/Advanced/IRoslynSession.cs ================================================ using System; using Microsoft.CodeAnalysis; namespace MirrorSharp.Advanced { /// Represents a user session based on Roslyn. public interface IRoslynSession { /// Roslyn associated with the current session. Project Project { get; set; } /// /// Adds assembly references to the current session and attempts to discover corresponding XML documentation. /// /// Paths to assemblies to be added. /// /// This method will attempt to automatically discover XML documentation files for the assemblies being added. /// However it will always succeed, whether the XML documentation is available or not. /// /// void AddMetadataReferencesFromFiles(params string[] paths); /// /// Sets or unsets script mode for the Roslyn session. /// /// Whether the session should use script mode. /// Host object type for the session; must be null if is false. /// /// Members of are directly available to the script. For example /// if you set hostObjectType is , you can use /// in the script by just writing Next(). /// /// /// void SetScriptMode(bool isScript = true, Type? hostObjectType = null); } } ================================================ FILE: Common/Advanced/ISetOptionFromClientExtension.cs ================================================ namespace MirrorSharp.Advanced { /// An interface used to implement custom (extension) options. public interface ISetOptionsFromClientExtension { /// Method called each time MirrorSharp encounters an extension option (x-*). /// Current . /// Name of the extension option; always starts with 'x-'. /// Value of the extension option, as provided by the client. /// true if extension options is recognized; otherwise, false. bool TrySetOption(IWorkSession session, string name, string value); } } ================================================ FILE: Common/Advanced/ISlowUpdateExtension.cs ================================================ using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; namespace MirrorSharp.Advanced { /// An interface used to implement periodic custom processing. public interface ISlowUpdateExtension { /// Method called by MirrorSharp periodically (e.g. each 500ms), if there were any changes. /// Current . /// Current diagnostics. can add extra diagnosics if needed. /// A that MirrorSharp can use to cancel processing. /// Any object; result will be passed to . /// If the return value implements , it will be automatically disposed after call. Task ProcessAsync(IWorkSession session, IList diagnostics, CancellationToken cancellationToken); /// Called after ; writes its result to the client if required. /// used to write the result. /// Result returned by . /// Current . void WriteResult(IFastJsonWriter writer, object? result, IWorkSession session); } } ================================================ FILE: Common/Advanced/IWorkSession.cs ================================================ using System.Collections.Generic; using Microsoft.CodeAnalysis; namespace MirrorSharp.Advanced { /// Represents an active user session. public interface IWorkSession { /// Returns current session language name (e.g. the value of ). string LanguageName { get; } /// Specifies whether the current session is based on Roslyn. bool IsRoslyn { get; } /// Returns associated Roslyn session if any; throws otherwise. IRoslynSession Roslyn { get; } /// Returns current source code handled by the session. string GetText(); /// Arbitrary data associated with the current session. IDictionary ExtensionData { get; } } } ================================================ FILE: Common/Advanced/MirrorSharpRoslynOptions.cs ================================================ using System; using System.Collections.Immutable; using System.Reflection; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Diagnostics; using MirrorSharp.Internal; using MirrorSharp.Internal.Roslyn; namespace MirrorSharp.Advanced { /// Base class for Roslyn-based language options. Should not be used directly. /// Type of the specific subclass (provided by that subclass). /// Type of for this language. /// Type of for this language. public abstract class MirrorSharpRoslynOptions : IRoslynLanguageOptions where TSelf: MirrorSharpRoslynOptions where TParseOptions : ParseOptions where TCompilationOptions : CompilationOptions { private TParseOptions _parseOptions; private TCompilationOptions _compilationOptions; private ImmutableList _metadataReferences; private ImmutableList _analyzerReferences; private bool _isScript; private Type? _hostObjectType; internal MirrorSharpRoslynOptions( TParseOptions parseOptions, TCompilationOptions compilationOptions, ImmutableList metadataReferences, ImmutableList analyzerReferences ) { _parseOptions = parseOptions; _compilationOptions = compilationOptions; _metadataReferences = metadataReferences; _analyzerReferences = analyzerReferences; } /// for this language. public TParseOptions ParseOptions { get => _parseOptions; set => _parseOptions = Argument.NotNull(nameof(value), value); } /// for this language. public TCompilationOptions CompilationOptions { get => _compilationOptions; set => _compilationOptions = Argument.NotNull(nameof(value), value); } /// s for this language. public ImmutableList MetadataReferences { get => _metadataReferences; set => _metadataReferences = Argument.NotNull(nameof(value), value); } /// s for this language. public ImmutableList AnalyzerReferences { get => _analyzerReferences; set => _analyzerReferences = Argument.NotNull(nameof(value), value); } /// Sets or unsets script mode for this language. /// Whether the language should use script mode. /// Host object type for the session; must be null if is false. /// Current instance (for convenience). /// /// Members of are directly available to the script. For example /// if you set hostObjectType is , you can use /// in the script by just writing Next(). /// /// /// public TSelf SetScriptMode(bool isScript = true, Type? hostObjectType = null) { RoslynScriptHelper.Validate(isScript, hostObjectType); ParseOptions = (TParseOptions)ParseOptions.WithKind(RoslynScriptHelper.GetSourceKind(isScript)); _isScript = isScript; _hostObjectType = hostObjectType; return (TSelf)this; } /// /// Adds assembly references to and attempts to discover corresponding XML documentation. /// /// Paths to assemblies to be added. /// Current instance (for convenience). /// /// This method will attempt to automatically discover XML documentation files for the assemblies being added. /// However it will always succeed, whether the XML documentation is available or not. /// /// public TSelf AddMetadataReferencesFromFiles(params string[] paths) { _metadataReferences = _metadataReferences.AddRange(MetadataReferenceFactory.CreateFromFilesSlow(paths)); return (TSelf)this; } private protected static AnalyzerFileReference CreateAnalyzerReference(string assemblyName) { var assembly = Assembly.Load(new AssemblyName(assemblyName)); return new AnalyzerFileReference(assembly.Location, new PreloadedAnalyzerAssemblyLoader(assembly)); } ParseOptions IRoslynLanguageOptions.ParseOptions => ParseOptions; CompilationOptions IRoslynLanguageOptions.CompilationOptions => CompilationOptions; ImmutableList IRoslynLanguageOptions.MetadataReferences => MetadataReferences; bool IRoslynLanguageOptions.IsScript => _isScript; Type? IRoslynLanguageOptions.HostObjectType => _hostObjectType; } } ================================================ FILE: Common/CHANGELOG.md ================================================ # Changelog ## [3.0.10] - 2024-11-19 ### Fixed - Fixed support for Microsoft.CodeAnalysis 4.12.0 (preview) - Fixed support for Microsoft.CodeAnalysis 4.11.0 (final) with help from @Sicos1977 - Fixed support for Microsoft.CodeAnalysis 4.10.0 (final) with help from @Sicos1977 - Added explicit dependency on safe version of System.Net.Http to resolve security audit warnings - Added explicit dependency on safe version of System.Text.RegularExpressions to resolve security audit warnings ## [3.0.9] - 2024-06-01 ### Fixed - Fixed support for Microsoft.CodeAnalysis 4.11.0 (preview versions) - Fixed support for Microsoft.CodeAnalysis 4.10.0 (preview versions) ## [3.0.8] - 2023-10-14 ### Fixed - Fixed support for Microsoft.CodeAnalysis 4.9.0 (preview versions) ## [3.0.7] - 2023-09-07 ### Fixed - Fixed support for Microsoft.CodeAnalysis 4.8.0 (preview versions) ## [3.0.6] - 2023-05-29 ### Fixed - Fixed support for Microsoft.CodeAnalysis 4.7.0 (preview versions) - Fixed support for Microsoft.CodeAnalysis 4.6.0 ## [3.0.5] - 2023-03-12 ### Fixed - Fixed autocompletion sometimes disappearing for the durration of the session when using newer Microsoft.CodeAnalysis ## [3.0.4] - 2023-01-06 ### Fixed - Fixed sorting order of diagnostic quickfix actions (C#/VB) ## [3.0.3] - 2022-12-15 ### Fixed - Fixed support for Microsoft.CodeAnalysis 4.5.0+ (preview versions) ## [3.0.2] - 2022-10-25 ### Fixed - Fixed support for Microsoft.CodeAnalysis 4.4.0+ (preview versions) ## [3.0.1] - 2022-08-13 ### Fixed - Fixed support for Microsoft.CodeAnalysis 4.4.0+ (preview versions) - Fixed support for Microsoft.CodeAnalysis 4.3.0+ - Fixed support for .NET Framework XML documentation redirects on x64 ## [3.0.0] - 2022-04-04 ## [3.0.0-test-2022-04-02-1] - 2022-04-02 ## [3.0.0-test-2022-04-01-1] - 2022-04-01 ### Changed - Updated minimum .NET Core target to 3.1 (.NET Standard 2.0 should still allow older targets) - Updated dependency on System.Memory to 4.5.4 - Made WorkSession.Extensions values nullable - Internal restructuring (Common is now split into multiple internal packages) ### Added - Internal prototypes of new extensions (not exposed) ### Fixed - Fixed support for Microsoft.CodeAnalysis 4.2.0+ - Fixed support for Microsoft.CodeAnalysis 4.1.0+ ### Removed - Some obsolete properties on MirrorSharpOptions are now marked Obsolete(true) and will not compile ## [2.2.8] - 2021-09-03 ### Changed - Internal change to support MirrorSharp.IL 0.1 ## [2.2.7] - 2021-05-07 ### Fixed - Error when force-requesting signature help for F# ## [2.2.7-preview-2021-07-08-1] - 2021-07-08-1 ## [2.2.6] - 2021-06-22 ## [2.2.5] - 2021-06-21 ## [2.2.4] - 2021-06-20 ### Changed - Internal refactoring (no API changes) - Internal diagnostics to investigate specific issues ## [2.2.3] - 2021-03-04 ## [2.2.2] - 2020-12-17 ### Added - Internal prototypes of new extensions (not exposed) ## [2.2.1] - 2020-09-12 ### Added - Show XML documentation in signature help. ## [2.2.0] - 2020-09-05 ### Added - Ability to add custom Analyzers, e.g: `SetupCSharp(o => o.AnalyzerReferences = o.AnalyzerReferences.Add(...))`. ================================================ FILE: Common/Common.csproj ================================================ MirrorSharp.Common MirrorSharp netstandard2.0; netcoreapp3.1 3.0.10 MirrorSharp shared server library. $(DescriptionSuffix) Roslyn;CodeMirror true <_RoslynInternalsProject Include="../Internal.Roslyn*/*.csproj" Exclude="../Internal.RoslynInternals/*.csproj" /> <_RoslynTestProject Include="../Tests.*/*.csproj" /> $(DefineConstants);NETSTANDARD true ================================================ FILE: Common/Internal/Abstraction/CurrentCompletion.cs ================================================ using Microsoft.CodeAnalysis.Completion; namespace MirrorSharp.Internal.Abstraction { internal class CurrentCompletion { public CompletionList? List { get; set; } public bool ChangeEchoPending { get; set; } public char? PendingChar { get; set; } public void ResetPending() { ChangeEchoPending = false; PendingChar = null; } } } ================================================ FILE: Common/Internal/Abstraction/ILanguage.cs ================================================ namespace MirrorSharp.Internal.Abstraction { internal interface ILanguage { string Name { get; } ILanguageSessionInternal CreateSession(string text, ILanguageSessionExtensions services); } } ================================================ FILE: Common/Internal/Abstraction/ILanguageSession.cs ================================================ using System; using System.Collections.Immutable; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Completion; using Microsoft.CodeAnalysis.Text; namespace MirrorSharp.Internal.Abstraction { internal interface ILanguageSessionInternal : IDisposable { string GetText(); void ReplaceText(string? newText, int start = 0, int? length = null); Task> GetDiagnosticsAsync(CancellationToken cancellationToken); bool ShouldTriggerCompletion(int cursorPosition, CompletionTrigger trigger); Task GetCompletionsAsync(int cursorPosition, CompletionTrigger trigger, CancellationToken cancellationToken); Task GetCompletionDescriptionAsync(CompletionItem item, CancellationToken cancellationToken); Task GetCompletionChangeAsync(TextSpan completionSpan, CompletionItem item, CancellationToken cancellationToken); } } ================================================ FILE: Common/Internal/Argument.cs ================================================ using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; // ReSharper disable UnusedMember.Global // ReSharper disable ArrangeStaticMemberQualifier namespace MirrorSharp.Internal { /// /// Provides methods for verification of argument preconditions. /// internal static class Argument { // ReSharper restore CheckNamespace /// /// Verifies that a given argument value is not null and returns the value provided. /// /// Type of the . /// Argument name. /// Argument value. /// Thrown if is null. /// if it is not null. public static T NotNull(string name, T value) where T : class { if (value == null) throw new ArgumentNullException(name); return value; } /// /// Verifies that a given argument value is not null and returns the value provided. /// /// Type of the . /// Argument name. /// Argument value. /// Thrown if is null. /// if it is not null. public static T NotNull(string name, T? value) where T : struct { if (value == null) throw new ArgumentNullException(name); return value.Value; } /// /// Verifies that a given argument value is not null or empty and returns the value provided. /// /// Argument name. /// Argument value. /// Thrown if is null. /// Thrown if is empty. /// if it is not null or empty. public static string NotNullOrEmpty(string name, string value) { Argument.NotNull(name, value); if (value.Length == 0) throw NewArgumentEmptyException(name); return value; } /// /// Verifies that a given argument value is not null or empty and returns the value provided. /// /// Argument name. /// Argument value. /// Thrown if is null. /// Thrown if is empty. /// if it is not null or empty. public static T[] NotNullOrEmpty(string name, T[] value) { Argument.NotNull(name, value); if (value.Length == 0) throw NewArgumentEmptyException(name); return value; } /// /// Verifies that a given argument value is not null or empty and returns the value provided. /// /// Argument name. /// Argument value. /// Thrown if is null. /// Thrown if is empty. /// if it is not null or empty. public static TCollection NotNullOrEmpty(string name, TCollection value) where TCollection : class, IEnumerable { Argument.NotNull(name, value); var enumerator = value.GetEnumerator(); try { if (!enumerator.MoveNext()) throw NewArgumentEmptyException(name); } finally { (enumerator as IDisposable)?.Dispose(); } return value; } /// /// Verifies that a given argument value is not empty and returns the value provided. /// /// Argument name. /// Argument value. /// Thrown if is empty. /// if it is not empty. public static ReadOnlySpan NotEmpty(string name, ReadOnlySpan value) { return !value.IsEmpty ? value : throw NewArgumentEmptyException(name); } private const string PotentialDoubleEnumeration = "Using NotNullOrEmpty with plain IEnumerable may cause double enumeration. Please use a collection instead."; /// /// (DO NOT USE) Ensures that NotNullOrEmpty can not be used with plain , /// as this may cause double enumeration. /// [EditorBrowsable(EditorBrowsableState.Never)] [Obsolete(PotentialDoubleEnumeration, true)] // ReSharper disable UnusedParameter.Global public static void NotNullOrEmpty(string name, IEnumerable value) { // ReSharper restore UnusedParameter.Global throw new Exception(PotentialDoubleEnumeration); } /// /// (DO NOT USE) Ensures that NotNullOrEmpty can not be used with plain , /// as this may cause double enumeration. /// [EditorBrowsable(EditorBrowsableState.Never)] [Obsolete(PotentialDoubleEnumeration, true)] // ReSharper disable UnusedParameter.Global public static void NotNullOrEmpty(string name, IEnumerable value) { // ReSharper restore UnusedParameter.Global throw new Exception(PotentialDoubleEnumeration); } private static Exception NewArgumentEmptyException(string name) { return new ArgumentException("Value can not be empty.", name); } /// /// Casts a given argument into a given type if possible. /// /// Type to cast into. /// Argument name. /// Argument value. /// Thrown if can not be cast into type . /// cast into . public static T Cast(string name, object value) { if (!(value is T)) throw new ArgumentException(string.Format("The value \"{0}\" isn't of type \"{1}\".", value, typeof(T)), name); return (T)value; } /// /// Verfies that a given argument is not null and casts it into a given type if possible. /// /// Type to cast into. /// Argument name. /// Argument value. /// Thrown if is null. /// Thrown if can not be cast into type . /// cast into . public static T NotNullAndCast(string name, object value) { Argument.NotNull(name, value); return Argument.Cast(name, value); } /// /// Verifies that a given argument value is greater than or equal to zero and returns the value provided. /// /// Argument name. /// Argument value. /// Thrown if is less than zero. /// if it is greater than or equal to zero. public static int PositiveOrZero(string name, int value) { if (value < 0) { // ReSharper disable once HeapView.BoxingAllocation throw new ArgumentOutOfRangeException(name, value, "Value must be positive or zero."); } return value; } /// /// Verifies that a given argument value is greater than zero and returns the value provided. /// /// Argument name. /// Argument value. /// Thrown if is less than or equal to zero. /// if it is greater than zero. public static int PositiveNonZero(string name, int value) { if (value <= 0) { // ReSharper disable once HeapView.BoxingAllocation throw new ArgumentOutOfRangeException(name, value, "Value must be positive and not zero."); } return value; } } } ================================================ FILE: Common/Internal/AsyncData.cs ================================================ using System; using System.Threading.Tasks; namespace MirrorSharp.Internal { internal readonly struct AsyncData { private static readonly Task?> NullSegmentTask = Task.FromResult?>(null); public static readonly AsyncData Empty = new(ReadOnlyMemory.Empty, false, static () => NullSegmentTask); private readonly ReadOnlyMemory _first; private readonly Func?>> _getNextAsync; private readonly bool _getNextCalled; public AsyncData(ReadOnlyMemory first, bool mightHaveNext, Func?>> getNextAsync) { Argument.NotNull(nameof(getNextAsync), getNextAsync); _first = first; MightHaveNext = mightHaveNext; _getNextAsync = getNextAsync; _getNextCalled = false; } [Obsolete("Can be removed in v3, but needed before that for compatibility with Testing.", true)] public AsyncData(ArraySegment first, bool mightHaveNext, Func?>> getNextAsync) { Argument.NotNull(nameof(getNextAsync), getNextAsync); _first = first; MightHaveNext = mightHaveNext; _getNextAsync = async () => await getNextAsync().ConfigureAwait(false); _getNextCalled = false; } public ReadOnlyMemory GetFirst() { if (_getNextCalled) throw new InvalidOperationException(); return _first; } public bool MightHaveNext { get; } public Task?> GetNextAsync() => _getNextAsync(); } } ================================================ FILE: Common/Internal/AsyncDataConvert.cs ================================================ using System; using System.Buffers; using System.Text; using System.Threading.Tasks; namespace MirrorSharp.Internal { internal static class AsyncDataConvert { public static async ValueTask ToUtf8StringAsync(AsyncData data, int offsetInFirstSegment, ArrayPool charArrayPool) { var first = data.GetFirst().Slice(offsetInFirstSegment); if (!data.MightHaveNext) return Encoding.UTF8.GetString(first.Span); var decoder = Encoding.UTF8.GetDecoder(); using var chars = new PooledGrowableArray(first.Length * 2, charArrayPool); decoder.Convert(first.Span, chars.Array.AsSpan(), false, out int bytesUsed, out int charsUsed, out bool completed); var charsTotalCount = charsUsed; var next = await data.GetNextAsync().ConfigureAwait(false); while (next != null) { var requiredCharCount = charsTotalCount + next.Value.Length; if (requiredCharCount > chars.Array.Length) chars.Grow(requiredCharCount); decoder.Convert(next.Value.Span, chars.Array.AsSpan().Slice(charsTotalCount), false, out bytesUsed, out charsUsed, out completed); charsTotalCount += charsUsed; next = await data.GetNextAsync().ConfigureAwait(false); } if (!completed) { // Flush. Ignore the first array -- can be anything decoder.Convert(ReadOnlySpan.Empty, chars.Array.AsSpan().Slice(charsTotalCount), true, out bytesUsed, out charsUsed, out completed); charsTotalCount += charsUsed; } return new string(chars.Array, 0, charsTotalCount); } } } ================================================ FILE: Common/Internal/CharArrayString.cs ================================================ using System.Collections.Immutable; namespace MirrorSharp.Internal { internal struct CharArrayString { public CharArrayString(ImmutableArray chars) { Chars = chars; } public ImmutableArray Chars { get; } } } ================================================ FILE: Common/Internal/CommandIds.cs ================================================ namespace MirrorSharp.Internal { internal static class CommandIds { public const char ApplyDiagnosticAction = 'F'; public const char CompletionState = 'S'; public const char MoveCursor = 'M'; public const char RequestInfoTip = 'I'; public const char RequestSelfDebugData = 'Y'; public const char ReplaceText = 'R'; public const char SetOptions = 'O'; public const char SignatureHelpState = 'P'; public const char SlowUpdate = 'U'; public const char TypeChar = 'C'; } } ================================================ FILE: Common/Internal/Connection.cs ================================================ using System; using System.Buffers; using System.Collections.Immutable; using System.Net.WebSockets; using System.Text; using System.Threading; using System.Threading.Tasks; using MirrorSharp.Advanced; using MirrorSharp.Advanced.EarlyAccess; using MirrorSharp.Internal.Handlers; using MirrorSharp.Internal.Results; namespace MirrorSharp.Internal { internal class Connection : ICommandResultSender, IDisposable { public static int InputBufferSize => 4096; private readonly ArrayPool _bufferPool; private readonly IConnectionSendViewer? _sendViewer; private readonly WebSocket _socket; private readonly WorkSession _session; private readonly ImmutableArray _handlers; private readonly byte[] _inputBuffer; private readonly FastUtf8JsonWriter _messageWriter; private readonly IConnectionOptions? _options; private readonly IExceptionLogger? _exceptionLogger; private string? _currentMessageTypeName; public Connection( WebSocket socket, WorkSession session, ImmutableArray handlers, ArrayPool bufferPool, IConnectionSendViewer? sendViewer, IExceptionLogger? exceptionLogger, IConnectionOptions? options ) { _socket = socket; _session = session; _handlers = handlers; _messageWriter = new FastUtf8JsonWriter(bufferPool); _options = options; _sendViewer = sendViewer; _exceptionLogger = exceptionLogger; _bufferPool = bufferPool; _inputBuffer = bufferPool.Rent(InputBufferSize); } public bool IsConnected => _socket.State == WebSocketState.Open; public async Task ReceiveAndProcessAsync(CancellationToken cancellationToken) { try { await ReceiveAndProcessInternalAsync(cancellationToken).ConfigureAwait(false); } catch (Exception ex) { var exception = ex; try { try { _exceptionLogger?.LogException(exception, _session); } catch (Exception logException) { exception = new AggregateException(exception, logException); } var error = (_options?.IncludeExceptionDetails ?? false) ? exception.ToString() : "A server error has occurred."; await SendErrorAsync(error, cancellationToken).ConfigureAwait(false); } catch (Exception sendException) { throw new AggregateException(ex, sendException).Flatten(); } throw; } } // ReSharper disable once HeapView.ClosureAllocation private async Task ReceiveAndProcessInternalAsync(CancellationToken cancellationToken) { var first = await _socket.ReceiveAsync(new ArraySegment(_inputBuffer), cancellationToken).ConfigureAwait(false); if (first.MessageType == WebSocketMessageType.Close) { await _socket.CloseAsync(first.CloseStatus ?? WebSocketCloseStatus.Empty, first.CloseStatusDescription, cancellationToken).ConfigureAwait(false); return; } if (first.MessageType == WebSocketMessageType.Binary) { await ReceiveToEndAsync(cancellationToken).ConfigureAwait(false); throw new FormatException("Expected text data (received binary)."); } // it is important to record this conditionally on SelfDebug being enabled, otherwise // we lose no-allocation performance by allocating here var messageForDebug = _session.SelfDebug != null ? Encoding.UTF8.GetString(_inputBuffer, 0, first.Count) : null; _session.SelfDebug?.Log("before", messageForDebug, _session.CursorPosition, _session.GetText()); var commandId = _inputBuffer[0]; var handler = ResolveHandler(commandId); var last = first; await handler.ExecuteAsync( new AsyncData( _inputBuffer.AsMemory(1, first.Count - 1), !first.EndOfMessage, // Can we avoid this allocation? async () => { if (last.EndOfMessage) return null; last = await _socket.ReceiveAsync(new ArraySegment(_inputBuffer), cancellationToken).ConfigureAwait(false); return _inputBuffer.AsMemory(0, last.Count); } ), _session, this, cancellationToken ).ConfigureAwait(false); if (!last.EndOfMessage) { await ReceiveToEndAsync(cancellationToken).ConfigureAwait(false); // ReSharper disable once HeapView.BoxingAllocation throw new InvalidOperationException($"Received message has unread data after command '{(char)commandId}'."); } _session.SelfDebug?.Log("after", messageForDebug, _session.CursorPosition, _session.GetText()); } private async Task ReceiveToEndAsync(CancellationToken cancellationToken) { while (!(await _socket.ReceiveAsync(new ArraySegment(_inputBuffer), cancellationToken).ConfigureAwait(false)).EndOfMessage) { } } private ICommandHandler ResolveHandler(byte commandId) { var handlerIndex = commandId - (byte)'A'; if (handlerIndex < 0 || handlerIndex > _handlers.Length - 1) { // ReSharper disable once HeapView.BoxingAllocation throw new FormatException($"Invalid command: '{(char)commandId}'."); } var handler = _handlers[handlerIndex]; if (handler == null) { // ReSharper disable once HeapView.BoxingAllocation throw new FormatException($"Unknown command: '{(char)commandId}'."); } return handler; } private Task SendErrorAsync(string message, CancellationToken cancellationToken) { var writer = StartJsonMessage("error"); writer.WriteProperty("message", message); return SendJsonMessageAsync(cancellationToken); } private FastUtf8JsonWriter StartJsonMessage(string messageTypeName) { _messageWriter.Reset(); _messageWriter.WriteStartObject(); _messageWriter.WriteProperty("type", messageTypeName); _currentMessageTypeName = messageTypeName; return _messageWriter; } private Task SendJsonMessageAsync(CancellationToken cancellationToken) { _messageWriter.WriteEndObject(); var viewTask = _sendViewer?.ViewDuringSendAsync(_currentMessageTypeName!, _messageWriter.WrittenSegment, _session, cancellationToken); var sendTask = _socket.SendAsync( _messageWriter.WrittenSegment, WebSocketMessageType.Text, true, cancellationToken ); if (viewTask is { IsCompleted: false }) return WhenAll(viewTask, sendTask); return sendTask; } private async Task WhenAll(Task first, Task second) { await first; await second; } public void Dispose() { _bufferPool.Return(_inputBuffer); _messageWriter.Dispose(); _session.Dispose(); } IFastJsonWriter ICommandResultSender.StartJsonMessage(string messageTypeName) => StartJsonMessage(messageTypeName); Task ICommandResultSender.SendJsonMessageAsync(CancellationToken cancellationToken) => SendJsonMessageAsync(cancellationToken); } } ================================================ FILE: Common/Internal/CurrentSignatureHelp.cs ================================================ using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal { internal struct CurrentSignatureHelp { public CurrentSignatureHelp(ISignatureHelpProviderWrapper provider, SignatureHelpItemsData items) { Provider = provider; Items = items; } public ISignatureHelpProviderWrapper Provider { get; } public SignatureHelpItemsData Items { get; } } } ================================================ FILE: Common/Internal/CustomWorkspace.cs ================================================ using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Host; namespace MirrorSharp.Internal { internal class CustomWorkspace : Workspace { public CustomWorkspace(HostServices host) : base(host, "Custom" /* same as AdHoc */) { } public override bool CanOpenDocuments => true; public override bool CanApplyChange(ApplyChangesKind feature) { return feature == ApplyChangesKind.ChangeDocument || feature == ApplyChangesKind.ChangeParseOptions || feature == ApplyChangesKind.ChangeCompilationOptions || feature == ApplyChangesKind.AddMetadataReference || feature == ApplyChangesKind.RemoveMetadataReference; } public new Solution SetCurrentSolution(Solution solution) { return base.SetCurrentSolution(solution); } } } ================================================ FILE: Common/Internal/EncodingExtensions.cs ================================================ using System; using System.Text; namespace MirrorSharp.Internal { internal static class EncodingExtensions { public static string GetString(this Encoding encoding, ArraySegment segment) { return encoding.GetString(segment.Array!, segment.Offset, segment.Count); } #if NETSTANDARD2_0 public static unsafe int GetChars(this Encoding encoding, ReadOnlySpan bytes, Span chars) { if (bytes.IsEmpty) return 0; fixed (byte* bytePointer = bytes) fixed (char* charPointer = chars) { return Encoding.UTF8.GetChars(bytePointer, bytes.Length, charPointer, chars.Length); } } public static unsafe string GetString(this Encoding encoding, ReadOnlySpan bytes) { if (bytes.IsEmpty) return string.Empty; fixed (byte* bytePointer = bytes) return Encoding.UTF8.GetString(bytePointer, bytes.Length); } public static unsafe void Convert(this Decoder decoder, ReadOnlySpan bytes, Span chars, bool flush, out int bytesUsed, out int charsUsed, out bool completed) { if (bytes.IsEmpty) { // Cannot just return, we might still need to flush fixed (byte* bytePointer = Array.Empty()) fixed (char* charPointer = chars) { decoder.Convert(bytePointer, 0, charPointer, chars.Length, flush, out bytesUsed, out charsUsed, out completed); } return; } fixed (byte* bytePointer = bytes) fixed (char* charPointer = chars) { decoder.Convert(bytePointer, bytes.Length, charPointer, chars.Length, flush, out bytesUsed, out charsUsed, out completed); } } #endif } } ================================================ FILE: Common/Internal/FastConvert.cs ================================================ using System; using System.Buffers; using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; using System.Text; namespace MirrorSharp.Internal { internal static class FastConvert { private const byte Utf8Zero = (byte)'0'; private const byte Utf8Nine = (byte)'9'; private static readonly string[] CharStringMap = Enumerable.Range(0, 128).Select(c => ((char)c).ToString()).ToArray(); private static readonly ConcurrentDictionary LowerInvariantStrings = new(); public static int Utf8BytesToInt32(ReadOnlySpan bytes) { Argument.NotEmpty(nameof(bytes), bytes); var result = 0; foreach (var @byte in bytes) { if (@byte < Utf8Zero || @byte > Utf8Nine) throw new FormatException($"String '{SlowUtf8BytesToString(bytes)}' is not a valid positive number."); result = (10 * result) + (@byte - Utf8Zero); } return result; } public static char Utf8BytesToChar(ReadOnlySpan bytes) { Argument.NotEmpty(nameof(bytes), bytes); if (bytes.Length == 1) return (char)bytes[0]; var chars = (Span)stackalloc char[2]; var charCount = Encoding.UTF8.GetChars(bytes, chars); if (charCount != 1) throw new FormatException($"Expected one char, but conversion produced {charCount}. Bytes: {SlowBytesToHexString(bytes)}"); return chars[0]; } public static string CharToString(char c) { if (c <= 127) return CharStringMap[c]; return c.ToString(); } public static string StringToLowerInvariantString(string value) { if (LowerInvariantStrings.TryGetValue(value, out var result)) return result; var lower = value.ToLowerInvariant(); LowerInvariantStrings.TryAdd(value, lower); return lower; } public static string EnumToLowerInvariantString(TEnum value) where TEnum : struct, IFormattable { return EnumCache.LowerInvariantStrings[value]; } private static string SlowUtf8BytesToString(ReadOnlySpan bytes) { return Encoding.UTF8.GetString(bytes); } private static string SlowBytesToHexString(ReadOnlySpan bytes) { return "0x" + string.Join("", bytes.ToArray().Select(b => b.ToString("X2"))); } private static class EnumCache where TEnum: struct, IFormattable { public static readonly IReadOnlyDictionary LowerInvariantStrings = Enum.GetValues(typeof(TEnum)).Cast().ToDictionary(e => e, e => e.ToString("G", null).ToLowerInvariant()); } } } ================================================ FILE: Common/Internal/FastJsonWriterExtensions.cs ================================================ using System.Collections.Generic; using System.Collections.Immutable; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Text; using MirrorSharp.Advanced; namespace MirrorSharp.Internal { internal static class FastJsonWriterExtensions { public static void WriteSpan(this IFastJsonWriter writer, TextSpan span) { writer.WriteStartObject(); writer.WriteProperty("start", span.Start); writer.WriteProperty("length", span.Length); writer.WriteEndObject(); } public static void WriteSpanProperty(this IFastJsonWriter writer, string name, TextSpan span) { writer.WritePropertyName(name); writer.WriteSpan(span); } public static void WriteChange(this IFastJsonWriter writer, TextChange change) { writer.WriteStartObject(); writer.WriteProperty("start", change.Span.Start); writer.WriteProperty("length", change.Span.Length); writer.WriteProperty("text", change.NewText); writer.WriteEndObject(); } public static void WriteSymbolDisplayParts(this IFastJsonWriter writer, TCollection parts, bool selected = false) where TCollection : IEnumerable { foreach (var part in parts) { writer.WriteSymbolDisplayPart(part, selected); } } public static void WriteSymbolDisplayPart(this IFastJsonWriter writer, SymbolDisplayPart part, bool selected) { writer.WriteStartObject(); writer.WriteProperty("text", part.ToString()); writer.WriteProperty("kind", FastConvert.EnumToLowerInvariantString(part.Kind)); if (selected) writer.WriteProperty("selected", true); writer.WriteEndObject(); } public static void WriteTagsProperty(this IFastJsonWriter writer, string name, ImmutableArray tags) { writer.WritePropertyStartArray(name); foreach (var tag in tags) { writer.WriteValue(FastConvert.StringToLowerInvariantString(tag)); } writer.WriteEndArray(); } public static void WriteTaggedTexts(this IFastJsonWriter writer, TCollection texts, bool selected = false) where TCollection : IEnumerable { foreach (var text in texts) { writer.WriteTaggedText(text, selected); } } public static void WriteTaggedText(this IFastJsonWriter writer, TaggedText text, bool selected) { writer.WriteStartObject(); writer.WriteProperty("text", text.Text); writer.WriteProperty("kind", FastConvert.StringToLowerInvariantString(text.Tag)); if (selected) writer.WriteProperty("selected", true); writer.WriteEndObject(); } } } ================================================ FILE: Common/Internal/FastUtf8JsonWriter.cs ================================================ using System; using System.Buffers; using System.Collections.Immutable; using System.IO; using System.Linq; using System.Text; using MirrorSharp.Advanced; namespace MirrorSharp.Internal { internal class FastUtf8JsonWriter : IFastJsonWriter { private static readonly int[] PowersOfTen = { 1000000000, 100000000, 10000000, 1000000, 100000, 10000, 1000, 100, 10, 1 }; private int _position = 0; private readonly char[] _oneCharBuffer = new char[1]; private readonly ArrayPool _bufferPool; private byte[] _buffer; private readonly Encoder _encoder; private int _stateStackIndex; private readonly ArrayPool _stateStackPool; private readonly State[] _stateStack; private FastUtf8JsonStringWriter? _stringWriter; public FastUtf8JsonWriter(ArrayPool bufferPool) { _bufferPool = bufferPool; _buffer = bufferPool.Rent(4096); _stateStackIndex = 0; _stateStackPool = ArrayPool.Shared; _stateStack = _stateStackPool.Rent(64); _stateStack[0] = State.None; _encoder = Encoding.UTF8.GetEncoder(); } public ArraySegment WrittenSegment => new ArraySegment(_buffer, 0, _position); public void WriteStartObject() { WriteStartValue(); WriteRawByte(Utf8.CurlyOpen); PushState(State.ObjectStart); } public void WriteEndObject() { PopState(); WriteRawByte(Utf8.CurlyClose); WriteEndValue(); } public void WriteStartArray() { WriteStartValue(); WriteRawByte(Utf8.SquareOpen); PushState(State.ArrayStart); } public void WriteEndArray() { PopState(); WriteRawByte(Utf8.SquareClose); WriteEndValue(); } public void WritePropertyName(string name) { if (GetState() == State.ObjectAfterProperty) WriteRawByte(Utf8.Comma); WriteValue(name); WriteRawByte(Utf8.Colon); ReplaceState(State.ObjectPropertyValue); } public void WriteValue(string? value) { WriteStartValue(); if (value == null) { WriteRawBytes(Utf8.Null); WriteEndValue(); return; } WriteRawByte(Utf8.Quote); WriteUnquotedString(value); WriteRawByte(Utf8.Quote); WriteEndValue(); } public void WriteValue(StringBuilder? value) { WriteStartValue(); if (value == null) { WriteRawBytes(Utf8.Null); WriteEndValue(); return; } WriteRawByte(Utf8.Quote); for (var i = 0; i < value.Length; i++) { WriteUnquotedChar(value[i]); } WriteRawByte(Utf8.Quote); WriteEndValue(); } public void WriteValue(ArraySegment value) { WriteStartValue(); WriteRawByte(Utf8.Quote); for (var i = 0; i < value.Count; i++) { WriteUnquotedChar(value.Array![value.Offset + i]); } WriteRawByte(Utf8.Quote); WriteEndValue(); } public void WriteValue(ImmutableArray value) { WriteStartValue(); WriteRawByte(Utf8.Quote); foreach (var @char in value) { WriteUnquotedChar(@char); } WriteRawByte(Utf8.Quote); WriteEndValue(); } private void WriteUnquotedString(string? value) { if (value == null) return; foreach (var @char in value) { WriteUnquotedChar(@char); } } public void WriteValue(char value) { WriteStartValue(); WriteRawByte(Utf8.Quote); WriteUnquotedChar(value); WriteRawByte(Utf8.Quote); WriteEndValue(); } private void WriteUnquotedChar(char @char) { if (@char < 32) { WriteRawBytes(Utf8.Escaped[@char]); return; } if (@char == '\\') { WriteRawBytes(Utf8.EscapedSlash); return; } if (@char == '"') { WriteRawBytes(Utf8.EscapedQuote); return; } if (@char < 128) { WriteRawByte((byte)@char); return; } _oneCharBuffer[0] = @char; _encoder.Convert(_oneCharBuffer, 0, 1, _buffer, _position, _buffer.Length - _position, false, out var _, out var bytesUsed, out var _); _position += bytesUsed; } public void WriteValue(int value) { WriteStartValue(); if (value < 0) { WriteRawByte(Utf8.Minus); value = -value; } if (value < 10) { WriteRawByte(Utf8.Digits[value]); WriteEndValue(); return; } var remainder = value; foreach (var power in PowersOfTen) { if (value < power) continue; WriteRawByte(Utf8.Digits[remainder / power]); remainder %= power; } WriteEndValue(); } public void WriteValue(bool value) { WriteStartValue(); WriteRawBytes(value ? Utf8.True : Utf8.False); WriteEndValue(); } private void WriteStartValue() { if (GetState() == State.ArrayAfterItem) WriteRawByte(Utf8.Comma); } private void WriteEndValue() { var state = GetState(); if (state == State.ArrayStart) { ReplaceState(State.ArrayAfterItem); } else if (state == State.ObjectPropertyValue) { ReplaceState(State.ObjectAfterProperty); } } public TextWriter OpenString() { if (_stringWriter == null) _stringWriter = new FastUtf8JsonStringWriter(this); WriteStartValue(); WriteRawByte(Utf8.Quote); return _stringWriter; } private void CloseString() { WriteRawByte(Utf8.Quote); WriteEndValue(); } private void WriteRawByte(byte @byte) { EnsureCanWrite(1); _buffer[_position] = @byte; _position += 1; } private void WriteRawBytes(byte[] bytes) { EnsureCanWrite(bytes.Length); if (bytes.Length == 2) { _buffer[_position] = bytes[0]; _buffer[_position + 1] = bytes[1]; } else { Buffer.BlockCopy(bytes, 0, _buffer, _position, bytes.Length); } _position += bytes.Length; } private void EnsureCanWrite(int requiredExtraBytes) { if (_position + requiredExtraBytes <= _buffer.Length) return; byte[]? newBuffer = null; try { newBuffer = _bufferPool.Rent(_position + requiredExtraBytes); Buffer.BlockCopy(_buffer, 0, newBuffer, 0, _buffer.Length); } catch { if (newBuffer != null) _bufferPool.Return(newBuffer); throw; } try { _bufferPool.Return(_buffer); } finally { _buffer = newBuffer; } } public void Reset() { _position = 0; _encoder.Reset(); } private State GetState() { return _stateStack[_stateStackIndex]; } private void ReplaceState(State state) { _stateStack[_stateStackIndex] = state; } private void PushState(State state) { _stateStackIndex += 1; _stateStack[_stateStackIndex] = state; } private void PopState() { _stateStackIndex -= 1; } private enum State { // ReSharper disable once UnusedMember.Local None, ArrayStart, ArrayAfterItem, ObjectStart, ObjectPropertyValue, ObjectAfterProperty } private static class Utf8 { public const byte CurlyOpen = (byte)'{'; public const byte CurlyClose = (byte)'}'; public const byte SquareOpen = (byte)'['; public const byte SquareClose = (byte)']'; public const byte Colon = (byte)':'; public const byte Quote = (byte)'"'; public const byte Comma = (byte)','; public const byte Minus = (byte)'-'; public static readonly byte[] Digits = Enumerable.Range(0, 10) .Select(i => (byte)i.ToString()[0]) .ToArray(); public static readonly byte[] True = Encoding.UTF8.GetBytes("true"); public static readonly byte[] False = Encoding.UTF8.GetBytes("false"); public static readonly byte[] Null = Encoding.UTF8.GetBytes("null"); public static readonly byte[][] Escaped = Enumerable.Range(0, 32) .Select(i => { switch (i) { case '\b': return "\\b"; case '\f': return "\\f"; case '\r': return "\\r"; case '\n': return "\\n"; case '\t': return "\\t"; default: return "\\u" + i.ToString("X4"); } }) .Select(Encoding.UTF8.GetBytes) .ToArray(); public static readonly byte[] EscapedSlash = Encoding.UTF8.GetBytes("\\\\"); public static readonly byte[] EscapedQuote = Encoding.UTF8.GetBytes("\\\""); } private class FastUtf8JsonStringWriter : TextWriter { private readonly FastUtf8JsonWriter _owner; public FastUtf8JsonStringWriter(FastUtf8JsonWriter owner) { _owner = owner; } public override Encoding Encoding => Encoding.UTF8; public override void Write(char value) => _owner.WriteUnquotedChar(value); public override void Write(int value) => _owner.WriteValue(value); public override void Write(string? value) => _owner.WriteUnquotedString(value); protected override void Dispose(bool disposing) { _owner.CloseString(); } } public void Dispose() { _bufferPool.Return(_buffer); _stateStackPool.Return(_stateStack); GC.SuppressFinalize(this); } ~FastUtf8JsonWriter() { _bufferPool.Return(_buffer); _stateStackPool.Return(_stateStack); } } } ================================================ FILE: Common/Internal/Handlers/ApplyDiagnosticActionHandler.cs ================================================ using System.Threading; using System.Threading.Tasks; using MirrorSharp.Advanced; using MirrorSharp.Internal.Results; namespace MirrorSharp.Internal.Handlers { internal class ApplyDiagnosticActionHandler : ICommandHandler { public char CommandId => CommandIds.ApplyDiagnosticAction; public async Task ExecuteAsync(AsyncData data, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { var roslynSession = session.Roslyn; var actionId = FastConvert.Utf8BytesToInt32(data.GetFirst().Span); var action = roslynSession.CurrentCodeActions[actionId]; var operations = await action.GetOperationsAsync(cancellationToken).ConfigureAwait(false); foreach (var operation in operations) { operation.Apply(roslynSession.Workspace, cancellationToken); } // I rollback the changes since I want to send them to client and get them back as ReplaceText // This makes sure any other typing on client merges with these changes properly var changes = await roslynSession.RollbackWorkspaceChangesAsync().ConfigureAwait(false); var writer = sender.StartJsonMessage("changes"); writer.WriteProperty("reason", "fix"); writer.WritePropertyStartArray("changes"); foreach (var change in changes) { writer.WriteChange(change); } writer.WriteEndArray(); await sender.SendJsonMessageAsync(cancellationToken).ConfigureAwait(false); } } } ================================================ FILE: Common/Internal/Handlers/CompletionStateHandler.cs ================================================ using System.Threading; using System.Threading.Tasks; using MirrorSharp.Internal.Handlers.Shared; using MirrorSharp.Internal.Results; namespace MirrorSharp.Internal.Handlers { internal class CompletionStateHandler : ICommandHandler { public char CommandId => CommandIds.CompletionState; private readonly ICompletionSupport _completion; public CompletionStateHandler(ICompletionSupport completion) { _completion = completion; } public Task ExecuteAsync(AsyncData data, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { var first = data.GetFirst(); var firstByte = first.Span[0]; if (firstByte == (byte)'I') { var infoItemIndex = FastConvert.Utf8BytesToInt32(first.Span.Slice(1)); return _completion.SendItemInfoAsync(infoItemIndex, session, sender, cancellationToken); } if (firstByte == (byte)'X') return _completion.CancelCompletionAsync(session, sender, cancellationToken); if (firstByte == (byte)'F') return _completion.ForceCompletionAsync(session, sender, cancellationToken); var itemIndex = FastConvert.Utf8BytesToInt32(first.Span); return _completion.SelectCompletionAsync(itemIndex, session, sender, cancellationToken); } } } ================================================ FILE: Common/Internal/Handlers/ICommandHandler.cs ================================================ using System.Threading; using System.Threading.Tasks; using MirrorSharp.Internal.Results; namespace MirrorSharp.Internal.Handlers { internal interface ICommandHandler { char CommandId { get; } Task ExecuteAsync(AsyncData data, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken); } } ================================================ FILE: Common/Internal/Handlers/MoveCursorHandler.cs ================================================ using System.Threading; using System.Threading.Tasks; using MirrorSharp.Internal.Handlers.Shared; using MirrorSharp.Internal.Results; namespace MirrorSharp.Internal.Handlers { internal class MoveCursorHandler : ICommandHandler { public char CommandId => CommandIds.MoveCursor; private readonly ISignatureHelpSupport _signatureHelp; public MoveCursorHandler(ISignatureHelpSupport signatureHelp) { _signatureHelp = signatureHelp; } public Task ExecuteAsync(AsyncData data, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { var cursorPosition = FastConvert.Utf8BytesToInt32(data.GetFirst().Span); session.CursorPosition = cursorPosition; return _signatureHelp.ApplyCursorPositionChangeAsync(session, sender, cancellationToken); } } } ================================================ FILE: Common/Internal/Handlers/ReplaceTextHandler.cs ================================================ using System; using System.Buffers; using System.Text; using System.Threading; using System.Threading.Tasks; using MirrorSharp.Internal.Handlers.Shared; using MirrorSharp.Internal.Results; namespace MirrorSharp.Internal.Handlers { internal class ReplaceTextHandler : ICommandHandler { public char CommandId => CommandIds.ReplaceText; private readonly ISignatureHelpSupport _signatureHelp; private readonly ICompletionSupport _completion; private readonly ITypedCharEffects _typedCharEffects; private readonly ArrayPool _charArrayPool; public ReplaceTextHandler( ISignatureHelpSupport signatureHelp, ICompletionSupport completion, ITypedCharEffects typedCharEffects, ArrayPool charArrayPool ) { _signatureHelp = signatureHelp; _completion = completion; _typedCharEffects = typedCharEffects; _charArrayPool = charArrayPool; } public async Task ExecuteAsync(AsyncData data, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { var first = data.GetFirst(); var partStart = 0; int? start = null; int? length = null; int? cursorPosition = null; string? reason = null; for (var i = 0; i < first.Length; i++) { if (first.Span[i] != (byte)':') continue; var part = first.Slice(partStart, i - partStart); if (start == null) { start = FastConvert.Utf8BytesToInt32(part.Span); partStart = i + 1; continue; } if (length == null) { length = FastConvert.Utf8BytesToInt32(part.Span); partStart = i + 1; continue; } if (cursorPosition == null) { cursorPosition = FastConvert.Utf8BytesToInt32(part.Span); partStart = i + 1; continue; } reason = part.Length > 0 ? Encoding.UTF8.GetString(part.Span) : string.Empty; partStart = i + 1; break; } if (start == null || length == null || cursorPosition == null || reason == null) throw new FormatException("Command arguments must be 'start:length:cursor:reason:text'."); var text = await AsyncDataConvert.ToUtf8StringAsync(data, partStart, _charArrayPool).ConfigureAwait(false); session.ReplaceText(text, start.Value, length.Value); session.CursorPosition = cursorPosition.Value; await _signatureHelp.ApplyCursorPositionChangeAsync(session, sender, cancellationToken).ConfigureAwait(false); await _completion.ApplyReplacedTextAsync(reason, _typedCharEffects, session, sender, cancellationToken).ConfigureAwait(false); } } } ================================================ FILE: Common/Internal/Handlers/RequestInfoTipHandler.cs ================================================ using System; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis.QuickInfo; using MirrorSharp.Advanced; using MirrorSharp.Internal.Results; namespace MirrorSharp.Internal.Handlers { internal class RequestInfoTipHandler : ICommandHandler { public char CommandId => CommandIds.RequestInfoTip; public Task ExecuteAsync(AsyncData data, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { if (!session.IsRoslyn) return Task.CompletedTask; var cursorPosition = FastConvert.Utf8BytesToInt32(data.GetFirst().Span); return ExecuteForRoslynAsync(cursorPosition, session, sender, cancellationToken); } private async Task ExecuteForRoslynAsync( int cursorPosition, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken ) { var info = await session.Roslyn.QuickInfoService .GetQuickInfoAsync(session.Roslyn.Document, cursorPosition, cancellationToken) .ConfigureAwait(false); if (IsNullOrEmpty(info)) return; await SendInfoTipAsync(info, sender, cancellationToken).ConfigureAwait(false); } private Task SendInfoTipAsync(QuickInfoItem info, ICommandResultSender sender, CancellationToken cancellationToken) { var writer = sender.StartJsonMessage("infotip"); if (IsNullOrEmpty(info)) return sender.SendJsonMessageAsync(cancellationToken); writer.WriteTagsProperty("kinds", info.Tags); writer.WritePropertyStartArray("sections"); foreach (var section in info.Sections) { writer.WriteStartObject(); writer.WriteProperty("kind", FastConvert.StringToLowerInvariantString(section.Kind)); writer.WritePropertyStartArray("parts"); writer.WriteTaggedTexts(section.TaggedParts); writer.WriteEndArray(); writer.WriteEndObject(); } writer.WriteEndArray(); writer.WriteSpanProperty("span", info.Span); return sender.SendJsonMessageAsync(cancellationToken); } private static bool IsNullOrEmpty(QuickInfoItem info) { // Note that Sections.IsEmpty doesn't mean there is nothing // E.g. closing bracket `}` will have related open bracket // code in related spans. However this isn't supported yet. return info == null || info.Sections.IsEmpty; } } } ================================================ FILE: Common/Internal/Handlers/RequestSelfDebugDataHandler.cs ================================================ using System; using System.Threading; using System.Threading.Tasks; using MirrorSharp.Advanced; using MirrorSharp.Internal.Results; namespace MirrorSharp.Internal.Handlers { internal class RequestSelfDebugDataHandler : ICommandHandler { public char CommandId => CommandIds.RequestSelfDebugData; public Task ExecuteAsync(AsyncData data, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { if (session.SelfDebug == null) throw new InvalidOperationException("SelfDebug is disabled on this session."); var writer = sender.StartJsonMessage("self:debug"); writer.WritePropertyStartArray("log"); // ReSharper disable once PossibleNullReferenceException foreach (var entry in session.SelfDebug.GetLogEntries()) { writer.WriteStartObject(); writer.WriteProperty("time", entry.DateTime.ToString("yyyy-MM-ddTHH:mm:ss.fffK")); writer.WriteProperty("event", entry.EventType); writer.WriteProperty("message", entry.Message); writer.WriteProperty("cursor", entry.CursorPosition); writer.WriteProperty("text", entry.Text); writer.WriteEndObject(); } writer.WriteEndArray(); return sender.SendJsonMessageAsync(cancellationToken); } } } ================================================ FILE: Common/Internal/Handlers/SetOptionsHandler.cs ================================================ using System; using System.Buffers; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; using MirrorSharp.Advanced; using MirrorSharp.Internal.Results; // ReSharper disable HeapView.DelegateAllocation // ReSharper disable HeapView.ClosureAllocation namespace MirrorSharp.Internal.Handlers { internal class SetOptionsHandler : ICommandHandler { private const string LanguageOptionName = "language"; private static readonly char[] Comma = { ',' }; private static readonly char[] EqualsSign = { '=' }; private readonly LanguageManager _languageManager; private readonly ArrayPool _charArrayPool; private readonly ISetOptionsFromClientExtension? _extension; public char CommandId => CommandIds.SetOptions; internal SetOptionsHandler( LanguageManager languageManager, ArrayPool charArrayPool, ISetOptionsFromClientExtension? extension = null ) { _languageManager = languageManager; _charArrayPool = charArrayPool; _extension = extension; } public async Task ExecuteAsync(AsyncData data, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { // this doesn't happen too often, so microptimizations are not required var optionsString = await AsyncDataConvert.ToUtf8StringAsync(data, 0, _charArrayPool).ConfigureAwait(false); var options = optionsString .Split(Comma) .Select(p => p.Split(EqualsSign)) .ToDictionary(p => p[0], p => p[1]); if (options.TryGetValue(LanguageOptionName, out var language)) { // this has to be done first, as other options work on the session SetLanguage(session, language, options); session.RawOptionsFromClient[LanguageOptionName] = language; } foreach (var option in options) { var (name, value) = (option.Key, option.Value); if (name == LanguageOptionName) continue; if (!IsExtensionOption(name)) throw new FormatException($"Option '{name}' was not recognized (to use {nameof(ISetOptionsFromClientExtension)}, make sure your option name starts with 'x-')."); if (!(_extension?.TrySetOption(session, name, value) ?? false)) throw new FormatException($"Extension option '{name}' was not recognized."); session.RawOptionsFromClient[name] = value; } await SendOptionsEchoAsync(session, sender, cancellationToken).ConfigureAwait(false); } private void SetLanguage(WorkSession session, string value, IReadOnlyDictionary resentOptions) { var language = _languageManager.GetLanguage(value); session.ChangeLanguage(language); // reapply all other options if not re-sent foreach (var option in session.RawOptionsFromClient) { if (!IsExtensionOption(option.Key)) // handled separately continue; if (resentOptions.ContainsKey(option.Key)) continue; // will re-apply right after this anyways if (!(_extension?.TrySetOption(session, option.Key, option.Value) ?? false)) throw new FormatException($"Extension option '{option.Key}' was not recognized after changing language."); } } private bool IsExtensionOption(string name) { return name.StartsWith("x-"); } private async Task SendOptionsEchoAsync(WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { if (session.IsRoslyn) session.Roslyn.CurrentCodeActions.Clear(); var writer = sender.StartJsonMessage("optionsEcho"); writer.WritePropertyStartObject("options"); foreach (var pair in session.RawOptionsFromClient) { writer.WriteProperty(pair.Key, pair.Value); } writer.WriteEndObject(); await sender.SendJsonMessageAsync(cancellationToken).ConfigureAwait(false); } } } ================================================ FILE: Common/Internal/Handlers/Shared/CompletionSupport.cs ================================================ using System; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis.Completion; using Microsoft.CodeAnalysis.Text; using MirrorSharp.Advanced; using MirrorSharp.Internal.Results; namespace MirrorSharp.Internal.Handlers.Shared { internal class CompletionSupport : ICompletionSupport { private const string ChangeReasonCompletion = "completion"; public Task ApplyTypedCharAsync(char @char, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { var current = session.CurrentCompletion; if (current.List != null) return Task.CompletedTask; if (current.ChangeEchoPending) { current.PendingChar = @char; return Task.CompletedTask; } var trigger = CompletionTrigger.CreateInsertionTrigger(@char); return CheckCompletionAsync(trigger, session, sender, cancellationToken); } public Task ApplyReplacedTextAsync(string reason, ITypedCharEffects typedCharEffects, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { if (reason != ChangeReasonCompletion) return Task.CompletedTask; var pendingChar = session.CurrentCompletion.PendingChar; session.CurrentCompletion.ResetPending(); if (pendingChar == null) return Task.CompletedTask; return typedCharEffects.ApplyTypedCharAsync(pendingChar.Value, session, sender, cancellationToken); } public async Task SelectCompletionAsync(int selectedIndex, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { var current = session.CurrentCompletion; var completionList = current.List; if (completionList == null) throw new InvalidOperationException("Cannot select completion when completion list is not active."); var item = completionList.Items[selectedIndex]; var change = await session.LanguageSession.GetCompletionChangeAsync(completionList.Span, item, cancellationToken: cancellationToken).ConfigureAwait(false); current.List = null; var textChange = ReplaceIncompleteText(session, completionList, change.TextChange); current.ChangeEchoPending = true; var writer = sender.StartJsonMessage("changes"); writer.WriteProperty("reason", ChangeReasonCompletion); writer.WritePropertyStartArray("changes"); writer.WriteChange(textChange); writer.WriteEndArray(); await sender.SendJsonMessageAsync(cancellationToken).ConfigureAwait(false); } private static TextChange ReplaceIncompleteText(WorkSession session, CompletionList completionList, TextChange textChange) { var completionSpan = completionList.Span; if (session.CursorPosition <= completionSpan.Start) return textChange; var span = textChange.Span; var newStart = Math.Min(span.Start, completionSpan.Start); var newLength = Math.Max(span.End, session.CursorPosition) - newStart; return new TextChange(new TextSpan(newStart, newLength), textChange.NewText); } public async Task SendItemInfoAsync(int selectedIndex, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { var list = session.CurrentCompletion.List; if (list == null) return; var item = list.Items[selectedIndex]; var description = await session.LanguageSession.GetCompletionDescriptionAsync(item, cancellationToken).ConfigureAwait(false); if (description == null) return; var writer = sender.StartJsonMessage("completionInfo"); writer.WriteProperty("index", selectedIndex); writer.WritePropertyStartArray("parts"); writer.WriteTaggedTexts(description.TaggedParts); writer.WriteEndArray(); await sender.SendJsonMessageAsync(cancellationToken).ConfigureAwait(false); } public Task ForceCompletionAsync(WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { return TriggerCompletionAsync(session, sender, cancellationToken, CompletionTrigger.Invoke); } public Task CancelCompletionAsync(WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { session.CurrentCompletion.ResetPending(); session.CurrentCompletion.List = null; return Task.CompletedTask; } private Task CheckCompletionAsync(CompletionTrigger trigger, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { if (!session.LanguageSession.ShouldTriggerCompletion(session.CursorPosition, trigger)) return Task.CompletedTask; return TriggerCompletionAsync(session, sender, cancellationToken, trigger); } private async Task TriggerCompletionAsync(WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken, CompletionTrigger trigger) { var completionList = await session.LanguageSession.GetCompletionsAsync(session.CursorPosition, trigger, cancellationToken: cancellationToken).ConfigureAwait(false); if (completionList == null || completionList.Items.IsEmpty) return; session.CurrentCompletion.ResetPending(); session.CurrentCompletion.List = completionList; await SendCompletionListAsync(completionList, sender, cancellationToken).ConfigureAwait(false); } private Task SendCompletionListAsync(CompletionList completionList, ICommandResultSender sender, CancellationToken cancellationToken) { var completionSpan = completionList.Span; var writer = sender.StartJsonMessage("completions"); writer.WriteProperty("commitChars", completionList.Rules.DefaultCommitCharacters); writer.WriteSpanProperty("span", completionSpan); var suggestionItem = completionList.SuggestionModeItem; if (suggestionItem != null) { writer.WritePropertyStartObject("suggestion"); writer.WriteProperty("displayText", suggestionItem.DisplayText); writer.WriteEndObject(); } writer.WritePropertyStartArray("completions"); foreach (var item in completionList.Items) { writer.WriteStartObject(); writer.WriteProperty("filterText", item.FilterText); writer.WriteProperty("displayText", item.DisplayText); writer.WriteTagsProperty("kinds", item.Tags); if (item.Span != completionSpan) writer.WriteSpanProperty("span", item.Span); if (item.Rules.MatchPriority > 0) writer.WriteProperty("priority", item.Rules.MatchPriority); writer.WriteEndObject(); } writer.WriteEndArray(); return sender.SendJsonMessageAsync(cancellationToken); } } } ================================================ FILE: Common/Internal/Handlers/Shared/ICompletionSupport.cs ================================================ using System.Threading; using System.Threading.Tasks; using MirrorSharp.Internal.Results; namespace MirrorSharp.Internal.Handlers.Shared { internal interface ICompletionSupport { Task ApplyTypedCharAsync(char @char, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken); Task ApplyReplacedTextAsync(string reason, ITypedCharEffects typedCharEffects, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken); Task SendItemInfoAsync(int selectedIndex, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken); Task SelectCompletionAsync(int selectedIndex, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken); Task CancelCompletionAsync(WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken); Task ForceCompletionAsync(WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken); } } ================================================ FILE: Common/Internal/Handlers/Shared/ISignatureHelpSupport.cs ================================================ using System.Threading; using System.Threading.Tasks; using MirrorSharp.Internal.Results; namespace MirrorSharp.Internal.Handlers.Shared { internal interface ISignatureHelpSupport { Task ApplyCursorPositionChangeAsync(WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken); Task ApplyTypedCharAsync(char @char, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken); Task ForceSignatureHelpAsync( WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken); } } ================================================ FILE: Common/Internal/Handlers/Shared/ITypedCharEffects.cs ================================================ using System.Threading; using System.Threading.Tasks; using MirrorSharp.Internal.Results; namespace MirrorSharp.Internal.Handlers.Shared { internal interface ITypedCharEffects { Task ApplyTypedCharAsync(char @char, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken); } } ================================================ FILE: Common/Internal/Handlers/Shared/SignatureHelpSupport.cs ================================================ using System.Threading; using System.Threading.Tasks; using MirrorSharp.Advanced; using MirrorSharp.Internal.Results; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Handlers.Shared { internal class SignatureHelpSupport : ISignatureHelpSupport { public Task ApplyCursorPositionChangeAsync(WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { if (!session.IsRoslyn) return Task.CompletedTask; var currentHelp = session.Roslyn.CurrentSignatureHelp; if (currentHelp == null) return Task.CompletedTask; if (!currentHelp.Value.Items.ApplicableSpan.Contains(session.CursorPosition)) { session.Roslyn.CurrentSignatureHelp = null; return SendSignatureHelpAsync(null, sender, cancellationToken); } // not sure if there is any better way to recalculate the selected parameter only, // but doesn't seem so at the moment return TryApplySignatureHelpAsync(currentHelp.Value.Provider, new SignatureHelpTriggerInfoData(SignatureHelpTriggerReason.RetriggerCommand), session, sender, cancellationToken, true); } public Task ApplyTypedCharAsync(char @char, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { if (!session.IsRoslyn) return Task.CompletedTask; var trigger = new SignatureHelpTriggerInfoData(SignatureHelpTriggerReason.TypeCharCommand, @char); if (session.Roslyn.CurrentSignatureHelp != null) { var provider = session.Roslyn.CurrentSignatureHelp.Value.Provider; if (provider.IsRetriggerCharacter(@char)) { session.Roslyn.CurrentSignatureHelp = null; return SendSignatureHelpAsync(null, sender, cancellationToken); } return TryApplySignatureHelpAsync(provider, trigger, session, sender, cancellationToken, sendIfEmpty: true); } return TryApplySignatureHelpAsync(session, sender, cancellationToken, trigger); } public Task ForceSignatureHelpAsync(WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { if (!session.IsRoslyn) return Task.CompletedTask; var trigger = new SignatureHelpTriggerInfoData(SignatureHelpTriggerReason.InvokeSignatureHelpCommand); return TryApplySignatureHelpAsync(session, sender, cancellationToken, trigger); } private async Task TryApplySignatureHelpAsync(WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken, SignatureHelpTriggerInfoData trigger) { foreach (var provider in session.Roslyn.SignatureHelpProviders) { if (await TryApplySignatureHelpAsync(provider, trigger, session, sender, cancellationToken).ConfigureAwait(false)) return; } } private async Task TryApplySignatureHelpAsync(ISignatureHelpProviderWrapper provider, SignatureHelpTriggerInfoData trigger, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken, bool sendIfEmpty = false) { // ReSharper disable once PossibleInvalidOperationException if (trigger.TriggerReason == SignatureHelpTriggerReason.TypeCharCommand && !provider.IsTriggerCharacter(trigger.TriggerCharacter!.Value)) return false; var options = SignatureHelpOptionsData.From(session.Roslyn.Project); var help = await provider.GetItemsAsync(session.Roslyn.Document, session.CursorPosition, trigger, options, cancellationToken).ConfigureAwait(false); if (!sendIfEmpty && help == null) return false; session.Roslyn.CurrentSignatureHelp = help != null ? new CurrentSignatureHelp(provider, help) : null; await SendSignatureHelpAsync(help, sender, cancellationToken).ConfigureAwait(false); return true; } private Task SendSignatureHelpAsync(SignatureHelpItemsData? items, ICommandResultSender sender, CancellationToken cancellationToken) { var writer = sender.StartJsonMessage("signatures"); if (items == null) return sender.SendJsonMessageAsync(cancellationToken); var selectedItemIndex = items.SelectedItemIndex; writer.WriteSpanProperty("span", items.ApplicableSpan); writer.WritePropertyStartArray("signatures"); var itemIndex = 0; foreach (var item in items.Items) { writer.WriteStartObject(); if (selectedItemIndex == null && items.ArgumentCount <= item.ParameterCount) selectedItemIndex = itemIndex; var isSelected = (itemIndex == selectedItemIndex); if (isSelected) writer.WriteProperty("selected", true); WriteSignatureParts(writer, item, items, out var selectedParameter); if (isSelected) WriteSignatureDocumentation(writer, item, selectedParameter, cancellationToken); writer.WriteEndObject(); itemIndex += 1; } writer.WriteEndArray(); return sender.SendJsonMessageAsync(cancellationToken); } private void WriteSignatureParts( IFastJsonWriter writer, SignatureHelpItemData item, SignatureHelpItemsData items, out SignatureHelpParameterData? selectedParameter ) { selectedParameter = null; writer.WritePropertyStartArray("parts"); writer.WriteTaggedTexts(item.PrefixDisplayParts); var parameterIndex = 0; foreach (var parameter in item.Parameters) { if (parameterIndex > 0) writer.WriteTaggedTexts(item.SeparatorDisplayParts); var selected = items.ArgumentIndex == parameterIndex; writer.WriteTaggedTexts(parameter.PrefixDisplayParts, selected); writer.WriteTaggedTexts(parameter.DisplayParts, selected); writer.WriteTaggedTexts(parameter.SuffixDisplayParts, selected); if (selected) selectedParameter = parameter; parameterIndex += 1; } writer.WriteTaggedTexts(item.SuffixDisplayParts); writer.WriteEndArray(); } private void WriteSignatureDocumentation( IFastJsonWriter writer, SignatureHelpItemData selectedItem, SignatureHelpParameterData? selectedParameter, CancellationToken cancellationToken ) { writer.WritePropertyStartObject("info"); writer.WritePropertyStartArray("parts"); var documentation = selectedItem.DocumentationFactory(cancellationToken); writer.WriteTaggedTexts(documentation); writer.WriteEndArray(); if (selectedParameter == null) { writer.WriteEndObject(); return; } writer.WritePropertyStartObject("parameter"); writer.WriteProperty("name", selectedParameter.Name); writer.WritePropertyStartArray("parts"); var parameterDocumentation = selectedParameter.DocumentationFactory(cancellationToken); writer.WriteTaggedTexts(parameterDocumentation); writer.WriteEndArray(); writer.WriteEndObject(); writer.WriteEndObject(); } } } ================================================ FILE: Common/Internal/Handlers/Shared/TypedCharEffects.cs ================================================ using System.Threading; using System.Threading.Tasks; using MirrorSharp.Internal.Results; namespace MirrorSharp.Internal.Handlers.Shared { internal class TypedCharEffects : ITypedCharEffects { private readonly ICompletionSupport _completion; private readonly ISignatureHelpSupport _signatureHelp; public TypedCharEffects(ICompletionSupport completion, ISignatureHelpSupport signatureHelp) { _completion = completion; _signatureHelp = signatureHelp; } public async Task ApplyTypedCharAsync(char @char, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { await _completion.ApplyTypedCharAsync(@char, session, sender, cancellationToken).ConfigureAwait(false); await _signatureHelp.ApplyTypedCharAsync(@char, session, sender, cancellationToken).ConfigureAwait(false); } } } ================================================ FILE: Common/Internal/Handlers/SignatureHelpStateHandler.cs ================================================ using System; using System.Threading; using System.Threading.Tasks; using MirrorSharp.Internal.Handlers.Shared; using MirrorSharp.Internal.Results; namespace MirrorSharp.Internal.Handlers { internal class SignatureHelpStateHandler : ICommandHandler { public char CommandId => CommandIds.SignatureHelpState; private readonly ISignatureHelpSupport _signatureHelp; public SignatureHelpStateHandler(ISignatureHelpSupport signatureHelp) { _signatureHelp = signatureHelp; } public Task ExecuteAsync(AsyncData data, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { var @char = FastConvert.Utf8BytesToChar(data.GetFirst().Span); if (@char != 'F') { // ReSharper disable once HeapView.BoxingAllocation throw new FormatException($"Unknown SignatureHelp command '{@char}'."); } return _signatureHelp.ForceSignatureHelpAsync(session, sender, cancellationToken); } } } ================================================ FILE: Common/Internal/Handlers/SlowUpdateHandler.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CodeActions; using Microsoft.CodeAnalysis.CodeFixes; using MirrorSharp.Advanced; using MirrorSharp.Internal.Results; using MirrorSharp.Internal.Roslyn; namespace MirrorSharp.Internal.Handlers { internal class SlowUpdateHandler : ICommandHandler { private readonly ISlowUpdateExtension? _extension; public SlowUpdateHandler(ISlowUpdateExtension? extension) { _extension = extension; } public char CommandId => CommandIds.SlowUpdate; public async Task ExecuteAsync(AsyncData data, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { // Temporary suppression, need to figure out the best approach here. // ReSharper disable once HeapView.BoxingAllocation var diagnostics = (IReadOnlyList)await session.LanguageSession.GetDiagnosticsAsync(cancellationToken).ConfigureAwait(false); object? extensionResult = null; try { if (_extension != null) { var mutableDiagnostics = diagnostics.ToList(); extensionResult = await _extension.ProcessAsync(session, mutableDiagnostics, cancellationToken).ConfigureAwait(false); diagnostics = mutableDiagnostics; } await SendSlowUpdateAsync(diagnostics, session, extensionResult, sender, cancellationToken).ConfigureAwait(false); } finally { (extensionResult as IDisposable)?.Dispose(); } } private async Task SendSlowUpdateAsync(IReadOnlyList diagnostics, WorkSession session, object? extensionResult, ICommandResultSender sender, CancellationToken cancellationToken) { if (session.IsRoslyn) session.Roslyn.CurrentCodeActions.Clear(); var writer = sender.StartJsonMessage("slowUpdate"); writer.WritePropertyStartArray("diagnostics"); foreach (var diagnostic in diagnostics) { writer.WriteStartObject(); writer.WriteProperty("id", diagnostic.Id); writer.WriteProperty("message", diagnostic.GetMessage()); writer.WriteProperty("severity", FastConvert.EnumToLowerInvariantString(diagnostic.Severity)); writer.WritePropertyStartArray("tags"); foreach (var tag in diagnostic.Descriptor.CustomTags) { if (tag != WellKnownDiagnosticTags.Unnecessary) continue; writer.WriteValue(tag.ToLowerInvariant()); } writer.WriteEndArray(); writer.WriteSpanProperty("span", diagnostic.Location.SourceSpan); var actions = await GetCodeActionsAsync(diagnostic, session, cancellationToken).ConfigureAwait(false); if (actions.Length > 0) { writer.WritePropertyStartArray("actions"); WriteActions(writer, actions, session); writer.WriteEndArray(); } writer.WriteEndObject(); } writer.WriteEndArray(); if (_extension != null) { writer.WritePropertyName("x"); _extension.WriteResult(writer, extensionResult, session); } await sender.SendJsonMessageAsync(cancellationToken).ConfigureAwait(false); } private void WriteActions(IFastJsonWriter writer, ImmutableArray actions, WorkSession session) { var roslynSession = session.Roslyn; var codeActionInternals = roslynSession.RoslynInternals.CodeAction; foreach (var action in actions) { if (action is CodeActionWithOptions) continue; if (codeActionInternals.IsInlinable(action)) { WriteActions(writer, codeActionInternals.GetNestedCodeActions(action), session); continue; } var id = roslynSession.CurrentCodeActions.Count; roslynSession.CurrentCodeActions.Add(action); writer.WriteStartObject(); writer.WriteProperty("id", id); writer.WriteProperty("title", action.Title); writer.WriteEndObject(); } } private async ValueTask> GetCodeActionsAsync(Diagnostic diagnostic, WorkSession session, CancellationToken cancellationToken) { if (!session.IsRoslyn) return ImmutableArray.Empty; // I don't think this can be avoided. // ReSharper disable once HeapView.ClosureAllocation ImmutableArray.Builder? actionsBuilder = null; Action> registerCodeFix = (action, _) => { actionsBuilder ??= ImmutableArray.CreateBuilder(); actionsBuilder.Add(action); }; var fixContext = new CodeFixContext(session.Roslyn.Document, diagnostic, registerCodeFix, cancellationToken); var providers = session.Roslyn.CodeFixProviders.GetValueOrDefault(diagnostic.Id); if (providers == null) return ImmutableArray.Empty; foreach (var provider in providers) { await provider.RegisterCodeFixesAsync(fixContext).ConfigureAwait(false); } actionsBuilder?.Sort(session.Roslyn.CodeActionPriorityComparison); return actionsBuilder?.ToImmutable() ?? ImmutableArray.Empty; } } } ================================================ FILE: Common/Internal/Handlers/TypeCharHandler.cs ================================================ using System; using System.Threading; using System.Threading.Tasks; using MirrorSharp.Internal.Handlers.Shared; using MirrorSharp.Internal.Results; namespace MirrorSharp.Internal.Handlers { internal class TypeCharHandler : ICommandHandler { public char CommandId => CommandIds.TypeChar; private readonly ITypedCharEffects _effects; public TypeCharHandler(ITypedCharEffects effects) { _effects = effects; } public Task ExecuteAsync(AsyncData data, WorkSession session, ICommandResultSender sender, CancellationToken cancellationToken) { var charSpan = data.GetFirst().Span; if (charSpan.IsEmpty) // Diagnosing https://github.com/ashmind/SharpLab/issues/682 -- once that's resolved this can be removed throw new ArgumentException($"Attempted to call TypeChar with empty char. MightHaveNext: {data.MightHaveNext}.", nameof(data)); var @char = FastConvert.Utf8BytesToChar(charSpan); session.ReplaceText(FastConvert.CharToString(@char), session.CursorPosition, 0); session.CursorPosition += 1; return _effects.ApplyTypedCharAsync(@char, session, sender, cancellationToken); } } } ================================================ FILE: Common/Internal/IConnectionOptions.cs ================================================ using MirrorSharp.Advanced; namespace MirrorSharp.Internal { internal interface IConnectionOptions { bool IncludeExceptionDetails { get; set; } } } ================================================ FILE: Common/Internal/ILanguageManagerOptions.cs ================================================ using System; using System.Collections.Generic; using MirrorSharp.Internal.Abstraction; namespace MirrorSharp.Internal { internal interface ILanguageManagerOptions { IDictionary> Languages { get; } } } ================================================ FILE: Common/Internal/ILanguageSessionExtensions.cs ================================================ using System; using MirrorSharp.Advanced.EarlyAccess; namespace MirrorSharp.Internal { internal interface ILanguageSessionExtensions { IRoslynSourceTextGuard? RoslynSourceTextGuard { get; } IRoslynCompilationGuard? RoslynCompilationGuard { get; } } } ================================================ FILE: Common/Internal/IMiddlewareOptions.cs ================================================ using System.Collections.Generic; namespace MirrorSharp.Internal { internal interface IMiddlewareOptions : IWorkSessionOptions, IConnectionOptions, ILanguageManagerOptions { IList<(char commandId, string commandText)> StatusTestCommands { get; } } } ================================================ FILE: Common/Internal/IWorkSessionOptions.cs ================================================ namespace MirrorSharp.Internal { internal interface IWorkSessionOptions { bool SelfDebugEnabled { get; } } } ================================================ FILE: Common/Internal/ImmutableExtensionServices.cs ================================================ using MirrorSharp.Advanced; using MirrorSharp.Advanced.EarlyAccess; namespace MirrorSharp.Internal { internal class ImmutableExtensionServices : ILanguageSessionExtensions { public ImmutableExtensionServices( ISetOptionsFromClientExtension? setOptionsFromClient, ISlowUpdateExtension? slowUpdate, IRoslynSourceTextGuard? roslynSourceTextGuard, IRoslynCompilationGuard? roslynCompilationGuard, IConnectionSendViewer? connectionSendViewer, IExceptionLogger? exceptionLogger ) { SetOptionsFromClient = setOptionsFromClient; SlowUpdate = slowUpdate; RoslynSourceTextGuard = roslynSourceTextGuard; RoslynCompilationGuard = roslynCompilationGuard; ConnectionSendViewer = connectionSendViewer; ExceptionLogger = exceptionLogger; } public ISetOptionsFromClientExtension? SetOptionsFromClient { get; } public ISlowUpdateExtension? SlowUpdate { get; } public IRoslynSourceTextGuard? RoslynSourceTextGuard { get; } public IRoslynCompilationGuard? RoslynCompilationGuard { get; } public IConnectionSendViewer? ConnectionSendViewer { get; } public IExceptionLogger? ExceptionLogger { get; } } } ================================================ FILE: Common/Internal/LanguageManager.cs ================================================ using System; using System.Collections.Generic; using System.Threading; using MirrorSharp.Internal.Abstraction; namespace MirrorSharp.Internal { internal class LanguageManager { private readonly IDictionary> _languages = new Dictionary>(); // This is run only once per app: // ReSharper disable HeapView.ClosureAllocation // ReSharper disable HeapView.DelegateAllocation // ReSharper disable HeapView.ObjectAllocation.Possible public LanguageManager(ILanguageManagerOptions options) { foreach (var language in options.Languages) { _languages.Add(language.Key, new Lazy(language.Value, LazyThreadSafetyMode.ExecutionAndPublication)); } } // ReSharper restore HeapView.ObjectAllocation.Possible // ReSharper restore HeapView.DelegateAllocation // ReSharper restore HeapView.ClosureAllocation public ILanguage GetLanguage(string name) { if (!_languages.TryGetValue(name, out var lazy)) throw new Exception($"Language '{name}' was not enabled in MirrorSharpOptions."); return lazy.Value; } } } ================================================ FILE: Common/Internal/MetadataReferenceFactory.cs ================================================ using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Xml.Linq; using Microsoft.CodeAnalysis; namespace MirrorSharp.Internal { internal static class MetadataReferenceFactory { public static IEnumerable CreateFromFilesSlow(IEnumerable paths) { return paths.Select(CreateMetadataReferenceWithXmlDocumentationSlow); } private static MetadataReference CreateMetadataReferenceWithXmlDocumentationSlow(string path) { var xmlPath = Path.Combine(Path.GetDirectoryName(path)!, Path.GetFileNameWithoutExtension(path) + ".xml"); return MetadataReference.CreateFromFile(path, documentation: FindXmlDocumentationSlow(xmlPath)); } private static XmlDocumentationProvider? FindXmlDocumentationSlow(string xmlPath, char[]? charBuffer = null) { if (!File.Exists(xmlPath)) return null; // Might not be required once https://github.com/dotnet/roslyn/issues/23685 is done const int RedirectCheckBlockLength = 1024; string block; using (var reader = new StreamReader(xmlPath)) { charBuffer ??= new char[RedirectCheckBlockLength]; var count = reader.ReadBlock(charBuffer, 0, RedirectCheckBlockLength); block = new string(charBuffer, 0, count); } if (block.Length < RedirectCheckBlockLength) { var xml = XDocument.Parse(block); var redirect = xml.Root.Attribute("redirect")?.Value; if (redirect != null) return FindXmlDocumentationSlow(ExpandRedirectVariablesSlow(redirect), charBuffer); } return XmlDocumentationProvider.CreateFromFile(xmlPath); } private static string ExpandRedirectVariablesSlow(string redirect) { // https://github.com/dotnet/roslyn/issues/13529#issuecomment-245097691 // only supporting %PROGRAMFILESDIR% for now var programFilesDir = Environment .GetFolderPath(Environment.SpecialFolder.ProgramFilesX86) .TrimEnd(Path.DirectorySeparatorChar) + Path.DirectorySeparatorChar; return redirect.Replace("%PROGRAMFILESDIR%", programFilesDir); } } } ================================================ FILE: Common/Internal/MiddlewareBase.cs ================================================ using System; using System.Buffers; using System.Collections.Generic; using System.Collections.Immutable; using System.Net.WebSockets; using System.Text; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using MirrorSharp.Internal.Handlers; using MirrorSharp.Internal.Handlers.Shared; using MirrorSharp.Internal.Results; namespace MirrorSharp.Internal { internal abstract class MiddlewareBase { private readonly LanguageManager _languageManager; private readonly IMiddlewareOptions _options; private readonly ImmutableExtensionServices _extensions; private readonly ImmutableArray _handlers; protected MiddlewareBase(IMiddlewareOptions options, ImmutableExtensionServices extensions) : this(new LanguageManager(Argument.NotNull(nameof(options), options)), options, extensions) { } internal MiddlewareBase(LanguageManager languageManager, IMiddlewareOptions options, ImmutableExtensionServices extensions) { _options = options; _extensions = extensions; _languageManager = languageManager; _handlers = CreateHandlersIndexedByCommandId(); } private ImmutableArray CreateHandlersIndexedByCommandId() { var handlers = new ICommandHandler[26]; foreach (var handler in CreateHandlers()) { handlers[handler.CommandId - 'A'] = handler; } return ImmutableArray.CreateRange(handlers); } private IReadOnlyCollection CreateHandlers() { var completion = new CompletionSupport(); var signatureHelp = new SignatureHelpSupport(); var typedCharEffects = new TypedCharEffects(completion, signatureHelp); return new ICommandHandler[] { new ApplyDiagnosticActionHandler(), new CompletionStateHandler(completion), new MoveCursorHandler(signatureHelp), new ReplaceTextHandler(signatureHelp, completion, typedCharEffects, ArrayPool.Shared), new RequestSelfDebugDataHandler(), #pragma warning disable CS0618 // Type or member is obsolete new SetOptionsHandler(_languageManager, ArrayPool.Shared, _extensions.SetOptionsFromClient), #pragma warning restore CS0618 new SignatureHelpStateHandler(signatureHelp), new RequestInfoTipHandler(), #pragma warning disable CS0618 // Type or member is obsolete new SlowUpdateHandler(_extensions.SlowUpdate), #pragma warning restore CS0618 new TypeCharHandler(typedCharEffects) }; } internal ICommandHandler GetHandler(char commandId) { return _handlers[commandId - 'A']; } protected async Task SlowTestStatusAsync(CancellationToken cancellationToken) { using var sender = new NullCommandResultSender(ArrayPool.Shared); using var session = StartWorkSession(); Task ExecuteAsync(char commandId, string command) { var byteCount = Encoding.UTF8.GetByteCount(command); byte[]? bytes = null; try { bytes = ArrayPool.Shared.Rent(byteCount); Encoding.UTF8.GetBytes(command, 0, command.Length, bytes, 0); var asyncData = new AsyncData(bytes.AsMemory(0, byteCount), false, () => throw new()); return GetHandler(commandId).ExecuteAsync(asyncData, session, sender, cancellationToken); } finally { if (bytes != null) ArrayPool.Shared.Return(bytes); } } if (_options.StatusTestCommands.Count == 0) throw new NotSupportedException("TODO: Implement default command sequence before a NuGet release"); foreach (var (commandId, commandText) in _options.StatusTestCommands) { await ExecuteAsync(commandId, commandText).ConfigureAwait(false); } } protected async Task WebSocketLoopAsync(WebSocket socket, CancellationToken cancellationToken) { WorkSession? session = null; Connection? connection = null; try { session = StartWorkSession(); connection = new Connection(socket, session, _handlers, ArrayPool.Shared, _extensions.ConnectionSendViewer, _extensions.ExceptionLogger, _options); while (connection.IsConnected) { try { await connection.ReceiveAndProcessAsync(cancellationToken).ConfigureAwait(false); } catch { // this is sent back by connection itself } } } finally { if (connection != null) { connection.Dispose(); } else { session?.Dispose(); } } } private WorkSession StartWorkSession() { return new WorkSession(_languageManager.GetLanguage(LanguageNames.CSharp), _options, _extensions); } } } ================================================ FILE: Common/Internal/PooledGrowableArray.cs ================================================ using System; using System.Buffers; namespace MirrorSharp.Internal { internal struct PooledGrowableArray : IDisposable { private readonly ArrayPool _pool; private T[] _array; public PooledGrowableArray(int initialLength, ArrayPool pool) { _pool = pool; _array = pool.Rent(initialLength); } public T[] Array => _array; public void Grow(int newLength) { if (newLength <= _array.Length) return; var actualNewLength = _array.Length * (int)Math.Pow(2, Math.Log(Math.Ceiling((double)newLength / _array.Length), 2)); var newArray = (T[]?)null; var oldArray = (T[]?)null; try { newArray = _pool.Rent(actualNewLength); System.Array.Copy(_array, 0, newArray, 0, _array.Length); oldArray = _array; _array = newArray; } catch (Exception) { if (_array != newArray && newArray != null) _pool.Return(newArray); throw; } finally { if (_array != oldArray && oldArray != null) _pool.Return(oldArray); } } public void Dispose() { _pool.Return(_array); } } } ================================================ FILE: Common/Internal/PreloadedAnalyzerAssemblyLoader.cs ================================================ using System.Reflection; using Microsoft.CodeAnalysis; namespace MirrorSharp.Internal { internal class PreloadedAnalyzerAssemblyLoader : IAnalyzerAssemblyLoader { private readonly Assembly _assembly; public PreloadedAnalyzerAssemblyLoader(Assembly assembly) { _assembly = assembly; } public Assembly LoadFromPath(string fullPath) { return _assembly; } public void AddDependencyLocation(string fullPath) { } } } ================================================ FILE: Common/Internal/Results/ICommandResultSender.cs ================================================ using System.Threading; using System.Threading.Tasks; using MirrorSharp.Advanced; namespace MirrorSharp.Internal.Results { internal interface ICommandResultSender { IFastJsonWriter StartJsonMessage(string messageTypeName); Task SendJsonMessageAsync(CancellationToken cancellationToken); } } ================================================ FILE: Common/Internal/Results/NullCommandResultSender.cs ================================================ using System; using System.Buffers; using System.Threading; using System.Threading.Tasks; using MirrorSharp.Advanced; namespace MirrorSharp.Internal.Results { internal class NullCommandResultSender : ICommandResultSender, IDisposable { private readonly FastUtf8JsonWriter _jsonWriter; public NullCommandResultSender(ArrayPool bufferPool) { _jsonWriter = new FastUtf8JsonWriter(bufferPool); } public Task SendJsonMessageAsync(CancellationToken cancellationToken) { return cancellationToken.IsCancellationRequested ? Task.FromCanceled(cancellationToken) : Task.CompletedTask; } public IFastJsonWriter StartJsonMessage(string messageTypeName) { _jsonWriter.Reset(); _jsonWriter.WriteStartObject(); return _jsonWriter; } public void Dispose() { _jsonWriter.Dispose(); } } } ================================================ FILE: Common/Internal/Roslyn/CSharpLanguage.cs ================================================ using System; using Microsoft.CodeAnalysis; namespace MirrorSharp.Internal.Roslyn { internal class CSharpLanguage : RoslynLanguageBase { public CSharpLanguage(MirrorSharpCSharpOptions options) : base( LanguageNames.CSharp, "Microsoft.CodeAnalysis.CSharp.Features", "Microsoft.CodeAnalysis.CSharp.Workspaces", options ) { } protected override bool ShouldConsiderForHostServices(Type type) => base.ShouldConsiderForHostServices(type) // IntelliCode type, not available in normal environments && type.FullName != "Microsoft.CodeAnalysis.ExternalAccess.Pythia.PythiaSignatureHelpProvider"; } } ================================================ FILE: Common/Internal/Roslyn/IRoslynLanguageOptions.cs ================================================ using System; using System.Collections.Immutable; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Diagnostics; namespace MirrorSharp.Internal.Roslyn { internal interface IRoslynLanguageOptions { ParseOptions ParseOptions { get; } CompilationOptions CompilationOptions { get; } ImmutableList MetadataReferences { get; } ImmutableList AnalyzerReferences { get; } bool IsScript { get; } Type? HostObjectType { get; } } } ================================================ FILE: Common/Internal/Roslyn/Internals/CodeActionPriority.cs ================================================ namespace MirrorSharp.Internal.Roslyn.Internals { internal enum CodeActionPriority { None = 0, Low = 1, Medium = 2, High = 3 } } ================================================ FILE: Common/Internal/Roslyn/Internals/ICodeActionInternals.cs ================================================ using System.Collections.Immutable; using Microsoft.CodeAnalysis.CodeActions; namespace MirrorSharp.Internal.Roslyn.Internals { internal interface ICodeActionInternals { bool IsInlinable(CodeAction action); CodeActionPriority GetPriority(CodeAction action); ImmutableArray GetNestedCodeActions(CodeAction action); } } ================================================ FILE: Common/Internal/Roslyn/Internals/ISignatureHelpProviderWrapper.cs ================================================ using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; namespace MirrorSharp.Internal.Roslyn.Internals { internal interface ISignatureHelpProviderWrapper { bool IsTriggerCharacter(char ch); bool IsRetriggerCharacter(char ch); Task GetItemsAsync( Document document, int position, SignatureHelpTriggerInfoData triggerInfo, SignatureHelpOptionsData options, CancellationToken cancellationToken ); } } ================================================ FILE: Common/Internal/Roslyn/Internals/ISignatureHelpProviderWrapperResolver.cs ================================================ using System.Collections.Generic; namespace MirrorSharp.Internal.Roslyn.Internals { internal interface ISignatureHelpProviderWrapperResolver { IEnumerable GetAllSlow(string languageName); } } ================================================ FILE: Common/Internal/Roslyn/Internals/IWorkspaceAnalyzerOptionsInternals.cs ================================================ using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Diagnostics; namespace MirrorSharp.Internal.Roslyn.Internals { internal interface IWorkspaceAnalyzerOptionsInternals { AnalyzerOptions New(AnalyzerOptions options, Project project); } } ================================================ FILE: Common/Internal/Roslyn/Internals/SignatureHelpItemData.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Threading; using Microsoft.CodeAnalysis; namespace MirrorSharp.Internal.Roslyn.Internals { internal struct SignatureHelpItemData { // see FromInternalTypeExpressionSlow public SignatureHelpItemData( Func> documentationFactory, ImmutableArray prefixDisplayParts, ImmutableArray separatorDisplayParts, ImmutableArray suffixDisplayParts, IEnumerable parameters, int parameterCount ) { DocumentationFactory = documentationFactory; PrefixDisplayParts = prefixDisplayParts; SeparatorDisplayParts = separatorDisplayParts; SuffixDisplayParts = suffixDisplayParts; Parameters = parameters; ParameterCount = parameterCount; } public Func> DocumentationFactory { get; } public ImmutableArray PrefixDisplayParts { get; } public ImmutableArray SeparatorDisplayParts { get; } public ImmutableArray SuffixDisplayParts { get; } public IEnumerable Parameters { get; } public int ParameterCount { get; } } } ================================================ FILE: Common/Internal/Roslyn/Internals/SignatureHelpItemsData.cs ================================================ using System.Collections.Generic; using Microsoft.CodeAnalysis.Text; namespace MirrorSharp.Internal.Roslyn.Internals { internal class SignatureHelpItemsData { public SignatureHelpItemsData( IEnumerable items, TextSpan applicableSpan, int argumentIndex, int argumentCount, int? selectedItemIndex ) { Items = items; ApplicableSpan = applicableSpan; ArgumentIndex = argumentIndex; ArgumentCount = argumentCount; SelectedItemIndex = selectedItemIndex; } public IEnumerable Items { get; } public TextSpan ApplicableSpan { get; } public int ArgumentIndex { get; } public int ArgumentCount { get; } public int? SelectedItemIndex { get; } } } ================================================ FILE: Common/Internal/Roslyn/Internals/SignatureHelpOptionsData.cs ================================================ using Microsoft.CodeAnalysis; namespace MirrorSharp.Internal.Roslyn.Internals { internal struct SignatureHelpOptionsData { public Project Project { get; } private SignatureHelpOptionsData(Project project) { Project = project; } public static SignatureHelpOptionsData From(Project project) => new (project); } } ================================================ FILE: Common/Internal/Roslyn/Internals/SignatureHelpParameterData.cs ================================================ using System; using System.Collections.Generic; using System.Threading; using Microsoft.CodeAnalysis; namespace MirrorSharp.Internal.Roslyn.Internals { internal class SignatureHelpParameterData { public SignatureHelpParameterData( string name, Func> documentationFactory, IList displayParts, IList prefixDisplayParts, IList suffixDisplayParts ) { Name = name; DocumentationFactory = documentationFactory; DisplayParts = displayParts; PrefixDisplayParts = prefixDisplayParts; SuffixDisplayParts = suffixDisplayParts; } public string Name { get; } public Func> DocumentationFactory { get; } public IList DisplayParts { get; } public IList PrefixDisplayParts { get; } public IList SuffixDisplayParts { get; } } } ================================================ FILE: Common/Internal/Roslyn/Internals/SignatureHelpTriggerInfoData.cs ================================================ namespace MirrorSharp.Internal.Roslyn.Internals { internal struct SignatureHelpTriggerInfoData { public SignatureHelpTriggerReason TriggerReason { get; } public char? TriggerCharacter { get; } public SignatureHelpTriggerInfoData(SignatureHelpTriggerReason triggerReason, char? triggerCharacter = null) { TriggerReason = triggerReason; TriggerCharacter = triggerCharacter; } } } ================================================ FILE: Common/Internal/Roslyn/Internals/SignatureHelpTriggerReason.cs ================================================ namespace MirrorSharp.Internal.Roslyn.Internals { internal enum SignatureHelpTriggerReason { InvokeSignatureHelpCommand, TypeCharCommand, RetriggerCommand } } ================================================ FILE: Common/Internal/Roslyn/RoslynAssemblies.cs ================================================ using System.Reflection; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Completion; namespace MirrorSharp.Internal.Roslyn { internal static class RoslynAssemblies { public static readonly Assembly MicrosoftCodeAnalysis = typeof(Compilation).GetTypeInfo().Assembly; public static readonly Assembly MicrosoftCodeAnalysisFeatures = typeof(CompletionProvider).GetTypeInfo().Assembly; public static readonly Assembly MicrosoftCodeAnalysisWorkspaces = typeof(Workspace).GetTypeInfo().Assembly; } } ================================================ FILE: Common/Internal/Roslyn/RoslynInternals.cs ================================================ using System; #if !NETCOREAPP using System.Buffers; #endif using System.Composition.Hosting; using System.Reflection; #if NETCOREAPP using System.Runtime.Loader; #endif using System.Threading; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn { internal class RoslynInternals { private static readonly Lazy _internalAssembly = new( LoadInternalsAssemblyWithDependenciesSlowUncached, LazyThreadSafetyMode.PublicationOnly ); public RoslynInternals( ICodeActionInternals codeAction, IWorkspaceAnalyzerOptionsInternals workspaceAnalyzerOptions, ISignatureHelpProviderWrapperResolver singatureHelpProviderResolver ) { CodeAction = codeAction; WorkspaceAnalyzerOptions = workspaceAnalyzerOptions; SingatureHelpProviderResolver = singatureHelpProviderResolver; } public ICodeActionInternals CodeAction { get; } public IWorkspaceAnalyzerOptionsInternals WorkspaceAnalyzerOptions { get; } public ISignatureHelpProviderWrapperResolver SingatureHelpProviderResolver { get; } public static RoslynInternals Get(CompositionHost compositionHost) { Argument.NotNull(nameof(compositionHost), compositionHost); return new RoslynInternals( compositionHost.GetExport(), compositionHost.GetExport(), compositionHost.GetExport() ); } public static Assembly GetInternalsAssemblySlow() { return _internalAssembly.Value; } private static Assembly LoadInternalsAssemblyWithDependenciesSlowUncached() { var roslynVersion = RoslynAssemblies.MicrosoftCodeAnalysis.GetName().Version!; var assembly = LoadInternalsAssemblySlow(roslynVersion); // CI build. TODO: SharpLab only? if (roslynVersion.Major == 42 && roslynVersion.Minor == 42) { // Try previous versions, in case CI is not on newest yet var fallback = GetAssemblyOrNullIfTypesFailToLoad(assembly) ?? GetAssemblyOrNullIfTypesFailToLoad(LoadInternalsAssemblySlow(new Version(4, 11))) ?? GetAssemblyOrNullIfTypesFailToLoad(LoadInternalsAssemblySlow(new Version(4, 10))) ?? GetAssemblyOrNullIfTypesFailToLoad(LoadInternalsAssemblySlow(new Version(4, 9))) ?? GetAssemblyOrNullIfTypesFailToLoad(LoadInternalsAssemblySlow(new Version(4, 8))) ?? GetAssemblyOrNullIfTypesFailToLoad(LoadInternalsAssemblySlow(new Version(4, 7))) ?? GetAssemblyOrNullIfTypesFailToLoad(LoadInternalsAssemblySlow(new Version(4, 6))) ?? GetAssemblyOrNullIfTypesFailToLoad(LoadInternalsAssemblySlow(new Version(4, 5))) ?? GetAssemblyOrNullIfTypesFailToLoad(LoadInternalsAssemblySlow(new Version(4, 4))) ?? GetAssemblyOrNullIfTypesFailToLoad(LoadInternalsAssemblySlow(new Version(4, 3))) ?? GetAssemblyOrNullIfTypesFailToLoad(LoadInternalsAssemblySlow(new Version(4, 2))); assembly = fallback ?? assembly; } PreloadInternalsAssemblyDependenciesSlow(assembly); EnsureInternalsTypesCanLoad(assembly); return assembly; } private static Assembly? GetAssemblyOrNullIfTypesFailToLoad(Assembly assembly) { try { _ = assembly.DefinedTypes; } catch (ReflectionTypeLoadException) { return null; } return assembly; } private static void EnsureInternalsTypesCanLoad(Assembly assembly) { try { _ = assembly.DefinedTypes; } catch (ReflectionTypeLoadException ex) { throw new Exception( $"Failed to load MirrorSharp Roslyn internals.{Environment.NewLine}" + $" * Microsoft.CodeAnalysis {RoslynAssemblies.MicrosoftCodeAnalysis.GetName().Version}.{Environment.NewLine}" + $" * {assembly.GetName().Name}", ex ); } } private static Assembly LoadInternalsAssemblySlow(Version roslynVersion) { var assemblyName = roslynVersion switch { { Major: > 4 } or { Major: 4, Minor: >= 12 } => "MirrorSharp.Internal.Roslyn412.dll", { Major: 4, Minor: 11 } => "MirrorSharp.Internal.Roslyn411.dll", { Major: 4, Minor: 10 } => "MirrorSharp.Internal.Roslyn410.dll", { Major: 4, Minor: 9 } => "MirrorSharp.Internal.Roslyn49.dll", { Major: 4, Minor: 8 } => "MirrorSharp.Internal.Roslyn48.dll", { Major: 4, Minor: 7 } => "MirrorSharp.Internal.Roslyn47.dll", { Major: 4, Minor: 6 } => "MirrorSharp.Internal.Roslyn46.dll", { Major: 4, Minor: 5 } => "MirrorSharp.Internal.Roslyn45.dll", { Major: 4, Minor: 4 } => "MirrorSharp.Internal.Roslyn44.dll", { Major: 4, Minor: 3 } => "MirrorSharp.Internal.Roslyn43.dll", { Major: 4, Minor: 2 } => "MirrorSharp.Internal.Roslyn42.dll", { Major: 4, Minor: 1 } => "MirrorSharp.Internal.Roslyn41.dll", { Major: 4 } => "MirrorSharp.Internal.Roslyn36.dll", { Major: 3, Minor: >= 6 } => "MirrorSharp.Internal.Roslyn36.dll", { Major: 3, Minor: >= 3 } => "MirrorSharp.Internal.Roslyn33.dll", _ => throw new NotSupportedException() }; using var assemblyStream = typeof(RoslynInternals).Assembly.GetManifestResourceStream(assemblyName)!; #if NETCOREAPP return AssemblyLoadContext.Default.LoadFromStream(assemblyStream); #else byte[]? assemblyBytes = null; try { assemblyBytes = ArrayPool.Shared.Rent((int)assemblyStream.Length); assemblyStream.Read(assemblyBytes, 0, assemblyBytes.Length); return Assembly.Load(assemblyBytes); } finally { if (assemblyBytes != null) ArrayPool.Shared.Return(assemblyBytes); } #endif } private static void PreloadInternalsAssemblyDependenciesSlow(Assembly assembly) { foreach (var reference in assembly.GetReferencedAssemblies()) { Assembly.Load(reference); } } } } ================================================ FILE: Common/Internal/Roslyn/RoslynLanguageBase.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Composition; using System.Composition.Hosting; using System.Linq; using System.Reflection; using System.Text; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CodeFixes; using Microsoft.CodeAnalysis.Diagnostics; using Microsoft.CodeAnalysis.Host.Mef; using Microsoft.CodeAnalysis.Text; using MirrorSharp.Internal.Abstraction; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn { internal abstract class RoslynLanguageBase : ILanguage { private readonly IRoslynLanguageOptions _options; private readonly CompositionHost _compositionHost; private readonly MefHostServices _hostServices; private readonly ImmutableArray _defaultSignatureHelpProviders; private readonly ImmutableDictionary> _codeFixProvidersIndexedByDiagnosticIds; private readonly ImmutableArray _analyzers; private readonly RoslynInternals _roslynInternals; protected RoslynLanguageBase( string name, string featuresAssemblyName, string workspacesAssemblyName, IRoslynLanguageOptions options ) { Name = name; _compositionHost = CreateCompositionHost(featuresAssemblyName, workspacesAssemblyName); _hostServices = MefHostServices.Create(_compositionHost); _options = options; _codeFixProvidersIndexedByDiagnosticIds = CreateDefaultCodeFixProvidersSlow(); _analyzers = ImmutableArray.CreateRange( _options.AnalyzerReferences.SelectMany(r => r.GetAnalyzers(Name)) ); _roslynInternals = RoslynInternals.Get(_compositionHost); _defaultSignatureHelpProviders = ImmutableArray.CreateRange( _roslynInternals.SingatureHelpProviderResolver.GetAllSlow(languageName: Name) ); } private CompositionHost CreateCompositionHost(string featuresAssemblyName, string workspacesAssemblyName) { var types = new[] { RoslynAssemblies.MicrosoftCodeAnalysisWorkspaces, RoslynAssemblies.MicrosoftCodeAnalysisFeatures, Assembly.Load(new AssemblyName(featuresAssemblyName)), Assembly.Load(new AssemblyName(workspacesAssemblyName)), RoslynInternals.GetInternalsAssemblySlow() }.SelectMany(a => a.DefinedTypes).Where(ShouldConsiderForHostServices); var configuration = new ContainerConfiguration().WithParts(types); return configuration.CreateContainer(); } protected virtual bool ShouldConsiderForHostServices(Type type) => type.FullName is not ( "Microsoft.CodeAnalysis.SolutionCrawler.SolutionCrawlerRegistrationService" or "Microsoft.CodeAnalysis.Host.DefaultWorkspaceEventListenerServiceFactory" ); public string Name { get; } public ILanguageSessionInternal CreateSession(string text, ILanguageSessionExtensions extensions) { var projectId = ProjectId.CreateNewId(); var projectInfo = ProjectInfo.Create( projectId, VersionStamp.Create(), "_", "_", Name, parseOptions: _options.ParseOptions, isSubmission: _options.IsScript, hostObjectType: _options.HostObjectType, compilationOptions: _options.CompilationOptions, metadataReferences: _options.MetadataReferences, analyzerReferences: _options.AnalyzerReferences ); return new RoslynSession( SourceText.From(text, Encoding.UTF8), projectInfo, _hostServices, _analyzers, _codeFixProvidersIndexedByDiagnosticIds, _defaultSignatureHelpProviders, _roslynInternals, extensions ); } private ImmutableDictionary> CreateDefaultCodeFixProvidersSlow() { var codeFixProviderTypes = _options .AnalyzerReferences .OfType() .Select(a => a.GetAssembly()) .SelectMany(a => a.DefinedTypes) .Where(t => t.IsDefined(typeof(ExportCodeFixProviderAttribute))); var providersByDiagnosticIds = new Dictionary>(); foreach (var type in codeFixProviderTypes) { var provider = (CodeFixProvider)Activator.CreateInstance(type.AsType())!; foreach (var id in provider.FixableDiagnosticIds) { if (!providersByDiagnosticIds.TryGetValue(id, out var list)) { list = new List(); providersByDiagnosticIds.Add(id, list); } list.Add(provider); } } return ImmutableDictionary.CreateRange( providersByDiagnosticIds.Select(p => new KeyValuePair>(p.Key, ImmutableArray.CreateRange(p.Value))) ); } } } ================================================ FILE: Common/Internal/Roslyn/RoslynLanguageDependencies.cs ================================================ using MirrorSharp.Advanced.EarlyAccess; namespace MirrorSharp.Internal.Roslyn { internal class RoslynLanguageDependencies { public RoslynLanguageDependencies(IRoslynCompilationGuard? guard) { Guard = guard; } public IRoslynCompilationGuard? Guard { get; } } } ================================================ FILE: Common/Internal/Roslyn/RoslynScriptHelper.cs ================================================ using System; using Microsoft.CodeAnalysis; namespace MirrorSharp.Internal.Roslyn { internal static class RoslynScriptHelper { public static void Validate(bool isScript, Type? hostObjectType) { if (!isScript && hostObjectType != null) throw new ArgumentException($"HostObjectType requires script mode (IsScript must be true).", nameof(hostObjectType)); } public static SourceCodeKind GetSourceKind(bool isScript) => isScript ? SourceCodeKind.Script : SourceCodeKind.Regular; } } ================================================ FILE: Common/Internal/Roslyn/RoslynSession.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CodeActions; using Microsoft.CodeAnalysis.CodeFixes; using Microsoft.CodeAnalysis.Completion; using Microsoft.CodeAnalysis.Diagnostics; using Microsoft.CodeAnalysis.Host.Mef; using Microsoft.CodeAnalysis.QuickInfo; using Microsoft.CodeAnalysis.Text; using MirrorSharp.Advanced; using MirrorSharp.Advanced.EarlyAccess; using MirrorSharp.Internal.Abstraction; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn { internal class RoslynSession : ILanguageSessionInternal, IRoslynSession { private static AnalyzerOptions EmptyAnalyzerOptions = new (ImmutableArray.Empty); private static readonly TextChange[] NoTextChanges = new TextChange[0]; private readonly TextChange[] _oneTextChange = new TextChange[1]; private readonly CustomWorkspace _workspace; private bool _documentOutOfDate; private Document _document; private SourceText _sourceText; private Project? _lastWorkspaceAnalyzerOptionsProject; private AnalyzerOptions? _workspaceAnalyzerOptions; private readonly CompletionService _completionService; private readonly ILanguageSessionExtensions _extensions; public RoslynSession( SourceText sourceText, ProjectInfo projectInfo, MefHostServices hostServices, ImmutableArray analyzers, ImmutableDictionary> codeFixProviders, ImmutableArray signatureHelpProviders, RoslynInternals roslynInternals, ILanguageSessionExtensions extensions ) { _sourceText = sourceText; var safeSourceTextForDocument = sourceText; try { extensions.RoslynSourceTextGuard?.ValidateSourceText(sourceText); } catch (RoslynSourceTextGuardException) { // source text is not currenty valid -- however we do not have to fail the whole session // we'll report it when the document is accessed safeSourceTextForDocument = SourceText.From(""); _documentOutOfDate = true; } _workspace = new CustomWorkspace(hostServices); _document = CreateProjectAndOpenNewDocument(_workspace, projectInfo, safeSourceTextForDocument); QuickInfoService = QuickInfoService.GetService(_document); _completionService = CompletionService.GetService(_document); Analyzers = analyzers; SignatureHelpProviders = signatureHelpProviders; CodeFixProviders = codeFixProviders; RoslynInternals = roslynInternals; _extensions = extensions; } private Document CreateProjectAndOpenNewDocument(Workspace workspace, ProjectInfo projectInfo, SourceText sourceText) { var documentId = DocumentId.CreateNewId(projectInfo.Id); var solution = _workspace.CurrentSolution .AddProject(projectInfo) .AddDocument(documentId, "_", sourceText); solution = _workspace.SetCurrentSolution(solution); workspace.OpenDocument(documentId); return solution.GetDocument(documentId)!; } public string GetText() => SourceText.ToString(); public void ReplaceText(string? newText, int start = 0, int? length = null) { var finalLength = length ?? SourceText.Length - start; _oneTextChange[0] = new TextChange(new TextSpan(start, finalLength), newText); SourceText = SourceText.WithChanges(_oneTextChange); } public async Task> GetDiagnosticsAsync(CancellationToken cancellationToken) { // TODO: Revisit ! after https://github.com/dotnet/docs/issues/14784 var compilation = (await Project.GetCompilationAsync(cancellationToken).ConfigureAwait(false))!; _extensions.RoslynCompilationGuard?.ValidateCompilation(compilation, this); if (_lastWorkspaceAnalyzerOptionsProject != Project) { _workspaceAnalyzerOptions = RoslynInternals.WorkspaceAnalyzerOptions.New(EmptyAnalyzerOptions, Project); _lastWorkspaceAnalyzerOptionsProject = Project; } return await compilation.WithAnalyzers(Analyzers, _workspaceAnalyzerOptions, cancellationToken) .GetAllDiagnosticsAsync(cancellationToken) .ConfigureAwait(false); } public bool ShouldTriggerCompletion(int cursorPosition, CompletionTrigger trigger) { return _completionService.ShouldTriggerCompletion(SourceText, cursorPosition, trigger); } public Task GetCompletionsAsync(int cursorPosition, CompletionTrigger trigger, CancellationToken cancellationToken) { return _completionService.GetCompletionsAsync(Document, cursorPosition, trigger, cancellationToken: cancellationToken); } public Task GetCompletionDescriptionAsync(CompletionItem item, CancellationToken cancellationToken) { return _completionService.GetDescriptionAsync(Document, item, cancellationToken: cancellationToken); } public Task GetCompletionChangeAsync(TextSpan completionSpan, CompletionItem item, CancellationToken cancellationToken) { return _completionService.GetChangeAsync(Document, item, cancellationToken: cancellationToken); } public IList CurrentCodeActions { get; } = new List(); public CustomWorkspace Workspace { get { EnsureDocumentUpToDate(); return _workspace; } } public Project Project { get => Document.Project; set { Argument.NotNull(nameof(value), value); if (!value.ContainsDocument(_document.Id)) throw new ArgumentException($"Project must include session source document (id: '{_document.Id}').", nameof(value)); if (_documentOutOfDate) throw new InvalidOperationException("Source document has changed since getting Project; Project cannot be set."); ApplySolutionChange(value.Solution); } } public Document Document { get { EnsureDocumentUpToDate(); return _document; } } public SourceText SourceText { get => _sourceText; set { if (value == _sourceText) return; _sourceText = value; _documentOutOfDate = true; } } public CurrentSignatureHelp? CurrentSignatureHelp { get; set; } public ImmutableArray Analyzers { get; } public ImmutableDictionary> CodeFixProviders { get; } public QuickInfoService QuickInfoService { get; } public ImmutableArray SignatureHelpProviders { get; } public RoslynInternals RoslynInternals { get; } public void SetScriptMode(bool isScript = true, Type? hostObjectType = null) { RoslynScriptHelper.Validate(isScript, hostObjectType); var sourceKind = RoslynScriptHelper.GetSourceKind(isScript); var project = Project; var document = Document; if (project.ParseOptions == null) throw new NotSupportedException("Setting Script Mode on project without ParseOptions is not supported yet"); var newProjectInfo = ProjectInfo.Create( project.Id, project.Version, project.Name, project.AssemblyName, project.Language, parseOptions: project.ParseOptions.WithKind(sourceKind), compilationOptions: project.CompilationOptions, documents: new[] { DocumentInfo.Create(document.Id, document.Name, sourceCodeKind: sourceKind) }, metadataReferences: project.MetadataReferences, analyzerReferences: project.AnalyzerReferences, isSubmission: isScript, hostObjectType: hostObjectType ); var newSolution = project.Solution .RemoveProject(project.Id) .AddProject(newProjectInfo); var newProject = newSolution.GetProject(project.Id)!; if (project.DocumentIds.Count > 1) throw new NotSupportedException($"Calling {nameof(SetScriptMode)} after adding documents to the project is not currently supported."); if (project.AdditionalDocumentIds.Count > 0) throw new NotSupportedException($"Calling {nameof(SetScriptMode)} after adding additional documents to the project is not currently supported."); var newDocument = newProject.GetDocument(document.Id)!.WithText(_sourceText); _workspace.SetCurrentSolution(newDocument.Project.Solution); UpdateDocumentAfterSolutionChange(); } public void AddMetadataReferencesFromFiles(params string[] paths) { Project = Project.WithMetadataReferences(MetadataReferenceFactory.CreateFromFilesSlow(paths)); } private void EnsureDocumentUpToDate() { if (!_documentOutOfDate) return; _extensions.RoslynSourceTextGuard?.ValidateSourceText(_sourceText); var document = _document.WithText(_sourceText); ApplySolutionChange(document.Project.Solution); } private void ApplySolutionChange(Solution solution) { // ReSharper disable once PossibleNullReferenceException if (!_workspace.TryApplyChanges(solution)) throw new Exception("Failed to apply changes to workspace."); UpdateDocumentAfterSolutionChange(); } private void UpdateDocumentAfterSolutionChange() { _document = _workspace.CurrentSolution.GetDocument(_document.Id)!; _documentOutOfDate = false; } public async Task> RollbackWorkspaceChangesAsync() { EnsureDocumentUpToDate(); var oldProject = _document.Project; // ReSharper disable once PossibleNullReferenceException var newProject = _workspace.CurrentSolution.GetProject(Project.Id)!; if (newProject == oldProject) return NoTextChanges; var newText = await newProject.GetDocument(_document.Id)!.GetTextAsync().ConfigureAwait(false); _document = _workspace.SetCurrentSolution(oldProject.Solution).GetDocument(_document.Id)!; return newText.GetTextChanges(_sourceText); } private Comparison? _codeActionPriorityComparison; public Comparison CodeActionPriorityComparison { get { if (_codeActionPriorityComparison == null) { var actionInternals = RoslynInternals.CodeAction; _codeActionPriorityComparison = (a, b) => Math.Sign( (int)actionInternals.GetPriority(b) - (int)actionInternals.GetPriority(a) ); } return _codeActionPriorityComparison; } } public void Dispose() { _workspace?.Dispose(); } } } ================================================ FILE: Common/Internal/SelfDebug.cs ================================================ using System; using System.Collections.Generic; namespace MirrorSharp.Internal { internal class SelfDebug { private readonly LogEntry[] _log = new LogEntry[100]; private int _logIndex = -1; private bool _endReached; public void Log(string eventType, string? message, int cursorPosition, string text) { _logIndex += 1; if (_logIndex >= _log.Length) { _logIndex = 0; _endReached = true; } _log[_logIndex] = new(DateTimeOffset.Now, eventType, message, cursorPosition, text); } public IEnumerable GetLogEntries() { if (_endReached) { for (var i = _logIndex + 1; i < _log.Length; i++) { yield return _log[i]; } } for (var i = 0; i <= _logIndex; i++) { yield return _log[i]; } } public readonly struct LogEntry { public DateTimeOffset DateTime { get; } public string EventType { get; } public string? Message { get; } public int CursorPosition { get; } public string Text { get; } public LogEntry(DateTimeOffset dateTime, string eventType, string? message, int cursorPosition, string text) { DateTime = dateTime; EventType = eventType; Message = message; CursorPosition = cursorPosition; Text = text; } } } } ================================================ FILE: Common/Internal/WorkSession.cs ================================================ using System; using System.Collections.Generic; using MirrorSharp.Advanced; using MirrorSharp.Internal.Abstraction; using MirrorSharp.Internal.Roslyn; namespace MirrorSharp.Internal { internal class WorkSession : IWorkSession, IDisposable { private readonly ILanguageSessionExtensions _extensions; private ILanguage _language; private ILanguageSessionInternal? _languageSession; private string _lastText = ""; public WorkSession(ILanguage language, IWorkSessionOptions options, ILanguageSessionExtensions extensions) { _language = Argument.NotNull(nameof(language), language); _extensions = extensions; SelfDebug = options.SelfDebugEnabled ? new SelfDebug() : null; } public void ChangeLanguage(ILanguage language) { Argument.NotNull(nameof(language), language); if (language == _language) return; _language = language; if (_languageSession != null) { _lastText = _languageSession.GetText(); _languageSession.Dispose(); } _languageSession = null; } private void Initialize() { _languageSession = Language.CreateSession(_lastText, _extensions); } public ILanguage Language => _language; string IWorkSession.LanguageName => Language.Name; public ILanguageSessionInternal LanguageSession { get { EnsureInitialized(); return _languageSession!; } } public bool IsRoslyn => LanguageSession is RoslynSession; public RoslynSession Roslyn => (RoslynSession)LanguageSession; IRoslynSession IWorkSession.Roslyn => Roslyn; public string GetText() => LanguageSession.GetText(); public void ReplaceText(string newText, int start = 0, int? length = null) => LanguageSession.ReplaceText(newText, start, length); public int CursorPosition { get; set; } public CurrentCompletion CurrentCompletion { get; } = new CurrentCompletion(); public IDictionary RawOptionsFromClient { get; } = new Dictionary(); public SelfDebug? SelfDebug { get; } public IDictionary ExtensionData { get; } = new Dictionary(); private void EnsureInitialized() { if (_languageSession != null) return; Initialize(); } public void Dispose() => _languageSession?.Dispose(); } } ================================================ FILE: Common/MirrorSharpCSharpOptions.cs ================================================ using System.Collections.Immutable; using System.Reflection; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.Diagnostics; using MirrorSharp.Advanced; namespace MirrorSharp { /// MirrorSharp options for C# public class MirrorSharpCSharpOptions : MirrorSharpRoslynOptions { internal MirrorSharpCSharpOptions() : base( new CSharpParseOptions(), new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary), ImmutableList.Create(MetadataReference.CreateFromFile(typeof(object).GetTypeInfo().Assembly.Location)), ImmutableList.Create(CreateAnalyzerReference("Microsoft.CodeAnalysis.CSharp.Features")) ) { } } } ================================================ FILE: Common/MirrorSharpOptions.cs ================================================ using System; using System.Collections.Generic; using Microsoft.CodeAnalysis; using MirrorSharp.Advanced; using MirrorSharp.Internal; using MirrorSharp.Internal.Abstraction; using MirrorSharp.Internal.Roslyn; namespace MirrorSharp { /// MirrorSharp options object. public sealed class MirrorSharpOptions : IMiddlewareOptions { internal IDictionary> Languages { get; } = new Dictionary>(); /// Creates a new instance of . public MirrorSharpOptions() { Languages.Add(LanguageNames.CSharp, () => new CSharpLanguage(CSharp)); } /// MirrorSharp options for C#. /// These options are ignored if was called. public MirrorSharpCSharpOptions CSharp { get; } = new MirrorSharpCSharpOptions(); /// Defines a used to support extra options. [Obsolete("ASP.NET Core: register ISetOptionsFromClientExtension in service collection instead. Owin: pass using MirrorSharpServices instead. This property will be removed in the next major version.")] public ISetOptionsFromClientExtension? SetOptionsFromClient { get; set; } /// Defines a used to extend periodic processing. [Obsolete("ASP.NET Core: register ISlowUpdateExtension in service collection instead. Owin: pass using MirrorSharpServices instead. This property will be removed in the next major version.")] public ISlowUpdateExtension? SlowUpdate { get; set; } /// Defines a called for any unhandled exception. [Obsolete("ASP.NET Core: register IExceptionLogger in service collection instead. Owin: pass using MirrorSharpServices instead. This property will be removed in the next major version.")] public IExceptionLogger? ExceptionLogger { get; set; } /// Defines whether the exceptions should include full details (messages, stack traces). public bool IncludeExceptionDetails { get; set; } /// Defines whether the SelfDebug mode is enabled — might reduce performance. public bool SelfDebugEnabled { get; set; } internal IList<(char commandId, string commandText)> StatusTestCommands { get; } = new List<(char commandId, string commandText)>(); /// Disables C# — the language will not be available to the client. /// Current object, for convenience. public MirrorSharpOptions DisableCSharp() { Languages.Remove(LanguageNames.CSharp); return this; } /// Configures C# support in the . /// Setup delegate used to configure /// Current object, for convenience. public MirrorSharpOptions SetupCSharp(Action setup) { setup(CSharp); return this; } IDictionary> ILanguageManagerOptions.Languages => Languages; IList<(char commandId, string commandText)> IMiddlewareOptions.StatusTestCommands => StatusTestCommands; } } ================================================ FILE: Common/Properties/AssemblyInfo.cs ================================================ using System.Runtime.InteropServices; // 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("c130c962-d17f-4741-b2b4-d74263bf380a")] ================================================ FILE: Common/PublicAPI.Shipped.txt ================================================ MirrorSharp.Advanced.FastJsonWriterExtensions MirrorSharp.Advanced.IExceptionLogger MirrorSharp.Advanced.IExceptionLogger.LogException(System.Exception exception, MirrorSharp.Advanced.IWorkSession session) -> void MirrorSharp.Advanced.IFastJsonWriter MirrorSharp.Advanced.IFastJsonWriter.OpenString() -> System.IO.TextWriter MirrorSharp.Advanced.IFastJsonWriter.WriteEndArray() -> void MirrorSharp.Advanced.IFastJsonWriter.WriteEndObject() -> void MirrorSharp.Advanced.IFastJsonWriter.WritePropertyName(string name) -> void MirrorSharp.Advanced.IFastJsonWriter.WriteStartArray() -> void MirrorSharp.Advanced.IFastJsonWriter.WriteStartObject() -> void MirrorSharp.Advanced.IFastJsonWriter.WriteValue(System.ArraySegment value) -> void MirrorSharp.Advanced.IFastJsonWriter.WriteValue(System.Collections.Immutable.ImmutableArray value) -> void MirrorSharp.Advanced.IFastJsonWriter.WriteValue(System.Text.StringBuilder value) -> void MirrorSharp.Advanced.IFastJsonWriter.WriteValue(bool value) -> void MirrorSharp.Advanced.IFastJsonWriter.WriteValue(char value) -> void MirrorSharp.Advanced.IFastJsonWriter.WriteValue(int value) -> void MirrorSharp.Advanced.IFastJsonWriter.WriteValue(string value) -> void MirrorSharp.Advanced.IRoslynSession MirrorSharp.Advanced.IRoslynSession.AddMetadataReferencesFromFiles(params string[] paths) -> void MirrorSharp.Advanced.IRoslynSession.Project.get -> Microsoft.CodeAnalysis.Project MirrorSharp.Advanced.IRoslynSession.Project.set -> void MirrorSharp.Advanced.IRoslynSession.SetScriptMode(bool isScript = true, System.Type hostObjectType = null) -> void MirrorSharp.Advanced.ISetOptionsFromClientExtension MirrorSharp.Advanced.ISetOptionsFromClientExtension.TrySetOption(MirrorSharp.Advanced.IWorkSession session, string name, string value) -> bool MirrorSharp.Advanced.ISlowUpdateExtension MirrorSharp.Advanced.ISlowUpdateExtension.ProcessAsync(MirrorSharp.Advanced.IWorkSession session, System.Collections.Generic.IList diagnostics, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task MirrorSharp.Advanced.ISlowUpdateExtension.WriteResult(MirrorSharp.Advanced.IFastJsonWriter writer, object result, MirrorSharp.Advanced.IWorkSession session) -> void MirrorSharp.Advanced.IWorkSession MirrorSharp.Advanced.IWorkSession.ExtensionData.get -> System.Collections.Generic.IDictionary MirrorSharp.Advanced.IWorkSession.GetText() -> string MirrorSharp.Advanced.IWorkSession.IsRoslyn.get -> bool MirrorSharp.Advanced.IWorkSession.LanguageName.get -> string MirrorSharp.Advanced.IWorkSession.Roslyn.get -> MirrorSharp.Advanced.IRoslynSession MirrorSharp.Advanced.MirrorSharpRoslynOptions MirrorSharp.Advanced.MirrorSharpRoslynOptions.AddMetadataReferencesFromFiles(params string[] paths) -> TSelf MirrorSharp.Advanced.MirrorSharpRoslynOptions.CompilationOptions.get -> TCompilationOptions MirrorSharp.Advanced.MirrorSharpRoslynOptions.CompilationOptions.set -> void MirrorSharp.Advanced.MirrorSharpRoslynOptions.MetadataReferences.get -> System.Collections.Immutable.ImmutableList MirrorSharp.Advanced.MirrorSharpRoslynOptions.MetadataReferences.set -> void MirrorSharp.Advanced.MirrorSharpRoslynOptions.ParseOptions.get -> TParseOptions MirrorSharp.Advanced.MirrorSharpRoslynOptions.ParseOptions.set -> void MirrorSharp.Advanced.MirrorSharpRoslynOptions.SetScriptMode(bool isScript = true, System.Type hostObjectType = null) -> TSelf MirrorSharp.MirrorSharpCSharpOptions MirrorSharp.MirrorSharpOptions MirrorSharp.MirrorSharpOptions.CSharp.get -> MirrorSharp.MirrorSharpCSharpOptions MirrorSharp.MirrorSharpOptions.DisableCSharp() -> MirrorSharp.MirrorSharpOptions MirrorSharp.MirrorSharpOptions.ExceptionLogger.get -> MirrorSharp.Advanced.IExceptionLogger MirrorSharp.MirrorSharpOptions.ExceptionLogger.set -> void MirrorSharp.MirrorSharpOptions.IncludeExceptionDetails.get -> bool MirrorSharp.MirrorSharpOptions.IncludeExceptionDetails.set -> void MirrorSharp.MirrorSharpOptions.MirrorSharpOptions() -> void MirrorSharp.MirrorSharpOptions.SelfDebugEnabled.get -> bool MirrorSharp.MirrorSharpOptions.SelfDebugEnabled.set -> void MirrorSharp.MirrorSharpOptions.SetOptionsFromClient.get -> MirrorSharp.Advanced.ISetOptionsFromClientExtension MirrorSharp.MirrorSharpOptions.SetOptionsFromClient.set -> void MirrorSharp.MirrorSharpOptions.SetupCSharp(System.Action setup) -> MirrorSharp.MirrorSharpOptions MirrorSharp.MirrorSharpOptions.SlowUpdate.get -> MirrorSharp.Advanced.ISlowUpdateExtension MirrorSharp.MirrorSharpOptions.SlowUpdate.set -> void static MirrorSharp.Advanced.FastJsonWriterExtensions.WriteProperty(this MirrorSharp.Advanced.IFastJsonWriter writer, string name, System.ArraySegment value) -> void static MirrorSharp.Advanced.FastJsonWriterExtensions.WriteProperty(this MirrorSharp.Advanced.IFastJsonWriter writer, string name, System.Collections.Immutable.ImmutableArray value) -> void static MirrorSharp.Advanced.FastJsonWriterExtensions.WriteProperty(this MirrorSharp.Advanced.IFastJsonWriter writer, string name, System.Text.StringBuilder value) -> void static MirrorSharp.Advanced.FastJsonWriterExtensions.WriteProperty(this MirrorSharp.Advanced.IFastJsonWriter writer, string name, bool value) -> void static MirrorSharp.Advanced.FastJsonWriterExtensions.WriteProperty(this MirrorSharp.Advanced.IFastJsonWriter writer, string name, char value) -> void static MirrorSharp.Advanced.FastJsonWriterExtensions.WriteProperty(this MirrorSharp.Advanced.IFastJsonWriter writer, string name, int value) -> void static MirrorSharp.Advanced.FastJsonWriterExtensions.WriteProperty(this MirrorSharp.Advanced.IFastJsonWriter writer, string name, string value) -> void static MirrorSharp.Advanced.FastJsonWriterExtensions.WritePropertyStartArray(this MirrorSharp.Advanced.IFastJsonWriter writer, string name) -> void static MirrorSharp.Advanced.FastJsonWriterExtensions.WritePropertyStartObject(this MirrorSharp.Advanced.IFastJsonWriter writer, string name) -> void MirrorSharp.Advanced.MirrorSharpRoslynOptions.AnalyzerReferences.get -> System.Collections.Immutable.ImmutableList MirrorSharp.Advanced.MirrorSharpRoslynOptions.AnalyzerReferences.set -> void ================================================ FILE: Common/PublicAPI.Unshipped.txt ================================================ ================================================ FILE: Common/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETCoreApp,Version=v3.1": { "Microsoft.CodeAnalysis.Common": { "type": "Direct", "requested": "[3.3.1, )", "resolved": "3.3.1", "contentHash": "N5yQdGy+M4kimVG7hwCeGTCfgYjK2o5b/Shumkb/rCC+/SAkvP1HUAYK+vxPFS7dLJNtXLRsmPHKj3fnyNWnrw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "2.9.4", "System.Collections.Immutable": "1.5.0", "System.Memory": "4.5.3", "System.Reflection.Metadata": "1.6.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2", "System.Text.Encoding.CodePages": "4.5.1", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Direct", "requested": "[3.3.1, )", "resolved": "3.3.1", "contentHash": "WDUIhTHem38H6VJ98x2Ssq0fweakJHnHYl7vbG8ARnsAwLoJKCQCy78EeY1oRrCKG42j0v6JVljKkeqSDA28UA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Direct", "requested": "[3.3.1, )", "resolved": "3.3.1", "contentHash": "t9uIwsLzT5zQ1Q3ZIpwE4EOnAf/lGdbQwyeqhyO/BJ+AWDt267Hxlz5k6ypPy14Z6+PW6pTggAGz6MwN31RElQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Features": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[2.9.8, )", "resolved": "2.9.8", "contentHash": "oaanBu3yA/c5NUMVnpe8w7YcBRG7UmEKKnP7HxVt6lHb78XdNh8OTNFeVkVJhtlfDO1kX5y2iCeSkVSDdl9trw==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Direct", "requested": "[3.3.1, )", "resolved": "3.3.1", "contentHash": "NfBz3b5hFSbO+7xsCNryD+p8axsIJFTG7qM3jvMTC/MqYrU6b8E1b6JoRj5rJSOBB+pSunk+CMqyGQTOWHeDUg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "System.Composition": "1.0.31" } }, "System.Memory": { "type": "Direct", "requested": "[4.5.5, )", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==" }, "System.Net.Http": { "type": "Direct", "requested": "[4.3.4, )", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Text.RegularExpressions": { "type": "Direct", "requested": "[4.3.1, )", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { "System.Runtime": "4.3.1" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "2.9.4", "contentHash": "alIJhS0VUg/7x5AsHEoovh/wRZ0RfCSS7k5pDSqpRLTyuMTtRgj6OJJPRApRhJHOGYYsLakf1hKeXFoDwKwNkg==" }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "dHs/UyfLgzsVC4FjTi/x+H+yQifgOnpe3rSN8GwkHWjnidePZ3kSqr1JHmFDf5HTQEydYwrwCAfQ0JSzhsEqDA==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "lvMC69ABN/YEaw3ke4cQRqBYZ2V7DJTOT8QXIeAJGJUfwVHTBN0iq2O5zZQrYnnUN2wmeCzCoAg59PKBosVO7g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": "2.9.5", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]", "Microsoft.DiaSymReader": "1.3.0", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": { "type": "Transitive", "resolved": "2.9.5", "contentHash": "SqwdTocsxU7u0Y8am67BY7KSLAhrtDXdBBwt0Nv9TxLVzPBPtPPFS2bHUsxucpOBMBmc10rWE1eJ+IDrr/0/nQ==" }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.3.0", "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "2.1.2", "contentHash": "mOJy3M0UN+LUG21dLGMxaWZEP6xYpQEpLuvuEQBaownaX4YuhH6NmNUlN9si+vNkAS6dwJ//N1O4DmLf2CikVg==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "Microsoft.Win32.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "NETStandard.Library": { "type": "Transitive", "resolved": "1.6.1", "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.Win32.Primitives": "4.3.0", "System.AppContext": "4.3.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Console": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.Compression.ZipFile": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Net.Http": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Net.Sockets": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Timer": "4.3.0", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XDocument": "4.3.0" } }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.AppContext": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Buffers": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "1.5.0", "contentHash": "EXKiDFsChZW0RjrZ4FYHu9aW6+P4MCgEDCklsVseRfhoO0F+dXeMSsMRAlVXIo06kGJ/zv+2w1a2uc2+kxxSaQ==" }, "System.Composition": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "I+D26qpYdoklyAVUdqwUBrEIckMNjAYnuPJy/h9dsQItpQwVREkDFs4b4tkBza0kT2Yk48Lcfsv2QQ9hWsh9Iw==", "dependencies": { "System.Composition.AttributedModel": "1.0.31", "System.Composition.Convention": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Composition.TypedParts": "1.0.31" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "NHWhkM3ZkspmA0XJEsKdtTt1ViDYuojgSND3yHhTzwxepiwqZf+BCWuvCbjUt4fe0NxxQhUDGJ5km6sLjo9qnQ==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.Convention": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "GLjh2Ju71k6C0qxMMtl4efHa68NmWeIUYh4fkUI8xbjQrEBvFmRwMDFcylT8/PR9SQbeeL48IkFxU/+gd0nYEQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "fN1bT4RX4vUqjbgoyuJFVUizAl2mYF5VAb+bVIxIYZSSc0BdnX+yGAxcavxJuDDCQ1K+/mdpgyEFc8e9ikjvrg==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0LEJN+2NVM89CE4SekDrrk5tHV5LeATltkp+9WNYrR+Huiyt0vaCqHbbHtVAjPyeLWIc8dOz/3kthRBj32wGQg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0Zae/FtzeFgDBBuILeIbC/T9HMYbW4olAmi8XqqAGosSOWvXfiQLfARZEhiGd0LVXaYgXr0NhxiU1LldRP1fpQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Console": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.Tracing": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Buffers": "4.3.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.IO.Compression": "4.3.0" } }, "System.IO.Compression.ZipFile": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", "dependencies": { "System.Buffers": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.IO.FileSystem": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Net.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Net.Sockets": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", "dependencies": { "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "1.6.0", "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==" }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "4.5.2", "contentHash": "wprSFgext8cwqymChhrBLu62LMg/1u92bU+VOwyfBimSPVFXtsNqEWC92Pf9ofzJFlk4IHmJA75EDJn1b2goAQ==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.InteropServices.RuntimeInformation": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0" } }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Cng": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==", "dependencies": { "Microsoft.NETCore.Platforms": "2.1.2", "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "System.Text.Encoding.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "+MvhNtcvIbqmhANyKu91jQnvIRVSTiaOiFNfKWwXGHG48YAb4I/TyH8spsySiPYla7gKal5ZnF3teJqZAximyQ==" }, "System.Threading.Timer": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Xml.ReaderWriter": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Tasks.Extensions": "4.3.0" } }, "System.Xml.XDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } } }, ".NETStandard,Version=v2.0": { "Microsoft.CodeAnalysis.Common": { "type": "Direct", "requested": "[3.3.1, )", "resolved": "3.3.1", "contentHash": "N5yQdGy+M4kimVG7hwCeGTCfgYjK2o5b/Shumkb/rCC+/SAkvP1HUAYK+vxPFS7dLJNtXLRsmPHKj3fnyNWnrw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "2.9.4", "System.Collections.Immutable": "1.5.0", "System.Memory": "4.5.3", "System.Reflection.Metadata": "1.6.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2", "System.Text.Encoding.CodePages": "4.5.1", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Direct", "requested": "[3.3.1, )", "resolved": "3.3.1", "contentHash": "WDUIhTHem38H6VJ98x2Ssq0fweakJHnHYl7vbG8ARnsAwLoJKCQCy78EeY1oRrCKG42j0v6JVljKkeqSDA28UA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Direct", "requested": "[3.3.1, )", "resolved": "3.3.1", "contentHash": "t9uIwsLzT5zQ1Q3ZIpwE4EOnAf/lGdbQwyeqhyO/BJ+AWDt267Hxlz5k6ypPy14Z6+PW6pTggAGz6MwN31RElQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Features": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[2.9.8, )", "resolved": "2.9.8", "contentHash": "oaanBu3yA/c5NUMVnpe8w7YcBRG7UmEKKnP7HxVt6lHb78XdNh8OTNFeVkVJhtlfDO1kX5y2iCeSkVSDdl9trw==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Direct", "requested": "[3.3.1, )", "resolved": "3.3.1", "contentHash": "NfBz3b5hFSbO+7xsCNryD+p8axsIJFTG7qM3jvMTC/MqYrU6b8E1b6JoRj5rJSOBB+pSunk+CMqyGQTOWHeDUg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "System.Composition": "1.0.31" } }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", "resolved": "2.0.3", "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" } }, "System.Memory": { "type": "Direct", "requested": "[4.5.5, )", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Net.Http": { "type": "Direct", "requested": "[4.3.4, )", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Text.RegularExpressions": { "type": "Direct", "requested": "[4.3.1, )", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { "System.Collections": "4.3.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.1", "System.Runtime.Extensions": "4.3.1", "System.Threading": "4.3.0" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "2.9.4", "contentHash": "alIJhS0VUg/7x5AsHEoovh/wRZ0RfCSS7k5pDSqpRLTyuMTtRgj6OJJPRApRhJHOGYYsLakf1hKeXFoDwKwNkg==" }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "dHs/UyfLgzsVC4FjTi/x+H+yQifgOnpe3rSN8GwkHWjnidePZ3kSqr1JHmFDf5HTQEydYwrwCAfQ0JSzhsEqDA==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "lvMC69ABN/YEaw3ke4cQRqBYZ2V7DJTOT8QXIeAJGJUfwVHTBN0iq2O5zZQrYnnUN2wmeCzCoAg59PKBosVO7g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": "2.9.5", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]", "Microsoft.DiaSymReader": "1.3.0", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": { "type": "Transitive", "resolved": "2.9.5", "contentHash": "SqwdTocsxU7u0Y8am67BY7KSLAhrtDXdBBwt0Nv9TxLVzPBPtPPFS2bHUsxucpOBMBmc10rWE1eJ+IDrr/0/nQ==" }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.3.0", "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.1", "contentHash": "TMBuzAHpTenGbGgk0SMTwyEkyijY/Eae4ZGsFNYJvAr/LDn1ku3Etp3FPxChmDp5HHF3kzJuoaa08N0xjqAJfQ==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "1.5.0", "contentHash": "EXKiDFsChZW0RjrZ4FYHu9aW6+P4MCgEDCklsVseRfhoO0F+dXeMSsMRAlVXIo06kGJ/zv+2w1a2uc2+kxxSaQ==" }, "System.Composition": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "I+D26qpYdoklyAVUdqwUBrEIckMNjAYnuPJy/h9dsQItpQwVREkDFs4b4tkBza0kT2Yk48Lcfsv2QQ9hWsh9Iw==", "dependencies": { "System.Composition.AttributedModel": "1.0.31", "System.Composition.Convention": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Composition.TypedParts": "1.0.31" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "NHWhkM3ZkspmA0XJEsKdtTt1ViDYuojgSND3yHhTzwxepiwqZf+BCWuvCbjUt4fe0NxxQhUDGJ5km6sLjo9qnQ==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.Convention": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "GLjh2Ju71k6C0qxMMtl4efHa68NmWeIUYh4fkUI8xbjQrEBvFmRwMDFcylT8/PR9SQbeeL48IkFxU/+gd0nYEQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "fN1bT4RX4vUqjbgoyuJFVUizAl2mYF5VAb+bVIxIYZSSc0BdnX+yGAxcavxJuDDCQ1K+/mdpgyEFc8e9ikjvrg==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0LEJN+2NVM89CE4SekDrrk5tHV5LeATltkp+9WNYrR+Huiyt0vaCqHbbHtVAjPyeLWIc8dOz/3kthRBj32wGQg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0Zae/FtzeFgDBBuILeIbC/T9HMYbW4olAmi8XqqAGosSOWvXfiQLfARZEhiGd0LVXaYgXr0NhxiU1LldRP1fpQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.Tracing": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Net.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==" }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", "dependencies": { "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "1.6.0", "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==", "dependencies": { "System.Collections.Immutable": "1.5.0" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "3TIsJhD1EiiT0w2CcDMN/iSSwnNnsrnbzeVHSKkaEgV85txMprmuO+Yq2AdSbeVGcg28pdNDTPK87tJhX7VFHw==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "qAtKMcHOAq9/zKkl0dwvF0T0pmgCQxX1rC49rJXoU8jq+lw6MC3uXy7nLFmjEI20T3Aq069eWz4LcYR64vEmJw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3", "System.Runtime": "4.3.1" } }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Cng": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "+MvhNtcvIbqmhANyKu91jQnvIRVSTiaOiFNfKWwXGHG48YAb4I/TyH8spsySiPYla7gKal5ZnF3teJqZAximyQ==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } } } } } ================================================ FILE: Directory.Build.props ================================================ 10.0 true 1591 NU5104 enable $(DefaultItemExcludes);node_modules\** true true all runtime; build; native; contentfiles; analyzers; buildtransitive all runtime; build; native; contentfiles; analyzers; buildtransitive ================================================ FILE: FSharp/Advanced/FSharpFileSystem.cs ================================================ using System.IO; using MirrorSharp.FSharp.Internal; using MirrorSharp.Internal; namespace MirrorSharp.FSharp.Advanced { /// Represents a configuration endpoint for F# virtual filesystem. public static class FSharpFileSystem { /// Registers a new virtual file with unique name in the F# filesystem. /// representing the content of the file. /// object that provides the unique name and allows deregistration. /// should be used to deregister the file. public static FSharpVirtualFile RegisterVirtualFile(MemoryStream stream) { Argument.NotNull(nameof(stream), stream); return CustomFileSystem.Instance.RegisterVirtualFile(static s => s, stream); } } } ================================================ FILE: FSharp/Advanced/FSharpParseAndCheckResults.cs ================================================ using FSharp.Compiler.CodeAnalysis; namespace MirrorSharp.FSharp.Advanced { /// Represent combined Parse and Check results from the . public class FSharpParseAndCheckResults { internal FSharpParseAndCheckResults(FSharpParseFileResults parseResults, FSharpCheckFileAnswer checkAnswer) { ParseResults = parseResults; CheckAnswer = checkAnswer; } /// Gets the Parse results. public FSharpParseFileResults ParseResults { get; } /// Gets the Check answer. public FSharpCheckFileAnswer CheckAnswer { get; } } } ================================================ FILE: FSharp/Advanced/FSharpProjectOptionsExtensions.cs ================================================ using System; using System.Collections.Generic; using FSharp.Compiler.CodeAnalysis; using MirrorSharp.Internal; namespace MirrorSharp.FSharp.Advanced { /// Provides Roslyn-like extensions that allow simple updates to . public static class FSharpProjectOptionsExtensions { /// /// Returns a new instance of with /// --optimize option set to the provided value; if /// it already matches the provided value, returns . /// /// The options to use as a base for the returned value. /// The new value for the --optimize option; if null, means option should be removed. /// /// Either a new instance of with the option set; or /// if it already matches the provided value. /// public static FSharpProjectOptions WithOtherOptionOptimize(this FSharpProjectOptions options, bool? optimize) { return options.WithOtherOptions( options.OtherOptions.WithSwitch("--optimize", optimize) ); } /// /// Returns a new instance of with /// --target option set to the provided value; if /// it already matches the provided value, returns . /// /// The options to use as a base for the returned value. /// The new value for the --target option; if null, means option should be removed. /// /// Either a new instance of with the option set; or /// if it already matches the provided value. /// public static FSharpProjectOptions WithOtherOptionTarget(this FSharpProjectOptions options, string? target) { return options.WithOtherOptions( options.OtherOptions.With("--target:", target) ); } /// /// Returns a new instance of with /// --define: option /// added or removed depending on ; if it already matches the provided /// value, returns . /// /// The options to use as a base for the returned value. /// The symbol for the --define option. /// If true, --define should be added; otherwise removed. /// /// Either a new instance of with the option changed; or /// if it already matches the provided value. /// public static FSharpProjectOptions WithOtherOptionDefine(this FSharpProjectOptions options, string symbol, bool defined = true) { Argument.NotNull(nameof(symbol), symbol); return options.WithOtherOptions( defined ? options.OtherOptions.With("--define:" + symbol) : options.OtherOptions.Without("--define:" + symbol) ); } /// /// Returns a new instance of with /// set to the provided value; if /// it is already the same as the provided value, returns . /// /// The options to use as a base for the returned value. /// The new value for . /// /// Either a new instance of with set; /// or if it already includes the provided value. /// public static FSharpProjectOptions WithOtherOptions(this FSharpProjectOptions options, string[] otherOptions) { Argument.NotNull(nameof(options), options); Argument.NotNull(nameof(otherOptions), otherOptions); if (options.OtherOptions == otherOptions) return options; return new FSharpProjectOptions( options.ProjectFileName, options.ProjectId, options.SourceFiles, otherOptions, options.ReferencedProjects, options.IsIncompleteTypeCheckEnvironment, options.UseScriptResolutionRules, options.LoadTime, options.UnresolvedReferences, options.OriginalLoadReferences, options.Stamp ); } internal static FSharpProjectOptions WithOtherOption(this FSharpProjectOptions options, string option) { return options.WithOtherOptions(options.OtherOptions.With(option)); } internal static FSharpProjectOptions WithoutOtherOption(this FSharpProjectOptions options, string option) { return options.WithOtherOptions(options.OtherOptions.Without(option)); } private static string[] WithSwitch(this string[] otherOptions, string prefix, bool? value) { var valueString = value != null ? (value.Value ? "+" : "-") : null; return otherOptions.With(prefix, valueString); } private static string[] With(this string[] otherOptions, string option) { if (Array.IndexOf(otherOptions, option) > -1) return otherOptions; var newOptions = new string[otherOptions.Length + 1]; Array.Copy(otherOptions, newOptions, otherOptions.Length); newOptions[newOptions.Length - 1] = option; return newOptions; } private static string[] Without(this string[] otherOptions, string option) { if (Array.IndexOf(otherOptions, option) < 0) return otherOptions; // generally options are not changed often, so it's OK to use LINQ return Array.FindAll(otherOptions, o => o != option); } private static string[] With(this string[] otherOptions, string prefix, string? value) { // generally options are not changed often, so it's OK to use LINQ if (value == null) { // need to remove the item if it exists if (!Array.Exists(otherOptions, o => o.StartsWith(prefix))) return otherOptions; return Array.FindAll(otherOptions, o => !o.StartsWith(prefix)); } var newOption = prefix + value; if (Array.IndexOf(otherOptions, newOption) > -1) return otherOptions; var newOptions = new List(); var newAdded = false; foreach (var option in otherOptions) { if (option.StartsWith(prefix)) { newOptions.Add(newOption); newAdded = true; continue; } newOptions.Add(option); } if (!newAdded) newOptions.Add(newOption); return newOptions.ToArray(); } } } ================================================ FILE: FSharp/Advanced/FSharpTargetNames.cs ================================================ using FSharp.Compiler.CodeAnalysis; namespace MirrorSharp.FSharp.Advanced { /// /// Provides a list of constants for --target option. /// public static class FSharpTargets { /// Corresponds to --target:exe. public const string Exe = "exe"; /// Corresponds to --target:winexe. public const string WinExe = "winexe"; /// Corresponds to --target:library. public const string Library = "library"; /// Corresponds to --target:module. public const string Module = "module"; } } ================================================ FILE: FSharp/Advanced/FSharpVirtualFile.cs ================================================ using System; using System.Collections.Concurrent; using System.IO; using MirrorSharp.FSharp.Internal; using IO = System.IO; namespace MirrorSharp.FSharp.Advanced { /// Represents a virtual (in-memory) file within . public abstract class FSharpVirtualFile : IDisposable { private readonly ConcurrentDictionary _ownerCollection; private ReusableMemoryStreamWrapper? _lastStreamWrapper; private protected FSharpVirtualFile( string path, ConcurrentDictionary ownerCollection ) { Path = path; _ownerCollection = ownerCollection; } /// Gets the path of the virtual file (generated, unique). public string Path { get; } internal abstract MemoryStream GetStream(); internal ReusableMemoryStreamWrapper GetStreamWrapper() { var stream = GetStream(); if (stream == _lastStreamWrapper?.InnerStream) return _lastStreamWrapper!; var wrapper = new ReusableMemoryStreamWrapper(stream, IO.Path.GetFileName(Path)); _lastStreamWrapper = wrapper; return wrapper; } internal DateTime LastWriteTime { get; set; } /// Deregisters the file from the . public void Dispose() { _ownerCollection.TryRemove(Path, out var _); } } internal class FSharpVirtualFile : FSharpVirtualFile, IDisposable { private readonly TGetStreamContext _getStreamContext; private readonly Func _getStream; public FSharpVirtualFile( string path, Func getStream, TGetStreamContext getStreamContext, ConcurrentDictionary ownerCollection ) : base(path, ownerCollection) { _getStream = getStream; _getStreamContext = getStreamContext; } internal override MemoryStream GetStream() => _getStream(_getStreamContext); } } ================================================ FILE: FSharp/Advanced/IFSharpSession.cs ================================================ using System.Collections.Immutable; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.FSharp.Collections; using FSharp.Compiler.CodeAnalysis; using FSharp.Compiler.Diagnostics; using System.IO; using System; namespace MirrorSharp.FSharp.Advanced { /// Represents a user session based on F# parser. public interface IFSharpSession { /// Returns the combined for the current session. /// A that can be used to cancel the call. /// Last if still valid, otherwise results of a new forced parse and check. ValueTask ParseAndCheckAsync(CancellationToken cancellationToken); /// Return last parse result (if text hasn't changed since), but doesn't force a new reparse. /// Last if still valid, otherwise null. FSharpParseFileResults? GetLastParseResults(); /// Return last check result (if text hasn't changed since), but doesn't force a new check. /// Last if still valid, otherwise null. FSharpCheckFileAnswer? GetLastCheckAnswer(); /// Attempts to compile an F# assembly based on the current session. /// Stream to compile the assembly to. /// A that can be used to cancel the call. /// A tuple returned from the F# compilation call. ValueTask> CompileAsync(MemoryStream assemblyStream, CancellationToken cancellationToken); /// Converts to a . /// value to convert. /// value that corresponds to . Diagnostic ConvertToDiagnostic(FSharpDiagnostic diagnostic); /// Converts line and column into a text offset. /// Line to convert (0-based). /// Column to convert (0-based). /// Text offset that corresponds to given line and column. int ConvertToOffset(int line, int column); /// Gets the associated with this session. FSharpChecker Checker { get; } /// Gets or sets the associated with this session. FSharpProjectOptions ProjectOptions { get; set; } /// Gets the assembly reference paths associated with this session. ImmutableArray AssemblyReferencePaths { get; } /// Gets the as a . FSharpList AssemblyReferencePathsAsFSharpList { get; } } } ================================================ FILE: FSharp/Advanced/WorkSessionExtensions.cs ================================================ using MirrorSharp.Advanced; using MirrorSharp.Internal; namespace MirrorSharp.FSharp.Advanced { /// Provides F#-related extensions to the . public static class WorkSessionExtensions { /// Specifies whether the is using F#. /// The session /// true if the session is using F#; otherwise, false public static bool IsFSharp(this IWorkSession session) { Argument.NotNull(nameof(session), session); return session is WorkSession { LanguageSession: IFSharpSession }; } /// Returns F# session associated with the , if any; throws otherwise. /// The session /// if the session is using F# public static IFSharpSession FSharp(this IWorkSession session) { Argument.NotNull(nameof(session), session); return (IFSharpSession)((WorkSession)session).LanguageSession; } } } ================================================ FILE: FSharp/CHANGELOG.md ================================================ # Changelog ## [3.0.0] - 2024-11-19 ### Added - Added IFSharpSession.CompileAsync ### Fixed - Updated dependency on Microsoft.Build.Utilities.Core to safe version to resolve security audit warnings ## Changed - Changed required .NET Framework version to 4.6.2 as required by dependent packages ### Removed - (Breaking) Removed MirrorSharpFSharpOptions.Debug (F# PDB generation is not currently supported by MirrorSharp) - (Breaking) Removed FSharpProjectOptionsExtensions.WithOtherOptionDebug ## [2.0.1] - 2024-06-01 ### Added - F# 8 support by @psfinaki (additional thanks to previous F# 7 upgrade PRs by @vzarytovskii and @rstm-sf) ## [2.0.0] - 2022-08-13 ### Changed - (Breaking) Renamed FSharpVirtualFile.Name to Path ### Fixed - Multiple edge cases in the file management and error reporting ### Removed - (Breaking) Removed FSharpVirtualFile.Stream ## [1.0.0] - 2022-04-04 ## [1.0.0-test-2021-04-02-1] - 2022-04-02 ## [1.0.0-test-2021-04-01-1] - 2022-04-01 ### Changed - Updated to support MirrorSharp.Common 3.0.0 ## [0.23.0] - 2021-10-22 ### Fixed - Fixed InvalidOperationException in F# completion with function types in scope ### Added - Added proper completion icon for local values ## [0.22.0] - 2021-08-04 ### Fixed - Fixed WorkSessionExtensions.IsFSharp failing if session is a mock ## [0.21.0] - 2021-06-23 ### Added - Updated to support FSharp.Compiler.Service version 40 by @baronfel ## [0.20.0] - 2020-12-21 ### Added - F# 5 support by @baronfel ## [0.19.0] - 2020-12-17 ### Changed - Updated to support MirrorSharp.Common 2.2.2 ================================================ FILE: FSharp/FSharp.csproj ================================================ MirrorSharp.FSharp MirrorSharp.FSharp netstandard2.0; net462 3.0.0 MirrorSharp F# support library. $(DescriptionSuffix) F#;CodeMirror true ================================================ FILE: FSharp/Internal/CustomAssemblyLoader.cs ================================================ using System; using System.Reflection; using FSharp.Compiler.IO; namespace MirrorSharp.FSharp.Internal { internal class CustomAssemblyLoader : IAssemblyLoader { public Assembly AssemblyLoadFrom(string assemboy) { throw new NotSupportedException(); } public Assembly AssemblyLoad(AssemblyName assemblyName) { return Assembly.Load(assemblyName); } } } ================================================ FILE: FSharp/Internal/CustomFileSystem.cs ================================================ using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; using FSharp.Compiler.IO; using Microsoft.FSharp.Core; using MirrorSharp.FSharp.Advanced; using MirrorSharp.Internal; namespace MirrorSharp.FSharp.Internal { internal class CustomFileSystem : IFileSystem { private const string VirtualPathPrefix = "#mirrorsharp-virtual-fs"; private const string VirtualTempPath = VirtualPathPrefix + "temp"; private readonly ConcurrentDictionary _virtualFiles = new(); private readonly ConcurrentDictionary _fileBytesCache = new(); private readonly ConcurrentDictionary _fileExistsCache = new(); private readonly ConcurrentDictionary _directoryExistsCache = new(); public static CustomFileSystem Instance { get; } = new CustomFileSystem(); private CustomFileSystem() { AssemblyLoader = new CustomAssemblyLoader(); } public Stream OpenFileForReadShim(string filePath, FSharpOption useMemoryMappedFile, FSharpOption shouldShadowCopy) { if (GetVirtualFile(filePath) is { } virtualFile) return virtualFile.GetStreamWrapper().Reuse(); EnsureIsAssemblyFile(filePath); // For some reason, F# compiler requests this for same file many, many times. // Obviously, repeated IO is a bad idea. // Caching isn't great either, but will do for now. // // Note: This has to create a new MemoryStream for now. CustomFileSystem is shared between // multiple sessions, and dlls/assemblies are the same (as compared to "virtual files" // which are added per session and have unique names). return new MemoryStream(_fileBytesCache.GetOrAdd(filePath, f => File.ReadAllBytes(f))); } public Stream OpenFileForWriteShim(string filePath, FSharpOption fileMode, FSharpOption fileAccess, FSharpOption fileShare) { if (GetVirtualFile(filePath) is {} virtualFile) return virtualFile.GetStreamWrapper().Reuse(); throw new NotSupportedException(); } public string GetFullPathShim(string fileName) { if (IsSpecialRangeFileName(fileName)) return fileName; if (fileName.StartsWith(VirtualPathPrefix)) return fileName; if (!Path.IsPathRooted(fileName)) throw new NotSupportedException(); return fileName; } public string GetFullFilePathInDirectoryShim(string dir, string fileName) { var path = IsPathRootedShim(fileName) ? fileName : Path.Combine(dir, fileName); return GetFullPathShim(path); } public string GetDirectoryNameShim(string path) { if (path == "") return "."; var dirName = Path.GetDirectoryName(path); if (dirName == null) return IsPathRootedShim(path) ? path : "."; return dirName == "" ? "." : dirName; } public DateTime GetLastWriteTimeShim(string fileName) { if (GetVirtualFile(fileName) is {} virtualFile) return virtualFile.LastWriteTime; EnsureIsAssemblyFile(fileName); // pretend all assemblies are ancient and unchanging // basically no support for assemblies dynamically changing during MirrorSharp session // which should be fine return DateTime.MinValue; } public DateTime GetCreationTimeShim(string path) { if (GetVirtualFile(path) is {} virtualFile) return DateTime.MinValue; EnsureIsAssemblyFile(path); // pretend all assemblies are ancient and unchanging // basically no support for assemblies dynamically changing during MirrorSharp session // which should be fine return DateTime.MinValue; } public void CopyShim(string src, string dest, bool overwrite) { throw new NotSupportedException(); } public bool FileExistsShim(string fileName) { if (GetVirtualFile(fileName) != null) return true; if (!IsAssemblyFile(fileName) || fileName.StartsWith(VirtualTempPath, StringComparison.OrdinalIgnoreCase)) return false; // For some reason, F# compiler requests this for same file many, many times. // Obviously, repeated IO is a bad idea. // Caching isn't great either, but will do for now. return _fileExistsCache.GetOrAdd(fileName, f => File.Exists(f)); } public void FileDeleteShim(string fileName) { throw new NotSupportedException(); } public string DirectoryCreateShim(string path) { throw new NotSupportedException(); } public bool DirectoryExistsShim(string path) { if (path.StartsWith(VirtualTempPath, StringComparison.OrdinalIgnoreCase)) return false; if (path.StartsWith(VirtualPathPrefix, StringComparison.OrdinalIgnoreCase)) return true; return _directoryExistsCache.GetOrAdd(path, f => Directory.Exists(f)); } public void DirectoryDeleteShim(string path) { throw new NotSupportedException(); } public IEnumerable EnumerateFilesShim(string path, string pattern) { throw new NotSupportedException(); } public IEnumerable EnumerateDirectoriesShim(string path) { throw new NotSupportedException(); } public string ChangeExtensionShim(string path, string extension) { throw new NotImplementedException(); } public string GetTempPathShim() { return VirtualTempPath; } public string NormalizePathShim(string path) { return GetFullPathShim(path); } public bool IsInvalidPathShim(string filename) { return filename.IndexOfAny(Path.GetInvalidPathChars()) >= 0; } public bool IsPathRootedShim(string path) { if (path.StartsWith(VirtualPathPrefix)) return true; return Path.IsPathRooted(path); } public bool IsStableFileHeuristic(string fileName) { // FSharp.Core's default implementation. var directory = Path.GetDirectoryName(fileName); return directory.Contains("Reference Assemblies/") || directory.Contains("Reference Assemblies\\") || directory.Contains("packages/") || directory.Contains("packages\\") || directory.Contains("lib/mono/"); } public IAssemblyLoader AssemblyLoader { get; } private static void EnsureIsAssemblyFile(string fileName) { if (!IsAssemblyFile(fileName)) throw new NotSupportedException(); } private static bool IsAssemblyFile(string fileName) { return fileName.EndsWith(".dll", StringComparison.OrdinalIgnoreCase) || fileName.EndsWith(".optdata", StringComparison.OrdinalIgnoreCase) || fileName.EndsWith(".sigdata", StringComparison.OrdinalIgnoreCase) || fileName.EndsWith(".win32manifest", StringComparison.OrdinalIgnoreCase); } private static bool IsSpecialRangeFileName(string fileName) { // File names used for ranges that are outside of specific source files // https://github.com/dotnet/fsharp/blob/dc81e22205550f0cedf4295b06c3a1e338c1cfa1/src/fsharp/range.fs#L226-L228 return fileName is "unknown" or "startup" or "commandLineArgs" // https://github.com/dotnet/fsharp/blob/dc81e22205550f0cedf4295b06c3a1e338c1cfa1/src/fsharp/service/ServiceParsedInputOps.fs#L548 or ""; } public FSharpVirtualFile RegisterVirtualFile( Func getStream, TGetStreamContext getStreamContext, string? fileName = null ) { Argument.NotNull(nameof(getStream), getStream); var path = Path.Combine(VirtualPathPrefix, Guid.NewGuid().ToString("D")); if (fileName != null) path = Path.Combine(path, fileName); var file = (FSharpVirtualFile?)null; try { file = new FSharpVirtualFile(path, getStream, getStreamContext, _virtualFiles); _virtualFiles.TryAdd(path, file); return file; } catch { file?.Dispose(); throw; } } private FSharpVirtualFile? GetVirtualFile(string path) => _virtualFiles.TryGetValue(path, out var file) ? file : null; } } ================================================ FILE: FSharp/Internal/FSharpLanguage.cs ================================================ using Microsoft.IO; using MirrorSharp.Internal; using MirrorSharp.Internal.Abstraction; namespace MirrorSharp.FSharp.Internal; internal class FSharpLanguage : ILanguage { public const string Name = "F#"; private readonly MirrorSharpFSharpOptions _options; private readonly RecyclableMemoryStreamManager _memoryStreamManager; public FSharpLanguage(MirrorSharpFSharpOptions options, RecyclableMemoryStreamManager memoryStreamManager) { _options = options; _memoryStreamManager = memoryStreamManager; } public ILanguageSessionInternal CreateSession(string text, ILanguageSessionExtensions extensions) { return new FSharpSession(text, _options, _memoryStreamManager); } string ILanguage.Name => Name; } ================================================ FILE: FSharp/Internal/FSharpSession.cs ================================================ using FSharp.Compiler.CodeAnalysis; using FSharp.Compiler.Diagnostics; using FSharp.Compiler.EditorServices; using FSharp.Compiler.IO; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Completion; using Microsoft.CodeAnalysis.Text; using Microsoft.FSharp.Collections; using Microsoft.FSharp.Control; using Microsoft.FSharp.Core; using Microsoft.IO; using MirrorSharp.FSharp.Advanced; using MirrorSharp.Internal; using MirrorSharp.Internal.Abstraction; using System; using System.Collections.Generic; using System.Collections.Immutable; using System.IO; using System.Text; using System.Threading; using System.Threading.Tasks; using range = FSharp.Compiler.Text.Range; using SourceText = FSharp.Compiler.Text.SourceText; namespace MirrorSharp.FSharp.Internal; internal class FSharpSession : ILanguageSessionInternal, IFSharpSession { private static readonly Task NoCompletionDescriptionTask = Task.FromResult(null); private string _sourceText; private FSharpVirtualFile _sourceFile; private MemoryStream? _sourceStream; private LineColumnMap? _lastLineMap; private FSharpParseAndCheckResults? _lastParseAndCheck; private FSharpProjectOptions _projectOptions; private MemoryStream? _outputStream; private FSharpVirtualFile? _outputFile; private string[]? _compilerArgs; private readonly RecyclableMemoryStreamManager _memoryStreamManager; static FSharpSession() { FileSystemAutoOpens.FileSystem = CustomFileSystem.Instance; } public FSharpSession( string text, MirrorSharpFSharpOptions options, RecyclableMemoryStreamManager memoryStreamManager ) { _sourceText = text; _sourceFile = CustomFileSystem.Instance.RegisterVirtualFile( static s => s.EnsureTextStream(), this, fileName: "_.fs" ); _sourceFile.LastWriteTime = DateTime.Now; _memoryStreamManager = memoryStreamManager; Checker = FSharpChecker.Create( null, keepAssemblyContents: true, keepAllBackgroundResolutions: true, legacyReferenceResolver: null, tryGetMetadataSnapshot: null, suggestNamesForErrors: true, keepAllBackgroundSymbolUses: false, enableBackgroundItemKeyStoreAndSemanticClassification: false, // allows for using signature files to speed up compilation, but mutually exclusive with `keepAssemblyContents` enablePartialTypeChecking: false, parallelReferenceResolution: false, captureIdentifiersWhenParsing: false, documentSource: FSharpOption.Some(DocumentSource.FileSystem), useSyntaxTreeCache: false, useTransparentCompiler: false ); // Checker.ImplicitlyStartBackgroundWork = false; AssemblyReferencePaths = options.AssemblyReferencePaths; AssemblyReferencePathsAsFSharpList = ToFSharpList(options.AssemblyReferencePaths); _projectOptions = new FSharpProjectOptions( "_", projectId: null, sourceFiles: new[] { _sourceFile.Path }, otherOptions: ConvertToOtherOptionsSlow(options), referencedProjects: Array.Empty(), isIncompleteTypeCheckEnvironment: true, useScriptResolutionRules: false, loadTime: DateTime.Now, unresolvedReferences: null, originalLoadReferences: FSharpList>.Empty, stamp: null ); } private MemoryStream EnsureTextStream() { if (_sourceStream == null) { var byteCount = Encoding.UTF8.GetByteCount(_sourceText); _sourceStream = _memoryStreamManager.GetStream("FSharpSession.SourceFile", byteCount, asContiguousBuffer: true); Encoding.UTF8.GetBytes(_sourceText, 0, _sourceText.Length, _sourceStream.GetBuffer(), 0); _sourceStream.SetLength(byteCount); } return _sourceStream; } private FSharpList ToFSharpList(ImmutableArray assemblyReferencePaths) { var list = FSharpList.Empty; for (var i = assemblyReferencePaths.Length - 1; i >= 0; i--) { list = FSharpList.Cons(assemblyReferencePaths[i], list); } return list; } public FSharpChecker Checker { get; } public FSharpProjectOptions ProjectOptions { get => _projectOptions; set { if (value == _projectOptions) return; _projectOptions = Argument.NotNull(nameof(value), value); _lastParseAndCheck = null; _compilerArgs = null; } } public ImmutableArray AssemblyReferencePaths { get; } public FSharpList AssemblyReferencePathsAsFSharpList { get; } private string[] ConvertToOtherOptionsSlow(MirrorSharpFSharpOptions options) { var results = new List { "--noframework", // There are some challenges with supporting a win32manifest, // so it is disabled for now "--nowin32manifest", // There are some challenges with supporting PDB symbols with // VirtualFileSystem, so it is always disabled for now. "--debug-" }; if (options.Optimize != null) results.Add("--optimize" + (options.Optimize.Value ? "+" : "-")); if (options.Target != null) results.Add("--target:" + options.Target); if (options.LangVersion != null) results.Add("--langversion:" + options.LangVersion); if (options.TargetProfile != null) results.Add("--targetprofile:" + options.TargetProfile); foreach (var path in options.AssemblyReferencePaths) { // ReSharper disable once HeapView.ObjectAllocation (Not worth fixing for now) results.Add("-r:" + path); } return results.ToArray(); } public async Task> GetDiagnosticsAsync(CancellationToken cancellationToken) { var result = await ParseAndCheckAsync(cancellationToken).ConfigureAwait(false); var success = result.CheckAnswer as FSharpCheckFileAnswer.Succeeded; var diagnosticCount = result.ParseResults.Diagnostics.Length + (success?.Item.Diagnostics.Length ?? 0); if (diagnosticCount == 0) return ImmutableArray.Empty; var diagnostics = ImmutableArray.CreateBuilder(diagnosticCount); ConvertAndAddTo(diagnostics, result.ParseResults.Diagnostics); if (success != null) ConvertAndAddTo(diagnostics, success.Item.Diagnostics); return diagnostics.MoveToImmutable(); } public async ValueTask ParseAndCheckAsync(CancellationToken cancellationToken) { if (_lastParseAndCheck != null) return _lastParseAndCheck; var sourceText = SourceText.ofString(_sourceText); var tuple = await FSharpAsync.StartAsTask( Checker.ParseAndCheckFileInProject(_sourceFile.Path, 0, sourceText, ProjectOptions, Microsoft.FSharp.Core.FSharpOption.None), null, cancellationToken ).ConfigureAwait(false); _lastParseAndCheck = new FSharpParseAndCheckResults(tuple.Item1, tuple.Item2); return _lastParseAndCheck; } public FSharpParseFileResults? GetLastParseResults() { return _lastParseAndCheck?.ParseResults; } public FSharpCheckFileAnswer? GetLastCheckAnswer() { return _lastParseAndCheck?.CheckAnswer; } public async ValueTask> CompileAsync(MemoryStream assemblyStream, CancellationToken cancellationToken) { Argument.NotNull(nameof(assemblyStream), assemblyStream); if (_outputStream != null) throw new InvalidOperationException("Attempted to call CompileAsync when output stream was already set."); var args = GetCompilerArgs(); try { _outputStream = assemblyStream; var compiledAsync = Checker.Compile(args, userOpName: null); return await FSharpAsync.StartAsTask(compiledAsync, null, cancellationToken) .ConfigureAwait(false); } finally { _outputStream = null; } } private string[] GetCompilerArgs() { if (_compilerArgs != null) return _compilerArgs; var args = new string[2 + _projectOptions.OtherOptions.Length + _projectOptions.SourceFiles.Length]; args[0] = "fsc.exe"; args[1] = "--out:" + GetOutputFile().Path; for (var i = 0; i < _projectOptions.OtherOptions.Length; i++) { args[2 + i] = ValidateOptionForCompilerArgs(_projectOptions.OtherOptions[i]); } _projectOptions.SourceFiles.CopyTo(args, 2 + _projectOptions.OtherOptions.Length); _compilerArgs = args; return args; } private string ValidateOptionForCompilerArgs(string option) { Exception OptionNotSupported() => new NotSupportedException( $"Option {option} is not currently supported for {nameof(CompileAsync)}." ); if (option.StartsWith("--debug") && option.Length > "--debug".Length && option["--debug".Length] != '-') throw OptionNotSupported(); if (option.StartsWith("-g")) throw OptionNotSupported(); return option; } private FSharpVirtualFile GetOutputFile() { if (_outputFile != null) return _outputFile; _outputFile = CustomFileSystem.Instance.RegisterVirtualFile( static s => s._outputStream ?? throw new InvalidOperationException( "Attempted to access session output stream when it was not set." ), this, fileName: "_.dll" ); return _outputFile; } private void ConvertAndAddTo(ImmutableArray.Builder diagnostics, FSharpDiagnostic[] fsharpDiagnostics) { foreach (var fsharpDiagnostic in fsharpDiagnostics) { diagnostics.Add(ConvertToDiagnostic(fsharpDiagnostic)); } } public Diagnostic ConvertToDiagnostic(FSharpDiagnostic diagnostic) { Argument.NotNull(nameof(diagnostic), diagnostic); var lineMap = GetLineMap(); var severity = diagnostic.Severity.Tag == FSharpDiagnosticSeverity.Tags.Error ? DiagnosticSeverity.Error : DiagnosticSeverity.Warning; var startOffset = lineMap.GetOffset(diagnostic.Range.StartLine, diagnostic.Range.StartColumn); var location = Location.Create( "", new TextSpan( startOffset, lineMap.GetOffset(diagnostic.Range.EndLine, diagnostic.Range.EndColumn) - startOffset ), new LinePositionSpan( new LinePosition(diagnostic.Range.StartLine, diagnostic.Range.StartColumn), new LinePosition(diagnostic.Range.EndLine, diagnostic.Range.EndColumn) ) ); return Diagnostic.Create( "FS" + diagnostic.ErrorNumber.ToString("0000"), "Compiler", diagnostic.Message, severity, severity, isEnabledByDefault: false, warningLevel: severity == DiagnosticSeverity.Warning ? 1 : 0, location: location ); } public string GetText() { return _sourceText; } public void ReplaceText(string? newText, int start = 0, int? length = null) { if (length > 0) _sourceText = _sourceText.Remove(start, length.Value); if (newText?.Length > 0) _sourceText = _sourceText.Insert(start, newText); _lastParseAndCheck = null; _lastLineMap = null; _sourceStream?.Dispose(); _sourceStream = null; _sourceFile.LastWriteTime = DateTime.Now; } public bool ShouldTriggerCompletion(int cursorPosition, CompletionTrigger trigger) { return (trigger.Kind == CompletionTriggerKind.Insertion && trigger.Character == '.') || trigger.Kind == CompletionTriggerKind.Invoke; } public async Task GetCompletionsAsync(int cursorPosition, CompletionTrigger trigger, CancellationToken cancellationToken) { var result = await ParseAndCheckAsync(cancellationToken); if (!(result.CheckAnswer is FSharpCheckFileAnswer.Succeeded success)) return null; var info = GetLineMap().GetLineAndColumn(cursorPosition); var symbols = success.Item.GetDeclarationListSymbols( result.ParseResults, info.line.Number, _sourceText.Substring(info.line.Start, info.line.Length), QuickParse.GetPartialLongNameEx(_sourceText.Substring(info.line.Start, info.line.Length), info.column - 1), Microsoft.FSharp.Core.FSharpOption>>.None ); if (symbols.IsEmpty) return null; return CompletionList.Create( new TextSpan(cursorPosition, 0), ConvertToCompletionItems(symbols) ); } private ImmutableArray ConvertToCompletionItems(FSharpList> symbols) { var items = ImmutableArray.CreateBuilder(symbols.Length); foreach (var list in symbols) { var use = list.Head; items.Add(CompletionItem.Create( use.Symbol.DisplayName, tags: SymbolTags.From(use.Symbol) )); } return items.MoveToImmutable(); } public Task GetCompletionDescriptionAsync(CompletionItem item, CancellationToken cancellationToken) { return NoCompletionDescriptionTask; } public Task GetCompletionChangeAsync(TextSpan completionSpan, CompletionItem item, CancellationToken cancellationToken) { return Task.FromResult(CompletionChange.Create(new TextChange(completionSpan, item.DisplayText))); } public int ConvertToOffset(int line, int column) { Argument.PositiveOrZero(nameof(line), line); Argument.PositiveOrZero(nameof(column), column); return GetLineMap().GetOffset(line, column); } private LineColumnMap GetLineMap() { if (_lastLineMap == null) _lastLineMap = LineColumnMap.BuildFor(_sourceText); return _lastLineMap; } public void Dispose() { _sourceFile.Dispose(); _sourceStream?.Dispose(); _outputFile?.Dispose(); } } ================================================ FILE: FSharp/Internal/LineColumnMap.cs ================================================ using System.Collections.Generic; namespace MirrorSharp.FSharp.Internal { internal class LineColumnMap { private readonly IReadOnlyList _map; private LineColumnMap(IReadOnlyList map) { _map = map; } public (Line line, int column) GetLineAndColumn(int offset) { var map = _map; var line = map[0]; for (var i = 1; i < map.Count; i++) { var nextLine = map[i]; if (offset < nextLine.Start) break; line = nextLine; } return (line, offset - line.Start); } public int GetOffset(int line, int column) { if (line < 1) return column; // slightly weird behaviour in some AST ranges if (line == _map.Count + 1 && column == 0) return _map[line - 2].End; return _map[line - 1].Start + column; } public static LineColumnMap BuildFor(string text) { var map = new List(); var start = 0; var previous = '\0'; for (var i = 0; i < text.Length; i++) { var @char = text[i]; if (@char == '\r' || (previous != '\r' && @char == '\n')) map.Add(new Line(map.Count + 1, start, i)); if (previous == '\n' || (previous == '\r' && @char != '\n')) start = i; previous = @char; } map.Add(new Line(map.Count + 1, start, text.Length)); return new LineColumnMap(map); } public struct Line { public Line(int number, int start, int end) { Number = number; Start = start; End = end; } public int Number { get; } public int Start { get; } public int End { get; } public int Length => End - Start; } } } ================================================ FILE: FSharp/Internal/ReusableMemoryStreamWrapper.cs ================================================ using System; using System.IO; using System.Threading; namespace MirrorSharp.FSharp.Internal { internal class ReusableMemoryStreamWrapper : Stream { private readonly MemoryStream _stream; private readonly string _name; private int _inUse = 0; public ReusableMemoryStreamWrapper(MemoryStream stream, string name) { _stream = stream; _name = name; } internal Stream InnerStream => _stream; public override void Flush() => _stream.Flush(); public override long Seek(long offset, SeekOrigin origin) => _stream.Seek(offset, origin); public override void SetLength(long value) => _stream.SetLength(value); public override int Read(byte[] buffer, int offset, int count) => _stream.Read(buffer, offset, count); public override void Write(byte[] buffer, int offset, int count) => _stream.Write(buffer, offset, count); public override bool CanRead => _stream.CanRead; public override bool CanSeek => _stream.CanSeek; public override bool CanWrite => _stream.CanWrite; public override long Length => _stream.Length; public override long Position { get => _stream.Position; set => _stream.Position = value; } public override void Close() { Flush(); Position = 0; _inUse = 0; } internal ReusableMemoryStreamWrapper Reuse() { if (Interlocked.CompareExchange(ref _inUse, 1, 0) == 1) throw new InvalidOperationException($"Stream {_name} is currently in use, parallel access is not supported."); return this; } } } ================================================ FILE: FSharp/Internal/SymbolTags.cs ================================================ using System.Collections.Immutable; using FSharp.Compiler.Symbols; namespace MirrorSharp.FSharp.Internal { internal static class SymbolTags { private static ImmutableArray Namespace { get; } = ImmutableArray.Create("Namespace"); private static ImmutableArray Delegate { get; } = ImmutableArray.Create("Delegate"); private static ImmutableArray Enum { get; } = ImmutableArray.Create("Enum"); private static ImmutableArray Union { get; } = ImmutableArray.Create("Union"); private static ImmutableArray Structure { get; } = ImmutableArray.Create("Structure"); private static ImmutableArray Class { get; } = ImmutableArray.Create("Class"); private static ImmutableArray Interface { get; } = ImmutableArray.Create("Interface"); private static ImmutableArray TypeParameter { get; } = ImmutableArray.Create("TypeParameter"); private static ImmutableArray Module { get; } = ImmutableArray.Create("Module"); private static ImmutableArray Property { get; } = ImmutableArray.Create("Property"); private static ImmutableArray Method { get; } = ImmutableArray.Create("Method"); private static ImmutableArray Field { get; } = ImmutableArray.Create("Field"); private static ImmutableArray Local { get; } = ImmutableArray.Create("Local"); private static ImmutableArray None { get; } = ImmutableArray.Empty; public static ImmutableArray From(FSharpSymbol symbol) => symbol switch { FSharpField _ => Field, FSharpEntity e => FromEntity(e), FSharpMemberOrFunctionOrValue m => m switch { { IsProperty: true } => Property, { FullType: { IsFunctionType: true } } => Method, { IsConstructor: true } => Method, { IsValue: true } => Local, _ => None }, _ => None }; private static ImmutableArray FromEntity(FSharpEntity entity) => entity switch { { IsNamespace: true } => Namespace, { IsClass: true } => Class, { IsInterface: true } => Interface, { IsDelegate: true } => Delegate, { IsEnum: true } => Enum, { IsFSharpUnion: true } => Union, { IsValueType: true } => Structure, { IsFSharpModule: true } => Module, { IsFSharpAbbreviation: true } => FromType(entity.AbbreviatedType), _ => None }; private static ImmutableArray FromType(FSharpType type) => type switch { { IsFunctionType: true } => Delegate, { IsAnonRecordType: true } => Class, { IsTupleType: true } => Class, { IsStructTupleType: true } => Structure, { IsGenericParameter: true } => TypeParameter, { IsAbbreviation: true } => FromType(type.AbbreviatedType), { HasTypeDefinition: true } => FromEntity(type.TypeDefinition), _ => None }; } } ================================================ FILE: FSharp/MirrorSharpFSharpOptions.cs ================================================ using System.Collections.Immutable; using FSharp.Compiler.CodeAnalysis; using Microsoft.FSharp.Core; using System.IO; namespace MirrorSharp.FSharp { /// MirrorSharp options for F# public class MirrorSharpFSharpOptions { internal MirrorSharpFSharpOptions() { var assemblyPaths = ImmutableArray.CreateBuilder(); var corelib = typeof(object).Assembly; assemblyPaths.Add(corelib.Location); // Initial version -- likely to need a lot of adjustment/alignment with other languages if (corelib.GetName().Name == "System.Private.CoreLib") { // .NET Core var basePath = Path.GetDirectoryName(corelib.Location); assemblyPaths.Add(Path.Combine(basePath, "mscorlib.dll")); assemblyPaths.Add(Path.Combine(basePath, "netstandard.dll")); assemblyPaths.Add(Path.Combine(basePath, "System.dll")); assemblyPaths.Add(Path.Combine(basePath, "System.Collections.dll")); assemblyPaths.Add(Path.Combine(basePath, "System.IO.dll")); assemblyPaths.Add(Path.Combine(basePath, "System.Net.Requests.dll")); assemblyPaths.Add(Path.Combine(basePath, "System.Net.WebClient.dll")); assemblyPaths.Add(Path.Combine(basePath, "System.Runtime.dll")); assemblyPaths.Add(Path.Combine(basePath, "System.Runtime.Extensions.dll")); assemblyPaths.Add(Path.Combine(basePath, "System.Runtime.Numerics.dll")); } assemblyPaths.Add(typeof(EntryPointAttribute).Assembly.Location); AssemblyReferencePaths = assemblyPaths.ToImmutable(); } /// Specifies the list of assembly reference paths to be used. public ImmutableArray AssemblyReferencePaths { get; set; } /// Corresponds to option --optimize in . public bool? Optimize { get; set; } /// Corresponds to option --target in . public string? Target { get; set; } /// Corresponds to option --langversion in . public string? LangVersion { get; set; } /// /// Corresponds to option --targetprofile in . /// Valid values are "mscorlib", "netcore", and "netstandard" /// public string? TargetProfile { get; set; } } } ================================================ FILE: FSharp/MirrorSharpOptionsExtensions.cs ================================================ using System; using MirrorSharp.FSharp; using MirrorSharp.FSharp.Internal; using MirrorSharp.Internal; // This is run only once, on startup, so: // ReSharper disable HeapView.ClosureAllocation // ReSharper disable once CheckNamespace namespace MirrorSharp; /// Extensions to related to F#. public static class MirrorSharpOptionsExtensions { /// Enables and configures F# support in the . /// Options to configure /// Setup delegate used to configure /// Value of , for convenience. public static MirrorSharpOptions EnableFSharp(this MirrorSharpOptions options, Action? setup = null) { Argument.NotNull(nameof(options), options); options.Languages.Add(FSharpLanguage.Name, () => { var fsharp = new MirrorSharpFSharpOptions(); setup?.Invoke(fsharp); return new FSharpLanguage(fsharp, new Microsoft.IO.RecyclableMemoryStreamManager()); }); return options; } } ================================================ FILE: FSharp/Properties/AssemblyInfo.cs ================================================ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // 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)] [assembly: InternalsVisibleTo("MirrorSharp.Tests")] [assembly: InternalsVisibleTo("MirrorSharp.Tests.RoslynLatest")] [assembly: InternalsVisibleTo("SharpLab.Tests")] ================================================ FILE: FSharp/PublicAPI.Shipped.txt ================================================ #nullable enable MirrorSharp.FSharp.Advanced.FSharpFileSystem MirrorSharp.FSharp.Advanced.FSharpParseAndCheckResults MirrorSharp.FSharp.Advanced.FSharpParseAndCheckResults.CheckAnswer.get -> FSharp.Compiler.CodeAnalysis.FSharpCheckFileAnswer! MirrorSharp.FSharp.Advanced.FSharpParseAndCheckResults.ParseResults.get -> FSharp.Compiler.CodeAnalysis.FSharpParseFileResults! MirrorSharp.FSharp.Advanced.FSharpProjectOptionsExtensions MirrorSharp.FSharp.Advanced.FSharpTargets MirrorSharp.FSharp.Advanced.FSharpVirtualFile MirrorSharp.FSharp.Advanced.FSharpVirtualFile.Path.get -> string! MirrorSharp.FSharp.Advanced.FSharpVirtualFile.Dispose() -> void MirrorSharp.FSharp.Advanced.IFSharpSession MirrorSharp.FSharp.Advanced.IFSharpSession.AssemblyReferencePaths.get -> System.Collections.Immutable.ImmutableArray MirrorSharp.FSharp.Advanced.IFSharpSession.AssemblyReferencePathsAsFSharpList.get -> Microsoft.FSharp.Collections.FSharpList! MirrorSharp.FSharp.Advanced.IFSharpSession.Checker.get -> FSharp.Compiler.CodeAnalysis.FSharpChecker! MirrorSharp.FSharp.Advanced.IFSharpSession.ConvertToDiagnostic(FSharp.Compiler.Diagnostics.FSharpDiagnostic! diagnostic) -> Microsoft.CodeAnalysis.Diagnostic! MirrorSharp.FSharp.Advanced.IFSharpSession.ConvertToOffset(int line, int column) -> int MirrorSharp.FSharp.Advanced.IFSharpSession.GetLastCheckAnswer() -> FSharp.Compiler.CodeAnalysis.FSharpCheckFileAnswer? MirrorSharp.FSharp.Advanced.IFSharpSession.GetLastParseResults() -> FSharp.Compiler.CodeAnalysis.FSharpParseFileResults? MirrorSharp.FSharp.Advanced.IFSharpSession.ParseAndCheckAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.ValueTask MirrorSharp.FSharp.Advanced.IFSharpSession.ProjectOptions.get -> FSharp.Compiler.CodeAnalysis.FSharpProjectOptions! MirrorSharp.FSharp.Advanced.IFSharpSession.ProjectOptions.set -> void MirrorSharp.FSharp.Advanced.WorkSessionExtensions MirrorSharp.FSharp.MirrorSharpFSharpOptions MirrorSharp.FSharp.MirrorSharpFSharpOptions.AssemblyReferencePaths.get -> System.Collections.Immutable.ImmutableArray MirrorSharp.FSharp.MirrorSharpFSharpOptions.AssemblyReferencePaths.set -> void MirrorSharp.FSharp.MirrorSharpFSharpOptions.LangVersion.get -> string? MirrorSharp.FSharp.MirrorSharpFSharpOptions.LangVersion.set -> void MirrorSharp.FSharp.MirrorSharpFSharpOptions.Optimize.get -> bool? MirrorSharp.FSharp.MirrorSharpFSharpOptions.Optimize.set -> void MirrorSharp.FSharp.MirrorSharpFSharpOptions.Target.get -> string? MirrorSharp.FSharp.MirrorSharpFSharpOptions.Target.set -> void MirrorSharp.FSharp.MirrorSharpFSharpOptions.TargetProfile.get -> string? MirrorSharp.FSharp.MirrorSharpFSharpOptions.TargetProfile.set -> void MirrorSharp.MirrorSharpOptionsExtensions const MirrorSharp.FSharp.Advanced.FSharpTargets.Exe = "exe" -> string! const MirrorSharp.FSharp.Advanced.FSharpTargets.Library = "library" -> string! const MirrorSharp.FSharp.Advanced.FSharpTargets.Module = "module" -> string! const MirrorSharp.FSharp.Advanced.FSharpTargets.WinExe = "winexe" -> string! static MirrorSharp.FSharp.Advanced.FSharpFileSystem.RegisterVirtualFile(System.IO.MemoryStream! stream) -> MirrorSharp.FSharp.Advanced.FSharpVirtualFile! static MirrorSharp.FSharp.Advanced.FSharpProjectOptionsExtensions.WithOtherOptionDefine(this FSharp.Compiler.CodeAnalysis.FSharpProjectOptions! options, string! symbol, bool defined = true) -> FSharp.Compiler.CodeAnalysis.FSharpProjectOptions! static MirrorSharp.FSharp.Advanced.FSharpProjectOptionsExtensions.WithOtherOptionOptimize(this FSharp.Compiler.CodeAnalysis.FSharpProjectOptions! options, bool? optimize) -> FSharp.Compiler.CodeAnalysis.FSharpProjectOptions! static MirrorSharp.FSharp.Advanced.FSharpProjectOptionsExtensions.WithOtherOptionTarget(this FSharp.Compiler.CodeAnalysis.FSharpProjectOptions! options, string? target) -> FSharp.Compiler.CodeAnalysis.FSharpProjectOptions! static MirrorSharp.FSharp.Advanced.FSharpProjectOptionsExtensions.WithOtherOptions(this FSharp.Compiler.CodeAnalysis.FSharpProjectOptions! options, string![]! otherOptions) -> FSharp.Compiler.CodeAnalysis.FSharpProjectOptions! static MirrorSharp.FSharp.Advanced.WorkSessionExtensions.FSharp(this MirrorSharp.Advanced.IWorkSession! session) -> MirrorSharp.FSharp.Advanced.IFSharpSession! static MirrorSharp.FSharp.Advanced.WorkSessionExtensions.IsFSharp(this MirrorSharp.Advanced.IWorkSession! session) -> bool static MirrorSharp.MirrorSharpOptionsExtensions.EnableFSharp(this MirrorSharp.MirrorSharpOptions! options, System.Action? setup = null) -> MirrorSharp.MirrorSharpOptions! ================================================ FILE: FSharp/PublicAPI.Unshipped.txt ================================================ MirrorSharp.FSharp.Advanced.IFSharpSession.CompileAsync(System.IO.MemoryStream! assemblyStream, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.ValueTask!> ================================================ FILE: FSharp/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETFramework,Version=v4.6.2": { "FSharp.Compiler.Service": { "type": "Direct", "requested": "[43.8.300, )", "resolved": "43.8.300", "contentHash": "CoPjQYXXwmYkkHm+yxBHSW9IJVLpvwkKGEzXa5A6ebf8v6GfYaxZc5G+VHojDr586oezp1elFemu+A1WWH095A==", "dependencies": { "FSharp.Core": "[8.0.300]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "7.0.0", "System.Diagnostics.DiagnosticSource": "7.0.2", "System.Memory": "4.5.5", "System.Reflection.Emit": "4.7.0", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "FSharp.Core": { "type": "Direct", "requested": "[8.0.300, )", "resolved": "8.0.300", "contentHash": "Jv44fV7TNglyMku89lQcA4Q6mFKLyHb2bs1Yb72nvSVc+cHplEnoZ4XQUaaTLJGUTx/iMqcrkYGtaLzkkIhpaA==" }, "Microsoft.Build.Utilities.Core": { "type": "Direct", "requested": "[17.12.6, )", "resolved": "17.12.6", "contentHash": "pU3GnHcXp8VRMGKxdJCq+tixfhFn+QwEbpqmZmc/nqFHFyuhlGwjonWZMIWcwuCv/8EHgxoOttFvna1vrN+RrA==", "dependencies": { "Microsoft.Build.Framework": "17.12.6", "Microsoft.NET.StringTools": "17.12.6", "Microsoft.Win32.Registry": "5.0.0", "System.Collections.Immutable": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0", "System.Text.Encoding.CodePages": "7.0.0" } }, "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Direct", "requested": "[2.2.0, )", "resolved": "2.2.0", "contentHash": "uyjY/cqomw1irT4L7lDeg4sJ36MsjHg3wKqpGrBAdzvZaxo85yMF+sAA9RIzTV92fDxuUzjqksMqA0+SNMkMgA==", "dependencies": { "System.Memory": "4.5.4" } }, "Microsoft.Build.Framework": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "jleteC0seumLGTmTVwob97lcwPj/dfgzL/V3g/VVcMZgo2Ic7jzdy8AYpByPDh8e3uRq0SjCl6HOFCjhy5GzRQ==", "dependencies": { "Microsoft.Win32.Registry": "5.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "2.9.4", "contentHash": "alIJhS0VUg/7x5AsHEoovh/wRZ0RfCSS7k5pDSqpRLTyuMTtRgj6OJJPRApRhJHOGYYsLakf1hKeXFoDwKwNkg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "N5yQdGy+M4kimVG7hwCeGTCfgYjK2o5b/Shumkb/rCC+/SAkvP1HUAYK+vxPFS7dLJNtXLRsmPHKj3fnyNWnrw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "2.9.4", "System.Collections.Immutable": "1.5.0", "System.Memory": "4.5.3", "System.Reflection.Metadata": "1.6.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2", "System.Text.Encoding.CodePages": "4.5.1", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "WDUIhTHem38H6VJ98x2Ssq0fweakJHnHYl7vbG8ARnsAwLoJKCQCy78EeY1oRrCKG42j0v6JVljKkeqSDA28UA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "t9uIwsLzT5zQ1Q3ZIpwE4EOnAf/lGdbQwyeqhyO/BJ+AWDt267Hxlz5k6ypPy14Z6+PW6pTggAGz6MwN31RElQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Features": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "dHs/UyfLgzsVC4FjTi/x+H+yQifgOnpe3rSN8GwkHWjnidePZ3kSqr1JHmFDf5HTQEydYwrwCAfQ0JSzhsEqDA==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "lvMC69ABN/YEaw3ke4cQRqBYZ2V7DJTOT8QXIeAJGJUfwVHTBN0iq2O5zZQrYnnUN2wmeCzCoAg59PKBosVO7g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": "2.9.5", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]", "Microsoft.DiaSymReader": "1.3.0", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": { "type": "Transitive", "resolved": "2.9.5", "contentHash": "SqwdTocsxU7u0Y8am67BY7KSLAhrtDXdBBwt0Nv9TxLVzPBPtPPFS2bHUsxucpOBMBmc10rWE1eJ+IDrr/0/nQ==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "NfBz3b5hFSbO+7xsCNryD+p8axsIJFTG7qM3jvMTC/MqYrU6b8E1b6JoRj5rJSOBB+pSunk+CMqyGQTOWHeDUg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "System.Composition": "1.0.31" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.3.0", "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==" }, "Microsoft.NET.StringTools": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "w8Ehofqte5bJoR+Fa3f6JwkwFEkGtXxqvQHGOVOSHDzgNVySvL5FSNhavbQSZ864el9c3rjdLPLAtBW8dq6fmg==" }, "Microsoft.Win32.Registry": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", "dependencies": { "System.Security.AccessControl": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Composition": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "I+D26qpYdoklyAVUdqwUBrEIckMNjAYnuPJy/h9dsQItpQwVREkDFs4b4tkBza0kT2Yk48Lcfsv2QQ9hWsh9Iw==", "dependencies": { "System.Composition.AttributedModel": "1.0.31", "System.Composition.Convention": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Composition.TypedParts": "1.0.31" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "NHWhkM3ZkspmA0XJEsKdtTt1ViDYuojgSND3yHhTzwxepiwqZf+BCWuvCbjUt4fe0NxxQhUDGJ5km6sLjo9qnQ==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "GLjh2Ju71k6C0qxMMtl4efHa68NmWeIUYh4fkUI8xbjQrEBvFmRwMDFcylT8/PR9SQbeeL48IkFxU/+gd0nYEQ==", "dependencies": { "System.Composition.AttributedModel": "1.0.31" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "fN1bT4RX4vUqjbgoyuJFVUizAl2mYF5VAb+bVIxIYZSSc0BdnX+yGAxcavxJuDDCQ1K+/mdpgyEFc8e9ikjvrg==", "dependencies": { "System.Composition.Runtime": "1.0.31" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0LEJN+2NVM89CE4SekDrrk5tHV5LeATltkp+9WNYrR+Huiyt0vaCqHbbHtVAjPyeLWIc8dOz/3kthRBj32wGQg==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0Zae/FtzeFgDBBuILeIbC/T9HMYbW4olAmi8XqqAGosSOWvXfiQLfARZEhiGd0LVXaYgXr0NhxiU1LldRP1fpQ==", "dependencies": { "System.Composition.AttributedModel": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==" }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "7.0.2", "contentHash": "hYr3I9N9811e0Bjf2WNwAGGyTuAFbbTgX1RPLt/3Wbm68x3IGcX5Cl75CMmgT6WlNwLQ2tCCWfqYPpypjaf2xA==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.5.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "System.Security.Cryptography.X509Certificates": "4.3.0" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==" }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "MclTG61lsD9sYdpNz9xsKBzjsmsfCtcMZYXz/IUr2zlhaTaABonlr1ESeompTgM+Xk+IwtGYU7/voh3YWB/fWw==", "dependencies": { "System.Collections.Immutable": "7.0.0", "System.Memory": "4.5.5" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", "dependencies": { "System.Security.Principal.Windows": "5.0.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "System.Security.Cryptography.Primitives": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==" }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==" }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==" }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "+MvhNtcvIbqmhANyKu91jQnvIRVSTiaOiFNfKWwXGHG48YAb4I/TyH8spsySiPYla7gKal5ZnF3teJqZAximyQ==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } } }, ".NETStandard,Version=v2.0": { "FSharp.Compiler.Service": { "type": "Direct", "requested": "[43.8.300, )", "resolved": "43.8.300", "contentHash": "CoPjQYXXwmYkkHm+yxBHSW9IJVLpvwkKGEzXa5A6ebf8v6GfYaxZc5G+VHojDr586oezp1elFemu+A1WWH095A==", "dependencies": { "FSharp.Core": "[8.0.300]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "7.0.0", "System.Diagnostics.DiagnosticSource": "7.0.2", "System.Memory": "4.5.5", "System.Reflection.Emit": "4.7.0", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "FSharp.Core": { "type": "Direct", "requested": "[8.0.300, )", "resolved": "8.0.300", "contentHash": "Jv44fV7TNglyMku89lQcA4Q6mFKLyHb2bs1Yb72nvSVc+cHplEnoZ4XQUaaTLJGUTx/iMqcrkYGtaLzkkIhpaA==" }, "Microsoft.Build.Utilities.Core": { "type": "Direct", "requested": "[17.12.6, )", "resolved": "17.12.6", "contentHash": "pU3GnHcXp8VRMGKxdJCq+tixfhFn+QwEbpqmZmc/nqFHFyuhlGwjonWZMIWcwuCv/8EHgxoOttFvna1vrN+RrA==", "dependencies": { "Microsoft.Build.Framework": "17.12.6", "Microsoft.NET.StringTools": "17.12.6", "Microsoft.Win32.Registry": "5.0.0", "System.Collections.Immutable": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0", "System.Text.Encoding.CodePages": "7.0.0" } }, "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Direct", "requested": "[2.2.0, )", "resolved": "2.2.0", "contentHash": "uyjY/cqomw1irT4L7lDeg4sJ36MsjHg3wKqpGrBAdzvZaxo85yMF+sAA9RIzTV92fDxuUzjqksMqA0+SNMkMgA==", "dependencies": { "System.Memory": "4.5.4" } }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", "resolved": "2.0.3", "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" } }, "Microsoft.Build.Framework": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "jleteC0seumLGTmTVwob97lcwPj/dfgzL/V3g/VVcMZgo2Ic7jzdy8AYpByPDh8e3uRq0SjCl6HOFCjhy5GzRQ==", "dependencies": { "Microsoft.Win32.Registry": "5.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "2.9.4", "contentHash": "alIJhS0VUg/7x5AsHEoovh/wRZ0RfCSS7k5pDSqpRLTyuMTtRgj6OJJPRApRhJHOGYYsLakf1hKeXFoDwKwNkg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "N5yQdGy+M4kimVG7hwCeGTCfgYjK2o5b/Shumkb/rCC+/SAkvP1HUAYK+vxPFS7dLJNtXLRsmPHKj3fnyNWnrw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "2.9.4", "System.Collections.Immutable": "1.5.0", "System.Memory": "4.5.3", "System.Reflection.Metadata": "1.6.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2", "System.Text.Encoding.CodePages": "4.5.1", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "WDUIhTHem38H6VJ98x2Ssq0fweakJHnHYl7vbG8ARnsAwLoJKCQCy78EeY1oRrCKG42j0v6JVljKkeqSDA28UA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "t9uIwsLzT5zQ1Q3ZIpwE4EOnAf/lGdbQwyeqhyO/BJ+AWDt267Hxlz5k6ypPy14Z6+PW6pTggAGz6MwN31RElQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Features": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "dHs/UyfLgzsVC4FjTi/x+H+yQifgOnpe3rSN8GwkHWjnidePZ3kSqr1JHmFDf5HTQEydYwrwCAfQ0JSzhsEqDA==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "lvMC69ABN/YEaw3ke4cQRqBYZ2V7DJTOT8QXIeAJGJUfwVHTBN0iq2O5zZQrYnnUN2wmeCzCoAg59PKBosVO7g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": "2.9.5", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]", "Microsoft.DiaSymReader": "1.3.0", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": { "type": "Transitive", "resolved": "2.9.5", "contentHash": "SqwdTocsxU7u0Y8am67BY7KSLAhrtDXdBBwt0Nv9TxLVzPBPtPPFS2bHUsxucpOBMBmc10rWE1eJ+IDrr/0/nQ==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "NfBz3b5hFSbO+7xsCNryD+p8axsIJFTG7qM3jvMTC/MqYrU6b8E1b6JoRj5rJSOBB+pSunk+CMqyGQTOWHeDUg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "System.Composition": "1.0.31" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.3.0", "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.NET.StringTools": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "w8Ehofqte5bJoR+Fa3f6JwkwFEkGtXxqvQHGOVOSHDzgNVySvL5FSNhavbQSZ864el9c3rjdLPLAtBW8dq6fmg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.1", "contentHash": "TMBuzAHpTenGbGgk0SMTwyEkyijY/Eae4ZGsFNYJvAr/LDn1ku3Etp3FPxChmDp5HHF3kzJuoaa08N0xjqAJfQ==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "Microsoft.Win32.Registry": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.4", "System.Security.AccessControl": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Composition": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "I+D26qpYdoklyAVUdqwUBrEIckMNjAYnuPJy/h9dsQItpQwVREkDFs4b4tkBza0kT2Yk48Lcfsv2QQ9hWsh9Iw==", "dependencies": { "System.Composition.AttributedModel": "1.0.31", "System.Composition.Convention": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Composition.TypedParts": "1.0.31" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "NHWhkM3ZkspmA0XJEsKdtTt1ViDYuojgSND3yHhTzwxepiwqZf+BCWuvCbjUt4fe0NxxQhUDGJ5km6sLjo9qnQ==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.Convention": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "GLjh2Ju71k6C0qxMMtl4efHa68NmWeIUYh4fkUI8xbjQrEBvFmRwMDFcylT8/PR9SQbeeL48IkFxU/+gd0nYEQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "fN1bT4RX4vUqjbgoyuJFVUizAl2mYF5VAb+bVIxIYZSSc0BdnX+yGAxcavxJuDDCQ1K+/mdpgyEFc8e9ikjvrg==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0LEJN+2NVM89CE4SekDrrk5tHV5LeATltkp+9WNYrR+Huiyt0vaCqHbbHtVAjPyeLWIc8dOz/3kthRBj32wGQg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0Zae/FtzeFgDBBuILeIbC/T9HMYbW4olAmi8XqqAGosSOWvXfiQLfARZEhiGd0LVXaYgXr0NhxiU1LldRP1fpQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==", "dependencies": { "System.Security.Cryptography.ProtectedData": "8.0.0" } }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "7.0.2", "contentHash": "hYr3I9N9811e0Bjf2WNwAGGyTuAFbbTgX1RPLt/3Wbm68x3IGcX5Cl75CMmgT6WlNwLQ2tCCWfqYPpypjaf2xA==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.Tracing": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==" }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==", "dependencies": { "System.Reflection.Emit.ILGeneration": "4.7.0" } }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "AucBYo3DSI0IDxdUjKksBcQJXPHyoPyrCXYURW1WDsLI4M65Ar/goSHjdnHOAY9MiYDNKqDlIgaYm+zL2hA1KA==" }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "MclTG61lsD9sYdpNz9xsKBzjsmsfCtcMZYXz/IUr2zlhaTaABonlr1ESeompTgM+Xk+IwtGYU7/voh3YWB/fWw==", "dependencies": { "System.Collections.Immutable": "7.0.0", "System.Memory": "4.5.5" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "qAtKMcHOAq9/zKkl0dwvF0T0pmgCQxX1rC49rJXoU8jq+lw6MC3uXy7nLFmjEI20T3Aq069eWz4LcYR64vEmJw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3", "System.Runtime": "4.3.1" } }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", "dependencies": { "System.Security.Principal.Windows": "5.0.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Cng": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==", "dependencies": { "System.Memory": "4.5.5" } }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { "System.Collections": "4.3.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.1", "System.Runtime.Extensions": "4.3.1", "System.Threading": "4.3.0" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "+MvhNtcvIbqmhANyKu91jQnvIRVSTiaOiFNfKWwXGHG48YAb4I/TyH8spsySiPYla7gKal5ZnF3teJqZAximyQ==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } } } } } ================================================ FILE: IL/Advanced/IILSession.cs ================================================ using Mobius.ILasm.Core; namespace MirrorSharp.IL.Advanced { /// Represents a user session based on IL (intermediate language) parser. public interface IILSession { /// Gets or sets the associated with this session. Driver.Target Target { get; set; } } } ================================================ FILE: IL/Advanced/WorkSessionExtensions.cs ================================================ using MirrorSharp.Advanced; using MirrorSharp.Internal; namespace MirrorSharp.IL.Advanced { /// Provides IL-related extensions to the . public static class WorkSessionExtensions { /// Specifies whether the is using IL. /// The session /// true if the session is using IL; otherwise, false // ReSharper disable once InconsistentNaming public static bool IsIL(this IWorkSession session) { Argument.NotNull(nameof(session), session); return session is WorkSession { LanguageSession: IILSession }; } /// Returns IL session associated with the , if any; throws otherwise. /// The session /// if the session is using IL // ReSharper disable once InconsistentNaming public static IILSession IL(this IWorkSession session) { Argument.NotNull(nameof(session), session); return (IILSession)((WorkSession)session).LanguageSession; } } } ================================================ FILE: IL/CHANGELOG.md ================================================ # Changelog ## [0.3] - 2024-11-19 ### Fixed - Added explicit dependency on safe version of System.Drawing.Common to resolve security audit warnings ## [0.2] - 2022-04-04 ## [0.2-test-2021-04-02-1] - 2021-04-02 ## [0.2-test-2021-04-01-1] - 2021-04-01 ### Added - Target setting on IILSession ### Changed - Updated to support MirrorSharp.Common 3.0.0 ### Fixed - WorkSession.IsIL() check failing if WorkSession is a mock ## [0.1] - 2021-08-31 ### Added - Initial version: minimal set of code to support IL as input ================================================ FILE: IL/IL.csproj ================================================ MirrorSharp.IL MirrorSharp.IL netstandard2.0 0.3 MirrorSharp IL support library. $(DescriptionSuffix) IL;CodeMirror True false ================================================ FILE: IL/Internal/IILSessionInternal.cs ================================================ using System.Text; using MirrorSharp.IL.Advanced; using MirrorSharp.Internal.Abstraction; namespace MirrorSharp.IL.Internal { internal interface IILSessionInternal : IILSession, ILanguageSessionInternal { int TextLength { get; } StringBuilder GetTextBuilderForReadsOnly(); } } ================================================ FILE: IL/Internal/ILLanguage.cs ================================================ using MirrorSharp.Internal; using MirrorSharp.Internal.Abstraction; namespace MirrorSharp.IL.Internal { // ReSharper disable once InconsistentNaming internal class ILLanguage : ILanguage { public static string Name = "IL"; string ILanguage.Name => Name; public ILanguageSessionInternal CreateSession(string text, ILanguageSessionExtensions services) => new ILSession(text); } } ================================================ FILE: IL/Internal/ILSession.cs ================================================ using System; using System.Collections.Immutable; using System.Text; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Completion; using Microsoft.CodeAnalysis.Text; using MirrorSharp.IL.Advanced; using MirrorSharp.Internal.Abstraction; using Mobius.ILasm.Core; namespace MirrorSharp.IL.Internal { // ReSharper disable once InconsistentNaming internal class ILSession : ILanguageSessionInternal, IILSession, IILSessionInternal { private readonly StringBuilder _textBuilder; private string? _text; public ILSession(string text) { _textBuilder = new StringBuilder(text); _text = text; } public Driver.Target Target { get; set; } public int TextLength => _textBuilder.Length; public string GetText() { _text ??= _textBuilder.ToString(); return _text; } public StringBuilder GetTextBuilderForReadsOnly() { return _textBuilder; } public void ReplaceText(string? newText, int start = 0, int? length = null) { if (length > 0) _textBuilder.Remove(start, length.Value); if (newText?.Length > 0) _textBuilder.Insert(start, newText); _text = null; } public Task> GetDiagnosticsAsync(CancellationToken cancellationToken) { // TODO: Implement parsing and returning errors return Task.FromResult(ImmutableArray.Empty); } public bool ShouldTriggerCompletion(int cursorPosition, CompletionTrigger trigger) => false; // not supported yet public Task GetCompletionsAsync(int cursorPosition, CompletionTrigger trigger, CancellationToken cancellationToken) => Task.FromResult(CompletionList.Empty); // not supported yet public Task GetCompletionDescriptionAsync(CompletionItem item, CancellationToken cancellationToken) => throw new NotSupportedException(); // not supported yet public Task GetCompletionChangeAsync(TextSpan completionSpan, CompletionItem item, CancellationToken cancellationToken) => throw new NotSupportedException(); // not supported yet public void Dispose() { } } } ================================================ FILE: IL/MirrorSharpILOptions.cs ================================================ namespace MirrorSharp.IL { /// MirrorSharp options for IL // ReSharper disable once InconsistentNaming public class MirrorSharpILOptions { internal MirrorSharpILOptions() { } } } ================================================ FILE: IL/MirrorSharpOptionsExtensions.cs ================================================ using System; using MirrorSharp.IL; using MirrorSharp.IL.Internal; using MirrorSharp.Internal; // ReSharper disable once CheckNamespace namespace MirrorSharp { /// Extensions to related to IL. public static class MirrorSharpOptionsExtensions { /// Enables and configures IL support in the . /// Options to configure /// Setup delegate used to configure /// Value of , for convenience. // ReSharper disable once InconsistentNaming public static MirrorSharpOptions EnableIL(this MirrorSharpOptions options, Action? setup = null) { Argument.NotNull(nameof(options), options); options.Languages.Add(ILLanguage.Name, () => { var ilOptions = new MirrorSharpILOptions(); setup?.Invoke(ilOptions); return new ILLanguage(); }); return options; } } } ================================================ FILE: IL/Properties/AssemblyInfo.cs ================================================ using System.Runtime.CompilerServices; [assembly: InternalsVisibleTo("MirrorSharp.Tests")] [assembly: InternalsVisibleTo("MirrorSharp.Tests.RoslynLatest")] [assembly: InternalsVisibleTo("SharpLab.Server")] ================================================ FILE: IL/PublicAPI.Shipped.txt ================================================ #nullable enable MirrorSharp.IL.Advanced.IILSession MirrorSharp.IL.Advanced.WorkSessionExtensions MirrorSharp.IL.MirrorSharpILOptions MirrorSharp.MirrorSharpOptionsExtensions static MirrorSharp.MirrorSharpOptionsExtensions.EnableIL(this MirrorSharp.MirrorSharpOptions! options, System.Action? setup = null) -> MirrorSharp.MirrorSharpOptions! static MirrorSharp.IL.Advanced.WorkSessionExtensions.IL(this MirrorSharp.Advanced.IWorkSession! session) -> MirrorSharp.IL.Advanced.IILSession! static MirrorSharp.IL.Advanced.WorkSessionExtensions.IsIL(this MirrorSharp.Advanced.IWorkSession! session) -> bool ================================================ FILE: IL/PublicAPI.Unshipped.txt ================================================ MirrorSharp.IL.Advanced.IILSession.Target.get -> Mobius.ILasm.Core.Driver.Target MirrorSharp.IL.Advanced.IILSession.Target.set -> void ================================================ FILE: IL/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETStandard,Version=v2.0": { "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "Mobius.ILasm": { "type": "Direct", "requested": "[0.1.0, )", "resolved": "0.1.0", "contentHash": "0uB5lko7fQZ4eOqkEyApSwxSwdMqdrduTpi6aAvr1nr03Lw+muS6UaAYCvk2ICN+AR94lPelvSx1+HCCwBMhTQ==", "dependencies": { "System.Reflection.Emit": "4.7.0", "System.Security.Permissions": "5.0.0" } }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", "resolved": "2.0.3", "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" } }, "System.Drawing.Common": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "uoozjI3+dlgKh2onFJcz8aNLh6TRCPlLSh8Dbuljc8CdvqXrxHOVysJlrHvlsOCqceqGBR1wrMPxlnzzhynktw==" }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "2.9.4", "contentHash": "alIJhS0VUg/7x5AsHEoovh/wRZ0RfCSS7k5pDSqpRLTyuMTtRgj6OJJPRApRhJHOGYYsLakf1hKeXFoDwKwNkg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "N5yQdGy+M4kimVG7hwCeGTCfgYjK2o5b/Shumkb/rCC+/SAkvP1HUAYK+vxPFS7dLJNtXLRsmPHKj3fnyNWnrw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "2.9.4", "System.Collections.Immutable": "1.5.0", "System.Memory": "4.5.3", "System.Reflection.Metadata": "1.6.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2", "System.Text.Encoding.CodePages": "4.5.1", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "WDUIhTHem38H6VJ98x2Ssq0fweakJHnHYl7vbG8ARnsAwLoJKCQCy78EeY1oRrCKG42j0v6JVljKkeqSDA28UA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "t9uIwsLzT5zQ1Q3ZIpwE4EOnAf/lGdbQwyeqhyO/BJ+AWDt267Hxlz5k6ypPy14Z6+PW6pTggAGz6MwN31RElQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Features": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "dHs/UyfLgzsVC4FjTi/x+H+yQifgOnpe3rSN8GwkHWjnidePZ3kSqr1JHmFDf5HTQEydYwrwCAfQ0JSzhsEqDA==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "lvMC69ABN/YEaw3ke4cQRqBYZ2V7DJTOT8QXIeAJGJUfwVHTBN0iq2O5zZQrYnnUN2wmeCzCoAg59PKBosVO7g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": "2.9.5", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]", "Microsoft.DiaSymReader": "1.3.0", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": { "type": "Transitive", "resolved": "2.9.5", "contentHash": "SqwdTocsxU7u0Y8am67BY7KSLAhrtDXdBBwt0Nv9TxLVzPBPtPPFS2bHUsxucpOBMBmc10rWE1eJ+IDrr/0/nQ==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "NfBz3b5hFSbO+7xsCNryD+p8axsIJFTG7qM3jvMTC/MqYrU6b8E1b6JoRj5rJSOBB+pSunk+CMqyGQTOWHeDUg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "System.Composition": "1.0.31" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.3.0", "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.1", "contentHash": "TMBuzAHpTenGbGgk0SMTwyEkyijY/Eae4ZGsFNYJvAr/LDn1ku3Etp3FPxChmDp5HHF3kzJuoaa08N0xjqAJfQ==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "1.5.0", "contentHash": "EXKiDFsChZW0RjrZ4FYHu9aW6+P4MCgEDCklsVseRfhoO0F+dXeMSsMRAlVXIo06kGJ/zv+2w1a2uc2+kxxSaQ==" }, "System.Composition": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "I+D26qpYdoklyAVUdqwUBrEIckMNjAYnuPJy/h9dsQItpQwVREkDFs4b4tkBza0kT2Yk48Lcfsv2QQ9hWsh9Iw==", "dependencies": { "System.Composition.AttributedModel": "1.0.31", "System.Composition.Convention": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Composition.TypedParts": "1.0.31" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "NHWhkM3ZkspmA0XJEsKdtTt1ViDYuojgSND3yHhTzwxepiwqZf+BCWuvCbjUt4fe0NxxQhUDGJ5km6sLjo9qnQ==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.Convention": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "GLjh2Ju71k6C0qxMMtl4efHa68NmWeIUYh4fkUI8xbjQrEBvFmRwMDFcylT8/PR9SQbeeL48IkFxU/+gd0nYEQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "fN1bT4RX4vUqjbgoyuJFVUizAl2mYF5VAb+bVIxIYZSSc0BdnX+yGAxcavxJuDDCQ1K+/mdpgyEFc8e9ikjvrg==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0LEJN+2NVM89CE4SekDrrk5tHV5LeATltkp+9WNYrR+Huiyt0vaCqHbbHtVAjPyeLWIc8dOz/3kthRBj32wGQg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0Zae/FtzeFgDBBuILeIbC/T9HMYbW4olAmi8XqqAGosSOWvXfiQLfARZEhiGd0LVXaYgXr0NhxiU1LldRP1fpQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.Tracing": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==" }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==", "dependencies": { "System.Reflection.Emit.ILGeneration": "4.7.0" } }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "AucBYo3DSI0IDxdUjKksBcQJXPHyoPyrCXYURW1WDsLI4M65Ar/goSHjdnHOAY9MiYDNKqDlIgaYm+zL2hA1KA==" }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "1.6.0", "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==", "dependencies": { "System.Collections.Immutable": "1.5.0" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "3TIsJhD1EiiT0w2CcDMN/iSSwnNnsrnbzeVHSKkaEgV85txMprmuO+Yq2AdSbeVGcg28pdNDTPK87tJhX7VFHw==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "qAtKMcHOAq9/zKkl0dwvF0T0pmgCQxX1rC49rJXoU8jq+lw6MC3uXy7nLFmjEI20T3Aq069eWz4LcYR64vEmJw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3", "System.Runtime": "4.3.1" } }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", "dependencies": { "System.Security.Principal.Windows": "5.0.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Cng": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Permissions": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "uE8juAhEkp7KDBCdjDIE3H9R1HJuEHqeqX8nLX9gmYKWwsqk3T5qZlPx8qle5DPKimC/Fy3AFTdV7HamgCh9qQ==", "dependencies": { "System.Security.AccessControl": "5.0.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { "System.Collections": "4.3.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.1", "System.Runtime.Extensions": "4.3.1", "System.Threading": "4.3.0" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "+MvhNtcvIbqmhANyKu91jQnvIRVSTiaOiFNfKWwXGHG48YAb4I/TyH8spsySiPYla7gKal5ZnF3teJqZAximyQ==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } } } } } ================================================ FILE: Internal.Roslyn33/CodeActionInternals.cs ================================================ using System.Collections.Immutable; using System.Composition; using Microsoft.CodeAnalysis.CodeActions; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn33 { [Shared] [Export(typeof(ICodeActionInternals))] internal class CodeActionInternals : ICodeActionInternals { public bool IsInlinable(CodeAction action) { Argument.NotNull(nameof(action), action); return action.IsInlinable; } public Roslyn.Internals.CodeActionPriority GetPriority(CodeAction action) { Argument.NotNull(nameof(action), action); return (Roslyn.Internals.CodeActionPriority)(int)action.Priority; } public ImmutableArray GetNestedCodeActions(CodeAction action) { Argument.NotNull(nameof(action), action); return action.NestedCodeActions; } } } ================================================ FILE: Internal.Roslyn33/Internal.Roslyn33.csproj ================================================ netstandard2.0 MirrorSharp.Internal.Roslyn33 MirrorSharp.Internal.Roslyn33 false Microsoft.CodeAnalysis.Features;Microsoft.CodeAnalysis.Workspaces ================================================ FILE: Internal.Roslyn33/PublicAPI.Shipped.txt ================================================ #nullable enable ================================================ FILE: Internal.Roslyn33/PublicAPI.Unshipped.txt ================================================ ================================================ FILE: Internal.Roslyn33/SignatureHelpProviderWrapper.cs ================================================ using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; using SignatureHelpTriggerReason = Microsoft.CodeAnalysis.SignatureHelp.SignatureHelpTriggerReason; namespace MirrorSharp.Internal.Roslyn33 { internal class SignatureHelpProviderWrapper : ISignatureHelpProviderWrapper { private readonly ISignatureHelpProvider _provider; public SignatureHelpProviderWrapper(ISignatureHelpProvider provider) { _provider = provider; } public async Task GetItemsAsync(Document document, int position, SignatureHelpTriggerInfoData triggerInfo, SignatureHelpOptionsData options, CancellationToken cancellationToken) { var mappedTriggerInfo = new SignatureHelpTriggerInfo( (SignatureHelpTriggerReason)(int)triggerInfo.TriggerReason, triggerInfo.TriggerCharacter ); var items = await _provider.GetItemsAsync( document, position, mappedTriggerInfo, cancellationToken ).ConfigureAwait(false); if (items == null) return null; return new SignatureHelpItemsData( items.Items.Select(i => new SignatureHelpItemData( i.DocumentationFactory, prefixDisplayParts: i.PrefixDisplayParts, separatorDisplayParts: i.SeparatorDisplayParts, suffixDisplayParts: i.SuffixDisplayParts, parameters: i.Parameters.Select(p => new SignatureHelpParameterData( p.Name, p.DocumentationFactory, displayParts: p.DisplayParts, prefixDisplayParts: p.PrefixDisplayParts, suffixDisplayParts: p.SuffixDisplayParts )), i.Parameters.Length )), applicableSpan: items.ApplicableSpan, argumentIndex: items.ArgumentIndex, argumentCount: items.ArgumentCount, selectedItemIndex: items.SelectedItemIndex ); } public bool IsRetriggerCharacter(char ch) => _provider.IsRetriggerCharacter(ch); public bool IsTriggerCharacter(char ch) => _provider.IsTriggerCharacter(ch); } } ================================================ FILE: Internal.Roslyn33/SignatureHelpProviderWrapperResolver.cs ================================================ using System; using System.Collections.Generic; using System.Composition; using System.Linq; using Microsoft.CodeAnalysis.Host.Mef; using Microsoft.CodeAnalysis.Shared.Utilities; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn33 { [Export(typeof(ISignatureHelpProviderWrapperResolver))] internal class SignatureHelpProviderWrapperResolver : ISignatureHelpProviderWrapperResolver { private readonly IList> _allProviders; [ImportingConstructor] public SignatureHelpProviderWrapperResolver( [ImportMany] IEnumerable> allProviders ) { _allProviders = ExtensionOrderer.Order(allProviders); } public IEnumerable GetAllSlow(string languageName) { if (languageName == null) throw new ArgumentNullException(nameof(languageName)); return _allProviders .Where(l => l.Metadata.Language == languageName) .Select(l => new SignatureHelpProviderWrapper(l.Value)); } } } ================================================ FILE: Internal.Roslyn33/WorkspaceAnalyzerOptionsInternals.cs ================================================ using System.Composition; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Diagnostics; using Microsoft.CodeAnalysis.Options; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn33 { [Shared] [Export(typeof(IWorkspaceAnalyzerOptionsInternals))] internal class WorkspaceAnalyzerOptionsInternals : IWorkspaceAnalyzerOptionsInternals { public AnalyzerOptions New(AnalyzerOptions options, Project project) { Argument.NotNull(nameof(options), options); Argument.NotNull(nameof(project), project); return new WorkspaceAnalyzerOptions(options, new WorkspaceOptionSet(null), project.Solution); } } } ================================================ FILE: Internal.Roslyn33/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETStandard,Version=v2.0": { "IgnoresAccessChecksToGenerator": { "type": "Direct", "requested": "[0.5.0, )", "resolved": "0.5.0", "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[3.3.1, )", "resolved": "3.3.1", "contentHash": "BoPeZD+BFE5x/qu28RnelX7hoCnPDbOZkwymrUnslrZjzj8B155gP/GjrI6m66oUOk2Yh1lxlUs+BRFZOPMBnQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp.Workspaces": "[3.3.1]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[3.3.1]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Direct", "requested": "[3.3.1, )", "resolved": "3.3.1", "contentHash": "lvMC69ABN/YEaw3ke4cQRqBYZ2V7DJTOT8QXIeAJGJUfwVHTBN0iq2O5zZQrYnnUN2wmeCzCoAg59PKBosVO7g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": "2.9.5", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]", "Microsoft.DiaSymReader": "1.3.0", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Direct", "requested": "[3.3.1, )", "resolved": "3.3.1", "contentHash": "NfBz3b5hFSbO+7xsCNryD+p8axsIJFTG7qM3jvMTC/MqYrU6b8E1b6JoRj5rJSOBB+pSunk+CMqyGQTOWHeDUg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "System.Composition": "1.0.31" } }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", "resolved": "2.0.3", "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "2.9.4", "contentHash": "alIJhS0VUg/7x5AsHEoovh/wRZ0RfCSS7k5pDSqpRLTyuMTtRgj6OJJPRApRhJHOGYYsLakf1hKeXFoDwKwNkg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "N5yQdGy+M4kimVG7hwCeGTCfgYjK2o5b/Shumkb/rCC+/SAkvP1HUAYK+vxPFS7dLJNtXLRsmPHKj3fnyNWnrw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "2.9.4", "System.Collections.Immutable": "1.5.0", "System.Memory": "4.5.3", "System.Reflection.Metadata": "1.6.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2", "System.Text.Encoding.CodePages": "4.5.1", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "WDUIhTHem38H6VJ98x2Ssq0fweakJHnHYl7vbG8ARnsAwLoJKCQCy78EeY1oRrCKG42j0v6JVljKkeqSDA28UA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "dHs/UyfLgzsVC4FjTi/x+H+yQifgOnpe3rSN8GwkHWjnidePZ3kSqr1JHmFDf5HTQEydYwrwCAfQ0JSzhsEqDA==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": { "type": "Transitive", "resolved": "2.9.5", "contentHash": "SqwdTocsxU7u0Y8am67BY7KSLAhrtDXdBBwt0Nv9TxLVzPBPtPPFS2bHUsxucpOBMBmc10rWE1eJ+IDrr/0/nQ==" }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "F7fc/G+0ocOYkKSCJ7Y8Q7eAEkAdG5RYODI9FtSl2Hm8zIDBVA3NccCm98gaOvCamLfMHYqeOjpb3yJnnw3m/w==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "Oi4AUxMKAYpx7nHNh7jUO8X18JFCzwtIfu/yDzGzOBpo50591AF7EEdv99geAEidGtmJqbzQ6uRk5dEOL+7F/Q==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.VisualBasic": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.3.0", "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==" }, "System.Buffers": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "AwarXzzoDwX6BgrhjoJsk6tUezZEozOT5Y9QKF94Gl4JK91I4PIIBkBco9068Y9/Dra8Dkbie99kXB8+1BaYKw==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "1.5.0", "contentHash": "EXKiDFsChZW0RjrZ4FYHu9aW6+P4MCgEDCklsVseRfhoO0F+dXeMSsMRAlVXIo06kGJ/zv+2w1a2uc2+kxxSaQ==" }, "System.Composition": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "I+D26qpYdoklyAVUdqwUBrEIckMNjAYnuPJy/h9dsQItpQwVREkDFs4b4tkBza0kT2Yk48Lcfsv2QQ9hWsh9Iw==", "dependencies": { "System.Composition.AttributedModel": "1.0.31", "System.Composition.Convention": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Composition.TypedParts": "1.0.31" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "NHWhkM3ZkspmA0XJEsKdtTt1ViDYuojgSND3yHhTzwxepiwqZf+BCWuvCbjUt4fe0NxxQhUDGJ5km6sLjo9qnQ==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.Convention": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "GLjh2Ju71k6C0qxMMtl4efHa68NmWeIUYh4fkUI8xbjQrEBvFmRwMDFcylT8/PR9SQbeeL48IkFxU/+gd0nYEQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "fN1bT4RX4vUqjbgoyuJFVUizAl2mYF5VAb+bVIxIYZSSc0BdnX+yGAxcavxJuDDCQ1K+/mdpgyEFc8e9ikjvrg==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0LEJN+2NVM89CE4SekDrrk5tHV5LeATltkp+9WNYrR+Huiyt0vaCqHbbHtVAjPyeLWIc8dOz/3kthRBj32wGQg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0Zae/FtzeFgDBBuILeIbC/T9HMYbW4olAmi8XqqAGosSOWvXfiQLfARZEhiGd0LVXaYgXr0NhxiU1LldRP1fpQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==", "dependencies": { "System.Buffers": "4.4.0", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==" }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", "dependencies": { "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "1.6.0", "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==", "dependencies": { "System.Collections.Immutable": "1.5.0" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "4.5.2", "contentHash": "wprSFgext8cwqymChhrBLu62LMg/1u92bU+VOwyfBimSPVFXtsNqEWC92Pf9ofzJFlk4IHmJA75EDJn1b2goAQ==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "+MvhNtcvIbqmhANyKu91jQnvIRVSTiaOiFNfKWwXGHG48YAb4I/TyH8spsySiPYla7gKal5ZnF3teJqZAximyQ==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis": "[3.3.1, )", "Microsoft.CodeAnalysis.Features": "[3.3.1, )" } } } } } ================================================ FILE: Internal.Roslyn36/CodeActionInternals.cs ================================================ using System.Collections.Immutable; using System.Composition; using Microsoft.CodeAnalysis.CodeActions; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn36 { [Shared] [Export(typeof(ICodeActionInternals))] internal class CodeActionInternals : ICodeActionInternals { public bool IsInlinable(CodeAction action) { Argument.NotNull(nameof(action), action); return action.IsInlinable; } public Roslyn.Internals.CodeActionPriority GetPriority(CodeAction action) { Argument.NotNull(nameof(action), action); return (Roslyn.Internals.CodeActionPriority)(int)action.Priority; } public ImmutableArray GetNestedCodeActions(CodeAction action) { Argument.NotNull(nameof(action), action); return action.NestedCodeActions; } } } ================================================ FILE: Internal.Roslyn36/Internal.Roslyn36.csproj ================================================ netstandard2.0 MirrorSharp.Internal.Roslyn36 MirrorSharp.Internal.Roslyn36 false Microsoft.CodeAnalysis.Features;Microsoft.CodeAnalysis.Workspaces ================================================ FILE: Internal.Roslyn36/PublicAPI.Shipped.txt ================================================ #nullable enable ================================================ FILE: Internal.Roslyn36/PublicAPI.Unshipped.txt ================================================ ================================================ FILE: Internal.Roslyn36/SignatureHelpProviderWrapper.cs ================================================ using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; using SignatureHelpTriggerReason = Microsoft.CodeAnalysis.SignatureHelp.SignatureHelpTriggerReason; namespace MirrorSharp.Internal.Roslyn36 { internal class SignatureHelpProviderWrapper : ISignatureHelpProviderWrapper { private readonly ISignatureHelpProvider _provider; public SignatureHelpProviderWrapper(ISignatureHelpProvider provider) { _provider = provider; } public async Task GetItemsAsync(Document document, int position, SignatureHelpTriggerInfoData triggerInfo, SignatureHelpOptionsData options, CancellationToken cancellationToken) { var mappedTriggerInfo = new SignatureHelpTriggerInfo( (SignatureHelpTriggerReason)(int)triggerInfo.TriggerReason, triggerInfo.TriggerCharacter ); var items = await _provider.GetItemsAsync( document, position, mappedTriggerInfo, cancellationToken ).ConfigureAwait(false); if (items == null) return null; return new SignatureHelpItemsData( items.Items.Select(i => new SignatureHelpItemData( i.DocumentationFactory, prefixDisplayParts: i.PrefixDisplayParts, separatorDisplayParts: i.SeparatorDisplayParts, suffixDisplayParts: i.SuffixDisplayParts, parameters: i.Parameters.Select(p => new SignatureHelpParameterData( p.Name, p.DocumentationFactory, displayParts: p.DisplayParts, prefixDisplayParts: p.PrefixDisplayParts, suffixDisplayParts: p.SuffixDisplayParts )), i.Parameters.Length )), applicableSpan: items.ApplicableSpan, argumentIndex: items.ArgumentIndex, argumentCount: items.ArgumentCount, selectedItemIndex: items.SelectedItemIndex ); } public bool IsRetriggerCharacter(char ch) => _provider.IsRetriggerCharacter(ch); public bool IsTriggerCharacter(char ch) => _provider.IsTriggerCharacter(ch); } } ================================================ FILE: Internal.Roslyn36/SignatureHelpProviderWrapperResolver.cs ================================================ using System; using System.Collections.Generic; using System.Composition; using System.Linq; using Microsoft.CodeAnalysis.Host.Mef; using Microsoft.CodeAnalysis.Shared.Utilities; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn36 { [Export(typeof(ISignatureHelpProviderWrapperResolver))] internal class SignatureHelpProviderWrapperResolver : ISignatureHelpProviderWrapperResolver { private readonly IList> _allProviders; [ImportingConstructor] public SignatureHelpProviderWrapperResolver( [ImportMany] IEnumerable> allProviders ) { _allProviders = ExtensionOrderer.Order(allProviders); } public IEnumerable GetAllSlow(string languageName) { if (languageName == null) throw new ArgumentNullException(nameof(languageName)); return _allProviders .Where(l => l.Metadata.Language == languageName) .Select(l => new SignatureHelpProviderWrapper(l.Value)); } } } ================================================ FILE: Internal.Roslyn36/WorkspaceAnalyzerOptionsInternals.cs ================================================ using System.Composition; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Diagnostics; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn36 { [Shared] [Export(typeof(IWorkspaceAnalyzerOptionsInternals))] internal class WorkspaceAnalyzerOptionsInternals : IWorkspaceAnalyzerOptionsInternals { public AnalyzerOptions New(AnalyzerOptions options, Project project) { Argument.NotNull(nameof(options), options); Argument.NotNull(nameof(project), project); return new WorkspaceAnalyzerOptions(options, project.Solution); } } } ================================================ FILE: Internal.Roslyn36/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETStandard,Version=v2.0": { "IgnoresAccessChecksToGenerator": { "type": "Direct", "requested": "[0.5.0, )", "resolved": "0.5.0", "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[3.6.0, )", "resolved": "3.6.0", "contentHash": "SZos6yDzFdsyMLY+7yMw1vmm7as3D6ocUJDRneSEg6LMQ8GY4UGNlcAEHLuJsgt5AwCqIMKvlU7TPm8RUcRl+Q==", "dependencies": { "Microsoft.CodeAnalysis.CSharp.Workspaces": "[3.6.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[3.6.0]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Direct", "requested": "[3.6.0, )", "resolved": "3.6.0", "contentHash": "iDshCqdpu/oHmG0uG7RsqiLr6/+C3rm0kG4GJFKM3Ap9YlfVh5ucOTY1MpTSH1lKUVLtFrcUyw4m4u4/3O9Fcg==", "dependencies": { "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.0.0", "Microsoft.CodeAnalysis.Common": "[3.6.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.6.0]", "Microsoft.DiaSymReader": "1.3.0", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Direct", "requested": "[3.6.0, )", "resolved": "3.6.0", "contentHash": "DmaIzcx9cpZMY97SH0IDfEsq/QujuvnC0nNDAskOO8zFKxKTaZJw8/jKV/nPUk3OgpOAP1ypaz9VborDfnSf+g==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "1.1.0", "Microsoft.CodeAnalysis.Common": "[3.6.0]", "System.Composition": "1.0.31" } }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", "resolved": "2.0.3", "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" } }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.2.0", "contentHash": "rsYXB7+iUPP8AHgQ8JP2UZI2xK2KhjcdGr9E6zX3CsZaTLCaw8M35vaAJRo1rfxeaZEVMuXeaquLVCkZ7JcZ5Q==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.2" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.0.0", "contentHash": "ojG5pGAhTPmjxRGTNvuszO3H8XPZqksDwr9xLd4Ae/JBjZZdl6GuoLk7uLMf+o7yl5wO0TAqoWcEKkEWqrZE5g==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.0.0", "contentHash": "z8rVA1LC8kQv6ZFOSWn5TZhHx7lwdGF/cMcjTXi0h1itV10LEtC5Lm2yZCw0Uz2uyKWXYE0TsBfo+0xQqKHV2Q==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "3.6.0", "contentHash": "jQxDeYyQbNZwx/9O8hiyApTqZ7+KR3xVA6Ogbb50qsODfjAKRWuH7z3lGkU/62PYUz4yiDtgXlRtntWNdhFPfQ==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.0.0", "System.Collections.Immutable": "1.5.0", "System.Memory": "4.5.3", "System.Reflection.Metadata": "1.6.0", "System.Runtime.CompilerServices.Unsafe": "4.7.0", "System.Text.Encoding.CodePages": "4.5.1", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "3.6.0", "contentHash": "kflVAdezWxqIfKNvEi4cmWZchX0Cgm3bRk1asYSnAQWQPTMddecrHzb9D8+ZDfYUeyYKkF4DETwjmONeSChCqA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.6.0]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "3.6.0", "contentHash": "HpMIxUIaHOJ5Vmy5RFnq/itS563FXZdXlsSf8bHU3urrKnOdVkQZ5fktCIxGD5RG6kG/WbPEi0eW18jE2J5/zw==", "dependencies": { "Humanizer.Core": "2.2.0", "Microsoft.CodeAnalysis.CSharp": "[3.6.0]", "Microsoft.CodeAnalysis.Common": "[3.6.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.6.0]" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "3.6.0", "contentHash": "ZS9FhxIut643uKyf9gOjTdwJNENa4pqcbUSS4herYjp8lvYsXOa7QgazySHcNCAut4/SlYgvydpGZgwoasD7vw==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.6.0]" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "3.6.0", "contentHash": "Evddkuon+vbcjApMg8+xt96/67nw/YSwg4c1tx4r7YYWzthz+IfgIamSdRi4P+3Du3LnIlsGo2MFxo36hIWFhg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.6.0]", "Microsoft.CodeAnalysis.VisualBasic": "[3.6.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.6.0]" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.3.0", "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==" }, "System.Buffers": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "AwarXzzoDwX6BgrhjoJsk6tUezZEozOT5Y9QKF94Gl4JK91I4PIIBkBco9068Y9/Dra8Dkbie99kXB8+1BaYKw==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "1.5.0", "contentHash": "EXKiDFsChZW0RjrZ4FYHu9aW6+P4MCgEDCklsVseRfhoO0F+dXeMSsMRAlVXIo06kGJ/zv+2w1a2uc2+kxxSaQ==" }, "System.Composition": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "I+D26qpYdoklyAVUdqwUBrEIckMNjAYnuPJy/h9dsQItpQwVREkDFs4b4tkBza0kT2Yk48Lcfsv2QQ9hWsh9Iw==", "dependencies": { "System.Composition.AttributedModel": "1.0.31", "System.Composition.Convention": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Composition.TypedParts": "1.0.31" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "NHWhkM3ZkspmA0XJEsKdtTt1ViDYuojgSND3yHhTzwxepiwqZf+BCWuvCbjUt4fe0NxxQhUDGJ5km6sLjo9qnQ==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.Convention": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "GLjh2Ju71k6C0qxMMtl4efHa68NmWeIUYh4fkUI8xbjQrEBvFmRwMDFcylT8/PR9SQbeeL48IkFxU/+gd0nYEQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "fN1bT4RX4vUqjbgoyuJFVUizAl2mYF5VAb+bVIxIYZSSc0BdnX+yGAxcavxJuDDCQ1K+/mdpgyEFc8e9ikjvrg==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0LEJN+2NVM89CE4SekDrrk5tHV5LeATltkp+9WNYrR+Huiyt0vaCqHbbHtVAjPyeLWIc8dOz/3kthRBj32wGQg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0Zae/FtzeFgDBBuILeIbC/T9HMYbW4olAmi8XqqAGosSOWvXfiQLfARZEhiGd0LVXaYgXr0NhxiU1LldRP1fpQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==", "dependencies": { "System.Buffers": "4.4.0", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==" }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", "dependencies": { "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "1.6.0", "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==", "dependencies": { "System.Collections.Immutable": "1.5.0" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "IpU1lcHz8/09yDr9N+Juc7SCgNUz+RohkCQI+KsWKR67XxpFr8Z6c8t1iENCXZuRuNCc4HBwme/MDHNVCwyAKg==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "+MvhNtcvIbqmhANyKu91jQnvIRVSTiaOiFNfKWwXGHG48YAb4I/TyH8spsySiPYla7gKal5ZnF3teJqZAximyQ==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis": "[3.3.1, )", "Microsoft.CodeAnalysis.Features": "[3.3.1, )" } } } } } ================================================ FILE: Internal.Roslyn41/CodeActionInternals.cs ================================================ using System.Collections.Immutable; using System.Composition; using Microsoft.CodeAnalysis.CodeActions; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn41 { [Shared] [Export(typeof(ICodeActionInternals))] internal class CodeActionInternals : ICodeActionInternals { public bool IsInlinable(CodeAction action) { Argument.NotNull(nameof(action), action); return action.IsInlinable; } public Roslyn.Internals.CodeActionPriority GetPriority(CodeAction action) { Argument.NotNull(nameof(action), action); return (Roslyn.Internals.CodeActionPriority)(int)action.Priority; } public ImmutableArray GetNestedCodeActions(CodeAction action) { Argument.NotNull(nameof(action), action); return action.NestedCodeActions; } } } ================================================ FILE: Internal.Roslyn41/Internal.Roslyn41.csproj ================================================ netstandard2.0 MirrorSharp.Internal.Roslyn41 MirrorSharp.Internal.Roslyn41 false Microsoft.CodeAnalysis.Features;Microsoft.CodeAnalysis.Workspaces ================================================ FILE: Internal.Roslyn41/PublicAPI.Shipped.txt ================================================ #nullable enable ================================================ FILE: Internal.Roslyn41/PublicAPI.Unshipped.txt ================================================ ================================================ FILE: Internal.Roslyn41/SignatureHelpProviderWrapper.cs ================================================ using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; using SignatureHelpTriggerReason = Microsoft.CodeAnalysis.SignatureHelp.SignatureHelpTriggerReason; namespace MirrorSharp.Internal.Roslyn41 { internal class SignatureHelpProviderWrapper : ISignatureHelpProviderWrapper { private readonly ISignatureHelpProvider _provider; public SignatureHelpProviderWrapper(ISignatureHelpProvider provider) { _provider = provider; } public async Task GetItemsAsync(Document document, int position, SignatureHelpTriggerInfoData triggerInfo, SignatureHelpOptionsData options, CancellationToken cancellationToken) { var mappedOptions = SignatureHelpOptions.From(options.Project); var mappedTriggerInfo = new SignatureHelpTriggerInfo( (SignatureHelpTriggerReason)(int)triggerInfo.TriggerReason, triggerInfo.TriggerCharacter ); var items = await _provider.GetItemsAsync( document, position, mappedTriggerInfo, mappedOptions, cancellationToken ).ConfigureAwait(false); if (items == null) return null; return new SignatureHelpItemsData( items.Items.Select(i => new SignatureHelpItemData( i.DocumentationFactory, prefixDisplayParts: i.PrefixDisplayParts, separatorDisplayParts: i.SeparatorDisplayParts, suffixDisplayParts: i.SuffixDisplayParts, parameters: i.Parameters.Select(p => new SignatureHelpParameterData( p.Name, p.DocumentationFactory, displayParts: p.DisplayParts, prefixDisplayParts: p.PrefixDisplayParts, suffixDisplayParts: p.SuffixDisplayParts )), i.Parameters.Length )), applicableSpan: items.ApplicableSpan, argumentIndex: items.ArgumentIndex, argumentCount: items.ArgumentCount, selectedItemIndex: items.SelectedItemIndex ); } public bool IsRetriggerCharacter(char ch) => _provider.IsRetriggerCharacter(ch); public bool IsTriggerCharacter(char ch) => _provider.IsTriggerCharacter(ch); } } ================================================ FILE: Internal.Roslyn41/SignatureHelpProviderWrapperResolver.cs ================================================ using System; using System.Collections.Generic; using System.Composition; using System.Linq; using Microsoft.CodeAnalysis.Host.Mef; using Microsoft.CodeAnalysis.Shared.Utilities; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn41 { [Export(typeof(ISignatureHelpProviderWrapperResolver))] internal class SignatureHelpProviderWrapperResolver : ISignatureHelpProviderWrapperResolver { private readonly IList> _allProviders; [ImportingConstructor] public SignatureHelpProviderWrapperResolver( [ImportMany] IEnumerable> allProviders ) { _allProviders = ExtensionOrderer.Order(allProviders); } public IEnumerable GetAllSlow(string languageName) { if (languageName == null) throw new ArgumentNullException(nameof(languageName)); return _allProviders .Where(l => l.Metadata.Language == languageName) .Select(l => new SignatureHelpProviderWrapper(l.Value)); } } } ================================================ FILE: Internal.Roslyn41/WorkspaceAnalyzerOptionsInternals.cs ================================================ using System.Composition; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Diagnostics; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn41 { [Shared] [Export(typeof(IWorkspaceAnalyzerOptionsInternals))] internal class WorkspaceAnalyzerOptionsInternals : IWorkspaceAnalyzerOptionsInternals { public AnalyzerOptions New(AnalyzerOptions options, Project project) { Argument.NotNull(nameof(options), options); Argument.NotNull(nameof(project), project); return new WorkspaceAnalyzerOptions(options, project.Solution); } } } ================================================ FILE: Internal.Roslyn41/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETStandard,Version=v2.0": { "IgnoresAccessChecksToGenerator": { "type": "Direct", "requested": "[0.5.0, )", "resolved": "0.5.0", "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.1.0, )", "resolved": "4.1.0", "contentHash": "kMackQJPbJOee86dAt+4xZEBMW8gJ2KLFu2JXOqXAO9Hiy4gini7Gz+spg7viGNMFuNVt423MUrfdnDngo93CA==", "dependencies": { "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.1.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.1.0]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Direct", "requested": "[4.1.0, )", "resolved": "4.1.0", "contentHash": "hssPMMM7vkcYUh8hYzUuIY0E+nMNeggh8J9RMGGOodXeiTk4mJBzaEqHBRVeS2EyCFdXDivNuhqMxe/mOV7AQg==", "dependencies": { "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Common": "[4.1.0]", "Microsoft.CodeAnalysis.Scripting.Common": "[4.1.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.1.0]", "Microsoft.DiaSymReader": "1.4.0", "System.Text.Json": "4.7.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Direct", "requested": "[4.1.0, )", "resolved": "4.1.0", "contentHash": "Xzb15T20r9qDN0REgTZLdKTzXsZr/zxAy8Jq/w00y32wrJGBZLPz8mR2KLZ1f1ujv5jaQZ040GPmmFVYz8c2ag==", "dependencies": { "Humanizer.Core": "2.2.0", "Microsoft.Bcl.AsyncInterfaces": "5.0.0", "Microsoft.CodeAnalysis.Common": "[4.1.0]", "System.Composition": "1.0.31", "System.IO.Pipelines": "5.0.1" } }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", "resolved": "2.0.3", "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.2.0", "contentHash": "rsYXB7+iUPP8AHgQ8JP2UZI2xK2KhjcdGr9E6zX3CsZaTLCaw8M35vaAJRo1rfxeaZEVMuXeaquLVCkZ7JcZ5Q==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.3.3", "contentHash": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "bNzTyxP3iD5FPFHfVDl15Y6/wSoI7e3MeV0lOaj9igbIKTjgrmuw6LoVJ06jUNFA7+KaDC/OIsStWl/FQJz6sQ==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.3", "System.Collections.Immutable": "5.0.0", "System.Memory": "4.5.4", "System.Reflection.Metadata": "5.0.0", "System.Runtime.CompilerServices.Unsafe": "5.0.0", "System.Text.Encoding.CodePages": "4.5.1", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "sbu6kDGzo9bfQxuqWpeEE7I9P30bSuZEnpDz9/qz20OU6pm79Z63+/BsAzO2e/R/Q97kBrpj647wokZnEVr97w==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.1.0]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "VXAz9xHBcgAXr5+WD9tT4S/bfW0x7raIUB5DPsnXpOrlOcN1RuDBq2UYofK8L693u63FNuRWI3BcFjFdprMhIg==", "dependencies": { "Humanizer.Core": "2.2.0", "Microsoft.CodeAnalysis.CSharp": "[4.1.0]", "Microsoft.CodeAnalysis.Common": "[4.1.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.1.0]" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "lRjDlFhq4HllCNFaWvfSRGr9JYyFlkR0fW7a8+7bBjybBTi2WqTZr4/pJCd4iPrSS+zSI6EdgnrEF+xNEsZHrQ==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.1.0]" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "7520vJ+7SmwnVxD/aHZpVfEvSRN4Lf8sG1Brwq0wyqV6kA/kwOVAF9Ijr/ZFnOYuxA/DTf2qzXIyBG1YS8F+dw==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.1.0]" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "t6xfuVqzXES3CDoSpLLMFuHupWmLNlUOIDPomot7UbGjkKB1YpzNQsQgDh6tsxiTONhIYx3leJp36HN6rWatOA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.1.0]", "Microsoft.CodeAnalysis.VisualBasic": "[4.1.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.1.0]" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.4.0", "contentHash": "iLtWq5/W5ePzSraavAFeXAbasE6REDByizTz6M8yQO3e4jf+6pRqPLdNCSvnSfKRVqsF7y/lTVWhqlf89ttweg==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==" }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "FXkLXiK0sVVewcso0imKQoOxjoPAj42R8HtjjbSjVPAzwDfzoyoznWxgA3c38LDbN9SJux1xXoXYAhz98j7r2g==", "dependencies": { "System.Memory": "4.5.4" } }, "System.Composition": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "I+D26qpYdoklyAVUdqwUBrEIckMNjAYnuPJy/h9dsQItpQwVREkDFs4b4tkBza0kT2Yk48Lcfsv2QQ9hWsh9Iw==", "dependencies": { "System.Composition.AttributedModel": "1.0.31", "System.Composition.Convention": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Composition.TypedParts": "1.0.31" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "NHWhkM3ZkspmA0XJEsKdtTt1ViDYuojgSND3yHhTzwxepiwqZf+BCWuvCbjUt4fe0NxxQhUDGJ5km6sLjo9qnQ==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.Convention": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "GLjh2Ju71k6C0qxMMtl4efHa68NmWeIUYh4fkUI8xbjQrEBvFmRwMDFcylT8/PR9SQbeeL48IkFxU/+gd0nYEQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "fN1bT4RX4vUqjbgoyuJFVUizAl2mYF5VAb+bVIxIYZSSc0BdnX+yGAxcavxJuDDCQ1K+/mdpgyEFc8e9ikjvrg==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0LEJN+2NVM89CE4SekDrrk5tHV5LeATltkp+9WNYrR+Huiyt0vaCqHbbHtVAjPyeLWIc8dOz/3kthRBj32wGQg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0Zae/FtzeFgDBBuILeIbC/T9HMYbW4olAmi8XqqAGosSOWvXfiQLfARZEhiGd0LVXaYgXr0NhxiU1LldRP1fpQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==" }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", "dependencies": { "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ==", "dependencies": { "System.Collections.Immutable": "5.0.0" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis": "[3.3.1, )", "Microsoft.CodeAnalysis.Features": "[3.3.1, )" } } } } } ================================================ FILE: Internal.Roslyn410/CodeActionInternals.cs ================================================ using System.Collections.Immutable; using System.Composition; using Microsoft.CodeAnalysis.CodeActions; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn410 { [Shared] [Export(typeof(ICodeActionInternals))] internal class CodeActionInternals : ICodeActionInternals { public bool IsInlinable(CodeAction action) { Argument.NotNull(nameof(action), action); return action.IsInlinable; } public Roslyn.Internals.CodeActionPriority GetPriority(CodeAction action) { Argument.NotNull(nameof(action), action); return (Roslyn.Internals.CodeActionPriority)(int)action.Priority; } public ImmutableArray GetNestedCodeActions(CodeAction action) { Argument.NotNull(nameof(action), action); return action.NestedCodeActions; } } } ================================================ FILE: Internal.Roslyn410/Internal.Roslyn410.csproj ================================================ netstandard2.0 MirrorSharp.Internal.Roslyn410 MirrorSharp.Internal.Roslyn410 false Microsoft.CodeAnalysis.Features;Microsoft.CodeAnalysis.Workspaces ================================================ FILE: Internal.Roslyn410/MirrorSharpDiagnosticAnalyzerService.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Composition; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CodeActions; using Microsoft.CodeAnalysis.Diagnostics; using Microsoft.CodeAnalysis.Options; using Microsoft.CodeAnalysis.Text; namespace MirrorSharp.Internal.Roslyn47 { [Shared] [Export(typeof(IDiagnosticAnalyzerService))] internal class MirrorSharpDiagnosticAnalyzerService : IDiagnosticAnalyzerService { DiagnosticAnalyzerInfoCache IDiagnosticAnalyzerService.AnalyzerInfoCache { get; } = new(); IGlobalOptionService IDiagnosticAnalyzerService.GlobalOptions => throw new NotSupportedException(); Task IDiagnosticAnalyzerService.ForceAnalyzeProjectAsync(Project project, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetCachedDiagnosticsAsync(Workspace workspace, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics, bool includeLocalDocumentDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, ImmutableHashSet? diagnosticIds, Func? shouldIncludeAnalyzer, Func>? getDocumentIds, bool includeSuppressedDiagnostics, bool includeLocalDocumentDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForSpanAsync(TextDocument document, TextSpan? range, Func? shouldIncludeDiagnostic, bool includeCompilerDiagnostics, bool includeSuppressedDiagnostics, ICodeActionRequestPriorityProvider priorityProvider, Func? addOperationScope, DiagnosticKind diagnosticKind, bool isExplicit, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetProjectDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, ImmutableHashSet? diagnosticIds, Func? shouldIncludeAnalyzer, bool includeSuppressedDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); void IDiagnosticAnalyzerService.RequestDiagnosticRefresh() => throw new NotSupportedException(); Task<(ImmutableArray diagnostics, bool upToDate)> IDiagnosticAnalyzerService.TryGetDiagnosticsForSpanAsync(TextDocument document, TextSpan range, Func? shouldIncludeDiagnostic, bool includeSuppressedDiagnostics, ICodeActionRequestPriorityProvider priorityProvider, DiagnosticKind diagnosticKind, bool isExplicit, CancellationToken cancellationToken) => throw new NotSupportedException(); } } ================================================ FILE: Internal.Roslyn410/PublicAPI.Shipped.txt ================================================ #nullable enable ================================================ FILE: Internal.Roslyn410/PublicAPI.Unshipped.txt ================================================ ================================================ FILE: Internal.Roslyn410/SignatureHelpProviderWrapper.cs ================================================ using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; using SignatureHelpTriggerReason = Microsoft.CodeAnalysis.SignatureHelp.SignatureHelpTriggerReason; namespace MirrorSharp.Internal.Roslyn410 { internal class SignatureHelpProviderWrapper : ISignatureHelpProviderWrapper { private readonly ISignatureHelpProvider _provider; public SignatureHelpProviderWrapper(ISignatureHelpProvider provider) { _provider = provider; } public async Task GetItemsAsync(Document document, int position, SignatureHelpTriggerInfoData triggerInfo, SignatureHelpOptionsData options, CancellationToken cancellationToken) { // This is quite complicated to implement correctly and is still shifting around. // For now we will only allow default options. There is no way to check if user // intended something different, but that can be implemented later. var mappedOptions = SignatureHelpOptions.Default; var mappedTriggerInfo = new SignatureHelpTriggerInfo( (SignatureHelpTriggerReason)(int)triggerInfo.TriggerReason, triggerInfo.TriggerCharacter ); var items = await _provider.GetItemsAsync( document, position, mappedTriggerInfo, mappedOptions, cancellationToken ).ConfigureAwait(false); if (items == null) return null; return new SignatureHelpItemsData( items.Items.Select(i => new SignatureHelpItemData( i.DocumentationFactory, prefixDisplayParts: i.PrefixDisplayParts, separatorDisplayParts: i.SeparatorDisplayParts, suffixDisplayParts: i.SuffixDisplayParts, parameters: i.Parameters.Select(p => new SignatureHelpParameterData( p.Name, p.DocumentationFactory, displayParts: p.DisplayParts, prefixDisplayParts: p.PrefixDisplayParts, suffixDisplayParts: p.SuffixDisplayParts )), i.Parameters.Length )), applicableSpan: items.ApplicableSpan, argumentIndex: items.ArgumentIndex, argumentCount: items.ArgumentCount, selectedItemIndex: items.SelectedItemIndex ); } public bool IsRetriggerCharacter(char ch) => _provider.IsRetriggerCharacter(ch); public bool IsTriggerCharacter(char ch) => _provider.IsTriggerCharacter(ch); } } ================================================ FILE: Internal.Roslyn410/SignatureHelpProviderWrapperResolver.cs ================================================ using System; using System.Collections.Generic; using System.Composition; using System.Linq; using Microsoft.CodeAnalysis.Host.Mef; using Microsoft.CodeAnalysis.Shared.Utilities; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn410 { [Export(typeof(ISignatureHelpProviderWrapperResolver))] internal class SignatureHelpProviderWrapperResolver : ISignatureHelpProviderWrapperResolver { private readonly IList> _allProviders; [ImportingConstructor] public SignatureHelpProviderWrapperResolver( [ImportMany] IEnumerable> allProviders ) { _allProviders = ExtensionOrderer.Order(allProviders); } public IEnumerable GetAllSlow(string languageName) { if (languageName == null) throw new ArgumentNullException(nameof(languageName)); return _allProviders .Where(l => l.Metadata.Language == languageName) .Select(l => new SignatureHelpProviderWrapper(l.Value)); } } } ================================================ FILE: Internal.Roslyn410/WorkspaceAnalyzerOptionsInternals.cs ================================================ using System.Composition; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Diagnostics; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn410 { [Shared] [Export(typeof(IWorkspaceAnalyzerOptionsInternals))] internal class WorkspaceAnalyzerOptionsInternals : IWorkspaceAnalyzerOptionsInternals { public AnalyzerOptions New(AnalyzerOptions options, Project project) { Argument.NotNull(nameof(options), options); Argument.NotNull(nameof(project), project); return new WorkspaceAnalyzerOptions( options, IdeAnalyzerOptions.GetDefault(project.Services) ); } } } ================================================ FILE: Internal.Roslyn410/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETStandard,Version=v2.0": { "IgnoresAccessChecksToGenerator": { "type": "Direct", "requested": "[0.5.0, )", "resolved": "0.5.0", "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.10.0, )", "resolved": "4.10.0", "contentHash": "UcAcN8FmV9Xesj9XQKqpeJxyOqofb0fsgMn97gnTeSQINrmbxMe5j2NlhHGkVl2qEZ/rXQcRcGth8K4AXdbprQ==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.10.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.10.0]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Features": { "type": "Direct", "requested": "[4.10.0, )", "resolved": "4.10.0", "contentHash": "me9ngfonU2Kkx+uMM2IC7HLQUaC8pDnQa5LW3GRlk5mcGJ1KLWeab+2+qgr1ltScAzh41vXkkwf8RbXiWBBR1g==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.10.0]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Scripting.Common": "[4.10.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.10.0]", "Microsoft.DiaSymReader": "2.0.0", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Cryptography.ProtectedData": "8.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Text.Encodings.Web": "8.0.0", "System.Text.Json": "8.0.0", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Direct", "requested": "[4.10.0, )", "resolved": "4.10.0", "contentHash": "lSMNGNeROSbxvbgzJyQfJpLJM0BFRrSgxYs4BZuZvpL8TuyUorEYa/HCJDcclhSRhr76LGiTT5lfLu5QFoFF6A==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.10.0]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", "resolved": "2.0.3", "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.14.1", "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.3.4", "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.10.0", "contentHash": "7O4+dn0fNKykPpEB1i8/5EKzwD3fuu/shdbbnnsBmdiHMaBz6telOubDFwPwLQQ/PvOAWTFIWWTyAOmWvXRD2g==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.10.0", "contentHash": "iifqKy3KvCgPABHFbFlSxjEoE+OItZGuZ191NM/TWV750m1jMypr7BtrP65ET+OK2KNVupO8S8xCtxbNqw056A==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.10.0]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.10.0", "contentHash": "s8qbD2i3zdol8QNcrCVw9URW71DUdg1UF0XCxxIaQoYbdpcKVy2DG127560psiqLEKxAEWA/DOFwL9CY2qGq1g==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.CSharp": "[4.10.0]", "Microsoft.CodeAnalysis.Common": "[4.10.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.10.0]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Elfie": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "r12elUp4MRjdnRfxEP+xqVSUUfG3yIJTBEJGwbfvF5oU4m0jb9HC0gFG28V/dAkYGMkRmHVi3qvrnBLQSw9X3Q==", "dependencies": { "System.Configuration.ConfigurationManager": "4.5.0", "System.Data.DataSetExtensions": "4.5.0" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.10.0", "contentHash": "L+IbItJyxtLcbSxRXvdJRCGMW9IgHXZvNl5VcuFMcb49nFnhqrm79y50GOukSyBccF0WlnalbjRK/Beb2aKJbw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.10.0]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.10.0", "contentHash": "rqdpLqrACQwhr7pr21OCEpmSZthdWF7TfimCH9IUt+FCXLfpqNTkgB7qAF2ypVJTT5sc+hY1IQWeDPjSyJ3REg==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.10.0]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.10.0", "contentHash": "i0dtZ531kx7DiCBAzyrvEcYpK/tZQAJDmSKIQW3kENl5wPenOkQePvYNFZRrvOGzSgK5uZVs0Y3xW/B1ZCcQFA==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.10.0]", "Microsoft.CodeAnalysis.VisualBasic": "[4.10.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.10.0]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "2.0.0", "contentHash": "QcZrCETsBJqy/vQpFtJc+jSXQ0K5sucQ6NUFbTNVHD4vfZZOwjZ/3sBzczkC4DityhD3AVO/+K/+9ioLs1AgRA==" }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Composition": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "E9oO9olNNxA39J8CxQwf7ceIPm+j/B/PhYpyK9M4LhN/OLLRw6u5fNInkhVqaWueMB9iXxYqnwqwgz+W91loIA==", "dependencies": { "System.Composition.AttributedModel": "8.0.0", "System.Composition.Convention": "8.0.0", "System.Composition.Hosting": "8.0.0", "System.Composition.Runtime": "8.0.0", "System.Composition.TypedParts": "8.0.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "NyElSuvmBMYdn2iPG0n29i7Igu0bq99izOP3MAtEwskY3OP9jqsavvVmPn9lesVaj/KT/o/QkNjA43dOJTsDQw==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "UuVkc1B3vQU/LzEbWLMZ1aYVssv4rpShzf8wPEyrUqoGNqdYKREmB8bXR73heOMKkwS6ZnPz3PjGODT2MenukQ==", "dependencies": { "System.Composition.AttributedModel": "8.0.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "qwbONqoxlazxcbiohvb3t1JWZgKIKcRdXS5uEeLbo5wtuBupIbAvdC3PYTAeBCZrZeERvrtAbhYHuuS43Zr1bQ==", "dependencies": { "System.Composition.Runtime": "8.0.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "G+kRyB5/6+3ucRRQz+DF4uSHGqpkK8Q4ilVdbt4zvxpmvLVZNmSkyFAQpJLcbOyVF85aomJx0m+TGMDVlwx7ZQ==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "DsSklhuA+Dsgo3ZZrar8hjBFvq1wa1grrkNCTt+6SoX3vq0Vy+HXJnVXrU/nNH1BjlGH684A7h4hJQHZd/u5mA==", "dependencies": { "System.Composition.AttributedModel": "8.0.0", "System.Composition.Hosting": "8.0.0", "System.Composition.Runtime": "8.0.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==", "dependencies": { "System.Security.Cryptography.ProtectedData": "8.0.0" } }, "System.Data.DataSetExtensions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw==" }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", "dependencies": { "System.Collections.Immutable": "8.0.0", "System.Memory": "4.5.5" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==", "dependencies": { "System.Memory": "4.5.5" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Threading.Channels": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "qmeeYNROMsONF6ndEZcIQ+VxR4Q/TX/7uIVLJqtwIWL7dDWeh0l1UIqgo4wYyjG//5lUNhwkLDSFl+pAWO6oiA==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis": "[3.3.1, )", "Microsoft.CodeAnalysis.Features": "[3.3.1, )" } } } } } ================================================ FILE: Internal.Roslyn411/CodeActionInternals.cs ================================================ using System.Collections.Immutable; using System.Composition; using Microsoft.CodeAnalysis.CodeActions; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn411; [Shared] [Export(typeof(ICodeActionInternals))] internal class CodeActionInternals : ICodeActionInternals { public bool IsInlinable(CodeAction action) { Argument.NotNull(nameof(action), action); return action.IsInlinable; } public Roslyn.Internals.CodeActionPriority GetPriority(CodeAction action) { Argument.NotNull(nameof(action), action); return (Roslyn.Internals.CodeActionPriority)(int)action.Priority; } public ImmutableArray GetNestedCodeActions(CodeAction action) { Argument.NotNull(nameof(action), action); return action.NestedCodeActions; } } ================================================ FILE: Internal.Roslyn411/Internal.Roslyn411.csproj ================================================ netstandard2.0 MirrorSharp.Internal.Roslyn411 MirrorSharp.Internal.Roslyn411 false Microsoft.CodeAnalysis.Features;Microsoft.CodeAnalysis.Workspaces ================================================ FILE: Internal.Roslyn411/MirrorSharpDiagnosticAnalyzerService.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Composition; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CodeActions; using Microsoft.CodeAnalysis.Diagnostics; using Microsoft.CodeAnalysis.Options; using Microsoft.CodeAnalysis.Text; namespace MirrorSharp.Internal.Roslyn411; [Shared] [Export(typeof(IDiagnosticAnalyzerService))] internal class MirrorSharpDiagnosticAnalyzerService : IDiagnosticAnalyzerService { DiagnosticAnalyzerInfoCache IDiagnosticAnalyzerService.AnalyzerInfoCache { get; } = new(); IGlobalOptionService IDiagnosticAnalyzerService.GlobalOptions => throw new NotSupportedException(); Task IDiagnosticAnalyzerService.ForceAnalyzeProjectAsync(Project project, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetCachedDiagnosticsAsync(Workspace workspace, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics, bool includeLocalDocumentDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, ImmutableHashSet? diagnosticIds, Func? shouldIncludeAnalyzer, Func>? getDocumentIds, bool includeSuppressedDiagnostics, bool includeLocalDocumentDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForSpanAsync(TextDocument document, TextSpan? range, Func? shouldIncludeDiagnostic, bool includeCompilerDiagnostics, bool includeSuppressedDiagnostics, ICodeActionRequestPriorityProvider priorityProvider, DiagnosticKind diagnosticKind, bool isExplicit, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetProjectDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, ImmutableHashSet? diagnosticIds, Func? shouldIncludeAnalyzer, bool includeSuppressedDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); void IDiagnosticAnalyzerService.RequestDiagnosticRefresh() => throw new NotImplementedException(); } ================================================ FILE: Internal.Roslyn411/PublicAPI.Shipped.txt ================================================ #nullable enable ================================================ FILE: Internal.Roslyn411/PublicAPI.Unshipped.txt ================================================ ================================================ FILE: Internal.Roslyn411/SignatureHelpProviderWrapper.cs ================================================ using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; using SignatureHelpTriggerReason = Microsoft.CodeAnalysis.SignatureHelp.SignatureHelpTriggerReason; namespace MirrorSharp.Internal.Roslyn411; internal class SignatureHelpProviderWrapper : ISignatureHelpProviderWrapper { private readonly ISignatureHelpProvider _provider; public SignatureHelpProviderWrapper(ISignatureHelpProvider provider) { _provider = provider; } public async Task GetItemsAsync(Document document, int position, SignatureHelpTriggerInfoData triggerInfo, SignatureHelpOptionsData options, CancellationToken cancellationToken) { // This is quite complicated to implement correctly and is still shifting around. // For now we will only allow default options. There is no way to check if user // intended something different, but that can be implemented later. var mappedOptions = SignatureHelpOptions.Default; var mappedTriggerInfo = new SignatureHelpTriggerInfo( (SignatureHelpTriggerReason)(int)triggerInfo.TriggerReason, triggerInfo.TriggerCharacter ); var items = await _provider.GetItemsAsync( document, position, mappedTriggerInfo, mappedOptions, cancellationToken ).ConfigureAwait(false); if (items == null) return null; return new SignatureHelpItemsData( items.Items.Select(i => new SignatureHelpItemData( i.DocumentationFactory, prefixDisplayParts: i.PrefixDisplayParts, separatorDisplayParts: i.SeparatorDisplayParts, suffixDisplayParts: i.SuffixDisplayParts, parameters: i.Parameters.Select(p => new SignatureHelpParameterData( p.Name, p.DocumentationFactory, displayParts: p.DisplayParts, prefixDisplayParts: p.PrefixDisplayParts, suffixDisplayParts: p.SuffixDisplayParts )), i.Parameters.Length )), applicableSpan: items.ApplicableSpan, argumentIndex: items.ArgumentIndex, argumentCount: items.ArgumentCount, selectedItemIndex: items.SelectedItemIndex ); } public bool IsRetriggerCharacter(char ch) => _provider.IsRetriggerCharacter(ch); public bool IsTriggerCharacter(char ch) => _provider.IsTriggerCharacter(ch); } ================================================ FILE: Internal.Roslyn411/SignatureHelpProviderWrapperResolver.cs ================================================ using System; using System.Collections.Generic; using System.Composition; using System.Linq; using Microsoft.CodeAnalysis.Host.Mef; using Microsoft.CodeAnalysis.Shared.Utilities; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn411; [Export(typeof(ISignatureHelpProviderWrapperResolver))] internal class SignatureHelpProviderWrapperResolver : ISignatureHelpProviderWrapperResolver { private readonly IList> _allProviders; [ImportingConstructor] public SignatureHelpProviderWrapperResolver( [ImportMany] IEnumerable> allProviders ) { _allProviders = ExtensionOrderer.Order(allProviders); } public IEnumerable GetAllSlow(string languageName) { if (languageName == null) throw new ArgumentNullException(nameof(languageName)); return _allProviders .Where(l => l.Metadata.Language == languageName) .Select(l => new SignatureHelpProviderWrapper(l.Value)); } } ================================================ FILE: Internal.Roslyn411/WorkspaceAnalyzerOptionsInternals.cs ================================================ using System.Composition; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Diagnostics; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn411; [Shared] [Export(typeof(IWorkspaceAnalyzerOptionsInternals))] internal class WorkspaceAnalyzerOptionsInternals : IWorkspaceAnalyzerOptionsInternals { public AnalyzerOptions New(AnalyzerOptions options, Project project) { Argument.NotNull(nameof(options), options); Argument.NotNull(nameof(project), project); return new WorkspaceAnalyzerOptions( options, IdeAnalyzerOptions.GetDefault(project.Services) ); } } ================================================ FILE: Internal.Roslyn411/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETStandard,Version=v2.0": { "IgnoresAccessChecksToGenerator": { "type": "Direct", "requested": "[0.5.0, )", "resolved": "0.5.0", "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.11.0, )", "resolved": "4.11.0", "contentHash": "liYhSvQO+cFgshRdrL1CVXwrTd7oP5PnYyE6hfwosv9zmnxszFIgI3ysWG9wXt3iLL1mvdWhtciuiQqZAgTbZQ==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.11.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.11.0]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Features": { "type": "Direct", "requested": "[4.11.0, )", "resolved": "4.11.0", "contentHash": "9NHLy1xke8/HvxupBJlvZB0PT8TYQA1jp7SlwO9I8a3L3pt/FUsziR6ePCe7W0T5A10j/C4WmS+GQJytuCgU4g==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.11.0]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Scripting.Common": "[4.11.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.11.0]", "Microsoft.DiaSymReader": "2.0.0", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Cryptography.ProtectedData": "8.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Text.Encodings.Web": "8.0.0", "System.Text.Json": "8.0.0", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Direct", "requested": "[4.11.0, )", "resolved": "4.11.0", "contentHash": "UtwEt42V7/LnvAcschSlmUXRLEj0poX1H7QeFbY5bezcS+tJBCssAq8C7GfisgIA0qZPo2xzOrwKGBbg51CetA==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.11.0]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", "resolved": "2.0.3", "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.14.1", "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.3.4", "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.11.0", "contentHash": "djf8ujmqYImFgB04UGtcsEhHrzVqzHowS+EEl/Yunc5LdrYrZhGBWUTXoCF0NzYXJxtfuD+UVQarWpvrNc94Qg==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.11.0", "contentHash": "6XYi2EusI8JT4y2l/F3VVVS+ISoIX9nqHsZRaG6W5aFeJ5BEuBosHfT/ABb73FN0RZ1Z3cj2j7cL28SToJPXOw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.11.0]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.11.0", "contentHash": "/oRJPIMvzOfiunIegSF6FEa4VvBAUSXlbLDKxyzXuOZN9nLHg3fHuX6Mr9JZLNIupbe2xqQZEmfsPxgB01vCmg==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.CSharp": "[4.11.0]", "Microsoft.CodeAnalysis.Common": "[4.11.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.11.0]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Elfie": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "r12elUp4MRjdnRfxEP+xqVSUUfG3yIJTBEJGwbfvF5oU4m0jb9HC0gFG28V/dAkYGMkRmHVi3qvrnBLQSw9X3Q==", "dependencies": { "System.Configuration.ConfigurationManager": "4.5.0", "System.Data.DataSetExtensions": "4.5.0" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.11.0", "contentHash": "UHZIAKQcLB00N7AvMoyEYLw8qvFmGcKffEm/M2dEqYz2TWUtQW2j0+nGglbt9VwOId6TrDZGQlGjX90VNFak/w==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.11.0]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.11.0", "contentHash": "1ypssIzZvsDtzyN8tFqZdKS8cl7MAQQ6eBjHGCJ9paLNlmnBd2kCo1GRr8kO0yWaFN/Io2JXaTeeHRDZLiKKyw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.11.0]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.11.0", "contentHash": "mXpuVE6TW+YbXbErkNFCy0iH5OY3HOva+CUpGxOJcLXol9/vevigR1FtC9lOl7fFB55r+T+lG/WAXd5nLsiDGg==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.11.0]", "Microsoft.CodeAnalysis.VisualBasic": "[4.11.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.11.0]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "2.0.0", "contentHash": "QcZrCETsBJqy/vQpFtJc+jSXQ0K5sucQ6NUFbTNVHD4vfZZOwjZ/3sBzczkC4DityhD3AVO/+K/+9ioLs1AgRA==" }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Composition": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "E9oO9olNNxA39J8CxQwf7ceIPm+j/B/PhYpyK9M4LhN/OLLRw6u5fNInkhVqaWueMB9iXxYqnwqwgz+W91loIA==", "dependencies": { "System.Composition.AttributedModel": "8.0.0", "System.Composition.Convention": "8.0.0", "System.Composition.Hosting": "8.0.0", "System.Composition.Runtime": "8.0.0", "System.Composition.TypedParts": "8.0.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "NyElSuvmBMYdn2iPG0n29i7Igu0bq99izOP3MAtEwskY3OP9jqsavvVmPn9lesVaj/KT/o/QkNjA43dOJTsDQw==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "UuVkc1B3vQU/LzEbWLMZ1aYVssv4rpShzf8wPEyrUqoGNqdYKREmB8bXR73heOMKkwS6ZnPz3PjGODT2MenukQ==", "dependencies": { "System.Composition.AttributedModel": "8.0.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "qwbONqoxlazxcbiohvb3t1JWZgKIKcRdXS5uEeLbo5wtuBupIbAvdC3PYTAeBCZrZeERvrtAbhYHuuS43Zr1bQ==", "dependencies": { "System.Composition.Runtime": "8.0.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "G+kRyB5/6+3ucRRQz+DF4uSHGqpkK8Q4ilVdbt4zvxpmvLVZNmSkyFAQpJLcbOyVF85aomJx0m+TGMDVlwx7ZQ==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "DsSklhuA+Dsgo3ZZrar8hjBFvq1wa1grrkNCTt+6SoX3vq0Vy+HXJnVXrU/nNH1BjlGH684A7h4hJQHZd/u5mA==", "dependencies": { "System.Composition.AttributedModel": "8.0.0", "System.Composition.Hosting": "8.0.0", "System.Composition.Runtime": "8.0.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==", "dependencies": { "System.Security.Cryptography.ProtectedData": "8.0.0" } }, "System.Data.DataSetExtensions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw==" }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", "dependencies": { "System.Collections.Immutable": "8.0.0", "System.Memory": "4.5.5" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==", "dependencies": { "System.Memory": "4.5.5" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Threading.Channels": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "qmeeYNROMsONF6ndEZcIQ+VxR4Q/TX/7uIVLJqtwIWL7dDWeh0l1UIqgo4wYyjG//5lUNhwkLDSFl+pAWO6oiA==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis": "[3.3.1, )", "Microsoft.CodeAnalysis.Features": "[3.3.1, )" } } } } } ================================================ FILE: Internal.Roslyn412/CodeActionInternals.cs ================================================ using System.Collections.Immutable; using System.Composition; using Microsoft.CodeAnalysis.CodeActions; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn412; [Shared] [Export(typeof(ICodeActionInternals))] internal class CodeActionInternals : ICodeActionInternals { public bool IsInlinable(CodeAction action) { Argument.NotNull(nameof(action), action); return action.IsInlinable; } public Roslyn.Internals.CodeActionPriority GetPriority(CodeAction action) { Argument.NotNull(nameof(action), action); return (Roslyn.Internals.CodeActionPriority)(int)action.Priority; } public ImmutableArray GetNestedCodeActions(CodeAction action) { Argument.NotNull(nameof(action), action); return action.NestedCodeActions; } } ================================================ FILE: Internal.Roslyn412/Internal.Roslyn412.csproj ================================================ netstandard2.0 MirrorSharp.Internal.Roslyn412 MirrorSharp.Internal.Roslyn412 false Microsoft.CodeAnalysis.Features;Microsoft.CodeAnalysis.Workspaces ================================================ FILE: Internal.Roslyn412/MirrorSharpDiagnosticAnalyzerService.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Composition; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CodeActions; using Microsoft.CodeAnalysis.Diagnostics; using Microsoft.CodeAnalysis.Options; using Microsoft.CodeAnalysis.Text; namespace MirrorSharp.Internal.Roslyn412; [Shared] [Export(typeof(IDiagnosticAnalyzerService))] internal class MirrorSharpDiagnosticAnalyzerService : IDiagnosticAnalyzerService { DiagnosticAnalyzerInfoCache IDiagnosticAnalyzerService.AnalyzerInfoCache { get; } = new(); IGlobalOptionService IDiagnosticAnalyzerService.GlobalOptions => throw new NotSupportedException(); Task IDiagnosticAnalyzerService.ForceAnalyzeProjectAsync(Project project, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetCachedDiagnosticsAsync(Workspace workspace, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics, bool includeLocalDocumentDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, ImmutableHashSet? diagnosticIds, Func? shouldIncludeAnalyzer, Func>? getDocumentIds, bool includeSuppressedDiagnostics, bool includeLocalDocumentDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForSpanAsync(TextDocument document, TextSpan? range, Func? shouldIncludeDiagnostic, bool includeCompilerDiagnostics, bool includeSuppressedDiagnostics, ICodeActionRequestPriorityProvider priorityProvider, DiagnosticKind diagnosticKind, bool isExplicit, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetProjectDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, ImmutableHashSet? diagnosticIds, Func? shouldIncludeAnalyzer, bool includeSuppressedDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); void IDiagnosticAnalyzerService.RequestDiagnosticRefresh() => throw new NotImplementedException(); } ================================================ FILE: Internal.Roslyn412/PublicAPI.Shipped.txt ================================================ #nullable enable ================================================ FILE: Internal.Roslyn412/PublicAPI.Unshipped.txt ================================================ ================================================ FILE: Internal.Roslyn412/SignatureHelpProviderWrapper.cs ================================================ using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; using SignatureHelpTriggerReason = Microsoft.CodeAnalysis.SignatureHelp.SignatureHelpTriggerReason; namespace MirrorSharp.Internal.Roslyn412; internal class SignatureHelpProviderWrapper : ISignatureHelpProviderWrapper { private readonly ISignatureHelpProvider _provider; public SignatureHelpProviderWrapper(ISignatureHelpProvider provider) { _provider = provider; } public async Task GetItemsAsync(Document document, int position, SignatureHelpTriggerInfoData triggerInfo, SignatureHelpOptionsData options, CancellationToken cancellationToken) { // This is quite complicated to implement correctly and is still shifting around. // For now we will only allow default options. There is no way to check if user // intended something different, but that can be implemented later. var mappedOptions = MemberDisplayOptions.Default; var mappedTriggerInfo = new SignatureHelpTriggerInfo( (SignatureHelpTriggerReason)(int)triggerInfo.TriggerReason, triggerInfo.TriggerCharacter ); var items = await _provider.GetItemsAsync( document, position, mappedTriggerInfo, mappedOptions, cancellationToken ).ConfigureAwait(false); if (items == null) return null; return new SignatureHelpItemsData( items.Items.Select(i => new SignatureHelpItemData( i.DocumentationFactory, prefixDisplayParts: i.PrefixDisplayParts, separatorDisplayParts: i.SeparatorDisplayParts, suffixDisplayParts: i.SuffixDisplayParts, parameters: i.Parameters.Select(p => new SignatureHelpParameterData( p.Name, p.DocumentationFactory, displayParts: p.DisplayParts, prefixDisplayParts: p.PrefixDisplayParts, suffixDisplayParts: p.SuffixDisplayParts )), i.Parameters.Length )), applicableSpan: items.ApplicableSpan, argumentIndex: items.SemanticParameterIndex, argumentCount: items.SyntacticArgumentCount, selectedItemIndex: items.SelectedItemIndex ); } public bool IsRetriggerCharacter(char ch) => _provider.IsRetriggerCharacter(ch); public bool IsTriggerCharacter(char ch) => _provider.IsTriggerCharacter(ch); } ================================================ FILE: Internal.Roslyn412/SignatureHelpProviderWrapperResolver.cs ================================================ using System; using System.Collections.Generic; using System.Composition; using System.Linq; using Microsoft.CodeAnalysis.Host.Mef; using Microsoft.CodeAnalysis.Shared.Utilities; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn412; [Export(typeof(ISignatureHelpProviderWrapperResolver))] internal class SignatureHelpProviderWrapperResolver : ISignatureHelpProviderWrapperResolver { private readonly IList> _allProviders; [ImportingConstructor] public SignatureHelpProviderWrapperResolver( [ImportMany] IEnumerable> allProviders ) { _allProviders = ExtensionOrderer.Order(allProviders); } public IEnumerable GetAllSlow(string languageName) { if (languageName == null) throw new ArgumentNullException(nameof(languageName)); return _allProviders .Where(l => l.Metadata.Language == languageName) .Select(l => new SignatureHelpProviderWrapper(l.Value)); } } ================================================ FILE: Internal.Roslyn412/WorkspaceAnalyzerOptionsInternals.cs ================================================ using System.Composition; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Diagnostics; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn412; [Shared] [Export(typeof(IWorkspaceAnalyzerOptionsInternals))] internal class WorkspaceAnalyzerOptionsInternals : IWorkspaceAnalyzerOptionsInternals { public AnalyzerOptions New(AnalyzerOptions options, Project project) { Argument.NotNull(nameof(options), options); Argument.NotNull(nameof(project), project); return options; } } ================================================ FILE: Internal.Roslyn412/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETStandard,Version=v2.0": { "IgnoresAccessChecksToGenerator": { "type": "Direct", "requested": "[0.5.0, )", "resolved": "0.5.0", "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.12.0-3.final, )", "resolved": "4.12.0-3.final", "contentHash": "D24ZMvgrLVTeiRucIxlwwIcnpEutFGjwcQxyWnNsFGoVON0GCiOo/g9NaIbZ5vaWJmSk36AfjBrKQzBL9EohTA==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.12.0-3.final]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.12.0-3.final]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Features": { "type": "Direct", "requested": "[4.12.0-3.final, )", "resolved": "4.12.0-3.final", "contentHash": "Xd89ReSSnTtr4vwyFXuqqxz23cpENTBB7x2tsVicqpgOYWmVTjDaAT1jAPlQtnrs2eQu6TKiN65jkm+lrju1mw==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.12.0-3.final]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Scripting.Common": "[4.12.0-3.final]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.12.0-3.final]", "Microsoft.DiaSymReader": "2.0.0", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Cryptography.ProtectedData": "8.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Text.Encodings.Web": "8.0.0", "System.Text.Json": "8.0.4", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Direct", "requested": "[4.12.0-3.final, )", "resolved": "4.12.0-3.final", "contentHash": "cwLQzgpZwS0UhLjtZkUjS3pUd1lA4+QjV3Y+a7KIlS+wEOG5CSHZ7hryT5NKhANZRO/wwn3JfdNmugtU0BN7Lg==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.12.0-3.final]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", "resolved": "2.0.3", "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.14.1", "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.3.4", "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.12.0-3.final", "contentHash": "xpjs0UznfwHfX61x8RbYbNUrT4kWxzRMRFYXDmghN6G9HUISuZpyHlVfPMDrV3JFXF7JouJ8duZeNITCL9xtfQ==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.12.0-3.final", "contentHash": "YcUotVF8uosfY5r0b39AwYcynUQkUeBA8RjHqITGWpsM3Uvi1kbqUR9MIcP6c5yuyd6j5oJ/e4LQDBd501lBKQ==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.12.0-3.final]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.12.0-3.final", "contentHash": "FVib+H77xYzFukSRUJqAWSXM5bMT2Dmb13DYXi3rt1Fiy69sFLmgQz+H053OS8GCYrwUDBJzcCIvSOvTw7Fiig==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.CSharp": "[4.12.0-3.final]", "Microsoft.CodeAnalysis.Common": "[4.12.0-3.final]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.12.0-3.final]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Elfie": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "r12elUp4MRjdnRfxEP+xqVSUUfG3yIJTBEJGwbfvF5oU4m0jb9HC0gFG28V/dAkYGMkRmHVi3qvrnBLQSw9X3Q==", "dependencies": { "System.Configuration.ConfigurationManager": "4.5.0", "System.Data.DataSetExtensions": "4.5.0" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.12.0-3.final", "contentHash": "yebyD/PXONXgnTmfVMIp0COubkihCu2IMHUKg6h5kPF0f8/b2GibLNIXa9muW5UsJ2W81ZG12XaPJzWYtA+WGA==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.12.0-3.final]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.12.0-3.final", "contentHash": "2nGya6EPgETQJa6duoCXIhqnSFgU64vHzUYsDFAGjcoS9q06UVNekc/Ii7z1YsCZceJa15L2M1IRPbdgk8UZyw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.12.0-3.final]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.12.0-3.final", "contentHash": "cj6UNGqI3dbYXDPBjw/cfVyP8RI8OTjJlPZ2+zGLNX89UVEA4xhy89veg428lw5cVYHYI3No4p5Z1cVJmO5c3A==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.12.0-3.final]", "Microsoft.CodeAnalysis.VisualBasic": "[4.12.0-3.final]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.12.0-3.final]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "2.0.0", "contentHash": "QcZrCETsBJqy/vQpFtJc+jSXQ0K5sucQ6NUFbTNVHD4vfZZOwjZ/3sBzczkC4DityhD3AVO/+K/+9ioLs1AgRA==" }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Composition": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "E9oO9olNNxA39J8CxQwf7ceIPm+j/B/PhYpyK9M4LhN/OLLRw6u5fNInkhVqaWueMB9iXxYqnwqwgz+W91loIA==", "dependencies": { "System.Composition.AttributedModel": "8.0.0", "System.Composition.Convention": "8.0.0", "System.Composition.Hosting": "8.0.0", "System.Composition.Runtime": "8.0.0", "System.Composition.TypedParts": "8.0.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "NyElSuvmBMYdn2iPG0n29i7Igu0bq99izOP3MAtEwskY3OP9jqsavvVmPn9lesVaj/KT/o/QkNjA43dOJTsDQw==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "UuVkc1B3vQU/LzEbWLMZ1aYVssv4rpShzf8wPEyrUqoGNqdYKREmB8bXR73heOMKkwS6ZnPz3PjGODT2MenukQ==", "dependencies": { "System.Composition.AttributedModel": "8.0.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "qwbONqoxlazxcbiohvb3t1JWZgKIKcRdXS5uEeLbo5wtuBupIbAvdC3PYTAeBCZrZeERvrtAbhYHuuS43Zr1bQ==", "dependencies": { "System.Composition.Runtime": "8.0.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "G+kRyB5/6+3ucRRQz+DF4uSHGqpkK8Q4ilVdbt4zvxpmvLVZNmSkyFAQpJLcbOyVF85aomJx0m+TGMDVlwx7ZQ==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "DsSklhuA+Dsgo3ZZrar8hjBFvq1wa1grrkNCTt+6SoX3vq0Vy+HXJnVXrU/nNH1BjlGH684A7h4hJQHZd/u5mA==", "dependencies": { "System.Composition.AttributedModel": "8.0.0", "System.Composition.Hosting": "8.0.0", "System.Composition.Runtime": "8.0.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==", "dependencies": { "System.Security.Cryptography.ProtectedData": "8.0.0" } }, "System.Data.DataSetExtensions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw==" }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", "dependencies": { "System.Collections.Immutable": "8.0.0", "System.Memory": "4.5.5" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==", "dependencies": { "System.Memory": "4.5.5" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Threading.Channels": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "qmeeYNROMsONF6ndEZcIQ+VxR4Q/TX/7uIVLJqtwIWL7dDWeh0l1UIqgo4wYyjG//5lUNhwkLDSFl+pAWO6oiA==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis": "[3.3.1, )", "Microsoft.CodeAnalysis.Features": "[3.3.1, )" } } } } } ================================================ FILE: Internal.Roslyn42/CodeActionInternals.cs ================================================ using System.Collections.Immutable; using System.Composition; using Microsoft.CodeAnalysis.CodeActions; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn42 { [Shared] [Export(typeof(ICodeActionInternals))] internal class CodeActionInternals : ICodeActionInternals { public bool IsInlinable(CodeAction action) { Argument.NotNull(nameof(action), action); return action.IsInlinable; } public Roslyn.Internals.CodeActionPriority GetPriority(CodeAction action) { Argument.NotNull(nameof(action), action); return (Roslyn.Internals.CodeActionPriority)(int)action.Priority; } public ImmutableArray GetNestedCodeActions(CodeAction action) { Argument.NotNull(nameof(action), action); return action.NestedCodeActions; } } } ================================================ FILE: Internal.Roslyn42/Internal.Roslyn42.csproj ================================================ netstandard2.0 MirrorSharp.Internal.Roslyn42 MirrorSharp.Internal.Roslyn42 false Microsoft.CodeAnalysis.Features;Microsoft.CodeAnalysis.Workspaces ================================================ FILE: Internal.Roslyn42/MirrorSharpDiagnosticAnalyzerService.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Composition; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CodeActions; using Microsoft.CodeAnalysis.Diagnostics; using Microsoft.CodeAnalysis.Options; using Microsoft.CodeAnalysis.PooledObjects; using Microsoft.CodeAnalysis.Text; namespace MirrorSharp.Internal.Roslyn42 { [Shared] [Export(typeof(IDiagnosticAnalyzerService))] internal class MirrorSharpDiagnosticAnalyzerService : IDiagnosticAnalyzerService { public DiagnosticAnalyzerInfoCache AnalyzerInfoCache { get; } = new(); IGlobalOptionService IDiagnosticAnalyzerService.GlobalOptions => throw new NotSupportedException(); bool IDiagnosticAnalyzerService.ContainsDiagnostics(Workspace workspace, ProjectId projectId) => throw new NotSupportedException(); Task IDiagnosticAnalyzerService.ForceAnalyzeAsync(Solution solution, Action onProjectAnalyzed, ProjectId? projectId, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetCachedDiagnosticsAsync(Workspace workspace, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, ImmutableHashSet? diagnosticIds, bool includeSuppressedDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForSpanAsync(Document document, TextSpan? range, Func? shouldIncludeDiagnostic, bool includeSuppressedDiagnostics, CodeActionRequestPriority priority, Func? addOperationScope, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetProjectDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, ImmutableHashSet? diagnosticIds, bool includeSuppressedDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetSpecificCachedDiagnosticsAsync(Workspace workspace, object id, bool includeSuppressedDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); void IDiagnosticAnalyzerService.Reanalyze(Workspace workspace, IEnumerable? projectIds, IEnumerable? documentIds, bool highPriority) => throw new NotSupportedException(); Task IDiagnosticAnalyzerService.TryAppendDiagnosticsForSpanAsync(Document document, TextSpan range, ArrayBuilder diagnostics, bool includeSuppressedDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); } } ================================================ FILE: Internal.Roslyn42/PublicAPI.Shipped.txt ================================================ #nullable enable ================================================ FILE: Internal.Roslyn42/PublicAPI.Unshipped.txt ================================================ ================================================ FILE: Internal.Roslyn42/SignatureHelpProviderWrapper.cs ================================================ using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; using SignatureHelpTriggerReason = Microsoft.CodeAnalysis.SignatureHelp.SignatureHelpTriggerReason; namespace MirrorSharp.Internal.Roslyn42 { internal class SignatureHelpProviderWrapper : ISignatureHelpProviderWrapper { private readonly ISignatureHelpProvider _provider; public SignatureHelpProviderWrapper(ISignatureHelpProvider provider) { _provider = provider; } public async Task GetItemsAsync(Document document, int position, SignatureHelpTriggerInfoData triggerInfo, SignatureHelpOptionsData options, CancellationToken cancellationToken) { // This is quite complicated to implement correctly and is still shifting around. // For now we will only allow default options. There is no way to check if user // intended something different, but that can be implemented later. var mappedOptions = SignatureHelpOptions.Default; var mappedTriggerInfo = new SignatureHelpTriggerInfo( (SignatureHelpTriggerReason)(int)triggerInfo.TriggerReason, triggerInfo.TriggerCharacter ); var items = await _provider.GetItemsAsync( document, position, mappedTriggerInfo, mappedOptions, cancellationToken ).ConfigureAwait(false); if (items == null) return null; return new SignatureHelpItemsData( items.Items.Select(i => new SignatureHelpItemData( i.DocumentationFactory, prefixDisplayParts: i.PrefixDisplayParts, separatorDisplayParts: i.SeparatorDisplayParts, suffixDisplayParts: i.SuffixDisplayParts, parameters: i.Parameters.Select(p => new SignatureHelpParameterData( p.Name, p.DocumentationFactory, displayParts: p.DisplayParts, prefixDisplayParts: p.PrefixDisplayParts, suffixDisplayParts: p.SuffixDisplayParts )), i.Parameters.Length )), applicableSpan: items.ApplicableSpan, argumentIndex: items.ArgumentIndex, argumentCount: items.ArgumentCount, selectedItemIndex: items.SelectedItemIndex ); } public bool IsRetriggerCharacter(char ch) => _provider.IsRetriggerCharacter(ch); public bool IsTriggerCharacter(char ch) => _provider.IsTriggerCharacter(ch); } } ================================================ FILE: Internal.Roslyn42/SignatureHelpProviderWrapperResolver.cs ================================================ using System; using System.Collections.Generic; using System.Composition; using System.Linq; using Microsoft.CodeAnalysis.Host.Mef; using Microsoft.CodeAnalysis.Shared.Utilities; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn42 { [Export(typeof(ISignatureHelpProviderWrapperResolver))] internal class SignatureHelpProviderWrapperResolver : ISignatureHelpProviderWrapperResolver { private readonly IList> _allProviders; [ImportingConstructor] public SignatureHelpProviderWrapperResolver( [ImportMany] IEnumerable> allProviders ) { _allProviders = ExtensionOrderer.Order(allProviders); } public IEnumerable GetAllSlow(string languageName) { if (languageName == null) throw new ArgumentNullException(nameof(languageName)); return _allProviders .Where(l => l.Metadata.Language == languageName) .Select(l => new SignatureHelpProviderWrapper(l.Value)); } } } ================================================ FILE: Internal.Roslyn42/WorkspaceAnalyzerOptionsInternals.cs ================================================ using System.Composition; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Diagnostics; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn42 { [Shared] [Export(typeof(IWorkspaceAnalyzerOptionsInternals))] internal class WorkspaceAnalyzerOptionsInternals : IWorkspaceAnalyzerOptionsInternals { public AnalyzerOptions New(AnalyzerOptions options, Project project) { Argument.NotNull(nameof(options), options); Argument.NotNull(nameof(project), project); return new WorkspaceAnalyzerOptions(options, project.Solution, IdeAnalyzerOptions.Default); } } } ================================================ FILE: Internal.Roslyn42/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETStandard,Version=v2.0": { "IgnoresAccessChecksToGenerator": { "type": "Direct", "requested": "[0.5.0, )", "resolved": "0.5.0", "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.2.0, )", "resolved": "4.2.0", "contentHash": "8Rejln3I5zLRdd+y0XN16QsBjtBmOwPyH0prV45LxAmDrJl21oJQn9+8wflMTKW07mGIhsMv8Gz0RYEGHKLdZg==", "dependencies": { "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.2.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.2.0]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Direct", "requested": "[4.2.0, )", "resolved": "4.2.0", "contentHash": "nqkbzGhvwKyU6sT+H06dYDSXWRXFCQeXqnyP8qN91fXMDUD0bH3FV/mkIvsayWFS3vqgGR9U0h7fwNZ/GdXoSw==", "dependencies": { "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Common": "[4.2.0]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Scripting.Common": "[4.2.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.2.0]", "Microsoft.DiaSymReader": "1.4.0", "Microsoft.VisualStudio.RemoteControl": "16.3.44", "System.Text.Json": "6.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Direct", "requested": "[4.2.0, )", "resolved": "4.2.0", "contentHash": "g4lcikPjFtG7c4DPKVqeVSOqGVTqzkMn2s+ORjuuYNOnZQu8p4lbYLMbzrBv/h+n9AfEiHqNIywA0yMTvHAqYw==", "dependencies": { "Humanizer.Core": "2.2.0", "Microsoft.Bcl.AsyncInterfaces": "6.0.0", "Microsoft.CodeAnalysis.Common": "[4.2.0]", "System.Composition": "6.0.0", "System.IO.Pipelines": "6.0.1" } }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", "resolved": "2.0.3", "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.2.0", "contentHash": "rsYXB7+iUPP8AHgQ8JP2UZI2xK2KhjcdGr9E6zX3CsZaTLCaw8M35vaAJRo1rfxeaZEVMuXeaquLVCkZ7JcZ5Q==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.3.3", "contentHash": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.2.0", "contentHash": "lbusGcuE7D8FtZawQ4G++UFsRQArPzZN1GGXjPQwu3gvCbw7FXDcBq1zDZrZN1vRzPTVe1qyZMvfGhVUzs1TDg==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.3", "System.Collections.Immutable": "5.0.0", "System.Memory": "4.5.4", "System.Reflection.Metadata": "5.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "6.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.2.0", "contentHash": "5IDwr8zGNBmDpxtzxxZj9IHwoA6HJ1/WWT/JacqPQJ4Vz/oZXaHNlzcBPVCZRGWUw+QvVdAhCKwEyJyuAuH/wg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.2.0]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.2.0", "contentHash": "tnrfcePE6cEybYeV3MNxZPs87ZtllKYnP9ODglJlJy5hQk4r/1OFUwCTeKtofckoSogfDHS7keU0KtwgnNGIDg==", "dependencies": { "Humanizer.Core": "2.2.0", "Microsoft.CodeAnalysis.CSharp": "[4.2.0]", "Microsoft.CodeAnalysis.Common": "[4.2.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.2.0]" } }, "Microsoft.CodeAnalysis.Elfie": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "r12elUp4MRjdnRfxEP+xqVSUUfG3yIJTBEJGwbfvF5oU4m0jb9HC0gFG28V/dAkYGMkRmHVi3qvrnBLQSw9X3Q==", "dependencies": { "System.Configuration.ConfigurationManager": "4.5.0", "System.Data.DataSetExtensions": "4.5.0" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.2.0", "contentHash": "j+zntafxJJyTHnrvZ7xdq4if3XoK2z8xYFTUzuEf4n0++YzTlvaOfuHHQ/nktC/HNzOsZQyzCOHhAlj2ERhgLA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.2.0]" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.2.0", "contentHash": "4XDOCHV0yxsbJZ4T++0sp9nmY76gUBi0o5YEkrA/VW/ab1ijAPCD4U0EGyn3fi9bZo4PUK/I6qKO1WEbESGobA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.2.0]" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.2.0", "contentHash": "iDgn0+FkUo6P39Nhd1mPub9iAICWD+fLEYCKUjcXfwM1GtzJNf5DDROHc6b48gJ/HlOh9KaokowmzUYZJErFWw==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.2.0]", "Microsoft.CodeAnalysis.VisualBasic": "[4.2.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.2.0]" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.4.0", "contentHash": "iLtWq5/W5ePzSraavAFeXAbasE6REDByizTz6M8yQO3e4jf+6pRqPLdNCSvnSfKRVqsF7y/lTVWhqlf89ttweg==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" }, "Microsoft.VisualStudio.RemoteControl": { "type": "Transitive", "resolved": "16.3.44", "contentHash": "hbc2FxReEyotRXM1dtQSZxt2ccNMBgPbcX6MylKp9UDbHsTPJ0dk5CEuZAqoqOFKUzFtorZL6A7BcRAjP9HU1g==", "dependencies": { "Microsoft.VisualStudio.Utilities.Internal": "16.3.36", "System.Configuration.ConfigurationManager": "4.5.0", "System.IO.FileSystem.AccessControl": "4.5.0" } }, "Microsoft.VisualStudio.Utilities.Internal": { "type": "Transitive", "resolved": "16.3.36", "contentHash": "tVOE9DJbd4PETSgBW+9448jvRdhm/hNHJFaGyCq6Gtlg+ElELBmfMFxgp2rsrqzUkLjehwnrw6uX4Yj9krOfJQ==", "dependencies": { "Microsoft.Win32.Registry": "4.5.0" } }, "Microsoft.Win32.Registry": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "+FWlwd//+Tt56316p00hVePBCouXyEzT86Jb3+AuRotTND0IYn0OO3obs1gnQEs/txEnt+rF2JBGLItTG+Be6A==", "dependencies": { "System.Buffers": "4.4.0", "System.Memory": "4.5.0", "System.Security.AccessControl": "4.5.0", "System.Security.Principal.Windows": "4.5.0" } }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "FXkLXiK0sVVewcso0imKQoOxjoPAj42R8HtjjbSjVPAzwDfzoyoznWxgA3c38LDbN9SJux1xXoXYAhz98j7r2g==", "dependencies": { "System.Memory": "4.5.4" } }, "System.Composition": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "d7wMuKQtfsxUa7S13tITC8n1cQzewuhD5iDjZtK2prwFfKVzdYtgrTHgjaV03Zq7feGQ5gkP85tJJntXwInsJA==", "dependencies": { "System.Composition.AttributedModel": "6.0.0", "System.Composition.Convention": "6.0.0", "System.Composition.Hosting": "6.0.0", "System.Composition.Runtime": "6.0.0", "System.Composition.TypedParts": "6.0.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "WK1nSDLByK/4VoC7fkNiFuTVEiperuCN/Hyn+VN30R+W2ijO1d0Z2Qm0ScEl9xkSn1G2MyapJi8xpf4R8WRa/w==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "XYi4lPRdu5bM4JVJ3/UIHAiG6V6lWWUlkhB9ab4IOq0FrRsp0F4wTyV4Dj+Ds+efoXJ3qbLqlvaUozDO7OLeXA==", "dependencies": { "System.Composition.AttributedModel": "6.0.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "w/wXjj7kvxuHPLdzZ0PAUt++qJl03t7lENmb2Oev0n3zbxyNULbWBlnd5J5WUMMv15kg5o+/TCZFb6lSwfaUUQ==", "dependencies": { "System.Composition.Runtime": "6.0.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "qkRH/YBaMPTnzxrS5RDk1juvqed4A6HOD/CwRcDGyPpYps1J27waBddiiq1y93jk2ZZ9wuA/kynM+NO0kb3PKg==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "iUR1eHrL8Cwd82neQCJ00MpwNIBs4NZgXzrPqx8NJf/k4+mwBO0XCRmHYJT4OLSwDDqh5nBLJWkz5cROnrGhRA==", "dependencies": { "System.Composition.AttributedModel": "6.0.0", "System.Composition.Hosting": "6.0.0", "System.Composition.Runtime": "6.0.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "UIFvaFfuKhLr9u5tWMxmVoDPkFeD+Qv8gUuap4aZgVGYSYMdERck4OhLN/2gulAc0nYTEigWXSJNNWshrmxnng==", "dependencies": { "System.Security.Cryptography.ProtectedData": "4.5.0", "System.Security.Permissions": "4.5.0" } }, "System.Data.DataSetExtensions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw==" }, "System.IO.FileSystem.AccessControl": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "TYe6xstoqT5MlTly0OtPU6u9zWuNScLVMEx6sTCjjx+Hqdp0wCXoG6fnzMpTPMQACXQzi9pd2N5Tloow+5jQdQ==", "dependencies": { "System.Security.AccessControl": "4.5.0", "System.Security.Principal.Windows": "4.5.0" } }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==" }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ==", "dependencies": { "System.Collections.Immutable": "5.0.0" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "vW8Eoq0TMyz5vAG/6ce483x/CP83fgm4SJe5P8Tb1tZaobcvPrbMEL7rhH1DRdrYbbb6F0vq3OlzmK0Pkwks5A==", "dependencies": { "System.Security.Principal.Windows": "4.5.0" } }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q==", "dependencies": { "System.Memory": "4.5.0" } }, "System.Security.Permissions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "9gdyuARhUR7H+p5CjyUB/zPk7/Xut3wUSP8NJQB6iZr8L3XUXTMdoLeVAg9N4rqF8oIpE7MpdqHdDHQ7XgJe0g==", "dependencies": { "System.Security.AccessControl": "4.5.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "U77HfRXlZlOeIXd//Yoj6Jnk8AXlbeisf1oq1os+hxOGVnuG+lGSfGqTwTZBoORFF6j/0q7HXIl8cqwQ9aUGqQ==" }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", "dependencies": { "System.Memory": "4.5.4", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis": "[3.3.1, )", "Microsoft.CodeAnalysis.Features": "[3.3.1, )" } } } } } ================================================ FILE: Internal.Roslyn43/CodeActionInternals.cs ================================================ using System.Collections.Immutable; using System.Composition; using Microsoft.CodeAnalysis.CodeActions; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn43 { [Shared] [Export(typeof(ICodeActionInternals))] internal class CodeActionInternals : ICodeActionInternals { public bool IsInlinable(CodeAction action) { Argument.NotNull(nameof(action), action); return action.IsInlinable; } public Roslyn.Internals.CodeActionPriority GetPriority(CodeAction action) { Argument.NotNull(nameof(action), action); return (Roslyn.Internals.CodeActionPriority)(int)action.Priority; } public ImmutableArray GetNestedCodeActions(CodeAction action) { Argument.NotNull(nameof(action), action); return action.NestedCodeActions; } } } ================================================ FILE: Internal.Roslyn43/Internal.Roslyn43.csproj ================================================ netstandard2.0 MirrorSharp.Internal.Roslyn43 MirrorSharp.Internal.Roslyn43 false Microsoft.CodeAnalysis.Features;Microsoft.CodeAnalysis.Workspaces ================================================ FILE: Internal.Roslyn43/MirrorSharpDiagnosticAnalyzerService.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Composition; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CodeActions; using Microsoft.CodeAnalysis.Diagnostics; using Microsoft.CodeAnalysis.Options; using Microsoft.CodeAnalysis.Text; namespace MirrorSharp.Internal.Roslyn43 { [Shared] [Export(typeof(IDiagnosticAnalyzerService))] internal class MirrorSharpDiagnosticAnalyzerService : IDiagnosticAnalyzerService { DiagnosticAnalyzerInfoCache IDiagnosticAnalyzerService.AnalyzerInfoCache { get; } = new(); IGlobalOptionService IDiagnosticAnalyzerService.GlobalOptions => throw new NotSupportedException(); bool IDiagnosticAnalyzerService.ContainsDiagnostics(Workspace workspace, ProjectId projectId) => throw new NotSupportedException(); Task IDiagnosticAnalyzerService.ForceAnalyzeAsync(Solution solution, Action onProjectAnalyzed, ProjectId? projectId, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetCachedDiagnosticsAsync(Workspace workspace, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, ImmutableHashSet? diagnosticIds, bool includeSuppressedDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForSpanAsync(Document document, TextSpan? range, Func? shouldIncludeDiagnostic, bool includeCompilerDiagnostics, bool includeSuppressedDiagnostics, CodeActionRequestPriority priority, Func? addOperationScope, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetProjectDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, ImmutableHashSet? diagnosticIds, bool includeSuppressedDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetSpecificCachedDiagnosticsAsync(Workspace workspace, object id, bool includeSuppressedDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); void IDiagnosticAnalyzerService.Reanalyze(Workspace workspace, IEnumerable? projectIds, IEnumerable? documentIds, bool highPriority) => throw new NotSupportedException(); Task<(ImmutableArray diagnostics, bool upToDate)> IDiagnosticAnalyzerService.TryGetDiagnosticsForSpanAsync(Document document, TextSpan range, Func? shouldIncludeDiagnostic, bool includeSuppressedDiagnostics, CodeActionRequestPriority priority, CancellationToken cancellationToken) => throw new NotSupportedException(); } } ================================================ FILE: Internal.Roslyn43/PublicAPI.Shipped.txt ================================================ #nullable enable ================================================ FILE: Internal.Roslyn43/PublicAPI.Unshipped.txt ================================================ ================================================ FILE: Internal.Roslyn43/SignatureHelpProviderWrapper.cs ================================================ using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; using SignatureHelpTriggerReason = Microsoft.CodeAnalysis.SignatureHelp.SignatureHelpTriggerReason; namespace MirrorSharp.Internal.Roslyn43 { internal class SignatureHelpProviderWrapper : ISignatureHelpProviderWrapper { private readonly ISignatureHelpProvider _provider; public SignatureHelpProviderWrapper(ISignatureHelpProvider provider) { _provider = provider; } public async Task GetItemsAsync(Document document, int position, SignatureHelpTriggerInfoData triggerInfo, SignatureHelpOptionsData options, CancellationToken cancellationToken) { // This is quite complicated to implement correctly and is still shifting around. // For now we will only allow default options. There is no way to check if user // intended something different, but that can be implemented later. var mappedOptions = SignatureHelpOptions.Default; var mappedTriggerInfo = new SignatureHelpTriggerInfo( (SignatureHelpTriggerReason)(int)triggerInfo.TriggerReason, triggerInfo.TriggerCharacter ); var items = await _provider.GetItemsAsync( document, position, mappedTriggerInfo, mappedOptions, cancellationToken ).ConfigureAwait(false); if (items == null) return null; return new SignatureHelpItemsData( items.Items.Select(i => new SignatureHelpItemData( i.DocumentationFactory, prefixDisplayParts: i.PrefixDisplayParts, separatorDisplayParts: i.SeparatorDisplayParts, suffixDisplayParts: i.SuffixDisplayParts, parameters: i.Parameters.Select(p => new SignatureHelpParameterData( p.Name, p.DocumentationFactory, displayParts: p.DisplayParts, prefixDisplayParts: p.PrefixDisplayParts, suffixDisplayParts: p.SuffixDisplayParts )), i.Parameters.Length )), applicableSpan: items.ApplicableSpan, argumentIndex: items.ArgumentIndex, argumentCount: items.ArgumentCount, selectedItemIndex: items.SelectedItemIndex ); } public bool IsRetriggerCharacter(char ch) => _provider.IsRetriggerCharacter(ch); public bool IsTriggerCharacter(char ch) => _provider.IsTriggerCharacter(ch); } } ================================================ FILE: Internal.Roslyn43/SignatureHelpProviderWrapperResolver.cs ================================================ using System; using System.Collections.Generic; using System.Composition; using System.Linq; using Microsoft.CodeAnalysis.Host.Mef; using Microsoft.CodeAnalysis.Shared.Utilities; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn43 { [Export(typeof(ISignatureHelpProviderWrapperResolver))] internal class SignatureHelpProviderWrapperResolver : ISignatureHelpProviderWrapperResolver { private readonly IList> _allProviders; [ImportingConstructor] public SignatureHelpProviderWrapperResolver( [ImportMany] IEnumerable> allProviders ) { _allProviders = ExtensionOrderer.Order(allProviders); } public IEnumerable GetAllSlow(string languageName) { if (languageName == null) throw new ArgumentNullException(nameof(languageName)); return _allProviders .Where(l => l.Metadata.Language == languageName) .Select(l => new SignatureHelpProviderWrapper(l.Value)); } } } ================================================ FILE: Internal.Roslyn43/WorkspaceAnalyzerOptionsInternals.cs ================================================ using System.Composition; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Diagnostics; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn43 { [Shared] [Export(typeof(IWorkspaceAnalyzerOptionsInternals))] internal class WorkspaceAnalyzerOptionsInternals : IWorkspaceAnalyzerOptionsInternals { public AnalyzerOptions New(AnalyzerOptions options, Project project) { Argument.NotNull(nameof(options), options); Argument.NotNull(nameof(project), project); return new WorkspaceAnalyzerOptions( options, project.Solution, IdeAnalyzerOptions.GetDefault(project.LanguageServices) ); } } } ================================================ FILE: Internal.Roslyn43/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETStandard,Version=v2.0": { "IgnoresAccessChecksToGenerator": { "type": "Direct", "requested": "[0.5.0, )", "resolved": "0.5.0", "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.3.1, )", "resolved": "4.3.1", "contentHash": "Qbi3OxVMnP7igt5iTaSNDFELvNSfDSQBGL+ViOyR2OWhrfLx4pEeGyh9MlE2N3fcEGo6BcEikJBS3TF8n8s5jQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.3.1]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.3.1]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Direct", "requested": "[4.3.1, )", "resolved": "4.3.1", "contentHash": "cYxnDj4Qaflc4GAG7GY1UAeI/N8oPcdsncz/2H/w9lXHPjvrjG5cskr4vgLAiusI83cllz01hy/W2wgHc70L9g==", "dependencies": { "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Common": "[4.3.1]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Scripting.Common": "[4.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.3.1]", "Microsoft.DiaSymReader": "1.4.0", "Microsoft.VisualStudio.RemoteControl": "16.3.44", "System.Text.Json": "6.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Direct", "requested": "[4.3.1, )", "resolved": "4.3.1", "contentHash": "PtkBobNNtAJ6teR/tzuDGf4829DcIUJJqN4wRtshRG28Xs+DRvnE4znFvZWJ8hsnBWGsywqjpRYjvoAdIYi3NA==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "6.0.0", "Microsoft.CodeAnalysis.Common": "[4.3.1]", "System.Composition": "6.0.0", "System.IO.Pipelines": "6.0.3" } }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", "resolved": "2.0.3", "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.14.1", "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.3.3", "contentHash": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "wexpJffSEEwptwe6UTMxRDZCCtz+XubI4Qewl4JECnNhcQrtb0anhSUEV9Nz7WkoNfWkx1fptR8xh1egoxYrqw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.3", "System.Collections.Immutable": "6.0.0", "System.Memory": "4.5.4", "System.Reflection.Metadata": "5.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "6.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "5C9VHvahL98tumlyaT/loB5rW+K/6q0UU7uLyT1Dv15YjZraRkqML9u2t2e8GaO7XqEOtBVqK/SlxXOPqwzxog==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "mRTePOunrPzWkUT7I/FUQF6EFopAuYt0EiYbznkULOyHFT9eHDtN+gaHxqx9or/edAXgpm0KVeybQ83ri/M9Ww==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.CSharp": "[4.3.1]", "Microsoft.CodeAnalysis.Common": "[4.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.3.1]" } }, "Microsoft.CodeAnalysis.Elfie": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "r12elUp4MRjdnRfxEP+xqVSUUfG3yIJTBEJGwbfvF5oU4m0jb9HC0gFG28V/dAkYGMkRmHVi3qvrnBLQSw9X3Q==", "dependencies": { "System.Configuration.ConfigurationManager": "4.5.0", "System.Data.DataSetExtensions": "4.5.0" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "WRX2GecORKhED3VoyYsbjFFBvV3D41BF3N4SDpbdM02Hm3rPdPqsxIQaF6xxHZ9iX0+m/YgT9mV6TiHjQL3qOw==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.3.1]" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "V3yW779IRoi8skcbLYBhryviGgIgtKfkQ4EQKSLHUe6++olAT1pCuE+kbgwXxTpoHqhI4Wc1gEkjNNmgQ3MKgg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.3.1]" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "pnN5bSd/jdf2Qw6pT6X/lFf0oIeDoMyYXEQ+FfPPh/2lOpH+irNNSr1+RMbwCCCo+f6ToI3+NL6lI/aL+Z9THg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.3.1]", "Microsoft.CodeAnalysis.VisualBasic": "[4.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.3.1]" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.4.0", "contentHash": "iLtWq5/W5ePzSraavAFeXAbasE6REDByizTz6M8yQO3e4jf+6pRqPLdNCSvnSfKRVqsF7y/lTVWhqlf89ttweg==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" }, "Microsoft.VisualStudio.RemoteControl": { "type": "Transitive", "resolved": "16.3.44", "contentHash": "hbc2FxReEyotRXM1dtQSZxt2ccNMBgPbcX6MylKp9UDbHsTPJ0dk5CEuZAqoqOFKUzFtorZL6A7BcRAjP9HU1g==", "dependencies": { "Microsoft.VisualStudio.Utilities.Internal": "16.3.36", "System.Configuration.ConfigurationManager": "4.5.0", "System.IO.FileSystem.AccessControl": "4.5.0" } }, "Microsoft.VisualStudio.Utilities.Internal": { "type": "Transitive", "resolved": "16.3.36", "contentHash": "tVOE9DJbd4PETSgBW+9448jvRdhm/hNHJFaGyCq6Gtlg+ElELBmfMFxgp2rsrqzUkLjehwnrw6uX4Yj9krOfJQ==", "dependencies": { "Microsoft.Win32.Registry": "4.5.0" } }, "Microsoft.Win32.Registry": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "+FWlwd//+Tt56316p00hVePBCouXyEzT86Jb3+AuRotTND0IYn0OO3obs1gnQEs/txEnt+rF2JBGLItTG+Be6A==", "dependencies": { "System.Buffers": "4.4.0", "System.Memory": "4.5.0", "System.Security.AccessControl": "4.5.0", "System.Security.Principal.Windows": "4.5.0" } }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", "dependencies": { "System.Memory": "4.5.4", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Composition": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "d7wMuKQtfsxUa7S13tITC8n1cQzewuhD5iDjZtK2prwFfKVzdYtgrTHgjaV03Zq7feGQ5gkP85tJJntXwInsJA==", "dependencies": { "System.Composition.AttributedModel": "6.0.0", "System.Composition.Convention": "6.0.0", "System.Composition.Hosting": "6.0.0", "System.Composition.Runtime": "6.0.0", "System.Composition.TypedParts": "6.0.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "WK1nSDLByK/4VoC7fkNiFuTVEiperuCN/Hyn+VN30R+W2ijO1d0Z2Qm0ScEl9xkSn1G2MyapJi8xpf4R8WRa/w==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "XYi4lPRdu5bM4JVJ3/UIHAiG6V6lWWUlkhB9ab4IOq0FrRsp0F4wTyV4Dj+Ds+efoXJ3qbLqlvaUozDO7OLeXA==", "dependencies": { "System.Composition.AttributedModel": "6.0.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "w/wXjj7kvxuHPLdzZ0PAUt++qJl03t7lENmb2Oev0n3zbxyNULbWBlnd5J5WUMMv15kg5o+/TCZFb6lSwfaUUQ==", "dependencies": { "System.Composition.Runtime": "6.0.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "qkRH/YBaMPTnzxrS5RDk1juvqed4A6HOD/CwRcDGyPpYps1J27waBddiiq1y93jk2ZZ9wuA/kynM+NO0kb3PKg==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "iUR1eHrL8Cwd82neQCJ00MpwNIBs4NZgXzrPqx8NJf/k4+mwBO0XCRmHYJT4OLSwDDqh5nBLJWkz5cROnrGhRA==", "dependencies": { "System.Composition.AttributedModel": "6.0.0", "System.Composition.Hosting": "6.0.0", "System.Composition.Runtime": "6.0.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "UIFvaFfuKhLr9u5tWMxmVoDPkFeD+Qv8gUuap4aZgVGYSYMdERck4OhLN/2gulAc0nYTEigWXSJNNWshrmxnng==", "dependencies": { "System.Security.Cryptography.ProtectedData": "4.5.0", "System.Security.Permissions": "4.5.0" } }, "System.Data.DataSetExtensions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw==" }, "System.IO.FileSystem.AccessControl": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "TYe6xstoqT5MlTly0OtPU6u9zWuNScLVMEx6sTCjjx+Hqdp0wCXoG6fnzMpTPMQACXQzi9pd2N5Tloow+5jQdQ==", "dependencies": { "System.Security.AccessControl": "4.5.0", "System.Security.Principal.Windows": "4.5.0" } }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==" }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ==", "dependencies": { "System.Collections.Immutable": "5.0.0" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "vW8Eoq0TMyz5vAG/6ce483x/CP83fgm4SJe5P8Tb1tZaobcvPrbMEL7rhH1DRdrYbbb6F0vq3OlzmK0Pkwks5A==", "dependencies": { "System.Security.Principal.Windows": "4.5.0" } }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q==", "dependencies": { "System.Memory": "4.5.0" } }, "System.Security.Permissions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "9gdyuARhUR7H+p5CjyUB/zPk7/Xut3wUSP8NJQB6iZr8L3XUXTMdoLeVAg9N4rqF8oIpE7MpdqHdDHQ7XgJe0g==", "dependencies": { "System.Security.AccessControl": "4.5.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "U77HfRXlZlOeIXd//Yoj6Jnk8AXlbeisf1oq1os+hxOGVnuG+lGSfGqTwTZBoORFF6j/0q7HXIl8cqwQ9aUGqQ==" }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", "dependencies": { "System.Memory": "4.5.4", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis": "[3.3.1, )", "Microsoft.CodeAnalysis.Features": "[3.3.1, )" } } } } } ================================================ FILE: Internal.Roslyn44/CodeActionInternals.cs ================================================ using System.Collections.Immutable; using System.Composition; using Microsoft.CodeAnalysis.CodeActions; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn43 { [Shared] [Export(typeof(ICodeActionInternals))] internal class CodeActionInternals : ICodeActionInternals { public bool IsInlinable(CodeAction action) { Argument.NotNull(nameof(action), action); return action.IsInlinable; } public Roslyn.Internals.CodeActionPriority GetPriority(CodeAction action) { Argument.NotNull(nameof(action), action); return (Roslyn.Internals.CodeActionPriority)(int)action.Priority; } public ImmutableArray GetNestedCodeActions(CodeAction action) { Argument.NotNull(nameof(action), action); return action.NestedCodeActions; } } } ================================================ FILE: Internal.Roslyn44/Internal.Roslyn44.csproj ================================================ netstandard2.0 MirrorSharp.Internal.Roslyn44 MirrorSharp.Internal.Roslyn44 false Microsoft.CodeAnalysis.Features;Microsoft.CodeAnalysis.Workspaces ================================================ FILE: Internal.Roslyn44/MirrorSharpDiagnosticAnalyzerService.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Composition; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CodeActions; using Microsoft.CodeAnalysis.Diagnostics; using Microsoft.CodeAnalysis.Options; using Microsoft.CodeAnalysis.Text; namespace MirrorSharp.Internal.Roslyn43 { [Shared] [Export(typeof(IDiagnosticAnalyzerService))] internal class MirrorSharpDiagnosticAnalyzerService : IDiagnosticAnalyzerService { DiagnosticAnalyzerInfoCache IDiagnosticAnalyzerService.AnalyzerInfoCache { get; } = new(); IGlobalOptionService IDiagnosticAnalyzerService.GlobalOptions => throw new NotSupportedException(); bool IDiagnosticAnalyzerService.ContainsDiagnostics(Workspace workspace, ProjectId projectId) => throw new NotSupportedException(); Task IDiagnosticAnalyzerService.ForceAnalyzeAsync(Solution solution, Action onProjectAnalyzed, ProjectId? projectId, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetCachedDiagnosticsAsync(Workspace workspace, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, ImmutableHashSet? diagnosticIds, bool includeSuppressedDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForSpanAsync(Document document, TextSpan? range, Func? shouldIncludeDiagnostic, bool includeCompilerDiagnostics, bool includeSuppressedDiagnostics, CodeActionRequestPriority priority, Func? addOperationScope, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetProjectDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, ImmutableHashSet? diagnosticIds, bool includeSuppressedDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetSpecificCachedDiagnosticsAsync(Workspace workspace, object id, bool includeSuppressedDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); void IDiagnosticAnalyzerService.Reanalyze(Workspace workspace, IEnumerable? projectIds, IEnumerable? documentIds, bool highPriority) => throw new NotSupportedException(); Task<(ImmutableArray diagnostics, bool upToDate)> IDiagnosticAnalyzerService.TryGetDiagnosticsForSpanAsync(Document document, TextSpan range, Func? shouldIncludeDiagnostic, bool includeSuppressedDiagnostics, CodeActionRequestPriority priority, CancellationToken cancellationToken) => throw new NotSupportedException(); } } ================================================ FILE: Internal.Roslyn44/PublicAPI.Shipped.txt ================================================ #nullable enable ================================================ FILE: Internal.Roslyn44/PublicAPI.Unshipped.txt ================================================ ================================================ FILE: Internal.Roslyn44/SignatureHelpProviderWrapper.cs ================================================ using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; using SignatureHelpTriggerReason = Microsoft.CodeAnalysis.SignatureHelp.SignatureHelpTriggerReason; namespace MirrorSharp.Internal.Roslyn43 { internal class SignatureHelpProviderWrapper : ISignatureHelpProviderWrapper { private readonly ISignatureHelpProvider _provider; public SignatureHelpProviderWrapper(ISignatureHelpProvider provider) { _provider = provider; } public async Task GetItemsAsync(Document document, int position, SignatureHelpTriggerInfoData triggerInfo, SignatureHelpOptionsData options, CancellationToken cancellationToken) { // This is quite complicated to implement correctly and is still shifting around. // For now we will only allow default options. There is no way to check if user // intended something different, but that can be implemented later. var mappedOptions = SignatureHelpOptions.Default; var mappedTriggerInfo = new SignatureHelpTriggerInfo( (SignatureHelpTriggerReason)(int)triggerInfo.TriggerReason, triggerInfo.TriggerCharacter ); var items = await _provider.GetItemsAsync( document, position, mappedTriggerInfo, mappedOptions, cancellationToken ).ConfigureAwait(false); if (items == null) return null; return new SignatureHelpItemsData( items.Items.Select(i => new SignatureHelpItemData( i.DocumentationFactory, prefixDisplayParts: i.PrefixDisplayParts, separatorDisplayParts: i.SeparatorDisplayParts, suffixDisplayParts: i.SuffixDisplayParts, parameters: i.Parameters.Select(p => new SignatureHelpParameterData( p.Name, p.DocumentationFactory, displayParts: p.DisplayParts, prefixDisplayParts: p.PrefixDisplayParts, suffixDisplayParts: p.SuffixDisplayParts )), i.Parameters.Length )), applicableSpan: items.ApplicableSpan, argumentIndex: items.ArgumentIndex, argumentCount: items.ArgumentCount, selectedItemIndex: items.SelectedItemIndex ); } public bool IsRetriggerCharacter(char ch) => _provider.IsRetriggerCharacter(ch); public bool IsTriggerCharacter(char ch) => _provider.IsTriggerCharacter(ch); } } ================================================ FILE: Internal.Roslyn44/SignatureHelpProviderWrapperResolver.cs ================================================ using System; using System.Collections.Generic; using System.Composition; using System.Linq; using Microsoft.CodeAnalysis.Host.Mef; using Microsoft.CodeAnalysis.Shared.Utilities; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn43 { [Export(typeof(ISignatureHelpProviderWrapperResolver))] internal class SignatureHelpProviderWrapperResolver : ISignatureHelpProviderWrapperResolver { private readonly IList> _allProviders; [ImportingConstructor] public SignatureHelpProviderWrapperResolver( [ImportMany] IEnumerable> allProviders ) { _allProviders = ExtensionOrderer.Order(allProviders); } public IEnumerable GetAllSlow(string languageName) { if (languageName == null) throw new ArgumentNullException(nameof(languageName)); return _allProviders .Where(l => l.Metadata.Language == languageName) .Select(l => new SignatureHelpProviderWrapper(l.Value)); } } } ================================================ FILE: Internal.Roslyn44/WorkspaceAnalyzerOptionsInternals.cs ================================================ using System.Composition; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Diagnostics; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn43 { [Shared] [Export(typeof(IWorkspaceAnalyzerOptionsInternals))] internal class WorkspaceAnalyzerOptionsInternals : IWorkspaceAnalyzerOptionsInternals { public AnalyzerOptions New(AnalyzerOptions options, Project project) { Argument.NotNull(nameof(options), options); Argument.NotNull(nameof(project), project); return new WorkspaceAnalyzerOptions( options, IdeAnalyzerOptions.GetDefault(project.Services) ); } } } ================================================ FILE: Internal.Roslyn44/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETStandard,Version=v2.0": { "IgnoresAccessChecksToGenerator": { "type": "Direct", "requested": "[0.5.0, )", "resolved": "0.5.0", "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.4.0, )", "resolved": "4.4.0", "contentHash": "mXJYgxqyjIy6Zd+1pFMkl0CtIY4coLFAzidr4RGeWW0tjB8nEWpye7h6PtoavRJa6j5KeGXZsqYGvMwqI8dx6Q==", "dependencies": { "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.4.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.4.0]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Direct", "requested": "[4.4.0, )", "resolved": "4.4.0", "contentHash": "0LEXWpaDlZMl5lOnM872FuBmcDD99qKp4QmmFsMpJjnq7f21KuNchdyuSdh9pdpibl2JfdMWrvA56y5dKc6EPQ==", "dependencies": { "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Common": "[4.4.0]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Scripting.Common": "[4.4.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.4.0]", "Microsoft.DiaSymReader": "1.4.0", "System.Text.Json": "6.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Direct", "requested": "[4.4.0, )", "resolved": "4.4.0", "contentHash": "6KzmmTIUU7qInQldcSPaW0nkrO71zlFPhoiabFBhkokEit49rLx4Kr/G3agBchYzirScrXibqgTRQkvx9WcJTw==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "6.0.0", "Microsoft.CodeAnalysis.Common": "[4.4.0]", "System.Composition": "6.0.0", "System.IO.Pipelines": "6.0.3" } }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", "resolved": "2.0.3", "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.14.1", "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.3.3", "contentHash": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "JfHupS/B7Jb5MZoYkFFABn3mux0wQgxi2D8F/rJYZeRBK2ZOyk7TjQ2Kq9rh6W/DCh0KNbbSbn5qoFar+ueHqw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.3", "System.Collections.Immutable": "6.0.0", "System.Memory": "4.5.5", "System.Reflection.Metadata": "5.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "6.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "eD2w0xHRoaqK07hjlOKGR9eLNy3nimiGNeCClNax1NDgS/+DBtBqCjXelOa+TNy99kIB3nHhUqDmr46nDXy/RQ==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.4.0]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "ADmI2jcwJP9GgBsVx2l0Bo0v3Hn4hHBg1uJ5zHd230mkO8rUJBLZu2h3tCbpwJMkpAIRtrxuZDD5uNfiyz0Q5Q==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.CSharp": "[4.4.0]", "Microsoft.CodeAnalysis.Common": "[4.4.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.4.0]" } }, "Microsoft.CodeAnalysis.Elfie": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "r12elUp4MRjdnRfxEP+xqVSUUfG3yIJTBEJGwbfvF5oU4m0jb9HC0gFG28V/dAkYGMkRmHVi3qvrnBLQSw9X3Q==", "dependencies": { "System.Configuration.ConfigurationManager": "4.5.0", "System.Data.DataSetExtensions": "4.5.0" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "RkAwCFJ8LfN7TfbWDejm50nucPxVoG/vDh0qVIoGx1U2FZhaBct72U4lGIACLuYsa0dIlC7Y0ivBemfDHnqWmA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.4.0]" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "+GsWdmbKcjJ9ggduM6+ZI4pMI/2doX+BLbQNEQcF2oytpwzeBgyJpA3FgUWtRGBhPidzaKOj4/BMezlzn0VqxA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.4.0]" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "B+r34TW1GhlbuntW5072Prm2BOk3dvdzg9yEzYmuR7jgMRZqFyypCLjizNTzWb7omEX4OfCWckDFCHH01XK10g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.4.0]", "Microsoft.CodeAnalysis.VisualBasic": "[4.4.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.4.0]" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.4.0", "contentHash": "iLtWq5/W5ePzSraavAFeXAbasE6REDByizTz6M8yQO3e4jf+6pRqPLdNCSvnSfKRVqsF7y/lTVWhqlf89ttweg==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", "dependencies": { "System.Memory": "4.5.4", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Composition": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "d7wMuKQtfsxUa7S13tITC8n1cQzewuhD5iDjZtK2prwFfKVzdYtgrTHgjaV03Zq7feGQ5gkP85tJJntXwInsJA==", "dependencies": { "System.Composition.AttributedModel": "6.0.0", "System.Composition.Convention": "6.0.0", "System.Composition.Hosting": "6.0.0", "System.Composition.Runtime": "6.0.0", "System.Composition.TypedParts": "6.0.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "WK1nSDLByK/4VoC7fkNiFuTVEiperuCN/Hyn+VN30R+W2ijO1d0Z2Qm0ScEl9xkSn1G2MyapJi8xpf4R8WRa/w==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "XYi4lPRdu5bM4JVJ3/UIHAiG6V6lWWUlkhB9ab4IOq0FrRsp0F4wTyV4Dj+Ds+efoXJ3qbLqlvaUozDO7OLeXA==", "dependencies": { "System.Composition.AttributedModel": "6.0.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "w/wXjj7kvxuHPLdzZ0PAUt++qJl03t7lENmb2Oev0n3zbxyNULbWBlnd5J5WUMMv15kg5o+/TCZFb6lSwfaUUQ==", "dependencies": { "System.Composition.Runtime": "6.0.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "qkRH/YBaMPTnzxrS5RDk1juvqed4A6HOD/CwRcDGyPpYps1J27waBddiiq1y93jk2ZZ9wuA/kynM+NO0kb3PKg==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "iUR1eHrL8Cwd82neQCJ00MpwNIBs4NZgXzrPqx8NJf/k4+mwBO0XCRmHYJT4OLSwDDqh5nBLJWkz5cROnrGhRA==", "dependencies": { "System.Composition.AttributedModel": "6.0.0", "System.Composition.Hosting": "6.0.0", "System.Composition.Runtime": "6.0.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "UIFvaFfuKhLr9u5tWMxmVoDPkFeD+Qv8gUuap4aZgVGYSYMdERck4OhLN/2gulAc0nYTEigWXSJNNWshrmxnng==", "dependencies": { "System.Security.Cryptography.ProtectedData": "4.5.0", "System.Security.Permissions": "4.5.0" } }, "System.Data.DataSetExtensions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw==" }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==" }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ==", "dependencies": { "System.Collections.Immutable": "5.0.0" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "vW8Eoq0TMyz5vAG/6ce483x/CP83fgm4SJe5P8Tb1tZaobcvPrbMEL7rhH1DRdrYbbb6F0vq3OlzmK0Pkwks5A==", "dependencies": { "System.Security.Principal.Windows": "4.5.0" } }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q==", "dependencies": { "System.Memory": "4.5.0" } }, "System.Security.Permissions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "9gdyuARhUR7H+p5CjyUB/zPk7/Xut3wUSP8NJQB6iZr8L3XUXTMdoLeVAg9N4rqF8oIpE7MpdqHdDHQ7XgJe0g==", "dependencies": { "System.Security.AccessControl": "4.5.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "U77HfRXlZlOeIXd//Yoj6Jnk8AXlbeisf1oq1os+hxOGVnuG+lGSfGqTwTZBoORFF6j/0q7HXIl8cqwQ9aUGqQ==" }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", "dependencies": { "System.Memory": "4.5.4", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis": "[3.3.1, )", "Microsoft.CodeAnalysis.Features": "[3.3.1, )" } } } } } ================================================ FILE: Internal.Roslyn45/CodeActionInternals.cs ================================================ using System.Collections.Immutable; using System.Composition; using Microsoft.CodeAnalysis.CodeActions; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn45 { [Shared] [Export(typeof(ICodeActionInternals))] internal class CodeActionInternals : ICodeActionInternals { public bool IsInlinable(CodeAction action) { Argument.NotNull(nameof(action), action); return action.IsInlinable; } public Roslyn.Internals.CodeActionPriority GetPriority(CodeAction action) { Argument.NotNull(nameof(action), action); return (Roslyn.Internals.CodeActionPriority)(int)action.Priority; } public ImmutableArray GetNestedCodeActions(CodeAction action) { Argument.NotNull(nameof(action), action); return action.NestedCodeActions; } } } ================================================ FILE: Internal.Roslyn45/Internal.Roslyn45.csproj ================================================ netstandard2.0 MirrorSharp.Internal.Roslyn45 MirrorSharp.Internal.Roslyn45 false Microsoft.CodeAnalysis.Features;Microsoft.CodeAnalysis.Workspaces ================================================ FILE: Internal.Roslyn45/MirrorSharpDiagnosticAnalyzerService.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Composition; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CodeActions; using Microsoft.CodeAnalysis.Diagnostics; using Microsoft.CodeAnalysis.Options; using Microsoft.CodeAnalysis.Text; namespace MirrorSharp.Internal.Roslyn45 { [Shared] [Export(typeof(IDiagnosticAnalyzerService))] internal class MirrorSharpDiagnosticAnalyzerService : IDiagnosticAnalyzerService { DiagnosticAnalyzerInfoCache IDiagnosticAnalyzerService.AnalyzerInfoCache { get; } = new(); IGlobalOptionService IDiagnosticAnalyzerService.GlobalOptions => throw new NotSupportedException(); bool IDiagnosticAnalyzerService.ContainsDiagnostics(Workspace workspace, ProjectId projectId) => throw new NotSupportedException(); Task IDiagnosticAnalyzerService.ForceAnalyzeAsync(Solution solution, Action onProjectAnalyzed, ProjectId? projectId, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetCachedDiagnosticsAsync(Workspace workspace, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, ImmutableHashSet? diagnosticIds, bool includeSuppressedDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForSpanAsync(TextDocument document, TextSpan? range, Func? shouldIncludeDiagnostic, bool includeCompilerDiagnostics, bool includeSuppressedDiagnostics, CodeActionRequestPriority priority, Func? addOperationScope, DiagnosticKind diagnosticKind, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetProjectDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, ImmutableHashSet? diagnosticIds, bool includeSuppressedDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetSpecificCachedDiagnosticsAsync(Workspace workspace, object id, bool includeSuppressedDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); void IDiagnosticAnalyzerService.Reanalyze(Workspace workspace, IEnumerable? projectIds, IEnumerable? documentIds, bool highPriority) => throw new NotSupportedException(); Task<(ImmutableArray diagnostics, bool upToDate)> IDiagnosticAnalyzerService.TryGetDiagnosticsForSpanAsync(TextDocument document, TextSpan range, Func? shouldIncludeDiagnostic, bool includeSuppressedDiagnostics, CodeActionRequestPriority priority, DiagnosticKind diagnosticKind, CancellationToken cancellationToken) => throw new NotSupportedException(); } } ================================================ FILE: Internal.Roslyn45/PublicAPI.Shipped.txt ================================================ #nullable enable ================================================ FILE: Internal.Roslyn45/PublicAPI.Unshipped.txt ================================================ ================================================ FILE: Internal.Roslyn45/SignatureHelpProviderWrapper.cs ================================================ using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; using SignatureHelpTriggerReason = Microsoft.CodeAnalysis.SignatureHelp.SignatureHelpTriggerReason; namespace MirrorSharp.Internal.Roslyn45 { internal class SignatureHelpProviderWrapper : ISignatureHelpProviderWrapper { private readonly ISignatureHelpProvider _provider; public SignatureHelpProviderWrapper(ISignatureHelpProvider provider) { _provider = provider; } public async Task GetItemsAsync(Document document, int position, SignatureHelpTriggerInfoData triggerInfo, SignatureHelpOptionsData options, CancellationToken cancellationToken) { // This is quite complicated to implement correctly and is still shifting around. // For now we will only allow default options. There is no way to check if user // intended something different, but that can be implemented later. var mappedOptions = SignatureHelpOptions.Default; var mappedTriggerInfo = new SignatureHelpTriggerInfo( (SignatureHelpTriggerReason)(int)triggerInfo.TriggerReason, triggerInfo.TriggerCharacter ); var items = await _provider.GetItemsAsync( document, position, mappedTriggerInfo, mappedOptions, cancellationToken ).ConfigureAwait(false); if (items == null) return null; return new SignatureHelpItemsData( items.Items.Select(i => new SignatureHelpItemData( i.DocumentationFactory, prefixDisplayParts: i.PrefixDisplayParts, separatorDisplayParts: i.SeparatorDisplayParts, suffixDisplayParts: i.SuffixDisplayParts, parameters: i.Parameters.Select(p => new SignatureHelpParameterData( p.Name, p.DocumentationFactory, displayParts: p.DisplayParts, prefixDisplayParts: p.PrefixDisplayParts, suffixDisplayParts: p.SuffixDisplayParts )), i.Parameters.Length )), applicableSpan: items.ApplicableSpan, argumentIndex: items.ArgumentIndex, argumentCount: items.ArgumentCount, selectedItemIndex: items.SelectedItemIndex ); } public bool IsRetriggerCharacter(char ch) => _provider.IsRetriggerCharacter(ch); public bool IsTriggerCharacter(char ch) => _provider.IsTriggerCharacter(ch); } } ================================================ FILE: Internal.Roslyn45/SignatureHelpProviderWrapperResolver.cs ================================================ using System; using System.Collections.Generic; using System.Composition; using System.Linq; using Microsoft.CodeAnalysis.Host.Mef; using Microsoft.CodeAnalysis.Shared.Utilities; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn45 { [Export(typeof(ISignatureHelpProviderWrapperResolver))] internal class SignatureHelpProviderWrapperResolver : ISignatureHelpProviderWrapperResolver { private readonly IList> _allProviders; [ImportingConstructor] public SignatureHelpProviderWrapperResolver( [ImportMany] IEnumerable> allProviders ) { _allProviders = ExtensionOrderer.Order(allProviders); } public IEnumerable GetAllSlow(string languageName) { if (languageName == null) throw new ArgumentNullException(nameof(languageName)); return _allProviders .Where(l => l.Metadata.Language == languageName) .Select(l => new SignatureHelpProviderWrapper(l.Value)); } } } ================================================ FILE: Internal.Roslyn45/WorkspaceAnalyzerOptionsInternals.cs ================================================ using System.Composition; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Diagnostics; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn45 { [Shared] [Export(typeof(IWorkspaceAnalyzerOptionsInternals))] internal class WorkspaceAnalyzerOptionsInternals : IWorkspaceAnalyzerOptionsInternals { public AnalyzerOptions New(AnalyzerOptions options, Project project) { Argument.NotNull(nameof(options), options); Argument.NotNull(nameof(project), project); return new WorkspaceAnalyzerOptions( options, IdeAnalyzerOptions.GetDefault(project.Services) ); } } } ================================================ FILE: Internal.Roslyn45/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETStandard,Version=v2.0": { "IgnoresAccessChecksToGenerator": { "type": "Direct", "requested": "[0.5.0, )", "resolved": "0.5.0", "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.5.0, )", "resolved": "4.5.0", "contentHash": "UwAroliVgje2/NKkEIWXnF+yoN/LMw1slof+jCflZBTbXUvd9zbKHq1rBvqo4QAwTNl2/oTXUDPNI006V+1luw==", "dependencies": { "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.5.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.5.0]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Direct", "requested": "[4.5.0, )", "resolved": "4.5.0", "contentHash": "L6NaZz/qTt3htWKyG2tnsBVhSG7MBcUwwjzYzainprX3V3SUTlOuNuliQhC0y8ggj1mF8rkhqVgtPTS/5nLc2w==", "dependencies": { "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Common": "[4.5.0]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Scripting.Common": "[4.5.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.5.0]", "Microsoft.DiaSymReader": "1.4.0", "System.Text.Json": "6.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Direct", "requested": "[4.5.0, )", "resolved": "4.5.0", "contentHash": "l4dDRmGELXG72XZaonnOeORyD/T5RpEu5LGHOUIhnv+MmUWDY/m1kWXGwtcgQ5CJ5ynkFiRnIYzTKXYjUs7rbw==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "6.0.0", "Microsoft.CodeAnalysis.Common": "[4.5.0]", "System.Composition": "6.0.0", "System.IO.Pipelines": "6.0.3", "System.Threading.Channels": "6.0.0" } }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", "resolved": "2.0.3", "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.14.1", "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.3.3", "contentHash": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "lwAbIZNdnY0SUNoDmZHkVUwLO8UyNnyyh1t/4XsbFxi4Ounb3xszIYZaWhyj5ZjyfcwqwmtMbE7fUTVCqQEIdQ==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.3", "System.Collections.Immutable": "6.0.0", "System.Memory": "4.5.5", "System.Reflection.Metadata": "6.0.1", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "6.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "cM59oMKAOxvdv76bdmaKPy5hfj+oR+zxikWoueEB7CwTko7mt9sVKZI8Qxlov0C/LuKEG+WQwifepqL3vuTiBQ==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.5.0]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "h74wTpmGOp4yS4hj+EvNzEiPgg/KVs2wmSfTZ81upJZOtPkJsVkgfsgtxxqmAeapjT/vLKfmYV0bS8n5MNVP+g==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.CSharp": "[4.5.0]", "Microsoft.CodeAnalysis.Common": "[4.5.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.5.0]" } }, "Microsoft.CodeAnalysis.Elfie": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "r12elUp4MRjdnRfxEP+xqVSUUfG3yIJTBEJGwbfvF5oU4m0jb9HC0gFG28V/dAkYGMkRmHVi3qvrnBLQSw9X3Q==", "dependencies": { "System.Configuration.ConfigurationManager": "4.5.0", "System.Data.DataSetExtensions": "4.5.0" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "ruWwzk9H5uJ+BQOMZQh77bjd74Z2KZjJP01y/tpfB6qsRi8s+EjhvzNmG7wDx0uRwmOCksKDS0MeMu3D1uKzZQ==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.5.0]" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "6I4xrLh2g09c8OjLwOQEtD1ONB+FV2kYcZqbb2/LrPHCi19Ept0q9TQd78J2oKJpTrw3kLJfh9oj1sYf80/cmg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.5.0]" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "A98Ibs/HCsDloQlzDyK8BiY3+pEXeih54pdayUtdawjUSsEVCPN8hCTAxqC/nWOpzVwbW7k30tfxTH1fQqlr4A==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.5.0]", "Microsoft.CodeAnalysis.VisualBasic": "[4.5.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.5.0]" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.4.0", "contentHash": "iLtWq5/W5ePzSraavAFeXAbasE6REDByizTz6M8yQO3e4jf+6pRqPLdNCSvnSfKRVqsF7y/lTVWhqlf89ttweg==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", "dependencies": { "System.Memory": "4.5.4", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Composition": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "d7wMuKQtfsxUa7S13tITC8n1cQzewuhD5iDjZtK2prwFfKVzdYtgrTHgjaV03Zq7feGQ5gkP85tJJntXwInsJA==", "dependencies": { "System.Composition.AttributedModel": "6.0.0", "System.Composition.Convention": "6.0.0", "System.Composition.Hosting": "6.0.0", "System.Composition.Runtime": "6.0.0", "System.Composition.TypedParts": "6.0.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "WK1nSDLByK/4VoC7fkNiFuTVEiperuCN/Hyn+VN30R+W2ijO1d0Z2Qm0ScEl9xkSn1G2MyapJi8xpf4R8WRa/w==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "XYi4lPRdu5bM4JVJ3/UIHAiG6V6lWWUlkhB9ab4IOq0FrRsp0F4wTyV4Dj+Ds+efoXJ3qbLqlvaUozDO7OLeXA==", "dependencies": { "System.Composition.AttributedModel": "6.0.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "w/wXjj7kvxuHPLdzZ0PAUt++qJl03t7lENmb2Oev0n3zbxyNULbWBlnd5J5WUMMv15kg5o+/TCZFb6lSwfaUUQ==", "dependencies": { "System.Composition.Runtime": "6.0.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "qkRH/YBaMPTnzxrS5RDk1juvqed4A6HOD/CwRcDGyPpYps1J27waBddiiq1y93jk2ZZ9wuA/kynM+NO0kb3PKg==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "iUR1eHrL8Cwd82neQCJ00MpwNIBs4NZgXzrPqx8NJf/k4+mwBO0XCRmHYJT4OLSwDDqh5nBLJWkz5cROnrGhRA==", "dependencies": { "System.Composition.AttributedModel": "6.0.0", "System.Composition.Hosting": "6.0.0", "System.Composition.Runtime": "6.0.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "UIFvaFfuKhLr9u5tWMxmVoDPkFeD+Qv8gUuap4aZgVGYSYMdERck4OhLN/2gulAc0nYTEigWXSJNNWshrmxnng==", "dependencies": { "System.Security.Cryptography.ProtectedData": "4.5.0", "System.Security.Permissions": "4.5.0" } }, "System.Data.DataSetExtensions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw==" }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==" }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "6.0.1", "contentHash": "III/lNMSn0ZRBuM9m5Cgbiho5j81u0FAEagFX5ta2DKbljZ3T0IpD8j+BIiHQPeKqJppWS9bGEp6JnKnWKze0g==", "dependencies": { "System.Collections.Immutable": "6.0.0" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "vW8Eoq0TMyz5vAG/6ce483x/CP83fgm4SJe5P8Tb1tZaobcvPrbMEL7rhH1DRdrYbbb6F0vq3OlzmK0Pkwks5A==", "dependencies": { "System.Security.Principal.Windows": "4.5.0" } }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q==", "dependencies": { "System.Memory": "4.5.0" } }, "System.Security.Permissions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "9gdyuARhUR7H+p5CjyUB/zPk7/Xut3wUSP8NJQB6iZr8L3XUXTMdoLeVAg9N4rqF8oIpE7MpdqHdDHQ7XgJe0g==", "dependencies": { "System.Security.AccessControl": "4.5.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "U77HfRXlZlOeIXd//Yoj6Jnk8AXlbeisf1oq1os+hxOGVnuG+lGSfGqTwTZBoORFF6j/0q7HXIl8cqwQ9aUGqQ==" }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", "dependencies": { "System.Memory": "4.5.4", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Threading.Channels": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "TY8/9+tI0mNaUMgntOxxaq2ndTkdXqLSxvPmas7XEqOlv9lQtB7wLjYGd756lOaO7Dvb5r/WXhluM+0Xe87v5Q==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis": "[3.3.1, )", "Microsoft.CodeAnalysis.Features": "[3.3.1, )" } } } } } ================================================ FILE: Internal.Roslyn46/CodeActionInternals.cs ================================================ using System.Collections.Immutable; using System.Composition; using Microsoft.CodeAnalysis.CodeActions; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn46 { [Shared] [Export(typeof(ICodeActionInternals))] internal class CodeActionInternals : ICodeActionInternals { public bool IsInlinable(CodeAction action) { Argument.NotNull(nameof(action), action); return action.IsInlinable; } public Roslyn.Internals.CodeActionPriority GetPriority(CodeAction action) { Argument.NotNull(nameof(action), action); return (Roslyn.Internals.CodeActionPriority)(int)action.Priority; } public ImmutableArray GetNestedCodeActions(CodeAction action) { Argument.NotNull(nameof(action), action); return action.NestedCodeActions; } } } ================================================ FILE: Internal.Roslyn46/Internal.Roslyn46.csproj ================================================ netstandard2.0 MirrorSharp.Internal.Roslyn46 MirrorSharp.Internal.Roslyn46 false Microsoft.CodeAnalysis.Features;Microsoft.CodeAnalysis.Workspaces ================================================ FILE: Internal.Roslyn46/MirrorSharpDiagnosticAnalyzerService.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Composition; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CodeActions; using Microsoft.CodeAnalysis.Diagnostics; using Microsoft.CodeAnalysis.Options; using Microsoft.CodeAnalysis.Text; namespace MirrorSharp.Internal.Roslyn46 { [Shared] [Export(typeof(IDiagnosticAnalyzerService))] internal class MirrorSharpDiagnosticAnalyzerService : IDiagnosticAnalyzerService { DiagnosticAnalyzerInfoCache IDiagnosticAnalyzerService.AnalyzerInfoCache { get; } = new(); IGlobalOptionService IDiagnosticAnalyzerService.GlobalOptions => throw new NotSupportedException(); bool IDiagnosticAnalyzerService.ContainsDiagnostics(Workspace workspace, ProjectId projectId) => throw new NotSupportedException(); Task IDiagnosticAnalyzerService.ForceAnalyzeAsync(Solution solution, Action onProjectAnalyzed, ProjectId? projectId, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetCachedDiagnosticsAsync(Workspace workspace, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, ImmutableHashSet? diagnosticIds, bool includeSuppressedDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForSpanAsync(TextDocument document, TextSpan? range, Func? shouldIncludeDiagnostic, bool includeCompilerDiagnostics, bool includeSuppressedDiagnostics, CodeActionRequestPriority priority, Func? addOperationScope, DiagnosticKind diagnosticKind, bool isExplicit, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetProjectDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, ImmutableHashSet? diagnosticIds, bool includeSuppressedDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetSpecificCachedDiagnosticsAsync(Workspace workspace, object id, bool includeSuppressedDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); void IDiagnosticAnalyzerService.Reanalyze(Workspace workspace, IEnumerable? projectIds, IEnumerable? documentIds, bool highPriority) => throw new NotSupportedException(); Task<(ImmutableArray diagnostics, bool upToDate)> IDiagnosticAnalyzerService.TryGetDiagnosticsForSpanAsync(TextDocument document, TextSpan range, Func? shouldIncludeDiagnostic, bool includeSuppressedDiagnostics, CodeActionRequestPriority priority, DiagnosticKind diagnosticKind, bool isExplicit, CancellationToken cancellationToken) => throw new NotSupportedException(); } } ================================================ FILE: Internal.Roslyn46/PublicAPI.Shipped.txt ================================================ #nullable enable ================================================ FILE: Internal.Roslyn46/PublicAPI.Unshipped.txt ================================================ ================================================ FILE: Internal.Roslyn46/SignatureHelpProviderWrapper.cs ================================================ using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; using SignatureHelpTriggerReason = Microsoft.CodeAnalysis.SignatureHelp.SignatureHelpTriggerReason; namespace MirrorSharp.Internal.Roslyn46 { internal class SignatureHelpProviderWrapper : ISignatureHelpProviderWrapper { private readonly ISignatureHelpProvider _provider; public SignatureHelpProviderWrapper(ISignatureHelpProvider provider) { _provider = provider; } public async Task GetItemsAsync(Document document, int position, SignatureHelpTriggerInfoData triggerInfo, SignatureHelpOptionsData options, CancellationToken cancellationToken) { // This is quite complicated to implement correctly and is still shifting around. // For now we will only allow default options. There is no way to check if user // intended something different, but that can be implemented later. var mappedOptions = SignatureHelpOptions.Default; var mappedTriggerInfo = new SignatureHelpTriggerInfo( (SignatureHelpTriggerReason)(int)triggerInfo.TriggerReason, triggerInfo.TriggerCharacter ); var items = await _provider.GetItemsAsync( document, position, mappedTriggerInfo, mappedOptions, cancellationToken ).ConfigureAwait(false); if (items == null) return null; return new SignatureHelpItemsData( items.Items.Select(i => new SignatureHelpItemData( i.DocumentationFactory, prefixDisplayParts: i.PrefixDisplayParts, separatorDisplayParts: i.SeparatorDisplayParts, suffixDisplayParts: i.SuffixDisplayParts, parameters: i.Parameters.Select(p => new SignatureHelpParameterData( p.Name, p.DocumentationFactory, displayParts: p.DisplayParts, prefixDisplayParts: p.PrefixDisplayParts, suffixDisplayParts: p.SuffixDisplayParts )), i.Parameters.Length )), applicableSpan: items.ApplicableSpan, argumentIndex: items.ArgumentIndex, argumentCount: items.ArgumentCount, selectedItemIndex: items.SelectedItemIndex ); } public bool IsRetriggerCharacter(char ch) => _provider.IsRetriggerCharacter(ch); public bool IsTriggerCharacter(char ch) => _provider.IsTriggerCharacter(ch); } } ================================================ FILE: Internal.Roslyn46/SignatureHelpProviderWrapperResolver.cs ================================================ using System; using System.Collections.Generic; using System.Composition; using System.Linq; using Microsoft.CodeAnalysis.Host.Mef; using Microsoft.CodeAnalysis.Shared.Utilities; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn46 { [Export(typeof(ISignatureHelpProviderWrapperResolver))] internal class SignatureHelpProviderWrapperResolver : ISignatureHelpProviderWrapperResolver { private readonly IList> _allProviders; [ImportingConstructor] public SignatureHelpProviderWrapperResolver( [ImportMany] IEnumerable> allProviders ) { _allProviders = ExtensionOrderer.Order(allProviders); } public IEnumerable GetAllSlow(string languageName) { if (languageName == null) throw new ArgumentNullException(nameof(languageName)); return _allProviders .Where(l => l.Metadata.Language == languageName) .Select(l => new SignatureHelpProviderWrapper(l.Value)); } } } ================================================ FILE: Internal.Roslyn46/WorkspaceAnalyzerOptionsInternals.cs ================================================ using System.Composition; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Diagnostics; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn46 { [Shared] [Export(typeof(IWorkspaceAnalyzerOptionsInternals))] internal class WorkspaceAnalyzerOptionsInternals : IWorkspaceAnalyzerOptionsInternals { public AnalyzerOptions New(AnalyzerOptions options, Project project) { Argument.NotNull(nameof(options), options); Argument.NotNull(nameof(project), project); return new WorkspaceAnalyzerOptions( options, IdeAnalyzerOptions.GetDefault(project.Services) ); } } } ================================================ FILE: Internal.Roslyn46/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETStandard,Version=v2.0": { "IgnoresAccessChecksToGenerator": { "type": "Direct", "requested": "[0.5.0, )", "resolved": "0.5.0", "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.6.0, )", "resolved": "4.6.0", "contentHash": "yPqWIFXnnwujlLIl6wRiVEITn9M3M+/xZrqim8a4BupBXfDUFY6ku+cM9YiDcG+Dk18jfNqUgdONLFjRJrrEYw==", "dependencies": { "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.6.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.6.0]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Direct", "requested": "[4.6.0, )", "resolved": "4.6.0", "contentHash": "dusZtHb/+BjjDLDc6L9QBOl3IDK12z6AucdYsK1WgmOa0WZ64b77hU1XnK1N5rUV/+UPMITMbBFP/GoV722Z3Q==", "dependencies": { "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Common": "[4.6.0]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Scripting.Common": "[4.6.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.6.0]", "Microsoft.DiaSymReader": "1.4.0", "System.Text.Json": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Direct", "requested": "[4.6.0, )", "resolved": "4.6.0", "contentHash": "KnBOTRwn2Tt4JXuec+P4aVO4N6zKZDACwtVA++mnZUHujmPG5xWX7whoEIW4bAp1nuAugnn0K9xpuaRBtRltpg==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "7.0.0", "Microsoft.CodeAnalysis.Common": "[4.6.0]", "System.Composition": "7.0.0", "System.IO.Pipelines": "7.0.0", "System.Threading.Channels": "7.0.0" } }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", "resolved": "2.0.3", "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.14.1", "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.3.4", "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.6.0", "contentHash": "N3uLvekc7DjvE1BX8YW7UH7ldjA4ps/Tun2YmOoSIItJrh1gnQIMKUbK1c3uQUx2NHbLibVZI4o/VB9xb4B7tA==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "System.Collections.Immutable": "7.0.0", "System.Memory": "4.5.5", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.6.0", "contentHash": "9pyFZUN2Lyu3C0Xfs49kezfH+CzQHMibGsQeQPu0P+GWyH2XXDwmyZ6jAaKQGNUXOJfC2OK01hWMJTJY315uDQ==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.6.0]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.6.0", "contentHash": "xQa3Ir0HifjTrH01bk2JSjHcU4JxC1LBQw1wC9Ewf3Y2sNttQOn73tQaZcye2Lwrm0Kiec+Vuee8HsEgGIvOnQ==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.CSharp": "[4.6.0]", "Microsoft.CodeAnalysis.Common": "[4.6.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.6.0]" } }, "Microsoft.CodeAnalysis.Elfie": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "r12elUp4MRjdnRfxEP+xqVSUUfG3yIJTBEJGwbfvF5oU4m0jb9HC0gFG28V/dAkYGMkRmHVi3qvrnBLQSw9X3Q==", "dependencies": { "System.Configuration.ConfigurationManager": "4.5.0", "System.Data.DataSetExtensions": "4.5.0" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.6.0", "contentHash": "BprguoVYmzRKvBtIDV0mkpGur5V385zqf2aPejBVcBwX9oTJORs/aPric8S2RmV+FKZj6Sj6jbmT4nwOvBQHbg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.6.0]" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.6.0", "contentHash": "k4RDHX2z4bY5lvc4hVUf6EvIoACbMsXhK4NtRupatM1Qitpoqz7O7QMx+or/kNNffs5uTo1Apc2S7NWuKjx3cA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.6.0]" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.6.0", "contentHash": "7HzRjpwMAl0AB8/0ccUk89cP1B7U8isLV6SkSpoJbDL7IOGjXIuI3CAyHqy58a51zqtal5SDTIzhzgQgRLkytw==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.6.0]", "Microsoft.CodeAnalysis.VisualBasic": "[4.6.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.6.0]" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.4.0", "contentHash": "iLtWq5/W5ePzSraavAFeXAbasE6REDByizTz6M8yQO3e4jf+6pRqPLdNCSvnSfKRVqsF7y/lTVWhqlf89ttweg==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "dQPcs0U1IKnBdRDBkrCTi1FoajSTBzLcVTpjO4MBCMC7f4pDOIPzgBoX8JjG7X6uZRJ8EBxsi8+DR1JuwjnzOQ==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Composition": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "tRwgcAkDd85O8Aq6zHDANzQaq380cek9lbMg5Qma46u5BZXq/G+XvIYmu+UI+BIIZ9zssXLYrkTykEqxxvhcmg==", "dependencies": { "System.Composition.AttributedModel": "7.0.0", "System.Composition.Convention": "7.0.0", "System.Composition.Hosting": "7.0.0", "System.Composition.Runtime": "7.0.0", "System.Composition.TypedParts": "7.0.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "2QzClqjElKxgI1jK1Jztnq44/8DmSuTSGGahXqQ4TdEV0h9s2KikQZIgcEqVzR7OuWDFPGLHIprBJGQEPr8fAQ==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "IMhTlpCs4HmlD8B+J8/kWfwX7vrBBOs6xyjSTzBlYSs7W4OET4tlkR/Sg9NG8jkdJH9Mymq0qGdYS1VPqRTBnQ==", "dependencies": { "System.Composition.AttributedModel": "7.0.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "eB6gwN9S+54jCTBJ5bpwMOVerKeUfGGTYCzz3QgDr1P55Gg/Wb27ShfPIhLMjmZ3MoAKu8uUSv6fcCdYJTN7Bg==", "dependencies": { "System.Composition.Runtime": "7.0.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "aZJ1Zr5Txe925rbo4742XifEyW0MIni1eiUebmcrP3HwLXZ3IbXUj4MFMUH/RmnJOAQiS401leg/2Sz1MkApDw==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "ZK0KNPfbtxVceTwh+oHNGUOYV2WNOHReX2AXipuvkURC7s/jPwoWfsu3SnDBDgofqbiWr96geofdQ2erm/KTHg==", "dependencies": { "System.Composition.AttributedModel": "7.0.0", "System.Composition.Hosting": "7.0.0", "System.Composition.Runtime": "7.0.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "UIFvaFfuKhLr9u5tWMxmVoDPkFeD+Qv8gUuap4aZgVGYSYMdERck4OhLN/2gulAc0nYTEigWXSJNNWshrmxnng==", "dependencies": { "System.Security.Cryptography.ProtectedData": "4.5.0", "System.Security.Permissions": "4.5.0" } }, "System.Data.DataSetExtensions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw==" }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==" }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "MclTG61lsD9sYdpNz9xsKBzjsmsfCtcMZYXz/IUr2zlhaTaABonlr1ESeompTgM+Xk+IwtGYU7/voh3YWB/fWw==", "dependencies": { "System.Collections.Immutable": "7.0.0", "System.Memory": "4.5.5" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "vW8Eoq0TMyz5vAG/6ce483x/CP83fgm4SJe5P8Tb1tZaobcvPrbMEL7rhH1DRdrYbbb6F0vq3OlzmK0Pkwks5A==", "dependencies": { "System.Security.Principal.Windows": "4.5.0" } }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q==", "dependencies": { "System.Memory": "4.5.0" } }, "System.Security.Permissions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "9gdyuARhUR7H+p5CjyUB/zPk7/Xut3wUSP8NJQB6iZr8L3XUXTMdoLeVAg9N4rqF8oIpE7MpdqHdDHQ7XgJe0g==", "dependencies": { "System.Security.AccessControl": "4.5.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "U77HfRXlZlOeIXd//Yoj6Jnk8AXlbeisf1oq1os+hxOGVnuG+lGSfGqTwTZBoORFF6j/0q7HXIl8cqwQ9aUGqQ==" }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Threading.Channels": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "qmeeYNROMsONF6ndEZcIQ+VxR4Q/TX/7uIVLJqtwIWL7dDWeh0l1UIqgo4wYyjG//5lUNhwkLDSFl+pAWO6oiA==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis": "[3.3.1, )", "Microsoft.CodeAnalysis.Features": "[3.3.1, )" } } } } } ================================================ FILE: Internal.Roslyn47/CodeActionInternals.cs ================================================ using System.Collections.Immutable; using System.Composition; using Microsoft.CodeAnalysis.CodeActions; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn47 { [Shared] [Export(typeof(ICodeActionInternals))] internal class CodeActionInternals : ICodeActionInternals { public bool IsInlinable(CodeAction action) { Argument.NotNull(nameof(action), action); return action.IsInlinable; } public Roslyn.Internals.CodeActionPriority GetPriority(CodeAction action) { Argument.NotNull(nameof(action), action); return (Roslyn.Internals.CodeActionPriority)(int)action.Priority; } public ImmutableArray GetNestedCodeActions(CodeAction action) { Argument.NotNull(nameof(action), action); return action.NestedCodeActions; } } } ================================================ FILE: Internal.Roslyn47/Internal.Roslyn47.csproj ================================================ netstandard2.0 MirrorSharp.Internal.Roslyn47 MirrorSharp.Internal.Roslyn47 false Microsoft.CodeAnalysis.Features;Microsoft.CodeAnalysis.Workspaces ================================================ FILE: Internal.Roslyn47/MirrorSharpDiagnosticAnalyzerService.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Composition; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CodeActions; using Microsoft.CodeAnalysis.Diagnostics; using Microsoft.CodeAnalysis.Options; using Microsoft.CodeAnalysis.Text; namespace MirrorSharp.Internal.Roslyn47 { [Shared] [Export(typeof(IDiagnosticAnalyzerService))] internal class MirrorSharpDiagnosticAnalyzerService : IDiagnosticAnalyzerService { DiagnosticAnalyzerInfoCache IDiagnosticAnalyzerService.AnalyzerInfoCache { get; } = new(); IGlobalOptionService IDiagnosticAnalyzerService.GlobalOptions => throw new NotSupportedException(); Task IDiagnosticAnalyzerService.ForceAnalyzeAsync(Solution solution, Action onProjectAnalyzed, ProjectId? projectId, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetCachedDiagnosticsAsync(Workspace workspace, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, ImmutableHashSet? diagnosticIds, bool includeSuppressedDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForSpanAsync(TextDocument document, TextSpan? range, Func? shouldIncludeDiagnostic, bool includeCompilerDiagnostics, bool includeSuppressedDiagnostics, ICodeActionRequestPriorityProvider priorityProvider, Func? addOperationScope, DiagnosticKind diagnosticKind, bool isExplicit, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetProjectDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, ImmutableHashSet? diagnosticIds, bool includeSuppressedDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetSpecificCachedDiagnosticsAsync(Workspace workspace, object id, bool includeSuppressedDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); void IDiagnosticAnalyzerService.Reanalyze(Workspace workspace, IEnumerable? projectIds, IEnumerable? documentIds, bool highPriority) => throw new NotSupportedException(); Task<(ImmutableArray diagnostics, bool upToDate)> IDiagnosticAnalyzerService.TryGetDiagnosticsForSpanAsync(TextDocument document, TextSpan range, Func? shouldIncludeDiagnostic, bool includeSuppressedDiagnostics, ICodeActionRequestPriorityProvider priorityProvider, DiagnosticKind diagnosticKind, bool isExplicit, CancellationToken cancellationToken) => throw new NotSupportedException(); } } ================================================ FILE: Internal.Roslyn47/PublicAPI.Shipped.txt ================================================ #nullable enable ================================================ FILE: Internal.Roslyn47/PublicAPI.Unshipped.txt ================================================ ================================================ FILE: Internal.Roslyn47/SignatureHelpProviderWrapper.cs ================================================ using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; using SignatureHelpTriggerReason = Microsoft.CodeAnalysis.SignatureHelp.SignatureHelpTriggerReason; namespace MirrorSharp.Internal.Roslyn47 { internal class SignatureHelpProviderWrapper : ISignatureHelpProviderWrapper { private readonly ISignatureHelpProvider _provider; public SignatureHelpProviderWrapper(ISignatureHelpProvider provider) { _provider = provider; } public async Task GetItemsAsync(Document document, int position, SignatureHelpTriggerInfoData triggerInfo, SignatureHelpOptionsData options, CancellationToken cancellationToken) { // This is quite complicated to implement correctly and is still shifting around. // For now we will only allow default options. There is no way to check if user // intended something different, but that can be implemented later. var mappedOptions = SignatureHelpOptions.Default; var mappedTriggerInfo = new SignatureHelpTriggerInfo( (SignatureHelpTriggerReason)(int)triggerInfo.TriggerReason, triggerInfo.TriggerCharacter ); var items = await _provider.GetItemsAsync( document, position, mappedTriggerInfo, mappedOptions, cancellationToken ).ConfigureAwait(false); if (items == null) return null; return new SignatureHelpItemsData( items.Items.Select(i => new SignatureHelpItemData( i.DocumentationFactory, prefixDisplayParts: i.PrefixDisplayParts, separatorDisplayParts: i.SeparatorDisplayParts, suffixDisplayParts: i.SuffixDisplayParts, parameters: i.Parameters.Select(p => new SignatureHelpParameterData( p.Name, p.DocumentationFactory, displayParts: p.DisplayParts, prefixDisplayParts: p.PrefixDisplayParts, suffixDisplayParts: p.SuffixDisplayParts )), i.Parameters.Length )), applicableSpan: items.ApplicableSpan, argumentIndex: items.ArgumentIndex, argumentCount: items.ArgumentCount, selectedItemIndex: items.SelectedItemIndex ); } public bool IsRetriggerCharacter(char ch) => _provider.IsRetriggerCharacter(ch); public bool IsTriggerCharacter(char ch) => _provider.IsTriggerCharacter(ch); } } ================================================ FILE: Internal.Roslyn47/SignatureHelpProviderWrapperResolver.cs ================================================ using System; using System.Collections.Generic; using System.Composition; using System.Linq; using Microsoft.CodeAnalysis.Host.Mef; using Microsoft.CodeAnalysis.Shared.Utilities; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn47 { [Export(typeof(ISignatureHelpProviderWrapperResolver))] internal class SignatureHelpProviderWrapperResolver : ISignatureHelpProviderWrapperResolver { private readonly IList> _allProviders; [ImportingConstructor] public SignatureHelpProviderWrapperResolver( [ImportMany] IEnumerable> allProviders ) { _allProviders = ExtensionOrderer.Order(allProviders); } public IEnumerable GetAllSlow(string languageName) { if (languageName == null) throw new ArgumentNullException(nameof(languageName)); return _allProviders .Where(l => l.Metadata.Language == languageName) .Select(l => new SignatureHelpProviderWrapper(l.Value)); } } } ================================================ FILE: Internal.Roslyn47/WorkspaceAnalyzerOptionsInternals.cs ================================================ using System.Composition; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Diagnostics; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn47 { [Shared] [Export(typeof(IWorkspaceAnalyzerOptionsInternals))] internal class WorkspaceAnalyzerOptionsInternals : IWorkspaceAnalyzerOptionsInternals { public AnalyzerOptions New(AnalyzerOptions options, Project project) { Argument.NotNull(nameof(options), options); Argument.NotNull(nameof(project), project); return new WorkspaceAnalyzerOptions( options, IdeAnalyzerOptions.GetDefault(project.Services) ); } } } ================================================ FILE: Internal.Roslyn47/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETStandard,Version=v2.0": { "IgnoresAccessChecksToGenerator": { "type": "Direct", "requested": "[0.5.0, )", "resolved": "0.5.0", "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.7.0, )", "resolved": "4.7.0", "contentHash": "zJQG1aUshI5R28EmVPnXgtVL5sLLAGOelLNkMlEKH3yh4sLUVPepitRe+HM0lSRLoTSu/ya0prwtUDku9xsZWQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.7.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.7.0]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Direct", "requested": "[4.7.0, )", "resolved": "4.7.0", "contentHash": "HTYbcr0djPBYTijN4EbvVi4tdNUQMHflKM8OkfD2RmYDZm4pH4/3AwrLrziKMMUS07PPpGKZkb/io93zjzWDYg==", "dependencies": { "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Common": "[4.7.0]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Scripting.Common": "[4.7.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.7.0]", "Microsoft.DiaSymReader": "2.0.0", "System.Text.Json": "7.0.3", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Direct", "requested": "[4.7.0, )", "resolved": "4.7.0", "contentHash": "izjaI7OzNQnIiIJJQ5nLETA98rSWyCjkmup55bdLXWjUKYsFt/kz94uedtzGaWOOgTyHPRhQG9kgr6wNIZXxjA==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "7.0.0", "Microsoft.CodeAnalysis.Common": "[4.7.0]", "System.Composition": "7.0.0", "System.IO.Pipelines": "7.0.0", "System.Threading.Channels": "7.0.0" } }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", "resolved": "2.0.3", "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.14.1", "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.3.4", "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "pD5S14xMUebSGYe75kt0q/aaS/ftvktSo/pEv7aX7hNPHfdZS+SZeXvkvcffGxWkunYOyRF9m1oN7zzSdYj9dQ==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "System.Collections.Immutable": "7.0.0", "System.Memory": "4.5.5", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "JHCP2L6lB0oJ3tQoHkC67SFZxW+KbJVOnAo+6L01K5r/NlBlSUhTk5nUAldWhTVwGdzqNeHqGtnEqpsCmGSwQA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.7.0]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "SGTp5f22SJJKTHzNe3cfk57KHX7sYxrnfG9juXrbIidt3pooKMnxMN9aBCI/smMCLLB7RHITJrbzGCKvYhBqpA==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.CSharp": "[4.7.0]", "Microsoft.CodeAnalysis.Common": "[4.7.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.7.0]" } }, "Microsoft.CodeAnalysis.Elfie": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "r12elUp4MRjdnRfxEP+xqVSUUfG3yIJTBEJGwbfvF5oU4m0jb9HC0gFG28V/dAkYGMkRmHVi3qvrnBLQSw9X3Q==", "dependencies": { "System.Configuration.ConfigurationManager": "4.5.0", "System.Data.DataSetExtensions": "4.5.0" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "/rooxKDFwy5XnhXdhGfk0I7zaPuLg6G+jPlS0r0gxmdgYwhqIvLBRm2DMyI2WthxwGtPTCo2LqhCc5i5+JEnaw==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.7.0]" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "smGPrhgifTZqPbUQ5UoHOtcKGIG1nHGGOy7lbQ0Td/ByrVQ9UEmOTDPvIOhhzYc9LNQo2zmxRTXTvkx+PJVARA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.7.0]" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "TfMS0+BFJ6YXsyqmSuGcTFC1/vtED35X4oMIDLrpAboNmgrx0ukR83pVKE2cGpF5ck9DzCmWvZNPHNiKc7d99g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.7.0]", "Microsoft.CodeAnalysis.VisualBasic": "[4.7.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.7.0]" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "2.0.0", "contentHash": "QcZrCETsBJqy/vQpFtJc+jSXQ0K5sucQ6NUFbTNVHD4vfZZOwjZ/3sBzczkC4DityhD3AVO/+K/+9ioLs1AgRA==" }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "dQPcs0U1IKnBdRDBkrCTi1FoajSTBzLcVTpjO4MBCMC7f4pDOIPzgBoX8JjG7X6uZRJ8EBxsi8+DR1JuwjnzOQ==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Composition": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "tRwgcAkDd85O8Aq6zHDANzQaq380cek9lbMg5Qma46u5BZXq/G+XvIYmu+UI+BIIZ9zssXLYrkTykEqxxvhcmg==", "dependencies": { "System.Composition.AttributedModel": "7.0.0", "System.Composition.Convention": "7.0.0", "System.Composition.Hosting": "7.0.0", "System.Composition.Runtime": "7.0.0", "System.Composition.TypedParts": "7.0.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "2QzClqjElKxgI1jK1Jztnq44/8DmSuTSGGahXqQ4TdEV0h9s2KikQZIgcEqVzR7OuWDFPGLHIprBJGQEPr8fAQ==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "IMhTlpCs4HmlD8B+J8/kWfwX7vrBBOs6xyjSTzBlYSs7W4OET4tlkR/Sg9NG8jkdJH9Mymq0qGdYS1VPqRTBnQ==", "dependencies": { "System.Composition.AttributedModel": "7.0.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "eB6gwN9S+54jCTBJ5bpwMOVerKeUfGGTYCzz3QgDr1P55Gg/Wb27ShfPIhLMjmZ3MoAKu8uUSv6fcCdYJTN7Bg==", "dependencies": { "System.Composition.Runtime": "7.0.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "aZJ1Zr5Txe925rbo4742XifEyW0MIni1eiUebmcrP3HwLXZ3IbXUj4MFMUH/RmnJOAQiS401leg/2Sz1MkApDw==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "ZK0KNPfbtxVceTwh+oHNGUOYV2WNOHReX2AXipuvkURC7s/jPwoWfsu3SnDBDgofqbiWr96geofdQ2erm/KTHg==", "dependencies": { "System.Composition.AttributedModel": "7.0.0", "System.Composition.Hosting": "7.0.0", "System.Composition.Runtime": "7.0.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "UIFvaFfuKhLr9u5tWMxmVoDPkFeD+Qv8gUuap4aZgVGYSYMdERck4OhLN/2gulAc0nYTEigWXSJNNWshrmxnng==", "dependencies": { "System.Security.Cryptography.ProtectedData": "4.5.0", "System.Security.Permissions": "4.5.0" } }, "System.Data.DataSetExtensions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw==" }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==" }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "MclTG61lsD9sYdpNz9xsKBzjsmsfCtcMZYXz/IUr2zlhaTaABonlr1ESeompTgM+Xk+IwtGYU7/voh3YWB/fWw==", "dependencies": { "System.Collections.Immutable": "7.0.0", "System.Memory": "4.5.5" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "vW8Eoq0TMyz5vAG/6ce483x/CP83fgm4SJe5P8Tb1tZaobcvPrbMEL7rhH1DRdrYbbb6F0vq3OlzmK0Pkwks5A==", "dependencies": { "System.Security.Principal.Windows": "4.5.0" } }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q==", "dependencies": { "System.Memory": "4.5.0" } }, "System.Security.Permissions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "9gdyuARhUR7H+p5CjyUB/zPk7/Xut3wUSP8NJQB6iZr8L3XUXTMdoLeVAg9N4rqF8oIpE7MpdqHdDHQ7XgJe0g==", "dependencies": { "System.Security.AccessControl": "4.5.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "U77HfRXlZlOeIXd//Yoj6Jnk8AXlbeisf1oq1os+hxOGVnuG+lGSfGqTwTZBoORFF6j/0q7HXIl8cqwQ9aUGqQ==" }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Threading.Channels": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "qmeeYNROMsONF6ndEZcIQ+VxR4Q/TX/7uIVLJqtwIWL7dDWeh0l1UIqgo4wYyjG//5lUNhwkLDSFl+pAWO6oiA==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis": "[3.3.1, )", "Microsoft.CodeAnalysis.Features": "[3.3.1, )" } } } } } ================================================ FILE: Internal.Roslyn48/CodeActionInternals.cs ================================================ using System.Collections.Immutable; using System.Composition; using Microsoft.CodeAnalysis.CodeActions; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn48 { [Shared] [Export(typeof(ICodeActionInternals))] internal class CodeActionInternals : ICodeActionInternals { public bool IsInlinable(CodeAction action) { Argument.NotNull(nameof(action), action); return action.IsInlinable; } public Roslyn.Internals.CodeActionPriority GetPriority(CodeAction action) { Argument.NotNull(nameof(action), action); return (Roslyn.Internals.CodeActionPriority)(int)action.Priority; } public ImmutableArray GetNestedCodeActions(CodeAction action) { Argument.NotNull(nameof(action), action); return action.NestedCodeActions; } } } ================================================ FILE: Internal.Roslyn48/Internal.Roslyn48.csproj ================================================ netstandard2.0 MirrorSharp.Internal.Roslyn48 MirrorSharp.Internal.Roslyn48 false Microsoft.CodeAnalysis.Features;Microsoft.CodeAnalysis.Workspaces ================================================ FILE: Internal.Roslyn48/MirrorSharpDiagnosticAnalyzerService.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Composition; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CodeActions; using Microsoft.CodeAnalysis.Diagnostics; using Microsoft.CodeAnalysis.Options; using Microsoft.CodeAnalysis.Text; namespace MirrorSharp.Internal.Roslyn48 { [Shared] [Export(typeof(IDiagnosticAnalyzerService))] internal class MirrorSharpDiagnosticAnalyzerService : IDiagnosticAnalyzerService { DiagnosticAnalyzerInfoCache IDiagnosticAnalyzerService.AnalyzerInfoCache { get; } = new(); IGlobalOptionService IDiagnosticAnalyzerService.GlobalOptions => throw new NotSupportedException(); Task IDiagnosticAnalyzerService.ForceAnalyzeAsync(Solution solution, Action onProjectAnalyzed, ProjectId? projectId, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetCachedDiagnosticsAsync(Workspace workspace, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, ImmutableHashSet? diagnosticIds, Func? shouldIncludeAnalyzer, bool includeSuppressedDiagnostics, bool includeLocalDocumentDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForSpanAsync(TextDocument document, TextSpan? range, Func? shouldIncludeDiagnostic, bool includeCompilerDiagnostics, bool includeSuppressedDiagnostics, ICodeActionRequestPriorityProvider priorityProvider, Func? addOperationScope, DiagnosticKind diagnosticKind, bool isExplicit, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetProjectDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, ImmutableHashSet? diagnosticIds, Func? shouldIncludeAnalyzer, bool includeSuppressedDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetSpecificCachedDiagnosticsAsync(Workspace workspace, object id, bool includeSuppressedDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); void IDiagnosticAnalyzerService.Reanalyze(Workspace workspace, IEnumerable? projectIds, IEnumerable? documentIds, bool highPriority) => throw new NotSupportedException(); Task<(ImmutableArray diagnostics, bool upToDate)> IDiagnosticAnalyzerService.TryGetDiagnosticsForSpanAsync(TextDocument document, TextSpan range, Func? shouldIncludeDiagnostic, bool includeSuppressedDiagnostics, ICodeActionRequestPriorityProvider priorityProvider, DiagnosticKind diagnosticKind, bool isExplicit, CancellationToken cancellationToken) => throw new NotSupportedException(); } } ================================================ FILE: Internal.Roslyn48/PublicAPI.Shipped.txt ================================================ #nullable enable ================================================ FILE: Internal.Roslyn48/PublicAPI.Unshipped.txt ================================================ ================================================ FILE: Internal.Roslyn48/SignatureHelpProviderWrapper.cs ================================================ using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; using SignatureHelpTriggerReason = Microsoft.CodeAnalysis.SignatureHelp.SignatureHelpTriggerReason; namespace MirrorSharp.Internal.Roslyn48 { internal class SignatureHelpProviderWrapper : ISignatureHelpProviderWrapper { private readonly ISignatureHelpProvider _provider; public SignatureHelpProviderWrapper(ISignatureHelpProvider provider) { _provider = provider; } public async Task GetItemsAsync(Document document, int position, SignatureHelpTriggerInfoData triggerInfo, SignatureHelpOptionsData options, CancellationToken cancellationToken) { // This is quite complicated to implement correctly and is still shifting around. // For now we will only allow default options. There is no way to check if user // intended something different, but that can be implemented later. var mappedOptions = SignatureHelpOptions.Default; var mappedTriggerInfo = new SignatureHelpTriggerInfo( (SignatureHelpTriggerReason)(int)triggerInfo.TriggerReason, triggerInfo.TriggerCharacter ); var items = await _provider.GetItemsAsync( document, position, mappedTriggerInfo, mappedOptions, cancellationToken ).ConfigureAwait(false); if (items == null) return null; return new SignatureHelpItemsData( items.Items.Select(i => new SignatureHelpItemData( i.DocumentationFactory, prefixDisplayParts: i.PrefixDisplayParts, separatorDisplayParts: i.SeparatorDisplayParts, suffixDisplayParts: i.SuffixDisplayParts, parameters: i.Parameters.Select(p => new SignatureHelpParameterData( p.Name, p.DocumentationFactory, displayParts: p.DisplayParts, prefixDisplayParts: p.PrefixDisplayParts, suffixDisplayParts: p.SuffixDisplayParts )), i.Parameters.Length )), applicableSpan: items.ApplicableSpan, argumentIndex: items.ArgumentIndex, argumentCount: items.ArgumentCount, selectedItemIndex: items.SelectedItemIndex ); } public bool IsRetriggerCharacter(char ch) => _provider.IsRetriggerCharacter(ch); public bool IsTriggerCharacter(char ch) => _provider.IsTriggerCharacter(ch); } } ================================================ FILE: Internal.Roslyn48/SignatureHelpProviderWrapperResolver.cs ================================================ using System; using System.Collections.Generic; using System.Composition; using System.Linq; using Microsoft.CodeAnalysis.Host.Mef; using Microsoft.CodeAnalysis.Shared.Utilities; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn48 { [Export(typeof(ISignatureHelpProviderWrapperResolver))] internal class SignatureHelpProviderWrapperResolver : ISignatureHelpProviderWrapperResolver { private readonly IList> _allProviders; [ImportingConstructor] public SignatureHelpProviderWrapperResolver( [ImportMany] IEnumerable> allProviders ) { _allProviders = ExtensionOrderer.Order(allProviders); } public IEnumerable GetAllSlow(string languageName) { if (languageName == null) throw new ArgumentNullException(nameof(languageName)); return _allProviders .Where(l => l.Metadata.Language == languageName) .Select(l => new SignatureHelpProviderWrapper(l.Value)); } } } ================================================ FILE: Internal.Roslyn48/WorkspaceAnalyzerOptionsInternals.cs ================================================ using System.Composition; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Diagnostics; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn48 { [Shared] [Export(typeof(IWorkspaceAnalyzerOptionsInternals))] internal class WorkspaceAnalyzerOptionsInternals : IWorkspaceAnalyzerOptionsInternals { public AnalyzerOptions New(AnalyzerOptions options, Project project) { Argument.NotNull(nameof(options), options); Argument.NotNull(nameof(project), project); return new WorkspaceAnalyzerOptions( options, IdeAnalyzerOptions.GetDefault(project.Services) ); } } } ================================================ FILE: Internal.Roslyn48/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETStandard,Version=v2.0": { "IgnoresAccessChecksToGenerator": { "type": "Direct", "requested": "[0.5.0, )", "resolved": "0.5.0", "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.8.0, )", "resolved": "4.8.0", "contentHash": "g5eTgZVyBr4k1zxvJeVrJ1nDvBHrDt7XX2Uo7UWRoF9GdzOv9od4WtOeL1/e86ifgwX/H7H1Vs5u2OCdv0HYpQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.8.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.8.0]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Direct", "requested": "[4.8.0, )", "resolved": "4.8.0", "contentHash": "sCVzMtSETGE16KeScwwlVfxaKRbUMSf/cgRPRPMJuou37SLT7XkIBzJu4e7mlFTzpJbfalV5tOcKpUtLO3eJAg==", "dependencies": { "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Common": "[4.8.0]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Scripting.Common": "[4.8.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.8.0]", "Microsoft.DiaSymReader": "2.0.0", "System.Text.Json": "7.0.3", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Direct", "requested": "[4.8.0, )", "resolved": "4.8.0", "contentHash": "LXyV+MJKsKRu3FGJA3OmSk40OUIa/dQCFLOnm5X8MNcujx7hzGu8o+zjXlb/cy5xUdZK2UKYb9YaQ2E8m9QehQ==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "7.0.0", "Microsoft.CodeAnalysis.Common": "[4.8.0]", "System.Composition": "7.0.0", "System.IO.Pipelines": "7.0.0", "System.Threading.Channels": "7.0.0" } }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", "resolved": "2.0.3", "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.14.1", "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.3.4", "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.8.0", "contentHash": "/jR+e/9aT+BApoQJABlVCKnnggGQbvGh7BKq2/wI1LamxC+LbzhcLj4Vj7gXCofl1n4E521YfF9w0WcASGg/KA==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "System.Collections.Immutable": "7.0.0", "System.Memory": "4.5.5", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.8.0", "contentHash": "+3+qfdb/aaGD8PZRCrsdobbzGs1m9u119SkkJt8e/mk3xLJz/udLtS2T6nY27OTXxBBw10HzAbC8Z9w08VyP/g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.8.0]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.8.0", "contentHash": "3amm4tq4Lo8/BGvg9p3BJh3S9nKq2wqCXfS7138i69TUpo/bD+XvD0hNurpEBtcNZhi1FyutiomKJqVF39ugYA==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.CSharp": "[4.8.0]", "Microsoft.CodeAnalysis.Common": "[4.8.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.8.0]" } }, "Microsoft.CodeAnalysis.Elfie": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "r12elUp4MRjdnRfxEP+xqVSUUfG3yIJTBEJGwbfvF5oU4m0jb9HC0gFG28V/dAkYGMkRmHVi3qvrnBLQSw9X3Q==", "dependencies": { "System.Configuration.ConfigurationManager": "4.5.0", "System.Data.DataSetExtensions": "4.5.0" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.8.0", "contentHash": "ysiNNbAASVhV9wEd5oY2x99EwaVYtB13XZRjHsgWT/R1mQkxZF8jWsf7JWaZxD1+jNoz1QCQ6nbe+vr+6QvlFA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.8.0]" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.8.0", "contentHash": "kfHPh/etcWypMDYfHxgfitgJMhi986OFCICb76RPcA1Toordf6bBYEJytWr2L5CNdkXFWuw5qTkrlsktBav4VA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.8.0]" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.8.0", "contentHash": "4fNpQX8LRV0ZCfB6+rr9s61zdhNpN6Bgow/kmvsO2Gm5KtzbOUPijbUZex26wJwRHyW+ZYoatTRd449A7+D3Wg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.8.0]", "Microsoft.CodeAnalysis.VisualBasic": "[4.8.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.8.0]" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "2.0.0", "contentHash": "QcZrCETsBJqy/vQpFtJc+jSXQ0K5sucQ6NUFbTNVHD4vfZZOwjZ/3sBzczkC4DityhD3AVO/+K/+9ioLs1AgRA==" }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "dQPcs0U1IKnBdRDBkrCTi1FoajSTBzLcVTpjO4MBCMC7f4pDOIPzgBoX8JjG7X6uZRJ8EBxsi8+DR1JuwjnzOQ==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Composition": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "tRwgcAkDd85O8Aq6zHDANzQaq380cek9lbMg5Qma46u5BZXq/G+XvIYmu+UI+BIIZ9zssXLYrkTykEqxxvhcmg==", "dependencies": { "System.Composition.AttributedModel": "7.0.0", "System.Composition.Convention": "7.0.0", "System.Composition.Hosting": "7.0.0", "System.Composition.Runtime": "7.0.0", "System.Composition.TypedParts": "7.0.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "2QzClqjElKxgI1jK1Jztnq44/8DmSuTSGGahXqQ4TdEV0h9s2KikQZIgcEqVzR7OuWDFPGLHIprBJGQEPr8fAQ==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "IMhTlpCs4HmlD8B+J8/kWfwX7vrBBOs6xyjSTzBlYSs7W4OET4tlkR/Sg9NG8jkdJH9Mymq0qGdYS1VPqRTBnQ==", "dependencies": { "System.Composition.AttributedModel": "7.0.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "eB6gwN9S+54jCTBJ5bpwMOVerKeUfGGTYCzz3QgDr1P55Gg/Wb27ShfPIhLMjmZ3MoAKu8uUSv6fcCdYJTN7Bg==", "dependencies": { "System.Composition.Runtime": "7.0.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "aZJ1Zr5Txe925rbo4742XifEyW0MIni1eiUebmcrP3HwLXZ3IbXUj4MFMUH/RmnJOAQiS401leg/2Sz1MkApDw==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "ZK0KNPfbtxVceTwh+oHNGUOYV2WNOHReX2AXipuvkURC7s/jPwoWfsu3SnDBDgofqbiWr96geofdQ2erm/KTHg==", "dependencies": { "System.Composition.AttributedModel": "7.0.0", "System.Composition.Hosting": "7.0.0", "System.Composition.Runtime": "7.0.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "UIFvaFfuKhLr9u5tWMxmVoDPkFeD+Qv8gUuap4aZgVGYSYMdERck4OhLN/2gulAc0nYTEigWXSJNNWshrmxnng==", "dependencies": { "System.Security.Cryptography.ProtectedData": "4.5.0", "System.Security.Permissions": "4.5.0" } }, "System.Data.DataSetExtensions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw==" }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==" }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "MclTG61lsD9sYdpNz9xsKBzjsmsfCtcMZYXz/IUr2zlhaTaABonlr1ESeompTgM+Xk+IwtGYU7/voh3YWB/fWw==", "dependencies": { "System.Collections.Immutable": "7.0.0", "System.Memory": "4.5.5" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "vW8Eoq0TMyz5vAG/6ce483x/CP83fgm4SJe5P8Tb1tZaobcvPrbMEL7rhH1DRdrYbbb6F0vq3OlzmK0Pkwks5A==", "dependencies": { "System.Security.Principal.Windows": "4.5.0" } }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q==", "dependencies": { "System.Memory": "4.5.0" } }, "System.Security.Permissions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "9gdyuARhUR7H+p5CjyUB/zPk7/Xut3wUSP8NJQB6iZr8L3XUXTMdoLeVAg9N4rqF8oIpE7MpdqHdDHQ7XgJe0g==", "dependencies": { "System.Security.AccessControl": "4.5.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "U77HfRXlZlOeIXd//Yoj6Jnk8AXlbeisf1oq1os+hxOGVnuG+lGSfGqTwTZBoORFF6j/0q7HXIl8cqwQ9aUGqQ==" }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Threading.Channels": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "qmeeYNROMsONF6ndEZcIQ+VxR4Q/TX/7uIVLJqtwIWL7dDWeh0l1UIqgo4wYyjG//5lUNhwkLDSFl+pAWO6oiA==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis": "[3.3.1, )", "Microsoft.CodeAnalysis.Features": "[3.3.1, )" } } } } } ================================================ FILE: Internal.Roslyn49/CodeActionInternals.cs ================================================ using System.Collections.Immutable; using System.Composition; using Microsoft.CodeAnalysis.CodeActions; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn49 { [Shared] [Export(typeof(ICodeActionInternals))] internal class CodeActionInternals : ICodeActionInternals { public bool IsInlinable(CodeAction action) { Argument.NotNull(nameof(action), action); return action.IsInlinable; } public Roslyn.Internals.CodeActionPriority GetPriority(CodeAction action) { Argument.NotNull(nameof(action), action); return (Roslyn.Internals.CodeActionPriority)(int)action.Priority; } public ImmutableArray GetNestedCodeActions(CodeAction action) { Argument.NotNull(nameof(action), action); return action.NestedCodeActions; } } } ================================================ FILE: Internal.Roslyn49/Internal.Roslyn49.csproj ================================================ netstandard2.0 MirrorSharp.Internal.Roslyn49 MirrorSharp.Internal.Roslyn49 false Microsoft.CodeAnalysis.Features;Microsoft.CodeAnalysis.Workspaces ================================================ FILE: Internal.Roslyn49/MirrorSharpDiagnosticAnalyzerService.cs ================================================ using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Composition; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CodeActions; using Microsoft.CodeAnalysis.Diagnostics; using Microsoft.CodeAnalysis.Options; using Microsoft.CodeAnalysis.Text; namespace MirrorSharp.Internal.Roslyn49 { [Shared] [Export(typeof(IDiagnosticAnalyzerService))] internal class MirrorSharpDiagnosticAnalyzerService : IDiagnosticAnalyzerService { DiagnosticAnalyzerInfoCache IDiagnosticAnalyzerService.AnalyzerInfoCache { get; } = new(); IGlobalOptionService IDiagnosticAnalyzerService.GlobalOptions => throw new NotSupportedException(); Task IDiagnosticAnalyzerService.ForceAnalyzeProjectAsync(Project project, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetCachedDiagnosticsAsync(Workspace workspace, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics, bool includeLocalDocumentDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, bool includeSuppressedDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, DocumentId? documentId, ImmutableHashSet? diagnosticIds, Func? shouldIncludeAnalyzer, bool includeSuppressedDiagnostics, bool includeLocalDocumentDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetDiagnosticsForSpanAsync(TextDocument document, TextSpan? range, Func? shouldIncludeDiagnostic, bool includeCompilerDiagnostics, bool includeSuppressedDiagnostics, ICodeActionRequestPriorityProvider priorityProvider, Func? addOperationScope, DiagnosticKind diagnosticKind, bool isExplicit, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetProjectDiagnosticsForIdsAsync(Solution solution, ProjectId? projectId, ImmutableHashSet? diagnosticIds, Func? shouldIncludeAnalyzer, bool includeSuppressedDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); Task> IDiagnosticAnalyzerService.GetSpecificCachedDiagnosticsAsync(Workspace workspace, object id, bool includeSuppressedDiagnostics, bool includeNonLocalDocumentDiagnostics, CancellationToken cancellationToken) => throw new NotSupportedException(); void IDiagnosticAnalyzerService.Reanalyze(Workspace workspace, IEnumerable? projectIds, IEnumerable? documentIds, bool highPriority) => throw new NotSupportedException(); Task<(ImmutableArray diagnostics, bool upToDate)> IDiagnosticAnalyzerService.TryGetDiagnosticsForSpanAsync(TextDocument document, TextSpan range, Func? shouldIncludeDiagnostic, bool includeSuppressedDiagnostics, ICodeActionRequestPriorityProvider priorityProvider, DiagnosticKind diagnosticKind, bool isExplicit, CancellationToken cancellationToken) => throw new NotSupportedException(); } } ================================================ FILE: Internal.Roslyn49/PublicAPI.Shipped.txt ================================================ #nullable enable ================================================ FILE: Internal.Roslyn49/PublicAPI.Unshipped.txt ================================================ ================================================ FILE: Internal.Roslyn49/SignatureHelpProviderWrapper.cs ================================================ using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; using SignatureHelpTriggerReason = Microsoft.CodeAnalysis.SignatureHelp.SignatureHelpTriggerReason; namespace MirrorSharp.Internal.Roslyn49 { internal class SignatureHelpProviderWrapper : ISignatureHelpProviderWrapper { private readonly ISignatureHelpProvider _provider; public SignatureHelpProviderWrapper(ISignatureHelpProvider provider) { _provider = provider; } public async Task GetItemsAsync(Document document, int position, SignatureHelpTriggerInfoData triggerInfo, SignatureHelpOptionsData options, CancellationToken cancellationToken) { // This is quite complicated to implement correctly and is still shifting around. // For now we will only allow default options. There is no way to check if user // intended something different, but that can be implemented later. var mappedOptions = SignatureHelpOptions.Default; var mappedTriggerInfo = new SignatureHelpTriggerInfo( (SignatureHelpTriggerReason)(int)triggerInfo.TriggerReason, triggerInfo.TriggerCharacter ); var items = await _provider.GetItemsAsync( document, position, mappedTriggerInfo, mappedOptions, cancellationToken ).ConfigureAwait(false); if (items == null) return null; return new SignatureHelpItemsData( items.Items.Select(i => new SignatureHelpItemData( i.DocumentationFactory, prefixDisplayParts: i.PrefixDisplayParts, separatorDisplayParts: i.SeparatorDisplayParts, suffixDisplayParts: i.SuffixDisplayParts, parameters: i.Parameters.Select(p => new SignatureHelpParameterData( p.Name, p.DocumentationFactory, displayParts: p.DisplayParts, prefixDisplayParts: p.PrefixDisplayParts, suffixDisplayParts: p.SuffixDisplayParts )), i.Parameters.Length )), applicableSpan: items.ApplicableSpan, argumentIndex: items.ArgumentIndex, argumentCount: items.ArgumentCount, selectedItemIndex: items.SelectedItemIndex ); } public bool IsRetriggerCharacter(char ch) => _provider.IsRetriggerCharacter(ch); public bool IsTriggerCharacter(char ch) => _provider.IsTriggerCharacter(ch); } } ================================================ FILE: Internal.Roslyn49/SignatureHelpProviderWrapperResolver.cs ================================================ using System; using System.Collections.Generic; using System.Composition; using System.Linq; using Microsoft.CodeAnalysis.Host.Mef; using Microsoft.CodeAnalysis.Shared.Utilities; using Microsoft.CodeAnalysis.SignatureHelp; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn49 { [Export(typeof(ISignatureHelpProviderWrapperResolver))] internal class SignatureHelpProviderWrapperResolver : ISignatureHelpProviderWrapperResolver { private readonly IList> _allProviders; [ImportingConstructor] public SignatureHelpProviderWrapperResolver( [ImportMany] IEnumerable> allProviders ) { _allProviders = ExtensionOrderer.Order(allProviders); } public IEnumerable GetAllSlow(string languageName) { if (languageName == null) throw new ArgumentNullException(nameof(languageName)); return _allProviders .Where(l => l.Metadata.Language == languageName) .Select(l => new SignatureHelpProviderWrapper(l.Value)); } } } ================================================ FILE: Internal.Roslyn49/WorkspaceAnalyzerOptionsInternals.cs ================================================ using System.Composition; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Diagnostics; using MirrorSharp.Internal.Roslyn.Internals; namespace MirrorSharp.Internal.Roslyn49 { [Shared] [Export(typeof(IWorkspaceAnalyzerOptionsInternals))] internal class WorkspaceAnalyzerOptionsInternals : IWorkspaceAnalyzerOptionsInternals { public AnalyzerOptions New(AnalyzerOptions options, Project project) { Argument.NotNull(nameof(options), options); Argument.NotNull(nameof(project), project); return new WorkspaceAnalyzerOptions( options, IdeAnalyzerOptions.GetDefault(project.Services) ); } } } ================================================ FILE: Internal.Roslyn49/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETStandard,Version=v2.0": { "IgnoresAccessChecksToGenerator": { "type": "Direct", "requested": "[0.5.0, )", "resolved": "0.5.0", "contentHash": "p0ZdbdGRAmRAhSm1HWZ4luy/RjLZlhGPmg9OWmVFYhrq526AtxmL5Pik7uZWf3Hr3PQRR8iTH+Kyf3eHyLAGCQ==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.9.2, )", "resolved": "4.9.2", "contentHash": "J2r/KAYUifHSGjYJmG30ozSJI9akYp04rj9NQW5maiUrtywJ/edtFeWChTNdGl3l+FqdryPBeqg4k33XgxxitA==", "dependencies": { "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.9.2]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.9.2]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Direct", "requested": "[4.9.2, )", "resolved": "4.9.2", "contentHash": "6Pd4zVKeOmXD3Bas0wZN6+HN+xarIVkGgQSoaCD4wotvIkV/v1VQgmLvqKBwcUtFilh6b0Uxt0Wpqbcg3xdk8A==", "dependencies": { "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Common": "[4.9.2]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Scripting.Common": "[4.9.2]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.9.2]", "Microsoft.DiaSymReader": "2.0.0", "System.Text.Json": "8.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Direct", "requested": "[4.9.2, )", "resolved": "4.9.2", "contentHash": "sgBlkBjKwUdpbtwM7SnBdOxvQxuaTtO9F8QgvKY5cH/OnlwDTZqmkK8hfDbhxv9wnN2wME10BL2vIv1fLJwFGA==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.Common": "[4.9.2]", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Threading.Channels": "8.0.0" } }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", "resolved": "2.0.3", "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.14.1", "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.3.4", "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.9.2", "contentHash": "M5PThug7b2AdxL7xKmQs50KzAQTl9jENw5jMT3iUt16k+DAFlw1S87juU3UuPs3gvBm8trMBSOEvSFDr31c9Vw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "System.Collections.Immutable": "8.0.0", "System.Memory": "4.5.5", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "8.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.9.2", "contentHash": "HGIo7E9Mf3exAJbUdYpDFfLoYkSVaHDJXPyusWTYUTBaOPCowGw+Gap5McE1w+K+ryIXre72oiqL88sQHmHBmg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.9.2]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.9.2", "contentHash": "c74oxEil3fiZ3nXchnIgY6mXS4roHGiQBT6p3X6dMWokVqluHiqi3PNcXyxH8N/w28rQeXprF3mca83rPPNrMw==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.CSharp": "[4.9.2]", "Microsoft.CodeAnalysis.Common": "[4.9.2]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.9.2]" } }, "Microsoft.CodeAnalysis.Elfie": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "r12elUp4MRjdnRfxEP+xqVSUUfG3yIJTBEJGwbfvF5oU4m0jb9HC0gFG28V/dAkYGMkRmHVi3qvrnBLQSw9X3Q==", "dependencies": { "System.Configuration.ConfigurationManager": "4.5.0", "System.Data.DataSetExtensions": "4.5.0" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.9.2", "contentHash": "h06oBYNt+WxCVsXk+k68Zzs5dzkUwDNbXwJ/rMTbyPKem9C3Hr+cydfQK9ibCvofvGheATTdCE6KGSVjK3jxJQ==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.9.2]" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.9.2", "contentHash": "7Yt2bP7XwAQP2Y3GLyEMrVSAhYiFCjQbtegjL1ac0aHRosZ5YZ2Ruk6p3YAXJLuZ4kH1RtasQq2l4QDtql4AvQ==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.9.2]" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.9.2", "contentHash": "ZY3rNE9jNKdOiwjgZdZIenDItjNVVI5PSCyeMEBF8pZ2v0V9poOAQWlBxlsWGrQyqGFdi0zn/PUyQ6xo+RZS/g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.9.2]", "Microsoft.CodeAnalysis.VisualBasic": "[4.9.2]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.9.2]" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "2.0.0", "contentHash": "QcZrCETsBJqy/vQpFtJc+jSXQ0K5sucQ6NUFbTNVHD4vfZZOwjZ/3sBzczkC4DityhD3AVO/+K/+9ioLs1AgRA==" }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Composition": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "E9oO9olNNxA39J8CxQwf7ceIPm+j/B/PhYpyK9M4LhN/OLLRw6u5fNInkhVqaWueMB9iXxYqnwqwgz+W91loIA==", "dependencies": { "System.Composition.AttributedModel": "8.0.0", "System.Composition.Convention": "8.0.0", "System.Composition.Hosting": "8.0.0", "System.Composition.Runtime": "8.0.0", "System.Composition.TypedParts": "8.0.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "NyElSuvmBMYdn2iPG0n29i7Igu0bq99izOP3MAtEwskY3OP9jqsavvVmPn9lesVaj/KT/o/QkNjA43dOJTsDQw==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "UuVkc1B3vQU/LzEbWLMZ1aYVssv4rpShzf8wPEyrUqoGNqdYKREmB8bXR73heOMKkwS6ZnPz3PjGODT2MenukQ==", "dependencies": { "System.Composition.AttributedModel": "8.0.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "qwbONqoxlazxcbiohvb3t1JWZgKIKcRdXS5uEeLbo5wtuBupIbAvdC3PYTAeBCZrZeERvrtAbhYHuuS43Zr1bQ==", "dependencies": { "System.Composition.Runtime": "8.0.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "G+kRyB5/6+3ucRRQz+DF4uSHGqpkK8Q4ilVdbt4zvxpmvLVZNmSkyFAQpJLcbOyVF85aomJx0m+TGMDVlwx7ZQ==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "DsSklhuA+Dsgo3ZZrar8hjBFvq1wa1grrkNCTt+6SoX3vq0Vy+HXJnVXrU/nNH1BjlGH684A7h4hJQHZd/u5mA==", "dependencies": { "System.Composition.AttributedModel": "8.0.0", "System.Composition.Hosting": "8.0.0", "System.Composition.Runtime": "8.0.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "UIFvaFfuKhLr9u5tWMxmVoDPkFeD+Qv8gUuap4aZgVGYSYMdERck4OhLN/2gulAc0nYTEigWXSJNNWshrmxnng==", "dependencies": { "System.Security.Cryptography.ProtectedData": "4.5.0", "System.Security.Permissions": "4.5.0" } }, "System.Data.DataSetExtensions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw==" }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==" }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", "dependencies": { "System.Collections.Immutable": "8.0.0", "System.Memory": "4.5.5" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "vW8Eoq0TMyz5vAG/6ce483x/CP83fgm4SJe5P8Tb1tZaobcvPrbMEL7rhH1DRdrYbbb6F0vq3OlzmK0Pkwks5A==", "dependencies": { "System.Security.Principal.Windows": "4.5.0" } }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q==", "dependencies": { "System.Memory": "4.5.0" } }, "System.Security.Permissions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "9gdyuARhUR7H+p5CjyUB/zPk7/Xut3wUSP8NJQB6iZr8L3XUXTMdoLeVAg9N4rqF8oIpE7MpdqHdDHQ7XgJe0g==", "dependencies": { "System.Security.AccessControl": "4.5.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "U77HfRXlZlOeIXd//Yoj6Jnk8AXlbeisf1oq1os+hxOGVnuG+lGSfGqTwTZBoORFF6j/0q7HXIl8cqwQ9aUGqQ==" }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "OZIsVplFGaVY90G2SbpgU7EnCoOO5pw1t4ic21dBF3/1omrJFpAGoNAVpPyMVOC90/hvgkGG3VFqR13YgZMQfg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Threading.Channels": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "CMaFr7v+57RW7uZfZkPExsPB6ljwzhjACWW1gfU35Y56rk72B/Wu+sTqxVmGSk4SFUlPc3cjeKND0zktziyjBA==", "dependencies": { "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis": "[3.3.1, )", "Microsoft.CodeAnalysis.Features": "[3.3.1, )" } } } } } ================================================ FILE: Internal.RoslynInternals/Internal.RoslynInternals.csproj ================================================ netstandard2.0 MirrorSharp.Common MirrorSharp.Internal.Roslyn.Internals false <_RoslynInternalsProject Include="../Internal.Roslyn*/*.csproj" Exclude="Internal.RoslynInternals.csproj" /> ================================================ FILE: Internal.RoslynInternals/PublicAPI.Shipped.txt ================================================ #nullable enable ================================================ FILE: Internal.RoslynInternals/PublicAPI.Unshipped.txt ================================================ ================================================ FILE: Internal.RoslynInternals/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETStandard,Version=v2.0": { "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[3.3.1, )", "resolved": "3.3.1", "contentHash": "BoPeZD+BFE5x/qu28RnelX7hoCnPDbOZkwymrUnslrZjzj8B155gP/GjrI6m66oUOk2Yh1lxlUs+BRFZOPMBnQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp.Workspaces": "[3.3.1]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[3.3.1]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Direct", "requested": "[3.3.1, )", "resolved": "3.3.1", "contentHash": "lvMC69ABN/YEaw3ke4cQRqBYZ2V7DJTOT8QXIeAJGJUfwVHTBN0iq2O5zZQrYnnUN2wmeCzCoAg59PKBosVO7g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": "2.9.5", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]", "Microsoft.DiaSymReader": "1.3.0", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", "resolved": "2.0.3", "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "2.9.4", "contentHash": "alIJhS0VUg/7x5AsHEoovh/wRZ0RfCSS7k5pDSqpRLTyuMTtRgj6OJJPRApRhJHOGYYsLakf1hKeXFoDwKwNkg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "N5yQdGy+M4kimVG7hwCeGTCfgYjK2o5b/Shumkb/rCC+/SAkvP1HUAYK+vxPFS7dLJNtXLRsmPHKj3fnyNWnrw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "2.9.4", "System.Collections.Immutable": "1.5.0", "System.Memory": "4.5.3", "System.Reflection.Metadata": "1.6.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2", "System.Text.Encoding.CodePages": "4.5.1", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "WDUIhTHem38H6VJ98x2Ssq0fweakJHnHYl7vbG8ARnsAwLoJKCQCy78EeY1oRrCKG42j0v6JVljKkeqSDA28UA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "dHs/UyfLgzsVC4FjTi/x+H+yQifgOnpe3rSN8GwkHWjnidePZ3kSqr1JHmFDf5HTQEydYwrwCAfQ0JSzhsEqDA==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": { "type": "Transitive", "resolved": "2.9.5", "contentHash": "SqwdTocsxU7u0Y8am67BY7KSLAhrtDXdBBwt0Nv9TxLVzPBPtPPFS2bHUsxucpOBMBmc10rWE1eJ+IDrr/0/nQ==" }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "F7fc/G+0ocOYkKSCJ7Y8Q7eAEkAdG5RYODI9FtSl2Hm8zIDBVA3NccCm98gaOvCamLfMHYqeOjpb3yJnnw3m/w==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "Oi4AUxMKAYpx7nHNh7jUO8X18JFCzwtIfu/yDzGzOBpo50591AF7EEdv99geAEidGtmJqbzQ6uRk5dEOL+7F/Q==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.VisualBasic": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "NfBz3b5hFSbO+7xsCNryD+p8axsIJFTG7qM3jvMTC/MqYrU6b8E1b6JoRj5rJSOBB+pSunk+CMqyGQTOWHeDUg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "System.Composition": "1.0.31" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.3.0", "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==" }, "System.Buffers": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "AwarXzzoDwX6BgrhjoJsk6tUezZEozOT5Y9QKF94Gl4JK91I4PIIBkBco9068Y9/Dra8Dkbie99kXB8+1BaYKw==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "1.5.0", "contentHash": "EXKiDFsChZW0RjrZ4FYHu9aW6+P4MCgEDCklsVseRfhoO0F+dXeMSsMRAlVXIo06kGJ/zv+2w1a2uc2+kxxSaQ==" }, "System.Composition": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "I+D26qpYdoklyAVUdqwUBrEIckMNjAYnuPJy/h9dsQItpQwVREkDFs4b4tkBza0kT2Yk48Lcfsv2QQ9hWsh9Iw==", "dependencies": { "System.Composition.AttributedModel": "1.0.31", "System.Composition.Convention": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Composition.TypedParts": "1.0.31" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "NHWhkM3ZkspmA0XJEsKdtTt1ViDYuojgSND3yHhTzwxepiwqZf+BCWuvCbjUt4fe0NxxQhUDGJ5km6sLjo9qnQ==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.Convention": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "GLjh2Ju71k6C0qxMMtl4efHa68NmWeIUYh4fkUI8xbjQrEBvFmRwMDFcylT8/PR9SQbeeL48IkFxU/+gd0nYEQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "fN1bT4RX4vUqjbgoyuJFVUizAl2mYF5VAb+bVIxIYZSSc0BdnX+yGAxcavxJuDDCQ1K+/mdpgyEFc8e9ikjvrg==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0LEJN+2NVM89CE4SekDrrk5tHV5LeATltkp+9WNYrR+Huiyt0vaCqHbbHtVAjPyeLWIc8dOz/3kthRBj32wGQg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0Zae/FtzeFgDBBuILeIbC/T9HMYbW4olAmi8XqqAGosSOWvXfiQLfARZEhiGd0LVXaYgXr0NhxiU1LldRP1fpQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==", "dependencies": { "System.Buffers": "4.4.0", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==" }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", "dependencies": { "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "1.6.0", "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==", "dependencies": { "System.Collections.Immutable": "1.5.0" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "4.5.2", "contentHash": "wprSFgext8cwqymChhrBLu62LMg/1u92bU+VOwyfBimSPVFXtsNqEWC92Pf9ofzJFlk4IHmJA75EDJn1b2goAQ==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "+MvhNtcvIbqmhANyKu91jQnvIRVSTiaOiFNfKWwXGHG48YAb4I/TyH8spsySiPYla7gKal5ZnF3teJqZAximyQ==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } } } } } ================================================ FILE: LICENSE.md ================================================ Copyright (c) 2016-2021, Andrey Shchekin All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================ FILE: MirrorSharp.sln ================================================  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.31903.59 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Common", "Common\Common.csproj", "{C130C962-D17F-4741-B2B4-D74263BF380A}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Owin", "Owin\Owin.csproj", "{00CC1A50-B233-4045-9540-CB2316808C1B}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Benchmarks", "Benchmarks\Benchmarks.csproj", "{35D73C72-267B-4598-ABC0-F1E1BACDE451}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Testing", "Testing\Testing.csproj", "{0814C69A-E4A5-4FC9-BC57-415F8295B6B6}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FSharp", "FSharp\FSharp.csproj", "{A904B17F-1015-4676-B731-32353C22C49D}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Owin.Demo", "Owin.Demo\Owin.Demo.csproj", "{3C2A0FC7-4485-4654-B3B2-5717A2F2C97A}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VisualBasic", "VisualBasic\VisualBasic.csproj", "{C8076D77-4C5A-450E-AF3F-9E37A8B512D8}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "[Includes]", "[Includes]", "{9EC6CF09-4D36-4723-9548-060215C88E50}" ProjectSection(SolutionItems) = preProject Directory.Build.props = Directory.Build.props NuGet.Common.props = NuGet.Common.props EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Php", "Php\Php.csproj", "{C40A0924-7A1C-4488-ADF1-3B57ACEFD892}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspNetCore", "AspNetCore\AspNetCore.csproj", "{D3BFCC28-012C-45A0-8B24-D1349D81E86D}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "[Servers]", "[Servers]", "{8FC36475-1AD2-4EA0-96E0-D09E35E4B721}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "[Languages]", "[Languages]", "{97118BF6-2939-475C-9FE9-18401F1D744F}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "[Tests]", "[Tests]", "{269EAC4A-4214-4458-9B65-42E809E168E7}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspNetCore.Demo", "AspNetCore.Demo\AspNetCore.Demo.csproj", "{8E96EC9F-6332-4274-AA07-F8D30FA0284C}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests.RoslynLatest", "Tests.RoslynLatest\Tests.RoslynLatest.csproj", "{72B44FAA-5B8E-470D-B20E-AC6017B5A1D9}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspNetCore.Demo.Library", "AspNetCore.Demo.Library\AspNetCore.Demo.Library.csproj", "{2FD91F17-E789-4789-A1F6-5D794E6B6DA7}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests", "Tests\Tests.csproj", "{7A8A4E1B-4BBF-4EB9-A84C-0EEAC9821461}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IL", "IL\IL.csproj", "{8179677B-F8FB-4F6F-A520-A8C0437355FE}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Internal.Roslyn42", "Internal.Roslyn42\Internal.Roslyn42.csproj", "{1C3E806E-AA61-4DB7-A17F-4282C7B34339}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "[Internal.Roslyn]", "[Internal.Roslyn]", "{4F01ABD9-3F66-4D4B-A8B0-ED15B77099E2}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Internal.Roslyn33", "Internal.Roslyn33\Internal.Roslyn33.csproj", "{08AA2078-B9B4-4A24-9095-3D9FF57F2CBC}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Internal.Roslyn41", "Internal.Roslyn41\Internal.Roslyn41.csproj", "{8932BD8E-EBAB-48D5-8496-A9D0E5B85D06}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Internal.Roslyn36", "Internal.Roslyn36\Internal.Roslyn36.csproj", "{1C22408D-E366-4452-8357-FC582340CBD0}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Internal.RoslynInternals", "Internal.RoslynInternals\Internal.RoslynInternals.csproj", "{ED6F657A-D1BF-4523-B303-82E7AC8788DE}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AspNetCore.Demo.Net6", "AspNetCore.Demo.Net6\AspNetCore.Demo.Net6.csproj", "{EBB4385B-D592-4A9A-A42B-22C506577835}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Internal.Roslyn43", "Internal.Roslyn43\Internal.Roslyn43.csproj", "{A89CA8DD-8730-4291-B931-85ADBE3E964A}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Internal.Roslyn44", "Internal.Roslyn44\Internal.Roslyn44.csproj", "{471A092B-76F9-4789-B028-113D5A1C261E}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests.Roslyn44", "Tests.Roslyn44\Tests.Roslyn44.csproj", "{1367DFF7-9FE8-43DB-AACB-97CEE8FC35A4}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Internal.Roslyn45", "Internal.Roslyn45\Internal.Roslyn45.csproj", "{35F8051B-3B5D-46D6-85C8-339FB758776C}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests.Roslyn45", "Tests.Roslyn45\Tests.Roslyn45.csproj", "{94829499-BF30-49BA-B6EC-9554B2F6DC6E}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Internal.Roslyn46", "Internal.Roslyn46\Internal.Roslyn46.csproj", "{A607144C-BA8D-4718-98E4-847B69E331AB}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests.Roslyn46", "Tests.Roslyn46\Tests.Roslyn46.csproj", "{A2E2D3D7-EF4E-4619-A6A5-98603DF4AB3C}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Internal.Roslyn47", "Internal.Roslyn47\Internal.Roslyn47.csproj", "{3D60CABF-4DFE-4350-9D49-B051AFAEC0C5}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests.Roslyn47", "Tests.Roslyn47\Tests.Roslyn47.csproj", "{7F0B701D-ECA8-4880-90A9-39A632F621C0}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Internal.Roslyn48", "Internal.Roslyn48\Internal.Roslyn48.csproj", "{8B502B7F-5374-4549-AB93-0C19396B4F48}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Internal.Roslyn49", "Internal.Roslyn49\Internal.Roslyn49.csproj", "{EDF838C0-BAD7-4853-AA73-97A95A96D795}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests.Roslyn48", "Tests.Roslyn48\Tests.Roslyn48.csproj", "{D019B113-4E3A-4B23-BE22-CD8C392121CA}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests.Roslyn49", "Tests.Roslyn49\Tests.Roslyn49.csproj", "{7B23E463-3F08-40B6-AE4C-03486ADF54A3}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Internal.Roslyn410", "Internal.Roslyn410\Internal.Roslyn410.csproj", "{F0C3DD0C-5873-46C9-95C7-53F888FED565}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tests.Roslyn410", "Tests.Roslyn410\Tests.Roslyn410.csproj", "{9027D6E4-17F6-4DDC-9B60-2835F8A4C6DE}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Internal.Roslyn411", "Internal.Roslyn411\Internal.Roslyn411.csproj", "{4D749251-F7BF-47AE-B319-7A4A872C71F2}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Internal.Roslyn412", "Internal.Roslyn412\Internal.Roslyn412.csproj", "{F6B6A20A-FFF0-4F1C-AE4E-8DF454C73770}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.Roslyn411", "Tests.Roslyn411\Tests.Roslyn411.csproj", "{7E731B53-91A5-4E63-ADBF-29EBC902C903}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {C130C962-D17F-4741-B2B4-D74263BF380A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C130C962-D17F-4741-B2B4-D74263BF380A}.Debug|Any CPU.Build.0 = Debug|Any CPU {C130C962-D17F-4741-B2B4-D74263BF380A}.Release|Any CPU.ActiveCfg = Release|Any CPU {C130C962-D17F-4741-B2B4-D74263BF380A}.Release|Any CPU.Build.0 = Release|Any CPU {00CC1A50-B233-4045-9540-CB2316808C1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {00CC1A50-B233-4045-9540-CB2316808C1B}.Debug|Any CPU.Build.0 = Debug|Any CPU {00CC1A50-B233-4045-9540-CB2316808C1B}.Release|Any CPU.ActiveCfg = Release|Any CPU {00CC1A50-B233-4045-9540-CB2316808C1B}.Release|Any CPU.Build.0 = Release|Any CPU {35D73C72-267B-4598-ABC0-F1E1BACDE451}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {35D73C72-267B-4598-ABC0-F1E1BACDE451}.Debug|Any CPU.Build.0 = Debug|Any CPU {35D73C72-267B-4598-ABC0-F1E1BACDE451}.Release|Any CPU.ActiveCfg = Release|Any CPU {35D73C72-267B-4598-ABC0-F1E1BACDE451}.Release|Any CPU.Build.0 = Release|Any CPU {0814C69A-E4A5-4FC9-BC57-415F8295B6B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0814C69A-E4A5-4FC9-BC57-415F8295B6B6}.Debug|Any CPU.Build.0 = Debug|Any CPU {0814C69A-E4A5-4FC9-BC57-415F8295B6B6}.Release|Any CPU.ActiveCfg = Release|Any CPU {0814C69A-E4A5-4FC9-BC57-415F8295B6B6}.Release|Any CPU.Build.0 = Release|Any CPU {A904B17F-1015-4676-B731-32353C22C49D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A904B17F-1015-4676-B731-32353C22C49D}.Debug|Any CPU.Build.0 = Debug|Any CPU {A904B17F-1015-4676-B731-32353C22C49D}.Release|Any CPU.ActiveCfg = Release|Any CPU {A904B17F-1015-4676-B731-32353C22C49D}.Release|Any CPU.Build.0 = Release|Any CPU {3C2A0FC7-4485-4654-B3B2-5717A2F2C97A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3C2A0FC7-4485-4654-B3B2-5717A2F2C97A}.Debug|Any CPU.Build.0 = Debug|Any CPU {3C2A0FC7-4485-4654-B3B2-5717A2F2C97A}.Release|Any CPU.ActiveCfg = Release|Any CPU {3C2A0FC7-4485-4654-B3B2-5717A2F2C97A}.Release|Any CPU.Build.0 = Release|Any CPU {C8076D77-4C5A-450E-AF3F-9E37A8B512D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C8076D77-4C5A-450E-AF3F-9E37A8B512D8}.Debug|Any CPU.Build.0 = Debug|Any CPU {C8076D77-4C5A-450E-AF3F-9E37A8B512D8}.Release|Any CPU.ActiveCfg = Release|Any CPU {C8076D77-4C5A-450E-AF3F-9E37A8B512D8}.Release|Any CPU.Build.0 = Release|Any CPU {C40A0924-7A1C-4488-ADF1-3B57ACEFD892}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C40A0924-7A1C-4488-ADF1-3B57ACEFD892}.Debug|Any CPU.Build.0 = Debug|Any CPU {C40A0924-7A1C-4488-ADF1-3B57ACEFD892}.Release|Any CPU.ActiveCfg = Release|Any CPU {C40A0924-7A1C-4488-ADF1-3B57ACEFD892}.Release|Any CPU.Build.0 = Release|Any CPU {D3BFCC28-012C-45A0-8B24-D1349D81E86D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D3BFCC28-012C-45A0-8B24-D1349D81E86D}.Debug|Any CPU.Build.0 = Debug|Any CPU {D3BFCC28-012C-45A0-8B24-D1349D81E86D}.Release|Any CPU.ActiveCfg = Release|Any CPU {D3BFCC28-012C-45A0-8B24-D1349D81E86D}.Release|Any CPU.Build.0 = Release|Any CPU {8E96EC9F-6332-4274-AA07-F8D30FA0284C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8E96EC9F-6332-4274-AA07-F8D30FA0284C}.Debug|Any CPU.Build.0 = Debug|Any CPU {8E96EC9F-6332-4274-AA07-F8D30FA0284C}.Release|Any CPU.ActiveCfg = Release|Any CPU {8E96EC9F-6332-4274-AA07-F8D30FA0284C}.Release|Any CPU.Build.0 = Release|Any CPU {72B44FAA-5B8E-470D-B20E-AC6017B5A1D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {72B44FAA-5B8E-470D-B20E-AC6017B5A1D9}.Debug|Any CPU.Build.0 = Debug|Any CPU {72B44FAA-5B8E-470D-B20E-AC6017B5A1D9}.Release|Any CPU.ActiveCfg = Release|Any CPU {72B44FAA-5B8E-470D-B20E-AC6017B5A1D9}.Release|Any CPU.Build.0 = Release|Any CPU {2FD91F17-E789-4789-A1F6-5D794E6B6DA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2FD91F17-E789-4789-A1F6-5D794E6B6DA7}.Debug|Any CPU.Build.0 = Debug|Any CPU {2FD91F17-E789-4789-A1F6-5D794E6B6DA7}.Release|Any CPU.ActiveCfg = Release|Any CPU {2FD91F17-E789-4789-A1F6-5D794E6B6DA7}.Release|Any CPU.Build.0 = Release|Any CPU {7A8A4E1B-4BBF-4EB9-A84C-0EEAC9821461}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7A8A4E1B-4BBF-4EB9-A84C-0EEAC9821461}.Debug|Any CPU.Build.0 = Debug|Any CPU {7A8A4E1B-4BBF-4EB9-A84C-0EEAC9821461}.Release|Any CPU.ActiveCfg = Release|Any CPU {7A8A4E1B-4BBF-4EB9-A84C-0EEAC9821461}.Release|Any CPU.Build.0 = Release|Any CPU {8179677B-F8FB-4F6F-A520-A8C0437355FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8179677B-F8FB-4F6F-A520-A8C0437355FE}.Debug|Any CPU.Build.0 = Debug|Any CPU {8179677B-F8FB-4F6F-A520-A8C0437355FE}.Release|Any CPU.ActiveCfg = Release|Any CPU {8179677B-F8FB-4F6F-A520-A8C0437355FE}.Release|Any CPU.Build.0 = Release|Any CPU {1C3E806E-AA61-4DB7-A17F-4282C7B34339}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1C3E806E-AA61-4DB7-A17F-4282C7B34339}.Debug|Any CPU.Build.0 = Debug|Any CPU {1C3E806E-AA61-4DB7-A17F-4282C7B34339}.Release|Any CPU.ActiveCfg = Release|Any CPU {1C3E806E-AA61-4DB7-A17F-4282C7B34339}.Release|Any CPU.Build.0 = Release|Any CPU {08AA2078-B9B4-4A24-9095-3D9FF57F2CBC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {08AA2078-B9B4-4A24-9095-3D9FF57F2CBC}.Debug|Any CPU.Build.0 = Debug|Any CPU {08AA2078-B9B4-4A24-9095-3D9FF57F2CBC}.Release|Any CPU.ActiveCfg = Release|Any CPU {08AA2078-B9B4-4A24-9095-3D9FF57F2CBC}.Release|Any CPU.Build.0 = Release|Any CPU {8932BD8E-EBAB-48D5-8496-A9D0E5B85D06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8932BD8E-EBAB-48D5-8496-A9D0E5B85D06}.Debug|Any CPU.Build.0 = Debug|Any CPU {8932BD8E-EBAB-48D5-8496-A9D0E5B85D06}.Release|Any CPU.ActiveCfg = Release|Any CPU {8932BD8E-EBAB-48D5-8496-A9D0E5B85D06}.Release|Any CPU.Build.0 = Release|Any CPU {1C22408D-E366-4452-8357-FC582340CBD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1C22408D-E366-4452-8357-FC582340CBD0}.Debug|Any CPU.Build.0 = Debug|Any CPU {1C22408D-E366-4452-8357-FC582340CBD0}.Release|Any CPU.ActiveCfg = Release|Any CPU {1C22408D-E366-4452-8357-FC582340CBD0}.Release|Any CPU.Build.0 = Release|Any CPU {ED6F657A-D1BF-4523-B303-82E7AC8788DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {ED6F657A-D1BF-4523-B303-82E7AC8788DE}.Debug|Any CPU.Build.0 = Debug|Any CPU {ED6F657A-D1BF-4523-B303-82E7AC8788DE}.Release|Any CPU.ActiveCfg = Release|Any CPU {ED6F657A-D1BF-4523-B303-82E7AC8788DE}.Release|Any CPU.Build.0 = Release|Any CPU {EBB4385B-D592-4A9A-A42B-22C506577835}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EBB4385B-D592-4A9A-A42B-22C506577835}.Debug|Any CPU.Build.0 = Debug|Any CPU {EBB4385B-D592-4A9A-A42B-22C506577835}.Release|Any CPU.ActiveCfg = Release|Any CPU {EBB4385B-D592-4A9A-A42B-22C506577835}.Release|Any CPU.Build.0 = Release|Any CPU {A89CA8DD-8730-4291-B931-85ADBE3E964A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A89CA8DD-8730-4291-B931-85ADBE3E964A}.Debug|Any CPU.Build.0 = Debug|Any CPU {A89CA8DD-8730-4291-B931-85ADBE3E964A}.Release|Any CPU.ActiveCfg = Release|Any CPU {A89CA8DD-8730-4291-B931-85ADBE3E964A}.Release|Any CPU.Build.0 = Release|Any CPU {471A092B-76F9-4789-B028-113D5A1C261E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {471A092B-76F9-4789-B028-113D5A1C261E}.Debug|Any CPU.Build.0 = Debug|Any CPU {471A092B-76F9-4789-B028-113D5A1C261E}.Release|Any CPU.ActiveCfg = Release|Any CPU {471A092B-76F9-4789-B028-113D5A1C261E}.Release|Any CPU.Build.0 = Release|Any CPU {1367DFF7-9FE8-43DB-AACB-97CEE8FC35A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1367DFF7-9FE8-43DB-AACB-97CEE8FC35A4}.Debug|Any CPU.Build.0 = Debug|Any CPU {1367DFF7-9FE8-43DB-AACB-97CEE8FC35A4}.Release|Any CPU.ActiveCfg = Release|Any CPU {1367DFF7-9FE8-43DB-AACB-97CEE8FC35A4}.Release|Any CPU.Build.0 = Release|Any CPU {35F8051B-3B5D-46D6-85C8-339FB758776C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {35F8051B-3B5D-46D6-85C8-339FB758776C}.Debug|Any CPU.Build.0 = Debug|Any CPU {35F8051B-3B5D-46D6-85C8-339FB758776C}.Release|Any CPU.ActiveCfg = Release|Any CPU {35F8051B-3B5D-46D6-85C8-339FB758776C}.Release|Any CPU.Build.0 = Release|Any CPU {94829499-BF30-49BA-B6EC-9554B2F6DC6E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {94829499-BF30-49BA-B6EC-9554B2F6DC6E}.Debug|Any CPU.Build.0 = Debug|Any CPU {94829499-BF30-49BA-B6EC-9554B2F6DC6E}.Release|Any CPU.ActiveCfg = Release|Any CPU {94829499-BF30-49BA-B6EC-9554B2F6DC6E}.Release|Any CPU.Build.0 = Release|Any CPU {A607144C-BA8D-4718-98E4-847B69E331AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A607144C-BA8D-4718-98E4-847B69E331AB}.Debug|Any CPU.Build.0 = Debug|Any CPU {A607144C-BA8D-4718-98E4-847B69E331AB}.Release|Any CPU.ActiveCfg = Release|Any CPU {A607144C-BA8D-4718-98E4-847B69E331AB}.Release|Any CPU.Build.0 = Release|Any CPU {A2E2D3D7-EF4E-4619-A6A5-98603DF4AB3C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A2E2D3D7-EF4E-4619-A6A5-98603DF4AB3C}.Debug|Any CPU.Build.0 = Debug|Any CPU {A2E2D3D7-EF4E-4619-A6A5-98603DF4AB3C}.Release|Any CPU.ActiveCfg = Release|Any CPU {A2E2D3D7-EF4E-4619-A6A5-98603DF4AB3C}.Release|Any CPU.Build.0 = Release|Any CPU {3D60CABF-4DFE-4350-9D49-B051AFAEC0C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3D60CABF-4DFE-4350-9D49-B051AFAEC0C5}.Debug|Any CPU.Build.0 = Debug|Any CPU {3D60CABF-4DFE-4350-9D49-B051AFAEC0C5}.Release|Any CPU.ActiveCfg = Release|Any CPU {3D60CABF-4DFE-4350-9D49-B051AFAEC0C5}.Release|Any CPU.Build.0 = Release|Any CPU {7F0B701D-ECA8-4880-90A9-39A632F621C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7F0B701D-ECA8-4880-90A9-39A632F621C0}.Debug|Any CPU.Build.0 = Debug|Any CPU {7F0B701D-ECA8-4880-90A9-39A632F621C0}.Release|Any CPU.ActiveCfg = Release|Any CPU {7F0B701D-ECA8-4880-90A9-39A632F621C0}.Release|Any CPU.Build.0 = Release|Any CPU {8B502B7F-5374-4549-AB93-0C19396B4F48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8B502B7F-5374-4549-AB93-0C19396B4F48}.Debug|Any CPU.Build.0 = Debug|Any CPU {8B502B7F-5374-4549-AB93-0C19396B4F48}.Release|Any CPU.ActiveCfg = Release|Any CPU {8B502B7F-5374-4549-AB93-0C19396B4F48}.Release|Any CPU.Build.0 = Release|Any CPU {EDF838C0-BAD7-4853-AA73-97A95A96D795}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EDF838C0-BAD7-4853-AA73-97A95A96D795}.Debug|Any CPU.Build.0 = Debug|Any CPU {EDF838C0-BAD7-4853-AA73-97A95A96D795}.Release|Any CPU.ActiveCfg = Release|Any CPU {EDF838C0-BAD7-4853-AA73-97A95A96D795}.Release|Any CPU.Build.0 = Release|Any CPU {D019B113-4E3A-4B23-BE22-CD8C392121CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D019B113-4E3A-4B23-BE22-CD8C392121CA}.Debug|Any CPU.Build.0 = Debug|Any CPU {D019B113-4E3A-4B23-BE22-CD8C392121CA}.Release|Any CPU.ActiveCfg = Release|Any CPU {D019B113-4E3A-4B23-BE22-CD8C392121CA}.Release|Any CPU.Build.0 = Release|Any CPU {7B23E463-3F08-40B6-AE4C-03486ADF54A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7B23E463-3F08-40B6-AE4C-03486ADF54A3}.Debug|Any CPU.Build.0 = Debug|Any CPU {7B23E463-3F08-40B6-AE4C-03486ADF54A3}.Release|Any CPU.ActiveCfg = Release|Any CPU {7B23E463-3F08-40B6-AE4C-03486ADF54A3}.Release|Any CPU.Build.0 = Release|Any CPU {F0C3DD0C-5873-46C9-95C7-53F888FED565}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F0C3DD0C-5873-46C9-95C7-53F888FED565}.Debug|Any CPU.Build.0 = Debug|Any CPU {F0C3DD0C-5873-46C9-95C7-53F888FED565}.Release|Any CPU.ActiveCfg = Release|Any CPU {F0C3DD0C-5873-46C9-95C7-53F888FED565}.Release|Any CPU.Build.0 = Release|Any CPU {9027D6E4-17F6-4DDC-9B60-2835F8A4C6DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9027D6E4-17F6-4DDC-9B60-2835F8A4C6DE}.Debug|Any CPU.Build.0 = Debug|Any CPU {9027D6E4-17F6-4DDC-9B60-2835F8A4C6DE}.Release|Any CPU.ActiveCfg = Release|Any CPU {9027D6E4-17F6-4DDC-9B60-2835F8A4C6DE}.Release|Any CPU.Build.0 = Release|Any CPU {4D749251-F7BF-47AE-B319-7A4A872C71F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4D749251-F7BF-47AE-B319-7A4A872C71F2}.Debug|Any CPU.Build.0 = Debug|Any CPU {4D749251-F7BF-47AE-B319-7A4A872C71F2}.Release|Any CPU.ActiveCfg = Release|Any CPU {4D749251-F7BF-47AE-B319-7A4A872C71F2}.Release|Any CPU.Build.0 = Release|Any CPU {F6B6A20A-FFF0-4F1C-AE4E-8DF454C73770}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F6B6A20A-FFF0-4F1C-AE4E-8DF454C73770}.Debug|Any CPU.Build.0 = Debug|Any CPU {F6B6A20A-FFF0-4F1C-AE4E-8DF454C73770}.Release|Any CPU.ActiveCfg = Release|Any CPU {F6B6A20A-FFF0-4F1C-AE4E-8DF454C73770}.Release|Any CPU.Build.0 = Release|Any CPU {7E731B53-91A5-4E63-ADBF-29EBC902C903}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7E731B53-91A5-4E63-ADBF-29EBC902C903}.Debug|Any CPU.Build.0 = Debug|Any CPU {7E731B53-91A5-4E63-ADBF-29EBC902C903}.Release|Any CPU.ActiveCfg = Release|Any CPU {7E731B53-91A5-4E63-ADBF-29EBC902C903}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution {00CC1A50-B233-4045-9540-CB2316808C1B} = {8FC36475-1AD2-4EA0-96E0-D09E35E4B721} {35D73C72-267B-4598-ABC0-F1E1BACDE451} = {269EAC4A-4214-4458-9B65-42E809E168E7} {A904B17F-1015-4676-B731-32353C22C49D} = {97118BF6-2939-475C-9FE9-18401F1D744F} {3C2A0FC7-4485-4654-B3B2-5717A2F2C97A} = {8FC36475-1AD2-4EA0-96E0-D09E35E4B721} {C8076D77-4C5A-450E-AF3F-9E37A8B512D8} = {97118BF6-2939-475C-9FE9-18401F1D744F} {C40A0924-7A1C-4488-ADF1-3B57ACEFD892} = {97118BF6-2939-475C-9FE9-18401F1D744F} {D3BFCC28-012C-45A0-8B24-D1349D81E86D} = {8FC36475-1AD2-4EA0-96E0-D09E35E4B721} {8E96EC9F-6332-4274-AA07-F8D30FA0284C} = {8FC36475-1AD2-4EA0-96E0-D09E35E4B721} {72B44FAA-5B8E-470D-B20E-AC6017B5A1D9} = {269EAC4A-4214-4458-9B65-42E809E168E7} {2FD91F17-E789-4789-A1F6-5D794E6B6DA7} = {8FC36475-1AD2-4EA0-96E0-D09E35E4B721} {7A8A4E1B-4BBF-4EB9-A84C-0EEAC9821461} = {269EAC4A-4214-4458-9B65-42E809E168E7} {8179677B-F8FB-4F6F-A520-A8C0437355FE} = {97118BF6-2939-475C-9FE9-18401F1D744F} {1C3E806E-AA61-4DB7-A17F-4282C7B34339} = {4F01ABD9-3F66-4D4B-A8B0-ED15B77099E2} {08AA2078-B9B4-4A24-9095-3D9FF57F2CBC} = {4F01ABD9-3F66-4D4B-A8B0-ED15B77099E2} {8932BD8E-EBAB-48D5-8496-A9D0E5B85D06} = {4F01ABD9-3F66-4D4B-A8B0-ED15B77099E2} {1C22408D-E366-4452-8357-FC582340CBD0} = {4F01ABD9-3F66-4D4B-A8B0-ED15B77099E2} {ED6F657A-D1BF-4523-B303-82E7AC8788DE} = {4F01ABD9-3F66-4D4B-A8B0-ED15B77099E2} {EBB4385B-D592-4A9A-A42B-22C506577835} = {8FC36475-1AD2-4EA0-96E0-D09E35E4B721} {A89CA8DD-8730-4291-B931-85ADBE3E964A} = {4F01ABD9-3F66-4D4B-A8B0-ED15B77099E2} {471A092B-76F9-4789-B028-113D5A1C261E} = {4F01ABD9-3F66-4D4B-A8B0-ED15B77099E2} {1367DFF7-9FE8-43DB-AACB-97CEE8FC35A4} = {269EAC4A-4214-4458-9B65-42E809E168E7} {35F8051B-3B5D-46D6-85C8-339FB758776C} = {4F01ABD9-3F66-4D4B-A8B0-ED15B77099E2} {94829499-BF30-49BA-B6EC-9554B2F6DC6E} = {269EAC4A-4214-4458-9B65-42E809E168E7} {A607144C-BA8D-4718-98E4-847B69E331AB} = {4F01ABD9-3F66-4D4B-A8B0-ED15B77099E2} {A2E2D3D7-EF4E-4619-A6A5-98603DF4AB3C} = {269EAC4A-4214-4458-9B65-42E809E168E7} {3D60CABF-4DFE-4350-9D49-B051AFAEC0C5} = {4F01ABD9-3F66-4D4B-A8B0-ED15B77099E2} {7F0B701D-ECA8-4880-90A9-39A632F621C0} = {269EAC4A-4214-4458-9B65-42E809E168E7} {8B502B7F-5374-4549-AB93-0C19396B4F48} = {4F01ABD9-3F66-4D4B-A8B0-ED15B77099E2} {EDF838C0-BAD7-4853-AA73-97A95A96D795} = {4F01ABD9-3F66-4D4B-A8B0-ED15B77099E2} {D019B113-4E3A-4B23-BE22-CD8C392121CA} = {269EAC4A-4214-4458-9B65-42E809E168E7} {7B23E463-3F08-40B6-AE4C-03486ADF54A3} = {269EAC4A-4214-4458-9B65-42E809E168E7} {F0C3DD0C-5873-46C9-95C7-53F888FED565} = {4F01ABD9-3F66-4D4B-A8B0-ED15B77099E2} {9027D6E4-17F6-4DDC-9B60-2835F8A4C6DE} = {269EAC4A-4214-4458-9B65-42E809E168E7} {4D749251-F7BF-47AE-B319-7A4A872C71F2} = {4F01ABD9-3F66-4D4B-A8B0-ED15B77099E2} {F6B6A20A-FFF0-4F1C-AE4E-8DF454C73770} = {4F01ABD9-3F66-4D4B-A8B0-ED15B77099E2} {7E731B53-91A5-4E63-ADBF-29EBC902C903} = {269EAC4A-4214-4458-9B65-42E809E168E7} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {AA05E375-911A-4C8F-A6D6-C0B895E7BDE4} EndGlobalSection EndGlobal ================================================ FILE: MirrorSharp.sln.DotSettings ================================================  C27+,E12+,FF21+,IE11+,S9+ ExplicitlyExcluded ExplicitlyExcluded ExplicitlyExcluded ExplicitlyExcluded ExplicitlyExcluded DO_NOT_SHOW DO_NOT_SHOW DO_NOT_SHOW DO_NOT_SHOW WARNING WARNING WARNING DO_NOT_SHOW HINT DO_NOT_SHOW DO_NOT_SHOW HINT WARNING ECMAScript 2016 END_OF_LINE END_OF_LINE END_OF_LINE END_OF_LINE END_OF_LINE END_OF_LINE END_OF_LINE False END_OF_LINE False True True <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb"><ExtraRule Prefix="_" Suffix="" Style="aaBb" /></Policy> <Policy><Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static readonly fields (private)"><ElementKinds><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" Prefix="" Suffix="" Style="AaBb"><ExtraRule Prefix="_" Suffix="" Style="aaBb" /></Policy></Policy> CM <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb"><ExtraRule Prefix="" Suffix="" Style="AaBb" /></Policy> <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb"><ExtraRule Prefix="" Suffix="" Style="AaBb" /></Policy> <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> <Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="T" Suffix="" Style="AaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> True True True True True True True True True ================================================ FILE: NuGet.Common.props ================================================  Andrey Shchekin https://github.com/ashmind/mirrorsharp git https://github.com/ashmind/mirrorsharp.git MirrorSharp is a code editor <textarea> built on Roslyn — see https://github.com/ashmind/mirrorsharp/blob/master/README.md for details. False $(DefineConstants); JETBRAINS_ANNOTATIONS ================================================ FILE: Owin/AppBuilderExtensions.cs ================================================ using System; using System.ComponentModel; using MirrorSharp.Internal; using MirrorSharp.Owin.Internal; using Owin; namespace MirrorSharp.Owin { /// MirrorSharp-related extensions for the . public static class AppBuilderExtensions { /// Adds MirrorSharp middleware to the . /// The app builder. /// The object used by the MirrorSharp middleware. [EditorBrowsable(EditorBrowsableState.Never)] [Obsolete("This method will be removed in the next major version. Use app.MapMirrorSharp() instead.", true)] public static IAppBuilder UseMirrorSharp(this IAppBuilder app, MirrorSharpOptions? options = null) { Argument.NotNull(nameof(app), app); app.Use(typeof(Middleware), options ?? new MirrorSharpOptions()); return app; } /// Maps MirrorSharp middleware to a certain path in the . /// The app builder. /// Relative path to be used by MirrorSharp server, e.g. '/mirrorsharp'. // This is obsolete, but we can't add an attribute as it will require people to pass in optional parameters public static IAppBuilder MapMirrorSharp(this IAppBuilder app, string path) { Argument.NotNull(nameof(app), app); Argument.NotNullOrEmpty(nameof(path), path); return app.MapMirrorSharp(path, options: null); } /// Maps MirrorSharp middleware to a certain path in the . /// The app builder. /// Relative path to be used by MirrorSharp server, e.g. '/mirrorsharp'. /// The object used by the MirrorSharp middleware. // This is obsolete, but we can't add an attribute as it will require people to pass in (optional) services public static IAppBuilder MapMirrorSharp(this IAppBuilder app, string path, MirrorSharpOptions? options = null) { Argument.NotNull(nameof(app), app); Argument.NotNullOrEmpty(nameof(path), path); return app.Map(path, a => a.Use(typeof(Middleware), options ?? new MirrorSharpOptions(), new MirrorSharpServices { #pragma warning disable CS0618 // Type or member is obsolete SetOptionsFromClient = options?.SetOptionsFromClient, SlowUpdate = options?.SlowUpdate, ExceptionLogger = options?.ExceptionLogger #pragma warning restore CS0618 // Type or member is obsolete })); } /// Maps MirrorSharp middleware to a certain path in the . /// The app builder. /// Relative path to be used by MirrorSharp server, e.g. '/mirrorsharp'. /// The object used by the MirrorSharp middleware. /// The object used by the MirrorSharp middleware. public static IAppBuilder MapMirrorSharp(this IAppBuilder app, string path, MirrorSharpOptions? options = null, MirrorSharpServices? services = null) { Argument.NotNull(nameof(app), app); Argument.NotNullOrEmpty(nameof(path), path); #pragma warning disable CS0618 // Type or member is obsolete if (options?.SetOptionsFromClient != null) throw new ArgumentException("SetOptionsFromClient must be passed through extensions and not options (options.SetOptionsFromClient must be null)."); if (options?.SlowUpdate != null) throw new ArgumentException("SetOptionsFromClient must be passed through extensions and not options (options.SlowUpdate must be null)."); if (options?.ExceptionLogger != null) throw new ArgumentException("SetOptionsFromClient must be passed through extensions and not options (options.ExceptionLogger must be null)."); #pragma warning restore CS0618 // Type or member is obsolete return app.Map(path, a => a.Use(typeof(Middleware), options ?? new MirrorSharpOptions(), services ?? new MirrorSharpServices())); } } } ================================================ FILE: Owin/CHANGELOG.md ================================================ # Changelog ## [3.0.1] - 2024-06-01 ### Security - Updated vulnerable dependency on Microsoft.Owin ## [3.0.0] - 2022-04-04 ## [3.0.0-test-2021-04-02-1] - 2021-04-02 ## [3.0.0-test-2021-04-01-1] - 2021-04-01 ### Changed - Updated to support MirrorSharp.Common 3.0.0 ### Removed - Obsolete method UseMirrorSharp is now marked Obsolete(true) and will not compile ## [2.3.3] - 2020-03-04 ### Changed - Internal changes (exposed some internals to SharpLab) ## [2.3.2] - 2020-03-04 ### Changed - Updated to support MirrorSharp.Common 2.2.3 ## [2.3.1] - 2020-12-17 ### Changed - Updated to support MirrorSharp.Common 2.2.2 ================================================ FILE: Owin/Internal/Middleware.cs ================================================ using System; using System.Collections.Generic; using System.Net.WebSockets; using System.Threading; using System.Threading.Tasks; using MirrorSharp.Internal; namespace MirrorSharp.Owin.Internal { using AppFunc = Func, Task>; using WebSocketAccept = Action?, Func, Task>>; internal class Middleware : MiddlewareBase { private readonly AppFunc _next; public Middleware(AppFunc next, MirrorSharpOptions options, MirrorSharpServices extensions) : base(options, extensions.ToImmutable()) { _next = Argument.NotNull(nameof(next), next); } public Task Invoke(IDictionary environment) { object accept; if (!environment.TryGetValue("websocket.Accept", out accept)) return _next(environment); ((WebSocketAccept) accept)(null, async e => { var contextKey = typeof(WebSocketContext).FullName; if (!e.TryGetValue(contextKey, out var contextAsObject) || contextAsObject == null) { throw new NotSupportedException( $"At the moment, MirrorSharp requires Owin host to provide '{contextKey}'.\r\n" + "It's not in the specification, but it is provided by the IIS host at least. " + "After spending some time on this, I don't feel that a WebSocket wrapper for Owin " + "is worth the effort. However if you want to implement one, I will appreciate it.\r\n" + "You can find my attempt at https://gist.github.com/ashmind/40563ead5b467a243308a02d27c707ed." ); } var context = (WebSocketContext)contextAsObject; var callCancelled = (CancellationToken)e["websocket.CallCancelled"]; // there is a weird issue where a socket never gets closed (deadlock?) // if the loop is done in the standard ASP.NET thread await Task.Run( () => WebSocketLoopAsync(context.WebSocket, callCancelled), callCancelled ); }); return Task.CompletedTask; } } } ================================================ FILE: Owin/MirrorSharpServices.cs ================================================ using MirrorSharp.Advanced; using MirrorSharp.Advanced.EarlyAccess; using MirrorSharp.Internal; namespace MirrorSharp.Owin { /// MirrorSharp extension services. public class MirrorSharpServices { /// Defines a used to support extra options. public ISetOptionsFromClientExtension? SetOptionsFromClient { get; set; } /// Defines a used to extend periodic processing. public ISlowUpdateExtension? SlowUpdate { get; set; } internal IRoslynCompilationGuard? RoslynCompilationGuard { get; set; } internal IRoslynSourceTextGuard? RoslynSourceTextGuard { get; set; } internal IConnectionSendViewer? ConnectionSendViewer { get; set; } /// Defines a called for any unhandled exception. public IExceptionLogger? ExceptionLogger { get; set; } internal ImmutableExtensionServices ToImmutable() { return new ImmutableExtensionServices( SetOptionsFromClient, SlowUpdate, RoslynSourceTextGuard, RoslynCompilationGuard, ConnectionSendViewer, ExceptionLogger ); } } } ================================================ FILE: Owin/Owin.csproj ================================================ MirrorSharp.Owin MirrorSharp.Owin net461 3.0.1 MirrorSharp OWIN server. $(DescriptionSuffix) Roslyn;CodeMirror true ================================================ FILE: Owin/Properties/AssemblyInfo.cs ================================================ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // 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("00cc1a50-b233-4045-9540-cb2316808c1b")] [assembly: InternalsVisibleTo("SharpLab.Server")] ================================================ FILE: Owin/PublicAPI.Shipped.txt ================================================ #nullable enable MirrorSharp.Owin.AppBuilderExtensions static MirrorSharp.Owin.AppBuilderExtensions.MapMirrorSharp(this Owin.IAppBuilder! app, string! path) -> Owin.IAppBuilder! static MirrorSharp.Owin.AppBuilderExtensions.MapMirrorSharp(this Owin.IAppBuilder! app, string! path, MirrorSharp.MirrorSharpOptions? options = null) -> Owin.IAppBuilder! static MirrorSharp.Owin.AppBuilderExtensions.MapMirrorSharp(this Owin.IAppBuilder! app, string! path, MirrorSharp.MirrorSharpOptions? options = null, MirrorSharp.Owin.MirrorSharpServices? services = null) -> Owin.IAppBuilder! static MirrorSharp.Owin.AppBuilderExtensions.UseMirrorSharp(this Owin.IAppBuilder! app, MirrorSharp.MirrorSharpOptions? options = null) -> Owin.IAppBuilder! MirrorSharp.Owin.MirrorSharpServices MirrorSharp.Owin.MirrorSharpServices.ExceptionLogger.get -> MirrorSharp.Advanced.IExceptionLogger? MirrorSharp.Owin.MirrorSharpServices.ExceptionLogger.set -> void MirrorSharp.Owin.MirrorSharpServices.MirrorSharpServices() -> void MirrorSharp.Owin.MirrorSharpServices.SetOptionsFromClient.get -> MirrorSharp.Advanced.ISetOptionsFromClientExtension? MirrorSharp.Owin.MirrorSharpServices.SetOptionsFromClient.set -> void MirrorSharp.Owin.MirrorSharpServices.SlowUpdate.get -> MirrorSharp.Advanced.ISlowUpdateExtension? MirrorSharp.Owin.MirrorSharpServices.SlowUpdate.set -> void ================================================ FILE: Owin/PublicAPI.Unshipped.txt ================================================ ================================================ FILE: Owin/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETFramework,Version=v4.6.1": { "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "Microsoft.Owin": { "type": "Direct", "requested": "[4.2.2, )", "resolved": "4.2.2", "contentHash": "jt410l/8dvCIguRdU7dupYdm4kGLepVdD8EOTKU4nYZcLRrn6kQYqI6pbJOTJp7Vlm/T2WUF5bzyKK2z29xtjg==", "dependencies": { "Owin": "1.0.0" } }, "Owin": { "type": "Direct", "requested": "[1.0.0, )", "resolved": "1.0.0", "contentHash": "OseTFniKmyp76mEzOBwIKGBRS5eMoYNkMKaMXOpxx9jv88+b6mh1rSaw43vjBOItNhaLFG3d0a20PfHyibH5sw==" }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "2.9.4", "contentHash": "alIJhS0VUg/7x5AsHEoovh/wRZ0RfCSS7k5pDSqpRLTyuMTtRgj6OJJPRApRhJHOGYYsLakf1hKeXFoDwKwNkg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "N5yQdGy+M4kimVG7hwCeGTCfgYjK2o5b/Shumkb/rCC+/SAkvP1HUAYK+vxPFS7dLJNtXLRsmPHKj3fnyNWnrw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "2.9.4", "System.Collections.Immutable": "1.5.0", "System.Memory": "4.5.3", "System.Reflection.Metadata": "1.6.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2", "System.Text.Encoding.CodePages": "4.5.1", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "WDUIhTHem38H6VJ98x2Ssq0fweakJHnHYl7vbG8ARnsAwLoJKCQCy78EeY1oRrCKG42j0v6JVljKkeqSDA28UA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "t9uIwsLzT5zQ1Q3ZIpwE4EOnAf/lGdbQwyeqhyO/BJ+AWDt267Hxlz5k6ypPy14Z6+PW6pTggAGz6MwN31RElQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Features": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "dHs/UyfLgzsVC4FjTi/x+H+yQifgOnpe3rSN8GwkHWjnidePZ3kSqr1JHmFDf5HTQEydYwrwCAfQ0JSzhsEqDA==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "lvMC69ABN/YEaw3ke4cQRqBYZ2V7DJTOT8QXIeAJGJUfwVHTBN0iq2O5zZQrYnnUN2wmeCzCoAg59PKBosVO7g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": "2.9.5", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]", "Microsoft.DiaSymReader": "1.3.0", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": { "type": "Transitive", "resolved": "2.9.5", "contentHash": "SqwdTocsxU7u0Y8am67BY7KSLAhrtDXdBBwt0Nv9TxLVzPBPtPPFS2bHUsxucpOBMBmc10rWE1eJ+IDrr/0/nQ==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "NfBz3b5hFSbO+7xsCNryD+p8axsIJFTG7qM3jvMTC/MqYrU6b8E1b6JoRj5rJSOBB+pSunk+CMqyGQTOWHeDUg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "System.Composition": "1.0.31" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.3.0", "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==" }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "1.5.0", "contentHash": "EXKiDFsChZW0RjrZ4FYHu9aW6+P4MCgEDCklsVseRfhoO0F+dXeMSsMRAlVXIo06kGJ/zv+2w1a2uc2+kxxSaQ==" }, "System.Composition": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "I+D26qpYdoklyAVUdqwUBrEIckMNjAYnuPJy/h9dsQItpQwVREkDFs4b4tkBza0kT2Yk48Lcfsv2QQ9hWsh9Iw==", "dependencies": { "System.Composition.AttributedModel": "1.0.31", "System.Composition.Convention": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Composition.TypedParts": "1.0.31" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "NHWhkM3ZkspmA0XJEsKdtTt1ViDYuojgSND3yHhTzwxepiwqZf+BCWuvCbjUt4fe0NxxQhUDGJ5km6sLjo9qnQ==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "GLjh2Ju71k6C0qxMMtl4efHa68NmWeIUYh4fkUI8xbjQrEBvFmRwMDFcylT8/PR9SQbeeL48IkFxU/+gd0nYEQ==", "dependencies": { "System.Composition.AttributedModel": "1.0.31" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "fN1bT4RX4vUqjbgoyuJFVUizAl2mYF5VAb+bVIxIYZSSc0BdnX+yGAxcavxJuDDCQ1K+/mdpgyEFc8e9ikjvrg==", "dependencies": { "System.Composition.Runtime": "1.0.31" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0LEJN+2NVM89CE4SekDrrk5tHV5LeATltkp+9WNYrR+Huiyt0vaCqHbbHtVAjPyeLWIc8dOz/3kthRBj32wGQg==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0Zae/FtzeFgDBBuILeIbC/T9HMYbW4olAmi8XqqAGosSOWvXfiQLfARZEhiGd0LVXaYgXr0NhxiU1LldRP1fpQ==", "dependencies": { "System.Composition.AttributedModel": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.5.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "System.Security.Cryptography.X509Certificates": "4.3.0" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "1.6.0", "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==", "dependencies": { "System.Collections.Immutable": "1.5.0" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "3TIsJhD1EiiT0w2CcDMN/iSSwnNnsrnbzeVHSKkaEgV85txMprmuO+Yq2AdSbeVGcg28pdNDTPK87tJhX7VFHw==" }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "System.Security.Cryptography.Primitives": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==" }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==" }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==" }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "+MvhNtcvIbqmhANyKu91jQnvIRVSTiaOiFNfKWwXGHG48YAb4I/TyH8spsySiPYla7gKal5ZnF3teJqZAximyQ==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } } } } } ================================================ FILE: Owin.Demo/.browserslistrc ================================================ last 2 Chrome versions last 2 Firefox versions last 2 Edge versions ================================================ FILE: Owin.Demo/Extensions/SetOptionsFromClientExtension.cs ================================================ using System; using MirrorSharp.Advanced; namespace MirrorSharp.Owin.Demo.Extensions { public class SetOptionsFromClientExtension : ISetOptionsFromClientExtension { public bool TrySetOption(IWorkSession session, string name, string value) { if (name != "x-mode") return false; switch (value) { case "script": if (!session.IsRoslyn) throw new NotSupportedException("Only Roslyn sessions support script mode."); session.Roslyn.SetScriptMode(true, typeof(Random)); break; case "regular": if (!session.IsRoslyn) return true; session.Roslyn.SetScriptMode(false); break; default: throw new ArgumentException($"Unknown mode: {value}."); } return true; } } } ================================================ FILE: Owin.Demo/Owin.Demo.csproj ================================================ net461 MirrorSharp.Owin.Demo false false false MirrorSharp.Owin.Demo false ================================================ FILE: Owin.Demo/Startup.cs ================================================ using System; using Microsoft.Owin; using Microsoft.Owin.StaticFiles; using Microsoft.Owin.FileSystems; using Owin; using MirrorSharp.Owin.Demo; using MirrorSharp.Owin.Demo.Extensions; using System.IO; [assembly: OwinStartup(typeof(Startup), nameof(Startup.Configuration))] namespace MirrorSharp.Owin.Demo { public class Startup { private static readonly string MscorlibReferencePath = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86) + @"\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\mscorlib.dll"; public void Configuration(IAppBuilder app) { app.UseDefaultFiles() .UseStaticFiles(new StaticFileOptions { FileSystem = new PhysicalFileSystem("wwwroot") }); app.MapMirrorSharp( "/mirrorsharp", new MirrorSharpOptions { SelfDebugEnabled = true, IncludeExceptionDetails = true } .SetupCSharp(c => { c.MetadataReferences = c.MetadataReferences.Clear(); c.AddMetadataReferencesFromFiles(MscorlibReferencePath); }) .EnableFSharp(), new MirrorSharpServices { SetOptionsFromClient = new SetOptionsFromClientExtension() } ); } } } ================================================ FILE: Owin.Demo/Web.config ================================================ ================================================ FILE: Owin.Demo/app.css ================================================ @import './node_modules/mirrorsharp-codemirror-6-preview/mirrorsharp.css'; @import './node_modules/typeface-open-sans/index.css'; * { box-sizing: border-box; } html, body { width: 100%; height: 100%; } body { padding: 0; margin: 0; font-size: 16px; display: flex; flex-direction: column; padding: 10px; } nav { display: flex; font-family: 'Open Sans', sans-serif; } nav ul { list-style: none; display: flex; padding: 0; margin: 0; } nav li { margin-left: 10px; } a { text-decoration: none; } a:hover { text-decoration: underline; } .CodeMirror { flex-grow: 1; margin-top: 10px; border: 1px solid #ddd; } ================================================ FILE: Owin.Demo/app.js ================================================ import mirrorsharp from 'mirrorsharp-codemirror-6-preview'; const getCode = (language, mode) => { if (mode === 'script') { return 'var messages = Context.Messages;'; } else if (language == 'C#') { return `using System; class C { const int C2 = 5; string f; string P { get; set; } event EventHandler e; event EventHandler E { add {} remove {} } C() { } void M(int p) { var l = p; } } class G { }`.replace(/(\r\n|\r|\n)/g, '\r\n') // Parcel changes newlines to LF .replace(/^ /gm, ''); } else if (language === 'F#') { return '[]\r\nlet main argv = \r\n 0'; } else if (language === 'IL') { return '.class private auto ansi \'\'\r\n{\r\n}'; } } const getLanguageAndCode = () => { const params = window.location.hash.replace(/^\#/, '').split('&').reduce((result, item) => { const [key, value] = item.split('='); result[key] = value; return result; }, {}); const language = (params['language'] || 'CSharp').replace('Sharp', '#'); const mode = params['mode'] || 'regular'; const code = getCode(language, mode); return { language, mode, code }; } const initial = getLanguageAndCode(); const ms = mirrorsharp(document.getElementById('editor-container'), { serviceUrl: window.location.href.replace(/^http(s?:\/\/[^/]+).*$/i, 'ws$1/mirrorsharp'), language: initial.language, text: initial.code, serverOptions: (initial.mode !== 'regular' ? { 'x-mode': initial.mode } : {}) }); window.addEventListener('hashchange', () => { const updated = getLanguageAndCode(); ms.setLanguage(updated.language); ms.setServerOptions({ 'x-mode': updated.mode }); ms.setText(updated.code); }); ================================================ FILE: Owin.Demo/index.html ================================================ MirrorSharp Demo
================================================ FILE: Owin.Demo/package.json ================================================ { "name": "mirrorsharp.demo", "version": "0.0.0", "private": true, "scripts": { "build": "parcel build index.html --dist-dir wwwroot --no-optimize --no-cache" }, "dependencies": { "mirrorsharp-codemirror-6-preview": "file:../WebAssets/dist", "typeface-open-sans": "0.0.75" }, "devDependencies": { "parcel": "^2.8.2", "process": "^0.11.10" } } ================================================ FILE: Owin.Demo/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETFramework,Version=v4.6.1": { "Microsoft.Owin": { "type": "Direct", "requested": "[4.2.2, )", "resolved": "4.2.2", "contentHash": "jt410l/8dvCIguRdU7dupYdm4kGLepVdD8EOTKU4nYZcLRrn6kQYqI6pbJOTJp7Vlm/T2WUF5bzyKK2z29xtjg==", "dependencies": { "Owin": "1.0.0" } }, "Microsoft.Owin.Host.SystemWeb": { "type": "Direct", "requested": "[4.2.2, )", "resolved": "4.2.2", "contentHash": "MYdqpNXC5xX7pVAnhGDfZvU7ybylYENqnV17XYGGkInk3Hco2Fx8t4nVBXBoAw/3ox6cNTbazq+EiS4Pi9lGQA==", "dependencies": { "Microsoft.Owin": "4.2.2", "Owin": "1.0.0" } }, "Microsoft.Owin.StaticFiles": { "type": "Direct", "requested": "[4.2.2, )", "resolved": "4.2.2", "contentHash": "yRflUgZxWRMUap4QqDjev9q3tY9eGh6JETYKTD5UaVxbggRRfxhQ65QH/8vo6Wc9rSAlPIrLtd21EFfv83lxvQ==", "dependencies": { "Microsoft.Owin": "4.2.2", "Microsoft.Owin.FileSystems": "4.2.2", "Owin": "1.0.0" } }, "FSharp.Compiler.Service": { "type": "Transitive", "resolved": "43.8.300", "contentHash": "CoPjQYXXwmYkkHm+yxBHSW9IJVLpvwkKGEzXa5A6ebf8v6GfYaxZc5G+VHojDr586oezp1elFemu+A1WWH095A==", "dependencies": { "FSharp.Core": "[8.0.300]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "7.0.0", "System.Diagnostics.DiagnosticSource": "7.0.2", "System.Memory": "4.5.5", "System.Reflection.Emit": "4.7.0", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "FSharp.Core": { "type": "Transitive", "resolved": "8.0.300", "contentHash": "Jv44fV7TNglyMku89lQcA4Q6mFKLyHb2bs1Yb72nvSVc+cHplEnoZ4XQUaaTLJGUTx/iMqcrkYGtaLzkkIhpaA==" }, "Microsoft.Build.Framework": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "jleteC0seumLGTmTVwob97lcwPj/dfgzL/V3g/VVcMZgo2Ic7jzdy8AYpByPDh8e3uRq0SjCl6HOFCjhy5GzRQ==", "dependencies": { "Microsoft.Win32.Registry": "5.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "Microsoft.Build.Utilities.Core": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "pU3GnHcXp8VRMGKxdJCq+tixfhFn+QwEbpqmZmc/nqFHFyuhlGwjonWZMIWcwuCv/8EHgxoOttFvna1vrN+RrA==", "dependencies": { "Microsoft.Build.Framework": "17.12.6", "Microsoft.NET.StringTools": "17.12.6", "Microsoft.Win32.Registry": "5.0.0", "System.Collections.Immutable": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0", "System.Text.Encoding.CodePages": "7.0.0" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "2.9.4", "contentHash": "alIJhS0VUg/7x5AsHEoovh/wRZ0RfCSS7k5pDSqpRLTyuMTtRgj6OJJPRApRhJHOGYYsLakf1hKeXFoDwKwNkg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "N5yQdGy+M4kimVG7hwCeGTCfgYjK2o5b/Shumkb/rCC+/SAkvP1HUAYK+vxPFS7dLJNtXLRsmPHKj3fnyNWnrw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "2.9.4", "System.Collections.Immutable": "1.5.0", "System.Memory": "4.5.3", "System.Reflection.Metadata": "1.6.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2", "System.Text.Encoding.CodePages": "4.5.1", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "WDUIhTHem38H6VJ98x2Ssq0fweakJHnHYl7vbG8ARnsAwLoJKCQCy78EeY1oRrCKG42j0v6JVljKkeqSDA28UA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "t9uIwsLzT5zQ1Q3ZIpwE4EOnAf/lGdbQwyeqhyO/BJ+AWDt267Hxlz5k6ypPy14Z6+PW6pTggAGz6MwN31RElQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Features": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "dHs/UyfLgzsVC4FjTi/x+H+yQifgOnpe3rSN8GwkHWjnidePZ3kSqr1JHmFDf5HTQEydYwrwCAfQ0JSzhsEqDA==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "lvMC69ABN/YEaw3ke4cQRqBYZ2V7DJTOT8QXIeAJGJUfwVHTBN0iq2O5zZQrYnnUN2wmeCzCoAg59PKBosVO7g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": "2.9.5", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]", "Microsoft.DiaSymReader": "1.3.0", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": { "type": "Transitive", "resolved": "2.9.5", "contentHash": "SqwdTocsxU7u0Y8am67BY7KSLAhrtDXdBBwt0Nv9TxLVzPBPtPPFS2bHUsxucpOBMBmc10rWE1eJ+IDrr/0/nQ==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "NfBz3b5hFSbO+7xsCNryD+p8axsIJFTG7qM3jvMTC/MqYrU6b8E1b6JoRj5rJSOBB+pSunk+CMqyGQTOWHeDUg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "System.Composition": "1.0.31" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.3.0", "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==" }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", "resolved": "2.2.0", "contentHash": "uyjY/cqomw1irT4L7lDeg4sJ36MsjHg3wKqpGrBAdzvZaxo85yMF+sAA9RIzTV92fDxuUzjqksMqA0+SNMkMgA==", "dependencies": { "System.Memory": "4.5.4" } }, "Microsoft.NET.StringTools": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "w8Ehofqte5bJoR+Fa3f6JwkwFEkGtXxqvQHGOVOSHDzgNVySvL5FSNhavbQSZ864el9c3rjdLPLAtBW8dq6fmg==" }, "Microsoft.Owin.FileSystems": { "type": "Transitive", "resolved": "4.2.2", "contentHash": "GDYA+V0xJkqdp5lRehCJ3vT8Fp1OjmKLvKibEvYTgwg41CtUXduo5xKpsfnZ2IYCszUSrGJ8OdUKtoFc7mpMcw==" }, "Microsoft.Win32.Registry": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", "dependencies": { "System.Security.AccessControl": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "Owin": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "OseTFniKmyp76mEzOBwIKGBRS5eMoYNkMKaMXOpxx9jv88+b6mh1rSaw43vjBOItNhaLFG3d0a20PfHyibH5sw==" }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Composition": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "I+D26qpYdoklyAVUdqwUBrEIckMNjAYnuPJy/h9dsQItpQwVREkDFs4b4tkBza0kT2Yk48Lcfsv2QQ9hWsh9Iw==", "dependencies": { "System.Composition.AttributedModel": "1.0.31", "System.Composition.Convention": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Composition.TypedParts": "1.0.31" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "NHWhkM3ZkspmA0XJEsKdtTt1ViDYuojgSND3yHhTzwxepiwqZf+BCWuvCbjUt4fe0NxxQhUDGJ5km6sLjo9qnQ==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "GLjh2Ju71k6C0qxMMtl4efHa68NmWeIUYh4fkUI8xbjQrEBvFmRwMDFcylT8/PR9SQbeeL48IkFxU/+gd0nYEQ==", "dependencies": { "System.Composition.AttributedModel": "1.0.31" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "fN1bT4RX4vUqjbgoyuJFVUizAl2mYF5VAb+bVIxIYZSSc0BdnX+yGAxcavxJuDDCQ1K+/mdpgyEFc8e9ikjvrg==", "dependencies": { "System.Composition.Runtime": "1.0.31" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0LEJN+2NVM89CE4SekDrrk5tHV5LeATltkp+9WNYrR+Huiyt0vaCqHbbHtVAjPyeLWIc8dOz/3kthRBj32wGQg==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0Zae/FtzeFgDBBuILeIbC/T9HMYbW4olAmi8XqqAGosSOWvXfiQLfARZEhiGd0LVXaYgXr0NhxiU1LldRP1fpQ==", "dependencies": { "System.Composition.AttributedModel": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==", "dependencies": { "System.Security.Cryptography.ProtectedData": "8.0.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "7.0.2", "contentHash": "hYr3I9N9811e0Bjf2WNwAGGyTuAFbbTgX1RPLt/3Wbm68x3IGcX5Cl75CMmgT6WlNwLQ2tCCWfqYPpypjaf2xA==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.5.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "System.Security.Cryptography.X509Certificates": "4.3.0" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==" }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "MclTG61lsD9sYdpNz9xsKBzjsmsfCtcMZYXz/IUr2zlhaTaABonlr1ESeompTgM+Xk+IwtGYU7/voh3YWB/fWw==", "dependencies": { "System.Collections.Immutable": "7.0.0", "System.Memory": "4.5.5" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", "dependencies": { "System.Security.Principal.Windows": "5.0.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "System.Security.Cryptography.Primitives": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==" }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==" }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==", "dependencies": { "System.Memory": "4.5.5" } }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==" }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "+MvhNtcvIbqmhANyKu91jQnvIRVSTiaOiFNfKWwXGHG48YAb4I/TyH8spsySiPYla7gKal5ZnF3teJqZAximyQ==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } }, "MirrorSharp.FSharp": { "type": "Project", "dependencies": { "FSharp.Compiler.Service": "[43.8.300, )", "FSharp.Core": "[8.0.300, )", "Microsoft.Build.Utilities.Core": "[17.12.6, )", "Microsoft.IO.RecyclableMemoryStream": "[2.2.0, )", "MirrorSharp.Common": "[3.0.9, )" } }, "MirrorSharp.Owin": { "type": "Project", "dependencies": { "Microsoft.Owin": "[4.2.2, )", "MirrorSharp.Common": "[3.0.9, )", "Owin": "[1.0.0, )" } } } } } ================================================ FILE: Php/Advanced/IPhpSession.cs ================================================ using Pchp.CodeAnalysis; namespace MirrorSharp.Php.Advanced { /// Represents a user session based on the Peachpie PHP compiler. public interface IPhpSession { /// Object containing the syntax and semantic information. /// We work directly with the object, because the project system is not yet implemented in Peachpie. PhpCompilation Compilation { get; set; } } } ================================================ FILE: Php/Advanced/RoslynTypesExtensions.cs ================================================ extern alias peachpie; using PeachpieRoslyn = peachpie::Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Text; namespace MirrorSharp.Php.Advanced { /// Provides the conversion from certain types in the fork of Roslyn used in Peachpie to the standard Roslyn. public static class RoslynTypesExtensions { public static TextSpan ToStandardRoslyn(this PeachpieRoslyn.Text.TextSpan span) => new (span.Start, span.Length); public static LinePosition ToStandardRoslyn(this PeachpieRoslyn.Text.LinePosition position) => new (position.Line, position.Character); public static LinePositionSpan ToStandardRoslyn(this PeachpieRoslyn.Text.LinePositionSpan span) { return new LinePositionSpan( span.Start.ToStandardRoslyn(), span.End.ToStandardRoslyn()); } public static Location ToStandardRoslyn(this PeachpieRoslyn.Location location) { return Location.Create( location.SourceTree.FilePath, location.SourceSpan.ToStandardRoslyn(), location.GetLineSpan().Span.ToStandardRoslyn()); } public static DiagnosticSeverity ToStandardRoslyn(this PeachpieRoslyn.DiagnosticSeverity severity) => (DiagnosticSeverity)(int)severity; public static Diagnostic ToStandardRoslyn(this PeachpieRoslyn.Diagnostic diagnostic) { return Diagnostic.Create( diagnostic.Id, "Compiler", diagnostic.GetMessage(), diagnostic.Severity.ToStandardRoslyn(), diagnostic.DefaultSeverity.ToStandardRoslyn(), isEnabledByDefault: false, warningLevel: diagnostic.Severity == PeachpieRoslyn.DiagnosticSeverity.Warning ? 1 : 0, location: diagnostic.Location.ToStandardRoslyn() ); } } } ================================================ FILE: Php/Advanced/WorkSessionExtensions.cs ================================================ using MirrorSharp.Advanced; using MirrorSharp.Internal; namespace MirrorSharp.Php.Advanced { /// Provides PHP-related extensions to the . public static class WorkSessionExtensions { /// Specifies whether the is using PHP. /// The session /// true if the session is using PHP; otherwise, false public static bool IsPhp(this IWorkSession session) { Argument.NotNull(nameof(session), session); return ((WorkSession)session).LanguageSession is IPhpSession; } /// Returns PHP session associated with the , if any; throws otherwise. /// The session /// if the session is using PHP public static IPhpSession Php(this IWorkSession session) { Argument.NotNull(nameof(session), session); return (IPhpSession)((WorkSession)session).LanguageSession; } } } ================================================ FILE: Php/CHANGELOG.md ================================================ # Changelog ## [0.17] - 2024-11-19 ### Fixed - Added explicit dependency on safe version of Newtonsoft.Json to resolve security audit warnings - Added explicit dependency on safe version of System.Data.SqlClient to resolve security audit warnings ## [0.16] - 2022-04-04 ## [0.16-test-2021-04-02-1] - 2021-04-02 ## [0.16-test-2021-04-01-1] - 2021-04-01 ### Changed - Updated to support MirrorSharp.Common 3.0.0 ## [0.15] - 2020-12-17 ### Changed - Updated to support MirrorSharp.Common 2.2.2 ================================================ FILE: Php/Internal/PhpLanguage.cs ================================================ using MirrorSharp.Internal; using MirrorSharp.Internal.Abstraction; namespace MirrorSharp.Php.Internal { internal class PhpLanguage : ILanguage { public const string Name = "PHP"; private readonly MirrorSharpPhpOptions _options; public PhpLanguage(MirrorSharpPhpOptions options) { _options = options; } public ILanguageSessionInternal CreateSession(string text, ILanguageSessionExtensions extensions) { return new PhpSession(text, _options); } string ILanguage.Name => Name; } } ================================================ FILE: Php/Internal/PhpSession.cs ================================================ extern alias peachpie; using PeachpieRoslyn = peachpie::Microsoft.CodeAnalysis; using System; using System.Collections.Immutable; using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Completion; using Microsoft.CodeAnalysis.Text; using MirrorSharp.Internal.Abstraction; using MirrorSharp.Php.Advanced; using Pchp.CodeAnalysis; using SourceText = peachpie::Microsoft.CodeAnalysis.Text.SourceText; namespace MirrorSharp.Php.Internal { internal class PhpSession : ILanguageSessionInternal, IPhpSession { private const string AssemblyName = "app"; private const string ScriptFileName = "index.php"; /// Helper base compilation object used to cache the parsed references. private static PhpCompilation CoreCompilation { get; } static PhpSession() { CoreCompilation = PhpCompilation.Create( assemblyName: AssemblyName, syntaxTrees: ImmutableArray.Empty, references: MirrorSharpPhpOptions.AssemblyReferencePaths.Select(path => PeachpieRoslyn.MetadataReference.CreateFromFile(path)), options: new PhpCompilationOptions( outputKind: PeachpieRoslyn.OutputKind.ConsoleApplication, baseDirectory: Environment.CurrentDirectory, sdkDirectory: null ) ); // Bind reference manager, cache all references var hlp = CoreCompilation.Assembly; } private string _text; private MirrorSharpPhpOptions _options; public PhpSession(string text, MirrorSharpPhpOptions options) { _text = text; _options = options; var syntaxTree = PhpSyntaxTree.ParseCode(text, PhpParseOptions.Default, PhpParseOptions.Default, ScriptFileName); Compilation = (PhpCompilation)CoreCompilation.AddSyntaxTrees(syntaxTree); if (options.Debug == false) { Compilation = Compilation.WithPhpOptions(Compilation.Options.WithOptimizationLevel(PeachpieRoslyn.OptimizationLevel.Release)); } } public PhpCompilation Compilation { get; set; } public string GetText() => _text; public void ReplaceText(string? newText, int start = 0, int? length = null) { if (length > 0) _text = _text.Remove(start, length.Value); if (newText?.Length > 0) _text = _text.Insert(start, newText); var syntaxTree = PhpSyntaxTree.ParseCode(_text, PhpParseOptions.Default, PhpParseOptions.Default, ScriptFileName); Compilation = (PhpCompilation)Compilation.ReplaceSyntaxTree(Compilation.SyntaxTrees.Single(), syntaxTree); } public async Task> GetDiagnosticsAsync(CancellationToken cancellationToken) { var parseDiags = Compilation.GetParseDiagnostics(); if (parseDiags.Length > 0) { return parseDiags .Select(diagnostic => diagnostic.ToStandardRoslyn()) .ToImmutableArray(); } else { return (await Compilation.BindAndAnalyseTask().ConfigureAwait(false)) .Select(diagnostic => diagnostic.ToStandardRoslyn()) .ToImmutableArray(); } } public bool ShouldTriggerCompletion(int cursorPosition, CompletionTrigger trigger) { return false; // not supported yet } public Task GetCompletionsAsync(int cursorPosition, CompletionTrigger trigger, CancellationToken cancellationToken) { return Task.FromResult(CompletionList.Empty); // not supported yet } public Task GetCompletionDescriptionAsync(CompletionItem item, CancellationToken cancellationToken) { throw new NotSupportedException(); // not supported yet } public Task GetCompletionChangeAsync(TextSpan completionSpan, CompletionItem item, CancellationToken cancellationToken) { throw new NotSupportedException(); // not supported yet } public void Dispose() {} } } ================================================ FILE: Php/MirrorSharpOptionsExtensions.cs ================================================ using System; using MirrorSharp.Internal; using MirrorSharp.Php; using MirrorSharp.Php.Internal; namespace MirrorSharp { /// Extensions to related to Visual Basic .NET. public static class MirrorSharpOptionsExtensions { /// Enables and configures PHP .NET support in the . /// Options to configure /// Setup delegate used to configure /// Value of , for convenience. public static MirrorSharpOptions EnablePhp(this MirrorSharpOptions options, Action? setup = null) { Argument.NotNull(nameof(options), options); options.Languages.Add(PhpLanguage.Name, () => { var phpOptions = new MirrorSharpPhpOptions(); setup?.Invoke(phpOptions); return new PhpLanguage(phpOptions); }); return options; } } } ================================================ FILE: Php/MirrorSharpPhpOptions.cs ================================================ using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; using System.Reflection; namespace MirrorSharp.Php { /// MirrorSharp options for PHP public class MirrorSharpPhpOptions { /// Contains the list of assembly reference paths to be used, not configurable. public static readonly ImmutableArray AssemblyReferencePaths = GatherPeachpieReferences(); internal MirrorSharpPhpOptions() { } /// Whether to compile in Debug mode. public bool? Debug { get; set; } private static ImmutableArray GatherPeachpieReferences() { var refKnownTypes = new[] { typeof(object), // mscorlib typeof(Pchp.Core.Context), // Peachpie.Runtime typeof(Pchp.Library.Strings), // Peachpie.Library typeof(Peachpie.Library.XmlDom.XmlDom), // Peachpie.Library.XmlDom typeof(Peachpie.Library.Scripting.ScriptingProvider) // Peachpie.Library.Scripting }; var list = refKnownTypes.Select(type => type.GetTypeInfo().Assembly).Distinct().ToList(); var set = new HashSet(list); for (var i = 0; i < list.Count; i++) { var assembly = list[i]; var refs = assembly.GetReferencedAssemblies(); foreach (var refname in refs) { var refassembly = Assembly.Load(refname); if (refassembly != null && set.Add(refassembly)) { list.Add(refassembly); } } } return list.Select(ass => ass.Location).ToImmutableArray(); } } } ================================================ FILE: Php/Php.csproj ================================================ MirrorSharp.Php MirrorSharp.Php netstandard2 0.17 MirrorSharp PHP support library, implemented using Peachpie. $(DescriptionSuffix) PHP;Peachpie;CodeMirror true peachpie ================================================ FILE: Php/Properties/AssemblyInfo.cs ================================================ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // 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)] [assembly: InternalsVisibleTo("MirrorSharp.Tests")] ================================================ FILE: Php/PublicAPI.Shipped.txt ================================================ #nullable enable MirrorSharp.MirrorSharpOptionsExtensions MirrorSharp.Php.Advanced.IPhpSession MirrorSharp.Php.Advanced.IPhpSession.Compilation.get -> Pchp.CodeAnalysis.PhpCompilation! MirrorSharp.Php.Advanced.IPhpSession.Compilation.set -> void MirrorSharp.Php.Advanced.RoslynTypesExtensions MirrorSharp.Php.Advanced.WorkSessionExtensions MirrorSharp.Php.MirrorSharpPhpOptions MirrorSharp.Php.MirrorSharpPhpOptions.Debug.get -> bool? MirrorSharp.Php.MirrorSharpPhpOptions.Debug.set -> void static MirrorSharp.MirrorSharpOptionsExtensions.EnablePhp(this MirrorSharp.MirrorSharpOptions! options, System.Action? setup = null) -> MirrorSharp.MirrorSharpOptions! static MirrorSharp.Php.Advanced.RoslynTypesExtensions.ToStandardRoslyn(this Microsoft.CodeAnalysis.Diagnostic! diagnostic) -> Microsoft.CodeAnalysis.Diagnostic! static MirrorSharp.Php.Advanced.RoslynTypesExtensions.ToStandardRoslyn(this Microsoft.CodeAnalysis.DiagnosticSeverity severity) -> Microsoft.CodeAnalysis.DiagnosticSeverity static MirrorSharp.Php.Advanced.RoslynTypesExtensions.ToStandardRoslyn(this Microsoft.CodeAnalysis.Location! location) -> Microsoft.CodeAnalysis.Location! static MirrorSharp.Php.Advanced.RoslynTypesExtensions.ToStandardRoslyn(this Microsoft.CodeAnalysis.Text.LinePosition position) -> Microsoft.CodeAnalysis.Text.LinePosition static MirrorSharp.Php.Advanced.RoslynTypesExtensions.ToStandardRoslyn(this Microsoft.CodeAnalysis.Text.LinePositionSpan span) -> Microsoft.CodeAnalysis.Text.LinePositionSpan static MirrorSharp.Php.Advanced.RoslynTypesExtensions.ToStandardRoslyn(this Microsoft.CodeAnalysis.Text.TextSpan span) -> Microsoft.CodeAnalysis.Text.TextSpan static MirrorSharp.Php.Advanced.WorkSessionExtensions.IsPhp(this MirrorSharp.Advanced.IWorkSession! session) -> bool static MirrorSharp.Php.Advanced.WorkSessionExtensions.Php(this MirrorSharp.Advanced.IWorkSession! session) -> MirrorSharp.Php.Advanced.IPhpSession! static readonly MirrorSharp.Php.MirrorSharpPhpOptions.AssemblyReferencePaths -> System.Collections.Immutable.ImmutableArray ================================================ FILE: Php/PublicAPI.Unshipped.txt ================================================ ================================================ FILE: Php/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETStandard,Version=v2.0": { "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", "resolved": "2.0.3", "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" } }, "Newtonsoft.Json": { "type": "Direct", "requested": "[13.0.3, )", "resolved": "13.0.3", "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" }, "Peachpie.App": { "type": "Direct", "requested": "[0.9.0-CI01101, )", "resolved": "0.9.0-CI01101", "contentHash": "LZcCc6XsKW7MBRKne6KGgwDKPyr/gJb53BJhRVfRlXWFjRecuBqLwjXLWpPvXR57o/MwvZ+iv//iC2NYucIpwQ==", "dependencies": { "Peachpie.Library": "0.9.0-CI01101", "Peachpie.Library.MsSql": "0.9.0-CI01101", "Peachpie.Library.MySql": "0.9.0-CI01101", "Peachpie.Library.Network": "0.9.0-CI01101", "Peachpie.Library.PDO": "0.9.0-CI01101", "Peachpie.Library.Scripting": "0.9.0-CI01101", "Peachpie.Library.XmlDom": "0.9.0-CI01101", "Peachpie.Runtime": "0.9.0-CI01101" } }, "Peachpie.CodeAnalysis": { "type": "Direct", "requested": "[0.9.0-CI01101, )", "resolved": "0.9.0-CI01101", "contentHash": "SULo4KfDz/nW3I1x1FV/oy04myBa7BkZGyV/e4OzPLsX8vb0pL8Q0nLHsoOJx0CWxBehlXU98APdVB+U0BNfDg==", "dependencies": { "Devsense.Php.Parser": "1.4.51", "Peachpie.Microsoft.CodeAnalysis": "0.6.0", "System.Collections": "4.3.0", "System.Collections.Immutable": "1.4.0", "System.Diagnostics.Debug": "4.3.0", "System.Reflection.Metadata": "1.5.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Data.SqlClient": { "type": "Direct", "requested": "[4.9.0, )", "resolved": "4.9.0", "contentHash": "j4KJO+vC62NyUtNHz854njEqXbT8OmAa5jb1nrGfYWBOcggyYUQE0w/snXeaCjdvkSKWuUD+hfvlbN8pTrJTXg==" }, "Devsense.PHP.Parser": { "type": "Transitive", "resolved": "1.4.51", "contentHash": "QBFG8qrGJqvvH4sHGt1ym7Mg9w7RYJOkr0KvJoXg71lAu7ON8klLwefKP5MampoPTDm1TYf8CxWn1kFZRWpBnA==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "HtmlAgilityPack": { "type": "Transitive", "resolved": "1.6.7", "contentHash": "mpkJPBYXdqFVy5pjTKFzE2W4rZIHv+pOaShCp44Rn/+jNw/ApS3RxDNDYO59QFUNSUMD4GP0jBTIwvPDjC3W7Q==", "dependencies": { "System.Net.Http": "4.3.2", "System.Xml.XPath": "4.3.0", "System.Xml.XPath.XmlDocument": "4.3.0", "System.Xml.XmlDocument": "4.3.0" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "2.9.4", "contentHash": "alIJhS0VUg/7x5AsHEoovh/wRZ0RfCSS7k5pDSqpRLTyuMTtRgj6OJJPRApRhJHOGYYsLakf1hKeXFoDwKwNkg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "N5yQdGy+M4kimVG7hwCeGTCfgYjK2o5b/Shumkb/rCC+/SAkvP1HUAYK+vxPFS7dLJNtXLRsmPHKj3fnyNWnrw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "2.9.4", "System.Collections.Immutable": "1.5.0", "System.Memory": "4.5.3", "System.Reflection.Metadata": "1.6.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2", "System.Text.Encoding.CodePages": "4.5.1", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "WDUIhTHem38H6VJ98x2Ssq0fweakJHnHYl7vbG8ARnsAwLoJKCQCy78EeY1oRrCKG42j0v6JVljKkeqSDA28UA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "t9uIwsLzT5zQ1Q3ZIpwE4EOnAf/lGdbQwyeqhyO/BJ+AWDt267Hxlz5k6ypPy14Z6+PW6pTggAGz6MwN31RElQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Features": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "dHs/UyfLgzsVC4FjTi/x+H+yQifgOnpe3rSN8GwkHWjnidePZ3kSqr1JHmFDf5HTQEydYwrwCAfQ0JSzhsEqDA==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "lvMC69ABN/YEaw3ke4cQRqBYZ2V7DJTOT8QXIeAJGJUfwVHTBN0iq2O5zZQrYnnUN2wmeCzCoAg59PKBosVO7g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": "2.9.5", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]", "Microsoft.DiaSymReader": "1.3.0", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": { "type": "Transitive", "resolved": "2.9.5", "contentHash": "SqwdTocsxU7u0Y8am67BY7KSLAhrtDXdBBwt0Nv9TxLVzPBPtPPFS2bHUsxucpOBMBmc10rWE1eJ+IDrr/0/nQ==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "NfBz3b5hFSbO+7xsCNryD+p8axsIJFTG7qM3jvMTC/MqYrU6b8E1b6JoRj5rJSOBB+pSunk+CMqyGQTOWHeDUg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "System.Composition": "1.0.31" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.3.0", "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.DiaSymReader.Native": { "type": "Transitive", "resolved": "1.3.3", "contentHash": "mjATkm+L2UlP35gO/ExNutLDfgX4iiwz1l/8sYVoeGHp5WnkEDu0NfIEsC4Oy/pCYeRw0/6SGB+kArJVNNvENQ==" }, "Microsoft.DotNet.PlatformAbstractions": { "type": "Transitive", "resolved": "2.0.4", "contentHash": "2HjSGp63VCLQaeGadrLYR868g25mJHr+TFF81yWCaClzjUbU2vNDx6km7SUgPnoLVksE/1e7in88eh+oPtc4aQ==", "dependencies": { "System.AppContext": "4.1.0", "System.Collections": "4.0.11", "System.IO": "4.1.0", "System.IO.FileSystem": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.InteropServices": "4.1.0", "System.Runtime.InteropServices.RuntimeInformation": "4.0.0" } }, "Microsoft.Extensions.DependencyInjection": { "type": "Transitive", "resolved": "2.0.0", "contentHash": "wakg18gHYiUL1pcjjyZuYk6OvDpbSw1E7IWxm78TMepsr+gQ8W0tWzuRm0q/9RFblngwPwo15rrgZSUV51W5Iw==", "dependencies": { "Microsoft.Extensions.DependencyInjection.Abstractions": "2.0.0" } }, "Microsoft.Extensions.DependencyInjection.Abstractions": { "type": "Transitive", "resolved": "2.0.0", "contentHash": "eUdJ0Q/GfVyUJc0Jal5L1QZLceL78pvEM9wEKcHeI24KorqMDoVX+gWsMGLulQMfOwsUaPtkpQM2pFERTzSfSg==" }, "Microsoft.Extensions.DependencyModel": { "type": "Transitive", "resolved": "2.0.4", "contentHash": "jnHAeijsfJFQXdXmnYK/NhQIkgBUeth//RZZkf0ldIKC+jARbf7YxbA9uTrs/EPhuQxHXaDxVuMyscgmL+UqfA==", "dependencies": { "Microsoft.DotNet.PlatformAbstractions": "2.0.4", "Newtonsoft.Json": "9.0.1", "System.Diagnostics.Debug": "4.0.11", "System.Dynamic.Runtime": "4.0.11", "System.Linq": "4.1.0" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.1", "contentHash": "TMBuzAHpTenGbGgk0SMTwyEkyijY/Eae4ZGsFNYJvAr/LDn1ku3Etp3FPxChmDp5HHF3kzJuoaa08N0xjqAJfQ==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "MySqlConnector": { "type": "Transitive", "resolved": "0.42.1", "contentHash": "7jS8P+XOw+vS/reuwEEGhtAKvagiOEtOsu5/46Bnuiw+DgOjAFgMSojkiVaZi9DHcatP8jgmjY67iDGVZByQng==", "dependencies": { "System.Buffers": "4.4.0", "System.Memory": "4.5.0", "System.Threading.Tasks.Extensions": "4.3.0" } }, "Peachpie.Library": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "gbYwLhop0tmTn4V+QSlbTct6vu7SDFqUmoLE5wtoyKmTR9B9GNV8kSuhkugYQ6lGt/331KS/9rfm7DAdkOxFUw==", "dependencies": { "Peachpie.Runtime": "0.9.0-CI01101" } }, "Peachpie.Library.MsSql": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "y7ROu/fhHwGF6nyg6HH4ilJyPPhds8vq3mCqs5yhDf7KpqwAJ9s8dU0rRxz9XAoT1ZPu7+Te4uCETLzCGVtGuA==", "dependencies": { "Peachpie.Library": "0.9.0-CI01101", "Peachpie.Runtime": "0.9.0-CI01101", "System.Data.SqlClient": "4.4.3" } }, "Peachpie.Library.MySql": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "WeN1dTTTRR3XrMXAS48fkLCNHX5dP7iv9uFw3tjXvJBZkaQQrpiFjZ3WS+wxbgxyiqZ/skNhzpGQB828FY4coQ==", "dependencies": { "MySqlConnector": "0.42.1", "Peachpie.Library": "0.9.0-CI01101", "Peachpie.Runtime": "0.9.0-CI01101" } }, "Peachpie.Library.Network": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "Bx8GO4SahFi1gk/zvkOzYbifygQiEdXECdCnbz7OzmCbN6VB7m1eCJozYXEEAO4nIBhptICaL5RgFRi+uTKPJA==", "dependencies": { "Peachpie.Library": "0.9.0-CI01101", "Peachpie.Runtime": "0.9.0-CI01101" } }, "Peachpie.Library.PDO": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "AtQ6pVUgYCdSIQE1Txk4HD1Vv8pe0Q3thD7dc/m96lWYqUimHVb+PovOZxbC0DM2XdpthemArUAZL8l3NDHCGg==", "dependencies": { "Peachpie.Library": "0.9.0-CI01101", "Peachpie.Runtime": "0.9.0-CI01101" } }, "Peachpie.Library.Scripting": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "lm2LUVlCUrtg9+M1pFWpBdn+0GOE5SieHlA+dI910gnk3DpDhWO+Ic1hHJG0j1EkjntuuPmrZruOKobjj40slA==", "dependencies": { "Devsense.Php.Parser": "1.4.51", "Peachpie.CodeAnalysis": "0.9.0-CI01101", "Peachpie.Library": "0.9.0-CI01101", "Peachpie.Library.XmlDom": "0.9.0-CI01101", "Peachpie.Microsoft.CodeAnalysis": "0.6.0", "Peachpie.Runtime": "0.9.0-CI01101", "System.Runtime.Loader": "4.3.0" } }, "Peachpie.Library.XmlDom": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "JcABdbNABlVgF+/fPujLZwcUZguOaJknP/Jr2gP1BamVSgFHVnCV3uTP8Wmu21EoQGk6mrGD+qDNoKwNUXpKrw==", "dependencies": { "HtmlAgilityPack": "1.6.7", "Peachpie.Library": "0.9.0-CI01101", "Peachpie.Runtime": "0.9.0-CI01101", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XPath": "4.3.0", "System.Xml.XPath.XmlDocument": "4.3.0", "System.Xml.XmlDocument": "4.3.0" } }, "Peachpie.Microsoft.CodeAnalysis": { "type": "Transitive", "resolved": "0.6.0", "contentHash": "pw0Nm3V2bvhG9EN/eAI6dUGYrDjwApgQbEgjPiuLJK9iN4QyXYwn589kxhvimVWGSJHOakkDemfQFunyxOqSow==", "dependencies": { "Microsoft.DiaSymReader.Native": "1.3.3", "System.Collections.Immutable": "1.3.1", "System.Reflection.Metadata": "1.4.2", "System.Runtime.Serialization.Json": "4.0.3" } }, "Peachpie.Runtime": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "EUN0raglMAuLUxEWsRZpvxQowfZbEZ96DyeK1ZhwD/KVQpnzzO8lZrd5/yc3i5FAOupJpVm4/040xdEyqC4LzQ==", "dependencies": { "Microsoft.Extensions.DependencyInjection": "2.0.0", "Microsoft.Extensions.DependencyModel": "2.0.4", "System.Composition": "1.1.0", "System.Memory": "4.5.0", "System.Reflection.Emit.Lightweight": "4.3.0" } }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.AppContext": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "3QjO4jNV7PdKkmQAVp9atA+usVnKRwI3Kx1nMwJ93T0LcQfx7pKAYk0nKz5wn1oP5iqlhZuy6RXOFdhr7rDwow==", "dependencies": { "System.Runtime": "4.1.0" } }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "1.5.0", "contentHash": "EXKiDFsChZW0RjrZ4FYHu9aW6+P4MCgEDCklsVseRfhoO0F+dXeMSsMRAlVXIo06kGJ/zv+2w1a2uc2+kxxSaQ==" }, "System.Composition": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "rLsB/X6sp4cLPPlyPVuTBQbtG2IdSdKc6tFImxopz9s5po4Og5sQ8rA7GPxpTsrQ5UXS1IxdaqFwxtse4eLolw==", "dependencies": { "System.Composition.AttributedModel": "1.1.0", "System.Composition.Convention": "1.1.0", "System.Composition.Hosting": "1.1.0", "System.Composition.Runtime": "1.1.0", "System.Composition.TypedParts": "1.1.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "S7Ybny/58VGS+5uanotm7f2k7Iv3ufdv0eDA8adZ345pE27zr+9bxhHw/rXXMVltRdoUuyB1O4YpYT1lVwkM0w==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "lqiuITNCKJ/JlXzmum0mr+1HDCJ6mN/+1C4ouXpvLKpUA+zal7EsRvfHxy+kVVPrPMaFU9dLQkBxV/GFVnJoXA==", "dependencies": { "System.Composition.AttributedModel": "1.1.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "D5M3oBOxCeHe4WVNtqKnFA3UMt53uIdUMGgustecwh7kmzE7k+Co+CFPLpQVPdyBhmB8WxicaESa41QLZ0ZlgA==", "dependencies": { "System.Composition.Runtime": "1.1.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "dLbtnVmOiD4k1/YA4LfV2nEZX4jdgizvSzvVIffOp3AXU468n5IsDbwwbCHSUmnfqoJ5unYR+hEmN1U3gBmDRg==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "SlACsoBPQpeL8dAjQXttv9d5Y/790UmxnlP2yk1w94T2vMcHOa7i9XGUKCB81BGMWstR2FF9ZEftm8rIdhMEvg==", "dependencies": { "System.Composition.AttributedModel": "1.1.0", "System.Composition.Hosting": "1.1.0", "System.Composition.Runtime": "1.1.0" } }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Diagnostics.Tracing": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Dynamic.Runtime": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Linq": "4.1.0", "System.Linq.Expressions": "4.1.0", "System.ObjectModel": "4.0.12", "System.Reflection": "4.1.0", "System.Reflection.Emit": "4.0.1", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.ObjectModel": "4.0.12", "System.Reflection": "4.1.0", "System.Reflection.Emit": "4.0.1", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Emit.Lightweight": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==" }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.0.12", "contentHash": "tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11" } }, "System.Private.DataContractSerialization": { "type": "Transitive", "resolved": "4.1.2", "contentHash": "e700XsW/HO7qlnatKyVXEFHJMNXDkPOkn4pmpddXcJk6KEsnYIpJUHDFycHKB3mRVsgRtUYiDRbRKhecwo2ezg==", "dependencies": { "System.Collections": "4.0.11", "System.Collections.Concurrent": "4.0.12", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Emit.Lightweight": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1", "System.Xml.XmlSerializer": "4.0.11" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==", "dependencies": { "System.IO": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Runtime": "4.1.0" } }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "GYrtRsZcMuHF3sbmRHfMYpvxZoIN2bQGrYGerUiWLEkqdEUQZhH3TRSaC/oI4wO0II1RKBPlpIa1TOMxIcOOzQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "Microsoft.NETCore.Targets": "1.0.1", "System.Reflection": "4.1.0", "System.Runtime": "4.1.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "1.6.0", "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==", "dependencies": { "System.Collections.Immutable": "1.5.0" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==", "dependencies": { "System.Reflection": "4.1.0", "System.Runtime": "4.1.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "3TIsJhD1EiiT0w2CcDMN/iSSwnNnsrnbzeVHSKkaEgV85txMprmuO+Yq2AdSbeVGcg28pdNDTPK87tJhX7VFHw==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "qAtKMcHOAq9/zKkl0dwvF0T0pmgCQxX1rC49rJXoU8jq+lw6MC3uXy7nLFmjEI20T3Aq069eWz4LcYR64vEmJw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3", "System.Runtime": "4.3.1" } }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.InteropServices.RuntimeInformation": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "hWPhJxc453RCa8Z29O91EmfGeZIHX1ZH2A8L6lYQVSaKzku2DfArSfMEb1/MYYzPQRJZeu0c9dmYeJKxW5Fgng==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "System.Reflection": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.InteropServices": "4.1.0", "System.Threading": "4.0.11", "runtime.native.System": "4.0.0" } }, "System.Runtime.Loader": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DHMaRn8D8YCK2GG2pw+UzNxn/OHVfaWx7OTLBD/hPegHZZgcZh3H6seWegrC4BYwsfuGrywIuT+MQs+rPqRLTQ==", "dependencies": { "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Runtime.Serialization.Json": { "type": "Transitive", "resolved": "4.0.3", "contentHash": "siAQb9mZmY7dsBtdbC0OE7W1/y4DGgrIRHTghtN40v79wAvHluBm1wzlrCauCWMyp6WVxkcTzoesjZnx5+fM9g==", "dependencies": { "System.IO": "4.1.0", "System.Private.DataContractSerialization": "4.1.2", "System.Runtime": "4.1.0" } }, "System.Runtime.Serialization.Primitives": { "type": "Transitive", "resolved": "4.1.1", "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", "dependencies": { "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Cng": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "System.Text.Encoding.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { "System.Collections": "4.3.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.1", "System.Runtime.Extensions": "4.3.1", "System.Threading": "4.3.0" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "+MvhNtcvIbqmhANyKu91jQnvIRVSTiaOiFNfKWwXGHG48YAb4I/TyH8spsySiPYla7gKal5ZnF3teJqZAximyQ==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "System.Xml.ReaderWriter": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Tasks.Extensions": "4.3.0" } }, "System.Xml.XmlDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "System.Xml.XmlSerializer": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "FrazwwqfIXTfq23mfv4zH+BjqkSFNaNFBtjzu3I9NRmG8EELYyrv/fJnttCIwRMFRR/YKXF1hmsMmMEnl55HGw==", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit": "4.0.1", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1" } }, "System.Xml.XPath": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "v1JQ5SETnQusqmS3RwStF7vwQ3L02imIzl++sewmt23VGygix04pEH+FCj1yWb+z4GDzKiljr1W7Wfvrx0YwgA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "System.Xml.XPath.XmlDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "A/uxsWi/Ifzkmd4ArTLISMbfFs6XpRPsXZonrIqyTY70xi8t+mDtvSM5Os0RqyRDobjMBwIDHDL4NOIbkDwf7A==", "dependencies": { "System.Collections": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XPath": "4.3.0", "System.Xml.XmlDocument": "4.3.0" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } } } } } ================================================ FILE: Publish-ToNpm.ps1 ================================================ $ErrorActionPreference = 'Stop' Set-StrictMode -Version 2 try { Set-Content '.npmrc' "//registry.npmjs.org/:_authToken=$($env:NpmAuthToken)" Get-Item *.tgz | % { try { npm publish $($_.FullName) } catch { # not failing since it's likely we tried to publish package # twice with the same name. later this should be improved # to actually check the error. Write-Output $_ } } } finally { Remove-Item ".npmrc" } ================================================ FILE: README.md ================================================ ## Overview MirrorSharp is a reusable client-server code editor component built on [Roslyn](https://github.com/dotnet/roslyn) and [CodeMirror](https://codemirror.net/). ### Features #### Code completion ![Code completion](📄readme/code-completion.png) #### Signature help ![Signature help](📄readme/signature-help.png) #### Quick fixes ![Quick fixes](📄readme/quick-fixes.png) #### Diagnostics ![Diagnostics](📄readme/diagnostics.png) #### Quick info ![Quick info](📄readme/infotips.png) ## Usage You'll need the following: - **MirrorSharp.AspNetCore** on the server (MirrorSharp.Owin if .NET Framework) - **mirrorsharp.js** — client library that provides the user interface ### Server [![build](https://img.shields.io/github/actions/workflow/status/ashmind/mirrorsharp/dotnet.yml?style=flat-square)](https://github.com/ashmind/mirrorsharp/actions/workflows/dotnet.yml) #### MirrorSharp.AspNetCore [![NuGet](https://img.shields.io/nuget/v/MirrorSharp.AspNetCore.svg?style=flat-square)](https://www.nuget.org/packages/MirrorSharp.AspNetCore) ```powershell Install-Package MirrorSharp.AspNetCore ``` If using Endpoint Routing (3.0+ only): ```csharp app.UseEndpoints(endpoints => { // ... endpoints.MapMirrorSharp("/mirrorsharp"); }); ``` If not using Endpoint Routing: ```csharp app.MapMirrorSharp("/mirrosharp"); ``` #### MirrorSharp.Owin [![NuGet](https://img.shields.io/nuget/v/MirrorSharp.Owin.svg?style=flat-square)](https://www.nuget.org/packages/MirrorSharp.Owin) ```powershell Install-Package MirrorSharp.Owin ``` In your `Startup`: ```csharp app.MapMirrorSharp("/mirrosharp"); ``` ### Client [![build](https://img.shields.io/github/actions/workflow/status/ashmind/mirrorsharp/web-assets.yml?style=flat-square)](https://github.com/ashmind/mirrorsharp/actions/workflows/web-assets.yml) | Library | Type | NPM | |-------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | mirrorsharp-codemirror-6-preview | Latest | [![npm](https://img.shields.io/npm/v/mirrorsharp-codemirror-6-preview.svg?style=flat-square)](https://www.npmjs.com/package/mirrorsharp-codemirror-6-preview) | | mirrorsharp | Stable | [![npm](https://img.shields.io/npm/v/mirrorsharp.svg?style=flat-square)](https://www.npmjs.com/package/mirrorsharp) | ``` npm install mirrorsharp-codemirror-6-preview --save ``` Note: The name is temporary — once all testing on 6-preview is completed, it will become mirrorsharp 3. #### Breaking Changes Version `mirrorsharp-codemirror-6-preview` (future mirrorsharp 3.0+) includes a number of breaking changes — see [migration-from-2.md](WebAssets/docs/migration-from-2.md) for the full migration guide. #### Build Since mirrorsharp JS files are not bundled, you'll need to use a bundler such as [Webpack](https://webpack.js.org), [Parcel](https://parceljs.org/) or [ESBuild](https://esbuild.github.io/). You can see a Parcel example in AspNetCore.Demo. Note that mirrorsharp is written in TypeScript, and the package includes full TypeScript types. **Note:** You need to manually require/import `mirrorsharp/mirrorsharp.css` into your bundle. #### Usage ```javascript import mirrorsharp from 'mirrorsharp-codemirror-6-preview'; mirrorsharp(container, { serviceUrl: 'wss://your_app_root/mirrorsharp' }); ``` If you're not using HTTPS, you'll likely need `ws://` instead of `wss://`. Note that the container is an actual HTML element, and not a CSS selector. ## API TODO. In general the idea is that "it just works", however customization is a goal and some options are already available. ## Demos You can check out the demos if you clone the repository locally. After cloning, run `ms setup` to build and prepare everything. ## Testing TODO, but see MirrorSharp.Testing on NuGet. ================================================ FILE: Testing/CHANGELOG.md ================================================ # Changelog ## [3.0.1] - 2024-06-01 ### Security - Updated vulnerable dependency on Newtonsoft.Json ## [3.0.0] - 2022-04-04 ## [3.0.0-test-2022-04-02-1] - 2021-04-02 ## [3.0.0-test-2022-04-01-1] - 2021-04-01 ### Changed - Updated to support MirrorSharp.Common 3.0.0 - Updated dependency on System.Buffers to 4.5.1 ## [2.2.2] - 2020-03-04 ### Changed - Updated to support MirrorSharp.Common 2.2.3 ## [2.2.1] - 2020-12-17 ### Changed - Updated to support MirrorSharp.Common 2.2.2 ================================================ FILE: Testing/Internal/HandlerTestArgument.cs ================================================ using System; using System.Linq; using System.Text; using MirrorSharp.Internal; // ReSharper disable HeapView.ClosureAllocation // ReSharper disable HeapView.DelegateAllocation // ReSharper disable HeapView.ObjectAllocation namespace MirrorSharp.Testing.Internal { internal class HandlerTestArgument { private readonly byte[][] _data; private HandlerTestArgument(params byte[][] data) { _data = data; } public static implicit operator HandlerTestArgument(string value) { return Encoding.UTF8.GetBytes(value); } public static implicit operator HandlerTestArgument(string[] values) { return values.Select(Encoding.UTF8.GetBytes).ToArray(); } public static implicit operator HandlerTestArgument(char value) { return Encoding.UTF8.GetBytes(new[] { value }); } public static implicit operator HandlerTestArgument(int value) { return value.ToString(); } public static implicit operator HandlerTestArgument(byte[] data) { return new HandlerTestArgument(data); } public static implicit operator HandlerTestArgument(byte[][] data) { return new HandlerTestArgument(data); } public AsyncData ToAsyncData(char commandId) { var nextIndex = 1; var firstData = _data.ElementAtOrDefault(0); var firstDataWithCommand = new byte[1 + (firstData?.Length ?? 0)]; if (firstData != null) Buffer.BlockCopy(firstData, 0, firstDataWithCommand, 1, firstData.Length); firstDataWithCommand[0] = (byte)commandId; return new AsyncData( firstDataWithCommand.AsMemory(1), _data.Length > 1, #pragma warning disable 1998 async () => { #pragma warning restore 1998 var next = _data.ElementAtOrDefault(nextIndex); if (next == null) return null; nextIndex += 1; return next; } ); } } } ================================================ FILE: Testing/Internal/MaybeNullAttribute.cs ================================================ namespace System.Diagnostics.CodeAnalysis { internal class MaybeNullAttribute : Attribute {} } ================================================ FILE: Testing/Internal/Results/ChangesResult.cs ================================================ using System.Collections.Generic; // ReSharper disable ClassNeverInstantiated.Global // ReSharper disable CollectionNeverUpdated.Global // ReSharper disable UnusedAutoPropertyAccessor.Global namespace MirrorSharp.Testing.Internal.Results { internal class ChangesResult { public string? Reason { get; set; } public IList Changes { get; } = new List(); } } ================================================ FILE: Testing/Internal/Results/CompletionsItem.cs ================================================ using System.Collections.Generic; // ReSharper disable ClassNeverInstantiated.Global // ReSharper disable CollectionNeverUpdated.Global // ReSharper disable UnusedAutoPropertyAccessor.Global namespace MirrorSharp.Testing.Internal.Results { internal class CompletionsItem { public CompletionsItem(string displayText) { DisplayText = displayText; } public string DisplayText { get; } public int? Priority { get; set; } public IList Kinds { get; } = new List(); } } ================================================ FILE: Testing/Internal/Results/CompletionsItemInfoPart.cs ================================================ namespace MirrorSharp.Testing.Internal.Results { internal class CompletionsItemInfoPart { public CompletionsItemInfoPart(string kind, string text) { Kind = kind; Text = text; } public string Kind { get; } public string Text { get; } public override string ToString() => Text; } } ================================================ FILE: Testing/Internal/Results/CompletionsItemInfoResult.cs ================================================ using System.Collections.Generic; namespace MirrorSharp.Testing.Internal.Results { internal class CompletionsItemInfoResult { public int Index { get; set; } public IList Parts { get; } = new List(); } } ================================================ FILE: Testing/Internal/Results/CompletionsResult.cs ================================================ using System.Collections.Generic; // ReSharper disable ClassNeverInstantiated.Global // ReSharper disable CollectionNeverUpdated.Global // ReSharper disable UnusedAutoPropertyAccessor.Global namespace MirrorSharp.Testing.Internal.Results { internal class CompletionsResult { public CompletionsItem? Suggestion { get; set; } public IList Completions { get; } = new List(); } } ================================================ FILE: Testing/Internal/Results/ResultChange.cs ================================================ // ReSharper disable ClassNeverInstantiated.Global // ReSharper disable CollectionNeverUpdated.Global // ReSharper disable UnusedAutoPropertyAccessor.Global namespace MirrorSharp.Testing.Internal.Results { internal class ResultChange { public ResultChange(int start, int length, string text) { Start = start; Length = length; Text = text; } public int Start { get; } public int Length { get; } public string Text { get; } } } ================================================ FILE: Testing/Internal/Results/SignaturesItem.cs ================================================ using System.Collections.Generic; using System.Text; // ReSharper disable HeapView.ClosureAllocation // ReSharper disable HeapView.DelegateAllocation // ReSharper disable HeapView.ObjectAllocation // ReSharper disable HeapView.ObjectAllocation.Possible namespace MirrorSharp.Testing.Internal.Results { internal class SignaturesItem { public bool Selected { get; set; } public IList Parts { get; } = new List(); public SignaturesItemInfo? Info { get; set; } public override string ToString() => ToString(true); public string ToString(bool markSelected) { var builder = new StringBuilder(); var inSelected = false; foreach (var part in Parts) { if (part.Selected != inSelected) { if (markSelected) builder.Append("*"); inSelected = part.Selected; } builder.Append(part.Text); } return builder.ToString(); } } } ================================================ FILE: Testing/Internal/Results/SignaturesItemInfo.cs ================================================ using System.Collections.Generic; namespace MirrorSharp.Testing.Internal.Results { internal class SignaturesItemInfo { public IList Parts { get; } = new List(); public SignaturesItemInfoParameter? Parameter { get; set; } } } ================================================ FILE: Testing/Internal/Results/SignaturesItemInfoParameter.cs ================================================ using System.Collections.Generic; namespace MirrorSharp.Testing.Internal.Results { internal class SignaturesItemInfoParameter { #pragma warning disable CS8618 // Non-nullable field is uninitialized. public string Name { get; set; } #pragma warning restore CS8618 // Non-nullable field is uninitialized. public IList Parts { get; } = new List(); } } ================================================ FILE: Testing/Internal/Results/SignaturesItemInfoPart.cs ================================================ namespace MirrorSharp.Testing.Internal.Results { internal class SignaturesItemInfoPart { #pragma warning disable CS8618 // Non-nullable field is uninitialized. public string? Text { get; set; } public string Kind { get; set; } #pragma warning restore CS8618 // Non-nullable field is uninitialized. public override string ToString() => Text ?? ""; } } ================================================ FILE: Testing/Internal/Results/SignaturesItemPart.cs ================================================ // ReSharper disable ClassNeverInstantiated.Global // ReSharper disable CollectionNeverUpdated.Global // ReSharper disable UnusedAutoPropertyAccessor.Global namespace MirrorSharp.Testing.Internal.Results { internal class SignaturesItemPart { #pragma warning disable CS8618 // Non-nullable field is uninitialized. public string? Text { get; set; } public string Kind { get; set; } public bool Selected { get; set; } #pragma warning restore CS8618 // Non-nullable field is uninitialized. } } ================================================ FILE: Testing/Internal/Results/SignaturesResult.cs ================================================ using System.Collections.Generic; using MirrorSharp.Testing.Results; // ReSharper disable ClassNeverInstantiated.Global // ReSharper disable CollectionNeverUpdated.Global // ReSharper disable UnusedAutoPropertyAccessor.Global namespace MirrorSharp.Testing.Internal.Results { internal class SignaturesResult { public ResultSpan Span { get; } = new ResultSpan(); public IList Signatures { get; } = new List(); } } ================================================ FILE: Testing/Internal/StubCommandResultSender.cs ================================================ using System.Buffers; using System.Text; using System.Threading; using System.Threading.Tasks; using MirrorSharp.Advanced; using MirrorSharp.Advanced.EarlyAccess; using MirrorSharp.Internal; using MirrorSharp.Internal.Results; namespace MirrorSharp.Testing.Internal { internal class StubCommandResultSender : ICommandResultSender { private readonly FastUtf8JsonWriter _writer = new FastUtf8JsonWriter(ArrayPool.Shared); private readonly IConnectionSendViewer? _sendViewer; private readonly WorkSession _session; public string? LastMessageTypeName { get; private set; } public string? LastMessageJson { get; private set; } public StubCommandResultSender(WorkSession session, IConnectionSendViewer? sendViewer = null) { _session = session; _sendViewer = sendViewer; } public IFastJsonWriter StartJsonMessage(string messageTypeName) { LastMessageTypeName = messageTypeName; _writer.Reset(); _writer.WriteStartObject(); return _writer; } public async Task SendJsonMessageAsync(CancellationToken cancellationToken) { _writer.WriteEndObject(); if (_sendViewer != null) await _sendViewer.ViewDuringSendAsync(LastMessageTypeName!, _writer.WrittenSegment, _session, cancellationToken); LastMessageJson = Encoding.UTF8.GetString(_writer.WrittenSegment.Array, _writer.WrittenSegment.Offset, _writer.WrittenSegment.Count); } } } ================================================ FILE: Testing/Internal/TextWithCursor.cs ================================================ namespace MirrorSharp.Testing.Internal { internal class TextWithCursor { public static TextWithCursor Parse(string textWithCursor, char cursor = '|') { var cursorPosition = textWithCursor.LastIndexOf(cursor); var text = textWithCursor.Remove(cursorPosition, 1); return new TextWithCursor(text, cursorPosition); } private TextWithCursor(string text, int cursorPosition) { Text = text; CursorPosition = cursorPosition; } public string Text { get; } public int CursorPosition { get; } } } ================================================ FILE: Testing/MirrorSharpServices.cs ================================================ using MirrorSharp.Advanced; using MirrorSharp.Advanced.EarlyAccess; using MirrorSharp.Internal; namespace MirrorSharp.Testing { /// MirrorSharp extension services. public class MirrorSharpServices { /// Defines a used to support extra options. public ISetOptionsFromClientExtension? SetOptionsFromClient { get; set; } /// Defines a used to extend periodic processing. public ISlowUpdateExtension? SlowUpdate { get; set; } internal IRoslynSourceTextGuard? RoslynSourceTextGuard { get; set; } internal IRoslynCompilationGuard? RoslynCompilationGuard { get; set; } internal IConnectionSendViewer? ConnectionSendViewer { get; set; } /// Defines a called for any unhandled exception. public IExceptionLogger? ExceptionLogger { get; set; } internal ImmutableExtensionServices ToImmutable() { return new ImmutableExtensionServices( SetOptionsFromClient, SlowUpdate, RoslynSourceTextGuard, RoslynCompilationGuard, ConnectionSendViewer, ExceptionLogger ); } } } ================================================ FILE: Testing/MirrorSharpTestDriver.cs ================================================ using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using MirrorSharp.Internal; using MirrorSharp.Testing.Internal; using MirrorSharp.Testing.Internal.Results; using MirrorSharp.Testing.Results; using Newtonsoft.Json; // ReSharper disable HeapView.ClosureAllocation // ReSharper disable HeapView.DelegateAllocation // ReSharper disable HeapView.ObjectAllocation namespace MirrorSharp.Testing { public class MirrorSharpTestDriver { private static readonly MirrorSharpOptions DefaultOptions = new(); private static readonly MirrorSharpServices DefaultServices = new(); private static readonly ConcurrentDictionary LanguageManagerCache = new(); private readonly TestMiddleware _middleware; private readonly MirrorSharpServices _services; private MirrorSharpTestDriver(MirrorSharpOptions? options = null, MirrorSharpServices? services = null, string languageName = LanguageNames.CSharp) { options ??= DefaultOptions; services ??= DefaultServices; _services = services; var language = GetLanguageManager(options).GetLanguage(languageName); _middleware = new TestMiddleware(options, services); Session = new WorkSession(language, options, services.ToImmutable()); } internal WorkSession Session { get; } // Obsolete: will be removed in the next major version. However no changes are required on caller side. public static MirrorSharpTestDriver New() { return new MirrorSharpTestDriver(options: null, services: null, languageName: LanguageNames.CSharp); } // Obsolete: will be removed in the next major version. However no changes are required on caller side. public static MirrorSharpTestDriver New(MirrorSharpOptions? options = null, string languageName = LanguageNames.CSharp) { return new MirrorSharpTestDriver(options, services: null, languageName); } public static MirrorSharpTestDriver New(MirrorSharpServices services) { return new MirrorSharpTestDriver(options: null, services: services, languageName: LanguageNames.CSharp); } public static MirrorSharpTestDriver New(MirrorSharpOptions options) { return new MirrorSharpTestDriver(options: options, services: null, languageName: LanguageNames.CSharp); } public static MirrorSharpTestDriver New(MirrorSharpOptions? options = null, MirrorSharpServices? services = null, string languageName = LanguageNames.CSharp) { return new MirrorSharpTestDriver(options, services, languageName); } public MirrorSharpTestDriver SetText(string text) { Session.ReplaceText(text); return this; } public MirrorSharpTestDriver SetTextWithCursor(string textWithCursor) { var parsed = TextWithCursor.Parse(textWithCursor); Session.ReplaceText(parsed.Text); Session.CursorPosition = parsed.CursorPosition; return this; } public async Task SendTypeCharsAsync(string value) { foreach (var @char in value) { await SendAsync(CommandIds.TypeChar, @char); } } public Task> SendSlowUpdateAsync() => SendSlowUpdateAsync(); public Task> SendSlowUpdateAsync() { return SendWithRequiredResultAsync>(CommandIds.SlowUpdate); } public Task SendSetOptionAsync(string name, string value) { return SendWithRequiredResultAsync(CommandIds.SetOptions, $"{name}={value}"); } public Task SendSetOptionsAsync(IDictionary options) { return SendWithRequiredResultAsync(CommandIds.SetOptions, string.Join(",", options.Select(o => $"{o.Key}={o.Value}"))); } public Task SendRequestInfoTipAsync(int position) { return SendWithOptionalResultAsync(CommandIds.RequestInfoTip, position); } internal Task SendReplaceTextAsync(string newText, int start = 0, int length = 0, int newCursorPosition = 0, string reason = "") { // ReSharper disable HeapView.BoxingAllocation return SendAsync(CommandIds.ReplaceText, $"{start}:{length}:{newCursorPosition}:{reason}:{newText}"); // ReSharper restore HeapView.BoxingAllocation } internal Task SendTypeCharAsync(char @char) { return SendWithOptionalResultAsync(CommandIds.TypeChar, @char); } internal Task SendBackspaceAsync() { return SendReplaceTextAsync("", Session.CursorPosition - 1, 1, Session.CursorPosition - 1); } internal async Task SendWithRequiredResultAsync(char commandId, HandlerTestArgument? argument = null) where TResult: class { return await SendWithOptionalResultAsync(commandId, argument) ?? throw new Exception($"Expected {typeof(TResult).Name} for command {commandId} was not received."); } internal async Task SendWithOptionalResultAsync(char commandId, HandlerTestArgument? argument = null) where TResult : class { var sender = new StubCommandResultSender(Session, _services.ConnectionSendViewer); await _middleware.GetHandler(commandId).ExecuteAsync(argument?.ToAsyncData(commandId) ?? AsyncData.Empty, Session, sender, CancellationToken.None); return sender.LastMessageJson != null ? JsonConvert.DeserializeObject(sender.LastMessageJson) : null; } internal Task SendAsync(char commandId, HandlerTestArgument? argument = default(HandlerTestArgument)) { return _middleware.GetHandler(commandId).ExecuteAsync( argument?.ToAsyncData(commandId) ?? AsyncData.Empty, Session, new StubCommandResultSender(Session, _services.ConnectionSendViewer), CancellationToken.None ); } private static LanguageManager GetLanguageManager(MirrorSharpOptions options) { return LanguageManagerCache.GetOrAdd(options, _ => new LanguageManager(options)); } private class TestMiddleware : MiddlewareBase { public TestMiddleware(MirrorSharpOptions options, MirrorSharpServices services) : base(GetLanguageManager(options), options, services.ToImmutable()) { } } } } ================================================ FILE: Testing/Properties/AssemblyInfo.cs ================================================ using System.Runtime.InteropServices; // 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("0814c69a-e4a5-4fc9-bc57-415f8295b6b6")] ================================================ FILE: Testing/PublicAPI.Shipped.txt ================================================ #nullable enable MirrorSharp.Testing.MirrorSharpTestDriver MirrorSharp.Testing.MirrorSharpTestDriver.SendRequestInfoTipAsync(int position) -> System.Threading.Tasks.Task! MirrorSharp.Testing.MirrorSharpTestDriver.SendSetOptionAsync(string! name, string! value) -> System.Threading.Tasks.Task! MirrorSharp.Testing.MirrorSharpTestDriver.SendSetOptionsAsync(System.Collections.Generic.IDictionary! options) -> System.Threading.Tasks.Task! MirrorSharp.Testing.MirrorSharpTestDriver.SendSlowUpdateAsync() -> System.Threading.Tasks.Task!>! MirrorSharp.Testing.MirrorSharpTestDriver.SendSlowUpdateAsync() -> System.Threading.Tasks.Task!>! MirrorSharp.Testing.MirrorSharpTestDriver.SendTypeCharsAsync(string! value) -> System.Threading.Tasks.Task! MirrorSharp.Testing.MirrorSharpTestDriver.SetText(string! text) -> MirrorSharp.Testing.MirrorSharpTestDriver! MirrorSharp.Testing.MirrorSharpTestDriver.SetTextWithCursor(string! textWithCursor) -> MirrorSharp.Testing.MirrorSharpTestDriver! MirrorSharp.Testing.Results.InfoTipResult MirrorSharp.Testing.Results.InfoTipResult.InfoTipResult() -> void MirrorSharp.Testing.Results.InfoTipResult.Kinds.get -> System.Collections.Generic.IList! MirrorSharp.Testing.Results.InfoTipResult.Sections.get -> System.Collections.Generic.IList! MirrorSharp.Testing.Results.InfoTipResult.Span.get -> MirrorSharp.Testing.Results.ResultSpan! MirrorSharp.Testing.Results.InfoTipSection MirrorSharp.Testing.Results.InfoTipSection.InfoTipSection(string! kind) -> void MirrorSharp.Testing.Results.InfoTipSection.Kind.get -> string! MirrorSharp.Testing.Results.InfoTipSection.Parts.get -> System.Collections.Generic.IList! MirrorSharp.Testing.Results.InfoTipSectionPart MirrorSharp.Testing.Results.InfoTipSectionPart.InfoTipSectionPart(string! kind, string! text) -> void MirrorSharp.Testing.Results.InfoTipSectionPart.Kind.get -> string! MirrorSharp.Testing.Results.InfoTipSectionPart.Text.get -> string! MirrorSharp.Testing.Results.OptionsEchoResult MirrorSharp.Testing.Results.OptionsEchoResult.Options.get -> System.Collections.Generic.IDictionary! MirrorSharp.Testing.Results.OptionsEchoResult.OptionsEchoResult() -> void MirrorSharp.Testing.Results.ResultSpan MirrorSharp.Testing.Results.ResultSpan.Length.get -> int MirrorSharp.Testing.Results.ResultSpan.Length.set -> void MirrorSharp.Testing.Results.ResultSpan.ResultSpan() -> void MirrorSharp.Testing.Results.ResultSpan.Start.get -> int MirrorSharp.Testing.Results.ResultSpan.Start.set -> void MirrorSharp.Testing.Results.SlowUpdateDiagnostic MirrorSharp.Testing.Results.SlowUpdateDiagnostic.Actions.get -> System.Collections.Generic.IList! MirrorSharp.Testing.Results.SlowUpdateDiagnostic.Id.get -> string! MirrorSharp.Testing.Results.SlowUpdateDiagnostic.Message.get -> string! MirrorSharp.Testing.Results.SlowUpdateDiagnostic.Severity.get -> string! MirrorSharp.Testing.Results.SlowUpdateDiagnostic.SlowUpdateDiagnostic(string! id, string! message, string! severity, MirrorSharp.Testing.Results.ResultSpan! span) -> void MirrorSharp.Testing.Results.SlowUpdateDiagnostic.Span.get -> MirrorSharp.Testing.Results.ResultSpan! MirrorSharp.Testing.Results.SlowUpdateDiagnostic.Tags.get -> System.Collections.Generic.IList! MirrorSharp.Testing.Results.SlowUpdateDiagnosticAction MirrorSharp.Testing.Results.SlowUpdateDiagnosticAction.Id.get -> int MirrorSharp.Testing.Results.SlowUpdateDiagnosticAction.Id.set -> void MirrorSharp.Testing.Results.SlowUpdateDiagnosticAction.SlowUpdateDiagnosticAction() -> void MirrorSharp.Testing.Results.SlowUpdateDiagnosticAction.Title.get -> string? MirrorSharp.Testing.Results.SlowUpdateDiagnosticAction.Title.set -> void MirrorSharp.Testing.Results.SlowUpdateResult MirrorSharp.Testing.Results.SlowUpdateResult.Diagnostics.get -> System.Collections.Generic.IList! MirrorSharp.Testing.Results.SlowUpdateResult.ExtensionResult.get -> TExtensionResult MirrorSharp.Testing.Results.SlowUpdateResult.ExtensionResult.set -> void MirrorSharp.Testing.Results.SlowUpdateResult.JoinErrors() -> string! MirrorSharp.Testing.Results.SlowUpdateResult.SlowUpdateResult() -> void override MirrorSharp.Testing.Results.InfoTipResult.ToString() -> string! override MirrorSharp.Testing.Results.InfoTipSection.ToString() -> string! override MirrorSharp.Testing.Results.InfoTipSectionPart.ToString() -> string? override MirrorSharp.Testing.Results.SlowUpdateDiagnostic.ToString() -> string! static MirrorSharp.Testing.MirrorSharpTestDriver.New(MirrorSharp.MirrorSharpOptions? options = null, string! languageName = "C#") -> MirrorSharp.Testing.MirrorSharpTestDriver! static MirrorSharp.Testing.MirrorSharpTestDriver.New() -> MirrorSharp.Testing.MirrorSharpTestDriver! static MirrorSharp.Testing.MirrorSharpTestDriver.New(MirrorSharp.MirrorSharpOptions? options = null, MirrorSharp.Testing.MirrorSharpServices? services = null, string! languageName = "C#") -> MirrorSharp.Testing.MirrorSharpTestDriver! static MirrorSharp.Testing.MirrorSharpTestDriver.New(MirrorSharp.MirrorSharpOptions! options) -> MirrorSharp.Testing.MirrorSharpTestDriver! static MirrorSharp.Testing.MirrorSharpTestDriver.New(MirrorSharp.Testing.MirrorSharpServices! services) -> MirrorSharp.Testing.MirrorSharpTestDriver! MirrorSharp.Testing.MirrorSharpServices MirrorSharp.Testing.MirrorSharpServices.ExceptionLogger.get -> MirrorSharp.Advanced.IExceptionLogger? MirrorSharp.Testing.MirrorSharpServices.ExceptionLogger.set -> void MirrorSharp.Testing.MirrorSharpServices.MirrorSharpServices() -> void MirrorSharp.Testing.MirrorSharpServices.SetOptionsFromClient.get -> MirrorSharp.Advanced.ISetOptionsFromClientExtension? MirrorSharp.Testing.MirrorSharpServices.SetOptionsFromClient.set -> void MirrorSharp.Testing.MirrorSharpServices.SlowUpdate.get -> MirrorSharp.Advanced.ISlowUpdateExtension? MirrorSharp.Testing.MirrorSharpServices.SlowUpdate.set -> void ================================================ FILE: Testing/PublicAPI.Unshipped.txt ================================================ ================================================ FILE: Testing/Results/InfoTipResult.cs ================================================ using System.Collections.Generic; namespace MirrorSharp.Testing.Results { public class InfoTipResult { public ResultSpan Span { get; } = new ResultSpan(); public IList Kinds { get; } = new List(); public IList Sections { get; } = new List(); public override string ToString() => string.Join("\r\n", Sections); } } ================================================ FILE: Testing/Results/InfoTipSection.cs ================================================ using System.Collections.Generic; namespace MirrorSharp.Testing.Results { public class InfoTipSection { public InfoTipSection(string kind) { Kind = kind; } public string Kind { get; } public IList Parts { get; } = new List(); public override string ToString() => string.Join("", Parts); } } ================================================ FILE: Testing/Results/InfoTipSectionPart.cs ================================================ namespace MirrorSharp.Testing.Results { public class InfoTipSectionPart { public InfoTipSectionPart(string kind, string text) { Kind = kind; Text = text; } public string Kind { get; } public string Text { get; } public override string? ToString() => Text; } } ================================================ FILE: Testing/Results/OptionsEchoResult.cs ================================================ using System.Collections.Generic; // ReSharper disable ClassNeverInstantiated.Global // ReSharper disable CollectionNeverUpdated.Global // ReSharper disable UnusedAutoPropertyAccessor.Global namespace MirrorSharp.Testing.Results { public class OptionsEchoResult { public IDictionary Options { get; } = new Dictionary(); } } ================================================ FILE: Testing/Results/ResultSpan.cs ================================================ // ReSharper disable ClassNeverInstantiated.Global // ReSharper disable CollectionNeverUpdated.Global // ReSharper disable UnusedAutoPropertyAccessor.Global namespace MirrorSharp.Testing.Results { public class ResultSpan { public int Start { get; set; } public int Length { get; set; } } } ================================================ FILE: Testing/Results/SlowUpdateDiagnostic.cs ================================================ using System.Collections.Generic; // ReSharper disable ClassNeverInstantiated.Global // ReSharper disable CollectionNeverUpdated.Global // ReSharper disable UnusedAutoPropertyAccessor.Global namespace MirrorSharp.Testing.Results { public class SlowUpdateDiagnostic { public SlowUpdateDiagnostic( string id, string message, string severity, ResultSpan span ) { Id = id; Message = message; Severity = severity; Span = span; } public string Id { get; } public string Message { get; } public string Severity { get; } public ResultSpan Span { get; } public IList Tags { get; } = new List(); public IList Actions { get; } = new List(); public override string ToString() { return $"{Severity} {Id}: {Message}"; } } } ================================================ FILE: Testing/Results/SlowUpdateDiagnosticAction.cs ================================================ // ReSharper disable ClassNeverInstantiated.Global // ReSharper disable CollectionNeverUpdated.Global // ReSharper disable UnusedAutoPropertyAccessor.Global namespace MirrorSharp.Testing.Results { public class SlowUpdateDiagnosticAction { public int Id { get; set; } public string? Title { get; set; } } } ================================================ FILE: Testing/Results/SlowUpdateResult.cs ================================================ using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; using Microsoft.CodeAnalysis; using Newtonsoft.Json; // ReSharper disable ClassNeverInstantiated.Global // ReSharper disable CollectionNeverUpdated.Global // ReSharper disable UnusedAutoPropertyAccessor.Global namespace MirrorSharp.Testing.Results { public class SlowUpdateResult { public IList Diagnostics { get; } = new List(); #pragma warning disable CS8618 // Non-nullable field is uninitialized. // https://github.com/dotnet/roslyn/issues/37511 [MaybeNull] [JsonProperty("x")] public TExtensionResult ExtensionResult { get; set; } #pragma warning restore CS8618 // Non-nullable field is uninitialized. public string JoinErrors() { return string.Join(Environment.NewLine, Diagnostics.Where(d => string.Equals(d.Severity, nameof(DiagnosticSeverity.Error), StringComparison.OrdinalIgnoreCase)) ); } } } ================================================ FILE: Testing/Testing.csproj ================================================ MirrorSharp.Testing MirrorSharp.Testing netstandard2.0 3.0.1 MirrorSharp testing helpers. $(DescriptionSuffix) $(PackageTargetFallback);dnxcore50;portable-net45+win8+wp8+wpa81;portable-net45+win8 <_RoslynTestProject Include="../Tests.*/*.csproj" /> ================================================ FILE: Testing/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETStandard,Version=v2.0": { "Microsoft.CodeAnalysis.Common": { "type": "Direct", "requested": "[3.3.1, )", "resolved": "3.3.1", "contentHash": "N5yQdGy+M4kimVG7hwCeGTCfgYjK2o5b/Shumkb/rCC+/SAkvP1HUAYK+vxPFS7dLJNtXLRsmPHKj3fnyNWnrw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "2.9.4", "System.Collections.Immutable": "1.5.0", "System.Memory": "4.5.3", "System.Reflection.Metadata": "1.6.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2", "System.Text.Encoding.CodePages": "4.5.1", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", "resolved": "2.0.3", "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" } }, "Newtonsoft.Json": { "type": "Direct", "requested": "[13.0.3, )", "resolved": "13.0.3", "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" }, "System.Buffers": { "type": "Direct", "requested": "[4.5.1, )", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "2.9.4", "contentHash": "alIJhS0VUg/7x5AsHEoovh/wRZ0RfCSS7k5pDSqpRLTyuMTtRgj6OJJPRApRhJHOGYYsLakf1hKeXFoDwKwNkg==" }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "WDUIhTHem38H6VJ98x2Ssq0fweakJHnHYl7vbG8ARnsAwLoJKCQCy78EeY1oRrCKG42j0v6JVljKkeqSDA28UA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "t9uIwsLzT5zQ1Q3ZIpwE4EOnAf/lGdbQwyeqhyO/BJ+AWDt267Hxlz5k6ypPy14Z6+PW6pTggAGz6MwN31RElQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Features": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "dHs/UyfLgzsVC4FjTi/x+H+yQifgOnpe3rSN8GwkHWjnidePZ3kSqr1JHmFDf5HTQEydYwrwCAfQ0JSzhsEqDA==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "lvMC69ABN/YEaw3ke4cQRqBYZ2V7DJTOT8QXIeAJGJUfwVHTBN0iq2O5zZQrYnnUN2wmeCzCoAg59PKBosVO7g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": "2.9.5", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]", "Microsoft.DiaSymReader": "1.3.0", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": { "type": "Transitive", "resolved": "2.9.5", "contentHash": "SqwdTocsxU7u0Y8am67BY7KSLAhrtDXdBBwt0Nv9TxLVzPBPtPPFS2bHUsxucpOBMBmc10rWE1eJ+IDrr/0/nQ==" }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "NfBz3b5hFSbO+7xsCNryD+p8axsIJFTG7qM3jvMTC/MqYrU6b8E1b6JoRj5rJSOBB+pSunk+CMqyGQTOWHeDUg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "System.Composition": "1.0.31" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.3.0", "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.1", "contentHash": "TMBuzAHpTenGbGgk0SMTwyEkyijY/Eae4ZGsFNYJvAr/LDn1ku3Etp3FPxChmDp5HHF3kzJuoaa08N0xjqAJfQ==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "1.5.0", "contentHash": "EXKiDFsChZW0RjrZ4FYHu9aW6+P4MCgEDCklsVseRfhoO0F+dXeMSsMRAlVXIo06kGJ/zv+2w1a2uc2+kxxSaQ==" }, "System.Composition": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "I+D26qpYdoklyAVUdqwUBrEIckMNjAYnuPJy/h9dsQItpQwVREkDFs4b4tkBza0kT2Yk48Lcfsv2QQ9hWsh9Iw==", "dependencies": { "System.Composition.AttributedModel": "1.0.31", "System.Composition.Convention": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Composition.TypedParts": "1.0.31" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "NHWhkM3ZkspmA0XJEsKdtTt1ViDYuojgSND3yHhTzwxepiwqZf+BCWuvCbjUt4fe0NxxQhUDGJ5km6sLjo9qnQ==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.Convention": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "GLjh2Ju71k6C0qxMMtl4efHa68NmWeIUYh4fkUI8xbjQrEBvFmRwMDFcylT8/PR9SQbeeL48IkFxU/+gd0nYEQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "fN1bT4RX4vUqjbgoyuJFVUizAl2mYF5VAb+bVIxIYZSSc0BdnX+yGAxcavxJuDDCQ1K+/mdpgyEFc8e9ikjvrg==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0LEJN+2NVM89CE4SekDrrk5tHV5LeATltkp+9WNYrR+Huiyt0vaCqHbbHtVAjPyeLWIc8dOz/3kthRBj32wGQg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0Zae/FtzeFgDBBuILeIbC/T9HMYbW4olAmi8XqqAGosSOWvXfiQLfARZEhiGd0LVXaYgXr0NhxiU1LldRP1fpQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.Tracing": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==" }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", "dependencies": { "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "1.6.0", "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==", "dependencies": { "System.Collections.Immutable": "1.5.0" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "3TIsJhD1EiiT0w2CcDMN/iSSwnNnsrnbzeVHSKkaEgV85txMprmuO+Yq2AdSbeVGcg28pdNDTPK87tJhX7VFHw==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "qAtKMcHOAq9/zKkl0dwvF0T0pmgCQxX1rC49rJXoU8jq+lw6MC3uXy7nLFmjEI20T3Aq069eWz4LcYR64vEmJw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3", "System.Runtime": "4.3.1" } }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Cng": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { "System.Collections": "4.3.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.1", "System.Runtime.Extensions": "4.3.1", "System.Threading": "4.3.0" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "+MvhNtcvIbqmhANyKu91jQnvIRVSTiaOiFNfKWwXGHG48YAb4I/TyH8spsySiPYla7gKal5ZnF3teJqZAximyQ==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } } } } } ================================================ FILE: Tests/ApplyDiagnosticActionHandlerTests.cs ================================================ using System.Linq; using System.Threading.Tasks; using MirrorSharp.Internal; using MirrorSharp.Testing; using MirrorSharp.Testing.Internal.Results; using MirrorSharp.Testing.Results; using Xunit; // ReSharper disable HeapView.ClosureAllocation namespace MirrorSharp.Tests { using static CommandIds; public class ApplyDiagnosticActionHandlerTests { [Fact] public async Task ExecuteAsync_ProducesExpectedChanges_ForMissingNamespace() { var driver = MirrorSharpTestDriver.New().SetText(@"class C { Action a; }"); var action = await ExecuteSlowUpdateAndGetDiagnosticActionAsync(driver, "Action", "using"); var changes = await driver.SendWithRequiredResultAsync(ApplyDiagnosticAction, action.Id); Assert.Equal( new[] { new { Start = 0, Length = 0, Text = "using System;\r\n\r\n" } }, changes.Changes.Select(c => new { c.Start, c.Length, c.Text }) ); } [Fact] public async Task ExecuteAsync_ProducesExpectedChanges_ForRemovalOfParentheses() { var code = @" class C { void M() { if ((true)){} } } "; var driver = MirrorSharpTestDriver.New().SetText(code); var action = await ExecuteSlowUpdateAndGetDiagnosticActionAsync(driver, "Parentheses", "Remove"); var changes = await driver.SendWithRequiredResultAsync(ApplyDiagnosticAction, action.Id); Assert.Equal( new[] { new { Start = code.IndexOf("(tr"), Length = 1, Text = "" }, new { Start = code.IndexOf("){}"), Length = 1, Text = "" } }, changes.Changes.Select(c => new { c.Start, c.Length, c.Text }) ); } [Fact] public async Task ExecuteAsync_DoesNotModifyCurrentSession() { var driver = MirrorSharpTestDriver.New().SetText(@"class C { Action a; }"); var action = await ExecuteSlowUpdateAndGetDiagnosticActionAsync(driver, "Action", "using"); var textBefore = driver.Session.Roslyn.SourceText; await driver.SendAsync(ApplyDiagnosticAction, action.Id); Assert.Same(textBefore, driver.Session.Roslyn.SourceText); Assert.Equal(textBefore.ToString(), (await driver.Session.Roslyn.Document.GetTextAsync()).ToString()); Assert.Same(driver.Session.Roslyn.Workspace.CurrentSolution, driver.Session.Roslyn.Project.Solution); } private static async Task ExecuteSlowUpdateAndGetDiagnosticActionAsync( MirrorSharpTestDriver driver, string diagnosticMessageFilter, string actionTitleFilter ) { var result = await driver.SendSlowUpdateAsync(); var diagnostic = result.Diagnostics.Single(d => d.Message?.Contains(diagnosticMessageFilter) ?? false); return diagnostic.Actions.Single(a => a.Title?.Contains(actionTitleFilter) ?? false); } } } ================================================ FILE: Tests/CompletionStateHandlerTests.cs ================================================ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using MirrorSharp.Internal; using MirrorSharp.Testing; using MirrorSharp.Testing.Internal.Results; using MirrorSharp.Tests.Internal; using Xunit; // ReSharper disable HeapView.ClosureAllocation namespace MirrorSharp.Tests { using static CommandIds; public class CompletionStateHandlerTests { [Fact] public async Task ExecuteAsync_ProducesChangeForSelectedCompletion() { var driver = MirrorSharpTestDriver.New().SetTextWithCursor("class C { void M(object o) { o| } }"); var completions = await TypeAndGetCompletionsAsync('.', driver); var changes = await driver.SendWithRequiredResultAsync(CompletionState, IndexOf(completions, "ToString")); Assert.Equal("completion", changes.Reason); Assert.Equal( new[] { new { Start = 31, Length = 0, Text = "ToString" } }, changes.Changes.Select(c => new { c.Start, c.Length, c.Text }) ); Assert.Null(driver.Session.CurrentCompletion.List); } [Fact] public async Task ExecuteAsync_ReplacesInterimTypedText() { var driver = MirrorSharpTestDriver.New().SetTextWithCursor("class C { void M(object o) { o| } }"); var completions = await TypeAndGetCompletionsAsync('.', driver); await driver.SendTypeCharsAsync("To"); var changes = await driver.SendWithRequiredResultAsync(CompletionState, IndexOf(completions, "ToString")); Assert.Equal( new[] { new { Start = 31, Length = 2, Text = "ToString" } }, changes.Changes.Select(c => new { c.Start, c.Length, c.Text }) ); Assert.Null(driver.Session.CurrentCompletion.List); } [Fact] public async Task ExecuteAsync_CancelsCompletion_WhenXIsProvidedInsteadOfIndex() { var driver = MirrorSharpTestDriver.New().SetTextWithCursor("class C { void M(object o) { o| } }"); await TypeAndGetCompletionsAsync('.', driver); var result = await driver.SendWithOptionalResultAsync(CompletionState, 'X'); Assert.Null(result); Assert.Null(driver.Session.CurrentCompletion.List); } [Fact] public async Task ExecuteAsync_ForcesCompletion_WhenFIsProvidedInsteadOfIndex() { var driver = MirrorSharpTestDriver.New().SetTextWithCursor("class C { void M(object o) { o.| } }"); var result = await driver.SendWithRequiredResultAsync(CompletionState, 'F'); Assert.NotNull(result); Assert.Equal( ObjectMembers.AllNames.OrderBy(n => n), result.Completions.Select(i => i.DisplayText).OrderBy(n => n) ); } [Fact] public async Task ExecuteAsync_SendsItemInfo_WhenCompletionIsActiveAndIIsProvided() { var driver = MirrorSharpTestDriver.New(MirrorSharpOptionsWithXmlDocumentation.Instance) .SetTextWithCursor("class C { void M(object o) { o.| } }"); var completions = await driver.SendWithRequiredResultAsync(CompletionState, 'F'); var getHashCodeIndex = completions.Completions .Select((c, index) => (c.DisplayText, index)) .First(x => x.DisplayText == nameof(GetHashCode)) .index; var result = await driver.SendWithRequiredResultAsync(CompletionState, "I" + getHashCodeIndex); Assert.NotNull(result); Assert.Equal(getHashCodeIndex, result.Index); Assert.Equal( "int object.GetHashCode()\r\nServes as the default hash function.", string.Join("", result.Parts) ); } private static async Task> TypeAndGetCompletionsAsync(char @char, MirrorSharpTestDriver driver) { return (await driver.SendWithRequiredResultAsync(TypeChar, @char)).Completions; } private static int IndexOf(IEnumerable completions, string displayText) { return completions.Select((c, i) => new { c, i }).First(x => x.c.DisplayText?.Contains(displayText) ?? false).i; } } } ================================================ FILE: Tests/ConnectionTests.cs ================================================ using System; using System.Buffers; using System.Collections.Immutable; using System.Collections.Generic; using System.Linq; using System.Net.WebSockets; using System.Net.WebSockets.Mocks; using System.Text; using System.Threading; using System.Threading.Tasks; using MirrorSharp.Internal; using MirrorSharp.Internal.Handlers; using MirrorSharp.Internal.Handlers.Mocks; using MirrorSharp.Testing; using Xunit; using System.IO; using SourceMock.Internal; // ReSharper disable HeapView.ClosureAllocation namespace MirrorSharp.Tests { public class ConnectionTests { [Fact] public async Task ReceiveAndProcessAsync_CallsMatchingCommand() { var socketMock = MockWebSocketToReceive("X123"); var session = MirrorSharpTestDriver.New().Session; var handler = MockCommandHandler('X'); var connection = CreateConnection(socketMock, session, handler); var cancellationToken = new CancellationTokenSource().Token; await connection.ReceiveAndProcessAsync(cancellationToken); var call = Assert.Single(handler.Calls.ExecuteAsync()); Assert.Equal("123", Encoding.UTF8.GetString(call.data.GetFirst().Span)); Assert.Equal(session, call.session); Assert.Equal(connection, call.sender); Assert.Equal(cancellationToken, call.cancellationToken); } [Fact] public async Task ReceiveAndProcessAsync_HandlesLongMessage() { var longArgument = GenerateLongString(10000); var socketMock = MockWebSocketToReceive("X" + longArgument); var session = MirrorSharpTestDriver.New().Session; var segments = new List>(); var handler = MockCommandHandler('X', async data => { segments.Add(Copy(data.GetFirst())); var next = await data.GetNextAsync(); while (next != null) { segments.Add(Copy(next.Value)); next = await data.GetNextAsync(); } }); var connection = CreateConnection(socketMock, session, handler); await connection.ReceiveAndProcessAsync(CancellationToken.None); Assert.Equal(longArgument, string.Join("", segments.Select(s => Encoding.UTF8.GetString(s.ToArray())))); } private Connection CreateConnection(WebSocket socketMock, WorkSession session, CommandHandlerMock handler) { return new Connection( socketMock, session, CreateCommandHandlers(handler), ArrayPool.Shared, sendViewer: null, exceptionLogger: null, options: null ); } private ReadOnlyMemory Copy(ReadOnlyMemory segment) { var newArray = new T[segment.Length]; segment.CopyTo(newArray); return newArray; } private string GenerateLongString(int length) { var chars = new char[length]; for (var i = 0; i < chars.Length; i++) { chars[i] = (char)('A' + (i % ('Z' - 'A' + 1))); } return new string(chars); } private CommandHandlerMock MockCommandHandler(char commandId, Func? execute = null) { var handler = new CommandHandlerMock(); handler.Setup.CommandId.Returns(commandId); #pragma warning disable VSTHRD110 // Observe result of async calls handler.Setup.ExecuteAsync().Runs((data, ss, sn, t) => execute?.Invoke(data) ?? Task.CompletedTask); #pragma warning restore VSTHRD110 // Observe result of async calls return handler; } private ImmutableArray CreateCommandHandlers(ICommandHandler handler) { var handlers = new ICommandHandler[26]; handlers[handler.CommandId - 'A'] = handler; return ImmutableArray.CreateRange(handlers); } private static WebSocket MockWebSocketToReceive(string command) { var mock = new WebSocketMock(); var dataStream = new MemoryStream(Encoding.UTF8.GetBytes(command)); mock.Setup.ReceiveAsync(default(MockArgumentMatcher>)).Runs(async (ArraySegment data, CancellationToken _) => { var count = await dataStream.ReadAsync(data.Array!, data.Offset, data.Count); return new WebSocketReceiveResult(count, WebSocketMessageType.Text, dataStream.Position == dataStream.Length); }); return mock; } } } ================================================ FILE: Tests/FSharp/CustomFileSystemTests.cs ================================================ using System.IO; using System.Text; using Microsoft.FSharp.Core; using MirrorSharp.FSharp.Internal; using Xunit; namespace MirrorSharp.Tests.FSharp; public class CustomFileSystemTests { [Fact] public void OpenFileForReadShim_ReturnsStreamWithDataFromRegister_ForVirtualFile() { // Arrange var system = CustomFileSystem.Instance; var data = Encoding.UTF8.GetBytes("Test"); var file = system.RegisterVirtualFile(_ => new MemoryStream(data), (object?)null); var optionFalse = FSharpOption.Some(false); // Act var stream = system.OpenFileForReadShim(file.Path, optionFalse, optionFalse); // Assert var result = new StreamReader(stream).ReadToEnd(); Assert.Equal("Test", result); } [Fact] public void OpenFileForReadShim_ReturnsSameStreamWithPositionAtStart_ForVirtualFile_EvenIfCalledTwice() { // Arrange var system = CustomFileSystem.Instance; var stream = new MemoryStream(new byte[5]); var file = system.RegisterVirtualFile(_ => stream, (object?)null); var optionFalse = FSharpOption.Some(false); // Act var first = system.OpenFileForReadShim(file.Path, optionFalse, optionFalse); first.Position = 3; first.Close(); var second = system.OpenFileForReadShim(file.Path, optionFalse, optionFalse); // Assert Assert.Same(first, second); Assert.Equal(0, second.Position); Assert.True(second.CanRead); } } ================================================ FILE: Tests/FSharp/FSharpProjectOptionsExtensionsTests.cs ================================================ using System; using Microsoft.FSharp.Collections; using FSharp.Compiler.CodeAnalysis; using MirrorSharp.FSharp.Advanced; using Xunit; using range = FSharp.Compiler.Text.Range; using Microsoft.FSharp.Core; namespace MirrorSharp.Tests.FSharp; public class FSharpProjectOptionsExtensionsTests { [Theory] [InlineData(new[] { "--optimize+" }, true)] [InlineData(new[] { "--optimize-" }, false)] [InlineData(new string[0], null)] public void WithOtherOptionOptimize_ReturnsSameInstance_IfValueIsTheSame(string[] otherOptions, bool? newValue) { var options = NewOptions(otherOptions: otherOptions); var updated = options.WithOtherOptionOptimize(newValue); Assert.Same(options, updated); } [Theory] [InlineData(new[] { "--optimize+" }, false, new[] { "--optimize-" })] [InlineData(new[] { "--optimize+" }, null, new string[0])] [InlineData(new[] { "--optimize-" }, true, new[] { "--optimize+" })] [InlineData(new[] { "--optimize-" }, null, new string[0])] [InlineData(new string[0], true, new[] { "--optimize+" })] [InlineData(new string[0], false, new[] { "--optimize-" })] public void WithOtherOptionOptimize_ReturnsExpectedOptions_IfValueIsNotTheSame(string[] otherOptions, bool? newValue, string[] expected) { var options = NewOptions(otherOptions: otherOptions).WithOtherOptionOptimize(newValue); Assert.Equal(expected, options.OtherOptions); } [Theory] [InlineData(new[] { "--target:exe" }, FSharpTargets.Exe)] [InlineData(new[] { "--target:winexe" }, FSharpTargets.WinExe)] [InlineData(new[] { "--target:library" }, FSharpTargets.Library)] [InlineData(new[] { "--target:module" }, FSharpTargets.Module)] [InlineData(new string[0], null)] public void WithOtherOptionTarget_ReturnsSameInstance_IfValueIsTheSame(string[] otherOptions, string newValue) { var options = NewOptions(otherOptions: otherOptions); var updated = options.WithOtherOptionTarget(newValue); Assert.Same(options, updated); } [Theory] [InlineData(new[] { "--target:exe" }, FSharpTargets.Library, new[] { "--target:library" })] [InlineData(new[] { "--target:library" }, FSharpTargets.Exe, new[] { "--target:exe" })] [InlineData(new string[0], FSharpTargets.Library, new[] { "--target:library" })] public void WithOtherOptionTarget_ReturnsExpectedOptions_IfValueIsNotTheSame(string[] otherOptions, string newValue, string[] expected) { var options = NewOptions(otherOptions: otherOptions).WithOtherOptionTarget(newValue); Assert.Equal(expected, options.OtherOptions); } [Theory] [InlineData(new[] { "--define:TEST" }, true, new[] { "--define:TEST", "--define:DEBUG" })] [InlineData(new string[0], true, new[] { "--define:DEBUG" })] [InlineData(new[] { "--define:DEBUG" }, false, new string[0])] [InlineData(new[] { "--define:TEST", "--define:DEBUG" }, false, new[] { "--define:TEST" })] [InlineData(new[] { "--define:TEST" }, false, new[] { "--define:TEST" })] public void WithOtherOptionDefine_ReturnsExpectedOptions_IfThereAreChanges(string[] otherOptions, bool defined, string[] expected) { var options = NewOptions(otherOptions: otherOptions).WithOtherOptionDefine("DEBUG", defined); Assert.Equal(expected, options.OtherOptions); } [Theory] [InlineData(new[] { "--define:DEBUG" }, true)] [InlineData(new[] { "--define:TEST", "--define:DEBUG" }, true)] [InlineData(new string[0], false)] public void WithOtherOptionDefine_ReturnsSameInstance_IfThereAreNoChanges(string[] otherOptions, bool defined) { var options = NewOptions(otherOptions: otherOptions); var updated = options.WithOtherOptionDefine("DEBUG", defined); Assert.Same(options, updated); } private FSharpProjectOptions NewOptions(string[]? otherOptions = null) { return new FSharpProjectOptions( "_", FSharpOption.None, new string[0], otherOptions, Array.Empty(), false, false, DateTime.MinValue, FSharpOption.None, FSharpList>.Empty, FSharpOption.None ); } } ================================================ FILE: Tests/FSharp/FSharpSessionTests.cs ================================================ using System; using System.IO; using System.Reflection; using System.Threading; using System.Threading.Tasks; using Microsoft.IO; using MirrorSharp.FSharp; using MirrorSharp.FSharp.Advanced; using MirrorSharp.FSharp.Internal; using Xunit; namespace MirrorSharp.Tests.FSharp; public class FSharpSessionTests { [Fact] public async Task Compile_ProducesExecutableAssembly() { // Arrange var session = NewSession(@" [] let main args = 5 "); var assemblyStream = new MemoryStream(); // Act var compilationResult = await session.CompileAsync(assemblyStream, CancellationToken.None); // Assert Assert.Empty(compilationResult.Item1); var main = Assembly.Load(assemblyStream.ToArray()).EntryPoint; Assert.NotNull(main); var result = main!.Invoke(null, new[] { new string[0] }); Assert.Equal(5, result); } [Theory] [InlineData("--debug+")] [InlineData("--debug:full")] [InlineData("--debug:pdbonly")] [InlineData("-g+")] [InlineData("-g-")] [InlineData("-g:full")] [InlineData("-g:pdbonly")] public async Task Compile_ThrowsNotSupportedException_IfDebugOptionIsNotSupported(string option) { // Arrange var session = NewSession(); session.ProjectOptions = session.ProjectOptions .WithoutOtherOption("-debug-") .WithOtherOption(option); // Act var exception = await Record.ExceptionAsync(() => session.CompileAsync(new(), CancellationToken.None).AsTask()); // Assert Assert.IsType(exception); } private FSharpSession NewSession(string code = "") { return new FSharpSession( code, new MirrorSharpFSharpOptions(), new RecyclableMemoryStreamManager() ); } } ================================================ FILE: Tests/FSharp/FSharpTests.cs ================================================ using System.Linq; using MirrorSharp.FSharp.Internal; using MirrorSharp.Internal; using MirrorSharp.Testing; using MirrorSharp.Testing.Internal.Results; using Xunit; // ReSharper disable HeapView.ObjectAllocation // ReSharper disable HeapView.BoxingAllocation namespace MirrorSharp.Tests.FSharp; public class FSharpTests { private static readonly MirrorSharpOptions Options = new MirrorSharpOptions().EnableFSharp(); [Fact] public async void SlowUpdate_ProducesNoDiagnostics_IfCodeIsValid() { var driver = MirrorSharpTestDriver.New(Options, FSharpLanguage.Name); var code = @" open System [] let main argv = printfn ""Hello World"" 0 ".Trim().Replace(" ", ""); await driver.SendReplaceTextAsync(code); var result = await driver.SendSlowUpdateAsync(); Assert.Equal("", string.Join("\r\n", result.Diagnostics)); } [Fact] public async void SlowUpdate_ProducesExpectedDiagnostics_IfCodeHasErrors() { var driver = MirrorSharpTestDriver.New(Options, FSharpLanguage.Name); await driver.SendReplaceTextAsync("xyz"); var result = await driver.SendSlowUpdateAsync(); Assert.Equal( new[] { new { Severity = "error", Message = "The value or constructor 'xyz' is not defined.", Span = new { Start = (int?)0, Length = (int?)3 } } }, result.Diagnostics.Select(d => new { d.Severity, d.Message, Span = new { d.Span?.Start, d.Span?.Length } }).ToArray() ); } [Fact] public async void TypeChar_ProducesExpectedCompletion() { var driver = MirrorSharpTestDriver.New(Options, FSharpLanguage.Name); driver.SetTextWithCursor(@" type Test() = member this.Method() = () let test = let t = new Test() t| ".Trim().Replace(" ", "")); var result = await driver.SendTypeCharAsync('.'); Assert.NotNull(result); Assert.Equal( new[] { new { DisplayText = "Equals", Kind = "method" }, new { DisplayText = "GetHashCode", Kind = "method" }, new { DisplayText = "GetType", Kind = "method" }, new { DisplayText = "Method", Kind = "method" }, new { DisplayText = "ToString", Kind = "method" }, }, // https://github.com/xunit/assert.xunit/pull/36#issuecomment-578990557 result!.Completions.Select(c => new { c.DisplayText, Kind = c.Kinds.SingleOrDefault() }) ); } [Fact] public async void ForceCompletion_ProducesExpectedCompletion_ForDelegateTypeInScope() { var driver = MirrorSharpTestDriver.New(Options, FSharpLanguage.Name); driver.SetTextWithCursor(@" type X = obj type Y = obj -> obj| ".Trim().Replace(" ", "")); var result = await driver.SendWithRequiredResultAsync(CommandIds.CompletionState, 'F'); Assert.NotNull(result); Assert.Contains( new { DisplayText = "Y", Kind = "delegate" }, // https://github.com/xunit/assert.xunit/pull/36#issuecomment-578990557 result!.Completions.Select(c => new { c.DisplayText, Kind = c.Kinds.SingleOrDefault() }) ); } [Fact] public async void CompletionState_ProducesExpectedCompletionChanges() { var driver = MirrorSharpTestDriver.New(Options, FSharpLanguage.Name); driver.SetTextWithCursor(@" type Test() = member this.Method() = () let test = let t = new Test() t| ".Trim().Replace(" ", "")); await driver.SendTypeCharAsync('.'); var changes = await driver.SendWithRequiredResultAsync(CommandIds.CompletionState, "3"); Assert.Equal( new[] { new { Start = driver.Session.CursorPosition, Length = 0, Text = "Method" } }, changes.Changes.Select(c => new { c.Start, c.Length, c.Text }) ); } // Signature help is not supported, but should not crash either [Fact] public async void SignatureHelpState_ReturnsEmptySignatures_WhenForced() { var driver = MirrorSharpTestDriver.New(Options, FSharpLanguage.Name); driver.SetTextWithCursor("|"); var signatures = await driver.SendWithOptionalResultAsync(CommandIds.SignatureHelpState, "F"); Assert.Null(signatures); } } ================================================ FILE: Tests/FastUtf8JsonWriterTests.cs ================================================ using System.Buffers; using System.Text; using Xunit; using MirrorSharp.Internal; using MirrorSharp.Advanced; namespace MirrorSharp.Tests { public class FastUtf8JsonWriterTests { [Fact] public void WriteValue_WritesNull() { var writer = CreateWriter(); writer.WriteValue((string?)null); var result = GetWrittenAsString(writer); Assert.Equal("null", result); } [Theory] [InlineData("a\nb", "a\\nb")] [InlineData("a\"b", @"a\""b")] [InlineData("a\\b", "a\\\\b")] [InlineData("a\0b", "a\\u0000b")] [InlineData("aÀb", "aÀb")] [InlineData("a❀b", "a❀b")] [InlineData("a🌄b", "a🌄b")] public void WriteValue_WritesString(string input, string expected) { var writer = CreateWriter(); writer.WriteValue(input); var result = GetWrittenAsString(writer); Assert.Equal('"' + expected + '"', result); } [Fact] public void WriteValue_WritesVeryLongString() { var input = new string('x', 10000); var writer = CreateWriter(); writer.WriteValue(input); var result = GetWrittenAsString(writer); Assert.Equal("\"" + input + "\"", result); } [Theory] [InlineData('a', "a")] [InlineData('\n', "\\n")] [InlineData('\\', "\\\\")] [InlineData('❀', "❀")] [InlineData('\u0080', "\u0080")] [InlineData('\u00a0', "\u00a0")] [InlineData('À', "À")] public void WriteValue_WritesChar(char input, string expected) { var writer = CreateWriter(); writer.WriteValue(input); var result = GetWrittenAsString(writer); Assert.Equal('"' + expected + '"', result); } [Theory] [InlineData(-10)] [InlineData(-1)] [InlineData(0)] [InlineData(1)] [InlineData(10)] [InlineData(13)] [InlineData(100)] [InlineData(113)] [InlineData(1113)] [InlineData(11113)] [InlineData(111113)] public void WriteValue_WritesInt32(int input) { var writer = CreateWriter(); writer.WriteValue(input); var result = GetWrittenAsString(writer); Assert.Equal(input.ToString("D", null), result); } [Theory] [InlineData(true, "true")] [InlineData(false, "false")] public void WriteValue_WritesBoolean(bool input, string expected) { var writer = CreateWriter(); writer.WriteValue(input); var result = GetWrittenAsString(writer); Assert.Equal(expected, result); } [Fact] public void WriteValue_WritesCommaBeforeSecondArrayValue_WhenValueIsString() { var writer = CreateWriter(); writer.WriteStartArray(); writer.WriteValue("e1"); writer.WriteValue("e2"); writer.WriteEndArray(); var result = GetWrittenAsString(writer); Assert.Equal("[\"e1\",\"e2\"]", result); } [Fact] public void WriteValue_WritesCommaBeforeSecondArrayValue_WhenValueIsInt32() { var writer = CreateWriter(); writer.WriteStartArray(); writer.WriteValue(1); writer.WriteValue(2); writer.WriteEndArray(); var result = GetWrittenAsString(writer); Assert.Equal("[1,2]", result); } [Fact] public void WriteValue_WritesCommaBeforeSecondArrayValue_WhenValueIsBoolean() { var writer = CreateWriter(); writer.WriteStartArray(); writer.WriteValue(false); writer.WriteValue(true); writer.WriteEndArray(); var result = GetWrittenAsString(writer); Assert.Equal("[false,true]", result); } [Fact] public void WriteProperty_WritesCommaBeforeProperty_AfterNestedObject() { var writer = CreateWriter(); writer.WriteStartObject(); writer.WritePropertyStartObject("p1"); writer.WriteEndObject(); writer.WriteProperty("p2", 0); writer.WriteEndObject(); var result = GetWrittenAsString(writer); Assert.Equal("{\"p1\":{},\"p2\":0}", result); } [Fact] public void OpenString_ReturnsWriterThatCorrectlyWritesValueIntoString_WhenValueIsInt32() { var writer = CreateWriter(); using (var stringWriter = writer.OpenString()) { stringWriter.Write(42); } var result = GetWrittenAsString(writer); Assert.Equal("\"42\"", result); } [Fact] public void OpenString_ReturnsWriterThatCorrectlyWritesValueIntoString_WhenValueIsChar() { var writer = CreateWriter(); using (var stringWriter = writer.OpenString()) { stringWriter.Write('"'); } var result = GetWrittenAsString(writer); Assert.Equal("\"\\\"\"", result); } [Fact] public void OpenString_ReturnsWriterThatCorrectlyWritesValueIntoString_WhenValueIsString() { var writer = CreateWriter(); using (var stringWriter = writer.OpenString()) { stringWriter.Write("a\"b"); } var result = GetWrittenAsString(writer); Assert.Equal("\"a\\\"b\"", result); } [Fact] public void OpenString_CanBeUsedMultipleTimes() { var writer = CreateWriter(); writer.WriteStartArray(); using (var stringWriter = writer.OpenString()) stringWriter.Write("a"); using (var stringWriter = writer.OpenString()) stringWriter.Write("b"); writer.WriteEndArray(); var result = GetWrittenAsString(writer); Assert.Equal("[\"a\",\"b\"]", result); } private static string GetWrittenAsString(FastUtf8JsonWriter writer) { return Encoding.UTF8.GetString(writer.WrittenSegment); } private static FastUtf8JsonWriter CreateWriter() { return new FastUtf8JsonWriter(ArrayPool.Shared); } } } ================================================ FILE: Tests/Features/RoslynScriptModeTests.cs ================================================ using System; using System.Threading.Tasks; using MirrorSharp.Advanced; using MirrorSharp.Testing; using Xunit; namespace MirrorSharp.Tests.Features { // This can't be tested for VB until https://github.com/dotnet/roslyn/issues/9063 public class RoslynScriptModeTests { // anything from System would do, as I don't want to require tests to add references private static readonly Type TestHostType = typeof(Random); private const string TestHostMethodName = nameof(Random.Next); [Fact] public async Task Script_ProducesNoErrors_WhenSetInInitialOptions() { var options = new MirrorSharpOptions() .SetupCSharp(o => o.SetScriptMode(hostObjectType: TestHostType)); var driver = MirrorSharpTestDriver.New(options) .SetText($"var x = {TestHostMethodName}();"); var result = await driver.SendSlowUpdateAsync(); Assert.Equal("", result.JoinErrors()); } [Fact] public async Task Script_ProducesNoErrors_WhenSetThroughOptionExtension() { var extensions = new MirrorSharpServices { SetOptionsFromClient = new ScriptModeExtension(TestHostType) }; var driver = MirrorSharpTestDriver.New(extensions) .SetText($"var x = {TestHostMethodName}();"); await driver.SendSetOptionAsync("x-mode", "script"); var result = await driver.SendSlowUpdateAsync(); Assert.Equal("", result.JoinErrors()); } [Fact] public async Task Script_CanApplyTextChanges_WhenSetThroughOptionExtension() { var extensions = new MirrorSharpServices { SetOptionsFromClient = new ScriptModeExtension(TestHostType) }; var driver = MirrorSharpTestDriver.New(extensions); await driver.SendSetOptionAsync("x-mode", "script"); await driver.SendReplaceTextAsync($"var x = {TestHostMethodName}();"); var result = await driver.SendSlowUpdateAsync(); Assert.Equal("", result.JoinErrors()); } private class ScriptModeExtension : ISetOptionsFromClientExtension { private readonly Type _hostObjectType; public ScriptModeExtension(Type hostObjectType) { _hostObjectType = hostObjectType; } public bool TrySetOption(IWorkSession session, string name, string value) { if (name != "x-mode" || value != "script") return false; session.Roslyn.SetScriptMode(hostObjectType: _hostObjectType); return true; } } } } ================================================ FILE: Tests/Internal/ObjectMembers.cs ================================================ namespace MirrorSharp.Tests.Internal { public class ObjectMembers { public static readonly string[] AllNames = { nameof(Equals), nameof(GetHashCode), nameof(GetType), nameof(ToString) }; } } ================================================ FILE: Tests/Internal/TrackingArrayPool.cs ================================================ using System; using System.Buffers; using System.Collections.Generic; using Xunit; namespace MirrorSharp.Tests.Internal { public class TrackingArrayPool : ArrayPool { private readonly ArrayPool _inner; private IDictionary? _rented; public TrackingArrayPool(ArrayPool inner) { _inner = inner; } public override T[] Rent(int minimumLength) { var array = _inner.Rent(minimumLength); _rented?.Add(array, Environment.StackTrace); return array; } public override void Return(T[] array, bool clearArray = false) { _inner.Return(array); _rented?.Remove(array); } public void StartTracking() { _rented = new Dictionary(); } public void AssertAllReturned() { Assert.Empty(_rented!.Values); } } } ================================================ FILE: Tests/MirrorSharpOptionsWithXmlDocumentation.cs ================================================ using System; using System.Collections.Immutable; using Microsoft.CodeAnalysis; namespace MirrorSharp.Tests { public static partial class MirrorSharpOptionsWithXmlDocumentation { #if NETCOREAPP private static readonly string MscorlibReferenceAssemblyPath = AppDomain.CurrentDomain.BaseDirectory + @"\ref-assemblies\System.Runtime.dll"; #elif NET471 private static readonly string MscorlibReferenceAssemblyPath = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86) + @"\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.1\mscorlib.dll"; #endif public static MirrorSharpOptions Instance { get; } = new MirrorSharpOptions().SetupCSharp(c => { c.MetadataReferences = ImmutableList.Empty; c.AddMetadataReferencesFromFiles(MscorlibReferenceAssemblyPath!); }); } } ================================================ FILE: Tests/MoveCursorHandlerTests.cs ================================================ using System.Linq; using System.Threading.Tasks; using MirrorSharp.Internal; using MirrorSharp.Testing; using MirrorSharp.Testing.Internal.Results; using Xunit; namespace MirrorSharp.Tests { using static CommandIds; public class MoveCursorHandlerTests { [Theory] [InlineData("1", 1)] [InlineData("79", 79)] [InlineData("1234567890", 1234567890)] public async Task ExecuteAsync_UpdatesSessionCursorPosition(string dataString, int expectedPosition) { var driver = MirrorSharpTestDriver.New(); await driver.SendAsync(MoveCursor, dataString); Assert.Equal(expectedPosition, driver.Session.CursorPosition); } [Fact] public async Task ExecuteAsync_ProducesEmptySignatureHelp_IfCursorIsMovedOutsideOfSignatureSpan() { var driver = MirrorSharpTestDriver.New().SetTextWithCursor(@" class C { void M() {} void T() { M| } } "); var signatures = await driver.SendWithRequiredResultAsync(TypeChar, '('); var result = await driver.SendWithRequiredResultAsync(MoveCursor, signatures.Span.Start - 1); Assert.Equal(0, result.Signatures.Count); } [Fact] public async Task ExecuteAsync_ProducesSignatureHelpWithNewSelectedParameter_IfCursorIsMovedMovedBetweenParameters() { var driver = MirrorSharpTestDriver.New().SetTextWithCursor(@" class C { void M(int a, int b, int c) {} void T() { M(1| } } "); await driver.SendTypeCharsAsync(",2,"); var result = await driver.SendWithRequiredResultAsync(MoveCursor, driver.Session.CursorPosition - 1); var signature = result.Signatures.Single(); Assert.Equal("void C.M(int a, *int b*, int c)", signature.ToString()); } } } ================================================ FILE: Tests/PhpTests.cs ================================================ #if !NETFRAMEWORK using System.Linq; using MirrorSharp.Php.Internal; using MirrorSharp.Testing; using Xunit; // ReSharper disable HeapView.ObjectAllocation // ReSharper disable HeapView.BoxingAllocation namespace MirrorSharp.Tests { public class PhpTests { private static readonly MirrorSharpOptions Options = new MirrorSharpOptions().EnablePhp(); [Fact] public async void SlowUpdate_ProducesNoDiagnostics_IfCodeIsValid() { var driver = MirrorSharpTestDriver.New(Options, PhpLanguage.Name); var code = @" new { d.Severity, d.Message, Span = new { d.Span?.Start, d.Span?.Length } }).ToArray() ); } } } #endif ================================================ FILE: Tests/Properties/AssemblyInfo.cs ================================================ using System; using System.Net.WebSockets; using MirrorSharp.Advanced; using MirrorSharp.Internal.Handlers; using SourceMock; using Xunit; // https://github.com/dotnet/roslyn/issues/16184 (not actually fixed, need to re-submit) [assembly: CollectionBehavior(CollectionBehavior.CollectionPerAssembly)] [assembly: GenerateMocksForTypes( typeof(ICommandHandler), typeof(IDisposable), typeof(ISlowUpdateExtension), typeof(ISetOptionsFromClientExtension), typeof(WebSocket) )] ================================================ FILE: Tests/ReplaceTextHandlerTests.cs ================================================ using System.Linq; using System.Text; using System.Threading.Tasks; using MirrorSharp.Internal; using MirrorSharp.Testing; using MirrorSharp.Testing.Internal; using MirrorSharp.Testing.Internal.Results; using Xunit; // ReSharper disable HeapView.BoxingAllocation namespace MirrorSharp.Tests { using static CommandIds; public class ReplaceTextHandlerTests { [Fact] public async Task ExecuteAsync_AddsCompleteText_IfTextIsSplitIntoSeveralBuffers() { var driver = MirrorSharpTestDriver.New(); await driver.SendAsync(ReplaceText, new[] { "0:0:0::x", "123456789", "123456789" }); Assert.Equal("x123456789123456789", driver.Session.GetText()); } [Fact] public async Task ExecuteAsync_AddsCompleteText_IfTextIsSplitInTwoBuffersInTheMiddleOfUtf8Char() { var driver = MirrorSharpTestDriver.New(); var bytes = Encoding.UTF8.GetBytes("0:0:0::☀"); await driver.SendAsync(ReplaceText, new[] { bytes.Take(bytes.Length - 2).ToArray(), new[] { bytes[bytes.Length - 2], bytes[bytes.Length - 1] } }); Assert.Equal("☀", driver.Session.GetText()); } [Theory] [InlineData("abc", "0:2:0::x", "xc", 0)] [InlineData("abc", "0:0:0::x", "xabc", 0)] [InlineData("abc", "0:0:2::", "abc", 2)] [InlineData("abc", "3:0:0::x:y", "abcx:y", 0)] [InlineData("abc", "0:0:0:test:x", "xabc", 0)] public async Task ExecuteAsync_AddsSpecifiedCharacter(string initialText, string dataString, string expectedText, int expectedCursorPosition) { var driver = MirrorSharpTestDriver.New().SetText(initialText); await driver.SendAsync(ReplaceText, dataString); Assert.Equal(expectedText, driver.Session.GetText()); Assert.Equal(expectedCursorPosition, driver.Session.CursorPosition); } [Fact] public async Task ExecuteAsync_ProducesEmptySignatureHelp_IfCursorIsMovedOutsideOfSignatureSpan() { var driver = MirrorSharpTestDriver.New().SetTextWithCursor(@" class C { void M() {} void T() { M| } } "); await driver.SendWithRequiredResultAsync(TypeChar, '('); var newPosition = driver.Session.CursorPosition - "T() { M(".Length; var result = await driver.SendWithRequiredResultAsync(ReplaceText, Argument(newPosition, 0, "X", newPosition)); Assert.Equal(0, result.Signatures.Count); } [Fact] public async Task ExecuteAsync_ProducesSignatureHelpWithNewSelectedParameter_IfCursorIsMovedMovedBetweenParameters() { var driver = MirrorSharpTestDriver.New().SetTextWithCursor(@" class C { void M(int a, int b, int c) {} void T() { M(1| } } "); await driver.SendTypeCharsAsync(",2,"); var newPosition = driver.Session.CursorPosition - "2,".Length; var result = await driver.SendWithRequiredResultAsync(ReplaceText, Argument(newPosition, "2,".Length, "", newPosition)); var signature = result.Signatures.Single(); Assert.Equal("void C.M(int a, *int b*, int c)", signature.ToString()); } [Fact] public async Task ExecuteAsync_ProducesCompletion_WhenCalledAfterCommitCharThatWouldHaveProducedIt() { var driver = MirrorSharpTestDriver.New().SetTextWithCursor(@"class C { void M() { var x = | } }"); await driver.SendTypeCharsAsync("in"); await driver.SendAsync(CompletionState, 1); // would complete "int" after echo await driver.SendTypeCharsAsync("."); // this was the commit char, happens *before* echo var newPosition = driver.Session.CursorPosition + ("int.".Length - "in.".Length); var result = await driver.SendWithRequiredResultAsync( ReplaceText, Argument(driver.Session.CursorPosition - "in.".Length, "in".Length, "int", newPosition, reason: "completion") ); Assert.Contains(nameof(int.Parse), result.Completions.Select(c => c.DisplayText)); } [Fact] public async Task ExecuteAsync_ProducesSignatureHelp_WhenCalledAfterCommitCharThatWouldHaveProducedIt() { var driver = MirrorSharpTestDriver.New().SetTextWithCursor(@"class C { void M() { int.| } }"); await driver.SendTypeCharsAsync("Pars"); await driver.SendAsync(CompletionState, 1); // would complete "Parse" after echo await driver.SendTypeCharsAsync("("); // this was the commit char, happens *before* echo var newPosition = driver.Session.CursorPosition + ("Parse(".Length - "Pars(".Length); var result = await driver.SendWithRequiredResultAsync( ReplaceText, Argument(driver.Session.CursorPosition - "Pars(".Length, "Pars".Length, "Parse", newPosition, reason: "completion") ); var signature = result.Signatures.First(s => s.Selected); Assert.Equal("int int.Parse(*string s*)", signature.ToString()); } private HandlerTestArgument Argument(int start, int length, string newText, int newCursorPosition, string reason = "") { return $"{start}:{length}:{newCursorPosition}:{reason}:{newText}"; } } } ================================================ FILE: Tests/RequestInfoTipHandlerTests.cs ================================================ using System.Linq; using System.Threading.Tasks; using Xunit; using Microsoft.CodeAnalysis.QuickInfo; using MirrorSharp.Internal; using MirrorSharp.Testing; using MirrorSharp.Testing.Internal; namespace MirrorSharp.Tests { public partial class RequestInfoTipHandlerTests { [Theory] [InlineData( "class ➭C {}", "class C", new[] { "class", "internal" } )] [InlineData( "using System.Threading.Tasks; class C { Task ➭A() {} }", // https://github.com/dotnet/roslyn/commit/d9be31dadff3d7a7c30ec38cae5d75bf0f6a0a22 #if PRE_ROSLYN_36 "(awaitable) Task C.A()\r\n\r\nUsage:\r\n await A();", #else "(awaitable) Task C.A()", #endif new[] { "method", "private" } )] [InlineData( "class C { string P { g➭et; set; } }", "string C.P.get", new[] { "method", "private" } )] public async Task ExecuteAsync_ProducesExpectedInfoTip(string textWithCursor, string expectedResultText, string[] expectedKinds) { var text = TextWithCursor.Parse(textWithCursor, '➭'); var driver = MirrorSharpTestDriver.New().SetText(text.Text); var result = await driver.SendRequestInfoTipAsync(text.CursorPosition); Assert.NotNull(result); // https://github.com/xunit/assert.xunit/pull/36#issuecomment-578990557 Assert.Equal(expectedKinds, result!.Kinds); Assert.Equal(expectedResultText, result?.ToString()); } [Fact] public async Task ExecuteAsync_IncludesXmlDocCommentsInResult() { var text = TextWithCursor.Parse("class C { string M(int a) { return a.To➭String(); } }", '➭'); var driver = MirrorSharpTestDriver.New(MirrorSharpOptionsWithXmlDocumentation.Instance) .SetText(text.Text); var result = await driver.SendRequestInfoTipAsync(text.CursorPosition); Assert.NotNull(result); var documentation = Assert.Single(result!.Sections.Where(e => e.Kind == QuickInfoSectionKinds.DocumentationComments.ToLowerInvariant())); Assert.Equal( "Converts the numeric value of this instance to its equivalent string representation.", documentation.ToString() ); } [Fact] public async Task ExecuteAsync_DoesNotSendMessage_WhenNoQuickInfo() { var driver = MirrorSharpTestDriver.New().SetText("class C {}"); var result = await driver.SendRequestInfoTipAsync(10); Assert.Null(result); } } } ================================================ FILE: Tests/SetOptionsHandlerTests.cs ================================================ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using MirrorSharp.Advanced.Mocks; using MirrorSharp.Internal; using MirrorSharp.Testing; using MirrorSharp.Testing.Results; using Xunit; // ReSharper disable HeapView.ClosureAllocation namespace MirrorSharp.Tests { using static CommandIds; public class SetOptionsHandlerTests { [Theory] [InlineData(LanguageNames.CSharp)] [InlineData(LanguageNames.VisualBasic)] public async Task ExecuteAsync_UpdatesSessionLanguage(string languageName) { var driver = MirrorSharpTestDriver.New(new MirrorSharpOptions().EnableVisualBasic()); await driver.SendAsync(SetOptions, "language=" + languageName); Assert.Equal(languageName, driver.Session.Language.Name); } [Fact] public async Task ExecuteAsync_CallsSetOptionExtension_IfOptionHasExtensionPrefix() { var extensionMock = new SetOptionsFromClientExtensionMock(); extensionMock.Setup.TrySetOption().Returns(true); var driver = MirrorSharpTestDriver.New(new MirrorSharpServices { SetOptionsFromClient = extensionMock }); await driver.SendAsync(SetOptions, "x-testkey=testvalue"); Assert.Equal( (driver.Session, "x-testkey", "testvalue"), Assert.Single(extensionMock.Calls.TrySetOption()) ); } [Fact] public async Task ExecuteAsync_ReappliesExtensionOption_WhenChangingLanguage() { var extensionMock = new SetOptionsFromClientExtensionMock(); extensionMock.Setup.TrySetOption().Returns(true); var driver = MirrorSharpTestDriver.New(new MirrorSharpOptions().EnableVisualBasic(), new MirrorSharpServices { SetOptionsFromClient = extensionMock }); await driver.SendAsync(SetOptions, "x-testkey=testvalue"); var previousCallCount = extensionMock.Calls.TrySetOption().Count; await driver.SendAsync(SetOptions, "language=" + LanguageNames.VisualBasic); Assert.Equal((driver.Session, "x-testkey", "testvalue"), Assert.Single( extensionMock.Calls.TrySetOption().Skip(previousCallCount) )); } [Fact] public async Task ExecuteAsync_DoesNotApplyExtensionOptionTwice_WhenChangingLanguage_IfOptionIsSentWithLanguageChange() { var extensionMock = new SetOptionsFromClientExtensionMock(); extensionMock.Setup.TrySetOption().Returns(true); var driver = MirrorSharpTestDriver.New(new MirrorSharpOptions().EnableVisualBasic(), new MirrorSharpServices { SetOptionsFromClient = extensionMock }); await driver.SendAsync(SetOptions, "x-testkey=testvalue"); var previousCallCount = extensionMock.Calls.TrySetOption().Count; await driver.SendAsync(SetOptions, "language=" + LanguageNames.VisualBasic + ",x-testkey=testvalue"); Assert.Equal((driver.Session, "x-testkey", "testvalue"), Assert.Single( extensionMock.Calls.TrySetOption().Skip(previousCallCount) )); } [Fact] public async Task ExecuteAsync_EchoesOptionsIncludingPreviousCalls() { var extensionMock = new SetOptionsFromClientExtensionMock(); extensionMock.Setup.TrySetOption().Returns(true); var driver = MirrorSharpTestDriver.New(new MirrorSharpServices { SetOptionsFromClient = extensionMock }); await driver.SendAsync(SetOptions, "x-key1=value1"); var optionsEcho = await driver.SendWithRequiredResultAsync(SetOptions, "x-key2=value2"); Assert.Equal( new Dictionary { ["x-key1"] = "value1", ["x-key2"] = "value2" }, optionsEcho.Options ); } } } ================================================ FILE: Tests/SignatureHelpStateHandlerTests.cs ================================================ using System.Linq; using System.Threading.Tasks; using MirrorSharp.Internal; using MirrorSharp.Testing; using MirrorSharp.Testing.Internal.Results; using Xunit; namespace MirrorSharp.Tests { using static CommandIds; public class SignatureHelpStateHandlerTests { [Fact] public async Task ExecuteAsync_ProducesExpectedSignatureHelp_WhenForceIsRequested() { var driver = MirrorSharpTestDriver.New().SetTextWithCursor(@" class C { void M(int a) {} void T() { M(1|) } } "); var result = await driver.SendWithRequiredResultAsync(SignatureHelpState, 'F'); Assert.Equal( new[] { "void C.M(*int a*)" }, result.Signatures.Select(s => s.ToString()) ); } [Fact] public async Task ExecuteAsync_ProducesExpectedSignatureHelpInfo() { var driver = MirrorSharpTestDriver.New(MirrorSharpOptionsWithXmlDocumentation.Instance).SetTextWithCursor(@" class C { void T() { 'a'.Equals(|); } } "); var result = await driver.SendWithRequiredResultAsync(SignatureHelpState, 'F'); var selected = Assert.Single(result.Signatures, s => s.Selected); Assert.NotNull(selected.Info); Assert.Equal( "Returns a value that indicates whether this instance is equal to the specified char object.", string.Join("", selected.Info!.Parts) ); } [Fact] public async Task ExecuteAsync_ProducesExpectedSignatureHelpParameterInfo() { var driver = MirrorSharpTestDriver.New(MirrorSharpOptionsWithXmlDocumentation.Instance).SetTextWithCursor(@" class C { void T() { 'a'.Equals(|); } } "); var result = await driver.SendWithRequiredResultAsync(SignatureHelpState, 'F'); var parameter = Assert.Single(result.Signatures, s => s.Selected).Info?.Parameter; Assert.NotNull(parameter); Assert.Equal("obj", parameter!.Name); Assert.Equal("An object to compare to this instance.", string.Join("", parameter.Parts)); } } } ================================================ FILE: Tests/SlowUpdateHandlerTests.cs ================================================ using System; using System.Collections.Immutable; using System.Linq; using System.Mocks; using System.Threading.Tasks; using Microsoft.CodeAnalysis; using Xunit; using MirrorSharp.Advanced.Mocks; using MirrorSharp.Internal; using MirrorSharp.Testing; using MirrorSharp.Testing.Results; using Microsoft.CodeAnalysis.Diagnostics; using Microsoft.CodeAnalysis.CSharp; // ReSharper disable HeapView.BoxingAllocation namespace MirrorSharp.Tests { using static CommandIds; public class SlowUpdateHandlerTests { [Fact] public async Task SlowUpdate_ProducesDiagnosticWithCustomTagUnnecessary_ForUnusedNamespace() { var driver = MirrorSharpTestDriver.New().SetTextWithCursor(@"using System;|"); var result = await driver.SendWithRequiredResultAsync>(SlowUpdate); Assert.Contains( new { severity = DiagnosticSeverity.Hidden.ToString("G").ToLowerInvariant(), isUnnecessary = true }, result.Diagnostics.Select( d => new { severity = d.Severity, isUnnecessary = d.Tags.Contains(WellKnownDiagnosticTags.Unnecessary, StringComparer.OrdinalIgnoreCase) } ).ToArray() ); } [Fact] public async Task SlowUpdate_ProducesAllExpectedActions_ForTypeFromUnreferencedNamespace() { var driver = MirrorSharpTestDriver.New().SetTextWithCursor(@"class C { Action a;| }"); var result = await driver.SendWithRequiredResultAsync>(SlowUpdate); var diagnostic = result.Diagnostics.Single(d => d.Message?.Contains("Action") ?? false); Assert.Equal( new[] { "using System;", "Generate class 'Action'", "Generate nested class 'Action'", "System.Action" }, diagnostic.Actions.Select(a => a.Title).ToArray() ); } [Fact] public async Task SlowUpdate_Succeeds_ForValidVisualBasicCode() { var driver = MirrorSharpTestDriver.New(new MirrorSharpOptions().EnableVisualBasic(), languageName: LanguageNames.VisualBasic).SetText(@" Public Class C Public Sub M() End Sub End Class ".Replace(" ", "").Trim()); var result = await driver.SendWithRequiredResultAsync>(SlowUpdate); Assert.Empty(result.Diagnostics); } [Fact] public async Task SlowUpdate_DisposesExtensionResult_IfDisposable() { var disposable = new DisposableMock(); var slowUpdate = new SlowUpdateExtensionMock(); slowUpdate.Setup.ProcessAsync().ReturnsAsync(disposable); var driver = MirrorSharpTestDriver.New(new MirrorSharpServices { SlowUpdate = slowUpdate }); await driver.SendAsync(SlowUpdate); Assert.Single(disposable.Calls.Dispose()); } [Fact] public async Task SlowUpdate_ProducesDiagnostic_FromCustomAnalyzerInstance() { var reference = new AnalyzerImageReference(ImmutableArray.Create(new TestAnalyzer())); var driver = MirrorSharpTestDriver.New( new MirrorSharpOptions().SetupCSharp(c => c.AnalyzerReferences = c.AnalyzerReferences.Add(reference)) ).SetText("class C {}"); var result = await driver.SendWithRequiredResultAsync>(SlowUpdate); Assert.Contains( ("T01", "Test"), result.Diagnostics.Select(d => (d.Id, d.Message)).ToArray() ); } [DiagnosticAnalyzer(LanguageNames.CSharp)] private class TestAnalyzer : DiagnosticAnalyzer { #pragma warning disable RS2008 // Enable analyzer release tracking private static readonly DiagnosticDescriptor Descriptor = new ("T01", "Test", "Test", "Test", DiagnosticSeverity.Warning, isEnabledByDefault: true); #pragma warning restore RS2008 public override ImmutableArray SupportedDiagnostics { get; } = ImmutableArray.Create(Descriptor); public override void Initialize(AnalysisContext context) { context.EnableConcurrentExecution(); context.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None); context.RegisterSyntaxNodeAction( c => c.ReportDiagnostic(Diagnostic.Create(Descriptor, c.Node.GetLocation())), SyntaxKind.ClassDeclaration ); } } } } ================================================ FILE: Tests/Tests.csproj ================================================ netcoreapp3.1; net471 MirrorSharp.Tests MirrorSharp.Tests false $(DefineConstants); PRE_ROSLYN_36 peachpie PreserveNewest PreserveNewest ================================================ FILE: Tests/TypeCharHandlerTests.cs ================================================ using System; using System.Linq; using System.Threading.Tasks; using MirrorSharp.Internal; using MirrorSharp.Testing; using MirrorSharp.Testing.Internal.Results; using MirrorSharp.Tests.Internal; using Xunit; // ReSharper disable HeapView.BoxingAllocation namespace MirrorSharp.Tests { using static CommandIds; public class TypeCharHandlerTests { [Theory] [InlineData('\u0216')] [InlineData('月')] [InlineData('❀')] public async Task ExecuteAsync_HandlesUnicodeChar(char @char) { var driver = MirrorSharpTestDriver.New(); await driver.SendAsync(TypeChar, @char); Assert.Equal(@char.ToString(), driver.Session.GetText()); } [Fact] public async Task ExecuteAsync_InsertsSingleChar() { var driver = MirrorSharpTestDriver.New().SetTextWithCursor("class A| {}"); await driver.SendAsync(TypeChar, '1'); Assert.Equal("class A1 {}", driver.Session.GetText()); } [Fact] public async Task ExecuteAsync_MovesCursorBySingleChar() { var driver = MirrorSharpTestDriver.New().SetTextWithCursor("class A| {}"); var cursorPosition = driver.Session.CursorPosition; await driver.SendAsync(TypeChar, '1'); Assert.Equal(cursorPosition + 1, driver.Session.CursorPosition); } [Fact] public async Task ExecuteAsync_ProducesExpectedCompletion() { var driver = MirrorSharpTestDriver.New().SetTextWithCursor(@" class A { public int x; } class B { void M(A a) { a| } } "); var result = await driver.SendWithRequiredResultAsync(TypeChar, '.'); Assert.Equal( new[] { "x" }.Concat(ObjectMembers.AllNames).OrderBy(n => n), result.Completions.Select(i => i.DisplayText).OrderBy(n => n) ); } [Fact] public async Task ExecuteAsync_ProducesExpectedCompletionWithSuggestionItem_InLambdaContext() { var driver = MirrorSharpTestDriver.New().SetTextWithCursor(@"class C { void M() { System.Action a = | } }"); var result = await driver.SendWithRequiredResultAsync(TypeChar, 's'); Assert.Equal("", result.Suggestion?.DisplayText); } [Fact] public async Task ExecuteAsync_ProducesExpectedCompletionWithMatchPriority_InEnumContext() { var driver = MirrorSharpTestDriver.New().SetTextWithCursor(@" using System; class C { void M() { new DateTime().DayOfWeek =| } } "); var result = await driver.SendWithRequiredResultAsync(TypeChar, ' '); var dayOfWeek = result.Completions.FirstOrDefault(c => c.DisplayText == nameof(DayOfWeek)); var maxPriority = result.Completions.Select(c => c.Priority ?? 0).Max(); Assert.NotNull(dayOfWeek?.Priority); Assert.NotEqual(0, dayOfWeek!.Priority); Assert.Equal(maxPriority, dayOfWeek.Priority); } [Fact] public async Task ExecuteAsync_DoesNotProduceCompletion_IfCompletionListIsEmpty() { var driver = MirrorSharpTestDriver.New().SetTextWithCursor(@"class C { void M() { Console| } }"); var result = await driver.SendWithOptionalResultAsync(TypeChar, '.'); Assert.Null(result); } [Theory] [InlineData("void M(int a) {}", new[] { "void C.M(int a)" })] [InlineData("void M(int a, string b) {}", new[] { "void C.M(int a, string b)" })] [InlineData("void M(int a) {} void M(string b) {}", new[] { "void C.M(int a)", "void C.M(string b)" })] public async Task ExecuteAsync_ProducesExpectedSignatureHelp(string methods, string[] expected) { var driver = MirrorSharpTestDriver.New().SetTextWithCursor(@" class C { " + methods + @" void T() { M| } } "); var result = await driver.SendWithRequiredResultAsync(TypeChar, '('); Assert.Equal(expected, result.Signatures.Select(s => s.ToString(markSelected: false))); } [Theory] [InlineData("void M(int a, int b, int c) {}", "void C.M(int a, *int b*, int c)")] public async Task ExecuteAsync_ProducesSignatureHelpWithSelectedParameter(string methods, string expected) { var driver = MirrorSharpTestDriver.New().SetTextWithCursor(@" class C { " + methods + @" void T() { M(1| } } "); var result = await driver.SendWithRequiredResultAsync(TypeChar, ','); var signature = result.Signatures.Single(); Assert.Equal(expected, signature.ToString()); } [Theory] [InlineData("void M(int a) {} void M(int a, int b) {}", "void C.M(int a, int b)")] public async Task ExecuteAsync_ProducesSignatureHelpWithSelectedSignature(string methods, string expectedSelected) { var driver = MirrorSharpTestDriver.New().SetTextWithCursor(@" class C { " + methods + @" void T() { M(1| } } "); var result = await driver.SendWithRequiredResultAsync(TypeChar, ','); var selected = result.Signatures.Single(s => s.Selected); Assert.Equal(expectedSelected, string.Join("", selected.Parts.Select(p => p.Text))); } [Fact] public async Task ExecuteAsync_ProducesEmptySignatureHelp_OnClosingParenthesis() { var driver = MirrorSharpTestDriver.New().SetTextWithCursor(@" class C { void M() {} void T() { M| } } "); await driver.SendAsync(TypeChar, '('); var result = await driver.SendWithRequiredResultAsync(TypeChar, ')'); Assert.Equal(0, result.Signatures.Count); } } } ================================================ FILE: Tests/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETCoreApp,Version=v3.1": { "coverlet.collector": { "type": "Direct", "requested": "[1.0.1, )", "resolved": "1.0.1", "contentHash": "RAuno8s7DBGo2IdV/1d8YSnXMd/728K3PBT5R6/kfGx1yunBZmavlaFQfhGe7Q7N2nUMkvVET+7ITn3+KSg+Uw==" }, "Microsoft.NET.Test.Sdk": { "type": "Direct", "requested": "[16.2.0, )", "resolved": "16.2.0", "contentHash": "56w1drIQqpMgg3IxHcfra/jXOngiD4pbl0j6TNeJMlOQGlZ8wCMlyRTvn6Crd/FgGjwKbWLurdOHNGrfzLtl6A==", "dependencies": { "Microsoft.CodeCoverage": "16.2.0", "Microsoft.TestPlatform.TestHost": "16.2.0" } }, "SourceMock": { "type": "Direct", "requested": "[0.10.0, )", "resolved": "0.10.0", "contentHash": "Dd/YMTTRZSDR34HgVEgfMoZfOTId3Ns0vehFcdLVwMuKLgMcg7/4Oj80qX112np9siR2C4vL3qfT1I9ahzxu9Q==", "dependencies": { "System.Collections.Immutable": "5.0.0" } }, "xunit": { "type": "Direct", "requested": "[2.4.1, )", "resolved": "2.4.1", "contentHash": "XNR3Yz9QTtec16O0aKcO6+baVNpXmOnPUxDkCY97J+8krUYxPvXT1szYYEUdKk4sB8GOI2YbAjRIOm8ZnXRfzQ==", "dependencies": { "xunit.analyzers": "0.10.0", "xunit.assert": "[2.4.1]", "xunit.core": "[2.4.1]" } }, "xunit.runner.visualstudio": { "type": "Direct", "requested": "[2.4.0, )", "resolved": "2.4.0", "contentHash": "3eq5cGXbEJkqW9nwLuXwtxy9B5gMA8i7HW4rN63AhAvy5UvEcQbZnve23wx/oPrkyg/4CbfNhxkBezS0b1oUdQ==", "dependencies": { "Microsoft.NET.Test.Sdk": "15.0.0" } }, "Devsense.PHP.Parser": { "type": "Transitive", "resolved": "1.4.51", "contentHash": "QBFG8qrGJqvvH4sHGt1ym7Mg9w7RYJOkr0KvJoXg71lAu7ON8klLwefKP5MampoPTDm1TYf8CxWn1kFZRWpBnA==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "FSharp.Compiler.Service": { "type": "Transitive", "resolved": "43.8.300", "contentHash": "CoPjQYXXwmYkkHm+yxBHSW9IJVLpvwkKGEzXa5A6ebf8v6GfYaxZc5G+VHojDr586oezp1elFemu+A1WWH095A==", "dependencies": { "FSharp.Core": "[8.0.300]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "7.0.0", "System.Diagnostics.DiagnosticSource": "7.0.2", "System.Memory": "4.5.5", "System.Reflection.Emit": "4.7.0", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "FSharp.Core": { "type": "Transitive", "resolved": "8.0.300", "contentHash": "Jv44fV7TNglyMku89lQcA4Q6mFKLyHb2bs1Yb72nvSVc+cHplEnoZ4XQUaaTLJGUTx/iMqcrkYGtaLzkkIhpaA==" }, "HtmlAgilityPack": { "type": "Transitive", "resolved": "1.6.7", "contentHash": "mpkJPBYXdqFVy5pjTKFzE2W4rZIHv+pOaShCp44Rn/+jNw/ApS3RxDNDYO59QFUNSUMD4GP0jBTIwvPDjC3W7Q==", "dependencies": { "System.Net.Http": "4.3.2", "System.Xml.XPath": "4.3.0", "System.Xml.XPath.XmlDocument": "4.3.0", "System.Xml.XmlDocument": "4.3.0" } }, "Microsoft.Build.Framework": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "jleteC0seumLGTmTVwob97lcwPj/dfgzL/V3g/VVcMZgo2Ic7jzdy8AYpByPDh8e3uRq0SjCl6HOFCjhy5GzRQ==", "dependencies": { "Microsoft.Win32.Registry": "5.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "Microsoft.Build.Utilities.Core": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "pU3GnHcXp8VRMGKxdJCq+tixfhFn+QwEbpqmZmc/nqFHFyuhlGwjonWZMIWcwuCv/8EHgxoOttFvna1vrN+RrA==", "dependencies": { "Microsoft.Build.Framework": "17.12.6", "Microsoft.NET.StringTools": "17.12.6", "Microsoft.Win32.Registry": "5.0.0", "System.Collections.Immutable": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0", "System.Text.Encoding.CodePages": "7.0.0" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "2.9.4", "contentHash": "alIJhS0VUg/7x5AsHEoovh/wRZ0RfCSS7k5pDSqpRLTyuMTtRgj6OJJPRApRhJHOGYYsLakf1hKeXFoDwKwNkg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "N5yQdGy+M4kimVG7hwCeGTCfgYjK2o5b/Shumkb/rCC+/SAkvP1HUAYK+vxPFS7dLJNtXLRsmPHKj3fnyNWnrw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "2.9.4", "System.Collections.Immutable": "1.5.0", "System.Memory": "4.5.3", "System.Reflection.Metadata": "1.6.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2", "System.Text.Encoding.CodePages": "4.5.1", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "WDUIhTHem38H6VJ98x2Ssq0fweakJHnHYl7vbG8ARnsAwLoJKCQCy78EeY1oRrCKG42j0v6JVljKkeqSDA28UA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "t9uIwsLzT5zQ1Q3ZIpwE4EOnAf/lGdbQwyeqhyO/BJ+AWDt267Hxlz5k6ypPy14Z6+PW6pTggAGz6MwN31RElQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Features": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "dHs/UyfLgzsVC4FjTi/x+H+yQifgOnpe3rSN8GwkHWjnidePZ3kSqr1JHmFDf5HTQEydYwrwCAfQ0JSzhsEqDA==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "lvMC69ABN/YEaw3ke4cQRqBYZ2V7DJTOT8QXIeAJGJUfwVHTBN0iq2O5zZQrYnnUN2wmeCzCoAg59PKBosVO7g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": "2.9.5", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]", "Microsoft.DiaSymReader": "1.3.0", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": { "type": "Transitive", "resolved": "2.9.5", "contentHash": "SqwdTocsxU7u0Y8am67BY7KSLAhrtDXdBBwt0Nv9TxLVzPBPtPPFS2bHUsxucpOBMBmc10rWE1eJ+IDrr/0/nQ==" }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "F7fc/G+0ocOYkKSCJ7Y8Q7eAEkAdG5RYODI9FtSl2Hm8zIDBVA3NccCm98gaOvCamLfMHYqeOjpb3yJnnw3m/w==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.VisualBasic.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "TGhM/EF5JWIt83ghkOrch+hhv7cwcvxzmIfhgF8oddd6hZAEkYaeup5BTxaJtHf8Me6TDQqoIWEEGsz5PdkBdA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Features": "[3.3.1]", "Microsoft.CodeAnalysis.VisualBasic": "[3.3.1]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "Oi4AUxMKAYpx7nHNh7jUO8X18JFCzwtIfu/yDzGzOBpo50591AF7EEdv99geAEidGtmJqbzQ6uRk5dEOL+7F/Q==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.VisualBasic": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "NfBz3b5hFSbO+7xsCNryD+p8axsIJFTG7qM3jvMTC/MqYrU6b8E1b6JoRj5rJSOBB+pSunk+CMqyGQTOWHeDUg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "System.Composition": "1.0.31" } }, "Microsoft.CodeCoverage": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "fKiUOhhMP3IN1qM2tDHPWzW4JRbriFkIPiIzKUwMWT+Q+80bycxkLLCvxmVFoeA7gvWegNbTUjaX7mL3MM9XKg==" }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.3.0", "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.DiaSymReader.Native": { "type": "Transitive", "resolved": "1.3.3", "contentHash": "mjATkm+L2UlP35gO/ExNutLDfgX4iiwz1l/8sYVoeGHp5WnkEDu0NfIEsC4Oy/pCYeRw0/6SGB+kArJVNNvENQ==" }, "Microsoft.DotNet.PlatformAbstractions": { "type": "Transitive", "resolved": "2.0.4", "contentHash": "2HjSGp63VCLQaeGadrLYR868g25mJHr+TFF81yWCaClzjUbU2vNDx6km7SUgPnoLVksE/1e7in88eh+oPtc4aQ==", "dependencies": { "System.AppContext": "4.1.0", "System.Collections": "4.0.11", "System.IO": "4.1.0", "System.IO.FileSystem": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.InteropServices": "4.1.0", "System.Runtime.InteropServices.RuntimeInformation": "4.0.0" } }, "Microsoft.Extensions.DependencyInjection": { "type": "Transitive", "resolved": "2.0.0", "contentHash": "wakg18gHYiUL1pcjjyZuYk6OvDpbSw1E7IWxm78TMepsr+gQ8W0tWzuRm0q/9RFblngwPwo15rrgZSUV51W5Iw==", "dependencies": { "Microsoft.Extensions.DependencyInjection.Abstractions": "2.0.0" } }, "Microsoft.Extensions.DependencyInjection.Abstractions": { "type": "Transitive", "resolved": "2.0.0", "contentHash": "eUdJ0Q/GfVyUJc0Jal5L1QZLceL78pvEM9wEKcHeI24KorqMDoVX+gWsMGLulQMfOwsUaPtkpQM2pFERTzSfSg==" }, "Microsoft.Extensions.DependencyModel": { "type": "Transitive", "resolved": "2.0.4", "contentHash": "jnHAeijsfJFQXdXmnYK/NhQIkgBUeth//RZZkf0ldIKC+jARbf7YxbA9uTrs/EPhuQxHXaDxVuMyscgmL+UqfA==", "dependencies": { "Microsoft.DotNet.PlatformAbstractions": "2.0.4", "Newtonsoft.Json": "9.0.1", "System.Diagnostics.Debug": "4.0.11", "System.Dynamic.Runtime": "4.0.11", "System.Linq": "4.1.0" } }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", "resolved": "2.2.0", "contentHash": "uyjY/cqomw1irT4L7lDeg4sJ36MsjHg3wKqpGrBAdzvZaxo85yMF+sAA9RIzTV92fDxuUzjqksMqA0+SNMkMgA==" }, "Microsoft.NET.StringTools": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "w8Ehofqte5bJoR+Fa3f6JwkwFEkGtXxqvQHGOVOSHDzgNVySvL5FSNhavbQSZ864el9c3rjdLPLAtBW8dq6fmg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "RAyBf87uZ5XjRE953LlxqILpD1SqwQM6bXwxPUCAPPEy0uv12R+eKnFL7yaeLVHInMKkNNh1iD/cDOVDfSgllA==", "dependencies": { "NETStandard.Library": "1.6.0", "System.ComponentModel.EventBasedAsync": "4.0.11", "System.ComponentModel.TypeConverter": "4.1.0", "System.Diagnostics.Process": "4.1.0", "System.Diagnostics.TextWriterTraceListener": "4.0.0", "System.Diagnostics.TraceSource": "4.0.0", "System.Reflection.Metadata": "1.3.0", "System.Reflection.TypeExtensions": "4.1.0", "System.Runtime.InteropServices.RuntimeInformation": "4.0.0", "System.Runtime.Loader": "4.0.0", "System.Runtime.Serialization.Json": "4.0.2", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Threading.Thread": "4.0.0", "System.Xml.XPath.XmlDocument": "4.0.1" } }, "Microsoft.TestPlatform.TestHost": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "PogSQ40KgkZjEBdC6KBGpMtuvFFCIdoJAMmK7CAHWyTXCfN1cPN8j0TFJKh+LneSg+y0QQDP23STMF609KhHQw==", "dependencies": { "Microsoft.TestPlatform.ObjectModel": "16.2.0", "Newtonsoft.Json": "9.0.1" } }, "Microsoft.Win32.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "Microsoft.Win32.Registry": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", "dependencies": { "System.Security.AccessControl": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "MySqlConnector": { "type": "Transitive", "resolved": "0.42.1", "contentHash": "7jS8P+XOw+vS/reuwEEGhtAKvagiOEtOsu5/46Bnuiw+DgOjAFgMSojkiVaZi9DHcatP8jgmjY67iDGVZByQng==" }, "NETStandard.Library": { "type": "Transitive", "resolved": "1.6.1", "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.Win32.Primitives": "4.3.0", "System.AppContext": "4.3.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Console": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.Compression.ZipFile": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Net.Http": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Net.Sockets": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Timer": "4.3.0", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XDocument": "4.3.0" } }, "Newtonsoft.Json": { "type": "Transitive", "resolved": "13.0.3", "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" }, "Peachpie.App": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "LZcCc6XsKW7MBRKne6KGgwDKPyr/gJb53BJhRVfRlXWFjRecuBqLwjXLWpPvXR57o/MwvZ+iv//iC2NYucIpwQ==", "dependencies": { "Peachpie.Library": "0.9.0-CI01101", "Peachpie.Library.MsSql": "0.9.0-CI01101", "Peachpie.Library.MySql": "0.9.0-CI01101", "Peachpie.Library.Network": "0.9.0-CI01101", "Peachpie.Library.PDO": "0.9.0-CI01101", "Peachpie.Library.Scripting": "0.9.0-CI01101", "Peachpie.Library.XmlDom": "0.9.0-CI01101", "Peachpie.Runtime": "0.9.0-CI01101" } }, "Peachpie.CodeAnalysis": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "SULo4KfDz/nW3I1x1FV/oy04myBa7BkZGyV/e4OzPLsX8vb0pL8Q0nLHsoOJx0CWxBehlXU98APdVB+U0BNfDg==", "dependencies": { "Devsense.Php.Parser": "1.4.51", "Peachpie.Microsoft.CodeAnalysis": "0.6.0", "System.Collections": "4.3.0", "System.Collections.Immutable": "1.4.0", "System.Diagnostics.Debug": "4.3.0", "System.Reflection.Metadata": "1.5.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "Peachpie.Library": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "gbYwLhop0tmTn4V+QSlbTct6vu7SDFqUmoLE5wtoyKmTR9B9GNV8kSuhkugYQ6lGt/331KS/9rfm7DAdkOxFUw==", "dependencies": { "Peachpie.Runtime": "0.9.0-CI01101" } }, "Peachpie.Library.MsSql": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "y7ROu/fhHwGF6nyg6HH4ilJyPPhds8vq3mCqs5yhDf7KpqwAJ9s8dU0rRxz9XAoT1ZPu7+Te4uCETLzCGVtGuA==", "dependencies": { "Peachpie.Library": "0.9.0-CI01101", "Peachpie.Runtime": "0.9.0-CI01101", "System.Data.SqlClient": "4.4.3" } }, "Peachpie.Library.MySql": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "WeN1dTTTRR3XrMXAS48fkLCNHX5dP7iv9uFw3tjXvJBZkaQQrpiFjZ3WS+wxbgxyiqZ/skNhzpGQB828FY4coQ==", "dependencies": { "MySqlConnector": "0.42.1", "Peachpie.Library": "0.9.0-CI01101", "Peachpie.Runtime": "0.9.0-CI01101" } }, "Peachpie.Library.Network": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "Bx8GO4SahFi1gk/zvkOzYbifygQiEdXECdCnbz7OzmCbN6VB7m1eCJozYXEEAO4nIBhptICaL5RgFRi+uTKPJA==", "dependencies": { "Peachpie.Library": "0.9.0-CI01101", "Peachpie.Runtime": "0.9.0-CI01101" } }, "Peachpie.Library.PDO": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "AtQ6pVUgYCdSIQE1Txk4HD1Vv8pe0Q3thD7dc/m96lWYqUimHVb+PovOZxbC0DM2XdpthemArUAZL8l3NDHCGg==", "dependencies": { "Peachpie.Library": "0.9.0-CI01101", "Peachpie.Runtime": "0.9.0-CI01101" } }, "Peachpie.Library.Scripting": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "lm2LUVlCUrtg9+M1pFWpBdn+0GOE5SieHlA+dI910gnk3DpDhWO+Ic1hHJG0j1EkjntuuPmrZruOKobjj40slA==", "dependencies": { "Devsense.Php.Parser": "1.4.51", "Peachpie.CodeAnalysis": "0.9.0-CI01101", "Peachpie.Library": "0.9.0-CI01101", "Peachpie.Library.XmlDom": "0.9.0-CI01101", "Peachpie.Microsoft.CodeAnalysis": "0.6.0", "Peachpie.Runtime": "0.9.0-CI01101", "System.Runtime.Loader": "4.3.0" } }, "Peachpie.Library.XmlDom": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "JcABdbNABlVgF+/fPujLZwcUZguOaJknP/Jr2gP1BamVSgFHVnCV3uTP8Wmu21EoQGk6mrGD+qDNoKwNUXpKrw==", "dependencies": { "HtmlAgilityPack": "1.6.7", "Peachpie.Library": "0.9.0-CI01101", "Peachpie.Runtime": "0.9.0-CI01101", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XPath": "4.3.0", "System.Xml.XPath.XmlDocument": "4.3.0", "System.Xml.XmlDocument": "4.3.0" } }, "Peachpie.Microsoft.CodeAnalysis": { "type": "Transitive", "resolved": "0.6.0", "contentHash": "pw0Nm3V2bvhG9EN/eAI6dUGYrDjwApgQbEgjPiuLJK9iN4QyXYwn589kxhvimVWGSJHOakkDemfQFunyxOqSow==", "dependencies": { "Microsoft.DiaSymReader.Native": "1.3.3", "System.Collections.Immutable": "1.3.1", "System.Reflection.Metadata": "1.4.2", "System.Runtime.Serialization.Json": "4.0.3" } }, "Peachpie.Runtime": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "EUN0raglMAuLUxEWsRZpvxQowfZbEZ96DyeK1ZhwD/KVQpnzzO8lZrd5/yc3i5FAOupJpVm4/040xdEyqC4LzQ==", "dependencies": { "Microsoft.Extensions.DependencyInjection": "2.0.0", "Microsoft.Extensions.DependencyModel": "2.0.4", "System.Composition": "1.1.0", "System.Memory": "4.5.0", "System.Reflection.Emit.Lightweight": "4.3.0" } }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.AppContext": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Collections.NonGeneric": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==", "dependencies": { "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Collections.Specialized": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "/HKQyVP0yH1I0YtK7KJL/28snxHNH/bi+0lgk/+MbURF6ULhAE31MDI+NZDerNWu264YbxklXCCygISgm+HMug==", "dependencies": { "System.Collections.NonGeneric": "4.0.1", "System.Globalization": "4.0.11", "System.Globalization.Extensions": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.ComponentModel": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==", "dependencies": { "System.Runtime": "4.1.0" } }, "System.ComponentModel.EventBasedAsync": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "Z7SO6vvQIR84daPE4uhaNdef9CjgjDMGYkas8epUhf0U3WGuaGgZ0Mm4QuNycMdbHUY8KEdZrtgxonkAiJaAlA==", "dependencies": { "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11" } }, "System.ComponentModel.Primitives": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "sc/7eVCdxPrp3ljpgTKVaQGUXiW05phNWvtv/m2kocXqrUQvTVWKou1Edas2aDjTThLPZOxPYIGNb/HN0QjURg==", "dependencies": { "System.ComponentModel": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0" } }, "System.ComponentModel.TypeConverter": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "MnDAlaeJZy9pdB5ZdOlwdxfpI+LJQ6e0hmH7d2+y2LkiD8DRJynyDYl4Xxf3fWFm7SbEwBZh4elcfzONQLOoQw==", "dependencies": { "System.Collections": "4.0.11", "System.Collections.NonGeneric": "4.0.1", "System.Collections.Specialized": "4.0.1", "System.ComponentModel": "4.0.1", "System.ComponentModel.Primitives": "4.1.0", "System.Globalization": "4.0.11", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Composition": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "rLsB/X6sp4cLPPlyPVuTBQbtG2IdSdKc6tFImxopz9s5po4Og5sQ8rA7GPxpTsrQ5UXS1IxdaqFwxtse4eLolw==", "dependencies": { "System.Composition.AttributedModel": "1.1.0", "System.Composition.Convention": "1.1.0", "System.Composition.Hosting": "1.1.0", "System.Composition.Runtime": "1.1.0", "System.Composition.TypedParts": "1.1.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "S7Ybny/58VGS+5uanotm7f2k7Iv3ufdv0eDA8adZ345pE27zr+9bxhHw/rXXMVltRdoUuyB1O4YpYT1lVwkM0w==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "lqiuITNCKJ/JlXzmum0mr+1HDCJ6mN/+1C4ouXpvLKpUA+zal7EsRvfHxy+kVVPrPMaFU9dLQkBxV/GFVnJoXA==", "dependencies": { "System.Composition.AttributedModel": "1.1.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "D5M3oBOxCeHe4WVNtqKnFA3UMt53uIdUMGgustecwh7kmzE7k+Co+CFPLpQVPdyBhmB8WxicaESa41QLZ0ZlgA==", "dependencies": { "System.Composition.Runtime": "1.1.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "dLbtnVmOiD4k1/YA4LfV2nEZX4jdgizvSzvVIffOp3AXU468n5IsDbwwbCHSUmnfqoJ5unYR+hEmN1U3gBmDRg==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "SlACsoBPQpeL8dAjQXttv9d5Y/790UmxnlP2yk1w94T2vMcHOa7i9XGUKCB81BGMWstR2FF9ZEftm8rIdhMEvg==", "dependencies": { "System.Composition.AttributedModel": "1.1.0", "System.Composition.Hosting": "1.1.0", "System.Composition.Runtime": "1.1.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==", "dependencies": { "System.Security.Cryptography.ProtectedData": "8.0.0" } }, "System.Console": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Data.SqlClient": { "type": "Transitive", "resolved": "4.9.0", "contentHash": "j4KJO+vC62NyUtNHz854njEqXbT8OmAa5jb1nrGfYWBOcggyYUQE0w/snXeaCjdvkSKWuUD+hfvlbN8pTrJTXg==" }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "7.0.2", "contentHash": "hYr3I9N9811e0Bjf2WNwAGGyTuAFbbTgX1RPLt/3Wbm68x3IGcX5Cl75CMmgT6WlNwLQ2tCCWfqYPpypjaf2xA==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Diagnostics.Process": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "mpVZ5bnlSs3tTeJ6jYyDJEIa6tavhAd88lxq1zbYhkkCu0Pno2+gHXcvZcoygq2d8JxW3gojXqNJMTAshduqZA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "Microsoft.Win32.Primitives": "4.0.1", "Microsoft.Win32.Registry": "4.0.0", "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.IO.FileSystem": "4.0.1", "System.IO.FileSystem.Primitives": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Handles": "4.0.1", "System.Runtime.InteropServices": "4.1.0", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "System.Threading.Thread": "4.0.0", "System.Threading.ThreadPool": "4.0.10", "runtime.native.System": "4.0.0" } }, "System.Diagnostics.TextWriterTraceListener": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "w36Dr8yKy8xP150qPANe7Td+/zOI3G62ImRcHDIEW+oUXUuTKZHd4DHmqRx5+x8RXd85v3tXd1uhNTfsr+yxjA==", "dependencies": { "System.Diagnostics.TraceSource": "4.0.0", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.TraceSource": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "runtime.native.System": "4.0.0" } }, "System.Diagnostics.Tracing": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Dynamic.Runtime": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Linq": "4.1.0", "System.Linq.Expressions": "4.1.0", "System.ObjectModel": "4.0.12", "System.Reflection": "4.1.0", "System.Reflection.Emit": "4.0.1", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Buffers": "4.3.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.IO.Compression": "4.3.0" } }, "System.IO.Compression.ZipFile": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", "dependencies": { "System.Buffers": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.IO.FileSystem": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==" }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Net.Sockets": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Private.DataContractSerialization": { "type": "Transitive", "resolved": "4.1.2", "contentHash": "e700XsW/HO7qlnatKyVXEFHJMNXDkPOkn4pmpddXcJk6KEsnYIpJUHDFycHKB3mRVsgRtUYiDRbRKhecwo2ezg==", "dependencies": { "System.Collections": "4.0.11", "System.Collections.Concurrent": "4.0.12", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Emit.Lightweight": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1", "System.Xml.XmlSerializer": "4.0.11" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==" }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "MclTG61lsD9sYdpNz9xsKBzjsmsfCtcMZYXz/IUr2zlhaTaABonlr1ESeompTgM+Xk+IwtGYU7/voh3YWB/fWw==", "dependencies": { "System.Collections.Immutable": "7.0.0", "System.Memory": "4.5.5" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.InteropServices.RuntimeInformation": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0" } }, "System.Runtime.Loader": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DHMaRn8D8YCK2GG2pw+UzNxn/OHVfaWx7OTLBD/hPegHZZgcZh3H6seWegrC4BYwsfuGrywIuT+MQs+rPqRLTQ==", "dependencies": { "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Runtime.Serialization.Json": { "type": "Transitive", "resolved": "4.0.3", "contentHash": "siAQb9mZmY7dsBtdbC0OE7W1/y4DGgrIRHTghtN40v79wAvHluBm1wzlrCauCWMyp6WVxkcTzoesjZnx5+fM9g==", "dependencies": { "System.IO": "4.1.0", "System.Private.DataContractSerialization": "4.1.2", "System.Runtime": "4.1.0" } }, "System.Runtime.Serialization.Primitives": { "type": "Transitive", "resolved": "4.1.1", "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", "dependencies": { "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0" } }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", "dependencies": { "Microsoft.NETCore.Platforms": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Cng": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==", "dependencies": { "System.Memory": "4.5.5" } }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.Encoding.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { "System.Runtime": "4.3.1" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "+MvhNtcvIbqmhANyKu91jQnvIRVSTiaOiFNfKWwXGHG48YAb4I/TyH8spsySiPYla7gKal5ZnF3teJqZAximyQ==" }, "System.Threading.Thread": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "gIdJqDXlOr5W9zeqFErLw3dsOsiShSCYtF9SEHitACycmvNvY8odf9kiKvp6V7aibc8C4HzzNBkWXjyfn7plbQ==", "dependencies": { "System.Runtime": "4.1.0" } }, "System.Threading.ThreadPool": { "type": "Transitive", "resolved": "4.0.10", "contentHash": "IMXgB5Vf/5Qw1kpoVgJMOvUO1l32aC+qC3OaIZjWJOjvcxuxNWOK2ZTWWYXfij22NHxT2j1yWX5vlAeQWld9vA==", "dependencies": { "System.Runtime": "4.1.0", "System.Runtime.Handles": "4.0.1" } }, "System.Threading.Timer": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Xml.ReaderWriter": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Tasks.Extensions": "4.3.0" } }, "System.Xml.XDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "System.Xml.XmlDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "System.Xml.XmlSerializer": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "FrazwwqfIXTfq23mfv4zH+BjqkSFNaNFBtjzu3I9NRmG8EELYyrv/fJnttCIwRMFRR/YKXF1hmsMmMEnl55HGw==", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit": "4.0.1", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1" } }, "System.Xml.XPath": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "v1JQ5SETnQusqmS3RwStF7vwQ3L02imIzl++sewmt23VGygix04pEH+FCj1yWb+z4GDzKiljr1W7Wfvrx0YwgA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "System.Xml.XPath.XmlDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "A/uxsWi/Ifzkmd4ArTLISMbfFs6XpRPsXZonrIqyTY70xi8t+mDtvSM5Os0RqyRDobjMBwIDHDL4NOIbkDwf7A==", "dependencies": { "System.Collections": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XPath": "4.3.0", "System.Xml.XmlDocument": "4.3.0" } }, "xunit.abstractions": { "type": "Transitive", "resolved": "2.0.3", "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==" }, "xunit.analyzers": { "type": "Transitive", "resolved": "0.10.0", "contentHash": "4/IDFCJfIeg6bix9apmUtIMwvOsiwqdEexeO/R2D4GReIGPLIRODTpId/l4LRSrAJk9lEO3Zx1H0Zx6uohJDNg==" }, "xunit.assert": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "O/Oe0BS5RmSsM+LQOb041TzuPo5MdH2Rov+qXGS37X+KFG1Hxz7kopYklM5+1Y+tRGeXrOx5+Xne1RuqLFQoyQ==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "xunit.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "Zsj5OMU6JasNGERXZy8s72+pcheG6Q15atS5XpZXqAtULuyQiQ6XNnUsp1gyfC6WgqScqMvySiEHmHcOG6Eg0Q==", "dependencies": { "xunit.extensibility.core": "[2.4.1]", "xunit.extensibility.execution": "[2.4.1]" } }, "xunit.extensibility.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "yKZKm/8QNZnBnGZFD9SewkllHBiK0DThybQD/G4PiAmQjKtEZyHi6ET70QPU9KtSMJGRYS6Syk7EyR2EVDU4Kg==", "dependencies": { "NETStandard.Library": "1.6.1", "xunit.abstractions": "2.0.3" } }, "xunit.extensibility.execution": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "7e/1jqBpcb7frLkB6XDrHCGXAbKN4Rtdb88epYxCSRQuZDRW8UtTfdTEVpdTl8s4T56e07hOBVd4G0OdCxIY2A==", "dependencies": { "NETStandard.Library": "1.6.1", "xunit.extensibility.core": "[2.4.1]" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } }, "MirrorSharp.FSharp": { "type": "Project", "dependencies": { "FSharp.Compiler.Service": "[43.8.300, )", "FSharp.Core": "[8.0.300, )", "Microsoft.Build.Utilities.Core": "[17.12.6, )", "Microsoft.IO.RecyclableMemoryStream": "[2.2.0, )", "MirrorSharp.Common": "[3.0.9, )" } }, "MirrorSharp.Php": { "type": "Project", "dependencies": { "MirrorSharp.Common": "[3.0.9, )", "Newtonsoft.Json": "[13.0.3, )", "Peachpie.App": "[0.9.0-CI01101, )", "Peachpie.CodeAnalysis": "[0.9.0-CI01101, )", "System.Data.SqlClient": "[4.9.0, )" } }, "MirrorSharp.Testing": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )", "Newtonsoft.Json": "[13.0.3, )", "System.Buffers": "[4.5.1, )" } }, "MirrorSharp.VisualBasic": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.VisualBasic": "[3.3.1, )", "Microsoft.CodeAnalysis.VisualBasic.Features": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )" } } }, ".NETFramework,Version=v4.7.1": { "coverlet.collector": { "type": "Direct", "requested": "[1.0.1, )", "resolved": "1.0.1", "contentHash": "RAuno8s7DBGo2IdV/1d8YSnXMd/728K3PBT5R6/kfGx1yunBZmavlaFQfhGe7Q7N2nUMkvVET+7ITn3+KSg+Uw==" }, "Microsoft.NET.Test.Sdk": { "type": "Direct", "requested": "[16.2.0, )", "resolved": "16.2.0", "contentHash": "56w1drIQqpMgg3IxHcfra/jXOngiD4pbl0j6TNeJMlOQGlZ8wCMlyRTvn6Crd/FgGjwKbWLurdOHNGrfzLtl6A==", "dependencies": { "Microsoft.CodeCoverage": "16.2.0" } }, "SourceMock": { "type": "Direct", "requested": "[0.10.0, )", "resolved": "0.10.0", "contentHash": "Dd/YMTTRZSDR34HgVEgfMoZfOTId3Ns0vehFcdLVwMuKLgMcg7/4Oj80qX112np9siR2C4vL3qfT1I9ahzxu9Q==", "dependencies": { "System.Collections.Immutable": "5.0.0" } }, "xunit": { "type": "Direct", "requested": "[2.4.1, )", "resolved": "2.4.1", "contentHash": "XNR3Yz9QTtec16O0aKcO6+baVNpXmOnPUxDkCY97J+8krUYxPvXT1szYYEUdKk4sB8GOI2YbAjRIOm8ZnXRfzQ==", "dependencies": { "xunit.analyzers": "0.10.0", "xunit.assert": "[2.4.1]", "xunit.core": "[2.4.1]" } }, "xunit.runner.visualstudio": { "type": "Direct", "requested": "[2.4.0, )", "resolved": "2.4.0", "contentHash": "3eq5cGXbEJkqW9nwLuXwtxy9B5gMA8i7HW4rN63AhAvy5UvEcQbZnve23wx/oPrkyg/4CbfNhxkBezS0b1oUdQ==" }, "Devsense.PHP.Parser": { "type": "Transitive", "resolved": "1.4.51", "contentHash": "QBFG8qrGJqvvH4sHGt1ym7Mg9w7RYJOkr0KvJoXg71lAu7ON8klLwefKP5MampoPTDm1TYf8CxWn1kFZRWpBnA==" }, "FSharp.Compiler.Service": { "type": "Transitive", "resolved": "43.8.300", "contentHash": "CoPjQYXXwmYkkHm+yxBHSW9IJVLpvwkKGEzXa5A6ebf8v6GfYaxZc5G+VHojDr586oezp1elFemu+A1WWH095A==", "dependencies": { "FSharp.Core": "[8.0.300]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "7.0.0", "System.Diagnostics.DiagnosticSource": "7.0.2", "System.Memory": "4.5.5", "System.Reflection.Emit": "4.7.0", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "FSharp.Core": { "type": "Transitive", "resolved": "8.0.300", "contentHash": "Jv44fV7TNglyMku89lQcA4Q6mFKLyHb2bs1Yb72nvSVc+cHplEnoZ4XQUaaTLJGUTx/iMqcrkYGtaLzkkIhpaA==" }, "HtmlAgilityPack": { "type": "Transitive", "resolved": "1.6.7", "contentHash": "mpkJPBYXdqFVy5pjTKFzE2W4rZIHv+pOaShCp44Rn/+jNw/ApS3RxDNDYO59QFUNSUMD4GP0jBTIwvPDjC3W7Q==" }, "Microsoft.Build.Framework": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "jleteC0seumLGTmTVwob97lcwPj/dfgzL/V3g/VVcMZgo2Ic7jzdy8AYpByPDh8e3uRq0SjCl6HOFCjhy5GzRQ==", "dependencies": { "Microsoft.Win32.Registry": "5.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "Microsoft.Build.Utilities.Core": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "pU3GnHcXp8VRMGKxdJCq+tixfhFn+QwEbpqmZmc/nqFHFyuhlGwjonWZMIWcwuCv/8EHgxoOttFvna1vrN+RrA==", "dependencies": { "Microsoft.Build.Framework": "17.12.6", "Microsoft.NET.StringTools": "17.12.6", "Microsoft.Win32.Registry": "5.0.0", "System.Collections.Immutable": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0", "System.Text.Encoding.CodePages": "7.0.0" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "2.9.4", "contentHash": "alIJhS0VUg/7x5AsHEoovh/wRZ0RfCSS7k5pDSqpRLTyuMTtRgj6OJJPRApRhJHOGYYsLakf1hKeXFoDwKwNkg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "N5yQdGy+M4kimVG7hwCeGTCfgYjK2o5b/Shumkb/rCC+/SAkvP1HUAYK+vxPFS7dLJNtXLRsmPHKj3fnyNWnrw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "2.9.4", "System.Collections.Immutable": "1.5.0", "System.Memory": "4.5.3", "System.Reflection.Metadata": "1.6.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2", "System.Text.Encoding.CodePages": "4.5.1", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "WDUIhTHem38H6VJ98x2Ssq0fweakJHnHYl7vbG8ARnsAwLoJKCQCy78EeY1oRrCKG42j0v6JVljKkeqSDA28UA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "t9uIwsLzT5zQ1Q3ZIpwE4EOnAf/lGdbQwyeqhyO/BJ+AWDt267Hxlz5k6ypPy14Z6+PW6pTggAGz6MwN31RElQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Features": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "dHs/UyfLgzsVC4FjTi/x+H+yQifgOnpe3rSN8GwkHWjnidePZ3kSqr1JHmFDf5HTQEydYwrwCAfQ0JSzhsEqDA==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "lvMC69ABN/YEaw3ke4cQRqBYZ2V7DJTOT8QXIeAJGJUfwVHTBN0iq2O5zZQrYnnUN2wmeCzCoAg59PKBosVO7g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": "2.9.5", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]", "Microsoft.DiaSymReader": "1.3.0", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": { "type": "Transitive", "resolved": "2.9.5", "contentHash": "SqwdTocsxU7u0Y8am67BY7KSLAhrtDXdBBwt0Nv9TxLVzPBPtPPFS2bHUsxucpOBMBmc10rWE1eJ+IDrr/0/nQ==" }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "F7fc/G+0ocOYkKSCJ7Y8Q7eAEkAdG5RYODI9FtSl2Hm8zIDBVA3NccCm98gaOvCamLfMHYqeOjpb3yJnnw3m/w==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.VisualBasic.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "TGhM/EF5JWIt83ghkOrch+hhv7cwcvxzmIfhgF8oddd6hZAEkYaeup5BTxaJtHf8Me6TDQqoIWEEGsz5PdkBdA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Features": "[3.3.1]", "Microsoft.CodeAnalysis.VisualBasic": "[3.3.1]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "Oi4AUxMKAYpx7nHNh7jUO8X18JFCzwtIfu/yDzGzOBpo50591AF7EEdv99geAEidGtmJqbzQ6uRk5dEOL+7F/Q==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.VisualBasic": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "NfBz3b5hFSbO+7xsCNryD+p8axsIJFTG7qM3jvMTC/MqYrU6b8E1b6JoRj5rJSOBB+pSunk+CMqyGQTOWHeDUg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "System.Composition": "1.0.31" } }, "Microsoft.CodeCoverage": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "fKiUOhhMP3IN1qM2tDHPWzW4JRbriFkIPiIzKUwMWT+Q+80bycxkLLCvxmVFoeA7gvWegNbTUjaX7mL3MM9XKg==" }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.3.0", "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==" }, "Microsoft.DiaSymReader.Native": { "type": "Transitive", "resolved": "1.3.3", "contentHash": "mjATkm+L2UlP35gO/ExNutLDfgX4iiwz1l/8sYVoeGHp5WnkEDu0NfIEsC4Oy/pCYeRw0/6SGB+kArJVNNvENQ==" }, "Microsoft.DotNet.PlatformAbstractions": { "type": "Transitive", "resolved": "2.0.4", "contentHash": "2HjSGp63VCLQaeGadrLYR868g25mJHr+TFF81yWCaClzjUbU2vNDx6km7SUgPnoLVksE/1e7in88eh+oPtc4aQ==" }, "Microsoft.Extensions.DependencyInjection": { "type": "Transitive", "resolved": "2.0.0", "contentHash": "wakg18gHYiUL1pcjjyZuYk6OvDpbSw1E7IWxm78TMepsr+gQ8W0tWzuRm0q/9RFblngwPwo15rrgZSUV51W5Iw==", "dependencies": { "Microsoft.Extensions.DependencyInjection.Abstractions": "2.0.0" } }, "Microsoft.Extensions.DependencyInjection.Abstractions": { "type": "Transitive", "resolved": "2.0.0", "contentHash": "eUdJ0Q/GfVyUJc0Jal5L1QZLceL78pvEM9wEKcHeI24KorqMDoVX+gWsMGLulQMfOwsUaPtkpQM2pFERTzSfSg==" }, "Microsoft.Extensions.DependencyModel": { "type": "Transitive", "resolved": "2.0.4", "contentHash": "jnHAeijsfJFQXdXmnYK/NhQIkgBUeth//RZZkf0ldIKC+jARbf7YxbA9uTrs/EPhuQxHXaDxVuMyscgmL+UqfA==", "dependencies": { "Microsoft.DotNet.PlatformAbstractions": "2.0.4", "Newtonsoft.Json": "9.0.1" } }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", "resolved": "2.2.0", "contentHash": "uyjY/cqomw1irT4L7lDeg4sJ36MsjHg3wKqpGrBAdzvZaxo85yMF+sAA9RIzTV92fDxuUzjqksMqA0+SNMkMgA==", "dependencies": { "System.Memory": "4.5.4" } }, "Microsoft.NET.StringTools": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "w8Ehofqte5bJoR+Fa3f6JwkwFEkGtXxqvQHGOVOSHDzgNVySvL5FSNhavbQSZ864el9c3rjdLPLAtBW8dq6fmg==" }, "Microsoft.Win32.Registry": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", "dependencies": { "System.Security.AccessControl": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "MySqlConnector": { "type": "Transitive", "resolved": "0.42.1", "contentHash": "7jS8P+XOw+vS/reuwEEGhtAKvagiOEtOsu5/46Bnuiw+DgOjAFgMSojkiVaZi9DHcatP8jgmjY67iDGVZByQng==", "dependencies": { "System.Buffers": "4.4.0", "System.Memory": "4.5.0", "System.Threading.Tasks.Extensions": "4.3.0" } }, "Newtonsoft.Json": { "type": "Transitive", "resolved": "13.0.3", "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" }, "Peachpie.App": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "LZcCc6XsKW7MBRKne6KGgwDKPyr/gJb53BJhRVfRlXWFjRecuBqLwjXLWpPvXR57o/MwvZ+iv//iC2NYucIpwQ==", "dependencies": { "Peachpie.Library": "0.9.0-CI01101", "Peachpie.Library.MsSql": "0.9.0-CI01101", "Peachpie.Library.MySql": "0.9.0-CI01101", "Peachpie.Library.Network": "0.9.0-CI01101", "Peachpie.Library.PDO": "0.9.0-CI01101", "Peachpie.Library.Scripting": "0.9.0-CI01101", "Peachpie.Library.XmlDom": "0.9.0-CI01101", "Peachpie.Runtime": "0.9.0-CI01101" } }, "Peachpie.CodeAnalysis": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "SULo4KfDz/nW3I1x1FV/oy04myBa7BkZGyV/e4OzPLsX8vb0pL8Q0nLHsoOJx0CWxBehlXU98APdVB+U0BNfDg==", "dependencies": { "Devsense.Php.Parser": "1.4.51", "Peachpie.Microsoft.CodeAnalysis": "0.6.0", "System.Collections": "4.3.0", "System.Collections.Immutable": "1.4.0", "System.Diagnostics.Debug": "4.3.0", "System.Reflection.Metadata": "1.5.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "Peachpie.Library": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "gbYwLhop0tmTn4V+QSlbTct6vu7SDFqUmoLE5wtoyKmTR9B9GNV8kSuhkugYQ6lGt/331KS/9rfm7DAdkOxFUw==", "dependencies": { "Peachpie.Runtime": "0.9.0-CI01101" } }, "Peachpie.Library.MsSql": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "y7ROu/fhHwGF6nyg6HH4ilJyPPhds8vq3mCqs5yhDf7KpqwAJ9s8dU0rRxz9XAoT1ZPu7+Te4uCETLzCGVtGuA==", "dependencies": { "Peachpie.Library": "0.9.0-CI01101", "Peachpie.Runtime": "0.9.0-CI01101", "System.Data.SqlClient": "4.4.3" } }, "Peachpie.Library.MySql": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "WeN1dTTTRR3XrMXAS48fkLCNHX5dP7iv9uFw3tjXvJBZkaQQrpiFjZ3WS+wxbgxyiqZ/skNhzpGQB828FY4coQ==", "dependencies": { "MySqlConnector": "0.42.1", "Peachpie.Library": "0.9.0-CI01101", "Peachpie.Runtime": "0.9.0-CI01101" } }, "Peachpie.Library.Network": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "Bx8GO4SahFi1gk/zvkOzYbifygQiEdXECdCnbz7OzmCbN6VB7m1eCJozYXEEAO4nIBhptICaL5RgFRi+uTKPJA==", "dependencies": { "Peachpie.Library": "0.9.0-CI01101", "Peachpie.Runtime": "0.9.0-CI01101" } }, "Peachpie.Library.PDO": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "AtQ6pVUgYCdSIQE1Txk4HD1Vv8pe0Q3thD7dc/m96lWYqUimHVb+PovOZxbC0DM2XdpthemArUAZL8l3NDHCGg==", "dependencies": { "Peachpie.Library": "0.9.0-CI01101", "Peachpie.Runtime": "0.9.0-CI01101" } }, "Peachpie.Library.Scripting": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "lm2LUVlCUrtg9+M1pFWpBdn+0GOE5SieHlA+dI910gnk3DpDhWO+Ic1hHJG0j1EkjntuuPmrZruOKobjj40slA==", "dependencies": { "Devsense.Php.Parser": "1.4.51", "Peachpie.CodeAnalysis": "0.9.0-CI01101", "Peachpie.Library": "0.9.0-CI01101", "Peachpie.Library.XmlDom": "0.9.0-CI01101", "Peachpie.Microsoft.CodeAnalysis": "0.6.0", "Peachpie.Runtime": "0.9.0-CI01101", "System.Runtime.Loader": "4.3.0" } }, "Peachpie.Library.XmlDom": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "JcABdbNABlVgF+/fPujLZwcUZguOaJknP/Jr2gP1BamVSgFHVnCV3uTP8Wmu21EoQGk6mrGD+qDNoKwNUXpKrw==", "dependencies": { "HtmlAgilityPack": "1.6.7", "Peachpie.Library": "0.9.0-CI01101", "Peachpie.Runtime": "0.9.0-CI01101", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XPath": "4.3.0", "System.Xml.XPath.XmlDocument": "4.3.0", "System.Xml.XmlDocument": "4.3.0" } }, "Peachpie.Microsoft.CodeAnalysis": { "type": "Transitive", "resolved": "0.6.0", "contentHash": "pw0Nm3V2bvhG9EN/eAI6dUGYrDjwApgQbEgjPiuLJK9iN4QyXYwn589kxhvimVWGSJHOakkDemfQFunyxOqSow==", "dependencies": { "Microsoft.DiaSymReader.Native": "1.3.3", "System.Collections.Immutable": "1.3.1", "System.Reflection.Metadata": "1.4.2", "System.Runtime.Serialization.Json": "4.0.3" } }, "Peachpie.Runtime": { "type": "Transitive", "resolved": "0.9.0-CI01101", "contentHash": "EUN0raglMAuLUxEWsRZpvxQowfZbEZ96DyeK1ZhwD/KVQpnzzO8lZrd5/yc3i5FAOupJpVm4/040xdEyqC4LzQ==", "dependencies": { "Microsoft.Extensions.DependencyInjection": "2.0.0", "Microsoft.Extensions.DependencyModel": "2.0.4", "System.Composition": "1.1.0", "System.Memory": "4.5.0", "System.Reflection.Emit.Lightweight": "4.3.0" } }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==" }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Composition": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "rLsB/X6sp4cLPPlyPVuTBQbtG2IdSdKc6tFImxopz9s5po4Og5sQ8rA7GPxpTsrQ5UXS1IxdaqFwxtse4eLolw==", "dependencies": { "System.Composition.AttributedModel": "1.1.0", "System.Composition.Convention": "1.1.0", "System.Composition.Hosting": "1.1.0", "System.Composition.Runtime": "1.1.0", "System.Composition.TypedParts": "1.1.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "S7Ybny/58VGS+5uanotm7f2k7Iv3ufdv0eDA8adZ345pE27zr+9bxhHw/rXXMVltRdoUuyB1O4YpYT1lVwkM0w==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "lqiuITNCKJ/JlXzmum0mr+1HDCJ6mN/+1C4ouXpvLKpUA+zal7EsRvfHxy+kVVPrPMaFU9dLQkBxV/GFVnJoXA==", "dependencies": { "System.Composition.AttributedModel": "1.1.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "D5M3oBOxCeHe4WVNtqKnFA3UMt53uIdUMGgustecwh7kmzE7k+Co+CFPLpQVPdyBhmB8WxicaESa41QLZ0ZlgA==", "dependencies": { "System.Composition.Runtime": "1.1.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "dLbtnVmOiD4k1/YA4LfV2nEZX4jdgizvSzvVIffOp3AXU468n5IsDbwwbCHSUmnfqoJ5unYR+hEmN1U3gBmDRg==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "1.1.0", "contentHash": "SlACsoBPQpeL8dAjQXttv9d5Y/790UmxnlP2yk1w94T2vMcHOa7i9XGUKCB81BGMWstR2FF9ZEftm8rIdhMEvg==", "dependencies": { "System.Composition.AttributedModel": "1.1.0", "System.Composition.Hosting": "1.1.0", "System.Composition.Runtime": "1.1.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==" }, "System.Data.SqlClient": { "type": "Transitive", "resolved": "4.9.0", "contentHash": "j4KJO+vC62NyUtNHz854njEqXbT8OmAa5jb1nrGfYWBOcggyYUQE0w/snXeaCjdvkSKWuUD+hfvlbN8pTrJTXg==" }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==" }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "7.0.2", "contentHash": "hYr3I9N9811e0Bjf2WNwAGGyTuAFbbTgX1RPLt/3Wbm68x3IGcX5Cl75CMmgT6WlNwLQ2tCCWfqYPpypjaf2xA==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==" }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.5.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "System.Security.Cryptography.X509Certificates": "4.3.0" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==" }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==" }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "MclTG61lsD9sYdpNz9xsKBzjsmsfCtcMZYXz/IUr2zlhaTaABonlr1ESeompTgM+Xk+IwtGYU7/voh3YWB/fWw==", "dependencies": { "System.Collections.Immutable": "7.0.0", "System.Memory": "4.5.5" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==" }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==" }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==" }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==" }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Runtime.Loader": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DHMaRn8D8YCK2GG2pw+UzNxn/OHVfaWx7OTLBD/hPegHZZgcZh3H6seWegrC4BYwsfuGrywIuT+MQs+rPqRLTQ==" }, "System.Runtime.Serialization.Json": { "type": "Transitive", "resolved": "4.0.3", "contentHash": "siAQb9mZmY7dsBtdbC0OE7W1/y4DGgrIRHTghtN40v79wAvHluBm1wzlrCauCWMyp6WVxkcTzoesjZnx5+fM9g==" }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", "dependencies": { "System.Security.Principal.Windows": "5.0.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "System.IO": "4.3.0", "System.Runtime": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==" }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==" }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.Encoding.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==" }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==" }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==" }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "+MvhNtcvIbqmhANyKu91jQnvIRVSTiaOiFNfKWwXGHG48YAb4I/TyH8spsySiPYla7gKal5ZnF3teJqZAximyQ==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "System.Xml.ReaderWriter": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==" }, "System.Xml.XmlDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==" }, "System.Xml.XPath": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "v1JQ5SETnQusqmS3RwStF7vwQ3L02imIzl++sewmt23VGygix04pEH+FCj1yWb+z4GDzKiljr1W7Wfvrx0YwgA==" }, "System.Xml.XPath.XmlDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "A/uxsWi/Ifzkmd4ArTLISMbfFs6XpRPsXZonrIqyTY70xi8t+mDtvSM5Os0RqyRDobjMBwIDHDL4NOIbkDwf7A==", "dependencies": { "System.Xml.XPath": "4.3.0", "System.Xml.XmlDocument": "4.3.0" } }, "xunit.abstractions": { "type": "Transitive", "resolved": "2.0.3", "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==" }, "xunit.analyzers": { "type": "Transitive", "resolved": "0.10.0", "contentHash": "4/IDFCJfIeg6bix9apmUtIMwvOsiwqdEexeO/R2D4GReIGPLIRODTpId/l4LRSrAJk9lEO3Zx1H0Zx6uohJDNg==" }, "xunit.assert": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "O/Oe0BS5RmSsM+LQOb041TzuPo5MdH2Rov+qXGS37X+KFG1Hxz7kopYklM5+1Y+tRGeXrOx5+Xne1RuqLFQoyQ==" }, "xunit.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "Zsj5OMU6JasNGERXZy8s72+pcheG6Q15atS5XpZXqAtULuyQiQ6XNnUsp1gyfC6WgqScqMvySiEHmHcOG6Eg0Q==", "dependencies": { "xunit.extensibility.core": "[2.4.1]", "xunit.extensibility.execution": "[2.4.1]" } }, "xunit.extensibility.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "yKZKm/8QNZnBnGZFD9SewkllHBiK0DThybQD/G4PiAmQjKtEZyHi6ET70QPU9KtSMJGRYS6Syk7EyR2EVDU4Kg==", "dependencies": { "xunit.abstractions": "2.0.3" } }, "xunit.extensibility.execution": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "7e/1jqBpcb7frLkB6XDrHCGXAbKN4Rtdb88epYxCSRQuZDRW8UtTfdTEVpdTl8s4T56e07hOBVd4G0OdCxIY2A==", "dependencies": { "xunit.extensibility.core": "[2.4.1]" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } }, "MirrorSharp.FSharp": { "type": "Project", "dependencies": { "FSharp.Compiler.Service": "[43.8.300, )", "FSharp.Core": "[8.0.300, )", "Microsoft.Build.Utilities.Core": "[17.12.6, )", "Microsoft.IO.RecyclableMemoryStream": "[2.2.0, )", "MirrorSharp.Common": "[3.0.9, )" } }, "MirrorSharp.Php": { "type": "Project", "dependencies": { "MirrorSharp.Common": "[3.0.9, )", "Newtonsoft.Json": "[13.0.3, )", "Peachpie.App": "[0.9.0-CI01101, )", "Peachpie.CodeAnalysis": "[0.9.0-CI01101, )", "System.Data.SqlClient": "[4.9.0, )" } }, "MirrorSharp.Testing": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )", "Newtonsoft.Json": "[13.0.3, )", "System.Buffers": "[4.5.1, )" } }, "MirrorSharp.VisualBasic": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.VisualBasic": "[3.3.1, )", "Microsoft.CodeAnalysis.VisualBasic.Features": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )" } } } } } ================================================ FILE: Tests.Roslyn410/Tests.Roslyn410.csproj ================================================ net7.0 false MirrorSharp.Tests.Roslyn410 MirrorSharp.Tests false VSTHRD200; RS1035 true PreserveNewest PreserveNewest ================================================ FILE: Tests.Roslyn410/packages.lock.json ================================================ { "version": 1, "dependencies": { "net7.0": { "coverlet.collector": { "type": "Direct", "requested": "[1.0.1, )", "resolved": "1.0.1", "contentHash": "RAuno8s7DBGo2IdV/1d8YSnXMd/728K3PBT5R6/kfGx1yunBZmavlaFQfhGe7Q7N2nUMkvVET+7ITn3+KSg+Uw==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.10.0, )", "resolved": "4.10.0", "contentHash": "UcAcN8FmV9Xesj9XQKqpeJxyOqofb0fsgMn97gnTeSQINrmbxMe5j2NlhHGkVl2qEZ/rXQcRcGth8K4AXdbprQ==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.10.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.10.0]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Direct", "requested": "[4.10.0, )", "resolved": "4.10.0", "contentHash": "L/cf5GyMCVxpD9AhB4E+yKYpf0bpnNghmjZpmdSFiX+amntgLspGi1itryqMWiuQHP8VGE5UkZmr2tb9dU2D+Q==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.CSharp": "[4.10.0]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.10.0]", "Microsoft.CodeAnalysis.Common": "[4.10.0]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Features": "[4.10.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.10.0]", "Microsoft.DiaSymReader": "2.0.0", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Diagnostics.EventLog": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Reflection.Metadata": "8.0.0", "System.Security.Cryptography.ProtectedData": "8.0.0", "System.Text.Encodings.Web": "8.0.0", "System.Text.Json": "8.0.0", "System.Threading.Channels": "7.0.0" } }, "Microsoft.CodeAnalysis.VisualBasic.Features": { "type": "Direct", "requested": "[4.10.0, )", "resolved": "4.10.0", "contentHash": "oRpHpTl/A7vDP0U4oARRymgyb4sl8kYKC6HK/HCm83ER8YOEEuZkoxCXT2iwjkdlzZytu14sXL2Ga1jaDDnaOA==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Features": "[4.10.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.10.0]", "Microsoft.DiaSymReader": "2.0.0", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Diagnostics.EventLog": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Reflection.Metadata": "8.0.0", "System.Security.Cryptography.ProtectedData": "8.0.0", "System.Text.Encodings.Web": "8.0.0", "System.Text.Json": "8.0.0", "System.Threading.Channels": "7.0.0" } }, "Microsoft.NET.Test.Sdk": { "type": "Direct", "requested": "[16.2.0, )", "resolved": "16.2.0", "contentHash": "56w1drIQqpMgg3IxHcfra/jXOngiD4pbl0j6TNeJMlOQGlZ8wCMlyRTvn6Crd/FgGjwKbWLurdOHNGrfzLtl6A==", "dependencies": { "Microsoft.CodeCoverage": "16.2.0", "Microsoft.TestPlatform.TestHost": "16.2.0" } }, "SourceMock": { "type": "Direct", "requested": "[0.10.0, )", "resolved": "0.10.0", "contentHash": "Dd/YMTTRZSDR34HgVEgfMoZfOTId3Ns0vehFcdLVwMuKLgMcg7/4Oj80qX112np9siR2C4vL3qfT1I9ahzxu9Q==", "dependencies": { "System.Collections.Immutable": "5.0.0" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "xunit": { "type": "Direct", "requested": "[2.4.1, )", "resolved": "2.4.1", "contentHash": "XNR3Yz9QTtec16O0aKcO6+baVNpXmOnPUxDkCY97J+8krUYxPvXT1szYYEUdKk4sB8GOI2YbAjRIOm8ZnXRfzQ==", "dependencies": { "xunit.analyzers": "0.10.0", "xunit.assert": "[2.4.1]", "xunit.core": "[2.4.1]" } }, "xunit.runner.visualstudio": { "type": "Direct", "requested": "[2.4.0, )", "resolved": "2.4.0", "contentHash": "3eq5cGXbEJkqW9nwLuXwtxy9B5gMA8i7HW4rN63AhAvy5UvEcQbZnve23wx/oPrkyg/4CbfNhxkBezS0b1oUdQ==", "dependencies": { "Microsoft.NET.Test.Sdk": "15.0.0" } }, "FSharp.Compiler.Service": { "type": "Transitive", "resolved": "43.8.300", "contentHash": "CoPjQYXXwmYkkHm+yxBHSW9IJVLpvwkKGEzXa5A6ebf8v6GfYaxZc5G+VHojDr586oezp1elFemu+A1WWH095A==", "dependencies": { "FSharp.Core": "[8.0.300]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "7.0.0", "System.Diagnostics.DiagnosticSource": "7.0.2", "System.Memory": "4.5.5", "System.Reflection.Emit": "4.7.0", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "FSharp.Core": { "type": "Transitive", "resolved": "8.0.300", "contentHash": "Jv44fV7TNglyMku89lQcA4Q6mFKLyHb2bs1Yb72nvSVc+cHplEnoZ4XQUaaTLJGUTx/iMqcrkYGtaLzkkIhpaA==" }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.14.1", "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==" }, "Microsoft.Build.Framework": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "jleteC0seumLGTmTVwob97lcwPj/dfgzL/V3g/VVcMZgo2Ic7jzdy8AYpByPDh8e3uRq0SjCl6HOFCjhy5GzRQ==", "dependencies": { "Microsoft.Win32.Registry": "5.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "Microsoft.Build.Utilities.Core": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "pU3GnHcXp8VRMGKxdJCq+tixfhFn+QwEbpqmZmc/nqFHFyuhlGwjonWZMIWcwuCv/8EHgxoOttFvna1vrN+RrA==", "dependencies": { "Microsoft.Build.Framework": "17.12.6", "Microsoft.NET.StringTools": "17.12.6", "Microsoft.Win32.Registry": "5.0.0", "System.Collections.Immutable": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0", "System.Text.Encoding.CodePages": "7.0.0" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.3.4", "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.10.0", "contentHash": "7O4+dn0fNKykPpEB1i8/5EKzwD3fuu/shdbbnnsBmdiHMaBz6telOubDFwPwLQQ/PvOAWTFIWWTyAOmWvXRD2g==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "System.Collections.Immutable": "8.0.0", "System.Reflection.Metadata": "8.0.0" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.10.0", "contentHash": "iifqKy3KvCgPABHFbFlSxjEoE+OItZGuZ191NM/TWV750m1jMypr7BtrP65ET+OK2KNVupO8S8xCtxbNqw056A==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.10.0]", "System.Collections.Immutable": "8.0.0", "System.Reflection.Metadata": "8.0.0" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.10.0", "contentHash": "s8qbD2i3zdol8QNcrCVw9URW71DUdg1UF0XCxxIaQoYbdpcKVy2DG127560psiqLEKxAEWA/DOFwL9CY2qGq1g==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.CSharp": "[4.10.0]", "Microsoft.CodeAnalysis.Common": "[4.10.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.10.0]", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Reflection.Metadata": "8.0.0", "System.Threading.Channels": "7.0.0" } }, "Microsoft.CodeAnalysis.Elfie": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "r12elUp4MRjdnRfxEP+xqVSUUfG3yIJTBEJGwbfvF5oU4m0jb9HC0gFG28V/dAkYGMkRmHVi3qvrnBLQSw9X3Q==", "dependencies": { "System.Configuration.ConfigurationManager": "4.5.0", "System.Data.DataSetExtensions": "4.5.0" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "4.10.0", "contentHash": "me9ngfonU2Kkx+uMM2IC7HLQUaC8pDnQa5LW3GRlk5mcGJ1KLWeab+2+qgr1ltScAzh41vXkkwf8RbXiWBBR1g==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.10.0]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Scripting.Common": "[4.10.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.10.0]", "Microsoft.DiaSymReader": "2.0.0", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Diagnostics.EventLog": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Reflection.Metadata": "8.0.0", "System.Security.Cryptography.ProtectedData": "8.0.0", "System.Text.Encodings.Web": "8.0.0", "System.Text.Json": "8.0.0", "System.Threading.Channels": "7.0.0" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.10.0", "contentHash": "L+IbItJyxtLcbSxRXvdJRCGMW9IgHXZvNl5VcuFMcb49nFnhqrm79y50GOukSyBccF0WlnalbjRK/Beb2aKJbw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.10.0]", "System.Collections.Immutable": "8.0.0", "System.Reflection.Metadata": "8.0.0" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.10.0", "contentHash": "rqdpLqrACQwhr7pr21OCEpmSZthdWF7TfimCH9IUt+FCXLfpqNTkgB7qAF2ypVJTT5sc+hY1IQWeDPjSyJ3REg==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.10.0]", "System.Collections.Immutable": "8.0.0", "System.Reflection.Metadata": "8.0.0" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.10.0", "contentHash": "i0dtZ531kx7DiCBAzyrvEcYpK/tZQAJDmSKIQW3kENl5wPenOkQePvYNFZRrvOGzSgK5uZVs0Y3xW/B1ZCcQFA==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.10.0]", "Microsoft.CodeAnalysis.VisualBasic": "[4.10.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.10.0]", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Reflection.Metadata": "8.0.0", "System.Threading.Channels": "7.0.0" } }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "4.10.0", "contentHash": "lSMNGNeROSbxvbgzJyQfJpLJM0BFRrSgxYs4BZuZvpL8TuyUorEYa/HCJDcclhSRhr76LGiTT5lfLu5QFoFF6A==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.10.0]", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Reflection.Metadata": "8.0.0", "System.Threading.Channels": "7.0.0" } }, "Microsoft.CodeCoverage": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "fKiUOhhMP3IN1qM2tDHPWzW4JRbriFkIPiIzKUwMWT+Q+80bycxkLLCvxmVFoeA7gvWegNbTUjaX7mL3MM9XKg==" }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "2.0.0", "contentHash": "QcZrCETsBJqy/vQpFtJc+jSXQ0K5sucQ6NUFbTNVHD4vfZZOwjZ/3sBzczkC4DityhD3AVO/+K/+9ioLs1AgRA==" }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", "resolved": "2.2.0", "contentHash": "uyjY/cqomw1irT4L7lDeg4sJ36MsjHg3wKqpGrBAdzvZaxo85yMF+sAA9RIzTV92fDxuUzjqksMqA0+SNMkMgA==" }, "Microsoft.NET.StringTools": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "w8Ehofqte5bJoR+Fa3f6JwkwFEkGtXxqvQHGOVOSHDzgNVySvL5FSNhavbQSZ864el9c3rjdLPLAtBW8dq6fmg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "RAyBf87uZ5XjRE953LlxqILpD1SqwQM6bXwxPUCAPPEy0uv12R+eKnFL7yaeLVHInMKkNNh1iD/cDOVDfSgllA==", "dependencies": { "NETStandard.Library": "1.6.0", "System.ComponentModel.EventBasedAsync": "4.0.11", "System.ComponentModel.TypeConverter": "4.1.0", "System.Diagnostics.Process": "4.1.0", "System.Diagnostics.TextWriterTraceListener": "4.0.0", "System.Diagnostics.TraceSource": "4.0.0", "System.Reflection.Metadata": "1.3.0", "System.Reflection.TypeExtensions": "4.1.0", "System.Runtime.InteropServices.RuntimeInformation": "4.0.0", "System.Runtime.Loader": "4.0.0", "System.Runtime.Serialization.Json": "4.0.2", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Threading.Thread": "4.0.0", "System.Xml.XPath.XmlDocument": "4.0.1" } }, "Microsoft.TestPlatform.TestHost": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "PogSQ40KgkZjEBdC6KBGpMtuvFFCIdoJAMmK7CAHWyTXCfN1cPN8j0TFJKh+LneSg+y0QQDP23STMF609KhHQw==", "dependencies": { "Microsoft.TestPlatform.ObjectModel": "16.2.0", "Newtonsoft.Json": "9.0.1" } }, "Microsoft.Win32.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "Microsoft.Win32.Registry": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", "dependencies": { "System.Security.AccessControl": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "NETStandard.Library": { "type": "Transitive", "resolved": "1.6.1", "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.Win32.Primitives": "4.3.0", "System.AppContext": "4.3.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Console": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.Compression.ZipFile": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Net.Http": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Net.Sockets": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Timer": "4.3.0", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XDocument": "4.3.0" } }, "Newtonsoft.Json": { "type": "Transitive", "resolved": "13.0.3", "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.AppContext": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" }, "System.Collections.NonGeneric": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==", "dependencies": { "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Collections.Specialized": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "/HKQyVP0yH1I0YtK7KJL/28snxHNH/bi+0lgk/+MbURF6ULhAE31MDI+NZDerNWu264YbxklXCCygISgm+HMug==", "dependencies": { "System.Collections.NonGeneric": "4.0.1", "System.Globalization": "4.0.11", "System.Globalization.Extensions": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.ComponentModel": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==", "dependencies": { "System.Runtime": "4.1.0" } }, "System.ComponentModel.EventBasedAsync": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "Z7SO6vvQIR84daPE4uhaNdef9CjgjDMGYkas8epUhf0U3WGuaGgZ0Mm4QuNycMdbHUY8KEdZrtgxonkAiJaAlA==", "dependencies": { "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11" } }, "System.ComponentModel.Primitives": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "sc/7eVCdxPrp3ljpgTKVaQGUXiW05phNWvtv/m2kocXqrUQvTVWKou1Edas2aDjTThLPZOxPYIGNb/HN0QjURg==", "dependencies": { "System.ComponentModel": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0" } }, "System.ComponentModel.TypeConverter": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "MnDAlaeJZy9pdB5ZdOlwdxfpI+LJQ6e0hmH7d2+y2LkiD8DRJynyDYl4Xxf3fWFm7SbEwBZh4elcfzONQLOoQw==", "dependencies": { "System.Collections": "4.0.11", "System.Collections.NonGeneric": "4.0.1", "System.Collections.Specialized": "4.0.1", "System.ComponentModel": "4.0.1", "System.ComponentModel.Primitives": "4.1.0", "System.Globalization": "4.0.11", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Composition": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "E9oO9olNNxA39J8CxQwf7ceIPm+j/B/PhYpyK9M4LhN/OLLRw6u5fNInkhVqaWueMB9iXxYqnwqwgz+W91loIA==", "dependencies": { "System.Composition.AttributedModel": "8.0.0", "System.Composition.Convention": "8.0.0", "System.Composition.Hosting": "8.0.0", "System.Composition.Runtime": "8.0.0", "System.Composition.TypedParts": "8.0.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "NyElSuvmBMYdn2iPG0n29i7Igu0bq99izOP3MAtEwskY3OP9jqsavvVmPn9lesVaj/KT/o/QkNjA43dOJTsDQw==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "UuVkc1B3vQU/LzEbWLMZ1aYVssv4rpShzf8wPEyrUqoGNqdYKREmB8bXR73heOMKkwS6ZnPz3PjGODT2MenukQ==", "dependencies": { "System.Composition.AttributedModel": "8.0.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "qwbONqoxlazxcbiohvb3t1JWZgKIKcRdXS5uEeLbo5wtuBupIbAvdC3PYTAeBCZrZeERvrtAbhYHuuS43Zr1bQ==", "dependencies": { "System.Composition.Runtime": "8.0.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "G+kRyB5/6+3ucRRQz+DF4uSHGqpkK8Q4ilVdbt4zvxpmvLVZNmSkyFAQpJLcbOyVF85aomJx0m+TGMDVlwx7ZQ==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "DsSklhuA+Dsgo3ZZrar8hjBFvq1wa1grrkNCTt+6SoX3vq0Vy+HXJnVXrU/nNH1BjlGH684A7h4hJQHZd/u5mA==", "dependencies": { "System.Composition.AttributedModel": "8.0.0", "System.Composition.Hosting": "8.0.0", "System.Composition.Runtime": "8.0.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==", "dependencies": { "System.Diagnostics.EventLog": "8.0.0", "System.Security.Cryptography.ProtectedData": "8.0.0" } }, "System.Console": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Data.DataSetExtensions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw==" }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "7.0.2", "contentHash": "hYr3I9N9811e0Bjf2WNwAGGyTuAFbbTgX1RPLt/3Wbm68x3IGcX5Cl75CMmgT6WlNwLQ2tCCWfqYPpypjaf2xA==" }, "System.Diagnostics.EventLog": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "fdYxcRjQqTTacKId/2IECojlDSFvp7LP5N78+0z/xH7v/Tuw5ZAxu23Y6PTCRinqyu2ePx+Gn1098NC6jM6d+A==" }, "System.Diagnostics.Process": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "mpVZ5bnlSs3tTeJ6jYyDJEIa6tavhAd88lxq1zbYhkkCu0Pno2+gHXcvZcoygq2d8JxW3gojXqNJMTAshduqZA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "Microsoft.Win32.Primitives": "4.0.1", "Microsoft.Win32.Registry": "4.0.0", "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.IO.FileSystem": "4.0.1", "System.IO.FileSystem.Primitives": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Handles": "4.0.1", "System.Runtime.InteropServices": "4.1.0", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "System.Threading.Thread": "4.0.0", "System.Threading.ThreadPool": "4.0.10", "runtime.native.System": "4.0.0" } }, "System.Diagnostics.TextWriterTraceListener": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "w36Dr8yKy8xP150qPANe7Td+/zOI3G62ImRcHDIEW+oUXUuTKZHd4DHmqRx5+x8RXd85v3tXd1uhNTfsr+yxjA==", "dependencies": { "System.Diagnostics.TraceSource": "4.0.0", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.TraceSource": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "runtime.native.System": "4.0.0" } }, "System.Diagnostics.Tracing": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Buffers": "4.3.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.IO.Compression": "4.3.0" } }, "System.IO.Compression.ZipFile": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", "dependencies": { "System.Buffers": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.IO.FileSystem": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==" }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Net.Sockets": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Private.DataContractSerialization": { "type": "Transitive", "resolved": "4.1.1", "contentHash": "lcqFBUaCZxPiUkA4dlSOoPZGtZsAuuElH2XHgLwGLxd7ZozWetV5yiz0qGAV2AUYOqw97MtZBjbLMN16Xz4vXA==", "dependencies": { "System.Collections": "4.0.11", "System.Collections.Concurrent": "4.0.12", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Emit.Lightweight": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1", "System.Xml.XmlSerializer": "4.0.11" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==" }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", "dependencies": { "System.Collections.Immutable": "8.0.0" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.InteropServices.RuntimeInformation": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0" } }, "System.Runtime.Loader": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "4UN78GOVU/mbDFcXkEWtetJT/sJ0yic2gGk1HSlSpWI0TDf421xnrZTDZnwNBapk1GQeYN7U1lTj/aQB1by6ow==", "dependencies": { "System.IO": "4.1.0", "System.Reflection": "4.1.0", "System.Runtime": "4.1.0" } }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Runtime.Serialization.Json": { "type": "Transitive", "resolved": "4.0.2", "contentHash": "+7DIJhnKYgCzUgcLbVTtRQb2l1M0FP549XFlFkQM5lmNiUBl44AfNbx4bz61xA8PzLtlYwfmif4JJJW7MPPnjg==", "dependencies": { "System.IO": "4.1.0", "System.Private.DataContractSerialization": "4.1.1", "System.Runtime": "4.1.0" } }, "System.Runtime.Serialization.Primitives": { "type": "Transitive", "resolved": "4.1.1", "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", "dependencies": { "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0" } }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", "dependencies": { "Microsoft.NETCore.Platforms": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Cng": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==" }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==" }, "System.Text.Encoding.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { "System.Runtime": "4.3.1" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Channels": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "qmeeYNROMsONF6ndEZcIQ+VxR4Q/TX/7uIVLJqtwIWL7dDWeh0l1UIqgo4wYyjG//5lUNhwkLDSFl+pAWO6oiA==" }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==" }, "System.Threading.Thread": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "gIdJqDXlOr5W9zeqFErLw3dsOsiShSCYtF9SEHitACycmvNvY8odf9kiKvp6V7aibc8C4HzzNBkWXjyfn7plbQ==", "dependencies": { "System.Runtime": "4.1.0" } }, "System.Threading.ThreadPool": { "type": "Transitive", "resolved": "4.0.10", "contentHash": "IMXgB5Vf/5Qw1kpoVgJMOvUO1l32aC+qC3OaIZjWJOjvcxuxNWOK2ZTWWYXfij22NHxT2j1yWX5vlAeQWld9vA==", "dependencies": { "System.Runtime": "4.1.0", "System.Runtime.Handles": "4.0.1" } }, "System.Threading.Timer": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Xml.ReaderWriter": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Tasks.Extensions": "4.3.0" } }, "System.Xml.XDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "System.Xml.XmlDocument": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "2eZu6IP+etFVBBFUFzw2w6J21DqIN5eL9Y8r8JfJWUmV28Z5P0SNU01oCisVHQgHsDhHPnmq2s1hJrJCFZWloQ==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Text.Encoding": "4.0.11", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11" } }, "System.Xml.XmlSerializer": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "FrazwwqfIXTfq23mfv4zH+BjqkSFNaNFBtjzu3I9NRmG8EELYyrv/fJnttCIwRMFRR/YKXF1hmsMmMEnl55HGw==", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit": "4.0.1", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1" } }, "System.Xml.XPath": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11" } }, "System.Xml.XPath.XmlDocument": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "Zm2BdeanuncYs3NhCj4c9e1x3EXFzFBVv2wPEc/Dj4ZbI9R8ecLSR5frAsx4zJCPBtKQreQ7Q/KxJEohJZbfzA==", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XPath": "4.0.1", "System.Xml.XmlDocument": "4.0.1" } }, "xunit.abstractions": { "type": "Transitive", "resolved": "2.0.3", "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==" }, "xunit.analyzers": { "type": "Transitive", "resolved": "0.10.0", "contentHash": "4/IDFCJfIeg6bix9apmUtIMwvOsiwqdEexeO/R2D4GReIGPLIRODTpId/l4LRSrAJk9lEO3Zx1H0Zx6uohJDNg==" }, "xunit.assert": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "O/Oe0BS5RmSsM+LQOb041TzuPo5MdH2Rov+qXGS37X+KFG1Hxz7kopYklM5+1Y+tRGeXrOx5+Xne1RuqLFQoyQ==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "xunit.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "Zsj5OMU6JasNGERXZy8s72+pcheG6Q15atS5XpZXqAtULuyQiQ6XNnUsp1gyfC6WgqScqMvySiEHmHcOG6Eg0Q==", "dependencies": { "xunit.extensibility.core": "[2.4.1]", "xunit.extensibility.execution": "[2.4.1]" } }, "xunit.extensibility.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "yKZKm/8QNZnBnGZFD9SewkllHBiK0DThybQD/G4PiAmQjKtEZyHi6ET70QPU9KtSMJGRYS6Syk7EyR2EVDU4Kg==", "dependencies": { "NETStandard.Library": "1.6.1", "xunit.abstractions": "2.0.3" } }, "xunit.extensibility.execution": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "7e/1jqBpcb7frLkB6XDrHCGXAbKN4Rtdb88epYxCSRQuZDRW8UtTfdTEVpdTl8s4T56e07hOBVd4G0OdCxIY2A==", "dependencies": { "NETStandard.Library": "1.6.1", "xunit.extensibility.core": "[2.4.1]" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } }, "MirrorSharp.FSharp": { "type": "Project", "dependencies": { "FSharp.Compiler.Service": "[43.8.300, )", "FSharp.Core": "[8.0.300, )", "Microsoft.Build.Utilities.Core": "[17.12.6, )", "Microsoft.IO.RecyclableMemoryStream": "[2.2.0, )", "MirrorSharp.Common": "[3.0.9, )" } }, "MirrorSharp.Testing": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )", "Newtonsoft.Json": "[13.0.3, )", "System.Buffers": "[4.5.1, )" } }, "MirrorSharp.VisualBasic": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.VisualBasic": "[3.3.1, )", "Microsoft.CodeAnalysis.VisualBasic.Features": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )" } } } } } ================================================ FILE: Tests.Roslyn411/Tests.Roslyn411.csproj ================================================ net7.0 false MirrorSharp.Tests.Roslyn411 MirrorSharp.Tests false VSTHRD200; RS1035 true PreserveNewest PreserveNewest ================================================ FILE: Tests.Roslyn411/packages.lock.json ================================================ { "version": 1, "dependencies": { "net7.0": { "coverlet.collector": { "type": "Direct", "requested": "[1.0.1, )", "resolved": "1.0.1", "contentHash": "RAuno8s7DBGo2IdV/1d8YSnXMd/728K3PBT5R6/kfGx1yunBZmavlaFQfhGe7Q7N2nUMkvVET+7ITn3+KSg+Uw==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.11.0, )", "resolved": "4.11.0", "contentHash": "liYhSvQO+cFgshRdrL1CVXwrTd7oP5PnYyE6hfwosv9zmnxszFIgI3ysWG9wXt3iLL1mvdWhtciuiQqZAgTbZQ==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.11.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.11.0]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Direct", "requested": "[4.11.0, )", "resolved": "4.11.0", "contentHash": "R7zl0ONqKgy0qlmrd52h5x3Dn6m0/UsijIvBwGt5jQBF0bZhb4TgNqIdoAawhzRXrRMVyIKqLfSrcpmA3Pjbaw==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.CSharp": "[4.11.0]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.11.0]", "Microsoft.CodeAnalysis.Common": "[4.11.0]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Features": "[4.11.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.11.0]", "Microsoft.DiaSymReader": "2.0.0", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Diagnostics.EventLog": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Reflection.Metadata": "8.0.0", "System.Security.Cryptography.ProtectedData": "8.0.0", "System.Text.Encodings.Web": "8.0.0", "System.Text.Json": "8.0.0", "System.Threading.Channels": "7.0.0" } }, "Microsoft.CodeAnalysis.VisualBasic.Features": { "type": "Direct", "requested": "[4.11.0, )", "resolved": "4.11.0", "contentHash": "ANUQAb+RDiGXIn3hBEUgIc8Mq21s89YoC5kbYTp4+8ytAAroHgdDkKUMuuLw7MxXAOuPBN4itugiR9FVRzds0g==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Features": "[4.11.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.11.0]", "Microsoft.DiaSymReader": "2.0.0", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Diagnostics.EventLog": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Reflection.Metadata": "8.0.0", "System.Security.Cryptography.ProtectedData": "8.0.0", "System.Text.Encodings.Web": "8.0.0", "System.Text.Json": "8.0.0", "System.Threading.Channels": "7.0.0" } }, "Microsoft.NET.Test.Sdk": { "type": "Direct", "requested": "[16.2.0, )", "resolved": "16.2.0", "contentHash": "56w1drIQqpMgg3IxHcfra/jXOngiD4pbl0j6TNeJMlOQGlZ8wCMlyRTvn6Crd/FgGjwKbWLurdOHNGrfzLtl6A==", "dependencies": { "Microsoft.CodeCoverage": "16.2.0", "Microsoft.TestPlatform.TestHost": "16.2.0" } }, "SourceMock": { "type": "Direct", "requested": "[0.10.0, )", "resolved": "0.10.0", "contentHash": "Dd/YMTTRZSDR34HgVEgfMoZfOTId3Ns0vehFcdLVwMuKLgMcg7/4Oj80qX112np9siR2C4vL3qfT1I9ahzxu9Q==", "dependencies": { "System.Collections.Immutable": "5.0.0" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "xunit": { "type": "Direct", "requested": "[2.4.1, )", "resolved": "2.4.1", "contentHash": "XNR3Yz9QTtec16O0aKcO6+baVNpXmOnPUxDkCY97J+8krUYxPvXT1szYYEUdKk4sB8GOI2YbAjRIOm8ZnXRfzQ==", "dependencies": { "xunit.analyzers": "0.10.0", "xunit.assert": "[2.4.1]", "xunit.core": "[2.4.1]" } }, "xunit.runner.visualstudio": { "type": "Direct", "requested": "[2.4.0, )", "resolved": "2.4.0", "contentHash": "3eq5cGXbEJkqW9nwLuXwtxy9B5gMA8i7HW4rN63AhAvy5UvEcQbZnve23wx/oPrkyg/4CbfNhxkBezS0b1oUdQ==", "dependencies": { "Microsoft.NET.Test.Sdk": "15.0.0" } }, "FSharp.Compiler.Service": { "type": "Transitive", "resolved": "43.8.300", "contentHash": "CoPjQYXXwmYkkHm+yxBHSW9IJVLpvwkKGEzXa5A6ebf8v6GfYaxZc5G+VHojDr586oezp1elFemu+A1WWH095A==", "dependencies": { "FSharp.Core": "[8.0.300]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "7.0.0", "System.Diagnostics.DiagnosticSource": "7.0.2", "System.Memory": "4.5.5", "System.Reflection.Emit": "4.7.0", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "FSharp.Core": { "type": "Transitive", "resolved": "8.0.300", "contentHash": "Jv44fV7TNglyMku89lQcA4Q6mFKLyHb2bs1Yb72nvSVc+cHplEnoZ4XQUaaTLJGUTx/iMqcrkYGtaLzkkIhpaA==" }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.14.1", "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==" }, "Microsoft.Build.Framework": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "jleteC0seumLGTmTVwob97lcwPj/dfgzL/V3g/VVcMZgo2Ic7jzdy8AYpByPDh8e3uRq0SjCl6HOFCjhy5GzRQ==", "dependencies": { "Microsoft.Win32.Registry": "5.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "Microsoft.Build.Utilities.Core": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "pU3GnHcXp8VRMGKxdJCq+tixfhFn+QwEbpqmZmc/nqFHFyuhlGwjonWZMIWcwuCv/8EHgxoOttFvna1vrN+RrA==", "dependencies": { "Microsoft.Build.Framework": "17.12.6", "Microsoft.NET.StringTools": "17.12.6", "Microsoft.Win32.Registry": "5.0.0", "System.Collections.Immutable": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0", "System.Text.Encoding.CodePages": "7.0.0" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.3.4", "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.11.0", "contentHash": "djf8ujmqYImFgB04UGtcsEhHrzVqzHowS+EEl/Yunc5LdrYrZhGBWUTXoCF0NzYXJxtfuD+UVQarWpvrNc94Qg==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "System.Collections.Immutable": "8.0.0", "System.Reflection.Metadata": "8.0.0" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.11.0", "contentHash": "6XYi2EusI8JT4y2l/F3VVVS+ISoIX9nqHsZRaG6W5aFeJ5BEuBosHfT/ABb73FN0RZ1Z3cj2j7cL28SToJPXOw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.11.0]", "System.Collections.Immutable": "8.0.0", "System.Reflection.Metadata": "8.0.0" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.11.0", "contentHash": "/oRJPIMvzOfiunIegSF6FEa4VvBAUSXlbLDKxyzXuOZN9nLHg3fHuX6Mr9JZLNIupbe2xqQZEmfsPxgB01vCmg==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.CSharp": "[4.11.0]", "Microsoft.CodeAnalysis.Common": "[4.11.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.11.0]", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Reflection.Metadata": "8.0.0", "System.Threading.Channels": "7.0.0" } }, "Microsoft.CodeAnalysis.Elfie": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "r12elUp4MRjdnRfxEP+xqVSUUfG3yIJTBEJGwbfvF5oU4m0jb9HC0gFG28V/dAkYGMkRmHVi3qvrnBLQSw9X3Q==", "dependencies": { "System.Configuration.ConfigurationManager": "4.5.0", "System.Data.DataSetExtensions": "4.5.0" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "4.11.0", "contentHash": "9NHLy1xke8/HvxupBJlvZB0PT8TYQA1jp7SlwO9I8a3L3pt/FUsziR6ePCe7W0T5A10j/C4WmS+GQJytuCgU4g==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.11.0]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Scripting.Common": "[4.11.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.11.0]", "Microsoft.DiaSymReader": "2.0.0", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Diagnostics.EventLog": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Reflection.Metadata": "8.0.0", "System.Security.Cryptography.ProtectedData": "8.0.0", "System.Text.Encodings.Web": "8.0.0", "System.Text.Json": "8.0.0", "System.Threading.Channels": "7.0.0" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.11.0", "contentHash": "UHZIAKQcLB00N7AvMoyEYLw8qvFmGcKffEm/M2dEqYz2TWUtQW2j0+nGglbt9VwOId6TrDZGQlGjX90VNFak/w==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.11.0]", "System.Collections.Immutable": "8.0.0", "System.Reflection.Metadata": "8.0.0" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.11.0", "contentHash": "1ypssIzZvsDtzyN8tFqZdKS8cl7MAQQ6eBjHGCJ9paLNlmnBd2kCo1GRr8kO0yWaFN/Io2JXaTeeHRDZLiKKyw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.11.0]", "System.Collections.Immutable": "8.0.0", "System.Reflection.Metadata": "8.0.0" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.11.0", "contentHash": "mXpuVE6TW+YbXbErkNFCy0iH5OY3HOva+CUpGxOJcLXol9/vevigR1FtC9lOl7fFB55r+T+lG/WAXd5nLsiDGg==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.11.0]", "Microsoft.CodeAnalysis.VisualBasic": "[4.11.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.11.0]", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Reflection.Metadata": "8.0.0", "System.Threading.Channels": "7.0.0" } }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "4.11.0", "contentHash": "UtwEt42V7/LnvAcschSlmUXRLEj0poX1H7QeFbY5bezcS+tJBCssAq8C7GfisgIA0qZPo2xzOrwKGBbg51CetA==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "Microsoft.CodeAnalysis.Common": "[4.11.0]", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Reflection.Metadata": "8.0.0", "System.Threading.Channels": "7.0.0" } }, "Microsoft.CodeCoverage": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "fKiUOhhMP3IN1qM2tDHPWzW4JRbriFkIPiIzKUwMWT+Q+80bycxkLLCvxmVFoeA7gvWegNbTUjaX7mL3MM9XKg==" }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "2.0.0", "contentHash": "QcZrCETsBJqy/vQpFtJc+jSXQ0K5sucQ6NUFbTNVHD4vfZZOwjZ/3sBzczkC4DityhD3AVO/+K/+9ioLs1AgRA==" }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", "resolved": "2.2.0", "contentHash": "uyjY/cqomw1irT4L7lDeg4sJ36MsjHg3wKqpGrBAdzvZaxo85yMF+sAA9RIzTV92fDxuUzjqksMqA0+SNMkMgA==" }, "Microsoft.NET.StringTools": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "w8Ehofqte5bJoR+Fa3f6JwkwFEkGtXxqvQHGOVOSHDzgNVySvL5FSNhavbQSZ864el9c3rjdLPLAtBW8dq6fmg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "RAyBf87uZ5XjRE953LlxqILpD1SqwQM6bXwxPUCAPPEy0uv12R+eKnFL7yaeLVHInMKkNNh1iD/cDOVDfSgllA==", "dependencies": { "NETStandard.Library": "1.6.0", "System.ComponentModel.EventBasedAsync": "4.0.11", "System.ComponentModel.TypeConverter": "4.1.0", "System.Diagnostics.Process": "4.1.0", "System.Diagnostics.TextWriterTraceListener": "4.0.0", "System.Diagnostics.TraceSource": "4.0.0", "System.Reflection.Metadata": "1.3.0", "System.Reflection.TypeExtensions": "4.1.0", "System.Runtime.InteropServices.RuntimeInformation": "4.0.0", "System.Runtime.Loader": "4.0.0", "System.Runtime.Serialization.Json": "4.0.2", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Threading.Thread": "4.0.0", "System.Xml.XPath.XmlDocument": "4.0.1" } }, "Microsoft.TestPlatform.TestHost": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "PogSQ40KgkZjEBdC6KBGpMtuvFFCIdoJAMmK7CAHWyTXCfN1cPN8j0TFJKh+LneSg+y0QQDP23STMF609KhHQw==", "dependencies": { "Microsoft.TestPlatform.ObjectModel": "16.2.0", "Newtonsoft.Json": "9.0.1" } }, "Microsoft.Win32.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "Microsoft.Win32.Registry": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", "dependencies": { "System.Security.AccessControl": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "NETStandard.Library": { "type": "Transitive", "resolved": "1.6.1", "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.Win32.Primitives": "4.3.0", "System.AppContext": "4.3.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Console": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.Compression.ZipFile": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Net.Http": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Net.Sockets": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Timer": "4.3.0", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XDocument": "4.3.0" } }, "Newtonsoft.Json": { "type": "Transitive", "resolved": "13.0.3", "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.AppContext": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" }, "System.Collections.NonGeneric": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==", "dependencies": { "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Collections.Specialized": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "/HKQyVP0yH1I0YtK7KJL/28snxHNH/bi+0lgk/+MbURF6ULhAE31MDI+NZDerNWu264YbxklXCCygISgm+HMug==", "dependencies": { "System.Collections.NonGeneric": "4.0.1", "System.Globalization": "4.0.11", "System.Globalization.Extensions": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.ComponentModel": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==", "dependencies": { "System.Runtime": "4.1.0" } }, "System.ComponentModel.EventBasedAsync": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "Z7SO6vvQIR84daPE4uhaNdef9CjgjDMGYkas8epUhf0U3WGuaGgZ0Mm4QuNycMdbHUY8KEdZrtgxonkAiJaAlA==", "dependencies": { "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11" } }, "System.ComponentModel.Primitives": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "sc/7eVCdxPrp3ljpgTKVaQGUXiW05phNWvtv/m2kocXqrUQvTVWKou1Edas2aDjTThLPZOxPYIGNb/HN0QjURg==", "dependencies": { "System.ComponentModel": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0" } }, "System.ComponentModel.TypeConverter": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "MnDAlaeJZy9pdB5ZdOlwdxfpI+LJQ6e0hmH7d2+y2LkiD8DRJynyDYl4Xxf3fWFm7SbEwBZh4elcfzONQLOoQw==", "dependencies": { "System.Collections": "4.0.11", "System.Collections.NonGeneric": "4.0.1", "System.Collections.Specialized": "4.0.1", "System.ComponentModel": "4.0.1", "System.ComponentModel.Primitives": "4.1.0", "System.Globalization": "4.0.11", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Composition": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "E9oO9olNNxA39J8CxQwf7ceIPm+j/B/PhYpyK9M4LhN/OLLRw6u5fNInkhVqaWueMB9iXxYqnwqwgz+W91loIA==", "dependencies": { "System.Composition.AttributedModel": "8.0.0", "System.Composition.Convention": "8.0.0", "System.Composition.Hosting": "8.0.0", "System.Composition.Runtime": "8.0.0", "System.Composition.TypedParts": "8.0.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "NyElSuvmBMYdn2iPG0n29i7Igu0bq99izOP3MAtEwskY3OP9jqsavvVmPn9lesVaj/KT/o/QkNjA43dOJTsDQw==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "UuVkc1B3vQU/LzEbWLMZ1aYVssv4rpShzf8wPEyrUqoGNqdYKREmB8bXR73heOMKkwS6ZnPz3PjGODT2MenukQ==", "dependencies": { "System.Composition.AttributedModel": "8.0.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "qwbONqoxlazxcbiohvb3t1JWZgKIKcRdXS5uEeLbo5wtuBupIbAvdC3PYTAeBCZrZeERvrtAbhYHuuS43Zr1bQ==", "dependencies": { "System.Composition.Runtime": "8.0.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "G+kRyB5/6+3ucRRQz+DF4uSHGqpkK8Q4ilVdbt4zvxpmvLVZNmSkyFAQpJLcbOyVF85aomJx0m+TGMDVlwx7ZQ==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "DsSklhuA+Dsgo3ZZrar8hjBFvq1wa1grrkNCTt+6SoX3vq0Vy+HXJnVXrU/nNH1BjlGH684A7h4hJQHZd/u5mA==", "dependencies": { "System.Composition.AttributedModel": "8.0.0", "System.Composition.Hosting": "8.0.0", "System.Composition.Runtime": "8.0.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==", "dependencies": { "System.Diagnostics.EventLog": "8.0.0", "System.Security.Cryptography.ProtectedData": "8.0.0" } }, "System.Console": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Data.DataSetExtensions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw==" }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "7.0.2", "contentHash": "hYr3I9N9811e0Bjf2WNwAGGyTuAFbbTgX1RPLt/3Wbm68x3IGcX5Cl75CMmgT6WlNwLQ2tCCWfqYPpypjaf2xA==" }, "System.Diagnostics.EventLog": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "fdYxcRjQqTTacKId/2IECojlDSFvp7LP5N78+0z/xH7v/Tuw5ZAxu23Y6PTCRinqyu2ePx+Gn1098NC6jM6d+A==" }, "System.Diagnostics.Process": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "mpVZ5bnlSs3tTeJ6jYyDJEIa6tavhAd88lxq1zbYhkkCu0Pno2+gHXcvZcoygq2d8JxW3gojXqNJMTAshduqZA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "Microsoft.Win32.Primitives": "4.0.1", "Microsoft.Win32.Registry": "4.0.0", "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.IO.FileSystem": "4.0.1", "System.IO.FileSystem.Primitives": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Handles": "4.0.1", "System.Runtime.InteropServices": "4.1.0", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "System.Threading.Thread": "4.0.0", "System.Threading.ThreadPool": "4.0.10", "runtime.native.System": "4.0.0" } }, "System.Diagnostics.TextWriterTraceListener": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "w36Dr8yKy8xP150qPANe7Td+/zOI3G62ImRcHDIEW+oUXUuTKZHd4DHmqRx5+x8RXd85v3tXd1uhNTfsr+yxjA==", "dependencies": { "System.Diagnostics.TraceSource": "4.0.0", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.TraceSource": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "runtime.native.System": "4.0.0" } }, "System.Diagnostics.Tracing": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Buffers": "4.3.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.IO.Compression": "4.3.0" } }, "System.IO.Compression.ZipFile": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", "dependencies": { "System.Buffers": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.IO.FileSystem": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==" }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Net.Sockets": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Private.DataContractSerialization": { "type": "Transitive", "resolved": "4.1.1", "contentHash": "lcqFBUaCZxPiUkA4dlSOoPZGtZsAuuElH2XHgLwGLxd7ZozWetV5yiz0qGAV2AUYOqw97MtZBjbLMN16Xz4vXA==", "dependencies": { "System.Collections": "4.0.11", "System.Collections.Concurrent": "4.0.12", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Emit.Lightweight": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1", "System.Xml.XmlSerializer": "4.0.11" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==" }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", "dependencies": { "System.Collections.Immutable": "8.0.0" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.InteropServices.RuntimeInformation": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0" } }, "System.Runtime.Loader": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "4UN78GOVU/mbDFcXkEWtetJT/sJ0yic2gGk1HSlSpWI0TDf421xnrZTDZnwNBapk1GQeYN7U1lTj/aQB1by6ow==", "dependencies": { "System.IO": "4.1.0", "System.Reflection": "4.1.0", "System.Runtime": "4.1.0" } }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Runtime.Serialization.Json": { "type": "Transitive", "resolved": "4.0.2", "contentHash": "+7DIJhnKYgCzUgcLbVTtRQb2l1M0FP549XFlFkQM5lmNiUBl44AfNbx4bz61xA8PzLtlYwfmif4JJJW7MPPnjg==", "dependencies": { "System.IO": "4.1.0", "System.Private.DataContractSerialization": "4.1.1", "System.Runtime": "4.1.0" } }, "System.Runtime.Serialization.Primitives": { "type": "Transitive", "resolved": "4.1.1", "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", "dependencies": { "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0" } }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", "dependencies": { "Microsoft.NETCore.Platforms": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Cng": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==" }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==" }, "System.Text.Encoding.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { "System.Runtime": "4.3.1" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Channels": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "qmeeYNROMsONF6ndEZcIQ+VxR4Q/TX/7uIVLJqtwIWL7dDWeh0l1UIqgo4wYyjG//5lUNhwkLDSFl+pAWO6oiA==" }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==" }, "System.Threading.Thread": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "gIdJqDXlOr5W9zeqFErLw3dsOsiShSCYtF9SEHitACycmvNvY8odf9kiKvp6V7aibc8C4HzzNBkWXjyfn7plbQ==", "dependencies": { "System.Runtime": "4.1.0" } }, "System.Threading.ThreadPool": { "type": "Transitive", "resolved": "4.0.10", "contentHash": "IMXgB5Vf/5Qw1kpoVgJMOvUO1l32aC+qC3OaIZjWJOjvcxuxNWOK2ZTWWYXfij22NHxT2j1yWX5vlAeQWld9vA==", "dependencies": { "System.Runtime": "4.1.0", "System.Runtime.Handles": "4.0.1" } }, "System.Threading.Timer": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Xml.ReaderWriter": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Tasks.Extensions": "4.3.0" } }, "System.Xml.XDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "System.Xml.XmlDocument": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "2eZu6IP+etFVBBFUFzw2w6J21DqIN5eL9Y8r8JfJWUmV28Z5P0SNU01oCisVHQgHsDhHPnmq2s1hJrJCFZWloQ==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Text.Encoding": "4.0.11", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11" } }, "System.Xml.XmlSerializer": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "FrazwwqfIXTfq23mfv4zH+BjqkSFNaNFBtjzu3I9NRmG8EELYyrv/fJnttCIwRMFRR/YKXF1hmsMmMEnl55HGw==", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit": "4.0.1", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1" } }, "System.Xml.XPath": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11" } }, "System.Xml.XPath.XmlDocument": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "Zm2BdeanuncYs3NhCj4c9e1x3EXFzFBVv2wPEc/Dj4ZbI9R8ecLSR5frAsx4zJCPBtKQreQ7Q/KxJEohJZbfzA==", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XPath": "4.0.1", "System.Xml.XmlDocument": "4.0.1" } }, "xunit.abstractions": { "type": "Transitive", "resolved": "2.0.3", "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==" }, "xunit.analyzers": { "type": "Transitive", "resolved": "0.10.0", "contentHash": "4/IDFCJfIeg6bix9apmUtIMwvOsiwqdEexeO/R2D4GReIGPLIRODTpId/l4LRSrAJk9lEO3Zx1H0Zx6uohJDNg==" }, "xunit.assert": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "O/Oe0BS5RmSsM+LQOb041TzuPo5MdH2Rov+qXGS37X+KFG1Hxz7kopYklM5+1Y+tRGeXrOx5+Xne1RuqLFQoyQ==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "xunit.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "Zsj5OMU6JasNGERXZy8s72+pcheG6Q15atS5XpZXqAtULuyQiQ6XNnUsp1gyfC6WgqScqMvySiEHmHcOG6Eg0Q==", "dependencies": { "xunit.extensibility.core": "[2.4.1]", "xunit.extensibility.execution": "[2.4.1]" } }, "xunit.extensibility.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "yKZKm/8QNZnBnGZFD9SewkllHBiK0DThybQD/G4PiAmQjKtEZyHi6ET70QPU9KtSMJGRYS6Syk7EyR2EVDU4Kg==", "dependencies": { "NETStandard.Library": "1.6.1", "xunit.abstractions": "2.0.3" } }, "xunit.extensibility.execution": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "7e/1jqBpcb7frLkB6XDrHCGXAbKN4Rtdb88epYxCSRQuZDRW8UtTfdTEVpdTl8s4T56e07hOBVd4G0OdCxIY2A==", "dependencies": { "NETStandard.Library": "1.6.1", "xunit.extensibility.core": "[2.4.1]" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } }, "MirrorSharp.FSharp": { "type": "Project", "dependencies": { "FSharp.Compiler.Service": "[43.8.300, )", "FSharp.Core": "[8.0.300, )", "Microsoft.Build.Utilities.Core": "[17.12.6, )", "Microsoft.IO.RecyclableMemoryStream": "[2.2.0, )", "MirrorSharp.Common": "[3.0.9, )" } }, "MirrorSharp.Testing": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )", "Newtonsoft.Json": "[13.0.3, )", "System.Buffers": "[4.5.1, )" } }, "MirrorSharp.VisualBasic": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.VisualBasic": "[3.3.1, )", "Microsoft.CodeAnalysis.VisualBasic.Features": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )" } } } } } ================================================ FILE: Tests.Roslyn44/Tests.Roslyn44.csproj ================================================ netcoreapp3.1 false MirrorSharp.Tests.Roslyn44 MirrorSharp.Tests false VSTHRD200 PreserveNewest PreserveNewest ================================================ FILE: Tests.Roslyn44/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETCoreApp,Version=v3.1": { "coverlet.collector": { "type": "Direct", "requested": "[1.0.1, )", "resolved": "1.0.1", "contentHash": "RAuno8s7DBGo2IdV/1d8YSnXMd/728K3PBT5R6/kfGx1yunBZmavlaFQfhGe7Q7N2nUMkvVET+7ITn3+KSg+Uw==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.4.0, )", "resolved": "4.4.0", "contentHash": "mXJYgxqyjIy6Zd+1pFMkl0CtIY4coLFAzidr4RGeWW0tjB8nEWpye7h6PtoavRJa6j5KeGXZsqYGvMwqI8dx6Q==", "dependencies": { "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.4.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.4.0]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Direct", "requested": "[4.4.0, )", "resolved": "4.4.0", "contentHash": "Un4XeiWD8Xo4A/Q6Wrkrt9UCas6EaP/ZfQAHXNjde5ULkvliWzvy0/ZlXzlPo6L/Xoon1BWOFMprIQWCjuLq9A==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.CSharp": "[4.4.0]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.4.0]", "Microsoft.CodeAnalysis.Common": "[4.4.0]", "Microsoft.CodeAnalysis.Features": "[4.4.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.4.0]" } }, "Microsoft.CodeAnalysis.VisualBasic.Features": { "type": "Direct", "requested": "[4.4.0, )", "resolved": "4.4.0", "contentHash": "4/qjzH0BG3CnQxKvAL3wWE0eFj9hZnlus7P0NIYltWQfm9ytHrRncgUd4EpcSp+8+x7zlrrxnZiIXSl5bilvZQ==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.4.0]", "Microsoft.CodeAnalysis.Features": "[4.4.0]", "Microsoft.CodeAnalysis.VisualBasic": "[4.4.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.4.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.4.0]" } }, "Microsoft.NET.Test.Sdk": { "type": "Direct", "requested": "[16.2.0, )", "resolved": "16.2.0", "contentHash": "56w1drIQqpMgg3IxHcfra/jXOngiD4pbl0j6TNeJMlOQGlZ8wCMlyRTvn6Crd/FgGjwKbWLurdOHNGrfzLtl6A==", "dependencies": { "Microsoft.CodeCoverage": "16.2.0", "Microsoft.TestPlatform.TestHost": "16.2.0" } }, "SourceMock": { "type": "Direct", "requested": "[0.10.0, )", "resolved": "0.10.0", "contentHash": "Dd/YMTTRZSDR34HgVEgfMoZfOTId3Ns0vehFcdLVwMuKLgMcg7/4Oj80qX112np9siR2C4vL3qfT1I9ahzxu9Q==", "dependencies": { "System.Collections.Immutable": "5.0.0" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "xunit": { "type": "Direct", "requested": "[2.4.1, )", "resolved": "2.4.1", "contentHash": "XNR3Yz9QTtec16O0aKcO6+baVNpXmOnPUxDkCY97J+8krUYxPvXT1szYYEUdKk4sB8GOI2YbAjRIOm8ZnXRfzQ==", "dependencies": { "xunit.analyzers": "0.10.0", "xunit.assert": "[2.4.1]", "xunit.core": "[2.4.1]" } }, "xunit.runner.visualstudio": { "type": "Direct", "requested": "[2.4.0, )", "resolved": "2.4.0", "contentHash": "3eq5cGXbEJkqW9nwLuXwtxy9B5gMA8i7HW4rN63AhAvy5UvEcQbZnve23wx/oPrkyg/4CbfNhxkBezS0b1oUdQ==", "dependencies": { "Microsoft.NET.Test.Sdk": "15.0.0" } }, "FSharp.Compiler.Service": { "type": "Transitive", "resolved": "43.8.300", "contentHash": "CoPjQYXXwmYkkHm+yxBHSW9IJVLpvwkKGEzXa5A6ebf8v6GfYaxZc5G+VHojDr586oezp1elFemu+A1WWH095A==", "dependencies": { "FSharp.Core": "[8.0.300]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "7.0.0", "System.Diagnostics.DiagnosticSource": "7.0.2", "System.Memory": "4.5.5", "System.Reflection.Emit": "4.7.0", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "FSharp.Core": { "type": "Transitive", "resolved": "8.0.300", "contentHash": "Jv44fV7TNglyMku89lQcA4Q6mFKLyHb2bs1Yb72nvSVc+cHplEnoZ4XQUaaTLJGUTx/iMqcrkYGtaLzkkIhpaA==" }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.14.1", "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==" }, "Microsoft.Build.Framework": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "jleteC0seumLGTmTVwob97lcwPj/dfgzL/V3g/VVcMZgo2Ic7jzdy8AYpByPDh8e3uRq0SjCl6HOFCjhy5GzRQ==", "dependencies": { "Microsoft.Win32.Registry": "5.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "Microsoft.Build.Utilities.Core": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "pU3GnHcXp8VRMGKxdJCq+tixfhFn+QwEbpqmZmc/nqFHFyuhlGwjonWZMIWcwuCv/8EHgxoOttFvna1vrN+RrA==", "dependencies": { "Microsoft.Build.Framework": "17.12.6", "Microsoft.NET.StringTools": "17.12.6", "Microsoft.Win32.Registry": "5.0.0", "System.Collections.Immutable": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0", "System.Text.Encoding.CodePages": "7.0.0" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.3.3", "contentHash": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "JfHupS/B7Jb5MZoYkFFABn3mux0wQgxi2D8F/rJYZeRBK2ZOyk7TjQ2Kq9rh6W/DCh0KNbbSbn5qoFar+ueHqw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.3", "System.Collections.Immutable": "6.0.0", "System.Memory": "4.5.5", "System.Reflection.Metadata": "5.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "6.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "eD2w0xHRoaqK07hjlOKGR9eLNy3nimiGNeCClNax1NDgS/+DBtBqCjXelOa+TNy99kIB3nHhUqDmr46nDXy/RQ==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.4.0]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "ADmI2jcwJP9GgBsVx2l0Bo0v3Hn4hHBg1uJ5zHd230mkO8rUJBLZu2h3tCbpwJMkpAIRtrxuZDD5uNfiyz0Q5Q==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.CSharp": "[4.4.0]", "Microsoft.CodeAnalysis.Common": "[4.4.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.4.0]" } }, "Microsoft.CodeAnalysis.Elfie": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "r12elUp4MRjdnRfxEP+xqVSUUfG3yIJTBEJGwbfvF5oU4m0jb9HC0gFG28V/dAkYGMkRmHVi3qvrnBLQSw9X3Q==", "dependencies": { "System.Configuration.ConfigurationManager": "4.5.0", "System.Data.DataSetExtensions": "4.5.0" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "0LEXWpaDlZMl5lOnM872FuBmcDD99qKp4QmmFsMpJjnq7f21KuNchdyuSdh9pdpibl2JfdMWrvA56y5dKc6EPQ==", "dependencies": { "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Common": "[4.4.0]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Scripting.Common": "[4.4.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.4.0]", "Microsoft.DiaSymReader": "1.4.0", "System.Text.Json": "6.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "RkAwCFJ8LfN7TfbWDejm50nucPxVoG/vDh0qVIoGx1U2FZhaBct72U4lGIACLuYsa0dIlC7Y0ivBemfDHnqWmA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.4.0]" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "+GsWdmbKcjJ9ggduM6+ZI4pMI/2doX+BLbQNEQcF2oytpwzeBgyJpA3FgUWtRGBhPidzaKOj4/BMezlzn0VqxA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.4.0]" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "B+r34TW1GhlbuntW5072Prm2BOk3dvdzg9yEzYmuR7jgMRZqFyypCLjizNTzWb7omEX4OfCWckDFCHH01XK10g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.4.0]", "Microsoft.CodeAnalysis.VisualBasic": "[4.4.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.4.0]" } }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "6KzmmTIUU7qInQldcSPaW0nkrO71zlFPhoiabFBhkokEit49rLx4Kr/G3agBchYzirScrXibqgTRQkvx9WcJTw==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "6.0.0", "Microsoft.CodeAnalysis.Common": "[4.4.0]", "System.Composition": "6.0.0", "System.IO.Pipelines": "6.0.3" } }, "Microsoft.CodeCoverage": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "fKiUOhhMP3IN1qM2tDHPWzW4JRbriFkIPiIzKUwMWT+Q+80bycxkLLCvxmVFoeA7gvWegNbTUjaX7mL3MM9XKg==" }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.4.0", "contentHash": "iLtWq5/W5ePzSraavAFeXAbasE6REDByizTz6M8yQO3e4jf+6pRqPLdNCSvnSfKRVqsF7y/lTVWhqlf89ttweg==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", "resolved": "2.2.0", "contentHash": "uyjY/cqomw1irT4L7lDeg4sJ36MsjHg3wKqpGrBAdzvZaxo85yMF+sAA9RIzTV92fDxuUzjqksMqA0+SNMkMgA==" }, "Microsoft.NET.StringTools": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "w8Ehofqte5bJoR+Fa3f6JwkwFEkGtXxqvQHGOVOSHDzgNVySvL5FSNhavbQSZ864el9c3rjdLPLAtBW8dq6fmg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "RAyBf87uZ5XjRE953LlxqILpD1SqwQM6bXwxPUCAPPEy0uv12R+eKnFL7yaeLVHInMKkNNh1iD/cDOVDfSgllA==", "dependencies": { "NETStandard.Library": "1.6.0", "System.ComponentModel.EventBasedAsync": "4.0.11", "System.ComponentModel.TypeConverter": "4.1.0", "System.Diagnostics.Process": "4.1.0", "System.Diagnostics.TextWriterTraceListener": "4.0.0", "System.Diagnostics.TraceSource": "4.0.0", "System.Reflection.Metadata": "1.3.0", "System.Reflection.TypeExtensions": "4.1.0", "System.Runtime.InteropServices.RuntimeInformation": "4.0.0", "System.Runtime.Loader": "4.0.0", "System.Runtime.Serialization.Json": "4.0.2", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Threading.Thread": "4.0.0", "System.Xml.XPath.XmlDocument": "4.0.1" } }, "Microsoft.TestPlatform.TestHost": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "PogSQ40KgkZjEBdC6KBGpMtuvFFCIdoJAMmK7CAHWyTXCfN1cPN8j0TFJKh+LneSg+y0QQDP23STMF609KhHQw==", "dependencies": { "Microsoft.TestPlatform.ObjectModel": "16.2.0", "Newtonsoft.Json": "9.0.1" } }, "Microsoft.Win32.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "Microsoft.Win32.Registry": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", "dependencies": { "System.Security.AccessControl": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "NETStandard.Library": { "type": "Transitive", "resolved": "1.6.1", "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.Win32.Primitives": "4.3.0", "System.AppContext": "4.3.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Console": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.Compression.ZipFile": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Net.Http": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Net.Sockets": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Timer": "4.3.0", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XDocument": "4.3.0" } }, "Newtonsoft.Json": { "type": "Transitive", "resolved": "13.0.3", "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.AppContext": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Collections.NonGeneric": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==", "dependencies": { "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Collections.Specialized": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "/HKQyVP0yH1I0YtK7KJL/28snxHNH/bi+0lgk/+MbURF6ULhAE31MDI+NZDerNWu264YbxklXCCygISgm+HMug==", "dependencies": { "System.Collections.NonGeneric": "4.0.1", "System.Globalization": "4.0.11", "System.Globalization.Extensions": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.ComponentModel": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==", "dependencies": { "System.Runtime": "4.1.0" } }, "System.ComponentModel.EventBasedAsync": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "Z7SO6vvQIR84daPE4uhaNdef9CjgjDMGYkas8epUhf0U3WGuaGgZ0Mm4QuNycMdbHUY8KEdZrtgxonkAiJaAlA==", "dependencies": { "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11" } }, "System.ComponentModel.Primitives": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "sc/7eVCdxPrp3ljpgTKVaQGUXiW05phNWvtv/m2kocXqrUQvTVWKou1Edas2aDjTThLPZOxPYIGNb/HN0QjURg==", "dependencies": { "System.ComponentModel": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0" } }, "System.ComponentModel.TypeConverter": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "MnDAlaeJZy9pdB5ZdOlwdxfpI+LJQ6e0hmH7d2+y2LkiD8DRJynyDYl4Xxf3fWFm7SbEwBZh4elcfzONQLOoQw==", "dependencies": { "System.Collections": "4.0.11", "System.Collections.NonGeneric": "4.0.1", "System.Collections.Specialized": "4.0.1", "System.ComponentModel": "4.0.1", "System.ComponentModel.Primitives": "4.1.0", "System.Globalization": "4.0.11", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Composition": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "d7wMuKQtfsxUa7S13tITC8n1cQzewuhD5iDjZtK2prwFfKVzdYtgrTHgjaV03Zq7feGQ5gkP85tJJntXwInsJA==", "dependencies": { "System.Composition.AttributedModel": "6.0.0", "System.Composition.Convention": "6.0.0", "System.Composition.Hosting": "6.0.0", "System.Composition.Runtime": "6.0.0", "System.Composition.TypedParts": "6.0.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "WK1nSDLByK/4VoC7fkNiFuTVEiperuCN/Hyn+VN30R+W2ijO1d0Z2Qm0ScEl9xkSn1G2MyapJi8xpf4R8WRa/w==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "XYi4lPRdu5bM4JVJ3/UIHAiG6V6lWWUlkhB9ab4IOq0FrRsp0F4wTyV4Dj+Ds+efoXJ3qbLqlvaUozDO7OLeXA==", "dependencies": { "System.Composition.AttributedModel": "6.0.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "w/wXjj7kvxuHPLdzZ0PAUt++qJl03t7lENmb2Oev0n3zbxyNULbWBlnd5J5WUMMv15kg5o+/TCZFb6lSwfaUUQ==", "dependencies": { "System.Composition.Runtime": "6.0.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "qkRH/YBaMPTnzxrS5RDk1juvqed4A6HOD/CwRcDGyPpYps1J27waBddiiq1y93jk2ZZ9wuA/kynM+NO0kb3PKg==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "iUR1eHrL8Cwd82neQCJ00MpwNIBs4NZgXzrPqx8NJf/k4+mwBO0XCRmHYJT4OLSwDDqh5nBLJWkz5cROnrGhRA==", "dependencies": { "System.Composition.AttributedModel": "6.0.0", "System.Composition.Hosting": "6.0.0", "System.Composition.Runtime": "6.0.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==", "dependencies": { "System.Security.Cryptography.ProtectedData": "8.0.0" } }, "System.Console": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Data.DataSetExtensions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw==" }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "7.0.2", "contentHash": "hYr3I9N9811e0Bjf2WNwAGGyTuAFbbTgX1RPLt/3Wbm68x3IGcX5Cl75CMmgT6WlNwLQ2tCCWfqYPpypjaf2xA==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Diagnostics.Process": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "mpVZ5bnlSs3tTeJ6jYyDJEIa6tavhAd88lxq1zbYhkkCu0Pno2+gHXcvZcoygq2d8JxW3gojXqNJMTAshduqZA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "Microsoft.Win32.Primitives": "4.0.1", "Microsoft.Win32.Registry": "4.0.0", "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.IO.FileSystem": "4.0.1", "System.IO.FileSystem.Primitives": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Handles": "4.0.1", "System.Runtime.InteropServices": "4.1.0", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "System.Threading.Thread": "4.0.0", "System.Threading.ThreadPool": "4.0.10", "runtime.native.System": "4.0.0" } }, "System.Diagnostics.TextWriterTraceListener": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "w36Dr8yKy8xP150qPANe7Td+/zOI3G62ImRcHDIEW+oUXUuTKZHd4DHmqRx5+x8RXd85v3tXd1uhNTfsr+yxjA==", "dependencies": { "System.Diagnostics.TraceSource": "4.0.0", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.TraceSource": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "runtime.native.System": "4.0.0" } }, "System.Diagnostics.Tracing": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Buffers": "4.3.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.IO.Compression": "4.3.0" } }, "System.IO.Compression.ZipFile": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", "dependencies": { "System.Buffers": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.IO.FileSystem": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==" }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Net.Sockets": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Private.DataContractSerialization": { "type": "Transitive", "resolved": "4.1.1", "contentHash": "lcqFBUaCZxPiUkA4dlSOoPZGtZsAuuElH2XHgLwGLxd7ZozWetV5yiz0qGAV2AUYOqw97MtZBjbLMN16Xz4vXA==", "dependencies": { "System.Collections": "4.0.11", "System.Collections.Concurrent": "4.0.12", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Emit.Lightweight": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1", "System.Xml.XmlSerializer": "4.0.11" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==" }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "MclTG61lsD9sYdpNz9xsKBzjsmsfCtcMZYXz/IUr2zlhaTaABonlr1ESeompTgM+Xk+IwtGYU7/voh3YWB/fWw==", "dependencies": { "System.Collections.Immutable": "7.0.0", "System.Memory": "4.5.5" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.InteropServices.RuntimeInformation": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0" } }, "System.Runtime.Loader": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "4UN78GOVU/mbDFcXkEWtetJT/sJ0yic2gGk1HSlSpWI0TDf421xnrZTDZnwNBapk1GQeYN7U1lTj/aQB1by6ow==", "dependencies": { "System.IO": "4.1.0", "System.Reflection": "4.1.0", "System.Runtime": "4.1.0" } }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Runtime.Serialization.Json": { "type": "Transitive", "resolved": "4.0.2", "contentHash": "+7DIJhnKYgCzUgcLbVTtRQb2l1M0FP549XFlFkQM5lmNiUBl44AfNbx4bz61xA8PzLtlYwfmif4JJJW7MPPnjg==", "dependencies": { "System.IO": "4.1.0", "System.Private.DataContractSerialization": "4.1.1", "System.Runtime": "4.1.0" } }, "System.Runtime.Serialization.Primitives": { "type": "Transitive", "resolved": "4.1.1", "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", "dependencies": { "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0" } }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", "dependencies": { "Microsoft.NETCore.Platforms": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Cng": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==", "dependencies": { "System.Memory": "4.5.5" } }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.Encoding.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { "System.Runtime": "4.3.1" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==" }, "System.Threading.Thread": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "gIdJqDXlOr5W9zeqFErLw3dsOsiShSCYtF9SEHitACycmvNvY8odf9kiKvp6V7aibc8C4HzzNBkWXjyfn7plbQ==", "dependencies": { "System.Runtime": "4.1.0" } }, "System.Threading.ThreadPool": { "type": "Transitive", "resolved": "4.0.10", "contentHash": "IMXgB5Vf/5Qw1kpoVgJMOvUO1l32aC+qC3OaIZjWJOjvcxuxNWOK2ZTWWYXfij22NHxT2j1yWX5vlAeQWld9vA==", "dependencies": { "System.Runtime": "4.1.0", "System.Runtime.Handles": "4.0.1" } }, "System.Threading.Timer": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Xml.ReaderWriter": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Tasks.Extensions": "4.3.0" } }, "System.Xml.XDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "System.Xml.XmlDocument": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "2eZu6IP+etFVBBFUFzw2w6J21DqIN5eL9Y8r8JfJWUmV28Z5P0SNU01oCisVHQgHsDhHPnmq2s1hJrJCFZWloQ==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Text.Encoding": "4.0.11", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11" } }, "System.Xml.XmlSerializer": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "FrazwwqfIXTfq23mfv4zH+BjqkSFNaNFBtjzu3I9NRmG8EELYyrv/fJnttCIwRMFRR/YKXF1hmsMmMEnl55HGw==", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit": "4.0.1", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1" } }, "System.Xml.XPath": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11" } }, "System.Xml.XPath.XmlDocument": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "Zm2BdeanuncYs3NhCj4c9e1x3EXFzFBVv2wPEc/Dj4ZbI9R8ecLSR5frAsx4zJCPBtKQreQ7Q/KxJEohJZbfzA==", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XPath": "4.0.1", "System.Xml.XmlDocument": "4.0.1" } }, "xunit.abstractions": { "type": "Transitive", "resolved": "2.0.3", "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==" }, "xunit.analyzers": { "type": "Transitive", "resolved": "0.10.0", "contentHash": "4/IDFCJfIeg6bix9apmUtIMwvOsiwqdEexeO/R2D4GReIGPLIRODTpId/l4LRSrAJk9lEO3Zx1H0Zx6uohJDNg==" }, "xunit.assert": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "O/Oe0BS5RmSsM+LQOb041TzuPo5MdH2Rov+qXGS37X+KFG1Hxz7kopYklM5+1Y+tRGeXrOx5+Xne1RuqLFQoyQ==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "xunit.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "Zsj5OMU6JasNGERXZy8s72+pcheG6Q15atS5XpZXqAtULuyQiQ6XNnUsp1gyfC6WgqScqMvySiEHmHcOG6Eg0Q==", "dependencies": { "xunit.extensibility.core": "[2.4.1]", "xunit.extensibility.execution": "[2.4.1]" } }, "xunit.extensibility.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "yKZKm/8QNZnBnGZFD9SewkllHBiK0DThybQD/G4PiAmQjKtEZyHi6ET70QPU9KtSMJGRYS6Syk7EyR2EVDU4Kg==", "dependencies": { "NETStandard.Library": "1.6.1", "xunit.abstractions": "2.0.3" } }, "xunit.extensibility.execution": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "7e/1jqBpcb7frLkB6XDrHCGXAbKN4Rtdb88epYxCSRQuZDRW8UtTfdTEVpdTl8s4T56e07hOBVd4G0OdCxIY2A==", "dependencies": { "NETStandard.Library": "1.6.1", "xunit.extensibility.core": "[2.4.1]" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } }, "MirrorSharp.FSharp": { "type": "Project", "dependencies": { "FSharp.Compiler.Service": "[43.8.300, )", "FSharp.Core": "[8.0.300, )", "Microsoft.Build.Utilities.Core": "[17.12.6, )", "Microsoft.IO.RecyclableMemoryStream": "[2.2.0, )", "MirrorSharp.Common": "[3.0.9, )" } }, "MirrorSharp.Testing": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )", "Newtonsoft.Json": "[13.0.3, )", "System.Buffers": "[4.5.1, )" } }, "MirrorSharp.VisualBasic": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.VisualBasic": "[3.3.1, )", "Microsoft.CodeAnalysis.VisualBasic.Features": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )" } } } } } ================================================ FILE: Tests.Roslyn45/Tests.Roslyn45.csproj ================================================ netcoreapp3.1 false MirrorSharp.Tests.Roslyn45 MirrorSharp.Tests false VSTHRD200 PreserveNewest PreserveNewest ================================================ FILE: Tests.Roslyn45/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETCoreApp,Version=v3.1": { "coverlet.collector": { "type": "Direct", "requested": "[1.0.1, )", "resolved": "1.0.1", "contentHash": "RAuno8s7DBGo2IdV/1d8YSnXMd/728K3PBT5R6/kfGx1yunBZmavlaFQfhGe7Q7N2nUMkvVET+7ITn3+KSg+Uw==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.5.0, )", "resolved": "4.5.0", "contentHash": "UwAroliVgje2/NKkEIWXnF+yoN/LMw1slof+jCflZBTbXUvd9zbKHq1rBvqo4QAwTNl2/oTXUDPNI006V+1luw==", "dependencies": { "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.5.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.5.0]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Direct", "requested": "[4.5.0, )", "resolved": "4.5.0", "contentHash": "yKRpeT+WdVm1Cs6+3JUwJByep1t1L+sKyKBjFBWkjB+pkFN4IkXLNH55JQwVo1rOijDGyugCvB0Oop02I4iUcw==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.CSharp": "[4.5.0]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.5.0]", "Microsoft.CodeAnalysis.Common": "[4.5.0]", "Microsoft.CodeAnalysis.Features": "[4.5.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.5.0]" } }, "Microsoft.CodeAnalysis.VisualBasic.Features": { "type": "Direct", "requested": "[4.5.0, )", "resolved": "4.5.0", "contentHash": "hUdEdwbXoWpVqunytd8sDrqFoxanK3AV/nnOTAJ3SkQKtmoQqj9jwqO3GAl8tI44HWpV3IyPvd0fEfBpsORKDw==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.5.0]", "Microsoft.CodeAnalysis.Features": "[4.5.0]", "Microsoft.CodeAnalysis.VisualBasic": "[4.5.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.5.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.5.0]" } }, "Microsoft.NET.Test.Sdk": { "type": "Direct", "requested": "[16.2.0, )", "resolved": "16.2.0", "contentHash": "56w1drIQqpMgg3IxHcfra/jXOngiD4pbl0j6TNeJMlOQGlZ8wCMlyRTvn6Crd/FgGjwKbWLurdOHNGrfzLtl6A==", "dependencies": { "Microsoft.CodeCoverage": "16.2.0", "Microsoft.TestPlatform.TestHost": "16.2.0" } }, "SourceMock": { "type": "Direct", "requested": "[0.10.0, )", "resolved": "0.10.0", "contentHash": "Dd/YMTTRZSDR34HgVEgfMoZfOTId3Ns0vehFcdLVwMuKLgMcg7/4Oj80qX112np9siR2C4vL3qfT1I9ahzxu9Q==", "dependencies": { "System.Collections.Immutable": "5.0.0" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "xunit": { "type": "Direct", "requested": "[2.4.1, )", "resolved": "2.4.1", "contentHash": "XNR3Yz9QTtec16O0aKcO6+baVNpXmOnPUxDkCY97J+8krUYxPvXT1szYYEUdKk4sB8GOI2YbAjRIOm8ZnXRfzQ==", "dependencies": { "xunit.analyzers": "0.10.0", "xunit.assert": "[2.4.1]", "xunit.core": "[2.4.1]" } }, "xunit.runner.visualstudio": { "type": "Direct", "requested": "[2.4.0, )", "resolved": "2.4.0", "contentHash": "3eq5cGXbEJkqW9nwLuXwtxy9B5gMA8i7HW4rN63AhAvy5UvEcQbZnve23wx/oPrkyg/4CbfNhxkBezS0b1oUdQ==", "dependencies": { "Microsoft.NET.Test.Sdk": "15.0.0" } }, "FSharp.Compiler.Service": { "type": "Transitive", "resolved": "43.8.300", "contentHash": "CoPjQYXXwmYkkHm+yxBHSW9IJVLpvwkKGEzXa5A6ebf8v6GfYaxZc5G+VHojDr586oezp1elFemu+A1WWH095A==", "dependencies": { "FSharp.Core": "[8.0.300]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "7.0.0", "System.Diagnostics.DiagnosticSource": "7.0.2", "System.Memory": "4.5.5", "System.Reflection.Emit": "4.7.0", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "FSharp.Core": { "type": "Transitive", "resolved": "8.0.300", "contentHash": "Jv44fV7TNglyMku89lQcA4Q6mFKLyHb2bs1Yb72nvSVc+cHplEnoZ4XQUaaTLJGUTx/iMqcrkYGtaLzkkIhpaA==" }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.14.1", "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==" }, "Microsoft.Build.Framework": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "jleteC0seumLGTmTVwob97lcwPj/dfgzL/V3g/VVcMZgo2Ic7jzdy8AYpByPDh8e3uRq0SjCl6HOFCjhy5GzRQ==", "dependencies": { "Microsoft.Win32.Registry": "5.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "Microsoft.Build.Utilities.Core": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "pU3GnHcXp8VRMGKxdJCq+tixfhFn+QwEbpqmZmc/nqFHFyuhlGwjonWZMIWcwuCv/8EHgxoOttFvna1vrN+RrA==", "dependencies": { "Microsoft.Build.Framework": "17.12.6", "Microsoft.NET.StringTools": "17.12.6", "Microsoft.Win32.Registry": "5.0.0", "System.Collections.Immutable": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0", "System.Text.Encoding.CodePages": "7.0.0" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.3.3", "contentHash": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "lwAbIZNdnY0SUNoDmZHkVUwLO8UyNnyyh1t/4XsbFxi4Ounb3xszIYZaWhyj5ZjyfcwqwmtMbE7fUTVCqQEIdQ==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.3", "System.Collections.Immutable": "6.0.0", "System.Reflection.Metadata": "6.0.1", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "6.0.0" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "cM59oMKAOxvdv76bdmaKPy5hfj+oR+zxikWoueEB7CwTko7mt9sVKZI8Qxlov0C/LuKEG+WQwifepqL3vuTiBQ==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.5.0]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "h74wTpmGOp4yS4hj+EvNzEiPgg/KVs2wmSfTZ81upJZOtPkJsVkgfsgtxxqmAeapjT/vLKfmYV0bS8n5MNVP+g==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.CSharp": "[4.5.0]", "Microsoft.CodeAnalysis.Common": "[4.5.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.5.0]" } }, "Microsoft.CodeAnalysis.Elfie": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "r12elUp4MRjdnRfxEP+xqVSUUfG3yIJTBEJGwbfvF5oU4m0jb9HC0gFG28V/dAkYGMkRmHVi3qvrnBLQSw9X3Q==", "dependencies": { "System.Configuration.ConfigurationManager": "4.5.0", "System.Data.DataSetExtensions": "4.5.0" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "L6NaZz/qTt3htWKyG2tnsBVhSG7MBcUwwjzYzainprX3V3SUTlOuNuliQhC0y8ggj1mF8rkhqVgtPTS/5nLc2w==", "dependencies": { "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Common": "[4.5.0]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Scripting.Common": "[4.5.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.5.0]", "Microsoft.DiaSymReader": "1.4.0", "System.Text.Json": "6.0.0" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "ruWwzk9H5uJ+BQOMZQh77bjd74Z2KZjJP01y/tpfB6qsRi8s+EjhvzNmG7wDx0uRwmOCksKDS0MeMu3D1uKzZQ==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.5.0]" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "6I4xrLh2g09c8OjLwOQEtD1ONB+FV2kYcZqbb2/LrPHCi19Ept0q9TQd78J2oKJpTrw3kLJfh9oj1sYf80/cmg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.5.0]" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "A98Ibs/HCsDloQlzDyK8BiY3+pEXeih54pdayUtdawjUSsEVCPN8hCTAxqC/nWOpzVwbW7k30tfxTH1fQqlr4A==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.5.0]", "Microsoft.CodeAnalysis.VisualBasic": "[4.5.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.5.0]" } }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "l4dDRmGELXG72XZaonnOeORyD/T5RpEu5LGHOUIhnv+MmUWDY/m1kWXGwtcgQ5CJ5ynkFiRnIYzTKXYjUs7rbw==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "6.0.0", "Microsoft.CodeAnalysis.Common": "[4.5.0]", "System.Composition": "6.0.0", "System.IO.Pipelines": "6.0.3", "System.Threading.Channels": "6.0.0" } }, "Microsoft.CodeCoverage": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "fKiUOhhMP3IN1qM2tDHPWzW4JRbriFkIPiIzKUwMWT+Q+80bycxkLLCvxmVFoeA7gvWegNbTUjaX7mL3MM9XKg==" }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.4.0", "contentHash": "iLtWq5/W5ePzSraavAFeXAbasE6REDByizTz6M8yQO3e4jf+6pRqPLdNCSvnSfKRVqsF7y/lTVWhqlf89ttweg==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", "resolved": "2.2.0", "contentHash": "uyjY/cqomw1irT4L7lDeg4sJ36MsjHg3wKqpGrBAdzvZaxo85yMF+sAA9RIzTV92fDxuUzjqksMqA0+SNMkMgA==" }, "Microsoft.NET.StringTools": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "w8Ehofqte5bJoR+Fa3f6JwkwFEkGtXxqvQHGOVOSHDzgNVySvL5FSNhavbQSZ864el9c3rjdLPLAtBW8dq6fmg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "RAyBf87uZ5XjRE953LlxqILpD1SqwQM6bXwxPUCAPPEy0uv12R+eKnFL7yaeLVHInMKkNNh1iD/cDOVDfSgllA==", "dependencies": { "NETStandard.Library": "1.6.0", "System.ComponentModel.EventBasedAsync": "4.0.11", "System.ComponentModel.TypeConverter": "4.1.0", "System.Diagnostics.Process": "4.1.0", "System.Diagnostics.TextWriterTraceListener": "4.0.0", "System.Diagnostics.TraceSource": "4.0.0", "System.Reflection.Metadata": "1.3.0", "System.Reflection.TypeExtensions": "4.1.0", "System.Runtime.InteropServices.RuntimeInformation": "4.0.0", "System.Runtime.Loader": "4.0.0", "System.Runtime.Serialization.Json": "4.0.2", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Threading.Thread": "4.0.0", "System.Xml.XPath.XmlDocument": "4.0.1" } }, "Microsoft.TestPlatform.TestHost": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "PogSQ40KgkZjEBdC6KBGpMtuvFFCIdoJAMmK7CAHWyTXCfN1cPN8j0TFJKh+LneSg+y0QQDP23STMF609KhHQw==", "dependencies": { "Microsoft.TestPlatform.ObjectModel": "16.2.0", "Newtonsoft.Json": "9.0.1" } }, "Microsoft.Win32.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "Microsoft.Win32.Registry": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", "dependencies": { "System.Security.AccessControl": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "NETStandard.Library": { "type": "Transitive", "resolved": "1.6.1", "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.Win32.Primitives": "4.3.0", "System.AppContext": "4.3.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Console": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.Compression.ZipFile": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Net.Http": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Net.Sockets": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Timer": "4.3.0", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XDocument": "4.3.0" } }, "Newtonsoft.Json": { "type": "Transitive", "resolved": "13.0.3", "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.AppContext": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Collections.NonGeneric": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==", "dependencies": { "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Collections.Specialized": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "/HKQyVP0yH1I0YtK7KJL/28snxHNH/bi+0lgk/+MbURF6ULhAE31MDI+NZDerNWu264YbxklXCCygISgm+HMug==", "dependencies": { "System.Collections.NonGeneric": "4.0.1", "System.Globalization": "4.0.11", "System.Globalization.Extensions": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.ComponentModel": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==", "dependencies": { "System.Runtime": "4.1.0" } }, "System.ComponentModel.EventBasedAsync": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "Z7SO6vvQIR84daPE4uhaNdef9CjgjDMGYkas8epUhf0U3WGuaGgZ0Mm4QuNycMdbHUY8KEdZrtgxonkAiJaAlA==", "dependencies": { "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11" } }, "System.ComponentModel.Primitives": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "sc/7eVCdxPrp3ljpgTKVaQGUXiW05phNWvtv/m2kocXqrUQvTVWKou1Edas2aDjTThLPZOxPYIGNb/HN0QjURg==", "dependencies": { "System.ComponentModel": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0" } }, "System.ComponentModel.TypeConverter": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "MnDAlaeJZy9pdB5ZdOlwdxfpI+LJQ6e0hmH7d2+y2LkiD8DRJynyDYl4Xxf3fWFm7SbEwBZh4elcfzONQLOoQw==", "dependencies": { "System.Collections": "4.0.11", "System.Collections.NonGeneric": "4.0.1", "System.Collections.Specialized": "4.0.1", "System.ComponentModel": "4.0.1", "System.ComponentModel.Primitives": "4.1.0", "System.Globalization": "4.0.11", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Composition": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "d7wMuKQtfsxUa7S13tITC8n1cQzewuhD5iDjZtK2prwFfKVzdYtgrTHgjaV03Zq7feGQ5gkP85tJJntXwInsJA==", "dependencies": { "System.Composition.AttributedModel": "6.0.0", "System.Composition.Convention": "6.0.0", "System.Composition.Hosting": "6.0.0", "System.Composition.Runtime": "6.0.0", "System.Composition.TypedParts": "6.0.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "WK1nSDLByK/4VoC7fkNiFuTVEiperuCN/Hyn+VN30R+W2ijO1d0Z2Qm0ScEl9xkSn1G2MyapJi8xpf4R8WRa/w==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "XYi4lPRdu5bM4JVJ3/UIHAiG6V6lWWUlkhB9ab4IOq0FrRsp0F4wTyV4Dj+Ds+efoXJ3qbLqlvaUozDO7OLeXA==", "dependencies": { "System.Composition.AttributedModel": "6.0.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "w/wXjj7kvxuHPLdzZ0PAUt++qJl03t7lENmb2Oev0n3zbxyNULbWBlnd5J5WUMMv15kg5o+/TCZFb6lSwfaUUQ==", "dependencies": { "System.Composition.Runtime": "6.0.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "qkRH/YBaMPTnzxrS5RDk1juvqed4A6HOD/CwRcDGyPpYps1J27waBddiiq1y93jk2ZZ9wuA/kynM+NO0kb3PKg==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "iUR1eHrL8Cwd82neQCJ00MpwNIBs4NZgXzrPqx8NJf/k4+mwBO0XCRmHYJT4OLSwDDqh5nBLJWkz5cROnrGhRA==", "dependencies": { "System.Composition.AttributedModel": "6.0.0", "System.Composition.Hosting": "6.0.0", "System.Composition.Runtime": "6.0.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==", "dependencies": { "System.Security.Cryptography.ProtectedData": "8.0.0" } }, "System.Console": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Data.DataSetExtensions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw==" }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "7.0.2", "contentHash": "hYr3I9N9811e0Bjf2WNwAGGyTuAFbbTgX1RPLt/3Wbm68x3IGcX5Cl75CMmgT6WlNwLQ2tCCWfqYPpypjaf2xA==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Diagnostics.Process": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "mpVZ5bnlSs3tTeJ6jYyDJEIa6tavhAd88lxq1zbYhkkCu0Pno2+gHXcvZcoygq2d8JxW3gojXqNJMTAshduqZA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "Microsoft.Win32.Primitives": "4.0.1", "Microsoft.Win32.Registry": "4.0.0", "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.IO.FileSystem": "4.0.1", "System.IO.FileSystem.Primitives": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Handles": "4.0.1", "System.Runtime.InteropServices": "4.1.0", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "System.Threading.Thread": "4.0.0", "System.Threading.ThreadPool": "4.0.10", "runtime.native.System": "4.0.0" } }, "System.Diagnostics.TextWriterTraceListener": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "w36Dr8yKy8xP150qPANe7Td+/zOI3G62ImRcHDIEW+oUXUuTKZHd4DHmqRx5+x8RXd85v3tXd1uhNTfsr+yxjA==", "dependencies": { "System.Diagnostics.TraceSource": "4.0.0", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.TraceSource": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "runtime.native.System": "4.0.0" } }, "System.Diagnostics.Tracing": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Buffers": "4.3.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.IO.Compression": "4.3.0" } }, "System.IO.Compression.ZipFile": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", "dependencies": { "System.Buffers": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.IO.FileSystem": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==" }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Net.Sockets": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Private.DataContractSerialization": { "type": "Transitive", "resolved": "4.1.1", "contentHash": "lcqFBUaCZxPiUkA4dlSOoPZGtZsAuuElH2XHgLwGLxd7ZozWetV5yiz0qGAV2AUYOqw97MtZBjbLMN16Xz4vXA==", "dependencies": { "System.Collections": "4.0.11", "System.Collections.Concurrent": "4.0.12", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Emit.Lightweight": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1", "System.Xml.XmlSerializer": "4.0.11" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==" }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "MclTG61lsD9sYdpNz9xsKBzjsmsfCtcMZYXz/IUr2zlhaTaABonlr1ESeompTgM+Xk+IwtGYU7/voh3YWB/fWw==", "dependencies": { "System.Collections.Immutable": "7.0.0", "System.Memory": "4.5.5" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.InteropServices.RuntimeInformation": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0" } }, "System.Runtime.Loader": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "4UN78GOVU/mbDFcXkEWtetJT/sJ0yic2gGk1HSlSpWI0TDf421xnrZTDZnwNBapk1GQeYN7U1lTj/aQB1by6ow==", "dependencies": { "System.IO": "4.1.0", "System.Reflection": "4.1.0", "System.Runtime": "4.1.0" } }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Runtime.Serialization.Json": { "type": "Transitive", "resolved": "4.0.2", "contentHash": "+7DIJhnKYgCzUgcLbVTtRQb2l1M0FP549XFlFkQM5lmNiUBl44AfNbx4bz61xA8PzLtlYwfmif4JJJW7MPPnjg==", "dependencies": { "System.IO": "4.1.0", "System.Private.DataContractSerialization": "4.1.1", "System.Runtime": "4.1.0" } }, "System.Runtime.Serialization.Primitives": { "type": "Transitive", "resolved": "4.1.1", "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", "dependencies": { "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0" } }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", "dependencies": { "Microsoft.NETCore.Platforms": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Cng": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==", "dependencies": { "System.Memory": "4.5.5" } }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.Encoding.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { "System.Runtime": "4.3.1" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Channels": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "TY8/9+tI0mNaUMgntOxxaq2ndTkdXqLSxvPmas7XEqOlv9lQtB7wLjYGd756lOaO7Dvb5r/WXhluM+0Xe87v5Q==" }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==" }, "System.Threading.Thread": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "gIdJqDXlOr5W9zeqFErLw3dsOsiShSCYtF9SEHitACycmvNvY8odf9kiKvp6V7aibc8C4HzzNBkWXjyfn7plbQ==", "dependencies": { "System.Runtime": "4.1.0" } }, "System.Threading.ThreadPool": { "type": "Transitive", "resolved": "4.0.10", "contentHash": "IMXgB5Vf/5Qw1kpoVgJMOvUO1l32aC+qC3OaIZjWJOjvcxuxNWOK2ZTWWYXfij22NHxT2j1yWX5vlAeQWld9vA==", "dependencies": { "System.Runtime": "4.1.0", "System.Runtime.Handles": "4.0.1" } }, "System.Threading.Timer": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Xml.ReaderWriter": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Tasks.Extensions": "4.3.0" } }, "System.Xml.XDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "System.Xml.XmlDocument": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "2eZu6IP+etFVBBFUFzw2w6J21DqIN5eL9Y8r8JfJWUmV28Z5P0SNU01oCisVHQgHsDhHPnmq2s1hJrJCFZWloQ==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Text.Encoding": "4.0.11", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11" } }, "System.Xml.XmlSerializer": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "FrazwwqfIXTfq23mfv4zH+BjqkSFNaNFBtjzu3I9NRmG8EELYyrv/fJnttCIwRMFRR/YKXF1hmsMmMEnl55HGw==", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit": "4.0.1", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1" } }, "System.Xml.XPath": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11" } }, "System.Xml.XPath.XmlDocument": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "Zm2BdeanuncYs3NhCj4c9e1x3EXFzFBVv2wPEc/Dj4ZbI9R8ecLSR5frAsx4zJCPBtKQreQ7Q/KxJEohJZbfzA==", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XPath": "4.0.1", "System.Xml.XmlDocument": "4.0.1" } }, "xunit.abstractions": { "type": "Transitive", "resolved": "2.0.3", "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==" }, "xunit.analyzers": { "type": "Transitive", "resolved": "0.10.0", "contentHash": "4/IDFCJfIeg6bix9apmUtIMwvOsiwqdEexeO/R2D4GReIGPLIRODTpId/l4LRSrAJk9lEO3Zx1H0Zx6uohJDNg==" }, "xunit.assert": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "O/Oe0BS5RmSsM+LQOb041TzuPo5MdH2Rov+qXGS37X+KFG1Hxz7kopYklM5+1Y+tRGeXrOx5+Xne1RuqLFQoyQ==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "xunit.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "Zsj5OMU6JasNGERXZy8s72+pcheG6Q15atS5XpZXqAtULuyQiQ6XNnUsp1gyfC6WgqScqMvySiEHmHcOG6Eg0Q==", "dependencies": { "xunit.extensibility.core": "[2.4.1]", "xunit.extensibility.execution": "[2.4.1]" } }, "xunit.extensibility.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "yKZKm/8QNZnBnGZFD9SewkllHBiK0DThybQD/G4PiAmQjKtEZyHi6ET70QPU9KtSMJGRYS6Syk7EyR2EVDU4Kg==", "dependencies": { "NETStandard.Library": "1.6.1", "xunit.abstractions": "2.0.3" } }, "xunit.extensibility.execution": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "7e/1jqBpcb7frLkB6XDrHCGXAbKN4Rtdb88epYxCSRQuZDRW8UtTfdTEVpdTl8s4T56e07hOBVd4G0OdCxIY2A==", "dependencies": { "NETStandard.Library": "1.6.1", "xunit.extensibility.core": "[2.4.1]" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } }, "MirrorSharp.FSharp": { "type": "Project", "dependencies": { "FSharp.Compiler.Service": "[43.8.300, )", "FSharp.Core": "[8.0.300, )", "Microsoft.Build.Utilities.Core": "[17.12.6, )", "Microsoft.IO.RecyclableMemoryStream": "[2.2.0, )", "MirrorSharp.Common": "[3.0.9, )" } }, "MirrorSharp.Testing": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )", "Newtonsoft.Json": "[13.0.3, )", "System.Buffers": "[4.5.1, )" } }, "MirrorSharp.VisualBasic": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.VisualBasic": "[3.3.1, )", "Microsoft.CodeAnalysis.VisualBasic.Features": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )" } } } } } ================================================ FILE: Tests.Roslyn46/Tests.Roslyn46.csproj ================================================ netcoreapp3.1 false MirrorSharp.Tests.Roslyn46 MirrorSharp.Tests false VSTHRD200; RS1035 true PreserveNewest PreserveNewest ================================================ FILE: Tests.Roslyn46/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETCoreApp,Version=v3.1": { "coverlet.collector": { "type": "Direct", "requested": "[1.0.1, )", "resolved": "1.0.1", "contentHash": "RAuno8s7DBGo2IdV/1d8YSnXMd/728K3PBT5R6/kfGx1yunBZmavlaFQfhGe7Q7N2nUMkvVET+7ITn3+KSg+Uw==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.6.0, )", "resolved": "4.6.0", "contentHash": "yPqWIFXnnwujlLIl6wRiVEITn9M3M+/xZrqim8a4BupBXfDUFY6ku+cM9YiDcG+Dk18jfNqUgdONLFjRJrrEYw==", "dependencies": { "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.6.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.6.0]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Direct", "requested": "[4.6.0, )", "resolved": "4.6.0", "contentHash": "iAnCOKPpJwNTzAkUlv9U+9LEOGsTyJ7Z+RF4kNEVpvf+xCU13AWpTWyVFa8ZUX9cwHEPuEqzGo7f2yGxL89iIw==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.CSharp": "[4.6.0]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.6.0]", "Microsoft.CodeAnalysis.Common": "[4.6.0]", "Microsoft.CodeAnalysis.Features": "[4.6.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.6.0]" } }, "Microsoft.CodeAnalysis.VisualBasic.Features": { "type": "Direct", "requested": "[4.6.0, )", "resolved": "4.6.0", "contentHash": "mqKEMoMegrzQOe1O1hZVGBcrQ08H7NWrLjnq3bDauG+dIbWHREBWTva2cktQOI+pa1+I+01tl2gcuk3ZX9WJ4A==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.6.0]", "Microsoft.CodeAnalysis.Features": "[4.6.0]", "Microsoft.CodeAnalysis.VisualBasic": "[4.6.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.6.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.6.0]" } }, "Microsoft.NET.Test.Sdk": { "type": "Direct", "requested": "[16.2.0, )", "resolved": "16.2.0", "contentHash": "56w1drIQqpMgg3IxHcfra/jXOngiD4pbl0j6TNeJMlOQGlZ8wCMlyRTvn6Crd/FgGjwKbWLurdOHNGrfzLtl6A==", "dependencies": { "Microsoft.CodeCoverage": "16.2.0", "Microsoft.TestPlatform.TestHost": "16.2.0" } }, "SourceMock": { "type": "Direct", "requested": "[0.10.0, )", "resolved": "0.10.0", "contentHash": "Dd/YMTTRZSDR34HgVEgfMoZfOTId3Ns0vehFcdLVwMuKLgMcg7/4Oj80qX112np9siR2C4vL3qfT1I9ahzxu9Q==", "dependencies": { "System.Collections.Immutable": "5.0.0" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "xunit": { "type": "Direct", "requested": "[2.4.1, )", "resolved": "2.4.1", "contentHash": "XNR3Yz9QTtec16O0aKcO6+baVNpXmOnPUxDkCY97J+8krUYxPvXT1szYYEUdKk4sB8GOI2YbAjRIOm8ZnXRfzQ==", "dependencies": { "xunit.analyzers": "0.10.0", "xunit.assert": "[2.4.1]", "xunit.core": "[2.4.1]" } }, "xunit.runner.visualstudio": { "type": "Direct", "requested": "[2.4.0, )", "resolved": "2.4.0", "contentHash": "3eq5cGXbEJkqW9nwLuXwtxy9B5gMA8i7HW4rN63AhAvy5UvEcQbZnve23wx/oPrkyg/4CbfNhxkBezS0b1oUdQ==", "dependencies": { "Microsoft.NET.Test.Sdk": "15.0.0" } }, "FSharp.Compiler.Service": { "type": "Transitive", "resolved": "43.8.300", "contentHash": "CoPjQYXXwmYkkHm+yxBHSW9IJVLpvwkKGEzXa5A6ebf8v6GfYaxZc5G+VHojDr586oezp1elFemu+A1WWH095A==", "dependencies": { "FSharp.Core": "[8.0.300]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "7.0.0", "System.Diagnostics.DiagnosticSource": "7.0.2", "System.Memory": "4.5.5", "System.Reflection.Emit": "4.7.0", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "FSharp.Core": { "type": "Transitive", "resolved": "8.0.300", "contentHash": "Jv44fV7TNglyMku89lQcA4Q6mFKLyHb2bs1Yb72nvSVc+cHplEnoZ4XQUaaTLJGUTx/iMqcrkYGtaLzkkIhpaA==" }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.14.1", "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==" }, "Microsoft.Build.Framework": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "jleteC0seumLGTmTVwob97lcwPj/dfgzL/V3g/VVcMZgo2Ic7jzdy8AYpByPDh8e3uRq0SjCl6HOFCjhy5GzRQ==", "dependencies": { "Microsoft.Win32.Registry": "5.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "Microsoft.Build.Utilities.Core": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "pU3GnHcXp8VRMGKxdJCq+tixfhFn+QwEbpqmZmc/nqFHFyuhlGwjonWZMIWcwuCv/8EHgxoOttFvna1vrN+RrA==", "dependencies": { "Microsoft.Build.Framework": "17.12.6", "Microsoft.NET.StringTools": "17.12.6", "Microsoft.Win32.Registry": "5.0.0", "System.Collections.Immutable": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0", "System.Text.Encoding.CodePages": "7.0.0" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.3.4", "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.6.0", "contentHash": "N3uLvekc7DjvE1BX8YW7UH7ldjA4ps/Tun2YmOoSIItJrh1gnQIMKUbK1c3uQUx2NHbLibVZI4o/VB9xb4B7tA==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "System.Collections.Immutable": "7.0.0", "System.Memory": "4.5.5", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.6.0", "contentHash": "9pyFZUN2Lyu3C0Xfs49kezfH+CzQHMibGsQeQPu0P+GWyH2XXDwmyZ6jAaKQGNUXOJfC2OK01hWMJTJY315uDQ==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.6.0]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.6.0", "contentHash": "xQa3Ir0HifjTrH01bk2JSjHcU4JxC1LBQw1wC9Ewf3Y2sNttQOn73tQaZcye2Lwrm0Kiec+Vuee8HsEgGIvOnQ==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.CSharp": "[4.6.0]", "Microsoft.CodeAnalysis.Common": "[4.6.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.6.0]" } }, "Microsoft.CodeAnalysis.Elfie": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "r12elUp4MRjdnRfxEP+xqVSUUfG3yIJTBEJGwbfvF5oU4m0jb9HC0gFG28V/dAkYGMkRmHVi3qvrnBLQSw9X3Q==", "dependencies": { "System.Configuration.ConfigurationManager": "4.5.0", "System.Data.DataSetExtensions": "4.5.0" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "4.6.0", "contentHash": "dusZtHb/+BjjDLDc6L9QBOl3IDK12z6AucdYsK1WgmOa0WZ64b77hU1XnK1N5rUV/+UPMITMbBFP/GoV722Z3Q==", "dependencies": { "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Common": "[4.6.0]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Scripting.Common": "[4.6.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.6.0]", "Microsoft.DiaSymReader": "1.4.0", "System.Text.Json": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.6.0", "contentHash": "BprguoVYmzRKvBtIDV0mkpGur5V385zqf2aPejBVcBwX9oTJORs/aPric8S2RmV+FKZj6Sj6jbmT4nwOvBQHbg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.6.0]" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.6.0", "contentHash": "k4RDHX2z4bY5lvc4hVUf6EvIoACbMsXhK4NtRupatM1Qitpoqz7O7QMx+or/kNNffs5uTo1Apc2S7NWuKjx3cA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.6.0]" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.6.0", "contentHash": "7HzRjpwMAl0AB8/0ccUk89cP1B7U8isLV6SkSpoJbDL7IOGjXIuI3CAyHqy58a51zqtal5SDTIzhzgQgRLkytw==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.6.0]", "Microsoft.CodeAnalysis.VisualBasic": "[4.6.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.6.0]" } }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "4.6.0", "contentHash": "KnBOTRwn2Tt4JXuec+P4aVO4N6zKZDACwtVA++mnZUHujmPG5xWX7whoEIW4bAp1nuAugnn0K9xpuaRBtRltpg==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "7.0.0", "Microsoft.CodeAnalysis.Common": "[4.6.0]", "System.Composition": "7.0.0", "System.IO.Pipelines": "7.0.0", "System.Threading.Channels": "7.0.0" } }, "Microsoft.CodeCoverage": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "fKiUOhhMP3IN1qM2tDHPWzW4JRbriFkIPiIzKUwMWT+Q+80bycxkLLCvxmVFoeA7gvWegNbTUjaX7mL3MM9XKg==" }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.4.0", "contentHash": "iLtWq5/W5ePzSraavAFeXAbasE6REDByizTz6M8yQO3e4jf+6pRqPLdNCSvnSfKRVqsF7y/lTVWhqlf89ttweg==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", "resolved": "2.2.0", "contentHash": "uyjY/cqomw1irT4L7lDeg4sJ36MsjHg3wKqpGrBAdzvZaxo85yMF+sAA9RIzTV92fDxuUzjqksMqA0+SNMkMgA==" }, "Microsoft.NET.StringTools": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "w8Ehofqte5bJoR+Fa3f6JwkwFEkGtXxqvQHGOVOSHDzgNVySvL5FSNhavbQSZ864el9c3rjdLPLAtBW8dq6fmg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "RAyBf87uZ5XjRE953LlxqILpD1SqwQM6bXwxPUCAPPEy0uv12R+eKnFL7yaeLVHInMKkNNh1iD/cDOVDfSgllA==", "dependencies": { "NETStandard.Library": "1.6.0", "System.ComponentModel.EventBasedAsync": "4.0.11", "System.ComponentModel.TypeConverter": "4.1.0", "System.Diagnostics.Process": "4.1.0", "System.Diagnostics.TextWriterTraceListener": "4.0.0", "System.Diagnostics.TraceSource": "4.0.0", "System.Reflection.Metadata": "1.3.0", "System.Reflection.TypeExtensions": "4.1.0", "System.Runtime.InteropServices.RuntimeInformation": "4.0.0", "System.Runtime.Loader": "4.0.0", "System.Runtime.Serialization.Json": "4.0.2", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Threading.Thread": "4.0.0", "System.Xml.XPath.XmlDocument": "4.0.1" } }, "Microsoft.TestPlatform.TestHost": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "PogSQ40KgkZjEBdC6KBGpMtuvFFCIdoJAMmK7CAHWyTXCfN1cPN8j0TFJKh+LneSg+y0QQDP23STMF609KhHQw==", "dependencies": { "Microsoft.TestPlatform.ObjectModel": "16.2.0", "Newtonsoft.Json": "9.0.1" } }, "Microsoft.Win32.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "Microsoft.Win32.Registry": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", "dependencies": { "System.Security.AccessControl": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "NETStandard.Library": { "type": "Transitive", "resolved": "1.6.1", "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.Win32.Primitives": "4.3.0", "System.AppContext": "4.3.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Console": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.Compression.ZipFile": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Net.Http": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Net.Sockets": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Timer": "4.3.0", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XDocument": "4.3.0" } }, "Newtonsoft.Json": { "type": "Transitive", "resolved": "13.0.3", "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.AppContext": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Collections.NonGeneric": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==", "dependencies": { "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Collections.Specialized": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "/HKQyVP0yH1I0YtK7KJL/28snxHNH/bi+0lgk/+MbURF6ULhAE31MDI+NZDerNWu264YbxklXCCygISgm+HMug==", "dependencies": { "System.Collections.NonGeneric": "4.0.1", "System.Globalization": "4.0.11", "System.Globalization.Extensions": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.ComponentModel": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==", "dependencies": { "System.Runtime": "4.1.0" } }, "System.ComponentModel.EventBasedAsync": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "Z7SO6vvQIR84daPE4uhaNdef9CjgjDMGYkas8epUhf0U3WGuaGgZ0Mm4QuNycMdbHUY8KEdZrtgxonkAiJaAlA==", "dependencies": { "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11" } }, "System.ComponentModel.Primitives": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "sc/7eVCdxPrp3ljpgTKVaQGUXiW05phNWvtv/m2kocXqrUQvTVWKou1Edas2aDjTThLPZOxPYIGNb/HN0QjURg==", "dependencies": { "System.ComponentModel": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0" } }, "System.ComponentModel.TypeConverter": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "MnDAlaeJZy9pdB5ZdOlwdxfpI+LJQ6e0hmH7d2+y2LkiD8DRJynyDYl4Xxf3fWFm7SbEwBZh4elcfzONQLOoQw==", "dependencies": { "System.Collections": "4.0.11", "System.Collections.NonGeneric": "4.0.1", "System.Collections.Specialized": "4.0.1", "System.ComponentModel": "4.0.1", "System.ComponentModel.Primitives": "4.1.0", "System.Globalization": "4.0.11", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Composition": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "tRwgcAkDd85O8Aq6zHDANzQaq380cek9lbMg5Qma46u5BZXq/G+XvIYmu+UI+BIIZ9zssXLYrkTykEqxxvhcmg==", "dependencies": { "System.Composition.AttributedModel": "7.0.0", "System.Composition.Convention": "7.0.0", "System.Composition.Hosting": "7.0.0", "System.Composition.Runtime": "7.0.0", "System.Composition.TypedParts": "7.0.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "2QzClqjElKxgI1jK1Jztnq44/8DmSuTSGGahXqQ4TdEV0h9s2KikQZIgcEqVzR7OuWDFPGLHIprBJGQEPr8fAQ==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "IMhTlpCs4HmlD8B+J8/kWfwX7vrBBOs6xyjSTzBlYSs7W4OET4tlkR/Sg9NG8jkdJH9Mymq0qGdYS1VPqRTBnQ==", "dependencies": { "System.Composition.AttributedModel": "7.0.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "eB6gwN9S+54jCTBJ5bpwMOVerKeUfGGTYCzz3QgDr1P55Gg/Wb27ShfPIhLMjmZ3MoAKu8uUSv6fcCdYJTN7Bg==", "dependencies": { "System.Composition.Runtime": "7.0.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "aZJ1Zr5Txe925rbo4742XifEyW0MIni1eiUebmcrP3HwLXZ3IbXUj4MFMUH/RmnJOAQiS401leg/2Sz1MkApDw==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "ZK0KNPfbtxVceTwh+oHNGUOYV2WNOHReX2AXipuvkURC7s/jPwoWfsu3SnDBDgofqbiWr96geofdQ2erm/KTHg==", "dependencies": { "System.Composition.AttributedModel": "7.0.0", "System.Composition.Hosting": "7.0.0", "System.Composition.Runtime": "7.0.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==", "dependencies": { "System.Security.Cryptography.ProtectedData": "8.0.0" } }, "System.Console": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Data.DataSetExtensions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw==" }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "7.0.2", "contentHash": "hYr3I9N9811e0Bjf2WNwAGGyTuAFbbTgX1RPLt/3Wbm68x3IGcX5Cl75CMmgT6WlNwLQ2tCCWfqYPpypjaf2xA==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Diagnostics.Process": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "mpVZ5bnlSs3tTeJ6jYyDJEIa6tavhAd88lxq1zbYhkkCu0Pno2+gHXcvZcoygq2d8JxW3gojXqNJMTAshduqZA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "Microsoft.Win32.Primitives": "4.0.1", "Microsoft.Win32.Registry": "4.0.0", "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.IO.FileSystem": "4.0.1", "System.IO.FileSystem.Primitives": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Handles": "4.0.1", "System.Runtime.InteropServices": "4.1.0", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "System.Threading.Thread": "4.0.0", "System.Threading.ThreadPool": "4.0.10", "runtime.native.System": "4.0.0" } }, "System.Diagnostics.TextWriterTraceListener": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "w36Dr8yKy8xP150qPANe7Td+/zOI3G62ImRcHDIEW+oUXUuTKZHd4DHmqRx5+x8RXd85v3tXd1uhNTfsr+yxjA==", "dependencies": { "System.Diagnostics.TraceSource": "4.0.0", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.TraceSource": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "runtime.native.System": "4.0.0" } }, "System.Diagnostics.Tracing": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Buffers": "4.3.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.IO.Compression": "4.3.0" } }, "System.IO.Compression.ZipFile": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", "dependencies": { "System.Buffers": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.IO.FileSystem": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==" }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Net.Sockets": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Private.DataContractSerialization": { "type": "Transitive", "resolved": "4.1.1", "contentHash": "lcqFBUaCZxPiUkA4dlSOoPZGtZsAuuElH2XHgLwGLxd7ZozWetV5yiz0qGAV2AUYOqw97MtZBjbLMN16Xz4vXA==", "dependencies": { "System.Collections": "4.0.11", "System.Collections.Concurrent": "4.0.12", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Emit.Lightweight": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1", "System.Xml.XmlSerializer": "4.0.11" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==" }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "MclTG61lsD9sYdpNz9xsKBzjsmsfCtcMZYXz/IUr2zlhaTaABonlr1ESeompTgM+Xk+IwtGYU7/voh3YWB/fWw==", "dependencies": { "System.Collections.Immutable": "7.0.0", "System.Memory": "4.5.5" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.InteropServices.RuntimeInformation": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0" } }, "System.Runtime.Loader": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "4UN78GOVU/mbDFcXkEWtetJT/sJ0yic2gGk1HSlSpWI0TDf421xnrZTDZnwNBapk1GQeYN7U1lTj/aQB1by6ow==", "dependencies": { "System.IO": "4.1.0", "System.Reflection": "4.1.0", "System.Runtime": "4.1.0" } }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Runtime.Serialization.Json": { "type": "Transitive", "resolved": "4.0.2", "contentHash": "+7DIJhnKYgCzUgcLbVTtRQb2l1M0FP549XFlFkQM5lmNiUBl44AfNbx4bz61xA8PzLtlYwfmif4JJJW7MPPnjg==", "dependencies": { "System.IO": "4.1.0", "System.Private.DataContractSerialization": "4.1.1", "System.Runtime": "4.1.0" } }, "System.Runtime.Serialization.Primitives": { "type": "Transitive", "resolved": "4.1.1", "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", "dependencies": { "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0" } }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", "dependencies": { "Microsoft.NETCore.Platforms": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Cng": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==", "dependencies": { "System.Memory": "4.5.5" } }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.Encoding.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { "System.Runtime": "4.3.1" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Channels": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "qmeeYNROMsONF6ndEZcIQ+VxR4Q/TX/7uIVLJqtwIWL7dDWeh0l1UIqgo4wYyjG//5lUNhwkLDSFl+pAWO6oiA==" }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==" }, "System.Threading.Thread": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "gIdJqDXlOr5W9zeqFErLw3dsOsiShSCYtF9SEHitACycmvNvY8odf9kiKvp6V7aibc8C4HzzNBkWXjyfn7plbQ==", "dependencies": { "System.Runtime": "4.1.0" } }, "System.Threading.ThreadPool": { "type": "Transitive", "resolved": "4.0.10", "contentHash": "IMXgB5Vf/5Qw1kpoVgJMOvUO1l32aC+qC3OaIZjWJOjvcxuxNWOK2ZTWWYXfij22NHxT2j1yWX5vlAeQWld9vA==", "dependencies": { "System.Runtime": "4.1.0", "System.Runtime.Handles": "4.0.1" } }, "System.Threading.Timer": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Xml.ReaderWriter": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Tasks.Extensions": "4.3.0" } }, "System.Xml.XDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "System.Xml.XmlDocument": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "2eZu6IP+etFVBBFUFzw2w6J21DqIN5eL9Y8r8JfJWUmV28Z5P0SNU01oCisVHQgHsDhHPnmq2s1hJrJCFZWloQ==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Text.Encoding": "4.0.11", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11" } }, "System.Xml.XmlSerializer": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "FrazwwqfIXTfq23mfv4zH+BjqkSFNaNFBtjzu3I9NRmG8EELYyrv/fJnttCIwRMFRR/YKXF1hmsMmMEnl55HGw==", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit": "4.0.1", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1" } }, "System.Xml.XPath": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11" } }, "System.Xml.XPath.XmlDocument": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "Zm2BdeanuncYs3NhCj4c9e1x3EXFzFBVv2wPEc/Dj4ZbI9R8ecLSR5frAsx4zJCPBtKQreQ7Q/KxJEohJZbfzA==", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XPath": "4.0.1", "System.Xml.XmlDocument": "4.0.1" } }, "xunit.abstractions": { "type": "Transitive", "resolved": "2.0.3", "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==" }, "xunit.analyzers": { "type": "Transitive", "resolved": "0.10.0", "contentHash": "4/IDFCJfIeg6bix9apmUtIMwvOsiwqdEexeO/R2D4GReIGPLIRODTpId/l4LRSrAJk9lEO3Zx1H0Zx6uohJDNg==" }, "xunit.assert": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "O/Oe0BS5RmSsM+LQOb041TzuPo5MdH2Rov+qXGS37X+KFG1Hxz7kopYklM5+1Y+tRGeXrOx5+Xne1RuqLFQoyQ==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "xunit.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "Zsj5OMU6JasNGERXZy8s72+pcheG6Q15atS5XpZXqAtULuyQiQ6XNnUsp1gyfC6WgqScqMvySiEHmHcOG6Eg0Q==", "dependencies": { "xunit.extensibility.core": "[2.4.1]", "xunit.extensibility.execution": "[2.4.1]" } }, "xunit.extensibility.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "yKZKm/8QNZnBnGZFD9SewkllHBiK0DThybQD/G4PiAmQjKtEZyHi6ET70QPU9KtSMJGRYS6Syk7EyR2EVDU4Kg==", "dependencies": { "NETStandard.Library": "1.6.1", "xunit.abstractions": "2.0.3" } }, "xunit.extensibility.execution": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "7e/1jqBpcb7frLkB6XDrHCGXAbKN4Rtdb88epYxCSRQuZDRW8UtTfdTEVpdTl8s4T56e07hOBVd4G0OdCxIY2A==", "dependencies": { "NETStandard.Library": "1.6.1", "xunit.extensibility.core": "[2.4.1]" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } }, "MirrorSharp.FSharp": { "type": "Project", "dependencies": { "FSharp.Compiler.Service": "[43.8.300, )", "FSharp.Core": "[8.0.300, )", "Microsoft.Build.Utilities.Core": "[17.12.6, )", "Microsoft.IO.RecyclableMemoryStream": "[2.2.0, )", "MirrorSharp.Common": "[3.0.9, )" } }, "MirrorSharp.Testing": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )", "Newtonsoft.Json": "[13.0.3, )", "System.Buffers": "[4.5.1, )" } }, "MirrorSharp.VisualBasic": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.VisualBasic": "[3.3.1, )", "Microsoft.CodeAnalysis.VisualBasic.Features": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )" } } } } } ================================================ FILE: Tests.Roslyn47/Tests.Roslyn47.csproj ================================================ net7.0 false MirrorSharp.Tests.Roslyn47 MirrorSharp.Tests false VSTHRD200; RS1035 true PreserveNewest PreserveNewest ================================================ FILE: Tests.Roslyn47/packages.lock.json ================================================ { "version": 1, "dependencies": { "net7.0": { "coverlet.collector": { "type": "Direct", "requested": "[1.0.1, )", "resolved": "1.0.1", "contentHash": "RAuno8s7DBGo2IdV/1d8YSnXMd/728K3PBT5R6/kfGx1yunBZmavlaFQfhGe7Q7N2nUMkvVET+7ITn3+KSg+Uw==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.7.0, )", "resolved": "4.7.0", "contentHash": "zJQG1aUshI5R28EmVPnXgtVL5sLLAGOelLNkMlEKH3yh4sLUVPepitRe+HM0lSRLoTSu/ya0prwtUDku9xsZWQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.7.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.7.0]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Direct", "requested": "[4.7.0, )", "resolved": "4.7.0", "contentHash": "34A0Y4qkE8sYuffLDVbhqdKQnQvN7EfY4DufGVTGStWHkkkhclA6ag2TM9ZmLHpRerIQKbrWqhd/8k0EQ24HDg==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.CSharp": "[4.7.0]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.7.0]", "Microsoft.CodeAnalysis.Common": "[4.7.0]", "Microsoft.CodeAnalysis.Features": "[4.7.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.7.0]" } }, "Microsoft.CodeAnalysis.VisualBasic.Features": { "type": "Direct", "requested": "[4.7.0, )", "resolved": "4.7.0", "contentHash": "tZ3R+0CcWYN30uCPpDDhXIaklvBPh9iqAatuExB0InRUNienUY3QvyzhnvXIE+eFz/iozggvQwk+oui7ob3FWg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.7.0]", "Microsoft.CodeAnalysis.Features": "[4.7.0]", "Microsoft.CodeAnalysis.VisualBasic": "[4.7.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.7.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.7.0]" } }, "Microsoft.NET.Test.Sdk": { "type": "Direct", "requested": "[16.2.0, )", "resolved": "16.2.0", "contentHash": "56w1drIQqpMgg3IxHcfra/jXOngiD4pbl0j6TNeJMlOQGlZ8wCMlyRTvn6Crd/FgGjwKbWLurdOHNGrfzLtl6A==", "dependencies": { "Microsoft.CodeCoverage": "16.2.0", "Microsoft.TestPlatform.TestHost": "16.2.0" } }, "SourceMock": { "type": "Direct", "requested": "[0.10.0, )", "resolved": "0.10.0", "contentHash": "Dd/YMTTRZSDR34HgVEgfMoZfOTId3Ns0vehFcdLVwMuKLgMcg7/4Oj80qX112np9siR2C4vL3qfT1I9ahzxu9Q==", "dependencies": { "System.Collections.Immutable": "5.0.0" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "xunit": { "type": "Direct", "requested": "[2.4.1, )", "resolved": "2.4.1", "contentHash": "XNR3Yz9QTtec16O0aKcO6+baVNpXmOnPUxDkCY97J+8krUYxPvXT1szYYEUdKk4sB8GOI2YbAjRIOm8ZnXRfzQ==", "dependencies": { "xunit.analyzers": "0.10.0", "xunit.assert": "[2.4.1]", "xunit.core": "[2.4.1]" } }, "xunit.runner.visualstudio": { "type": "Direct", "requested": "[2.4.0, )", "resolved": "2.4.0", "contentHash": "3eq5cGXbEJkqW9nwLuXwtxy9B5gMA8i7HW4rN63AhAvy5UvEcQbZnve23wx/oPrkyg/4CbfNhxkBezS0b1oUdQ==", "dependencies": { "Microsoft.NET.Test.Sdk": "15.0.0" } }, "FSharp.Compiler.Service": { "type": "Transitive", "resolved": "43.8.300", "contentHash": "CoPjQYXXwmYkkHm+yxBHSW9IJVLpvwkKGEzXa5A6ebf8v6GfYaxZc5G+VHojDr586oezp1elFemu+A1WWH095A==", "dependencies": { "FSharp.Core": "[8.0.300]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "7.0.0", "System.Diagnostics.DiagnosticSource": "7.0.2", "System.Memory": "4.5.5", "System.Reflection.Emit": "4.7.0", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "FSharp.Core": { "type": "Transitive", "resolved": "8.0.300", "contentHash": "Jv44fV7TNglyMku89lQcA4Q6mFKLyHb2bs1Yb72nvSVc+cHplEnoZ4XQUaaTLJGUTx/iMqcrkYGtaLzkkIhpaA==" }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.14.1", "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==" }, "Microsoft.Build.Framework": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "jleteC0seumLGTmTVwob97lcwPj/dfgzL/V3g/VVcMZgo2Ic7jzdy8AYpByPDh8e3uRq0SjCl6HOFCjhy5GzRQ==", "dependencies": { "Microsoft.Win32.Registry": "5.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "Microsoft.Build.Utilities.Core": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "pU3GnHcXp8VRMGKxdJCq+tixfhFn+QwEbpqmZmc/nqFHFyuhlGwjonWZMIWcwuCv/8EHgxoOttFvna1vrN+RrA==", "dependencies": { "Microsoft.Build.Framework": "17.12.6", "Microsoft.NET.StringTools": "17.12.6", "Microsoft.Win32.Registry": "5.0.0", "System.Collections.Immutable": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0", "System.Text.Encoding.CodePages": "7.0.0" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.3.4", "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "pD5S14xMUebSGYe75kt0q/aaS/ftvktSo/pEv7aX7hNPHfdZS+SZeXvkvcffGxWkunYOyRF9m1oN7zzSdYj9dQ==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "System.Collections.Immutable": "7.0.0", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "JHCP2L6lB0oJ3tQoHkC67SFZxW+KbJVOnAo+6L01K5r/NlBlSUhTk5nUAldWhTVwGdzqNeHqGtnEqpsCmGSwQA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.7.0]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "SGTp5f22SJJKTHzNe3cfk57KHX7sYxrnfG9juXrbIidt3pooKMnxMN9aBCI/smMCLLB7RHITJrbzGCKvYhBqpA==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.CSharp": "[4.7.0]", "Microsoft.CodeAnalysis.Common": "[4.7.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.7.0]" } }, "Microsoft.CodeAnalysis.Elfie": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "r12elUp4MRjdnRfxEP+xqVSUUfG3yIJTBEJGwbfvF5oU4m0jb9HC0gFG28V/dAkYGMkRmHVi3qvrnBLQSw9X3Q==", "dependencies": { "System.Configuration.ConfigurationManager": "4.5.0", "System.Data.DataSetExtensions": "4.5.0" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "HTYbcr0djPBYTijN4EbvVi4tdNUQMHflKM8OkfD2RmYDZm4pH4/3AwrLrziKMMUS07PPpGKZkb/io93zjzWDYg==", "dependencies": { "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Common": "[4.7.0]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Scripting.Common": "[4.7.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.7.0]", "Microsoft.DiaSymReader": "2.0.0", "System.Text.Json": "7.0.3" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "/rooxKDFwy5XnhXdhGfk0I7zaPuLg6G+jPlS0r0gxmdgYwhqIvLBRm2DMyI2WthxwGtPTCo2LqhCc5i5+JEnaw==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.7.0]" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "smGPrhgifTZqPbUQ5UoHOtcKGIG1nHGGOy7lbQ0Td/ByrVQ9UEmOTDPvIOhhzYc9LNQo2zmxRTXTvkx+PJVARA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.7.0]" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "TfMS0+BFJ6YXsyqmSuGcTFC1/vtED35X4oMIDLrpAboNmgrx0ukR83pVKE2cGpF5ck9DzCmWvZNPHNiKc7d99g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.7.0]", "Microsoft.CodeAnalysis.VisualBasic": "[4.7.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.7.0]" } }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "izjaI7OzNQnIiIJJQ5nLETA98rSWyCjkmup55bdLXWjUKYsFt/kz94uedtzGaWOOgTyHPRhQG9kgr6wNIZXxjA==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "7.0.0", "Microsoft.CodeAnalysis.Common": "[4.7.0]", "System.Composition": "7.0.0", "System.IO.Pipelines": "7.0.0", "System.Threading.Channels": "7.0.0" } }, "Microsoft.CodeCoverage": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "fKiUOhhMP3IN1qM2tDHPWzW4JRbriFkIPiIzKUwMWT+Q+80bycxkLLCvxmVFoeA7gvWegNbTUjaX7mL3MM9XKg==" }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "2.0.0", "contentHash": "QcZrCETsBJqy/vQpFtJc+jSXQ0K5sucQ6NUFbTNVHD4vfZZOwjZ/3sBzczkC4DityhD3AVO/+K/+9ioLs1AgRA==" }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", "resolved": "2.2.0", "contentHash": "uyjY/cqomw1irT4L7lDeg4sJ36MsjHg3wKqpGrBAdzvZaxo85yMF+sAA9RIzTV92fDxuUzjqksMqA0+SNMkMgA==" }, "Microsoft.NET.StringTools": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "w8Ehofqte5bJoR+Fa3f6JwkwFEkGtXxqvQHGOVOSHDzgNVySvL5FSNhavbQSZ864el9c3rjdLPLAtBW8dq6fmg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "RAyBf87uZ5XjRE953LlxqILpD1SqwQM6bXwxPUCAPPEy0uv12R+eKnFL7yaeLVHInMKkNNh1iD/cDOVDfSgllA==", "dependencies": { "NETStandard.Library": "1.6.0", "System.ComponentModel.EventBasedAsync": "4.0.11", "System.ComponentModel.TypeConverter": "4.1.0", "System.Diagnostics.Process": "4.1.0", "System.Diagnostics.TextWriterTraceListener": "4.0.0", "System.Diagnostics.TraceSource": "4.0.0", "System.Reflection.Metadata": "1.3.0", "System.Reflection.TypeExtensions": "4.1.0", "System.Runtime.InteropServices.RuntimeInformation": "4.0.0", "System.Runtime.Loader": "4.0.0", "System.Runtime.Serialization.Json": "4.0.2", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Threading.Thread": "4.0.0", "System.Xml.XPath.XmlDocument": "4.0.1" } }, "Microsoft.TestPlatform.TestHost": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "PogSQ40KgkZjEBdC6KBGpMtuvFFCIdoJAMmK7CAHWyTXCfN1cPN8j0TFJKh+LneSg+y0QQDP23STMF609KhHQw==", "dependencies": { "Microsoft.TestPlatform.ObjectModel": "16.2.0", "Newtonsoft.Json": "9.0.1" } }, "Microsoft.Win32.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "Microsoft.Win32.Registry": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", "dependencies": { "System.Security.AccessControl": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "NETStandard.Library": { "type": "Transitive", "resolved": "1.6.1", "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.Win32.Primitives": "4.3.0", "System.AppContext": "4.3.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Console": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.Compression.ZipFile": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Net.Http": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Net.Sockets": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Timer": "4.3.0", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XDocument": "4.3.0" } }, "Newtonsoft.Json": { "type": "Transitive", "resolved": "13.0.3", "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.AppContext": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" }, "System.Collections.NonGeneric": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==", "dependencies": { "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Collections.Specialized": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "/HKQyVP0yH1I0YtK7KJL/28snxHNH/bi+0lgk/+MbURF6ULhAE31MDI+NZDerNWu264YbxklXCCygISgm+HMug==", "dependencies": { "System.Collections.NonGeneric": "4.0.1", "System.Globalization": "4.0.11", "System.Globalization.Extensions": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.ComponentModel": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==", "dependencies": { "System.Runtime": "4.1.0" } }, "System.ComponentModel.EventBasedAsync": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "Z7SO6vvQIR84daPE4uhaNdef9CjgjDMGYkas8epUhf0U3WGuaGgZ0Mm4QuNycMdbHUY8KEdZrtgxonkAiJaAlA==", "dependencies": { "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11" } }, "System.ComponentModel.Primitives": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "sc/7eVCdxPrp3ljpgTKVaQGUXiW05phNWvtv/m2kocXqrUQvTVWKou1Edas2aDjTThLPZOxPYIGNb/HN0QjURg==", "dependencies": { "System.ComponentModel": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0" } }, "System.ComponentModel.TypeConverter": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "MnDAlaeJZy9pdB5ZdOlwdxfpI+LJQ6e0hmH7d2+y2LkiD8DRJynyDYl4Xxf3fWFm7SbEwBZh4elcfzONQLOoQw==", "dependencies": { "System.Collections": "4.0.11", "System.Collections.NonGeneric": "4.0.1", "System.Collections.Specialized": "4.0.1", "System.ComponentModel": "4.0.1", "System.ComponentModel.Primitives": "4.1.0", "System.Globalization": "4.0.11", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Composition": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "tRwgcAkDd85O8Aq6zHDANzQaq380cek9lbMg5Qma46u5BZXq/G+XvIYmu+UI+BIIZ9zssXLYrkTykEqxxvhcmg==", "dependencies": { "System.Composition.AttributedModel": "7.0.0", "System.Composition.Convention": "7.0.0", "System.Composition.Hosting": "7.0.0", "System.Composition.Runtime": "7.0.0", "System.Composition.TypedParts": "7.0.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "2QzClqjElKxgI1jK1Jztnq44/8DmSuTSGGahXqQ4TdEV0h9s2KikQZIgcEqVzR7OuWDFPGLHIprBJGQEPr8fAQ==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "IMhTlpCs4HmlD8B+J8/kWfwX7vrBBOs6xyjSTzBlYSs7W4OET4tlkR/Sg9NG8jkdJH9Mymq0qGdYS1VPqRTBnQ==", "dependencies": { "System.Composition.AttributedModel": "7.0.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "eB6gwN9S+54jCTBJ5bpwMOVerKeUfGGTYCzz3QgDr1P55Gg/Wb27ShfPIhLMjmZ3MoAKu8uUSv6fcCdYJTN7Bg==", "dependencies": { "System.Composition.Runtime": "7.0.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "aZJ1Zr5Txe925rbo4742XifEyW0MIni1eiUebmcrP3HwLXZ3IbXUj4MFMUH/RmnJOAQiS401leg/2Sz1MkApDw==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "ZK0KNPfbtxVceTwh+oHNGUOYV2WNOHReX2AXipuvkURC7s/jPwoWfsu3SnDBDgofqbiWr96geofdQ2erm/KTHg==", "dependencies": { "System.Composition.AttributedModel": "7.0.0", "System.Composition.Hosting": "7.0.0", "System.Composition.Runtime": "7.0.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==", "dependencies": { "System.Diagnostics.EventLog": "8.0.0", "System.Security.Cryptography.ProtectedData": "8.0.0" } }, "System.Console": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Data.DataSetExtensions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw==" }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "7.0.2", "contentHash": "hYr3I9N9811e0Bjf2WNwAGGyTuAFbbTgX1RPLt/3Wbm68x3IGcX5Cl75CMmgT6WlNwLQ2tCCWfqYPpypjaf2xA==" }, "System.Diagnostics.EventLog": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "fdYxcRjQqTTacKId/2IECojlDSFvp7LP5N78+0z/xH7v/Tuw5ZAxu23Y6PTCRinqyu2ePx+Gn1098NC6jM6d+A==" }, "System.Diagnostics.Process": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "mpVZ5bnlSs3tTeJ6jYyDJEIa6tavhAd88lxq1zbYhkkCu0Pno2+gHXcvZcoygq2d8JxW3gojXqNJMTAshduqZA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "Microsoft.Win32.Primitives": "4.0.1", "Microsoft.Win32.Registry": "4.0.0", "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.IO.FileSystem": "4.0.1", "System.IO.FileSystem.Primitives": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Handles": "4.0.1", "System.Runtime.InteropServices": "4.1.0", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "System.Threading.Thread": "4.0.0", "System.Threading.ThreadPool": "4.0.10", "runtime.native.System": "4.0.0" } }, "System.Diagnostics.TextWriterTraceListener": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "w36Dr8yKy8xP150qPANe7Td+/zOI3G62ImRcHDIEW+oUXUuTKZHd4DHmqRx5+x8RXd85v3tXd1uhNTfsr+yxjA==", "dependencies": { "System.Diagnostics.TraceSource": "4.0.0", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.TraceSource": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "runtime.native.System": "4.0.0" } }, "System.Diagnostics.Tracing": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Buffers": "4.3.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.IO.Compression": "4.3.0" } }, "System.IO.Compression.ZipFile": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", "dependencies": { "System.Buffers": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.IO.FileSystem": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==" }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Net.Sockets": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Private.DataContractSerialization": { "type": "Transitive", "resolved": "4.1.1", "contentHash": "lcqFBUaCZxPiUkA4dlSOoPZGtZsAuuElH2XHgLwGLxd7ZozWetV5yiz0qGAV2AUYOqw97MtZBjbLMN16Xz4vXA==", "dependencies": { "System.Collections": "4.0.11", "System.Collections.Concurrent": "4.0.12", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Emit.Lightweight": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1", "System.Xml.XmlSerializer": "4.0.11" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==" }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "MclTG61lsD9sYdpNz9xsKBzjsmsfCtcMZYXz/IUr2zlhaTaABonlr1ESeompTgM+Xk+IwtGYU7/voh3YWB/fWw==", "dependencies": { "System.Collections.Immutable": "7.0.0" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.InteropServices.RuntimeInformation": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0" } }, "System.Runtime.Loader": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "4UN78GOVU/mbDFcXkEWtetJT/sJ0yic2gGk1HSlSpWI0TDf421xnrZTDZnwNBapk1GQeYN7U1lTj/aQB1by6ow==", "dependencies": { "System.IO": "4.1.0", "System.Reflection": "4.1.0", "System.Runtime": "4.1.0" } }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Runtime.Serialization.Json": { "type": "Transitive", "resolved": "4.0.2", "contentHash": "+7DIJhnKYgCzUgcLbVTtRQb2l1M0FP549XFlFkQM5lmNiUBl44AfNbx4bz61xA8PzLtlYwfmif4JJJW7MPPnjg==", "dependencies": { "System.IO": "4.1.0", "System.Private.DataContractSerialization": "4.1.1", "System.Runtime": "4.1.0" } }, "System.Runtime.Serialization.Primitives": { "type": "Transitive", "resolved": "4.1.1", "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", "dependencies": { "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0" } }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", "dependencies": { "Microsoft.NETCore.Platforms": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Cng": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==" }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==" }, "System.Text.Encoding.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { "System.Runtime": "4.3.1" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Channels": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "qmeeYNROMsONF6ndEZcIQ+VxR4Q/TX/7uIVLJqtwIWL7dDWeh0l1UIqgo4wYyjG//5lUNhwkLDSFl+pAWO6oiA==" }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==" }, "System.Threading.Thread": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "gIdJqDXlOr5W9zeqFErLw3dsOsiShSCYtF9SEHitACycmvNvY8odf9kiKvp6V7aibc8C4HzzNBkWXjyfn7plbQ==", "dependencies": { "System.Runtime": "4.1.0" } }, "System.Threading.ThreadPool": { "type": "Transitive", "resolved": "4.0.10", "contentHash": "IMXgB5Vf/5Qw1kpoVgJMOvUO1l32aC+qC3OaIZjWJOjvcxuxNWOK2ZTWWYXfij22NHxT2j1yWX5vlAeQWld9vA==", "dependencies": { "System.Runtime": "4.1.0", "System.Runtime.Handles": "4.0.1" } }, "System.Threading.Timer": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Xml.ReaderWriter": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Tasks.Extensions": "4.3.0" } }, "System.Xml.XDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "System.Xml.XmlDocument": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "2eZu6IP+etFVBBFUFzw2w6J21DqIN5eL9Y8r8JfJWUmV28Z5P0SNU01oCisVHQgHsDhHPnmq2s1hJrJCFZWloQ==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Text.Encoding": "4.0.11", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11" } }, "System.Xml.XmlSerializer": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "FrazwwqfIXTfq23mfv4zH+BjqkSFNaNFBtjzu3I9NRmG8EELYyrv/fJnttCIwRMFRR/YKXF1hmsMmMEnl55HGw==", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit": "4.0.1", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1" } }, "System.Xml.XPath": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11" } }, "System.Xml.XPath.XmlDocument": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "Zm2BdeanuncYs3NhCj4c9e1x3EXFzFBVv2wPEc/Dj4ZbI9R8ecLSR5frAsx4zJCPBtKQreQ7Q/KxJEohJZbfzA==", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XPath": "4.0.1", "System.Xml.XmlDocument": "4.0.1" } }, "xunit.abstractions": { "type": "Transitive", "resolved": "2.0.3", "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==" }, "xunit.analyzers": { "type": "Transitive", "resolved": "0.10.0", "contentHash": "4/IDFCJfIeg6bix9apmUtIMwvOsiwqdEexeO/R2D4GReIGPLIRODTpId/l4LRSrAJk9lEO3Zx1H0Zx6uohJDNg==" }, "xunit.assert": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "O/Oe0BS5RmSsM+LQOb041TzuPo5MdH2Rov+qXGS37X+KFG1Hxz7kopYklM5+1Y+tRGeXrOx5+Xne1RuqLFQoyQ==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "xunit.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "Zsj5OMU6JasNGERXZy8s72+pcheG6Q15atS5XpZXqAtULuyQiQ6XNnUsp1gyfC6WgqScqMvySiEHmHcOG6Eg0Q==", "dependencies": { "xunit.extensibility.core": "[2.4.1]", "xunit.extensibility.execution": "[2.4.1]" } }, "xunit.extensibility.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "yKZKm/8QNZnBnGZFD9SewkllHBiK0DThybQD/G4PiAmQjKtEZyHi6ET70QPU9KtSMJGRYS6Syk7EyR2EVDU4Kg==", "dependencies": { "NETStandard.Library": "1.6.1", "xunit.abstractions": "2.0.3" } }, "xunit.extensibility.execution": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "7e/1jqBpcb7frLkB6XDrHCGXAbKN4Rtdb88epYxCSRQuZDRW8UtTfdTEVpdTl8s4T56e07hOBVd4G0OdCxIY2A==", "dependencies": { "NETStandard.Library": "1.6.1", "xunit.extensibility.core": "[2.4.1]" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } }, "MirrorSharp.FSharp": { "type": "Project", "dependencies": { "FSharp.Compiler.Service": "[43.8.300, )", "FSharp.Core": "[8.0.300, )", "Microsoft.Build.Utilities.Core": "[17.12.6, )", "Microsoft.IO.RecyclableMemoryStream": "[2.2.0, )", "MirrorSharp.Common": "[3.0.9, )" } }, "MirrorSharp.Testing": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )", "Newtonsoft.Json": "[13.0.3, )", "System.Buffers": "[4.5.1, )" } }, "MirrorSharp.VisualBasic": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.VisualBasic": "[3.3.1, )", "Microsoft.CodeAnalysis.VisualBasic.Features": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )" } } } } } ================================================ FILE: Tests.Roslyn48/Tests.Roslyn48.csproj ================================================ net7.0 false MirrorSharp.Tests.Roslyn48 MirrorSharp.Tests false VSTHRD200; RS1035 true PreserveNewest PreserveNewest ================================================ FILE: Tests.Roslyn48/packages.lock.json ================================================ { "version": 1, "dependencies": { "net7.0": { "coverlet.collector": { "type": "Direct", "requested": "[1.0.1, )", "resolved": "1.0.1", "contentHash": "RAuno8s7DBGo2IdV/1d8YSnXMd/728K3PBT5R6/kfGx1yunBZmavlaFQfhGe7Q7N2nUMkvVET+7ITn3+KSg+Uw==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.8.0, )", "resolved": "4.8.0", "contentHash": "g5eTgZVyBr4k1zxvJeVrJ1nDvBHrDt7XX2Uo7UWRoF9GdzOv9od4WtOeL1/e86ifgwX/H7H1Vs5u2OCdv0HYpQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.8.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.8.0]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Direct", "requested": "[4.8.0, )", "resolved": "4.8.0", "contentHash": "Gpas3l8PE1xz1VDIJNMkYuoFPXtuALxybP04caXh9avC2a0elsoBdukndkJXVZgdKPwraf0a98s7tjqnEk5QIQ==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.CSharp": "[4.8.0]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.8.0]", "Microsoft.CodeAnalysis.Common": "[4.8.0]", "Microsoft.CodeAnalysis.Features": "[4.8.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.8.0]" } }, "Microsoft.CodeAnalysis.VisualBasic.Features": { "type": "Direct", "requested": "[4.8.0, )", "resolved": "4.8.0", "contentHash": "++BSJJYthCgHVfYJdzC7U1NwekDCgsGC3vjc2dWAX+AuMi5IGj4HlhbbwPfqq2VED4w0lcOqyhAmU6AxLu4Dhg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.8.0]", "Microsoft.CodeAnalysis.Features": "[4.8.0]", "Microsoft.CodeAnalysis.VisualBasic": "[4.8.0]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.8.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.8.0]" } }, "Microsoft.NET.Test.Sdk": { "type": "Direct", "requested": "[16.2.0, )", "resolved": "16.2.0", "contentHash": "56w1drIQqpMgg3IxHcfra/jXOngiD4pbl0j6TNeJMlOQGlZ8wCMlyRTvn6Crd/FgGjwKbWLurdOHNGrfzLtl6A==", "dependencies": { "Microsoft.CodeCoverage": "16.2.0", "Microsoft.TestPlatform.TestHost": "16.2.0" } }, "SourceMock": { "type": "Direct", "requested": "[0.10.0, )", "resolved": "0.10.0", "contentHash": "Dd/YMTTRZSDR34HgVEgfMoZfOTId3Ns0vehFcdLVwMuKLgMcg7/4Oj80qX112np9siR2C4vL3qfT1I9ahzxu9Q==", "dependencies": { "System.Collections.Immutable": "5.0.0" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "xunit": { "type": "Direct", "requested": "[2.4.1, )", "resolved": "2.4.1", "contentHash": "XNR3Yz9QTtec16O0aKcO6+baVNpXmOnPUxDkCY97J+8krUYxPvXT1szYYEUdKk4sB8GOI2YbAjRIOm8ZnXRfzQ==", "dependencies": { "xunit.analyzers": "0.10.0", "xunit.assert": "[2.4.1]", "xunit.core": "[2.4.1]" } }, "xunit.runner.visualstudio": { "type": "Direct", "requested": "[2.4.0, )", "resolved": "2.4.0", "contentHash": "3eq5cGXbEJkqW9nwLuXwtxy9B5gMA8i7HW4rN63AhAvy5UvEcQbZnve23wx/oPrkyg/4CbfNhxkBezS0b1oUdQ==", "dependencies": { "Microsoft.NET.Test.Sdk": "15.0.0" } }, "FSharp.Compiler.Service": { "type": "Transitive", "resolved": "43.8.300", "contentHash": "CoPjQYXXwmYkkHm+yxBHSW9IJVLpvwkKGEzXa5A6ebf8v6GfYaxZc5G+VHojDr586oezp1elFemu+A1WWH095A==", "dependencies": { "FSharp.Core": "[8.0.300]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "7.0.0", "System.Diagnostics.DiagnosticSource": "7.0.2", "System.Memory": "4.5.5", "System.Reflection.Emit": "4.7.0", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "FSharp.Core": { "type": "Transitive", "resolved": "8.0.300", "contentHash": "Jv44fV7TNglyMku89lQcA4Q6mFKLyHb2bs1Yb72nvSVc+cHplEnoZ4XQUaaTLJGUTx/iMqcrkYGtaLzkkIhpaA==" }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.14.1", "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==" }, "Microsoft.Build.Framework": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "jleteC0seumLGTmTVwob97lcwPj/dfgzL/V3g/VVcMZgo2Ic7jzdy8AYpByPDh8e3uRq0SjCl6HOFCjhy5GzRQ==", "dependencies": { "Microsoft.Win32.Registry": "5.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "Microsoft.Build.Utilities.Core": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "pU3GnHcXp8VRMGKxdJCq+tixfhFn+QwEbpqmZmc/nqFHFyuhlGwjonWZMIWcwuCv/8EHgxoOttFvna1vrN+RrA==", "dependencies": { "Microsoft.Build.Framework": "17.12.6", "Microsoft.NET.StringTools": "17.12.6", "Microsoft.Win32.Registry": "5.0.0", "System.Collections.Immutable": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0", "System.Text.Encoding.CodePages": "7.0.0" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.3.4", "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.8.0", "contentHash": "/jR+e/9aT+BApoQJABlVCKnnggGQbvGh7BKq2/wI1LamxC+LbzhcLj4Vj7gXCofl1n4E521YfF9w0WcASGg/KA==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "System.Collections.Immutable": "7.0.0", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.8.0", "contentHash": "+3+qfdb/aaGD8PZRCrsdobbzGs1m9u119SkkJt8e/mk3xLJz/udLtS2T6nY27OTXxBBw10HzAbC8Z9w08VyP/g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.8.0]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.8.0", "contentHash": "3amm4tq4Lo8/BGvg9p3BJh3S9nKq2wqCXfS7138i69TUpo/bD+XvD0hNurpEBtcNZhi1FyutiomKJqVF39ugYA==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.CSharp": "[4.8.0]", "Microsoft.CodeAnalysis.Common": "[4.8.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.8.0]" } }, "Microsoft.CodeAnalysis.Elfie": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "r12elUp4MRjdnRfxEP+xqVSUUfG3yIJTBEJGwbfvF5oU4m0jb9HC0gFG28V/dAkYGMkRmHVi3qvrnBLQSw9X3Q==", "dependencies": { "System.Configuration.ConfigurationManager": "4.5.0", "System.Data.DataSetExtensions": "4.5.0" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "4.8.0", "contentHash": "sCVzMtSETGE16KeScwwlVfxaKRbUMSf/cgRPRPMJuou37SLT7XkIBzJu4e7mlFTzpJbfalV5tOcKpUtLO3eJAg==", "dependencies": { "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Common": "[4.8.0]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Scripting.Common": "[4.8.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.8.0]", "Microsoft.DiaSymReader": "2.0.0", "System.Text.Json": "7.0.3" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.8.0", "contentHash": "ysiNNbAASVhV9wEd5oY2x99EwaVYtB13XZRjHsgWT/R1mQkxZF8jWsf7JWaZxD1+jNoz1QCQ6nbe+vr+6QvlFA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.8.0]" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.8.0", "contentHash": "kfHPh/etcWypMDYfHxgfitgJMhi986OFCICb76RPcA1Toordf6bBYEJytWr2L5CNdkXFWuw5qTkrlsktBav4VA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.8.0]" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.8.0", "contentHash": "4fNpQX8LRV0ZCfB6+rr9s61zdhNpN6Bgow/kmvsO2Gm5KtzbOUPijbUZex26wJwRHyW+ZYoatTRd449A7+D3Wg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.8.0]", "Microsoft.CodeAnalysis.VisualBasic": "[4.8.0]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.8.0]" } }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "4.8.0", "contentHash": "LXyV+MJKsKRu3FGJA3OmSk40OUIa/dQCFLOnm5X8MNcujx7hzGu8o+zjXlb/cy5xUdZK2UKYb9YaQ2E8m9QehQ==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "7.0.0", "Microsoft.CodeAnalysis.Common": "[4.8.0]", "System.Composition": "7.0.0", "System.IO.Pipelines": "7.0.0", "System.Threading.Channels": "7.0.0" } }, "Microsoft.CodeCoverage": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "fKiUOhhMP3IN1qM2tDHPWzW4JRbriFkIPiIzKUwMWT+Q+80bycxkLLCvxmVFoeA7gvWegNbTUjaX7mL3MM9XKg==" }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "2.0.0", "contentHash": "QcZrCETsBJqy/vQpFtJc+jSXQ0K5sucQ6NUFbTNVHD4vfZZOwjZ/3sBzczkC4DityhD3AVO/+K/+9ioLs1AgRA==" }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", "resolved": "2.2.0", "contentHash": "uyjY/cqomw1irT4L7lDeg4sJ36MsjHg3wKqpGrBAdzvZaxo85yMF+sAA9RIzTV92fDxuUzjqksMqA0+SNMkMgA==" }, "Microsoft.NET.StringTools": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "w8Ehofqte5bJoR+Fa3f6JwkwFEkGtXxqvQHGOVOSHDzgNVySvL5FSNhavbQSZ864el9c3rjdLPLAtBW8dq6fmg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "RAyBf87uZ5XjRE953LlxqILpD1SqwQM6bXwxPUCAPPEy0uv12R+eKnFL7yaeLVHInMKkNNh1iD/cDOVDfSgllA==", "dependencies": { "NETStandard.Library": "1.6.0", "System.ComponentModel.EventBasedAsync": "4.0.11", "System.ComponentModel.TypeConverter": "4.1.0", "System.Diagnostics.Process": "4.1.0", "System.Diagnostics.TextWriterTraceListener": "4.0.0", "System.Diagnostics.TraceSource": "4.0.0", "System.Reflection.Metadata": "1.3.0", "System.Reflection.TypeExtensions": "4.1.0", "System.Runtime.InteropServices.RuntimeInformation": "4.0.0", "System.Runtime.Loader": "4.0.0", "System.Runtime.Serialization.Json": "4.0.2", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Threading.Thread": "4.0.0", "System.Xml.XPath.XmlDocument": "4.0.1" } }, "Microsoft.TestPlatform.TestHost": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "PogSQ40KgkZjEBdC6KBGpMtuvFFCIdoJAMmK7CAHWyTXCfN1cPN8j0TFJKh+LneSg+y0QQDP23STMF609KhHQw==", "dependencies": { "Microsoft.TestPlatform.ObjectModel": "16.2.0", "Newtonsoft.Json": "9.0.1" } }, "Microsoft.Win32.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "Microsoft.Win32.Registry": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", "dependencies": { "System.Security.AccessControl": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "NETStandard.Library": { "type": "Transitive", "resolved": "1.6.1", "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.Win32.Primitives": "4.3.0", "System.AppContext": "4.3.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Console": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.Compression.ZipFile": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Net.Http": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Net.Sockets": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Timer": "4.3.0", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XDocument": "4.3.0" } }, "Newtonsoft.Json": { "type": "Transitive", "resolved": "13.0.3", "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.AppContext": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" }, "System.Collections.NonGeneric": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==", "dependencies": { "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Collections.Specialized": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "/HKQyVP0yH1I0YtK7KJL/28snxHNH/bi+0lgk/+MbURF6ULhAE31MDI+NZDerNWu264YbxklXCCygISgm+HMug==", "dependencies": { "System.Collections.NonGeneric": "4.0.1", "System.Globalization": "4.0.11", "System.Globalization.Extensions": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.ComponentModel": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==", "dependencies": { "System.Runtime": "4.1.0" } }, "System.ComponentModel.EventBasedAsync": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "Z7SO6vvQIR84daPE4uhaNdef9CjgjDMGYkas8epUhf0U3WGuaGgZ0Mm4QuNycMdbHUY8KEdZrtgxonkAiJaAlA==", "dependencies": { "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11" } }, "System.ComponentModel.Primitives": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "sc/7eVCdxPrp3ljpgTKVaQGUXiW05phNWvtv/m2kocXqrUQvTVWKou1Edas2aDjTThLPZOxPYIGNb/HN0QjURg==", "dependencies": { "System.ComponentModel": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0" } }, "System.ComponentModel.TypeConverter": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "MnDAlaeJZy9pdB5ZdOlwdxfpI+LJQ6e0hmH7d2+y2LkiD8DRJynyDYl4Xxf3fWFm7SbEwBZh4elcfzONQLOoQw==", "dependencies": { "System.Collections": "4.0.11", "System.Collections.NonGeneric": "4.0.1", "System.Collections.Specialized": "4.0.1", "System.ComponentModel": "4.0.1", "System.ComponentModel.Primitives": "4.1.0", "System.Globalization": "4.0.11", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Composition": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "tRwgcAkDd85O8Aq6zHDANzQaq380cek9lbMg5Qma46u5BZXq/G+XvIYmu+UI+BIIZ9zssXLYrkTykEqxxvhcmg==", "dependencies": { "System.Composition.AttributedModel": "7.0.0", "System.Composition.Convention": "7.0.0", "System.Composition.Hosting": "7.0.0", "System.Composition.Runtime": "7.0.0", "System.Composition.TypedParts": "7.0.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "2QzClqjElKxgI1jK1Jztnq44/8DmSuTSGGahXqQ4TdEV0h9s2KikQZIgcEqVzR7OuWDFPGLHIprBJGQEPr8fAQ==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "IMhTlpCs4HmlD8B+J8/kWfwX7vrBBOs6xyjSTzBlYSs7W4OET4tlkR/Sg9NG8jkdJH9Mymq0qGdYS1VPqRTBnQ==", "dependencies": { "System.Composition.AttributedModel": "7.0.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "eB6gwN9S+54jCTBJ5bpwMOVerKeUfGGTYCzz3QgDr1P55Gg/Wb27ShfPIhLMjmZ3MoAKu8uUSv6fcCdYJTN7Bg==", "dependencies": { "System.Composition.Runtime": "7.0.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "aZJ1Zr5Txe925rbo4742XifEyW0MIni1eiUebmcrP3HwLXZ3IbXUj4MFMUH/RmnJOAQiS401leg/2Sz1MkApDw==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "ZK0KNPfbtxVceTwh+oHNGUOYV2WNOHReX2AXipuvkURC7s/jPwoWfsu3SnDBDgofqbiWr96geofdQ2erm/KTHg==", "dependencies": { "System.Composition.AttributedModel": "7.0.0", "System.Composition.Hosting": "7.0.0", "System.Composition.Runtime": "7.0.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==", "dependencies": { "System.Diagnostics.EventLog": "8.0.0", "System.Security.Cryptography.ProtectedData": "8.0.0" } }, "System.Console": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Data.DataSetExtensions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw==" }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "7.0.2", "contentHash": "hYr3I9N9811e0Bjf2WNwAGGyTuAFbbTgX1RPLt/3Wbm68x3IGcX5Cl75CMmgT6WlNwLQ2tCCWfqYPpypjaf2xA==" }, "System.Diagnostics.EventLog": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "fdYxcRjQqTTacKId/2IECojlDSFvp7LP5N78+0z/xH7v/Tuw5ZAxu23Y6PTCRinqyu2ePx+Gn1098NC6jM6d+A==" }, "System.Diagnostics.Process": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "mpVZ5bnlSs3tTeJ6jYyDJEIa6tavhAd88lxq1zbYhkkCu0Pno2+gHXcvZcoygq2d8JxW3gojXqNJMTAshduqZA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "Microsoft.Win32.Primitives": "4.0.1", "Microsoft.Win32.Registry": "4.0.0", "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.IO.FileSystem": "4.0.1", "System.IO.FileSystem.Primitives": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Handles": "4.0.1", "System.Runtime.InteropServices": "4.1.0", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "System.Threading.Thread": "4.0.0", "System.Threading.ThreadPool": "4.0.10", "runtime.native.System": "4.0.0" } }, "System.Diagnostics.TextWriterTraceListener": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "w36Dr8yKy8xP150qPANe7Td+/zOI3G62ImRcHDIEW+oUXUuTKZHd4DHmqRx5+x8RXd85v3tXd1uhNTfsr+yxjA==", "dependencies": { "System.Diagnostics.TraceSource": "4.0.0", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.TraceSource": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "runtime.native.System": "4.0.0" } }, "System.Diagnostics.Tracing": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Buffers": "4.3.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.IO.Compression": "4.3.0" } }, "System.IO.Compression.ZipFile": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", "dependencies": { "System.Buffers": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.IO.FileSystem": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==" }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Net.Sockets": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Private.DataContractSerialization": { "type": "Transitive", "resolved": "4.1.1", "contentHash": "lcqFBUaCZxPiUkA4dlSOoPZGtZsAuuElH2XHgLwGLxd7ZozWetV5yiz0qGAV2AUYOqw97MtZBjbLMN16Xz4vXA==", "dependencies": { "System.Collections": "4.0.11", "System.Collections.Concurrent": "4.0.12", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Emit.Lightweight": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1", "System.Xml.XmlSerializer": "4.0.11" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==" }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "MclTG61lsD9sYdpNz9xsKBzjsmsfCtcMZYXz/IUr2zlhaTaABonlr1ESeompTgM+Xk+IwtGYU7/voh3YWB/fWw==", "dependencies": { "System.Collections.Immutable": "7.0.0" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.InteropServices.RuntimeInformation": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0" } }, "System.Runtime.Loader": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "4UN78GOVU/mbDFcXkEWtetJT/sJ0yic2gGk1HSlSpWI0TDf421xnrZTDZnwNBapk1GQeYN7U1lTj/aQB1by6ow==", "dependencies": { "System.IO": "4.1.0", "System.Reflection": "4.1.0", "System.Runtime": "4.1.0" } }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Runtime.Serialization.Json": { "type": "Transitive", "resolved": "4.0.2", "contentHash": "+7DIJhnKYgCzUgcLbVTtRQb2l1M0FP549XFlFkQM5lmNiUBl44AfNbx4bz61xA8PzLtlYwfmif4JJJW7MPPnjg==", "dependencies": { "System.IO": "4.1.0", "System.Private.DataContractSerialization": "4.1.1", "System.Runtime": "4.1.0" } }, "System.Runtime.Serialization.Primitives": { "type": "Transitive", "resolved": "4.1.1", "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", "dependencies": { "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0" } }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", "dependencies": { "Microsoft.NETCore.Platforms": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Cng": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==" }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==" }, "System.Text.Encoding.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { "System.Runtime": "4.3.1" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Channels": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "qmeeYNROMsONF6ndEZcIQ+VxR4Q/TX/7uIVLJqtwIWL7dDWeh0l1UIqgo4wYyjG//5lUNhwkLDSFl+pAWO6oiA==" }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==" }, "System.Threading.Thread": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "gIdJqDXlOr5W9zeqFErLw3dsOsiShSCYtF9SEHitACycmvNvY8odf9kiKvp6V7aibc8C4HzzNBkWXjyfn7plbQ==", "dependencies": { "System.Runtime": "4.1.0" } }, "System.Threading.ThreadPool": { "type": "Transitive", "resolved": "4.0.10", "contentHash": "IMXgB5Vf/5Qw1kpoVgJMOvUO1l32aC+qC3OaIZjWJOjvcxuxNWOK2ZTWWYXfij22NHxT2j1yWX5vlAeQWld9vA==", "dependencies": { "System.Runtime": "4.1.0", "System.Runtime.Handles": "4.0.1" } }, "System.Threading.Timer": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Xml.ReaderWriter": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Tasks.Extensions": "4.3.0" } }, "System.Xml.XDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "System.Xml.XmlDocument": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "2eZu6IP+etFVBBFUFzw2w6J21DqIN5eL9Y8r8JfJWUmV28Z5P0SNU01oCisVHQgHsDhHPnmq2s1hJrJCFZWloQ==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Text.Encoding": "4.0.11", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11" } }, "System.Xml.XmlSerializer": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "FrazwwqfIXTfq23mfv4zH+BjqkSFNaNFBtjzu3I9NRmG8EELYyrv/fJnttCIwRMFRR/YKXF1hmsMmMEnl55HGw==", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit": "4.0.1", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1" } }, "System.Xml.XPath": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11" } }, "System.Xml.XPath.XmlDocument": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "Zm2BdeanuncYs3NhCj4c9e1x3EXFzFBVv2wPEc/Dj4ZbI9R8ecLSR5frAsx4zJCPBtKQreQ7Q/KxJEohJZbfzA==", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XPath": "4.0.1", "System.Xml.XmlDocument": "4.0.1" } }, "xunit.abstractions": { "type": "Transitive", "resolved": "2.0.3", "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==" }, "xunit.analyzers": { "type": "Transitive", "resolved": "0.10.0", "contentHash": "4/IDFCJfIeg6bix9apmUtIMwvOsiwqdEexeO/R2D4GReIGPLIRODTpId/l4LRSrAJk9lEO3Zx1H0Zx6uohJDNg==" }, "xunit.assert": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "O/Oe0BS5RmSsM+LQOb041TzuPo5MdH2Rov+qXGS37X+KFG1Hxz7kopYklM5+1Y+tRGeXrOx5+Xne1RuqLFQoyQ==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "xunit.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "Zsj5OMU6JasNGERXZy8s72+pcheG6Q15atS5XpZXqAtULuyQiQ6XNnUsp1gyfC6WgqScqMvySiEHmHcOG6Eg0Q==", "dependencies": { "xunit.extensibility.core": "[2.4.1]", "xunit.extensibility.execution": "[2.4.1]" } }, "xunit.extensibility.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "yKZKm/8QNZnBnGZFD9SewkllHBiK0DThybQD/G4PiAmQjKtEZyHi6ET70QPU9KtSMJGRYS6Syk7EyR2EVDU4Kg==", "dependencies": { "NETStandard.Library": "1.6.1", "xunit.abstractions": "2.0.3" } }, "xunit.extensibility.execution": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "7e/1jqBpcb7frLkB6XDrHCGXAbKN4Rtdb88epYxCSRQuZDRW8UtTfdTEVpdTl8s4T56e07hOBVd4G0OdCxIY2A==", "dependencies": { "NETStandard.Library": "1.6.1", "xunit.extensibility.core": "[2.4.1]" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } }, "MirrorSharp.FSharp": { "type": "Project", "dependencies": { "FSharp.Compiler.Service": "[43.8.300, )", "FSharp.Core": "[8.0.300, )", "Microsoft.Build.Utilities.Core": "[17.12.6, )", "Microsoft.IO.RecyclableMemoryStream": "[2.2.0, )", "MirrorSharp.Common": "[3.0.9, )" } }, "MirrorSharp.Testing": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )", "Newtonsoft.Json": "[13.0.3, )", "System.Buffers": "[4.5.1, )" } }, "MirrorSharp.VisualBasic": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.VisualBasic": "[3.3.1, )", "Microsoft.CodeAnalysis.VisualBasic.Features": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )" } } } } } ================================================ FILE: Tests.Roslyn49/Tests.Roslyn49.csproj ================================================ net7.0 false MirrorSharp.Tests.Roslyn49 MirrorSharp.Tests false VSTHRD200; RS1035 true PreserveNewest PreserveNewest ================================================ FILE: Tests.Roslyn49/packages.lock.json ================================================ { "version": 1, "dependencies": { "net7.0": { "coverlet.collector": { "type": "Direct", "requested": "[1.0.1, )", "resolved": "1.0.1", "contentHash": "RAuno8s7DBGo2IdV/1d8YSnXMd/728K3PBT5R6/kfGx1yunBZmavlaFQfhGe7Q7N2nUMkvVET+7ITn3+KSg+Uw==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.9.2, )", "resolved": "4.9.2", "contentHash": "J2r/KAYUifHSGjYJmG30ozSJI9akYp04rj9NQW5maiUrtywJ/edtFeWChTNdGl3l+FqdryPBeqg4k33XgxxitA==", "dependencies": { "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.9.2]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.9.2]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Direct", "requested": "[4.9.2, )", "resolved": "4.9.2", "contentHash": "xWXrqiQjo/JV6ZBCLcVDPFuwahM1N0YsJjigK+Hcxb4HSDlulBcu0/MbdWOd20vbyXM51FOcBPjmSbRtPnFZCg==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.CSharp": "[4.9.2]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.9.2]", "Microsoft.CodeAnalysis.Common": "[4.9.2]", "Microsoft.CodeAnalysis.Features": "[4.9.2]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.9.2]" } }, "Microsoft.CodeAnalysis.VisualBasic.Features": { "type": "Direct", "requested": "[4.9.2, )", "resolved": "4.9.2", "contentHash": "CAMi+FwINGa4EmcV+TGEaY9PXdnTKnOQAHvnFpXufNvU3bYJY5SuRzXNrVAaqG3lRYjDzifaRVZ6VplplqoEQQ==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.9.2]", "Microsoft.CodeAnalysis.Features": "[4.9.2]", "Microsoft.CodeAnalysis.VisualBasic": "[4.9.2]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.9.2]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.9.2]" } }, "Microsoft.NET.Test.Sdk": { "type": "Direct", "requested": "[16.2.0, )", "resolved": "16.2.0", "contentHash": "56w1drIQqpMgg3IxHcfra/jXOngiD4pbl0j6TNeJMlOQGlZ8wCMlyRTvn6Crd/FgGjwKbWLurdOHNGrfzLtl6A==", "dependencies": { "Microsoft.CodeCoverage": "16.2.0", "Microsoft.TestPlatform.TestHost": "16.2.0" } }, "SourceMock": { "type": "Direct", "requested": "[0.10.0, )", "resolved": "0.10.0", "contentHash": "Dd/YMTTRZSDR34HgVEgfMoZfOTId3Ns0vehFcdLVwMuKLgMcg7/4Oj80qX112np9siR2C4vL3qfT1I9ahzxu9Q==", "dependencies": { "System.Collections.Immutable": "5.0.0" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "xunit": { "type": "Direct", "requested": "[2.4.1, )", "resolved": "2.4.1", "contentHash": "XNR3Yz9QTtec16O0aKcO6+baVNpXmOnPUxDkCY97J+8krUYxPvXT1szYYEUdKk4sB8GOI2YbAjRIOm8ZnXRfzQ==", "dependencies": { "xunit.analyzers": "0.10.0", "xunit.assert": "[2.4.1]", "xunit.core": "[2.4.1]" } }, "xunit.runner.visualstudio": { "type": "Direct", "requested": "[2.4.0, )", "resolved": "2.4.0", "contentHash": "3eq5cGXbEJkqW9nwLuXwtxy9B5gMA8i7HW4rN63AhAvy5UvEcQbZnve23wx/oPrkyg/4CbfNhxkBezS0b1oUdQ==", "dependencies": { "Microsoft.NET.Test.Sdk": "15.0.0" } }, "FSharp.Compiler.Service": { "type": "Transitive", "resolved": "43.8.300", "contentHash": "CoPjQYXXwmYkkHm+yxBHSW9IJVLpvwkKGEzXa5A6ebf8v6GfYaxZc5G+VHojDr586oezp1elFemu+A1WWH095A==", "dependencies": { "FSharp.Core": "[8.0.300]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "7.0.0", "System.Diagnostics.DiagnosticSource": "7.0.2", "System.Memory": "4.5.5", "System.Reflection.Emit": "4.7.0", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "FSharp.Core": { "type": "Transitive", "resolved": "8.0.300", "contentHash": "Jv44fV7TNglyMku89lQcA4Q6mFKLyHb2bs1Yb72nvSVc+cHplEnoZ4XQUaaTLJGUTx/iMqcrkYGtaLzkkIhpaA==" }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.14.1", "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==" }, "Microsoft.Build.Framework": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "jleteC0seumLGTmTVwob97lcwPj/dfgzL/V3g/VVcMZgo2Ic7jzdy8AYpByPDh8e3uRq0SjCl6HOFCjhy5GzRQ==", "dependencies": { "Microsoft.Win32.Registry": "5.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "Microsoft.Build.Utilities.Core": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "pU3GnHcXp8VRMGKxdJCq+tixfhFn+QwEbpqmZmc/nqFHFyuhlGwjonWZMIWcwuCv/8EHgxoOttFvna1vrN+RrA==", "dependencies": { "Microsoft.Build.Framework": "17.12.6", "Microsoft.NET.StringTools": "17.12.6", "Microsoft.Win32.Registry": "5.0.0", "System.Collections.Immutable": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0", "System.Text.Encoding.CodePages": "7.0.0" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.3.4", "contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.9.2", "contentHash": "M5PThug7b2AdxL7xKmQs50KzAQTl9jENw5jMT3iUt16k+DAFlw1S87juU3UuPs3gvBm8trMBSOEvSFDr31c9Vw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.4", "System.Collections.Immutable": "8.0.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.9.2", "contentHash": "HGIo7E9Mf3exAJbUdYpDFfLoYkSVaHDJXPyusWTYUTBaOPCowGw+Gap5McE1w+K+ryIXre72oiqL88sQHmHBmg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.9.2]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.9.2", "contentHash": "c74oxEil3fiZ3nXchnIgY6mXS4roHGiQBT6p3X6dMWokVqluHiqi3PNcXyxH8N/w28rQeXprF3mca83rPPNrMw==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.CSharp": "[4.9.2]", "Microsoft.CodeAnalysis.Common": "[4.9.2]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.9.2]" } }, "Microsoft.CodeAnalysis.Elfie": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "r12elUp4MRjdnRfxEP+xqVSUUfG3yIJTBEJGwbfvF5oU4m0jb9HC0gFG28V/dAkYGMkRmHVi3qvrnBLQSw9X3Q==", "dependencies": { "System.Configuration.ConfigurationManager": "4.5.0", "System.Data.DataSetExtensions": "4.5.0" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "4.9.2", "contentHash": "6Pd4zVKeOmXD3Bas0wZN6+HN+xarIVkGgQSoaCD4wotvIkV/v1VQgmLvqKBwcUtFilh6b0Uxt0Wpqbcg3xdk8A==", "dependencies": { "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Common": "[4.9.2]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Scripting.Common": "[4.9.2]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.9.2]", "Microsoft.DiaSymReader": "2.0.0", "System.Text.Json": "8.0.0" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.9.2", "contentHash": "h06oBYNt+WxCVsXk+k68Zzs5dzkUwDNbXwJ/rMTbyPKem9C3Hr+cydfQK9ibCvofvGheATTdCE6KGSVjK3jxJQ==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.9.2]" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.9.2", "contentHash": "7Yt2bP7XwAQP2Y3GLyEMrVSAhYiFCjQbtegjL1ac0aHRosZ5YZ2Ruk6p3YAXJLuZ4kH1RtasQq2l4QDtql4AvQ==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.9.2]" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.9.2", "contentHash": "ZY3rNE9jNKdOiwjgZdZIenDItjNVVI5PSCyeMEBF8pZ2v0V9poOAQWlBxlsWGrQyqGFdi0zn/PUyQ6xo+RZS/g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[4.9.2]", "Microsoft.CodeAnalysis.VisualBasic": "[4.9.2]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.9.2]" } }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "4.9.2", "contentHash": "sgBlkBjKwUdpbtwM7SnBdOxvQxuaTtO9F8QgvKY5cH/OnlwDTZqmkK8hfDbhxv9wnN2wME10BL2vIv1fLJwFGA==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.CodeAnalysis.Common": "[4.9.2]", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Threading.Channels": "8.0.0" } }, "Microsoft.CodeCoverage": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "fKiUOhhMP3IN1qM2tDHPWzW4JRbriFkIPiIzKUwMWT+Q+80bycxkLLCvxmVFoeA7gvWegNbTUjaX7mL3MM9XKg==" }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "2.0.0", "contentHash": "QcZrCETsBJqy/vQpFtJc+jSXQ0K5sucQ6NUFbTNVHD4vfZZOwjZ/3sBzczkC4DityhD3AVO/+K/+9ioLs1AgRA==" }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", "resolved": "2.2.0", "contentHash": "uyjY/cqomw1irT4L7lDeg4sJ36MsjHg3wKqpGrBAdzvZaxo85yMF+sAA9RIzTV92fDxuUzjqksMqA0+SNMkMgA==" }, "Microsoft.NET.StringTools": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "w8Ehofqte5bJoR+Fa3f6JwkwFEkGtXxqvQHGOVOSHDzgNVySvL5FSNhavbQSZ864el9c3rjdLPLAtBW8dq6fmg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "RAyBf87uZ5XjRE953LlxqILpD1SqwQM6bXwxPUCAPPEy0uv12R+eKnFL7yaeLVHInMKkNNh1iD/cDOVDfSgllA==", "dependencies": { "NETStandard.Library": "1.6.0", "System.ComponentModel.EventBasedAsync": "4.0.11", "System.ComponentModel.TypeConverter": "4.1.0", "System.Diagnostics.Process": "4.1.0", "System.Diagnostics.TextWriterTraceListener": "4.0.0", "System.Diagnostics.TraceSource": "4.0.0", "System.Reflection.Metadata": "1.3.0", "System.Reflection.TypeExtensions": "4.1.0", "System.Runtime.InteropServices.RuntimeInformation": "4.0.0", "System.Runtime.Loader": "4.0.0", "System.Runtime.Serialization.Json": "4.0.2", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Threading.Thread": "4.0.0", "System.Xml.XPath.XmlDocument": "4.0.1" } }, "Microsoft.TestPlatform.TestHost": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "PogSQ40KgkZjEBdC6KBGpMtuvFFCIdoJAMmK7CAHWyTXCfN1cPN8j0TFJKh+LneSg+y0QQDP23STMF609KhHQw==", "dependencies": { "Microsoft.TestPlatform.ObjectModel": "16.2.0", "Newtonsoft.Json": "9.0.1" } }, "Microsoft.Win32.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "Microsoft.Win32.Registry": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", "dependencies": { "System.Security.AccessControl": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "NETStandard.Library": { "type": "Transitive", "resolved": "1.6.1", "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.Win32.Primitives": "4.3.0", "System.AppContext": "4.3.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Console": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.Compression.ZipFile": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Net.Http": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Net.Sockets": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Timer": "4.3.0", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XDocument": "4.3.0" } }, "Newtonsoft.Json": { "type": "Transitive", "resolved": "13.0.3", "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.AppContext": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" }, "System.Collections.NonGeneric": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==", "dependencies": { "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Collections.Specialized": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "/HKQyVP0yH1I0YtK7KJL/28snxHNH/bi+0lgk/+MbURF6ULhAE31MDI+NZDerNWu264YbxklXCCygISgm+HMug==", "dependencies": { "System.Collections.NonGeneric": "4.0.1", "System.Globalization": "4.0.11", "System.Globalization.Extensions": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.ComponentModel": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==", "dependencies": { "System.Runtime": "4.1.0" } }, "System.ComponentModel.EventBasedAsync": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "Z7SO6vvQIR84daPE4uhaNdef9CjgjDMGYkas8epUhf0U3WGuaGgZ0Mm4QuNycMdbHUY8KEdZrtgxonkAiJaAlA==", "dependencies": { "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11" } }, "System.ComponentModel.Primitives": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "sc/7eVCdxPrp3ljpgTKVaQGUXiW05phNWvtv/m2kocXqrUQvTVWKou1Edas2aDjTThLPZOxPYIGNb/HN0QjURg==", "dependencies": { "System.ComponentModel": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0" } }, "System.ComponentModel.TypeConverter": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "MnDAlaeJZy9pdB5ZdOlwdxfpI+LJQ6e0hmH7d2+y2LkiD8DRJynyDYl4Xxf3fWFm7SbEwBZh4elcfzONQLOoQw==", "dependencies": { "System.Collections": "4.0.11", "System.Collections.NonGeneric": "4.0.1", "System.Collections.Specialized": "4.0.1", "System.ComponentModel": "4.0.1", "System.ComponentModel.Primitives": "4.1.0", "System.Globalization": "4.0.11", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Composition": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "E9oO9olNNxA39J8CxQwf7ceIPm+j/B/PhYpyK9M4LhN/OLLRw6u5fNInkhVqaWueMB9iXxYqnwqwgz+W91loIA==", "dependencies": { "System.Composition.AttributedModel": "8.0.0", "System.Composition.Convention": "8.0.0", "System.Composition.Hosting": "8.0.0", "System.Composition.Runtime": "8.0.0", "System.Composition.TypedParts": "8.0.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "NyElSuvmBMYdn2iPG0n29i7Igu0bq99izOP3MAtEwskY3OP9jqsavvVmPn9lesVaj/KT/o/QkNjA43dOJTsDQw==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "UuVkc1B3vQU/LzEbWLMZ1aYVssv4rpShzf8wPEyrUqoGNqdYKREmB8bXR73heOMKkwS6ZnPz3PjGODT2MenukQ==", "dependencies": { "System.Composition.AttributedModel": "8.0.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "qwbONqoxlazxcbiohvb3t1JWZgKIKcRdXS5uEeLbo5wtuBupIbAvdC3PYTAeBCZrZeERvrtAbhYHuuS43Zr1bQ==", "dependencies": { "System.Composition.Runtime": "8.0.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "G+kRyB5/6+3ucRRQz+DF4uSHGqpkK8Q4ilVdbt4zvxpmvLVZNmSkyFAQpJLcbOyVF85aomJx0m+TGMDVlwx7ZQ==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "DsSklhuA+Dsgo3ZZrar8hjBFvq1wa1grrkNCTt+6SoX3vq0Vy+HXJnVXrU/nNH1BjlGH684A7h4hJQHZd/u5mA==", "dependencies": { "System.Composition.AttributedModel": "8.0.0", "System.Composition.Hosting": "8.0.0", "System.Composition.Runtime": "8.0.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==", "dependencies": { "System.Diagnostics.EventLog": "8.0.0", "System.Security.Cryptography.ProtectedData": "8.0.0" } }, "System.Console": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Data.DataSetExtensions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw==" }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "7.0.2", "contentHash": "hYr3I9N9811e0Bjf2WNwAGGyTuAFbbTgX1RPLt/3Wbm68x3IGcX5Cl75CMmgT6WlNwLQ2tCCWfqYPpypjaf2xA==" }, "System.Diagnostics.EventLog": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "fdYxcRjQqTTacKId/2IECojlDSFvp7LP5N78+0z/xH7v/Tuw5ZAxu23Y6PTCRinqyu2ePx+Gn1098NC6jM6d+A==" }, "System.Diagnostics.Process": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "mpVZ5bnlSs3tTeJ6jYyDJEIa6tavhAd88lxq1zbYhkkCu0Pno2+gHXcvZcoygq2d8JxW3gojXqNJMTAshduqZA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "Microsoft.Win32.Primitives": "4.0.1", "Microsoft.Win32.Registry": "4.0.0", "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.IO.FileSystem": "4.0.1", "System.IO.FileSystem.Primitives": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Handles": "4.0.1", "System.Runtime.InteropServices": "4.1.0", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "System.Threading.Thread": "4.0.0", "System.Threading.ThreadPool": "4.0.10", "runtime.native.System": "4.0.0" } }, "System.Diagnostics.TextWriterTraceListener": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "w36Dr8yKy8xP150qPANe7Td+/zOI3G62ImRcHDIEW+oUXUuTKZHd4DHmqRx5+x8RXd85v3tXd1uhNTfsr+yxjA==", "dependencies": { "System.Diagnostics.TraceSource": "4.0.0", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.TraceSource": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "runtime.native.System": "4.0.0" } }, "System.Diagnostics.Tracing": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Buffers": "4.3.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.IO.Compression": "4.3.0" } }, "System.IO.Compression.ZipFile": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", "dependencies": { "System.Buffers": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.IO.FileSystem": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==" }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Net.Sockets": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Private.DataContractSerialization": { "type": "Transitive", "resolved": "4.1.1", "contentHash": "lcqFBUaCZxPiUkA4dlSOoPZGtZsAuuElH2XHgLwGLxd7ZozWetV5yiz0qGAV2AUYOqw97MtZBjbLMN16Xz4vXA==", "dependencies": { "System.Collections": "4.0.11", "System.Collections.Concurrent": "4.0.12", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Emit.Lightweight": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1", "System.Xml.XmlSerializer": "4.0.11" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==" }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", "dependencies": { "System.Collections.Immutable": "8.0.0" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.InteropServices.RuntimeInformation": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0" } }, "System.Runtime.Loader": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "4UN78GOVU/mbDFcXkEWtetJT/sJ0yic2gGk1HSlSpWI0TDf421xnrZTDZnwNBapk1GQeYN7U1lTj/aQB1by6ow==", "dependencies": { "System.IO": "4.1.0", "System.Reflection": "4.1.0", "System.Runtime": "4.1.0" } }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Runtime.Serialization.Json": { "type": "Transitive", "resolved": "4.0.2", "contentHash": "+7DIJhnKYgCzUgcLbVTtRQb2l1M0FP549XFlFkQM5lmNiUBl44AfNbx4bz61xA8PzLtlYwfmif4JJJW7MPPnjg==", "dependencies": { "System.IO": "4.1.0", "System.Private.DataContractSerialization": "4.1.1", "System.Runtime": "4.1.0" } }, "System.Runtime.Serialization.Primitives": { "type": "Transitive", "resolved": "4.1.1", "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", "dependencies": { "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0" } }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", "dependencies": { "Microsoft.NETCore.Platforms": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Cng": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==" }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==" }, "System.Text.Encoding.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { "System.Runtime": "4.3.1" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Channels": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "CMaFr7v+57RW7uZfZkPExsPB6ljwzhjACWW1gfU35Y56rk72B/Wu+sTqxVmGSk4SFUlPc3cjeKND0zktziyjBA==" }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==" }, "System.Threading.Thread": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "gIdJqDXlOr5W9zeqFErLw3dsOsiShSCYtF9SEHitACycmvNvY8odf9kiKvp6V7aibc8C4HzzNBkWXjyfn7plbQ==", "dependencies": { "System.Runtime": "4.1.0" } }, "System.Threading.ThreadPool": { "type": "Transitive", "resolved": "4.0.10", "contentHash": "IMXgB5Vf/5Qw1kpoVgJMOvUO1l32aC+qC3OaIZjWJOjvcxuxNWOK2ZTWWYXfij22NHxT2j1yWX5vlAeQWld9vA==", "dependencies": { "System.Runtime": "4.1.0", "System.Runtime.Handles": "4.0.1" } }, "System.Threading.Timer": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Xml.ReaderWriter": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Tasks.Extensions": "4.3.0" } }, "System.Xml.XDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "System.Xml.XmlDocument": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "2eZu6IP+etFVBBFUFzw2w6J21DqIN5eL9Y8r8JfJWUmV28Z5P0SNU01oCisVHQgHsDhHPnmq2s1hJrJCFZWloQ==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Text.Encoding": "4.0.11", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11" } }, "System.Xml.XmlSerializer": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "FrazwwqfIXTfq23mfv4zH+BjqkSFNaNFBtjzu3I9NRmG8EELYyrv/fJnttCIwRMFRR/YKXF1hmsMmMEnl55HGw==", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit": "4.0.1", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1" } }, "System.Xml.XPath": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11" } }, "System.Xml.XPath.XmlDocument": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "Zm2BdeanuncYs3NhCj4c9e1x3EXFzFBVv2wPEc/Dj4ZbI9R8ecLSR5frAsx4zJCPBtKQreQ7Q/KxJEohJZbfzA==", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XPath": "4.0.1", "System.Xml.XmlDocument": "4.0.1" } }, "xunit.abstractions": { "type": "Transitive", "resolved": "2.0.3", "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==" }, "xunit.analyzers": { "type": "Transitive", "resolved": "0.10.0", "contentHash": "4/IDFCJfIeg6bix9apmUtIMwvOsiwqdEexeO/R2D4GReIGPLIRODTpId/l4LRSrAJk9lEO3Zx1H0Zx6uohJDNg==" }, "xunit.assert": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "O/Oe0BS5RmSsM+LQOb041TzuPo5MdH2Rov+qXGS37X+KFG1Hxz7kopYklM5+1Y+tRGeXrOx5+Xne1RuqLFQoyQ==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "xunit.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "Zsj5OMU6JasNGERXZy8s72+pcheG6Q15atS5XpZXqAtULuyQiQ6XNnUsp1gyfC6WgqScqMvySiEHmHcOG6Eg0Q==", "dependencies": { "xunit.extensibility.core": "[2.4.1]", "xunit.extensibility.execution": "[2.4.1]" } }, "xunit.extensibility.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "yKZKm/8QNZnBnGZFD9SewkllHBiK0DThybQD/G4PiAmQjKtEZyHi6ET70QPU9KtSMJGRYS6Syk7EyR2EVDU4Kg==", "dependencies": { "NETStandard.Library": "1.6.1", "xunit.abstractions": "2.0.3" } }, "xunit.extensibility.execution": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "7e/1jqBpcb7frLkB6XDrHCGXAbKN4Rtdb88epYxCSRQuZDRW8UtTfdTEVpdTl8s4T56e07hOBVd4G0OdCxIY2A==", "dependencies": { "NETStandard.Library": "1.6.1", "xunit.extensibility.core": "[2.4.1]" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } }, "MirrorSharp.FSharp": { "type": "Project", "dependencies": { "FSharp.Compiler.Service": "[43.8.300, )", "FSharp.Core": "[8.0.300, )", "Microsoft.Build.Utilities.Core": "[17.12.6, )", "Microsoft.IO.RecyclableMemoryStream": "[2.2.0, )", "MirrorSharp.Common": "[3.0.9, )" } }, "MirrorSharp.Testing": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )", "Newtonsoft.Json": "[13.0.3, )", "System.Buffers": "[4.5.1, )" } }, "MirrorSharp.VisualBasic": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.VisualBasic": "[3.3.1, )", "Microsoft.CodeAnalysis.VisualBasic.Features": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )" } } } } } ================================================ FILE: Tests.RoslynLatest/Tests.RoslynLatest.csproj ================================================ net7.0 false MirrorSharp.Tests.RoslynLatest MirrorSharp.Tests false VSTHRD200; RS1035; RS1041; RS1038 true https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json; https://pkgs.dev.azure.com/azure-public/vside/_packaging/vs-impl/nuget/v3/index.json PreserveNewest PreserveNewest ================================================ FILE: Tests.RoslynLatest/packages.lock.json ================================================ { "version": 1, "dependencies": { "net7.0": { "coverlet.collector": { "type": "Direct", "requested": "[1.0.1, )", "resolved": "1.0.1", "contentHash": "RAuno8s7DBGo2IdV/1d8YSnXMd/728K3PBT5R6/kfGx1yunBZmavlaFQfhGe7Q7N2nUMkvVET+7ITn3+KSg+Uw==" }, "Microsoft.CodeAnalysis": { "type": "Direct", "requested": "[4.13.0-2.24567.1, )", "resolved": "4.13.0-2.24567.1", "contentHash": "5oFj9WZaKS/ClFe+RXNGBA8Esh0fSgZ22di4FEqWr9K8MGwBjxl8dmCvFnnS0oR+Apq6CxkAqqn8wA4gjM/c4g==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.Analyzers": "3.11.0", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.13.0-2.24567.1]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.13.0-2.24567.1]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Direct", "requested": "[4.13.0-2.24567.1, )", "resolved": "4.13.0-2.24567.1", "contentHash": "5t3rZ3hvYCh6HJ6eTCS14MShh+RKA97tfTSdRtvCT6pLrFQDfCSezwBRNX93TfKIqNuxtR1AR7A56RdelaoW+g==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Analyzers": "3.11.0", "Microsoft.CodeAnalysis.CSharp": "[4.13.0-2.24567.1]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[4.13.0-2.24567.1]", "Microsoft.CodeAnalysis.Common": "[4.13.0-2.24567.1]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Features": "[4.13.0-2.24567.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.13.0-2.24567.1]", "Microsoft.DiaSymReader": "2.0.0", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Cryptography.ProtectedData": "8.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Text.Encodings.Web": "8.0.0", "System.Text.Json": "8.0.4", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.VisualBasic.Features": { "type": "Direct", "requested": "[4.13.0-2.24567.1, )", "resolved": "4.13.0-2.24567.1", "contentHash": "FXzmnr4PNC2YxI/sadstuOVjNn5E86tfdO/0J49QwZITMqLwantgyOZfUaLlAskI1N2iY1iE9tIhxLtfkv+h6w==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Analyzers": "3.11.0", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Features": "[4.13.0-2.24567.1]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[4.13.0-2.24567.1]", "Microsoft.DiaSymReader": "2.0.0", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Cryptography.ProtectedData": "8.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Text.Encodings.Web": "8.0.0", "System.Text.Json": "8.0.4", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.NET.Test.Sdk": { "type": "Direct", "requested": "[16.2.0, )", "resolved": "16.2.0", "contentHash": "56w1drIQqpMgg3IxHcfra/jXOngiD4pbl0j6TNeJMlOQGlZ8wCMlyRTvn6Crd/FgGjwKbWLurdOHNGrfzLtl6A==", "dependencies": { "Microsoft.CodeCoverage": "16.2.0", "Microsoft.TestPlatform.TestHost": "16.2.0" } }, "SourceMock": { "type": "Direct", "requested": "[0.10.0, )", "resolved": "0.10.0", "contentHash": "Dd/YMTTRZSDR34HgVEgfMoZfOTId3Ns0vehFcdLVwMuKLgMcg7/4Oj80qX112np9siR2C4vL3qfT1I9ahzxu9Q==", "dependencies": { "System.Collections.Immutable": "5.0.0" } }, "System.Text.Json": { "type": "Direct", "requested": "[9.0.0, )", "resolved": "9.0.0", "contentHash": "js7+qAu/9mQvnhA4EfGMZNEzXtJCDxgkgj8ohuxq/Qxv+R56G+ljefhiJHOxTNiw54q8vmABCWUwkMulNdlZ4A==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "9.0.0", "System.Buffers": "4.5.1", "System.IO.Pipelines": "9.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encodings.Web": "9.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "xunit": { "type": "Direct", "requested": "[2.4.1, )", "resolved": "2.4.1", "contentHash": "XNR3Yz9QTtec16O0aKcO6+baVNpXmOnPUxDkCY97J+8krUYxPvXT1szYYEUdKk4sB8GOI2YbAjRIOm8ZnXRfzQ==", "dependencies": { "xunit.analyzers": "0.10.0", "xunit.assert": "[2.4.1]", "xunit.core": "[2.4.1]" } }, "xunit.runner.visualstudio": { "type": "Direct", "requested": "[2.4.0, )", "resolved": "2.4.0", "contentHash": "3eq5cGXbEJkqW9nwLuXwtxy9B5gMA8i7HW4rN63AhAvy5UvEcQbZnve23wx/oPrkyg/4CbfNhxkBezS0b1oUdQ==", "dependencies": { "Microsoft.NET.Test.Sdk": "15.0.0" } }, "FSharp.Compiler.Service": { "type": "Transitive", "resolved": "43.8.300", "contentHash": "CoPjQYXXwmYkkHm+yxBHSW9IJVLpvwkKGEzXa5A6ebf8v6GfYaxZc5G+VHojDr586oezp1elFemu+A1WWH095A==", "dependencies": { "FSharp.Core": "[8.0.300]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "7.0.0", "System.Diagnostics.DiagnosticSource": "7.0.2", "System.Memory": "4.5.5", "System.Reflection.Emit": "4.7.0", "System.Reflection.Metadata": "7.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "FSharp.Core": { "type": "Transitive", "resolved": "8.0.300", "contentHash": "Jv44fV7TNglyMku89lQcA4Q6mFKLyHb2bs1Yb72nvSVc+cHplEnoZ4XQUaaTLJGUTx/iMqcrkYGtaLzkkIhpaA==" }, "Humanizer.Core": { "type": "Transitive", "resolved": "2.14.1", "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "owmu2Cr3IQ8yQiBleBHlGk8dSQ12oaF2e7TpzwJKEl4m84kkZJjEY1n33L67Y3zM5jPOjmmbdHjbfiL0RqcMRQ==" }, "Microsoft.Build.Framework": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "jleteC0seumLGTmTVwob97lcwPj/dfgzL/V3g/VVcMZgo2Ic7jzdy8AYpByPDh8e3uRq0SjCl6HOFCjhy5GzRQ==", "dependencies": { "Microsoft.Win32.Registry": "5.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "Microsoft.Build.Utilities.Core": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "pU3GnHcXp8VRMGKxdJCq+tixfhFn+QwEbpqmZmc/nqFHFyuhlGwjonWZMIWcwuCv/8EHgxoOttFvna1vrN+RrA==", "dependencies": { "Microsoft.Build.Framework": "17.12.6", "Microsoft.NET.StringTools": "17.12.6", "Microsoft.Win32.Registry": "5.0.0", "System.Collections.Immutable": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Principal.Windows": "5.0.0", "System.Text.Encoding.CodePages": "7.0.0" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "3.11.0", "contentHash": "v/EW3UE8/lbEYHoC2Qq7AR/DnmvpgdtAMndfQNmpuIMx/Mto8L5JnuCfdBYtgvalQOtfNCnxFejxuRrryvUTsg==" }, "Microsoft.CodeAnalysis.AnalyzerUtilities": { "type": "Transitive", "resolved": "3.3.0", "contentHash": "gyQ70pJ4T7hu/s0+QnEaXtYfeG/JrttGnxHJlrhpxsQjRIUGuRhVwNBtkHHYOrUAZ/l47L98/NiJX6QmTwAyrg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "4.13.0-2.24567.1", "contentHash": "C1695oHLtmpyu7xzRlIe/TOsFn/efHtWtopm7niK4YN7Kc8aEB0C+yhkk5u/VOuP7htshwKxIQtJIvoF4t2piA==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.11.0", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "4.13.0-2.24567.1", "contentHash": "zP+yI271YB8fu4a+VMeZca3We+bmR2S3NntxDKp0tEINtBHR9aRF+L7h2m9sqGdnzzyWOx8zXRLCjXwVV7on2A==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.11.0", "Microsoft.CodeAnalysis.Common": "[4.13.0-2.24567.1]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "4.13.0-2.24567.1", "contentHash": "7bKg3UvVFulNRAU2TEp3agWDBz5kcrXf1fedhb7Lyu6jZYYpMrtvJcEwClK8mBLwMBo3BXzeh3JzSnIN9CPj3w==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.Analyzers": "3.11.0", "Microsoft.CodeAnalysis.CSharp": "[4.13.0-2.24567.1]", "Microsoft.CodeAnalysis.Common": "[4.13.0-2.24567.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.13.0-2.24567.1]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Elfie": { "type": "Transitive", "resolved": "1.0.0", "contentHash": "r12elUp4MRjdnRfxEP+xqVSUUfG3yIJTBEJGwbfvF5oU4m0jb9HC0gFG28V/dAkYGMkRmHVi3qvrnBLQSw9X3Q==", "dependencies": { "System.Configuration.ConfigurationManager": "4.5.0", "System.Data.DataSetExtensions": "4.5.0" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "4.13.0-2.24567.1", "contentHash": "FQFV/E1lK98rROov+fn8nVrLKyddUj6+1+Ij+3AizZFbdX+w9iURO2naswL8XPDqEqXs0o4poHmSxzW4BqNOOQ==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.AnalyzerUtilities": "3.3.0", "Microsoft.CodeAnalysis.Analyzers": "3.11.0", "Microsoft.CodeAnalysis.Common": "[4.13.0-2.24567.1]", "Microsoft.CodeAnalysis.Elfie": "1.0.0", "Microsoft.CodeAnalysis.Scripting.Common": "[4.13.0-2.24567.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.13.0-2.24567.1]", "Microsoft.DiaSymReader": "2.0.0", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.Configuration.ConfigurationManager": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Security.Cryptography.ProtectedData": "8.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Text.Encodings.Web": "8.0.0", "System.Text.Json": "8.0.4", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Scripting.Common": { "type": "Transitive", "resolved": "4.13.0-2.24567.1", "contentHash": "Pcw43Lcg1jKPfEjmCULtMpMwlwPkyPPIOcqYsXaRgasDAAkYKEnbk2cGMey3itBeYjLcUhldYVhRTK0kDalvew==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.11.0", "Microsoft.CodeAnalysis.Common": "[4.13.0-2.24567.1]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Transitive", "resolved": "4.13.0-2.24567.1", "contentHash": "/H6EaPiM4JIZ1zg7rnbqrFehcvJCcsOtvM5q8PMrWBFUibUHuZE6Epfdug3gynkzUzi5Db+d7S+GduX8dswYJQ==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.11.0", "Microsoft.CodeAnalysis.Common": "[4.13.0-2.24567.1]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "4.13.0-2.24567.1", "contentHash": "ZL8ZZKg3vv5dvS932wvtSF90/jJ2gwq/mZsqaBQW3hTLFf6mQyatYTPukd4NlyWjfAHRT17BnrF09CX1b0eCLg==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.Analyzers": "3.11.0", "Microsoft.CodeAnalysis.Common": "[4.13.0-2.24567.1]", "Microsoft.CodeAnalysis.VisualBasic": "[4.13.0-2.24567.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[4.13.0-2.24567.1]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "4.13.0-2.24567.1", "contentHash": "Kv6DslBjsZLhqMv+0Yweq23w2HY789udSBGEME5/ePKr7UV3FZchR58LTkmABZ6LoHEfLli2WHxYVYJ0kIChaw==", "dependencies": { "Humanizer.Core": "2.14.1", "Microsoft.Bcl.AsyncInterfaces": "8.0.0", "Microsoft.CodeAnalysis.Analyzers": "3.11.0", "Microsoft.CodeAnalysis.Common": "[4.13.0-2.24567.1]", "System.Buffers": "4.5.1", "System.Collections.Immutable": "8.0.0", "System.Composition": "8.0.0", "System.IO.Pipelines": "8.0.0", "System.Memory": "4.5.5", "System.Numerics.Vectors": "4.5.0", "System.Reflection.Metadata": "8.0.0", "System.Runtime.CompilerServices.Unsafe": "6.0.0", "System.Text.Encoding.CodePages": "7.0.0", "System.Threading.Channels": "7.0.0", "System.Threading.Tasks.Extensions": "4.5.4" } }, "Microsoft.CodeCoverage": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "fKiUOhhMP3IN1qM2tDHPWzW4JRbriFkIPiIzKUwMWT+Q+80bycxkLLCvxmVFoeA7gvWegNbTUjaX7mL3MM9XKg==" }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "2.0.0", "contentHash": "QcZrCETsBJqy/vQpFtJc+jSXQ0K5sucQ6NUFbTNVHD4vfZZOwjZ/3sBzczkC4DityhD3AVO/+K/+9ioLs1AgRA==" }, "Microsoft.IO.RecyclableMemoryStream": { "type": "Transitive", "resolved": "2.2.0", "contentHash": "uyjY/cqomw1irT4L7lDeg4sJ36MsjHg3wKqpGrBAdzvZaxo85yMF+sAA9RIzTV92fDxuUzjqksMqA0+SNMkMgA==" }, "Microsoft.NET.StringTools": { "type": "Transitive", "resolved": "17.12.6", "contentHash": "w8Ehofqte5bJoR+Fa3f6JwkwFEkGtXxqvQHGOVOSHDzgNVySvL5FSNhavbQSZ864el9c3rjdLPLAtBW8dq6fmg==", "dependencies": { "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "RAyBf87uZ5XjRE953LlxqILpD1SqwQM6bXwxPUCAPPEy0uv12R+eKnFL7yaeLVHInMKkNNh1iD/cDOVDfSgllA==", "dependencies": { "NETStandard.Library": "1.6.0", "System.ComponentModel.EventBasedAsync": "4.0.11", "System.ComponentModel.TypeConverter": "4.1.0", "System.Diagnostics.Process": "4.1.0", "System.Diagnostics.TextWriterTraceListener": "4.0.0", "System.Diagnostics.TraceSource": "4.0.0", "System.Reflection.Metadata": "1.3.0", "System.Reflection.TypeExtensions": "4.1.0", "System.Runtime.InteropServices.RuntimeInformation": "4.0.0", "System.Runtime.Loader": "4.0.0", "System.Runtime.Serialization.Json": "4.0.2", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Threading.Thread": "4.0.0", "System.Xml.XPath.XmlDocument": "4.0.1" } }, "Microsoft.TestPlatform.TestHost": { "type": "Transitive", "resolved": "16.2.0", "contentHash": "PogSQ40KgkZjEBdC6KBGpMtuvFFCIdoJAMmK7CAHWyTXCfN1cPN8j0TFJKh+LneSg+y0QQDP23STMF609KhHQw==", "dependencies": { "Microsoft.TestPlatform.ObjectModel": "16.2.0", "Newtonsoft.Json": "9.0.1" } }, "Microsoft.Win32.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "Microsoft.Win32.Registry": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", "dependencies": { "System.Security.AccessControl": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "NETStandard.Library": { "type": "Transitive", "resolved": "1.6.1", "contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.Win32.Primitives": "4.3.0", "System.AppContext": "4.3.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Console": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.Compression.ZipFile": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Net.Http": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Net.Sockets": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Timer": "4.3.0", "System.Xml.ReaderWriter": "4.3.0", "System.Xml.XDocument": "4.3.0" } }, "Newtonsoft.Json": { "type": "Transitive", "resolved": "13.0.3", "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.AppContext": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" }, "System.Collections.NonGeneric": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==", "dependencies": { "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Collections.Specialized": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "/HKQyVP0yH1I0YtK7KJL/28snxHNH/bi+0lgk/+MbURF6ULhAE31MDI+NZDerNWu264YbxklXCCygISgm+HMug==", "dependencies": { "System.Collections.NonGeneric": "4.0.1", "System.Globalization": "4.0.11", "System.Globalization.Extensions": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.ComponentModel": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==", "dependencies": { "System.Runtime": "4.1.0" } }, "System.ComponentModel.EventBasedAsync": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "Z7SO6vvQIR84daPE4uhaNdef9CjgjDMGYkas8epUhf0U3WGuaGgZ0Mm4QuNycMdbHUY8KEdZrtgxonkAiJaAlA==", "dependencies": { "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11" } }, "System.ComponentModel.Primitives": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "sc/7eVCdxPrp3ljpgTKVaQGUXiW05phNWvtv/m2kocXqrUQvTVWKou1Edas2aDjTThLPZOxPYIGNb/HN0QjURg==", "dependencies": { "System.ComponentModel": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0" } }, "System.ComponentModel.TypeConverter": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "MnDAlaeJZy9pdB5ZdOlwdxfpI+LJQ6e0hmH7d2+y2LkiD8DRJynyDYl4Xxf3fWFm7SbEwBZh4elcfzONQLOoQw==", "dependencies": { "System.Collections": "4.0.11", "System.Collections.NonGeneric": "4.0.1", "System.Collections.Specialized": "4.0.1", "System.ComponentModel": "4.0.1", "System.ComponentModel.Primitives": "4.1.0", "System.Globalization": "4.0.11", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11" } }, "System.Composition": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "E9oO9olNNxA39J8CxQwf7ceIPm+j/B/PhYpyK9M4LhN/OLLRw6u5fNInkhVqaWueMB9iXxYqnwqwgz+W91loIA==", "dependencies": { "System.Composition.AttributedModel": "8.0.0", "System.Composition.Convention": "8.0.0", "System.Composition.Hosting": "8.0.0", "System.Composition.Runtime": "8.0.0", "System.Composition.TypedParts": "8.0.0" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "NyElSuvmBMYdn2iPG0n29i7Igu0bq99izOP3MAtEwskY3OP9jqsavvVmPn9lesVaj/KT/o/QkNjA43dOJTsDQw==" }, "System.Composition.Convention": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "UuVkc1B3vQU/LzEbWLMZ1aYVssv4rpShzf8wPEyrUqoGNqdYKREmB8bXR73heOMKkwS6ZnPz3PjGODT2MenukQ==", "dependencies": { "System.Composition.AttributedModel": "8.0.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "qwbONqoxlazxcbiohvb3t1JWZgKIKcRdXS5uEeLbo5wtuBupIbAvdC3PYTAeBCZrZeERvrtAbhYHuuS43Zr1bQ==", "dependencies": { "System.Composition.Runtime": "8.0.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "G+kRyB5/6+3ucRRQz+DF4uSHGqpkK8Q4ilVdbt4zvxpmvLVZNmSkyFAQpJLcbOyVF85aomJx0m+TGMDVlwx7ZQ==" }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "DsSklhuA+Dsgo3ZZrar8hjBFvq1wa1grrkNCTt+6SoX3vq0Vy+HXJnVXrU/nNH1BjlGH684A7h4hJQHZd/u5mA==", "dependencies": { "System.Composition.AttributedModel": "8.0.0", "System.Composition.Hosting": "8.0.0", "System.Composition.Runtime": "8.0.0" } }, "System.Configuration.ConfigurationManager": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==", "dependencies": { "System.Diagnostics.EventLog": "8.0.0", "System.Security.Cryptography.ProtectedData": "8.0.0" } }, "System.Console": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Data.DataSetExtensions": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw==" }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "7.0.2", "contentHash": "hYr3I9N9811e0Bjf2WNwAGGyTuAFbbTgX1RPLt/3Wbm68x3IGcX5Cl75CMmgT6WlNwLQ2tCCWfqYPpypjaf2xA==" }, "System.Diagnostics.EventLog": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "fdYxcRjQqTTacKId/2IECojlDSFvp7LP5N78+0z/xH7v/Tuw5ZAxu23Y6PTCRinqyu2ePx+Gn1098NC6jM6d+A==" }, "System.Diagnostics.Process": { "type": "Transitive", "resolved": "4.1.0", "contentHash": "mpVZ5bnlSs3tTeJ6jYyDJEIa6tavhAd88lxq1zbYhkkCu0Pno2+gHXcvZcoygq2d8JxW3gojXqNJMTAshduqZA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "Microsoft.Win32.Primitives": "4.0.1", "Microsoft.Win32.Registry": "4.0.0", "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.IO.FileSystem": "4.0.1", "System.IO.FileSystem.Primitives": "4.0.1", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Handles": "4.0.1", "System.Runtime.InteropServices": "4.1.0", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "System.Threading.Thread": "4.0.0", "System.Threading.ThreadPool": "4.0.10", "runtime.native.System": "4.0.0" } }, "System.Diagnostics.TextWriterTraceListener": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "w36Dr8yKy8xP150qPANe7Td+/zOI3G62ImRcHDIEW+oUXUuTKZHd4DHmqRx5+x8RXd85v3tXd1uhNTfsr+yxjA==", "dependencies": { "System.Diagnostics.TraceSource": "4.0.0", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Threading": "4.0.11" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.TraceSource": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.0.1", "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "runtime.native.System": "4.0.0" } }, "System.Diagnostics.Tracing": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.Compression": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Buffers": "4.3.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.IO.Compression": "4.3.0" } }, "System.IO.Compression.ZipFile": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", "dependencies": { "System.Buffers": "4.3.0", "System.IO": "4.3.0", "System.IO.Compression": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.IO.FileSystem": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.IO.Pipelines": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "eA3cinogwaNB4jdjQHOP3Z3EuyiDII7MT35jgtnsA4vkn0LUrrSHsU0nzHTzFzmaFYeKV7MYyMxOocFzsBHpTw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Threading.Tasks.Extensions": "4.5.4" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==" }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Net.Sockets": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.5.0", "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Private.DataContractSerialization": { "type": "Transitive", "resolved": "4.1.1", "contentHash": "lcqFBUaCZxPiUkA4dlSOoPZGtZsAuuElH2XHgLwGLxd7ZozWetV5yiz0qGAV2AUYOqw97MtZBjbLMN16Xz4vXA==", "dependencies": { "System.Collections": "4.0.11", "System.Collections.Concurrent": "4.0.12", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Emit.Lightweight": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Runtime.Serialization.Primitives": "4.1.1", "System.Text.Encoding": "4.0.11", "System.Text.Encoding.Extensions": "4.0.11", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Threading.Tasks": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1", "System.Xml.XmlSerializer": "4.0.11" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.7.0", "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==" }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", "dependencies": { "System.Collections.Immutable": "8.0.0" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.InteropServices.RuntimeInformation": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0" } }, "System.Runtime.Loader": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "4UN78GOVU/mbDFcXkEWtetJT/sJ0yic2gGk1HSlSpWI0TDf421xnrZTDZnwNBapk1GQeYN7U1lTj/aQB1by6ow==", "dependencies": { "System.IO": "4.1.0", "System.Reflection": "4.1.0", "System.Runtime": "4.1.0" } }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Runtime.Serialization.Json": { "type": "Transitive", "resolved": "4.0.2", "contentHash": "+7DIJhnKYgCzUgcLbVTtRQb2l1M0FP549XFlFkQM5lmNiUBl44AfNbx4bz61xA8PzLtlYwfmif4JJJW7MPPnjg==", "dependencies": { "System.IO": "4.1.0", "System.Private.DataContractSerialization": "4.1.1", "System.Runtime": "4.1.0" } }, "System.Runtime.Serialization.Primitives": { "type": "Transitive", "resolved": "4.1.1", "contentHash": "HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==", "dependencies": { "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0" } }, "System.Security.AccessControl": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", "dependencies": { "Microsoft.NETCore.Platforms": "5.0.0", "System.Security.Principal.Windows": "5.0.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Cng": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.ProtectedData": { "type": "Transitive", "resolved": "8.0.0", "contentHash": "+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==" }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Principal.Windows": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==" }, "System.Text.Encoding.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Text.Encodings.Web": { "type": "Transitive", "resolved": "9.0.0", "contentHash": "e2hMgAErLbKyUUwt18qSBf9T5Y+SFAL3ZedM8fLupkVj8Rj2PZ9oxQ37XX2LF8fTO1wNIxvKpihD7Of7D/NxZw==", "dependencies": { "System.Buffers": "4.5.1", "System.Memory": "4.5.5", "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { "System.Runtime": "4.3.1" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Channels": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "qmeeYNROMsONF6ndEZcIQ+VxR4Q/TX/7uIVLJqtwIWL7dDWeh0l1UIqgo4wYyjG//5lUNhwkLDSFl+pAWO6oiA==" }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==" }, "System.Threading.Thread": { "type": "Transitive", "resolved": "4.0.0", "contentHash": "gIdJqDXlOr5W9zeqFErLw3dsOsiShSCYtF9SEHitACycmvNvY8odf9kiKvp6V7aibc8C4HzzNBkWXjyfn7plbQ==", "dependencies": { "System.Runtime": "4.1.0" } }, "System.Threading.ThreadPool": { "type": "Transitive", "resolved": "4.0.10", "contentHash": "IMXgB5Vf/5Qw1kpoVgJMOvUO1l32aC+qC3OaIZjWJOjvcxuxNWOK2ZTWWYXfij22NHxT2j1yWX5vlAeQWld9vA==", "dependencies": { "System.Runtime": "4.1.0", "System.Runtime.Handles": "4.0.1" } }, "System.Threading.Timer": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Xml.ReaderWriter": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Text.Encoding.Extensions": "4.3.0", "System.Text.RegularExpressions": "4.3.0", "System.Threading.Tasks": "4.3.0", "System.Threading.Tasks.Extensions": "4.3.0" } }, "System.Xml.XDocument": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Xml.ReaderWriter": "4.3.0" } }, "System.Xml.XmlDocument": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "2eZu6IP+etFVBBFUFzw2w6J21DqIN5eL9Y8r8JfJWUmV28Z5P0SNU01oCisVHQgHsDhHPnmq2s1hJrJCFZWloQ==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Text.Encoding": "4.0.11", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11" } }, "System.Xml.XmlSerializer": { "type": "Transitive", "resolved": "4.0.11", "contentHash": "FrazwwqfIXTfq23mfv4zH+BjqkSFNaNFBtjzu3I9NRmG8EELYyrv/fJnttCIwRMFRR/YKXF1hmsMmMEnl55HGw==", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Linq": "4.1.0", "System.Reflection": "4.1.0", "System.Reflection.Emit": "4.0.1", "System.Reflection.Emit.ILGeneration": "4.0.1", "System.Reflection.Extensions": "4.0.1", "System.Reflection.Primitives": "4.0.1", "System.Reflection.TypeExtensions": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Text.RegularExpressions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XmlDocument": "4.0.1" } }, "System.Xml.XPath": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==", "dependencies": { "System.Collections": "4.0.11", "System.Diagnostics.Debug": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11" } }, "System.Xml.XPath.XmlDocument": { "type": "Transitive", "resolved": "4.0.1", "contentHash": "Zm2BdeanuncYs3NhCj4c9e1x3EXFzFBVv2wPEc/Dj4ZbI9R8ecLSR5frAsx4zJCPBtKQreQ7Q/KxJEohJZbfzA==", "dependencies": { "System.Collections": "4.0.11", "System.Globalization": "4.0.11", "System.IO": "4.1.0", "System.Resources.ResourceManager": "4.0.1", "System.Runtime": "4.1.0", "System.Runtime.Extensions": "4.1.0", "System.Threading": "4.0.11", "System.Xml.ReaderWriter": "4.0.11", "System.Xml.XPath": "4.0.1", "System.Xml.XmlDocument": "4.0.1" } }, "xunit.abstractions": { "type": "Transitive", "resolved": "2.0.3", "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==" }, "xunit.analyzers": { "type": "Transitive", "resolved": "0.10.0", "contentHash": "4/IDFCJfIeg6bix9apmUtIMwvOsiwqdEexeO/R2D4GReIGPLIRODTpId/l4LRSrAJk9lEO3Zx1H0Zx6uohJDNg==" }, "xunit.assert": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "O/Oe0BS5RmSsM+LQOb041TzuPo5MdH2Rov+qXGS37X+KFG1Hxz7kopYklM5+1Y+tRGeXrOx5+Xne1RuqLFQoyQ==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "xunit.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "Zsj5OMU6JasNGERXZy8s72+pcheG6Q15atS5XpZXqAtULuyQiQ6XNnUsp1gyfC6WgqScqMvySiEHmHcOG6Eg0Q==", "dependencies": { "xunit.extensibility.core": "[2.4.1]", "xunit.extensibility.execution": "[2.4.1]" } }, "xunit.extensibility.core": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "yKZKm/8QNZnBnGZFD9SewkllHBiK0DThybQD/G4PiAmQjKtEZyHi6ET70QPU9KtSMJGRYS6Syk7EyR2EVDU4Kg==", "dependencies": { "NETStandard.Library": "1.6.1", "xunit.abstractions": "2.0.3" } }, "xunit.extensibility.execution": { "type": "Transitive", "resolved": "2.4.1", "contentHash": "7e/1jqBpcb7frLkB6XDrHCGXAbKN4Rtdb88epYxCSRQuZDRW8UtTfdTEVpdTl8s4T56e07hOBVd4G0OdCxIY2A==", "dependencies": { "NETStandard.Library": "1.6.1", "xunit.extensibility.core": "[2.4.1]" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } }, "MirrorSharp.FSharp": { "type": "Project", "dependencies": { "FSharp.Compiler.Service": "[43.8.300, )", "FSharp.Core": "[8.0.300, )", "Microsoft.Build.Utilities.Core": "[17.12.6, )", "Microsoft.IO.RecyclableMemoryStream": "[2.2.0, )", "MirrorSharp.Common": "[3.0.9, )" } }, "MirrorSharp.Testing": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )", "Newtonsoft.Json": "[13.0.3, )", "System.Buffers": "[4.5.1, )" } }, "MirrorSharp.VisualBasic": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.VisualBasic": "[3.3.1, )", "Microsoft.CodeAnalysis.VisualBasic.Features": "[3.3.1, )", "MirrorSharp.Common": "[3.0.9, )" } } } } } ================================================ FILE: VisualBasic/CHANGELOG.md ================================================ # Changelog ## [3.0.0] - 2022-04-04 ## [3.0.0-test-2022-04-02-1] - 2021-04-02 ## [3.0.0-test-2022-04-01-1] - 2021-04-01 ### Changed - Updated to support MirrorSharp.Common 3.0.0 ## [2.1.2] - 2020-12-17 ### Changed - Updated to support MirrorSharp.Common 2.2.3 ## [2.1.1] - 2020-12-17 ### Changed - Updated to support MirrorSharp.Common 2.2.2 ## [2.1.0] - 2020-09-05 ## [2.1.0-preview-01] - 2020-08-28 ### Added - Ability to add custom Analyzers, e.g: `EnableVisualBasic(o => o.AnalyzerReferences = o.AnalyzerReferences.Add(...))`. ================================================ FILE: VisualBasic/Internal/VisualBasicLanguage.cs ================================================ using Microsoft.CodeAnalysis; using MirrorSharp.Internal.Roslyn; namespace MirrorSharp.VisualBasic.Internal { internal class VisualBasicLanguage : RoslynLanguageBase { public VisualBasicLanguage(MirrorSharpVisualBasicOptions options) : base( LanguageNames.VisualBasic, "Microsoft.CodeAnalysis.VisualBasic.Features", "Microsoft.CodeAnalysis.VisualBasic.Workspaces", options ) { } } } ================================================ FILE: VisualBasic/MirrorSharpOptionsExtensions.cs ================================================ using System; using Microsoft.CodeAnalysis; using MirrorSharp.Internal; using MirrorSharp.VisualBasic; using MirrorSharp.VisualBasic.Internal; // This is run only once, on startup, so: // ReSharper disable HeapView.ClosureAllocation // ReSharper disable once CheckNamespace namespace MirrorSharp { /// Extensions to related to Visual Basic .NET. public static class MirrorSharpOptionsExtensions { /// Enables and configures Visual Basic .NET support in the . /// Options to configure /// Setup delegate used to configure /// Value of , for convenience. public static MirrorSharpOptions EnableVisualBasic(this MirrorSharpOptions options, Action? setup = null) { Argument.NotNull(nameof(options), options); options.Languages.Add(LanguageNames.VisualBasic, () => { var visualBasicOptions = new MirrorSharpVisualBasicOptions(); setup?.Invoke(visualBasicOptions); return new VisualBasicLanguage(visualBasicOptions); }); return options; } } } ================================================ FILE: VisualBasic/MirrorSharpVisualBasicOptions.cs ================================================ using System.Collections.Immutable; using System.Reflection; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.Diagnostics; using Microsoft.CodeAnalysis.VisualBasic; using MirrorSharp.Advanced; namespace MirrorSharp.VisualBasic { /// MirrorSharp options for Visual Basic .NET public class MirrorSharpVisualBasicOptions : MirrorSharpRoslynOptions { internal MirrorSharpVisualBasicOptions() : base( new VisualBasicParseOptions(), new VisualBasicCompilationOptions(OutputKind.DynamicallyLinkedLibrary), ImmutableList.Create(MetadataReference.CreateFromFile(typeof(object).GetTypeInfo().Assembly.Location)), ImmutableList.Create(CreateAnalyzerReference("Microsoft.CodeAnalysis.VisualBasic.Features")) ) { } } } ================================================ FILE: VisualBasic/PublicAPI.Shipped.txt ================================================ #nullable enable MirrorSharp.MirrorSharpOptionsExtensions MirrorSharp.VisualBasic.MirrorSharpVisualBasicOptions static MirrorSharp.MirrorSharpOptionsExtensions.EnableVisualBasic(this MirrorSharp.MirrorSharpOptions! options, System.Action? setup = null) -> MirrorSharp.MirrorSharpOptions! ================================================ FILE: VisualBasic/PublicAPI.Unshipped.txt ================================================ ================================================ FILE: VisualBasic/VisualBasic.csproj ================================================ MirrorSharp.VisualBasic MirrorSharp.VisualBasic netstandard2.0 3.0.0 MirrorSharp Visual Basic .NET support library. $(DescriptionSuffix) Roslyn;Visual Basic;CodeMirror true ================================================ FILE: VisualBasic/packages.lock.json ================================================ { "version": 1, "dependencies": { ".NETStandard,Version=v2.0": { "Microsoft.CodeAnalysis.PublicApiAnalyzers": { "type": "Direct", "requested": "[3.3.0, )", "resolved": "3.3.0", "contentHash": "upaG6u/PxjkOj39Kk0DLmmA75acYChmv6/HnOUxvSgGWul53uPcVaPxBWCzkHDfIljyiq5qeIG+CatT8x8FAEA==" }, "Microsoft.CodeAnalysis.VisualBasic": { "type": "Direct", "requested": "[3.3.1, )", "resolved": "3.3.1", "contentHash": "F7fc/G+0ocOYkKSCJ7Y8Q7eAEkAdG5RYODI9FtSl2Hm8zIDBVA3NccCm98gaOvCamLfMHYqeOjpb3yJnnw3m/w==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.VisualBasic.Features": { "type": "Direct", "requested": "[3.3.1, )", "resolved": "3.3.1", "contentHash": "TGhM/EF5JWIt83ghkOrch+hhv7cwcvxzmIfhgF8oddd6hZAEkYaeup5BTxaJtHf8Me6TDQqoIWEEGsz5PdkBdA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Features": "[3.3.1]", "Microsoft.CodeAnalysis.VisualBasic": "[3.3.1]", "Microsoft.CodeAnalysis.VisualBasic.Workspaces": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "NETStandard.Library": { "type": "Direct", "requested": "[2.0.3, )", "resolved": "2.0.3", "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0" } }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", "resolved": "2.9.4", "contentHash": "alIJhS0VUg/7x5AsHEoovh/wRZ0RfCSS7k5pDSqpRLTyuMTtRgj6OJJPRApRhJHOGYYsLakf1hKeXFoDwKwNkg==" }, "Microsoft.CodeAnalysis.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "N5yQdGy+M4kimVG7hwCeGTCfgYjK2o5b/Shumkb/rCC+/SAkvP1HUAYK+vxPFS7dLJNtXLRsmPHKj3fnyNWnrw==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "2.9.4", "System.Collections.Immutable": "1.5.0", "System.Memory": "4.5.3", "System.Reflection.Metadata": "1.6.0", "System.Runtime.CompilerServices.Unsafe": "4.5.2", "System.Text.Encoding.CodePages": "4.5.1", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.CSharp": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "WDUIhTHem38H6VJ98x2Ssq0fweakJHnHYl7vbG8ARnsAwLoJKCQCy78EeY1oRrCKG42j0v6JVljKkeqSDA28UA==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "t9uIwsLzT5zQ1Q3ZIpwE4EOnAf/lGdbQwyeqhyO/BJ+AWDt267Hxlz5k6ypPy14Z6+PW6pTggAGz6MwN31RElQ==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.CSharp.Workspaces": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Features": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.CSharp.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "dHs/UyfLgzsVC4FjTi/x+H+yQifgOnpe3rSN8GwkHWjnidePZ3kSqr1JHmFDf5HTQEydYwrwCAfQ0JSzhsEqDA==", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1]", "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.Features": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "lvMC69ABN/YEaw3ke4cQRqBYZ2V7DJTOT8QXIeAJGJUfwVHTBN0iq2O5zZQrYnnUN2wmeCzCoAg59PKBosVO7g==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": "2.9.5", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]", "Microsoft.DiaSymReader": "1.3.0", "System.Threading.Tasks.Extensions": "4.5.3" } }, "Microsoft.CodeAnalysis.FlowAnalysis.Utilities": { "type": "Transitive", "resolved": "2.9.5", "contentHash": "SqwdTocsxU7u0Y8am67BY7KSLAhrtDXdBBwt0Nv9TxLVzPBPtPPFS2bHUsxucpOBMBmc10rWE1eJ+IDrr/0/nQ==" }, "Microsoft.CodeAnalysis.VisualBasic.Workspaces": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "Oi4AUxMKAYpx7nHNh7jUO8X18JFCzwtIfu/yDzGzOBpo50591AF7EEdv99geAEidGtmJqbzQ6uRk5dEOL+7F/Q==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "Microsoft.CodeAnalysis.VisualBasic": "[3.3.1]", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1]" } }, "Microsoft.CodeAnalysis.Workspaces.Common": { "type": "Transitive", "resolved": "3.3.1", "contentHash": "NfBz3b5hFSbO+7xsCNryD+p8axsIJFTG7qM3jvMTC/MqYrU6b8E1b6JoRj5rJSOBB+pSunk+CMqyGQTOWHeDUg==", "dependencies": { "Microsoft.CodeAnalysis.Common": "[3.3.1]", "System.Composition": "1.0.31" } }, "Microsoft.DiaSymReader": { "type": "Transitive", "resolved": "1.3.0", "contentHash": "/fn1Tfo7j7k/slViPlM8azJuxQmri7FZ8dQ+gTeLbI29leN/1VK0U/BFcRdJNctsRCUgyKJ2q+I0Tjq07Rc1/Q==", "dependencies": { "NETStandard.Library": "1.6.1" } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", "resolved": "1.1.1", "contentHash": "TMBuzAHpTenGbGgk0SMTwyEkyijY/Eae4ZGsFNYJvAr/LDn1ku3Etp3FPxChmDp5HHF3kzJuoaa08N0xjqAJfQ==" }, "Microsoft.NETCore.Targets": { "type": "Transitive", "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==" }, "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==" }, "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==" }, "runtime.native.System": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Net.Http": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0" } }, "runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", "dependencies": { "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" } }, "runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==", "dependencies": { "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2", "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==" }, "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==" }, "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==" }, "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==" }, "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==" }, "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==" }, "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.2", "contentHash": "leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==" }, "System.Buffers": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" }, "System.Collections": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Collections.Concurrent": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "1.5.0", "contentHash": "EXKiDFsChZW0RjrZ4FYHu9aW6+P4MCgEDCklsVseRfhoO0F+dXeMSsMRAlVXIo06kGJ/zv+2w1a2uc2+kxxSaQ==" }, "System.Composition": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "I+D26qpYdoklyAVUdqwUBrEIckMNjAYnuPJy/h9dsQItpQwVREkDFs4b4tkBza0kT2Yk48Lcfsv2QQ9hWsh9Iw==", "dependencies": { "System.Composition.AttributedModel": "1.0.31", "System.Composition.Convention": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Composition.TypedParts": "1.0.31" } }, "System.Composition.AttributedModel": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "NHWhkM3ZkspmA0XJEsKdtTt1ViDYuojgSND3yHhTzwxepiwqZf+BCWuvCbjUt4fe0NxxQhUDGJ5km6sLjo9qnQ==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.Convention": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "GLjh2Ju71k6C0qxMMtl4efHa68NmWeIUYh4fkUI8xbjQrEBvFmRwMDFcylT8/PR9SQbeeL48IkFxU/+gd0nYEQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Hosting": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "fN1bT4RX4vUqjbgoyuJFVUizAl2mYF5VAb+bVIxIYZSSc0BdnX+yGAxcavxJuDDCQ1K+/mdpgyEFc8e9ikjvrg==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Composition.Runtime": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0LEJN+2NVM89CE4SekDrrk5tHV5LeATltkp+9WNYrR+Huiyt0vaCqHbbHtVAjPyeLWIc8dOz/3kthRBj32wGQg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Composition.TypedParts": { "type": "Transitive", "resolved": "1.0.31", "contentHash": "0Zae/FtzeFgDBBuILeIbC/T9HMYbW4olAmi8XqqAGosSOWvXfiQLfARZEhiGd0LVXaYgXr0NhxiU1LldRP1fpQ==", "dependencies": { "System.Collections": "4.3.0", "System.Composition.AttributedModel": "1.0.31", "System.Composition.Hosting": "1.0.31", "System.Composition.Runtime": "1.0.31", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.Tools": "4.3.0", "System.Globalization": "4.3.0", "System.Linq": "4.3.0", "System.Linq.Expressions": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Diagnostics.Debug": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.DiagnosticSource": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Diagnostics.Tracing": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Calendars": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Globalization.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.InteropServices": "4.3.0" } }, "System.IO": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.IO.FileSystem.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", "dependencies": { "System.Runtime": "4.3.0" } }, "System.Linq": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Linq.Expressions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Linq": "4.3.0", "System.ObjectModel": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Emit.Lightweight": "4.3.0", "System.Reflection.Extensions": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Reflection.TypeExtensions": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Threading": "4.3.0" } }, "System.Memory": { "type": "Transitive", "resolved": "4.5.5", "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", "dependencies": { "System.Buffers": "4.5.1", "System.Numerics.Vectors": "4.4.0", "System.Runtime.CompilerServices.Unsafe": "4.5.3" } }, "System.Net.Http": { "type": "Transitive", "resolved": "4.3.4", "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Diagnostics.DiagnosticSource": "4.3.0", "System.Diagnostics.Tracing": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Extensions": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.Net.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Security.Cryptography.X509Certificates": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2" } }, "System.Net.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Numerics.Vectors": { "type": "Transitive", "resolved": "4.4.0", "contentHash": "UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==" }, "System.ObjectModel": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", "dependencies": { "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0" } }, "System.Reflection": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.IO": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", "dependencies": { "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.ILGeneration": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Emit.Lightweight": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", "dependencies": { "System.Reflection": "4.3.0", "System.Reflection.Emit.ILGeneration": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Extensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Reflection.Metadata": { "type": "Transitive", "resolved": "1.6.0", "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==", "dependencies": { "System.Collections.Immutable": "1.5.0" } }, "System.Reflection.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Reflection.TypeExtensions": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", "dependencies": { "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Resources.ResourceManager": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Globalization": "4.3.0", "System.Reflection": "4.3.0", "System.Runtime": "4.3.0" } }, "System.Runtime": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3" } }, "System.Runtime.CompilerServices.Unsafe": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "3TIsJhD1EiiT0w2CcDMN/iSSwnNnsrnbzeVHSKkaEgV85txMprmuO+Yq2AdSbeVGcg28pdNDTPK87tJhX7VFHw==" }, "System.Runtime.Extensions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "qAtKMcHOAq9/zKkl0dwvF0T0pmgCQxX1rC49rJXoU8jq+lw6MC3uXy7nLFmjEI20T3Aq069eWz4LcYR64vEmJw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.1", "Microsoft.NETCore.Targets": "1.1.3", "System.Runtime": "4.3.1" } }, "System.Runtime.Handles": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Runtime.InteropServices": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Reflection": "4.3.0", "System.Reflection.Primitives": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Handles": "4.3.0" } }, "System.Runtime.Numerics": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", "dependencies": { "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0" } }, "System.Security.Cryptography.Algorithms": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.Apple": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Cng": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0" } }, "System.Security.Cryptography.Csp": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.IO": "4.3.0", "System.Reflection": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0" } }, "System.Security.Cryptography.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Collections.Concurrent": "4.3.0", "System.Linq": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.OpenSsl": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", "dependencies": { "System.Collections": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Security.Cryptography.Primitives": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", "dependencies": { "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.IO": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Threading": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Security.Cryptography.X509Certificates": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "System.Collections": "4.3.0", "System.Diagnostics.Debug": "4.3.0", "System.Globalization": "4.3.0", "System.Globalization.Calendars": "4.3.0", "System.IO": "4.3.0", "System.IO.FileSystem": "4.3.0", "System.IO.FileSystem.Primitives": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.0", "System.Runtime.Extensions": "4.3.0", "System.Runtime.Handles": "4.3.0", "System.Runtime.InteropServices": "4.3.0", "System.Runtime.Numerics": "4.3.0", "System.Security.Cryptography.Algorithms": "4.3.0", "System.Security.Cryptography.Cng": "4.3.0", "System.Security.Cryptography.Csp": "4.3.0", "System.Security.Cryptography.Encoding": "4.3.0", "System.Security.Cryptography.OpenSsl": "4.3.0", "System.Security.Cryptography.Primitives": "4.3.0", "System.Text.Encoding": "4.3.0", "System.Threading": "4.3.0", "runtime.native.System": "4.3.0", "runtime.native.System.Net.Http": "4.3.0", "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" } }, "System.Text.Encoding": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "4.5.1", "contentHash": "4J2JQXbftjPMppIHJ7IC+VXQ9XfEagN92vZZNoG12i+zReYlim5dMoXFC1Zzg7tsnKDM7JPo5bYfFK4Jheq44w==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "System.Text.RegularExpressions": { "type": "Transitive", "resolved": "4.3.1", "contentHash": "N0kNRrWe4+nXOWlpLT4LAY5brb8caNFlUuIRpraCVMDLYutKkol1aV079rQjLuSxKMJT2SpBQsYX9xbcTMmzwg==", "dependencies": { "System.Collections": "4.3.0", "System.Globalization": "4.3.0", "System.Resources.ResourceManager": "4.3.0", "System.Runtime": "4.3.1", "System.Runtime.Extensions": "4.3.1", "System.Threading": "4.3.0" } }, "System.Threading": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", "dependencies": { "System.Runtime": "4.3.0", "System.Threading.Tasks": "4.3.0" } }, "System.Threading.Tasks": { "type": "Transitive", "resolved": "4.3.0", "contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", "dependencies": { "Microsoft.NETCore.Platforms": "1.1.0", "Microsoft.NETCore.Targets": "1.1.0", "System.Runtime": "4.3.0" } }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.3", "contentHash": "+MvhNtcvIbqmhANyKu91jQnvIRVSTiaOiFNfKWwXGHG48YAb4I/TyH8spsySiPYla7gKal5ZnF3teJqZAximyQ==", "dependencies": { "System.Runtime.CompilerServices.Unsafe": "4.5.2" } }, "MirrorSharp.Common": { "type": "Project", "dependencies": { "Microsoft.CodeAnalysis.CSharp": "[3.3.1, )", "Microsoft.CodeAnalysis.CSharp.Features": "[3.3.1, )", "Microsoft.CodeAnalysis.Common": "[3.3.1, )", "Microsoft.CodeAnalysis.Workspaces.Common": "[3.3.1, )", "System.Memory": "[4.5.5, )", "System.Net.Http": "[4.3.4, )", "System.Text.RegularExpressions": "[4.3.1, )" } } } } } ================================================ FILE: WebAssets/.brackets.json ================================================ { "language": { "javascript": { "linting.prefer": [ "JSHint" ], "linting.usePreferredOnly": true } } } ================================================ FILE: WebAssets/.depcheckrc.json ================================================ { "ignore-patterns": [ ".temp/", "storybook-static/" ], "ignores": [ "@storybook/addon-measure", "@storybook/addon-outline", "@storybook/addon-viewport", "@storybook/addon-actions", "@storybook/addon-interactions", "@storybook/builder-webpack5", "@storybook/manager-webpack5", "@types/jest", "babel-plugin-add-import-extension", "jest-environment-jsdom", "ts-loader", "depcheck", "http-server", "ts-unused-exports" ] } ================================================ FILE: WebAssets/.eslintrc.json ================================================ { "root": true, "extends": "./src/.eslintrc.json", "parserOptions": { // https://github.com/typescript-eslint/typescript-eslint/issues/540 "project": "./tsconfig.json" } } ================================================ FILE: WebAssets/.npmrc ================================================ engine-strict = true ================================================ FILE: WebAssets/.storybook/main.cjs ================================================ const path = require('path'); module.exports = { stories: [ "../src/**/*.stories.ts" ], addons: [ "@storybook/addon-viewport", "@storybook/addon-measure", "@storybook/addon-outline", "@storybook/addon-actions", "@storybook/addon-interactions" ], core: { builder: 'webpack5' }, features: { buildStoriesJson: true }, webpackFinal(config) {; const babelIndex = config.module.rules.findIndex( r => r.use?.some(u => u.loader?.includes('babel-loader')) ); if (babelIndex < 0) throw new Error("Could not find babel-loader rule to replace"); // It would be great to keep using Babel, but unfortunately // Babel has a bug when transpiling to older ES (see _loop missing a param): // https://babel.dev/repl#?browsers=ie%2011&build=&builtIns=false&corejs=false&spec=false&loose=false&code_lz=MYGwhgzhAEAa0G9rQFDIA4CcD2wCmUAFAG5ggCuBAlImstMNgHYQAuDI2E5mB0AvNADaAXQDcdZADNsmaIUYt2AazwBPaAEsm0UhWq169RW11lKAs_ohDVa8ZOOduvCADp05CAAtChGvwAfFaUVBJGAL50URFAA&debug=false&forceAllTransforms=false&shippedProposals=false&circleciRepo=&evaluate=false&fileSize=false&timeTravel=false&sourceType=module&lineWrap=true&presets=env%2Creact%2Cstage-2&prettier=false&targets=&version=7.20.12&externalPlugins=&assumptions=%7B%7D // It seems almost impossible to target newer ES instead -- settings do not work // as expected -- so it is easier to using a different loader. config.module.rules[babelIndex] = { test: /\.([cm]?ts|tsx)$/, loader: "ts-loader", options: { configFile: path.resolve(__dirname, '../src/tsconfig.storybook.json') } }; config.module.rules.push( // https://github.com/storybookjs/storybook/issues/15335#issuecomment-1013136904 { resolve: { fullySpecified: false } } ); return config; } } ================================================ FILE: WebAssets/.storybook/preview.js ================================================ import '../src/mirrorsharp.css'; export const parameters = { actions: { argTypesRegex: '^on[A-Z].*' }, controls: { matchers: { color: /(background|color)$/i, date: /Date$/, }, } } ================================================ FILE: WebAssets/.storybook/test-runner.js ================================================ const { dirname } = require('path'); const { getStoryContext } = require('@storybook/test-runner'); const { toMatchImageSnapshot } = require('jest-image-snapshot'); /** @type {import('@storybook/test-runner').TestRunnerConfig} */ const config = { setup() { expect.extend({ toMatchImageSnapshot }); }, async postRender(page, context) { const { id } = context; const fileName = (await getStoryContext(page, context)).parameters?.fileName; if (!fileName) throw new Error('File name not set for the story.'); const image = await page.screenshot({ animations: 'disabled' }); expect(image).toMatchImageSnapshot({ customSnapshotsDir: `${dirname(fileName)}/__image_snapshots__`, customSnapshotIdentifier: id }); } }; module.exports = config; ================================================ FILE: WebAssets/.vscode/launch.json ================================================ { // 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", "name": "vscode-jest-tests", "request": "launch", "args": [ "--runInBand", "--coverage=false" ], "cwd": "${workspaceFolder}", "console": "integratedTerminal", "internalConsoleOptions": "neverOpen", "program": "${workspaceFolder}/node_modules/jest/bin/jest" } ], "typescript.tsdk": "./node_modules/typescript/lib" } ================================================ FILE: WebAssets/.vscode/settings.json ================================================ { "files.exclude": { "**/.git": true, "bin/": true, "obj/": true, "*.csproj*": true, "Properties/": true }, "editor.codeActionsOnSave": { "source.fixAll": "explicit" }, "jest.showCoverageOnLoad": true, "cSpell.ignorePaths": [ "**/node_modules/**", "**/coverage/**", "package-lock.json", ".eslintrc.*" ], "search.exclude": { "**/node_modules": true, "**/coverage/**": true, "**/.temp/**": true, "**/dist/**": true, "**/storybook-static/**": true }, "cSpell.words": [ "Andrey", "Cpath", "Csvg", "Olanguage", "Prec", "Segoe", "Shchekin", "Typer", "browserslist", "clike", "codemirror", "devtools", "enummember", "execa", "extensionmethod", "httpd", "infotip", "infotips", "jetpack", "jsparts", "lezer", "linebreak", "lintfix", "mirrorsharp", "nocheck", "oldowan", "outdent", "sharplab", "sinonjs", "struct", "typeparameter", "xmlns" ], "typescript.tsdk": "node_modules\\typescript\\lib" } ================================================ FILE: WebAssets/CHANGELOG.md ================================================ # Changelog ## [codemirror-6-preview 1.0.0] - 2023-03-12 ### Added - Option `theme` to allow choice between dark and light theme - Instance methods: - Method `getRootElement()` to get the root element of the editor - Method `setTheme()` to change editor dark/light theme - Method `setServiceUrl()` to reconnect editor to a different backend ### Changed - Migrated underlying editor to CodeMirror 6 - See [migration-from-2](docs/migration-from-2.md) for full list of changes ## [2.1.0] - 2022-04-01 ### Added - Option `noInitialConnection` for starting in disconnected mode ### Fixed - Edge cases of option handling on reconnects ### Changed - Changed IL mode to "text/x-cil" (mode itself is not included yet) - Changed approach to handling of user actions in disconnected mode ## [2.0.5] - 2021-09-05 ### Added - Added IL language to the language list ## [2.0.5-preview-2021-06-26-1] - 2021-06-26 ### Changed - Not user-facing — updated completion flow to fail earlier, before attempting to send incorrect data ## [2.0.4] - 2021-02-28 ### Fixed - Fixed incorrect imports that caused failures in Webpack 5 ([#142](https://github.com/ashmind/mirrorsharp/issues/142)) ## [2.0.3] - 2021-01-09 ### Fixed - Included missing TypeScript *.d.ts files (types) in the package ## [2.0.2] - 2020-09-12 ### Added - Show XML documentation in signature help. ## [2.0.1] - 2020-08-28 ### Fixed - Fixed position of autocomplete description tooltips ([#133](https://github.com/ashmind/mirrorsharp/issues/133)). ================================================ FILE: WebAssets/README.md ================================================ ## Overview MirrorSharp is a reusable client-server code editor component built on [Roslyn](https://github.com/dotnet/roslyn) and [CodeMirror](https://codemirror.net/). This library (`mirrorsharp.js`) is the browser-side client component which requires MirrorSharp .NET server to function. See [main README](https://github.com/ashmind/mirrorsharp/blob/master/README.md) for full details. ================================================ FILE: WebAssets/build/plugins/add-import-extensions.ts ================================================ import { Node, NodePath, PluginObj, types } from "@babel/core"; const rewrite = ( path: NodePath, _new: (source: types.StringLiteral) => T ) => { const { source } = path.node; if (!source) return; if (!source.value.startsWith('.')) return; if (source.value.endsWith('.js')) return; path.replaceWith(_new(types.stringLiteral(source.value + ".js"))); }; export const addImportExtensions = { name: 'add-import-extensions', visitor: { ImportDeclaration(path) { rewrite(path, source => types.importDeclaration( path.node.specifiers, source )); }, ExportNamedDeclaration(path) { rewrite(path, source => types.exportNamedDeclaration( path.node.declaration, path.node.specifiers, source )); }, ExportAllDeclaration(path) { rewrite(path, source => types.exportAllDeclaration(source)); } } } as PluginObj; ================================================ FILE: WebAssets/build/storybook.ts ================================================ import { createRequire } from 'module'; import { fileURLToPath } from 'node:url'; import path from 'path'; import { promisify } from 'util'; import execa from 'execa'; import jetpack from 'fs-jetpack'; import { task } from 'oldowan'; import kill from 'tree-kill'; import waitOn from 'wait-on'; const resolvePlaywrightPath = (relativePath: string) => { const require = createRequire(import.meta.url); const requireFromStorybook = createRequire(path.dirname(require.resolve('@storybook/test-runner'))); const playwrightRoot = path.dirname(requireFromStorybook.resolve('playwright-core')); return path.resolve(playwrightRoot, relativePath); }; const getPlaywrightVersion = async () => ((await jetpack.readAsync( resolvePlaywrightPath('package.json'), 'json' )) as { version: string }).version; export const root = path.resolve(fileURLToPath(new URL('.', import.meta.url)), '..'); export const sourceRoot = path.resolve(root, 'src'); const UPDATE_SNAPSHOTS_KEY = 'SHARPLAB_TEST_UPDATE_SNAPSHOTS'; const exec2 = (command: string, args?: ReadonlyArray) => execa(command, args, { preferLocal: true, stdout: process.stdout, stderr: process.stderr }); task('storybook:test:in-container', async () => { console.log('http-server: starting'); const server = exec2('http-server', ['storybook-static', '--port', '6006', '--silent']); try { await waitOn({ resources: ['http://localhost:6006'], timeout: 120000 }); console.log('http-server: ready'); const updateSnapshots = process.env[UPDATE_SNAPSHOTS_KEY] === 'true'; console.log(`Starting Storybook tests${updateSnapshots ? ' (with snapshot update)' : ''}...`); await exec2('test-storybook', [ '--stories-json', ...(updateSnapshots ? ['--updateSnapshot'] : []) ]); } finally { if (!server.killed) { console.log('http-server: terminating'); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion await promisify(kill)(server.pid!); } } }, { timeout: 20 * 60 * 1000 }); const test = task('storybook:test', async () => { const playwrightVersion = await getPlaywrightVersion(); const containerName = `playwright:v${playwrightVersion}-focal`; console.log(`Starting ${containerName} in Docker...`); await exec2('docker', [ 'run', '--rm', '--ipc=host', `--volume=${root}:/work`, '--workdir=/work', ...(process.env[UPDATE_SNAPSHOTS_KEY] === 'true' ? ['--env', `${UPDATE_SNAPSHOTS_KEY}=true`] : []), // Note: Playwright version must match dependency of @storybook/test-runner `mcr.microsoft.com/${containerName}`, './node_modules/.bin/ts-node-esm', './build.ts', 'storybook:test:in-container' ]); }, { timeout: 20 * 60 * 1000 }); const clean = task('storybook:test:clean', async () => { const snapshotPaths = await jetpack.findAsync(sourceRoot, { matching: '**/__image_snapshots__/**' }); for (const path of snapshotPaths) { await jetpack.removeAsync(path); } }); task('storybook:test:update', async () => { await clean(); process.env[UPDATE_SNAPSHOTS_KEY] = 'true'; await test(); }); ================================================ FILE: WebAssets/build.ts ================================================ import { transformFileAsync } from '@babel/core'; import fg from 'fast-glob'; import jetpack from 'fs-jetpack'; import { task, exec, build } from 'oldowan'; // @ts-expect-error (https://github.com/microsoft/TypeScript/issues/38149) import { addImportExtensions } from './build/plugins/add-import-extensions.ts'; import './build/storybook.ts'; const clean = task('clean', async () => { const paths = await fg(['.temp/**/*.*', 'dist/**/*.*', '!dist/node_modules/**/*.*']); await Promise.all(paths.map(jetpack.removeAsync)); }); const depsDepcheck = task('deps:depcheck', () => exec('depcheck')); const deps = task('deps', () => Promise.all([ depsDepcheck() ])); const tsESLint = task('ts:eslint', async () => { // https://github.com/import-js/eslint-import-resolver-typescript/issues/208 if (import.meta.url.includes('%23')) { console.warn("Linting is not possible ('#' in path)."); return; } await exec('eslint ./src --max-warnings 0 --ext .js,.jsx,.ts,.tsx'); }); const tsUnusedExports = task('ts:unused-exports', async () => { console.log('ts-unused-exports: dist'); await exec('ts-unused-exports ./src/tsconfig.json --ignoreFiles=\\.(stories|tests)$ --ignoreFiles=test\\.data --ignoreFiles=testing'); console.log('ts-unused-exports: tests'); await exec('ts-unused-exports ./src/tsconfig.json --excludePathsFromReport=stories'); }); const tscArgs = '--project ./src/tsconfig.build.json --outDir ./.temp'; const tsTsc = task('ts:tsc', () => exec(`tsc ${tscArgs}`), { watch: () => exec(`tsc --watch ${tscArgs}`) } ); const tsCopyDeclarations = task('ts:copy-declarations', () => jetpack.copyAsync('./.temp', './dist', { matching: '*.d.ts', overwrite: true }) ); const tsTransform = task('ts:transform', async () => { await Promise.all((await fg(['.temp/**/*.js'])).map(async path => { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const { code: transformed } = (await transformFileAsync(path, { plugins: [ // Add .js extension to all imports. // Technically TypeScript already resolves .js to .ts, but it's a hack. addImportExtensions ] }))!; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion await jetpack.writeAsync(path.replace('.temp', 'dist'), transformed!); })); }, { watch: ['.temp/**/*.js'] }); const ts = task('ts', async () => { await Promise.all([ await tsESLint(), await tsUnusedExports() ]); await tsTsc(); await Promise.all([ tsTransform(), tsCopyDeclarations() ]); }); const css = task('css', () => jetpack.copyAsync('src', 'dist', { matching: ['*.css'], overwrite: true }), { watch: ['src/*.css'] } ); const files = task('files', async () => { await jetpack.copyAsync('./README.md', 'dist/README.md', { overwrite: true }); // It's almost impossible to reliably convince npm not to install // devDependencies (e.g. in SharpLab), so it is easier to remove them. const packageJson = await jetpack.readAsync('./package.json', 'json') as { devDependencies?: Record; }; delete packageJson.devDependencies; await jetpack.writeAsync('dist/package.json', packageJson); }, { watch: ['./README.md', './package.json'] }); task ('lint', async () => { await tsESLint(); await tsUnusedExports(); await tsTsc(); await depsDepcheck(); }); task('default', async () => { await clean(); await Promise.all([ deps(), ts(), css(), files() ]); }); // eslint-disable-next-line @typescript-eslint/no-floating-promises build(); ================================================ FILE: WebAssets/docs/migration-from-2.md ================================================ ## Overview Version `mirrorsharp-codemirror-6-preview` (future mirrorsharp 3.0+) includes a number of breaking changes when compared to `mirrorsharp` 2. The goal of this document is to help with migration. ## Container The most noticeable change is in the `mirrosharp()` contract, which now uses a container element instead of a `textarea`. ```typescript // New: // HTML:
mirrorsharp(document.getElementById('editor')); // Old: // HTML: mirrorsharp(document.getElementById('editor')); ``` Note that this means you can't get/set the value of textarea directly, as you did with mirrorsharp 2. To set the initial value, use the `text` option, e.g: ```typescript mirrorsharp(container, { text: 'initial' }); ``` To get or set the value after the editor is created, use the `getText()` and `setText()` on the editor instance: ```typescript const ms = mirrorsharp(container); ms.setText(ms.getText() + " // changed"); ``` ## Other changes ### Options | Version 2 | CM 6 Preview | |------------------------|----------------------| | `noInitialConnection` | `disconnected` | | `initialServerOptions` | `serverOptions` | | `forCodeMirror` | `codeMirror` | | `selfDebugEnabled` | No longer available. | | `on slowUpdateResult` | Event property `x` renamed to `extensionData`. | | `on connectionChange` | Events `error` and `close` are no longer emitted. Event `loss` is emitted instead. | Note that vesion 2 allowed unknown options, while newer versions will throw if any option is not known. ### Editor instance | Version 2 | CM 6 Preview | |--------------------------------------|---------------------| | `getCodeMirror` | `getCodeMirrorView` | | `destroy({ keepCodeMirror: true })` | No longer available. However more changes can be done without destroying, e.g. `setServiceUrl`. | ## CodeMirror One of the major changes is that the library now uses CodeMirror 6. Specific CodeMirror changes are out of scope of this document, but you can find the list in [CodeMirror 6 migration guide](https://codemirror.net/docs/migration). ================================================ FILE: WebAssets/package.json ================================================ { "name": "mirrorsharp-codemirror-6-preview", "version": "1.0.0", "engines": { "node": ">=20.14.0" }, "description": "Preview version of mirrorsharp based on CodeMirror 6.", "authors": [ "Andrey Shchekin (https://github.com/ashmind)" ], "license": "MIT", "type": "module", "main": "mirrorsharp.js", "types": "mirrorsharp.d.ts", "homepage": "https://github.com/ashmind/mirrorsharp", "bugs": "https://github.com/ashmind/mirrorsharp/issues", "repository": { "type": "git", "url": "git+https://github.com/ashmind/mirrorsharp.git" }, "browserslist": [ "Chrome >= 84", "Edge >= 84", "Firefox >= 90", "Safari >= 15" ], "scripts": { "lint": "tsx ./build.ts lint", "build": "tsx ./build.ts", "watch": "tsx ./build.ts --watch", "build-local": "tsx ./build.ts && cd dist && npm install", "test": "jest", "storybook": "start-storybook -p 6006", "build-storybook": "build-storybook", "test-storybook": "tsx ./build.ts storybook:test", "test-storybook-with-update": "tsx ./build.ts storybook:test:update" }, "jest": { "preset": "ts-jest/presets/js-with-ts", "testEnvironment": "jsdom", "transformIgnorePatterns": [ "/node_modules/(?!@codemirror|lezer-csharp-simple)" ], "globals": { "ts-jest": { "tsconfig": "/src/tsconfig.json" } }, "setupFilesAfterEnv": [ "/src/testing/jest/setup-jest.ts" ], "testMatch": [ "/src/**/*.tests.ts" ] }, "dependencies": { "@codemirror/autocomplete": "^6.3.0", "@codemirror/commands": "^6.1.1", "@codemirror/lang-php": "^6.0.1", "@codemirror/language": "^6.2.1", "@codemirror/legacy-modes": "^6.3.1", "@codemirror/lint": "^6.0.0", "@codemirror/state": "^6.1.2", "@codemirror/view": "^6.3.0", "@lezer/highlight": "^1.1.1", "lezer-csharp-simple": "^0.9.1", "style-mod": "^4.0.0" }, "devDependencies": { "@babel/core": "^7.9.0", "@sinonjs/fake-timers": "^6.0.1", "@storybook/addon-actions": "^6.5.15", "@storybook/addon-interactions": "^6.5.15", "@storybook/addon-measure": "^6.5.15", "@storybook/addon-outline": "^6.5.15", "@storybook/addon-viewport": "^6.5.15", "@storybook/builder-webpack5": "^6.5.15", "@storybook/html": "^6.5.15", "@storybook/manager-webpack5": "^6.5.15", "@storybook/test-runner": "^0.9.2", "@storybook/testing-library": "^0.0.13", "@types/jest": "^29.2.5", "@types/jest-image-snapshot": "^6.1.0", "@types/node": "^16.18.11", "@types/sinonjs__fake-timers": "^6.0.2", "@types/wait-on": "^5.3.1", "@typescript-eslint/eslint-plugin": "^5.47.0", "@typescript-eslint/parser": "^5.47.0", "depcheck": "^1.4.3", "eslint": "^8.30.0", "eslint-import-resolver-typescript": "^3.5.2", "eslint-plugin-import": "^2.26.0", "execa": "^5.0.0", "fast-glob": "^3.2.2", "fs-jetpack": "^2.1.0", "http-server": "^14.1.1", "jest": "^29.3.1", "jest-environment-jsdom": "^29.3.1", "jest-image-snapshot": "^6.1.0", "oldowan": "^1.0.0-preview-6", "tree-kill": "^1.2.2", "ts-jest": "^29.0.3", "ts-loader": "^9.4.2", "ts-unused-exports": "^9.0.1", "tsx": "^4.11.2", "typescript": "^4.9.4", "wait-on": "^7.0.1" } } ================================================ FILE: WebAssets/src/.eslintrc.json ================================================ { "root": true, "parser": "@typescript-eslint/parser", "parserOptions": { // https://github.com/typescript-eslint/typescript-eslint/issues/540 "project": "src/tsconfig.json" }, "settings": { "import/resolver": { "typescript": true } }, "plugins": [ "import", "@typescript-eslint" ], "extends": [ "eslint:recommended", "plugin:import/recommended", "plugin:import/typescript", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended" ], "env": { "browser": true, "amd": true, "es6": true }, "rules": { "comma-dangle": "error", "radix": "error", "no-undefined": "error", "no-duplicate-imports": "error", "strict": "error", "eqeqeq": ["error", "always", { "null": "ignore" }], "no-plusplus": ["error", { "allowForLoopAfterthoughts": true }], "no-sync": "error", "no-new": "warn", "linebreak-style": ["warn", "windows"], "eol-last": ["warn", "never"], "object-curly-spacing": ["warn", "always"], "arrow-parens": ["warn", "as-needed"], "dot-location": ["warn", "property"], "operator-linebreak": ["warn", "before"], "func-style": ["warn", "declaration", { "allowArrowFunctions": true }], "prefer-object-spread": "warn", "no-mixed-operators": "warn", "space-infix-ops": "warn", "comma-spacing": "warn", "no-path-concat": "warn", "quote-props": ["warn", "as-needed"], "key-spacing": ["warn", { "mode": "minimum" }], "import/no-default-export": "warn", "import/no-useless-path-segments": "warn", "import/order": ["warn", { "alphabetize": { "order": "asc" } }], "import/first": "warn", "@typescript-eslint/promise-function-async": "off", "@typescript-eslint/no-use-before-define": "off", "@typescript-eslint/explicit-function-return-type": "off", "@typescript-eslint/no-unsafe-call": "error", "@typescript-eslint/no-unsafe-member-access": "error", "@typescript-eslint/no-unsafe-return": "error", "@typescript-eslint/no-unnecessary-type-arguments": "warn", "@typescript-eslint/no-unnecessary-type-assertion": "warn", "@typescript-eslint/no-unnecessary-condition": "warn", "@typescript-eslint/no-floating-promises": "warn", "@typescript-eslint/no-misused-promises": "warn", "@typescript-eslint/no-unused-vars": ["warn", { "ignoreRestSiblings": true }], // TODO: Later, once fake "classes" become real classes // "@typescript-eslint/unbound-method": "warn", "@typescript-eslint/indent": ["warn", 4, { "SwitchCase": 1, "ignoredNodes": [ "TSTypeAliasDeclaration *", "TSTypeReference *", "MemberExpression" ] }], "@typescript-eslint/quotes": ["error", "single", { "avoidEscape": true, "allowTemplateLiterals": true }], "@typescript-eslint/semi": "error", "@typescript-eslint/brace-style": ["warn", "stroustrup", { "allowSingleLine": true }], "@typescript-eslint/restrict-template-expressions": ["error", { "allowBoolean": true, "allowNumber": true }], "@typescript-eslint/array-type": ["error", { "default": "generic" }], "@typescript-eslint/prefer-readonly": "warn", "@typescript-eslint/prefer-nullish-coalescing": "warn", "@typescript-eslint/prefer-includes": "warn", "@typescript-eslint/prefer-string-starts-ends-with": "warn", "@typescript-eslint/prefer-optional-chain": "warn" } } ================================================ FILE: WebAssets/src/codemirror/__snapshots__/languages.tests.ts.snap ================================================ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`C# highlighting applies expected classes 1`] = `"
public class C<T> {
// test comment
public void M<U>() {
double d = 1.2e3;
string s1 = "test";
string s2 = $"a{s1}b";
char c = 't';
Action a = () => {};
}
}
"`; exports[`F# highlighting applies expected classes 1`] = `"
type C<'a> =
// test comment
member this.M<'b>() =
let d = 1.2e3
let s1 = "test"
let s2 = $"a{s1}b"
let c = 't'
let a = fun () -> ()
()
"`; exports[`IL highlighting applies expected classes 1`] = `"
.class public C\`1<T>
extends [System.Runtime]System.Object
{
// test comment
.method public
instance void M<U> () cil managed
{
.maxstack 3
.locals init (
[0] float64 d,
[1] string s1
)

IL_0000: ldc.r8 1.2e3
IL_0009: stloc.0
IL_000a: ldstr "test"
IL_000f: stloc.1
IL_0010: ret
}
}
"`; exports[`PHP highlighting applies expected classes 1`] = `"
<?php

class C {
// test comment
public function M() {
$d = 1.2e3;
$s1 = 'test';
$s2 = "a{$s1}b";
$a = fn() => 0;
}
}
"`; exports[`VB highlighting applies expected classes 1`] = `"
Public Class C (Of T)
' test comment
Public Sub M (Of U)()
Dim d As Decimal = 1.2e3
Dim s1 As String = "test"
Dim s2 As String = $"a{s1}b"
Dim c As Char = 't'
Dim a As Action = Sub()
End Sub
End Sub
End Class
"`; ================================================ FILE: WebAssets/src/codemirror/create.ts ================================================ import { history } from '@codemirror/commands'; import { indentUnit, syntaxHighlighting } from '@codemirror/language'; import { EditorState, EditorSelection, Extension } from '@codemirror/state'; import { EditorView } from '@codemirror/view'; import { classHighlighter } from '@lezer/highlight'; import type { StyleSpec } from 'style-mod'; import { Theme, THEME_DARK } from '../main/theme'; import type { Connection } from '../protocol/connection'; import type { Language } from '../protocol/languages'; import { lineSeparator } from '../protocol/line-separator'; import type { Session } from '../protocol/session'; import { switchableExtension } from './helpers/switchable-extension'; import { keymaps } from './keymaps'; import { languageExtensions } from './languages'; import { notifyOnTextChanges } from './notify-on-text-changes'; import { autocompletionFromServer } from './server/autocompletion'; import { connectionState } from './server/connection-state'; import { diagnosticsFromServer } from './server/diagnostics'; import { infotipsFromServer } from './server/infotips'; import { sendChangesToServer } from './server/send-changes'; import { signatureHelpFromServer } from './server/signature-help'; export const createExtensions = ( connection: Connection, session: Session, options: { language: Language; theme: Theme; themeSpec: { [selector: string]: StyleSpec; }; onTextChange: ((getText: () => string) => void) | undefined, extraExtensions: ReadonlyArray; } ) => { const language = switchableExtension(options.language, l => languageExtensions[l]); const theme = switchableExtension( options.theme, t => EditorView.theme(options.themeSpec, { dark: t === THEME_DARK }) ); const initialExtensions = [ indentUnit.of(' '), EditorState.lineSeparator.of(lineSeparator), history(), language.extension, syntaxHighlighting(classHighlighter), connectionState(connection), sendChangesToServer(session as Session), diagnosticsFromServer(connection as Connection), infotipsFromServer(connection), signatureHelpFromServer(connection as Connection), autocompletionFromServer(connection), ...(options.onTextChange ? [notifyOnTextChanges(options.onTextChange)] : []), // has to go last so that more specific keymaps // in e.g. autocomplete have more priority keymaps, theme.extension ].concat(options.extraExtensions); return [ initialExtensions, { switchLanguageExtension: language.switch, switchThemeExtension: theme.switch } ] as const; }; export type ExtensionSwitcher = ReturnType[1]; export const createState = ( extensions: ReadonlyArray, options: { text?: string | undefined; cursorOffset?: number | undefined; } = {} ) => { return EditorState.create({ ...(options.text ? { doc: options.text } : {}), ...(options.cursorOffset ? { selection: EditorSelection.single(options.cursorOffset) } : {}), extensions }); }; ================================================ FILE: WebAssets/src/codemirror/helpers/apply-changes-from-server.ts ================================================ import type { ChangeSpec, TransactionSpec } from '@codemirror/state'; import type { EditorView } from '@codemirror/view'; import type { ChangeData } from '../../protocol/messages'; import { convertFromServerPosition, getEnd } from './convert-position'; export const applyChangesFromServer = (view: EditorView, changesFromServer: ReadonlyArray) => { const [selection] = view.state.selection.ranges; const transaction = { changes: [] } as Omit & { changes: Array; }; for (const { start, length, text } of changesFromServer) { const change = { from: convertFromServerPosition(view.state.doc, start), to: convertFromServerPosition(view.state.doc, getEnd(start, length)), insert: text }; transaction.changes.push(change); if (selection && selection.from >= change.from && selection.from <= change.to) transaction.selection = { anchor: change.from + change.insert.length }; } view.dispatch(transaction); }; ================================================ FILE: WebAssets/src/codemirror/helpers/convert-position.tests.ts ================================================ import { Text } from '@codemirror/state'; import type { ServerPosition } from '../../protocol/messages'; import { convertFromServerPosition, convertToServerPosition } from './convert-position'; const cases = [ [['a'], 0, 0], [['a'], 1, 1], [['a', 'b'], 1, 1], [['a', 'b'], 2, 3], [['ab'], 2, 2], [['a', 'b', 'c'], 5, 7] ] as ReadonlyArray<[lines: ReadonlyArray, cmPosition: number, serverPosition: number]>; test.each(cases)('convertToServerPosition(%p, %p) returns %p', (lines, cmPosition, expectedServerPosition) => { expect(convertToServerPosition(Text.of(lines), cmPosition)).toEqual(expectedServerPosition); }); const invertedCases = cases.map(([lines, cmPosition, serverPosition]) => [lines, serverPosition, cmPosition] as const); test.each(invertedCases)('convertFromServerPosition(%p, %p) returns %p', (lines, serverPosition, expectedCMPosition) => { expect(convertFromServerPosition(Text.of(lines), serverPosition as unknown as ServerPosition)) .toEqual(expectedCMPosition); }); ================================================ FILE: WebAssets/src/codemirror/helpers/convert-position.ts ================================================ import type { Text } from '@codemirror/state'; import { lineSeparator } from '../../protocol/line-separator'; import type { ServerPosition } from '../../protocol/messages'; export const getEnd = (start: ServerPosition, length: number) => ((start as unknown as number) + length) as unknown as ServerPosition; export const getLength = (start: ServerPosition, end: ServerPosition) => (end as unknown as number) - (start as unknown as number); export const convertToServerPosition = (doc: Text, position: number): ServerPosition => { const line = doc.lineAt(position); const lineSeparatorOffset = (line.number - 1) * (lineSeparator.length - 1); return (position + lineSeparatorOffset) as unknown as ServerPosition; }; export const convertFromServerPosition = (doc: Text, position: ServerPosition) => { const positionAsNumber = position as unknown as number; let serverLineStart = 0; for (let n = 1; n <= doc.lines; n++) { const line = doc.line(n); const nextServerLineStart = serverLineStart + line.length + lineSeparator.length; if (positionAsNumber < nextServerLineStart || n === doc.lines) return (positionAsNumber - serverLineStart) + line.from; serverLineStart = nextServerLineStart; } throw new Error(`Failed to map position from server: ${positionAsNumber}`); }; ================================================ FILE: WebAssets/src/codemirror/helpers/get-text.ts ================================================ import type { Text } from '@codemirror/state'; import type { EditorView } from '@codemirror/view'; import { lineSeparator } from '../../protocol/line-separator'; export const getString = (text: Text) => { // eslint-disable-next-line no-undefined return text.sliceString(0, undefined, lineSeparator); }; export const getText = (view: EditorView) => { // eslint-disable-next-line no-undefined return getString(view.state.doc); }; ================================================ FILE: WebAssets/src/codemirror/helpers/switchable-extension.ts ================================================ import type { Extension } from '@codemirror/state'; export const switchableExtension = (initialState: T, getExtension: (state: T) => Extension) => { let extension = getExtension(initialState); return { get extension() { return extension; }, switch: (extensions: ReadonlyArray, newState: T) => { const index = extensions.indexOf(extension); extension = getExtension(newState); return [ ...extensions.slice(0, index), extension, ...extensions.slice(index + 1, extensions.length) ] as const; } } as const; }; ================================================ FILE: WebAssets/src/codemirror/keymaps.ts ================================================ import { defaultKeymap, historyKeymap, indentWithTab } from '@codemirror/commands'; import { keymap } from '@codemirror/view'; export const keymaps = keymap.of([ ...defaultKeymap, ...historyKeymap, indentWithTab ]); ================================================ FILE: WebAssets/src/codemirror/languages/cil.ts ================================================ import { StreamLanguage } from '@codemirror/language'; const grammar = { keyword: new RegExp('^(?:' + [ /* spellchecker: disable */ '\\.(?:class|custom|field|locals|method|maxstack)', 'nested', 'private', 'public', 'assembly', 'family', 'famorassem', 'beforefieldinit', 'init', 'ansi', 'auto', 'cil', 'managed', 'implements', 'extends', 'hidebysig', 'newslot', 'virtual', 'abstract', 'sealed', 'instance', 'static', 'specialname', 'rtspecialname' /* spellchecker: enable */ ].join('|') + ')(?:$|\\s)'), builtin: new RegExp('^(?:' + [ /* spellchecker: disable */ 'add', 'add.ovf', 'add.ovf.un', 'and', 'arglist', 'beq', 'beq.s', 'b[gl][et]', 'b[gl][et].s', 'b[gl][et].un', 'b[gl][et].un.s', 'bne.un', 'bne.un.s', 'box', 'br(?:true|false|inst|null|zero)?(.s)?', 'break', 'call', 'calli', 'callvirt', 'castclass', 'ceq', 'c[gl]t', 'c[gl]t.un', 'ckfinite', 'constrained.', 'conv.i[1248]?', 'conv.ovf.i[1248]?', 'conv.ovf.i[1248]?.un', 'conv.ovf.u[1248]?', 'conv.ovf.u[1248]?.un', 'conv.r.un', 'conv.r[48]', 'conv.u[1248]?', 'cpblk', 'cpobj', 'div', 'div.un', 'dup', 'end(?:fault|filter|finally)', 'initblk', 'initobj', 'isinst', 'jmp', 'ldarga?', 'ldarg.[0123s]', 'ldarga.s', 'ldc.i[48]', 'ldc.i4.[0-8s]', 'ldc.i4.[mM]1', 'ldc.r[48]', 'ldelema?', 'ldelem.i[1248]?', 'ldelem.r[48]', 'ldelem.ref', 'ldelem.u[1248]', 'lds?flda?', 'ldftn', 'ldind.i[1248]?', 'ldind.r[48]', 'ldind.ref', 'ldind.u[1248]', 'ldlen', 'ldloca?', 'ldloc.[0123s]', 'ldloca.s', 'ld(?:null|obj|str|token|virtftn)', 'leave', 'leave.s', 'localloc', 'mkrefany', 'mul', 'mul.ovf', 'mul.ovf.un', 'neg', 'newarr', 'newobj', 'nop', 'not', 'or', 'pop', 'readonly.', 'refany(?:type|val)', 'rem', 'rem.un', 'ret', 'rethrow', 'sh[lr]', 'shr.un', 'sizeof', 'starg', 'starg.s', 'stelem', 'stelem.i[1248]?', 'stelem.r[48]', 'stelem.ref', 'sts?fld', 'stind.i[1248]?', 'stind.r[48]', 'stind.ref', 'stloc', 'stloc.[0123s]', 'stobj', 'sub', 'sub.ovf', 'sub.ovf.un', 'switch', 'tail.', 'throw', 'unaligned.', 'unbox', 'unbox.any', 'volatile.', 'xor' /* spellchecker: enable */ ].join('|').replace('.', '\\.') + ')(?:$|\\s)') }; const cilSyntax = StreamLanguage.define({ startState() { return {}; }, token(stream) { if (stream.eatSpace()) { return null; } if (stream.match('//')) { stream.skipToEnd(); return 'comment'; } // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (stream.match(/\d+/)) { return 'number'; } // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (stream.match(/"[^"]+"/)) { return 'string'; } // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (stream.match(/\w+:/)) { return 'tag'; } for (const key in grammar) { // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (stream.match(grammar[key as keyof typeof grammar], false)) { stream.match(/\S+/); return key; } } stream.match(/\S+/); return null; } }); export const cil = cilSyntax.extension; ================================================ FILE: WebAssets/src/codemirror/languages/csharp.ts ================================================ import { LRLanguage } from '@codemirror/language'; import { styleTags, tags } from '@lezer/highlight'; import { parser } from 'lezer-csharp-simple'; const csharpSyntax = LRLanguage.define({ parser: parser.configure({ props: [styleTags({ Keyword: tags.keyword, Comment: tags.comment, Number: tags.number, String: tags.string, Punctuation: tags.punctuation })] }), languageData: { closeBrackets: { brackets: ['(', '[', '{', "'", '"', '`'] }, commentTokens: { line: '//', block: { open: '/*', close: '*/' } } } }); export const csharp = csharpSyntax.extension; ================================================ FILE: WebAssets/src/codemirror/languages/fsharp.ts ================================================ import { StreamLanguage } from '@codemirror/language'; import { fSharp } from '@codemirror/legacy-modes/mode/mllike'; export const fsharp = StreamLanguage.define(fSharp).extension; ================================================ FILE: WebAssets/src/codemirror/languages/php.ts ================================================ import { phpLanguage } from '@codemirror/lang-php'; import { styleTags, tags } from '@lezer/highlight'; export const php = phpLanguage.configure({ props: [styleTags({ Keyword: tags.keyword, Comment: tags.comment, Number: tags.number, String: tags.string, Punctuation: tags.punctuation })] }).extension; ================================================ FILE: WebAssets/src/codemirror/languages/test.data.ts ================================================ const normalize = (code: string) => code.replace(/\r\n|\r|\n/g, '\r\n').trim(); export const CODE_CSHARP = normalize(` public class C { // test comment public void M() { double d = 1.2e3; string s1 = "test"; string s2 = $"a{s1}b"; char c = 't'; Action a = () => {}; } }`); export const CODE_VB = normalize(` Public Class C (Of T) ' test comment Public Sub M (Of U)() Dim d As Decimal = 1.2e3 Dim s1 As String = "test" Dim s2 As String = $"a{s1}b" Dim c As Char = 't' Dim a As Action = Sub() End Sub End Sub End Class `); export const CODE_FSHARP = normalize(` type C<'a> = // test comment member this.M<'b>() = let d = 1.2e3 let s1 = "test" let s2 = $"a{s1}b" let c = 't' let a = fun () -> () () `); export const CODE_IL = normalize(` .class public C\`1 extends [System.Runtime]System.Object { // test comment .method public instance void M () cil managed { .maxstack 3 .locals init ( [0] float64 d, [1] string s1 ) IL_0000: ldc.r8 1.2e3 IL_0009: stloc.0 IL_000a: ldstr "test" IL_000f: stloc.1 IL_0010: ret } } `); export const CODE_PHP = normalize(` 0; } } `); ================================================ FILE: WebAssets/src/codemirror/languages/vb.ts ================================================ import { StreamLanguage } from '@codemirror/language'; import { vb as vbImport } from '@codemirror/legacy-modes/mode/vb'; // Test-only: // ts-unused-exports:disable-next-line export const vbLanguage = StreamLanguage.define(vbImport); export const vb = vbLanguage.extension; ================================================ FILE: WebAssets/src/codemirror/languages.stories.ts ================================================ import { Language, LANGUAGE_CSHARP, LANGUAGE_FSHARP, LANGUAGE_IL, LANGUAGE_PHP, LANGUAGE_VB } from '../protocol/languages'; import { storyWithDarkTheme } from '../testing/storybook/story-with-dark-theme'; import { testDriverStory } from '../testing/storybook/test-driver-story'; import { TestDriver } from '../testing/test-driver-storybook'; import { CODE_CSHARP, CODE_FSHARP, CODE_IL, CODE_PHP, CODE_VB } from './languages/test.data'; // eslint-disable-next-line import/no-default-export export default { title: 'Languages', component: {} }; const highlightingStory = (language: Language, text: string) => testDriverStory(async () => { const driver = await TestDriver.new({ language, text }); await driver.completeBackgroundWork(); return driver; }); export const CSharp = highlightingStory(LANGUAGE_CSHARP, CODE_CSHARP); export const CSharpDark = storyWithDarkTheme(CSharp); export const VisualBasic = highlightingStory(LANGUAGE_VB, CODE_VB); export const VisualBasicDark = storyWithDarkTheme(VisualBasic); export const FSharp = highlightingStory(LANGUAGE_FSHARP, CODE_FSHARP); export const FSharpDark = storyWithDarkTheme(FSharp); export const IL = highlightingStory(LANGUAGE_IL, CODE_IL); export const ILDark = storyWithDarkTheme(IL); export const PHP = highlightingStory(LANGUAGE_PHP, CODE_PHP); export const PHPDark = storyWithDarkTheme(PHP); ================================================ FILE: WebAssets/src/codemirror/languages.tests.ts ================================================ import { LANGUAGE_FSHARP, LANGUAGE_IL, LANGUAGE_PHP, LANGUAGE_VB } from '../protocol/languages'; import { TestDriver } from '../testing/test-driver-jest'; import { CODE_CSHARP, CODE_FSHARP, CODE_IL, CODE_PHP, CODE_VB } from './languages/test.data'; test('C# highlighting applies expected classes', async () => { const driver = await TestDriver.new({ text: CODE_CSHARP }); await driver.completeBackgroundWork(); const html = driver.getCodeMirrorView().contentDOM.innerHTML; expect(html).toMatchSnapshot(); }); test('VB highlighting applies expected classes', async () => { const driver = await TestDriver.new({ language: LANGUAGE_VB, text: CODE_VB }); await driver.completeBackgroundWork(); const html = driver.getCodeMirrorView().contentDOM.innerHTML; expect(html).toMatchSnapshot(); }); test('F# highlighting applies expected classes', async () => { const driver = await TestDriver.new({ language: LANGUAGE_FSHARP, text: CODE_FSHARP }); await driver.completeBackgroundWork(); const html = driver.getCodeMirrorView().contentDOM.innerHTML; expect(html).toMatchSnapshot(); }); test('IL highlighting applies expected classes', async () => { const driver = await TestDriver.new({ language: LANGUAGE_IL, text: CODE_IL }); await driver.completeBackgroundWork(); const html = driver.getCodeMirrorView().contentDOM.innerHTML; expect(html).toMatchSnapshot(); }); test('PHP highlighting applies expected classes', async () => { const driver = await TestDriver.new({ language: LANGUAGE_PHP, text: CODE_PHP }); await driver.completeBackgroundWork(); const html = driver.getCodeMirrorView().contentDOM.innerHTML; expect(html).toMatchSnapshot(); }); ================================================ FILE: WebAssets/src/codemirror/languages.ts ================================================ import { LANGUAGE_CSHARP, LANGUAGE_FSHARP, LANGUAGE_IL, LANGUAGE_PHP, LANGUAGE_VB } from '../protocol/languages'; import { cil } from './languages/cil'; import { csharp } from './languages/csharp'; import { fsharp } from './languages/fsharp'; import { php } from './languages/php'; import { vb } from './languages/vb'; export const languageExtensions = { [LANGUAGE_CSHARP]: csharp, [LANGUAGE_VB]: vb, [LANGUAGE_FSHARP]: fsharp, [LANGUAGE_PHP]: php, [LANGUAGE_IL]: cil } as const; ================================================ FILE: WebAssets/src/codemirror/notify-on-text-changes.ts ================================================ import { ViewPlugin } from '@codemirror/view'; import { getText } from './helpers/get-text'; export const notifyOnTextChanges = (onTextChange: ((getText: () => string) => void)) => ViewPlugin.define(() => ({ update({ docChanged, view }) { if (!docChanged) return; onTextChange(() => getText(view)); } })); ================================================ FILE: WebAssets/src/codemirror/server/__snapshots__/autocompletion.tests.ts.snap ================================================ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`completion applies requested info 1`] = `"
ToString
Converts the value of this instance to its equivalent string representation.
"`; ================================================ FILE: WebAssets/src/codemirror/server/__snapshots__/infotips.tests.ts.snap ================================================ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`hover applies received infotip 1`] = `"
delegate void System.EventHandler(object sender, System.EventArgs e)
Represents the method that will handle an event that has no event data.
"`; ================================================ FILE: WebAssets/src/codemirror/server/__snapshots__/signature-help.tests.ts.snap ================================================ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`signature help message shows signature help 1`] = `"
  • int string.IndexOf(char value)
    Reports the zero-based index of the first occurrence of the specified Unicode character in this string.
    A Unicode character to seek.
  • int string.IndexOf(string value)
  • int string.IndexOf(char value, int startIndex)
  • int string.IndexOf(char value, System.StringComparison comparisonType)
  • int string.IndexOf(string value, int startIndex)
  • int string.IndexOf(string value, System.StringComparison comparisonType)
  • int string.IndexOf(char value, int startIndex, int count)
  • int string.IndexOf(string value, int startIndex, int count)
  • int string.IndexOf(string value, int startIndex, System.StringComparison comparisonType)
  • int string.IndexOf(string value, int startIndex, int count, System.StringComparison comparisonType)
  • "`; ================================================ FILE: WebAssets/src/codemirror/server/autocompletion.stories.ts ================================================ import { storyWithDarkTheme } from '../../testing/storybook/story-with-dark-theme'; import { testDriverStory } from '../../testing/storybook/test-driver-story'; import { TestDriver } from '../../testing/test-driver-storybook'; // eslint-disable-next-line import/no-default-export export default { title: 'Autocompletion', component: {} }; const completionListStory = (kinds: ReadonlyArray) => testDriverStory(async () => { const driver = await TestDriver.new({ textWithCursor: '|' }); driver.receive.completions(kinds.map(k => ({ displayText: k, kinds: [k] }))); await driver.completeBackgroundWork(); return driver; }); export const Completions1 = completionListStory(['class', 'constant', 'delegate', 'enum', 'enummember', 'event', 'extensionmethod']); export const Completions2 = completionListStory(['field', 'interface', 'keyword', 'local', 'method', 'module', 'namespace']); export const Completions3 = completionListStory(['parameter', 'property', 'structure', 'typeparameter', 'union']); export const Completions1Dark = storyWithDarkTheme(Completions1); export const Info = testDriverStory(async () => { const driver = await TestDriver.new({ text: '' }); driver.receive.completions([{ displayText: 'CompareTo', kinds: ['method'] }]); await driver.ensureCompletionIsReadyForInteraction(); driver.receive.completionInfo(0, [ { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'int', kind: 'keyword' }, { text: '.', kind: 'punctuation' }, { text: 'CompareTo', kind: 'method' }, { text: '(', kind: 'punctuation' }, { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'value', kind: 'parameter' }, { text: ')', kind: 'punctuation' }, { text: ' ', kind: 'space' }, { text: '(', kind: 'punctuation' }, { text: '+', kind: 'punctuation' }, { text: ' 1', kind: 'text' }, { text: ' overload', kind: 'text' }, { text: ')', kind: 'punctuation' }, { text: '\r\n', kind: 'linebreak' }, { text: 'Compares this instance to a specified 32-bit signed integer and returns an indication of their relative values.', kind: 'text' } ]); await driver.completeBackgroundWork(); return driver; }); export const InfoDark = storyWithDarkTheme(Info); ================================================ FILE: WebAssets/src/codemirror/server/autocompletion.tests.ts ================================================ import { completionStatus, currentCompletions, acceptCompletion, moveCompletionSelection, closeCompletion } from '@codemirror/autocomplete'; import { TestDriver } from '../../testing/test-driver-jest'; const typeCharacterUsingDOM = (driver: TestDriver, character: string) => { driver.domEvents.keydown(character); const characterText = document.createTextNode(character); const { contentDOM } = driver.getCodeMirrorView(); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion contentDOM.querySelector('.cm-line')!.appendChild(characterText); }; test('completions message shows completion list', async () => { const driver = await TestDriver.new({ text: '' }); driver.receive.completions([{ displayText: 'Test', kinds: ['class'] }]); await driver.completeBackgroundWork(); const state = driver.getCodeMirrorView().state; expect(completionStatus(state)).toBe('active'); expect(currentCompletions(state)).toMatchObject([{ label: 'Test', type: 'class' }]); }); test('closing completion sends expected message', async () => { const driver = await TestDriver.new({ text: '' }); driver.receive.completions([{ displayText: 'Test', kinds: ['class'] }]); await driver.completeBackgroundWork(); closeCompletion(driver.getCodeMirrorView()); expect(driver.socket.sent.slice(-1)[0]).toBe('SX'); }); test('completion does not show stale list from previous message after close', async () => { const driver = await TestDriver.new({ text: '' }); driver.receive.completions([{ displayText: 'Test', kinds: ['class'] }]); await driver.completeBackgroundWork(); closeCompletion(driver.getCodeMirrorView()); typeCharacterUsingDOM(driver, '.'); await driver.completeBackgroundWork(); const state = driver.getCodeMirrorView().state; expect(completionStatus(state)).toBeNull(); }); test('completion sends cancel message when fully filtered out', async () => { const driver = await TestDriver.new({ text: '' }); driver.receive.completions([{ displayText: 'Test', kinds: ['class'] }]); await driver.completeBackgroundWork(); typeCharacterUsingDOM(driver, 'X'); await driver.completeBackgroundWork(); const state = driver.getCodeMirrorView().state; expect(completionStatus(state)).toBeNull(); expect(driver.socket.sent.slice(-1)[0]).toBe('SX'); }); test('applying completion sends expected message', async () => { const driver = await TestDriver.new({ text: '' }); driver.receive.completions([{ displayText: 'Test', kinds: ['method'] }]); await driver.ensureCompletionIsReadyForInteraction(); acceptCompletion(driver.getCodeMirrorView()); await driver.completeBackgroundWork(); expect(driver.socket.sent.slice(-1)[0]).toBe('S0'); }); test('Ctrl+Space requests completion list', async () => { const driver = await TestDriver.new({ text: '' }); driver.domEvents.keydown(' ', { ctrlKey: true }); await driver.completeBackgroundWork(); expect(driver.socket.sent.slice(-1)[0]).toBe('SF'); }); test('completion change is applied correctly', async () => { const driver = await TestDriver.new({ textWithCursor: 'x.|' }); driver.receive.changes('completion', [{ start: 2, length: 0, text: 'ToString();' }]); await driver.completeBackgroundWork(); const updated = driver.mirrorsharp.getText(); expect(updated).toBe('x.ToString();'); }); test.each([ ['x.|', 'x.|', 'a', 'x.a|'], ['x.|', 'x.|', 'ab', 'x.ab|'], ['x.|', '|x.', 'a', '|x.a'], ['x.|', 'x.y|', 'a', 'x.ay|'] ])('completion change adjust selection (initial: %p, while waiting: %p, change: %p, expected: %p)', async ( initialText, textWhileWaiting, completionText, expectedText ) => { const driver = await TestDriver.new({ textWithCursor: initialText }); const initialCursorOffset = driver.mirrorsharp.getCursorOffset(); driver.setTextWithCursor(textWhileWaiting); driver.receive.changes('completion', [{ start: initialCursorOffset, length: 0, text: completionText }]); await driver.completeBackgroundWork(); expect(driver.getTextWithCursor()).toBe(expectedText); }); test('completion list is filtered based on initial text', async () => { const driver = await TestDriver.new({ textWithCursor: 'b|' }); driver.receive.completions([ { displayText: 'ab', kinds: [] }, { displayText: 'bb', kinds: [] }, { displayText: 'BC', kinds: [] } ]); await driver.completeBackgroundWork(); const state = driver.getCodeMirrorView().state; expect(currentCompletions(state).map(c => c.label)).toEqual(['bb', 'BC']); }); test('completion list is filtered based on new typed text', async () => { const driver = await TestDriver.new({ textWithCursor: 'a|' }); driver.receive.completions([ { displayText: 'aaa', kinds: [] }, { displayText: 'aba', kinds: [] }, { displayText: 'ABB', kinds: [] } ]); await driver.completeBackgroundWork(); driver.text.type('b'); await driver.completeBackgroundWork(); const state = driver.getCodeMirrorView().state; expect(currentCompletions(state).map(c => c.label)).toEqual(['aba', 'ABB']); }); test('completion is applied on Tab', async () => { const driver = await TestDriver.new({ text: '' }); driver.receive.completions([{ displayText: 'ToString', kinds: ['method'] }]); await driver.ensureCompletionIsReadyForInteraction(); driver.domEvents.keydown('Tab'); await driver.completeBackgroundWork(); const text = driver.mirrorsharp.getText(); expect(text).toBe(''); // completion response not received, so text not changed yet expect(driver.socket.sent.slice(-1)[0]).toBe('S0'); }); test('completion is applied on (', async () => { const driver = await TestDriver.new({ text: '' }); driver.receive.completions([{ displayText: 'ToString', kinds: ['method'] }], { commitChars: '(;' }); await driver.ensureCompletionIsReadyForInteraction(); typeCharacterUsingDOM(driver, '('); await driver.completeBackgroundWork(); driver.receive.changes('completion', [{ start: 0, length: 0, text: 'ToString' }]); await driver.completeBackgroundWork(); const updated = driver.mirrorsharp.getText(); expect(driver.socket.sent).toContain('S0'); expect(updated).toBe('ToString('); }); test('completion requests info when open', async () => { const driver = await TestDriver.new({ text: '' }); driver.receive.completions([{ displayText: 'ToString', kinds: ['method'] }]); await driver.ensureCompletionIsReadyForInteraction(); expect(driver.socket.sent).toContain('SI0'); }); test('completion requests info when selected', async () => { const driver = await TestDriver.new({ text: '' }); driver.receive.completions([ { displayText: 'Method0', kinds: ['method'] }, { displayText: 'Method1', kinds: ['method'] } ]); await driver.ensureCompletionIsReadyForInteraction(); moveCompletionSelection(true, 'option')(driver.getCodeMirrorView()); await driver.completeBackgroundWork(); expect(driver.socket.sent[driver.socket.sent.length - 1]).toBe('SI1'); }); test('completion does not request same info twice', async () => { const driver = await TestDriver.new({ text: '' }); driver.receive.completions([ { displayText: 'Method0', kinds: ['method'] }, { displayText: 'Method1', kinds: ['method'] } ]); await driver.ensureCompletionIsReadyForInteraction(); // -> 0 moveCompletionSelection(true, 'option')(driver.getCodeMirrorView()); await driver.completeBackgroundWork(); // 0 -> 1 moveCompletionSelection(true, 'option')(driver.getCodeMirrorView()); await driver.completeBackgroundWork(); // 1 -> 0 moveCompletionSelection(false, 'option')(driver.getCodeMirrorView()); await driver.completeBackgroundWork(); expect(driver.socket.sent).toEqual([ 'SI0', 'SI1' ]); }); test('completion applies requested info', async () => { const driver = await TestDriver.new({ text: '' }); driver.receive.completions([{ displayText: 'ToString', kinds: ['method'] }]); await driver.ensureCompletionIsReadyForInteraction(); driver.receive.completionInfo(0, [ { text: 'ToString', kind: 'method' }, { text: '\r\n', kind: 'linebreak' }, { text: 'Converts the value of this instance to its equivalent string representation.', kind: 'text' } ]); await driver.completeBackgroundWork(); const tooltip = driver.getCodeMirrorView().dom.querySelector('.cm-completionInfo'); expect(tooltip).not.toBeNull(); expect(tooltip?.innerHTML).toMatchSnapshot(); }); ================================================ FILE: WebAssets/src/codemirror/server/autocompletion.ts ================================================ import { startCompletion, acceptCompletion, closeCompletion, completionStatus, autocompletion, CompletionSource, Completion } from '@codemirror/autocomplete'; import { Prec } from '@codemirror/state'; import { ViewPlugin, EditorView, keymap } from '@codemirror/view'; import { renderParts } from '../../helpers/render-parts'; import type { Connection } from '../../protocol/connection'; import type { CompletionInfoMessage, CompletionsMessage } from '../../protocol/messages'; import { applyChangesFromServer } from '../helpers/apply-changes-from-server'; export const autocompletionFromServer = (connection: Connection) => { // Since completions are scoped per connection (server will have one active completion list per connection), // it's OK to have state per plugin rather than per view let currentCompletionsMessage = null as CompletionsMessage | null; const resolveInfoList = new Array<((info: Node) => void) | undefined>(); const applyCompletion = (index: number) => { // eslint-disable-next-line @typescript-eslint/no-floating-promises connection.sendCompletionState(index); }; const requestCompletionInfo = (index: number, ref: { info?: Promise }) => { if (!ref.info) { ref.info = new Promise(resolve => { resolveInfoList[index] = resolve; }); // eslint-disable-next-line @typescript-eslint/no-floating-promises connection.sendCompletionState('info', index); } return ref.info; }; const receiveCompletionInfo = (view: EditorView, message: CompletionInfoMessage) => { const resolve = resolveInfoList[message.index]; if (!resolve) return; resolve(renderParts(message.parts, { splitLinesToSections: true })); }; const getAndFilterCompletions = (context => { const all = currentCompletionsMessage ?.completions .map((data, index) => ({ data, index })) ?? []; const prefix = context.matchBefore(/[\w\d]+/); let filtered = all; if (prefix) { const prefixTextLowerCase = prefix.text.toLowerCase(); filtered = all.filter( ({ data }) => (data.filterText ?? data.displayText).toLowerCase().startsWith(prefixTextLowerCase) ); } const completions = filtered.map(({ data, index }) => { const infoRef = {}; return ({ label: data.displayText, type: data.kinds[0], apply: () => applyCompletion(index), info: () => requestCompletionInfo(index, infoRef) } as Completion); }); return { from: prefix?.from ?? context.pos, options: completions }; }) satisfies CompletionSource; const receiveCompletionMessagesFromServer = ViewPlugin.define(view => { const removeListeners = connection.addEventListeners({ message: message => { if (message.type === 'completions') { currentCompletionsMessage = message; startCompletion(view); return; } if (message.type === 'changes' && message.reason === 'completion') { applyChangesFromServer(view, message.changes); closeCompletion(view); currentCompletionsMessage = null; } if (message.type === 'completionInfo') receiveCompletionInfo(view, message); } }); return { destroy: removeListeners }; }); const sendCancelCompletionToServer = ViewPlugin.define(() => ({ update: u => { const previousStatus = completionStatus(u.startState); if (previousStatus === null) return; const currentStatus = completionStatus(u.state); if (currentStatus !== null) return; // eslint-disable-next-line @typescript-eslint/no-floating-promises connection.sendCompletionState('cancel'); currentCompletionsMessage = null; } })); const acceptCompletionOnCommitChar = EditorView.domEventHandlers({ keydown({ key }, view) { if (key.length > 1) // control keys return; if (!currentCompletionsMessage?.commitChars.includes(key)) return; acceptCompletion(view); } }); const forceCompletionOnCtrlSpace = Prec.highest(keymap.of([{ key: 'Ctrl-Space', run: () => { // eslint-disable-next-line @typescript-eslint/no-floating-promises connection.sendCompletionState('force'); return true; } }])); const acceptCompletionOnTab = keymap.of([{ key: 'Tab', run: view => { if (completionStatus(view.state) !== 'active') return false; acceptCompletion(view); return true; } }]); return [ // overrides default autocompletion binding forceCompletionOnCtrlSpace, autocompletion({ activateOnTyping: false, override: [getAndFilterCompletions] }), //closeCompletionsWhenFullyFilteredOut, receiveCompletionMessagesFromServer, sendCancelCompletionToServer, acceptCompletionOnCommitChar, acceptCompletionOnTab ]; }; ================================================ FILE: WebAssets/src/codemirror/server/connection-state.ts ================================================ import { ViewPlugin } from '@codemirror/view'; import { defineEffectField } from '../../helpers/define-effect-field'; import type { Connection } from '../../protocol/connection'; const [isConnected, dispatchIsConnectedChanged] = defineEffectField(false); export const connectionState = ( connection: Connection ) => { return [isConnected, ViewPlugin.define(view => { const removeListeners = connection.addEventListeners({ open: () => dispatchIsConnectedChanged(view, true), close: () => dispatchIsConnectedChanged(view, false) }); return { destroy: () => removeListeners() }; })]; }; ================================================ FILE: WebAssets/src/codemirror/server/diagnostics.stories.ts ================================================ import { userEvent as user } from '@storybook/testing-library'; import { lineSeparator } from '../../protocol/line-separator'; import { storyWithDarkTheme } from '../../testing/storybook/story-with-dark-theme'; import { testDriverStory } from '../../testing/storybook/test-driver-story'; import { TestDriver } from '../../testing/test-driver-storybook'; // eslint-disable-next-line import/no-default-export export default { title: 'Diagnostics', component: {} }; export const All = testDriverStory(async () => { const driver = await TestDriver.new({ text: ['info', 'warning', 'error', 'hidden', 'unnecessary'].join(lineSeparator) }); driver.receive.slowUpdate([ { id: 'I1', message: 'info', severity: 'info', tags: [], span: { start: 0, length: 4 } }, { id: 'W1', message: 'warning', severity: 'warning', tags: [], span: { start: 6, length: 7 } }, { id: 'E1', message: 'error', severity: 'error', tags: [], span: { start: 15, length: 5 } }, { id: 'H1', message: 'hidden', severity: 'hidden', tags: [], span: { start: 22, length: 6 } }, { id: 'U1', message: 'unnecessary', severity: 'info', tags: ['unnecessary'], span: { start: 30, length: 11 } } ]); await driver.completeBackgroundWork(); return driver; }); export const AllDark = storyWithDarkTheme(All); export const GutterTooltip = testDriverStory(async () => { const driver = await TestDriver.new({ text: 'class X : EventArgs {}' }); driver.receive.slowUpdate([ { id: 'CS0246', message: "The type or namespace name 'EventArgs' could not be found (are you missing a using directive or an assembly reference?)", severity: 'error', tags: [], span: { start: 10, length: 9 }, actions: [ { id: 0, title: 'using System;' }, { id: 1, title: "Generate class 'EventArgs'" }, { id: 2, title: 'System.EventArgs' } ] }, { id: 'IDE0040', message: 'Accessibility modifiers required', severity: 'hidden', tags: [], span: { start: 6, length: 1 }, actions: [{ id: 3, title: 'Add accessibility modifiers' }] } ]); await driver.completeBackgroundWork(); return driver; }); GutterTooltip.play = async ({ canvasElement, loaded: { driver } }) => { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const gutterMarker = canvasElement.querySelector('.cm-gutter-lint .cm-lint-marker')!; user.hover(gutterMarker); await driver.advanceTimeToHoverAndCompleteWork(); driver.disableAllFurtherInteractionEvents(); }; export const GutterTooltipDark = storyWithDarkTheme(GutterTooltip); ================================================ FILE: WebAssets/src/codemirror/server/diagnostics.tests.ts ================================================ import { Diagnostic, setDiagnostics } from '@codemirror/lint'; import { TestDriver } from '../../testing/test-driver-jest'; const expectSetDiagnostics = (driver: TestDriver, diagnostics: ReadonlyArray>) => { expect(driver.codeMirrorTransactions).toHaveLength(1); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const [effect] = driver.codeMirrorTransactions[0]!.effects; expect([effect]).toMatchObject( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion setDiagnostics(driver.getCodeMirrorView().state, diagnostics as ReadonlyArray).effects! ); }; test('diagnostics are positioned correctly after newlines', async () => { const driver = await TestDriver.new({ text: 'a\r\nb' }); driver.codeMirrorTransactions = []; driver.receive.slowUpdate([{ span: { start: 3, length: 1 } }]); await driver.completeBackgroundWork(); expectSetDiagnostics(driver, [{ from: 2, to: 3 }]); }); test('diagnostics at the end of document are applied', async () => { const driver = await TestDriver.new({ text: 'test' }); driver.codeMirrorTransactions = []; driver.receive.slowUpdate([{ span: { start: 3, length: 1 } }]); await driver.completeBackgroundWork(); expectSetDiagnostics(driver, [{ from: 3, to: 4 }]); }); // Happens if slow update is received after a text change // invalidated some diagnostic locations test('diagnostics outside document boundaries are not applied', async () => { const driver = await TestDriver.new({ text: 'test' }); driver.codeMirrorTransactions = []; driver.receive.slowUpdate([{ span: { start: 5, length: 1 } }]); await driver.completeBackgroundWork(); expectSetDiagnostics(driver, []); }); ================================================ FILE: WebAssets/src/codemirror/server/diagnostics.ts ================================================ import { Action, Diagnostic, setDiagnostics, lintGutter } from '@codemirror/lint'; import { ViewPlugin } from '@codemirror/view'; import type { Connection } from '../../protocol/connection'; import type { DiagnosticActionData, DiagnosticData, DiagnosticSeverity } from '../../protocol/messages'; import { applyChangesFromServer } from '../helpers/apply-changes-from-server'; import { convertFromServerPosition, getEnd } from '../helpers/convert-position'; const receiveSlowUpdateFromServer = ( connection: Connection ) => ViewPlugin.define(view => { const mapSeverity = (severity: DiagnosticSeverity, tags: ReadonlyArray) => { if (severity === 'error' || severity === 'warning') return severity; if (tags.includes('unnecessary')) return 'unnecessary' as Diagnostic['severity']; return 'info'; }; const mapAction = ({ id, title }: DiagnosticActionData): Action => ({ name: title, apply: () => { // eslint-disable-next-line @typescript-eslint/no-floating-promises connection.sendApplyDiagnosticAction(id); } }); const mapDiagnostic = ({ span: { start, length }, message, severity, actions, tags }: DiagnosticData): Diagnostic => ({ from: convertFromServerPosition(view.state.doc, start), to: convertFromServerPosition(view.state.doc, getEnd(start, length)), message, severity: mapSeverity(severity, tags), actions: actions?.map(mapAction) }); const removeConnectionListeners = connection.addEventListeners({ message(message) { if (message.type !== 'slowUpdate') return; const diagnostics = message.diagnostics .filter(d => d.severity !== 'hidden') .map(mapDiagnostic) // If slow update is received after a text change // some diagnostics might be outside document boundaries .filter(d => d.to <= view.state.doc.length); diagnostics.sort((a, b) => { if (a.from > b.from) return 1; if (b.from > a.from) return -1; return 0; }); view.dispatch(setDiagnostics(view.state, diagnostics)); } }); return { destroy: () => removeConnectionListeners() }; }); const receiveFixChangesFromServer = ( connection: Connection ) => ViewPlugin.define(view => { const removeListeners = connection.addEventListeners({ message(message) { if (message.type !== 'changes' || message.reason !== 'fix') return; applyChangesFromServer(view, message.changes); } }); return { destroy: () => removeListeners() }; }); export const diagnosticsFromServer = ( connection: Connection ) => [ receiveSlowUpdateFromServer(connection), receiveFixChangesFromServer(connection), lintGutter() ]; ================================================ FILE: WebAssets/src/codemirror/server/infotips.stories.ts ================================================ import { userEvent as user, within } from '@storybook/testing-library'; import { storyWithDarkTheme } from '../../testing/storybook/story-with-dark-theme'; import { testDriverStory } from '../../testing/storybook/test-driver-story'; import { TestDriver } from '../../testing/test-driver-storybook'; import { INFOTIP_TASK_RUN } from './infotips.test.data'; // eslint-disable-next-line import/no-default-export export default { title: 'QuickInfo', component: {} }; export const Simple = testDriverStory(() => TestDriver.new({ text: 'Task M() => Task.Run(() => {});' })); Simple.play = async ({ canvasElement, loaded: { driver } }) => { const canvas = within(canvasElement); const code = await canvas.findByText('Run', { exact: false }); const cmView = driver.getCodeMirrorView(); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const coords = cmView.coordsAtPos(INFOTIP_TASK_RUN.span.start)!; user.hover(code, { clientX: Math.ceil(coords.left), clientY: Math.ceil(coords.top) }); await driver.advanceTimeToHoverAndCompleteWork(); driver.receive.infotip(INFOTIP_TASK_RUN); await driver.completeBackgroundWork(); driver.disableAllFurtherInteractionEvents(); }; export const Dark = storyWithDarkTheme(Simple); ================================================ FILE: WebAssets/src/codemirror/server/infotips.test.data.ts ================================================ export const INFOTIP_EVENTHANDLER = { kinds: ['delegate', 'public'], sections: [ { kind: 'description', parts: [ { text: 'delegate', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'void', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'System', kind: 'namespace' }, { text: '.', kind: 'punctuation' }, { text: 'EventHandler', kind: 'delegate' }, { text: '(', kind: 'punctuation' }, { text: 'object', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'sender', kind: 'parameter' }, { text: ',', kind: 'punctuation' }, { text: ' ', kind: 'space' }, { text: 'System', kind: 'namespace' }, { text: '.', kind: 'punctuation' }, { text: 'EventArgs', kind: 'class' }, { text: ' ', kind: 'space' }, { text: 'e', kind: 'parameter' }, { text: ')', kind: 'punctuation' } ] }, { kind: 'documentationcomments', parts: [ { text: 'Represents the method that will handle an event that has no event data.', kind: 'text' } ] } ], span: { start: 0, length: 0 } }; export const INFOTIP_TASK_RUN = { kinds: [ 'method', 'public' ], sections: [ { kind: 'description', parts: [ { text: '(', kind: 'punctuation' }, { text: 'awaitable', kind: 'text' }, { text: ')', kind: 'punctuation' }, { text: ' ', kind: 'space' }, { text: 'Task', kind: 'class' }, { text: ' ', kind: 'space' }, { text: 'Task', kind: 'class' }, { text: '.', kind: 'punctuation' }, { text: 'Run', kind: 'method' }, { text: '(', kind: 'punctuation' }, { text: 'System', kind: 'namespace' }, { text: '.', kind: 'punctuation' }, { text: 'Action', kind: 'delegate' }, { text: ' ', kind: 'space' }, { text: 'action', kind: 'parameter' }, { text: ')', kind: 'punctuation' }, { text: ' ', kind: 'space' }, { text: '(', kind: 'punctuation' }, { text: '+', kind: 'punctuation' }, { text: ' ', kind: 'space' }, { text: '7', kind: 'text' }, { text: ' ', kind: 'space' }, { text: 'overloads', kind: 'text' }, { text: ')', kind: 'punctuation' } ] }, { kind: 'documentationcomments', parts: [ { text: 'Queues the specified work to run on the thread pool and returns a', kind: 'text' }, { text: ' ', kind: 'space' }, { text: 'Task', kind: 'class' }, { text: ' ', kind: 'space' }, { text: 'object that represents that work.', kind: 'text' } ] }, { kind: 'usage', parts: [ { text: '\r\n', kind: 'linebreak' }, { text: 'Usage:', kind: 'text' }, { text: '\r\n', kind: 'linebreak' }, { text: ' ', kind: 'text' }, { text: 'await', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'Run', kind: 'method' }, { text: '(', kind: 'punctuation' }, { text: '...', kind: 'punctuation' }, { text: ')', kind: 'punctuation' }, { text: ';', kind: 'punctuation' } ] }, { kind: 'exception', parts: [ { text: '\r\n', kind: 'linebreak' }, { text: 'Exceptions:', kind: 'text' }, { text: '\r\n', kind: 'linebreak' }, { text: ' ', kind: 'space' }, { text: 'System', kind: 'namespace' }, { text: '.', kind: 'punctuation' }, { text: 'ArgumentNullException', kind: 'class' } ] } ], span: { start: 17, length: 1 } }; ================================================ FILE: WebAssets/src/codemirror/server/infotips.tests.ts ================================================ import { TestDriver, timers } from '../../testing/test-driver-jest'; import { INFOTIP_EVENTHANDLER } from './infotips.test.data'; const mockHoverDependencies = (driver: TestDriver) => { const cmView = driver.getCodeMirrorView(); cmView.posAtCoords = () => 0; cmView.coordsAtPos = () => ({ left: 0, right: 0, top: 0, bottom: 0 }); }; const waitForHover = async (driver: TestDriver) => { timers.advanceTimersByTime(1000); // actual is 750, but just in case await driver.completeBackgroundWork(); }; test('hover requests infotip', async () => { const driver = await TestDriver.new({ text: 'test' }); mockHoverDependencies(driver); driver.domEvents.mousemove( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion driver.getCodeMirrorView().contentDOM.firstChild! ); await waitForHover(driver); expect(driver.socket.sent).toContain('I0'); }); test('hover applies received infotip', async () => { const driver = await TestDriver.new({ text: 'test' }); mockHoverDependencies(driver); driver.domEvents.mousemove( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion driver.getCodeMirrorView().contentDOM.firstChild! ); await waitForHover(driver); driver.receive.infotip(INFOTIP_EVENTHANDLER); await driver.completeBackgroundWork(); const tooltip = driver.getCodeMirrorView().dom.querySelector('.cm-tooltip'); expect(tooltip).toBeTruthy(); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expect(tooltip!.innerHTML).toMatchSnapshot(); }); ================================================ FILE: WebAssets/src/codemirror/server/infotips.ts ================================================ import { EditorView, ViewPlugin, hoverTooltip, Tooltip } from '@codemirror/view'; import { defineEffectField } from '../../helpers/define-effect-field'; import { renderPartsTo } from '../../helpers/render-parts'; import type { Connection } from '../../protocol/connection'; import type { InfotipMessage } from '../../protocol/messages'; import { convertFromServerPosition, convertToServerPosition, getEnd } from '../helpers/convert-position'; const [lastInfotipRequest, dispatchLastInfotipRequestChanged] = defineEffectField<{ pos: number; promise: Promise; resolve: ((tooltip: Tooltip) => void) } | null>(null); const kindsToClassNames = (kinds: ReadonlyArray) => { return kinds.map(kind => 'mirrorsharp-infotip-icon-' + kind); }; const renderInfotip = ({ sections, kinds }: InfotipMessage) => { const wrapper = document.createElement('div'); wrapper.classList.add('mirrorsharp-infotip'); sections.forEach((section, index) => { const element = document.createElement('div'); element.className = 'mirrorsharp-parts-section'; if (index === 0) { const icon = document.createElement('span'); icon.classList.add('mirrorsharp-infotip-icon', ...kindsToClassNames(kinds)); element.appendChild(icon); } renderPartsTo(element, section.parts); wrapper.appendChild(element); }); return wrapper; }; export const infotipsFromServer = (connection: Connection) => { const requestInfotip = (view: EditorView, pos: number) => { const lastRequest = view.state.field(lastInfotipRequest); if (lastRequest?.pos === pos) return lastRequest.promise; let resolve: (tooltip: Tooltip) => void; const promise = new Promise(r => resolve = r); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion dispatchLastInfotipRequestChanged(view, { pos, promise, resolve: resolve! }); // eslint-disable-next-line @typescript-eslint/no-floating-promises connection.sendRequestInfoTip(convertToServerPosition(view.state.doc, pos)); return promise; }; const receiveInfotipFromServer = ViewPlugin.define(view => { const removeListeners = connection.addEventListeners({ message: message => { if (message.type !== 'infotip') return; const request = view.state.field(lastInfotipRequest); if (!request || !message.sections) return; const { span } = message; const start = convertFromServerPosition(view.state.doc, span.start); const end = convertFromServerPosition(view.state.doc, getEnd(span.start, span.length)); if (request.pos < start || request.pos > end) return; request.resolve({ pos: request.pos, end, create: () => ({ dom: renderInfotip(message) }) }); } }); return { destroy: removeListeners }; }); return [ lastInfotipRequest, hoverTooltip(requestInfotip), receiveInfotipFromServer ]; }; ================================================ FILE: WebAssets/src/codemirror/server/send-changes.tests.ts ================================================ import { indentLess, indentMore, selectAll } from '@codemirror/commands'; import { TestDriver } from '../../testing/test-driver-jest'; test('change at cursor is sent as typed text', async () => { const driver = await TestDriver.new({ textWithCursor: 'a|bc' }); driver.text.type('x'); await driver.completeBackgroundWork(); const lastSent = driver.socket.sent.filter(c => !c.startsWith('U')).slice(-1)[0]; expect(lastSent).toBe('Cx'); }); test('enter at cursor is sent as typed newline', async () => { const driver = await TestDriver.new({ textWithCursor: 'a|bc' }); driver.domEvents.keydown('Enter'); await driver.completeBackgroundWork(); const lastSent = driver.socket.sent.filter(c => !c.startsWith('U')).slice(-1)[0]; expect(lastSent).toBe('R1:0:3::\r\n'); }); test('change not at cursor is sent as replaced text', async () => { const driver = await TestDriver.new({ textWithCursor: 'a|bc' }); driver.dispatchCodeMirrorTransaction({ changes: { from: 2, insert: 'x' } }); await driver.completeBackgroundWork(); const lastSent = driver.socket.sent.filter(c => !c.startsWith('U')).slice(-1)[0]; expect(lastSent).toBe('R2:0:1::x'); }); // two changed are handled in a special way in code test('two changes are sent as individual replaced text', async () => { const driver = await TestDriver.new({ textWithCursor: 'a|bc' }); driver.dispatchCodeMirrorTransaction({ changes: [{ from: 1, insert: 'x' }, { from: 2, insert: 'y' }] }); await driver.completeBackgroundWork(); const lastSent = driver.socket.sent.filter(c => !c.startsWith('U')); expect(lastSent).toEqual([ 'R1:0:1::x', 'R3:0:1::y' ]); }); test('three changes are sent as individual replaced text', async () => { const driver = await TestDriver.new({ textWithCursor: 'a|bc' }); driver.dispatchCodeMirrorTransaction({ changes: [{ from: 1, insert: 'x' }, { from: 2, insert: 'y' }, { from: 3, insert: 'z' }] }); await driver.completeBackgroundWork(); const lastSent = driver.socket.sent.filter(c => !c.startsWith('U')); expect(lastSent).toEqual([ 'R1:0:1::x', 'R3:0:1::y', 'R5:0:1::z' ]); }); test('indentMore command sends expected changes', async () => { const driver = await TestDriver.new({ text: 'abc\r\ncde\r\ndef' }); selectAll(driver.getCodeMirrorView()); driver.socket.sent = []; indentMore(driver.getCodeMirrorView()); await driver.completeBackgroundWork(); const lastSent = driver.socket.sent.filter(c => !c.startsWith('U')); expect(lastSent).toEqual([ 'R0:0:4:: ', 'R9:0:4:: ', 'R18:0:4:: ' ]); }); test('indentLess command sends expected changes', async () => { const driver = await TestDriver.new({ text: ' abc\r\n cde\r\n def' }); selectAll(driver.getCodeMirrorView()); driver.socket.sent = []; indentLess(driver.getCodeMirrorView()); await driver.completeBackgroundWork(); const lastSent = driver.socket.sent.filter(c => !c.startsWith('U')); expect(lastSent).toEqual([ 'R0:4:0::', 'R4:5:0::', 'R9:4:0::' ]); }); test('cursor move is sent', async () => { const driver = await TestDriver.new({ textWithCursor: 'a|bc' }); driver.dispatchCodeMirrorTransaction({ selection: { anchor: 2 } }); await driver.completeBackgroundWork(); expect(driver.socket.sent.filter(c => c !== 'U')).toEqual(['M2']); }); test('cursor move is sent with the correct coordinates if done after newline', async () => { const driver = await TestDriver.new({ text: 'a\r\nb' }); driver.dispatchCodeMirrorTransaction({ selection: { anchor: 3 } }); await driver.completeBackgroundWork(); expect(driver.socket.sent.filter(c => c !== 'U')).toEqual(['M4']); }); test('cursor move is sent with the correct coordinates if done after several newlines', async () => { const driver = await TestDriver.new({ text: 'a\r\nb\r\nc\r\nd' }); driver.dispatchCodeMirrorTransaction({ selection: { anchor: 6 } }); await driver.completeBackgroundWork(); expect(driver.socket.sent.filter(c => c !== 'U')).toEqual(['M9']); }); test('cursor move is not sent if changed by typing', async () => { const driver = await TestDriver.new({ textWithCursor: 'a|' }); driver.text.type('x'); await driver.completeBackgroundWork(); expect(driver.socket.sent.filter(s => s !== 'U')).toEqual(['Cx']); }); /*test('undo sends all changes as a single replace', async () => { const driver = await TestDriver.new({ textWithCursor: '{d:f2}{d:f2}|' }); const cm = driver.getCodeMirror(); driver.keys.backspace('{d:f2}'.length); cm.execCommand('undo'); await driver.completeBackgroundWork(); const lastSent = driver.socket.sent.filter(c => !c.startsWith('U')).slice(-1)[0]; expect(lastSent).toBe('R6:0:12::{d:f2}'); });*/ // test('tab is replaced with 4 spaces', async () => { // const driver = await TestDriver.new({ textWithCursor: '|' }); // driver.keys.press('tab'); // await driver.completeBackgroundWork(); // expect(driver.mirrorsharp.getText()).toBe(' '); // }); ================================================ FILE: WebAssets/src/codemirror/server/send-changes.ts ================================================ import type { Text, ChangeSet, EditorState } from '@codemirror/state'; import { ViewPlugin, PluginValue } from '@codemirror/view'; import { lineSeparator } from '../../protocol/line-separator'; import type { ServerPosition } from '../../protocol/messages'; import type { Session } from '../../protocol/session'; import { convertToServerPosition, getLength } from '../helpers/convert-position'; import { getString, getText } from '../helpers/get-text'; const sendReplace = (session: Session, doc: Text, from: number, to: number, newText: string | Text, cursorIndexAfter: ServerPosition) => { const start = convertToServerPosition(doc, from); const newTextString = typeof newText === 'string' ? newText : getString(newText); // eslint-disable-next-line @typescript-eslint/no-floating-promises session.sendPartialText({ start, length: getLength(start, convertToServerPosition(doc, to)), newText: newTextString, cursorIndexAfter }); }; const sendChanges = (session: Session, startState: EditorState, changes: ChangeSet, prevCursorOffset: number, cursorIndexAfter: ServerPosition) => { let changeCount = 0; let single: { from: number, to: number, text: Text } | undefined | null; let startOffset = 0; let lastDoc = startState.doc; changes.iterChanges((from, to, _f, _t, inserted) => { changeCount += 1; if (changeCount === 1) { single = { from, to, text: inserted }; return; } if (single) { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion sendReplace(session, lastDoc, single.from, single.to, single.text, cursorIndexAfter); lastDoc = lastDoc.replace(from, to, inserted); startOffset += single.text.length - (single.to - single.from); single = null; } sendReplace(session, lastDoc, startOffset + from, startOffset + to, inserted, cursorIndexAfter); startOffset += inserted.length - (to - from); lastDoc = lastDoc.replace(from, to, inserted); }); if (single) { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const { from, to, text } = single; if (from === prevCursorOffset && to === from && text.length === 1) { const char = text.line(1).text.charAt(0); if (char === '' && text.lines === 2 && text.line(1).length === 0) { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion sendReplace(session, startState.doc, from, to, lineSeparator, cursorIndexAfter); return; } // eslint-disable-next-line @typescript-eslint/no-floating-promises, @typescript-eslint/no-non-null-assertion session.sendTypeChar(char); return; } sendReplace(session, startState.doc, from, to, text, cursorIndexAfter); } }; export const sendChangesToServer = (session: Session) => ViewPlugin.define(view => { session.setFullText({ getText: () => getText(view), getCursorIndex: () => convertToServerPosition(view.state.doc, view.state.selection.main.from) }); return { update({ docChanged, selectionSet, changes, state, startState }) { const prevCursorOffset = startState.selection.main.from; const cursorIndex = convertToServerPosition(state.doc, state.selection.main.from); if (docChanged) { sendChanges(session, startState, changes, prevCursorOffset, cursorIndex); return; // this will send selection move so we don't have to repeat } if (selectionSet) { // eslint-disable-next-line @typescript-eslint/no-floating-promises session.sendMoveCursor(cursorIndex); } } } as PluginValue; }); ================================================ FILE: WebAssets/src/codemirror/server/signature-help.stories.ts ================================================ import { storyWithDarkTheme } from '../../testing/storybook/story-with-dark-theme'; import { testDriverStory } from '../../testing/storybook/test-driver-story'; import { TestDriver } from '../../testing/test-driver-storybook'; import { SIGNATURES_INDEX_OF, SIGNATURES_SUBSTRING_NONE_SELECTED, SIGNATURES_SUBSTRING_SECOND_PARAMETER } from './signature-help.test.data'; // eslint-disable-next-line import/no-default-export export default { title: 'Signature Help', component: {} }; export const Simple = testDriverStory(async () => { const driver = await TestDriver.new({ textWithCursor: '"x".IndexOf(|' }); driver.receive.signatures(SIGNATURES_INDEX_OF, { start: 0, length: 12 }); await driver.completeBackgroundWork(); return driver; }); export const SecondSelected = testDriverStory(async () => { const driver = await TestDriver.new({ textWithCursor: '"x".Substring(1, 2|' }); driver.receive.signatures(SIGNATURES_SUBSTRING_SECOND_PARAMETER, { start: 0, length: 14 }); await driver.completeBackgroundWork(); return driver; }); export const NoneSelected = testDriverStory(async () => { const driver = await TestDriver.new({ textWithCursor: '"x".Substring(1, 2, |' }); driver.receive.signatures(SIGNATURES_SUBSTRING_NONE_SELECTED, { start: 0, length: 16 }); await driver.completeBackgroundWork(); return driver; }); export const Dark = storyWithDarkTheme(Simple); ================================================ FILE: WebAssets/src/codemirror/server/signature-help.test.data.ts ================================================ import type { SignatureData } from '../../protocol/messages'; export const SIGNATURES_INDEX_OF: ReadonlyArray = [ { selected: true, parts: [ { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'string', kind: 'keyword' }, { text: '.', kind: 'punctuation' }, { text: 'IndexOf', kind: 'method' }, { text: '(', kind: 'punctuation' }, { text: 'char', kind: 'keyword', selected: true }, { text: ' ', kind: 'space', selected: true }, { text: 'value', kind: 'parameter', selected: true }, { text: ')', kind: 'punctuation' } ], info: { parts: [ { text: 'Reports the zero-based index of the first occurrence of the specified Unicode character in this string.', kind: 'text' } ], parameter: { name: 'value', parts: [ { text: 'A Unicode character to seek.', kind: 'text' } ] } } }, { parts: [ { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'string', kind: 'keyword' }, { text: '.', kind: 'punctuation' }, { text: 'IndexOf', kind: 'method' }, { text: '(', kind: 'punctuation' }, { text: 'string', kind: 'keyword', selected: true }, { text: ' ', kind: 'space', selected: true }, { text: 'value', kind: 'parameter', selected: true }, { text: ')', kind: 'punctuation' } ] }, { parts: [ { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'string', kind: 'keyword' }, { text: '.', kind: 'punctuation' }, { text: 'IndexOf', kind: 'method' }, { text: '(', kind: 'punctuation' }, { text: 'char', kind: 'keyword', selected: true }, { text: ' ', kind: 'space', selected: true }, { text: 'value', kind: 'parameter', selected: true }, { text: ',', kind: 'punctuation' }, { text: ' ', kind: 'space' }, { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'startIndex', kind: 'parameter' }, { text: ')', kind: 'punctuation' } ] }, { parts: [ { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'string', kind: 'keyword' }, { text: '.', kind: 'punctuation' }, { text: 'IndexOf', kind: 'method' }, { text: '(', kind: 'punctuation' }, { text: 'char', kind: 'keyword', selected: true }, { text: ' ', kind: 'space', selected: true }, { text: 'value', kind: 'parameter', selected: true }, { text: ',', kind: 'punctuation' }, { text: ' ', kind: 'space' }, { text: 'System', kind: 'namespace' }, { text: '.', kind: 'punctuation' }, { text: 'StringComparison', kind: 'enum' }, { text: ' ', kind: 'space' }, { text: 'comparisonType', kind: 'parameter' }, { text: ')', kind: 'punctuation' } ] }, { parts: [ { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'string', kind: 'keyword' }, { text: '.', kind: 'punctuation' }, { text: 'IndexOf', kind: 'method' }, { text: '(', kind: 'punctuation' }, { text: 'string', kind: 'keyword', selected: true }, { text: ' ', kind: 'space', selected: true }, { text: 'value', kind: 'parameter', selected: true }, { text: ',', kind: 'punctuation' }, { text: ' ', kind: 'space' }, { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'startIndex', kind: 'parameter' }, { text: ')', kind: 'punctuation' } ] }, { parts: [ { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'string', kind: 'keyword' }, { text: '.', kind: 'punctuation' }, { text: 'IndexOf', kind: 'method' }, { text: '(', kind: 'punctuation' }, { text: 'string', kind: 'keyword', selected: true }, { text: ' ', kind: 'space', selected: true }, { text: 'value', kind: 'parameter', selected: true }, { text: ',', kind: 'punctuation' }, { text: ' ', kind: 'space' }, { text: 'System', kind: 'namespace' }, { text: '.', kind: 'punctuation' }, { text: 'StringComparison', kind: 'enum' }, { text: ' ', kind: 'space' }, { text: 'comparisonType', kind: 'parameter' }, { text: ')', kind: 'punctuation' } ] }, { parts: [ { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'string', kind: 'keyword' }, { text: '.', kind: 'punctuation' }, { text: 'IndexOf', kind: 'method' }, { text: '(', kind: 'punctuation' }, { text: 'char', kind: 'keyword', selected: true }, { text: ' ', kind: 'space', selected: true }, { text: 'value', kind: 'parameter', selected: true }, { text: ',', kind: 'punctuation' }, { text: ' ', kind: 'space' }, { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'startIndex', kind: 'parameter' }, { text: ',', kind: 'punctuation' }, { text: ' ', kind: 'space' }, { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'count', kind: 'parameter' }, { text: ')', kind: 'punctuation' } ] }, { parts: [ { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'string', kind: 'keyword' }, { text: '.', kind: 'punctuation' }, { text: 'IndexOf', kind: 'method' }, { text: '(', kind: 'punctuation' }, { text: 'string', kind: 'keyword', selected: true }, { text: ' ', kind: 'space', selected: true }, { text: 'value', kind: 'parameter', selected: true }, { text: ',', kind: 'punctuation' }, { text: ' ', kind: 'space' }, { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'startIndex', kind: 'parameter' }, { text: ',', kind: 'punctuation' }, { text: ' ', kind: 'space' }, { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'count', kind: 'parameter' }, { text: ')', kind: 'punctuation' } ] }, { parts: [ { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'string', kind: 'keyword' }, { text: '.', kind: 'punctuation' }, { text: 'IndexOf', kind: 'method' }, { text: '(', kind: 'punctuation' }, { text: 'string', kind: 'keyword', selected: true }, { text: ' ', kind: 'space', selected: true }, { text: 'value', kind: 'parameter', selected: true }, { text: ',', kind: 'punctuation' }, { text: ' ', kind: 'space' }, { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'startIndex', kind: 'parameter' }, { text: ',', kind: 'punctuation' }, { text: ' ', kind: 'space' }, { text: 'System', kind: 'namespace' }, { text: '.', kind: 'punctuation' }, { text: 'StringComparison', kind: 'enum' }, { text: ' ', kind: 'space' }, { text: 'comparisonType', kind: 'parameter' }, { text: ')', kind: 'punctuation' } ] }, { parts: [ { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'string', kind: 'keyword' }, { text: '.', kind: 'punctuation' }, { text: 'IndexOf', kind: 'method' }, { text: '(', kind: 'punctuation' }, { text: 'string', kind: 'keyword', selected: true }, { text: ' ', kind: 'space', selected: true }, { text: 'value', kind: 'parameter', selected: true }, { text: ',', kind: 'punctuation' }, { text: ' ', kind: 'space' }, { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'startIndex', kind: 'parameter' }, { text: ',', kind: 'punctuation' }, { text: ' ', kind: 'space' }, { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'count', kind: 'parameter' }, { text: ',', kind: 'punctuation' }, { text: ' ', kind: 'space' }, { text: 'System', kind: 'namespace' }, { text: '.', kind: 'punctuation' }, { text: 'StringComparison', kind: 'enum' }, { text: ' ', kind: 'space' }, { text: 'comparisonType', kind: 'parameter' }, { text: ')', kind: 'punctuation' } ] } ]; export const SIGNATURES_SUBSTRING_SECOND_PARAMETER: ReadonlyArray = [ { parts: [ { text: 'string', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'string', kind: 'keyword' }, { text: '.', kind: 'punctuation' }, { text: 'Substring', kind: 'method' }, { text: '(', kind: 'punctuation' }, { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'startIndex', kind: 'parameter' }, { text: ')', kind: 'punctuation' } ] }, { selected: true, parts: [ { text: 'string', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'string', kind: 'keyword' }, { text: '.', kind: 'punctuation' }, { text: 'Substring', kind: 'method' }, { text: '(', kind: 'punctuation' }, { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'startIndex', kind: 'parameter' }, { text: ',', kind: 'punctuation' }, { text: ' ', kind: 'space' }, { text: 'int', kind: 'keyword', selected: true }, { text: ' ', kind: 'space', selected: true }, { text: 'length', kind: 'parameter', selected: true }, { text: ')', kind: 'punctuation' } ], info: { parts: [ { text: 'Retrieves a substring from this instance. The substring starts at a specified character position and has a specified length.', kind: 'text' } ], parameter: { name: 'length', parts: [ { text: 'The number of characters in the substring.', kind: 'text' } ] } } } ]; export const SIGNATURES_SUBSTRING_NONE_SELECTED: ReadonlyArray = [ { parts: [ { text: 'string', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'string', kind: 'keyword' }, { text: '.', kind: 'punctuation' }, { text: 'Substring', kind: 'method' }, { text: '(', kind: 'punctuation' }, { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'startIndex', kind: 'parameter' }, { text: ')', kind: 'punctuation' } ] }, { parts: [ { text: 'string', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'string', kind: 'keyword' }, { text: '.', kind: 'punctuation' }, { text: 'Substring', kind: 'method' }, { text: '(', kind: 'punctuation' }, { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'startIndex', kind: 'parameter' }, { text: ',', kind: 'punctuation' }, { text: ' ', kind: 'space' }, { text: 'int', kind: 'keyword' }, { text: ' ', kind: 'space' }, { text: 'length', kind: 'parameter' }, { text: ')', kind: 'punctuation' } ] } ]; ================================================ FILE: WebAssets/src/codemirror/server/signature-help.tests.ts ================================================ import { getTooltip, showTooltip, Tooltip } from '@codemirror/view'; import { TestDriver } from '../../testing/test-driver-jest'; import { SIGNATURES_INDEX_OF } from './signature-help.test.data'; test('signature help message shows signature help', async () => { const driver = await TestDriver.new({ text: '_' }); driver.receive.signatures(SIGNATURES_INDEX_OF, { start: 0, length: 1 }); await driver.completeBackgroundWork(); const view = driver.getCodeMirrorView(); const tooltips = view.state.facet(showTooltip).filter(t => t) as ReadonlyArray; expect(tooltips.length).toBe(1); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const tooltipView = getTooltip(view, tooltips[0]!)!; expect(tooltipView.dom.innerHTML).toMatchSnapshot(); }); test('signature help message with empty signatures hides signature help', async () => { const driver = await TestDriver.new({ text: '_' }); driver.receive.signatures(SIGNATURES_INDEX_OF, { start: 0, length: 1 }); await driver.completeBackgroundWork(); driver.receive.signatures(); const view = driver.getCodeMirrorView(); const tooltips = view.state.facet(showTooltip).filter(t => t) as ReadonlyArray; expect(tooltips).toEqual([]); }); test('Ctrl+Shift+Space requests signature list', async () => { const driver = await TestDriver.new({ text: '' }); driver.domEvents.keydown(' ', { ctrlKey: true, shiftKey: true }); await driver.completeBackgroundWork(); expect(driver.socket.sent.slice(-1)[0]).toBe('PF'); }); ================================================ FILE: WebAssets/src/codemirror/server/signature-help.ts ================================================ import { Prec } from '@codemirror/state'; import { ViewPlugin, showTooltip, keymap } from '@codemirror/view'; import { defineEffectField } from '../../helpers/define-effect-field'; import { renderPartsTo } from '../../helpers/render-parts'; import type { Connection } from '../../protocol/connection'; import type { SignatureData, SignatureInfoData, SignatureInfoParameterData, SignaturesEmptyMessage, SignaturesMessage } from '../../protocol/messages'; import { convertFromServerPosition, getEnd } from '../helpers/convert-position'; const [currentMessage, dispatchCurrentMessageChanged] = defineEffectField(); const receiveSignatureHelpFromServer = (connection: Connection) => ViewPlugin.define(view => { const removeListeners = connection.addEventListeners({ message: message => { if (message.type !== 'signatures') return; dispatchCurrentMessageChanged(view, message); } }); return { destroy: removeListeners }; }); const renderInfoTo = (parent: HTMLElement, { parts, parameter }: SignatureInfoData) => { if (parts.length > 0) { const element = document.createElement('div'); element.className = 'mirrorsharp-signature-info'; renderPartsTo(element, parts); parent.appendChild(element); } if (!parameter) return; renderInfoParameterTo(parent, parameter); }; const renderInfoParameterTo = (parent: HTMLElement, parameter: SignatureInfoParameterData) => { if (parameter.parts.length === 0) return; const element = document.createElement('div'); element.className = 'mirrorsharp-signature-info-parameter'; const nameElement = document.createElement('span'); nameElement.className = 'mirrorsharp-signature-info-parameter-name'; nameElement.innerText = parameter.name + ': '; element.appendChild(nameElement); renderPartsTo(element, parameter.parts); parent.appendChild(element); }; const renderSignatureList = (signatures: ReadonlyArray) => { const list = document.createElement('ol'); list.className = 'mirrorsharp-signature-list'; for (const { parts, selected, info } of signatures) { const item = document.createElement('li'); item.className = 'mirrorsharp-signature' + (selected ? ' mirrorsharp-signature--selected' : ''); renderPartsTo(item, parts, { getExtraClassNames: part => ((part.selected) ? ['mirrorsharp-signature-part--selected'] : []) }); if (info) renderInfoTo(item, info); list.appendChild(item); } return list; }; const convertSignatureHelpToTooltip = showTooltip.compute([currentMessage, 'doc'], state => { const message = state.field(currentMessage); if (!message?.signatures) return null; const { span } = message; return { pos: convertFromServerPosition(state.doc, span.start), end: convertFromServerPosition(state.doc, getEnd(span.start, span.length)), create: () => ({ dom: renderSignatureList(message.signatures) }) }; }); const forceSignatureHelpOnCtrlShiftSpace = (connection: Connection) => Prec.highest(keymap.of([{ key: 'Ctrl-Shift-Space', run: () => { // eslint-disable-next-line @typescript-eslint/no-floating-promises connection.sendSignatureHelpState('force'); return true; } }])); export const signatureHelpFromServer = (connection: Connection) => [ currentMessage, forceSignatureHelpOnCtrlShiftSpace(connection), receiveSignatureHelpFromServer(connection), convertSignatureHelpToTooltip ]; ================================================ FILE: WebAssets/src/codemirror/tests/hints.tests.ts ================================================ // eslint-disable-next-line @typescript-eslint/no-empty-function test('_', () => {}); // import type { CompletionItemData } from '../ts/interfaces/protocol'; // import { TestDriver } from './test-driver'; // test('opening hints requests info for the first hint', async () => { // const driver = await TestDriver.new({ textWithCursor: 'c.|' }); // driver.receive.completions([ // completion() // ]); // await driver.completeBackgroundWork(); // const lastSent = driver.socket.sent.slice(-1)[0]; // expect(lastSent).toBe('SI0'); // }); // test('selecting hint requests info for the selected hint', async () => { // const driver = await TestDriver.new({ textWithCursor: 'c.|' }); // driver.receive.completions([ // completion(), // completion(), // completion() // ]); // await driver.completeBackgroundWork(); // driver.keys.press('down'); // driver.keys.press('down'); // await driver.completeBackgroundWork(); // const lastSent = driver.socket.sent.slice(-1)[0]; // expect(lastSent).toBe('SI2'); // }); // test('picking hint cancels info request', async () => { // const driver = await TestDriver.new({ textWithCursor: 'c.|' }); // driver.receive.completions([ // completion(), // completion() // ]); // await driver.completeBackgroundWork(); // driver.keys.press('down'); // driver.keys.press('tab'); // await driver.completeBackgroundWork(); // const lastSent = driver.socket.sent.slice(-1)[0]; // expect(lastSent).toBe('S1'); // }); // test('completionDescription message shows info tip', async () => { // const driver = await TestDriver.new({ textWithCursor: 'c.|' }); // driver.receive.completions([completion()]); // await driver.completeBackgroundWork(); // driver.receive.completionInfo(0, [ // { kind: 'type', text: 'int' }, // { kind: 'space', text: ' ' }, // { kind: 'local', text: 'x' } // ]); // await driver.completeBackgroundWork(); // const tip = getTooltip(); // expect(tip.style.display).toBe('block'); // expect(tip.innerHTML).toBe([ // 'int', // ' ', // 'x' // ].join('')); // }); // test('completionDescription message updates info tip if already existed', async () => { // const driver = await TestDriver.new({ textWithCursor: 'c.|' }); // await driver.completeBackgroundWorkAfterEach( // () => driver.receive.completions([completion(), completion()]), // () => driver.receive.completionInfo(0, [{ kind: 'test', text: 'old' }]), // () => driver.keys.press('down'), // () => driver.receive.completionInfo(1, [{ kind: 'test', text: 'new' }]) // ); // const tip = getTooltip(); // expect(tip.style.display).toBe('block'); // expect(tip.innerHTML).toBe('new'); // }); // test('picking hint hides info tip', async () => { // const driver = await TestDriver.new({ textWithCursor: 'c.|' }); // await driver.completeBackgroundWorkAfterEach( // () => driver.receive.completions([completion()]), // () => driver.receive.completionInfo(0, []), // () => driver.keys.press('tab') // ); // const tip = getTooltip(); // expect(tip.style.display).toBe('none'); // }); // test('info tip has expected position and size', async () => { // const driver = await TestDriver.new({ textWithCursor: 'c.|' }); // const mockRect = (e: Element, rect: Partial) => e.getBoundingClientRect = () => rect as DOMRect; // driver.receive.completions([completion()]); // await driver.completeBackgroundWork(); // const hints = document.querySelector('.CodeMirror-hints') as HTMLElement; // const selected = document.querySelector('.CodeMirror-hints .CodeMirror-hint:first-child')!; // Object.defineProperty(hints, 'offsetTop', { value: 50 }); // mockRect(hints, { top: 100, right: 150 }); // mockRect(selected, { top: 300 }); // mockRect(document.documentElement, { width: 200 }); // driver.receive.completionInfo(0, []); // await driver.completeBackgroundWork(); // const tip = getTooltip(); // // 300 (boundingRect top) - 100 (parent boundingRect top) = 200 // // 200 + 50 (parent offsetTop) = 250 // expect(tip.style.top).toBe('250px'); // expect(tip.style.left).toBe('150px'); // expect(tip.style.maxWidth).toBe('50px'); // }); // function completion() { // return { kinds: [] } as Partial as CompletionItemData; // } // function getTooltip() { // return document.querySelector('.mirrorsharp-hint-info-tooltip') as HTMLDivElement; // } ================================================ FILE: WebAssets/src/codemirror/tests/tab.tests.ts ================================================ import { selectAll } from '@codemirror/commands'; import { TestDriver } from '../../testing/test-driver-jest'; test('Tab indents selected block', async () => { const text = `abc\r\ndef`; const driver = await TestDriver.new({ text }); selectAll(driver.getCodeMirrorView()); driver.domEvents.keydown('Tab'); await driver.completeBackgroundWork(); expect(driver.mirrorsharp.getText()).toEqual(' abc\r\n def'); }); test('Shift+Tab unindents selected block', async () => { const text = ` abc\r\n def`; const driver = await TestDriver.new({ text }); selectAll(driver.getCodeMirrorView()); driver.domEvents.keydown('Tab', { shiftKey: true }); await driver.completeBackgroundWork(); expect(driver.mirrorsharp.getText()).toEqual('abc\r\ndef'); }); ================================================ FILE: WebAssets/src/helpers/define-effect-field.ts ================================================ import { StateEffect, StateField } from '@codemirror/state'; import type { EditorView } from '@codemirror/view'; export function defineEffectField(...[initialValue]: undefined extends T ? [T] | [] : [T]) { const effectType = StateEffect.define(); const field = StateField.define({ create: () => initialValue, update(value, { effects }) { const effect = effects.find(e => e.is(effectType)) as StateEffect|undefined; return effect ? effect.value : value; } }); const dispatchEffect = (view: EditorView, value: T) => view.dispatch(view.state.update({ effects: [effectType.of(value)] })); return [field, dispatchEffect] as const; } ================================================ FILE: WebAssets/src/helpers/ensure-defined.ts ================================================ export function ensureDefined(value: T|null|undefined, name: string) { if (value == null) { // eslint-disable-next-line @typescript-eslint/restrict-template-expressions throw new Error(`Unexpected ${value} value at ${name}.`); } return value; } ================================================ FILE: WebAssets/src/helpers/render-parts.ts ================================================ import type { PartData } from '../protocol/messages'; /* const partKindClassMap = { text: 'mirrorsharp-tip-part-text', class: 'cm-type', struct: 'cm-type' }; */ type Options = { splitLinesToSections?: boolean; getExtraClassNames?: ((part: TPartData) => ReadonlyArray) | undefined; }; const createSection = () => { const section = document.createElement('div'); section.className = 'mirrorsharp-parts-section'; return section; }; const renderPartTo = ( parent: HTMLElement, part: TPartData, { getExtraClassNames }: Pick, 'getExtraClassNames'> ) => { const span = document.createElement('span'); const extraClassNames = getExtraClassNames?.(part); span.className = 'tok-' + part.kind + (extraClassNames ? ' ' + extraClassNames.join(' ') : ''); span.textContent = part.text; parent.appendChild(span); }; export const renderPartsTo = ( parent: HTMLElement, parts: ReadonlyArray, { splitLinesToSections, getExtraClassNames }: Options = {} ) => { let section = splitLinesToSections ? createSection() : parent; for (const part of parts) { if (part.kind === 'linebreak' && splitLinesToSections) { parent.appendChild(section); section = createSection(); continue; } renderPartTo(section, part, { getExtraClassNames }); } if (splitLinesToSections) parent.appendChild(section); }; export const renderParts = ( parts: ReadonlyArray, options: Options = {} ): HTMLElement => { const container = document.createElement('div'); renderPartsTo(container, parts, options); return container; }; ================================================ FILE: WebAssets/src/main/connection-loss-view.stories.ts ================================================ import { storyWithDarkTheme } from '../testing/storybook/story-with-dark-theme'; import { testDriverStory } from '../testing/storybook/test-driver-story'; import { TestDriver } from '../testing/test-driver-storybook'; // eslint-disable-next-line import/no-default-export export default { title: 'Connection Loss', component: {} }; export const ConnectionLost = testDriverStory(async () => { const driver = await TestDriver.new({ text: '// Example code' }); driver.socket.close(); return driver; }); export const ConnectionLostDark = storyWithDarkTheme(ConnectionLost); ================================================ FILE: WebAssets/src/main/connection-loss-view.ts ================================================ import type { Connection } from '../protocol/connection'; import type { ContainerRoot } from './container-root'; export const installConnectionLossView = (root: ContainerRoot, connection: Connection) => { let messageElement: HTMLDivElement | undefined; const show = () => { if (!messageElement) { messageElement = document.createElement('div'); messageElement.setAttribute('class', 'mirrorsharp-connection-loss-message'); messageElement.innerText = 'Server connection lost, reconnecting…'; root.element.appendChild(messageElement); } root.element.classList.add('mirrorsharp--connection-lost'); }; const hide = () => { root.element.classList.remove('mirrorsharp--connection-lost'); }; const removeConnectionListeners = connection.addEventListeners({ open: () => hide(), close: () => show() }); return () => { removeConnectionListeners(); messageElement?.remove(); }; }; ================================================ FILE: WebAssets/src/main/container-root.ts ================================================ import type { Theme } from './theme'; export class ContainerRoot { #element: HTMLDivElement; constructor(container: HTMLElement, codeMirrorDom: HTMLElement, theme: Theme) { this.#element = document.createElement('div'); this.#element.classList.add('mirrorsharp'); this.setThemeClass(theme); this.#element.appendChild(codeMirrorDom); container.appendChild(this.#element); } get element() { return this.#element; } setThemeClass(theme: Theme) { this.#element.classList.remove('mirrorsharp--theme-light', 'mirrorsharp--theme-dark'); this.#element.classList.add(`mirrorsharp--theme-${theme}`); } destroy() { this.#element.remove(); } } ================================================ FILE: WebAssets/src/main/instance.ts ================================================ import { Extension, StateEffect } from '@codemirror/state'; import { EditorView } from '@codemirror/view'; import type { StyleSpec } from 'style-mod'; import { createExtensions, createState, ExtensionSwitcher } from '../codemirror/create'; import { getText } from '../codemirror/helpers/get-text'; import { Connection } from '../protocol/connection'; import { Language, LANGUAGE_DEFAULT } from '../protocol/languages'; import type { ServerOptions } from '../protocol/messages'; import { Session, SessionEventListeners } from '../protocol/session'; import { installConnectionLossView } from './connection-loss-view'; import { ContainerRoot } from './container-root'; import { Theme, THEME_LIGHT } from './theme'; // this.#keyMap = { // // eslint-disable-next-line @typescript-eslint/no-floating-promises // 'Shift-Ctrl-Space': () => { connection.sendSignatureHelpState('force'); }, // }; // this.#cm.addKeyMap(this.#keyMap); type CreateInstanceOptions = { readonly serviceUrl: string; readonly language: Language | undefined; readonly theme: Theme | undefined; readonly text: string | undefined; readonly cursorOffset?: number | undefined; readonly on: { readonly textChange: ((getText: () => string) => void) | undefined; } & SessionEventListeners; readonly disconnected: boolean | undefined; readonly serverOptions: TExtensionServerOptions | undefined; readonly codeMirror: { extensions: ReadonlyArray | undefined; theme: { [selector: string]: StyleSpec; } | undefined; } }; type InstanceContext = { readonly connection: Connection; readonly session: Session; disconnected: boolean; language: Language; readonly codeMirror: { readonly view: EditorView; extensions: ReadonlyArray; readonly extensionSwitcher: ExtensionSwitcher; }; readonly root: ContainerRoot; }; class Instance { readonly #context: InstanceContext; #connectCalled = false; constructor(context: InstanceContext) { this.#context = context; } getCodeMirrorView() { return this.#context.codeMirror.view; } getRootElement() { return this.#context.root.element; } getText() { return getText(this.#context.codeMirror.view); } setText(text: string) { this.#context.codeMirror.view.dispatch({ changes: { from: 0, to: this.#context.codeMirror.view.state.doc.length, insert: text } }); } getCursorOffset() { return this.#context.codeMirror.view.state.selection.main.from; } getLanguage() { return this.#context.language; } setLanguage(value: Language) { if (value === this.#context.language) return; const { session, codeMirror } = this.#context; session.setOptions( ({ language: value } satisfies Partial) as Partial & Partial ); codeMirror.extensions = codeMirror.extensionSwitcher.switchLanguageExtension(codeMirror.extensions, value); codeMirror.view.dispatch({ effects: StateEffect.reconfigure.of(codeMirror.extensions) }); this.#context.language = value; } setServerOptions(value: TExtensionServerOptions) { this.#context.session.setOptions(value as Partial); } setTheme(value: Theme) { const { root, codeMirror } = this.#context; codeMirror.extensions = codeMirror.extensionSwitcher.switchThemeExtension(codeMirror.extensions, value); codeMirror.view.dispatch({ effects: StateEffect.reconfigure.of(codeMirror.extensions) }); root.setThemeClass(value); } setServiceUrl(url: string, { disconnected }: { disconnected?: boolean } = {}) { this.#context.disconnected = disconnected ?? false; this.#connectCalled = false; this.#context.connection.setUrl(url, { closed: disconnected }); } connect() { if (!this.#context.disconnected) throw new Error('Connect can only be called if options.disconnected was set.'); if (this.#connectCalled) throw new Error('Connect can only be called once per mirrorsharp instance (on start).'); this.#context.connection.open(); this.#connectCalled = true; } destroy() { this.#context.root.destroy(); this.#context.session.destroy(); this.#context.connection.close(); } } export const createInstance = (container: HTMLElement, options: CreateInstanceOptions) => { const { language = LANGUAGE_DEFAULT, theme = THEME_LIGHT, disconnected } = options; const connection = new Connection( options.serviceUrl, { closed: disconnected } ); const serverOptions = { ...({ language } satisfies ServerOptions as ServerOptions), ...((options.serverOptions ?? {}) satisfies Partial as O) }; const session = new Session(connection, serverOptions, options.on); const [cmExtensions, extensionSwitcher] = createExtensions(connection, session, { language, theme, themeSpec: options.codeMirror.theme ?? {}, extraExtensions: options.codeMirror.extensions ?? [], onTextChange: options.on.textChange }); const cmView = new EditorView({ state: createState(cmExtensions, { text: options.text, cursorOffset: options.cursorOffset }) }); const root = new ContainerRoot(container, cmView.dom, theme); installConnectionLossView(root, connection); const instance = new Instance({ connection, session, disconnected: disconnected ?? false, language, codeMirror: { view: cmView, extensions: cmExtensions, extensionSwitcher }, root }); return instance; }; ================================================ FILE: WebAssets/src/main/theme.ts ================================================ export const THEME_LIGHT = 'light'; export const THEME_DARK = 'dark'; export type Theme = typeof THEME_LIGHT | typeof THEME_DARK; ================================================ FILE: WebAssets/src/mirrorsharp.css ================================================ /* New */ .mirrorsharp { --mirrorsharp-font-family-monospace: Consolas, monaco, monospace; --mirrorsharp-font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; font-family: var(--mirrorsharp-font-family-monospace); } .mirrorsharp .cm-scroller.cm-scroller, .mirrorsharp .cm-tooltip.cm-tooltip.cm-tooltip-autocomplete > ul { font-family: inherit; } .mirrorsharp--theme-light .tok-keyword, .mirrorsharp--theme-light .tok-bool, .mirrorsharp--theme-light .tok-null { color: #0000ff; } .mirrorsharp--theme-light .tok-number { color: #000000; } .mirrorsharp--theme-light .tok-string { color: #a31515; } .mirrorsharp--theme-light .tok-comment { color: #008000; } .mirrorsharp--theme-light .tok-type, /* These are from server only: */ .mirrorsharp--theme-light .tok-class, .mirrorsharp--theme-light .tok-struct, .mirrorsharp--theme-light .tok-interface, .mirrorsharp--theme-light .tok-enum, .mirrorsharp--theme-light .tok-delegate { color: #2b91af; } .mirrorsharp--theme-dark { background-color: #1e1e1e; color: #dcdcdc; } .mirrorsharp--theme-dark .tok-keyword, .mirrorsharp--theme-dark .tok-bool, .mirrorsharp--theme-dark .tok-null { color: #569cd6; } .mirrorsharp--theme-dark .tok-number { color: #b5cea8; } .mirrorsharp--theme-dark .tok-string { color: #d69d85; } .mirrorsharp--theme-dark .tok-comment { color: #57a64a; } .mirrorsharp--theme-dark .tok-type, /* These are from server only: */ .mirrorsharp--theme-dark .tok-class, .mirrorsharp--theme-dark .tok-struct, .mirrorsharp--theme-dark .tok-interface, .mirrorsharp--theme-dark .tok-enum, .mirrorsharp--theme-dark .tok-delegate { color: #4ec9b0; } .mirrorsharp--theme-light .cm-lintRange-unnecessary { /* minimum for AAA */ opacity: 0.66; } .mirrorsharp--theme-dark .cm-lintRange-unnecessary { /* minimum for AAA */ opacity: 0.73; } .mirrorsharp .cm-completionIcon.cm-completionIcon, .mirrorsharp-infotip-icon { width: 1.2em; margin-right: 0.2em; background-repeat: no-repeat; background-position: center center; } .mirrorsharp-infotip-icon { height: 1.2em; display: inline-block; vertical-align: bottom; } .mirrorsharp .cm-completionIcon.cm-completionIcon.cm-completionIcon:after { content: '\00a0'; } .mirrorsharp .cm-completionIcon-keyword, .mirrorsharp .mirrorsharp-infotip-icon-keyword { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21.33 21.33'%3E%3Cpath d='M0 1.33V20h17.33v-4h4v-4H20V8h-8V6.67h9.33v-4H12V1.33zM10.67 12H12v4h-1.33z' fill='%23f6f6f6'/%3E%3Cpath d='M9.33 4H2.67v1.33h6.66zm1.34 2.67H1.33v-4h9.34zM20 13.33h-6.67v1.34H20zm-10.67 0h-8v1.34h8zm6.67 4H1.33v1.34H16zm-2.67-8h-12v1.34h12zm5.34 0H16v1.34h2.67zm1.33-4h-6.67V4H20z' fill='%23424242'/%3E%3Cpath d='M2.67 5.33h6.66V4H2.67z' fill='%23f0eff1'/%3E%3C/svg%3E"); } .mirrorsharp .cm-completionIcon-namespace, .mirrorsharp .mirrorsharp-infotip-icon-namespace { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21.33 21.33'%3E%3Cpath d='M8.89 16H7.1v-1.78c0-.95-1.32-2.87-1.78-3.56.46-.69 1.78-2.6 1.78-3.55V5.33h1.78V0H7.1c-3.5.04-5.33 2.27-5.33 5.33v1.78L0 8.89v3.55l1.78 1.78V16c0 3.04 2.34 5.3 5.84 5.33h1.27zm3.55 0h1.78v-1.78c0-.95 1.32-2.87 1.78-3.56-.46-.69-1.78-2.6-1.78-3.55V5.33h-1.78V0h1.78c3.5.04 5.33 2.27 5.33 5.33v1.78l1.78 1.78v3.55l-1.78 1.78V16c0 3.04-1.83 5.3-5.33 5.33h-1.78z' fill='%23f6f6f6'/%3E%3Cpath d='M5.33 16v-1.78c0-1.48-.88-3.09-1.77-3.56.9-.47 1.77-2.07 1.77-3.55V5.33c0-1.5 1.04-1.77 1.78-1.77V1.78c-3.7 0-3.55 2.07-3.55 3.55v1.78c0 1.72-1.25 1.74-1.78 1.78v3.55c.57.04 1.78.1 1.78 1.78V16c0 1.48-.15 3.55 3.55 3.55v-1.78C5.63 17.77 5.33 16 5.33 16M16 16v-1.78c0-1.48.88-3.09 1.77-3.56C16.87 10.2 16 8.6 16 7.11V5.33c0-1.5-1.04-1.77-1.78-1.77V1.78c3.7 0 3.55 2.07 3.55 3.55v1.78c0 1.72 1.25 1.74 1.78 1.78v3.55c-.57.04-1.78.1-1.78 1.78V16c0 1.48.15 3.55-3.55 3.55v-1.78C15.7 17.77 16 16 16 16' fill='%23424242'/%3E%3C/svg%3E"); } .mirrorsharp .cm-completionIcon-class, .mirrorsharp .mirrorsharp-infotip-icon-class { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21.33 21.33'%3E%3Cpath d='M7.45 0L0 7.45v1.1l5.33 5.33 3.22-3.22h.78v6.67h2.12l4 4h1.1l4.79-4.78v-1.1l-2.79-2.78 2.79-2.78V8.78l-4-4-1.9 1.89h-2.89l1.34-1.34L8.55 0z' fill='%23f6f6f6'/%3E%3Cpath d='M17.33 13.33L20 16l-4 4-2.67-2.67L14.67 16h-4V9.33H8L5.33 12l-4-4L8 1.33l4 4L9.33 8H16l1.33-1.33L20 9.33l-4 4-2.67-2.66 1.34-1.34H12v5.34h4z' fill='%23c27d1a'/%3E%3C/svg%3E"); } .mirrorsharp .cm-completionIcon-structure, .mirrorsharp .mirrorsharp-infotip-icon-structure { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 341.33 341.33'%3E%3Cpath d='M0 36.57v268.19h146.28V158.45h48.77v146.3h146.28V36.58z' fill='%23f6f6f6'/%3E%3Cpath d='M219.43 280.38h97.52v-97.52h-97.52zm-195.05 0h97.52v-97.52H24.38zm0-146.29h292.57V60.95H24.38z' fill='%2300539c'/%3E%3C/svg%3E"); } .mirrorsharp .cm-completionIcon-delegate, .mirrorsharp .mirrorsharp-infotip-icon-delegate { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21.33 21.33'%3E%3Cpath d='M17.94 4.61h-.49V.58H3.88V4.6h-.49A3.47 3.47 0 000 8.14v9.08a3.47 3.47 0 003.4 3.53h14.54c1.87 0 3.39-1.58 3.39-3.53V8.14a3.47 3.47 0 00-3.4-3.53' fill='%23f6f6f6'/%3E%3Cpath d='M17.45 16.72h-1.94V8.65h1.94zm-9.7-12.1h5.82v2H7.76zm-1.93 12.1H3.88V8.65h1.94zm12.12-10.1H15.5V2.6h-9.7v4.04H3.4c-.8 0-1.45.68-1.45 1.51v9.08c0 .84.65 1.52 1.45 1.52h14.55c.8 0 1.45-.68 1.45-1.52V8.14c0-.83-.65-1.51-1.45-1.51' fill='%23652d90'/%3E%3Cpath d='M3.88 16.72h1.94V8.64H3.88zm11.64 0h1.94V8.64h-1.94z' fill='%23f0eff1'/%3E%3C/svg%3E"); } .mirrorsharp .cm-completionIcon-enum, .mirrorsharp .mirrorsharp-infotip-icon-enum { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21.33 21.33'%3E%3Cpath d='M9.93.89L7.11 3.7v4.3H2.8L0 10.8v6.81l2.82 2.82h8.58l2.82-2.82v-4.29h4.3l2.81-2.82v-6.8L18.51.89z' fill='%23f6f6f6'/%3E%3Cpath d='M10.67 13.33H3.56v-1.78h7.1zm0 3.56H3.56V15.1h7.1zm0-7.11H3.56l-1.78 1.77v5.34l1.78 1.78h7.1l1.78-1.78v-5.34zm7.1-3.56h-7.1V4.44h7.1zm0-3.55h-7.1L8.89 4.44V8h8.89v1.78h-4.6l1.04 1.04v.73h3.56l1.77-1.77V4.44z' fill='%23c27d1a'/%3E%3Cpath d='M10.67 11.55H3.56v1.78h7.1zm0 3.56H3.56v1.78h7.1zm7.1-10.67h-7.1v1.78h7.1zm0 3.56v1.78h-4.6L11.4 8z' fill='%23f0eff1'/%3E%3C/svg%3E"); } .mirrorsharp .cm-completionIcon-union, .mirrorsharp .mirrorsharp-infotip-icon-union { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21.33 21.33'%3E%3Cpath d='M5.33.89v5.33H0v14.22h16v-5.33h5.33V.9z' fill='%23f6f6f6'/%3E%3Cpath d='M1.78 18.67h12.44v-5.34h-1.78v3.56H3.56V9.78H7.1V8H1.78zM7.11 2.67V8h1.78V4.44h8.88v7.12h-3.55v1.77h5.33V2.67z' fill='%23424242'/%3E%3Cpath d='M14.22 13.33H7.11V8h7.11z' fill='%2300539c'/%3E%3C/svg%3E"); } .mirrorsharp .cm-completionIcon-interface, .mirrorsharp .mirrorsharp-infotip-icon-interface { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M45.99 49.34c-7.66 0-14.4-4.97-16.9-12h-6.73a11.96 11.96 0 01-22.36-6c0-6.61 5.38-12 12-12 4.35 0 8.26 2.36 10.36 6h6.73c2.5-7.04 9.24-12 16.9-12 9.92 0 18 8.07 18 18 0 9.92-8.08 18-18 18' fill='%23f6f6f6'/%3E%3Cpath d='M45.99 37.34A6 6 0 1146 25.32a6 6 0 01-.02 12.02m0-20a13.96 13.96 0 00-13.6 11H19.36a7.95 7.95 0 00-7.36-5 8 8 0 100 16 7.95 7.95 0 007.36-5h13.03a13.96 13.96 0 0027.6-3c0-7.72-6.28-14-14-14' fill='%2300539c'/%3E%3Cpath d='M45.99 37.34A6 6 0 1146 25.32a6 6 0 01-.02 12.02' fill='%23f0eff1'/%3E%3C/svg%3E"); } .mirrorsharp .cm-completionIcon-module, .mirrorsharp .mirrorsharp-infotip-icon-module { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21.33 21.33'%3E%3Cpath d='M0 20.44h21.33V.9H0z' fill='%23f6f6f6'/%3E%3Cpath d='M1.78 18.67h17.77v-7.12H1.78zm7.1-16h-7.1v7.1h7.1zm3.56 7.1h7.11v-7.1h-7.1z' fill='%23652d90'/%3E%3C/svg%3E"); } .mirrorsharp .cm-completionIcon-typeparameter, .mirrorsharp .mirrorsharp-infotip-icon-typeparameter { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M64 2.67H16v16H0v42.66h48v-16h16z' fill='%23f6f6f6'/%3E%3Cpath d='M53.33 34.67H42.67V24h-16V13.33h26.66zm-16 16H10.67V29.33h26.66zM21.33 8v16h-16v32h37.34V40h16V8z' fill='%23424242'/%3E%3Cpath d='M26.67 13.33V24h16v10.67h10.66V13.33z' fill='%23f0eff1'/%3E%3Cpath d='M10.67 50.67h26.66V29.33H10.67z' fill='%23f0eff1'/%3E%3C/svg%3E"); } .mirrorsharp .cm-completionIcon-enummember, .mirrorsharp .mirrorsharp-infotip-icon-enummember { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21.33 21.33'%3E%3Cpath d='M9.93.89L7.1 3.7V8H0v12.43h14.22v-7.1h4.3l2.81-2.83v-6.8L18.51.89z' fill='%23f6f6f6'/%3E%3Cpath d='M17.78 6.22h-7.11V4.44h7.1zm0-3.55h-7.11L8.89 4.44V8h8.89v1.78h-3.56v1.77h3.56l1.77-1.77V4.44z' fill='%2300539c'/%3E%3Cpath d='M3.56 13.33h7.1v1.78h-7.1zm-1.78 5.33h10.66V9.78H1.78z' fill='%2300539c'/%3E%3Cpath d='M3.56 15.1h7.1v-1.77h-7.1zm7.1-8.88h7.12V4.44h-7.11zm3.56 3.56h3.56V8h-3.56z' fill='%23f0eff1'/%3E%3C/svg%3E"); } .mirrorsharp .cm-completionIcon-constant, .mirrorsharp .mirrorsharp-infotip-icon-constant { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21.33 21.33'%3E%3Cpath d='M18.51.89H2.82L0 3.707v13.916l2.818 2.817h15.693l2.819-2.818V3.707z' fill='%23f6f6f6'/%3E%3Cpath d='M17.775 16.15l-.736.736H4.29l-.736-.736V5.18l.736-.736H17.04l.736.736zm0-13.483H3.555L1.778 4.444v12.442l1.777 1.777h14.22l1.777-1.777V4.444z' fill='%23424242'/%3E%3Cpath d='M7.11 9.776h7.11V7.999H7.11zm0 3.555h7.11v-1.778H7.11z' fill='%2300539c'/%3E%3Cpath d='M14.22 9.776H7.11V7.999h7.11zm0 3.555H7.11v-1.778h7.11zm2.819-8.887H4.29l-.736.736v10.97l.736.734H17.04l.736-.734V5.18z' fill='%23f0eff1'/%3E%3C/svg%3E"); } .mirrorsharp .cm-completionIcon-field, .mirrorsharp .mirrorsharp-infotip-icon-field { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21.33 21.33'%3E%3Cpath d='M11.98.89L0 6.88v9.3l8.51 4.26h.75l12.07-6.03V5.1L12.91.88z' fill='%23f6f6f6'/%3E%3Cpath d='M8.89 9.78L5.33 8l7.11-3.56L16 6.22zM1.78 8v7.1l7.1 3.56 10.67-5.33v-7.1l-7.1-3.56z' fill='%2300539c'/%3E%3Cpath d='M12.44 4.44L16 6.22 8.89 9.78 5.33 8z' fill='%23f0eff1'/%3E%3C/svg%3E"); } .mirrorsharp .cm-completionIcon-property, .mirrorsharp .mirrorsharp-infotip-icon-property { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M11.48 63.99c-2.03 0-5.05-.61-7.95-3.51-5.96-5.96-3.26-12.98 0-16.25L17.36 30.4a23.38 23.38 0 01-.95-6.59A23.82 23.82 0 0140.21.01c3.34 0 6.63.72 9.76 2.13l6.28 2.84-14.07 14.07 2.79 2.78L59.04 7.76l2.83 6.28A23.58 23.58 0 0164 23.8a23.82 23.82 0 01-23.8 23.8c-2.22 0-4.43-.32-6.59-.96L19.78 60.48c-.59.59-3.74 3.5-8.3 3.5' fill='%23f6f6f6'/%3E%3Cpath d='M57.53 16L44.97 28.56l-9.52-9.51L48 6.48a18.9 18.9 0 00-7.8-1.71 18.95 18.95 0 00-17.32 26.84l-16 15.99s-4.75 4.76 0 9.52c4.76 4.75 9.52 0 9.52 0L32.4 41.13a18.9 18.9 0 007.8 1.71A19.04 19.04 0 0059.25 23.8c0-2.78-.63-5.41-1.7-7.8' fill='%23424242'/%3E%3C/svg%3E"); } .mirrorsharp .cm-completionIcon-event, .mirrorsharp .mirrorsharp-infotip-icon-event { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21.33 21.33'%3E%3Cpath d='M8.23 0L2.22 12.02v2.2h4.24L2.9 21.33h4.5l11.71-11.7V7.1h-5.5l4.6-4.6V0z' fill='%23f6f6f6'/%3E%3Cpath d='M9.33 8.88l7.11-7.1H9.33L3.99 12.43h5.36l-3.58 7.1h.92L17.35 8.88z' fill='%23c27d1a'/%3E%3C/svg%3E"); } .mirrorsharp .cm-completionIcon-extensionmethod, .mirrorsharp .mirrorsharp-infotip-icon-extensionmethod { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21.33 21.33'%3E%3Cpath d='M13.24 6.36v6.18l-2.69-2.7v6.51l4.83 4.83h1.12l4.83-4.83v-6.5l-2.69 2.69V6.36z' fill='%23f6f6f6'/%3E%3Cpath d='M0 10.97v-7.5L6.58.16l6.33 3.34v7.43l-6 4.4z' fill='%23f6f6f6'/%3E%3Cpath d='M10.8 9.86l-3.46 2.5V7.7l3.47-2.11zm-4.33 2.65v.02-.01h-.02v-.01L2.18 9.73V5.25L6.5 7.67v4.81zm.04-9.93l4.13 2.04-3.86 2.31-4.16-2.38zm5.06 7.65V4.3l-5-2.64L1.34 4.3v5.93l5.5 3.47z' fill='%23652d90'/%3E%3Cpath d='M6.5 2.58l4.13 2.04-3.85 2.31L2.6 4.56z' fill='%23f0eff1'/%3E%3Cpath d='M6.5 2.58l4.13 2.04-3.85 2.31L2.6 4.56z' fill='none' stroke='%23652d90' stroke-width='.201988'/%3E%3Cpath d='M6.47 12.5v.03-.01h-.02v-.01L2.18 9.73V5.25L6.5 7.67v4.81z' fill='%23f0eff1'/%3E%3Cpath d='M6.47 12.5v.03l-.01-.01h-.01v-.01L2.18 9.73V5.25L6.5 7.67v4.81z' fill='none' stroke='%23652d90' stroke-width='.201988'/%3E%3Cpath d='M10.8 9.86l-3.46 2.5V7.7l3.47-2.11z' fill='%23f0eff1'/%3E%3Cpath d='M10.8 9.86l-3.46 2.5V7.7l3.47-2.11z' fill='none' stroke='%23652d90' stroke-width='.201988'/%3E%3Cpath d='M15.94 19.83l-4.04-4.04v-2.7l2.7 2.7v-2.7h2.69v2.7l2.69-2.7v2.7zm-1.35-8.08h2.7V10.4h-2.7zm0-2.7h2.7V7.71h-2.7z' fill='%23424242'/%3E%3C/svg%3E"); } .mirrorsharp .cm-completionIcon-method, .mirrorsharp .mirrorsharp-infotip-icon-method { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21.33 21.33'%3E%3Cpath d='M1.6 15.22V4.68L10.83 0l8.9 4.7v10.43l-8.45 6.2z' fill='%23f6f6f6'/%3E%3Cpath d='M16.78 13.65l-4.88 3.51v-6.55l4.88-2.97zm-6.1 3.72v.03l-.01-.02-.02.02v-.03l-5.99-3.91V7.18l6.08 3.39v6.76zm.05-13.96l5.81 2.86-5.42 3.26-5.85-3.34zm7.12 10.76V5.84l-7.03-3.7-7.33 3.7v8.33l7.72 4.87z' fill='%23652d90'/%3E%3Cpath d='M10.73 3.41l5.81 2.86-5.42 3.26-5.86-3.34z' fill='%23f0eff1'/%3E%3Cpath d='M10.73 3.41l5.81 2.86-5.42 3.26-5.86-3.34z' fill='none' stroke='%23652d90' stroke-width='.28'/%3E%3Cpath d='M10.69 17.37v.03l-.02-.02-.02.02v-.03l-6-3.91V7.18l6.08 3.4v6.75z' fill='%23f0eff1'/%3E%3Cpath d='M10.69 17.37v.03l-.02-.02-.02.02v-.03l-6-3.91V7.18l6.08 3.4v6.75z' fill='none' stroke='%23652d90' stroke-width='.28'/%3E%3Cpath d='M16.78 13.65l-4.88 3.51v-6.55l4.88-2.97z' fill='%23f0eff1'/%3E%3Cpath d='M16.78 13.65l-4.88 3.51v-6.55l4.88-2.97z' fill='none' stroke='%23652d90' stroke-width='.28'/%3E%3C/svg%3E"); } .mirrorsharp .cm-completionIcon-parameter, .mirrorsharp .cm-completionIcon-local, .mirrorsharp .mirrorsharp-infotip-icon-parameter, .mirrorsharp .mirrorsharp-infotip-icon-local { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 21.33 21.33'%3E%3Cpath d='M6.67 6.33V4H0v13.33h6.67v-2.48l2.87 1.44 5.13-2.56v3.6h6.66V4h-6.66v1.35l-3.02-1.5zm10.52 6.14V8h.14v5.33h-1.88z' fill='%23f6f6f6'/%3E%3Cpath d='M5.33 6.67V5.33h-4V16h4v-1.33H2.67v-8zm10.67 8V16h4V5.33h-4v1.34h2.67v8zM9.54 9.54l-2.1-1.05 4.2-2.1 2.11 1.05zm2.1-4.2l-6.3 3.15v4.2l4.2 2.11 6.31-3.16v-4.2z' fill='%23424242'/%3E%3Cpath d='M9.54 9.54l-2.1-1.05 4.2-2.1 2.11 1.05z' fill='%23f0eff1'/%3E%3C/svg%3E"); } .mirrorsharp .cm-tooltip.cm-completionInfo { max-width: 500px; } .mirrorsharp .cm-tooltip.cm-completionInfo, .mirrorsharp-infotip, .mirrorsharp-signature-list { font-family: var(--mirrorsharp-font-family-sans-serif); } .mirrorsharp-infotip { padding: 3px 8px; white-space: pre-wrap; } .mirrorsharp .cm-diagnostic-unnecessary { border-left: 5px solid #999; } .mirrorsharp .cm-diagnostic { display: flex; flex-direction: column; } .mirrorsharp .cm-diagnosticAction { /* Can be removed after https://github.com/codemirror/dev/issues/1053 */ cursor: pointer; align-self: flex-start; border: 1px solid; margin-left: 13px; padding: 4px 6px; } .mirrorsharp--theme-light .cm-diagnosticAction { background-color: #ddd; border-color: #aaa; color: inherit; } .mirrorsharp--theme-light .cm-diagnosticAction:hover { background-color: #eee; } .mirrorsharp--theme-dark .cm-diagnosticAction { background-color: #575760; border-color: #ccccd0; color: inherit; } .mirrorsharp .cm-diagnosticAction::before { content: ''; display: inline-block; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24.67 35.8'%3E%3Cpath fill='%23ceab00' d='M24.67 12.07a12.22 12.22 0 0 1-2.57 7.11q-2.4 3.26-2.74 3.85a13.92 13.92 0 0 0-1.54 7v.09h-11v-.06a13.89 13.89 0 0 0-1.63-7 45.25 45.25 0 0 0-2.66-3.85A12.22 12.22 0 0 1-.04 12.1 11.49 11.49 0 0 1 3.6 3.58a12.41 12.41 0 0 1 17.39 0 11.49 11.49 0 0 1 3.68 8.49Z'/%3E%3Cpath fill='%23ffd800' d='M20.98 18.32a9.93 9.93 0 0 0-1.11-13.88 10.75 10.75 0 0 0-15.08 0 9.93 9.93 0 0 0-1.11 13.88l1.63 2.23a9.09 9.09 0 0 1 1.11 1.8 12.57 12.57 0 0 1 1.8 6.42h8.27a12.89 12.89 0 0 1 1.77-6.42 35.57 35.57 0 0 1 2.06-3.08l.09-.09q-.02-.17.06-.17Z'/%3E%3Cpath fill='%23ceab00' d='M6.85 13.7h1.5l2.6 5.4v9.7H9.56v-9.7Zm10.98 0h-1.5l-2.6 5.4v9.7h1.39v-9.7Z'/%3E%3Cpath fill='%239d9d9d' d='m6.8 30.12 1.5 1.48v1.34l1.3 1.36h5.5l1.4-1.43v-1.32l1.3-1.43Z'/%3E%3Cpath fill='%23626262' d='M6.8 30.11v-1.35h11.01v1.35H8.25Zm1.45 2.76v-1.35h8.22v1.35H8.25Zm1.37 2.74v-1.37h5.48v1.37H9.62Z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center center; width: 1em; height: 1em; margin-right: 0.5em; vertical-align: top; } .mirrorsharp .cm-diagnosticAction { margin-top: 5px; } .mirrorsharp .cm-diagnosticAction:first-of-type { margin-top: 7px; } .mirrorsharp .cm-diagnosticAction:last-child { margin-bottom: 5px; } .mirrorsharp-signature-list { margin: 0; padding: 0; list-style-type: none; } .mirrorsharp-signature { padding: 4px 5px; line-height: 1.2; } .mirrorsharp--theme-light .mirrorsharp-signature--selected { background: #fff; } .mirrorsharp--theme-dark .mirrorsharp-signature--selected { background: #3f3f45; } .mirrorsharp-signature-part--selected { font-weight: bold; } .mirrorsharp-signature-info, .mirrorsharp-signature-info-parameter { margin-top: 2px; } .mirrorsharp-signature-info-parameter { font-style: italic; } .mirrorsharp-signature-info-parameter-name { font-weight: bold; } .mirrorsharp--connection-lost { position: relative; } .mirrorsharp-connection-loss-message { display: none; position: absolute; top: 0; right: 0; padding: 0.2em 0.4em; border-left: 5px solid #d11; font-family: var(--mirrorsharp-font-family-sans-serif); font-weight: bold; } .mirrorsharp--theme-light .mirrorsharp-connection-loss-message { background-color: #f5f5f5; } .mirrorsharp--theme-dark .mirrorsharp-connection-loss-message { background-color: #333338; } .mirrorsharp--connection-lost .mirrorsharp-connection-loss-message { display: block; } .mirrorsharp--connection-lost .cm-editor { filter: grayscale(); } ================================================ FILE: WebAssets/src/mirrorsharp.tests.ts ================================================ import { language } from '@codemirror/language'; import { Facet } from '@codemirror/state'; import { EditorView } from '@codemirror/view'; import { vbLanguage } from './codemirror/languages/vb'; import { THEME_DARK, THEME_LIGHT } from './main/theme'; import type { MirrorSharpDiagnostic, MirrorSharpSlowUpdateResult } from './mirrorsharp'; import { LANGUAGE_CSHARP, LANGUAGE_DEFAULT, LANGUAGE_VB } from './protocol/languages'; import { TestDriver } from './testing/test-driver-jest'; test('configuration text is sent with expected newlines', async () => { const driver = await TestDriver.new({ text: 'line 1\r\nline 2', skipSocketOpen: true }); driver.socket.open(); await driver.completeBackgroundWork(); expect(driver.socket.sent).toContain(`R0:0:0::line 1\r\nline 2`); }); test('setText replaces document text', async () => { const driver = await TestDriver.new({ text: 'initial' }); driver.mirrorsharp.setText('updated 1\r\nupdated 2'); await driver.completeBackgroundWork(); expect(driver.mirrorsharp.getText()).toBe('updated 1\r\nupdated 2'); expect(driver.socket.sent).toContain(`R0:7:0::updated 1\r\nupdated 2`); }); test('setLanguage updates language', async () => { const driver = await TestDriver.new({ language: LANGUAGE_CSHARP }); driver.mirrorsharp.setLanguage(LANGUAGE_VB); expect(driver.getCodeMirrorView().state.facet(language)) .toBe(vbLanguage); expect(driver.socket.sent).toContain('Olanguage=Visual Basic'); }); test('setLanguage does not send language if same as default', async () => { const driver = await TestDriver.new({}); driver.mirrorsharp.setLanguage(LANGUAGE_DEFAULT); expect(driver.socket.sent).toEqual([]); }); test('setLanguage does not send language if same as current', async () => { const driver = await TestDriver.new({ language: LANGUAGE_VB }); driver.mirrorsharp.setLanguage(LANGUAGE_VB); expect(driver.socket.sent).toEqual([]); }); test('setTheme updates theme', async () => { const driver = await TestDriver.new({ theme: THEME_LIGHT }); driver.mirrorsharp.setTheme(THEME_DARK); expect(driver.getCodeMirrorView().state.facet(EditorView.darkTheme)) .toBe(true); expect(driver.mirrorsharp.getRootElement().classList) .toContain('mirrorsharp--theme-dark'); }); test('setServiceUrl connects to new URL', async () => { const driver = await TestDriver.new({}); driver.mirrorsharp.setServiceUrl('new-url'); await driver.completeBackgroundWork(); expect(driver.socket.url).toBe('new-url'); expect(driver.socket.createdCount).toBe(2); expect(driver.socket.readyState).toBe(WebSocket.OPEN); }); test('setServiceUrl does not connect to new URL if disconnected is requested', async () => { const driver = await TestDriver.new({}); driver.mirrorsharp.setServiceUrl('new-url', { disconnected: true }); await driver.completeBackgroundWork(); expect(driver.socket.createdCount).toBe(1); expect(driver.socket.readyState).toBe(WebSocket.CLOSED); }); test('connect after disconnected setServiceUrl connects to new URL', async () => { const driver = await TestDriver.new({}); driver.mirrorsharp.setServiceUrl('new-url', { disconnected: true }); await driver.completeBackgroundWork(); driver.mirrorsharp.connect(); expect(driver.socket.url).toBe('new-url'); expect(driver.socket.createdCount).toBe(2); expect(driver.socket.readyState).toBe(WebSocket.OPEN); }); test('configuration extensions are added to CodeMirror', async () => { const facet = Facet.define(); const driver = await TestDriver.new({ codeMirror: { extensions: [ facet.of('test') ] } }); expect(driver.getCodeMirrorView().state.facet(facet)) .toEqual(['test']); }); test('textChange is called for setText', async () => { const textChange = jest.fn string]>(); const driver = await TestDriver.new({ text: 'initial', on: { textChange } }); driver.mirrorsharp.setText('updated'); await driver.completeBackgroundWork(); expect(textChange).toBeCalledTimes(1); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expect(textChange.mock.calls[0]![0]()).toBe('updated'); }); test('textChange is called when typing', async () => { const textChange = jest.fn string]>(); const driver = await TestDriver.new({ textWithCursor: 'initial|', on: { textChange } }); driver.text.type('test'); await driver.completeBackgroundWork(); expect(textChange).toBeCalledTimes('test'.length); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expect(textChange.mock.calls[0]![0]()).toBe('initialtest'); }); test('connectionChange is called when immediate connection is opened', async () => { const connectionChange = jest.fn(); await TestDriver.new({ on: { connectionChange } }); expect(connectionChange.mock.calls).toEqual([['open']]); }); test('connectionChange is called when delayed connection is opened', async () => { const connectionChange = jest.fn(); const driver = await TestDriver.new({ on: { connectionChange }, disconnected: true }); // eslint-disable-next-line no-debugger driver.mirrorsharp.connect(); await driver.completeBackgroundWork(); expect(connectionChange.mock.calls).toEqual([['open']]); }); test('connectionChange is called when connection is lost', async () => { const connectionChange = jest.fn(); const driver = await TestDriver.new({ on: { connectionChange } }); driver.socket.close(); expect(connectionChange.mock.calls).toEqual([ ['open'], ['loss'] ]); }); test('slowUpdateWait is called while waiting for slow update result', async () => { const slowUpdateWait = jest.fn(); const driver = await TestDriver.new({ text: '_', on: { slowUpdateWait } }); await driver.advanceTimeToSlowUpdateAndCompleteWork(); // Expecting two calls: one on open and one on timer expect(slowUpdateWait).toBeCalledTimes(2); }); test('slowUpdateResult is called with results of slow update', async () => { const slowUpdateResult = jest.fn]>(); const diagnostics = [{ id: 'test-id', severity: 'error', message: 'test-message' }] as const satisfies ReadonlyArray>; const driver = await TestDriver.new({ on: { slowUpdateResult } }); driver.receive.slowUpdate(diagnostics.map(({ id, severity, message }) => ({ id, severity, message, span: { start: 0, length: 0 }, tags: [] })), 'test-x-result'); expect(slowUpdateResult.mock.calls).toEqual([ [{ diagnostics, extensionResult: 'test-x-result' }] ]); }); test('serverError is called when receiving an error', async () => { const serverError = jest.fn(); const driver = await TestDriver.new({ on: { serverError } }); driver.receive.error('test-error'); expect(serverError.mock.calls).toEqual([['test-error']]); }); ================================================ FILE: WebAssets/src/mirrorsharp.ts ================================================ import type { Extension } from '@codemirror/state'; import type { EditorView } from '@codemirror/view'; import type { StyleSpec } from 'style-mod'; import { createInstance } from './main/instance'; import type { Theme } from './main/theme'; import type { Language } from './protocol/languages'; import type { DiagnosticSeverity } from './protocol/messages'; // ts-unused-exports:disable-next-line export type MirrorSharpDiagnosticSeverity = DiagnosticSeverity; // ts-unused-exports:disable-next-line export type MirrorSharpLanguage = Language; // ts-unused-exports:disable-next-line export type MirrorSharpConnectionState = 'open' | 'error' | 'close'; // ts-unused-exports:disable-next-line export type MirrorSharpTheme = Theme; // ts-unused-exports:disable-next-line export interface MirrorSharpDiagnostic { readonly id: string; readonly severity: MirrorSharpDiagnosticSeverity; readonly message: string; } // ts-unused-exports:disable-next-line export type MirrorSharpSlowUpdateResult = void extends TExtensionData ? { readonly diagnostics: ReadonlyArray } : { readonly diagnostics: ReadonlyArray; readonly extensionResult: TExtensionData; }; // ts-unused-exports:disable-next-line export type MirrorSharpOptions = { readonly serviceUrl: string; readonly language?: MirrorSharpLanguage | undefined; readonly theme?: MirrorSharpTheme | undefined; readonly text?: string | undefined; readonly cursorOffset?: number | undefined; // See EditorOptions['on']. This is not DRY, but // it's good to be explicit on what we are exporting. readonly on?: { readonly slowUpdateWait?: () => void; readonly slowUpdateResult?: (result: MirrorSharpSlowUpdateResult) => void; readonly textChange?: (getText: () => string) => void; readonly connectionChange?: (event: 'open' | 'loss') => void; readonly serverError?: (message: string) => void; } | undefined; readonly disconnected?: boolean | undefined; readonly serverOptions?: TExtensionServerOptions | undefined; readonly codeMirror?: { extensions?: ReadonlyArray; theme?: { [selector: string]: StyleSpec; } } }; // ts-unused-exports:disable-next-line export interface MirrorSharpInstance { getCodeMirrorView(): EditorView; getRootElement(): Element; getText(): string; setText(text: string): void; getCursorOffset(): number; getLanguage(): MirrorSharpLanguage; setLanguage(value: MirrorSharpLanguage): void; setServerOptions(value: TExtensionServerOptions): void; setTheme(value: MirrorSharpTheme): void; setServiceUrl(url: string, options?: ({ disconnected?: boolean } | undefined)): void; connect(): void; destroy(): void; } const ensureNoUnknownOptions = >(keyPrefix: string, unknown: T) => { let keys = Object.keys(unknown); if (keyPrefix) keys = keys.map(k => `${keyPrefix}.${k}`); if (keys.length === 0) return; throw new Error(`Unknown option${keys.length > 1 ? 's' : ''}: '${keys.join("', '")}'`); }; // ts-unused-exports:disable-next-line export // eslint-disable-next-line import/no-default-export default function mirrorsharp( container: HTMLElement, options: MirrorSharpOptions ): MirrorSharpInstance { const { serviceUrl, text, cursorOffset, language, theme, on, disconnected, serverOptions, codeMirror, ...rest } = options; ensureNoUnknownOptions('', rest); const { textChange, connectionChange, serverError, slowUpdateWait, slowUpdateResult, ...onRest } = on ?? {}; ensureNoUnknownOptions('on', onRest); const { extensions, theme: themeSpec, ...codeMirrorRest } = codeMirror ?? {}; ensureNoUnknownOptions('codeMirror', codeMirrorRest); const instance = createInstance(container, { serviceUrl, text, cursorOffset, language, theme, on: { textChange, connectionChange, serverError, slowUpdateWait, slowUpdateResult }, serverOptions, disconnected, codeMirror: { extensions, theme: themeSpec } }); return instance satisfies { // blocks any unexpected members from being exported to public API [K in Exclude>]: never }; } ================================================ FILE: WebAssets/src/protocol/connection.tests.ts ================================================ import { installMockSocket, MockSocket } from '../testing/shared/mock-socket'; import { TestDriver } from '../testing/test-driver-jest'; import { Connection } from './connection'; test('attempts to reopen socket if closed', async () => { const driver = await TestDriver.new({}); driver.socket.close(); await driver.completeBackgroundWork(); expect(driver.socket.createdCount).toBe(2); }); test('does not attempt to reopen socket if explicitly closed', async () => { const socket = installMockSocket(new MockSocket()).mock; const connection = new Connection('_', { closed: false }); connection.close(); socket.close(); jest.advanceTimersByTime(1000); expect(socket.createdCount).toBe(1); }); test('attempts to reopen socket at expected intervals', async () => { const driver = await TestDriver.new({}); const retryIntervals = [] as Array; let last = { createdCount: driver.socket.createdCount, retryTime: 0 }; driver.socket.close(); let time = 0; for (; time < 180; time += 1) { jest.advanceTimersByTime(1000); const { createdCount } = driver.socket; if (createdCount > last.createdCount) { retryIntervals.push(time - last.retryTime); last = { createdCount, retryTime: time }; } if (driver.socket.readyState === MockSocket.OPEN) driver.socket.close(); } expect(retryIntervals).toEqual([0, 1, 2, 4, 8, 16, 32, 60]); }); ================================================ FILE: WebAssets/src/protocol/connection.ts ================================================ import { ensureDefined } from '../helpers/ensure-defined'; import type { Message, ServerOptions, ServerPosition } from './messages'; const stateCommandMap = { cancel: 'X', force: 'F' } as Readonly<{ cancel: 'X'; force: 'F'; [key: number]: undefined; }>; export type ReplaceTextCommand = { start: ServerPosition, length: number, newText: string, cursorIndexAfter: ServerPosition, reason?: string | null }; type HandlerMap = { open: () => void, message: (data: Message) => void, close: () => void }; // Defaults are 'unknown' rather than 'void', as it exists for internal convenience, // and we assume in most cases this is not 'void'. Anything public should have 'void' though. export class Connection { #url: string; readonly #listeners = { open: [], message: [], close: [] } as { [K in keyof HandlerMap]: Array[K]> }; #socket: WebSocket | undefined; #manuallyClosed = false; #reopenPeriod = 0; #reopenTimer: ReturnType | undefined | null; #reopenPeriodResetTimer: ReturnType | undefined | null; readonly #removeInternalListeners: () => void; #removeSocketListeners: (() => void) | undefined; constructor(url: string, { closed }: { closed: boolean | undefined }) { this.#url = url; if (!closed) this.open(); this.#removeInternalListeners = this.addEventListeners({ open: () => this.#resetReopenPeriod(), close: () => this.#tryToReopen() }); } addEventListeners(listeners: Partial>) { const removeEach = [] as Array<() => void>; for (const key in listeners) { const list = this.#listeners[key as keyof typeof listeners]; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const listener = listeners[key as keyof typeof listeners]!; list.push( // eslint-disable-next-line @typescript-eslint/no-explicit-any listener as any ); removeEach.push(() => { // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-call const index = list.indexOf(listener as any); if (index >= 0) list.splice(index, 1); }); } return () => { for (const remove of removeEach) { remove(); } }; } open() { this.#socket = new WebSocket(this.#url); this.#removeSocketListeners = this.#addSocketListeners(this.#socket); } #addSocketListeners(socket: WebSocket) { const on = { open: () => { for (const listener of this.#listeners['open']) { listener(); } }, message: (e: MessageEvent) => { const data = JSON.parse(e.data as string) as Message; for (const listener of this.#listeners['message']) { listener(data); } }, close: () => { for (const listener of this.#listeners['close']) { listener(); } } }; socket.addEventListener('open', on.open); socket.addEventListener('message', on.message); socket.addEventListener('close', on.close); return () => { socket.removeEventListener('open', on.open); socket.removeEventListener('message', on.message); socket.removeEventListener('close', on.close); }; } #resetReopenPeriod() { this.#reopenPeriodResetTimer = setTimeout(() => { this.#reopenPeriod = 0; }, this.#reopenPeriod); } #tryToReopen() { if (this.#manuallyClosed || this.#reopenTimer) return; if (this.#reopenPeriodResetTimer) { clearTimeout(this.#reopenPeriodResetTimer); this.#reopenPeriodResetTimer = null; } this.#reopenTimer = setTimeout(() => { this.open(); this.#reopenTimer = null; }, this.#reopenPeriod); if (this.#reopenPeriod < 60000) { this.#reopenPeriod = this.#reopenPeriod > 0 ? Math.min(2 * this.#reopenPeriod, 60000) : 1000; console.log('reopen period: ', this.#reopenPeriod); } } async #sendIfOpen(command: string) { if (this.#manuallyClosed) throw `Cannot send command '${command}' after the close() call.`; if (!this.isOpen()) { // eslint-disable-next-line @typescript-eslint/restrict-template-expressions console.warn(`Dropped command '${command}' because the socket state is ${this.#socket?.readyState}.`); return; } // eslint-disable-next-line @typescript-eslint/no-non-null-assertion this.#socket!.send(command); } isOpen() { return this.#socket?.readyState === WebSocket.OPEN; } sendReplaceText({ start, length, cursorIndexAfter, newText, reason }: ReplaceTextCommand) { return this.#sendIfOpen( `R${start as unknown as number}:${length}:${cursorIndexAfter as unknown as number}:${reason ?? ''}:${newText}` ); } sendMoveCursor(cursorIndex: ServerPosition) { return this.#sendIfOpen('M' + (cursorIndex as unknown as number)); } sendTypeChar(char: string) { return this.#sendIfOpen('C' + char); } sendCompletionState(indexOrCommand: 'info'|'force'|number|'cancel', indexIfInfo?: number) { // common bug -- the specific flow is not fully clear yet, // but there is no reason to send null/undefined to server if it will fail anyway ensureDefined(indexOrCommand, 'completion command'); const argument = indexOrCommand !== 'info' ? (stateCommandMap[indexOrCommand] ?? indexOrCommand) : 'I' + ensureDefined(indexIfInfo, 'completion info index'); return this.#sendIfOpen('S' + argument); } sendSignatureHelpState(command: 'force'|'cancel') { return this.#sendIfOpen('P' + stateCommandMap[command]); } sendRequestInfoTip(cursorIndex: ServerPosition) { return this.#sendIfOpen('I' + (cursorIndex as unknown as number)); } sendSlowUpdate() { return this.#sendIfOpen('U'); } sendApplyDiagnosticAction(actionId: number) { return this.#sendIfOpen('F' + actionId); } sendSetOptions(options: Partial & Partial) { const optionPairs = []; for (const key in options) { optionPairs.push(key + '=' + (options as Record)[key]); } return this.#sendIfOpen('O' + optionPairs.join(',')); } // hopefully just for SharpLab setUrl(url: string, { closed }: { closed: boolean | undefined }) { this.#removeSocketListeners?.(); if (this.isOpen()) { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion this.#socket!.close(); } if (this.#reopenTimer) { clearTimeout(this.#reopenTimer); this.#reopenTimer = null; } if (this.#reopenPeriodResetTimer) { clearTimeout(this.#reopenPeriodResetTimer); this.#reopenPeriodResetTimer = null; } this.#reopenPeriod = 0; this.#url = url; if (!closed) this.open(); } close() { this.#manuallyClosed = true; this.#removeInternalListeners(); this.#socket?.close(); } } ================================================ FILE: WebAssets/src/protocol/languages.ts ================================================ export const LANGUAGE_CSHARP = 'C#'; export const LANGUAGE_VB = 'Visual Basic'; export const LANGUAGE_FSHARP = 'F#'; export const LANGUAGE_PHP = 'PHP'; export const LANGUAGE_IL = 'IL'; export const LANGUAGE_DEFAULT = LANGUAGE_CSHARP; export type Language = typeof LANGUAGE_CSHARP | typeof LANGUAGE_VB | typeof LANGUAGE_FSHARP | typeof LANGUAGE_PHP | typeof LANGUAGE_IL; ================================================ FILE: WebAssets/src/protocol/line-separator.ts ================================================ export const lineSeparator = '\r\n'; ================================================ FILE: WebAssets/src/protocol/messages.ts ================================================ import type { Language } from './languages'; declare const PositionSymbol: unique symbol; export type ServerPosition = { [PositionSymbol]: never }; export type Message = ChangesMessage | CompletionsMessage | CompletionInfoMessage | SignaturesMessage | SignaturesEmptyMessage | InfotipMessage | InfotipEmptyMessage | SlowUpdateMessage | OptionsEchoMessage | SelfDebugMessage | ErrorMessage | UnknownMessage; // ts-unused-exports:disable-next-line export interface ChangesMessage { readonly type: 'changes'; readonly changes: ReadonlyArray; readonly reason: 'completion'|'fix'; } export interface ChangeData { readonly start: ServerPosition; readonly length: number; readonly text: string; } export interface CompletionsMessage { readonly type: 'completions'; readonly span: SpanData; readonly completions: ReadonlyArray; readonly commitChars: string; readonly suggestion?: CompletionSuggestionData; } // ts-unused-exports:disable-next-line export interface CompletionSuggestionData { readonly displayText: string; } // ts-unused-exports:disable-next-line export interface CompletionItemData { readonly displayText: string; readonly kinds: ReadonlyArray; readonly filterText?: string; readonly span?: SpanData; readonly priority?: number; } export interface CompletionInfoMessage { readonly type: 'completionInfo'; readonly index: number; readonly parts: ReadonlyArray; } export interface SignaturesMessage { readonly type: 'signatures'; readonly span: SpanData; readonly signatures: ReadonlyArray; } export interface SignaturesEmptyMessage { readonly type: 'signatures'; readonly span?: undefined; readonly signatures?: undefined; } export interface SignatureData { readonly parts: ReadonlyArray; readonly selected?: boolean; readonly info?: SignatureInfoData; } export interface SignatureInfoData { readonly parts: ReadonlyArray; // normally represents the selected parameter readonly parameter?: SignatureInfoParameterData; } export interface SignatureInfoParameterData { readonly name: string; readonly parts: ReadonlyArray; } // ts-unused-exports:disable-next-line export interface SignaturePartData extends PartData { readonly selected?: boolean; } export interface InfotipMessage { readonly type: 'infotip'; readonly span: SpanData; readonly kinds: ReadonlyArray; readonly sections: ReadonlyArray; } // Temporary, investigate // ts-unused-exports:disable-next-line export interface InfotipEmptyMessage { readonly type: 'infotip'; readonly sections?: undefined; } // ts-unused-exports:disable-next-line export interface InfotipSectionData { readonly kind: string; readonly parts: ReadonlyArray; } export interface SlowUpdateMessage { readonly type: 'slowUpdate'; readonly diagnostics: ReadonlyArray; readonly x: TExtensionData; } export interface DiagnosticData { readonly id: string; readonly span: SpanData; readonly severity: DiagnosticSeverity; readonly message: string; readonly tags: ReadonlyArray; readonly actions?: ReadonlyArray; } export type DiagnosticSeverity = 'hidden' | 'warning' | 'error' | 'info'; export interface DiagnosticActionData { readonly id: number; readonly title: string; } // ts-unused-exports:disable-next-line export interface OptionsEchoMessage { readonly type: 'optionsEcho'; readonly options: ServerOptions & TExtensionServerOptions; } export interface ServerOptions { language: Language; } // Temporary, until self-debug is restored or removed // ts-unused-exports:disable-next-line export interface SelfDebugMessage { readonly type: 'self:debug'; readonly log: ReadonlyArray; } // Temporary, until self-debug is restored or removed // ts-unused-exports:disable-next-line export interface SelfDebugLogEntryData { readonly time: Date; readonly event: string; readonly message: string; readonly text: string; readonly cursor: number; } export interface ErrorMessage { readonly type: 'error'; readonly message: string; } // ts-unused-exports:disable-next-line export interface UnknownMessage { type: '_'; } export interface PartData { readonly kind: string; readonly text: string; } // ts-unused-exports:disable-next-line export interface SpanData { readonly start: ServerPosition; readonly length: number; } ================================================ FILE: WebAssets/src/protocol/session.options.tests.ts ================================================ import { TestDriver } from '../testing/test-driver-jest'; test('does not send default options on connection open', async () => { const driver = await TestDriver.new({ language: 'C#', skipSocketOpen: true }); driver.socket.open(); await driver.completeBackgroundWork(); expect(driver.socket.sent).toEqual([]); }); test('sends non-default language on connection open', async () => { const driver = await TestDriver.new({ language: 'Visual Basic', skipSocketOpen: true }); driver.socket.open(); await driver.completeBackgroundWork(); expect(driver.socket.sent).toEqual(['Olanguage=Visual Basic']); }); test('re-sends non-default language on next connection open', async () => { const driver = await TestDriver.new({ language: 'Visual Basic', skipSocketOpen: true }); driver.socket.open(); await driver.completeBackgroundWork(); driver.socket.sent = []; driver.socket.open(); await driver.completeBackgroundWork(); expect(driver.socket.sent).toEqual(['Olanguage=Visual Basic']); }); test('always sends options before slow update', async () => { const driver = await TestDriver.new({ text: 'test', language: 'Visual Basic', skipSocketOpen: true }); await driver.advanceTimeToSlowUpdateAndCompleteWork(); driver.socket.open(); await driver.completeBackgroundWork(); expect(driver.socket.sent).toEqual([ 'Olanguage=Visual Basic', 'R0:0:0::test', 'U' ]); }); test('sends extended options on connection open', async () => { const driver = await TestDriver.new({ serverOptions: { 'x-test': 'value' }, skipSocketOpen: true }); driver.socket.open(); await driver.completeBackgroundWork(); expect(driver.socket.sent).toEqual(['Olanguage=C#,x-test=value']); }); /*test('options echo without a language does not unset language', async () => { const driver = await TestDriver.new({ options: { language: 'C#' } }); driver.receive.optionsEcho({}); expect((driver.getCodeMirror().getMode() as { name: string }).name).toBe('clike'); }); test('options echo without a language does not unset default language', async () => { const driver = await TestDriver.new({}); driver.receive.optionsEcho({}); expect((driver.getCodeMirror().getMode() as { name: string }).name).toBe('clike'); });*/ test('options echo without extended option does not unset extended option for next open', async () => { const driver = await TestDriver.new({ serverOptions: { 'x-test': 'value' } }); driver.receive.optionsEcho({}); driver.socket.open(); await driver.completeBackgroundWork(); expect(driver.socket.sent).toEqual(['Olanguage=C#,x-test=value']); }); ================================================ FILE: WebAssets/src/protocol/session.slow-update.tests.ts ================================================ import { TestDriver } from '../testing/test-driver-jest'; test('slowUpdate is not sent if there is no initial text', async () => { const driver = await TestDriver.new({ skipSocketOpen: true }); driver.socket.open(); await driver.advanceTimeToSlowUpdateAndCompleteWork(); expect(driver.socket.sent).toEqual([]); }); test('slowUpdate is sent if there is initial text', async () => { const driver = await TestDriver.new({ text: 'Test', skipSocketOpen: true }); driver.socket.open(); await driver.advanceTimeToSlowUpdateAndCompleteWork(); expect(driver.socket.sent).toEqual([ 'R0:0:0::Test', 'U' ]); }); test('slowUpdate is sent after initial text even if lint runs before connection is open', async () => { const driver = await TestDriver.new({ text: 'Test', skipSocketOpen: true }); await driver.advanceTimeToSlowUpdateAndCompleteWork(); driver.socket.open(); await driver.advanceTimeToSlowUpdateAndCompleteWork(); expect(driver.socket.sent).toEqual([ 'R0:0:0::Test', 'U' ]); }); test('slowUpdate is sent if text is set after initial setup', async () => { const driver = await TestDriver.new({ skipSocketOpen: true }); driver.socket.open(); await driver.advanceTimeToSlowUpdateAndCompleteWork(); driver.dispatchCodeMirrorTransaction({ changes: { from: 0, insert: 'Test' } }); await driver.advanceTimeToSlowUpdateAndCompleteWork(); expect(driver.socket.sent).toEqual([ 'R0:0:0::Test', 'U' ]); }); test('slowUpdate is sent only once on reopen if connection is closed', async () => { const driver = await TestDriver.new({ textWithCursor: 'a|', skipSocketOpen: true }); await driver.advanceTimeToSlowUpdateAndCompleteWork(); driver.text.type('b'); await driver.advanceTimeToSlowUpdateAndCompleteWork(); driver.text.type('c'); driver.socket.open(); await driver.advanceTimeToSlowUpdateAndCompleteWork(); const sent = driver.socket.sent; expect(sent).toEqual([ ...(sent.slice(0, sent.length - 1).map(() => expect.not.stringMatching(/^U$/) as unknown)), 'U' ]); }); // test('slowUpdateWait is triggered on first change', async () => { // const slowUpdateWait = jest.fn(); // const driver = await TestDriver.new({ options: { on: { slowUpdateWait } } }); // driver.keys.type('x'); // await driver.completeBackgroundWork(); // expect(slowUpdateWait.mock.calls).toEqual([[]]); // }); ================================================ FILE: WebAssets/src/protocol/session.ts ================================================ import type { Connection, ReplaceTextCommand } from './connection'; import { LANGUAGE_DEFAULT } from './languages'; import type { DiagnosticSeverity, ErrorMessage, Message, ServerOptions, ServerPosition, SlowUpdateMessage } from './messages'; const UPDATE_PERIOD = 500; type FullTextContext = { readonly getText: () => string; readonly getCursorIndex: () => ServerPosition; }; type SlowUpdateResultDiagnostic = { readonly id: string; readonly severity: DiagnosticSeverity; readonly message: string; }; type SlowUpdateResult = { readonly diagnostics: ReadonlyArray; readonly extensionResult: TSlowUpdateExtensionData; }; export type SessionEventListeners = { readonly connectionChange: ((event: 'open' | 'loss') => void) | undefined; readonly slowUpdateWait: (() => void) | undefined; readonly slowUpdateResult: ((args: SlowUpdateResult) => void) | undefined; readonly serverError: ((message: string) => void) | undefined; }; // Defaults are 'unknown' rather than 'void', as it exists for internal convenience, // and we assume in most cases this is not 'void'. Anything public should have 'void' though. export class Session { readonly #connection: Connection; readonly #slowUpdateTimer: ReturnType; readonly #removeConnectionEvents: () => void; readonly #on: SessionEventListeners; #textSent = false; #hadChangesSinceLastSlowUpdate = false; #fullOptions: ServerOptions & Partial; #fullTextContext?: FullTextContext; // eslint-disable-next-line @typescript-eslint/no-explicit-any constructor( connection: Connection, serverOptions: ServerOptions & TExtensionServerOptions, on: SessionEventListeners ) { this.#connection = connection; this.#removeConnectionEvents = connection.addEventListeners({ // eslint-disable-next-line @typescript-eslint/no-misused-promises open: () => { on.connectionChange?.('open'); this.#resendAllOnOpen(); }, message: e => this.#receiveMessage(e), close: () => { on.connectionChange?.('loss'); } }); this.#on = on; this.#slowUpdateTimer = setInterval(() => this.#requestSlowUpdate(), UPDATE_PERIOD); this.#fullOptions = serverOptions; } #resendAllOnOpen() { this.#textSent = false; if (!this.#areFullOptionsDefault()) this.#sendSetOptions(this.#fullOptions); if (this.#fullTextContext) this.#sendFullText(this.#fullTextContext); this.#requestSlowUpdate(); } setOptions(options: Partial & Partial) { this.#fullOptions = { ...this.#fullOptions, ...options }; if (this.#connection.isOpen()) { this.#sendSetOptions(options); this.#requestSlowUpdate(); } } #sendSetOptions(options: Partial & Partial) { // eslint-disable-next-line @typescript-eslint/no-floating-promises this.#connection.sendSetOptions(options); this.#hadChangesSinceLastSlowUpdate = true; } #areFullOptionsDefault = () => { const keys = Object.keys(this.#fullOptions); return keys.length === 1 && keys[0] === 'language' && this.#fullOptions.language === LANGUAGE_DEFAULT; }; setFullText(context: FullTextContext) { this.#fullTextContext = context; if (this.#connection.isOpen()) this.#sendFullText(context); } #sendFullText({ getText, getCursorIndex }: FullTextContext) { const text = getText(); if (text.length === 0) return; // eslint-disable-next-line @typescript-eslint/no-floating-promises this.#connection.sendReplaceText({ start: 0 as unknown as ServerPosition, length: 0, newText: getText(), cursorIndexAfter: getCursorIndex() }); this.#textSent = true; this.#hadChangesSinceLastSlowUpdate = true; } sendPartialText(command: ReplaceTextCommand) { // eslint-disable-next-line @typescript-eslint/no-floating-promises this.#connection.sendReplaceText(command); this.#hadChangesSinceLastSlowUpdate = true; this.#textSent = true; } sendTypeChar(char: string) { // eslint-disable-next-line @typescript-eslint/no-floating-promises this.#connection.sendTypeChar(char); this.#hadChangesSinceLastSlowUpdate = true; this.#textSent = true; } sendMoveCursor(cursorIndex: ServerPosition) { // eslint-disable-next-line @typescript-eslint/no-floating-promises this.#connection.sendMoveCursor(cursorIndex); } #requestSlowUpdate() { if (!this.#connection.isOpen()) return; if (!this.#hadChangesSinceLastSlowUpdate) return; if (!this.#textSent) return; this.#on.slowUpdateWait?.(); // eslint-disable-next-line @typescript-eslint/no-floating-promises this.#connection.sendSlowUpdate(); this.#hadChangesSinceLastSlowUpdate = false; } #receiveSlowUpdate(message: SlowUpdateMessage) { if (!this.#on.slowUpdateResult) return; const diagnostics = message.diagnostics.map( ({ id, message, severity }) => ({ id, message, severity }) ); this.#on.slowUpdateResult({ diagnostics, extensionResult: message.x }); } #receiveServerError({ message }: ErrorMessage) { if (!this.#on.serverError) throw new Error(message); this.#on.serverError(message); } #receiveMessage(message: Message) { switch (message.type) { case 'optionsEcho': this.#fullOptions = { ...this.#fullOptions, ...message.options }; break; case 'slowUpdate': this.#receiveSlowUpdate(message); break; case 'error': this.#receiveServerError(message); break; } } destroy() { this.#removeConnectionEvents(); clearInterval(this.#slowUpdateTimer); } } ================================================ FILE: WebAssets/src/testing/jest/jsdom.d.ts ================================================ declare namespace NodeJS { interface Global { document: { body: { createTextRange: () => { getBoundingClientRect(): void; getClientRects(): []; }; }; getSelection: () => { readonly anchorNode: null; readonly anchorOffset: 0; readonly focusNode: null; readonly focusOffset: 0; }; }; WebSocket: () => Partial; } } ================================================ FILE: WebAssets/src/testing/jest/setup-jest.ts ================================================ import { toMatchImageSnapshot } from 'jest-image-snapshot'; expect.extend({ toMatchImageSnapshot }); jest.useFakeTimers(); jest.setTimeout(3 * 60 * 1000); ================================================ FILE: WebAssets/src/testing/jest/test-dom-events.ts ================================================ import type { EditorView } from '@codemirror/view'; export class TestDomEvents { readonly #cmView: EditorView; constructor(cmView: EditorView) { this.#cmView = cmView; } keydown(key: string, other: Omit = {}) { this.#cmView .contentDOM .dispatchEvent(new KeyboardEvent('keydown', { key, ...other })); } mousemove(target: Node) { const event = new MouseEvent('mousemove', { bubbles: true }); // default does not apply fake timers due to global object differences Object.defineProperty(event, 'timeStamp', { value: Date.now() }); target.dispatchEvent(event); } mouseover(selector: string) { const target = this.#cmView.dom.querySelector(selector); if (!target) throw new Error(`Could not find element '${selector}'.`); target.dispatchEvent(new MouseEvent('mouseover', { bubbles: true })); } } ================================================ FILE: WebAssets/src/testing/jest/test-text.ts ================================================ import { Transaction } from '@codemirror/state'; import type { EditorView } from '@codemirror/view'; export class TestText { readonly #cmView: EditorView; constructor(cmView: EditorView) { this.#cmView = cmView; } type(text: string) { let cursorOffset = this.#cmView.state.selection.main.anchor; for (const char of text) { const newCursorOffset = cursorOffset + 1; this.#cmView.dispatch(this.#cmView.state.update({ annotations: [Transaction.userEvent.of('input.type')], changes: { from: cursorOffset, insert: char }, selection: { anchor: newCursorOffset } })); cursorOffset = newCursorOffset; } } } ================================================ FILE: WebAssets/src/testing/shared/mock-socket.ts ================================================ interface MockSocketMessageEvent { readonly data: string; } type MockSocketListenerMap = { open: () => void; message: (e: MockSocketMessageEvent) => void; error: () => void; close: () => void; }; export class MockSocketController { readonly #listeners = { open: [], message: [], error: [], close: [] } as { [K in keyof MockSocketListenerMap]: Array }; readyState = MockSocket.CONNECTING as ( typeof MockSocket.CONNECTING | typeof MockSocket.OPEN | typeof MockSocket.CLOSING | typeof MockSocket.CLOSED ); url?: string; createdCount = 0; sent = [] as Array; open({ asyncEvents }: { asyncEvents?: boolean | undefined } = {}) { this.readyState = MockSocket.OPEN; const triggerEvent = () => { for (const listener of this.#listeners['open']) { listener(); } }; // Required when called from constructor, otherwise // the event is triggered before the listener is added if (asyncEvents) { // eslint-disable-next-line @typescript-eslint/no-floating-promises new Promise(resolve => resolve()) .then(() => triggerEvent()); } else { triggerEvent(); } } receive(e: MockSocketMessageEvent) { for (const listener of this.#listeners['message']) { listener(e); } } close() { this.readyState = MockSocket.CLOSED; for (const listener of this.#listeners['close']) { listener(); } } addEventListener(event: TEvent, listener: MockSocketListenerMap[TEvent]) { this.#listeners[event].push(listener); } removeEventListener(event: TEvent, listener: MockSocketListenerMap[TEvent]) { const index = this.#listeners[event].indexOf(listener); if (index > 0) this.#listeners[event].splice(index, 1); } } export class MockSocket { static readonly CONNECTING = 0; static readonly OPEN = 1; static readonly CLOSING = 2; static readonly CLOSED = 3; readonly mock = new MockSocketController(); get url() { return this.mock.url; } get readyState() { return this.mock.readyState; } send(message: string) { this.mock.sent.push(message); } addEventListener(event: TEvent, listener: MockSocketListenerMap[TEvent]) { this.mock.addEventListener(event, listener); } removeEventListener(event: TEvent, listener: MockSocketListenerMap[TEvent]) { this.mock.removeEventListener(event, listener); } close() { this.mock.close(); } } export const installMockSocket = (socket: MockSocket, { manualOpen }: { manualOpen?: boolean | undefined } = {}) => { if (globalThis.WebSocket instanceof MockSocket) throw new Error(`Global WebSocket is already set up in this context.`); // eslint-disable-next-line func-style const WebSocket = function(url: string) { socket.mock.url = url; socket.mock.createdCount += 1; if (!manualOpen && socket.readyState !== MockSocket.OPEN) socket.mock.open({ asyncEvents: true }); return socket; }; WebSocket.CONNECTING = MockSocket.CONNECTING; WebSocket.OPEN = MockSocket.OPEN; WebSocket.CLOSING = MockSocket.CLOSING; WebSocket.CLOSED = MockSocket.CLOSED; (globalThis as unknown as { WebSocket: (url: string) => Partial }).WebSocket = WebSocket; return socket; }; ================================================ FILE: WebAssets/src/testing/shared/test-receiver.ts ================================================ import type { ChangeData, ChangesMessage, CompletionItemData, CompletionsMessage, DiagnosticData, InfotipMessage, Message, PartData, ServerOptions, ServerPosition, SignatureData, SignaturesEmptyMessage, SignaturesMessage, SpanData, UnknownMessage } from '../../protocol/messages'; import type { MockSocketController } from './mock-socket'; type SimplifyServerPosition = { [P in keyof T]: T[P] extends ServerPosition ? (T[P] | number) : (T[P] extends object ? SimplifyServerPosition : (T[P] extends ReadonlyArray ? ReadonlyArray> : T[P])); }; export class TestReceiver { readonly #socket: MockSocketController; constructor(socket: MockSocketController) { this.#socket = socket; } changes(reason: ChangesMessage['reason'], changes: ReadonlyArray> = []) { this.#message({ type: 'changes', changes: changes as ReadonlyArray, reason }); } optionsEcho(options: Partial & Partial = {}) { this.#message({ type: 'optionsEcho', options: options as (ServerOptions & TExtensionServerOptions) }); } /** * readonly span: SpanData; readonly kinds: ReadonlyArray; readonly sections: ReadonlyArray; */ infotip(args: SimplifyServerPosition>) { this.#message({ type: 'infotip', ...(args as Omit) }); } completions( completions: ReadonlyArray = [], other: Partial> = {} ) { this.#message({ type: 'completions', completions, commitChars: '', ...other }); } completionInfo(index: number, parts: ReadonlyArray) { this.#message({ type: 'completionInfo', index, parts }); } signatures(signatures?: ReadonlyArray, span?: SimplifyServerPosition) { this.#message({ type: 'signatures', signatures, span } as SignaturesMessage | SignaturesEmptyMessage); } slowUpdate = ((diagnostics: ReadonlyArray>>, x?: TSlowUpdateExtensionData) => { this.#message({ type: 'slowUpdate', diagnostics: diagnostics .map(d => ({ tags: [], ...d })) as Array, x }); }) as void extends TSlowUpdateExtensionData ? (diagnostics: ReadonlyArray>>) => void : (diagnostics: ReadonlyArray>>, x?: TSlowUpdateExtensionData) => void; error(message: string) { this.#message({ type: 'error', message }); } #message(message: Partial, UnknownMessage>>) { this.#socket.receive({ data: JSON.stringify(message) }); } } ================================================ FILE: WebAssets/src/testing/storybook/browser-fake-timers.ts ================================================ import { install } from '@sinonjs/fake-timers'; import type { TestDriverTimers } from '../test-driver-base'; const clock = install(); export const timers: TestDriverTimers = { setSystemTime(now?: number | Date): void { clock.setSystemTime(now); }, runOnlyPendingTimers() { clock.runToLast(); }, advanceTimersByTime(msToRun: number) { clock.tick(msToRun); }, advanceTimersToNextTimer() { throw new Error('Not implemented'); } }; ================================================ FILE: WebAssets/src/testing/storybook/mock-socket-with-action-log.ts ================================================ import { action } from '@storybook/addon-actions'; import { MockSocket } from '../shared/mock-socket'; export class MockSocketWithActionLog extends MockSocket { constructor() { super(); this.addEventListener( 'message', e => action('receive')(JSON.parse(e.data)) ); } override send(message: string): void { action('send')(message); super.send(message); } } ================================================ FILE: WebAssets/src/testing/storybook/story-with-dark-theme.ts ================================================ import { THEME_DARK } from '../../main/theme'; import { TestDriver } from '../test-driver-storybook'; import type { TestDriverStory } from './test-driver-story'; export const storyWithDarkTheme = (story: TestDriverStory) => { const darkStory: TestDriverStory = (...args) => story(...args); if (story.loaders?.length !== 1) throw new Error('Unsupported loader count'); darkStory.loaders = [ async (...args) => { TestDriver.nextTheme = THEME_DARK; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const result = await story.loaders![0]!(...args); TestDriver.nextTheme = null; return result; } ]; darkStory.play = story.play; return darkStory; }; ================================================ FILE: WebAssets/src/testing/storybook/test-driver-story.ts ================================================ import type { Story } from '@storybook/html'; import type { TestDriver } from '../test-driver-storybook'; // https://github.com/microsoft/TypeScript/issues/49656#issuecomment-1164655820 type BetterOmit = { [P in keyof T as Exclude]: T[P] } & (T extends ((...args: infer TArgs) => infer TResult) ? (...args: TArgs) => TResult : object); type PlayFunction = NonNullable; export type TestDriverStory = BetterOmit & { play?: (args: BetterOmit[0], 'loaded'> & { loaded: { driver: TestDriver }; }) => Promise }; export const testDriverStory = (asyncStory: () => Promise) => { const story: Story = (_: unknown, { loaded: { driver } }) => { return (driver as TestDriver).mirrorsharp.getRootElement(); }; story.loaders = [ async () => ({ driver: await asyncStory() }) ]; return story as TestDriverStory; }; ================================================ FILE: WebAssets/src/testing/test-driver-base.ts ================================================ import { EditorState, Transaction, TransactionSpec } from '@codemirror/state'; import type { EditorView } from '@codemirror/view'; import mirrorsharp, { MirrorSharpOptions, MirrorSharpInstance } from '../mirrorsharp'; import { installMockSocket, MockSocket, MockSocketController } from './shared/mock-socket'; import { TestReceiver } from './shared/test-receiver'; export type TestDriverOptions = (object | { text: string; cursorOffset?: number } | { textWithCursor: string }) & { skipSocketOpen?: boolean; } & Omit>, 'text' | 'cursorOffset'>; export type TestDriverTimers = { runOnlyPendingTimers(): void; advanceTimersByTime(ms: number): void; advanceTimersToNextTimer(): void; setSystemTime(now?: number | Date): void; }; let timers: TestDriverTimers; export const setTimers = (value: TestDriverTimers) => timers = value; export class TestDriverBase { public readonly socket: MockSocketController; public readonly mirrorsharp: MirrorSharpInstance; public readonly receive: TestReceiver; public codeMirrorTransactions: Array = []; readonly #cmView: EditorView; protected constructor( socket: MockSocketController, mirrorsharp: MirrorSharpInstance ) { const cmView = mirrorsharp.getCodeMirrorView(); this.socket = socket; this.#cmView = cmView; this.mirrorsharp = mirrorsharp; this.receive = new TestReceiver(socket); } getCodeMirrorView() { return this.#cmView; } getTextWithCursor() { const text = this.mirrorsharp.getText(); const cursor = this.mirrorsharp.getCursorOffset(); return text.slice(0, cursor) + '|' + text.slice(cursor); } setTextWithCursor(value: string) { const { text, cursorOffset } = parseTextWithCursor(value); this.dispatchCodeMirrorTransaction({ changes: [{ from: 0, to: this.#cmView.state.doc.length, insert: text }], selection: { anchor: cursorOffset } }); } dispatchCodeMirrorTransaction(...specs: ReadonlyArray) { this.#cmView.dispatch(...specs); } async completeBackgroundWork() { timers.runOnlyPendingTimers(); await new Promise(resolve => resolve()); timers.runOnlyPendingTimers(); } async completeBackgroundWorkAfterEach(...actions: ReadonlyArray<() => void>) { for (const action of actions) { action(); await this.completeBackgroundWork(); } } async advanceTimeToHoverAndCompleteWork() { timers.advanceTimersByTime(500); await this.completeBackgroundWork(); } async advanceTimeToSlowUpdateAndCompleteWork() { timers.advanceTimersByTime(1000); timers.advanceTimersToNextTimer(); await this.completeBackgroundWork(); } async ensureCompletionIsReadyForInteraction() { await this.completeBackgroundWork(); timers.advanceTimersByTime(100); } protected static newMockSocket(): MockSocket { return new MockSocket(); } static async new( options: TestDriverOptions ) { // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (!timers) throw new Error('setTimers must be called before TestDriver instances can be created.'); const { skipSocketOpen, ...mirrorsharpOptions } = normalizeOptions(options); const container = document.createElement('div'); document.body.appendChild(container); const socket = this.newMockSocket(); installMockSocket(socket, { manualOpen: skipSocketOpen }); const extensions = [ ...(mirrorsharpOptions.codeMirror?.extensions ?? []), EditorState.transactionFilter.of(t => { driver.codeMirrorTransactions.push(t); return t; }) ]; const ms = mirrorsharp(container, { ...mirrorsharpOptions, codeMirror: { ...(mirrorsharpOptions.codeMirror ?? {}), extensions }, // eslint-disable-next-line @typescript-eslint/no-non-null-assertion serviceUrl: null! }); const driver = new this(socket.mock, ms); if (skipSocketOpen) return driver; await driver.completeBackgroundWork(); timers.runOnlyPendingTimers(); driver.socket.sent = []; return driver; } } const normalizeOptions = (options: TestDriverOptions) => { if ('textWithCursor' in options) { const { textWithCursor, ...rest } = options; const { text, cursorOffset } = parseTextWithCursor(textWithCursor); return { ...rest, text, cursorOffset }; } return options; }; const parseTextWithCursor = (value: string) => ({ text: value.replace('|', ''), cursorOffset: value.indexOf('|') }); export type TestDriverConstructorArguments = [ MockSocketController, MirrorSharpInstance ]; ================================================ FILE: WebAssets/src/testing/test-driver-jest.ts ================================================ import { TestDomEvents } from './jest/test-dom-events'; import { TestText } from './jest/test-text'; import { TestDriverBase, TestDriverConstructorArguments, TestDriverOptions, setTimers } from './test-driver-base'; (() => { // clean JSDOM between tests const emptyHTML = document.body.innerHTML; afterEach(() => document.body.innerHTML = emptyHTML); })(); Range.prototype.getBoundingClientRect = () => ({}) as unknown as DOMRect; Range.prototype.getClientRects = () => [{}] as unknown as DOMRectList; export const timers = setTimers(jest); export class TestDriver extends TestDriverBase // eslint-disable-next-line @typescript-eslint/brace-style { public readonly text: TestText; public readonly domEvents: TestDomEvents; private constructor(...args: TestDriverConstructorArguments) { super(...args); const cmView = this.getCodeMirrorView(); this.text = new TestText(cmView); this.domEvents = new TestDomEvents(cmView); } static override async new( options: TestDriverOptions ) { return (await super.new(options)) as TestDriver; } } let savedWebSocket: (typeof globalThis.WebSocket)|undefined; beforeEach(() => { savedWebSocket = globalThis.WebSocket; }); afterEach(() => { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion globalThis.WebSocket = savedWebSocket!; }); ================================================ FILE: WebAssets/src/testing/test-driver-storybook.ts ================================================ import type { Theme } from '../main/theme'; import { timers } from './storybook/browser-fake-timers'; import { MockSocketWithActionLog } from './storybook/mock-socket-with-action-log'; import { setTimers, TestDriverBase, TestDriverConstructorArguments, TestDriverOptions } from './test-driver-base'; setTimers(timers); export class TestDriver extends TestDriverBase { static nextTheme?: Theme | null; #windowListenersToRemoveWhenDisablingEvents = [] as Array<{ type: string; listener: EventListenerOrEventListenerObject; }>; private constructor(...args: TestDriverConstructorArguments) { super(...args); const savedAddEventListener = window.addEventListener; window.addEventListener = (...args: Parameters) => { const [type, listener] = args; savedAddEventListener(...args); this.#windowListenersToRemoveWhenDisablingEvents.push({ type, listener }); }; } protected static override newMockSocket() { return new MockSocketWithActionLog(); } static override async new( options: TestDriverOptions ) { if (this.nextTheme) { if (options.theme) throw new Error('Cannot have both options.theme and nextTheme set'); options = { ...options, theme: this.nextTheme }; } return await super.new(options) as TestDriver; } disableAllFurtherInteractionEvents() { this.getCodeMirrorView().dom.style.pointerEvents = 'none'; for (const { type, listener } of this.#windowListenersToRemoveWhenDisablingEvents) { window.removeEventListener(type, listener); } } } ================================================ FILE: WebAssets/src/tsconfig.build.json ================================================ { "extends": "./tsconfig.json", "include": [], "files": [ "mirrorsharp.ts" ], "compilerOptions": { "module": "ES2015", "noEmit": false, "declaration": true } } ================================================ FILE: WebAssets/src/tsconfig.json ================================================ { "include": [ "." ], "compilerOptions": { "target": "ESNext", "moduleResolution": "node", "esModuleInterop": true, "allowSyntheticDefaultImports": true, "strict": true, "importsNotUsedAsValues": "error", "noImplicitOverride": true, "noImplicitReturns": true, "noPropertyAccessFromIndexSignature": true, "noUncheckedIndexedAccess": true, "noEmit": true, } } ================================================ FILE: WebAssets/src/tsconfig.storybook.json ================================================ { "extends": "./tsconfig.json", "include": [], "files": [ "mirrorsharp.ts" ], "compilerOptions": { "noEmit": false } } ================================================ FILE: WebAssets/tsconfig.json ================================================ { "include": [ "build.ts", "build" ], "compilerOptions": { "target": "ESNext", "moduleResolution": "node", "module": "ES2022", "esModuleInterop": true, "allowSyntheticDefaultImports": true, "strict": true, "noImplicitOverride": true, "importsNotUsedAsValues": "error", "noImplicitReturns": true, "noPropertyAccessFromIndexSignature": true, "noUncheckedIndexedAccess": true, "noEmit": true } } ================================================ FILE: ms.bat ================================================ @powershell -File "#scripts/%1.ps1" %2 %3 %4 %5 ================================================ FILE: tye.yaml ================================================ name: mirrorsharp services: - name: webassets executable: pwsh args: -Command "npm run watch" workingDirectory: WebAssets - name: aspnetcore-demo-assets executable: pwsh args: -Command "npm run watch" workingDirectory: AspNetCore.Demo.Net6 - name: aspnetcore-demo-dotnet project: AspNetCore.Demo.Net6/AspNetCore.Demo.Net6.csproj bindings: - protocol: http