hane 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.
Files changed (488) hide show
  1. package/README.md +32 -0
  2. package/binding.gyp +87 -0
  3. package/dist/index.d.ts +34 -0
  4. package/dist/index.js +1 -0
  5. package/package.json +33 -0
  6. package/src/native/addon.cc +231 -0
  7. package/src/native/zsign_driver.cc +87 -0
  8. package/src/native/zsign_driver.h +38 -0
  9. package/vendor/zlib/.cmake-format.yaml +245 -0
  10. package/vendor/zlib/.github/workflows/c-std.yml +230 -0
  11. package/vendor/zlib/.github/workflows/cmake.yml +112 -0
  12. package/vendor/zlib/.github/workflows/configure.yml +136 -0
  13. package/vendor/zlib/.github/workflows/fuzz.yml +25 -0
  14. package/vendor/zlib/.github/workflows/msys-cygwin.yml +77 -0
  15. package/vendor/zlib/BUILD.bazel +134 -0
  16. package/vendor/zlib/CMakeLists.txt +330 -0
  17. package/vendor/zlib/ChangeLog +1621 -0
  18. package/vendor/zlib/FAQ +367 -0
  19. package/vendor/zlib/INDEX +68 -0
  20. package/vendor/zlib/LICENSE +22 -0
  21. package/vendor/zlib/MODULE.bazel +9 -0
  22. package/vendor/zlib/Makefile.in +419 -0
  23. package/vendor/zlib/README +115 -0
  24. package/vendor/zlib/README-cmake.md +83 -0
  25. package/vendor/zlib/adler32.c +164 -0
  26. package/vendor/zlib/amiga/Makefile.pup +69 -0
  27. package/vendor/zlib/amiga/Makefile.sas +68 -0
  28. package/vendor/zlib/compress.c +75 -0
  29. package/vendor/zlib/configure +966 -0
  30. package/vendor/zlib/contrib/README.contrib +57 -0
  31. package/vendor/zlib/contrib/ada/buffer_demo.adb +106 -0
  32. package/vendor/zlib/contrib/ada/mtest.adb +156 -0
  33. package/vendor/zlib/contrib/ada/read.adb +156 -0
  34. package/vendor/zlib/contrib/ada/readme.txt +65 -0
  35. package/vendor/zlib/contrib/ada/test.adb +463 -0
  36. package/vendor/zlib/contrib/ada/zlib-streams.adb +225 -0
  37. package/vendor/zlib/contrib/ada/zlib-streams.ads +114 -0
  38. package/vendor/zlib/contrib/ada/zlib-thin.adb +142 -0
  39. package/vendor/zlib/contrib/ada/zlib-thin.ads +450 -0
  40. package/vendor/zlib/contrib/ada/zlib.adb +701 -0
  41. package/vendor/zlib/contrib/ada/zlib.ads +328 -0
  42. package/vendor/zlib/contrib/ada/zlib.gpr +20 -0
  43. package/vendor/zlib/contrib/blast/Makefile +8 -0
  44. package/vendor/zlib/contrib/blast/README +4 -0
  45. package/vendor/zlib/contrib/blast/blast.c +466 -0
  46. package/vendor/zlib/contrib/blast/blast.h +83 -0
  47. package/vendor/zlib/contrib/blast/test.pk +0 -0
  48. package/vendor/zlib/contrib/blast/test.txt +1 -0
  49. package/vendor/zlib/contrib/delphi/ZLib.pas +557 -0
  50. package/vendor/zlib/contrib/delphi/ZLibConst.pas +11 -0
  51. package/vendor/zlib/contrib/delphi/readme.txt +76 -0
  52. package/vendor/zlib/contrib/delphi/zlibd32.mak +99 -0
  53. package/vendor/zlib/contrib/dotzlib/DotZLib/AssemblyInfo.cs +58 -0
  54. package/vendor/zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs +202 -0
  55. package/vendor/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs +83 -0
  56. package/vendor/zlib/contrib/dotzlib/DotZLib/CodecBase.cs +198 -0
  57. package/vendor/zlib/contrib/dotzlib/DotZLib/Deflater.cs +106 -0
  58. package/vendor/zlib/contrib/dotzlib/DotZLib/DotZLib.cs +288 -0
  59. package/vendor/zlib/contrib/dotzlib/DotZLib/DotZLib.csproj +141 -0
  60. package/vendor/zlib/contrib/dotzlib/DotZLib/GZipStream.cs +301 -0
  61. package/vendor/zlib/contrib/dotzlib/DotZLib/Inflater.cs +105 -0
  62. package/vendor/zlib/contrib/dotzlib/DotZLib/UnitTests.cs +274 -0
  63. package/vendor/zlib/contrib/dotzlib/DotZLib.build +33 -0
  64. package/vendor/zlib/contrib/dotzlib/DotZLib.chm +0 -0
  65. package/vendor/zlib/contrib/dotzlib/DotZLib.sln +21 -0
  66. package/vendor/zlib/contrib/dotzlib/LICENSE_1_0.txt +23 -0
  67. package/vendor/zlib/contrib/dotzlib/readme.txt +58 -0
  68. package/vendor/zlib/contrib/gcc_gvmat64/gvmat64.S +574 -0
  69. package/vendor/zlib/contrib/infback9/README +1 -0
  70. package/vendor/zlib/contrib/infback9/infback9.c +603 -0
  71. package/vendor/zlib/contrib/infback9/infback9.h +37 -0
  72. package/vendor/zlib/contrib/infback9/inffix9.h +107 -0
  73. package/vendor/zlib/contrib/infback9/inflate9.h +47 -0
  74. package/vendor/zlib/contrib/infback9/inftree9.c +319 -0
  75. package/vendor/zlib/contrib/infback9/inftree9.h +61 -0
  76. package/vendor/zlib/contrib/iostream/test.cpp +24 -0
  77. package/vendor/zlib/contrib/iostream/zfstream.cpp +329 -0
  78. package/vendor/zlib/contrib/iostream/zfstream.h +128 -0
  79. package/vendor/zlib/contrib/iostream2/zstream.h +307 -0
  80. package/vendor/zlib/contrib/iostream2/zstream_test.cpp +25 -0
  81. package/vendor/zlib/contrib/iostream3/README +35 -0
  82. package/vendor/zlib/contrib/iostream3/TODO +17 -0
  83. package/vendor/zlib/contrib/iostream3/test.cc +50 -0
  84. package/vendor/zlib/contrib/iostream3/zfstream.cc +479 -0
  85. package/vendor/zlib/contrib/iostream3/zfstream.h +466 -0
  86. package/vendor/zlib/contrib/minizip/CMakeLists.txt +380 -0
  87. package/vendor/zlib/contrib/minizip/Makefile +37 -0
  88. package/vendor/zlib/contrib/minizip/Makefile.am +45 -0
  89. package/vendor/zlib/contrib/minizip/MiniZip64_Changes.txt +6 -0
  90. package/vendor/zlib/contrib/minizip/MiniZip64_info.txt +74 -0
  91. package/vendor/zlib/contrib/minizip/configure.ac +32 -0
  92. package/vendor/zlib/contrib/minizip/crypt.h +128 -0
  93. package/vendor/zlib/contrib/minizip/ints.h +57 -0
  94. package/vendor/zlib/contrib/minizip/ioapi.c +231 -0
  95. package/vendor/zlib/contrib/minizip/ioapi.h +183 -0
  96. package/vendor/zlib/contrib/minizip/iowin32.c +448 -0
  97. package/vendor/zlib/contrib/minizip/iowin32.h +28 -0
  98. package/vendor/zlib/contrib/minizip/make_vms.com +25 -0
  99. package/vendor/zlib/contrib/minizip/miniunz.c +647 -0
  100. package/vendor/zlib/contrib/minizip/miniunzip.1 +63 -0
  101. package/vendor/zlib/contrib/minizip/minizip.1 +46 -0
  102. package/vendor/zlib/contrib/minizip/minizip.c +512 -0
  103. package/vendor/zlib/contrib/minizip/minizip.pc.in +12 -0
  104. package/vendor/zlib/contrib/minizip/minizip.pc.txt +13 -0
  105. package/vendor/zlib/contrib/minizip/minizipConfig.cmake.in +35 -0
  106. package/vendor/zlib/contrib/minizip/mztools.c +288 -0
  107. package/vendor/zlib/contrib/minizip/mztools.h +37 -0
  108. package/vendor/zlib/contrib/minizip/skipset.h +361 -0
  109. package/vendor/zlib/contrib/minizip/test/CMakeLists.txt +121 -0
  110. package/vendor/zlib/contrib/minizip/test/add_subdirectory_exclude_test.cmake.in +29 -0
  111. package/vendor/zlib/contrib/minizip/test/add_subdirectory_test.cmake.in +28 -0
  112. package/vendor/zlib/contrib/minizip/test/find_package_test.cmake.in +25 -0
  113. package/vendor/zlib/contrib/minizip/test/test_helper.cm +32 -0
  114. package/vendor/zlib/contrib/minizip/unzip.c +1981 -0
  115. package/vendor/zlib/contrib/minizip/unzip.h +441 -0
  116. package/vendor/zlib/contrib/minizip/zip.c +2199 -0
  117. package/vendor/zlib/contrib/minizip/zip.h +370 -0
  118. package/vendor/zlib/contrib/nuget/nuget.csproj +43 -0
  119. package/vendor/zlib/contrib/nuget/nuget.sln +22 -0
  120. package/vendor/zlib/contrib/pascal/example.pas +599 -0
  121. package/vendor/zlib/contrib/pascal/readme.txt +76 -0
  122. package/vendor/zlib/contrib/pascal/zlibd32.mak +99 -0
  123. package/vendor/zlib/contrib/pascal/zlibpas.pas +276 -0
  124. package/vendor/zlib/contrib/puff/Makefile +42 -0
  125. package/vendor/zlib/contrib/puff/README +63 -0
  126. package/vendor/zlib/contrib/puff/puff.c +840 -0
  127. package/vendor/zlib/contrib/puff/puff.h +35 -0
  128. package/vendor/zlib/contrib/puff/pufftest.c +169 -0
  129. package/vendor/zlib/contrib/puff/zeros.raw +0 -0
  130. package/vendor/zlib/contrib/testzlib/testzlib.c +275 -0
  131. package/vendor/zlib/contrib/testzlib/testzlib.txt +10 -0
  132. package/vendor/zlib/contrib/untgz/Makefile +14 -0
  133. package/vendor/zlib/contrib/untgz/Makefile.msc +17 -0
  134. package/vendor/zlib/contrib/untgz/untgz.c +667 -0
  135. package/vendor/zlib/contrib/vstudio/readme.txt +81 -0
  136. package/vendor/zlib/contrib/vstudio/vc10/miniunz.vcxproj +310 -0
  137. package/vendor/zlib/contrib/vstudio/vc10/miniunz.vcxproj.filters +22 -0
  138. package/vendor/zlib/contrib/vstudio/vc10/minizip.vcxproj +307 -0
  139. package/vendor/zlib/contrib/vstudio/vc10/minizip.vcxproj.filters +22 -0
  140. package/vendor/zlib/contrib/vstudio/vc10/testzlib.vcxproj +412 -0
  141. package/vendor/zlib/contrib/vstudio/vc10/testzlib.vcxproj.filters +55 -0
  142. package/vendor/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj +310 -0
  143. package/vendor/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj.filters +22 -0
  144. package/vendor/zlib/contrib/vstudio/vc10/zlib.rc +32 -0
  145. package/vendor/zlib/contrib/vstudio/vc10/zlibstat.vcxproj +449 -0
  146. package/vendor/zlib/contrib/vstudio/vc10/zlibstat.vcxproj.filters +74 -0
  147. package/vendor/zlib/contrib/vstudio/vc10/zlibvc.def +161 -0
  148. package/vendor/zlib/contrib/vstudio/vc10/zlibvc.sln +135 -0
  149. package/vendor/zlib/contrib/vstudio/vc10/zlibvc.vcxproj +633 -0
  150. package/vendor/zlib/contrib/vstudio/vc10/zlibvc.vcxproj.filters +115 -0
  151. package/vendor/zlib/contrib/vstudio/vc11/miniunz.vcxproj +314 -0
  152. package/vendor/zlib/contrib/vstudio/vc11/minizip.vcxproj +311 -0
  153. package/vendor/zlib/contrib/vstudio/vc11/testzlib.vcxproj +418 -0
  154. package/vendor/zlib/contrib/vstudio/vc11/testzlibdll.vcxproj +314 -0
  155. package/vendor/zlib/contrib/vstudio/vc11/zlib.rc +32 -0
  156. package/vendor/zlib/contrib/vstudio/vc11/zlibstat.vcxproj +456 -0
  157. package/vendor/zlib/contrib/vstudio/vc11/zlibvc.def +161 -0
  158. package/vendor/zlib/contrib/vstudio/vc11/zlibvc.sln +117 -0
  159. package/vendor/zlib/contrib/vstudio/vc11/zlibvc.vcxproj +664 -0
  160. package/vendor/zlib/contrib/vstudio/vc12/miniunz.vcxproj +316 -0
  161. package/vendor/zlib/contrib/vstudio/vc12/minizip.vcxproj +313 -0
  162. package/vendor/zlib/contrib/vstudio/vc12/testzlib.vcxproj +422 -0
  163. package/vendor/zlib/contrib/vstudio/vc12/testzlibdll.vcxproj +316 -0
  164. package/vendor/zlib/contrib/vstudio/vc12/zlib.rc +32 -0
  165. package/vendor/zlib/contrib/vstudio/vc12/zlibstat.vcxproj +459 -0
  166. package/vendor/zlib/contrib/vstudio/vc12/zlibvc.def +161 -0
  167. package/vendor/zlib/contrib/vstudio/vc12/zlibvc.sln +119 -0
  168. package/vendor/zlib/contrib/vstudio/vc12/zlibvc.vcxproj +668 -0
  169. package/vendor/zlib/contrib/vstudio/vc14/miniunz.vcxproj +316 -0
  170. package/vendor/zlib/contrib/vstudio/vc14/minizip.vcxproj +313 -0
  171. package/vendor/zlib/contrib/vstudio/vc14/testzlib.vcxproj +422 -0
  172. package/vendor/zlib/contrib/vstudio/vc14/testzlibdll.vcxproj +316 -0
  173. package/vendor/zlib/contrib/vstudio/vc14/zlib.rc +32 -0
  174. package/vendor/zlib/contrib/vstudio/vc14/zlibstat.vcxproj +459 -0
  175. package/vendor/zlib/contrib/vstudio/vc14/zlibvc.def +161 -0
  176. package/vendor/zlib/contrib/vstudio/vc14/zlibvc.sln +119 -0
  177. package/vendor/zlib/contrib/vstudio/vc14/zlibvc.vcxproj +668 -0
  178. package/vendor/zlib/contrib/vstudio/vc17/miniunz.vcxproj +409 -0
  179. package/vendor/zlib/contrib/vstudio/vc17/minizip.vcxproj +405 -0
  180. package/vendor/zlib/contrib/vstudio/vc17/testzlib.vcxproj +473 -0
  181. package/vendor/zlib/contrib/vstudio/vc17/testzlibdll.vcxproj +409 -0
  182. package/vendor/zlib/contrib/vstudio/vc17/zlib.rc +32 -0
  183. package/vendor/zlib/contrib/vstudio/vc17/zlibstat.vcxproj +602 -0
  184. package/vendor/zlib/contrib/vstudio/vc17/zlibvc.def +161 -0
  185. package/vendor/zlib/contrib/vstudio/vc17/zlibvc.sln +179 -0
  186. package/vendor/zlib/contrib/vstudio/vc17/zlibvc.vcxproj +875 -0
  187. package/vendor/zlib/contrib/vstudio/vc9/miniunz.vcproj +565 -0
  188. package/vendor/zlib/contrib/vstudio/vc9/minizip.vcproj +562 -0
  189. package/vendor/zlib/contrib/vstudio/vc9/testzlib.vcproj +796 -0
  190. package/vendor/zlib/contrib/vstudio/vc9/testzlibdll.vcproj +565 -0
  191. package/vendor/zlib/contrib/vstudio/vc9/zlib.rc +32 -0
  192. package/vendor/zlib/contrib/vstudio/vc9/zlibstat.vcproj +781 -0
  193. package/vendor/zlib/contrib/vstudio/vc9/zlibvc.def +161 -0
  194. package/vendor/zlib/contrib/vstudio/vc9/zlibvc.sln +144 -0
  195. package/vendor/zlib/contrib/vstudio/vc9/zlibvc.vcproj +1100 -0
  196. package/vendor/zlib/crc32.c +1049 -0
  197. package/vendor/zlib/crc32.h +9446 -0
  198. package/vendor/zlib/deflate.c +2152 -0
  199. package/vendor/zlib/deflate.h +380 -0
  200. package/vendor/zlib/doc/algorithm.txt +209 -0
  201. package/vendor/zlib/doc/crc-doc.1.0.pdf +0 -0
  202. package/vendor/zlib/doc/rfc1950.txt +619 -0
  203. package/vendor/zlib/doc/rfc1951.txt +955 -0
  204. package/vendor/zlib/doc/rfc1952.txt +675 -0
  205. package/vendor/zlib/doc/txtvsbin.txt +107 -0
  206. package/vendor/zlib/examples/README.examples +54 -0
  207. package/vendor/zlib/examples/enough.c +597 -0
  208. package/vendor/zlib/examples/fitblk.c +233 -0
  209. package/vendor/zlib/examples/gun.c +702 -0
  210. package/vendor/zlib/examples/gzappend.c +504 -0
  211. package/vendor/zlib/examples/gzjoin.c +449 -0
  212. package/vendor/zlib/examples/gzlog.c +1061 -0
  213. package/vendor/zlib/examples/gzlog.h +91 -0
  214. package/vendor/zlib/examples/gznorm.c +474 -0
  215. package/vendor/zlib/examples/zlib_how.html +549 -0
  216. package/vendor/zlib/examples/zpipe.c +209 -0
  217. package/vendor/zlib/examples/zran.c +550 -0
  218. package/vendor/zlib/examples/zran.h +53 -0
  219. package/vendor/zlib/gzclose.c +23 -0
  220. package/vendor/zlib/gzguts.h +215 -0
  221. package/vendor/zlib/gzlib.c +585 -0
  222. package/vendor/zlib/gzread.c +603 -0
  223. package/vendor/zlib/gzwrite.c +631 -0
  224. package/vendor/zlib/infback.c +628 -0
  225. package/vendor/zlib/inffast.c +320 -0
  226. package/vendor/zlib/inffast.h +11 -0
  227. package/vendor/zlib/inffixed.h +94 -0
  228. package/vendor/zlib/inflate.c +1526 -0
  229. package/vendor/zlib/inflate.h +126 -0
  230. package/vendor/zlib/inftrees.c +299 -0
  231. package/vendor/zlib/inftrees.h +62 -0
  232. package/vendor/zlib/make_vms.com +867 -0
  233. package/vendor/zlib/msdos/Makefile.bor +115 -0
  234. package/vendor/zlib/msdos/Makefile.dj2 +104 -0
  235. package/vendor/zlib/msdos/Makefile.emx +69 -0
  236. package/vendor/zlib/msdos/Makefile.msc +112 -0
  237. package/vendor/zlib/msdos/Makefile.tc +100 -0
  238. package/vendor/zlib/nintendods/Makefile +126 -0
  239. package/vendor/zlib/nintendods/README +5 -0
  240. package/vendor/zlib/old/Makefile.emx +69 -0
  241. package/vendor/zlib/old/Makefile.riscos +151 -0
  242. package/vendor/zlib/old/README +3 -0
  243. package/vendor/zlib/old/descrip.mms +48 -0
  244. package/vendor/zlib/old/os2/Makefile.os2 +136 -0
  245. package/vendor/zlib/old/os2/zlib.def +51 -0
  246. package/vendor/zlib/old/visual-basic.txt +160 -0
  247. package/vendor/zlib/os400/README400 +48 -0
  248. package/vendor/zlib/os400/bndsrc +133 -0
  249. package/vendor/zlib/os400/make.sh +366 -0
  250. package/vendor/zlib/os400/zlib.inc +531 -0
  251. package/vendor/zlib/qnx/package.qpg +141 -0
  252. package/vendor/zlib/test/CMakeLists.txt +265 -0
  253. package/vendor/zlib/test/add_subdirectory_exclude_test.cmake.in +29 -0
  254. package/vendor/zlib/test/add_subdirectory_test.cmake.in +28 -0
  255. package/vendor/zlib/test/example.c +552 -0
  256. package/vendor/zlib/test/find_package_test.cmake.in +26 -0
  257. package/vendor/zlib/test/infcover.c +672 -0
  258. package/vendor/zlib/test/minigzip.c +590 -0
  259. package/vendor/zlib/treebuild.xml +116 -0
  260. package/vendor/zlib/trees.c +1119 -0
  261. package/vendor/zlib/trees.h +128 -0
  262. package/vendor/zlib/uncompr.c +85 -0
  263. package/vendor/zlib/watcom/watcom_f.mak +43 -0
  264. package/vendor/zlib/watcom/watcom_l.mak +43 -0
  265. package/vendor/zlib/win32/DLL_FAQ.txt +381 -0
  266. package/vendor/zlib/win32/Makefile.bor +109 -0
  267. package/vendor/zlib/win32/Makefile.gcc +177 -0
  268. package/vendor/zlib/win32/Makefile.msc +159 -0
  269. package/vendor/zlib/win32/README-WIN32.txt +103 -0
  270. package/vendor/zlib/win32/VisualC.txt +3 -0
  271. package/vendor/zlib/win32/zlib.def +98 -0
  272. package/vendor/zlib/win32/zlib1.rc +37 -0
  273. package/vendor/zlib/zconf.h.in +544 -0
  274. package/vendor/zlib/zlib.3 +149 -0
  275. package/vendor/zlib/zlib.3.pdf +0 -0
  276. package/vendor/zlib/zlib.h +1957 -0
  277. package/vendor/zlib/zlib.map +104 -0
  278. package/vendor/zlib/zlib.pc.cmakein +13 -0
  279. package/vendor/zlib/zlib.pc.in +13 -0
  280. package/vendor/zlib/zlibConfig.cmake.in +26 -0
  281. package/vendor/zlib/zutil.c +299 -0
  282. package/vendor/zlib/zutil.h +257 -0
  283. package/vendor/zsign/.gitattributes +4 -0
  284. package/vendor/zsign/LICENSE +21 -0
  285. package/vendor/zsign/README.md +142 -0
  286. package/vendor/zsign/build/linux/Makefile +43 -0
  287. package/vendor/zsign/build/macos/Makefile +43 -0
  288. package/vendor/zsign/build/windows/vs2022/include/minizip/crypt.h +128 -0
  289. package/vendor/zsign/build/windows/vs2022/include/minizip/ioapi.h +216 -0
  290. package/vendor/zsign/build/windows/vs2022/include/minizip/iowin32.h +28 -0
  291. package/vendor/zsign/build/windows/vs2022/include/minizip/mztools.h +37 -0
  292. package/vendor/zsign/build/windows/vs2022/include/minizip/unzip.h +437 -0
  293. package/vendor/zsign/build/windows/vs2022/include/minizip/zip.h +364 -0
  294. package/vendor/zsign/build/windows/vs2022/include/openssl/__DECC_INCLUDE_EPILOGUE.H +22 -0
  295. package/vendor/zsign/build/windows/vs2022/include/openssl/__DECC_INCLUDE_PROLOGUE.H +26 -0
  296. package/vendor/zsign/build/windows/vs2022/include/openssl/aes.h +111 -0
  297. package/vendor/zsign/build/windows/vs2022/include/openssl/applink.c +153 -0
  298. package/vendor/zsign/build/windows/vs2022/include/openssl/asn1.h +1133 -0
  299. package/vendor/zsign/build/windows/vs2022/include/openssl/asn1_mac.h +10 -0
  300. package/vendor/zsign/build/windows/vs2022/include/openssl/asn1err.h +142 -0
  301. package/vendor/zsign/build/windows/vs2022/include/openssl/asn1t.h +946 -0
  302. package/vendor/zsign/build/windows/vs2022/include/openssl/async.h +104 -0
  303. package/vendor/zsign/build/windows/vs2022/include/openssl/asyncerr.h +29 -0
  304. package/vendor/zsign/build/windows/vs2022/include/openssl/bio.h +1015 -0
  305. package/vendor/zsign/build/windows/vs2022/include/openssl/bioerr.h +72 -0
  306. package/vendor/zsign/build/windows/vs2022/include/openssl/blowfish.h +78 -0
  307. package/vendor/zsign/build/windows/vs2022/include/openssl/bn.h +590 -0
  308. package/vendor/zsign/build/windows/vs2022/include/openssl/bnerr.h +47 -0
  309. package/vendor/zsign/build/windows/vs2022/include/openssl/buffer.h +62 -0
  310. package/vendor/zsign/build/windows/vs2022/include/openssl/buffererr.h +25 -0
  311. package/vendor/zsign/build/windows/vs2022/include/openssl/camellia.h +117 -0
  312. package/vendor/zsign/build/windows/vs2022/include/openssl/cast.h +71 -0
  313. package/vendor/zsign/build/windows/vs2022/include/openssl/cmac.h +52 -0
  314. package/vendor/zsign/build/windows/vs2022/include/openssl/cmp.h +727 -0
  315. package/vendor/zsign/build/windows/vs2022/include/openssl/cmp_util.h +56 -0
  316. package/vendor/zsign/build/windows/vs2022/include/openssl/cmperr.h +131 -0
  317. package/vendor/zsign/build/windows/vs2022/include/openssl/cms.h +508 -0
  318. package/vendor/zsign/build/windows/vs2022/include/openssl/cmserr.h +125 -0
  319. package/vendor/zsign/build/windows/vs2022/include/openssl/comp.h +98 -0
  320. package/vendor/zsign/build/windows/vs2022/include/openssl/comperr.h +38 -0
  321. package/vendor/zsign/build/windows/vs2022/include/openssl/conf.h +214 -0
  322. package/vendor/zsign/build/windows/vs2022/include/openssl/conf_api.h +46 -0
  323. package/vendor/zsign/build/windows/vs2022/include/openssl/conferr.h +52 -0
  324. package/vendor/zsign/build/windows/vs2022/include/openssl/configuration.h +188 -0
  325. package/vendor/zsign/build/windows/vs2022/include/openssl/conftypes.h +44 -0
  326. package/vendor/zsign/build/windows/vs2022/include/openssl/core.h +236 -0
  327. package/vendor/zsign/build/windows/vs2022/include/openssl/core_dispatch.h +1022 -0
  328. package/vendor/zsign/build/windows/vs2022/include/openssl/core_names.h +545 -0
  329. package/vendor/zsign/build/windows/vs2022/include/openssl/core_object.h +41 -0
  330. package/vendor/zsign/build/windows/vs2022/include/openssl/crmf.h +260 -0
  331. package/vendor/zsign/build/windows/vs2022/include/openssl/crmferr.h +50 -0
  332. package/vendor/zsign/build/windows/vs2022/include/openssl/crypto.h +580 -0
  333. package/vendor/zsign/build/windows/vs2022/include/openssl/cryptoerr.h +56 -0
  334. package/vendor/zsign/build/windows/vs2022/include/openssl/cryptoerr_legacy.h +1466 -0
  335. package/vendor/zsign/build/windows/vs2022/include/openssl/ct.h +573 -0
  336. package/vendor/zsign/build/windows/vs2022/include/openssl/cterr.h +45 -0
  337. package/vendor/zsign/build/windows/vs2022/include/openssl/decoder.h +133 -0
  338. package/vendor/zsign/build/windows/vs2022/include/openssl/decodererr.h +28 -0
  339. package/vendor/zsign/build/windows/vs2022/include/openssl/des.h +211 -0
  340. package/vendor/zsign/build/windows/vs2022/include/openssl/dh.h +339 -0
  341. package/vendor/zsign/build/windows/vs2022/include/openssl/dherr.h +59 -0
  342. package/vendor/zsign/build/windows/vs2022/include/openssl/dsa.h +280 -0
  343. package/vendor/zsign/build/windows/vs2022/include/openssl/dsaerr.h +44 -0
  344. package/vendor/zsign/build/windows/vs2022/include/openssl/dtls1.h +57 -0
  345. package/vendor/zsign/build/windows/vs2022/include/openssl/e_os2.h +310 -0
  346. package/vendor/zsign/build/windows/vs2022/include/openssl/e_ostime.h +38 -0
  347. package/vendor/zsign/build/windows/vs2022/include/openssl/ebcdic.h +39 -0
  348. package/vendor/zsign/build/windows/vs2022/include/openssl/ec.h +1588 -0
  349. package/vendor/zsign/build/windows/vs2022/include/openssl/ecdh.h +10 -0
  350. package/vendor/zsign/build/windows/vs2022/include/openssl/ecdsa.h +10 -0
  351. package/vendor/zsign/build/windows/vs2022/include/openssl/ecerr.h +104 -0
  352. package/vendor/zsign/build/windows/vs2022/include/openssl/encoder.h +124 -0
  353. package/vendor/zsign/build/windows/vs2022/include/openssl/encodererr.h +28 -0
  354. package/vendor/zsign/build/windows/vs2022/include/openssl/engine.h +833 -0
  355. package/vendor/zsign/build/windows/vs2022/include/openssl/engineerr.h +63 -0
  356. package/vendor/zsign/build/windows/vs2022/include/openssl/err.h +512 -0
  357. package/vendor/zsign/build/windows/vs2022/include/openssl/ess.h +128 -0
  358. package/vendor/zsign/build/windows/vs2022/include/openssl/esserr.h +32 -0
  359. package/vendor/zsign/build/windows/vs2022/include/openssl/evp.h +2231 -0
  360. package/vendor/zsign/build/windows/vs2022/include/openssl/evperr.h +140 -0
  361. package/vendor/zsign/build/windows/vs2022/include/openssl/fips_names.h +50 -0
  362. package/vendor/zsign/build/windows/vs2022/include/openssl/fipskey.h +41 -0
  363. package/vendor/zsign/build/windows/vs2022/include/openssl/hmac.h +62 -0
  364. package/vendor/zsign/build/windows/vs2022/include/openssl/hpke.h +169 -0
  365. package/vendor/zsign/build/windows/vs2022/include/openssl/http.h +118 -0
  366. package/vendor/zsign/build/windows/vs2022/include/openssl/httperr.h +56 -0
  367. package/vendor/zsign/build/windows/vs2022/include/openssl/idea.h +82 -0
  368. package/vendor/zsign/build/windows/vs2022/include/openssl/indicator.h +31 -0
  369. package/vendor/zsign/build/windows/vs2022/include/openssl/kdf.h +138 -0
  370. package/vendor/zsign/build/windows/vs2022/include/openssl/kdferr.h +16 -0
  371. package/vendor/zsign/build/windows/vs2022/include/openssl/lhash.h +398 -0
  372. package/vendor/zsign/build/windows/vs2022/include/openssl/macros.h +338 -0
  373. package/vendor/zsign/build/windows/vs2022/include/openssl/md2.h +56 -0
  374. package/vendor/zsign/build/windows/vs2022/include/openssl/md4.h +63 -0
  375. package/vendor/zsign/build/windows/vs2022/include/openssl/md5.h +62 -0
  376. package/vendor/zsign/build/windows/vs2022/include/openssl/mdc2.h +55 -0
  377. package/vendor/zsign/build/windows/vs2022/include/openssl/modes.h +219 -0
  378. package/vendor/zsign/build/windows/vs2022/include/openssl/obj_mac.h +5820 -0
  379. package/vendor/zsign/build/windows/vs2022/include/openssl/objects.h +184 -0
  380. package/vendor/zsign/build/windows/vs2022/include/openssl/objectserr.h +28 -0
  381. package/vendor/zsign/build/windows/vs2022/include/openssl/ocsp.h +483 -0
  382. package/vendor/zsign/build/windows/vs2022/include/openssl/ocsperr.h +53 -0
  383. package/vendor/zsign/build/windows/vs2022/include/openssl/opensslconf.h +17 -0
  384. package/vendor/zsign/build/windows/vs2022/include/openssl/opensslv.h +114 -0
  385. package/vendor/zsign/build/windows/vs2022/include/openssl/ossl_typ.h +16 -0
  386. package/vendor/zsign/build/windows/vs2022/include/openssl/param_build.h +63 -0
  387. package/vendor/zsign/build/windows/vs2022/include/openssl/params.h +160 -0
  388. package/vendor/zsign/build/windows/vs2022/include/openssl/pem.h +543 -0
  389. package/vendor/zsign/build/windows/vs2022/include/openssl/pem2.h +19 -0
  390. package/vendor/zsign/build/windows/vs2022/include/openssl/pemerr.h +58 -0
  391. package/vendor/zsign/build/windows/vs2022/include/openssl/pkcs12.h +366 -0
  392. package/vendor/zsign/build/windows/vs2022/include/openssl/pkcs12err.h +46 -0
  393. package/vendor/zsign/build/windows/vs2022/include/openssl/pkcs7.h +430 -0
  394. package/vendor/zsign/build/windows/vs2022/include/openssl/pkcs7err.h +63 -0
  395. package/vendor/zsign/build/windows/vs2022/include/openssl/prov_ssl.h +38 -0
  396. package/vendor/zsign/build/windows/vs2022/include/openssl/proverr.h +162 -0
  397. package/vendor/zsign/build/windows/vs2022/include/openssl/provider.h +66 -0
  398. package/vendor/zsign/build/windows/vs2022/include/openssl/quic.h +70 -0
  399. package/vendor/zsign/build/windows/vs2022/include/openssl/rand.h +125 -0
  400. package/vendor/zsign/build/windows/vs2022/include/openssl/randerr.h +69 -0
  401. package/vendor/zsign/build/windows/vs2022/include/openssl/rc2.h +68 -0
  402. package/vendor/zsign/build/windows/vs2022/include/openssl/rc4.h +47 -0
  403. package/vendor/zsign/build/windows/vs2022/include/openssl/rc5.h +79 -0
  404. package/vendor/zsign/build/windows/vs2022/include/openssl/ripemd.h +59 -0
  405. package/vendor/zsign/build/windows/vs2022/include/openssl/rsa.h +615 -0
  406. package/vendor/zsign/build/windows/vs2022/include/openssl/rsaerr.h +107 -0
  407. package/vendor/zsign/build/windows/vs2022/include/openssl/safestack.h +297 -0
  408. package/vendor/zsign/build/windows/vs2022/include/openssl/seed.h +113 -0
  409. package/vendor/zsign/build/windows/vs2022/include/openssl/self_test.h +98 -0
  410. package/vendor/zsign/build/windows/vs2022/include/openssl/sha.h +139 -0
  411. package/vendor/zsign/build/windows/vs2022/include/openssl/srp.h +285 -0
  412. package/vendor/zsign/build/windows/vs2022/include/openssl/srtp.h +68 -0
  413. package/vendor/zsign/build/windows/vs2022/include/openssl/ssl.h +2878 -0
  414. package/vendor/zsign/build/windows/vs2022/include/openssl/ssl2.h +30 -0
  415. package/vendor/zsign/build/windows/vs2022/include/openssl/ssl3.h +357 -0
  416. package/vendor/zsign/build/windows/vs2022/include/openssl/sslerr.h +379 -0
  417. package/vendor/zsign/build/windows/vs2022/include/openssl/sslerr_legacy.h +467 -0
  418. package/vendor/zsign/build/windows/vs2022/include/openssl/stack.h +90 -0
  419. package/vendor/zsign/build/windows/vs2022/include/openssl/store.h +377 -0
  420. package/vendor/zsign/build/windows/vs2022/include/openssl/storeerr.h +49 -0
  421. package/vendor/zsign/build/windows/vs2022/include/openssl/symhacks.h +39 -0
  422. package/vendor/zsign/build/windows/vs2022/include/openssl/thread.h +31 -0
  423. package/vendor/zsign/build/windows/vs2022/include/openssl/tls1.h +1220 -0
  424. package/vendor/zsign/build/windows/vs2022/include/openssl/trace.h +320 -0
  425. package/vendor/zsign/build/windows/vs2022/include/openssl/ts.h +522 -0
  426. package/vendor/zsign/build/windows/vs2022/include/openssl/tserr.h +67 -0
  427. package/vendor/zsign/build/windows/vs2022/include/openssl/txt_db.h +63 -0
  428. package/vendor/zsign/build/windows/vs2022/include/openssl/types.h +245 -0
  429. package/vendor/zsign/build/windows/vs2022/include/openssl/ui.h +407 -0
  430. package/vendor/zsign/build/windows/vs2022/include/openssl/uierr.h +38 -0
  431. package/vendor/zsign/build/windows/vs2022/include/openssl/whrlpool.h +62 -0
  432. package/vendor/zsign/build/windows/vs2022/include/openssl/x509.h +1304 -0
  433. package/vendor/zsign/build/windows/vs2022/include/openssl/x509_acert.h +263 -0
  434. package/vendor/zsign/build/windows/vs2022/include/openssl/x509_vfy.h +902 -0
  435. package/vendor/zsign/build/windows/vs2022/include/openssl/x509err.h +70 -0
  436. package/vendor/zsign/build/windows/vs2022/include/openssl/x509v3.h +1500 -0
  437. package/vendor/zsign/build/windows/vs2022/include/openssl/x509v3err.h +96 -0
  438. package/vendor/zsign/build/windows/vs2022/include/zlib/zconf.h +553 -0
  439. package/vendor/zsign/build/windows/vs2022/include/zlib/zlib.h +1938 -0
  440. package/vendor/zsign/build/windows/vs2022/lib/minizip/x64/mt/minizip.lib +0 -0
  441. package/vendor/zsign/build/windows/vs2022/lib/openssl/x64/mt/libcrypto.lib +0 -0
  442. package/vendor/zsign/build/windows/vs2022/lib/openssl/x64/mt/libssl.lib +0 -0
  443. package/vendor/zsign/build/windows/vs2022/lib/zlib/x64/mt/zlib.lib +0 -0
  444. package/vendor/zsign/build/windows/vs2022/zsign/src/common_win32.h +44 -0
  445. package/vendor/zsign/build/windows/vs2022/zsign/src/getopt.cpp +69 -0
  446. package/vendor/zsign/build/windows/vs2022/zsign/src/getopt.h +20 -0
  447. package/vendor/zsign/build/windows/vs2022/zsign/src/iconv.cpp +138 -0
  448. package/vendor/zsign/build/windows/vs2022/zsign/src/iconv.h +38 -0
  449. package/vendor/zsign/build/windows/vs2022/zsign/zsign.vcxproj +177 -0
  450. package/vendor/zsign/build/windows/vs2022/zsign/zsign.vcxproj.filters +120 -0
  451. package/vendor/zsign/build/windows/vs2022/zsign.sln +28 -0
  452. package/vendor/zsign/src/archo.cpp +742 -0
  453. package/vendor/zsign/src/archo.h +61 -0
  454. package/vendor/zsign/src/bundle.cpp +589 -0
  455. package/vendor/zsign/src/bundle.h +46 -0
  456. package/vendor/zsign/src/common/archive.cpp +246 -0
  457. package/vendor/zsign/src/common/archive.h +22 -0
  458. package/vendor/zsign/src/common/base64.cpp +166 -0
  459. package/vendor/zsign/src/common/base64.h +30 -0
  460. package/vendor/zsign/src/common/common.h +56 -0
  461. package/vendor/zsign/src/common/fs.cpp +573 -0
  462. package/vendor/zsign/src/common/fs.h +50 -0
  463. package/vendor/zsign/src/common/json.cpp +3380 -0
  464. package/vendor/zsign/src/common/json.h +530 -0
  465. package/vendor/zsign/src/common/log.cpp +145 -0
  466. package/vendor/zsign/src/common/log.h +37 -0
  467. package/vendor/zsign/src/common/mach-o.h +585 -0
  468. package/vendor/zsign/src/common/sha.cpp +133 -0
  469. package/vendor/zsign/src/common/sha.h +24 -0
  470. package/vendor/zsign/src/common/timer.cpp +28 -0
  471. package/vendor/zsign/src/common/timer.h +17 -0
  472. package/vendor/zsign/src/common/util.cpp +185 -0
  473. package/vendor/zsign/src/common/util.h +25 -0
  474. package/vendor/zsign/src/macho.cpp +273 -0
  475. package/vendor/zsign/src/macho.h +38 -0
  476. package/vendor/zsign/src/openssl.cpp +698 -0
  477. package/vendor/zsign/src/openssl.h +71 -0
  478. package/vendor/zsign/src/signing.cpp +745 -0
  479. package/vendor/zsign/src/signing.h +59 -0
  480. package/vendor/zsign/src/zsign.cpp +317 -0
  481. package/vendor/zsign/test/dylib/bin/demo1.dylib +0 -0
  482. package/vendor/zsign/test/dylib/bin/demo2.dylib +0 -0
  483. package/vendor/zsign/test/dylib/demo/Makefile +12 -0
  484. package/vendor/zsign/test/dylib/demo/control +9 -0
  485. package/vendor/zsign/test/dylib/demo/demo.m +21 -0
  486. package/vendor/zsign/test/linux/test.sh +19 -0
  487. package/vendor/zsign/test/macos/test.sh +19 -0
  488. package/vendor/zsign/test/windows/test.ps1 +17 -0
package/README.md ADDED
@@ -0,0 +1,32 @@
1
+ # Hane
2
+
3
+ ```ts
4
+ import { sign } from "hane";
5
+
6
+ await sign({
7
+ input: "/path/to/MyApp.ipa",
8
+ privateKey: "/path/to/key.p12",
9
+ provisioningProfile: "/path/to/profile.mobileprovision",
10
+ password: process.env.P12_PASSWORD,
11
+ output: "/tmp/MyApp-signed.ipa",
12
+ force: true,
13
+ });
14
+ ```
15
+
16
+ ## Build prerequisites
17
+
18
+ - A C++17 compiler toolchain compatible with Node.js
19
+ - OpenSSL headers and libraries discoverable via `pkg-config`
20
+ - zlib (normally available on macOS and Linux)
21
+
22
+ Run `bun install` to compile. To rebuild only the native target use:
23
+
24
+ ```sh
25
+ bun build:native
26
+ ```
27
+
28
+ ### Windows (x64) notes
29
+
30
+ - Install the **Visual Studio 2022 Build Tools** with the “Desktop development with C++” workload.
31
+ - Use Node.js 20+ and run installs from a Developer PowerShell so MSVC is on `PATH`.
32
+ - The repository bundles the required OpenSSL static libraries under `vendor/[lib]/build/windows/vs2022/lib` (currently x64 only).
package/binding.gyp ADDED
@@ -0,0 +1,87 @@
1
+ {
2
+ "targets": [
3
+ {
4
+ "target_name": "zsign",
5
+ "sources": [
6
+ "src/native/addon.cc",
7
+ "src/native/zsign_driver.cc",
8
+ "vendor/zsign/src/archo.cpp",
9
+ "vendor/zsign/src/bundle.cpp",
10
+ "vendor/zsign/src/macho.cpp",
11
+ "vendor/zsign/src/openssl.cpp",
12
+ "vendor/zsign/src/signing.cpp",
13
+ "vendor/zsign/src/zsign.cpp",
14
+ "vendor/zsign/src/common/archive.cpp",
15
+ "vendor/zsign/src/common/base64.cpp",
16
+ "vendor/zsign/src/common/fs.cpp",
17
+ "vendor/zsign/src/common/json.cpp",
18
+ "vendor/zsign/src/common/log.cpp",
19
+ "vendor/zsign/src/common/sha.cpp",
20
+ "vendor/zsign/src/common/timer.cpp",
21
+ "vendor/zsign/src/common/util.cpp",
22
+ "vendor/zlib/contrib/minizip/ioapi.c",
23
+ "vendor/zlib/contrib/minizip/unzip.c",
24
+ "vendor/zlib/contrib/minizip/zip.c"
25
+ ],
26
+ "include_dirs": [
27
+ "<!@(node -p \"require('node-addon-api').include\")",
28
+ "vendor/zsign/src",
29
+ "vendor/zsign/src/common",
30
+ "vendor/zlib",
31
+ "vendor/zlib/contrib/minizip"
32
+ ],
33
+ "defines": [
34
+ "NAPI_VERSION=8",
35
+ "NAPI_DISABLE_CPP_EXCEPTIONS",
36
+ "main=zsign_cli_main"
37
+ ],
38
+ "dependencies": [
39
+ "<!@(node -p \"require('node-addon-api').gyp\")"
40
+ ],
41
+ "cflags_cc": [],
42
+ "conditions": [
43
+ [
44
+ "OS!='win'",
45
+ {
46
+ "cflags_cc": [
47
+ "-std=c++17",
48
+ "-fexceptions",
49
+ "<!@(pkg-config --cflags openssl)"
50
+ ],
51
+ "libraries": [
52
+ "<!@(pkg-config --libs openssl)",
53
+ "-lz"
54
+ ]
55
+ }
56
+ ],
57
+ [
58
+ "OS=='win'",
59
+ {
60
+ "sources": [
61
+ "vendor/zlib/contrib/minizip/iowin32.c",
62
+ "vendor/zsign/build/windows/vs2022/zsign/src/iconv.cpp",
63
+ "vendor/zsign/build/windows/vs2022/zsign/src/getopt.cpp"
64
+ ],
65
+ "include_dirs": [
66
+ "vendor/zsign/build/windows/vs2022/zsign/src"
67
+ ],
68
+ "libraries": [
69
+ "<(module_root_dir)/vendor/zsign/build/windows/vs2022/lib/openssl/x64/mt/libssl.lib",
70
+ "<(module_root_dir)/vendor/zsign/build/windows/vs2022/lib/openssl/x64/mt/libcrypto.lib",
71
+ "Shlwapi.lib",
72
+ "Ws2_32.lib",
73
+ "Crypt32.lib"
74
+ ],
75
+ "msvs_settings": {
76
+ "VCCLCompilerTool": {
77
+ "AdditionalOptions": [
78
+ "/std:c++17"
79
+ ]
80
+ }
81
+ }
82
+ }
83
+ ]
84
+ ]
85
+ }
86
+ ]
87
+ }
@@ -0,0 +1,34 @@
1
+ //#region lib/index.d.ts
2
+ interface SignOptions {
3
+ input: string;
4
+ certificate?: string;
5
+ privateKey?: string;
6
+ provisioningProfile?: string;
7
+ password?: string;
8
+ bundleId?: string;
9
+ bundleVersion?: string;
10
+ bundleDisplayName?: string;
11
+ entitlements?: string;
12
+ output?: string;
13
+ tempDirectory?: string;
14
+ dylibs?: string[];
15
+ debug?: boolean;
16
+ force?: boolean;
17
+ adhoc?: boolean;
18
+ weakInject?: boolean;
19
+ install?: boolean;
20
+ quiet?: boolean;
21
+ check?: boolean;
22
+ sha256Only?: boolean;
23
+ zipLevel?: number;
24
+ }
25
+ interface SignResult {
26
+ exitCode: number;
27
+ success: boolean;
28
+ outputPath?: string;
29
+ installRequested: boolean;
30
+ checkRequested: boolean;
31
+ }
32
+ declare function sign(options: SignOptions): Promise<SignResult>;
33
+ //#endregion
34
+ export { SignOptions, SignResult, sign };
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ import{createRequire as e}from"node:module";import{fileURLToPath as t}from"node:url";const n=e(import.meta.url)(`node-gyp-build`)(t(new URL(`..`,import.meta.url)));function r(e){if(!e||typeof e!=`object`)throw TypeError(`sign options must be an object`);if(!e.input||e.input.trim().length===0)throw TypeError(`sign options must include a non-empty "input" path`)}async function i(e){return r(e),n.sign(e)}export{i as sign};
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "hane",
3
+ "version": "1.0.0",
4
+ "main": "./dist/index.js",
5
+ "types": "./dist/index.d.ts",
6
+ "type": "module",
7
+ "files": [
8
+ "dist/",
9
+ "binding.gyp",
10
+ "src/native/",
11
+ "vendor/zsign/",
12
+ "vendor/zlib/",
13
+ "README.md"
14
+ ],
15
+ "scripts": {
16
+ "build": "tsdown && node-gyp rebuild",
17
+ "build:ts": "tsdown",
18
+ "build:native": "node-gyp rebuild",
19
+ "dev": "bun test --watch",
20
+ "prepare": "node-gyp rebuild"
21
+ },
22
+ "devDependencies": {
23
+ "@biomejs/biome": "2.3.5",
24
+ "@types/bun": "1.3.2",
25
+ "node-gyp": "12.0.0",
26
+ "tsdown": "0.16.3",
27
+ "typescript": "5.9.3"
28
+ },
29
+ "dependencies": {
30
+ "node-addon-api": "8.5.0",
31
+ "node-gyp-build": "4.8.4"
32
+ }
33
+ }
@@ -0,0 +1,231 @@
1
+ #include <napi.h>
2
+
3
+ #include <optional>
4
+ #include <string>
5
+ #include <utility>
6
+ #include <vector>
7
+
8
+ #include "zsign_driver.h"
9
+
10
+ namespace {
11
+
12
+ std::optional<std::string> ReadOptionalString(const Napi::Env& env, const Napi::Object& obj, const char* key) {
13
+ if (!obj.Has(key)) {
14
+ return std::nullopt;
15
+ }
16
+
17
+ Napi::Value value = obj.Get(key);
18
+ if (value.IsUndefined() || value.IsNull()) {
19
+ return std::nullopt;
20
+ }
21
+
22
+ if (!value.IsString()) {
23
+ Napi::TypeError::New(env, std::string("Expected string for option \"") + key + "\"").ThrowAsJavaScriptException();
24
+ return std::nullopt;
25
+ }
26
+
27
+ return value.As<Napi::String>().Utf8Value();
28
+ }
29
+
30
+ bool ReadOptionalBool(const Napi::Env& env, const Napi::Object& obj, const char* key) {
31
+ if (!obj.Has(key)) {
32
+ return false;
33
+ }
34
+
35
+ Napi::Value value = obj.Get(key);
36
+ if (value.IsUndefined() || value.IsNull()) {
37
+ return false;
38
+ }
39
+
40
+ if (!value.IsBoolean()) {
41
+ Napi::TypeError::New(env, std::string("Expected boolean for option \"") + key + "\"").ThrowAsJavaScriptException();
42
+ return false;
43
+ }
44
+
45
+ return value.As<Napi::Boolean>().Value();
46
+ }
47
+
48
+ std::vector<std::string> ReadStringArray(const Napi::Env& env, const Napi::Object& obj, const char* key) {
49
+ std::vector<std::string> values;
50
+ if (!obj.Has(key)) {
51
+ return values;
52
+ }
53
+
54
+ Napi::Value value = obj.Get(key);
55
+ if (value.IsUndefined() || value.IsNull()) {
56
+ return values;
57
+ }
58
+
59
+ if (!value.IsArray()) {
60
+ Napi::TypeError::New(env, std::string("Expected array for option \"") + key + "\"").ThrowAsJavaScriptException();
61
+ return values;
62
+ }
63
+
64
+ Napi::Array arr = value.As<Napi::Array>();
65
+ values.reserve(arr.Length());
66
+ for (uint32_t i = 0; i < arr.Length(); i++) {
67
+ Napi::Value entry = arr.Get(i);
68
+ if (entry.IsUndefined() || entry.IsNull()) {
69
+ continue;
70
+ }
71
+ if (!entry.IsString()) {
72
+ Napi::TypeError::New(env, std::string("Expected string in \"") + key + "\" array").ThrowAsJavaScriptException();
73
+ return {};
74
+ }
75
+ values.push_back(entry.As<Napi::String>().Utf8Value());
76
+ }
77
+
78
+ return values;
79
+ }
80
+
81
+ int ReadZipLevel(const Napi::Env& env, const Napi::Object& obj) {
82
+ if (!obj.Has("zipLevel")) {
83
+ return -1;
84
+ }
85
+
86
+ Napi::Value value = obj.Get("zipLevel");
87
+ if (value.IsUndefined() || value.IsNull()) {
88
+ return -1;
89
+ }
90
+
91
+ if (!value.IsNumber()) {
92
+ Napi::TypeError::New(env, "Expected number for option \"zipLevel\"").ThrowAsJavaScriptException();
93
+ return -1;
94
+ }
95
+
96
+ int32_t level = value.As<Napi::Number>().Int32Value();
97
+ if (level < 0 || level > 9) {
98
+ Napi::RangeError::New(env, "\"zipLevel\" must be between 0 and 9").ThrowAsJavaScriptException();
99
+ return -1;
100
+ }
101
+
102
+ return level;
103
+ }
104
+
105
+ bool ParseOptions(const Napi::Env& env, const Napi::Object& optionsObject, ZSignBindingOptions& options) {
106
+ auto inputOpt = ReadOptionalString(env, optionsObject, "input");
107
+ if (!inputOpt || inputOpt->empty()) {
108
+ Napi::TypeError::New(env, "\"input\" must be a non-empty string").ThrowAsJavaScriptException();
109
+ return false;
110
+ }
111
+
112
+ options.input = *inputOpt;
113
+ if (auto cert = ReadOptionalString(env, optionsObject, "certificate")) {
114
+ options.certificate = *cert;
115
+ }
116
+ if (auto key = ReadOptionalString(env, optionsObject, "privateKey")) {
117
+ options.privateKey = *key;
118
+ }
119
+ if (auto prov = ReadOptionalString(env, optionsObject, "provisioningProfile")) {
120
+ options.provisioningProfile = *prov;
121
+ }
122
+ if (auto password = ReadOptionalString(env, optionsObject, "password")) {
123
+ options.password = *password;
124
+ }
125
+ if (auto bundleId = ReadOptionalString(env, optionsObject, "bundleId")) {
126
+ options.bundleId = *bundleId;
127
+ }
128
+ if (auto bundleVersion = ReadOptionalString(env, optionsObject, "bundleVersion")) {
129
+ options.bundleVersion = *bundleVersion;
130
+ }
131
+ if (auto displayName = ReadOptionalString(env, optionsObject, "bundleDisplayName")) {
132
+ options.bundleDisplayName = *displayName;
133
+ }
134
+ if (auto entitlements = ReadOptionalString(env, optionsObject, "entitlements")) {
135
+ options.entitlements = *entitlements;
136
+ }
137
+ if (auto output = ReadOptionalString(env, optionsObject, "output")) {
138
+ options.output = *output;
139
+ }
140
+ if (auto tempDir = ReadOptionalString(env, optionsObject, "tempDirectory")) {
141
+ options.tempDir = *tempDir;
142
+ }
143
+
144
+ options.dylibs = ReadStringArray(env, optionsObject, "dylibs");
145
+ if (env.IsExceptionPending()) {
146
+ return false;
147
+ }
148
+ options.debug = ReadOptionalBool(env, optionsObject, "debug");
149
+ options.force = ReadOptionalBool(env, optionsObject, "force");
150
+ options.adhoc = ReadOptionalBool(env, optionsObject, "adhoc");
151
+ options.weakInject = ReadOptionalBool(env, optionsObject, "weakInject");
152
+ options.install = ReadOptionalBool(env, optionsObject, "install");
153
+ options.quiet = ReadOptionalBool(env, optionsObject, "quiet");
154
+ options.check = ReadOptionalBool(env, optionsObject, "check");
155
+ options.sha256Only = ReadOptionalBool(env, optionsObject, "sha256Only");
156
+ options.zipLevel = ReadZipLevel(env, optionsObject);
157
+
158
+ if (env.IsExceptionPending()) {
159
+ return false;
160
+ }
161
+
162
+ return true;
163
+ }
164
+
165
+ Napi::Object BuildResultObject(const Napi::Env& env, const ZSignBindingResult& result) {
166
+ Napi::Object payload = Napi::Object::New(env);
167
+ payload.Set("exitCode", Napi::Number::New(env, result.exit_code));
168
+ payload.Set("success", Napi::Boolean::New(env, result.success));
169
+ payload.Set("installRequested", Napi::Boolean::New(env, result.install_requested));
170
+ payload.Set("checkRequested", Napi::Boolean::New(env, result.check_requested));
171
+ if (!result.output_path.empty()) {
172
+ payload.Set("outputPath", Napi::String::New(env, result.output_path));
173
+ }
174
+ return payload;
175
+ }
176
+
177
+ class SignWorker final : public Napi::AsyncWorker {
178
+ public:
179
+ explicit SignWorker(Napi::Env env, ZSignBindingOptions options)
180
+ : Napi::AsyncWorker(env), deferred_(Napi::Promise::Deferred::New(env)), options_(std::move(options)) {}
181
+
182
+ void Execute() override {
183
+ result_ = RunZSignWithOptions(options_);
184
+ }
185
+
186
+ void OnOK() override {
187
+ deferred_.Resolve(BuildResultObject(Env(), result_));
188
+ }
189
+
190
+ void OnError(const Napi::Error& error) override {
191
+ deferred_.Reject(error.Value());
192
+ }
193
+
194
+ Napi::Promise GetPromise() {
195
+ return deferred_.Promise();
196
+ }
197
+
198
+ private:
199
+ Napi::Promise::Deferred deferred_;
200
+ ZSignBindingOptions options_;
201
+ ZSignBindingResult result_;
202
+ };
203
+
204
+ } // namespace
205
+
206
+ Napi::Value Sign(const Napi::CallbackInfo& info) {
207
+ Napi::Env env = info.Env();
208
+
209
+ if (info.Length() == 0 || !info[0].IsObject()) {
210
+ Napi::TypeError::New(env, "Options object is required").ThrowAsJavaScriptException();
211
+ return env.Undefined();
212
+ }
213
+
214
+ Napi::Object optionsObject = info[0].As<Napi::Object>();
215
+ ZSignBindingOptions options;
216
+ if (!ParseOptions(env, optionsObject, options)) {
217
+ return env.Undefined();
218
+ }
219
+
220
+ auto* worker = new SignWorker(env, std::move(options));
221
+ auto promise = worker->GetPromise();
222
+ worker->Queue();
223
+ return promise;
224
+ }
225
+
226
+ Napi::Object Init(Napi::Env env, Napi::Object exports) {
227
+ exports.Set(Napi::String::New(env, "sign"), Napi::Function::New(env, Sign));
228
+ return exports;
229
+ }
230
+
231
+ NODE_API_MODULE(zsign, Init)
@@ -0,0 +1,87 @@
1
+ #include "zsign_driver.h"
2
+
3
+ #include <string>
4
+ #include <vector>
5
+
6
+ extern int zsign_cli_main(int argc, char** argv);
7
+ extern int optind;
8
+ #if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
9
+ extern int optreset;
10
+ #endif
11
+
12
+ namespace {
13
+
14
+ void PushFlag(std::vector<std::string>& args, const char* flag, bool enabled) {
15
+ if (enabled) {
16
+ args.emplace_back(flag);
17
+ }
18
+ }
19
+
20
+ void PushOption(std::vector<std::string>& args, const char* flag, const std::string& value) {
21
+ if (!value.empty()) {
22
+ args.emplace_back(flag);
23
+ args.emplace_back(value);
24
+ }
25
+ }
26
+
27
+ } // namespace
28
+
29
+ ZSignBindingResult RunZSignWithOptions(const ZSignBindingOptions& options) {
30
+ std::vector<std::string> args;
31
+ args.emplace_back("zsign");
32
+
33
+ PushFlag(args, "-d", options.debug);
34
+ PushFlag(args, "-f", options.force);
35
+ PushFlag(args, "-a", options.adhoc);
36
+ PushFlag(args, "-w", options.weakInject);
37
+ PushFlag(args, "-i", options.install);
38
+ PushFlag(args, "-q", options.quiet);
39
+ PushFlag(args, "-C", options.check);
40
+ PushFlag(args, "-2", options.sha256Only);
41
+
42
+ PushOption(args, "-c", options.certificate);
43
+ PushOption(args, "-k", options.privateKey);
44
+ PushOption(args, "-m", options.provisioningProfile);
45
+ PushOption(args, "-p", options.password);
46
+ PushOption(args, "-b", options.bundleId);
47
+ PushOption(args, "-r", options.bundleVersion);
48
+ PushOption(args, "-n", options.bundleDisplayName);
49
+ PushOption(args, "-e", options.entitlements);
50
+ PushOption(args, "-o", options.output);
51
+ PushOption(args, "-t", options.tempDir);
52
+
53
+ if (options.zipLevel >= 0) {
54
+ args.emplace_back("-z");
55
+ args.emplace_back(std::to_string(options.zipLevel));
56
+ }
57
+
58
+ for (const auto& dylib : options.dylibs) {
59
+ if (!dylib.empty()) {
60
+ args.emplace_back("-l");
61
+ args.emplace_back(dylib);
62
+ }
63
+ }
64
+
65
+ args.emplace_back(options.input);
66
+
67
+ std::vector<char*> argv;
68
+ argv.reserve(args.size());
69
+ for (auto& arg : args) {
70
+ argv.push_back(const_cast<char*>(arg.c_str()));
71
+ }
72
+
73
+ optind = 1;
74
+ #if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
75
+ optreset = 1;
76
+ #endif
77
+
78
+ const int exitCode = zsign_cli_main(static_cast<int>(argv.size()), argv.data());
79
+
80
+ ZSignBindingResult result;
81
+ result.exit_code = exitCode;
82
+ result.success = (exitCode == 0);
83
+ result.output_path = options.output;
84
+ result.install_requested = options.install;
85
+ result.check_requested = options.check;
86
+ return result;
87
+ }
@@ -0,0 +1,38 @@
1
+ #pragma once
2
+
3
+ #include <string>
4
+ #include <vector>
5
+
6
+ struct ZSignBindingOptions {
7
+ std::string input;
8
+ std::string certificate;
9
+ std::string privateKey;
10
+ std::string provisioningProfile;
11
+ std::string password;
12
+ std::string bundleId;
13
+ std::string bundleVersion;
14
+ std::string bundleDisplayName;
15
+ std::string entitlements;
16
+ std::string output;
17
+ std::string tempDir;
18
+ std::vector<std::string> dylibs;
19
+ bool debug = false;
20
+ bool force = false;
21
+ bool adhoc = false;
22
+ bool weakInject = false;
23
+ bool install = false;
24
+ bool quiet = false;
25
+ bool check = false;
26
+ bool sha256Only = false;
27
+ int zipLevel = -1;
28
+ };
29
+
30
+ struct ZSignBindingResult {
31
+ int exit_code = -1;
32
+ std::string output_path;
33
+ bool success = false;
34
+ bool install_requested = false;
35
+ bool check_requested = false;
36
+ };
37
+
38
+ ZSignBindingResult RunZSignWithOptions(const ZSignBindingOptions& options);