@algocare/react-native-code-push 12.6.4 → 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 (296) 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 +68 -42
  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/.claude/commands/release.md +0 -78
  152. package/.claude/skills/npm-release/SKILL.md +0 -89
  153. package/CLAUDE.md +0 -83
  154. package/CONTRIBUTING.md +0 -134
  155. package/CodePush.js +0 -972
  156. package/SECURITY.md +0 -41
  157. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushBuilder.java +0 -37
  158. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushInvalidPublicKeyException.java +0 -12
  159. package/android/app/src/main/java/com/microsoft/codepush/react/ReactInstanceHolder.java +0 -17
  160. package/android/codepush.gradle +0 -162
  161. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  162. package/android/gradle/wrapper/gradle-wrapper.properties +0 -5
  163. package/android/gradlew +0 -164
  164. package/android/gradlew.bat +0 -90
  165. package/babel.config.js +0 -3
  166. package/cli/commands/bundleCommand/bundleCodePush.js +0 -57
  167. package/cli/commands/bundleCommand/index.js +0 -55
  168. package/cli/commands/common.js +0 -245
  169. package/cli/commands/createHistoryCommand/createReleaseHistory.js +0 -42
  170. package/cli/commands/createHistoryCommand/createReleaseHistoryList.js +0 -52
  171. package/cli/commands/createHistoryCommand/index.js +0 -95
  172. package/cli/commands/createPullRequestHistoryCommand/createPullRequestHistory.js +0 -34
  173. package/cli/commands/createPullRequestHistoryCommand/index.js +0 -29
  174. package/cli/commands/createPullRequestReleaseCommand/addToPullRequestRelease.js +0 -74
  175. package/cli/commands/createPullRequestReleaseCommand/createPullRequestRelease.js +0 -91
  176. package/cli/commands/createPullRequestReleaseCommand/index.js +0 -68
  177. package/cli/commands/getPackageHashCommand/index.js +0 -42
  178. package/cli/commands/releaseCommand/addToReleaseHistory.js +0 -85
  179. package/cli/commands/releaseCommand/index.js +0 -151
  180. package/cli/commands/releaseCommand/release.js +0 -121
  181. package/cli/commands/removePullRequestHistoryCommand/index.js +0 -28
  182. package/cli/commands/removePullRequestHistoryCommand/removePullRequestHistory.js +0 -23
  183. package/cli/commands/showHistoryCommand/index.js +0 -88
  184. package/cli/commands/updateHistoryCommand/index.js +0 -123
  185. package/cli/commands/updateHistoryCommand/updateReleaseHistory.js +0 -69
  186. package/cli/constant.js +0 -8
  187. package/cli/index.js +0 -63
  188. package/cli/utils/datetime.js +0 -22
  189. package/cli/utils/fsUtils.js +0 -64
  190. package/cli/utils/version.js +0 -26
  191. package/code-push.config.example.supabase.ts +0 -114
  192. package/code-push.config.js +0 -229
  193. package/code-push.config.ts +0 -175
  194. package/docs/api-android.md +0 -83
  195. package/docs/api-ios.md +0 -31
  196. package/docs/api-js.md +0 -592
  197. package/docs/multi-deployment-testing-android.md +0 -148
  198. package/docs/multi-deployment-testing-ios.md +0 -59
  199. package/docs/setup-android.md +0 -482
  200. package/docs/setup-ios.md +0 -280
  201. package/eslint.config.mjs +0 -32
  202. package/ios/CodePush/Base64/Base64/MF_Base64Additions.h +0 -34
  203. package/ios/CodePush/Base64/Base64/MF_Base64Additions.m +0 -252
  204. package/ios/CodePush/Base64/README.md +0 -47
  205. package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithm.h +0 -69
  206. package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmFactory.h +0 -16
  207. package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmFactory.m +0 -51
  208. package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmNone.h +0 -15
  209. package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmNone.m +0 -55
  210. package/ios/CodePush/JWT/Core/Algorithms/ESFamily/JWTAlgorithmESBase.h +0 -24
  211. package/ios/CodePush/JWT/Core/Algorithms/ESFamily/JWTAlgorithmESBase.m +0 -41
  212. package/ios/CodePush/JWT/Core/Algorithms/HSFamily/JWTAlgorithmHSBase.h +0 -28
  213. package/ios/CodePush/JWT/Core/Algorithms/HSFamily/JWTAlgorithmHSBase.m +0 -205
  214. package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolder.h +0 -103
  215. package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolder.m +0 -322
  216. package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolderChain.h +0 -37
  217. package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolderChain.m +0 -145
  218. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/JWTAlgorithmRSBase.h +0 -35
  219. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/JWTAlgorithmRSBase.m +0 -551
  220. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/JWTRSAlgorithm.h +0 -23
  221. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKey.h +0 -43
  222. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKey.m +0 -230
  223. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKeyExtractor.h +0 -31
  224. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKeyExtractor.m +0 -113
  225. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoSecurity.h +0 -38
  226. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoSecurity.m +0 -500
  227. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaim.h +0 -18
  228. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaim.m +0 -214
  229. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSet.h +0 -23
  230. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSet.m +0 -29
  231. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetSerializer.h +0 -19
  232. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetSerializer.m +0 -68
  233. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetVerifier.h +0 -18
  234. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetVerifier.m +0 -72
  235. package/ios/CodePush/JWT/Core/Coding/JWTCoding+ResultTypes.h +0 -67
  236. package/ios/CodePush/JWT/Core/Coding/JWTCoding+ResultTypes.m +0 -111
  237. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionOne.h +0 -119
  238. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionOne.m +0 -307
  239. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionThree.h +0 -94
  240. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionThree.m +0 -619
  241. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionTwo.h +0 -164
  242. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionTwo.m +0 -514
  243. package/ios/CodePush/JWT/Core/Coding/JWTCoding.h +0 -24
  244. package/ios/CodePush/JWT/Core/Coding/JWTCoding.m +0 -11
  245. package/ios/CodePush/JWT/Core/FrameworkSupplement/JWT.h +0 -52
  246. package/ios/CodePush/JWT/Core/FrameworkSupplement/Map.modulemap +0 -5
  247. package/ios/CodePush/JWT/Core/Supplement/JWTBase64Coder.h +0 -28
  248. package/ios/CodePush/JWT/Core/Supplement/JWTBase64Coder.m +0 -70
  249. package/ios/CodePush/JWT/Core/Supplement/JWTDeprecations.h +0 -22
  250. package/ios/CodePush/JWT/Core/Supplement/JWTErrorDescription.h +0 -34
  251. package/ios/CodePush/JWT/Core/Supplement/JWTErrorDescription.m +0 -73
  252. package/ios/CodePush/JWT/LICENSE +0 -19
  253. package/ios/CodePush/JWT/README.md +0 -489
  254. package/ios/CodePush/SSZipArchive/Common.h +0 -81
  255. package/ios/CodePush/SSZipArchive/aes/aes.h +0 -198
  256. package/ios/CodePush/SSZipArchive/aes/aes_via_ace.h +0 -541
  257. package/ios/CodePush/SSZipArchive/aes/aescrypt.c +0 -294
  258. package/ios/CodePush/SSZipArchive/aes/aeskey.c +0 -548
  259. package/ios/CodePush/SSZipArchive/aes/aesopt.h +0 -739
  260. package/ios/CodePush/SSZipArchive/aes/aestab.c +0 -391
  261. package/ios/CodePush/SSZipArchive/aes/aestab.h +0 -173
  262. package/ios/CodePush/SSZipArchive/aes/brg_endian.h +0 -126
  263. package/ios/CodePush/SSZipArchive/aes/brg_types.h +0 -219
  264. package/ios/CodePush/SSZipArchive/aes/entropy.c +0 -54
  265. package/ios/CodePush/SSZipArchive/aes/entropy.h +0 -16
  266. package/ios/CodePush/SSZipArchive/aes/fileenc.c +0 -144
  267. package/ios/CodePush/SSZipArchive/aes/fileenc.h +0 -121
  268. package/ios/CodePush/SSZipArchive/aes/hmac.c +0 -145
  269. package/ios/CodePush/SSZipArchive/aes/hmac.h +0 -103
  270. package/ios/CodePush/SSZipArchive/aes/prng.c +0 -155
  271. package/ios/CodePush/SSZipArchive/aes/prng.h +0 -82
  272. package/ios/CodePush/SSZipArchive/aes/pwd2key.c +0 -103
  273. package/ios/CodePush/SSZipArchive/aes/pwd2key.h +0 -57
  274. package/ios/CodePush/SSZipArchive/aes/sha1.c +0 -258
  275. package/ios/CodePush/SSZipArchive/aes/sha1.h +0 -73
  276. package/ios/CodePush/SSZipArchive/minizip/crypt.h +0 -130
  277. package/ios/CodePush/SSZipArchive/minizip/ioapi.c +0 -369
  278. package/ios/CodePush/SSZipArchive/minizip/ioapi.h +0 -175
  279. package/ios/CodePush/SSZipArchive/minizip/mztools.c +0 -284
  280. package/ios/CodePush/SSZipArchive/minizip/mztools.h +0 -31
  281. package/ios/CodePush/SSZipArchive/minizip/unzip.c +0 -1839
  282. package/ios/CodePush/SSZipArchive/minizip/unzip.h +0 -248
  283. package/ios/CodePush/SSZipArchive/minizip/zip.c +0 -1910
  284. package/ios/CodePush/SSZipArchive/minizip/zip.h +0 -202
  285. package/scripts/generateBundledResourcesHash.js +0 -125
  286. package/scripts/getFilesInFolder.js +0 -19
  287. package/scripts/recordFilesBeforeBundleCommand.js +0 -41
  288. package/scripts/release.sh +0 -86
  289. package/tsconfig.json +0 -20
  290. package/tslint.json +0 -32
  291. /package/{logging.js → src/logging.js} +0 -0
  292. /package/{versioning → src/versioning}/BaseVersioning.test.js +0 -0
  293. /package/{versioning → src/versioning}/IncrementalVersioning.js +0 -0
  294. /package/{versioning → src/versioning}/IncrementalVersioning.test.js +0 -0
  295. /package/{versioning → src/versioning}/SemverVersioning.js +0 -0
  296. /package/{versioning → src/versioning}/index.js +0 -0
@@ -1,119 +0,0 @@
1
- //
2
- // JWTCoding+VersionOne.h
3
- // JWT
4
- //
5
- // Created by Lobanov Dmitry on 27.11.16.
6
- // Copyright © 2016 JWTIO. All rights reserved.
7
- //
8
-
9
- #import <JWTCoding.h>
10
-
11
- @protocol JWTAlgorithm;
12
- @class JWTClaimsSet;
13
-
14
- @interface JWT (VersionOne)
15
- #pragma mark - Encode
16
- + (NSString *)encodeClaimsSet:(JWTClaimsSet *)theClaimsSet withSecret:(NSString *)theSecret;
17
- + (NSString *)encodeClaimsSet:(JWTClaimsSet *)theClaimsSet withSecret:(NSString *)theSecret algorithm:(id<JWTAlgorithm>)theAlgorithm;
18
-
19
- + (NSString *)encodePayload:(NSDictionary *)thePayload withSecret:(NSString *)theSecret;
20
- + (NSString *)encodePayload:(NSDictionary *)thePayload withSecret:(NSString *)theSecret algorithm:(id<JWTAlgorithm>)theAlgorithm;
21
-
22
- + (NSString *)encodePayload:(NSDictionary *)thePayload withSecret:(NSString *)theSecret withHeaders:(NSDictionary *)theHeaders algorithm:(id<JWTAlgorithm>)theAlgorithm;
23
-
24
- + (NSString *)encodePayload:(NSDictionary *)thePayload withSecret:(NSString *)theSecret withHeaders:(NSDictionary *)theHeaders algorithm:(id<JWTAlgorithm>)theAlgorithm withError:(NSError * __autoreleasing *)theError;
25
-
26
- //Will be deprecated in later releases
27
- #pragma mark - Decode
28
-
29
- /**
30
- Decodes a JWT and returns the decoded Header and Payload
31
- @param theMessage The encoded JWT
32
- @param theSecret The verification key to use for validating the JWT signature
33
- @param theTrustedClaimsSet The JWTClaimsSet to use for verifying the JWT values
34
- @param theError Error pointer, if there is an error decoding the message, upon return contains an NSError object that describes the problem.
35
- @param theAlgorithmName The name of the algorithm to use for verifying the signature. Required, unless skipping verification
36
- @param theForcedOption BOOL indicating if verifying the JWT signature should be skipped. Should only be used for debugging
37
- @return A dictionary containing the header and payload dictionaries. Keyed to "header" and "payload", respectively. Or nil if an error occurs.
38
- */
39
- + (NSDictionary *)decodeMessage:(NSString *)theMessage withSecret:(NSString *)theSecret withTrustedClaimsSet:(JWTClaimsSet *)theTrustedClaimsSet withError:(NSError *__autoreleasing *)theError withForcedAlgorithmByName:(NSString *)theAlgorithmName withForcedOption:(BOOL)theForcedOption;
40
-
41
- /**
42
- Decodes a JWT and returns the decoded Header and Payload
43
- @param theMessage The encoded JWT
44
- @param theSecret The verification key to use for validating the JWT signature
45
- @param theTrustedClaimsSet The JWTClaimsSet to use for verifying the JWT values
46
- @param theError Error pointer, if there is an error decoding the message, upon return contains an NSError object that describes the problem.
47
- @param theAlgorithmName The name of the algorithm to use for verifying the signature. Required.
48
- @return A dictionary containing the header and payload dictionaries. Keyed to "header" and "payload", respectively. Or nil if an error occurs.
49
- */
50
- + (NSDictionary *)decodeMessage:(NSString *)theMessage withSecret:(NSString *)theSecret withTrustedClaimsSet:(JWTClaimsSet *)theTrustedClaimsSet withError:(NSError *__autoreleasing *)theError withForcedAlgorithmByName:(NSString *)theAlgorithmName;
51
-
52
- /**
53
- Decodes a JWT and returns the decoded Header and Payload.
54
-
55
- Uses the JWTAlgorithmHS512 for decoding
56
-
57
- @param theMessage The encoded JWT
58
- @param theSecret The verification key to use for validating the JWT signature
59
- @param theTrustedClaimsSet The JWTClaimsSet to use for verifying the JWT values
60
- @param theError Error pointer, if there is an error decoding the message, upon return contains an NSError object that describes the problem.
61
- @param theForcedOption BOOL indicating if verifying the JWT signature should be skipped. Should only be used for debugging
62
- @return A dictionary containing the header and payload dictionaries. Keyed to "header" and "payload", respectively. Or nil if an error occurs.
63
- */
64
- + (NSDictionary *)decodeMessage:(NSString *)theMessage withSecret:(NSString *)theSecret withTrustedClaimsSet:(JWTClaimsSet *)theTrustedClaimsSet withError:(NSError *__autoreleasing *)theError withForcedOption:(BOOL)theForcedOption;
65
-
66
- /**
67
- Decodes a JWT and returns the decoded Header and Payload
68
- @param theMessage The encoded JWT
69
- @param theSecret The verification key to use for validating the JWT signature
70
- @param theError Error pointer, if there is an error decoding the message, upon return contains an NSError object that describes the problem.
71
- @param theAlgorithmName The name of the algorithm to use for verifying the signature. Required, unless skipping verification
72
- @param skipVerification BOOL indicating if verifying the JWT signature should be skipped. Should only be used for debugging
73
- @return A dictionary containing the header and payload dictionaries. Keyed to "header" and "payload", respectively. Or nil if an error occurs.
74
- */
75
- + (NSDictionary *)decodeMessage:(NSString *)theMessage withSecret:(NSString *)theSecret withError:(NSError *__autoreleasing *)theError withForcedAlgorithmByName:(NSString *)theAlgorithmName skipVerification:(BOOL)skipVerification;
76
-
77
- /**
78
- Decodes a JWT and returns the decoded Header and Payload
79
- @param theMessage The encoded JWT
80
- @param theSecret The verification key to use for validating the JWT signature
81
- @param theError Error pointer, if there is an error decoding the message, upon return contains an NSError object that describes the problem.
82
- @param theAlgorithmName The name of the algorithm to use for verifying the signature. Required.
83
- @return A dictionary containing the header and payload dictionaries. Keyed to "header" and "payload", respectively. Or nil if an error occurs.
84
- */
85
- + (NSDictionary *)decodeMessage:(NSString *)theMessage withSecret:(NSString *)theSecret withError:(NSError *__autoreleasing *)theError withForcedAlgorithmByName:(NSString *)theAlgorithmName;
86
-
87
- /**
88
- Decodes a JWT and returns the decoded Header and Payload
89
-
90
- Uses the JWTAlgorithmHS512 for decoding
91
-
92
- @param theMessage The encoded JWT
93
- @param theSecret The verification key to use for validating the JWT signature
94
- @param theError Error pointer, if there is an error decoding the message, upon return contains an NSError object that describes the problem.
95
- @param theForcedOption BOOL indicating if verifying the JWT signature should be skipped.
96
- @return A dictionary containing the header and payload dictionaries. Keyed to "header" and "payload", respectively. Or nil if an error occurs.
97
- */
98
- + (NSDictionary *)decodeMessage:(NSString *)theMessage withSecret:(NSString *)theSecret withError:(NSError *__autoreleasing *)theError withForcedOption:(BOOL)theForcedOption;
99
-
100
- /**
101
- Decodes a JWT and returns the decoded Header and Payload.
102
- Uses the JWTAlgorithmHS512 for decoding
103
- @param theMessage The encoded JWT
104
- @param theSecret The verification key to use for validating the JWT signature
105
- @param theError Error pointer, if there is an error decoding the message, upon return contains an NSError object that describes the problem.
106
- @return A dictionary containing the header and payload dictionaries. Keyed to "header" and "payload", respectively. Or nil if an error occurs.
107
- */
108
- + (NSDictionary *)decodeMessage:(NSString *)theMessage withSecret:(NSString *)theSecret withError:(NSError * __autoreleasing *)theError;
109
-
110
- /**
111
- Decodes a JWT and returns the decoded Header and Payload.
112
- Uses the JWTAlgorithmHS512 for decoding
113
- @param theMessage The encoded JWT
114
- @param theSecret The verification key to use for validating the JWT signature
115
- @return A dictionary containing the header and payload dictionaries. Keyed to "header" and "payload", respectively. Or nil if an error occurs.
116
- */
117
- + (NSDictionary *)decodeMessage:(NSString *)theMessage withSecret:(NSString *)theSecret;
118
-
119
- @end
@@ -1,307 +0,0 @@
1
- //
2
- // JWTCoding+VersionOne.m
3
- // JWT
4
- //
5
- // Created by Lobanov Dmitry on 27.11.16.
6
- // Copyright © 2016 JWTIO. All rights reserved.
7
- //
8
-
9
- #import "JWTCoding+VersionOne.h"
10
- #import "JWTBase64Coder.h"
11
-
12
- #import "JWTRSAlgorithm.h"
13
-
14
- #import "JWTAlgorithmFactory.h"
15
- #import "JWTAlgorithmHSBase.h"
16
-
17
- #import "JWTAlgorithmDataHolder.h"
18
-
19
- #import "JWTClaimsSetSerializer.h"
20
- #import "JWTClaimsSetVerifier.h"
21
-
22
- #import "JWTErrorDescription.h"
23
-
24
- @implementation JWT (VersionOne)
25
- #pragma mark - Private Methods
26
- + (NSString *)encodeSegment:(id)theSegment withError:(NSError **)error
27
- {
28
- NSData *encodedSegmentData = nil;
29
-
30
- if (theSegment) {
31
- encodedSegmentData = [NSJSONSerialization dataWithJSONObject:theSegment options:0 error:error];
32
- }
33
- else {
34
- // error!
35
- NSError *generatedError = [JWTErrorDescription errorWithCode:JWTInvalidSegmentSerializationError];
36
- if (error) {
37
- *error = generatedError;
38
- }
39
- NSLog(@"%@ Could not encode segment: %@", self.class, generatedError.localizedDescription);
40
- return nil;
41
- }
42
-
43
- NSString *encodedSegment = nil;
44
-
45
- if (encodedSegmentData) {
46
- encodedSegment = [JWTBase64Coder base64UrlEncodedStringWithData:encodedSegmentData];//[encodedSegmentData base64UrlEncodedString];
47
- }
48
-
49
- return encodedSegment;
50
- }
51
-
52
- + (NSString *)encodeSegment:(id)theSegment;
53
- {
54
- NSError *error;
55
- return [self encodeSegment:theSegment withError:&error];
56
- }
57
-
58
- #pragma mark - Public Methods
59
-
60
- + (NSString *)encodeClaimsSet:(JWTClaimsSet *)theClaimsSet withSecret:(NSString *)theSecret;
61
- {
62
- return [self encodeClaimsSet:theClaimsSet withSecret:theSecret algorithm:[JWTAlgorithmFactory algorithmByName:JWTAlgorithmNameHS512]];
63
- }
64
-
65
- + (NSString *)encodeClaimsSet:(JWTClaimsSet *)theClaimsSet withSecret:(NSString *)theSecret algorithm:(id<JWTAlgorithm>)theAlgorithm;
66
- {
67
- NSDictionary *payload = [JWTClaimsSetSerializer dictionaryWithClaimsSet:theClaimsSet];
68
- return [self encodePayload:payload withSecret:theSecret algorithm:theAlgorithm];
69
- }
70
-
71
- + (NSString *)encodePayload:(NSDictionary *)thePayload withSecret:(NSString *)theSecret;
72
- {
73
- return [self encodePayload:thePayload withSecret:theSecret algorithm:[JWTAlgorithmFactory algorithmByName:JWTAlgorithmNameHS512]];
74
- }
75
-
76
- + (NSString *)encodePayload:(NSDictionary *)thePayload withSecret:(NSString *)theSecret algorithm:(id<JWTAlgorithm>)theAlgorithm;
77
- {
78
- return [self encodePayload:thePayload withSecret:theSecret withHeaders:nil algorithm:theAlgorithm];
79
- }
80
-
81
- + (NSString *)encodePayload:(NSDictionary *)thePayload withSecret:(NSString *)theSecret withHeaders:(NSDictionary *)theHeaders algorithm:(id<JWTAlgorithm>)theAlgorithm;
82
- {
83
-
84
- NSError *error = nil;
85
- NSString *encodedString = [self encodePayload:thePayload withSecret:theSecret withHeaders:theHeaders algorithm:theAlgorithm withError:&error];
86
-
87
- if (error) {
88
- // do something
89
- }
90
-
91
- return encodedString;
92
- }
93
-
94
- + (NSString *)encodePayload:(NSDictionary *)thePayload withSecret:(NSString *)theSecret withHeaders:(NSDictionary *)theHeaders algorithm:(id<JWTAlgorithm>)theAlgorithm withError:(NSError * __autoreleasing *)theError;
95
- {
96
-
97
- NSDictionary *header = @{@"typ": @"JWT", @"alg": theAlgorithm.name};
98
- NSMutableDictionary *allHeaders = [header mutableCopy];
99
-
100
- if (theHeaders.allKeys.count) {
101
- [allHeaders addEntriesFromDictionary:theHeaders];
102
- }
103
-
104
- NSString *headerSegment = [self encodeSegment:[allHeaders copy] withError:theError];
105
-
106
- if (!headerSegment) {
107
- // encode header segment error
108
- if (theError) {
109
- *theError = [JWTErrorDescription errorWithCode:JWTEncodingHeaderError];
110
- }
111
- return nil;
112
- }
113
-
114
- NSString *payloadSegment = [self encodeSegment:thePayload withError:theError];
115
-
116
- if (!payloadSegment) {
117
- // encode payment segment error
118
- if (theError) {
119
- *theError = [JWTErrorDescription errorWithCode:JWTEncodingPayloadError];
120
- }
121
- return nil;
122
- }
123
-
124
- if (!theAlgorithm) {
125
- // error
126
- *theError = [JWTErrorDescription errorWithCode:JWTUnsupportedAlgorithmError];
127
- return nil;
128
- }
129
-
130
- NSString *signingInput = [@[headerSegment, payloadSegment] componentsJoinedByString:@"."];
131
- NSData *signedOutputData = [theAlgorithm encodePayload:signingInput withSecret:theSecret];
132
- NSString *signedOutput = [JWTBase64Coder base64UrlEncodedStringWithData:signedOutputData];
133
-
134
- return [@[headerSegment, payloadSegment, signedOutput] componentsJoinedByString:@"."];
135
- }
136
-
137
- #pragma mark - Decode
138
-
139
- + (NSDictionary *)decodeMessage:(NSString *)theMessage withSecret:(NSString *)theSecret withTrustedClaimsSet:(JWTClaimsSet *)theTrustedClaimsSet withError:(NSError *__autoreleasing *)theError withForcedAlgorithmByName:(NSString *)theAlgorithmName
140
- {
141
- return [self decodeMessage:theMessage withSecret:theSecret withTrustedClaimsSet:theTrustedClaimsSet withError:theError withForcedAlgorithmByName:theAlgorithmName withForcedOption:NO];
142
- }
143
-
144
- + (NSDictionary *)decodeMessage:(NSString *)theMessage withSecret:(NSString *)theSecret withTrustedClaimsSet:(JWTClaimsSet *)theTrustedClaimsSet withError:(NSError *__autoreleasing *)theError withForcedOption:(BOOL)theForcedOption
145
- {
146
- return [self decodeMessage:theMessage withSecret:theSecret withTrustedClaimsSet:theTrustedClaimsSet withError:theError withForcedAlgorithmByName:JWTAlgorithmNameHS512 withForcedOption:theForcedOption];
147
- }
148
-
149
- + (NSDictionary *)decodeMessage:(NSString *)theMessage withSecret:(NSString *)theSecret withTrustedClaimsSet:(JWTClaimsSet *)theTrustedClaimsSet withError:(NSError *__autoreleasing *)theError withForcedAlgorithmByName:(NSString *)theAlgorithmName withForcedOption:(BOOL)theForcedOption
150
- {
151
- return [self decodeMessage:theMessage withSecret:theSecret withTrustedClaimsSet:theTrustedClaimsSet withError:theError withForcedAlgorithmByName:theAlgorithmName withForcedOption:theForcedOption withAlgorithmWhiteList:nil];
152
- }
153
-
154
- + (NSDictionary *)decodeMessage:(NSString *)theMessage withSecret:(NSString *)theSecret withTrustedClaimsSet:(JWTClaimsSet *)theTrustedClaimsSet withError:(NSError *__autoreleasing *)theError withForcedAlgorithmByName:(NSString *)theAlgorithmName withForcedOption:(BOOL)theForcedOption withAlgorithmWhiteList:(NSSet *)theWhitelist
155
- {
156
- NSDictionary *dictionary = [self decodeMessage:theMessage withSecret:theSecret withError:theError withForcedAlgorithmByName:theAlgorithmName skipVerification:theForcedOption whitelist:theWhitelist];
157
-
158
- if (*theError) {
159
- // do something
160
- return dictionary;
161
- }
162
-
163
- if (theTrustedClaimsSet) {
164
- BOOL claimVerified = [JWTClaimsSetVerifier verifyClaimsSet:[JWTClaimsSetSerializer claimsSetWithDictionary:dictionary[@"payload"]] withTrustedClaimsSet:theTrustedClaimsSet];
165
- if (claimVerified) {
166
- return dictionary;
167
- }
168
- else {
169
- *theError = [JWTErrorDescription errorWithCode:JWTClaimsSetVerificationFailed];
170
- return nil;
171
- }
172
- }
173
-
174
- return dictionary;
175
- }
176
-
177
- + (NSDictionary *)decodeMessage:(NSString *)theMessage withSecret:(NSString *)theSecret withError:(NSError *__autoreleasing *)theError withForcedOption:(BOOL)theForcedOption;
178
- {
179
- return [self decodeMessage:theMessage withSecret:theSecret withError:theError withForcedAlgorithmByName:JWTAlgorithmNameHS512 skipVerification:theForcedOption];
180
- }
181
-
182
- + (NSDictionary *)decodeMessage:(NSString *)theMessage withSecret:(NSString *)theSecret withError:(NSError *__autoreleasing *)theError withForcedAlgorithmByName:(NSString *)theAlgorithmName;
183
- {
184
- return [self decodeMessage:theMessage withSecret:theSecret withError:theError withForcedAlgorithmByName:theAlgorithmName skipVerification:NO];
185
- }
186
-
187
- + (NSDictionary *)decodeMessage:(NSString *)theMessage withSecret:(NSString *)theSecret withError:(NSError *__autoreleasing *)theError withForcedAlgorithmByName:(NSString *)theAlgorithmName skipVerification:(BOOL)skipVerification
188
- {
189
- return [self decodeMessage:theMessage withSecret:theSecret withError:theError withForcedAlgorithmByName:theAlgorithmName skipVerification:skipVerification whitelist:nil];
190
- }
191
-
192
- + (NSDictionary *)decodeMessage:(NSString *)theMessage withSecret:(NSString *)theSecret withError:(NSError *__autoreleasing *)theError withForcedAlgorithmByName:(NSString *)theAlgorithmName skipVerification:(BOOL)skipVerification whitelist:(NSSet *)theWhitelist
193
- {
194
- NSArray *parts = [theMessage componentsSeparatedByString:@"."];
195
-
196
- if (parts.count < 3) {
197
- // generate error?
198
- if (theError) {
199
- *theError = [JWTErrorDescription errorWithCode:JWTInvalidFormatError];
200
- }
201
- return nil;
202
- }
203
-
204
- NSString *headerPart = parts[0];
205
- NSString *payloadPart = parts[1];
206
- NSString *signedPart = parts[2];
207
-
208
- // decode headerPart
209
- NSError *jsonError = nil;
210
- NSData *headerData = [JWTBase64Coder dataWithBase64UrlEncodedString:headerPart];
211
- id headerJSON = [NSJSONSerialization JSONObjectWithData:headerData
212
- options:0
213
- error:&jsonError];
214
- if (jsonError) {
215
- *theError = [JWTErrorDescription errorWithCode:JWTDecodingHeaderError];
216
- return nil;
217
- }
218
- NSDictionary *header = (NSDictionary *)headerJSON;
219
- if (!header) {
220
- *theError = [JWTErrorDescription errorWithCode:JWTNoHeaderError];
221
- return nil;
222
- }
223
-
224
- if (!skipVerification) {
225
- // find algorithm
226
-
227
- //It is insecure to trust the header's value for the algorithm, since
228
- //the signature hasn't been verified yet, so an algorithm must be provided
229
- if (!theAlgorithmName) {
230
- *theError = [JWTErrorDescription errorWithCode:JWTUnspecifiedAlgorithmError];
231
- return nil;
232
- }
233
-
234
- NSString *headerAlgorithmName = header[@"alg"];
235
-
236
- //If the algorithm in the header doesn't match what's expected, verification fails
237
- if (![theAlgorithmName isEqualToString:headerAlgorithmName]) {
238
- *theError = [JWTErrorDescription errorWithCode:JWTUnsupportedAlgorithmError];
239
- return nil;
240
- }
241
-
242
- //If a whitelist is passed in, ensure the chosen algorithm is allowed
243
- if (theWhitelist) {
244
- if (![theWhitelist containsObject:theAlgorithmName]) {
245
- *theError = [JWTErrorDescription errorWithCode:JWTUnsupportedAlgorithmError];
246
- return nil;
247
- }
248
- }
249
-
250
- id<JWTAlgorithm> algorithm = [JWTAlgorithmFactory algorithmByName:theAlgorithmName];
251
-
252
- if (!algorithm) {
253
- *theError = [JWTErrorDescription errorWithCode:JWTUnsupportedAlgorithmError];
254
- return nil;
255
- }
256
-
257
- // Verify the signed part
258
- NSString *signingInput = [@[headerPart, payloadPart] componentsJoinedByString:@"."];
259
- BOOL signatureValid = [algorithm verifySignedInput:signingInput withSignature:signedPart verificationKey:theSecret];
260
-
261
- if (!signatureValid) {
262
- *theError = [JWTErrorDescription errorWithCode:JWTInvalidSignatureError];
263
- return nil;
264
- }
265
- }
266
-
267
- // and decode payload
268
- jsonError = nil;
269
- NSData *payloadData = [JWTBase64Coder dataWithBase64UrlEncodedString:payloadPart];
270
- id payloadJSON = [NSJSONSerialization JSONObjectWithData:payloadData
271
- options:0
272
- error:&jsonError];
273
- if (jsonError) {
274
- *theError = [JWTErrorDescription errorWithCode:JWTDecodingPayloadError];
275
- return nil;
276
- }
277
- NSDictionary *payload = (NSDictionary *)payloadJSON;
278
-
279
- if (!payload) {
280
- *theError = [JWTErrorDescription errorWithCode:JWTNoPayloadError];
281
- return nil;
282
- }
283
-
284
- NSDictionary *result = @{
285
- @"header" : header,
286
- @"payload" : payload
287
- };
288
-
289
- return result;
290
- }
291
-
292
- + (NSDictionary *)decodeMessage:(NSString *)theMessage withSecret:(NSString *)theSecret withError:(NSError * __autoreleasing *)theError;
293
- {
294
- return [self decodeMessage:theMessage withSecret:theSecret withError:theError withForcedAlgorithmByName:JWTAlgorithmNameHS512];
295
- }
296
-
297
- + (NSDictionary *)decodeMessage:(NSString *)theMessage withSecret:(NSString *)theSecret;
298
- {
299
- NSError *error = nil;
300
- NSDictionary *dictionary = [self decodeMessage:theMessage withSecret:theSecret withError:&error];
301
- if (error) {
302
- // do something
303
- }
304
- return dictionary;
305
- }
306
-
307
- @end
@@ -1,94 +0,0 @@
1
- //
2
- // JWTCoding+VersionThree.h
3
- // JWT
4
- //
5
- // Created by Lobanov Dmitry on 27.11.16.
6
- // Copyright © 2016 JWTIO. All rights reserved.
7
- //
8
-
9
- #import <JWTCoding.h>
10
-
11
- // encode and decode options
12
- @protocol JWTAlgorithm;
13
- @class JWTClaimsSet;
14
- @class JWTCodingBuilder;
15
- @class JWTEncodingBuilder;
16
- @class JWTDecodingBuilder;
17
- @class JWTAlgorithmDataHolderChain;
18
- @protocol JWTAlgorithmDataHolderProtocol;
19
- @class JWTCodingResultType;
20
-
21
- @interface JWT (VersionThree)
22
- + (JWTEncodingBuilder *)encodeWithHolders:(NSArray *)holders;
23
- + (JWTEncodingBuilder *)encodeWithChain:(JWTAlgorithmDataHolderChain *)chain;
24
- + (JWTDecodingBuilder *)decodeWithHolders:(NSArray *)holders;
25
- + (JWTDecodingBuilder *)decodeWithChain:(JWTAlgorithmDataHolderChain *)chain;
26
- @end
27
-
28
- @interface JWTCodingBuilder : NSObject
29
- #pragma mark - Create
30
- // each element should conform to JWTAlgorithmDataHolderProtocol
31
- + (instancetype)createWithHolders:(NSArray *)holders;
32
- + (instancetype)createWithChain:(JWTAlgorithmDataHolderChain *)chain;
33
- + (instancetype)createWithEmptyChain;
34
-
35
- #pragma mark - Internal
36
- @property (nonatomic, readonly) JWTAlgorithmDataHolderChain *internalChain;
37
- @property (copy, nonatomic, readonly) NSNumber *internalOptions;
38
-
39
- #pragma mark - Fluent
40
- @property (copy, nonatomic, readonly) JWTCodingBuilder *(^chain)(JWTAlgorithmDataHolderChain *chain);
41
- @property (copy, nonatomic, readonly) JWTCodingBuilder *(^constructChain)(JWTAlgorithmDataHolderChain *(^block)());
42
- @property (copy, nonatomic, readonly) JWTCodingBuilder *(^modifyChain)(JWTAlgorithmDataHolderChain *(^block)(JWTAlgorithmDataHolderChain * chain));
43
- @property (copy, nonatomic, readonly) JWTCodingBuilder *(^options)(NSNumber *options);
44
- @property (copy, nonatomic, readonly) JWTCodingBuilder *(^addHolder)(id<JWTAlgorithmDataHolderProtocol> holder);
45
- //@property (copy, nonatomic, readonly) JWTCodingBuilder *(^constructHolder)(id<JWTAlgorithmDataHolderProtocol>(^block)(id<JWTAlgorithmDataHolderProtocol> holder));
46
- @end
47
-
48
- @interface JWTCodingBuilder (Sugar)
49
- - (instancetype)and;
50
- - (instancetype)with;
51
- @end
52
-
53
- @interface JWTCodingBuilder (Coding)
54
- @property (nonatomic, readonly) JWTCodingResultType *result;
55
- @end
56
-
57
- @interface JWTEncodingBuilder : JWTCodingBuilder
58
- #pragma mark - Create
59
- + (instancetype)encodePayload:(NSDictionary *)payload;
60
- + (instancetype)encodeClaimsSet:(JWTClaimsSet *)claimsSet;
61
-
62
- #pragma mark - Internal
63
- @property (copy, nonatomic, readonly) NSDictionary *internalPayload;
64
- @property (copy, nonatomic, readonly) NSDictionary *internalHeaders;
65
- @property (nonatomic, readonly) JWTClaimsSet *internalClaimsSet;
66
-
67
- #pragma mark - Fluent
68
- @property (copy, nonatomic, readonly) JWTEncodingBuilder *(^payload)(NSDictionary *payload);
69
- @property (copy, nonatomic, readonly) JWTEncodingBuilder *(^headers)(NSDictionary *headers);
70
- @property (copy, nonatomic, readonly) JWTEncodingBuilder *(^claimsSet)(JWTClaimsSet *claimsSet);
71
-
72
- @end
73
-
74
- @interface JWTEncodingBuilder (Coding)
75
- @property (nonatomic, readonly) JWTCodingResultType *encode;
76
- @end
77
-
78
- @interface JWTDecodingBuilder : JWTCodingBuilder
79
- #pragma mark - Create
80
- + (instancetype)decodeMessage:(NSString *)message;
81
-
82
- #pragma mark - Internal
83
- @property (copy, nonatomic, readonly) NSString *internalMessage;
84
- @property (nonatomic, readonly) JWTClaimsSet *internalClaimsSet;
85
-
86
- #pragma mark - Fluent
87
- @property (copy, nonatomic, readonly) JWTDecodingBuilder *(^message)(NSString *message);
88
- @property (copy, nonatomic, readonly) JWTDecodingBuilder *(^claimsSet)(JWTClaimsSet *claimsSet);
89
-
90
- @end
91
-
92
- @interface JWTDecodingBuilder (Coding)
93
- @property (nonatomic, readonly) JWTCodingResultType *decode;
94
- @end