react-native-instantpay-code-push 1.1.7 → 1.1.8

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.
@@ -16,6 +16,7 @@ import kotlinx.coroutines.launch
16
16
 
17
17
  import android.os.Handler
18
18
  import android.os.Looper
19
+ import org.json.JSONObject
19
20
 
20
21
 
21
22
  @ReactModule(name = InstantpayCodePushModule.NAME)
@@ -86,11 +87,28 @@ class InstantpayCodePushModule(reactContext: ReactApplicationContext) : NativeIn
86
87
 
87
88
  val fileHash = params.getString("fileHash")
88
89
 
90
+ //Verify Bundle Url Signature
91
+ val decryptSignatureData = SignatureVerifier.decryptSignatureUrl(fileUrl)
92
+
93
+ if (decryptSignatureData.isEmpty()){
94
+ promise.reject("INVALID_URL_SIGNATURE", "Invalid 'fileUrl' Signature: $fileUrl")
95
+ return@launch
96
+ }
97
+
98
+ val planSignatureData = JSONObject(decryptSignatureData)
99
+
100
+ if(planSignatureData.getString("fileHash") != fileHash){
101
+ promise.reject("INVALID_URL_SIGNATURE", "Invalid 'fileUrl' Hash: $fileUrl")
102
+ return@launch
103
+ }
104
+
105
+ val fileUrlPlan = planSignatureData.getString("bundleUrl")
106
+
89
107
  val impl = getInstance()
90
108
 
91
109
  impl.updateBundle(
92
110
  bundleId,
93
- fileUrl,
111
+ fileUrlPlan,
94
112
  fileHash,
95
113
  ) { progress ->
96
114
  // Post to Main thread for React Native event emission
@@ -127,6 +145,7 @@ class InstantpayCodePushModule(reactContext: ReactApplicationContext) : NativeIn
127
145
  constants["APP_VERSION"] = IpayCodePush.getAppVersion(mReactApplicationContext)
128
146
  constants["CHANNEL"] = IpayCodePush.getChannel(mReactApplicationContext)
129
147
  constants["FINGERPRINT_HASH"] = IpayCodePush.getFingerprintHash(mReactApplicationContext)
148
+ constants["KEYSTORE_PUBLIC_KEY"] = IpayCodePush.getKeyStorePublicKey()
130
149
  return constants
131
150
  }
132
151
 
@@ -178,5 +197,4 @@ class InstantpayCodePushModule(reactContext: ReactApplicationContext) : NativeIn
178
197
  val impl = getInstance()
179
198
  return impl.getBaseURL()
180
199
  }
181
-
182
200
  }
@@ -97,5 +97,10 @@ class IpayCodePush {
97
97
  } else {
98
98
  null
99
99
  }
100
+
101
+ /**
102
+ * Get Public Key From KeyStore
103
+ */
104
+ fun getKeyStorePublicKey(): String = SignatureVerifier.getPublicKeyBase64()
100
105
  }
101
106
  }
@@ -1,12 +1,20 @@
1
1
  package com.instantpaycodepush
2
2
 
3
3
  import android.content.Context
4
+ import android.net.Uri
5
+ import android.security.keystore.KeyGenParameterSpec
6
+ import android.security.keystore.KeyProperties
4
7
  import android.util.Base64
5
8
  import java.io.File
6
9
  import java.security.KeyFactory
10
+ import java.security.KeyPairGenerator
11
+ import java.security.KeyStore
7
12
  import java.security.PublicKey
8
13
  import java.security.Signature
9
14
  import java.security.spec.X509EncodedKeySpec
15
+ import javax.crypto.Cipher
16
+ import javax.crypto.spec.IvParameterSpec
17
+ import javax.crypto.spec.SecretKeySpec
10
18
 
11
19
  /**
12
20
  * Prefix for signed file hash format.
@@ -71,6 +79,13 @@ sealed class SignatureVerificationException(
71
79
  ) : SignatureVerificationException(
72
80
  "Security framework error during verification: ${cause.message}",
73
81
  )
82
+
83
+ class KeyStoreFailed(
84
+ cause: Throwable,
85
+ ) :
86
+ SignatureVerificationException(
87
+ "Failed to generate KeyStore: ${cause.message}",
88
+ )
74
89
  }
75
90
 
76
91
 
@@ -350,4 +365,128 @@ object SignatureVerifier {
350
365
  throw SignatureVerificationException.InvalidSignatureFormat()
351
366
  }
352
367
  }
368
+
369
+ private const val KEY_ALIAS = "com.ipaycodepush.security.rsa"
370
+
371
+ /**
372
+ * Generate a new EC key pair entry in the Android Keystore by
373
+ * using the KeyPairGenerator API. The private key can only be
374
+ * used for signing or verification and only with SHA-256 or
375
+ * SHA-512 as the message digest.
376
+ */
377
+ private fun generateKeyStore(){
378
+
379
+ val existingKeyStore = KeyStore.getInstance("AndroidKeyStore")
380
+ existingKeyStore.load(null)
381
+
382
+ if (existingKeyStore.containsAlias(KEY_ALIAS)) return
383
+
384
+ val kpg = KeyPairGenerator.getInstance(KeyProperties.KEY_ALGORITHM_RSA, "AndroidKeyStore")
385
+
386
+ val spec = KeyGenParameterSpec.Builder(
387
+ KEY_ALIAS,
388
+ KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT
389
+ )
390
+ .setKeySize(2048)
391
+ .setEncryptionPaddings(
392
+ KeyProperties.ENCRYPTION_PADDING_RSA_PKCS1
393
+ )
394
+ .setDigests(
395
+ KeyProperties.DIGEST_SHA256,
396
+ KeyProperties.DIGEST_SHA512
397
+ )
398
+ .build()
399
+
400
+ kpg.initialize(spec)
401
+ kpg.generateKeyPair()
402
+ }
403
+
404
+ /**
405
+ * Get Public Key from KeyStore
406
+ */
407
+ fun getPublicKeyBase64(): String{
408
+
409
+ try {
410
+ val keyStore = KeyStore.getInstance("AndroidKeyStore")
411
+ keyStore.load(null)
412
+
413
+ // Generate key if not exists
414
+ if (!keyStore.containsAlias(KEY_ALIAS)) {
415
+ generateKeyStore()
416
+ }
417
+
418
+ // Get public key
419
+ val entry = keyStore.getEntry(
420
+ KEY_ALIAS,
421
+ null
422
+ ) as KeyStore.PrivateKeyEntry
423
+
424
+ return Base64.encodeToString(
425
+ entry.certificate.publicKey.encoded,
426
+ Base64.NO_WRAP
427
+ )
428
+ }
429
+ catch (e: Exception) {
430
+ CommonHelper.logPrint(CommonHelper.ERROR_LOG, CLASS_TAG, "Failed to generate keystore Error Message: ${e.message} and Raw Error : $e")
431
+ throw SignatureVerificationException.KeyStoreFailed(e)
432
+ }
433
+ }
434
+
435
+ /**
436
+ * Decrypt signature from bundle Url.
437
+ * @param bundleUrl The signed url
438
+ * @return plan Url to downlaod Bundle
439
+ */
440
+ fun decryptSignatureUrl(bundleUrl: String?): String {
441
+
442
+ try {
443
+
444
+ val parseUri = Uri.parse(bundleUrl)
445
+
446
+ val signatureData = parseUri.getQueryParameter("signatureData")
447
+
448
+ val encryptedKey = parseUri.getQueryParameter("itemData")
449
+
450
+ val rawIv = parseUri.getQueryParameter("raw")
451
+
452
+ //Decrypt AES Key (RSA)
453
+ val ks = KeyStore.getInstance("AndroidKeyStore")
454
+ ks.load(null)
455
+
456
+ val privateKey = (ks.getEntry(
457
+ KEY_ALIAS,
458
+ null
459
+ ) as KeyStore.PrivateKeyEntry).privateKey
460
+
461
+ val rsaCipher = Cipher.getInstance("RSA/ECB/PKCS1Padding")
462
+ rsaCipher.init(Cipher.DECRYPT_MODE, privateKey)
463
+
464
+ val aesKeyBytes = rsaCipher.doFinal(
465
+ Base64.decode(encryptedKey, Base64.DEFAULT)
466
+ )
467
+
468
+ //Decrypt Payload (AES)
469
+ val secretKey = SecretKeySpec(aesKeyBytes, "AES")
470
+
471
+ val aesCipher = Cipher.getInstance("AES/CBC/PKCS7Padding")
472
+ aesCipher.init(
473
+ Cipher.DECRYPT_MODE,
474
+ secretKey,
475
+ IvParameterSpec(Base64.decode(rawIv, Base64.DEFAULT))
476
+ )
477
+
478
+ val finalData = aesCipher.doFinal(
479
+ Base64.decode(signatureData, Base64.DEFAULT)
480
+ )
481
+
482
+ val planData = String(finalData, Charsets.UTF_8)
483
+
484
+ return planData
485
+ }
486
+ catch (e: Exception){
487
+ CommonHelper.logPrint(CommonHelper.ERROR_LOG, CLASS_TAG, "Failed to decrypt bundleUrl Signature Url; Error Message: ${e.message} and Raw Error : $e")
488
+ return ""
489
+ }
490
+ }
491
+
353
492
  }
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeInstantpayCodePush.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;AA8GpE,eAAeA,mBAAmB,CAACC,YAAY,CAAO,oBAAoB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeInstantpayCodePush.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;AA+GpE,eAAeA,mBAAmB,CAACC,YAAY,CAAO,oBAAoB,CAAC","ignoreList":[]}
@@ -32,6 +32,12 @@ export let IpayCodePushErrorCode = /*#__PURE__*/function (IpayCodePushErrorCode)
32
32
  * @retryable false
33
33
  */
34
34
  IpayCodePushErrorCode["INVALID_FILE_URL"] = "INVALID_FILE_URL";
35
+ /**
36
+ * File URL Signature is invalid or malformed.
37
+ * Thrown when fileUrl parameter cannot be verified as a valid URL.
38
+ * @retryable false
39
+ */
40
+ IpayCodePushErrorCode["INVALID_URL_SIGNATURE"] = "INVALID_URL_SIGNATURE";
35
41
  // ==================== Bundle Storage Errors ====================
36
42
  /**
37
43
  * Failed to create required directory for bundle storage.
@@ -1 +1 @@
1
- {"version":3,"names":["IpayCodePushErrorCode","isIpayCodePushError","error","code","Object","values","includes","IpayCodePushError","Error","constructor","message","name"],"sourceRoot":"../../src","sources":["error.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAYA,qBAAqB,0BAArBA,qBAAqB;EAC7B;EAEA;AACJ;AACA;AACA;AACA;EAPYA,qBAAqB;EAU7B;AACJ;AACA;AACA;AACA;EAdYA,qBAAqB;EAiB7B;EAEA;AACJ;AACA;AACA;AACA;EAvBYA,qBAAqB;EA0B7B;AACJ;AACA;AACA;AACA;AACA;EA/BYA,qBAAqB;EAkC7B;AACJ;AACA;AACA;AACA;AACA;EAvCYA,qBAAqB;EA0C7B;AACJ;AACA;AACA;AACA;AACA;EA/CYA,qBAAqB;EAkD7B;AACJ;AACA;AACA;AACA;AACA;EAvDYA,qBAAqB;EA0D7B;AACJ;AACA;AACA;AACA;AACA;EA/DYA,qBAAqB;EAkE7B;AACJ;AACA;AACA;AACA;AACA;EAvEYA,qBAAqB;EA0E7B;AACJ;AACA;AACA;AACA;AACA;AACA;EAhFYA,qBAAqB;EAmF7B;AACJ;AACA;AACA;AACA;AACA;EAxFYA,qBAAqB;EA2F7B;EACA;EAEA;EAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EAvGYA,qBAAqB;EA0G7B;AACJ;AACA;AACA;AACA;AACA;EA/GYA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA;;AAmHjC;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAC/BC,KAAc,EAC2C;EACzD,OACI,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,KAAK,IAAI,IACd,MAAM,IAAIA,KAAK,IACf,OAAOA,KAAK,CAACC,IAAI,KAAK,QAAQ,IAC9BC,MAAM,CAACC,MAAM,CAACL,qBAAqB,CAAC,CAACM,QAAQ,CACzCJ,KAAK,CAACC,IACV,CAAC;AAET;;AAEA;AACA;AACA;AACA,OAAO,MAAMI,iBAAiB,SAASC,KAAK,CAAC;EACzCC,WAAWA,CAACC,OAAe,EAAE;IACzB,KAAK,CAACA,OAAO,CAAC;IACd,IAAI,CAACC,IAAI,GAAG,mBAAmB;EACnC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["IpayCodePushErrorCode","isIpayCodePushError","error","code","Object","values","includes","IpayCodePushError","Error","constructor","message","name"],"sourceRoot":"../../src","sources":["error.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAYA,qBAAqB,0BAArBA,qBAAqB;EAC7B;EAEA;AACJ;AACA;AACA;AACA;EAPYA,qBAAqB;EAU7B;AACJ;AACA;AACA;AACA;EAdYA,qBAAqB;EAiB7B;AACJ;AACA;AACA;AACA;EArBYA,qBAAqB;EAwB7B;EAEA;AACJ;AACA;AACA;AACA;EA9BYA,qBAAqB;EAiC7B;AACJ;AACA;AACA;AACA;AACA;EAtCYA,qBAAqB;EAyC7B;AACJ;AACA;AACA;AACA;AACA;EA9CYA,qBAAqB;EAiD7B;AACJ;AACA;AACA;AACA;AACA;EAtDYA,qBAAqB;EAyD7B;AACJ;AACA;AACA;AACA;AACA;EA9DYA,qBAAqB;EAiE7B;AACJ;AACA;AACA;AACA;AACA;EAtEYA,qBAAqB;EAyE7B;AACJ;AACA;AACA;AACA;AACA;EA9EYA,qBAAqB;EAiF7B;AACJ;AACA;AACA;AACA;AACA;AACA;EAvFYA,qBAAqB;EA0F7B;AACJ;AACA;AACA;AACA;AACA;EA/FYA,qBAAqB;EAkG7B;EACA;EAEA;EAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EA9GYA,qBAAqB;EAiH7B;AACJ;AACA;AACA;AACA;AACA;EAtHYA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA;;AA0HjC;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAC/BC,KAAc,EAC2C;EACzD,OACI,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,KAAK,IAAI,IACd,MAAM,IAAIA,KAAK,IACf,OAAOA,KAAK,CAACC,IAAI,KAAK,QAAQ,IAC9BC,MAAM,CAACC,MAAM,CAACL,qBAAqB,CAAC,CAACM,QAAQ,CACzCJ,KAAK,CAACC,IACV,CAAC;AAET;;AAEA;AACA;AACA;AACA,OAAO,MAAMI,iBAAiB,SAASC,KAAK,CAAC;EACzCC,WAAWA,CAACC,OAAe,EAAE;IACzB,KAAK,CAACA,OAAO,CAAC;IACd,IAAI,CAACC,IAAI,GAAG,mBAAmB;EACnC;AACJ","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { checkForUpdate } from "./checkForUpdate.js";
4
4
  import { createDefaultResolver } from "./DefaultResolver.js";
5
- import { addListener, clearCrashHistory, getAppVersion, getBaseURL, getBundleId, getChannel, getCrashHistory, getFingerprintHash, getMinBundleId, reload, updateBundle } from "./native.js";
5
+ import { addListener, clearCrashHistory, getAppVersion, getBaseURL, getBundleId, getChannel, getCrashHistory, getFingerprintHash, getMinBundleId, reload, updateBundle, getPublicKey } from "./native.js";
6
6
  import { ipayCodePushStore } from "./store.js";
7
7
  import { wrap } from "./wrap.js";
8
8
  export * from "./store.js";
@@ -284,7 +284,17 @@ function createIpayCodePushClient() {
284
284
  * IpayCodePush.clearCrashHistory();
285
285
  * ```
286
286
  */
287
- clearCrashHistory
287
+ clearCrashHistory,
288
+ /**
289
+ * Get Public Key which is generated for the particular device
290
+ *
291
+ * @returns {string} Public key
292
+ * @example
293
+ * ```ts
294
+ * IpayCodePush.getPublicKey();
295
+ * ```
296
+ */
297
+ getPublicKey
288
298
  };
289
299
  }
290
300
  export const IpayCodePush = createIpayCodePushClient();
@@ -1 +1 @@
1
- {"version":3,"names":["checkForUpdate","createDefaultResolver","addListener","clearCrashHistory","getAppVersion","getBaseURL","getBundleId","getChannel","getCrashHistory","getFingerprintHash","getMinBundleId","reload","updateBundle","ipayCodePushStore","wrap","extractSignatureFailure","isSignatureVerificationError","progress","setState","registerGlobalGetBaseURL","fn","globalThis","IpayCodePushGetBaseURL","global","createIpayCodePushClient","globalConfig","resolver","ensureGlobalResolver","methodName","Error","options","normalizedOptions","baseURL","rest","requestHeaders","requestTimeout","isUpdateDownloaded","getSnapshot","config","mergedConfig","params","IpayCodePush"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQH,UAAU;IAEV;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQL,WAAW;IAEX;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQF,cAAc,EAAGsC,MAA6B,IAAK;MAC/C,MAAMZ,QAAQ,GAAGC,oBAAoB,CAAC,gBAAgB,CAAC;MAEvD,MAAMY,YAA2C,GAAG;QAChD,GAAGD,MAAM;QACTZ,QAAQ;QACRQ,cAAc,EAAE;UAChB,GAAGT,YAAY,CAACS,cAAc;UAC9B,GAAGI,MAAM,CAACJ;QACV,CAAC;QACDC,cAAc,EAAEG,MAAM,CAACH,cAAc,IAAIV,YAAY,CAACU;MAC1D,CAAC;MAED,OAAOnC,cAAc,CAACuC,YAAY,CAAC;IACvC,CAAC;IAED;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQ3B,YAAY,EAAG4B,MAAoB,IAAK;MACpCb,oBAAoB,CAAC,cAAc,CAAC;MACpC,OAAOf,YAAY,CAAC4B,MAAM,CAAC;IAC/B,CAAC;IAED;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQ/B,kBAAkB;IAElB;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQD,eAAe;IAEf;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQL;EACJ,CAAC;AACL;AAEA,OAAO,MAAMsC,YAAY,GAAGjB,wBAAwB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["checkForUpdate","createDefaultResolver","addListener","clearCrashHistory","getAppVersion","getBaseURL","getBundleId","getChannel","getCrashHistory","getFingerprintHash","getMinBundleId","reload","updateBundle","getPublicKey","ipayCodePushStore","wrap","extractSignatureFailure","isSignatureVerificationError","progress","setState","registerGlobalGetBaseURL","fn","globalThis","IpayCodePushGetBaseURL","global","createIpayCodePushClient","globalConfig","resolver","ensureGlobalResolver","methodName","Error","options","normalizedOptions","baseURL","rest","requestHeaders","requestTimeout","isUpdateDownloaded","getSnapshot","config","mergedConfig","params","IpayCodePush"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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CQI,cAAc;IAEd;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQH,UAAU;IAEV;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQL,WAAW;IAEX;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQF,cAAc,EAAGuC,MAA6B,IAAK;MAC/C,MAAMZ,QAAQ,GAAGC,oBAAoB,CAAC,gBAAgB,CAAC;MAEvD,MAAMY,YAA2C,GAAG;QAChD,GAAGD,MAAM;QACTZ,QAAQ;QACRQ,cAAc,EAAE;UAChB,GAAGT,YAAY,CAACS,cAAc;UAC9B,GAAGI,MAAM,CAACJ;QACV,CAAC;QACDC,cAAc,EAAEG,MAAM,CAACH,cAAc,IAAIV,YAAY,CAACU;MAC1D,CAAC;MAED,OAAOpC,cAAc,CAACwC,YAAY,CAAC;IACvC,CAAC;IAED;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQ5B,YAAY,EAAG6B,MAAoB,IAAK;MACpCb,oBAAoB,CAAC,cAAc,CAAC;MACpC,OAAOhB,YAAY,CAAC6B,MAAM,CAAC;IAC/B,CAAC;IAED;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQhC,kBAAkB;IAElB;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQD,eAAe;IAEf;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQL,iBAAiB;IAEjB;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACQU;EAEJ,CAAC;AACL;AAEA,OAAO,MAAM6B,YAAY,GAAGjB,wBAAwB,CAAC,CAAC","ignoreList":[]}
@@ -230,4 +230,14 @@ export const getBaseURL = () => {
230
230
  }
231
231
  return null;
232
232
  };
233
+
234
+ /**
235
+ * Fetches the Public Key for the app.
236
+ *
237
+ * @returns {string | null} Resolves with the public key
238
+ */
239
+ export const getPublicKey = () => {
240
+ const constants = IpayCodePushNative.getConstants();
241
+ return constants.KEYSTORE_PUBLIC_KEY;
242
+ };
233
243
  //# sourceMappingURL=native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NativeEventEmitter","IpayCodePushErrorCode","isIpayCodePushError","IpayCodePushNative","NIL_UUID","__IPAY_CODE_PUSH_BUNDLE_ID","undefined","IpayCodePushConstants","IPAY_CODE_PUSH_BUNDLE_ID","addListener","eventName","listener","eventEmitter","subscription","remove","inflightUpdates","Map","lastInstalledBundleId","updateBundle","paramsOrBundleId","fileUrl","updateBundleId","bundleId","status","currentBundleId","getBundleId","localeCompare","Error","existing","get","targetFileUrl","targetFileHash","fileHash","promise","ok","delete","set","getAppVersion","constants","getConstants","APP_VERSION","reload","getMinBundleId","MIN_BUNDLE_ID","getChannel","CHANNEL","getFingerprintHash","FINGERPRINT_HASH","notifyAppReady","result","JSON","parse","getCrashHistory","clearCrashHistory","getBaseURL"],"sourceRoot":"../../src","sources":["native.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NativeEventEmitter","IpayCodePushErrorCode","isIpayCodePushError","IpayCodePushNative","NIL_UUID","__IPAY_CODE_PUSH_BUNDLE_ID","undefined","IpayCodePushConstants","IPAY_CODE_PUSH_BUNDLE_ID","addListener","eventName","listener","eventEmitter","subscription","remove","inflightUpdates","Map","lastInstalledBundleId","updateBundle","paramsOrBundleId","fileUrl","updateBundleId","bundleId","status","currentBundleId","getBundleId","localeCompare","Error","existing","get","targetFileUrl","targetFileHash","fileHash","promise","ok","delete","set","getAppVersion","constants","getConstants","APP_VERSION","reload","getMinBundleId","MIN_BUNDLE_ID","getChannel","CHANNEL","getFingerprintHash","FINGERPRINT_HASH","notifyAppReady","result","JSON","parse","getCrashHistory","clearCrashHistory","getBaseURL","getPublicKey","KEYSTORE_PUBLIC_KEY"],"sourceRoot":"../../src","sources":["native.ts"],"mappings":"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","ignoreList":[]}
@@ -35,7 +35,7 @@ export function isSignatureVerificationError(error) {
35
35
 
36
36
  // Match iOS SignatureVerificationError messages
37
37
  // Match Android SignatureVerificationException messages
38
- return message.includes("signature verification") || message.includes("public key not configured") || message.includes("public key format is invalid") || message.includes("signature format is invalid") || message.includes("bundle may be corrupted or tampered");
38
+ return message.includes("signature verification") || message.includes("public key not configured") || message.includes("public key format is invalid") || message.includes("signature format is invalid") || message.includes("bundle may be corrupted or tampered") || message.includes("KeyStore");
39
39
  }
40
40
 
41
41
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["isSignatureVerificationError","error","Error","message","toLowerCase","includes","extractSignatureFailure","bundleId","normalizedError","String"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;AACA;AACA;AACA;;AAgDA;AACA;AACA;;AA0BA;AACA;AACA;;AAoDA;AACA;AACA;AACA;AACA;;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,4BAA4BA,CAACC,KAAc,EAAW;EAClE,IAAI,EAAEA,KAAK,YAAYC,KAAK,CAAC,EAAE;IAC3B,OAAO,KAAK;EAChB;EAEA,MAAMC,OAAO,GAAGF,KAAK,CAACE,OAAO,CAACC,WAAW,CAAC,CAAC;;EAE3C;EACA;EACA,OACID,OAAO,CAACE,QAAQ,CAAC,wBAAwB,CAAC,IAC1CF,OAAO,CAACE,QAAQ,CAAC,2BAA2B,CAAC,IAC7CF,OAAO,CAACE,QAAQ,CAAC,8BAA8B,CAAC,IAChDF,OAAO,CAACE,QAAQ,CAAC,6BAA6B,CAAC,IAC/CF,OAAO,CAACE,QAAQ,CAAC,qCAAqC,CAAC;AAE/D;;AAEA;AACA;AACA;AACA,OAAO,SAASC,uBAAuBA,CACnCL,KAAc,EACdM,QAAgB,EACY;EAC5B,MAAMC,eAAe,GACjBP,KAAK,YAAYC,KAAK,GAAGD,KAAK,GAAG,IAAIC,KAAK,CAACO,MAAM,CAACR,KAAK,CAAC,CAAC;EAE7D,OAAO;IACHM,QAAQ;IACRJ,OAAO,EAAEK,eAAe,CAACL,OAAO;IAChCF,KAAK,EAAEO;EACX,CAAC;AACL;;AAKA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["isSignatureVerificationError","error","Error","message","toLowerCase","includes","extractSignatureFailure","bundleId","normalizedError","String"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;AACA;AACA;AACA;;AAgDA;AACA;AACA;;AA0BA;AACA;AACA;;AAoDA;AACA;AACA;AACA;AACA;;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,4BAA4BA,CAACC,KAAc,EAAW;EAClE,IAAI,EAAEA,KAAK,YAAYC,KAAK,CAAC,EAAE;IAC3B,OAAO,KAAK;EAChB;EAEA,MAAMC,OAAO,GAAGF,KAAK,CAACE,OAAO,CAACC,WAAW,CAAC,CAAC;;EAE3C;EACA;EACA,OACID,OAAO,CAACE,QAAQ,CAAC,wBAAwB,CAAC,IAC1CF,OAAO,CAACE,QAAQ,CAAC,2BAA2B,CAAC,IAC7CF,OAAO,CAACE,QAAQ,CAAC,8BAA8B,CAAC,IAChDF,OAAO,CAACE,QAAQ,CAAC,6BAA6B,CAAC,IAC/CF,OAAO,CAACE,QAAQ,CAAC,qCAAqC,CAAC,IACvDF,OAAO,CAACE,QAAQ,CAAC,UAAU,CAAC;AAEpC;;AAEA;AACA;AACA;AACA,OAAO,SAASC,uBAAuBA,CACnCL,KAAc,EACdM,QAAgB,EACY;EAC5B,MAAMC,eAAe,GACjBP,KAAK,YAAYC,KAAK,GAAGD,KAAK,GAAG,IAAIC,KAAK,CAACO,MAAM,CAACR,KAAK,CAAC,CAAC;EAE7D,OAAO;IACHM,QAAQ;IACRJ,OAAO,EAAEK,eAAe,CAACL,OAAO;IAChCF,KAAK,EAAEO;EACX,CAAC;AACL;;AAKA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA","ignoreList":[]}
@@ -93,6 +93,7 @@ export interface Spec extends TurboModule {
93
93
  APP_VERSION: string | null;
94
94
  CHANNEL: string;
95
95
  FINGERPRINT_HASH: string | null;
96
+ KEYSTORE_PUBLIC_KEY: string | null;
96
97
  };
97
98
  }
98
99
  declare const _default: Spec;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeInstantpayCodePush.d.ts","sourceRoot":"","sources":["../../../src/NativeInstantpayCodePush.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAGrE,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;;;;;OAQG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IAGrC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D;;;;;;;;;;OAUG;IACH,cAAc,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG;QAC1C,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;QAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IAEF;;;;;OAKG;IACH,eAAe,IAAI,MAAM,EAAE,CAAC;IAE5B;;;;;OAKG;IACH,iBAAiB,IAAI,OAAO,CAAC;IAE7B;;;;;;OAMG;IACH,UAAU,EAAE,MAAM,MAAM,CAAC;IAGzB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAErC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErC,QAAQ,CAAC,YAAY,EAAE,MAAM;QACzB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;KACnC,CAAC;CACL;;AAED,wBAA4E"}
1
+ {"version":3,"file":"NativeInstantpayCodePush.d.ts","sourceRoot":"","sources":["../../../src/NativeInstantpayCodePush.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAGrE,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;;;;;OAQG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IAGrC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D;;;;;;;;;;OAUG;IACH,cAAc,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG;QAC1C,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;QAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;IAEF;;;;;OAKG;IACH,eAAe,IAAI,MAAM,EAAE,CAAC;IAE5B;;;;;OAKG;IACH,iBAAiB,IAAI,OAAO,CAAC;IAE7B;;;;;;OAMG;IACH,UAAU,EAAE,MAAM,MAAM,CAAC;IAGzB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAErC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErC,QAAQ,CAAC,YAAY,EAAE,MAAM;QACzB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;QAChB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;KACtC,CAAC;CACL;;AAED,wBAA4E"}
@@ -28,6 +28,12 @@ export declare enum IpayCodePushErrorCode {
28
28
  * @retryable false
29
29
  */
30
30
  INVALID_FILE_URL = "INVALID_FILE_URL",
31
+ /**
32
+ * File URL Signature is invalid or malformed.
33
+ * Thrown when fileUrl parameter cannot be verified as a valid URL.
34
+ * @retryable false
35
+ */
36
+ INVALID_URL_SIGNATURE = "INVALID_URL_SIGNATURE",
31
37
  /**
32
38
  * Failed to create required directory for bundle storage.
33
39
  * Thrown when bundle directory creation fails due to permissions or disk errors.
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,oBAAY,qBAAqB;IAG7B;;;;OAIG;IACH,iBAAiB,sBAAsB;IAEvC;;;;OAIG;IACH,gBAAgB,qBAAqB;IAIrC;;;;OAIG;IACH,yBAAyB,8BAA8B;IAEvD;;;;;OAKG;IACH,eAAe,oBAAoB;IAEnC;;;;;OAKG;IACH,mBAAmB,wBAAwB;IAE3C;;;;;OAKG;IACH,uBAAuB,4BAA4B;IAEnD;;;;;OAKG;IACH,cAAc,mBAAmB;IAEjC;;;;;OAKG;IACH,uBAAuB,4BAA4B;IAEnD;;;;;OAKG;IACH,6BAA6B,kCAAkC;IAE/D;;;;;;OAMG;IACH,qBAAqB,0BAA0B;IAE/C;;;;;OAKG;IACH,yBAAyB,8BAA8B;IAOvD;;;;;;;OAOG;IACH,gBAAgB,qBAAqB;IAErC;;;;;OAKG;IACH,aAAa,kBAAkB;CAClC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,OAAO,GACf,KAAK,IAAI;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAU3D;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI9B"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,oBAAY,qBAAqB;IAG7B;;;;OAIG;IACH,iBAAiB,sBAAsB;IAEvC;;;;OAIG;IACH,gBAAgB,qBAAqB;IAErC;;;;OAIG;IACH,qBAAqB,0BAA0B;IAI/C;;;;OAIG;IACH,yBAAyB,8BAA8B;IAEvD;;;;;OAKG;IACH,eAAe,oBAAoB;IAEnC;;;;;OAKG;IACH,mBAAmB,wBAAwB;IAE3C;;;;;OAKG;IACH,uBAAuB,4BAA4B;IAEnD;;;;;OAKG;IACH,cAAc,mBAAmB;IAEjC;;;;;OAKG;IACH,uBAAuB,4BAA4B;IAEnD;;;;;OAKG;IACH,6BAA6B,kCAAkC;IAE/D;;;;;;OAMG;IACH,qBAAqB,0BAA0B;IAE/C;;;;;OAKG;IACH,yBAAyB,8BAA8B;IAOvD;;;;;;;OAOG;IACH,gBAAgB,qBAAqB;IAErC;;;;;OAKG;IACH,aAAa,kBAAkB;CAClC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,OAAO,GACf,KAAK,IAAI;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAU3D;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI9B"}
@@ -199,5 +199,15 @@ export declare const IpayCodePush: {
199
199
  * ```
200
200
  */
201
201
  clearCrashHistory: () => boolean;
202
+ /**
203
+ * Get Public Key which is generated for the particular device
204
+ *
205
+ * @returns {string} Public key
206
+ * @example
207
+ * ```ts
208
+ * IpayCodePush.getPublicKey();
209
+ * ```
210
+ */
211
+ getPublicKey: () => string | null;
202
212
  };
203
213
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,qBAAqB,EAG7B,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAWH,KAAK,YAAY,EAEpB,MAAM,UAAU,CAAC;AAMlB,OAAO,EAAE,KAAK,mBAAmB,EAAkC,MAAM,QAAQ,CAAC;AAElF,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAExE,cAAc,SAAS,CAAC;AAExB,OAAO,EACH,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,4BAA4B,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,GACpC,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AA8U5E,eAAO,MAAM,YAAY;IArQjB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;oBACa,mBAAmB;IAsCnC;;OAEG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;;;;;;;;OAYG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;6BACsB,qBAAqB;IAgB9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;2BACoB,YAAY;IAKnC;;;;;;;;;;OAUG;;IAGH;;;;;;;;;;;OAWG;;IAGH;;;;;;;;;;;OAWG;;CAK2C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,qBAAqB,EAG7B,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAWH,KAAK,YAAY,EAGpB,MAAM,UAAU,CAAC;AAMlB,OAAO,EAAE,KAAK,mBAAmB,EAAkC,MAAM,QAAQ,CAAC;AAElF,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAExE,cAAc,SAAS,CAAC;AAExB,OAAO,EACH,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,4BAA4B,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,GACpC,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AA0V5E,eAAO,MAAM,YAAY;IAjRjB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;oBACa,mBAAmB;IAsCnC;;OAEG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;;;;;;;;OAYG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;6BACsB,qBAAqB;IAgB9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;2BACoB,YAAY;IAKnC;;;;;;;;;;OAUG;;IAGH;;;;;;;;;;;OAWG;;IAGH;;;;;;;;;;;OAWG;;IAGH;;;;;;;;OAQG;;CAM2C,CAAC"}
@@ -125,4 +125,10 @@ export declare const clearCrashHistory: () => boolean;
125
125
  * @returns {string | null} Base URL string (e.g., "file:///data/.../bundle-store/abc123") or null if not available
126
126
  */
127
127
  export declare const getBaseURL: () => string | null;
128
+ /**
129
+ * Fetches the Public Key for the app.
130
+ *
131
+ * @returns {string | null} Resolves with the public key
132
+ */
133
+ export declare const getPublicKey: () => string | null;
128
134
  //# sourceMappingURL=native.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C,OAA2B,EACvB,KAAK,kBAAkB,EAC1B,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,CAAC;AAMtD,eAAO,MAAM,qBAAqB;;CAEjC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,UAAU,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;KACpB,CAAC;CACL,CAAC;AAGF,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,iBAAiB,EACzD,WAAW,CAAC,EACZ,UAAU,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,eAQjC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG;IAC5C,MAAM,EAAE,YAAY,CAAC;CACxB,CAAC;AAQF;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAE3E;;GAEG;AACH,wBAAsB,YAAY,CAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAAG,IAAI,GACvB,OAAO,CAAC,OAAO,CAAC,CAAC;AA2DpB;;GAEG;AACH,eAAO,MAAM,aAAa,QAAO,MAAM,GAAG,IAGzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,qBAElB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,QAAO,MAGjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAO,MAI9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAAO,MAG7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAAO,MAAM,GAAG,IAG9C,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAC/B,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,cAAc,QAAO,oBAYjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,QAAO,MAAM,EAWxC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,QAAO,OAEpC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,QAAO,MAAM,GAAG,IAMtC,CAAC"}
1
+ {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C,OAA2B,EACvB,KAAK,kBAAkB,EAC1B,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,CAAC;AAMtD,eAAO,MAAM,qBAAqB;;CAEjC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,UAAU,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;KACpB,CAAC;CACL,CAAC;AAGF,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,iBAAiB,EACzD,WAAW,CAAC,EACZ,UAAU,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,eAQjC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,kBAAkB,GAAG;IAC5C,MAAM,EAAE,YAAY,CAAC;CACxB,CAAC;AAQF;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAE3E;;GAEG;AACH,wBAAsB,YAAY,CAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAAG,IAAI,GACvB,OAAO,CAAC,OAAO,CAAC,CAAC;AA2DpB;;GAEG;AACH,eAAO,MAAM,aAAa,QAAO,MAAM,GAAG,IAGzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,qBAElB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,QAAO,MAGjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAO,MAI9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAAO,MAG7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAAO,MAAM,GAAG,IAG9C,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAC/B,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,cAAc,QAAO,oBAYjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,QAAO,MAAM,EAWxC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,QAAO,OAEpC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,QAAO,MAAM,GAAG,IAMtC,CAAC;AAGF;;;;GAIG;AACH,eAAO,MAAM,YAAY,QAAO,MAAM,GAAG,IAGxC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC;;OAEG;IACH,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAE5B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,cAAc,EAAE,aAAa,GAAG,YAAY,CAAC;IAE7C;;OAEG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IACzC;;;;;OAKG;IACH,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IAE5C;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,WAAW,CAAC,EAAE,CACV,MAAM,EAAE,yBAAyB,KAChC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAEnC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,cAAc,CAAC,EAAE,CACb,MAAM,EAAE,4BAA4B,KACnC,OAAO,CAAC,SAAS,CAAC,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IACzC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAgBpE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACnC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM,GACjB,4BAA4B,CAS9B;AAGD,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEjD;;;GAGG;AACH,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC;IACjE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC;;OAEG;IACH,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IAE5B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,cAAc,EAAE,aAAa,GAAG,YAAY,CAAC;IAE7C;;OAEG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IACzC;;;;;OAKG;IACH,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IAE5C;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,WAAW,CAAC,EAAE,CACV,MAAM,EAAE,yBAAyB,KAChC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAEnC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,cAAc,CAAC,EAAE,CACb,MAAM,EAAE,4BAA4B,KACnC,OAAO,CAAC,SAAS,CAAC,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IACzC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAiBpE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACnC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM,GACjB,4BAA4B,CAS9B;AAGD,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEjD;;;GAGG;AACH,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC;IACjE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-instantpay-code-push",
3
- "version": "1.1.7",
3
+ "version": "1.1.8",
4
4
  "description": "React Native plugin for the CodePush service",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -105,6 +105,7 @@ export interface Spec extends TurboModule {
105
105
  APP_VERSION: string | null;
106
106
  CHANNEL: string;
107
107
  FINGERPRINT_HASH: string | null;
108
+ KEYSTORE_PUBLIC_KEY: string | null;
108
109
  };
109
110
  }
110
111
 
package/src/error.ts CHANGED
@@ -33,6 +33,13 @@ export enum IpayCodePushErrorCode {
33
33
  */
34
34
  INVALID_FILE_URL = "INVALID_FILE_URL",
35
35
 
36
+ /**
37
+ * File URL Signature is invalid or malformed.
38
+ * Thrown when fileUrl parameter cannot be verified as a valid URL.
39
+ * @retryable false
40
+ */
41
+ INVALID_URL_SIGNATURE = "INVALID_URL_SIGNATURE",
42
+
36
43
  // ==================== Bundle Storage Errors ====================
37
44
 
38
45
  /**
package/src/index.tsx CHANGED
@@ -19,6 +19,7 @@ import {
19
19
  reload,
20
20
  type UpdateParams,
21
21
  updateBundle,
22
+ getPublicKey,
22
23
  } from "./native";
23
24
 
24
25
  import { ipayCodePushStore } from "./store";
@@ -371,6 +372,18 @@ function createIpayCodePushClient() {
371
372
  * ```
372
373
  */
373
374
  clearCrashHistory,
375
+
376
+ /**
377
+ * Get Public Key which is generated for the particular device
378
+ *
379
+ * @returns {string} Public key
380
+ * @example
381
+ * ```ts
382
+ * IpayCodePush.getPublicKey();
383
+ * ```
384
+ */
385
+ getPublicKey,
386
+
374
387
  };
375
388
  }
376
389
 
package/src/native.ts CHANGED
@@ -277,4 +277,15 @@ export const getBaseURL = (): string | null => {
277
277
  return result;
278
278
  }
279
279
  return null;
280
+ };
281
+
282
+
283
+ /**
284
+ * Fetches the Public Key for the app.
285
+ *
286
+ * @returns {string | null} Resolves with the public key
287
+ */
288
+ export const getPublicKey = (): string | null => {
289
+ const constants = IpayCodePushNative.getConstants();
290
+ return constants.KEYSTORE_PUBLIC_KEY;
280
291
  };
package/src/types.ts CHANGED
@@ -174,7 +174,8 @@ export function isSignatureVerificationError(error: unknown): boolean {
174
174
  message.includes("public key not configured") ||
175
175
  message.includes("public key format is invalid") ||
176
176
  message.includes("signature format is invalid") ||
177
- message.includes("bundle may be corrupted or tampered")
177
+ message.includes("bundle may be corrupted or tampered") ||
178
+ message.includes("KeyStore")
178
179
  );
179
180
  }
180
181