rn-update 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/README-CN.md +97 -0
- package/README.md +97 -0
- package/THIRD_PARTY_NOTICES.md +8 -0
- package/android/build.gradle +253 -0
- package/android/jni/Android.mk +41 -0
- package/android/jni/Application.mk +20 -0
- package/android/jni/HDiffPatch/.travis.yml +33 -0
- package/android/jni/HDiffPatch/CHANGELOG.md +153 -0
- package/android/jni/HDiffPatch/LICENSE +48 -0
- package/android/jni/HDiffPatch/Makefile +157 -0
- package/android/jni/HDiffPatch/README.md +307 -0
- package/android/jni/HDiffPatch/_atosize.h +83 -0
- package/android/jni/HDiffPatch/_clock_for_demo.h +47 -0
- package/android/jni/HDiffPatch/_dir_ignore.h +191 -0
- package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/Android.mk +37 -0
- package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/Application.mk +7 -0
- package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/build_libs.bat +1 -0
- package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/build_libs.sh +1 -0
- package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/hpatch.c +18 -0
- package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/hpatch.h +20 -0
- package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/hpatch_jni.c +28 -0
- package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/java/com/github/sisong/HPatch.java +8 -0
- package/android/jni/HDiffPatch/builds/codeblocks/HDiffPatch.workspace +8 -0
- package/android/jni/HDiffPatch/builds/codeblocks/HDiffZ.cbp +219 -0
- package/android/jni/HDiffPatch/builds/codeblocks/HPatchZ.cbp +156 -0
- package/android/jni/HDiffPatch/builds/codeblocks/unitTest.cbp +65 -0
- package/android/jni/HDiffPatch/builds/vc/HDiffPatch.sln +105 -0
- package/android/jni/HDiffPatch/builds/vc/HDiffZ.vcxproj +237 -0
- package/android/jni/HDiffPatch/builds/vc/HDiffZ.vcxproj.user +3 -0
- package/android/jni/HDiffPatch/builds/vc/HPatchZ.vcxproj +318 -0
- package/android/jni/HDiffPatch/builds/vc/HPatchZ.vcxproj.user +3 -0
- package/android/jni/HDiffPatch/builds/vc/unitTest.vcxproj +182 -0
- package/android/jni/HDiffPatch/builds/vc/unitTest.vcxproj.user +3 -0
- package/android/jni/HDiffPatch/builds/xcode/HDiffPatch.xcworkspace/contents.xcworkspacedata +30 -0
- package/android/jni/HDiffPatch/builds/xcode/HDiffPatch.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/android/jni/HDiffPatch/builds/xcode/bestParams.xcodeproj/project.pbxproj +408 -0
- package/android/jni/HDiffPatch/builds/xcode/bestParams.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/android/jni/HDiffPatch/builds/xcode/hdiffz.xcodeproj/project.pbxproj +573 -0
- package/android/jni/HDiffPatch/builds/xcode/hdiffz.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/android/jni/HDiffPatch/builds/xcode/hdiffz.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/android/jni/HDiffPatch/builds/xcode/hpatchz.xcodeproj/project.pbxproj +396 -0
- package/android/jni/HDiffPatch/builds/xcode/hpatchz.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/android/jni/HDiffPatch/builds/xcode/lz4.xcodeproj/project.pbxproj +268 -0
- package/android/jni/HDiffPatch/builds/xcode/lz4.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/android/jni/HDiffPatch/builds/xcode/lzma.xcodeproj/project.pbxproj +361 -0
- package/android/jni/HDiffPatch/builds/xcode/lzma.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/android/jni/HDiffPatch/builds/xcode/testHashClash.xcodeproj/project.pbxproj +301 -0
- package/android/jni/HDiffPatch/builds/xcode/testHashClash.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/android/jni/HDiffPatch/builds/xcode/testHashClash.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/android/jni/HDiffPatch/builds/xcode/unitTest.xcodeproj/project.pbxproj +411 -0
- package/android/jni/HDiffPatch/builds/xcode/unitTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/android/jni/HDiffPatch/builds/xcode/zstd.xcodeproj/project.pbxproj +504 -0
- package/android/jni/HDiffPatch/builds/xcode/zstd.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/android/jni/HDiffPatch/checksum_plugin_demo.h +344 -0
- package/android/jni/HDiffPatch/compress_parallel.cpp +166 -0
- package/android/jni/HDiffPatch/compress_parallel.h +59 -0
- package/android/jni/HDiffPatch/compress_plugin_demo.h +1152 -0
- package/android/jni/HDiffPatch/decompress_plugin_demo.h +995 -0
- package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff.cpp +797 -0
- package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff.h +65 -0
- package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff_tools.cpp +200 -0
- package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff_tools.h +178 -0
- package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_manifest.cpp +357 -0
- package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_manifest.h +87 -0
- package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/file_for_dirDiff.h +151 -0
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch.c +770 -0
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch.h +236 -0
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_private.h +47 -0
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_tools.c +112 -0
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_tools.h +53 -0
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_types.h +61 -0
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_dir_output.c +331 -0
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_dir_output.h +144 -0
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_stream.c +176 -0
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_stream.h +84 -0
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/ref_stream.c +146 -0
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/ref_stream.h +61 -0
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/res_handle_limit.c +152 -0
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/res_handle_limit.h +76 -0
- package/android/jni/HDiffPatch/file_for_patch.c +524 -0
- package/android/jni/HDiffPatch/file_for_patch.h +259 -0
- package/android/jni/HDiffPatch/hdiffz.cpp +1570 -0
- package/android/jni/HDiffPatch/hpatch_dir_listener.h +290 -0
- package/android/jni/HDiffPatch/hpatchz.c +1221 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/diff.cpp +1025 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/diff.h +116 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/diff_types.h +72 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/bytes_rle.cpp +213 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/bytes_rle.h +63 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/compress_detect.cpp +170 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/compress_detect.h +86 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/config.h +89 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.c +13 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.c.inc.h +398 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.h +194 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort64.c +13 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort64.h +204 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort_private.h +207 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/sssort.c.inc.h +815 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/trsort.c.inc.h +586 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/utils.c.inc.h +381 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/adler_roll.c +352 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/adler_roll.h +137 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/bloom_filter.h +137 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/covers.h +70 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/digest_matcher.cpp +628 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/digest_matcher.h +87 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/stream_serialize.cpp +363 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/stream_serialize.h +139 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/mem_buf.h +68 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/pack_uint.h +115 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/suffix_string.cpp +342 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/suffix_string.h +94 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HPatch/checksum_plugin.h +52 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HPatch/patch.c +2292 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HPatch/patch.h +215 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HPatch/patch_private.h +165 -0
- package/android/jni/HDiffPatch/libHDiffPatch/HPatch/patch_types.h +251 -0
- package/android/jni/HDiffPatch/libParallel/parallel_channel.cpp +174 -0
- package/android/jni/HDiffPatch/libParallel/parallel_channel.h +73 -0
- package/android/jni/HDiffPatch/libParallel/parallel_import.cpp +367 -0
- package/android/jni/HDiffPatch/libParallel/parallel_import.h +92 -0
- package/android/jni/hpatch.c +232 -0
- package/android/jni/hpatch.h +43 -0
- package/android/jni/lzma/Asm/arm/7zCrcOpt.asm +100 -0
- package/android/jni/lzma/Asm/x86/7zAsm.asm +147 -0
- package/android/jni/lzma/Asm/x86/7zCrcOpt.asm +147 -0
- package/android/jni/lzma/Asm/x86/AesOpt.asm +237 -0
- package/android/jni/lzma/Asm/x86/LzmaDecOpt.asm +1258 -0
- package/android/jni/lzma/Asm/x86/XzCrc64Opt.asm +205 -0
- package/android/jni/lzma/C/7z.h +202 -0
- package/android/jni/lzma/C/7zAlloc.c +80 -0
- package/android/jni/lzma/C/7zAlloc.h +19 -0
- package/android/jni/lzma/C/7zArcIn.c +1771 -0
- package/android/jni/lzma/C/7zBuf.c +36 -0
- package/android/jni/lzma/C/7zBuf.h +35 -0
- package/android/jni/lzma/C/7zBuf2.c +52 -0
- package/android/jni/lzma/C/7zCrc.c +128 -0
- package/android/jni/lzma/C/7zCrc.h +25 -0
- package/android/jni/lzma/C/7zCrcOpt.c +115 -0
- package/android/jni/lzma/C/7zDec.c +591 -0
- package/android/jni/lzma/C/7zFile.c +286 -0
- package/android/jni/lzma/C/7zFile.h +83 -0
- package/android/jni/lzma/C/7zStream.c +176 -0
- package/android/jni/lzma/C/7zTypes.h +375 -0
- package/android/jni/lzma/C/7zVersion.h +27 -0
- package/android/jni/lzma/C/7zVersion.rc +55 -0
- package/android/jni/lzma/C/Aes.c +306 -0
- package/android/jni/lzma/C/Aes.h +38 -0
- package/android/jni/lzma/C/AesOpt.c +184 -0
- package/android/jni/lzma/C/Alloc.c +455 -0
- package/android/jni/lzma/C/Alloc.h +51 -0
- package/android/jni/lzma/C/Bcj2.c +257 -0
- package/android/jni/lzma/C/Bcj2.h +146 -0
- package/android/jni/lzma/C/Bcj2Enc.c +311 -0
- package/android/jni/lzma/C/Bra.c +230 -0
- package/android/jni/lzma/C/Bra.h +64 -0
- package/android/jni/lzma/C/Bra86.c +82 -0
- package/android/jni/lzma/C/BraIA64.c +53 -0
- package/android/jni/lzma/C/Compiler.h +33 -0
- package/android/jni/lzma/C/CpuArch.c +218 -0
- package/android/jni/lzma/C/CpuArch.h +336 -0
- package/android/jni/lzma/C/Delta.c +64 -0
- package/android/jni/lzma/C/Delta.h +19 -0
- package/android/jni/lzma/C/DllSecur.c +108 -0
- package/android/jni/lzma/C/DllSecur.h +20 -0
- package/android/jni/lzma/C/LzFind.c +1127 -0
- package/android/jni/lzma/C/LzFind.h +121 -0
- package/android/jni/lzma/C/LzFindMt.c +853 -0
- package/android/jni/lzma/C/LzFindMt.h +101 -0
- package/android/jni/lzma/C/LzHash.h +57 -0
- package/android/jni/lzma/C/Lzma2Dec.c +488 -0
- package/android/jni/lzma/C/Lzma2Dec.h +120 -0
- package/android/jni/lzma/C/Lzma2DecMt.c +1082 -0
- package/android/jni/lzma/C/Lzma2DecMt.h +79 -0
- package/android/jni/lzma/C/Lzma2Enc.c +803 -0
- package/android/jni/lzma/C/Lzma2Enc.h +55 -0
- package/android/jni/lzma/C/Lzma86.h +111 -0
- package/android/jni/lzma/C/Lzma86Dec.c +54 -0
- package/android/jni/lzma/C/Lzma86Enc.c +106 -0
- package/android/jni/lzma/C/LzmaDec.c +1185 -0
- package/android/jni/lzma/C/LzmaDec.h +234 -0
- package/android/jni/lzma/C/LzmaEnc.c +2976 -0
- package/android/jni/lzma/C/LzmaEnc.h +76 -0
- package/android/jni/lzma/C/LzmaLib.c +40 -0
- package/android/jni/lzma/C/LzmaLib.h +131 -0
- package/android/jni/lzma/C/MtCoder.c +601 -0
- package/android/jni/lzma/C/MtCoder.h +141 -0
- package/android/jni/lzma/C/MtDec.c +1138 -0
- package/android/jni/lzma/C/MtDec.h +201 -0
- package/android/jni/lzma/C/Ppmd.h +85 -0
- package/android/jni/lzma/C/Ppmd7.c +712 -0
- package/android/jni/lzma/C/Ppmd7.h +142 -0
- package/android/jni/lzma/C/Ppmd7Dec.c +191 -0
- package/android/jni/lzma/C/Ppmd7Enc.c +187 -0
- package/android/jni/lzma/C/Precomp.h +10 -0
- package/android/jni/lzma/C/RotateDefs.h +30 -0
- package/android/jni/lzma/C/Sha256.c +248 -0
- package/android/jni/lzma/C/Sha256.h +26 -0
- package/android/jni/lzma/C/Sort.c +141 -0
- package/android/jni/lzma/C/Sort.h +18 -0
- package/android/jni/lzma/C/Threads.c +95 -0
- package/android/jni/lzma/C/Threads.h +70 -0
- package/android/jni/lzma/C/ThreadsP.c +396 -0
- package/android/jni/lzma/C/ThreadsP.h +31 -0
- package/android/jni/lzma/C/Util/7z/7z.dsp +241 -0
- package/android/jni/lzma/C/Util/7z/7z.dsw +29 -0
- package/android/jni/lzma/C/Util/7z/7zMain.c +686 -0
- package/android/jni/lzma/C/Util/7z/Precomp.c +4 -0
- package/android/jni/lzma/C/Util/7z/Precomp.h +10 -0
- package/android/jni/lzma/C/Util/7z/makefile +40 -0
- package/android/jni/lzma/C/Util/7z/makefile.gcc +75 -0
- package/android/jni/lzma/C/Util/Lzma/LzmaUtil.c +258 -0
- package/android/jni/lzma/C/Util/Lzma/LzmaUtil.dsp +168 -0
- package/android/jni/lzma/C/Util/Lzma/LzmaUtil.dsw +29 -0
- package/android/jni/lzma/C/Util/Lzma/makefile +28 -0
- package/android/jni/lzma/C/Util/Lzma/makefile.gcc +44 -0
- package/android/jni/lzma/C/Util/LzmaLib/LzmaLib.def +4 -0
- package/android/jni/lzma/C/Util/LzmaLib/LzmaLib.dsp +178 -0
- package/android/jni/lzma/C/Util/LzmaLib/LzmaLib.dsw +29 -0
- package/android/jni/lzma/C/Util/LzmaLib/LzmaLibExports.c +14 -0
- package/android/jni/lzma/C/Util/LzmaLib/makefile +34 -0
- package/android/jni/lzma/C/Util/LzmaLib/resource.rc +3 -0
- package/android/jni/lzma/C/Util/SfxSetup/Precomp.c +4 -0
- package/android/jni/lzma/C/Util/SfxSetup/Precomp.h +10 -0
- package/android/jni/lzma/C/Util/SfxSetup/SfxSetup.c +640 -0
- package/android/jni/lzma/C/Util/SfxSetup/SfxSetup.dsp +231 -0
- package/android/jni/lzma/C/Util/SfxSetup/SfxSetup.dsw +29 -0
- package/android/jni/lzma/C/Util/SfxSetup/makefile +37 -0
- package/android/jni/lzma/C/Util/SfxSetup/makefile_con +38 -0
- package/android/jni/lzma/C/Util/SfxSetup/resource.rc +5 -0
- package/android/jni/lzma/C/Util/SfxSetup/setup.ico +0 -0
- package/android/jni/lzma/C/Xz.c +90 -0
- package/android/jni/lzma/C/Xz.h +460 -0
- package/android/jni/lzma/C/XzCrc64.c +86 -0
- package/android/jni/lzma/C/XzCrc64.h +26 -0
- package/android/jni/lzma/C/XzCrc64Opt.c +69 -0
- package/android/jni/lzma/C/XzDec.c +2766 -0
- package/android/jni/lzma/C/XzEnc.c +1329 -0
- package/android/jni/lzma/C/XzEnc.h +60 -0
- package/android/jni/lzma/C/XzIn.c +319 -0
- package/android/jni/lzma/CPP/7zip/7zip.mak +240 -0
- package/android/jni/lzma/CPP/7zip/Aes.mak +7 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zCompressionMode.cpp +3 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zCompressionMode.h +76 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zDecode.cpp +569 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zDecode.h +70 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zEncode.cpp +678 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zEncode.h +92 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zExtract.cpp +423 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zFolderInStream.cpp +139 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zFolderInStream.h +61 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zHandler.cpp +763 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zHandler.h +181 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zHandlerOut.cpp +942 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zHeader.cpp +19 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zHeader.h +148 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zIn.cpp +1666 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zIn.h +445 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zItem.h +202 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zOut.cpp +901 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zOut.h +335 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zProperties.cpp +174 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zProperties.h +22 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zRegister.cpp +21 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zSpecStream.cpp +22 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zSpecStream.h +35 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zUpdate.cpp +2500 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zUpdate.h +139 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/StdAfx.cpp +3 -0
- package/android/jni/lzma/CPP/7zip/Archive/7z/StdAfx.h +8 -0
- package/android/jni/lzma/CPP/7zip/Archive/Archive.def +12 -0
- package/android/jni/lzma/CPP/7zip/Archive/Archive2.def +19 -0
- package/android/jni/lzma/CPP/7zip/Archive/ArchiveExports.cpp +151 -0
- package/android/jni/lzma/CPP/7zip/Archive/Common/CoderMixer2.cpp +1125 -0
- package/android/jni/lzma/CPP/7zip/Archive/Common/CoderMixer2.h +447 -0
- package/android/jni/lzma/CPP/7zip/Archive/Common/DummyOutStream.cpp +17 -0
- package/android/jni/lzma/CPP/7zip/Archive/Common/DummyOutStream.h +25 -0
- package/android/jni/lzma/CPP/7zip/Archive/Common/HandlerOut.cpp +232 -0
- package/android/jni/lzma/CPP/7zip/Archive/Common/HandlerOut.h +110 -0
- package/android/jni/lzma/CPP/7zip/Archive/Common/InStreamWithCRC.cpp +46 -0
- package/android/jni/lzma/CPP/7zip/Archive/Common/InStreamWithCRC.h +67 -0
- package/android/jni/lzma/CPP/7zip/Archive/Common/ItemNameUtils.cpp +88 -0
- package/android/jni/lzma/CPP/7zip/Archive/Common/ItemNameUtils.h +28 -0
- package/android/jni/lzma/CPP/7zip/Archive/Common/MultiStream.cpp +191 -0
- package/android/jni/lzma/CPP/7zip/Archive/Common/MultiStream.h +89 -0
- package/android/jni/lzma/CPP/7zip/Archive/Common/OutStreamWithCRC.cpp +18 -0
- package/android/jni/lzma/CPP/7zip/Archive/Common/OutStreamWithCRC.h +37 -0
- package/android/jni/lzma/CPP/7zip/Archive/Common/ParseProperties.cpp +3 -0
- package/android/jni/lzma/CPP/7zip/Archive/Common/ParseProperties.h +6 -0
- package/android/jni/lzma/CPP/7zip/Archive/Common/StdAfx.h +8 -0
- package/android/jni/lzma/CPP/7zip/Archive/DllExports2.cpp +122 -0
- package/android/jni/lzma/CPP/7zip/Archive/IArchive.h +608 -0
- package/android/jni/lzma/CPP/7zip/Archive/Icons/7z.ico +0 -0
- package/android/jni/lzma/CPP/7zip/Archive/LzmaHandler.cpp +629 -0
- package/android/jni/lzma/CPP/7zip/Archive/SplitHandler.cpp +359 -0
- package/android/jni/lzma/CPP/7zip/Archive/StdAfx.h +8 -0
- package/android/jni/lzma/CPP/7zip/Archive/XzHandler.cpp +1308 -0
- package/android/jni/lzma/CPP/7zip/Archive/XzHandler.h +11 -0
- package/android/jni/lzma/CPP/7zip/Asm.mak +9 -0
- package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/Alone.dsp +1910 -0
- package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/Alone.dsw +29 -0
- package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/StdAfx.cpp +3 -0
- package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/StdAfx.h +8 -0
- package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/makefile +154 -0
- package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/resource.rc +7 -0
- package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/StdAfx.cpp +3 -0
- package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/StdAfx.h +8 -0
- package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/makefile +96 -0
- package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/resource.rc +5 -0
- package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/StdAfx.cpp +3 -0
- package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/StdAfx.h +8 -0
- package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/makefile +116 -0
- package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/resource.rc +5 -0
- package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/LzmaAlone.cpp +799 -0
- package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/LzmaCon.dsp +477 -0
- package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/LzmaCon.dsw +29 -0
- package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/StdAfx.cpp +3 -0
- package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/StdAfx.h +8 -0
- package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/makefile +59 -0
- package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/makefile.gcc +195 -0
- package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/resource.rc +3 -0
- package/android/jni/lzma/CPP/7zip/Bundles/LzmaSpec/LzmaSpec.cpp +715 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/7z.ico +0 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/SFXCon.dsp +912 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/SFXCon.dsw +29 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/SfxCon.cpp +482 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/StdAfx.cpp +3 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/StdAfx.h +8 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/makefile +134 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/resource.rc +5 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractCallbackSfx.cpp +246 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractCallbackSfx.h +86 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractEngine.cpp +137 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractEngine.h +11 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/SFXSetup.dsp +803 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/SFXSetup.dsw +29 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/SfxSetup.cpp +364 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/StdAfx.cpp +3 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/StdAfx.h +13 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/makefile +117 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/resource.h +6 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/resource.rc +16 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/setup.ico +0 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/7z.ico +0 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/SFXWin.dsp +988 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/SFXWin.dsw +29 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/SfxWin.cpp +241 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/StdAfx.cpp +3 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/StdAfx.h +14 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/makefile +153 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/resource.h +1 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/resource.rc +50 -0
- package/android/jni/lzma/CPP/7zip/Common/CWrappers.cpp +250 -0
- package/android/jni/lzma/CPP/7zip/Common/CWrappers.h +120 -0
- package/android/jni/lzma/CPP/7zip/Common/CreateCoder.cpp +536 -0
- package/android/jni/lzma/CPP/7zip/Common/CreateCoder.h +192 -0
- package/android/jni/lzma/CPP/7zip/Common/FilePathAutoRename.cpp +46 -0
- package/android/jni/lzma/CPP/7zip/Common/FilePathAutoRename.h +10 -0
- package/android/jni/lzma/CPP/7zip/Common/FileStreams.cpp +475 -0
- package/android/jni/lzma/CPP/7zip/Common/FileStreams.h +166 -0
- package/android/jni/lzma/CPP/7zip/Common/FilterCoder.cpp +435 -0
- package/android/jni/lzma/CPP/7zip/Common/FilterCoder.h +205 -0
- package/android/jni/lzma/CPP/7zip/Common/InBuffer.cpp +163 -0
- package/android/jni/lzma/CPP/7zip/Common/InBuffer.h +92 -0
- package/android/jni/lzma/CPP/7zip/Common/InOutTempBuffer.cpp +127 -0
- package/android/jni/lzma/CPP/7zip/Common/InOutTempBuffer.h +48 -0
- package/android/jni/lzma/CPP/7zip/Common/LimitedStreams.cpp +367 -0
- package/android/jni/lzma/CPP/7zip/Common/LimitedStreams.h +252 -0
- package/android/jni/lzma/CPP/7zip/Common/LockedStream.cpp +3 -0
- package/android/jni/lzma/CPP/7zip/Common/LockedStream.h +6 -0
- package/android/jni/lzma/CPP/7zip/Common/MethodId.cpp +3 -0
- package/android/jni/lzma/CPP/7zip/Common/MethodId.h +10 -0
- package/android/jni/lzma/CPP/7zip/Common/MethodProps.cpp +509 -0
- package/android/jni/lzma/CPP/7zip/Common/MethodProps.h +264 -0
- package/android/jni/lzma/CPP/7zip/Common/OffsetStream.cpp +39 -0
- package/android/jni/lzma/CPP/7zip/Common/OffsetStream.h +26 -0
- package/android/jni/lzma/CPP/7zip/Common/OutBuffer.cpp +111 -0
- package/android/jni/lzma/CPP/7zip/Common/OutBuffer.h +66 -0
- package/android/jni/lzma/CPP/7zip/Common/ProgressUtils.cpp +51 -0
- package/android/jni/lzma/CPP/7zip/Common/ProgressUtils.h +35 -0
- package/android/jni/lzma/CPP/7zip/Common/PropId.cpp +108 -0
- package/android/jni/lzma/CPP/7zip/Common/RegisterArc.h +78 -0
- package/android/jni/lzma/CPP/7zip/Common/RegisterCodec.h +106 -0
- package/android/jni/lzma/CPP/7zip/Common/StdAfx.h +8 -0
- package/android/jni/lzma/CPP/7zip/Common/StreamBinder.cpp +156 -0
- package/android/jni/lzma/CPP/7zip/Common/StreamBinder.h +60 -0
- package/android/jni/lzma/CPP/7zip/Common/StreamObjects.cpp +285 -0
- package/android/jni/lzma/CPP/7zip/Common/StreamObjects.h +157 -0
- package/android/jni/lzma/CPP/7zip/Common/StreamUtils.cpp +56 -0
- package/android/jni/lzma/CPP/7zip/Common/StreamUtils.h +13 -0
- package/android/jni/lzma/CPP/7zip/Common/UniqBlocks.cpp +57 -0
- package/android/jni/lzma/CPP/7zip/Common/UniqBlocks.h +26 -0
- package/android/jni/lzma/CPP/7zip/Common/VirtThread.cpp +48 -0
- package/android/jni/lzma/CPP/7zip/Common/VirtThread.h +24 -0
- package/android/jni/lzma/CPP/7zip/Compress/Bcj2Coder.cpp +666 -0
- package/android/jni/lzma/CPP/7zip/Compress/Bcj2Coder.h +120 -0
- package/android/jni/lzma/CPP/7zip/Compress/Bcj2Register.cpp +24 -0
- package/android/jni/lzma/CPP/7zip/Compress/BcjCoder.cpp +24 -0
- package/android/jni/lzma/CPP/7zip/Compress/BcjCoder.h +31 -0
- package/android/jni/lzma/CPP/7zip/Compress/BcjRegister.cpp +17 -0
- package/android/jni/lzma/CPP/7zip/Compress/BranchMisc.cpp +23 -0
- package/android/jni/lzma/CPP/7zip/Compress/BranchMisc.h +35 -0
- package/android/jni/lzma/CPP/7zip/Compress/BranchRegister.cpp +41 -0
- package/android/jni/lzma/CPP/7zip/Compress/ByteSwap.cpp +92 -0
- package/android/jni/lzma/CPP/7zip/Compress/CodecExports.cpp +344 -0
- package/android/jni/lzma/CPP/7zip/Compress/CopyCoder.cpp +120 -0
- package/android/jni/lzma/CPP/7zip/Compress/CopyCoder.h +49 -0
- package/android/jni/lzma/CPP/7zip/Compress/CopyRegister.cpp +15 -0
- package/android/jni/lzma/CPP/7zip/Compress/DeltaFilter.cpp +128 -0
- package/android/jni/lzma/CPP/7zip/Compress/Lzma2Decoder.cpp +265 -0
- package/android/jni/lzma/CPP/7zip/Compress/Lzma2Decoder.h +96 -0
- package/android/jni/lzma/CPP/7zip/Compress/Lzma2Encoder.cpp +122 -0
- package/android/jni/lzma/CPP/7zip/Compress/Lzma2Encoder.h +42 -0
- package/android/jni/lzma/CPP/7zip/Compress/Lzma2Register.cpp +22 -0
- package/android/jni/lzma/CPP/7zip/Compress/LzmaDecoder.cpp +343 -0
- package/android/jni/lzma/CPP/7zip/Compress/LzmaDecoder.h +113 -0
- package/android/jni/lzma/CPP/7zip/Compress/LzmaEncoder.cpp +182 -0
- package/android/jni/lzma/CPP/7zip/Compress/LzmaEncoder.h +46 -0
- package/android/jni/lzma/CPP/7zip/Compress/LzmaRegister.cpp +22 -0
- package/android/jni/lzma/CPP/7zip/Compress/PpmdDecoder.cpp +170 -0
- package/android/jni/lzma/CPP/7zip/Compress/PpmdDecoder.h +86 -0
- package/android/jni/lzma/CPP/7zip/Compress/PpmdEncoder.cpp +152 -0
- package/android/jni/lzma/CPP/7zip/Compress/PpmdEncoder.h +58 -0
- package/android/jni/lzma/CPP/7zip/Compress/PpmdRegister.cpp +22 -0
- package/android/jni/lzma/CPP/7zip/Compress/StdAfx.h +8 -0
- package/android/jni/lzma/CPP/7zip/Compress/XzDecoder.cpp +150 -0
- package/android/jni/lzma/CPP/7zip/Compress/XzDecoder.h +92 -0
- package/android/jni/lzma/CPP/7zip/Compress/XzEncoder.cpp +245 -0
- package/android/jni/lzma/CPP/7zip/Compress/XzEncoder.h +46 -0
- package/android/jni/lzma/CPP/7zip/Crc.mak +8 -0
- package/android/jni/lzma/CPP/7zip/Crc64.mak +8 -0
- package/android/jni/lzma/CPP/7zip/Crypto/7zAes.cpp +280 -0
- package/android/jni/lzma/CPP/7zip/Crypto/7zAes.h +118 -0
- package/android/jni/lzma/CPP/7zip/Crypto/7zAesRegister.cpp +17 -0
- package/android/jni/lzma/CPP/7zip/Crypto/MyAes.cpp +112 -0
- package/android/jni/lzma/CPP/7zip/Crypto/MyAes.h +57 -0
- package/android/jni/lzma/CPP/7zip/Crypto/MyAesReg.cpp +16 -0
- package/android/jni/lzma/CPP/7zip/Crypto/RandGen.cpp +233 -0
- package/android/jni/lzma/CPP/7zip/Crypto/RandGen.h +40 -0
- package/android/jni/lzma/CPP/7zip/Crypto/StdAfx.h +8 -0
- package/android/jni/lzma/CPP/7zip/GuiCommon.rc +84 -0
- package/android/jni/lzma/CPP/7zip/Guid.txt +220 -0
- package/android/jni/lzma/CPP/7zip/ICoder.h +399 -0
- package/android/jni/lzma/CPP/7zip/IDecl.h +28 -0
- package/android/jni/lzma/CPP/7zip/IPassword.h +23 -0
- package/android/jni/lzma/CPP/7zip/IProgress.h +19 -0
- package/android/jni/lzma/CPP/7zip/IStream.h +127 -0
- package/android/jni/lzma/CPP/7zip/LzmaDec.mak +5 -0
- package/android/jni/lzma/CPP/7zip/MyVersion.h +2 -0
- package/android/jni/lzma/CPP/7zip/MyVersionInfo.rc +2 -0
- package/android/jni/lzma/CPP/7zip/PropID.h +127 -0
- package/android/jni/lzma/CPP/7zip/SubBuild.mak +3 -0
- package/android/jni/lzma/CPP/7zip/UI/Client7z/Client7z.cpp +993 -0
- package/android/jni/lzma/CPP/7zip/UI/Client7z/Client7z.dsp +235 -0
- package/android/jni/lzma/CPP/7zip/UI/Client7z/Client7z.dsw +29 -0
- package/android/jni/lzma/CPP/7zip/UI/Client7z/StdAfx.cpp +3 -0
- package/android/jni/lzma/CPP/7zip/UI/Client7z/StdAfx.h +8 -0
- package/android/jni/lzma/CPP/7zip/UI/Client7z/makefile +28 -0
- package/android/jni/lzma/CPP/7zip/UI/Client7z/resource.rc +3 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveCommandLine.cpp +1295 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveCommandLine.h +136 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveExtractCallback.cpp +1715 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveExtractCallback.h +403 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveName.cpp +155 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveName.h +10 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveOpenCallback.cpp +161 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveOpenCallback.h +112 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/Bench.cpp +3618 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/Bench.h +77 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/DefaultName.cpp +37 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/DefaultName.h +11 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/DirItem.h +190 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/EnumDirItems.cpp +1096 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/EnumDirItems.h +42 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/ExitCode.h +27 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/Extract.cpp +482 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/Extract.h +94 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/ExtractMode.h +34 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/ExtractingFilePath.cpp +280 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/ExtractingFilePath.h +31 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/HashCalc.cpp +347 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/HashCalc.h +110 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/IFileExtractCallback.h +114 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/LoadCodecs.cpp +1074 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/LoadCodecs.h +424 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/OpenArchive.cpp +3553 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/OpenArchive.h +436 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/PropIDUtils.cpp +668 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/PropIDUtils.h +18 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/Property.h +14 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/SetProperties.cpp +80 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/SetProperties.h +10 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/SortUtils.cpp +25 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/SortUtils.h +10 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/StdAfx.h +8 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/TempFiles.cpp +19 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/TempFiles.h +16 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/Update.cpp +1704 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/Update.h +200 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/UpdateAction.cpp +64 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/UpdateAction.h +66 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/UpdateCallback.cpp +771 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/UpdateCallback.h +162 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/UpdatePair.cpp +233 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/UpdatePair.h +27 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/UpdateProduce.cpp +70 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/UpdateProduce.h +55 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/WorkDir.cpp +94 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/WorkDir.h +26 -0
- package/android/jni/lzma/CPP/7zip/UI/Common/ZipRegistry.h +130 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/BenchCon.cpp +41 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/BenchCon.h +14 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/Console.mak +43 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/Console.manifest +13 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/ConsoleClose.cpp +69 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/ConsoleClose.h +33 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/ExtractCallbackConsole.cpp +825 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/ExtractCallbackConsole.h +164 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/HashCon.cpp +367 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/HashCon.h +48 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/List.cpp +1359 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/List.h +27 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/Main.cpp +1154 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/MainAr.cpp +175 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/OpenCallbackConsole.cpp +115 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/OpenCallbackConsole.h +66 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/PercentPrinter.cpp +183 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/PercentPrinter.h +62 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/StdAfx.cpp +3 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/StdAfx.h +8 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/UpdateCallbackConsole.cpp +702 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/UpdateCallbackConsole.h +124 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/UserInputUtils.cpp +110 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/UserInputUtils.h +27 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/makefile +64 -0
- package/android/jni/lzma/CPP/7zip/UI/Console/resource.rc +7 -0
- package/android/jni/lzma/CPP/7zip/UI/Explorer/MyMessages.cpp +37 -0
- package/android/jni/lzma/CPP/7zip/UI/Explorer/MyMessages.h +16 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/BrowseDialog.cpp +1025 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/BrowseDialog.h +21 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/BrowseDialogRes.h +9 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ComboDialog.cpp +64 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ComboDialog.h +28 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ComboDialogRes.h +4 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/DialogSize.h +16 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ExtractCallback.cpp +1037 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ExtractCallback.h +328 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/FormatUtils.cpp +28 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/FormatUtils.h +14 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/LangUtils.h +40 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/MyWindowsNew.h +76 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.cpp +122 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.h +69 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.rc +91 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialogRes.h +17 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialog.cpp +58 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialog.h +28 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialog.rc +14 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialogRes.h +5 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog.cpp +196 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog.h +170 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog.rc +12 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.cpp +1337 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.h +351 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.rc +40 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2Res.h +48 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2a.rc +80 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialogRes.h +3 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/PropertyName.cpp +23 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/PropertyName.h +10 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/PropertyNameRes.h +95 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/SysIconUtils.cpp +255 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/SysIconUtils.h +62 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/resource.h +177 -0
- package/android/jni/lzma/CPP/7zip/UI/FileManager/resourceGui.h +15 -0
- package/android/jni/lzma/CPP/7zip/UI/GUI/Extract.rc +59 -0
- package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialog.cpp +418 -0
- package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialog.h +113 -0
- package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialog.rc +98 -0
- package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialogRes.h +24 -0
- package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractGUI.cpp +280 -0
- package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractGUI.h +38 -0
- package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractRes.h +51 -0
- package/android/jni/lzma/CPP/7zip/UI/GUI/HashGUI.h +27 -0
- package/android/jni/lzma/CPP/7zip/UI/GUI/resource2.h +2 -0
- package/android/jni/lzma/CPP/Build.mak +156 -0
- package/android/jni/lzma/CPP/Common/AutoPtr.h +35 -0
- package/android/jni/lzma/CPP/Common/CRC.cpp +7 -0
- package/android/jni/lzma/CPP/Common/C_FileIO.cpp +92 -0
- package/android/jni/lzma/CPP/Common/C_FileIO.h +53 -0
- package/android/jni/lzma/CPP/Common/ComTry.h +21 -0
- package/android/jni/lzma/CPP/Common/CommandLineParser.cpp +197 -0
- package/android/jni/lzma/CPP/Common/CommandLineParser.h +63 -0
- package/android/jni/lzma/CPP/Common/Common.h +43 -0
- package/android/jni/lzma/CPP/Common/CrcReg.cpp +98 -0
- package/android/jni/lzma/CPP/Common/Defs.h +15 -0
- package/android/jni/lzma/CPP/Common/DynamicBuffer.h +64 -0
- package/android/jni/lzma/CPP/Common/IntToString.cpp +193 -0
- package/android/jni/lzma/CPP/Common/IntToString.h +28 -0
- package/android/jni/lzma/CPP/Common/Lang.h +23 -0
- package/android/jni/lzma/CPP/Common/ListFileUtils.cpp +132 -0
- package/android/jni/lzma/CPP/Common/ListFileUtils.h +18 -0
- package/android/jni/lzma/CPP/Common/MyBuffer.h +259 -0
- package/android/jni/lzma/CPP/Common/MyBuffer2.h +100 -0
- package/android/jni/lzma/CPP/Common/MyCom.h +277 -0
- package/android/jni/lzma/CPP/Common/MyException.h +14 -0
- package/android/jni/lzma/CPP/Common/MyGuidDef.h +54 -0
- package/android/jni/lzma/CPP/Common/MyInitGuid.h +45 -0
- package/android/jni/lzma/CPP/Common/MyLinux.h +42 -0
- package/android/jni/lzma/CPP/Common/MyString.cpp +1659 -0
- package/android/jni/lzma/CPP/Common/MyString.h +868 -0
- package/android/jni/lzma/CPP/Common/MyTypes.h +35 -0
- package/android/jni/lzma/CPP/Common/MyUnknown.h +17 -0
- package/android/jni/lzma/CPP/Common/MyVector.cpp +3 -0
- package/android/jni/lzma/CPP/Common/MyVector.h +634 -0
- package/android/jni/lzma/CPP/Common/MyWindows.cpp +145 -0
- package/android/jni/lzma/CPP/Common/MyWindows.h +231 -0
- package/android/jni/lzma/CPP/Common/NewHandler.cpp +163 -0
- package/android/jni/lzma/CPP/Common/NewHandler.h +88 -0
- package/android/jni/lzma/CPP/Common/Sha256Reg.cpp +40 -0
- package/android/jni/lzma/CPP/Common/StdAfx.h +8 -0
- package/android/jni/lzma/CPP/Common/StdInStream.cpp +89 -0
- package/android/jni/lzma/CPP/Common/StdInStream.h +38 -0
- package/android/jni/lzma/CPP/Common/StdOutStream.cpp +163 -0
- package/android/jni/lzma/CPP/Common/StdOutStream.h +71 -0
- package/android/jni/lzma/CPP/Common/StringConvert.cpp +319 -0
- package/android/jni/lzma/CPP/Common/StringConvert.h +88 -0
- package/android/jni/lzma/CPP/Common/StringToInt.cpp +144 -0
- package/android/jni/lzma/CPP/Common/StringToInt.h +21 -0
- package/android/jni/lzma/CPP/Common/TextConfig.cpp +124 -0
- package/android/jni/lzma/CPP/Common/TextConfig.h +19 -0
- package/android/jni/lzma/CPP/Common/UTFConvert.cpp +288 -0
- package/android/jni/lzma/CPP/Common/UTFConvert.h +12 -0
- package/android/jni/lzma/CPP/Common/Wildcard.cpp +676 -0
- package/android/jni/lzma/CPP/Common/Wildcard.h +149 -0
- package/android/jni/lzma/CPP/Common/XzCrc64Init.cpp +7 -0
- package/android/jni/lzma/CPP/Common/XzCrc64Reg.cpp +42 -0
- package/android/jni/lzma/CPP/Windows/COM.h +70 -0
- package/android/jni/lzma/CPP/Windows/CommonDialog.cpp +185 -0
- package/android/jni/lzma/CPP/Windows/CommonDialog.h +23 -0
- package/android/jni/lzma/CPP/Windows/Control/ComboBox.cpp +66 -0
- package/android/jni/lzma/CPP/Windows/Control/ComboBox.h +65 -0
- package/android/jni/lzma/CPP/Windows/Control/CommandBar.h +52 -0
- package/android/jni/lzma/CPP/Windows/Control/Dialog.cpp +251 -0
- package/android/jni/lzma/CPP/Windows/Control/Dialog.h +170 -0
- package/android/jni/lzma/CPP/Windows/Control/Edit.h +19 -0
- package/android/jni/lzma/CPP/Windows/Control/ImageList.cpp +10 -0
- package/android/jni/lzma/CPP/Windows/Control/ImageList.h +87 -0
- package/android/jni/lzma/CPP/Windows/Control/ListView.cpp +155 -0
- package/android/jni/lzma/CPP/Windows/Control/ListView.h +146 -0
- package/android/jni/lzma/CPP/Windows/Control/ProgressBar.h +35 -0
- package/android/jni/lzma/CPP/Windows/Control/PropertyPage.cpp +143 -0
- package/android/jni/lzma/CPP/Windows/Control/PropertyPage.h +50 -0
- package/android/jni/lzma/CPP/Windows/Control/ReBar.h +34 -0
- package/android/jni/lzma/CPP/Windows/Control/Static.h +28 -0
- package/android/jni/lzma/CPP/Windows/Control/StatusBar.h +42 -0
- package/android/jni/lzma/CPP/Windows/Control/StdAfx.h +8 -0
- package/android/jni/lzma/CPP/Windows/Control/ToolBar.h +43 -0
- package/android/jni/lzma/CPP/Windows/Control/Trackbar.h +27 -0
- package/android/jni/lzma/CPP/Windows/Control/Window2.cpp +200 -0
- package/android/jni/lzma/CPP/Windows/Control/Window2.h +51 -0
- package/android/jni/lzma/CPP/Windows/DLL.cpp +109 -0
- package/android/jni/lzma/CPP/Windows/DLL.h +58 -0
- package/android/jni/lzma/CPP/Windows/Defs.h +17 -0
- package/android/jni/lzma/CPP/Windows/ErrorMsg.cpp +66 -0
- package/android/jni/lzma/CPP/Windows/ErrorMsg.h +15 -0
- package/android/jni/lzma/CPP/Windows/FileDir.cpp +714 -0
- package/android/jni/lzma/CPP/Windows/FileDir.h +117 -0
- package/android/jni/lzma/CPP/Windows/FileFind.cpp +749 -0
- package/android/jni/lzma/CPP/Windows/FileFind.h +161 -0
- package/android/jni/lzma/CPP/Windows/FileIO.cpp +432 -0
- package/android/jni/lzma/CPP/Windows/FileIO.h +212 -0
- package/android/jni/lzma/CPP/Windows/FileLink.cpp +440 -0
- package/android/jni/lzma/CPP/Windows/FileMapping.cpp +12 -0
- package/android/jni/lzma/CPP/Windows/FileMapping.h +66 -0
- package/android/jni/lzma/CPP/Windows/FileName.cpp +839 -0
- package/android/jni/lzma/CPP/Windows/FileName.h +115 -0
- package/android/jni/lzma/CPP/Windows/FileSystem.cpp +131 -0
- package/android/jni/lzma/CPP/Windows/FileSystem.h +27 -0
- package/android/jni/lzma/CPP/Windows/Handle.h +37 -0
- package/android/jni/lzma/CPP/Windows/MemoryLock.cpp +112 -0
- package/android/jni/lzma/CPP/Windows/MemoryLock.h +40 -0
- package/android/jni/lzma/CPP/Windows/NtCheck.h +46 -0
- package/android/jni/lzma/CPP/Windows/PropVariant.cpp +347 -0
- package/android/jni/lzma/CPP/Windows/PropVariant.h +114 -0
- package/android/jni/lzma/CPP/Windows/PropVariantConv.cpp +138 -0
- package/android/jni/lzma/CPP/Windows/PropVariantConv.h +37 -0
- package/android/jni/lzma/CPP/Windows/Registry.cpp +390 -0
- package/android/jni/lzma/CPP/Windows/Registry.h +84 -0
- package/android/jni/lzma/CPP/Windows/ResourceString.cpp +103 -0
- package/android/jni/lzma/CPP/Windows/ResourceString.h +16 -0
- package/android/jni/lzma/CPP/Windows/SecurityUtils.cpp +181 -0
- package/android/jni/lzma/CPP/Windows/SecurityUtils.h +167 -0
- package/android/jni/lzma/CPP/Windows/Shell.cpp +358 -0
- package/android/jni/lzma/CPP/Windows/Shell.h +94 -0
- package/android/jni/lzma/CPP/Windows/StdAfx.h +8 -0
- package/android/jni/lzma/CPP/Windows/Synchronization.cpp +10 -0
- package/android/jni/lzma/CPP/Windows/Synchronization.h +164 -0
- package/android/jni/lzma/CPP/Windows/System.cpp +142 -0
- package/android/jni/lzma/CPP/Windows/System.h +40 -0
- package/android/jni/lzma/CPP/Windows/Thread.h +38 -0
- package/android/jni/lzma/CPP/Windows/TimeUtils.cpp +213 -0
- package/android/jni/lzma/CPP/Windows/TimeUtils.h +32 -0
- package/android/jni/lzma/CPP/Windows/Window.cpp +179 -0
- package/android/jni/lzma/CPP/Windows/Window.h +284 -0
- package/android/jni/lzma/CS/7zip/Common/CRC.cs +55 -0
- package/android/jni/lzma/CS/7zip/Common/CommandLineParser.cs +274 -0
- package/android/jni/lzma/CS/7zip/Common/InBuffer.cs +72 -0
- package/android/jni/lzma/CS/7zip/Common/OutBuffer.cs +47 -0
- package/android/jni/lzma/CS/7zip/Compress/LZ/IMatchFinder.cs +24 -0
- package/android/jni/lzma/CS/7zip/Compress/LZ/LzBinTree.cs +367 -0
- package/android/jni/lzma/CS/7zip/Compress/LZ/LzInWindow.cs +132 -0
- package/android/jni/lzma/CS/7zip/Compress/LZ/LzOutWindow.cs +110 -0
- package/android/jni/lzma/CS/7zip/Compress/LZMA/LzmaBase.cs +76 -0
- package/android/jni/lzma/CS/7zip/Compress/LZMA/LzmaDecoder.cs +398 -0
- package/android/jni/lzma/CS/7zip/Compress/LZMA/LzmaEncoder.cs +1480 -0
- package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.cs +364 -0
- package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.csproj +90 -0
- package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.sln +20 -0
- package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaBench.cs +340 -0
- package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/Properties/AssemblyInfo.cs +29 -0
- package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/Properties/Resources.cs +70 -0
- package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/Properties/Settings.cs +42 -0
- package/android/jni/lzma/CS/7zip/Compress/RangeCoder/RangeCoder.cs +234 -0
- package/android/jni/lzma/CS/7zip/Compress/RangeCoder/RangeCoderBit.cs +117 -0
- package/android/jni/lzma/CS/7zip/Compress/RangeCoder/RangeCoderBitTree.cs +157 -0
- package/android/jni/lzma/CS/7zip/ICoder.cs +157 -0
- package/android/jni/lzma/DOC/7zC.txt +187 -0
- package/android/jni/lzma/DOC/7zFormat.txt +469 -0
- package/android/jni/lzma/DOC/Methods.txt +173 -0
- package/android/jni/lzma/DOC/installer.txt +166 -0
- package/android/jni/lzma/DOC/lzma-history.txt +446 -0
- package/android/jni/lzma/DOC/lzma-sdk.txt +357 -0
- package/android/jni/lzma/DOC/lzma-specification.txt +1176 -0
- package/android/jni/lzma/DOC/lzma.txt +328 -0
- package/android/jni/lzma/Java/SevenZip/CRC.java +52 -0
- package/android/jni/lzma/Java/SevenZip/Compression/LZ/BinTree.java +382 -0
- package/android/jni/lzma/Java/SevenZip/Compression/LZ/InWindow.java +131 -0
- package/android/jni/lzma/Java/SevenZip/Compression/LZ/OutWindow.java +85 -0
- package/android/jni/lzma/Java/SevenZip/Compression/LZMA/Base.java +88 -0
- package/android/jni/lzma/Java/SevenZip/Compression/LZMA/Decoder.java +329 -0
- package/android/jni/lzma/Java/SevenZip/Compression/LZMA/Encoder.java +1416 -0
- package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/BitTreeDecoder.java +55 -0
- package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/BitTreeEncoder.java +99 -0
- package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/Decoder.java +88 -0
- package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/Encoder.java +151 -0
- package/android/jni/lzma/Java/SevenZip/ICodeProgress.java +6 -0
- package/android/jni/lzma/Java/SevenZip/LzmaAlone.java +253 -0
- package/android/jni/lzma/Java/SevenZip/LzmaBench.java +392 -0
- package/android/jni/lzma/bin/7zS2.sfx +0 -0
- package/android/jni/lzma/bin/7zS2con.sfx +0 -0
- package/android/jni/lzma/bin/7zSD.sfx +0 -0
- package/android/jni/lzma/bin/installer/config.txt +5 -0
- package/android/jni/lzma/bin/installer/cr.bat +5 -0
- package/android/lib/arm64-v8a/librnupdate.so +0 -0
- package/android/lib/armeabi-v7a/librnupdate.so +0 -0
- package/android/lib/x86/librnupdate.so +0 -0
- package/android/lib/x86_64/librnupdate.so +0 -0
- package/android/proguard.pro +83 -0
- package/android/src/main/AndroidManifest.xml +14 -0
- package/android/src/main/AndroidManifestNew.xml +13 -0
- package/android/src/main/java/cn/reactnative/modules/update/ApkInstaller.java +292 -0
- package/android/src/main/java/cn/reactnative/modules/update/ArchiveLimits.java +50 -0
- package/android/src/main/java/cn/reactnative/modules/update/ArchivePatchPlanResult.java +11 -0
- package/android/src/main/java/cn/reactnative/modules/update/BundledResourceCopier.java +394 -0
- package/android/src/main/java/cn/reactnative/modules/update/CleanupKeepNames.java +30 -0
- package/android/src/main/java/cn/reactnative/modules/update/CopyGroupResult.java +11 -0
- package/android/src/main/java/cn/reactnative/modules/update/CrashRescue.java +120 -0
- package/android/src/main/java/cn/reactnative/modules/update/DownloadTask.java +954 -0
- package/android/src/main/java/cn/reactnative/modules/update/DownloadTaskParams.java +64 -0
- package/android/src/main/java/cn/reactnative/modules/update/ErrorCodes.java +32 -0
- package/android/src/main/java/cn/reactnative/modules/update/FileOperationException.java +20 -0
- package/android/src/main/java/cn/reactnative/modules/update/HttpUtils.java +64 -0
- package/android/src/main/java/cn/reactnative/modules/update/InstallRecord.java +156 -0
- package/android/src/main/java/cn/reactnative/modules/update/NativeCheckOrchestrator.java +725 -0
- package/android/src/main/java/cn/reactnative/modules/update/NativeUpdateCore.java +43 -0
- package/android/src/main/java/cn/reactnative/modules/update/NativeUpdateFlow.java +30 -0
- package/android/src/main/java/cn/reactnative/modules/update/PackageInstallerStatusReceiver.java +17 -0
- package/android/src/main/java/cn/reactnative/modules/update/PatchFailedException.java +21 -0
- package/android/src/main/java/cn/reactnative/modules/update/ReactReloadManager.java +274 -0
- package/android/src/main/java/cn/reactnative/modules/update/SafeZipFile.java +187 -0
- package/android/src/main/java/cn/reactnative/modules/update/StateCoreResult.java +22 -0
- package/android/src/main/java/cn/reactnative/modules/update/StateSerialRunner.java +70 -0
- package/android/src/main/java/cn/reactnative/modules/update/UiThreadRunner.java +42 -0
- package/android/src/main/java/cn/reactnative/modules/update/UpdateContext.java +952 -0
- package/android/src/main/java/cn/reactnative/modules/update/UpdateEventEmitter.java +70 -0
- package/android/src/main/java/cn/reactnative/modules/update/UpdateFileUtils.java +110 -0
- package/android/src/main/java/cn/reactnative/modules/update/UpdateModuleImpl.java +403 -0
- package/android/src/main/java/cn/reactnative/modules/update/UpdatePackage.java +51 -0
- package/android/src/main/java/expo/modules/pakta/ExpoPaktaModule.kt +15 -0
- package/android/src/main/java/expo/modules/pakta/ExpoPaktaPackage.java +29 -0
- package/android/src/newarch/cn/reactnative/modules/update/UpdateModule.java +126 -0
- package/android/src/oldarch/cn/reactnative/modules/update/UpdateModule.java +130 -0
- package/cpp/patch_core/archive_limits.h +49 -0
- package/cpp/patch_core/archive_patch_core.cpp +146 -0
- package/cpp/patch_core/archive_patch_core.h +69 -0
- package/cpp/patch_core/digest.cpp +235 -0
- package/cpp/patch_core/digest.h +66 -0
- package/cpp/patch_core/error_codes.h +57 -0
- package/cpp/patch_core/hbc_transform.cpp +152 -0
- package/cpp/patch_core/hbc_transform.h +58 -0
- package/cpp/patch_core/hbc_transform_wire.cpp +332 -0
- package/cpp/patch_core/hbc_transform_wire.h +57 -0
- package/cpp/patch_core/install_record.h +41 -0
- package/cpp/patch_core/jni_util.h +65 -0
- package/cpp/patch_core/patch_core.cpp +849 -0
- package/cpp/patch_core/patch_core.h +103 -0
- package/cpp/patch_core/patch_core_android.cpp +102 -0
- package/cpp/patch_core/state_core.cpp +122 -0
- package/cpp/patch_core/state_core.h +66 -0
- package/cpp/patch_core/state_ops.h +29 -0
- package/cpp/patch_core/update_core_android.cpp +502 -0
- package/cpp/update_flow_core/flow_json.cpp +660 -0
- package/cpp/update_flow_core/flow_json.h +121 -0
- package/cpp/update_flow_core/update_flow_core.cpp +418 -0
- package/cpp/update_flow_core/update_flow_core.h +100 -0
- package/cpp/update_flow_core/update_flow_jni.cpp +157 -0
- package/expo-module.config.json +13 -0
- package/harmony/hvigor-plugin.ts +212 -0
- package/harmony/pakta/src/README.md +74 -0
- package/harmony/pakta/src/main/cpp/CMakeLists.txt +92 -0
- package/harmony/pakta/src/main/cpp/PaktaPackage.h +60 -0
- package/harmony/pakta/src/main/cpp/PaktaTurboModule.cpp +123 -0
- package/harmony/pakta/src/main/cpp/PaktaTurboModule.h +43 -0
- package/harmony/pakta/src/main/cpp/pakta.cpp +1243 -0
- package/harmony/pakta/src/main/ets/ArchiveLimits.ts +144 -0
- package/harmony/pakta/src/main/ets/DownloadTask.ts +1375 -0
- package/harmony/pakta/src/main/ets/DownloadTaskParams.ts +27 -0
- package/harmony/pakta/src/main/ets/ErrorCodes.ts +80 -0
- package/harmony/pakta/src/main/ets/EventHub.ts +46 -0
- package/harmony/pakta/src/main/ets/InstallRecord.ts +192 -0
- package/harmony/pakta/src/main/ets/Logger.ts +83 -0
- package/harmony/pakta/src/main/ets/MonotonicClock.ts +18 -0
- package/harmony/pakta/src/main/ets/NativeCheckOrchestrator.ts +640 -0
- package/harmony/pakta/src/main/ets/NativePatchCore.ts +123 -0
- package/harmony/pakta/src/main/ets/PaktaFileJSBundleProvider.ets +54 -0
- package/harmony/pakta/src/main/ets/PaktaPackage.ets +15 -0
- package/harmony/pakta/src/main/ets/PaktaPackageCompat.ts +15 -0
- package/harmony/pakta/src/main/ets/PaktaPackageFactory.ts +19 -0
- package/harmony/pakta/src/main/ets/PaktaTurboModule.ts +433 -0
- package/harmony/pakta/src/main/ets/PathUtils.ts +32 -0
- package/harmony/pakta/src/main/ets/SaveFile.ts +39 -0
- package/harmony/pakta/src/main/ets/UpdateContext.ts +1059 -0
- package/harmony/pakta/src/main/module.json5 +14 -0
- package/harmony/pakta/src/main/resources/base/element/string.json +8 -0
- package/harmony/pakta/src/main/resources/en_US/element/string.json +8 -0
- package/harmony/pakta/src/main/resources/zh_CN/element/string.json +8 -0
- package/harmony/pakta.har +0 -0
- package/ios/Expo/ExpoPaktaModule.swift +12 -0
- package/ios/Expo/ExpoPaktaReactDelegateHandler.swift +25 -0
- package/ios/ImportReact.h +7 -0
- package/ios/PrivacyInfo.xcprivacy +84 -0
- package/ios/RCTPakta/RCTPakta.h +14 -0
- package/ios/RCTPakta/RCTPakta.mm +2775 -0
- package/ios/RCTPakta/RCTPaktaDownloader.h +29 -0
- package/ios/RCTPakta/RCTPaktaDownloader.mm +625 -0
- package/ios/pakta_build_time.txt +1 -0
- package/package.json +88 -0
- package/react-native.config.js +6 -0
- package/rn-update.podspec +221 -0
- package/src/NativePakta.ts +85 -0
- package/src/client.ts +1839 -0
- package/src/context.ts +102 -0
- package/src/core.ts +190 -0
- package/src/endpoint.ts +204 -0
- package/src/error.ts +168 -0
- package/src/errorReporting.ts +141 -0
- package/src/globals.d.ts +6 -0
- package/src/i18n.ts +113 -0
- package/src/index.ts +46 -0
- package/src/locales/en.ts +77 -0
- package/src/locales/zh.ts +71 -0
- package/src/metadata.ts +175 -0
- package/src/provider.tsx +629 -0
- package/src/telemetry.ts +104 -0
- package/src/type.ts +243 -0
- package/src/updateFlowCore.ts +428 -0
- package/src/utils.ts +268 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [INPUT]: 依赖 Foundation、下载 URL/目标路径、总时限与进度/完成回调
|
|
3
|
+
* [OUTPUT]: 对外提供 RCTPaktaDownloader.download 单文件流式下载入口
|
|
4
|
+
* [POS]: RCTPakta 网络传输端口,向主模块隐藏 NSURLSession delegate、Range 恢复和 sidecar 状态
|
|
5
|
+
*/
|
|
6
|
+
#import <Foundation/Foundation.h>
|
|
7
|
+
|
|
8
|
+
// Path of the resume sidecar that records what a partial download at
|
|
9
|
+
// `savePath` belongs to (url + validators + total). Shared with the unzip
|
|
10
|
+
// step, which must drop it together with the archive it vouches for.
|
|
11
|
+
FOUNDATION_EXPORT NSString *RCTPaktaResumeSidecarPath(NSString *savePath);
|
|
12
|
+
|
|
13
|
+
// Size of the file at `path` in bytes; -1 when it cannot be read.
|
|
14
|
+
FOUNDATION_EXPORT long long RCTPaktaFileSize(NSString *path);
|
|
15
|
+
|
|
16
|
+
// nil when the volume holding `path` can take `bytesToWrite` plus the
|
|
17
|
+
// cpp/patch_core/archive_limits.h safety margin (or the free space is
|
|
18
|
+
// unknown); the reason otherwise. `path` need not exist yet — the check walks
|
|
19
|
+
// up to an existing ancestor.
|
|
20
|
+
FOUNDATION_EXPORT NSString *RCTPaktaFreeSpaceShortfall(NSString *path, long long bytesToWrite);
|
|
21
|
+
|
|
22
|
+
@interface RCTPaktaDownloader : NSObject
|
|
23
|
+
|
|
24
|
+
+ (void)download:(NSString *)downloadPath savePath:(NSString *)savePath
|
|
25
|
+
timeoutInterval:(NSTimeInterval)timeoutInterval
|
|
26
|
+
progressHandler:(void (^)(long long, long long))progressHandler
|
|
27
|
+
completionHandler:(void (^)(NSString *path, NSError *error))completionHandler;
|
|
28
|
+
|
|
29
|
+
@end
|
|
@@ -0,0 +1,625 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* [INPUT]: 依赖 RCTPaktaDownloader 接口、Foundation NSURLSession/NSFileHandle、HTTP Range/If-Range 与本地 resume sidecar
|
|
3
|
+
* [OUTPUT]: 对外实现带超时、进度、断点续传、完整性校验和一次清零重试的流式文件下载
|
|
4
|
+
* [POS]: iOS 更新网络 IO 适配器,只保证归档字节可靠落盘;解压、补丁和版本状态由 RCTPakta.mm 负责
|
|
5
|
+
*/
|
|
6
|
+
#import "RCTPaktaDownloader.h"
|
|
7
|
+
#include "../../cpp/patch_core/archive_limits.h"
|
|
8
|
+
|
|
9
|
+
static NSString *const RCTPaktaDownloaderErrorDomain = @"cn.reactnative.pakta";
|
|
10
|
+
|
|
11
|
+
// Cross-launch resumable download (NATIVE_CHECKUPDATE_DESIGN §11.4): a data
|
|
12
|
+
// task streams the archive straight into savePath (a download task's
|
|
13
|
+
// temporary file is discarded on failure, which made every partial byte
|
|
14
|
+
// worthless), and a sidecar next to it records what the partial belongs to
|
|
15
|
+
// (url + validators + total). A brick gets a few hundred milliseconds per
|
|
16
|
+
// launch plus a bounded crash-rescue window, so progress must be monotonic
|
|
17
|
+
// across process deaths.
|
|
18
|
+
|
|
19
|
+
NSString *RCTPaktaResumeSidecarPath(NSString *savePath) {
|
|
20
|
+
return [savePath stringByAppendingString:@".resume"];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
static NSDictionary *RCTPaktaReadResumeMeta(NSString *savePath, NSString *url) {
|
|
24
|
+
NSData *data = [NSData dataWithContentsOfFile:RCTPaktaResumeSidecarPath(savePath)];
|
|
25
|
+
if (data == nil) {
|
|
26
|
+
return nil;
|
|
27
|
+
}
|
|
28
|
+
id meta = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
|
|
29
|
+
if (![meta isKindOfClass:[NSDictionary class]]) {
|
|
30
|
+
return nil;
|
|
31
|
+
}
|
|
32
|
+
// An archive whose sidecar names another URL is untrusted.
|
|
33
|
+
if (![url isEqualToString:meta[@"url"]]) {
|
|
34
|
+
return nil;
|
|
35
|
+
}
|
|
36
|
+
return meta;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
static void RCTPaktaDeleteResumeSidecar(NSString *savePath) {
|
|
40
|
+
[[NSFileManager defaultManager] removeItemAtPath:RCTPaktaResumeSidecarPath(savePath)
|
|
41
|
+
error:nil];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
long long RCTPaktaFileSize(NSString *path) {
|
|
45
|
+
NSDictionary *attributes =
|
|
46
|
+
[[NSFileManager defaultManager] attributesOfItemAtPath:path error:nil];
|
|
47
|
+
NSNumber *size = attributes[NSFileSize];
|
|
48
|
+
return size == nil ? -1 : size.longLongValue;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Free space on the volume holding `path` (walks up to an existing ancestor);
|
|
52
|
+
// -1 when unknown.
|
|
53
|
+
static long long RCTPaktaFreeDiskSpaceForPath(NSString *path) {
|
|
54
|
+
NSFileManager *fileManager = [NSFileManager defaultManager];
|
|
55
|
+
NSString *probe = path;
|
|
56
|
+
while (probe.length > 1 && ![fileManager fileExistsAtPath:probe]) {
|
|
57
|
+
probe = [probe stringByDeletingLastPathComponent];
|
|
58
|
+
}
|
|
59
|
+
NSDictionary *attributes = [fileManager attributesOfFileSystemForPath:probe error:nil];
|
|
60
|
+
NSNumber *free = attributes[NSFileSystemFreeSize];
|
|
61
|
+
return free == nil ? -1 : free.longLongValue;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
NSString *RCTPaktaFreeSpaceShortfall(NSString *path, long long bytesToWrite) {
|
|
65
|
+
long long free = RCTPaktaFreeDiskSpaceForPath(path);
|
|
66
|
+
if (free < 0) {
|
|
67
|
+
return nil;
|
|
68
|
+
}
|
|
69
|
+
long long needed = MAX(0LL, bytesToWrite) + pakta::archive_limits::kFreeDiskMarginBytes;
|
|
70
|
+
if (free < needed) {
|
|
71
|
+
return [NSString stringWithFormat:@"insufficient disk space: need %lld bytes, have %lld",
|
|
72
|
+
needed, free];
|
|
73
|
+
}
|
|
74
|
+
return nil;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// "bytes <start>-<end>/<total>". Returns the total (0 when "*"), or -1 when
|
|
78
|
+
// missing/malformed, the start does not match the local partial, or the
|
|
79
|
+
// range and total contradict each other (end before start, or a numeric
|
|
80
|
+
// total not beyond the end — RFC 9110 §14.4). A total of 0 would otherwise
|
|
81
|
+
// pass as "unknown" and skip the final size check.
|
|
82
|
+
static long long RCTPaktaParseContentRange(NSString *header, long long expectedStart) {
|
|
83
|
+
if (![header hasPrefix:@"bytes "]) {
|
|
84
|
+
return -1;
|
|
85
|
+
}
|
|
86
|
+
NSString *range = [[header substringFromIndex:6]
|
|
87
|
+
stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
|
|
88
|
+
NSRange slash = [range rangeOfString:@"/"];
|
|
89
|
+
NSRange dash = [range rangeOfString:@"-"];
|
|
90
|
+
if (slash.location == NSNotFound || dash.location == NSNotFound
|
|
91
|
+
|| dash.location > slash.location) {
|
|
92
|
+
return -1;
|
|
93
|
+
}
|
|
94
|
+
NSCharacterSet *whitespace = [NSCharacterSet whitespaceCharacterSet];
|
|
95
|
+
NSString *startPart = [[range substringToIndex:dash.location]
|
|
96
|
+
stringByTrimmingCharactersInSet:whitespace];
|
|
97
|
+
NSString *endPart = [[range substringWithRange:
|
|
98
|
+
NSMakeRange(dash.location + 1, slash.location - dash.location - 1)]
|
|
99
|
+
stringByTrimmingCharactersInSet:whitespace];
|
|
100
|
+
NSString *totalPart = [[range substringFromIndex:slash.location + 1]
|
|
101
|
+
stringByTrimmingCharactersInSet:whitespace];
|
|
102
|
+
// longLongValue reads 0 for non-numeric text; require real digits.
|
|
103
|
+
NSCharacterSet *digits = [NSCharacterSet decimalDigitCharacterSet];
|
|
104
|
+
if (startPart.length == 0 || endPart.length == 0
|
|
105
|
+
|| [startPart rangeOfCharacterFromSet:digits.invertedSet].location != NSNotFound
|
|
106
|
+
|| [endPart rangeOfCharacterFromSet:digits.invertedSet].location != NSNotFound) {
|
|
107
|
+
return -1;
|
|
108
|
+
}
|
|
109
|
+
long long start = startPart.longLongValue;
|
|
110
|
+
long long end = endPart.longLongValue;
|
|
111
|
+
if (start != expectedStart || end < start) {
|
|
112
|
+
return -1;
|
|
113
|
+
}
|
|
114
|
+
if ([totalPart isEqualToString:@"*"]) {
|
|
115
|
+
return 0;
|
|
116
|
+
}
|
|
117
|
+
if (totalPart.length == 0
|
|
118
|
+
|| [totalPart rangeOfCharacterFromSet:digits.invertedSet].location != NSNotFound) {
|
|
119
|
+
return -1;
|
|
120
|
+
}
|
|
121
|
+
long long total = totalPart.longLongValue;
|
|
122
|
+
return total > end ? total : -1;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
@interface RCTPaktaDownloader()<NSURLSessionDataDelegate>
|
|
126
|
+
|
|
127
|
+
@property (nonatomic, strong) NSURLSession *session;
|
|
128
|
+
@property (copy) void (^progressHandler)(long long, long long);
|
|
129
|
+
@property (copy) void (^completionHandler)(NSString*, NSError*);
|
|
130
|
+
@property (copy) NSString *savePath;
|
|
131
|
+
@property (copy) NSString *urlString;
|
|
132
|
+
@property (nonatomic, assign) NSTimeInterval timeoutInterval;
|
|
133
|
+
@property (nonatomic, strong) NSFileHandle *fileHandle;
|
|
134
|
+
@property (nonatomic, strong) NSDictionary *resumeMeta;
|
|
135
|
+
@property (nonatomic, assign) long long resumeOffset; // requested Range start
|
|
136
|
+
@property (nonatomic, assign) long long baseOffset; // granted by the response
|
|
137
|
+
@property (nonatomic, assign) long long receivedBytes; // streamed this session
|
|
138
|
+
@property (nonatomic, assign) long long contentLength; // this response's body
|
|
139
|
+
@property (nonatomic, assign) long long expectedTotal; // whole file (0 unknown)
|
|
140
|
+
@property (nonatomic, strong) NSError *fileError;
|
|
141
|
+
@property (nonatomic, assign) BOOL finished;
|
|
142
|
+
@property (nonatomic, assign) BOOL retriedFromZero;
|
|
143
|
+
// The server encoded the body itself (Content-Encoding other than identity):
|
|
144
|
+
// NSURLSession delivers decoded bytes, so length accounting against the
|
|
145
|
+
// encoded Content-Length is meaningless and resume offsets cannot be trusted.
|
|
146
|
+
@property (nonatomic, assign) BOOL encodedBody;
|
|
147
|
+
// The archive was rejected outright (over archive_limits::kMaxArchiveBytes):
|
|
148
|
+
// nothing on disk is worth resuming, so completion drops the partial and its
|
|
149
|
+
// sidecar instead of leaving them as resume state.
|
|
150
|
+
@property (nonatomic, assign) BOOL discardPartial;
|
|
151
|
+
@property (nonatomic, assign) int lastReportedPercentage;
|
|
152
|
+
@property (nonatomic, assign) long long lastReportedBytes;
|
|
153
|
+
// receivedBytes up to which free disk has been probed for (unknown-length
|
|
154
|
+
// bodies; 0 = probe before the first write)
|
|
155
|
+
@property (nonatomic, assign) long long freeSpaceReservedUntil;
|
|
156
|
+
@end
|
|
157
|
+
|
|
158
|
+
@implementation RCTPaktaDownloader
|
|
159
|
+
|
|
160
|
+
+ (void)download:(NSString *)downloadPath savePath:(NSString *)savePath
|
|
161
|
+
timeoutInterval:(NSTimeInterval)timeoutInterval
|
|
162
|
+
progressHandler:(void (^)(long long receivedBytes, long long totalBytes))progressHandler
|
|
163
|
+
completionHandler:(void (^)(NSString *path, NSError *error))completionHandler
|
|
164
|
+
{
|
|
165
|
+
NSAssert(downloadPath, @"no download path");
|
|
166
|
+
NSAssert(savePath, @"no save path");
|
|
167
|
+
|
|
168
|
+
RCTPaktaDownloader *downloader = [RCTPaktaDownloader new];
|
|
169
|
+
downloader.progressHandler = progressHandler;
|
|
170
|
+
downloader.completionHandler = completionHandler;
|
|
171
|
+
downloader.savePath = savePath;
|
|
172
|
+
downloader.urlString = downloadPath;
|
|
173
|
+
downloader.timeoutInterval = timeoutInterval;
|
|
174
|
+
|
|
175
|
+
[downloader startTransfer];
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
- (void)startTransfer
|
|
179
|
+
{
|
|
180
|
+
NSURL *url = [NSURL URLWithString:self.urlString];
|
|
181
|
+
if (url == nil) {
|
|
182
|
+
[self completeWithError:[NSError errorWithDomain:RCTPaktaDownloaderErrorDomain
|
|
183
|
+
code:-1
|
|
184
|
+
userInfo:@{
|
|
185
|
+
NSLocalizedDescriptionKey: @"invalid download url",
|
|
186
|
+
}]];
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
NSFileManager *fileManager = [NSFileManager defaultManager];
|
|
191
|
+
self.resumeMeta = RCTPaktaReadResumeMeta(self.savePath, self.urlString);
|
|
192
|
+
self.resumeOffset = 0;
|
|
193
|
+
if (self.resumeMeta != nil) {
|
|
194
|
+
long long size = RCTPaktaFileSize(self.savePath);
|
|
195
|
+
long long knownTotal = [self.resumeMeta[@"total"] longLongValue];
|
|
196
|
+
if (size > 0 && knownTotal > 0 && size == knownTotal) {
|
|
197
|
+
// Fully received in a previous attempt (the process died between
|
|
198
|
+
// download end and unzip): nothing left to transfer.
|
|
199
|
+
if (self.progressHandler) {
|
|
200
|
+
self.progressHandler(knownTotal, knownTotal);
|
|
201
|
+
}
|
|
202
|
+
[self completeWithError:nil];
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
if (size > 0 && (knownTotal <= 0 || size < knownTotal)) {
|
|
206
|
+
self.resumeOffset = size;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
if (self.resumeOffset == 0) {
|
|
210
|
+
[fileManager removeItemAtPath:self.savePath error:nil];
|
|
211
|
+
RCTPaktaDeleteResumeSidecar(self.savePath);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
|
|
215
|
+
if (self.resumeOffset > 0) {
|
|
216
|
+
// Only resume requests pin the encoding: Range offsets must address
|
|
217
|
+
// the same bytes that are on disk. Fresh downloads keep the system's
|
|
218
|
+
// transparent gzip handling, matching the pre-resume behaviour for
|
|
219
|
+
// servers that compress regardless.
|
|
220
|
+
[request setValue:@"identity" forHTTPHeaderField:@"Accept-Encoding"];
|
|
221
|
+
[request setValue:[NSString stringWithFormat:@"bytes=%lld-", self.resumeOffset]
|
|
222
|
+
forHTTPHeaderField:@"Range"];
|
|
223
|
+
NSString *validator = self.resumeMeta[@"etag"] ?: self.resumeMeta[@"lastModified"];
|
|
224
|
+
if (validator != nil) {
|
|
225
|
+
// With a validator the server falls back to a full 200 when the
|
|
226
|
+
// file changed instead of appending mismatched bytes.
|
|
227
|
+
[request setValue:validator forHTTPHeaderField:@"If-Range"];
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
|
|
232
|
+
// Avoid hanging forever on a stalled connection (default resource timeout
|
|
233
|
+
// is 7 days). The 30s idle timeout matches Android's readTimeout and is
|
|
234
|
+
// what actually catches a stalled transfer; the total-duration cap matches
|
|
235
|
+
// Android's 10min callTimeout — 300s made a 30MB full package on a slow
|
|
236
|
+
// (<100KB/s) network fail on iOS while succeeding on Android.
|
|
237
|
+
sessionConfig.timeoutIntervalForRequest = 30;
|
|
238
|
+
sessionConfig.timeoutIntervalForResource = MAX(1, self.timeoutInterval);
|
|
239
|
+
self.session = [NSURLSession sessionWithConfiguration:sessionConfig
|
|
240
|
+
delegate:self
|
|
241
|
+
delegateQueue:nil];
|
|
242
|
+
|
|
243
|
+
NSURLSessionDataTask *task = [self.session dataTaskWithRequest:request];
|
|
244
|
+
[task resume];
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
- (void)writeResumeMetaWithResponse:(NSHTTPURLResponse *)response total:(long long)total
|
|
248
|
+
{
|
|
249
|
+
NSMutableDictionary *meta = [NSMutableDictionary dictionary];
|
|
250
|
+
meta[@"url"] = self.urlString;
|
|
251
|
+
NSString *etag = response.allHeaderFields[@"ETag"] ?: self.resumeMeta[@"etag"];
|
|
252
|
+
NSString *lastModified =
|
|
253
|
+
response.allHeaderFields[@"Last-Modified"] ?: self.resumeMeta[@"lastModified"];
|
|
254
|
+
if (etag != nil) {
|
|
255
|
+
meta[@"etag"] = etag;
|
|
256
|
+
}
|
|
257
|
+
if (lastModified != nil) {
|
|
258
|
+
meta[@"lastModified"] = lastModified;
|
|
259
|
+
}
|
|
260
|
+
if (total > 0) {
|
|
261
|
+
meta[@"total"] = @(total);
|
|
262
|
+
}
|
|
263
|
+
NSData *data = [NSJSONSerialization dataWithJSONObject:meta options:0 error:nil];
|
|
264
|
+
if (data != nil) {
|
|
265
|
+
// Non-fatal on failure: without a sidecar the next attempt starts
|
|
266
|
+
// from zero.
|
|
267
|
+
[data writeToFile:RCTPaktaResumeSidecarPath(self.savePath) atomically:YES];
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
- (void)completeWithError:(NSError *)error
|
|
272
|
+
{
|
|
273
|
+
if (self.finished) {
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
self.finished = YES;
|
|
277
|
+
|
|
278
|
+
if (self.fileHandle != nil) {
|
|
279
|
+
@try {
|
|
280
|
+
[self.fileHandle closeFile];
|
|
281
|
+
} @catch (NSException *exception) {
|
|
282
|
+
}
|
|
283
|
+
self.fileHandle = nil;
|
|
284
|
+
}
|
|
285
|
+
if (self.discardPartial) {
|
|
286
|
+
[[NSFileManager defaultManager] removeItemAtPath:self.savePath error:nil];
|
|
287
|
+
RCTPaktaDeleteResumeSidecar(self.savePath);
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
void (^completionHandler)(NSString *, NSError *) = self.completionHandler;
|
|
291
|
+
self.progressHandler = nil;
|
|
292
|
+
self.completionHandler = nil;
|
|
293
|
+
self.fileError = nil;
|
|
294
|
+
|
|
295
|
+
[self.session finishTasksAndInvalidate];
|
|
296
|
+
self.session = nil;
|
|
297
|
+
|
|
298
|
+
if (completionHandler) {
|
|
299
|
+
completionHandler(error == nil ? self.savePath : nil, error);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
- (void)failWithDescription:(NSString *)description code:(NSInteger)code
|
|
304
|
+
{
|
|
305
|
+
self.fileError = [NSError errorWithDomain:RCTPaktaDownloaderErrorDomain
|
|
306
|
+
code:code
|
|
307
|
+
userInfo:@{NSLocalizedDescriptionKey: description}];
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
// Drops the untrusted partial and reissues the whole request from zero, at
|
|
311
|
+
// most once per download (the stale-partial 416 case). Delegate callbacks
|
|
312
|
+
// from the superseded session are ignored via the session-identity guards.
|
|
313
|
+
- (void)restartFromZero
|
|
314
|
+
{
|
|
315
|
+
self.retriedFromZero = YES;
|
|
316
|
+
self.resumeMeta = nil;
|
|
317
|
+
self.resumeOffset = 0;
|
|
318
|
+
self.baseOffset = 0;
|
|
319
|
+
self.receivedBytes = 0;
|
|
320
|
+
self.contentLength = 0;
|
|
321
|
+
self.expectedTotal = 0;
|
|
322
|
+
self.encodedBody = NO;
|
|
323
|
+
self.lastReportedPercentage = 0;
|
|
324
|
+
self.lastReportedBytes = 0;
|
|
325
|
+
if (self.fileHandle != nil) {
|
|
326
|
+
@try {
|
|
327
|
+
[self.fileHandle closeFile];
|
|
328
|
+
} @catch (NSException *exception) {
|
|
329
|
+
}
|
|
330
|
+
self.fileHandle = nil;
|
|
331
|
+
}
|
|
332
|
+
[[NSFileManager defaultManager] removeItemAtPath:self.savePath error:nil];
|
|
333
|
+
RCTPaktaDeleteResumeSidecar(self.savePath);
|
|
334
|
+
[self.session finishTasksAndInvalidate];
|
|
335
|
+
self.session = nil;
|
|
336
|
+
[self startTransfer];
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
#pragma mark - session delegate
|
|
340
|
+
|
|
341
|
+
// An https artifact URL must stay on https through every redirect: the
|
|
342
|
+
// package is the supply-chain boundary and TLS is what authenticates it.
|
|
343
|
+
// Returning nil delivers the 3xx itself as the response, which the status
|
|
344
|
+
// check below then rejects with the recorded reason.
|
|
345
|
+
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task
|
|
346
|
+
willPerformHTTPRedirection:(NSHTTPURLResponse *)response
|
|
347
|
+
newRequest:(NSURLRequest *)request
|
|
348
|
+
completionHandler:(void (^)(NSURLRequest *))completionHandler
|
|
349
|
+
{
|
|
350
|
+
if (session != self.session) {
|
|
351
|
+
completionHandler(nil);
|
|
352
|
+
return;
|
|
353
|
+
}
|
|
354
|
+
NSString *originalScheme = [[NSURL URLWithString:self.urlString].scheme lowercaseString];
|
|
355
|
+
NSString *nextScheme = [request.URL.scheme lowercaseString];
|
|
356
|
+
if ([originalScheme isEqualToString:@"https"] && [nextScheme isEqualToString:@"http"]) {
|
|
357
|
+
[self failWithDescription:[NSString stringWithFormat:
|
|
358
|
+
@"https download redirected to plaintext http: %@", request.URL.absoluteString]
|
|
359
|
+
code:-1];
|
|
360
|
+
completionHandler(nil);
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
completionHandler(request);
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask
|
|
367
|
+
didReceiveResponse:(NSURLResponse *)response
|
|
368
|
+
completionHandler:(void (^)(NSURLSessionResponseDisposition))completionHandler
|
|
369
|
+
{
|
|
370
|
+
if (session != self.session) {
|
|
371
|
+
// A superseded session (restartFromZero) still delivering events.
|
|
372
|
+
completionHandler(NSURLSessionResponseCancel);
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
NSHTTPURLResponse *httpResponse =
|
|
376
|
+
[response isKindOfClass:[NSHTTPURLResponse class]] ? (NSHTTPURLResponse *)response : nil;
|
|
377
|
+
NSInteger statusCode = httpResponse.statusCode;
|
|
378
|
+
|
|
379
|
+
if (self.fileError != nil) {
|
|
380
|
+
// A refused redirect (see willPerformHTTPRedirection) already
|
|
381
|
+
// recorded the real reason; the 3xx being delivered here is not it.
|
|
382
|
+
completionHandler(NSURLSessionResponseCancel);
|
|
383
|
+
[self completeWithError:self.fileError];
|
|
384
|
+
return;
|
|
385
|
+
}
|
|
386
|
+
if (statusCode == 416) {
|
|
387
|
+
long long knownTotal = [self.resumeMeta[@"total"] longLongValue];
|
|
388
|
+
completionHandler(NSURLSessionResponseCancel);
|
|
389
|
+
if (knownTotal > 0 && RCTPaktaFileSize(self.savePath) == knownTotal) {
|
|
390
|
+
// The partial is actually the complete file.
|
|
391
|
+
[self completeWithError:nil];
|
|
392
|
+
} else if (!self.retriedFromZero) {
|
|
393
|
+
[self restartFromZero];
|
|
394
|
+
} else {
|
|
395
|
+
[self failWithDescription:@"server rejected the download range" code:statusCode];
|
|
396
|
+
[self completeWithError:self.fileError];
|
|
397
|
+
}
|
|
398
|
+
return;
|
|
399
|
+
}
|
|
400
|
+
if (httpResponse != nil && (statusCode < 200 || statusCode >= 300)) {
|
|
401
|
+
[self failWithDescription:[NSString stringWithFormat:@"unexpected http status code %ld",
|
|
402
|
+
(long)statusCode]
|
|
403
|
+
code:statusCode];
|
|
404
|
+
completionHandler(NSURLSessionResponseCancel);
|
|
405
|
+
[self completeWithError:self.fileError];
|
|
406
|
+
return;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
NSString *contentEncoding =
|
|
410
|
+
[httpResponse.allHeaderFields[@"Content-Encoding"] lowercaseString];
|
|
411
|
+
self.encodedBody =
|
|
412
|
+
contentEncoding.length > 0 && ![contentEncoding isEqualToString:@"identity"];
|
|
413
|
+
|
|
414
|
+
BOOL append = statusCode == 206 && self.resumeOffset > 0;
|
|
415
|
+
if (append && (self.encodedBody
|
|
416
|
+
|| RCTPaktaParseContentRange(httpResponse.allHeaderFields[@"Content-Range"],
|
|
417
|
+
self.resumeOffset) < 0)) {
|
|
418
|
+
// Encoded range bytes or a malformed/mismatched Content-Range: the
|
|
419
|
+
// appended bytes could not be trusted. Treat like a stale partial —
|
|
420
|
+
// one clean retry from zero — instead of failing terminally, which
|
|
421
|
+
// would keep the partial and hit the same wall on every attempt.
|
|
422
|
+
completionHandler(NSURLSessionResponseCancel);
|
|
423
|
+
if (!self.retriedFromZero) {
|
|
424
|
+
[self restartFromZero];
|
|
425
|
+
} else {
|
|
426
|
+
[self failWithDescription:@"untrusted resume response" code:-1];
|
|
427
|
+
[self completeWithError:self.fileError];
|
|
428
|
+
}
|
|
429
|
+
return;
|
|
430
|
+
}
|
|
431
|
+
self.baseOffset = append ? self.resumeOffset : 0;
|
|
432
|
+
self.contentLength = response.expectedContentLength;
|
|
433
|
+
if (append) {
|
|
434
|
+
self.expectedTotal = RCTPaktaParseContentRange(
|
|
435
|
+
httpResponse.allHeaderFields[@"Content-Range"], self.resumeOffset);
|
|
436
|
+
} else if (self.encodedBody) {
|
|
437
|
+
// Decoded bytes are being written; the encoded lengths say nothing.
|
|
438
|
+
self.expectedTotal = 0;
|
|
439
|
+
} else {
|
|
440
|
+
self.expectedTotal = self.contentLength > 0 ? self.contentLength : 0;
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
// Caps from archive_limits.h, applied before the first body byte lands
|
|
444
|
+
// (Android does the same): the announced size up front here, streamed
|
|
445
|
+
// bytes in didReceiveData as the backstop for unknown/chunked lengths.
|
|
446
|
+
long long announcedTotal = self.expectedTotal;
|
|
447
|
+
if (announcedTotal <= 0 && !self.encodedBody && self.contentLength > 0) {
|
|
448
|
+
// A 206 whose Content-Range total is "*" still announces this body.
|
|
449
|
+
announcedTotal = self.baseOffset + self.contentLength;
|
|
450
|
+
}
|
|
451
|
+
if (announcedTotal > pakta::archive_limits::kMaxArchiveBytes) {
|
|
452
|
+
[self failWithDescription:[NSString stringWithFormat:@"archive too large: %lld bytes",
|
|
453
|
+
announcedTotal]
|
|
454
|
+
code:-1];
|
|
455
|
+
self.discardPartial = YES;
|
|
456
|
+
completionHandler(NSURLSessionResponseCancel);
|
|
457
|
+
[self completeWithError:self.fileError];
|
|
458
|
+
return;
|
|
459
|
+
}
|
|
460
|
+
NSFileManager *fileManager = [NSFileManager defaultManager];
|
|
461
|
+
if (!append) {
|
|
462
|
+
// The server ignored the range (or none was sent): the stale partial
|
|
463
|
+
// is dead weight either way, so free it before the space check
|
|
464
|
+
// counts it against this download (a full restart must not fail
|
|
465
|
+
// forever on space the partial itself is holding).
|
|
466
|
+
[fileManager removeItemAtPath:self.savePath error:nil];
|
|
467
|
+
}
|
|
468
|
+
NSString *shortfall = RCTPaktaFreeSpaceShortfall(
|
|
469
|
+
self.savePath, announcedTotal > 0 ? announcedTotal - self.baseOffset : 0);
|
|
470
|
+
if (shortfall != nil) {
|
|
471
|
+
// A resumable partial stays: a later attempt may find the space.
|
|
472
|
+
[self failWithDescription:shortfall code:-1];
|
|
473
|
+
completionHandler(NSURLSessionResponseCancel);
|
|
474
|
+
[self completeWithError:self.fileError];
|
|
475
|
+
return;
|
|
476
|
+
}
|
|
477
|
+
if (!append) {
|
|
478
|
+
[fileManager createFileAtPath:self.savePath contents:nil attributes:nil];
|
|
479
|
+
}
|
|
480
|
+
self.freeSpaceReservedUntil = 0;
|
|
481
|
+
self.fileHandle = [NSFileHandle fileHandleForWritingAtPath:self.savePath];
|
|
482
|
+
if (self.fileHandle == nil) {
|
|
483
|
+
[self failWithDescription:@"cannot open download file for writing" code:-1];
|
|
484
|
+
completionHandler(NSURLSessionResponseCancel);
|
|
485
|
+
[self completeWithError:self.fileError];
|
|
486
|
+
return;
|
|
487
|
+
}
|
|
488
|
+
if (append) {
|
|
489
|
+
@try {
|
|
490
|
+
[self.fileHandle seekToEndOfFile];
|
|
491
|
+
} @catch (NSException *exception) {
|
|
492
|
+
[self failWithDescription:@"cannot seek download file" code:-1];
|
|
493
|
+
completionHandler(NSURLSessionResponseCancel);
|
|
494
|
+
[self completeWithError:self.fileError];
|
|
495
|
+
return;
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
if (self.encodedBody) {
|
|
499
|
+
// No resume across an encoded transfer: on-disk bytes are decoded,
|
|
500
|
+
// Range offsets would address the encoded representation.
|
|
501
|
+
RCTPaktaDeleteResumeSidecar(self.savePath);
|
|
502
|
+
} else if (httpResponse != nil) {
|
|
503
|
+
// Persist before streaming so a mid-stream crash can resume.
|
|
504
|
+
[self writeResumeMetaWithResponse:httpResponse total:self.expectedTotal];
|
|
505
|
+
}
|
|
506
|
+
completionHandler(NSURLSessionResponseAllow);
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask
|
|
510
|
+
didReceiveData:(NSData *)data
|
|
511
|
+
{
|
|
512
|
+
if (session != self.session) {
|
|
513
|
+
return;
|
|
514
|
+
}
|
|
515
|
+
if (self.fileHandle == nil || self.fileError != nil) {
|
|
516
|
+
return;
|
|
517
|
+
}
|
|
518
|
+
if (self.baseOffset + self.receivedBytes + (long long)data.length
|
|
519
|
+
> pakta::archive_limits::kMaxArchiveBytes) {
|
|
520
|
+
// Unknown/chunked length backstop; an announced size was already
|
|
521
|
+
// checked in didReceiveResponse. Checked before the write so the
|
|
522
|
+
// file on disk never exceeds the cap.
|
|
523
|
+
[self failWithDescription:[NSString stringWithFormat:
|
|
524
|
+
@"archive too large: exceeded %lld bytes",
|
|
525
|
+
pakta::archive_limits::kMaxArchiveBytes]
|
|
526
|
+
code:-1];
|
|
527
|
+
self.discardPartial = YES;
|
|
528
|
+
[dataTask cancel];
|
|
529
|
+
return;
|
|
530
|
+
}
|
|
531
|
+
if (self.expectedTotal <= 0
|
|
532
|
+
&& self.receivedBytes + (long long)data.length > self.freeSpaceReservedUntil) {
|
|
533
|
+
// Unknown/encoded length: the response-time check could only
|
|
534
|
+
// reserve the margin, so probe before any write that would run past
|
|
535
|
+
// the bytes reserved so far, each probe reserving at least the next
|
|
536
|
+
// PROBE bytes (more when one callback carries a larger buffer) — no
|
|
537
|
+
// write can ever eat into the margin. The archive cap alone (512
|
|
538
|
+
// MiB) is far more than the margin protects. The partial stays: a
|
|
539
|
+
// later attempt may find the space.
|
|
540
|
+
long long reserve = MAX(pakta::archive_limits::kUnknownLengthFreeSpaceProbeBytes,
|
|
541
|
+
(long long)data.length);
|
|
542
|
+
self.freeSpaceReservedUntil = self.receivedBytes + reserve;
|
|
543
|
+
NSString *shortfall = RCTPaktaFreeSpaceShortfall(self.savePath, reserve);
|
|
544
|
+
if (shortfall != nil) {
|
|
545
|
+
[self failWithDescription:shortfall code:-1];
|
|
546
|
+
[dataTask cancel];
|
|
547
|
+
return;
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
@try {
|
|
551
|
+
[self.fileHandle writeData:data];
|
|
552
|
+
} @catch (NSException *exception) {
|
|
553
|
+
[self failWithDescription:[NSString stringWithFormat:@"write failed: %@",
|
|
554
|
+
exception.reason]
|
|
555
|
+
code:-1];
|
|
556
|
+
[dataTask cancel];
|
|
557
|
+
return;
|
|
558
|
+
}
|
|
559
|
+
self.receivedBytes += data.length;
|
|
560
|
+
|
|
561
|
+
if (!self.progressHandler) {
|
|
562
|
+
return;
|
|
563
|
+
}
|
|
564
|
+
long long overall = self.baseOffset + self.receivedBytes;
|
|
565
|
+
long long total = self.expectedTotal;
|
|
566
|
+
if (overall > total) {
|
|
567
|
+
// Should not happen with identity encoding; treat as unknown so the
|
|
568
|
+
// JS side never sees percentages past 100.
|
|
569
|
+
total = 0;
|
|
570
|
+
}
|
|
571
|
+
if (total > 0) {
|
|
572
|
+
int percentage = (int)((overall * 100.0 / total) + 0.5);
|
|
573
|
+
if (percentage <= self.lastReportedPercentage) {
|
|
574
|
+
return;
|
|
575
|
+
}
|
|
576
|
+
self.lastReportedPercentage = percentage;
|
|
577
|
+
} else {
|
|
578
|
+
// Total unknown: throttle by bytes to avoid flooding the bridge.
|
|
579
|
+
if (overall - self.lastReportedBytes < 256 * 1024) {
|
|
580
|
+
return;
|
|
581
|
+
}
|
|
582
|
+
self.lastReportedBytes = overall;
|
|
583
|
+
}
|
|
584
|
+
self.progressHandler(overall, total);
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task
|
|
588
|
+
didCompleteWithError:(NSError *)error
|
|
589
|
+
{
|
|
590
|
+
if (session != self.session) {
|
|
591
|
+
// A superseded session (restartFromZero) settling its cancelled
|
|
592
|
+
// task; only the current session may decide this download's fate.
|
|
593
|
+
return;
|
|
594
|
+
}
|
|
595
|
+
if (self.finished) {
|
|
596
|
+
return;
|
|
597
|
+
}
|
|
598
|
+
// The locally recorded failure (e.g. a write error that cancelled the
|
|
599
|
+
// task) is the actual cause; the session error would just say
|
|
600
|
+
// "cancelled".
|
|
601
|
+
NSError *finalError = self.fileError ?: error;
|
|
602
|
+
if (finalError == nil && !self.encodedBody) {
|
|
603
|
+
// Reject truncated transfers like Android/Harmony do. Skipped for
|
|
604
|
+
// encoded bodies: the on-disk size is decoded bytes while the
|
|
605
|
+
// expected lengths count encoded ones.
|
|
606
|
+
if (self.contentLength >= 0 && self.receivedBytes != self.contentLength) {
|
|
607
|
+
[self failWithDescription:[NSString stringWithFormat:
|
|
608
|
+
@"download incomplete: expected %lld bytes, got %lld",
|
|
609
|
+
self.contentLength, self.receivedBytes] code:-1];
|
|
610
|
+
finalError = self.fileError;
|
|
611
|
+
} else if (self.expectedTotal > 0
|
|
612
|
+
&& RCTPaktaFileSize(self.savePath) != self.expectedTotal) {
|
|
613
|
+
[self failWithDescription:[NSString stringWithFormat:
|
|
614
|
+
@"download incomplete: expected %lld total bytes, got %lld",
|
|
615
|
+
self.expectedTotal, RCTPaktaFileSize(self.savePath)] code:-1];
|
|
616
|
+
finalError = self.fileError;
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
// On failure the partial + sidecar stay on disk — that is the resume
|
|
620
|
+
// state a later launch (or crash-rescue window) picks up — unless the
|
|
621
|
+
// archive was rejected outright (discardPartial).
|
|
622
|
+
[self completeWithError:finalError];
|
|
623
|
+
}
|
|
624
|
+
|
|
625
|
+
@end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
9a5b6f3e-5d4a-4d08-9a08-0b8a3f0b6c42
|