main funcions fixes
This commit is contained in:
3
desktop-operator/node_modules/node-gyp/test/common.js
generated
vendored
Normal file
3
desktop-operator/node_modules/node-gyp/test/common.js
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
const envPaths = require('env-paths')
|
||||
|
||||
module.exports.devDir = () => envPaths('node-gyp', { suffix: '' }).cache
|
||||
1
desktop-operator/node_modules/node-gyp/test/fixtures/VS_2017_BuildTools_minimal.txt
generated
vendored
Normal file
1
desktop-operator/node_modules/node-gyp/test/fixtures/VS_2017_BuildTools_minimal.txt
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
desktop-operator/node_modules/node-gyp/test/fixtures/VS_2017_Community_workload.txt
generated
vendored
Normal file
1
desktop-operator/node_modules/node-gyp/test/fixtures/VS_2017_Community_workload.txt
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
desktop-operator/node_modules/node-gyp/test/fixtures/VS_2017_Express.txt
generated
vendored
Normal file
1
desktop-operator/node_modules/node-gyp/test/fixtures/VS_2017_Express.txt
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
desktop-operator/node_modules/node-gyp/test/fixtures/VS_2017_Unusable.txt
generated
vendored
Normal file
1
desktop-operator/node_modules/node-gyp/test/fixtures/VS_2017_Unusable.txt
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
[{"path":"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildToolsUnusable","version":"15.9.28307.665","packages":["Microsoft.VisualStudio.Product.BuildTools","Microsoft.VisualStudio.Component.Windows10SDK.17134","Win10SDK_10.0.17134","Microsoft.VisualStudio.Component.VC.Tools.x86.x64","Microsoft.VisualCpp.CodeAnalysis.Extensions","Microsoft.VisualCpp.CodeAnalysis.Extensions.X86","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X86","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X86.Resources","Microsoft.VisualCpp.CodeAnalysis.Extensions.X64","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X64","Microsoft.VisualCpp.CodeAnalysis.ConcurrencyCheck.X64.Resources","Microsoft.VisualStudio.Component.Static.Analysis.Tools","Microsoft.VisualStudio.StaticAnalysis","Microsoft.VisualStudio.StaticAnalysis.Resources","Microsoft.VisualCpp.Tools.HostX64.TargetX86","Microsoft.VisualCpp.VCTip.HostX64.TargetX86","Microsoft.VisualCpp.Tools.HostX64.TargetX86.Resources","Microsoft.VisualCpp.Tools.HostX64.TargetX64","Microsoft.VisualCpp.VCTip.HostX64.TargetX64","Microsoft.VisualCpp.Tools.HostX64.TargetX64.Resources","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX64","Microsoft.VisualCpp.Premium.Tools.Hostx86.Targetx64.Resources","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX86","Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX86.Resources","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX86","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX86.Resources","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX64","Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX64.Resources","Microsoft.VisualCpp.PGO.X86","Microsoft.VisualCpp.PGO.X64","Microsoft.VisualCpp.PGO.Headers","Microsoft.VisualCpp.CRT.x86.Store","Microsoft.VisualCpp.CRT.x86.OneCore.Desktop","Microsoft.VisualCpp.CRT.x64.Store","Microsoft.VisualCpp.CRT.x64.OneCore.Desktop","Microsoft.VisualCpp.CRT.Redist.x86.OneCore.Desktop","Microsoft.VisualCpp.CRT.Redist.x64.OneCore.Desktop","Microsoft.VisualCpp.CRT.ClickOnce.Msi","Microsoft.VisualStudio.PackageGroup.VC.Tools.x86","Microsoft.VisualCpp.Tools.HostX86.TargetX64","Microsoft.VisualCpp.VCTip.hostX86.targetX64","Microsoft.VisualCpp.Tools.Hostx86.Targetx64.Resources","Microsoft.VisualCpp.Tools.HostX86.TargetX86","Microsoft.VisualCpp.VCTip.hostX86.targetX86","Microsoft.VisualCpp.Tools.HostX86.TargetX86.Resources","Microsoft.VisualCpp.Tools.Core.Resources","Microsoft.VisualCpp.Tools.Core.x86","Microsoft.VisualCpp.Tools.Common.Utils","Microsoft.VisualCpp.Tools.Common.Utils.Resources","Microsoft.VisualCpp.DIA.SDK","Microsoft.VisualCpp.CRT.x86.Desktop","Microsoft.VisualCpp.CRT.x64.Desktop","Microsoft.VisualCpp.CRT.Source","Microsoft.VisualCpp.CRT.Redist.X86","Microsoft.VisualCpp.CRT.Redist.X64","Microsoft.VisualCpp.CRT.Redist.Resources","Microsoft.VisualCpp.RuntimeDebug.14","Microsoft.VisualCpp.RuntimeDebug.14","Microsoft.VisualCpp.Redist.14","Microsoft.VisualCpp.Redist.14","Microsoft.VisualCpp.CRT.Headers","Microsoft.VisualStudio.Workload.MSBuildTools","Microsoft.VisualStudio.Component.CoreBuildTools","Microsoft.VisualStudio.Setup.Configuration","Microsoft.VisualStudio.PackageGroup.VsDevCmd","Microsoft.VisualStudio.VsDevCmd.Ext.NetFxSdk","Microsoft.VisualStudio.VsDevCmd.Core.WinSdk","Microsoft.VisualStudio.VsDevCmd.Core.DotNet","Microsoft.VisualStudio.VC.DevCmd","Microsoft.VisualStudio.VC.DevCmd.Resources","Microsoft.VisualStudio.BuildTools.Resources","Microsoft.VisualStudio.Net.Eula.Resources","Microsoft.Build.Dependencies","Microsoft.Build.FileTracker.Msi","Microsoft.Component.MSBuild","Microsoft.PythonTools.BuildCore.Vsix","Microsoft.NuGet.Build.Tasks","Microsoft.VisualStudio.Component.Roslyn.Compiler","Microsoft.CodeAnalysis.Compilers.Resources","Microsoft.CodeAnalysis.Compilers","Microsoft.Net.PackageGroup.4.6.1.Redist","Microsoft.Net.4.6.1.FullRedist.NonThreshold","Microsoft.Windows.UniversalCRT.Msu.81","Microsoft.VisualStudio.NativeImageSupport","Microsoft.Build"]}]
|
||||
1
desktop-operator/node_modules/node-gyp/test/fixtures/VS_2019_BuildTools_minimal.txt
generated
vendored
Normal file
1
desktop-operator/node_modules/node-gyp/test/fixtures/VS_2019_BuildTools_minimal.txt
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
desktop-operator/node_modules/node-gyp/test/fixtures/VS_2019_Community_workload.txt
generated
vendored
Normal file
1
desktop-operator/node_modules/node-gyp/test/fixtures/VS_2019_Community_workload.txt
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
1
desktop-operator/node_modules/node-gyp/test/fixtures/VS_2019_Preview.txt
generated
vendored
Normal file
1
desktop-operator/node_modules/node-gyp/test/fixtures/VS_2019_Preview.txt
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
569
desktop-operator/node_modules/node-gyp/test/fixtures/VS_2022_Community_workload.txt
generated
vendored
Normal file
569
desktop-operator/node_modules/node-gyp/test/fixtures/VS_2022_Community_workload.txt
generated
vendored
Normal file
@@ -0,0 +1,569 @@
|
||||
[
|
||||
{
|
||||
"path": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community",
|
||||
"version": "17.4.33213.308",
|
||||
"packages": [
|
||||
"Microsoft.VisualStudio.Product.Community",
|
||||
"Microsoft.VisualStudio.PackageGroup.LiveShare.VSCore",
|
||||
"Microsoft.VisualStudio.LiveShare.VSCore",
|
||||
"Microsoft.VisualStudio.Workload.NativeDesktop",
|
||||
"Microsoft.VisualStudio.Component.VC.ASAN",
|
||||
"Microsoft.VisualCpp.ASAN.X86",
|
||||
"Microsoft.VC.14.34.17.4.ASAN.X86.base",
|
||||
"Microsoft.VC.14.34.17.4.ASAN.X64.base",
|
||||
"Microsoft.VC.14.34.17.4.ASAN.Headers.base",
|
||||
"Microsoft.VisualStudio.VC.IDE.Project.Factories",
|
||||
"Microsoft.VisualStudio.Component.VC.TestAdapterForGoogleTest",
|
||||
"Microsoft.VisualStudio.VC.Ide.TestAdapterForGoogleTest",
|
||||
"Microsoft.VisualStudio.Component.VC.TestAdapterForBoostTest",
|
||||
"Microsoft.VisualStudio.VC.Ide.TestAdapterForBoostTest",
|
||||
"Microsoft.VisualStudio.Component.VC.CMake.Project",
|
||||
"Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions.CMake",
|
||||
"Microsoft.VisualStudio.VC.CMake",
|
||||
"Microsoft.VisualStudio.VC.CMake.Project",
|
||||
"Microsoft.VisualStudio.VC.CMake.Client",
|
||||
"Microsoft.VisualStudio.VC.ExternalBuildFramework",
|
||||
"Microsoft.VisualStudio.Component.VC.DiagnosticTools",
|
||||
"Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core",
|
||||
"Microsoft.VisualStudio.PackageGroup.TestTools.Native",
|
||||
"Microsoft.VisualStudio.Component.VC.Redist.14.Latest",
|
||||
"Microsoft.VisualStudio.VC.Templates.UnitTest",
|
||||
"Microsoft.VisualStudio.VC.UnitTest.Desktop.Build.Core",
|
||||
"Microsoft.VisualStudio.TestTools.TestPlatform.V1.CPP",
|
||||
"Microsoft.VisualStudio.VC.Templates.UnitTest.Resources",
|
||||
"Microsoft.VisualStudio.VC.Templates.Desktop",
|
||||
"Microsoft.VisualStudio.Component.Graphics",
|
||||
"Microsoft.VisualStudio.Graphics.Viewers",
|
||||
"Microsoft.VisualStudio.Graphics.Viewers.Resources",
|
||||
"Microsoft.VisualStudio.Component.VC.ATL.ARM64",
|
||||
"Microsoft.VisualCpp.ATL.ARM64",
|
||||
"Microsoft.VC.14.34.17.4.ATL.ARM64.base",
|
||||
"Microsoft.VisualStudio.Component.VC.ATL",
|
||||
"Microsoft.VisualStudio.VC.Ide.ATL",
|
||||
"Microsoft.VisualStudio.VC.Ide.ATL.Resources",
|
||||
"Microsoft.VisualCpp.ATL.X86",
|
||||
"Microsoft.VC.14.34.17.4.ATL.X86.base",
|
||||
"Microsoft.VisualCpp.ATL.X64",
|
||||
"Microsoft.VC.14.34.17.4.ATL.X64.base",
|
||||
"Microsoft.VC.14.34.17.4.Props.ATLMFC",
|
||||
"Microsoft.VisualCpp.ATL.Source",
|
||||
"Microsoft.VC.14.34.17.4.ATL.Source.base",
|
||||
"Microsoft.VisualCpp.ATL.Headers",
|
||||
"Microsoft.VC.14.34.17.4.ATL.Headers.base",
|
||||
"Microsoft.VC.14.34.17.4.Servicing.ATL",
|
||||
"Microsoft.VisualStudio.Component.VC.Tools.ARM64",
|
||||
"Microsoft.VisualStudio.VC.MSBuild.v170.ARM64.v143",
|
||||
"Microsoft.VisualStudio.VC.MSBuild.v170.ARM64",
|
||||
"Microsoft.VS.VC.vcvars.arm64.Shortcuts",
|
||||
"Microsoft.VisualCpp.CA.Ext.Hostx64.TargetARM64",
|
||||
"Microsoft.VC.14.34.17.4.CA.Ext.Hostx64.TargetARM64.base",
|
||||
"Microsoft.VC.14.34.17.4.CA.Ext.Hostx64.TargetARM64.Res.base",
|
||||
"Microsoft.VisualCpp.CA.Ext.Hostx86.TargetARM64",
|
||||
"Microsoft.VC.14.34.17.4.CA.Ext.Hostx86.TargetARM64.base",
|
||||
"Microsoft.VC.14.34.17.4.CA.Ext.Hostx86.TargetARM64.Res.base",
|
||||
"Microsoft.VisualCpp.CA.Ext.HostARM64.TargetARM64",
|
||||
"Microsoft.VC.14.34.17.4.CA.Ext.HostARM64.TargetARM64.base",
|
||||
"Microsoft.VC.14.34.17.4.CA.Ext.HostARM64.TargetARM64.Res.base",
|
||||
"Microsoft.VisualCpp.Tools.Hostx86.Targetarm64",
|
||||
"Microsoft.VC.14.34.17.4.Tools.Hostx86.Targetarm64.base",
|
||||
"Microsoft.VC.14.34.17.4.Tools.HostX86.TargetARM64.Res.base",
|
||||
"Microsoft.VisualCpp.Tools.HostARM64.TargetARM64",
|
||||
"Microsoft.VC.14.34.17.4.Tools.HostARM64.TargetARM64.base",
|
||||
"Microsoft.VC.14.34.17.4.Tools.HostARM64.TargetARM64.Res.base",
|
||||
"Microsoft.VisualCpp.CRT.Redist.ARM64.OneCore.Desktop",
|
||||
"Microsoft.VC.14.34.17.4.CRT.Redist.ARM64.OneCore.Desktop.base",
|
||||
"Microsoft.VisualCpp.CRT.Redist.ARM64",
|
||||
"Microsoft.VC.14.34.17.4.CRT.Redist.ARM64.base",
|
||||
"Microsoft.VisualCpp.CRT.ARM64.OneCore.Desktop",
|
||||
"Microsoft.VC.14.34.17.4.CRT.ARM64.OneCore.Desktop.base",
|
||||
"Microsoft.VC.14.34.17.4.CRT.ARM64.OneCore.Desktop.debug.base",
|
||||
"Microsoft.VisualCpp.CRT.ARM64.Store",
|
||||
"Microsoft.VC.14.34.17.4.CRT.ARM64.Store.base",
|
||||
"Microsoft.VisualCpp.CRT.ARM64.Desktop",
|
||||
"Microsoft.VC.14.34.17.4.CRT.ARM64.Desktop.base",
|
||||
"Microsoft.VC.14.34.17.4.CRT.ARM64.Desktop.debug.base",
|
||||
"Microsoft.VisualStudio.PackageGroup.VC.Tools.x64.ARM64",
|
||||
"Microsoft.VisualCpp.Tools.Core",
|
||||
"Microsoft.VisualCpp.PGO.ARM64",
|
||||
"Microsoft.VC.14.34.17.4.PGO.ARM64.base",
|
||||
"Microsoft.VisualCpp.Premium.Tools.Hostx86.Targetarm64",
|
||||
"Microsoft.VC.14.34.17.4.Premium.Tools.Hostx86.Targetarm64.base",
|
||||
"Microsoft.VC.14.34.17.4.Prem.HostX86.TargetARM64.Res.base",
|
||||
"Microsoft.VisualCpp.Premium.Tools.HostX64.TargetARM64",
|
||||
"Microsoft.VC.14.34.17.4.Premium.Tools.HostX64.TargetARM64.base",
|
||||
"Microsoft.VC.14.34.17.4.Prem.HostX64.TargetARM64.Res.base",
|
||||
"Microsoft.VisualCpp.Premium.Tools.ARM64.Base",
|
||||
"Microsoft.VC.14.34.17.4.Premium.Tools.ARM64.Base.base",
|
||||
"Microsoft.VisualCpp.Tools.HostX64.TargetARM64",
|
||||
"Microsoft.VC.14.34.17.4.Tools.HostX64.TargetARM64.base",
|
||||
"Microsoft.VC.14.34.17.4.Props.ARM64",
|
||||
"Microsoft.VC.14.34.17.4.Tools.HostX64.TargetARM64.Res.base",
|
||||
"Microsoft.VisualStudio.Component.VC.Tools.ARM64EC",
|
||||
"Microsoft.VisualStudio.Component.Windows11SDK.22621",
|
||||
"Win11SDK_10.0.22621",
|
||||
"Microsoft.VisualStudio.VC.MSBuild.v170.ARM64EC.v143",
|
||||
"Microsoft.VisualStudio.VC.MSBuild.v170.ARM64EC",
|
||||
"Microsoft.VisualCpp.CRT.ARM64EC.Store",
|
||||
"Microsoft.VC.14.34.17.4.CRT.ARM64EC.Store.base",
|
||||
"Microsoft.VisualStudio.Component.VC.Tools.x86.x64",
|
||||
"Microsoft.VisualCpp.CodeAnalysis.Extensions",
|
||||
"Microsoft.VisualCpp.CA.Ext.HostARM64.Targetx64",
|
||||
"Microsoft.VC.14.34.17.4.CA.Ext.HostARM64.Targetx64.base",
|
||||
"Microsoft.VC.14.34.17.4.CA.Ext.HostARM64.Targetx64.Res.base",
|
||||
"Microsoft.VisualCpp.CA.Ext.HostARM64.Targetx86",
|
||||
"Microsoft.VC.14.34.17.4.CA.Ext.HostARM64.Targetx86.base",
|
||||
"Microsoft.VC.14.34.17.4.CA.Ext.HostARM64.Targetx86.Res.base",
|
||||
"Microsoft.VisualCpp.CA.Ext.Hostx86.Targetx64",
|
||||
"Microsoft.VC.14.34.17.4.CA.Ext.Hostx86.Targetx64.base",
|
||||
"Microsoft.VC.14.34.17.4.CA.Ext.Hostx86.Targetx64.Res.base",
|
||||
"Microsoft.VisualCpp.CA.Ext.Hostx86.Targetx86",
|
||||
"Microsoft.VC.14.34.17.4.CA.Ext.Hostx86.Targetx86.base",
|
||||
"Microsoft.VC.14.34.17.4.CA.Ext.Hostx86.Targetx86.Res.base",
|
||||
"Microsoft.VisualCpp.CA.Ext.Hostx64.Targetx64",
|
||||
"Microsoft.VC.14.34.17.4.CA.Ext.Hostx64.Targetx64.base",
|
||||
"Microsoft.VC.14.34.17.4.CA.Ext.Hostx64.Targetx64.Res.base",
|
||||
"Microsoft.VisualCpp.CA.Ext.Hostx64.Targetx86",
|
||||
"Microsoft.VC.14.34.17.4.CA.Ext.Hostx64.Targetx86.base",
|
||||
"Microsoft.VC.14.34.17.4.Servicing.CAExtensions",
|
||||
"Microsoft.VC.14.34.17.4.CA.Ext.Hostx64.Targetx86.Res.base",
|
||||
"Microsoft.VisualCpp.Tools.HostX64.TargetX86",
|
||||
"Microsoft.VC.14.34.17.4.Tools.HostX64.TargetX86.base",
|
||||
"Microsoft.VC.14.34.17.4.Tools.HostX64.TargetX86.Res.base",
|
||||
"Microsoft.VisualCpp.Tools.HostX64.TargetX64",
|
||||
"Microsoft.VC.14.34.17.4.Tools.HostX64.TargetX64.base",
|
||||
"Microsoft.VC.14.34.17.4.Tools.HostX64.TargetX64.Res.base",
|
||||
"Microsoft.VisualCpp.Tools.HostARM64.TargetX86",
|
||||
"Microsoft.VC.14.34.17.4.Tools.HostARM64.TargetX86.base",
|
||||
"Microsoft.VisualCpp.RuntimeDebug.14",
|
||||
"Microsoft.VC.14.34.17.4.Tools.HostARM64.TargetX86.Res.base",
|
||||
"Microsoft.VisualCpp.Tools.HostARM64.TargetX64",
|
||||
"Microsoft.VC.14.34.17.4.Tools.HostARM64.TargetX64.base",
|
||||
"Microsoft.VisualCpp.RuntimeDebug.14.ARM64",
|
||||
"Microsoft.VisualCpp.Redist.14.Latest",
|
||||
"Microsoft.VisualCpp.Redist.14.Latest",
|
||||
"Microsoft.VC.14.34.17.4.Tools.HostARM64.Targetx64.Res.base",
|
||||
"Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX64",
|
||||
"Microsoft.VC.14.34.17.4.Premium.Tools.HostX86.TargetX64.base",
|
||||
"Microsoft.VC.14.34.17.4.Prem.Hostx86.Targetx64.Res.base",
|
||||
"Microsoft.VisualCpp.Premium.Tools.HostX86.TargetX86",
|
||||
"Microsoft.VC.14.34.17.4.Premium.Tools.HostX86.TargetX86.base",
|
||||
"Microsoft.VC.14.34.17.4.Prem.HostX86.TargetX86.Res.base",
|
||||
"Microsoft.VisualCpp.Premium.Tools.HostARM64.TargetX86",
|
||||
"Microsoft.VC.14.34.17.4.Premium.Tools.HostARM64.TargetX86.base",
|
||||
"Microsoft.VC.14.34.17.4.Prem.HostARM64.TargetX86.Res.base",
|
||||
"Microsoft.VisualCpp.Premium.Tools.HostARM64.TargetX64",
|
||||
"Microsoft.VC.14.34.17.4.Premium.Tools.HostARM64.TargetX64.base",
|
||||
"Microsoft.VC.14.34.17.4.Prem.HostARM64.Targetx64.Res.base",
|
||||
"Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX86",
|
||||
"Microsoft.VC.14.34.17.4.Premium.Tools.HostX64.TargetX86.base",
|
||||
"Microsoft.VC.14.34.17.4.Prem.HostX64.TargetX86.Res.base",
|
||||
"Microsoft.VisualCpp.Premium.Tools.HostX64.TargetX64",
|
||||
"Microsoft.VC.14.34.17.4.Premium.Tools.HostX64.TargetX64.base",
|
||||
"Microsoft.VC.14.34.17.4.Prem.HostX64.TargetX64.Res.base",
|
||||
"Microsoft.VisualCpp.PGO.X86",
|
||||
"Microsoft.VC.14.34.17.4.PGO.X86.base",
|
||||
"Microsoft.VisualCpp.PGO.X64",
|
||||
"Microsoft.VC.14.34.17.4.PGO.X64.base",
|
||||
"Microsoft.VisualCpp.PGO.Headers",
|
||||
"Microsoft.VC.14.34.17.4.PGO.Headers.base",
|
||||
"Microsoft.VisualCpp.CRT.x86.Store",
|
||||
"Microsoft.VC.14.34.17.4.CRT.x86.Store.base",
|
||||
"Microsoft.VisualCpp.CRT.x86.OneCore.Desktop",
|
||||
"Microsoft.VC.14.34.17.4.CRT.x86.OneCore.Desktop.base",
|
||||
"Microsoft.VisualCpp.CRT.x64.Store",
|
||||
"Microsoft.VC.14.34.17.4.CRT.x64.Store.base",
|
||||
"Microsoft.VisualCpp.CRT.x64.OneCore.Desktop",
|
||||
"Microsoft.VC.14.34.17.4.CRT.x64.OneCore.Desktop.base",
|
||||
"Microsoft.VisualCpp.CRT.Redist.x86.OneCore.Desktop",
|
||||
"Microsoft.VC.14.34.17.4.CRT.Redist.x86.OneCore.Desktop.base",
|
||||
"Microsoft.VisualCpp.CRT.Redist.x64.OneCore.Desktop",
|
||||
"Microsoft.VC.14.34.17.4.CRT.Redist.x64.OneCore.Desktop.base",
|
||||
"Microsoft.VisualStudio.PackageGroup.VC.Tools.x86",
|
||||
"Microsoft.VisualCpp.Tools.Hostx86.Targetx64.Res",
|
||||
"Microsoft.VisualCpp.Tools.HostX86.TargetX64",
|
||||
"Microsoft.VC.14.34.17.4.Tools.HostX86.TargetX64.base",
|
||||
"Microsoft.VC.14.34.17.4.Props.x64",
|
||||
"Microsoft.VC.14.34.17.4.Tools.Hostx86.Targetx64.Res.base",
|
||||
"Microsoft.VisualCpp.Tools.HostX86.TargetX86.Res",
|
||||
"Microsoft.VisualCpp.Tools.HostX86.TargetX86",
|
||||
"Microsoft.VC.14.34.17.4.Tools.HostX86.TargetX86.base",
|
||||
"Microsoft.VC.14.34.17.4.Servicing.Compilers",
|
||||
"Microsoft.VC.14.34.17.4.Props.x86",
|
||||
"Microsoft.VC.14.34.17.4.Props",
|
||||
"Microsoft.VC.14.34.17.4.Tools.HostX86.TargetX86.Res.base",
|
||||
"Microsoft.VisualCpp.Tools.Core.Resources",
|
||||
"Microsoft.VisualCpp.Tools.Core.x86",
|
||||
"Microsoft.VC.14.34.17.4.Tools.Core.Props",
|
||||
"Microsoft.VisualCpp.DIA.SDK",
|
||||
"Microsoft.VisualCpp.Servicing.DIASDK",
|
||||
"Microsoft.VisualCpp.CRT.x86.Desktop",
|
||||
"Microsoft.VC.14.34.17.4.CRT.x86.Desktop.base",
|
||||
"Microsoft.VisualCpp.CRT.x64.Desktop",
|
||||
"Microsoft.VC.14.34.17.4.CRT.x64.Desktop.base",
|
||||
"Microsoft.VisualCpp.CRT.Source",
|
||||
"Microsoft.VC.14.34.17.4.CRT.Source.base",
|
||||
"Microsoft.VisualCpp.CRT.Redist.X86",
|
||||
"Microsoft.VC.14.34.17.4.CRT.Redist.X86.base",
|
||||
"Microsoft.VisualCpp.CRT.Redist.X64",
|
||||
"Microsoft.VisualCpp.CRT.Redist.Resources",
|
||||
"Microsoft.VC.14.34.17.4.CRT.Redist.X64.base",
|
||||
"Microsoft.VisualCpp.CRT.Headers",
|
||||
"Microsoft.VC.14.34.17.4.CRT.Headers.base",
|
||||
"Microsoft.VC.14.34.17.4.Servicing.CrtHeaders",
|
||||
"Microsoft.VC.14.34.17.4.Servicing",
|
||||
"Microsoft.VisualStudio.Component.VC.CoreIde",
|
||||
"Microsoft.VisualStudio.VC.Ide.Pro",
|
||||
"Microsoft.VisualStudio.VC.Ide.Pro.Resources",
|
||||
"Microsoft.VisualStudio.VC.Templates.General",
|
||||
"Microsoft.VisualStudio.VC.Templates.General.Resources",
|
||||
"Microsoft.VisualStudio.VC.Items.Pro",
|
||||
"Microsoft.VisualStudio.PackageGroup.VC.CoreIDE.Reduced",
|
||||
"Microsoft.VisualStudio.VC.Ide.x64",
|
||||
"Microsoft.VisualStudio.PackageGroup.VC.CoreIDE.Express",
|
||||
"Microsoft.VisualStudio.VC.vcvars",
|
||||
"Microsoft.VS.VC.vcvars.x86.Shortcuts",
|
||||
"Microsoft.VS.VC.vcvars.x64.Shortcuts",
|
||||
"Microsoft.VS.VC.vcvars.arm64_x64.Shortcuts",
|
||||
"Microsoft.VisualStudio.VC.MSBuild.v170.X64.v143",
|
||||
"Microsoft.VisualStudio.VC.MSBuild.v170.X64",
|
||||
"Microsoft.VisualStudio.VC.MSBuild.v170.ARM.v143",
|
||||
"Microsoft.VisualStudio.VC.MSBuild.v170.ARM",
|
||||
"Microsoft.VisualStudio.VC.MSBuild.v170.x86.v143",
|
||||
"Microsoft.VisualStudio.VC.MSBuild.v170.X86",
|
||||
"Microsoft.VisualStudio.VC.MSBuild.v170.Base",
|
||||
"Microsoft.VisualStudio.VC.MSBuild.v170.Base.Resources",
|
||||
"Microsoft.VisualStudio.VC.Ide.WinXPlus",
|
||||
"Microsoft.VisualStudio.VC.Ide.Dskx",
|
||||
"Microsoft.VisualStudio.VC.Ide.Dskx.Resources",
|
||||
"Microsoft.VisualStudio.VC.Ide.Base",
|
||||
"Microsoft.VisualStudio.VC.Ide.LanguageService",
|
||||
"Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.Scripts",
|
||||
"Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.PythonDistro",
|
||||
"Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.10",
|
||||
"Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.9",
|
||||
"Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.8",
|
||||
"Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.7",
|
||||
"Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.6",
|
||||
"Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.5",
|
||||
"Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.4",
|
||||
"Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.3",
|
||||
"Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.2",
|
||||
"Microsoft.VisualStudio.VC.Ide.SecurityIssueAnalysis.3rdPartyLibs.1",
|
||||
"Microsoft.VisualStudio.VC.Ide.VCPkgDatabase",
|
||||
"Microsoft.VisualStudio.VC.Ide.Core",
|
||||
"Microsoft.VisualStudio.VC.Ide.ProjectSystem",
|
||||
"Microsoft.VisualStudio.VC.Ide.ProjectSystem.Resources",
|
||||
"Microsoft.VisualStudio.VC.Ide.Core.VCProjectEngine",
|
||||
"Microsoft.VisualStudio.VC.Ide.Core.VCProjectEngine.Resources",
|
||||
"Microsoft.VisualStudio.VC.Ide.LanguageService.Resources",
|
||||
"Microsoft.VisualStudio.VC.Llvm.Base",
|
||||
"Microsoft.VisualStudio.VC.Ide.Base.Resources",
|
||||
"Microsoft.Net.PackageGroup.4.8.1.Redist",
|
||||
"Microsoft.VisualStudio.Component.IntelliCode",
|
||||
"Microsoft.VisualStudio.IntelliCode.CSharp",
|
||||
"Microsoft.VisualStudio.IntelliCode",
|
||||
"Component.Microsoft.VisualStudio.LiveShare.2022",
|
||||
"Microsoft.VisualStudio.Component.Debugger.JustInTime",
|
||||
"Microsoft.VisualStudio.Debugger.ImmersiveActivateHelper.Msi",
|
||||
"Microsoft.VisualStudio.Debugger.JustInTime",
|
||||
"Microsoft.VisualStudio.Debugger.JustInTime.Msi",
|
||||
"Microsoft.VisualStudio.LiveShare.2022",
|
||||
"Microsoft.Icecap.Analysis",
|
||||
"Microsoft.Icecap.Analysis.Resources",
|
||||
"Microsoft.Icecap.Analysis.Resources.Targeted",
|
||||
"Microsoft.Icecap.Collection.Msi",
|
||||
"Microsoft.Icecap.Collection.Msi.Targeted",
|
||||
"Microsoft.Icecap.Collection.Msi.Resources",
|
||||
"Microsoft.Icecap.Collection.Msi.Resources.Targeted",
|
||||
"Microsoft.DiagnosticsHub.Instrumentation",
|
||||
"Microsoft.DiagnosticsHub.Instrumentation.Targeted",
|
||||
"Microsoft.DiagnosticsHub.CpuSampling",
|
||||
"Microsoft.DiagnosticsHub.CpuSampling.Targeted",
|
||||
"Microsoft.PackageGroup.DiagnosticsHub.Platform",
|
||||
"Microsoft.VisualStudio.InstrumentationEngine.ARM64",
|
||||
"Microsoft.VisualStudio.InstrumentationEngine",
|
||||
"Microsoft.DiagnosticsHub.Runtime.ExternalDependencies",
|
||||
"SQLiteCore",
|
||||
"SQLiteCore.Targeted",
|
||||
"Microsoft.DiagnosticsHub.Runtime.ExternalDependencies.Targeted",
|
||||
"Microsoft.DiagnosticsHub.Runtime",
|
||||
"Microsoft.DiagnosticsHub.Runtime.Targeted",
|
||||
"Microsoft.DiagnosticsHub.Collection.ExternalDependencies.arm64",
|
||||
"Microsoft.DiagnosticsHub.Collection",
|
||||
"Microsoft.DiagnosticsHub.Collection.Service",
|
||||
"Microsoft.VisualStudio.VC.Ide.MDD",
|
||||
"Microsoft.VisualStudio.VC.Ide.Linux.ConnectionManager",
|
||||
"Microsoft.VisualStudio.VisualC.Utilities",
|
||||
"Microsoft.VisualStudio.VisualC.Utilities.Resources",
|
||||
"Microsoft.VisualStudio.VC.Ide.Linux.ConnectionManager.Resources",
|
||||
"Microsoft.VisualStudio.VC.Ide.ResourceEditor",
|
||||
"Microsoft.VisualStudio.VC.Ide.ResourceEditor.Resources",
|
||||
"Microsoft.VisualStudio.PackageGroup.TestTools.Core",
|
||||
"Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.V2.CLI",
|
||||
"Microsoft.VisualStudio.TestTools.TestPlatform.V2.CLI",
|
||||
"Microsoft.VisualStudio.TestTools.Pex.Common",
|
||||
"Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.V1.CLI",
|
||||
"Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.Legacy",
|
||||
"Microsoft.VisualStudio.PackageGroup.MinShell.Interop",
|
||||
"Microsoft.VisualStudio.TestTools.TP.Legacy.Tips.Msi",
|
||||
"Microsoft.VisualStudio.TestTools.TP.Legacy.Tips.Common",
|
||||
"Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Tips",
|
||||
"Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Tips.Resources",
|
||||
"Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.TestSettings",
|
||||
"Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Professional",
|
||||
"Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Common",
|
||||
"Microsoft.VisualStudio.TestTools.TP.Legacy.Common.Res",
|
||||
"Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Core",
|
||||
"Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Core.Resources",
|
||||
"Microsoft.VisualStudio.TestTools.TestPlatform.Legacy.Agent",
|
||||
"Microsoft.VisualStudio.PackageGroup.TestTools.TestPlatform.IDE",
|
||||
"Microsoft.VisualStudio.Cache.Service",
|
||||
"Microsoft.VisualStudio.TestTools.TestWIExtension",
|
||||
"Microsoft.VisualStudio.TestTools.TestPlatform.V1.CLI",
|
||||
"Microsoft.VisualStudio.TestTools.TestPlatform.IDE",
|
||||
"Microsoft.VisualStudio.PackageGroup.TestTools.CodeCoverage",
|
||||
"Microsoft.VisualStudio.PackageGroup.TestTools.DataCollectors",
|
||||
"Microsoft.VisualStudio.Component.NuGet",
|
||||
"Microsoft.CredentialProvider",
|
||||
"Microsoft.VisualStudio.NuGet.Licenses",
|
||||
"Microsoft.VisualStudio.Component.TextTemplating",
|
||||
"Microsoft.VisualStudio.TextTemplating.MSBuild",
|
||||
"Microsoft.VisualStudio.TextTemplating.Integration",
|
||||
"Microsoft.VisualStudio.TextTemplating.Core",
|
||||
"Microsoft.VisualStudio.TextTemplating.Integration.Resources",
|
||||
"Microsoft.VisualCpp.CRT.ClickOnce.Msi",
|
||||
"Microsoft.VisualStudio.Component.Roslyn.LanguageServices",
|
||||
"Microsoft.VisualStudio.InteractiveWindow",
|
||||
"Microsoft.DiaSymReader.Native",
|
||||
"Microsoft.VisualCpp.Redist.14",
|
||||
"Microsoft.VisualCpp.Redist.14",
|
||||
"Microsoft.VisualCpp.Servicing.Redist",
|
||||
"Microsoft.VisualStudio.PackageGroup.StaticAnalysis",
|
||||
"Microsoft.VisualStudio.StaticAnalysis.IDE",
|
||||
"Microsoft.VisualStudio.StaticAnalysis.IDE.Resources",
|
||||
"Microsoft.VisualStudio.StaticAnalysis.FxCop.Resources",
|
||||
"Microsoft.VisualStudio.StaticAnalysis.auxil",
|
||||
"Microsoft.VisualStudio.StaticAnalysis.auxil.Resources",
|
||||
"Roslyn.VisualStudio.Setup.ServiceHub",
|
||||
"Microsoft.Component.MSBuild",
|
||||
"Microsoft.NuGet.Build.Tasks.Setup",
|
||||
"Microsoft.VisualStudio.Component.Roslyn.Compiler",
|
||||
"Microsoft.CodeAnalysis.Compilers",
|
||||
"Microsoft.VisualStudio.Component.JavaScript.TypeScript",
|
||||
"Microsoft.VisualStudio.JavaScript.ProjectSystem",
|
||||
"Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions",
|
||||
"Microsoft.VisualStudio.ProTools",
|
||||
"sqlsysclrtypes",
|
||||
"SQLCommon",
|
||||
"Microsoft.VisualStudio.ProTools.Resources",
|
||||
"Microsoft.VisualStudio.Web.Scaffolding",
|
||||
"Microsoft.VisualStudio.WebToolsExtensions",
|
||||
"Microsoft.VisualStudio.ConnectedServices.Core",
|
||||
"Microsoft.VisualStudio.WebTools",
|
||||
"Microsoft.VisualStudio.WebToolsExtensions.MSBuild",
|
||||
"Microsoft.VisualStudio.WebTools.Resources",
|
||||
"Microsoft.VisualStudio.WebTools.WSP.FSA",
|
||||
"Microsoft.VisualStudio.WebTools.WSP.FSA.Resources",
|
||||
"Microsoft.VisualStudio.PackageGroup.Debugger.Script",
|
||||
"Microsoft.VisualStudio.Component.TypeScript.TSServer",
|
||||
"Microsoft.VisualStudio.Package.TypeScript.TSServer",
|
||||
"Microsoft.VisualStudio.PackageGroup.JavaScript.Language",
|
||||
"Microsoft.VisualStudio.Package.NodeJs",
|
||||
"TypeScript.Build",
|
||||
"TypeScript.LanguageService",
|
||||
"TypeScript.Tools",
|
||||
"Microsoft.VisualStudio.PackageGroup.Community",
|
||||
"Microsoft.VisualStudio.Community.VB.x86",
|
||||
"Microsoft.VisualStudio.Community.VB.x64",
|
||||
"Microsoft.VisualStudio.PackageGroup.Core",
|
||||
"Microsoft.VisualStudio.CodeSense.Community",
|
||||
"Microsoft.VisualStudio.TestTools.TeamFoundationClient",
|
||||
"Microsoft.VisualStudio.PackageGroup.Debugger.Core",
|
||||
"Microsoft.VisualStudio.Debugger.BrokeredServices",
|
||||
"Microsoft.VisualStudio.Debugger.VSCodeDebuggerHost",
|
||||
"Microsoft.VisualStudio.Debugger.AzureAttach",
|
||||
"Microsoft.VisualStudio.Web.Azure.Common",
|
||||
"Microsoft.WebTools.Shared",
|
||||
"Microsoft.WebTools.DotNet.Core.ItemTemplates",
|
||||
"Microsoft.VisualStudio.PackageGroup.Debugger.TimeTravel.Replay",
|
||||
"Microsoft.VisualStudio.VC.Ide.Debugger",
|
||||
"Microsoft.VisualStudio.VC.Ide.Debugger.Concord",
|
||||
"Microsoft.VisualStudio.VC.Ide.Debugger.Concord.Resources",
|
||||
"Microsoft.VisualStudio.VC.Ide.Debugger.Resources",
|
||||
"Microsoft.VisualStudio.VC.Ide.Common",
|
||||
"Microsoft.VisualStudio.VC.Ide.Common.Resources",
|
||||
"Microsoft.VisualStudio.Debugger.CollectionAgents",
|
||||
"Microsoft.VisualStudio.Debugger.Parallel",
|
||||
"Microsoft.VisualStudio.Debugger.Parallel.Resources",
|
||||
"Microsoft.VisualStudio.Debugger.Managed",
|
||||
"Microsoft.CodeAnalysis.ExpressionEvaluator",
|
||||
"Microsoft.CodeAnalysis.VisualStudio.Setup",
|
||||
"Microsoft.VisualStudio.Debugger.Concord.Managed",
|
||||
"Microsoft.VisualStudio.Debugger.Concord.Managed.Resources",
|
||||
"Microsoft.VisualStudio.Debugger.Managed.Resources",
|
||||
"Microsoft.VisualStudio.Debugger.TargetComposition",
|
||||
"Microsoft.VisualStudio.Debugger.TargetComposition.Remote.arm64",
|
||||
"Microsoft.VisualStudio.Debugger.TargetComposition.Remote",
|
||||
"Microsoft.VisualStudio.Debugger.TargetComposition.Remote",
|
||||
"Microsoft.VisualStudio.Debugger.Remote",
|
||||
"Microsoft.VisualStudio.Debugger.Concord.Remote",
|
||||
"Microsoft.VisualStudio.Debugger.Concord.Remote.Resources",
|
||||
"Microsoft.VisualStudio.Debugger.Remote",
|
||||
"Microsoft.VisualStudio.Debugger.Remote.ARM64",
|
||||
"Microsoft.VisualStudio.Debugger.Concord.Remote.ARM64",
|
||||
"Microsoft.VisualStudio.Debugger.Concord.Remote.Resources.ARM64",
|
||||
"Microsoft.VisualStudio.Debugger.Remote.ARM",
|
||||
"Microsoft.VisualStudio.Debugger.Concord.Remote.ARM",
|
||||
"Microsoft.VisualStudio.Debugger.Concord.Remote.Resources.ARM",
|
||||
"Microsoft.VisualStudio.Debugger.Remote.Resources.ARM",
|
||||
"Microsoft.VisualStudio.Debugger.Remote.Resources.ARM64",
|
||||
"Microsoft.VisualStudio.Debugger.Concord.Remote",
|
||||
"Microsoft.VisualStudio.Debugger.Concord.Remote.Resources",
|
||||
"Microsoft.VisualStudio.Debugger.Remote.Resources",
|
||||
"Microsoft.VisualStudio.Debugger.Remote.Resources",
|
||||
"Microsoft.VisualStudio.Debugger",
|
||||
"Microsoft.VisualStudio.VC.MSVCDis",
|
||||
"Microsoft.IntelliTrace.DiagnosticsHub",
|
||||
"Microsoft.VisualStudio.Debugger.Concord",
|
||||
"Microsoft.VisualStudio.Debugger.Concord.Resources",
|
||||
"Microsoft.VisualStudio.Debugger.Resources",
|
||||
"Microsoft.VisualStudio.Debugger.Package.DiagHub.Client",
|
||||
"Microsoft.VisualStudio.Debugger.Remote.DiagnosticsHub.Client",
|
||||
"Microsoft.VisualStudio.Debugger.Remote.DiagnosticsHub.Client",
|
||||
"Microsoft.VisualStudio.Debugger.Remote.DiagnosticsHub.Client",
|
||||
"Microsoft.PackageGroup.ClientDiagnostics",
|
||||
"Microsoft.VisualStudio.AppResponsiveness",
|
||||
"Microsoft.VisualStudio.AppResponsiveness.Targeted",
|
||||
"Microsoft.VisualStudio.AppResponsiveness.Resources",
|
||||
"Microsoft.VisualStudio.ClientDiagnostics",
|
||||
"Microsoft.VisualStudio.ClientDiagnostics.Targeted",
|
||||
"Microsoft.VisualStudio.ClientDiagnostics.Resources",
|
||||
"Microsoft.VisualStudio.PackageGroup.CommunityCore",
|
||||
"Microsoft.VisualStudio.ProjectSystem.Full",
|
||||
"Microsoft.VisualStudio.LiveShareApi",
|
||||
"Microsoft.VisualStudio.ProjectSystem.Query",
|
||||
"Microsoft.VisualStudio.ProjectSystem",
|
||||
"Microsoft.VisualStudio.Community.x86",
|
||||
"Microsoft.VisualStudio.Community.x64",
|
||||
"Microsoft.VisualStudio.Community.Msi.Resources",
|
||||
"Microsoft.VisualStudio.Community.Msi",
|
||||
"Microsoft.VisualStudio.Community.Shared.Msi",
|
||||
"Microsoft.VisualStudio.Devenv.Msi",
|
||||
"Microsoft.VisualStudio.Devenv.Shared.Msi",
|
||||
"Microsoft.VisualStudio.MinShell.Interop.Msi",
|
||||
"Microsoft.VisualStudio.MinShell.Interop.Shared.Msi",
|
||||
"Microsoft.VisualStudio.Editors",
|
||||
"Microsoft.VisualStudio.Workload.CoreEditor",
|
||||
"Microsoft.VisualStudio.Component.CoreEditor",
|
||||
"Microsoft.VisualStudio.PackageGroup.CoreEditor",
|
||||
"Microsoft.WebView2",
|
||||
"Microsoft.VisualStudio.ScriptedHost",
|
||||
"Microsoft.VisualStudio.ScriptedHost.Targeted",
|
||||
"Microsoft.VisualCpp.Tools.Common.UtilsPrereq",
|
||||
"Microsoft.VisualCpp.Tools.Common.Utils",
|
||||
"Microsoft.VisualCpp.Tools.Common.Utils.Resources",
|
||||
"Microsoft.VisualStudio.PackageGroup.VsDevCmd",
|
||||
"Microsoft.VisualStudio.VsDevCmd.Ext.NetFxSdk",
|
||||
"Microsoft.VisualStudio.VsDevCmd.Core.WinSdk",
|
||||
"Microsoft.VisualStudio.VsDevCmd.Core.DotNet",
|
||||
"Microsoft.VisualStudio.VC.DevCmd",
|
||||
"Microsoft.VisualStudio.VC.DevCmd.Resources",
|
||||
"Microsoft.VisualStudio.VirtualTree",
|
||||
"Microsoft.DiaSymReader",
|
||||
"Microsoft.Build.Dependencies",
|
||||
"Microsoft.Build.FileTracker.Msi",
|
||||
"Microsoft.Build",
|
||||
"Microsoft.VisualStudio.PackageGroup.NuGet",
|
||||
"Microsoft.DataAI.NuGetRecommender",
|
||||
"Microsoft.VisualStudio.NuGet.Core",
|
||||
"Microsoft.Build.Arm64",
|
||||
"Microsoft.Build.UnGAC",
|
||||
"Microsoft.VisualStudio.TextMateGrammars",
|
||||
"Microsoft.VisualStudio.Platform.Markdown",
|
||||
"Microsoft.VisualStudio.Platform.CrossRepositorySearch",
|
||||
"Microsoft.VisualStudio.PackageGroup.TeamExplorer.Common",
|
||||
"Microsoft.VisualStudio.TeamExplorer",
|
||||
"Microsoft.VisualStudio.PackageGroup.ServiceHub",
|
||||
"Microsoft.ServiceHub.Node",
|
||||
"Microsoft.ServiceHub.Managed",
|
||||
"Microsoft.ServiceHub.arm64",
|
||||
"Microsoft.VisualStudio.ProjectServices",
|
||||
"Microsoft.VisualStudio.OpenFolder.VSIX",
|
||||
"Microsoft.VisualStudio.FileHandler.Msi",
|
||||
"Microsoft.VisualStudio.FileHandler.Msi",
|
||||
"Microsoft.VisualStudio.PackageGroup.MinShell",
|
||||
"Microsoft.VisualStudio.MinShell.Msi",
|
||||
"Microsoft.VisualStudio.MinShell.Shared.Msi",
|
||||
"Microsoft.VisualStudio.MinShell.Msi.Resources",
|
||||
"Microsoft.VisualStudio.MinShell.Interop",
|
||||
"CoreEditorFonts",
|
||||
"Microsoft.VisualStudio.Log",
|
||||
"Microsoft.VisualStudio.Log.Targeted",
|
||||
"Microsoft.VisualStudio.Log.Resources",
|
||||
"Microsoft.VisualStudio.Finalizer",
|
||||
"Microsoft.VisualStudio.Devenv",
|
||||
"Microsoft.VisualStudio.Devenv.Resources",
|
||||
"Microsoft.VisualStudio.CoreEditor",
|
||||
"Microsoft.VisualStudio.Navigation.RichCodeNav",
|
||||
"Microsoft.VisualStudio.Platform.NavigateTo",
|
||||
"Microsoft.VisualStudio.Connected",
|
||||
"SQLitePCLRaw",
|
||||
"SQLitePCLRaw.Targeted",
|
||||
"Microsoft.VisualStudio.Connected.Auto",
|
||||
"Microsoft.VisualStudio.Connected.Auto.Resources",
|
||||
"Microsoft.VisualStudio.AzureSDK",
|
||||
"Microsoft.VisualStudio.PerfLib",
|
||||
"Microsoft.VisualStudio.Connected.Resources",
|
||||
"Microsoft.Net.PackageGroup.4.8.Redist",
|
||||
"Microsoft.VisualStudio.PackageGroup.Progression",
|
||||
"Microsoft.VisualStudio.PerformanceProvider",
|
||||
"Microsoft.VisualStudio.GraphModel",
|
||||
"Microsoft.VisualStudio.GraphProvider",
|
||||
"Microsoft.VisualStudio.Community.VB.Targeted",
|
||||
"Microsoft.VisualStudio.Community.VB.Neutral",
|
||||
"Microsoft.VisualStudio.Community.CSharp.Targeted",
|
||||
"Microsoft.VisualStudio.Community.CSharp.Neutral",
|
||||
"Microsoft.VisualStudio.Community.ProductArch.TargetedExtra",
|
||||
"Microsoft.VisualStudio.Community.ProductArch.Targeted",
|
||||
"Microsoft.VisualStudio.Community.ProductArch.NeutralExtra",
|
||||
"Microsoft.DiaSymReader.PortablePdb",
|
||||
"Microsoft.IntelliTrace.CollectorCab",
|
||||
"Microsoft.VisualStudio.Community.VB.Resources.Targeted",
|
||||
"Microsoft.VisualStudio.Community.VB.Resources.Neutral",
|
||||
"Microsoft.VisualStudio.Community.CSharp.Resources.Targeted",
|
||||
"Microsoft.VisualStudio.Community.CSharp.Resources.Neutral",
|
||||
"Microsoft.VisualStudio.Community.ProductArch.Resources.Targeted",
|
||||
"Microsoft.VisualStudio.Community.ProductArch.Resources.NeutralExtra",
|
||||
"Microsoft.VisualStudio.Net.Eula.Resources",
|
||||
"Microsoft.VisualStudio.Community.ProductArch.Resources.Neutral",
|
||||
"Microsoft.VisualStudio.WebSiteProject.DTE",
|
||||
"Microsoft.VisualStudio.Diagnostics.AspNetHelper",
|
||||
"Microsoft.VisualStudio.Diagnostics.AspNetHelper.Standard",
|
||||
"Microsoft.MSHtml",
|
||||
"Microsoft.VisualStudio.Platform.CallHierarchy",
|
||||
"Microsoft.VisualStudio.Community.ProductArch.Neutral",
|
||||
"Microsoft.VisualStudio.MinShell",
|
||||
"Microsoft.VisualStudio.VsWebProtocolSelector.Msi",
|
||||
"Microsoft.Net.6.WindowsDesktop.Runtime",
|
||||
"Microsoft.Net.6.Runtime",
|
||||
"Microsoft.VisualStudio.PackageGroup.Setup.Common",
|
||||
"Microsoft.VisualStudio.Setup.WMIProvider",
|
||||
"Microsoft.VisualStudio.Setup.Configuration.Interop",
|
||||
"Microsoft.VisualStudio.Setup.Configuration",
|
||||
"Microsoft.VisualStudio.Extensibility.Container",
|
||||
"Microsoft.VisualStudio.LanguageServer",
|
||||
"Microsoft.VisualStudio.Platform.Terminal",
|
||||
"Microsoft.VisualStudio.MefHosting",
|
||||
"Microsoft.VisualStudio.Initializer",
|
||||
"Microsoft.VisualStudio.ExtensionManager",
|
||||
"Microsoft.VisualStudio.Platform.Editor",
|
||||
"Microsoft.VisualStudio.MinShell.Targeted",
|
||||
"Microsoft.VisualStudio.NativeImageSupport",
|
||||
"Microsoft.VisualStudio.Devenv.Config",
|
||||
"Microsoft.VisualStudio.MinShell.Resources.arm64",
|
||||
"Microsoft.VisualStudio.MinShell.Auto",
|
||||
"Microsoft.VisualStudio.MinShell.Auto.Resources",
|
||||
"Microsoft.VisualStudio.Branding.Community"
|
||||
]
|
||||
}
|
||||
]
|
||||
151
desktop-operator/node_modules/node-gyp/test/fixtures/certs.js
generated
vendored
Normal file
151
desktop-operator/node_modules/node-gyp/test/fixtures/certs.js
generated
vendored
Normal file
@@ -0,0 +1,151 @@
|
||||
module.exports['ca.key'] = `
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEowIBAAKCAQEAtTbG0k2UFUyCdZuip0TTEtXRHh57qosegrpHPBreSNTxt7OT
|
||||
KfOUZp2rToTHeN9w0ZbV2eKRI5AuFx8Cmlm73/KIHKzSNTBATGMeeHnGaxvL/W/s
|
||||
KJdTDRNf7/qCXHQ+gsuEWWCFzOZuHmmAQa2IBX2HAQTqXJI8+2iJ9gytFfJLxjqy
|
||||
6O4u9ugZVHSyQJWs49tGRcWMlNm7EMStADFvJn3S11xe/kwIA2mSI/eddDnzL0Mx
|
||||
AkR9dQBL66xOABLL5v3QQdhipfHluX6HLbDd/1YsFTuOpgvLRlr72rTAFrQZCokV
|
||||
hXPiqstn5zJFW5arHakvMR0+OPaICF5feh/4qQIDAQABAoIBAHWg6exnWUF+GY0Y
|
||||
CrwDS/QFASpI5UNt7M809bqJQlMKjyEMmvF3YJQ/soxUWlsWx1f1TjmR/V6VX6W4
|
||||
hmsE5pRXDY13jTfja0lqacQQYAD02TRY63XpzIpHUlYnSWmUN2OVkgKmShQYW9C3
|
||||
8P4xE4Nk2TaLJ0oRzy3uzOb/kXcVaJfknBRUnOhuaTSs+w4l4pPXueYA7xuHgVsL
|
||||
Qq0S4kK+PmdwCMB7gzlAAQhCM3vQ1U4cjC9JIIKSmPy7BcvD0kBfVPIFQ2byGpA1
|
||||
VkWBLSyeig0YxA5oIshK5cLiDIfBIiCSEzm4AMhVhGf0tbGEwiPljxKjbarYUUIi
|
||||
ATMk83UCgYEA7kKeOveuPbMqxmT42swfa9OU5jLUjH+VExU0Kv3BbEjv/OGt0fac
|
||||
/cs1Ze3vnrtCHudVajocFjydb8B4c62DbA4/T+LcUw/HaMaORbOoICQidi/zZ1Lj
|
||||
gjg8Ip2WKXEhSAwqUpaFd6w16NZOxiTh+NDaRKywwbe8j57eDH4uR6MCgYEAwrTS
|
||||
q5ra6+WDGUFMs0y3GMbL8j14PGhxBQBYSTM//NysI+EM6eeKn1cV3BbphEw//jgE
|
||||
0pVokkjvLAQWWEG2dZyRxRE3YAMgOAIPx5zbJCim3iBVuoqY9ckLg2jF8Fqqubsb
|
||||
3Rf2/Xzn/rFqsXdhsjGcJpdN66T9aEjwEkAnc0MCgYA5cOYk4UGormFJo147oaqR
|
||||
nFjxhp+nn7qY9yu0kajoKk1xchct337J0Qv2nv5+DjdKrArzqT7MPaDXKFfhy5s7
|
||||
mdO5tr/XZp50rCnws/d8iDmmtLjB2EHxSw10avmg1B1p+UTa1F8pEuOMVt529r1j
|
||||
9zYoCFo02c8j8PEnoeQWcQKBgQCVBCuQZu5SSM/zTkTTnU0sy0lf1qflI9IMD92B
|
||||
+JVqg8HDnAR0KF+x38a9MVP7ixgXCuy19t+XxfY269HmLjTlArWV671D4GCSPRGy
|
||||
plwZ6nr72ieCo3y57+q94jxL3jh3+bozlpnUG/q6tTKBLGs7JDjsWDSsuxOu8tO6
|
||||
RBttXQKBgB6LQFOTjDMfsFHKsnQXFUZId3GG/iLg3WCWxEo88T5Rq3JIR0zDpW8H
|
||||
cKhl/sPY+JVHsxizNCMPtp7Hn7GrB6D/v9LbO0jpG2U0BFiJ6zhiDopbP9B0EAW4
|
||||
5JJ+JGKRKoCxs3DmSVyns0gU4j4rVte97UWyVy5TZ8Acr/qrgOA1
|
||||
-----END RSA PRIVATE KEY-----
|
||||
`
|
||||
|
||||
module.exports['ca.crt'] = `
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDmzCCAoOgAwIBAgIUDA0GrvcnG41XT6LYFeNwvq8YV1UwDQYJKoZIhvcNAQEL
|
||||
BQAwXTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRAwDgYDVQQKDAdOb2RlLmpz
|
||||
MREwDwYDVQQLDAhub2RlLWd5cDEcMBoGA1UEAwwTbm9kZS1neXAubm9kZWpzLm9y
|
||||
ZzAeFw0yMjA1MTEwNDIyMjRaFw00OTA5MjUwNDIyMjRaMF0xCzAJBgNVBAYTAlVT
|
||||
MQswCQYDVQQIDAJDQTEQMA4GA1UECgwHTm9kZS5qczERMA8GA1UECwwIbm9kZS1n
|
||||
eXAxHDAaBgNVBAMME25vZGUtZ3lwLm5vZGVqcy5vcmcwggEiMA0GCSqGSIb3DQEB
|
||||
AQUAA4IBDwAwggEKAoIBAQC1NsbSTZQVTIJ1m6KnRNMS1dEeHnuqix6Cukc8Gt5I
|
||||
1PG3s5Mp85RmnatOhMd433DRltXZ4pEjkC4XHwKaWbvf8ogcrNI1MEBMYx54ecZr
|
||||
G8v9b+wol1MNE1/v+oJcdD6Cy4RZYIXM5m4eaYBBrYgFfYcBBOpckjz7aIn2DK0V
|
||||
8kvGOrLo7i726BlUdLJAlazj20ZFxYyU2bsQxK0AMW8mfdLXXF7+TAgDaZIj9510
|
||||
OfMvQzECRH11AEvrrE4AEsvm/dBB2GKl8eW5foctsN3/ViwVO46mC8tGWvvatMAW
|
||||
tBkKiRWFc+Kqy2fnMkVblqsdqS8xHT449ogIXl96H/ipAgMBAAGjUzBRMB0GA1Ud
|
||||
DgQWBBT6LcYYABEOAMv4hI/5bC82rGlD/DAfBgNVHSMEGDAWgBT6LcYYABEOAMv4
|
||||
hI/5bC82rGlD/DAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQA9
|
||||
D+qoKw0njub+NaFRS2DFbSiKb5JKTxVjU5aNusFONFLSXBuRpnYyjjkXpJy8JMWz
|
||||
g8GFDEPP6kiSb8xaPNrFcUzb4PFzJabNTuaLJpBpd2gNBj5AeYwwpRa2DPv/b4yw
|
||||
y2mfULuCWS09ZAguI2OcaARlAsFxYN0IuQ6pN1AvGFGee67ve9l2VF/hhwEi4lCk
|
||||
MM0CWlP6COJ8TX7X0MTtexVOgo9m3hBuTSYEZClYFIdSOk10xkPl8Y3Iz/x6mzfK
|
||||
Uu2l2ZtYvSdAX1CQMds3ZWt0ChNNEjOKPv4g2QSDhGkiqrmi4wUS81g68wKqOpqn
|
||||
GbN8uKxIfyMjqZKaujPR
|
||||
-----END CERTIFICATE-----
|
||||
`
|
||||
|
||||
module.exports['server.key'] = `
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDpxqKqzq8PuOuo
|
||||
M09X1gdh6V1nMmJ6Oqk/d8ZSAHhGBTjB5BBILtrxJPAdsNCRc8gPCtSuAzu9r0ct
|
||||
D2znJjto8HO3a0s/4mlqMQ8iSvfH0c8nGLPxRXg0C9tR0VOyqJrqAPn9X6utxVQj
|
||||
H2jLjZngZllhqlxIUxYuXO7MZfC2MQ4DRsp6GaJTftcOxTxevMdT6lK0yl3mDn0W
|
||||
DyV9aWR5oCVXKIRK7jmF9bi9ETHwJHffFrduaaKYLQ/UOEtNek/pJsz0DNO0ePkm
|
||||
DAt0GQkX3hmKd0VRgGEtaO+MAGbrDucPuDylMkC1GJm1lq6+6rkyQRNoAd8/yOJD
|
||||
GihBJmLPAgMBAAECggEBAL3+WM/3IGHnyWavJMnfQaq6rdWkJlLugAT8BCs7BITr
|
||||
04AJKY5wvjID8j4/KJM+BRbsl4NBT3lPDcq6YajO8rPL0E/+nG60RTYv3vvg79Xv
|
||||
V6uPsRbifdnW1Q1+0cY+r4CFAKeC7JVS7ZmJ+nKMh8XPiM8OVOfW1w0hLFbkdqiq
|
||||
UetA5H0oiJr0rFWh9Gfzc0avpmawXmZJqK8lKWB1rt2teu3bQWqn20dGr2IyCipz
|
||||
KlGh3QImYogjqWEqPyowPGxnq8KWQ40Pjx61dy6cqYrw77yxLHGR8Az+TlRQZf/K
|
||||
BeT3UkXCU5BTyC3PKZJpcYB/GMB8GBKRdNK+8H3OXskCgYEA963tUnLoiCwJjxvv
|
||||
gIiMY5mIUAMnTDsCxSYekfkDvt4qdttn/+Y8/5/lXMSlCt+WZcXH0V8gmVOMqfHB
|
||||
QRXWpi0uJnl9sUllb80Mw5PnS317UlJIbkro3crVUhIbrn9tKVFP1GO9xszNda8E
|
||||
MkHV8FGmSaihXGnA8KEkTKg1CisCgYEA8aEjATIpDXyxQM4M9B1S0jI/nHOrg2lr
|
||||
dMKQWJVruuvwrrZl6CFNIm2/PBXyHjCXqROXs7aXkE3vfRSypYNKBZl7BX08c0nE
|
||||
koMVXwhGbSbUXjFx5bcUKaG/2eOK+ZV4ivNQokq1iIK+WKINAfP69ewzD7EAgbBg
|
||||
KY7owSxka+0CgYB4Urh+W3B35tzl9y5NBQkewdGk/UM0F17rI++p/o1BRnDeuQw3
|
||||
F0T+8lDc1nNPavuHiaPfJRWTJzGoxdeapN9Yb46CBnd3jy6GN9lBkjLFS7qDbZHe
|
||||
cunaBdXIPx/Pj/waHHRpu+LQF2KhD1s8hxtF2oSsOA3b9UxUGhSmYPkTbQKBgEP8
|
||||
muTTQEnTM+yQDYUCWzNZgBx9T10CZIHN3N+P62gEywvdtn7CH/n39z7ozd9AvOuN
|
||||
37lpPuwTgbcoA7weXM2Gid7ZhhDKSM0QpQrAQVClBEwcjXedM8cjA+BC7e+b5vbx
|
||||
z1ZavwlSAEzgC9jo1Uws0ZEwtHvJLMWEuGjiHL9hAoGAWEbj2cxhpCKTK3C8Qf+C
|
||||
BscBwAZKmUasdWQBUzRFpR1UAO3fFBatjMPwrFYnt+ZgiCXTGFcoEa7mjoP/r5Mh
|
||||
j1nRCoPQVcbmB1B9AtiaEa1AA+BqYF1r2aErbcsGrCV5OHU7TYFk1dep1SAQP/0W
|
||||
9MQ+1Af5ttYSFYlJLnWJo4M=
|
||||
-----END PRIVATE KEY-----
|
||||
`
|
||||
|
||||
module.exports['server.crt'] = `
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDPjCCAiagAwIBAgIJALrth9K8D7HIMA0GCSqGSIb3DQEBCwUAMF0xCzAJBgNV
|
||||
BAYTAlVTMQswCQYDVQQIDAJDQTEQMA4GA1UECgwHTm9kZS5qczERMA8GA1UECwwI
|
||||
bm9kZS1neXAxHDAaBgNVBAMME25vZGUtZ3lwLm5vZGVqcy5vcmcwHhcNMjMwOTI4
|
||||
MDUxODM2WhcNMzMwOTI1MDUxODM2WjBgMQswCQYDVQQGEwJVUzETMBEGA1UECAwK
|
||||
Q2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEQMA4GA1UECgwHTm9k
|
||||
ZS5qczESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
|
||||
MIIBCgKCAQEA6caiqs6vD7jrqDNPV9YHYeldZzJiejqpP3fGUgB4RgU4weQQSC7a
|
||||
8STwHbDQkXPIDwrUrgM7va9HLQ9s5yY7aPBzt2tLP+JpajEPIkr3x9HPJxiz8UV4
|
||||
NAvbUdFTsqia6gD5/V+rrcVUIx9oy42Z4GZZYapcSFMWLlzuzGXwtjEOA0bKehmi
|
||||
U37XDsU8XrzHU+pStMpd5g59Fg8lfWlkeaAlVyiESu45hfW4vREx8CR33xa3bmmi
|
||||
mC0P1DhLTXpP6SbM9AzTtHj5JgwLdBkJF94ZindFUYBhLWjvjABm6w7nD7g8pTJA
|
||||
tRiZtZauvuq5MkETaAHfP8jiQxooQSZizwIDAQABMA0GCSqGSIb3DQEBCwUAA4IB
|
||||
AQBwgEyrqJOV8SC7PVTtEOqfSyrM7lJjVcmwXEIFPVCPxXnDtLS9+OaQe9ybjOR/
|
||||
Bi/AvZK4gwsV9G5Bvbl0/sphYEKYLEpP76jhdETcBwhaEgK3itumoREeriut4bZI
|
||||
OM6b1O45CoD67Lm87CUwLOdcNzPu4k7mat+xog5aFwaQuRjLBmmZcjl41QjVr9ti
|
||||
La4PCMh7NwVMtHRqbYvgq785PsKAh+j4FSX1sj9NRzRPoJJ2qsre1Qn5tL/i6ovj
|
||||
6s+3GxOQ5I1UzJX22PZFu003a582ha1CEFM0VaeDzzwbGNcV5SP+g2nw55zx9YRR
|
||||
Rg8nGmjRuRtbs+/XAre2eQ5p
|
||||
-----END CERTIFICATE-----
|
||||
`
|
||||
|
||||
module.exports['ca-bundle.crt'] = `
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDJjCCAg4CAhnOMA0GCSqGSIb3DQEBBQUAMH0xCzAJBgNVBAYTAlVTMQswCQYD
|
||||
VQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEZMBcGA1UECgwQU3Ryb25n
|
||||
TG9vcCwgSW5jLjESMBAGA1UECwwJU3Ryb25nT3BzMRowGAYDVQQDDBFjYS5zdHJv
|
||||
bmdsb29wLmNvbTAeFw0xNTEyMDgyMzM1MzNaFw00MzA0MjQyMzM1MzNaMBkxFzAV
|
||||
BgNVBAMMDnN0cm9uZ2xvb3AuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
||||
CgKCAQEAwOYI7OZ2FX/YjRgLZoDQlbPc5UZXU/j0e1wwiJNPtPEax9Y5Uoza0Pnt
|
||||
Ikzkc2SfvQ+IJrhXo385tI0W5juuqbHnE7UrjUuPjUX6NHevkxcs/flmjan5wnZM
|
||||
cPsGhH71WDuUEEflvZihf2Se2x+xgZtMhc5XGmVmRuZFYKvkgUhA2/w8/QrK+jPT
|
||||
n9QRJxZjWNh2RBdC1B7u4jffSmOSUljYFH1I2eTeY+Rdi6YUIYSU9gEoZxsv3Tia
|
||||
SomfMF5jt2Mouo6MzA+IhLvvFjcrcph1Qxgi9RkfdCMMd+Ipm9YWELkyG1bDRpQy
|
||||
0iyHD4gvVsAqz1Y2KdRSdc3Kt+nTqwIDAQABoxkwFzAVBgNVHREEDjAMhwQAAAAA
|
||||
hwR/AAABMA0GCSqGSIb3DQEBBQUAA4IBAQAhy4J0hML3NgmDRHdL5/iTucBe22Mf
|
||||
jJjg2aifD1S187dHm+Il4qZNO2plWwAhN0h704f+8wpsaALxUvBIu6nvlvcMP5PH
|
||||
jGN5JLe2Km3UaPvYOQU2SgacLilu+uBcIo2JSHLV6O7ziqUj5Gior6YxDLCtEZie
|
||||
Ea8aX5/YjuACtEMJ1JjRqjgkM66XAoUe0E8onOK3FgTIO3tGoTJwRp0zS50pFuP0
|
||||
PsZtT04ck6mmXEXXknNoAyBCvPypfms9OHqcUIW9fiQnrGbS/Ri4QSQYj0DtFk/1
|
||||
na4fY1gf3zTHxH8259b/TOOaPfTnCEsOQtjUrWNR4xhmVZ+HJy4yytUW
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDbzCCAlcCAmm6MA0GCSqGSIb3DQEBCwUAMH0xCzAJBgNVBAYTAlVTMQswCQYD
|
||||
VQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEZMBcGA1UECgwQU3Ryb25n
|
||||
TG9vcCwgSW5jLjESMBAGA1UECwwJU3Ryb25nT3BzMRowGAYDVQQDDBFjYS5zdHJv
|
||||
bmdsb29wLmNvbTAeFw0xNTEyMDgyMzM1MzNaFw00MzA0MjQyMzM1MzNaMH0xCzAJ
|
||||
BgNVBAYTAlVTMQswCQYDVQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEZ
|
||||
MBcGA1UECgwQU3Ryb25nTG9vcCwgSW5jLjESMBAGA1UECwwJU3Ryb25nT3BzMRow
|
||||
GAYDVQQDDBFjYS5zdHJvbmdsb29wLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP
|
||||
ADCCAQoCggEBANfj86jkvvYDjHBgiqWhk9Cj+bqiMq3MqnV0CBO4iuK33Fo6XssE
|
||||
H+yVdXlIBFbFe6t655MdBVOR2Sfj7WqNh96vhu6PyDHiwcQlTaiLU6nhIed1J4Wv
|
||||
lvnJHFmp8Wbtx5AgLT4UYu03ftvXEl2DLi3vhSL2tRM1ebXHB/KPbRWkb25DPX0P
|
||||
foOHot3f2dgNe2x6kponf7E/QDmAu3s7Nlkfh+ryDhgGU7wocXEhXbprNqRqOGNo
|
||||
xbXgUI+/9XDxYT/7Gn5LF/fPjtN+aB0SKMnTsDhprVlZie83mlqJ46fOOrR+vrsQ
|
||||
mi/1m/TadrARtZoIExC/cQRdVM05EK4tUa8CAwEAATANBgkqhkiG9w0BAQsFAAOC
|
||||
AQEAQ7k5WhyhDTIGYCNzRnrMHWSzGqa1y4tJMW06wafJNRqTm1cthq1ibc6Hfq5a
|
||||
K10K0qMcgauRTfQ1MWrVCTW/KnJ1vkhiTOH+RvxapGn84gSaRmV6KZen0+gMsgae
|
||||
KEGe/3Hn+PmDVV+PTamHgPACfpTww38WHIe/7Ce9gHfG7MZ8cKHNZhDy0IAYPln+
|
||||
YRwMLd7JNQffHAbWb2CE1mcea4H/12U8JZW5tHCF6y9V+7IuDzqwIrLKcW3lG17n
|
||||
VUG6ODF/Ryqn3V5X+TL91YyXi6c34y34IpC7MQDV/67U7+5Bp5CfeDPWW2wVSrW+
|
||||
uGZtfEvhbNm6m2i4UNmpCXxUZQ==
|
||||
-----END CERTIFICATE-----
|
||||
`
|
||||
6
desktop-operator/node_modules/node-gyp/test/fixtures/nodedir/include/node/config.gypi
generated
vendored
Normal file
6
desktop-operator/node_modules/node-gyp/test/fixtures/nodedir/include/node/config.gypi
generated
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
# Test configuration
|
||||
{
|
||||
'variables': {
|
||||
'build_with_electron': true
|
||||
}
|
||||
}
|
||||
31
desktop-operator/node_modules/node-gyp/test/fixtures/test-charmap.py
generated
vendored
Normal file
31
desktop-operator/node_modules/node-gyp/test/fixtures/test-charmap.py
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
import sys
|
||||
import locale
|
||||
|
||||
try:
|
||||
reload(sys)
|
||||
except NameError: # Python 3
|
||||
pass
|
||||
|
||||
|
||||
def main():
|
||||
encoding = locale.getdefaultlocale()[1]
|
||||
if not encoding:
|
||||
return False
|
||||
|
||||
try:
|
||||
sys.setdefaultencoding(encoding)
|
||||
except AttributeError: # Python 3
|
||||
pass
|
||||
|
||||
textmap = {
|
||||
"cp936": "\u4e2d\u6587",
|
||||
"cp1252": "Lat\u012Bna",
|
||||
"cp932": "\u306b\u307b\u3093\u3054",
|
||||
}
|
||||
if encoding in textmap:
|
||||
print(textmap[encoding])
|
||||
return True
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
print(main())
|
||||
140
desktop-operator/node_modules/node-gyp/test/process-exec-sync.js
generated
vendored
Normal file
140
desktop-operator/node_modules/node-gyp/test/process-exec-sync.js
generated
vendored
Normal file
@@ -0,0 +1,140 @@
|
||||
'use strict'
|
||||
|
||||
const fs = require('graceful-fs')
|
||||
const childProcess = require('child_process')
|
||||
|
||||
function startsWith (str, search, pos) {
|
||||
if (String.prototype.startsWith) {
|
||||
return str.startsWith(search, pos)
|
||||
}
|
||||
|
||||
return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search
|
||||
}
|
||||
|
||||
function processExecSync (file, args, options) {
|
||||
var child, error, timeout, tmpdir, command
|
||||
command = makeCommand(file, args)
|
||||
|
||||
/*
|
||||
this function emulates child_process.execSync for legacy node <= 0.10.x
|
||||
derived from https://github.com/gvarsanyi/sync-exec/blob/master/js/sync-exec.js
|
||||
*/
|
||||
|
||||
options = options || {}
|
||||
// init timeout
|
||||
timeout = Date.now() + options.timeout
|
||||
// init tmpdir
|
||||
var osTempBase = '/tmp'
|
||||
var os = determineOS()
|
||||
osTempBase = '/tmp'
|
||||
|
||||
if (process.env.TMP) {
|
||||
osTempBase = process.env.TMP
|
||||
}
|
||||
|
||||
if (osTempBase[osTempBase.length - 1] !== '/') {
|
||||
osTempBase += '/'
|
||||
}
|
||||
|
||||
tmpdir = osTempBase + 'processExecSync.' + Date.now() + Math.random()
|
||||
fs.mkdirSync(tmpdir)
|
||||
|
||||
// init command
|
||||
if (os === 'linux') {
|
||||
command = '(' + command + ' > ' + tmpdir + '/stdout 2> ' + tmpdir +
|
||||
'/stderr); echo $? > ' + tmpdir + '/status'
|
||||
} else {
|
||||
command = '(' + command + ' > ' + tmpdir + '/stdout 2> ' + tmpdir +
|
||||
'/stderr) | echo %errorlevel% > ' + tmpdir + '/status | exit'
|
||||
}
|
||||
|
||||
// init child
|
||||
child = childProcess.exec(command, options)
|
||||
|
||||
var maxTry = 100000 // increases the test time by 6 seconds on win-2016-node-0.10
|
||||
var tryCount = 0
|
||||
while (tryCount < maxTry) {
|
||||
try {
|
||||
var x = fs.readFileSync(tmpdir + '/status')
|
||||
if (x.toString() === '0') {
|
||||
break
|
||||
}
|
||||
} catch (ignore) {}
|
||||
tryCount++
|
||||
if (Date.now() > timeout) {
|
||||
error = child
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
['stdout', 'stderr', 'status'].forEach(function (file) {
|
||||
child[file] = fs.readFileSync(tmpdir + '/' + file, options.encoding)
|
||||
setTimeout(unlinkFile, 500, tmpdir + '/' + file)
|
||||
})
|
||||
|
||||
child.status = Number(child.status)
|
||||
if (child.status !== 0) {
|
||||
error = child
|
||||
}
|
||||
|
||||
try {
|
||||
fs.rmdirSync(tmpdir)
|
||||
} catch (ignore) {}
|
||||
if (error) {
|
||||
throw error
|
||||
}
|
||||
return child.stdout
|
||||
}
|
||||
|
||||
function makeCommand (file, args) {
|
||||
var command, quote
|
||||
command = file
|
||||
if (args.length > 0) {
|
||||
for (var i in args) {
|
||||
command = command + ' '
|
||||
if (args[i][0] === '-') {
|
||||
command = command + args[i]
|
||||
} else {
|
||||
if (!quote) {
|
||||
command = command + '"'
|
||||
quote = true
|
||||
}
|
||||
command = command + args[i]
|
||||
if (quote) {
|
||||
if (args.length === (parseInt(i) + 1)) {
|
||||
command = command + '"'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return command
|
||||
}
|
||||
|
||||
function determineOS () {
|
||||
var os = ''
|
||||
var tmpVar = ''
|
||||
if (process.env.OSTYPE) {
|
||||
tmpVar = process.env.OSTYPE
|
||||
} else if (process.env.OS) {
|
||||
tmpVar = process.env.OS
|
||||
} else {
|
||||
// default is linux
|
||||
tmpVar = 'linux'
|
||||
}
|
||||
|
||||
if (startsWith(tmpVar, 'linux')) {
|
||||
os = 'linux'
|
||||
}
|
||||
if (startsWith(tmpVar, 'win')) {
|
||||
os = 'win'
|
||||
}
|
||||
|
||||
return os
|
||||
}
|
||||
|
||||
function unlinkFile (file) {
|
||||
fs.unlinkSync(file)
|
||||
}
|
||||
|
||||
module.exports = processExecSync
|
||||
75
desktop-operator/node_modules/node-gyp/test/reporter.js
generated
vendored
Normal file
75
desktop-operator/node_modules/node-gyp/test/reporter.js
generated
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
const Mocha = require('mocha')
|
||||
|
||||
class Reporter {
|
||||
constructor (runner) {
|
||||
this.failedTests = []
|
||||
|
||||
runner.on(Mocha.Runner.constants.EVENT_RUN_BEGIN, () => {
|
||||
console.log('Starting tests')
|
||||
})
|
||||
|
||||
runner.on(Mocha.Runner.constants.EVENT_RUN_END, () => {
|
||||
console.log('Tests finished')
|
||||
console.log()
|
||||
console.log('****************')
|
||||
console.log('* TESTS REPORT *')
|
||||
console.log('****************')
|
||||
console.log()
|
||||
console.log(`Executed ${runner.stats.suites} suites with ${runner.stats.tests} tests in ${runner.stats.duration} ms`)
|
||||
console.log(` Passed: ${runner.stats.passes}`)
|
||||
console.log(` Skipped: ${runner.stats.pending}`)
|
||||
console.log(` Failed: ${runner.stats.failures}`)
|
||||
if (this.failedTests.length > 0) {
|
||||
console.log()
|
||||
console.log(' Failed test details')
|
||||
this.failedTests.forEach((failedTest, index) => {
|
||||
console.log()
|
||||
console.log(` ${index + 1}.'${failedTest.test.fullTitle()}'`)
|
||||
console.log(` Name: ${failedTest.error.name}`)
|
||||
console.log(` Message: ${failedTest.error.message}`)
|
||||
console.log(` Code: ${failedTest.error.code}`)
|
||||
console.log(` Stack: ${failedTest.error.stack}`)
|
||||
})
|
||||
}
|
||||
console.log()
|
||||
})
|
||||
|
||||
runner.on(Mocha.Runner.constants.EVENT_SUITE_BEGIN, (suite) => {
|
||||
if (suite.root) {
|
||||
return
|
||||
}
|
||||
console.log(`Starting suite '${suite.title}'`)
|
||||
})
|
||||
|
||||
runner.on(Mocha.Runner.constants.EVENT_SUITE_END, (suite) => {
|
||||
if (suite.root) {
|
||||
return
|
||||
}
|
||||
console.log(`Suite '${suite.title}' finished`)
|
||||
console.log()
|
||||
})
|
||||
|
||||
runner.on(Mocha.Runner.constants.EVENT_TEST_BEGIN, (test) => {
|
||||
console.log(`Starting test '${test.title}'`)
|
||||
})
|
||||
|
||||
runner.on(Mocha.Runner.constants.EVENT_TEST_PASS, (test) => {
|
||||
console.log(`Test '${test.title}' passed in ${test.duration} ms`)
|
||||
})
|
||||
|
||||
runner.on(Mocha.Runner.constants.EVENT_TEST_PENDING, (test) => {
|
||||
console.log(`Test '${test.title}' skipped in ${test.duration} ms`)
|
||||
})
|
||||
|
||||
runner.on(Mocha.Runner.constants.EVENT_TEST_FAIL, (test, error) => {
|
||||
this.failedTests.push({ test, error })
|
||||
console.log(`Test '${test.title}' failed in ${test.duration} ms with ${error}`)
|
||||
})
|
||||
|
||||
runner.on(Mocha.Runner.constants.EVENT_TEST_END, (test) => {
|
||||
console.log()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Reporter
|
||||
27
desktop-operator/node_modules/node-gyp/test/simple-proxy.js
generated
vendored
Normal file
27
desktop-operator/node_modules/node-gyp/test/simple-proxy.js
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
'use strict'
|
||||
|
||||
const http = require('http')
|
||||
const https = require('https')
|
||||
const server = http.createServer(handler)
|
||||
const port = +process.argv[2]
|
||||
const prefix = process.argv[3]
|
||||
const upstream = process.argv[4]
|
||||
var calls = 0
|
||||
|
||||
server.listen(port)
|
||||
|
||||
function handler (req, res) {
|
||||
if (req.url.indexOf(prefix) !== 0) {
|
||||
throw new Error('request url [' + req.url + '] does not start with [' + prefix + ']')
|
||||
}
|
||||
|
||||
var upstreamUrl = upstream + req.url.substring(prefix.length)
|
||||
https.get(upstreamUrl, function (ures) {
|
||||
ures.on('end', function () {
|
||||
if (++calls === 2) {
|
||||
server.close()
|
||||
}
|
||||
})
|
||||
ures.pipe(res)
|
||||
})
|
||||
}
|
||||
152
desktop-operator/node_modules/node-gyp/test/test-addon.js
generated
vendored
Normal file
152
desktop-operator/node_modules/node-gyp/test/test-addon.js
generated
vendored
Normal file
@@ -0,0 +1,152 @@
|
||||
'use strict'
|
||||
|
||||
const { describe, it } = require('mocha')
|
||||
const assert = require('assert')
|
||||
const path = require('path')
|
||||
const fs = require('graceful-fs')
|
||||
const childProcess = require('child_process')
|
||||
const os = require('os')
|
||||
const addonPath = path.resolve(__dirname, 'node_modules', 'hello_world')
|
||||
const nodeGyp = path.resolve(__dirname, '..', 'bin', 'node-gyp.js')
|
||||
const execFileSync = childProcess.execFileSync || require('./process-exec-sync')
|
||||
const execFile = childProcess.execFile
|
||||
|
||||
function runHello (hostProcess) {
|
||||
if (!hostProcess) {
|
||||
hostProcess = process.execPath
|
||||
}
|
||||
var testCode = "console.log(require('hello_world').hello())"
|
||||
return execFileSync(hostProcess, ['-e', testCode], { cwd: __dirname }).toString()
|
||||
}
|
||||
|
||||
function getEncoding () {
|
||||
var code = 'import locale;print(locale.getdefaultlocale()[1])'
|
||||
return execFileSync('python', ['-c', code]).toString().trim()
|
||||
}
|
||||
|
||||
function checkCharmapValid () {
|
||||
var data
|
||||
try {
|
||||
data = execFileSync('python', ['fixtures/test-charmap.py'],
|
||||
{ cwd: __dirname })
|
||||
} catch (err) {
|
||||
return false
|
||||
}
|
||||
var lines = data.toString().trim().split('\n')
|
||||
return lines.pop() === 'True'
|
||||
}
|
||||
|
||||
describe('addon', function () {
|
||||
this.timeout(300000)
|
||||
|
||||
it('build simple addon', function (done) {
|
||||
// Set the loglevel otherwise the output disappears when run via 'npm test'
|
||||
var cmd = [nodeGyp, 'rebuild', '-C', addonPath, '--loglevel=verbose']
|
||||
var proc = execFile(process.execPath, cmd, function (err, stdout, stderr) {
|
||||
var logLines = stderr.toString().trim().split(/\r?\n/)
|
||||
var lastLine = logLines[logLines.length - 1]
|
||||
assert.strictEqual(err, null)
|
||||
assert.strictEqual(lastLine, 'gyp info ok', 'should end in ok')
|
||||
assert.strictEqual(runHello().trim(), 'world')
|
||||
done()
|
||||
})
|
||||
proc.stdout.setEncoding('utf-8')
|
||||
proc.stderr.setEncoding('utf-8')
|
||||
})
|
||||
|
||||
it('build simple addon in path with non-ascii characters', function (done) {
|
||||
if (!checkCharmapValid()) {
|
||||
return this.skip('python console app can\'t encode non-ascii character.')
|
||||
}
|
||||
|
||||
var testDirNames = {
|
||||
cp936: '文件夹',
|
||||
cp1252: 'Latīna',
|
||||
cp932: 'フォルダ'
|
||||
}
|
||||
// Select non-ascii characters by current encoding
|
||||
var testDirName = testDirNames[getEncoding()]
|
||||
// If encoding is UTF-8 or other then no need to test
|
||||
if (!testDirName) {
|
||||
return this.skip('no need to test')
|
||||
}
|
||||
|
||||
this.timeout(300000)
|
||||
|
||||
var data
|
||||
var configPath = path.join(addonPath, 'build', 'config.gypi')
|
||||
try {
|
||||
data = fs.readFileSync(configPath, 'utf8')
|
||||
} catch (err) {
|
||||
assert.fail(err)
|
||||
return
|
||||
}
|
||||
var config = JSON.parse(data.replace(/#.+\n/, ''))
|
||||
var nodeDir = config.variables.nodedir
|
||||
var testNodeDir = path.join(addonPath, testDirName)
|
||||
// Create symbol link to path with non-ascii characters
|
||||
try {
|
||||
fs.symlinkSync(nodeDir, testNodeDir, 'dir')
|
||||
} catch (err) {
|
||||
switch (err.code) {
|
||||
case 'EEXIST': break
|
||||
case 'EPERM':
|
||||
assert.fail(err, null, 'Please try to running console as an administrator')
|
||||
return
|
||||
default:
|
||||
assert.fail(err)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
var cmd = [
|
||||
nodeGyp,
|
||||
'rebuild',
|
||||
'-C',
|
||||
addonPath,
|
||||
'--loglevel=verbose',
|
||||
'-nodedir=' + testNodeDir
|
||||
]
|
||||
var proc = execFile(process.execPath, cmd, function (err, stdout, stderr) {
|
||||
try {
|
||||
fs.unlink(testNodeDir)
|
||||
} catch (err) {
|
||||
assert.fail(err)
|
||||
}
|
||||
|
||||
var logLines = stderr.toString().trim().split(/\r?\n/)
|
||||
var lastLine = logLines[logLines.length - 1]
|
||||
assert.strictEqual(err, null)
|
||||
assert.strictEqual(lastLine, 'gyp info ok', 'should end in ok')
|
||||
assert.strictEqual(runHello().trim(), 'world')
|
||||
done()
|
||||
})
|
||||
proc.stdout.setEncoding('utf-8')
|
||||
proc.stderr.setEncoding('utf-8')
|
||||
})
|
||||
|
||||
it('addon works with renamed host executable', function (done) {
|
||||
// No `fs.copyFileSync` before node8.
|
||||
if (process.version.substr(1).split('.')[0] < 8) {
|
||||
return this.skip('skipping test for old node version')
|
||||
}
|
||||
|
||||
this.timeout(300000)
|
||||
|
||||
var notNodePath = path.join(os.tmpdir(), 'notnode' + path.extname(process.execPath))
|
||||
fs.copyFileSync(process.execPath, notNodePath)
|
||||
|
||||
var cmd = [nodeGyp, 'rebuild', '-C', addonPath, '--loglevel=verbose']
|
||||
var proc = execFile(process.execPath, cmd, function (err, stdout, stderr) {
|
||||
var logLines = stderr.toString().trim().split(/\r?\n/)
|
||||
var lastLine = logLines[logLines.length - 1]
|
||||
assert.strictEqual(err, null)
|
||||
assert.strictEqual(lastLine, 'gyp info ok', 'should end in ok')
|
||||
assert.strictEqual(runHello(notNodePath).trim(), 'world')
|
||||
fs.unlinkSync(notNodePath)
|
||||
done()
|
||||
})
|
||||
proc.stdout.setEncoding('utf-8')
|
||||
proc.stderr.setEncoding('utf-8')
|
||||
})
|
||||
})
|
||||
81
desktop-operator/node_modules/node-gyp/test/test-configure-python.js
generated
vendored
Normal file
81
desktop-operator/node_modules/node-gyp/test/test-configure-python.js
generated
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
'use strict'
|
||||
|
||||
const { describe, it } = require('mocha')
|
||||
const assert = require('assert')
|
||||
const path = require('path')
|
||||
const devDir = require('./common').devDir()
|
||||
const gyp = require('../lib/node-gyp')
|
||||
const requireInject = require('require-inject')
|
||||
const configure = requireInject('../lib/configure', {
|
||||
'graceful-fs': {
|
||||
openSync: function () { return 0 },
|
||||
closeSync: function () { },
|
||||
writeFile: function (file, data, cb) { cb() },
|
||||
stat: function (file, cb) { cb(null, {}) },
|
||||
mkdir: function (dir, options, cb) { cb() },
|
||||
promises: {
|
||||
writeFile: function (file, data) { return Promise.resolve(null) }
|
||||
},
|
||||
unlink: function (path, cb) { cb() },
|
||||
symlink: function (target, path, cb) { cb() }
|
||||
}
|
||||
})
|
||||
|
||||
const EXPECTED_PYPATH = path.join(__dirname, '..', 'gyp', 'pylib')
|
||||
const SEPARATOR = process.platform === 'win32' ? ';' : ':'
|
||||
const SPAWN_RESULT = cb => ({ on: function () { cb() } })
|
||||
|
||||
require('npmlog').level = 'warn'
|
||||
|
||||
describe('configure-python', function () {
|
||||
it('configure PYTHONPATH with no existing env', function (done) {
|
||||
delete process.env.PYTHONPATH
|
||||
|
||||
var prog = gyp()
|
||||
prog.parseArgv([])
|
||||
prog.spawn = function () {
|
||||
assert.strictEqual(process.env.PYTHONPATH, EXPECTED_PYPATH)
|
||||
return SPAWN_RESULT(done)
|
||||
}
|
||||
prog.devDir = devDir
|
||||
configure(prog, [], assert.fail)
|
||||
})
|
||||
|
||||
it('configure PYTHONPATH with existing env of one dir', function (done) {
|
||||
var existingPath = path.join('a', 'b')
|
||||
process.env.PYTHONPATH = existingPath
|
||||
|
||||
var prog = gyp()
|
||||
prog.parseArgv([])
|
||||
prog.spawn = function () {
|
||||
assert.strictEqual(process.env.PYTHONPATH, [EXPECTED_PYPATH, existingPath].join(SEPARATOR))
|
||||
|
||||
var dirs = process.env.PYTHONPATH.split(SEPARATOR)
|
||||
assert.deepStrictEqual(dirs, [EXPECTED_PYPATH, existingPath])
|
||||
|
||||
return SPAWN_RESULT(done)
|
||||
}
|
||||
prog.devDir = devDir
|
||||
configure(prog, [], assert.fail)
|
||||
})
|
||||
|
||||
it('configure PYTHONPATH with existing env of multiple dirs', function (done) {
|
||||
var pythonDir1 = path.join('a', 'b')
|
||||
var pythonDir2 = path.join('b', 'c')
|
||||
var existingPath = [pythonDir1, pythonDir2].join(SEPARATOR)
|
||||
process.env.PYTHONPATH = existingPath
|
||||
|
||||
var prog = gyp()
|
||||
prog.parseArgv([])
|
||||
prog.spawn = function () {
|
||||
assert.strictEqual(process.env.PYTHONPATH, [EXPECTED_PYPATH, existingPath].join(SEPARATOR))
|
||||
|
||||
var dirs = process.env.PYTHONPATH.split(SEPARATOR)
|
||||
assert.deepStrictEqual(dirs, [EXPECTED_PYPATH, pythonDir1, pythonDir2])
|
||||
|
||||
return SPAWN_RESULT(done)
|
||||
}
|
||||
prog.devDir = devDir
|
||||
configure(prog, [], assert.fail)
|
||||
})
|
||||
})
|
||||
61
desktop-operator/node_modules/node-gyp/test/test-create-config-gypi.js
generated
vendored
Normal file
61
desktop-operator/node_modules/node-gyp/test/test-create-config-gypi.js
generated
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
'use strict'
|
||||
|
||||
const path = require('path')
|
||||
const { describe, it } = require('mocha')
|
||||
const assert = require('assert')
|
||||
const gyp = require('../lib/node-gyp')
|
||||
const createConfigGypi = require('../lib/create-config-gypi')
|
||||
const { parseConfigGypi, getCurrentConfigGypi } = createConfigGypi.test
|
||||
|
||||
describe('create-config-gypi', function () {
|
||||
it('config.gypi with no options', async function () {
|
||||
const prog = gyp()
|
||||
prog.parseArgv([])
|
||||
|
||||
const config = await getCurrentConfigGypi({ gyp: prog, vsInfo: {} })
|
||||
assert.strictEqual(config.target_defaults.default_configuration, 'Release')
|
||||
assert.strictEqual(config.variables.target_arch, process.arch)
|
||||
})
|
||||
|
||||
it('config.gypi with --debug', async function () {
|
||||
const prog = gyp()
|
||||
prog.parseArgv(['_', '_', '--debug'])
|
||||
|
||||
const config = await getCurrentConfigGypi({ gyp: prog, vsInfo: {} })
|
||||
assert.strictEqual(config.target_defaults.default_configuration, 'Debug')
|
||||
})
|
||||
|
||||
it('config.gypi with custom options', async function () {
|
||||
const prog = gyp()
|
||||
prog.parseArgv(['_', '_', '--shared-libxml2'])
|
||||
|
||||
const config = await getCurrentConfigGypi({ gyp: prog, vsInfo: {} })
|
||||
assert.strictEqual(config.variables.shared_libxml2, true)
|
||||
})
|
||||
|
||||
it('config.gypi with nodedir', async function () {
|
||||
const nodeDir = path.join(__dirname, 'fixtures', 'nodedir')
|
||||
|
||||
const prog = gyp()
|
||||
prog.parseArgv(['_', '_', `--nodedir=${nodeDir}`])
|
||||
|
||||
const config = await getCurrentConfigGypi({ gyp: prog, nodeDir, vsInfo: {} })
|
||||
assert.strictEqual(config.variables.build_with_electron, true)
|
||||
})
|
||||
|
||||
it('config.gypi with --force-process-config', async function () {
|
||||
const nodeDir = path.join(__dirname, 'fixtures', 'nodedir')
|
||||
|
||||
const prog = gyp()
|
||||
prog.parseArgv(['_', '_', '--force-process-config', `--nodedir=${nodeDir}`])
|
||||
|
||||
const config = await getCurrentConfigGypi({ gyp: prog, nodeDir, vsInfo: {} })
|
||||
assert.strictEqual(config.variables.build_with_electron, undefined)
|
||||
})
|
||||
|
||||
it('config.gypi parsing', function () {
|
||||
const str = "# Some comments\n{'variables': {'multiline': 'A'\n'B'}}"
|
||||
const config = parseConfigGypi(str)
|
||||
assert.deepStrictEqual(config, { variables: { multiline: 'AB' } })
|
||||
})
|
||||
})
|
||||
210
desktop-operator/node_modules/node-gyp/test/test-download.js
generated
vendored
Normal file
210
desktop-operator/node_modules/node-gyp/test/test-download.js
generated
vendored
Normal file
@@ -0,0 +1,210 @@
|
||||
'use strict'
|
||||
|
||||
const { describe, it, after } = require('mocha')
|
||||
const assert = require('assert')
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const util = require('util')
|
||||
const http = require('http')
|
||||
const https = require('https')
|
||||
const install = require('../lib/install')
|
||||
const semver = require('semver')
|
||||
const devDir = require('./common').devDir()
|
||||
const rimraf = require('rimraf')
|
||||
const gyp = require('../lib/node-gyp')
|
||||
const log = require('npmlog')
|
||||
const certs = require('./fixtures/certs')
|
||||
|
||||
log.level = 'warn'
|
||||
|
||||
describe('download', function () {
|
||||
it('download over http', async function () {
|
||||
const server = http.createServer((req, res) => {
|
||||
assert.strictEqual(req.headers['user-agent'], `node-gyp v42 (node ${process.version})`)
|
||||
res.end('ok')
|
||||
})
|
||||
|
||||
after(() => new Promise((resolve) => server.close(resolve)))
|
||||
|
||||
const host = 'localhost'
|
||||
await new Promise((resolve) => server.listen(0, host, resolve))
|
||||
const { port } = server.address()
|
||||
const gyp = {
|
||||
opts: {},
|
||||
version: '42'
|
||||
}
|
||||
const url = `http://${host}:${port}`
|
||||
const res = await install.test.download(gyp, url)
|
||||
assert.strictEqual(await res.text(), 'ok')
|
||||
})
|
||||
|
||||
it('download over https with custom ca', async function () {
|
||||
const cafile = path.join(__dirname, 'fixtures/ca.crt')
|
||||
const cacontents = certs['ca.crt']
|
||||
const cert = certs['server.crt']
|
||||
const key = certs['server.key']
|
||||
await fs.promises.writeFile(cafile, cacontents, 'utf8')
|
||||
const ca = await install.test.readCAFile(cafile)
|
||||
|
||||
assert.strictEqual(ca.length, 1)
|
||||
|
||||
const options = { ca: ca, cert: cert, key: key }
|
||||
const server = https.createServer(options, (req, res) => {
|
||||
assert.strictEqual(req.headers['user-agent'], `node-gyp v42 (node ${process.version})`)
|
||||
res.end('ok')
|
||||
})
|
||||
|
||||
after(async () => {
|
||||
await new Promise((resolve) => server.close(resolve))
|
||||
await fs.promises.unlink(cafile)
|
||||
})
|
||||
|
||||
server.on('clientError', (err) => { throw err })
|
||||
|
||||
const host = 'localhost'
|
||||
await new Promise((resolve) => server.listen(0, host, resolve))
|
||||
const { port } = server.address()
|
||||
const gyp = {
|
||||
opts: { cafile },
|
||||
version: '42'
|
||||
}
|
||||
const url = `https://${host}:${port}`
|
||||
const res = await install.test.download(gyp, url)
|
||||
assert.strictEqual(await res.text(), 'ok')
|
||||
})
|
||||
|
||||
it('download over http with proxy', async function () {
|
||||
const server = http.createServer((_, res) => {
|
||||
res.end('ok')
|
||||
})
|
||||
|
||||
const pserver = http.createServer((req, res) => {
|
||||
assert.strictEqual(req.headers['user-agent'], `node-gyp v42 (node ${process.version})`)
|
||||
res.end('proxy ok')
|
||||
})
|
||||
|
||||
after(() => Promise.all([
|
||||
new Promise((resolve) => server.close(resolve)),
|
||||
new Promise((resolve) => pserver.close(resolve))
|
||||
]))
|
||||
|
||||
const host = 'localhost'
|
||||
await new Promise((resolve) => server.listen(0, host, resolve))
|
||||
const { port } = server.address()
|
||||
await new Promise((resolve) => pserver.listen(port + 1, host, resolve))
|
||||
const gyp = {
|
||||
opts: {
|
||||
proxy: `http://${host}:${port + 1}`,
|
||||
noproxy: 'bad'
|
||||
},
|
||||
version: '42'
|
||||
}
|
||||
const url = `http://${host}:${port}`
|
||||
const res = await install.test.download(gyp, url)
|
||||
assert.strictEqual(await res.text(), 'proxy ok')
|
||||
})
|
||||
|
||||
it('download over http with noproxy', async function () {
|
||||
const server = http.createServer((req, res) => {
|
||||
assert.strictEqual(req.headers['user-agent'], `node-gyp v42 (node ${process.version})`)
|
||||
res.end('ok')
|
||||
})
|
||||
|
||||
const pserver = http.createServer((_, res) => {
|
||||
res.end('proxy ok')
|
||||
})
|
||||
|
||||
after(() => Promise.all([
|
||||
new Promise((resolve) => server.close(resolve)),
|
||||
new Promise((resolve) => pserver.close(resolve))
|
||||
]))
|
||||
|
||||
const host = 'localhost'
|
||||
await new Promise((resolve) => server.listen(0, host, resolve))
|
||||
const { port } = server.address()
|
||||
await new Promise((resolve) => pserver.listen(port + 1, host, resolve))
|
||||
const gyp = {
|
||||
opts: {
|
||||
proxy: `http://${host}:${port + 1}`,
|
||||
noproxy: host
|
||||
},
|
||||
version: '42'
|
||||
}
|
||||
const url = `http://${host}:${port}`
|
||||
const res = await install.test.download(gyp, url)
|
||||
assert.strictEqual(await res.text(), 'ok')
|
||||
})
|
||||
|
||||
it('download with missing cafile', async function () {
|
||||
const gyp = {
|
||||
opts: { cafile: 'no.such.file' }
|
||||
}
|
||||
try {
|
||||
await install.test.download(gyp, {}, 'http://bad/')
|
||||
} catch (e) {
|
||||
assert.ok(/no.such.file/.test(e.message))
|
||||
}
|
||||
})
|
||||
|
||||
it('check certificate splitting', async function () {
|
||||
const cafile = path.join(__dirname, 'fixtures/ca-bundle.crt')
|
||||
const cacontents = certs['ca-bundle.crt']
|
||||
await fs.promises.writeFile(cafile, cacontents, 'utf8')
|
||||
after(async () => {
|
||||
await fs.promises.unlink(cafile)
|
||||
})
|
||||
const cas = await install.test.readCAFile(path.join(__dirname, 'fixtures/ca-bundle.crt'))
|
||||
assert.strictEqual(cas.length, 2)
|
||||
assert.notStrictEqual(cas[0], cas[1])
|
||||
})
|
||||
|
||||
// only run this test if we are running a version of Node with predictable version path behavior
|
||||
|
||||
it('download headers (actual)', async function () {
|
||||
if (process.env.FAST_TEST ||
|
||||
process.release.name !== 'node' ||
|
||||
semver.prerelease(process.version) !== null ||
|
||||
semver.satisfies(process.version, '<10')) {
|
||||
return this.skip('Skipping actual download of headers due to test environment configuration')
|
||||
}
|
||||
|
||||
this.timeout(300000)
|
||||
|
||||
const expectedDir = path.join(devDir, process.version.replace(/^v/, ''))
|
||||
await util.promisify(rimraf)(expectedDir)
|
||||
|
||||
const prog = gyp()
|
||||
prog.parseArgv([])
|
||||
prog.devDir = devDir
|
||||
log.level = 'warn'
|
||||
await util.promisify(install)(prog, [])
|
||||
|
||||
const data = await fs.promises.readFile(path.join(expectedDir, 'installVersion'), 'utf8')
|
||||
assert.strictEqual(data, '11\n', 'correct installVersion')
|
||||
|
||||
const list = await fs.promises.readdir(path.join(expectedDir, 'include/node'))
|
||||
assert.ok(list.includes('common.gypi'))
|
||||
assert.ok(list.includes('config.gypi'))
|
||||
assert.ok(list.includes('node.h'))
|
||||
assert.ok(list.includes('node_version.h'))
|
||||
assert.ok(list.includes('openssl'))
|
||||
assert.ok(list.includes('uv'))
|
||||
assert.ok(list.includes('uv.h'))
|
||||
assert.ok(list.includes('v8-platform.h'))
|
||||
assert.ok(list.includes('v8.h'))
|
||||
assert.ok(list.includes('zlib.h'))
|
||||
|
||||
const lines = (await fs.promises.readFile(path.join(expectedDir, 'include/node/node_version.h'), 'utf8')).split('\n')
|
||||
|
||||
// extract the 3 version parts from the defines to build a valid version string and
|
||||
// and check them against our current env version
|
||||
const version = ['major', 'minor', 'patch'].reduce((version, type) => {
|
||||
const re = new RegExp(`^#define\\sNODE_${type.toUpperCase()}_VERSION`)
|
||||
const line = lines.find((l) => re.test(l))
|
||||
const i = line ? parseInt(line.replace(/^[^0-9]+([0-9]+).*$/, '$1'), 10) : 'ERROR'
|
||||
return `${version}${type !== 'major' ? '.' : 'v'}${i}`
|
||||
}, '')
|
||||
|
||||
assert.strictEqual(version, process.version)
|
||||
})
|
||||
})
|
||||
73
desktop-operator/node_modules/node-gyp/test/test-find-accessible-sync.js
generated
vendored
Normal file
73
desktop-operator/node_modules/node-gyp/test/test-find-accessible-sync.js
generated
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
'use strict'
|
||||
|
||||
const { describe, it } = require('mocha')
|
||||
const assert = require('assert')
|
||||
const path = require('path')
|
||||
const requireInject = require('require-inject')
|
||||
const configure = requireInject('../lib/configure', {
|
||||
'graceful-fs': {
|
||||
closeSync: function () { return undefined },
|
||||
openSync: function (path) {
|
||||
if (readableFiles.some(function (f) { return f === path })) {
|
||||
return 0
|
||||
} else {
|
||||
var error = new Error('ENOENT - not found')
|
||||
throw error
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
const dir = path.sep + 'testdir'
|
||||
const readableFile = 'readable_file'
|
||||
const anotherReadableFile = 'another_readable_file'
|
||||
const readableFileInDir = 'somedir' + path.sep + readableFile
|
||||
const readableFiles = [
|
||||
path.resolve(dir, readableFile),
|
||||
path.resolve(dir, anotherReadableFile),
|
||||
path.resolve(dir, readableFileInDir)
|
||||
]
|
||||
|
||||
describe('find-accessible-sync', function () {
|
||||
it('find accessible - empty array', function () {
|
||||
var candidates = []
|
||||
var found = configure.test.findAccessibleSync('test', dir, candidates)
|
||||
assert.strictEqual(found, undefined)
|
||||
})
|
||||
|
||||
it('find accessible - single item array, readable', function () {
|
||||
var candidates = [readableFile]
|
||||
var found = configure.test.findAccessibleSync('test', dir, candidates)
|
||||
assert.strictEqual(found, path.resolve(dir, readableFile))
|
||||
})
|
||||
|
||||
it('find accessible - single item array, readable in subdir', function () {
|
||||
var candidates = [readableFileInDir]
|
||||
var found = configure.test.findAccessibleSync('test', dir, candidates)
|
||||
assert.strictEqual(found, path.resolve(dir, readableFileInDir))
|
||||
})
|
||||
|
||||
it('find accessible - single item array, unreadable', function () {
|
||||
var candidates = ['unreadable_file']
|
||||
var found = configure.test.findAccessibleSync('test', dir, candidates)
|
||||
assert.strictEqual(found, undefined)
|
||||
})
|
||||
|
||||
it('find accessible - multi item array, no matches', function () {
|
||||
var candidates = ['non_existent_file', 'unreadable_file']
|
||||
var found = configure.test.findAccessibleSync('test', dir, candidates)
|
||||
assert.strictEqual(found, undefined)
|
||||
})
|
||||
|
||||
it('find accessible - multi item array, single match', function () {
|
||||
var candidates = ['non_existent_file', readableFile]
|
||||
var found = configure.test.findAccessibleSync('test', dir, candidates)
|
||||
assert.strictEqual(found, path.resolve(dir, readableFile))
|
||||
})
|
||||
|
||||
it('find accessible - multi item array, return first match', function () {
|
||||
var candidates = ['non_existent_file', anotherReadableFile, readableFile]
|
||||
var found = configure.test.findAccessibleSync('test', dir, candidates)
|
||||
assert.strictEqual(found, path.resolve(dir, anotherReadableFile))
|
||||
})
|
||||
})
|
||||
115
desktop-operator/node_modules/node-gyp/test/test-find-node-directory.js
generated
vendored
Normal file
115
desktop-operator/node_modules/node-gyp/test/test-find-node-directory.js
generated
vendored
Normal file
@@ -0,0 +1,115 @@
|
||||
'use strict'
|
||||
|
||||
const { describe, it } = require('mocha')
|
||||
const assert = require('assert')
|
||||
const path = require('path')
|
||||
const findNodeDirectory = require('../lib/find-node-directory')
|
||||
|
||||
const platforms = ['darwin', 'freebsd', 'linux', 'sunos', 'win32', 'aix', 'os400']
|
||||
|
||||
describe('find-node-directory', function () {
|
||||
// we should find the directory based on the directory
|
||||
// the script is running in and it should match the layout
|
||||
// in a build tree where npm is installed in
|
||||
// .... /deps/npm
|
||||
it('test find-node-directory - node install', function () {
|
||||
for (var next = 0; next < platforms.length; next++) {
|
||||
var processObj = { execPath: '/x/y/bin/node', platform: platforms[next] }
|
||||
assert.strictEqual(
|
||||
findNodeDirectory('/x/deps/npm/node_modules/node-gyp/lib', processObj),
|
||||
path.join('/x'))
|
||||
}
|
||||
})
|
||||
|
||||
// we should find the directory based on the directory
|
||||
// the script is running in and it should match the layout
|
||||
// in an installed tree where npm is installed in
|
||||
// .... /lib/node_modules/npm or .../node_modules/npm
|
||||
// depending on the patform
|
||||
it('test find-node-directory - node build', function () {
|
||||
for (var next = 0; next < platforms.length; next++) {
|
||||
var processObj = { execPath: '/x/y/bin/node', platform: platforms[next] }
|
||||
if (platforms[next] === 'win32') {
|
||||
assert.strictEqual(
|
||||
findNodeDirectory('/y/node_modules/npm/node_modules/node-gyp/lib',
|
||||
processObj), path.join('/y'))
|
||||
} else {
|
||||
assert.strictEqual(
|
||||
findNodeDirectory('/y/lib/node_modules/npm/node_modules/node-gyp/lib',
|
||||
processObj), path.join('/y'))
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
// we should find the directory based on the execPath
|
||||
// for node and match because it was in the bin directory
|
||||
it('test find-node-directory - node in bin directory', function () {
|
||||
for (var next = 0; next < platforms.length; next++) {
|
||||
var processObj = { execPath: '/x/y/bin/node', platform: platforms[next] }
|
||||
assert.strictEqual(
|
||||
findNodeDirectory('/nothere/npm/node_modules/node-gyp/lib', processObj),
|
||||
path.join('/x/y'))
|
||||
}
|
||||
})
|
||||
|
||||
// we should find the directory based on the execPath
|
||||
// for node and match because it was in the Release directory
|
||||
it('test find-node-directory - node in build release dir', function () {
|
||||
for (var next = 0; next < platforms.length; next++) {
|
||||
var processObj
|
||||
if (platforms[next] === 'win32') {
|
||||
processObj = { execPath: '/x/y/Release/node', platform: platforms[next] }
|
||||
} else {
|
||||
processObj = {
|
||||
execPath: '/x/y/out/Release/node',
|
||||
platform: platforms[next]
|
||||
}
|
||||
}
|
||||
|
||||
assert.strictEqual(
|
||||
findNodeDirectory('/nothere/npm/node_modules/node-gyp/lib', processObj),
|
||||
path.join('/x/y'))
|
||||
}
|
||||
})
|
||||
|
||||
// we should find the directory based on the execPath
|
||||
// for node and match because it was in the Debug directory
|
||||
it('test find-node-directory - node in Debug release dir', function () {
|
||||
for (var next = 0; next < platforms.length; next++) {
|
||||
var processObj
|
||||
if (platforms[next] === 'win32') {
|
||||
processObj = { execPath: '/a/b/Debug/node', platform: platforms[next] }
|
||||
} else {
|
||||
processObj = { execPath: '/a/b/out/Debug/node', platform: platforms[next] }
|
||||
}
|
||||
|
||||
assert.strictEqual(
|
||||
findNodeDirectory('/nothere/npm/node_modules/node-gyp/lib', processObj),
|
||||
path.join('/a/b'))
|
||||
}
|
||||
})
|
||||
|
||||
// we should not find it as it will not match based on the execPath nor
|
||||
// the directory from which the script is running
|
||||
it('test find-node-directory - not found', function () {
|
||||
for (var next = 0; next < platforms.length; next++) {
|
||||
var processObj = { execPath: '/x/y/z/y', platform: next }
|
||||
assert.strictEqual(findNodeDirectory('/a/b/c/d', processObj), '')
|
||||
}
|
||||
})
|
||||
|
||||
// we should find the directory based on the directory
|
||||
// the script is running in and it should match the layout
|
||||
// in a build tree where npm is installed in
|
||||
// .... /deps/npm
|
||||
// same test as above but make sure additional directory entries
|
||||
// don't cause an issue
|
||||
it('test find-node-directory - node install', function () {
|
||||
for (var next = 0; next < platforms.length; next++) {
|
||||
var processObj = { execPath: '/x/y/bin/node', platform: platforms[next] }
|
||||
assert.strictEqual(
|
||||
findNodeDirectory('/x/y/z/a/b/c/deps/npm/node_modules/node-gyp/lib',
|
||||
processObj), path.join('/x/y/z/a/b/c'))
|
||||
}
|
||||
})
|
||||
})
|
||||
213
desktop-operator/node_modules/node-gyp/test/test-find-python.js
generated
vendored
Normal file
213
desktop-operator/node_modules/node-gyp/test/test-find-python.js
generated
vendored
Normal file
@@ -0,0 +1,213 @@
|
||||
'use strict'
|
||||
|
||||
delete process.env.PYTHON
|
||||
|
||||
const { describe, it } = require('mocha')
|
||||
const assert = require('assert')
|
||||
const findPython = require('../lib/find-python')
|
||||
const execFile = require('child_process').execFile
|
||||
const PythonFinder = findPython.test.PythonFinder
|
||||
|
||||
require('npmlog').level = 'warn'
|
||||
|
||||
describe('find-python', function () {
|
||||
it('find python', function () {
|
||||
findPython.test.findPython(null, function (err, found) {
|
||||
assert.strictEqual(err, null)
|
||||
var proc = execFile(found, ['-V'], function (err, stdout, stderr) {
|
||||
assert.strictEqual(err, null)
|
||||
assert.ok(/Python 3/.test(stdout))
|
||||
assert.strictEqual(stderr, '')
|
||||
})
|
||||
proc.stdout.setEncoding('utf-8')
|
||||
proc.stderr.setEncoding('utf-8')
|
||||
})
|
||||
})
|
||||
|
||||
function poison (object, property) {
|
||||
function fail () {
|
||||
console.error(Error(`Property ${property} should not have been accessed.`))
|
||||
process.abort()
|
||||
}
|
||||
var descriptor = {
|
||||
configurable: false,
|
||||
enumerable: false,
|
||||
get: fail,
|
||||
set: fail
|
||||
}
|
||||
Object.defineProperty(object, property, descriptor)
|
||||
}
|
||||
|
||||
function TestPythonFinder () {
|
||||
PythonFinder.apply(this, arguments)
|
||||
}
|
||||
TestPythonFinder.prototype = Object.create(PythonFinder.prototype)
|
||||
// Silence npmlog - remove for debugging
|
||||
TestPythonFinder.prototype.log = {
|
||||
silly: () => {},
|
||||
verbose: () => {},
|
||||
info: () => {},
|
||||
warn: () => {},
|
||||
error: () => {}
|
||||
}
|
||||
delete TestPythonFinder.prototype.env.NODE_GYP_FORCE_PYTHON
|
||||
|
||||
it('find python - python', function () {
|
||||
var f = new TestPythonFinder('python', done)
|
||||
f.execFile = function (program, args, opts, cb) {
|
||||
f.execFile = function (program, args, opts, cb) {
|
||||
poison(f, 'execFile')
|
||||
assert.strictEqual(program, '/path/python')
|
||||
assert.ok(/sys\.version_info/.test(args[1]))
|
||||
cb(null, '3.9.1')
|
||||
}
|
||||
assert.strictEqual(program,
|
||||
process.platform === 'win32' ? '"python"' : 'python')
|
||||
assert.ok(/sys\.executable/.test(args[1]))
|
||||
cb(null, '/path/python')
|
||||
}
|
||||
f.findPython()
|
||||
|
||||
function done (err, python) {
|
||||
assert.strictEqual(err, null)
|
||||
assert.strictEqual(python, '/path/python')
|
||||
}
|
||||
})
|
||||
|
||||
it('find python - python too old', function () {
|
||||
var f = new TestPythonFinder(null, done)
|
||||
f.execFile = function (program, args, opts, cb) {
|
||||
if (/sys\.executable/.test(args[args.length - 1])) {
|
||||
cb(null, '/path/python')
|
||||
} else if (/sys\.version_info/.test(args[args.length - 1])) {
|
||||
cb(null, '2.3.4')
|
||||
} else {
|
||||
assert.fail()
|
||||
}
|
||||
}
|
||||
f.findPython()
|
||||
|
||||
function done (err) {
|
||||
assert.ok(/Could not find any Python/.test(err))
|
||||
assert.ok(/not supported/i.test(f.errorLog))
|
||||
}
|
||||
})
|
||||
|
||||
it('find python - no python', function () {
|
||||
var f = new TestPythonFinder(null, done)
|
||||
f.execFile = function (program, args, opts, cb) {
|
||||
if (/sys\.executable/.test(args[args.length - 1])) {
|
||||
cb(new Error('not found'))
|
||||
} else if (/sys\.version_info/.test(args[args.length - 1])) {
|
||||
cb(new Error('not a Python executable'))
|
||||
} else {
|
||||
assert.fail()
|
||||
}
|
||||
}
|
||||
f.findPython()
|
||||
|
||||
function done (err) {
|
||||
assert.ok(/Could not find any Python/.test(err))
|
||||
assert.ok(/not in PATH/.test(f.errorLog))
|
||||
}
|
||||
})
|
||||
|
||||
it('find python - no python2, no python, unix', function () {
|
||||
var f = new TestPythonFinder(null, done)
|
||||
f.checkPyLauncher = assert.fail
|
||||
f.win = false
|
||||
|
||||
f.execFile = function (program, args, opts, cb) {
|
||||
if (/sys\.executable/.test(args[args.length - 1])) {
|
||||
cb(new Error('not found'))
|
||||
} else {
|
||||
assert.fail()
|
||||
}
|
||||
}
|
||||
f.findPython()
|
||||
|
||||
function done (err) {
|
||||
assert.ok(/Could not find any Python/.test(err))
|
||||
assert.ok(/not in PATH/.test(f.errorLog))
|
||||
}
|
||||
})
|
||||
|
||||
it('find python - no python, use python launcher', function () {
|
||||
var f = new TestPythonFinder(null, done)
|
||||
f.win = true
|
||||
|
||||
f.execFile = function (program, args, opts, cb) {
|
||||
if (program === 'py.exe') {
|
||||
assert.notStrictEqual(args.indexOf('-3'), -1)
|
||||
assert.notStrictEqual(args.indexOf('-c'), -1)
|
||||
return cb(null, 'Z:\\snake.exe')
|
||||
}
|
||||
if (/sys\.executable/.test(args[args.length - 1])) {
|
||||
cb(new Error('not found'))
|
||||
} else if (f.winDefaultLocations.includes(program)) {
|
||||
cb(new Error('not found'))
|
||||
} else if (/sys\.version_info/.test(args[args.length - 1])) {
|
||||
if (program === 'Z:\\snake.exe') {
|
||||
cb(null, '3.9.0')
|
||||
} else {
|
||||
assert.fail()
|
||||
}
|
||||
} else {
|
||||
assert.fail()
|
||||
}
|
||||
}
|
||||
f.findPython()
|
||||
|
||||
function done (err, python) {
|
||||
assert.strictEqual(err, null)
|
||||
assert.strictEqual(python, 'Z:\\snake.exe')
|
||||
}
|
||||
})
|
||||
|
||||
it('find python - no python, no python launcher, good guess', function () {
|
||||
var f = new TestPythonFinder(null, done)
|
||||
f.win = true
|
||||
const expectedProgram = f.winDefaultLocations[0]
|
||||
|
||||
f.execFile = function (program, args, opts, cb) {
|
||||
if (program === 'py.exe') {
|
||||
return cb(new Error('not found'))
|
||||
}
|
||||
if (/sys\.executable/.test(args[args.length - 1])) {
|
||||
cb(new Error('not found'))
|
||||
} else if (program === expectedProgram &&
|
||||
/sys\.version_info/.test(args[args.length - 1])) {
|
||||
cb(null, '3.7.3')
|
||||
} else {
|
||||
assert.fail()
|
||||
}
|
||||
}
|
||||
f.findPython()
|
||||
|
||||
function done (err, python) {
|
||||
assert.strictEqual(err, null)
|
||||
assert.ok(python === expectedProgram)
|
||||
}
|
||||
})
|
||||
|
||||
it('find python - no python, no python launcher, bad guess', function () {
|
||||
var f = new TestPythonFinder(null, done)
|
||||
f.win = true
|
||||
|
||||
f.execFile = function (program, args, opts, cb) {
|
||||
if (/sys\.executable/.test(args[args.length - 1])) {
|
||||
cb(new Error('not found'))
|
||||
} else if (/sys\.version_info/.test(args[args.length - 1])) {
|
||||
cb(new Error('not a Python executable'))
|
||||
} else {
|
||||
assert.fail()
|
||||
}
|
||||
}
|
||||
f.findPython()
|
||||
|
||||
function done (err) {
|
||||
assert.ok(/Could not find any Python/.test(err))
|
||||
assert.ok(/not in PATH/.test(f.errorLog))
|
||||
}
|
||||
})
|
||||
})
|
||||
670
desktop-operator/node_modules/node-gyp/test/test-find-visualstudio.js
generated
vendored
Normal file
670
desktop-operator/node_modules/node-gyp/test/test-find-visualstudio.js
generated
vendored
Normal file
@@ -0,0 +1,670 @@
|
||||
'use strict'
|
||||
|
||||
const { describe, it } = require('mocha')
|
||||
const assert = require('assert')
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const findVisualStudio = require('../lib/find-visualstudio')
|
||||
const VisualStudioFinder = findVisualStudio.test.VisualStudioFinder
|
||||
|
||||
const semverV1 = { major: 1, minor: 0, patch: 0 }
|
||||
|
||||
delete process.env.VCINSTALLDIR
|
||||
|
||||
function poison (object, property) {
|
||||
function fail () {
|
||||
console.error(Error(`Property ${property} should not have been accessed.`))
|
||||
process.abort()
|
||||
}
|
||||
var descriptor = {
|
||||
configurable: false,
|
||||
enumerable: false,
|
||||
get: fail,
|
||||
set: fail
|
||||
}
|
||||
Object.defineProperty(object, property, descriptor)
|
||||
}
|
||||
|
||||
function TestVisualStudioFinder () { VisualStudioFinder.apply(this, arguments) }
|
||||
TestVisualStudioFinder.prototype = Object.create(VisualStudioFinder.prototype)
|
||||
// Silence npmlog - remove for debugging
|
||||
TestVisualStudioFinder.prototype.log = {
|
||||
silly: () => {},
|
||||
verbose: () => {},
|
||||
info: () => {},
|
||||
warn: () => {},
|
||||
error: () => {}
|
||||
}
|
||||
|
||||
describe('find-visualstudio', function () {
|
||||
it('VS2013', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info, {
|
||||
msBuild: 'C:\\MSBuild12\\MSBuild.exe',
|
||||
path: 'C:\\VS2013',
|
||||
sdk: null,
|
||||
toolset: 'v120',
|
||||
version: '12.0',
|
||||
versionMajor: 12,
|
||||
versionMinor: 0,
|
||||
versionYear: 2013
|
||||
})
|
||||
})
|
||||
|
||||
finder.findVisualStudio2017OrNewer = (cb) => {
|
||||
finder.parseData(new Error(), '', '', cb)
|
||||
}
|
||||
finder.regSearchKeys = (keys, value, addOpts, cb) => {
|
||||
for (var i = 0; i < keys.length; ++i) {
|
||||
const fullName = `${keys[i]}\\${value}`
|
||||
switch (fullName) {
|
||||
case 'HKLM\\Software\\Microsoft\\VisualStudio\\SxS\\VC7\\14.0':
|
||||
case 'HKLM\\Software\\Wow6432Node\\Microsoft\\VisualStudio\\SxS\\VC7\\14.0':
|
||||
continue
|
||||
case 'HKLM\\Software\\Microsoft\\VisualStudio\\SxS\\VC7\\12.0':
|
||||
assert.ok(true, `expected search for registry value ${fullName}`)
|
||||
return cb(null, 'C:\\VS2013\\VC\\')
|
||||
case 'HKLM\\Software\\Microsoft\\MSBuild\\ToolsVersions\\12.0\\MSBuildToolsPath':
|
||||
assert.ok(true, `expected search for registry value ${fullName}`)
|
||||
return cb(null, 'C:\\MSBuild12\\')
|
||||
default:
|
||||
assert.fail(`unexpected search for registry value ${fullName}`)
|
||||
}
|
||||
}
|
||||
return cb(new Error())
|
||||
}
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('VS2013 should not be found on new node versions', function () {
|
||||
const finder = new TestVisualStudioFinder({
|
||||
major: 10,
|
||||
minor: 0,
|
||||
patch: 0
|
||||
}, null, (err, info) => {
|
||||
assert.ok(/find .* Visual Studio/i.test(err), 'expect error')
|
||||
assert.ok(!info, 'no data')
|
||||
})
|
||||
|
||||
finder.findVisualStudio2017OrNewer = (cb) => {
|
||||
const file = path.join(__dirname, 'fixtures', 'VS_2017_Unusable.txt')
|
||||
const data = fs.readFileSync(file)
|
||||
finder.parseData(null, data, '', cb)
|
||||
}
|
||||
finder.regSearchKeys = (keys, value, addOpts, cb) => {
|
||||
for (var i = 0; i < keys.length; ++i) {
|
||||
const fullName = `${keys[i]}\\${value}`
|
||||
switch (fullName) {
|
||||
case 'HKLM\\Software\\Microsoft\\VisualStudio\\SxS\\VC7\\14.0':
|
||||
case 'HKLM\\Software\\Wow6432Node\\Microsoft\\VisualStudio\\SxS\\VC7\\14.0':
|
||||
continue
|
||||
default:
|
||||
assert.fail(`unexpected search for registry value ${fullName}`)
|
||||
}
|
||||
}
|
||||
return cb(new Error())
|
||||
}
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('VS2015', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info, {
|
||||
msBuild: 'C:\\MSBuild14\\MSBuild.exe',
|
||||
path: 'C:\\VS2015',
|
||||
sdk: null,
|
||||
toolset: 'v140',
|
||||
version: '14.0',
|
||||
versionMajor: 14,
|
||||
versionMinor: 0,
|
||||
versionYear: 2015
|
||||
})
|
||||
})
|
||||
|
||||
finder.findVisualStudio2017OrNewer = (cb) => {
|
||||
finder.parseData(new Error(), '', '', cb)
|
||||
}
|
||||
finder.regSearchKeys = (keys, value, addOpts, cb) => {
|
||||
for (var i = 0; i < keys.length; ++i) {
|
||||
const fullName = `${keys[i]}\\${value}`
|
||||
switch (fullName) {
|
||||
case 'HKLM\\Software\\Microsoft\\VisualStudio\\SxS\\VC7\\14.0':
|
||||
assert.ok(true, `expected search for registry value ${fullName}`)
|
||||
return cb(null, 'C:\\VS2015\\VC\\')
|
||||
case 'HKLM\\Software\\Microsoft\\MSBuild\\ToolsVersions\\14.0\\MSBuildToolsPath':
|
||||
assert.ok(true, `expected search for registry value ${fullName}`)
|
||||
return cb(null, 'C:\\MSBuild14\\')
|
||||
default:
|
||||
assert.fail(`unexpected search for registry value ${fullName}`)
|
||||
}
|
||||
}
|
||||
return cb(new Error())
|
||||
}
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('error from PowerShell', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, null, null)
|
||||
|
||||
finder.parseData(new Error(), '', '', (info) => {
|
||||
assert.ok(/use PowerShell/i.test(finder.errorLog[0]), 'expect error')
|
||||
assert.ok(!info, 'no data')
|
||||
})
|
||||
})
|
||||
|
||||
it('empty output from PowerShell', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, null, null)
|
||||
|
||||
finder.parseData(null, '', '', (info) => {
|
||||
assert.ok(/use PowerShell/i.test(finder.errorLog[0]), 'expect error')
|
||||
assert.ok(!info, 'no data')
|
||||
})
|
||||
})
|
||||
|
||||
it('output from PowerShell not JSON', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, null, null)
|
||||
|
||||
finder.parseData(null, 'AAAABBBB', '', (info) => {
|
||||
assert.ok(/use PowerShell/i.test(finder.errorLog[0]), 'expect error')
|
||||
assert.ok(!info, 'no data')
|
||||
})
|
||||
})
|
||||
|
||||
it('wrong JSON from PowerShell', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, null, null)
|
||||
|
||||
finder.parseData(null, '{}', '', (info) => {
|
||||
assert.ok(/use PowerShell/i.test(finder.errorLog[0]), 'expect error')
|
||||
assert.ok(!info, 'no data')
|
||||
})
|
||||
})
|
||||
|
||||
it('empty JSON from PowerShell', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, null, null)
|
||||
|
||||
finder.parseData(null, '[]', '', (info) => {
|
||||
assert.ok(/find .* Visual Studio/i.test(finder.errorLog[0]), 'expect error')
|
||||
assert.ok(!info, 'no data')
|
||||
})
|
||||
})
|
||||
|
||||
it('future version', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, null, null)
|
||||
|
||||
finder.parseData(null, JSON.stringify([{
|
||||
packages: [
|
||||
'Microsoft.VisualStudio.Component.VC.Tools.x86.x64',
|
||||
'Microsoft.VisualStudio.Component.Windows10SDK.17763',
|
||||
'Microsoft.VisualStudio.VC.MSBuild.Base'
|
||||
],
|
||||
path: 'C:\\VS',
|
||||
version: '9999.9999.9999.9999'
|
||||
}]), '', (info) => {
|
||||
assert.ok(/unknown version/i.test(finder.errorLog[0]), 'expect error')
|
||||
assert.ok(/find .* Visual Studio/i.test(finder.errorLog[1]), 'expect error')
|
||||
assert.ok(!info, 'no data')
|
||||
})
|
||||
})
|
||||
|
||||
it('single unusable VS2017', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, null, null)
|
||||
|
||||
const file = path.join(__dirname, 'fixtures', 'VS_2017_Unusable.txt')
|
||||
const data = fs.readFileSync(file)
|
||||
finder.parseData(null, data, '', (info) => {
|
||||
assert.ok(/checking/i.test(finder.errorLog[0]), 'expect error')
|
||||
assert.ok(/find .* Visual Studio/i.test(finder.errorLog[2]), 'expect error')
|
||||
assert.ok(!info, 'no data')
|
||||
})
|
||||
})
|
||||
|
||||
it('minimal VS2017 Build Tools', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info, {
|
||||
msBuild: 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\' +
|
||||
'BuildTools\\MSBuild\\15.0\\Bin\\MSBuild.exe',
|
||||
path:
|
||||
'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools',
|
||||
sdk: '10.0.17134.0',
|
||||
toolset: 'v141',
|
||||
version: '15.9.28307.665',
|
||||
versionMajor: 15,
|
||||
versionMinor: 9,
|
||||
versionYear: 2017
|
||||
})
|
||||
})
|
||||
|
||||
poison(finder, 'regSearchKeys')
|
||||
finder.findVisualStudio2017OrNewer = (cb) => {
|
||||
const file = path.join(__dirname, 'fixtures',
|
||||
'VS_2017_BuildTools_minimal.txt')
|
||||
const data = fs.readFileSync(file)
|
||||
finder.parseData(null, data, '', cb)
|
||||
}
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('VS2017 Community with C++ workload', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info, {
|
||||
msBuild: 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\' +
|
||||
'Community\\MSBuild\\15.0\\Bin\\MSBuild.exe',
|
||||
path:
|
||||
'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community',
|
||||
sdk: '10.0.17763.0',
|
||||
toolset: 'v141',
|
||||
version: '15.9.28307.665',
|
||||
versionMajor: 15,
|
||||
versionMinor: 9,
|
||||
versionYear: 2017
|
||||
})
|
||||
})
|
||||
|
||||
poison(finder, 'regSearchKeys')
|
||||
finder.findVisualStudio2017OrNewer = (cb) => {
|
||||
const file = path.join(__dirname, 'fixtures',
|
||||
'VS_2017_Community_workload.txt')
|
||||
const data = fs.readFileSync(file)
|
||||
finder.parseData(null, data, '', cb)
|
||||
}
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('VS2017 Express', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info, {
|
||||
msBuild: 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\' +
|
||||
'WDExpress\\MSBuild\\15.0\\Bin\\MSBuild.exe',
|
||||
path:
|
||||
'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\WDExpress',
|
||||
sdk: '10.0.17763.0',
|
||||
toolset: 'v141',
|
||||
version: '15.9.28307.858',
|
||||
versionMajor: 15,
|
||||
versionMinor: 9,
|
||||
versionYear: 2017
|
||||
})
|
||||
})
|
||||
|
||||
poison(finder, 'regSearchKeys')
|
||||
finder.findVisualStudio2017OrNewer = (cb) => {
|
||||
const file = path.join(__dirname, 'fixtures', 'VS_2017_Express.txt')
|
||||
const data = fs.readFileSync(file)
|
||||
finder.parseData(null, data, '', cb)
|
||||
}
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('VS2019 Preview with C++ workload', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info, {
|
||||
msBuild: 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\' +
|
||||
'Preview\\MSBuild\\Current\\Bin\\MSBuild.exe',
|
||||
path:
|
||||
'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Preview',
|
||||
sdk: '10.0.17763.0',
|
||||
toolset: 'v142',
|
||||
version: '16.0.28608.199',
|
||||
versionMajor: 16,
|
||||
versionMinor: 0,
|
||||
versionYear: 2019
|
||||
})
|
||||
})
|
||||
|
||||
poison(finder, 'regSearchKeys')
|
||||
finder.findVisualStudio2017OrNewer = (cb) => {
|
||||
const file = path.join(__dirname, 'fixtures',
|
||||
'VS_2019_Preview.txt')
|
||||
const data = fs.readFileSync(file)
|
||||
finder.parseData(null, data, '', cb)
|
||||
}
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('minimal VS2019 Build Tools', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info, {
|
||||
msBuild: 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\' +
|
||||
'BuildTools\\MSBuild\\Current\\Bin\\MSBuild.exe',
|
||||
path:
|
||||
'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools',
|
||||
sdk: '10.0.17134.0',
|
||||
toolset: 'v142',
|
||||
version: '16.1.28922.388',
|
||||
versionMajor: 16,
|
||||
versionMinor: 1,
|
||||
versionYear: 2019
|
||||
})
|
||||
})
|
||||
|
||||
poison(finder, 'regSearchKeys')
|
||||
finder.findVisualStudio2017OrNewer = (cb) => {
|
||||
const file = path.join(__dirname, 'fixtures',
|
||||
'VS_2019_BuildTools_minimal.txt')
|
||||
const data = fs.readFileSync(file)
|
||||
finder.parseData(null, data, '', cb)
|
||||
}
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('VS2019 Community with C++ workload', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info, {
|
||||
msBuild: 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\' +
|
||||
'Community\\MSBuild\\Current\\Bin\\MSBuild.exe',
|
||||
path:
|
||||
'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community',
|
||||
sdk: '10.0.17763.0',
|
||||
toolset: 'v142',
|
||||
version: '16.1.28922.388',
|
||||
versionMajor: 16,
|
||||
versionMinor: 1,
|
||||
versionYear: 2019
|
||||
})
|
||||
})
|
||||
|
||||
poison(finder, 'regSearchKeys')
|
||||
finder.findVisualStudio2017OrNewer = (cb) => {
|
||||
const file = path.join(__dirname, 'fixtures',
|
||||
'VS_2019_Community_workload.txt')
|
||||
const data = fs.readFileSync(file)
|
||||
finder.parseData(null, data, '', cb)
|
||||
}
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('VS2022 Preview with C++ workload', function () {
|
||||
const msBuildPath = process.arch === 'arm64'
|
||||
? 'C:\\Program Files\\Microsoft Visual Studio\\2022\\' +
|
||||
'Community\\MSBuild\\Current\\Bin\\arm64\\MSBuild.exe'
|
||||
: 'C:\\Program Files\\Microsoft Visual Studio\\2022\\' +
|
||||
'Community\\MSBuild\\Current\\Bin\\MSBuild.exe'
|
||||
|
||||
const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info, {
|
||||
msBuild: msBuildPath,
|
||||
path:
|
||||
'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community',
|
||||
sdk: '10.0.22621.0',
|
||||
toolset: 'v143',
|
||||
version: '17.4.33213.308',
|
||||
versionMajor: 17,
|
||||
versionMinor: 4,
|
||||
versionYear: 2022
|
||||
})
|
||||
})
|
||||
|
||||
poison(finder, 'regSearchKeys')
|
||||
finder.msBuildPathExists = (path) => {
|
||||
return true
|
||||
}
|
||||
finder.findVisualStudio2017OrNewer = (cb) => {
|
||||
const file = path.join(__dirname, 'fixtures',
|
||||
'VS_2022_Community_workload.txt')
|
||||
const data = fs.readFileSync(file)
|
||||
finder.parseData(null, data, '', cb)
|
||||
}
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
function allVsVersions (finder) {
|
||||
finder.findVisualStudio2017OrNewer = (cb) => {
|
||||
const data0 = JSON.parse(fs.readFileSync(path.join(__dirname, 'fixtures',
|
||||
'VS_2017_Unusable.txt')))
|
||||
const data1 = JSON.parse(fs.readFileSync(path.join(__dirname, 'fixtures',
|
||||
'VS_2017_BuildTools_minimal.txt')))
|
||||
const data2 = JSON.parse(fs.readFileSync(path.join(__dirname, 'fixtures',
|
||||
'VS_2017_Community_workload.txt')))
|
||||
const data3 = JSON.parse(fs.readFileSync(path.join(__dirname, 'fixtures',
|
||||
'VS_2017_Express.txt')))
|
||||
const data4 = JSON.parse(fs.readFileSync(path.join(__dirname, 'fixtures',
|
||||
'VS_2019_Preview.txt')))
|
||||
const data5 = JSON.parse(fs.readFileSync(path.join(__dirname, 'fixtures',
|
||||
'VS_2019_BuildTools_minimal.txt')))
|
||||
const data6 = JSON.parse(fs.readFileSync(path.join(__dirname, 'fixtures',
|
||||
'VS_2019_Community_workload.txt')))
|
||||
const data7 = JSON.parse(fs.readFileSync(path.join(__dirname, 'fixtures',
|
||||
'VS_2022_Community_workload.txt')))
|
||||
const data = JSON.stringify(data0.concat(data1, data2, data3, data4,
|
||||
data5, data6, data7))
|
||||
finder.parseData(null, data, '', cb)
|
||||
}
|
||||
finder.regSearchKeys = (keys, value, addOpts, cb) => {
|
||||
for (var i = 0; i < keys.length; ++i) {
|
||||
const fullName = `${keys[i]}\\${value}`
|
||||
switch (fullName) {
|
||||
case 'HKLM\\Software\\Microsoft\\VisualStudio\\SxS\\VC7\\14.0':
|
||||
case 'HKLM\\Software\\Microsoft\\VisualStudio\\SxS\\VC7\\12.0':
|
||||
continue
|
||||
case 'HKLM\\Software\\Wow6432Node\\Microsoft\\VisualStudio\\SxS\\VC7\\12.0':
|
||||
return cb(null, 'C:\\VS2013\\VC\\')
|
||||
case 'HKLM\\Software\\Microsoft\\MSBuild\\ToolsVersions\\12.0\\MSBuildToolsPath':
|
||||
return cb(null, 'C:\\MSBuild12\\')
|
||||
case 'HKLM\\Software\\Wow6432Node\\Microsoft\\VisualStudio\\SxS\\VC7\\14.0':
|
||||
return cb(null, 'C:\\VS2015\\VC\\')
|
||||
case 'HKLM\\Software\\Microsoft\\MSBuild\\ToolsVersions\\14.0\\MSBuildToolsPath':
|
||||
return cb(null, 'C:\\MSBuild14\\')
|
||||
default:
|
||||
assert.fail(`unexpected search for registry value ${fullName}`)
|
||||
}
|
||||
}
|
||||
return cb(new Error())
|
||||
}
|
||||
}
|
||||
|
||||
it('fail when looking for invalid path', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, 'AABB', (err, info) => {
|
||||
assert.ok(/find .* Visual Studio/i.test(err), 'expect error')
|
||||
assert.ok(!info, 'no data')
|
||||
})
|
||||
|
||||
allVsVersions(finder)
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('look for VS2013 by version number', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, '2013', (err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info.versionYear, 2013)
|
||||
})
|
||||
|
||||
allVsVersions(finder)
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('look for VS2013 by installation path', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, 'C:\\VS2013',
|
||||
(err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info.path, 'C:\\VS2013')
|
||||
})
|
||||
|
||||
allVsVersions(finder)
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('look for VS2015 by version number', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, '2015', (err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info.versionYear, 2015)
|
||||
})
|
||||
|
||||
allVsVersions(finder)
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('look for VS2015 by installation path', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, 'C:\\VS2015',
|
||||
(err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info.path, 'C:\\VS2015')
|
||||
})
|
||||
|
||||
allVsVersions(finder)
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('look for VS2017 by version number', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, '2017', (err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info.versionYear, 2017)
|
||||
})
|
||||
|
||||
allVsVersions(finder)
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('look for VS2017 by installation path', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1,
|
||||
'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community',
|
||||
(err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info.path,
|
||||
'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community')
|
||||
})
|
||||
|
||||
allVsVersions(finder)
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('look for VS2019 by version number', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, '2019', (err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info.versionYear, 2019)
|
||||
})
|
||||
|
||||
allVsVersions(finder)
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('look for VS2019 by installation path', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1,
|
||||
'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools',
|
||||
(err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info.path,
|
||||
'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools')
|
||||
})
|
||||
|
||||
allVsVersions(finder)
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('look for VS2022 by version number', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, '2022', (err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info.versionYear, 2022)
|
||||
})
|
||||
|
||||
finder.msBuildPathExists = (path) => {
|
||||
return true
|
||||
}
|
||||
|
||||
allVsVersions(finder)
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('msvs_version match should be case insensitive', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1,
|
||||
'c:\\program files (x86)\\microsoft visual studio\\2019\\BUILDTOOLS',
|
||||
(err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info.path,
|
||||
'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools')
|
||||
})
|
||||
|
||||
allVsVersions(finder)
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('latest version should be found by default', function () {
|
||||
const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info.versionYear, 2022)
|
||||
})
|
||||
|
||||
finder.msBuildPathExists = (path) => {
|
||||
return true
|
||||
}
|
||||
|
||||
allVsVersions(finder)
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('run on a usable VS Command Prompt', function () {
|
||||
process.env.VCINSTALLDIR = 'C:\\VS2015\\VC'
|
||||
// VSINSTALLDIR is not defined on Visual C++ Build Tools 2015
|
||||
delete process.env.VSINSTALLDIR
|
||||
|
||||
const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info.path, 'C:\\VS2015')
|
||||
})
|
||||
|
||||
allVsVersions(finder)
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('VCINSTALLDIR match should be case insensitive', function () {
|
||||
process.env.VCINSTALLDIR =
|
||||
'c:\\program files (x86)\\microsoft visual studio\\2019\\BUILDTOOLS\\VC'
|
||||
|
||||
const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info.path,
|
||||
'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools')
|
||||
})
|
||||
|
||||
allVsVersions(finder)
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('run on a unusable VS Command Prompt', function () {
|
||||
process.env.VCINSTALLDIR =
|
||||
'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildToolsUnusable\\VC'
|
||||
|
||||
const finder = new TestVisualStudioFinder(semverV1, null, (err, info) => {
|
||||
assert.ok(/find .* Visual Studio/i.test(err), 'expect error')
|
||||
assert.ok(!info, 'no data')
|
||||
})
|
||||
|
||||
allVsVersions(finder)
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('run on a VS Command Prompt with matching msvs_version', function () {
|
||||
process.env.VCINSTALLDIR = 'C:\\VS2015\\VC'
|
||||
|
||||
const finder = new TestVisualStudioFinder(semverV1, 'C:\\VS2015',
|
||||
(err, info) => {
|
||||
assert.strictEqual(err, null)
|
||||
assert.deepStrictEqual(info.path, 'C:\\VS2015')
|
||||
})
|
||||
|
||||
allVsVersions(finder)
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
|
||||
it('run on a VS Command Prompt with mismatched msvs_version', function () {
|
||||
process.env.VCINSTALLDIR =
|
||||
'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC'
|
||||
|
||||
const finder = new TestVisualStudioFinder(semverV1, 'C:\\VS2015',
|
||||
(err, info) => {
|
||||
assert.ok(/find .* Visual Studio/i.test(err), 'expect error')
|
||||
assert.ok(!info, 'no data')
|
||||
})
|
||||
|
||||
allVsVersions(finder)
|
||||
finder.findVisualStudio()
|
||||
})
|
||||
})
|
||||
139
desktop-operator/node_modules/node-gyp/test/test-install.js
generated
vendored
Normal file
139
desktop-operator/node_modules/node-gyp/test/test-install.js
generated
vendored
Normal file
@@ -0,0 +1,139 @@
|
||||
'use strict'
|
||||
|
||||
const { describe, it, after } = require('mocha')
|
||||
const assert = require('assert')
|
||||
const path = require('path')
|
||||
const os = require('os')
|
||||
const util = require('util')
|
||||
const { test: { download, install } } = require('../lib/install')
|
||||
const rimraf = require('rimraf')
|
||||
const gyp = require('../lib/node-gyp')
|
||||
const log = require('npmlog')
|
||||
const semver = require('semver')
|
||||
const stream = require('stream')
|
||||
const streamPipeline = util.promisify(stream.pipeline)
|
||||
|
||||
log.level = 'error' // we expect a warning
|
||||
|
||||
const TIMEOUT = 20 * 60 * 1000
|
||||
|
||||
describe('install', function () {
|
||||
it('EACCES retry once', async () => {
|
||||
const fs = {
|
||||
promises: {
|
||||
stat (_) {
|
||||
const err = new Error()
|
||||
err.code = 'EACCES'
|
||||
assert.ok(true)
|
||||
throw err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const Gyp = {
|
||||
devDir: __dirname,
|
||||
opts: {
|
||||
ensure: true
|
||||
},
|
||||
commands: {
|
||||
install (argv, cb) {
|
||||
install(fs, Gyp, argv).then(cb, cb)
|
||||
},
|
||||
remove (_, cb) {
|
||||
cb()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
await install(fs, Gyp, [])
|
||||
} catch (err) {
|
||||
assert.ok(true)
|
||||
if (/"pre" versions of node cannot be installed/.test(err.message)) {
|
||||
assert.ok(true)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
// only run these tests if we are running a version of Node with predictable version path behavior
|
||||
const skipParallelInstallTests = process.env.FAST_TEST ||
|
||||
process.release.name !== 'node' ||
|
||||
semver.prerelease(process.version) !== null ||
|
||||
semver.satisfies(process.version, '<10')
|
||||
|
||||
async function parallelInstallsTest (test, fs, devDir, prog) {
|
||||
if (skipParallelInstallTests) {
|
||||
return test.skip('Skipping parallel installs test due to test environment configuration')
|
||||
}
|
||||
|
||||
after(async () => {
|
||||
await util.promisify(rimraf)(devDir)
|
||||
})
|
||||
|
||||
const expectedDir = path.join(devDir, process.version.replace(/^v/, ''))
|
||||
await util.promisify(rimraf)(expectedDir)
|
||||
|
||||
await Promise.all([
|
||||
install(fs, prog, []),
|
||||
install(fs, prog, []),
|
||||
install(fs, prog, []),
|
||||
install(fs, prog, []),
|
||||
install(fs, prog, []),
|
||||
install(fs, prog, []),
|
||||
install(fs, prog, []),
|
||||
install(fs, prog, []),
|
||||
install(fs, prog, []),
|
||||
install(fs, prog, [])
|
||||
])
|
||||
}
|
||||
|
||||
it('parallel installs (ensure=true)', async function () {
|
||||
this.timeout(TIMEOUT)
|
||||
|
||||
const fs = require('graceful-fs')
|
||||
const devDir = await util.promisify(fs.mkdtemp)(path.join(os.tmpdir(), 'node-gyp-test-'))
|
||||
|
||||
const prog = gyp()
|
||||
prog.parseArgv([])
|
||||
prog.devDir = devDir
|
||||
prog.opts.ensure = true
|
||||
log.level = 'warn'
|
||||
|
||||
await parallelInstallsTest(this, fs, devDir, prog)
|
||||
})
|
||||
|
||||
it('parallel installs (ensure=false)', async function () {
|
||||
this.timeout(TIMEOUT)
|
||||
|
||||
const fs = require('graceful-fs')
|
||||
const devDir = await util.promisify(fs.mkdtemp)(path.join(os.tmpdir(), 'node-gyp-test-'))
|
||||
|
||||
const prog = gyp()
|
||||
prog.parseArgv([])
|
||||
prog.devDir = devDir
|
||||
prog.opts.ensure = false
|
||||
log.level = 'warn'
|
||||
|
||||
await parallelInstallsTest(this, fs, devDir, prog)
|
||||
})
|
||||
|
||||
it('parallel installs (tarball)', async function () {
|
||||
this.timeout(TIMEOUT)
|
||||
|
||||
const fs = require('graceful-fs')
|
||||
const devDir = await util.promisify(fs.mkdtemp)(path.join(os.tmpdir(), 'node-gyp-test-'))
|
||||
|
||||
const prog = gyp()
|
||||
prog.parseArgv([])
|
||||
prog.devDir = devDir
|
||||
prog.opts.tarball = path.join(devDir, 'node-headers.tar.gz')
|
||||
log.level = 'warn'
|
||||
|
||||
await streamPipeline(
|
||||
(await download(prog, `https://nodejs.org/dist/${process.version}/node-${process.version}.tar.gz`)).body,
|
||||
fs.createWriteStream(prog.opts.tarball)
|
||||
)
|
||||
|
||||
await parallelInstallsTest(this, fs, devDir, prog)
|
||||
})
|
||||
})
|
||||
41
desktop-operator/node_modules/node-gyp/test/test-options.js
generated
vendored
Normal file
41
desktop-operator/node_modules/node-gyp/test/test-options.js
generated
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
'use strict'
|
||||
|
||||
const { describe, it } = require('mocha')
|
||||
const assert = require('assert')
|
||||
const gyp = require('../lib/node-gyp')
|
||||
|
||||
describe('options', function () {
|
||||
it('options in environment', () => {
|
||||
// `npm test` dumps a ton of npm_config_* variables in the environment.
|
||||
Object.keys(process.env)
|
||||
.filter((key) => /^npm_config_/.test(key))
|
||||
.forEach((key) => { delete process.env[key] })
|
||||
|
||||
// in some platforms, certain keys are stubborn and cannot be removed
|
||||
const keys = Object.keys(process.env)
|
||||
.filter((key) => /^npm_config_/.test(key))
|
||||
.map((key) => key.substring('npm_config_'.length))
|
||||
.concat('argv', 'x')
|
||||
|
||||
// Zero-length keys should get filtered out.
|
||||
process.env.npm_config_ = '42'
|
||||
// Other keys should get added.
|
||||
process.env.npm_config_x = '42'
|
||||
// Except loglevel.
|
||||
process.env.npm_config_loglevel = 'debug'
|
||||
|
||||
const g = gyp()
|
||||
g.parseArgv(['rebuild']) // Also sets opts.argv.
|
||||
|
||||
assert.deepStrictEqual(Object.keys(g.opts).sort(), keys.sort())
|
||||
})
|
||||
|
||||
it('options with spaces in environment', () => {
|
||||
process.env.npm_config_force_process_config = 'true'
|
||||
|
||||
const g = gyp()
|
||||
g.parseArgv(['rebuild']) // Also sets opts.argv.
|
||||
|
||||
assert.strictEqual(g.opts['force-process-config'], 'true')
|
||||
})
|
||||
})
|
||||
401
desktop-operator/node_modules/node-gyp/test/test-process-release.js
generated
vendored
Normal file
401
desktop-operator/node_modules/node-gyp/test/test-process-release.js
generated
vendored
Normal file
@@ -0,0 +1,401 @@
|
||||
'use strict'
|
||||
|
||||
const { describe, it } = require('mocha')
|
||||
const assert = require('assert')
|
||||
const processRelease = require('../lib/process-release')
|
||||
|
||||
describe('process-release', function () {
|
||||
it('test process release - process.version = 0.8.20', function () {
|
||||
var release = processRelease([], { opts: {} }, 'v0.8.20', null)
|
||||
|
||||
assert.strictEqual(release.semver.version, '0.8.20')
|
||||
delete release.semver
|
||||
|
||||
assert.deepStrictEqual(release, {
|
||||
version: '0.8.20',
|
||||
name: 'node',
|
||||
baseUrl: 'https://nodejs.org/dist/v0.8.20/',
|
||||
tarballUrl: 'https://nodejs.org/dist/v0.8.20/node-v0.8.20.tar.gz',
|
||||
shasumsUrl: 'https://nodejs.org/dist/v0.8.20/SHASUMS256.txt',
|
||||
versionDir: '0.8.20',
|
||||
ia32: { libUrl: 'https://nodejs.org/dist/v0.8.20/node.lib', libPath: 'node.lib' },
|
||||
x64: { libUrl: 'https://nodejs.org/dist/v0.8.20/x64/node.lib', libPath: 'x64/node.lib' },
|
||||
arm64: { libUrl: 'https://nodejs.org/dist/v0.8.20/arm64/node.lib', libPath: 'arm64/node.lib' }
|
||||
})
|
||||
})
|
||||
|
||||
it('test process release - process.version = 0.10.21', function () {
|
||||
var release = processRelease([], { opts: {} }, 'v0.10.21', null)
|
||||
|
||||
assert.strictEqual(release.semver.version, '0.10.21')
|
||||
delete release.semver
|
||||
|
||||
assert.deepStrictEqual(release, {
|
||||
version: '0.10.21',
|
||||
name: 'node',
|
||||
baseUrl: 'https://nodejs.org/dist/v0.10.21/',
|
||||
tarballUrl: 'https://nodejs.org/dist/v0.10.21/node-v0.10.21.tar.gz',
|
||||
shasumsUrl: 'https://nodejs.org/dist/v0.10.21/SHASUMS256.txt',
|
||||
versionDir: '0.10.21',
|
||||
ia32: { libUrl: 'https://nodejs.org/dist/v0.10.21/node.lib', libPath: 'node.lib' },
|
||||
x64: { libUrl: 'https://nodejs.org/dist/v0.10.21/x64/node.lib', libPath: 'x64/node.lib' },
|
||||
arm64: { libUrl: 'https://nodejs.org/dist/v0.10.21/arm64/node.lib', libPath: 'arm64/node.lib' }
|
||||
})
|
||||
})
|
||||
|
||||
// prior to -headers.tar.gz
|
||||
it('test process release - process.version = 0.12.9', function () {
|
||||
var release = processRelease([], { opts: {} }, 'v0.12.9', null)
|
||||
|
||||
assert.strictEqual(release.semver.version, '0.12.9')
|
||||
delete release.semver
|
||||
|
||||
assert.deepStrictEqual(release, {
|
||||
version: '0.12.9',
|
||||
name: 'node',
|
||||
baseUrl: 'https://nodejs.org/dist/v0.12.9/',
|
||||
tarballUrl: 'https://nodejs.org/dist/v0.12.9/node-v0.12.9.tar.gz',
|
||||
shasumsUrl: 'https://nodejs.org/dist/v0.12.9/SHASUMS256.txt',
|
||||
versionDir: '0.12.9',
|
||||
ia32: { libUrl: 'https://nodejs.org/dist/v0.12.9/node.lib', libPath: 'node.lib' },
|
||||
x64: { libUrl: 'https://nodejs.org/dist/v0.12.9/x64/node.lib', libPath: 'x64/node.lib' },
|
||||
arm64: { libUrl: 'https://nodejs.org/dist/v0.12.9/arm64/node.lib', libPath: 'arm64/node.lib' }
|
||||
})
|
||||
})
|
||||
|
||||
// prior to -headers.tar.gz
|
||||
it('test process release - process.version = 0.10.41', function () {
|
||||
var release = processRelease([], { opts: {} }, 'v0.10.41', null)
|
||||
|
||||
assert.strictEqual(release.semver.version, '0.10.41')
|
||||
delete release.semver
|
||||
|
||||
assert.deepStrictEqual(release, {
|
||||
version: '0.10.41',
|
||||
name: 'node',
|
||||
baseUrl: 'https://nodejs.org/dist/v0.10.41/',
|
||||
tarballUrl: 'https://nodejs.org/dist/v0.10.41/node-v0.10.41.tar.gz',
|
||||
shasumsUrl: 'https://nodejs.org/dist/v0.10.41/SHASUMS256.txt',
|
||||
versionDir: '0.10.41',
|
||||
ia32: { libUrl: 'https://nodejs.org/dist/v0.10.41/node.lib', libPath: 'node.lib' },
|
||||
x64: { libUrl: 'https://nodejs.org/dist/v0.10.41/x64/node.lib', libPath: 'x64/node.lib' },
|
||||
arm64: { libUrl: 'https://nodejs.org/dist/v0.10.41/arm64/node.lib', libPath: 'arm64/node.lib' }
|
||||
})
|
||||
})
|
||||
|
||||
// has -headers.tar.gz
|
||||
it('test process release - process.release ~ node@0.10.42', function () {
|
||||
var release = processRelease([], { opts: {} }, 'v0.10.42', null)
|
||||
|
||||
assert.strictEqual(release.semver.version, '0.10.42')
|
||||
delete release.semver
|
||||
|
||||
assert.deepStrictEqual(release, {
|
||||
version: '0.10.42',
|
||||
name: 'node',
|
||||
baseUrl: 'https://nodejs.org/dist/v0.10.42/',
|
||||
tarballUrl: 'https://nodejs.org/dist/v0.10.42/node-v0.10.42-headers.tar.gz',
|
||||
shasumsUrl: 'https://nodejs.org/dist/v0.10.42/SHASUMS256.txt',
|
||||
versionDir: '0.10.42',
|
||||
ia32: { libUrl: 'https://nodejs.org/dist/v0.10.42/node.lib', libPath: 'node.lib' },
|
||||
x64: { libUrl: 'https://nodejs.org/dist/v0.10.42/x64/node.lib', libPath: 'x64/node.lib' },
|
||||
arm64: { libUrl: 'https://nodejs.org/dist/v0.10.42/arm64/node.lib', libPath: 'arm64/node.lib' }
|
||||
})
|
||||
})
|
||||
|
||||
// has -headers.tar.gz
|
||||
it('test process release - process.release ~ node@0.12.10', function () {
|
||||
var release = processRelease([], { opts: {} }, 'v0.12.10', null)
|
||||
|
||||
assert.strictEqual(release.semver.version, '0.12.10')
|
||||
delete release.semver
|
||||
|
||||
assert.deepStrictEqual(release, {
|
||||
version: '0.12.10',
|
||||
name: 'node',
|
||||
baseUrl: 'https://nodejs.org/dist/v0.12.10/',
|
||||
tarballUrl: 'https://nodejs.org/dist/v0.12.10/node-v0.12.10-headers.tar.gz',
|
||||
shasumsUrl: 'https://nodejs.org/dist/v0.12.10/SHASUMS256.txt',
|
||||
versionDir: '0.12.10',
|
||||
ia32: { libUrl: 'https://nodejs.org/dist/v0.12.10/node.lib', libPath: 'node.lib' },
|
||||
x64: { libUrl: 'https://nodejs.org/dist/v0.12.10/x64/node.lib', libPath: 'x64/node.lib' },
|
||||
arm64: { libUrl: 'https://nodejs.org/dist/v0.12.10/arm64/node.lib', libPath: 'arm64/node.lib' }
|
||||
})
|
||||
})
|
||||
|
||||
it('test process release - process.release ~ node@4.1.23', function () {
|
||||
var release = processRelease([], { opts: {} }, 'v4.1.23', {
|
||||
name: 'node',
|
||||
headersUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz'
|
||||
})
|
||||
|
||||
assert.strictEqual(release.semver.version, '4.1.23')
|
||||
delete release.semver
|
||||
|
||||
assert.deepStrictEqual(release, {
|
||||
version: '4.1.23',
|
||||
name: 'node',
|
||||
baseUrl: 'https://nodejs.org/dist/v4.1.23/',
|
||||
tarballUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz',
|
||||
shasumsUrl: 'https://nodejs.org/dist/v4.1.23/SHASUMS256.txt',
|
||||
versionDir: '4.1.23',
|
||||
ia32: { libUrl: 'https://nodejs.org/dist/v4.1.23/win-x86/node.lib', libPath: 'win-x86/node.lib' },
|
||||
x64: { libUrl: 'https://nodejs.org/dist/v4.1.23/win-x64/node.lib', libPath: 'win-x64/node.lib' },
|
||||
arm64: { libUrl: 'https://nodejs.org/dist/v4.1.23/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
|
||||
})
|
||||
})
|
||||
|
||||
it('test process release - process.release ~ node@4.1.23 / corp build', function () {
|
||||
var release = processRelease([], { opts: {} }, 'v4.1.23', {
|
||||
name: 'node',
|
||||
headersUrl: 'https://some.custom.location/node-v4.1.23-headers.tar.gz'
|
||||
})
|
||||
|
||||
assert.strictEqual(release.semver.version, '4.1.23')
|
||||
delete release.semver
|
||||
|
||||
assert.deepStrictEqual(release, {
|
||||
version: '4.1.23',
|
||||
name: 'node',
|
||||
baseUrl: 'https://some.custom.location/',
|
||||
tarballUrl: 'https://some.custom.location/node-v4.1.23-headers.tar.gz',
|
||||
shasumsUrl: 'https://some.custom.location/SHASUMS256.txt',
|
||||
versionDir: '4.1.23',
|
||||
ia32: { libUrl: 'https://some.custom.location/win-x86/node.lib', libPath: 'win-x86/node.lib' },
|
||||
x64: { libUrl: 'https://some.custom.location/win-x64/node.lib', libPath: 'win-x64/node.lib' },
|
||||
arm64: { libUrl: 'https://some.custom.location/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
|
||||
})
|
||||
})
|
||||
|
||||
it('test process release - process.release ~ node@12.8.0 Windows', function () {
|
||||
var release = processRelease([], { opts: {} }, 'v12.8.0', {
|
||||
name: 'node',
|
||||
sourceUrl: 'https://nodejs.org/download/release/v12.8.0/node-v12.8.0.tar.gz',
|
||||
headersUrl: 'https://nodejs.org/download/release/v12.8.0/node-v12.8.0-headers.tar.gz',
|
||||
libUrl: 'https://nodejs.org/download/release/v12.8.0/win-x64/node.lib'
|
||||
})
|
||||
|
||||
assert.strictEqual(release.semver.version, '12.8.0')
|
||||
delete release.semver
|
||||
|
||||
assert.deepStrictEqual(release, {
|
||||
version: '12.8.0',
|
||||
name: 'node',
|
||||
baseUrl: 'https://nodejs.org/download/release/v12.8.0/',
|
||||
tarballUrl: 'https://nodejs.org/download/release/v12.8.0/node-v12.8.0-headers.tar.gz',
|
||||
shasumsUrl: 'https://nodejs.org/download/release/v12.8.0/SHASUMS256.txt',
|
||||
versionDir: '12.8.0',
|
||||
ia32: { libUrl: 'https://nodejs.org/download/release/v12.8.0/win-x86/node.lib', libPath: 'win-x86/node.lib' },
|
||||
x64: { libUrl: 'https://nodejs.org/download/release/v12.8.0/win-x64/node.lib', libPath: 'win-x64/node.lib' },
|
||||
arm64: { libUrl: 'https://nodejs.org/download/release/v12.8.0/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
|
||||
})
|
||||
})
|
||||
|
||||
it('test process release - process.release ~ node@12.8.0 Windows ARM64', function () {
|
||||
var release = processRelease([], { opts: {} }, 'v12.8.0', {
|
||||
name: 'node',
|
||||
sourceUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/node-v12.8.0.tar.gz',
|
||||
headersUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/node-v12.8.0-headers.tar.gz',
|
||||
libUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/win-arm64/node.lib'
|
||||
})
|
||||
|
||||
assert.strictEqual(release.semver.version, '12.8.0')
|
||||
delete release.semver
|
||||
|
||||
assert.deepStrictEqual(release, {
|
||||
version: '12.8.0',
|
||||
name: 'node',
|
||||
baseUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/',
|
||||
tarballUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/node-v12.8.0-headers.tar.gz',
|
||||
shasumsUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/SHASUMS256.txt',
|
||||
versionDir: '12.8.0',
|
||||
ia32: { libUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/win-x86/node.lib', libPath: 'win-x86/node.lib' },
|
||||
x64: { libUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/win-x64/node.lib', libPath: 'win-x64/node.lib' },
|
||||
arm64: { libUrl: 'https://unofficial-builds.nodejs.org/download/release/v12.8.0/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
|
||||
})
|
||||
})
|
||||
|
||||
it('test process release - process.release ~ node@4.1.23 --target=0.10.40', function () {
|
||||
var release = processRelease([], { opts: { target: '0.10.40' } }, 'v4.1.23', {
|
||||
name: 'node',
|
||||
headersUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz'
|
||||
})
|
||||
|
||||
assert.strictEqual(release.semver.version, '0.10.40')
|
||||
delete release.semver
|
||||
|
||||
assert.deepStrictEqual(release, {
|
||||
version: '0.10.40',
|
||||
name: 'node',
|
||||
baseUrl: 'https://nodejs.org/dist/v0.10.40/',
|
||||
tarballUrl: 'https://nodejs.org/dist/v0.10.40/node-v0.10.40.tar.gz',
|
||||
shasumsUrl: 'https://nodejs.org/dist/v0.10.40/SHASUMS256.txt',
|
||||
versionDir: '0.10.40',
|
||||
ia32: { libUrl: 'https://nodejs.org/dist/v0.10.40/node.lib', libPath: 'node.lib' },
|
||||
x64: { libUrl: 'https://nodejs.org/dist/v0.10.40/x64/node.lib', libPath: 'x64/node.lib' },
|
||||
arm64: { libUrl: 'https://nodejs.org/dist/v0.10.40/arm64/node.lib', libPath: 'arm64/node.lib' }
|
||||
})
|
||||
})
|
||||
|
||||
it('test process release - process.release ~ node@4.1.23 --dist-url=https://foo.bar/baz', function () {
|
||||
var release = processRelease([], { opts: { 'dist-url': 'https://foo.bar/baz' } }, 'v4.1.23', {
|
||||
name: 'node',
|
||||
headersUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz'
|
||||
})
|
||||
|
||||
assert.strictEqual(release.semver.version, '4.1.23')
|
||||
delete release.semver
|
||||
|
||||
assert.deepStrictEqual(release, {
|
||||
version: '4.1.23',
|
||||
name: 'node',
|
||||
baseUrl: 'https://foo.bar/baz/v4.1.23/',
|
||||
tarballUrl: 'https://foo.bar/baz/v4.1.23/node-v4.1.23-headers.tar.gz',
|
||||
shasumsUrl: 'https://foo.bar/baz/v4.1.23/SHASUMS256.txt',
|
||||
versionDir: '4.1.23',
|
||||
ia32: { libUrl: 'https://foo.bar/baz/v4.1.23/win-x86/node.lib', libPath: 'win-x86/node.lib' },
|
||||
x64: { libUrl: 'https://foo.bar/baz/v4.1.23/win-x64/node.lib', libPath: 'win-x64/node.lib' },
|
||||
arm64: { libUrl: 'https://foo.bar/baz/v4.1.23/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
|
||||
})
|
||||
})
|
||||
|
||||
it('test process release - process.release ~ frankenstein@4.1.23', function () {
|
||||
var release = processRelease([], { opts: {} }, 'v4.1.23', {
|
||||
name: 'frankenstein',
|
||||
headersUrl: 'https://frankensteinjs.org/dist/v4.1.23/frankenstein-v4.1.23-headers.tar.gz'
|
||||
})
|
||||
|
||||
assert.strictEqual(release.semver.version, '4.1.23')
|
||||
delete release.semver
|
||||
|
||||
assert.deepStrictEqual(release, {
|
||||
version: '4.1.23',
|
||||
name: 'frankenstein',
|
||||
baseUrl: 'https://frankensteinjs.org/dist/v4.1.23/',
|
||||
tarballUrl: 'https://frankensteinjs.org/dist/v4.1.23/frankenstein-v4.1.23-headers.tar.gz',
|
||||
shasumsUrl: 'https://frankensteinjs.org/dist/v4.1.23/SHASUMS256.txt',
|
||||
versionDir: 'frankenstein-4.1.23',
|
||||
ia32: { libUrl: 'https://frankensteinjs.org/dist/v4.1.23/win-x86/frankenstein.lib', libPath: 'win-x86/frankenstein.lib' },
|
||||
x64: { libUrl: 'https://frankensteinjs.org/dist/v4.1.23/win-x64/frankenstein.lib', libPath: 'win-x64/frankenstein.lib' },
|
||||
arm64: { libUrl: 'https://frankensteinjs.org/dist/v4.1.23/win-arm64/frankenstein.lib', libPath: 'win-arm64/frankenstein.lib' }
|
||||
})
|
||||
})
|
||||
|
||||
it('test process release - process.release ~ frankenstein@4.1.23 --dist-url=http://foo.bar/baz/', function () {
|
||||
var release = processRelease([], { opts: { 'dist-url': 'http://foo.bar/baz/' } }, 'v4.1.23', {
|
||||
name: 'frankenstein',
|
||||
headersUrl: 'https://frankensteinjs.org/dist/v4.1.23/frankenstein-v4.1.23.tar.gz'
|
||||
})
|
||||
|
||||
assert.strictEqual(release.semver.version, '4.1.23')
|
||||
delete release.semver
|
||||
|
||||
assert.deepStrictEqual(release, {
|
||||
version: '4.1.23',
|
||||
name: 'frankenstein',
|
||||
baseUrl: 'http://foo.bar/baz/v4.1.23/',
|
||||
tarballUrl: 'http://foo.bar/baz/v4.1.23/frankenstein-v4.1.23-headers.tar.gz',
|
||||
shasumsUrl: 'http://foo.bar/baz/v4.1.23/SHASUMS256.txt',
|
||||
versionDir: 'frankenstein-4.1.23',
|
||||
ia32: { libUrl: 'http://foo.bar/baz/v4.1.23/win-x86/frankenstein.lib', libPath: 'win-x86/frankenstein.lib' },
|
||||
x64: { libUrl: 'http://foo.bar/baz/v4.1.23/win-x64/frankenstein.lib', libPath: 'win-x64/frankenstein.lib' },
|
||||
arm64: { libUrl: 'http://foo.bar/baz/v4.1.23/win-arm64/frankenstein.lib', libPath: 'win-arm64/frankenstein.lib' }
|
||||
})
|
||||
})
|
||||
|
||||
it('test process release - process.release ~ node@4.0.0-rc.4', function () {
|
||||
var release = processRelease([], { opts: {} }, 'v4.0.0-rc.4', {
|
||||
name: 'node',
|
||||
headersUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz'
|
||||
})
|
||||
|
||||
assert.strictEqual(release.semver.version, '4.0.0-rc.4')
|
||||
delete release.semver
|
||||
|
||||
assert.deepStrictEqual(release, {
|
||||
version: '4.0.0-rc.4',
|
||||
name: 'node',
|
||||
baseUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/',
|
||||
tarballUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz',
|
||||
shasumsUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/SHASUMS256.txt',
|
||||
versionDir: '4.0.0-rc.4',
|
||||
ia32: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x86/node.lib', libPath: 'win-x86/node.lib' },
|
||||
x64: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x64/node.lib', libPath: 'win-x64/node.lib' },
|
||||
arm64: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
|
||||
})
|
||||
})
|
||||
|
||||
it('test process release - process.release ~ node@4.0.0-rc.4 passed as argv[0]', function () {
|
||||
// note the missing 'v' on the arg, it should normalise when checking
|
||||
// whether we're on the default or not
|
||||
var release = processRelease(['4.0.0-rc.4'], { opts: {} }, 'v4.0.0-rc.4', {
|
||||
name: 'node',
|
||||
headersUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz'
|
||||
})
|
||||
|
||||
assert.strictEqual(release.semver.version, '4.0.0-rc.4')
|
||||
delete release.semver
|
||||
|
||||
assert.deepStrictEqual(release, {
|
||||
version: '4.0.0-rc.4',
|
||||
name: 'node',
|
||||
baseUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/',
|
||||
tarballUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz',
|
||||
shasumsUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/SHASUMS256.txt',
|
||||
versionDir: '4.0.0-rc.4',
|
||||
ia32: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x86/node.lib', libPath: 'win-x86/node.lib' },
|
||||
x64: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x64/node.lib', libPath: 'win-x64/node.lib' },
|
||||
arm64: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
|
||||
})
|
||||
})
|
||||
|
||||
it('test process release - process.release ~ node@4.0.0-rc.4 - bogus string passed as argv[0]', function () {
|
||||
// additional arguments can be passed in on the commandline that should be ignored if they
|
||||
// are not specifying a valid version @ position 0
|
||||
var release = processRelease(['this is no version!'], { opts: {} }, 'v4.0.0-rc.4', {
|
||||
name: 'node',
|
||||
headersUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz'
|
||||
})
|
||||
|
||||
assert.strictEqual(release.semver.version, '4.0.0-rc.4')
|
||||
delete release.semver
|
||||
|
||||
assert.deepStrictEqual(release, {
|
||||
version: '4.0.0-rc.4',
|
||||
name: 'node',
|
||||
baseUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/',
|
||||
tarballUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/node-v4.0.0-rc.4-headers.tar.gz',
|
||||
shasumsUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/SHASUMS256.txt',
|
||||
versionDir: '4.0.0-rc.4',
|
||||
ia32: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x86/node.lib', libPath: 'win-x86/node.lib' },
|
||||
x64: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-x64/node.lib', libPath: 'win-x64/node.lib' },
|
||||
arm64: { libUrl: 'https://nodejs.org/download/rc/v4.0.0-rc.4/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
|
||||
})
|
||||
})
|
||||
|
||||
it('test process release - NODEJS_ORG_MIRROR', function () {
|
||||
process.env.NODEJS_ORG_MIRROR = 'http://foo.bar'
|
||||
|
||||
var release = processRelease([], { opts: {} }, 'v4.1.23', {
|
||||
name: 'node',
|
||||
headersUrl: 'https://nodejs.org/dist/v4.1.23/node-v4.1.23-headers.tar.gz'
|
||||
})
|
||||
|
||||
assert.strictEqual(release.semver.version, '4.1.23')
|
||||
delete release.semver
|
||||
|
||||
assert.deepStrictEqual(release, {
|
||||
version: '4.1.23',
|
||||
name: 'node',
|
||||
baseUrl: 'http://foo.bar/v4.1.23/',
|
||||
tarballUrl: 'http://foo.bar/v4.1.23/node-v4.1.23-headers.tar.gz',
|
||||
shasumsUrl: 'http://foo.bar/v4.1.23/SHASUMS256.txt',
|
||||
versionDir: '4.1.23',
|
||||
ia32: { libUrl: 'http://foo.bar/v4.1.23/win-x86/node.lib', libPath: 'win-x86/node.lib' },
|
||||
x64: { libUrl: 'http://foo.bar/v4.1.23/win-x64/node.lib', libPath: 'win-x64/node.lib' },
|
||||
arm64: { libUrl: 'http://foo.bar/v4.1.23/win-arm64/node.lib', libPath: 'win-arm64/node.lib' }
|
||||
})
|
||||
|
||||
delete process.env.NODEJS_ORG_MIRROR
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user