diff --git a/NuGet.config b/NuGet.config new file mode 100644 index 0000000..fe459fe --- /dev/null +++ b/NuGet.config @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/package.json b/package.json index 6967df0..2a16df6 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,13 @@ "fast-base64-decode": "^1.0.0" }, "peerDependencies": { - "react-native": ">=0.81" + "react-native": ">=0.81", + "react-native-windows": "*" + }, + "peerDependenciesMeta": { + "react-native-windows": { + "optional": true + } }, "keywords": [ "Crypto.getRandomValues", @@ -23,6 +29,25 @@ "jsSrcsDir": "spec", "android": { "javaPackageName": "org.linusu" + }, + "windows": { + "namespace": "ReactNativeGetRandomValuesCodegen", + "outputDirectory": "windows/ReactNativeGetRandomValues/codegen", + "separateDataTypes": true + } + }, + "devDependencies": { + "@react-native-community/cli": "^20.2.0", + "@types/react": "^19.2.17", + "react": "^19.2.7", + "react-native": "^0.84.1", + "react-native-windows": "^0.84.0" + }, + "react-native-windows": { + "init-windows": { + "name": "ReactNativeGetRandomValues", + "namespace": "ReactNativeGetRandomValues", + "template": "cpp-lib" } } } diff --git a/windows/.gitignore b/windows/.gitignore new file mode 100644 index 0000000..0fd0acf --- /dev/null +++ b/windows/.gitignore @@ -0,0 +1,46 @@ +*AppPackages* +*BundleArtifacts* + +#OS junk files +[Tt]humbs.db +*.DS_Store + +#Visual Studio files +*.[Oo]bj +*.user +*.aps +*.pch +*.vspscc +*.vssscc +*_i.c +*_p.c +*.ncb +*.suo +*.tlb +*.tlh +*.bak +*.[Cc]ache +*.ilk +*.log +*.lib +*.sbr +*.sdf +*.opensdf +*.opendb +*.unsuccessfulbuild +ipch/ +[Oo]bj/ +[Bb]in +[Dd]ebug*/ +[Rr]elease*/ +Ankh.NoLoad +.vs/ +# Visual C++ cache files + +#Files generated by the VS build +**/Generated Files/** + +#Files generated by MS build +*.binlog +*.err +*.wrn diff --git a/windows/ExperimentalFeatures.props b/windows/ExperimentalFeatures.props new file mode 100644 index 0000000..db10c59 --- /dev/null +++ b/windows/ExperimentalFeatures.props @@ -0,0 +1,33 @@ + + + + + + true + + + true + + true + + + diff --git a/windows/ReactNativeGetRandomValues.sln b/windows/ReactNativeGetRandomValues.sln new file mode 100644 index 0000000..4bd0479 --- /dev/null +++ b/windows/ReactNativeGetRandomValues.sln @@ -0,0 +1,43 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.3.32929.385 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ReactNativeGetRandomValues", "ReactNativeGetRandomValues\ReactNativeGetRandomValues.vcxproj", "{F29EA512-C048-4465-8218-4E1283341B65}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Debug|ARM64 = Debug|ARM64 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Release|ARM64 = Release|ARM64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F29EA512-C048-4465-8218-4E1283341B65}.Debug|x64.ActiveCfg = Debug|x64 + {F29EA512-C048-4465-8218-4E1283341B65}.Debug|x64.Build.0 = Debug|x64 + {F29EA512-C048-4465-8218-4E1283341B65}.Debug|x64.Deploy.0 = Debug|x64 + {F29EA512-C048-4465-8218-4E1283341B65}.Debug|x86.ActiveCfg = Debug|Win32 + {F29EA512-C048-4465-8218-4E1283341B65}.Debug|x86.Build.0 = Debug|Win32 + {F29EA512-C048-4465-8218-4E1283341B65}.Debug|x86.Deploy.0 = Debug|Win32 + {F29EA512-C048-4465-8218-4E1283341B65}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {F29EA512-C048-4465-8218-4E1283341B65}.Debug|ARM64.Build.0 = Debug|ARM64 + {F29EA512-C048-4465-8218-4E1283341B65}.Debug|ARM64.Deploy.0 = Debug|ARM64 + {F29EA512-C048-4465-8218-4E1283341B65}.Release|x64.ActiveCfg = Release|x64 + {F29EA512-C048-4465-8218-4E1283341B65}.Release|x64.Build.0 = Release|x64 + {F29EA512-C048-4465-8218-4E1283341B65}.Release|x64.Deploy.0 = Release|x64 + {F29EA512-C048-4465-8218-4E1283341B65}.Release|x86.ActiveCfg = Release|Win32 + {F29EA512-C048-4465-8218-4E1283341B65}.Release|x86.Build.0 = Release|Win32 + {F29EA512-C048-4465-8218-4E1283341B65}.Release|x86.Deploy.0 = Release|Win32 + {F29EA512-C048-4465-8218-4E1283341B65}.Release|ARM64.ActiveCfg = Release|ARM64 + {F29EA512-C048-4465-8218-4E1283341B65}.Release|ARM64.Build.0 = Release|ARM64 + {F29EA512-C048-4465-8218-4E1283341B65}.Release|ARM64.Deploy.0 = Release|ARM64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D43FAD39-F619-437D-BB40-04A3982ACB6A} + EndGlobalSection +EndGlobal diff --git a/windows/ReactNativeGetRandomValues/ReactNativeGetRandomValues.cpp b/windows/ReactNativeGetRandomValues/ReactNativeGetRandomValues.cpp new file mode 100644 index 0000000..8a0e846 --- /dev/null +++ b/windows/ReactNativeGetRandomValues/ReactNativeGetRandomValues.cpp @@ -0,0 +1,18 @@ +#include "pch.h" + +#include "ReactNativeGetRandomValues.h" + +#include + +namespace winrt::ReactNativeGetRandomValues +{ + +std::string RNGetRandomValues::getRandomBase64(double byteLength) noexcept { + auto buffer = Windows::Security::Cryptography::CryptographicBuffer::GenerateRandom( + static_cast(byteLength)); + + return winrt::to_string( + Windows::Security::Cryptography::CryptographicBuffer::EncodeToBase64String(buffer)); +} + +} // namespace winrt::ReactNativeGetRandomValues \ No newline at end of file diff --git a/windows/ReactNativeGetRandomValues/ReactNativeGetRandomValues.def b/windows/ReactNativeGetRandomValues/ReactNativeGetRandomValues.def new file mode 100644 index 0000000..24e7c12 --- /dev/null +++ b/windows/ReactNativeGetRandomValues/ReactNativeGetRandomValues.def @@ -0,0 +1,3 @@ +EXPORTS +DllCanUnloadNow = WINRT_CanUnloadNow PRIVATE +DllGetActivationFactory = WINRT_GetActivationFactory PRIVATE diff --git a/windows/ReactNativeGetRandomValues/ReactNativeGetRandomValues.h b/windows/ReactNativeGetRandomValues/ReactNativeGetRandomValues.h new file mode 100644 index 0000000..56c33a9 --- /dev/null +++ b/windows/ReactNativeGetRandomValues/ReactNativeGetRandomValues.h @@ -0,0 +1,22 @@ +#pragma once + +#include "pch.h" +#include "resource.h" + +#include "codegen/NativeRNGetRandomValuesSpec.g.h" + +#include "NativeModules.h" + +namespace winrt::ReactNativeGetRandomValues +{ + +REACT_MODULE(RNGetRandomValues) +struct RNGetRandomValues +{ + using ModuleSpec = ReactNativeGetRandomValuesCodegen::RNGetRandomValuesSpec; + + REACT_SYNC_METHOD(getRandomBase64) + std::string getRandomBase64(double byteLength) noexcept; +}; + +} // namespace winrt::ReactNativeGetRandomValues \ No newline at end of file diff --git a/windows/ReactNativeGetRandomValues/ReactNativeGetRandomValues.rc b/windows/ReactNativeGetRandomValues/ReactNativeGetRandomValues.rc new file mode 100644 index 0000000..3212c10 Binary files /dev/null and b/windows/ReactNativeGetRandomValues/ReactNativeGetRandomValues.rc differ diff --git a/windows/ReactNativeGetRandomValues/ReactNativeGetRandomValues.vcxproj b/windows/ReactNativeGetRandomValues/ReactNativeGetRandomValues.vcxproj new file mode 100644 index 0000000..00710cf --- /dev/null +++ b/windows/ReactNativeGetRandomValues/ReactNativeGetRandomValues.vcxproj @@ -0,0 +1,143 @@ + + + + + + true + true + {F29EA512-C048-4465-8218-4E1283341B65} + ReactNativeGetRandomValues + Win32Proj + ReactNativeGetRandomValues + 10.0 + en-US + 17.0 + false + + + $([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), 'node_modules\react-native-windows\package.json'))\node_modules\react-native-windows\ + false + + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + Debug + ARM64 + + + Release + ARM64 + + + + DynamicLibrary + Unicode + v145 + false + + + true + + + false + true + + + + + + + + + + + + + Use + pch.h + $(IntDir)pch.pch + Level4 + true + %(AdditionalOptions) /bigobj + 4453;28204 + _WINRT_DLL;%(PreprocessorDefinitions) + $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) + + $(MSBuildThisFileDirectory); + %(AdditionalIncludeDirectories) + + + + shell32.lib;user32.lib;windowsapp.lib;%(AdditionalDependencies) + Console + true + ReactNativeGetRandomValues.def + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + NDEBUG;%(PreprocessorDefinitions) + + + + + + + ReactPackageProvider.idl + + + + + + + + + Create + + + ReactPackageProvider.idl + + + + + + + + + + + + + + + + + + This project references targets in your node_modules\react-native-windows folder. The missing file is {0}. + + + + + \ No newline at end of file diff --git a/windows/ReactNativeGetRandomValues/ReactNativeGetRandomValues.vcxproj.filters b/windows/ReactNativeGetRandomValues/ReactNativeGetRandomValues.vcxproj.filters new file mode 100644 index 0000000..9702b60 --- /dev/null +++ b/windows/ReactNativeGetRandomValues/ReactNativeGetRandomValues.vcxproj.filters @@ -0,0 +1,44 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + + + Resource Files + + + \ No newline at end of file diff --git a/windows/ReactNativeGetRandomValues/ReactPackageProvider.cpp b/windows/ReactNativeGetRandomValues/ReactPackageProvider.cpp new file mode 100644 index 0000000..845c59f --- /dev/null +++ b/windows/ReactNativeGetRandomValues/ReactPackageProvider.cpp @@ -0,0 +1,20 @@ +#include "pch.h" + +#include "ReactPackageProvider.h" +#if __has_include("ReactPackageProvider.g.cpp") +#include "ReactPackageProvider.g.cpp" +#endif + +#include "ReactNativeGetRandomValues.h" + +using namespace winrt::Microsoft::ReactNative; + +namespace winrt::ReactNativeGetRandomValues::implementation +{ + +void ReactPackageProvider::CreatePackage(IReactPackageBuilder const &packageBuilder) noexcept +{ + AddAttributedModules(packageBuilder, true); +} + +} // namespace winrt::ReactNativeGetRandomValues::implementation diff --git a/windows/ReactNativeGetRandomValues/ReactPackageProvider.h b/windows/ReactNativeGetRandomValues/ReactPackageProvider.h new file mode 100644 index 0000000..46d8218 --- /dev/null +++ b/windows/ReactNativeGetRandomValues/ReactPackageProvider.h @@ -0,0 +1,24 @@ +#pragma once + +#include "ReactPackageProvider.g.h" + +using namespace winrt::Microsoft::ReactNative; + +namespace winrt::ReactNativeGetRandomValues::implementation +{ + +struct ReactPackageProvider : ReactPackageProviderT +{ + ReactPackageProvider() = default; + + void CreatePackage(IReactPackageBuilder const &packageBuilder) noexcept; +}; + +} // namespace winrt::ReactNativeGetRandomValues::implementation + +namespace winrt::ReactNativeGetRandomValues::factory_implementation +{ + +struct ReactPackageProvider : ReactPackageProviderT {}; + +} // namespace winrt::ReactNativeGetRandomValues::factory_implementation diff --git a/windows/ReactNativeGetRandomValues/ReactPackageProvider.idl b/windows/ReactNativeGetRandomValues/ReactPackageProvider.idl new file mode 100644 index 0000000..93e1391 --- /dev/null +++ b/windows/ReactNativeGetRandomValues/ReactPackageProvider.idl @@ -0,0 +1,9 @@ +namespace ReactNativeGetRandomValues +{ + [webhosthidden] + [default_interface] + runtimeclass ReactPackageProvider : Microsoft.ReactNative.IReactPackageProvider + { + ReactPackageProvider(); + }; +} diff --git a/windows/ReactNativeGetRandomValues/codegen/.clang-format b/windows/ReactNativeGetRandomValues/codegen/.clang-format new file mode 100644 index 0000000..a43d914 --- /dev/null +++ b/windows/ReactNativeGetRandomValues/codegen/.clang-format @@ -0,0 +1,2 @@ +DisableFormat: true +SortIncludes: false \ No newline at end of file diff --git a/windows/ReactNativeGetRandomValues/codegen/NativeRNGetRandomValuesSpec.g.h b/windows/ReactNativeGetRandomValues/codegen/NativeRNGetRandomValuesSpec.g.h new file mode 100644 index 0000000..98e39b1 --- /dev/null +++ b/windows/ReactNativeGetRandomValues/codegen/NativeRNGetRandomValuesSpec.g.h @@ -0,0 +1,35 @@ + +/* + * This file is auto-generated from a NativeModule spec file in js. + * + * This is a C++ Spec class that should be used with MakeTurboModuleProvider to register native modules + * in a way that also verifies at compile time that the native module matches the interface required + * by the TurboModule JS spec. + */ +#pragma once +// clang-format off + + +#include +#include + +namespace ReactNativeGetRandomValuesCodegen { + +struct RNGetRandomValuesSpec : winrt::Microsoft::ReactNative::TurboModuleSpec { + static constexpr auto methods = std::tuple{ + SyncMethod{0, L"getRandomBase64"}, + }; + + template + static constexpr void ValidateModule() noexcept { + constexpr auto methodCheckResults = CheckMethods(); + + REACT_SHOW_METHOD_SPEC_ERRORS( + 0, + "getRandomBase64", + " REACT_SYNC_METHOD(getRandomBase64) std::string getRandomBase64(double byteLength) noexcept { /* implementation */ }\n" + " REACT_SYNC_METHOD(getRandomBase64) static std::string getRandomBase64(double byteLength) noexcept { /* implementation */ }\n"); + } +}; + +} // namespace ReactNativeGetRandomValuesCodegen diff --git a/windows/ReactNativeGetRandomValues/packages.lock.json b/windows/ReactNativeGetRandomValues/packages.lock.json new file mode 100644 index 0000000..95481a7 --- /dev/null +++ b/windows/ReactNativeGetRandomValues/packages.lock.json @@ -0,0 +1,151 @@ +{ + "version": 1, + "dependencies": { + "native,Version=v0.0": { + "boost": { + "type": "Direct", + "requested": "[1.84.0, )", + "resolved": "1.84.0", + "contentHash": "4el2YP3cNJDVFPdzOso+LxGvdWP2rHxML4siq8VdonNypW2m4q503tHfCj6vK0L1UfxioE2hpFGb4ITEua73tg==" + }, + "Microsoft.ReactNative": { + "type": "Direct", + "requested": "[0.84.0, )", + "resolved": "0.84.0", + "contentHash": "eZq5oUB0ht6Pmf9gIUfJOOfkVPQICLogAa4GB5GeNh4Qrf6cPVbmm0hffuWWcafHLGYmQDN9agBvES+qdpCTxg==" + }, + "Microsoft.ReactNative.Cxx": { + "type": "Direct", + "requested": "[0.84.0, )", + "resolved": "0.84.0", + "contentHash": "EleqtgIyUhaZB+29xpbufPVjR5ns12uuC6R6Nbuie5WZWJAgKbNZSH+c97NR+yWPlEKpAlTR5ZOlIcLRnn4rGQ==", + "dependencies": { + "Microsoft.ReactNative": "0.84.0" + } + }, + "Microsoft.VCRTForwarders.140": { + "type": "Direct", + "requested": "[1.0.2-rc, )", + "resolved": "1.0.2-rc", + "contentHash": "/r+sjtEeCIGyDhobIZ5hSmYhC/dSyGZxf1SxYJpElUhB0LMCktOMFs9gXrauXypIFECpVynNyVjAmJt6hjJ5oQ==" + }, + "Microsoft.Windows.CppWinRT": { + "type": "Direct", + "requested": "[2.0.230706.1, )", + "resolved": "2.0.230706.1", + "contentHash": "l0D7oCw/5X+xIKHqZTi62TtV+1qeSz7KVluNFdrJ9hXsst4ghvqQ/Yhura7JqRdZWBXAuDS0G0KwALptdoxweQ==" + }, + "Microsoft.WindowsAppSDK": { + "type": "Direct", + "requested": "[1.8.260508005, )", + "resolved": "1.8.260508005", + "contentHash": "+aA+zrvqJKgsn/1TPOSR0Uy7dkMO5jI/+cDWPu2pWmXe4KQxYkR8gQFY9IrfbgCxxSd/yl1zMcAKD/4HBbNqaw==", + "dependencies": { + "Microsoft.WindowsAppSDK.AI": "[1.8.76]", + "Microsoft.WindowsAppSDK.Base": "[1.8.251216001]", + "Microsoft.WindowsAppSDK.DWrite": "[1.8.25122902]", + "Microsoft.WindowsAppSDK.Foundation": "[1.8.260505001]", + "Microsoft.WindowsAppSDK.InteractiveExperiences": "[1.8.260430001]", + "Microsoft.WindowsAppSDK.ML": "[1.8.2197]", + "Microsoft.WindowsAppSDK.Runtime": "[1.8.260508005]", + "Microsoft.WindowsAppSDK.Widgets": "[1.8.251231004]", + "Microsoft.WindowsAppSDK.WinUI": "[1.8.260505002]" + } + }, + "Microsoft.Web.WebView2": { + "type": "Transitive", + "resolved": "1.0.3179.45", + "contentHash": "3pokSH5CnN0G6rGhGFo1y87inxYhNxBQ2Vdf0wlvBj99KHxQJormjDACmqRnFeUsmuNFIhWwfAL1ztq7wD5qRA==" + }, + "Microsoft.Windows.SDK.BuildTools": { + "type": "Transitive", + "resolved": "10.0.26100.4654", + "contentHash": "2mgcOlj/t2RfSyyw+pVESfO+Tk1RkfQzto9Vrq42M1lUQIfQEwbi8QLha9GXWIOj+TFzeHIEJckIoF25mgiM8A==" + }, + "Microsoft.Windows.SDK.BuildTools.MSIX": { + "type": "Transitive", + "resolved": "1.7.20250829.1", + "contentHash": "IMdvRmCIZnBS5GkYnv0po1bcx6U1OF39pqA4TphQ9evDzpCRoSE19/PkDvlUNNrBavTsLIEJgd/TAIFner75ow==" + }, + "Microsoft.WindowsAppSDK.AI": { + "type": "Transitive", + "resolved": "1.8.76", + "contentHash": "Ayn9QybcwzH+c8eQlE7dm2oO3Jrcn2uohLcsHJpCbLOAfcisjzwtSBe0oyulbaJ86R4eDSX3RDS25tsjGpIqyQ==", + "dependencies": { + "Microsoft.WindowsAppSDK.Base": "1.8.251216001", + "Microsoft.WindowsAppSDK.Foundation": "1.8.260501000" + } + }, + "Microsoft.WindowsAppSDK.Base": { + "type": "Transitive", + "resolved": "1.8.251216001", + "contentHash": "PS1wriuFknz3W2F2P/e6RvOTM35w89Lsj/f0QmUEPrJjKnc+jM0JLX1vfdytI14y1gNRUTm9uclwP0aH/SVU5w==", + "dependencies": { + "Microsoft.Windows.SDK.BuildTools": "10.0.26100.4654", + "Microsoft.Windows.SDK.BuildTools.MSIX": "1.7.20250829.1" + } + }, + "Microsoft.WindowsAppSDK.DWrite": { + "type": "Transitive", + "resolved": "1.8.25122902", + "contentHash": "zFNn07i7Cyz62Y8FnPQAyzeZK7ww3m9t42i9pzy4C04pNbyUDQ4fG7pB6VSh6n4EyFuYtuFQuDzt4mKmXFrkrg==", + "dependencies": { + "Microsoft.WindowsAppSDK.Base": "1.8.251216001" + } + }, + "Microsoft.WindowsAppSDK.Foundation": { + "type": "Transitive", + "resolved": "1.8.260505001", + "contentHash": "41SSoEn3sKKCAVPA/w18zVJwV1C7aDEkPS2f6Zyp19m27tDEmteEp0XS3Ln3b0ElYR4FfPEPvIDbJPSA9vePGw==", + "dependencies": { + "Microsoft.WindowsAppSDK.Base": "1.8.251216001", + "Microsoft.WindowsAppSDK.InteractiveExperiences": "1.8.260430001" + } + }, + "Microsoft.WindowsAppSDK.InteractiveExperiences": { + "type": "Transitive", + "resolved": "1.8.260430001", + "contentHash": "fTPCnQb3ZarMh9khlEfbLDllcZzK0tSP+2S6W/T4cPyLLSAmARm8Gd3AC5kqubnDjzTvG+1lNZ1bZGFsIHplJQ==", + "dependencies": { + "Microsoft.WindowsAppSDK.Base": "1.8.251216001" + } + }, + "Microsoft.WindowsAppSDK.ML": { + "type": "Transitive", + "resolved": "1.8.2197", + "contentHash": "6Bc1SOLd5HicY3GbF+zr76YBfH4iZOKeEGxTK/lHKAK2ExZTWavOADxB2CKSi/irF4dWSngUdRFopWPmckJ6fA==", + "dependencies": { + "Microsoft.WindowsAppSDK.Base": "1.8.251216001", + "Microsoft.WindowsAppSDK.Foundation": "1.8.260505001" + } + }, + "Microsoft.WindowsAppSDK.Runtime": { + "type": "Transitive", + "resolved": "1.8.260508005", + "contentHash": "2JqXzA4heHSkkaXJNyEvYtpv2wsEUMhwQzgXmZsFmYSkUXSdeVc6hdHcWoBK1SY9l1Sjd1brLt7h16kIpgh2kA==", + "dependencies": { + "Microsoft.WindowsAppSDK.Base": "1.8.251216001" + } + }, + "Microsoft.WindowsAppSDK.Widgets": { + "type": "Transitive", + "resolved": "1.8.251231004", + "contentHash": "bIWqQYR8DCoB1SoPOMil5AtgtkTn438wJTdpsHgyO/6o7Eh7PMP5BzrR0KbDsFqy+4LhPWQ4vtwko5k93fECcA==", + "dependencies": { + "Microsoft.WindowsAppSDK.Base": "1.8.251216001" + } + }, + "Microsoft.WindowsAppSDK.WinUI": { + "type": "Transitive", + "resolved": "1.8.260505002", + "contentHash": "/hGl6EOmo8aeJR2bYbOmGhOicnJK4EY+u+cQI+jm8H1uXThfMX32DsfKOt9LkOcu8AKX3j5FpiBay8ObUSytIw==", + "dependencies": { + "Microsoft.Web.WebView2": "1.0.3179.45", + "Microsoft.WindowsAppSDK.Base": "1.8.251216001", + "Microsoft.WindowsAppSDK.Foundation": "1.8.260505001", + "Microsoft.WindowsAppSDK.InteractiveExperiences": "1.8.260430001" + } + } + } + } +} \ No newline at end of file diff --git a/windows/ReactNativeGetRandomValues/pch.cpp b/windows/ReactNativeGetRandomValues/pch.cpp new file mode 100644 index 0000000..1d9f38c --- /dev/null +++ b/windows/ReactNativeGetRandomValues/pch.cpp @@ -0,0 +1 @@ +#include "pch.h" diff --git a/windows/ReactNativeGetRandomValues/pch.h b/windows/ReactNativeGetRandomValues/pch.h new file mode 100644 index 0000000..61d356d --- /dev/null +++ b/windows/ReactNativeGetRandomValues/pch.h @@ -0,0 +1,30 @@ +// pch.h : include file for standard system include files, +// or project specific include files that are used frequently, but +// are changed infrequently +// + +#pragma once + +#include "targetver.h" + +#define NOMINMAX 1 +#define WIN32_LEAN_AND_MEAN 1 +#define WINRT_LEAN_AND_MEAN 1 + +// Windows Header Files +#include +#undef GetCurrentTime +#include + +// WinRT Header Files +#include +#include +#include + +// C RunTime Header Files +#include +#include +#include +#include + +// Reference additional headers your project requires here diff --git a/windows/ReactNativeGetRandomValues/resource.h b/windows/ReactNativeGetRandomValues/resource.h new file mode 100644 index 0000000..82baf85 --- /dev/null +++ b/windows/ReactNativeGetRandomValues/resource.h @@ -0,0 +1,5 @@ +// +// Microsoft Visual C++ generated include file. +// Used by ReactNativeGetRandomValues.rc + +#pragma once diff --git a/windows/ReactNativeGetRandomValues/targetver.h b/windows/ReactNativeGetRandomValues/targetver.h new file mode 100644 index 0000000..87c0086 --- /dev/null +++ b/windows/ReactNativeGetRandomValues/targetver.h @@ -0,0 +1,8 @@ +#pragma once + +// Including SDKDDKVer.h defines the highest available Windows platform. + +// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and +// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. + +#include