@purchasely/cordova-plugin-purchasely 2.2.4 → 2.3.1

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.
@@ -9,14 +9,22 @@
9
9
  "version": "1.0.0",
10
10
  "license": "Apache-2.0",
11
11
  "devDependencies": {
12
- "cordova-android": "^10.1.2",
12
+ "@purchasely/cordova-plugin-puchasely-google": "file:../../purchasely-google",
13
+ "cordova-android": "^11.0.0",
13
14
  "cordova-ios": "^6.2.0",
15
+ "cordova-plugin-puchasely-google": "file:../../purchasely-google",
14
16
  "cordova-plugin-purchasely": "file:.."
15
17
  }
16
18
  },
17
19
  "..": {
18
20
  "name": "cordova-plugin-purchasely",
19
- "version": "2.2.3",
21
+ "version": "2.3.1",
22
+ "dev": true,
23
+ "license": "ISC"
24
+ },
25
+ "../../purchasely-google": {
26
+ "name": "cordova-plugin-puchasely-google",
27
+ "version": "2.3.1",
20
28
  "dev": true,
21
29
  "license": "ISC"
22
30
  },
@@ -66,6 +74,10 @@
66
74
  "node": ">= 8"
67
75
  }
68
76
  },
77
+ "node_modules/@purchasely/cordova-plugin-puchasely-google": {
78
+ "resolved": "../../purchasely-google",
79
+ "link": true
80
+ },
69
81
  "node_modules/abbrev": {
70
82
  "version": "1.1.1",
71
83
  "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
@@ -199,25 +211,25 @@
199
211
  "dev": true
200
212
  },
201
213
  "node_modules/cordova-android": {
202
- "version": "10.1.2",
203
- "resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-10.1.2.tgz",
204
- "integrity": "sha512-F28+NvgKO4ZhKFkqctCOh62mhVoNyUuRQh/F/nqp+Sti4ODv2rUa6UeW18khhdYTjlDeihHQsPqxvB7mI6fVYA==",
214
+ "version": "11.0.0",
215
+ "resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-11.0.0.tgz",
216
+ "integrity": "sha512-ZhvSF5BYY8gmrAu1PtMPdHFsRoom/emT4OtTcecmh3Zj22900y4Golg5whhBPcYcTPC7BU6PG/EmG9BBHcX9tQ==",
205
217
  "dev": true,
206
218
  "dependencies": {
207
219
  "android-versions": "^1.7.0",
208
220
  "cordova-common": "^4.0.2",
209
221
  "execa": "^5.1.1",
210
- "fast-glob": "^3.2.7",
211
- "fs-extra": "^10.0.0",
222
+ "fast-glob": "^3.2.11",
223
+ "fs-extra": "^10.1.0",
212
224
  "is-path-inside": "^3.0.3",
213
225
  "nopt": "^5.0.0",
214
226
  "properties-parser": "^0.3.1",
215
- "semver": "^7.3.5",
227
+ "semver": "^7.3.7",
216
228
  "untildify": "^4.0.0",
217
229
  "which": "^2.0.2"
218
230
  },
219
231
  "engines": {
220
- "node": ">=12.0.0"
232
+ "node": ">=14.0.0"
221
233
  }
222
234
  },
223
235
  "node_modules/cordova-android/node_modules/fs-extra": {
@@ -280,6 +292,10 @@
280
292
  "node": ">=10"
281
293
  }
282
294
  },
295
+ "node_modules/cordova-plugin-puchasely-google": {
296
+ "resolved": "../../purchasely-google",
297
+ "link": true
298
+ },
283
299
  "node_modules/cordova-plugin-purchasely": {
284
300
  "resolved": "..",
285
301
  "link": true
@@ -360,9 +376,9 @@
360
376
  ]
361
377
  },
362
378
  "node_modules/fast-glob": {
363
- "version": "3.2.7",
364
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz",
365
- "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==",
379
+ "version": "3.2.11",
380
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz",
381
+ "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
366
382
  "dev": true,
367
383
  "dependencies": {
368
384
  "@nodelib/fs.stat": "^2.0.2",
@@ -372,7 +388,7 @@
372
388
  "micromatch": "^4.0.4"
373
389
  },
374
390
  "engines": {
375
- "node": ">=8"
391
+ "node": ">=8.6.0"
376
392
  }
377
393
  },
378
394
  "node_modules/fast-json-parse": {
@@ -565,9 +581,9 @@
565
581
  }
566
582
  },
567
583
  "node_modules/is-core-module": {
568
- "version": "2.9.0",
569
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz",
570
- "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==",
584
+ "version": "2.10.0",
585
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
586
+ "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
571
587
  "dev": true,
572
588
  "dependencies": {
573
589
  "has": "^1.0.3"
@@ -913,12 +929,12 @@
913
929
  }
914
930
  },
915
931
  "node_modules/resolve": {
916
- "version": "1.22.0",
917
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
918
- "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
932
+ "version": "1.22.1",
933
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
934
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
919
935
  "dev": true,
920
936
  "dependencies": {
921
- "is-core-module": "^2.8.1",
937
+ "is-core-module": "^2.9.0",
922
938
  "path-parse": "^1.0.7",
923
939
  "supports-preserve-symlinks-flag": "^1.0.0"
924
940
  },
@@ -969,9 +985,9 @@
969
985
  "dev": true
970
986
  },
971
987
  "node_modules/semver": {
972
- "version": "7.3.5",
973
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
974
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
988
+ "version": "7.3.7",
989
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
990
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
975
991
  "dev": true,
976
992
  "dependencies": {
977
993
  "lru-cache": "^6.0.0"
@@ -1276,6 +1292,9 @@
1276
1292
  "fastq": "^1.6.0"
1277
1293
  }
1278
1294
  },
1295
+ "@purchasely/cordova-plugin-puchasely-google": {
1296
+ "version": "file:../../purchasely-google"
1297
+ },
1279
1298
  "abbrev": {
1280
1299
  "version": "1.1.1",
1281
1300
  "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
@@ -1379,20 +1398,20 @@
1379
1398
  "dev": true
1380
1399
  },
1381
1400
  "cordova-android": {
1382
- "version": "10.1.2",
1383
- "resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-10.1.2.tgz",
1384
- "integrity": "sha512-F28+NvgKO4ZhKFkqctCOh62mhVoNyUuRQh/F/nqp+Sti4ODv2rUa6UeW18khhdYTjlDeihHQsPqxvB7mI6fVYA==",
1401
+ "version": "11.0.0",
1402
+ "resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-11.0.0.tgz",
1403
+ "integrity": "sha512-ZhvSF5BYY8gmrAu1PtMPdHFsRoom/emT4OtTcecmh3Zj22900y4Golg5whhBPcYcTPC7BU6PG/EmG9BBHcX9tQ==",
1385
1404
  "dev": true,
1386
1405
  "requires": {
1387
1406
  "android-versions": "^1.7.0",
1388
1407
  "cordova-common": "^4.0.2",
1389
1408
  "execa": "^5.1.1",
1390
- "fast-glob": "^3.2.7",
1391
- "fs-extra": "^10.0.0",
1409
+ "fast-glob": "^3.2.11",
1410
+ "fs-extra": "^10.1.0",
1392
1411
  "is-path-inside": "^3.0.3",
1393
1412
  "nopt": "^5.0.0",
1394
1413
  "properties-parser": "^0.3.1",
1395
- "semver": "^7.3.5",
1414
+ "semver": "^7.3.7",
1396
1415
  "untildify": "^4.0.0",
1397
1416
  "which": "^2.0.2"
1398
1417
  },
@@ -1450,6 +1469,9 @@
1450
1469
  "xml-escape": "^1.1.0"
1451
1470
  }
1452
1471
  },
1472
+ "cordova-plugin-puchasely-google": {
1473
+ "version": "file:../../purchasely-google"
1474
+ },
1453
1475
  "cordova-plugin-purchasely": {
1454
1476
  "version": "file:.."
1455
1477
  },
@@ -1514,9 +1536,9 @@
1514
1536
  "dev": true
1515
1537
  },
1516
1538
  "fast-glob": {
1517
- "version": "3.2.7",
1518
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz",
1519
- "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==",
1539
+ "version": "3.2.11",
1540
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz",
1541
+ "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
1520
1542
  "dev": true,
1521
1543
  "requires": {
1522
1544
  "@nodelib/fs.stat": "^2.0.2",
@@ -1676,9 +1698,9 @@
1676
1698
  }
1677
1699
  },
1678
1700
  "is-core-module": {
1679
- "version": "2.9.0",
1680
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz",
1681
- "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==",
1701
+ "version": "2.10.0",
1702
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
1703
+ "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
1682
1704
  "dev": true,
1683
1705
  "requires": {
1684
1706
  "has": "^1.0.3"
@@ -1920,12 +1942,12 @@
1920
1942
  }
1921
1943
  },
1922
1944
  "resolve": {
1923
- "version": "1.22.0",
1924
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
1925
- "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
1945
+ "version": "1.22.1",
1946
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
1947
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
1926
1948
  "dev": true,
1927
1949
  "requires": {
1928
- "is-core-module": "^2.8.1",
1950
+ "is-core-module": "^2.9.0",
1929
1951
  "path-parse": "^1.0.7",
1930
1952
  "supports-preserve-symlinks-flag": "^1.0.0"
1931
1953
  }
@@ -1952,9 +1974,9 @@
1952
1974
  "dev": true
1953
1975
  },
1954
1976
  "semver": {
1955
- "version": "7.3.5",
1956
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
1957
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
1977
+ "version": "7.3.7",
1978
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
1979
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
1958
1980
  "dev": true,
1959
1981
  "requires": {
1960
1982
  "lru-cache": "^6.0.0"
@@ -13,14 +13,20 @@
13
13
  "author": "Apache Cordova Team",
14
14
  "license": "Apache-2.0",
15
15
  "devDependencies": {
16
- "cordova-android": "^10.1.2",
16
+ "@purchasely/cordova-plugin-puchasely-google": "file:../../purchasely-google",
17
+ "cordova-android": "^11.0.0",
17
18
  "cordova-ios": "^6.2.0",
19
+ "cordova-plugin-puchasely-google": "file:../../purchasely-google",
18
20
  "cordova-plugin-purchasely": "file:.."
19
21
  },
20
22
  "cordova": {
21
- "plugins": {},
23
+ "plugins": {
24
+ "cordova-plugin-puchasely-google": {},
25
+ "@purchasely/cordova-plugin-puchasely-google": {}
26
+ },
22
27
  "platforms": [
23
- "android"
28
+ "android",
29
+ "ios"
24
30
  ]
25
31
  }
26
- }
32
+ }
@@ -27,7 +27,9 @@ function onDeviceReady() {
27
27
  console.log('Running cordova-' + cordova.platformId + '@' + cordova.version);
28
28
  document.getElementById('deviceready').classList.add('ready');
29
29
 
30
- Purchasely.setLanguage('en')
30
+ Purchasely.setLanguage('en');
31
+
32
+ Purchasely.userDidConsumeSubscriptionContent();
31
33
 
32
34
  Purchasely.startWithAPIKey(
33
35
  'fcb39be4-2ba4-4db7-bde3-2a5a1e20745d',
@@ -98,6 +100,7 @@ function onPuchaselySdkReady() {
98
100
  console.log(plan.introPrice);
99
101
  console.log(plan.introAmount);
100
102
  console.log(plan.introDuration);
103
+ console.log('Eligible for intro offer ? ' + plan.isEligibleForIntroOffer);
101
104
  }, (error) => {
102
105
  console.log(error);
103
106
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purchasely/cordova-plugin-purchasely",
3
- "version": "2.2.4",
3
+ "version": "2.3.1",
4
4
  "description": "Purchasely is a solution to ease the integration and boost your In-App Purchases & Subscriptions on the App Store, Google Play Store, Amazon Appstore and Huawei App Gallery.",
5
5
  "cordova": {
6
6
  "id": "@purchasely/cordova-plugin-purchasely",
package/plugin.xml CHANGED
@@ -1,5 +1,5 @@
1
1
  <?xml version='1.0' encoding='utf-8'?>
2
- <plugin id="@purchasely/cordova-plugin-purchasely" version="2.2.4" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
2
+ <plugin id="@purchasely/cordova-plugin-purchasely" version="2.3.1" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
3
3
  <name>Purchasely</name>
4
4
  <js-module name="Purchasely" src="www/Purchasely.js">
5
5
  <clobbers target="Purchasely" />
@@ -28,7 +28,7 @@
28
28
  <source url="https://github.com/CocoaPods/Specs.git"/>
29
29
  </config>
30
30
  <pods use-frameworks="true">
31
- <pod name="Purchasely" spec="3.2.3"/>
31
+ <pod name="Purchasely" spec="3.3.3"/>
32
32
  </pods>
33
33
  </podspec>
34
34
  </platform>
@@ -51,7 +51,7 @@
51
51
  android:theme="@style/Theme.AppCompat.Light.NoActionBar">
52
52
  </activity>
53
53
  </config-file>
54
- <framework src="io.purchasely:core:3.2.2" />
54
+ <framework src="io.purchasely:core:3.3.2" />
55
55
  <source-file src="src/android/PurchaselyPlugin.java" target-dir="src/cordova/plugin/purchasely" />
56
56
  <source-file src="src/android/PLYProductActivity.java" target-dir="src/cordova/plugin/purchasely" />
57
57
  <source-file src="src/android/PLYSubscriptionsActivity.java" target-dir="src/cordova/plugin/purchasely" />
@@ -195,6 +195,9 @@ public class PurchaselyPlugin extends CordovaPlugin {
195
195
  case "closePaywall":
196
196
  closePaywall(callbackContext);
197
197
  break;
198
+ case "userDidConsumeSubscriptionContent":
199
+ userDidConsumeSubscriptionContent();
200
+ break;
198
201
  default:
199
202
  return false;
200
203
  }
@@ -398,6 +401,10 @@ public class PurchaselyPlugin extends CordovaPlugin {
398
401
  Purchasely.synchronize();
399
402
  }
400
403
 
404
+ private void userDidConsumeSubscriptionContent() {
405
+ Purchasely.userDidConsumeSubscriptionContent();
406
+ }
407
+
401
408
  private void presentPresentationWithIdentifier(String presentationVendorId,
402
409
  String contentId,
403
410
  boolean isFullScreen,
@@ -685,6 +692,8 @@ public class PurchaselyPlugin extends CordovaPlugin {
685
692
  } else if(plan.getType() == DistributionType.UNKNOWN) {
686
693
  map.put("type", DistributionType.UNKNOWN.ordinal());
687
694
  }
695
+
696
+ map.put("isEligibleForIntroOffer", plan.isEligibleToIntroOffer());
688
697
  return map;
689
698
  }
690
699
 
@@ -47,5 +47,6 @@
47
47
  - (void)setPaywallActionInterceptor:(CDVInvokedUrlCommand*)command;
48
48
  - (void)onProcessAction:(CDVInvokedUrlCommand*)command;
49
49
  - (void)closePaywall:(CDVInvokedUrlCommand*)command;
50
+ - (void)userDidConsumeSubscriptionContent:(CDVInvokedUrlCommand*)command;
50
51
 
51
52
  @end
@@ -442,6 +442,10 @@
442
442
  }
443
443
  }
444
444
 
445
+ - (void)userDidConsumeSubscriptionContent:(CDVInvokedUrlCommand*)command {
446
+ [Purchasely userDidConsumeSubscriptionContent];
447
+ }
448
+
445
449
  - (void)successFor:(CDVInvokedUrlCommand *)command {
446
450
  CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
447
451
  [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
@@ -15,6 +15,7 @@
15
15
  [dict setObject:self.vendorId forKey:@"vendorId"];
16
16
  [dict setObject:@(self.hasIntroductoryPrice) forKey:@"hasIntroductoryPrice"];
17
17
  [dict setObject:@([self type]) forKey:@"type"];
18
+ [dict setObject:@([self isEligibleForIntroOffer]) forKey:@"isEligibleForIntroOffer"];
18
19
 
19
20
  if (self.hasIntroductoryPrice && [[self introAmount] intValue] == 0) {
20
21
  [dict setObject:@(YES) forKey:@"hasFreeTrial"];
package/www/Purchasely.js CHANGED
@@ -5,7 +5,7 @@ var defaultError = (e) => { console.log(e); }
5
5
  exports.startWithAPIKey = function (apiKey, stores, userId, logLevel, runningMode, success, error) {
6
6
  var cordovaSdkVersion = cordova.define.moduleMap['cordova/plugin_list'].exports['metadata']['cordova-plugin-purchasely']
7
7
  if(!cordovaSdkVersion) {
8
- cordovaSdkVersion = "2.2.0" //fallback if we cannot find version from metadata
8
+ cordovaSdkVersion = "2.3.0" //fallback if we cannot find version from metadata
9
9
  }
10
10
  exec(success, error, 'Purchasely', 'startWithAPIKey', [apiKey, stores, userId, logLevel, runningMode, cordovaSdkVersion]);
11
11
  };
@@ -118,6 +118,10 @@ exports.closePaywall = function () {
118
118
  exec(() => {}, defaultError, 'Purchasely', 'closePaywall', []);
119
119
  };
120
120
 
121
+ exports.userDidConsumeSubscriptionContent = function () {
122
+ exec(() => {}, defaultError, 'Purchasely', 'userDidConsumeSubscriptionContent', []);
123
+ };
124
+
121
125
  exports.userSubscriptions = function (success, error) {
122
126
  exec(success, defaultError, 'Purchasely', 'userSubscriptions', []);
123
127
  };
@@ -134,15 +138,19 @@ exports.LogLevel = {
134
138
  }
135
139
 
136
140
  exports.Attribute = {
137
- AMPLITUDE_SESSION_ID: 0,
138
- FIREBASE_APP_INSTANCE_ID: 1,
139
- AIRSHIP_CHANNEL_ID: 2,
141
+ AMPLITUDE_SESSION_ID: 0,
142
+ FIREBASE_APP_INSTANCE_ID: 1,
143
+ AIRSHIP_CHANNEL_ID: 2,
140
144
  BATCH_INSTALLATION_ID: 3,
141
145
  ADJUST_ID: 4,
142
146
  APPSFLYER_ID: 5,
143
147
  ONESIGNAL_PLAYER_ID: 6,
144
148
  MIXPANEL_DISTINCT_ID: 7,
145
- CLEVER_TAP_ID: 8
149
+ CLEVER_TAP_ID: 8,
150
+ SENDINBLUE_USER_EMAIL: 9,
151
+ ITERABLE_USER_ID: 10,
152
+ ITERABLE_USER_EMAIL: 11,
153
+ AT_INTERNET_ID_CLIENT: 12
146
154
  }
147
155
 
148
156
  exports.PurchaseResult = {