@bifold/react-native-attestation 2.11.1 → 2.11.3

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.
package/README.md CHANGED
@@ -14,14 +14,19 @@ yarn add @bifold/react-native-attestation
14
14
  import {
15
15
  generateKey,
16
16
  appleAttestation,
17
+ getAppStoreReceipt,
17
18
  isPlayIntegrityAvailable,
18
19
  googleAttestation,
19
20
  } from '@bifold/react-native-attestation';
20
21
 
21
22
  // ...
22
23
  if (Platform.OS === 'ios') {
24
+ // Modern DeviceCheck attestation
23
25
  const keyId = await generateKey();
24
26
  const attestationAsBuffer = await appleAttestation(keyId, nonce);
27
+
28
+ // Legacy App Store receipt (for compatibility)
29
+ const appStoreReceipt = await getAppStoreReceipt();
25
30
  } else if (Platform.OS === 'android') {
26
31
  const available = await isPlayIntegrityAvailable();
27
32
  if (available) {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeAttestation.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAWpCC,gCAAmB,CAACC,YAAY,CAAO,aAAa,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeAttestation.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAYpCC,gCAAmB,CAACC,YAAY,CAAO,aAAa,CAAC","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.sha256 = exports.isPlayIntegrityAvailable = exports.googleAttestation = exports.generateKey = exports.appleKeyAttestation = exports.appleAttestation = void 0;
6
+ exports.sha256 = exports.isPlayIntegrityAvailable = exports.googleAttestation = exports.getAppStoreReceipt = exports.generateKey = exports.appleKeyAttestation = exports.appleAttestation = void 0;
7
7
  var _reactNative = require("react-native");
8
8
  var _buffer = require("buffer");
9
9
  var _NativeAttestation = _interopRequireDefault(require("./NativeAttestation"));
@@ -69,4 +69,11 @@ const isPlayIntegrityAvailable = async () => {
69
69
  return Attestation.isPlayIntegrityAvailable();
70
70
  };
71
71
  exports.isPlayIntegrityAvailable = isPlayIntegrityAvailable;
72
+ const getAppStoreReceipt = async () => {
73
+ if (_reactNative.Platform.OS !== 'ios') {
74
+ throw new Error('getAppStoreReceipt is only available on iOS');
75
+ }
76
+ return await Attestation.getAppStoreReceipt();
77
+ };
78
+ exports.getAppStoreReceipt = getAppStoreReceipt;
72
79
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_buffer","_NativeAttestation","_interopRequireDefault","e","__esModule","default","LINKING_ERROR","Platform","select","ios","isTurboModuleEnabled","global","__turboModuleProxy","AttestationModule","NativeAttestationSpec","NativeModules","Attestation","Proxy","get","Error","sha256","stringToHash","OS","bytes","Buffer","from","exports","generateKey","cache","appleKeyAttestation","keyId","challenge","appleAttestation","googleAttestation","nonce","token","isPlayIntegrityAvailable"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_buffer","_NativeAttestation","_interopRequireDefault","e","__esModule","default","LINKING_ERROR","Platform","select","ios","isTurboModuleEnabled","global","__turboModuleProxy","AttestationModule","NativeAttestationSpec","NativeModules","Attestation","Proxy","get","Error","sha256","stringToHash","OS","bytes","Buffer","from","exports","generateKey","cache","appleKeyAttestation","keyId","challenge","appleAttestation","googleAttestation","nonce","token","isPlayIntegrityAvailable","getAppStoreReceipt"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeAttestation.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AAWlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,aAAa,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeAttestation.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AAYlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,aAAa,CAAC","ignoreList":[]}
@@ -56,4 +56,10 @@ export const isPlayIntegrityAvailable = async () => {
56
56
  }
57
57
  return Attestation.isPlayIntegrityAvailable();
58
58
  };
59
+ export const getAppStoreReceipt = async () => {
60
+ if (Platform.OS !== 'ios') {
61
+ throw new Error('getAppStoreReceipt is only available on iOS');
62
+ }
63
+ return await Attestation.getAppStoreReceipt();
64
+ };
59
65
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","Buffer","NativeAttestationSpec","LINKING_ERROR","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","AttestationModule","Attestation","Proxy","get","Error","sha256","stringToHash","OS","bytes","from","generateKey","cache","appleKeyAttestation","keyId","challenge","appleAttestation","googleAttestation","nonce","token","isPlayIntegrityAvailable"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AACtD,SAASC,MAAM,QAAQ,QAAQ;AAE/B,OAAOC,qBAAqB,MAAM,qBAAqB;AAEvD,MAAMC,aAAa,GACjB,mFAAmF,GACnFH,QAAQ,CAACI,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;;AAEjC;AACA,MAAMC,oBAAoB,GAAGC,MAAM,CAACC,kBAAkB,IAAI,IAAI;AAE9D,MAAMC,iBAAiB,GAAGH,oBAAoB,GAC1CL,qBAAqB,GACrBH,aAAa,CAACY,WAAW;AAE7B,MAAMA,WAAW,GAAGD,iBAAiB,GACjCA,iBAAiB,GACjB,IAAIE,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACX,aAAa,CAAC;EAChC;AACF,CACF,CAAC;;AAEL;AACA,OAAO,MAAMY,MAAM,GAAG,MAAOC,YAAoB,IAAsB;EACrE,IAAIhB,QAAQ,CAACiB,EAAE,KAAK,KAAK,EAAE;IACzB,MAAM,IAAIH,KAAK,CAAC,iCAAiC,CAAC;EACpD;EAEA,MAAMI,KAAiB,GAAG,MAAMP,WAAW,CAACI,MAAM,CAACC,YAAY,CAAC;EAChE,OAAOf,MAAM,CAACkB,IAAI,CAACD,KAAK,CAAC;AAC3B,CAAC;AAED,OAAO,MAAME,WAAW,GAAG,MAAAA,CAAOC,KAAc,GAAG,KAAK,KAAsB;EAC5E,IAAIrB,QAAQ,CAACiB,EAAE,KAAK,KAAK,EAAE;IACzB,MAAM,IAAIH,KAAK,CAAC,sCAAsC,CAAC;EACzD;EAEA,OAAOH,WAAW,CAACS,WAAW,CAACC,KAAK,CAAC;AACvC,CAAC;AAED,OAAO,MAAMC,mBAAmB,GAAG,MAAAA,CACjCC,KAAa,EACbC,SAAiB,KACG;EACpB,IAAIxB,QAAQ,CAACiB,EAAE,KAAK,KAAK,EAAE;IACzB,MAAM,IAAIH,KAAK,CAAC,8CAA8C,CAAC;EACjE;EAEA,MAAMI,KAAiB,GAAG,MAAMP,WAAW,CAACW,mBAAmB,CAC7DC,KAAK,EACLC,SACF,CAAC;EAED,OAAOvB,MAAM,CAACkB,IAAI,CAACD,KAAK,CAAC;AAC3B,CAAC;AAED,OAAO,MAAMO,gBAAgB,GAAG,MAAAA,CAC9BF,KAAa,EACbC,SAAiB,KACG;EACpB,IAAIxB,QAAQ,CAACiB,EAAE,KAAK,KAAK,EAAE;IACzB,MAAM,IAAIH,KAAK,CAAC,2CAA2C,CAAC;EAC9D;EAEA,MAAMI,KAAiB,GAAG,MAAMP,WAAW,CAACc,gBAAgB,CAC1DF,KAAK,EACLC,SACF,CAAC;EAED,OAAOvB,MAAM,CAACkB,IAAI,CAACD,KAAK,CAAC;AAC3B,CAAC;AAED,OAAO,MAAMQ,iBAAiB,GAAG,MAAOC,KAAa,IAAsB;EACzE,IAAI3B,QAAQ,CAACiB,EAAE,KAAK,SAAS,EAAE;IAC7B,MAAM,IAAIH,KAAK,CAAC,gDAAgD,CAAC;EACnE;EAEA,MAAMc,KAAa,GAAG,MAAMjB,WAAW,CAACe,iBAAiB,CAACC,KAAK,CAAC;EAChE,OAAOC,KAAK;AACd,CAAC;AAED,OAAO,MAAMC,wBAAwB,GAAG,MAAAA,CAAA,KAA8B;EACpE,IAAI7B,QAAQ,CAACiB,EAAE,KAAK,SAAS,EAAE;IAC7B,MAAM,IAAIH,KAAK,CAAC,uDAAuD,CAAC;EAC1E;EAEA,OAAOH,WAAW,CAACkB,wBAAwB,CAAC,CAAC;AAC/C,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","Platform","Buffer","NativeAttestationSpec","LINKING_ERROR","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","AttestationModule","Attestation","Proxy","get","Error","sha256","stringToHash","OS","bytes","from","generateKey","cache","appleKeyAttestation","keyId","challenge","appleAttestation","googleAttestation","nonce","token","isPlayIntegrityAvailable","getAppStoreReceipt"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -6,6 +6,7 @@ export interface Spec extends TurboModule {
6
6
  appleKeyAttestation(keyId: string, challenge: string): Promise<Buffer>;
7
7
  isPlayIntegrityAvailable(): Promise<boolean>;
8
8
  googleAttestation(nonce: string): Promise<string>;
9
+ getAppStoreReceipt(): Promise<string | null>;
9
10
  }
10
11
  declare const _default: Spec;
11
12
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeAttestation.d.ts","sourceRoot":"","sources":["../../src/NativeAttestation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACnD;;AAED,wBAAqE"}
1
+ {"version":3,"file":"NativeAttestation.d.ts","sourceRoot":"","sources":["../../src/NativeAttestation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC9C;;AAED,wBAAqE"}
@@ -5,4 +5,5 @@ export declare const appleKeyAttestation: (keyId: string, challenge: string) =>
5
5
  export declare const appleAttestation: (keyId: string, challenge: string) => Promise<Buffer>;
6
6
  export declare const googleAttestation: (nonce: string) => Promise<string>;
7
7
  export declare const isPlayIntegrityAvailable: () => Promise<boolean>;
8
+ export declare const getAppStoreReceipt: () => Promise<string | null>;
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AA6BhC,eAAO,MAAM,MAAM,iBAAwB,MAAM,KAAG,OAAO,CAAC,MAAM,CAOjE,CAAC;AAEF,eAAO,MAAM,WAAW,WAAiB,OAAO,KAAW,OAAO,CAAC,MAAM,CAMxE,CAAC;AAEF,eAAO,MAAM,mBAAmB,UACvB,MAAM,aACF,MAAM,KAChB,OAAO,CAAC,MAAM,CAWhB,CAAC;AAEF,eAAO,MAAM,gBAAgB,UACpB,MAAM,aACF,MAAM,KAChB,OAAO,CAAC,MAAM,CAWhB,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAAiB,MAAM,KAAG,OAAO,CAAC,MAAM,CAOrE,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAAa,OAAO,CAAC,OAAO,CAMhE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AA6BhC,eAAO,MAAM,MAAM,iBAAwB,MAAM,KAAG,OAAO,CAAC,MAAM,CAOjE,CAAC;AAEF,eAAO,MAAM,WAAW,WAAiB,OAAO,KAAW,OAAO,CAAC,MAAM,CAMxE,CAAC;AAEF,eAAO,MAAM,mBAAmB,UACvB,MAAM,aACF,MAAM,KAChB,OAAO,CAAC,MAAM,CAWhB,CAAC;AAEF,eAAO,MAAM,gBAAgB,UACpB,MAAM,aACF,MAAM,KAChB,OAAO,CAAC,MAAM,CAWhB,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAAiB,MAAM,KAAG,OAAO,CAAC,MAAM,CAOrE,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAAa,OAAO,CAAC,OAAO,CAMhE,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,MAAM,GAAG,IAAI,CAMhE,CAAC"}
@@ -268,6 +268,26 @@ RCT_EXPORT_METHOD(appleAttestation:(NSString *)keyId
268
268
  }];
269
269
  }
270
270
 
271
+ RCT_EXPORT_METHOD(getAppStoreReceipt:(RCTPromiseResolveBlock)resolve
272
+ rejecter:(RCTPromiseRejectBlock)reject) {
273
+ NSURL *appStoreReceiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
274
+
275
+ if (appStoreReceiptURL && [[NSFileManager defaultManager] fileExistsAtPath:[appStoreReceiptURL path]]) {
276
+ NSError *error;
277
+ NSData *receiptData = [NSData dataWithContentsOfURL:appStoreReceiptURL
278
+ options:NSDataReadingMappedIfSafe
279
+ error:&error];
280
+ if (receiptData && !error) {
281
+ NSString *receiptString = [receiptData base64EncodedStringWithOptions:0];
282
+ resolve(receiptString);
283
+ } else {
284
+ reject(@"receipt_error", @"Failed to read App Store receipt", error);
285
+ }
286
+ } else {
287
+ resolve([NSNull null]); // No receipt available
288
+ }
289
+ }
290
+
271
291
  // Don't compile this code when we build for the old architecture.
272
292
  #ifdef RCT_NEW_ARCH_ENABLED
273
293
  - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bifold/react-native-attestation",
3
- "version": "2.11.1",
3
+ "version": "2.11.3",
4
4
  "description": "Mobile app attestation",
5
5
  "main": "build/commonjs/index.js",
6
6
  "module": "build/module/index.js",