@algocare/react-native-code-push 12.6.3 → 13.0.0-rc.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 (292) hide show
  1. package/CodePush.podspec +6 -8
  2. package/README.md +343 -586
  3. package/android/app/build.gradle +2 -1
  4. package/android/app/proguard-rules.pro +14 -0
  5. package/android/app/src/debug/AndroidManifest.xml +9 -0
  6. package/android/app/src/main/AndroidManifest.xml +1 -2
  7. package/android/app/src/main/java/com/microsoft/codepush/react/CodePush.java +14 -139
  8. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushConstants.java +0 -3
  9. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushNativeModule.java +108 -63
  10. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateManager.java +2 -33
  11. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateUtils.java +13 -109
  12. package/android/build.gradle +3 -0
  13. package/app.plugin.js +1 -0
  14. package/bin/code-push.js +6 -0
  15. package/cli/commands/bundleCommand/bundleCodePush.ts +118 -0
  16. package/cli/commands/bundleCommand/index.ts +34 -0
  17. package/cli/commands/createHistoryCommand/createReleaseHistory.ts +37 -0
  18. package/cli/commands/createHistoryCommand/createReleaseHistoryList.ts +40 -0
  19. package/cli/commands/createHistoryCommand/index.ts +44 -0
  20. package/cli/commands/createPullRequestHistoryCommand/createPullRequestHistory.ts +33 -0
  21. package/cli/commands/createPullRequestHistoryCommand/index.ts +31 -0
  22. package/cli/commands/createPullRequestReleaseCommand/addToPullRequestRelease.ts +71 -0
  23. package/cli/commands/createPullRequestReleaseCommand/createPullRequestRelease.ts +75 -0
  24. package/cli/commands/createPullRequestReleaseCommand/index.ts +74 -0
  25. package/cli/commands/getPackageHashCommand/index.ts +45 -0
  26. package/cli/commands/initCommand/index.ts +14 -0
  27. package/cli/commands/initCommand/initAndroid.ts +91 -0
  28. package/cli/commands/initCommand/initIos.ts +123 -0
  29. package/cli/commands/initCommand/test/initAndroid.test.ts +128 -0
  30. package/cli/commands/initCommand/test/initIos.test.ts +99 -0
  31. package/cli/commands/releaseCommand/addToReleaseHistory.ts +57 -0
  32. package/cli/commands/releaseCommand/index.ts +90 -0
  33. package/cli/commands/releaseCommand/release.ts +105 -0
  34. package/cli/commands/removePullRequestHistoryCommand/index.ts +37 -0
  35. package/cli/commands/removePullRequestHistoryCommand/removePullRequestHistory.ts +28 -0
  36. package/cli/commands/showHistoryCommand/index.ts +31 -0
  37. package/cli/commands/updateHistoryCommand/index.ts +55 -0
  38. package/cli/commands/updateHistoryCommand/updateReleaseHistory.ts +42 -0
  39. package/cli/constant.ts +4 -0
  40. package/cli/dist/commands/bundleCommand/bundleCodePush.js +65 -0
  41. package/cli/dist/commands/bundleCommand/index.js +15 -0
  42. package/cli/dist/commands/createHistoryCommand/createReleaseHistory.js +25 -0
  43. package/cli/dist/commands/createHistoryCommand/createReleaseHistoryList.js +27 -0
  44. package/cli/dist/commands/createHistoryCommand/index.js +20 -0
  45. package/cli/dist/commands/createPullRequestHistoryCommand/createPullRequestHistory.js +23 -0
  46. package/cli/dist/commands/createPullRequestHistoryCommand/index.js +15 -0
  47. package/cli/dist/commands/createPullRequestReleaseCommand/addToPullRequestRelease.js +51 -0
  48. package/cli/dist/commands/createPullRequestReleaseCommand/createPullRequestRelease.js +39 -0
  49. package/cli/dist/commands/createPullRequestReleaseCommand/index.js +35 -0
  50. package/cli/dist/commands/getPackageHashCommand/index.js +26 -0
  51. package/cli/dist/commands/initCommand/index.js +12 -0
  52. package/cli/dist/commands/initCommand/initAndroid.js +73 -0
  53. package/cli/dist/commands/initCommand/initIos.js +108 -0
  54. package/cli/dist/commands/initCommand/test/initAndroid.test.js +113 -0
  55. package/cli/dist/commands/initCommand/test/initIos.test.js +95 -0
  56. package/cli/dist/commands/releaseCommand/addToReleaseHistory.js +35 -0
  57. package/cli/dist/commands/releaseCommand/index.js +45 -0
  58. package/cli/dist/commands/releaseCommand/release.js +62 -0
  59. package/cli/dist/commands/removePullRequestHistoryCommand/index.js +19 -0
  60. package/cli/dist/commands/removePullRequestHistoryCommand/removePullRequestHistory.js +18 -0
  61. package/cli/dist/commands/showHistoryCommand/index.js +15 -0
  62. package/cli/dist/commands/updateHistoryCommand/index.js +31 -0
  63. package/cli/dist/commands/updateHistoryCommand/updateReleaseHistory.js +28 -0
  64. package/cli/dist/constant.js +4 -0
  65. package/cli/dist/functions/getReactTempDir.js +10 -0
  66. package/cli/{functions → dist/functions}/makeCodePushBundle.js +5 -11
  67. package/cli/{functions → dist/functions}/prepareToBundleJS.js +2 -5
  68. package/cli/dist/functions/runExpoBundleCommand.js +35 -0
  69. package/cli/{functions → dist/functions}/runHermesEmitBinaryCommand.js +36 -71
  70. package/cli/{functions → dist/functions}/runReactNativeBundleCommand.js +19 -24
  71. package/cli/dist/index.js +54 -0
  72. package/cli/dist/utils/datetime.js +17 -0
  73. package/cli/dist/utils/file-utils.js +19 -0
  74. package/cli/dist/utils/fsUtils.js +44 -0
  75. package/cli/{utils → dist/utils}/hash-utils.js +19 -130
  76. package/cli/{utils → dist/utils}/promisfied-fs.js +5 -16
  77. package/cli/dist/utils/showLogo.js +21 -0
  78. package/cli/dist/utils/unzip.js +41 -0
  79. package/cli/{utils → dist/utils}/zip.js +15 -51
  80. package/cli/functions/{getReactTempDir.js → getReactTempDir.ts} +2 -6
  81. package/cli/functions/makeCodePushBundle.ts +26 -0
  82. package/cli/functions/prepareToBundleJS.ts +10 -0
  83. package/cli/functions/runExpoBundleCommand.ts +45 -0
  84. package/cli/functions/runHermesEmitBinaryCommand.ts +203 -0
  85. package/cli/functions/runReactNativeBundleCommand.ts +67 -0
  86. package/cli/index.ts +68 -0
  87. package/cli/package.json +35 -0
  88. package/cli/utils/datetime.ts +19 -0
  89. package/cli/utils/{file-utils.js → file-utils.ts} +4 -21
  90. package/cli/utils/fsUtils.ts +50 -0
  91. package/cli/utils/hash-utils.ts +143 -0
  92. package/cli/utils/promisfied-fs.ts +19 -0
  93. package/cli/utils/{showLogo.js → showLogo.ts} +4 -6
  94. package/cli/utils/unzip.ts +46 -0
  95. package/cli/utils/zip.ts +65 -0
  96. package/expo/plugin/withCodePush.js +14 -0
  97. package/expo/plugin/withCodePushAndroid.js +92 -0
  98. package/expo/plugin/withCodePushIos.js +143 -0
  99. package/ios/CodePush/CodePush.h +0 -16
  100. package/ios/CodePush/CodePush.m +30 -20
  101. package/ios/CodePush/CodePushConfig.m +1 -11
  102. package/ios/CodePush/CodePushPackage.m +12 -69
  103. package/ios/CodePush/CodePushUpdateUtils.m +1 -91
  104. package/ios/CodePush/SSZipArchive/Info.plist +26 -0
  105. package/ios/CodePush/SSZipArchive/README.md +1 -1
  106. package/ios/CodePush/SSZipArchive/SSZipArchive.h +129 -27
  107. package/ios/CodePush/SSZipArchive/SSZipArchive.m +1119 -314
  108. package/ios/CodePush/SSZipArchive/SSZipCommon.h +71 -0
  109. package/ios/CodePush/SSZipArchive/Supporting Files/PrivacyInfo.xcprivacy +23 -0
  110. package/ios/CodePush/SSZipArchive/include/ZipArchive.h +25 -0
  111. package/ios/CodePush/SSZipArchive/minizip/LICENSE +17 -0
  112. package/ios/CodePush/SSZipArchive/minizip/mz.h +273 -0
  113. package/ios/CodePush/SSZipArchive/minizip/mz_compat.c +1306 -0
  114. package/ios/CodePush/SSZipArchive/minizip/mz_compat.h +346 -0
  115. package/ios/CodePush/SSZipArchive/minizip/mz_crypt.c +187 -0
  116. package/ios/CodePush/SSZipArchive/minizip/mz_crypt.h +65 -0
  117. package/ios/CodePush/SSZipArchive/minizip/mz_crypt_apple.c +526 -0
  118. package/ios/CodePush/SSZipArchive/minizip/mz_os.c +348 -0
  119. package/ios/CodePush/SSZipArchive/minizip/mz_os.h +176 -0
  120. package/ios/CodePush/SSZipArchive/minizip/mz_os_posix.c +350 -0
  121. package/ios/CodePush/SSZipArchive/minizip/mz_strm.c +556 -0
  122. package/ios/CodePush/SSZipArchive/minizip/mz_strm.h +132 -0
  123. package/ios/CodePush/SSZipArchive/minizip/mz_strm_buf.c +383 -0
  124. package/ios/CodePush/SSZipArchive/minizip/mz_strm_buf.h +42 -0
  125. package/ios/CodePush/SSZipArchive/minizip/mz_strm_mem.c +269 -0
  126. package/ios/CodePush/SSZipArchive/minizip/mz_strm_mem.h +48 -0
  127. package/ios/CodePush/SSZipArchive/minizip/mz_strm_os.h +40 -0
  128. package/ios/CodePush/SSZipArchive/minizip/mz_strm_os_posix.c +203 -0
  129. package/ios/CodePush/SSZipArchive/minizip/mz_strm_pkcrypt.c +334 -0
  130. package/ios/CodePush/SSZipArchive/minizip/mz_strm_pkcrypt.h +46 -0
  131. package/ios/CodePush/SSZipArchive/minizip/mz_strm_split.c +429 -0
  132. package/ios/CodePush/SSZipArchive/minizip/mz_strm_split.h +43 -0
  133. package/ios/CodePush/SSZipArchive/minizip/mz_strm_wzaes.c +360 -0
  134. package/ios/CodePush/SSZipArchive/minizip/mz_strm_wzaes.h +46 -0
  135. package/ios/CodePush/SSZipArchive/minizip/mz_strm_zlib.c +389 -0
  136. package/ios/CodePush/SSZipArchive/minizip/mz_strm_zlib.h +43 -0
  137. package/ios/CodePush/SSZipArchive/minizip/mz_zip.c +2782 -0
  138. package/ios/CodePush/SSZipArchive/minizip/mz_zip.h +262 -0
  139. package/ios/CodePush/SSZipArchive/minizip/mz_zip_rw.c +1942 -0
  140. package/ios/CodePush/SSZipArchive/minizip/mz_zip_rw.h +285 -0
  141. package/ios/CodePush.xcodeproj/project.pbxproj +244 -453
  142. package/ios/PrivacyInfo.xcprivacy +31 -0
  143. package/package.json +67 -41
  144. package/react-native.config.js +1 -1
  145. package/{AlertAdapter.js → src/AlertAdapter.js} +5 -5
  146. package/src/CodePush.js +947 -0
  147. package/{package-mixins.js → src/package-mixins.js} +1 -1
  148. package/{versioning → src/versioning}/BaseVersioning.js +12 -1
  149. package/{versioning → src/versioning}/SemverVersioning.test.js +78 -0
  150. package/typings/react-native-code-push.d.ts +559 -495
  151. package/CONTRIBUTING.md +0 -134
  152. package/CodePush.js +0 -972
  153. package/SECURITY.md +0 -41
  154. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushBuilder.java +0 -37
  155. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushInvalidPublicKeyException.java +0 -12
  156. package/android/app/src/main/java/com/microsoft/codepush/react/ReactInstanceHolder.java +0 -17
  157. package/android/codepush.gradle +0 -162
  158. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  159. package/android/gradle/wrapper/gradle-wrapper.properties +0 -5
  160. package/android/gradlew +0 -164
  161. package/android/gradlew.bat +0 -90
  162. package/babel.config.js +0 -3
  163. package/cli/commands/bundleCommand/bundleCodePush.js +0 -57
  164. package/cli/commands/bundleCommand/index.js +0 -55
  165. package/cli/commands/common.js +0 -245
  166. package/cli/commands/createHistoryCommand/createReleaseHistory.js +0 -42
  167. package/cli/commands/createHistoryCommand/createReleaseHistoryList.js +0 -52
  168. package/cli/commands/createHistoryCommand/index.js +0 -95
  169. package/cli/commands/createPullRequestHistoryCommand/createPullRequestHistory.js +0 -34
  170. package/cli/commands/createPullRequestHistoryCommand/index.js +0 -29
  171. package/cli/commands/createPullRequestReleaseCommand/addToPullRequestRelease.js +0 -74
  172. package/cli/commands/createPullRequestReleaseCommand/createPullRequestRelease.js +0 -91
  173. package/cli/commands/createPullRequestReleaseCommand/index.js +0 -68
  174. package/cli/commands/getPackageHashCommand/index.js +0 -42
  175. package/cli/commands/releaseCommand/addToReleaseHistory.js +0 -85
  176. package/cli/commands/releaseCommand/index.js +0 -151
  177. package/cli/commands/releaseCommand/release.js +0 -121
  178. package/cli/commands/removePullRequestHistoryCommand/index.js +0 -28
  179. package/cli/commands/removePullRequestHistoryCommand/removePullRequestHistory.js +0 -23
  180. package/cli/commands/showHistoryCommand/index.js +0 -88
  181. package/cli/commands/updateHistoryCommand/index.js +0 -123
  182. package/cli/commands/updateHistoryCommand/updateReleaseHistory.js +0 -69
  183. package/cli/constant.js +0 -8
  184. package/cli/index.js +0 -63
  185. package/cli/utils/datetime.js +0 -22
  186. package/cli/utils/fsUtils.js +0 -64
  187. package/cli/utils/version.js +0 -26
  188. package/code-push.config.example.supabase.ts +0 -114
  189. package/code-push.config.js +0 -229
  190. package/code-push.config.ts +0 -175
  191. package/docs/api-android.md +0 -83
  192. package/docs/api-ios.md +0 -31
  193. package/docs/api-js.md +0 -592
  194. package/docs/multi-deployment-testing-android.md +0 -148
  195. package/docs/multi-deployment-testing-ios.md +0 -59
  196. package/docs/setup-android.md +0 -482
  197. package/docs/setup-ios.md +0 -280
  198. package/eslint.config.mjs +0 -32
  199. package/ios/CodePush/Base64/Base64/MF_Base64Additions.h +0 -34
  200. package/ios/CodePush/Base64/Base64/MF_Base64Additions.m +0 -252
  201. package/ios/CodePush/Base64/README.md +0 -47
  202. package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithm.h +0 -69
  203. package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmFactory.h +0 -16
  204. package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmFactory.m +0 -51
  205. package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmNone.h +0 -15
  206. package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmNone.m +0 -55
  207. package/ios/CodePush/JWT/Core/Algorithms/ESFamily/JWTAlgorithmESBase.h +0 -24
  208. package/ios/CodePush/JWT/Core/Algorithms/ESFamily/JWTAlgorithmESBase.m +0 -41
  209. package/ios/CodePush/JWT/Core/Algorithms/HSFamily/JWTAlgorithmHSBase.h +0 -28
  210. package/ios/CodePush/JWT/Core/Algorithms/HSFamily/JWTAlgorithmHSBase.m +0 -205
  211. package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolder.h +0 -103
  212. package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolder.m +0 -322
  213. package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolderChain.h +0 -37
  214. package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolderChain.m +0 -145
  215. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/JWTAlgorithmRSBase.h +0 -35
  216. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/JWTAlgorithmRSBase.m +0 -551
  217. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/JWTRSAlgorithm.h +0 -23
  218. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKey.h +0 -43
  219. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKey.m +0 -230
  220. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKeyExtractor.h +0 -31
  221. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKeyExtractor.m +0 -113
  222. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoSecurity.h +0 -38
  223. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoSecurity.m +0 -500
  224. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaim.h +0 -18
  225. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaim.m +0 -214
  226. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSet.h +0 -23
  227. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSet.m +0 -29
  228. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetSerializer.h +0 -19
  229. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetSerializer.m +0 -68
  230. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetVerifier.h +0 -18
  231. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetVerifier.m +0 -72
  232. package/ios/CodePush/JWT/Core/Coding/JWTCoding+ResultTypes.h +0 -67
  233. package/ios/CodePush/JWT/Core/Coding/JWTCoding+ResultTypes.m +0 -111
  234. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionOne.h +0 -119
  235. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionOne.m +0 -307
  236. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionThree.h +0 -94
  237. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionThree.m +0 -619
  238. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionTwo.h +0 -164
  239. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionTwo.m +0 -514
  240. package/ios/CodePush/JWT/Core/Coding/JWTCoding.h +0 -24
  241. package/ios/CodePush/JWT/Core/Coding/JWTCoding.m +0 -11
  242. package/ios/CodePush/JWT/Core/FrameworkSupplement/JWT.h +0 -52
  243. package/ios/CodePush/JWT/Core/FrameworkSupplement/Map.modulemap +0 -5
  244. package/ios/CodePush/JWT/Core/Supplement/JWTBase64Coder.h +0 -28
  245. package/ios/CodePush/JWT/Core/Supplement/JWTBase64Coder.m +0 -70
  246. package/ios/CodePush/JWT/Core/Supplement/JWTDeprecations.h +0 -22
  247. package/ios/CodePush/JWT/Core/Supplement/JWTErrorDescription.h +0 -34
  248. package/ios/CodePush/JWT/Core/Supplement/JWTErrorDescription.m +0 -73
  249. package/ios/CodePush/JWT/LICENSE +0 -19
  250. package/ios/CodePush/JWT/README.md +0 -489
  251. package/ios/CodePush/SSZipArchive/Common.h +0 -81
  252. package/ios/CodePush/SSZipArchive/aes/aes.h +0 -198
  253. package/ios/CodePush/SSZipArchive/aes/aes_via_ace.h +0 -541
  254. package/ios/CodePush/SSZipArchive/aes/aescrypt.c +0 -294
  255. package/ios/CodePush/SSZipArchive/aes/aeskey.c +0 -548
  256. package/ios/CodePush/SSZipArchive/aes/aesopt.h +0 -739
  257. package/ios/CodePush/SSZipArchive/aes/aestab.c +0 -391
  258. package/ios/CodePush/SSZipArchive/aes/aestab.h +0 -173
  259. package/ios/CodePush/SSZipArchive/aes/brg_endian.h +0 -126
  260. package/ios/CodePush/SSZipArchive/aes/brg_types.h +0 -219
  261. package/ios/CodePush/SSZipArchive/aes/entropy.c +0 -54
  262. package/ios/CodePush/SSZipArchive/aes/entropy.h +0 -16
  263. package/ios/CodePush/SSZipArchive/aes/fileenc.c +0 -144
  264. package/ios/CodePush/SSZipArchive/aes/fileenc.h +0 -121
  265. package/ios/CodePush/SSZipArchive/aes/hmac.c +0 -145
  266. package/ios/CodePush/SSZipArchive/aes/hmac.h +0 -103
  267. package/ios/CodePush/SSZipArchive/aes/prng.c +0 -155
  268. package/ios/CodePush/SSZipArchive/aes/prng.h +0 -82
  269. package/ios/CodePush/SSZipArchive/aes/pwd2key.c +0 -103
  270. package/ios/CodePush/SSZipArchive/aes/pwd2key.h +0 -57
  271. package/ios/CodePush/SSZipArchive/aes/sha1.c +0 -258
  272. package/ios/CodePush/SSZipArchive/aes/sha1.h +0 -73
  273. package/ios/CodePush/SSZipArchive/minizip/crypt.h +0 -130
  274. package/ios/CodePush/SSZipArchive/minizip/ioapi.c +0 -369
  275. package/ios/CodePush/SSZipArchive/minizip/ioapi.h +0 -175
  276. package/ios/CodePush/SSZipArchive/minizip/mztools.c +0 -284
  277. package/ios/CodePush/SSZipArchive/minizip/mztools.h +0 -31
  278. package/ios/CodePush/SSZipArchive/minizip/unzip.c +0 -1839
  279. package/ios/CodePush/SSZipArchive/minizip/unzip.h +0 -248
  280. package/ios/CodePush/SSZipArchive/minizip/zip.c +0 -1910
  281. package/ios/CodePush/SSZipArchive/minizip/zip.h +0 -202
  282. package/scripts/generateBundledResourcesHash.js +0 -125
  283. package/scripts/getFilesInFolder.js +0 -19
  284. package/scripts/recordFilesBeforeBundleCommand.js +0 -41
  285. package/tsconfig.json +0 -20
  286. package/tslint.json +0 -32
  287. /package/{logging.js → src/logging.js} +0 -0
  288. /package/{versioning → src/versioning}/BaseVersioning.test.js +0 -0
  289. /package/{versioning → src/versioning}/IncrementalVersioning.js +0 -0
  290. /package/{versioning → src/versioning}/IncrementalVersioning.test.js +0 -0
  291. /package/{versioning → src/versioning}/SemverVersioning.js +0 -0
  292. /package/{versioning → src/versioning}/index.js +0 -0
@@ -1,489 +0,0 @@
1
- [![JWT](http://jwt.io/assets/logo.svg)](https://jwt.io/)
2
-
3
- [![Build Status](https://travis-ci.org/yourkarma/JWT.svg?branch=master)](https://travis-ci.org/yourkarma/JWT)
4
- [![Pod Version](http://img.shields.io/cocoapods/v/JWT.svg?style=flat)](http://cocoadocs.org/docsets/JWT)
5
- [![Pod Platform](http://img.shields.io/cocoapods/p/JWT.svg?style=flat)](http://cocoadocs.org/docsets/JWT)
6
- [![Reference Status](https://www.versioneye.com/objective-c/jwt/reference_badge.svg?style=flat)](https://www.versioneye.com/objective-c/jwt/references)
7
-
8
- # JWT
9
-
10
- A [JSON Web Token][] implementation in Objective-C.
11
-
12
- [JSON Web Token]: http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html
13
-
14
- # What's new in master and bleeding edge.
15
- Nothing here.
16
-
17
- # What's new in Version 3.0
18
-
19
- * Fluent style expanded.
20
- * Coding result types added.
21
- * Algorithms and data holders.
22
- * Algorithms and data holders chain.
23
- * Keys loaded from Pem files.
24
-
25
- ## Introduction to Algorithms data holders and chain.
26
- You have algorithm, secret data and unknown jwt token.
27
- Let's try to decode it.
28
-
29
- ```objective-c
30
- // create token
31
- NSString *token = @"...";
32
-
33
- // possible that algorithm could return error.
34
- // you could try use algorithm and data chain.
35
-
36
- NSString *firstSecret = @"first";
37
- NSString *firstAlgorithmName = JWTAlgorithmNameHS384;
38
-
39
- id <JWTAlgorithmDataHolderProtocol> firstHolder = [JWTAlgorithmHSFamilyDataHolder new].algorithmName(firstAlgorithmName).secret(firstSecret);
40
-
41
- id <JWTAlgorithmDataHolderProtocol> errorHolder = [JWTAlgorithmNoneDataHolder new];
42
-
43
- // chain together.
44
- JWTAlgorithmDataHolderChain *chain = [[JWTAlgorithmDataHolderChain alloc] initWithHolders:@[firstHolder, errorHolder]];
45
-
46
- // or add them in builder
47
- [JWTDecodingBuilder decodeMessage:token].addHolder(firstHolder).addHolder(errorHolder);
48
-
49
- // or add them as chain
50
- [JWTDecodingBuilder decodeMessage:token].chain(chain);
51
- ```
52
-
53
- Maybe you would like to try different secrets.
54
-
55
- ```objective-c
56
- // possible that your algorithm has several secrets.
57
- // you don't know which secret to use.
58
- // but you want to decode it.
59
- NSString *firstSecret = @"first";
60
- NSArray *manySecrets = @[@"second", @"third", @"forty two"];
61
- // translate to data
62
- NSArray *manySecretsData = @[];
63
- for (NSString *secret in manySecrets) {
64
- NSData *secretData = [JWTBase64Coder dataWithBase64UrlEncodedString:secret];
65
- if (secret) {
66
- manySecretsData = [manySecretsData arrayByAddingObject:secretData];
67
- }
68
- }
69
-
70
- NSString *algorithmName = JWTAlgorithmNameHS384;
71
-
72
- id <JWTAlgorithmDataHolderProtocol> firstHolder = [JWTAlgorithmHSFamilyDataHolder new].algorithmName(algorithmName).secret(firstSecret);
73
-
74
- // lets create chain
75
- JWTAlgorithmDataHolderChain *chain = [JWTAlgorithmDataHolderChain chainWithHolder:firstHolder];
76
-
77
- // and lets populate chain with secrets.
78
- NSLog(@"chain has: %@", chain.debugDescription);
79
-
80
- JWTAlgorithmDataHolderChain *expandedChain = [chain chainByPopulatingAlgorithm:firstHolder.currentAlgorithm withManySecretData:manySecretsData];
81
-
82
- // now we have expanded chain with many secrets and one algorithm.
83
- NSLog(@"expanded chain has: %@", expandedChain.debugDescription);
84
- ```
85
-
86
- ## Decode and encode with chain.
87
-
88
- ```objective-c
89
- JWTClaimsSet *claimsSet = [[JWTClaimsSet alloc] init];
90
- // fill it
91
- claimsSet.issuer = @"Facebook";
92
- claimsSet.subject = @"Token";
93
- claimsSet.audience = @"https://jwt.io";
94
-
95
- // encode it
96
- NSString *secret = @"secret";
97
- NSString *algorithmName = @"HS384";
98
- NSDictionary *headers = @{@"custom":@"value"};
99
-
100
- id<JWTAlgorithmDataHolderProtocol>holder = [JWTAlgorithmHSFamilyDataHolder new].algorithmName(algorithmName).secret(secret);
101
-
102
- JWTCodingResultType *result = [JWTEncodingBuilder encodeClaimsSet:claimsSet].headers(headers).addHolder(holder).result;
103
-
104
- NSString *encodedToken = result.successResult.encoded;
105
- if (result.successResult) {
106
- // handle encoded result
107
- NSLog(@"encoded result: %@", result.successResult.encoded);
108
- }
109
- else {
110
- // handle error
111
- NSLog(@"encode failed, error: %@", result.errorResult.error);
112
- }
113
-
114
- // decode it
115
- // you can set any property that you want, all properties are optional
116
- JWTClaimsSet *trustedClaimsSet = [claimsSet copy];
117
-
118
- NSNumber *options = @(JWTCodingDecodingOptionsNone);
119
- NSString *yourJwt = encodedToken; // from previous example
120
- JWTCodingResultType *decodedResult = [JWTDecodingBuilder decodeMessage:yourJwt].claimsSet(claimsSet).addHolder(holder).options(options).and.result;
121
-
122
- if (decodedResult.successResult) {
123
- // handle decoded result
124
- NSLog(@"decoded result: %@", decodedResult.successResult.headerAndPayloadDictionary);
125
- NSLog(@"headers: %@", decodedResult.successResult.headers);
126
- NSLog(@"payload: %@", decodedResult.successResult.payload);
127
- }
128
- else {
129
- // handle error
130
- NSLog(@"decode failed, error: %@", decodedResult.errorResult.error);
131
- }
132
- ```
133
-
134
- ## Keys loaded from Pem files.
135
-
136
- You have a key in pem file. And you want to use it directly for sign/verify.
137
- Suppose, that "public_rsa.pem" and "private_rsa.pem" are public and private keys in pem format.
138
- ```objective-c
139
- // Load keys
140
- - (NSString *)pemKeyStringFromFileWithName:(NSString *)string inBundle:(NSBundle *)bundle {
141
- NSURL *fileURL = [bundle URLForResource:name withExtension:@"pem"];
142
- NSError *error = nil;
143
- NSString *fileContent = [NSString stringWithContentsOfURL:fileURL encoding:NSUTF8StringEncoding error:&error];
144
- if (error) {
145
- NSLog(@"%@ error: %@", self.debugDescription, error);
146
- return nil;
147
- }
148
- }
149
-
150
- // Sign and verify
151
- - (void)signAndVerifyWithPrivateKeyPemString:(NSString *)privateKey publicKeyPemString:(NSString *)publicKey privateKeyPassphrase:(NSString *)passphrase {
152
- NSString *algorithmName = @"RS256";
153
-
154
- id <JWTAlgorithmDataHolderProtocol> signDataHolder = [JWTAlgorithmRSFamilyDataHolder new].keyExtractorType([JWTCryptoKeyExtractor privateKeyWithPEMBase64].type).privateKeyCertificatePassphrase(passphrase).algorithmName(algorithmName).secret(privateKey);
155
-
156
- id <JWTAlgorithmDataHolderProtocol> verifyDataHolder = [JWTAlgorithmRSFamilyDataHolder new].keyExtractorType([JWTCryptoKeyExtractor publicKeyWithPEMBase64].type).algorithmName(algorithmName).secret(publicKey);
157
-
158
- // sign
159
- NSDictionary *payloadDictionary = @{@"hello": @"world"};
160
-
161
- JWTCodingBuilder *signBuilder = [JWTEncodingBuilder encodePayload:payloadDictionary].addHolder(signDataHolder);
162
- JWTCodingResultType *signResult = signBuilder.result;
163
- NSString *token = nil;
164
- if (signResult.successResult) {
165
- // success
166
- NSLog(@"%@ success: %@", self.debugDescription, signResult.successResult.encoded);
167
- token = signResult.successResult.encoded;
168
- }
169
- else {
170
- // error
171
- NSLog(@"%@ error: %@", self.debugDescription, signResult.errorResult.error);
172
- }
173
-
174
- // verify
175
- if (token == nil) {
176
- NSLog(@"something wrong");
177
- }
178
-
179
- JWTCodingBuilder *verifyBuilder = [JWTDecodingBuilder decodeMessage:token].addHolder(verifyDataHolder);
180
- JWTCodingResultType *verifyResult = verifyBuilder.result;
181
- if (verifyResult.successResult) {
182
- // success
183
- NSLog(@"%@ success: %@", self.debugDescription, verifyResult.successResult.payload);
184
- token = verifyResult.successResult.encoded;
185
- }
186
- else {
187
- // error
188
- NSLog(@"%@ error: %@", self.debugDescription, verifyResult.errorResult.error);
189
- }
190
- }
191
- ```
192
-
193
- # Experiments in Version 2.0
194
- ## Whitelists possible algorithms.
195
- When you need to decode jwt by several algorithms you could specify their names in whitelist.
196
- Later this feature possible will migrate to options.
197
- For example, someone returns result or error.
198
- ### Limitations
199
- Restricted to pair (algorithm or none) due to limitations of unique `secret`.
200
-
201
- ```objective-c
202
- NSString *jwtResultOrError = /*...*/;
203
- NSString *secret = @"secret";
204
- JWTBuilder *builder = [JWT decodeMessage:jwtResultOrError].secret(@"secret").whitelist(@[@"HS256", @"none"]);
205
- NSDictionary *decoded = builder.decode;
206
- if (builder.jwtError) {
207
- // oh!
208
- }
209
- else {
210
- NSDictionary *payload = decoded[@"payload"];
211
- NSDictionary *header = decoded[@"header"];
212
- NSArray *tries = decoded[@"tries"]; // will be evolded into something appropriate later.
213
- }
214
- ```
215
-
216
- # What's new in Version 2.0
217
-
218
- * Old plain style deprecated.
219
- * Use modern fluent style instead.
220
-
221
- ```objective-c
222
- NSDictionary *payload = @{@"foo" : @"bar"};
223
- NSString *secret = @"secret";
224
- id<JWTAlgorithm> algorithm = [JWTAlgorithmFactory algorithmByName:@"HS256"];
225
- // Deprecated
226
- [JWT encodePayload:payload withSecret:secret algorithm:algorithm];
227
-
228
- // Modern
229
- [JWTBuilder encodePayload:payload].secret(secret).algorithm(algorithm).encode;
230
- ```
231
-
232
- # Installation
233
-
234
- Add the following to your [CocoaPods][] Podfile:
235
-
236
- pod "JWT"
237
-
238
- [CocoaPods]: http://cocoapods.org
239
-
240
- Install via Cartfile:
241
-
242
- github "yourkarma/JWT" "master"
243
-
244
- and `import JWT`
245
-
246
- # Documentation
247
- # Usage
248
-
249
- ## JWTBuilder
250
-
251
- To encode & decode JWTs, use fluent style with the `JWTBuilder` interface
252
-
253
- ```objective-c
254
- + (JWTBuilder *)encodePayload:(NSDictionary *)payload;
255
- + (JWTBuilder *)encodeClaimsSet:(JWTClaimsSet *)claimsSet;
256
- + (JWTBuilder *)decodeMessage:(NSString *)message;
257
- ```
258
-
259
- As you can see, JWTBuilder has interface from both decoding and encoding.
260
-
261
- Note: some attributes are encode-only or decode-only.
262
-
263
- #pragma mark - Encode only
264
- *payload;
265
- *headers;
266
- *algorithm;
267
-
268
- #pragma mark - Decode only
269
- *message
270
- *options // as forcedOption from jwt decode functions interface.
271
- *whitelist //optional array of algorithm names to whitelist for decoding
272
-
273
- You can inspect JWTBuilder by `jwt`-prefixed attributes.
274
-
275
- You can set JWTBuilder attributes by fluent style (block interface).
276
-
277
- You can encode arbitrary payloads like so:
278
-
279
- ```objective-c
280
- NSDictionary *payload = @{@"foo" : @"bar"};
281
- NSString *secret = @"secret";
282
- id<JWTAlgorithm> algorithm = [JWTAlgorithmFactory algorithmByName:@"HS256"];
283
-
284
- [JWTBuilder encodePayload:payload].secret(@"secret").algorithm(algorithm).encode;
285
- ```
286
-
287
- If you're using reserved claim names you can encode your claim set like so (all properties are optional):
288
-
289
- ```objective-c
290
- JWTClaimsSet *claimsSet = [[JWTClaimsSet alloc] init];
291
- claimsSet.issuer = @"Facebook";
292
- claimsSet.subject = @"Token";
293
- claimsSet.audience = @"http://yourkarma.com";
294
- claimsSet.expirationDate = [NSDate distantFuture];
295
- claimsSet.notBeforeDate = [NSDate distantPast];
296
- claimsSet.issuedAt = [NSDate date];
297
- claimsSet.identifier = @"thisisunique";
298
- claimsSet.type = @"test";
299
-
300
- NSString *secret = @"secret";
301
- id<JWTAlgorithm> algorithm = [JWTAlgorithmFactory algorithmByName:@"HS256"];
302
-
303
- [JWTBuilder encodeClaimsSet:claimsSet].secret(secret).algorithm(algorithm).encode;
304
- ```
305
-
306
- You can decode a JWT like so:
307
-
308
- ```objective-c
309
- NSString *jwtToken = @"header.payload.signature";
310
- NSString *secret = @"secret";
311
- NSString *algorithmName = @"HS256"; //Must specify an algorithm to use
312
-
313
- NSDictionary *payload = [JWTBuilder decodeMessage:jwtToken].secret(secret).algorithmName(algorithmName).decode;
314
- ```
315
-
316
- If you want to check claims while decoding, you could use next sample of code (all properties are optional):
317
-
318
- ```objective-c
319
- // Trusted Claims Set
320
- JWTClaimsSet *trustedClaimsSet = [[JWTClaimsSet alloc] init];
321
- trustedClaimsSet.issuer = @"Facebook";
322
- trustedClaimsSet.subject = @"Token";
323
- trustedClaimsSet.audience = @"http://yourkarma.com";
324
- trustedClaimsSet.expirationDate = [NSDate date];
325
- trustedClaimsSet.notBeforeDate = [NSDate date];
326
- trustedClaimsSet.issuedAt = [NSDate date];
327
- trustedClaimsSet.identifier = @"thisisunique";
328
- trustedClaimsSet.type = @"test";
329
-
330
- NSString *message = @"encodedJwt";
331
- NSString *secret = @"secret";
332
- NSString *algorithmName = @"chosenAlgorithm"
333
-
334
- JWTBuilder *builder = [JWTBuilder decodeMessage:jwt].secret(secret).algorithmName(algorithmName).claimsSet(trustedClaimsSet);
335
- NSDictionary *payload = builder.decode;
336
-
337
- if (builder.jwtError == nil) {
338
- // do your work here
339
- }
340
- else {
341
- // handle error
342
- }
343
- ```
344
-
345
- If you want to enforce a whitelist of valid algorithms:
346
-
347
- ```objective-c
348
- NSArray *whitelist = @[@"HS256", @"HS512"];
349
- NSString *jwtToken = @"header.payload.signature";
350
- NSString *secret = @"secret";
351
- NSString *algorithmName = @"HS256";
352
-
353
- //Returns nil
354
- NSDictionary *payload = [JWTBuilder decodeMessage:jwtToken].secret(secret).algorithmName(algorithmName).whitelist(@[]).decode;
355
-
356
- //Returns the decoded payload
357
- NSDictionary *payload = [JWTBuilder decodeMessage:jwtToken].secret(secret).algorithmName(algorithmName).whitelist(whitelist).decode;
358
- ```
359
-
360
- ### Encode / Decode Example
361
-
362
- ```objective-c
363
- // suppose, that you create ClaimsSet
364
- JWTClaimsSet *claimsSet = [[JWTClaimsSet alloc] init];
365
- // fill it
366
- claimsSet.issuer = @"Facebook";
367
- claimsSet.subject = @"Token";
368
- claimsSet.audience = @"http://yourkarma.com";
369
-
370
- // encode it
371
- NSString *secret = @"secret";
372
- NSString *algorithmName = @"HS384";
373
- NSDictionary *headers = @{@"custom":@"value"};
374
- id<JWTAlgorithm> algorithm = [JWTAlgorithmFactory algorithmByName:algorithmName];
375
-
376
- JWTBuilder *encodeBuilder = [JWT encodeClaimsSet:claimsSet];
377
- NSString *encodedResult = encodeBuilder.secret(secret).algorithm(algorithm).headers(headers).encode;
378
-
379
- if (encodeBuilder.jwtError == nil) {
380
- // handle encoded result
381
- NSLog(@"encoded result: %@", encodedResult);
382
- }
383
- else {
384
- // handle error
385
- NSLog(@"encode failed, error: %@", encodeBuilder.jwtError);
386
- }
387
-
388
- // decode it
389
- // you can set any property that you want, all properties are optional
390
- JWTClaimsSet *trustedClaimsSet = [claimsSet copy];
391
-
392
- // decode forced ? try YES
393
- BOOL decodeForced = NO;
394
- NSNumber *options = @(decodeForced);
395
- NSString *yourJwt = encodedResult; // from previous example
396
- NSString *yourSecret = secret; // from previous example
397
- NSString *yourAlgorithm = algorithmName; // from previous example
398
- JWTBuilder *decodeBuilder = [JWT decodeMessage:yourJwt];
399
- NSDictionary *decodedResult = decodeBuilder.message(yourJwt).secret(yourSecret).algorithmName(yourAlgorithm).claimsSet(trustedClaimsSet).options(options).decode;
400
- if (decodeBuilder.jwtError == nil) {
401
- // handle decoded result
402
- NSLog(@"decoded result: %@", decodedResult);
403
- }
404
- else {
405
- // handle error
406
- NSLog(@"decode failed, error: %@", decodeBuilder.jwtError);
407
- }
408
- ```
409
-
410
- #### NSData
411
- You can also encode/decode using a secret that is represented as an NSData object
412
-
413
- ```objective-c
414
- //Encode
415
- NSData *secretData = "<your data>";
416
- NSString *algorithmName = @"HS384";
417
- NSDictionary *headers = @{@"custom":@"value"};
418
- id<JWTAlgorithm> algorithm = [JWTAlgorithmFactory algorithmByName:algorithmName];
419
-
420
- JWTBuilder *encodeBuilder = [JWT encodeClaimsSet:claimsSet];
421
- NSString *encodedResult = encodeBuilder.secretData(secretData).algorithm(algorithm).headers(headers).encode;
422
-
423
- //Decode
424
- NSString *jwtToken = @"header.payload.signature";
425
- NSData *secretData = "<your data>"
426
- NSString *algorithmName = @"HS256"; //Must specify an algorithm to use
427
-
428
- NSDictionary *payload = [JWTBuilder decodeMessage:jwtToken].secretData(secretData).algorithmName(algorithmName).decode;
429
- ```
430
-
431
- # Algorithms
432
-
433
- The following algorithms are supported:
434
-
435
- * RS256
436
- * HS512 - HMAC using SHA-512.
437
- * HS256 / HS384 / HS512
438
- * None
439
-
440
- ## RS256 usage.
441
- For example, you have your file with privateKey: `file.p12`.
442
- And you have a secret passphrase for that file: `secret`.
443
-
444
- ```objective-c
445
- // Encode
446
- NSDictionary *payload = @{@"payload" : @"hidden_information"};
447
- NSString *algorithmName = @"RS256";
448
-
449
- NSString *filePath = [[NSBundle mainBundle] pathForResource:@"secret_key" ofType:@"p12"];
450
- NSData *privateKeySecretData = [NSData dataWithContentsOfFile:filePath];
451
-
452
- NSString *passphraseForPrivateKey = @"secret";
453
-
454
- JWTBuilder *builder = [JWTBuilder encodePayload:payload].secretData(privateKeySecretData).privateKeyCertificatePassphrase(passphraseForPrivateKey).algorithmName(algorithmName);
455
- NSString *token = builder.encode;
456
-
457
- // check error
458
- if (builder.jwtError == nil) {
459
- // handle result
460
- }
461
- else {
462
- // error occurred.
463
- }
464
-
465
- // Decode
466
- // Suppose, that you get token from previous example. You need a valid public key for a private key in previous example.
467
- // Private key stored in @"secret_key.p12". So, you need public key for that private key.
468
- NSString *publicKey = @"..."; // load public key. Or use it as raw string.
469
-
470
- algorithmName = @"RS256";
471
-
472
- JWTBuilder *decodeBuilder = [JWTBuilder decodeMessage:token].secret(publicKey).algorithmName(algorithmName);
473
- NSDictionary *envelopedPayload = decodeBuilder.decode;
474
-
475
- // check error
476
- if (decodeBuilder.jwtError == nil) {
477
- // handle result
478
- }
479
- else {
480
- // error occurred.
481
- }
482
- ```
483
-
484
-
485
- Additional algorithms can be added by implementing the `JWTAlgorithm` protocol.
486
-
487
- ## Before pull request
488
-
489
- Please, read [Contribution notes](https://github.com/yourkarma/JWT/blob/master/.github/CONTRIBUTING.md) before make pull request.
@@ -1,81 +0,0 @@
1
- #ifndef SSZipCommon
2
- #define SSZipCommon
3
-
4
- /* tm_unz contain date/time info */
5
- typedef struct tm_unz_s
6
- {
7
- unsigned int tm_sec; /* seconds after the minute - [0,59] */
8
- unsigned int tm_min; /* minutes after the hour - [0,59] */
9
- unsigned int tm_hour; /* hours since midnight - [0,23] */
10
- unsigned int tm_mday; /* day of the month - [1,31] */
11
- unsigned int tm_mon; /* months since January - [0,11] */
12
- unsigned int tm_year; /* years - [1980..2044] */
13
- } tm_unz;
14
-
15
- typedef struct unz_file_info_s
16
- {
17
- unsigned long version; /* version made by 2 bytes */
18
- unsigned long version_needed; /* version needed to extract 2 bytes */
19
- unsigned long flag; /* general purpose bit flag 2 bytes */
20
- unsigned long compression_method; /* compression method 2 bytes */
21
- unsigned long dosDate; /* last mod file date in Dos fmt 4 bytes */
22
- unsigned long crc; /* crc-32 4 bytes */
23
- unsigned long compressed_size; /* compressed size 4 bytes */
24
- unsigned long uncompressed_size; /* uncompressed size 4 bytes */
25
- unsigned long size_filename; /* filename length 2 bytes */
26
- unsigned long size_file_extra; /* extra field length 2 bytes */
27
- unsigned long size_file_comment; /* file comment length 2 bytes */
28
-
29
- unsigned long disk_num_start; /* disk number start 2 bytes */
30
- unsigned long internal_fa; /* internal file attributes 2 bytes */
31
- unsigned long external_fa; /* external file attributes 4 bytes */
32
-
33
- tm_unz tmu_date;
34
- } unz_file_info;
35
-
36
- /* unz_file_info contain information about a file in the zipfile */
37
- typedef struct unz_file_info64_s
38
- {
39
- unsigned long version; /* version made by 2 bytes */
40
- unsigned long version_needed; /* version needed to extract 2 bytes */
41
- unsigned long flag; /* general purpose bit flag 2 bytes */
42
- unsigned long compression_method; /* compression method 2 bytes */
43
- unsigned long dosDate; /* last mod file date in Dos fmt 4 bytes */
44
- unsigned long crc; /* crc-32 4 bytes */
45
- unsigned long long compressed_size; /* compressed size 8 bytes */
46
- unsigned long long uncompressed_size; /* uncompressed size 8 bytes */
47
- unsigned long size_filename; /* filename length 2 bytes */
48
- unsigned long size_file_extra; /* extra field length 2 bytes */
49
- unsigned long size_file_comment; /* file comment length 2 bytes */
50
-
51
- unsigned long disk_num_start; /* disk number start 2 bytes */
52
- unsigned long internal_fa; /* internal file attributes 2 bytes */
53
- unsigned long external_fa; /* external file attributes 4 bytes */
54
-
55
- tm_unz tmu_date;
56
- unsigned long long disk_offset;
57
- unsigned long size_file_extra_internal;
58
- } unz_file_info64;
59
-
60
- typedef struct unz_global_info_s
61
- {
62
- unsigned long number_entry; /* total number of entries in
63
- the central dir on this disk */
64
-
65
- unsigned long number_disk_with_CD; /* number the the disk with central dir, used for spanning ZIP*/
66
-
67
-
68
- unsigned long size_comment; /* size of the global comment of the zipfile */
69
- } unz_global_info;
70
-
71
- typedef struct unz_global_info64
72
- {
73
- unsigned long long number_entry; /* total number of entries in
74
- the central dir on this disk */
75
-
76
- unsigned long number_disk_with_CD; /* number the the disk with central dir, used for spanning ZIP*/
77
-
78
- unsigned long size_comment; /* size of the global comment of the zipfile */
79
- } unz_global_info64;
80
-
81
- #endif