@appzung/react-native-code-push 9.0.2 → 10.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 (473) hide show
  1. package/CodePush.podspec +1 -0
  2. package/LICENSE.md +1 -1
  3. package/README.md +169 -329
  4. package/android/app/.gradle/config.properties +2 -0
  5. package/android/app/build.gradle +63 -19
  6. package/android/app/local.properties +8 -0
  7. package/android/app/src/main/AndroidManifest.xml +2 -3
  8. package/android/app/src/main/AndroidManifestNew.xml +3 -0
  9. package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePush.java +35 -97
  10. package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushConstants.java +1 -1
  11. package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushInstallMode.java +2 -2
  12. package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushInvalidPublicKeyException.java +2 -2
  13. package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushInvalidUpdateException.java +1 -1
  14. package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushMalformedDataException.java +2 -2
  15. package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushNativeModule.java +37 -8
  16. package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushNotInitializedException.java +2 -2
  17. package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushTelemetryManager.java +14 -14
  18. package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushUnknownException.java +2 -2
  19. package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushUpdateManager.java +3 -3
  20. package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushUpdateState.java +2 -2
  21. package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushUpdateUtils.java +1 -1
  22. package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/CodePushUtils.java +1 -1
  23. package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/DownloadProgress.java +1 -1
  24. package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/DownloadProgressCallback.java +1 -1
  25. package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/FileUtils.java +1 -1
  26. package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/ReactInstanceHolder.java +1 -1
  27. package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/SettingsManager.java +1 -1
  28. package/android/app/src/main/java/com/{microsoft → appzung}/codepush/react/TLSSocketFactory.java +1 -1
  29. package/android/build.gradle +1 -11
  30. package/android/codepush.gradle +3 -3
  31. package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  32. package/android/gradle.properties +4 -20
  33. package/docs/advanced-usage.md +56 -0
  34. package/docs/api-android.md +16 -77
  35. package/docs/api-ios.md +9 -21
  36. package/docs/api-js.md +184 -219
  37. package/docs/code-signing.md +62 -0
  38. package/docs/migrating-to-v10.md +31 -0
  39. package/docs/setup-android.md +54 -463
  40. package/docs/setup-ios.md +37 -208
  41. package/docs/setup-windows.md +8 -74
  42. package/ios/CodePush/CodePush.h +4 -4
  43. package/ios/CodePush/CodePush.m +21 -65
  44. package/ios/CodePush/CodePushConfig.m +14 -11
  45. package/ios/CodePush/CodePushPackage.m +60 -60
  46. package/ios/CodePush/CodePushTelemetryManager.m +13 -13
  47. package/ios/CodePush.xcodeproj/project.pbxproj +1 -562
  48. package/lib/commonjs/CodePush.js +90 -0
  49. package/lib/commonjs/CodePush.js.map +1 -0
  50. package/lib/commonjs/allowRestart.js +12 -0
  51. package/lib/commonjs/allowRestart.js.map +1 -0
  52. package/lib/commonjs/checkForUpdates.js +105 -0
  53. package/lib/commonjs/checkForUpdates.js.map +1 -0
  54. package/lib/commonjs/clearUpdates.js +15 -0
  55. package/lib/commonjs/clearUpdates.js.map +1 -0
  56. package/lib/commonjs/disallowRestart.js +12 -0
  57. package/lib/commonjs/disallowRestart.js.map +1 -0
  58. package/lib/commonjs/enums/CheckFrequency.enum.js +25 -0
  59. package/lib/commonjs/enums/CheckFrequency.enum.js.map +1 -0
  60. package/lib/commonjs/enums/DeploymentStatus.enum.js +21 -0
  61. package/lib/commonjs/enums/DeploymentStatus.enum.js.map +1 -0
  62. package/lib/commonjs/enums/InstallMode.enum.js +35 -0
  63. package/lib/commonjs/enums/InstallMode.enum.js.map +1 -0
  64. package/lib/commonjs/enums/SyncStatus.enum.js +53 -0
  65. package/lib/commonjs/enums/SyncStatus.enum.js.map +1 -0
  66. package/lib/commonjs/enums/UpdateState.enum.js +29 -0
  67. package/lib/commonjs/enums/UpdateState.enum.js.map +1 -0
  68. package/lib/commonjs/getUpdateMetadata.js +25 -0
  69. package/lib/commonjs/getUpdateMetadata.js.map +1 -0
  70. package/lib/commonjs/index.js +195 -0
  71. package/lib/commonjs/index.js.map +1 -0
  72. package/lib/commonjs/internals/AcquisitionSdk.js +9 -0
  73. package/lib/commonjs/internals/AcquisitionSdk.js.map +1 -0
  74. package/lib/commonjs/internals/LocalPackageImplementation.js +29 -0
  75. package/lib/commonjs/internals/LocalPackageImplementation.js.map +1 -0
  76. package/lib/commonjs/internals/NativeRNAppZungCodePushModule.js +8 -0
  77. package/lib/commonjs/internals/NativeRNAppZungCodePushModule.js.map +1 -0
  78. package/lib/commonjs/internals/RNAppZungCodePushModuleSpec.js +6 -0
  79. package/lib/commonjs/internals/RNAppZungCodePushModuleSpec.js.map +1 -0
  80. package/lib/commonjs/internals/RemotePackageImplementation.js +49 -0
  81. package/lib/commonjs/internals/RemotePackageImplementation.js.map +1 -0
  82. package/lib/commonjs/internals/getConfiguration.js +15 -0
  83. package/lib/commonjs/internals/getConfiguration.js.map +1 -0
  84. package/lib/commonjs/internals/getCurrentPackage.js +12 -0
  85. package/lib/commonjs/internals/getCurrentPackage.js.map +1 -0
  86. package/lib/commonjs/internals/getPromisifiedSdk.js +49 -0
  87. package/lib/commonjs/internals/getPromisifiedSdk.js.map +1 -0
  88. package/lib/commonjs/internals/shouldUpdateBeIgnored.js +62 -0
  89. package/lib/commonjs/internals/shouldUpdateBeIgnored.js.map +1 -0
  90. package/lib/commonjs/internals/types.js +6 -0
  91. package/lib/commonjs/internals/types.js.map +1 -0
  92. package/lib/commonjs/internals/utils/log.js +11 -0
  93. package/lib/commonjs/internals/utils/log.js.map +1 -0
  94. package/lib/commonjs/internals/utils/request-fetch-adapter.js +50 -0
  95. package/lib/commonjs/internals/utils/request-fetch-adapter.js.map +1 -0
  96. package/lib/commonjs/internals/version.js +9 -0
  97. package/lib/commonjs/internals/version.js.map +1 -0
  98. package/lib/commonjs/notifyAppReady.js +83 -0
  99. package/lib/commonjs/notifyAppReady.js.map +1 -0
  100. package/lib/commonjs/reactNative.d.js +2 -0
  101. package/lib/commonjs/reactNative.d.js.map +1 -0
  102. package/lib/commonjs/restartApp.js +16 -0
  103. package/lib/commonjs/restartApp.js.map +1 -0
  104. package/lib/commonjs/sync.js +219 -0
  105. package/lib/commonjs/sync.js.map +1 -0
  106. package/lib/commonjs/types.js +6 -0
  107. package/lib/commonjs/types.js.map +1 -0
  108. package/lib/module/CodePush.js +84 -0
  109. package/lib/module/CodePush.js.map +1 -0
  110. package/lib/module/allowRestart.js +9 -0
  111. package/lib/module/allowRestart.js.map +1 -0
  112. package/lib/module/checkForUpdates.js +101 -0
  113. package/lib/module/checkForUpdates.js.map +1 -0
  114. package/lib/module/clearUpdates.js +12 -0
  115. package/lib/module/clearUpdates.js.map +1 -0
  116. package/lib/module/disallowRestart.js +9 -0
  117. package/lib/module/disallowRestart.js.map +1 -0
  118. package/lib/module/enums/CheckFrequency.enum.js +21 -0
  119. package/lib/module/enums/CheckFrequency.enum.js.map +1 -0
  120. package/lib/module/enums/DeploymentStatus.enum.js +17 -0
  121. package/lib/module/enums/DeploymentStatus.enum.js.map +1 -0
  122. package/lib/module/enums/InstallMode.enum.js +32 -0
  123. package/lib/module/enums/InstallMode.enum.js.map +1 -0
  124. package/lib/module/enums/SyncStatus.enum.js +49 -0
  125. package/lib/module/enums/SyncStatus.enum.js.map +1 -0
  126. package/lib/module/enums/UpdateState.enum.js +26 -0
  127. package/lib/module/enums/UpdateState.enum.js.map +1 -0
  128. package/lib/module/getUpdateMetadata.js +21 -0
  129. package/lib/module/getUpdateMetadata.js.map +1 -0
  130. package/lib/module/index.js +19 -0
  131. package/lib/module/index.js.map +1 -0
  132. package/lib/module/internals/AcquisitionSdk.js +5 -0
  133. package/lib/module/internals/AcquisitionSdk.js.map +1 -0
  134. package/lib/module/internals/LocalPackageImplementation.js +24 -0
  135. package/lib/module/internals/LocalPackageImplementation.js.map +1 -0
  136. package/lib/module/internals/NativeRNAppZungCodePushModule.js +4 -0
  137. package/lib/module/internals/NativeRNAppZungCodePushModule.js.map +1 -0
  138. package/lib/module/internals/RNAppZungCodePushModuleSpec.js +4 -0
  139. package/lib/module/internals/RNAppZungCodePushModuleSpec.js.map +1 -0
  140. package/lib/module/internals/RemotePackageImplementation.js +44 -0
  141. package/lib/module/internals/RemotePackageImplementation.js.map +1 -0
  142. package/lib/module/internals/getConfiguration.js +11 -0
  143. package/lib/module/internals/getConfiguration.js.map +1 -0
  144. package/lib/module/internals/getCurrentPackage.js +8 -0
  145. package/lib/module/internals/getCurrentPackage.js.map +1 -0
  146. package/lib/module/internals/getPromisifiedSdk.js +45 -0
  147. package/lib/module/internals/getPromisifiedSdk.js.map +1 -0
  148. package/lib/module/internals/shouldUpdateBeIgnored.js +58 -0
  149. package/lib/module/internals/shouldUpdateBeIgnored.js.map +1 -0
  150. package/lib/module/internals/types.js +4 -0
  151. package/lib/module/internals/types.js.map +1 -0
  152. package/lib/module/internals/utils/log.js +7 -0
  153. package/lib/module/internals/utils/log.js.map +1 -0
  154. package/lib/module/internals/utils/request-fetch-adapter.js +46 -0
  155. package/lib/module/internals/utils/request-fetch-adapter.js.map +1 -0
  156. package/lib/module/internals/version.js +5 -0
  157. package/lib/module/internals/version.js.map +1 -0
  158. package/lib/module/notifyAppReady.js +79 -0
  159. package/lib/module/notifyAppReady.js.map +1 -0
  160. package/lib/module/reactNative.d.js +2 -0
  161. package/lib/module/reactNative.d.js.map +1 -0
  162. package/lib/module/restartApp.js +13 -0
  163. package/lib/module/restartApp.js.map +1 -0
  164. package/lib/module/sync.js +215 -0
  165. package/lib/module/sync.js.map +1 -0
  166. package/lib/module/types.js +4 -0
  167. package/lib/module/types.js.map +1 -0
  168. package/lib/typescript/commonjs/package.json +1 -0
  169. package/lib/typescript/commonjs/src/CodePush.d.ts +24 -0
  170. package/lib/typescript/commonjs/src/CodePush.d.ts.map +1 -0
  171. package/lib/typescript/commonjs/src/allowRestart.d.ts +5 -0
  172. package/lib/typescript/commonjs/src/allowRestart.d.ts.map +1 -0
  173. package/lib/typescript/commonjs/src/checkForUpdates.d.ts +9 -0
  174. package/lib/typescript/commonjs/src/checkForUpdates.d.ts.map +1 -0
  175. package/lib/typescript/commonjs/src/clearUpdates.d.ts +8 -0
  176. package/lib/typescript/commonjs/src/clearUpdates.d.ts.map +1 -0
  177. package/lib/typescript/commonjs/src/disallowRestart.d.ts +5 -0
  178. package/lib/typescript/commonjs/src/disallowRestart.d.ts.map +1 -0
  179. package/lib/typescript/commonjs/src/enums/CheckFrequency.enum.d.ts +18 -0
  180. package/lib/typescript/commonjs/src/enums/CheckFrequency.enum.d.ts.map +1 -0
  181. package/lib/typescript/commonjs/src/enums/DeploymentStatus.enum.d.ts +14 -0
  182. package/lib/typescript/commonjs/src/enums/DeploymentStatus.enum.d.ts.map +1 -0
  183. package/lib/typescript/commonjs/src/enums/InstallMode.enum.d.ts +27 -0
  184. package/lib/typescript/commonjs/src/enums/InstallMode.enum.d.ts.map +1 -0
  185. package/lib/typescript/commonjs/src/enums/SyncStatus.enum.d.ts +46 -0
  186. package/lib/typescript/commonjs/src/enums/SyncStatus.enum.d.ts.map +1 -0
  187. package/lib/typescript/commonjs/src/enums/UpdateState.enum.d.ts +21 -0
  188. package/lib/typescript/commonjs/src/enums/UpdateState.enum.d.ts.map +1 -0
  189. package/lib/typescript/commonjs/src/getUpdateMetadata.d.ts +9 -0
  190. package/lib/typescript/commonjs/src/getUpdateMetadata.d.ts.map +1 -0
  191. package/lib/typescript/commonjs/src/index.d.ts +17 -0
  192. package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
  193. package/lib/typescript/commonjs/src/internals/AcquisitionSdk.d.ts +3 -0
  194. package/lib/typescript/commonjs/src/internals/AcquisitionSdk.d.ts.map +1 -0
  195. package/lib/typescript/commonjs/src/internals/LocalPackageImplementation.d.ts +17 -0
  196. package/lib/typescript/commonjs/src/internals/LocalPackageImplementation.d.ts.map +1 -0
  197. package/lib/typescript/commonjs/src/internals/NativeRNAppZungCodePushModule.d.ts +3 -0
  198. package/lib/typescript/commonjs/src/internals/NativeRNAppZungCodePushModule.d.ts.map +1 -0
  199. package/lib/typescript/commonjs/src/internals/RNAppZungCodePushModuleSpec.d.ts +36 -0
  200. package/lib/typescript/commonjs/src/internals/RNAppZungCodePushModuleSpec.d.ts.map +1 -0
  201. package/lib/typescript/commonjs/src/internals/RemotePackageImplementation.d.ts +18 -0
  202. package/lib/typescript/commonjs/src/internals/RemotePackageImplementation.d.ts.map +1 -0
  203. package/lib/typescript/commonjs/src/internals/getConfiguration.d.ts +3 -0
  204. package/lib/typescript/commonjs/src/internals/getConfiguration.d.ts.map +1 -0
  205. package/lib/typescript/commonjs/src/internals/getCurrentPackage.d.ts +2 -0
  206. package/lib/typescript/commonjs/src/internals/getCurrentPackage.d.ts.map +1 -0
  207. package/lib/typescript/commonjs/src/internals/getPromisifiedSdk.d.ts +13 -0
  208. package/lib/typescript/commonjs/src/internals/getPromisifiedSdk.d.ts.map +1 -0
  209. package/lib/typescript/commonjs/src/internals/shouldUpdateBeIgnored.d.ts +3 -0
  210. package/lib/typescript/commonjs/src/internals/shouldUpdateBeIgnored.d.ts.map +1 -0
  211. package/lib/typescript/commonjs/src/internals/types.d.ts +16 -0
  212. package/lib/typescript/commonjs/src/internals/types.d.ts.map +1 -0
  213. package/lib/typescript/commonjs/src/internals/utils/log.d.ts +2 -0
  214. package/lib/typescript/commonjs/src/internals/utils/log.d.ts.map +1 -0
  215. package/lib/typescript/commonjs/src/internals/utils/request-fetch-adapter.d.ts +3 -0
  216. package/lib/typescript/commonjs/src/internals/utils/request-fetch-adapter.d.ts.map +1 -0
  217. package/lib/typescript/commonjs/src/internals/version.d.ts +2 -0
  218. package/lib/typescript/commonjs/src/internals/version.d.ts.map +1 -0
  219. package/lib/typescript/commonjs/src/notifyAppReady.d.ts +6 -0
  220. package/lib/typescript/commonjs/src/notifyAppReady.d.ts.map +1 -0
  221. package/lib/typescript/commonjs/src/restartApp.d.ts +7 -0
  222. package/lib/typescript/commonjs/src/restartApp.d.ts.map +1 -0
  223. package/lib/typescript/commonjs/src/sync.d.ts +17 -0
  224. package/lib/typescript/commonjs/src/sync.d.ts.map +1 -0
  225. package/lib/typescript/commonjs/src/types.d.ts +196 -0
  226. package/lib/typescript/commonjs/src/types.d.ts.map +1 -0
  227. package/lib/typescript/module/package.json +1 -0
  228. package/lib/typescript/module/src/CodePush.d.ts +24 -0
  229. package/lib/typescript/module/src/CodePush.d.ts.map +1 -0
  230. package/lib/typescript/module/src/allowRestart.d.ts +5 -0
  231. package/lib/typescript/module/src/allowRestart.d.ts.map +1 -0
  232. package/lib/typescript/module/src/checkForUpdates.d.ts +9 -0
  233. package/lib/typescript/module/src/checkForUpdates.d.ts.map +1 -0
  234. package/lib/typescript/module/src/clearUpdates.d.ts +8 -0
  235. package/lib/typescript/module/src/clearUpdates.d.ts.map +1 -0
  236. package/lib/typescript/module/src/disallowRestart.d.ts +5 -0
  237. package/lib/typescript/module/src/disallowRestart.d.ts.map +1 -0
  238. package/lib/typescript/module/src/enums/CheckFrequency.enum.d.ts +18 -0
  239. package/lib/typescript/module/src/enums/CheckFrequency.enum.d.ts.map +1 -0
  240. package/lib/typescript/module/src/enums/DeploymentStatus.enum.d.ts +14 -0
  241. package/lib/typescript/module/src/enums/DeploymentStatus.enum.d.ts.map +1 -0
  242. package/lib/typescript/module/src/enums/InstallMode.enum.d.ts +27 -0
  243. package/lib/typescript/module/src/enums/InstallMode.enum.d.ts.map +1 -0
  244. package/lib/typescript/module/src/enums/SyncStatus.enum.d.ts +46 -0
  245. package/lib/typescript/module/src/enums/SyncStatus.enum.d.ts.map +1 -0
  246. package/lib/typescript/module/src/enums/UpdateState.enum.d.ts +21 -0
  247. package/lib/typescript/module/src/enums/UpdateState.enum.d.ts.map +1 -0
  248. package/lib/typescript/module/src/getUpdateMetadata.d.ts +9 -0
  249. package/lib/typescript/module/src/getUpdateMetadata.d.ts.map +1 -0
  250. package/lib/typescript/module/src/index.d.ts +17 -0
  251. package/lib/typescript/module/src/index.d.ts.map +1 -0
  252. package/lib/typescript/module/src/internals/AcquisitionSdk.d.ts +3 -0
  253. package/lib/typescript/module/src/internals/AcquisitionSdk.d.ts.map +1 -0
  254. package/lib/typescript/module/src/internals/LocalPackageImplementation.d.ts +17 -0
  255. package/lib/typescript/module/src/internals/LocalPackageImplementation.d.ts.map +1 -0
  256. package/lib/typescript/module/src/internals/NativeRNAppZungCodePushModule.d.ts +3 -0
  257. package/lib/typescript/module/src/internals/NativeRNAppZungCodePushModule.d.ts.map +1 -0
  258. package/lib/typescript/module/src/internals/RNAppZungCodePushModuleSpec.d.ts +36 -0
  259. package/lib/typescript/module/src/internals/RNAppZungCodePushModuleSpec.d.ts.map +1 -0
  260. package/lib/typescript/module/src/internals/RemotePackageImplementation.d.ts +18 -0
  261. package/lib/typescript/module/src/internals/RemotePackageImplementation.d.ts.map +1 -0
  262. package/lib/typescript/module/src/internals/getConfiguration.d.ts +3 -0
  263. package/lib/typescript/module/src/internals/getConfiguration.d.ts.map +1 -0
  264. package/lib/typescript/module/src/internals/getCurrentPackage.d.ts +2 -0
  265. package/lib/typescript/module/src/internals/getCurrentPackage.d.ts.map +1 -0
  266. package/lib/typescript/module/src/internals/getPromisifiedSdk.d.ts +13 -0
  267. package/lib/typescript/module/src/internals/getPromisifiedSdk.d.ts.map +1 -0
  268. package/lib/typescript/module/src/internals/shouldUpdateBeIgnored.d.ts +3 -0
  269. package/lib/typescript/module/src/internals/shouldUpdateBeIgnored.d.ts.map +1 -0
  270. package/lib/typescript/module/src/internals/types.d.ts +16 -0
  271. package/lib/typescript/module/src/internals/types.d.ts.map +1 -0
  272. package/lib/typescript/module/src/internals/utils/log.d.ts +2 -0
  273. package/lib/typescript/module/src/internals/utils/log.d.ts.map +1 -0
  274. package/lib/typescript/module/src/internals/utils/request-fetch-adapter.d.ts +3 -0
  275. package/lib/typescript/module/src/internals/utils/request-fetch-adapter.d.ts.map +1 -0
  276. package/lib/typescript/module/src/internals/version.d.ts +2 -0
  277. package/lib/typescript/module/src/internals/version.d.ts.map +1 -0
  278. package/lib/typescript/module/src/notifyAppReady.d.ts +6 -0
  279. package/lib/typescript/module/src/notifyAppReady.d.ts.map +1 -0
  280. package/lib/typescript/module/src/restartApp.d.ts +7 -0
  281. package/lib/typescript/module/src/restartApp.d.ts.map +1 -0
  282. package/lib/typescript/module/src/sync.d.ts +17 -0
  283. package/lib/typescript/module/src/sync.d.ts.map +1 -0
  284. package/lib/typescript/module/src/types.d.ts +196 -0
  285. package/lib/typescript/module/src/types.d.ts.map +1 -0
  286. package/package.json +79 -29
  287. package/react-native.config.js +8 -8
  288. package/scripts/generateBundledResourcesHash.js +1 -1
  289. package/scripts/getFilesInFolder.js +1 -1
  290. package/scripts/recordFilesBeforeBundleCommand.js +1 -1
  291. package/src/CodePush.tsx +108 -0
  292. package/src/allowRestart.ts +6 -0
  293. package/src/checkForUpdates.ts +109 -0
  294. package/src/clearUpdates.ts +9 -0
  295. package/src/disallowRestart.ts +6 -0
  296. package/src/enums/CheckFrequency.enum.ts +19 -0
  297. package/src/enums/DeploymentStatus.enum.ts +14 -0
  298. package/src/enums/InstallMode.enum.ts +31 -0
  299. package/src/enums/SyncStatus.enum.ts +53 -0
  300. package/src/enums/UpdateState.enum.ts +24 -0
  301. package/src/getUpdateMetadata.ts +23 -0
  302. package/src/index.ts +18 -0
  303. package/src/internals/AcquisitionSdk.ts +3 -0
  304. package/src/internals/LocalPackageImplementation.ts +45 -0
  305. package/src/internals/NativeRNAppZungCodePushModule.ts +3 -0
  306. package/src/internals/RNAppZungCodePushModuleSpec.ts +54 -0
  307. package/src/internals/RemotePackageImplementation.ts +69 -0
  308. package/src/internals/getConfiguration.ts +12 -0
  309. package/src/internals/getCurrentPackage.ts +6 -0
  310. package/src/internals/getPromisifiedSdk.ts +72 -0
  311. package/src/internals/shouldUpdateBeIgnored.ts +76 -0
  312. package/src/internals/types.ts +18 -0
  313. package/{logging.js → src/internals/utils/log.ts} +1 -3
  314. package/src/internals/utils/request-fetch-adapter.ts +58 -0
  315. package/src/internals/version.ts +2 -0
  316. package/src/notifyAppReady.ts +94 -0
  317. package/src/reactNative.d.ts +34 -0
  318. package/src/restartApp.ts +10 -0
  319. package/src/sync.ts +272 -0
  320. package/src/types.ts +237 -0
  321. package/tsconfig.build.json +4 -0
  322. package/tsconfig.json +29 -12
  323. package/windows/CodePush/CodePushConfig.cpp +3 -3
  324. package/windows/CodePush/CodePushConfig.h +3 -3
  325. package/windows/CodePush/CodePushNativeModule.cpp +27 -27
  326. package/windows/CodePush/CodePushNativeModule.h +4 -4
  327. package/windows/CodePush/CodePushTelemetryManager.cpp +12 -12
  328. package/windows/CodePush/CodePushTelemetryManager.h +1 -1
  329. package/.azurepipelines/build-rn-code-push-1es.yml +0 -104
  330. package/.azurepipelines/test-rn-code-push.yml +0 -94
  331. package/.config/CredScanSuppressions.json +0 -14
  332. package/AlertAdapter.js +0 -24
  333. package/CONTRIBUTING.md +0 -134
  334. package/CodePush.js +0 -671
  335. package/SECURITY.md +0 -41
  336. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushBuilder.java +0 -37
  337. package/android/app/src/main/java/com/microsoft/codepush/react/CodePushDialog.java +0 -102
  338. package/docs/multi-deployment-testing-android.md +0 -148
  339. package/docs/multi-deployment-testing-ios.md +0 -59
  340. package/ios/CodePush/Base64/Base64/MF_Base64Additions.h +0 -34
  341. package/ios/CodePush/Base64/Base64/MF_Base64Additions.m +0 -252
  342. package/ios/CodePush/Base64/README.md +0 -47
  343. package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithm.h +0 -69
  344. package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmFactory.h +0 -16
  345. package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmFactory.m +0 -51
  346. package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmNone.h +0 -15
  347. package/ios/CodePush/JWT/Core/Algorithms/Base/JWTAlgorithmNone.m +0 -55
  348. package/ios/CodePush/JWT/Core/Algorithms/ESFamily/JWTAlgorithmESBase.h +0 -24
  349. package/ios/CodePush/JWT/Core/Algorithms/ESFamily/JWTAlgorithmESBase.m +0 -41
  350. package/ios/CodePush/JWT/Core/Algorithms/HSFamily/JWTAlgorithmHSBase.h +0 -28
  351. package/ios/CodePush/JWT/Core/Algorithms/HSFamily/JWTAlgorithmHSBase.m +0 -205
  352. package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolder.h +0 -103
  353. package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolder.m +0 -322
  354. package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolderChain.h +0 -37
  355. package/ios/CodePush/JWT/Core/Algorithms/Holders/JWTAlgorithmDataHolderChain.m +0 -145
  356. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/JWTAlgorithmRSBase.h +0 -35
  357. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/JWTAlgorithmRSBase.m +0 -551
  358. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/JWTRSAlgorithm.h +0 -23
  359. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKey.h +0 -43
  360. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKey.m +0 -230
  361. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKeyExtractor.h +0 -31
  362. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoKeyExtractor.m +0 -113
  363. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoSecurity.h +0 -38
  364. package/ios/CodePush/JWT/Core/Algorithms/RSFamily/RSKeys/JWTCryptoSecurity.m +0 -500
  365. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaim.h +0 -18
  366. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaim.m +0 -214
  367. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSet.h +0 -23
  368. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSet.m +0 -29
  369. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetSerializer.h +0 -19
  370. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetSerializer.m +0 -68
  371. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetVerifier.h +0 -18
  372. package/ios/CodePush/JWT/Core/ClaimSet/JWTClaimsSetVerifier.m +0 -72
  373. package/ios/CodePush/JWT/Core/Coding/JWTCoding+ResultTypes.h +0 -67
  374. package/ios/CodePush/JWT/Core/Coding/JWTCoding+ResultTypes.m +0 -111
  375. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionOne.h +0 -119
  376. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionOne.m +0 -307
  377. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionThree.h +0 -94
  378. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionThree.m +0 -619
  379. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionTwo.h +0 -164
  380. package/ios/CodePush/JWT/Core/Coding/JWTCoding+VersionTwo.m +0 -514
  381. package/ios/CodePush/JWT/Core/Coding/JWTCoding.h +0 -24
  382. package/ios/CodePush/JWT/Core/Coding/JWTCoding.m +0 -11
  383. package/ios/CodePush/JWT/Core/FrameworkSupplement/JWT.h +0 -52
  384. package/ios/CodePush/JWT/Core/FrameworkSupplement/Map.modulemap +0 -5
  385. package/ios/CodePush/JWT/Core/Supplement/JWTBase64Coder.h +0 -28
  386. package/ios/CodePush/JWT/Core/Supplement/JWTBase64Coder.m +0 -70
  387. package/ios/CodePush/JWT/Core/Supplement/JWTDeprecations.h +0 -22
  388. package/ios/CodePush/JWT/Core/Supplement/JWTErrorDescription.h +0 -34
  389. package/ios/CodePush/JWT/Core/Supplement/JWTErrorDescription.m +0 -73
  390. package/ios/CodePush/JWT/LICENSE +0 -19
  391. package/ios/CodePush/JWT/README.md +0 -489
  392. package/ios/CodePush/SSZipArchive/Info.plist +0 -26
  393. package/ios/CodePush/SSZipArchive/README.md +0 -1
  394. package/ios/CodePush/SSZipArchive/SSZipArchive.h +0 -178
  395. package/ios/CodePush/SSZipArchive/SSZipArchive.m +0 -1496
  396. package/ios/CodePush/SSZipArchive/SSZipCommon.h +0 -71
  397. package/ios/CodePush/SSZipArchive/Supporting Files/PrivacyInfo.xcprivacy +0 -23
  398. package/ios/CodePush/SSZipArchive/include/ZipArchive.h +0 -25
  399. package/ios/CodePush/SSZipArchive/minizip/LICENSE +0 -17
  400. package/ios/CodePush/SSZipArchive/minizip/mz.h +0 -273
  401. package/ios/CodePush/SSZipArchive/minizip/mz_compat.c +0 -1306
  402. package/ios/CodePush/SSZipArchive/minizip/mz_compat.h +0 -346
  403. package/ios/CodePush/SSZipArchive/minizip/mz_crypt.c +0 -187
  404. package/ios/CodePush/SSZipArchive/minizip/mz_crypt.h +0 -65
  405. package/ios/CodePush/SSZipArchive/minizip/mz_crypt_apple.c +0 -526
  406. package/ios/CodePush/SSZipArchive/minizip/mz_os.c +0 -348
  407. package/ios/CodePush/SSZipArchive/minizip/mz_os.h +0 -176
  408. package/ios/CodePush/SSZipArchive/minizip/mz_os_posix.c +0 -350
  409. package/ios/CodePush/SSZipArchive/minizip/mz_strm.c +0 -556
  410. package/ios/CodePush/SSZipArchive/minizip/mz_strm.h +0 -132
  411. package/ios/CodePush/SSZipArchive/minizip/mz_strm_buf.c +0 -383
  412. package/ios/CodePush/SSZipArchive/minizip/mz_strm_buf.h +0 -42
  413. package/ios/CodePush/SSZipArchive/minizip/mz_strm_mem.c +0 -269
  414. package/ios/CodePush/SSZipArchive/minizip/mz_strm_mem.h +0 -48
  415. package/ios/CodePush/SSZipArchive/minizip/mz_strm_os.h +0 -40
  416. package/ios/CodePush/SSZipArchive/minizip/mz_strm_os_posix.c +0 -203
  417. package/ios/CodePush/SSZipArchive/minizip/mz_strm_pkcrypt.c +0 -334
  418. package/ios/CodePush/SSZipArchive/minizip/mz_strm_pkcrypt.h +0 -46
  419. package/ios/CodePush/SSZipArchive/minizip/mz_strm_split.c +0 -429
  420. package/ios/CodePush/SSZipArchive/minizip/mz_strm_split.h +0 -43
  421. package/ios/CodePush/SSZipArchive/minizip/mz_strm_wzaes.c +0 -360
  422. package/ios/CodePush/SSZipArchive/minizip/mz_strm_wzaes.h +0 -46
  423. package/ios/CodePush/SSZipArchive/minizip/mz_strm_zlib.c +0 -389
  424. package/ios/CodePush/SSZipArchive/minizip/mz_strm_zlib.h +0 -43
  425. package/ios/CodePush/SSZipArchive/minizip/mz_zip.c +0 -2782
  426. package/ios/CodePush/SSZipArchive/minizip/mz_zip.h +0 -262
  427. package/ios/CodePush/SSZipArchive/minizip/mz_zip_rw.c +0 -1942
  428. package/ios/CodePush/SSZipArchive/minizip/mz_zip_rw.h +0 -285
  429. package/package-mixins.js +0 -68
  430. package/request-fetch-adapter.js +0 -52
  431. package/scripts/postlink/android/postlink.js +0 -87
  432. package/scripts/postlink/ios/postlink.js +0 -116
  433. package/scripts/postlink/run.js +0 -11
  434. package/scripts/postunlink/android/postunlink.js +0 -74
  435. package/scripts/postunlink/ios/postunlink.js +0 -87
  436. package/scripts/postunlink/run.js +0 -11
  437. package/scripts/tools/linkToolsAndroid.js +0 -57
  438. package/scripts/tools/linkToolsIos.js +0 -130
  439. package/tslint.json +0 -32
  440. package/typings/react-native-code-push.d.ts +0 -455
  441. package/windows-legacy/CodePush/CodePush.csproj +0 -128
  442. package/windows-legacy/CodePush/CodePushUtils.cs +0 -47
  443. package/windows-legacy/CodePush/FileUtils.cs +0 -40
  444. package/windows-legacy/CodePush/Properties/AssemblyInfo.cs +0 -29
  445. package/windows-legacy/CodePush/Properties/CodePush.rd.xml +0 -33
  446. package/windows-legacy/CodePush/UpdateManager.cs +0 -305
  447. package/windows-legacy/CodePush/UpdateUtils.cs +0 -46
  448. package/windows-legacy/CodePush.Net46/Adapters/Http/HttpProgress.cs +0 -28
  449. package/windows-legacy/CodePush.Net46/Adapters/Storage/ApplicationDataContainer.cs +0 -106
  450. package/windows-legacy/CodePush.Net46/CodePush.Net46.csproj +0 -103
  451. package/windows-legacy/CodePush.Net46/CodePushUtils.cs +0 -158
  452. package/windows-legacy/CodePush.Net46/FileUtils.cs +0 -55
  453. package/windows-legacy/CodePush.Net46/Properties/AssemblyInfo.cs +0 -36
  454. package/windows-legacy/CodePush.Net46/UpdateManager.cs +0 -330
  455. package/windows-legacy/CodePush.Net46/UpdateUtils.cs +0 -70
  456. package/windows-legacy/CodePush.Net46/packages.config +0 -5
  457. package/windows-legacy/CodePush.Net46.Test/ApplicationDataContainerTest.cs +0 -105
  458. package/windows-legacy/CodePush.Net46.Test/CodePush.Net46.Test.csproj +0 -137
  459. package/windows-legacy/CodePush.Net46.Test/Properties/AssemblyInfo.cs +0 -36
  460. package/windows-legacy/CodePush.Net46.Test/TelemetryManagerTest.cs +0 -117
  461. package/windows-legacy/CodePush.Net46.Test/app.config +0 -11
  462. package/windows-legacy/CodePush.Net46.Test/packages.config +0 -4
  463. package/windows-legacy/CodePush.Shared/CodePush.Shared.projitems +0 -22
  464. package/windows-legacy/CodePush.Shared/CodePush.Shared.shproj +0 -13
  465. package/windows-legacy/CodePush.Shared/CodePushConstants.cs +0 -35
  466. package/windows-legacy/CodePush.Shared/CodePushNativeModule.cs +0 -329
  467. package/windows-legacy/CodePush.Shared/CodePushReactPackage.cs +0 -235
  468. package/windows-legacy/CodePush.Shared/CodePushUtils.cs +0 -70
  469. package/windows-legacy/CodePush.Shared/InstallMode.cs +0 -9
  470. package/windows-legacy/CodePush.Shared/MinimumBackgroundListener.cs +0 -44
  471. package/windows-legacy/CodePush.Shared/SettingsManager.cs +0 -148
  472. package/windows-legacy/CodePush.Shared/TelemetryManager.cs +0 -250
  473. package/windows-legacy/CodePush.Shared/UpdateState.cs +0 -9
@@ -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,26 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>CFBundleDevelopmentRegion</key>
6
- <string>en</string>
7
- <key>CFBundleExecutable</key>
8
- <string>$(EXECUTABLE_NAME)</string>
9
- <key>CFBundleIdentifier</key>
10
- <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
11
- <key>CFBundleInfoDictionaryVersion</key>
12
- <string>6.0</string>
13
- <key>CFBundleName</key>
14
- <string>$(PRODUCT_NAME)</string>
15
- <key>CFBundlePackageType</key>
16
- <string>FMWK</string>
17
- <key>CFBundleShortVersionString</key>
18
- <string>1.0</string>
19
- <key>CFBundleSignature</key>
20
- <string>????</string>
21
- <key>CFBundleVersion</key>
22
- <string>$(CURRENT_PROJECT_VERSION)</string>
23
- <key>NSPrincipalClass</key>
24
- <string></string>
25
- </dict>
26
- </plist>
@@ -1 +0,0 @@
1
- The source code in this folder is taken from [https://github.com/ZipArchive/ZipArchive/tree/2.5.5/SSZipArchive](https://github.com/ZipArchive/ZipArchive/tree/2.5.5/SSZipArchive) which is [MIT licensed](https://github.com/ZipArchive/ZipArchive/blob/2.5.5/LICENSE.txt).