@solana-mobile/dapp-store-cli 0.10.0 → 0.12.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 (35) hide show
  1. package/lib/CliSetup.js +468 -568
  2. package/lib/CliUtils.js +18 -33
  3. package/lib/__tests__/CliSetupTest.js +4 -27
  4. package/lib/commands/ValidateCommand.js +15 -40
  5. package/lib/commands/create/CreateCliApp.js +18 -30
  6. package/lib/commands/create/CreateCliRelease.js +24 -27
  7. package/lib/commands/create/index.js +0 -1
  8. package/lib/commands/publish/PublishCliRemove.js +11 -19
  9. package/lib/commands/publish/PublishCliSubmit.js +11 -19
  10. package/lib/commands/publish/PublishCliSupport.js +11 -19
  11. package/lib/commands/publish/PublishCliUpdate.js +11 -19
  12. package/lib/commands/utils.js +6 -14
  13. package/lib/config/PublishDetails.js +138 -259
  14. package/lib/generated/config_obj.json +1 -1
  15. package/lib/generated/config_schema.json +1 -1
  16. package/lib/index.js +6 -14
  17. package/lib/package.json +2 -2
  18. package/lib/prebuild_schema/publishing_source.yaml +32 -32
  19. package/lib/upload/CachedStorageDriver.js +13 -19
  20. package/package.json +2 -2
  21. package/src/CliSetup.ts +5 -54
  22. package/src/CliUtils.ts +5 -11
  23. package/src/__tests__/CliSetupTest.ts +8 -43
  24. package/src/commands/ValidateCommand.ts +0 -20
  25. package/src/commands/create/CreateCliApp.ts +1 -8
  26. package/src/commands/create/CreateCliRelease.ts +10 -1
  27. package/src/commands/create/index.ts +0 -1
  28. package/src/commands/publish/PublishCliRemove.ts +1 -2
  29. package/src/commands/publish/PublishCliSubmit.ts +1 -2
  30. package/src/commands/publish/PublishCliSupport.ts +1 -2
  31. package/src/commands/publish/PublishCliUpdate.ts +1 -2
  32. package/src/config/PublishDetails.ts +30 -58
  33. package/src/prebuild_schema/publishing_source.yaml +32 -32
  34. package/lib/commands/create/CreateCliPublisher.js +0 -237
  35. package/src/commands/create/CreateCliPublisher.ts +0 -87
@@ -112,7 +112,7 @@ function _unsupported_iterable_to_array(o, minLen) {
112
112
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
113
113
  }
114
114
  function _ts_generator(thisArg, body) {
115
- var f, y, t, g, _ = {
115
+ var f, y, t, _ = {
116
116
  label: 0,
117
117
  sent: function() {
118
118
  if (t[0] & 1) throw t[1];
@@ -120,12 +120,8 @@ function _ts_generator(thisArg, body) {
120
120
  },
121
121
  trys: [],
122
122
  ops: []
123
- };
124
- return g = {
125
- next: verb(0),
126
- "throw": verb(1),
127
- "return": verb(2)
128
- }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
123
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
124
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
129
125
  return this;
130
126
  }), g;
131
127
  function verb(n) {
@@ -138,7 +134,7 @@ function _ts_generator(thisArg, body) {
138
134
  }
139
135
  function step(op) {
140
136
  if (f) throw new TypeError("Generator is already executing.");
141
- while(_)try {
137
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
142
138
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
143
139
  if (y = 0, t) op = [
144
140
  op[0] & 2,
@@ -236,8 +232,8 @@ var ajv = new Ajv({
236
232
  strictTuples: false
237
233
  });
238
234
  var validate = ajv.compile(schemaJson);
239
- export var loadPublishDetails = /*#__PURE__*/ function() {
240
- var _ref = _async_to_generator(function(configPath) {
235
+ export var loadPublishDetails = function(configPath) {
236
+ return _async_to_generator(function() {
241
237
  var configFile, valid;
242
238
  return _ts_generator(this, function(_state) {
243
239
  switch(_state.label){
@@ -259,19 +255,15 @@ export var loadPublishDetails = /*#__PURE__*/ function() {
259
255
  ];
260
256
  }
261
257
  });
262
- });
263
- return function loadPublishDetails(configPath) {
264
- return _ref.apply(this, arguments);
265
- };
266
- }();
267
- export var loadPublishDetailsWithChecks = /*#__PURE__*/ function() {
268
- var _ref = _async_to_generator(function() {
269
- var buildToolsDir, _config_publisher_media_find, _config_publisher_media, _config_app_media_find, _config_app_media, _config_release_media_find, _config_release_media, _config_release_media_find1, _config_release_media1, _config_release_media_find2, _config_release_media2, _config_release_media3, _config_release_media4, config, apkEntry, apkPath, _, publisherIcon, iconPath, iconBuffer, appIcon, iconPath1, iconBuffer1, releaseIcon, iconPath2, banner, bannerPath, featureGraphic, featureGraphicPath, screenshots, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, item, mediaPath, err, videos, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, video, mediaPath1, err, googlePkg, pkgCompare, alpha_testers, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, wallet;
270
- var _arguments = arguments;
258
+ })();
259
+ };
260
+ export var loadPublishDetailsWithChecks = function() {
261
+ var buildToolsDir = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : null;
262
+ return _async_to_generator(function() {
263
+ var _config_app_media_find, _config_app_media, _config_release_media_find, _config_release_media, _config_release_media_find1, _config_release_media1, _config_release_media_find2, _config_release_media2, _config_release_media3, _config_release_media4, config, apkEntry, apkPath, developerOverridenLocales, _, appIcon, iconPath, iconBuffer, releaseIcon, iconPath1, banner, bannerPath, featureGraphic, featureGraphicPath, screenshots, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, item, mediaPath, err, videos, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, video, mediaPath1, err, googlePkg, pkgCompare, alpha_testers, _iteratorNormalCompletion2, _didIteratorError2, _iteratorError2, _iterator2, _step2, wallet;
271
264
  return _ts_generator(this, function(_state) {
272
265
  switch(_state.label){
273
266
  case 0:
274
- buildToolsDir = _arguments.length > 0 && _arguments[0] !== void 0 ? _arguments[0] : null;
275
267
  return [
276
268
  4,
277
269
  loadPublishDetails(Constants.getConfigFilePath())
@@ -286,6 +278,7 @@ export var loadPublishDetailsWithChecks = /*#__PURE__*/ function() {
286
278
  if (!fs.existsSync(apkPath)) {
287
279
  throw new Error("Invalid path to APK file.");
288
280
  }
281
+ developerOverridenLocales = config.release.android_details.locales;
289
282
  if (!buildToolsDir) return [
290
283
  3,
291
284
  3
@@ -293,23 +286,23 @@ export var loadPublishDetailsWithChecks = /*#__PURE__*/ function() {
293
286
  _ = config.release;
294
287
  return [
295
288
  4,
296
- getAndroidDetails(buildToolsDir, apkPath)
289
+ getAndroidDetails(buildToolsDir, apkPath, developerOverridenLocales)
297
290
  ];
298
291
  case 2:
299
292
  _.android_details = _state.sent();
300
293
  _state.label = 3;
301
294
  case 3:
302
- publisherIcon = (_config_publisher_media = config.publisher.media) === null || _config_publisher_media === void 0 ? void 0 : (_config_publisher_media_find = _config_publisher_media.find(function(asset) {
295
+ appIcon = (_config_app_media = config.app.media) === null || _config_app_media === void 0 ? void 0 : (_config_app_media_find = _config_app_media.find(function(asset) {
303
296
  return asset.purpose === "icon";
304
- })) === null || _config_publisher_media_find === void 0 ? void 0 : _config_publisher_media_find.uri;
305
- if (!publisherIcon) return [
297
+ })) === null || _config_app_media_find === void 0 ? void 0 : _config_app_media_find.uri;
298
+ if (!appIcon) return [
306
299
  3,
307
300
  6
308
301
  ];
309
- iconPath = path.join(process.cwd(), publisherIcon);
302
+ iconPath = path.join(process.cwd(), appIcon);
310
303
  return [
311
304
  4,
312
- checkIconCompatibility(iconPath, "Publisher")
305
+ checkIconCompatibility(iconPath, "App")
313
306
  ];
314
307
  case 4:
315
308
  _state.sent();
@@ -319,48 +312,25 @@ export var loadPublishDetailsWithChecks = /*#__PURE__*/ function() {
319
312
  ];
320
313
  case 5:
321
314
  iconBuffer = _state.sent();
322
- config.publisher.icon = toMetaplexFile(iconBuffer, publisherIcon);
315
+ config.app.icon = toMetaplexFile(iconBuffer, appIcon);
323
316
  _state.label = 6;
324
317
  case 6:
325
- appIcon = (_config_app_media = config.app.media) === null || _config_app_media === void 0 ? void 0 : (_config_app_media_find = _config_app_media.find(function(asset) {
326
- return asset.purpose === "icon";
327
- })) === null || _config_app_media_find === void 0 ? void 0 : _config_app_media_find.uri;
328
- if (!appIcon) return [
329
- 3,
330
- 9
331
- ];
332
- iconPath1 = path.join(process.cwd(), appIcon);
333
- return [
334
- 4,
335
- checkIconCompatibility(iconPath1, "App")
336
- ];
337
- case 7:
338
- _state.sent();
339
- return [
340
- 4,
341
- fs.promises.readFile(iconPath1)
342
- ];
343
- case 8:
344
- iconBuffer1 = _state.sent();
345
- config.app.icon = toMetaplexFile(iconBuffer1, appIcon);
346
- _state.label = 9;
347
- case 9:
348
318
  releaseIcon = (_config_release_media = config.release.media) === null || _config_release_media === void 0 ? void 0 : (_config_release_media_find = _config_release_media.find(function(asset) {
349
319
  return asset.purpose === "icon";
350
320
  })) === null || _config_release_media_find === void 0 ? void 0 : _config_release_media_find.uri;
351
321
  if (!releaseIcon) return [
352
322
  3,
353
- 11
323
+ 8
354
324
  ];
355
- iconPath2 = path.join(process.cwd(), releaseIcon);
325
+ iconPath1 = path.join(process.cwd(), releaseIcon);
356
326
  return [
357
327
  4,
358
- checkIconCompatibility(iconPath2, "Release")
328
+ checkIconCompatibility(iconPath1, "Release")
359
329
  ];
360
- case 10:
330
+ case 7:
361
331
  _state.sent();
362
- _state.label = 11;
363
- case 11:
332
+ _state.label = 8;
333
+ case 8:
364
334
  if (!appIcon && !releaseIcon) {
365
335
  throw new Error("Please specify at least one media entry of type icon in your configuration file");
366
336
  }
@@ -369,33 +339,38 @@ export var loadPublishDetailsWithChecks = /*#__PURE__*/ function() {
369
339
  })) === null || _config_release_media_find1 === void 0 ? void 0 : _config_release_media_find1.uri;
370
340
  if (!banner) return [
371
341
  3,
372
- 13
342
+ 10
373
343
  ];
374
344
  bannerPath = path.join(process.cwd(), banner);
375
345
  return [
376
346
  4,
377
347
  checkBannerCompatibility(bannerPath)
378
348
  ];
379
- case 12:
349
+ case 9:
380
350
  _state.sent();
381
- _state.label = 13;
382
- case 13:
351
+ return [
352
+ 3,
353
+ 11
354
+ ];
355
+ case 10:
356
+ throw new Error("Please specify banner image of size 1200x600 in your configuration file");
357
+ case 11:
383
358
  featureGraphic = (_config_release_media2 = config.release.media) === null || _config_release_media2 === void 0 ? void 0 : (_config_release_media_find2 = _config_release_media2.find(function(asset) {
384
359
  return asset.purpose === "featureGraphic";
385
360
  })) === null || _config_release_media_find2 === void 0 ? void 0 : _config_release_media_find2.uri;
386
361
  if (!featureGraphic) return [
387
362
  3,
388
- 15
363
+ 13
389
364
  ];
390
365
  featureGraphicPath = path.join(process.cwd(), featureGraphic);
391
366
  return [
392
367
  4,
393
368
  checkFeatureGraphicCompatibility(featureGraphicPath)
394
369
  ];
395
- case 14:
370
+ case 12:
396
371
  _state.sent();
397
- _state.label = 15;
398
- case 15:
372
+ _state.label = 13;
373
+ case 13:
399
374
  config.release.media.forEach(function(item) {
400
375
  var mediaPath = path.join(process.cwd(), item.uri);
401
376
  if (!fs.existsSync(mediaPath)) {
@@ -412,20 +387,20 @@ export var loadPublishDetailsWithChecks = /*#__PURE__*/ function() {
412
387
  return asset.purpose === "screenshot";
413
388
  });
414
389
  _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
415
- _state.label = 16;
416
- case 16:
390
+ _state.label = 14;
391
+ case 14:
417
392
  _state.trys.push([
418
- 16,
419
- 21,
420
- 22,
421
- 23
393
+ 14,
394
+ 19,
395
+ 20,
396
+ 21
422
397
  ]);
423
398
  _iterator = screenshots[Symbol.iterator]();
424
- _state.label = 17;
425
- case 17:
399
+ _state.label = 15;
400
+ case 15:
426
401
  if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
427
402
  3,
428
- 20
403
+ 18
429
404
  ];
430
405
  item = _step.value;
431
406
  mediaPath = path.join(process.cwd(), item.uri);
@@ -433,31 +408,31 @@ export var loadPublishDetailsWithChecks = /*#__PURE__*/ function() {
433
408
  4,
434
409
  checkScreenshotDimensions(mediaPath)
435
410
  ];
436
- case 18:
411
+ case 16:
437
412
  if (_state.sent()) {
438
413
  throw new Error("Screenshot ".concat(mediaPath, " must be at least 1080px in width and height."));
439
414
  }
440
- _state.label = 19;
441
- case 19:
415
+ _state.label = 17;
416
+ case 17:
442
417
  _iteratorNormalCompletion = true;
443
418
  return [
444
419
  3,
445
- 17
420
+ 15
446
421
  ];
447
- case 20:
422
+ case 18:
448
423
  return [
449
424
  3,
450
- 23
425
+ 21
451
426
  ];
452
- case 21:
427
+ case 19:
453
428
  err = _state.sent();
454
429
  _didIteratorError = true;
455
430
  _iteratorError = err;
456
431
  return [
457
432
  3,
458
- 23
433
+ 21
459
434
  ];
460
- case 22:
435
+ case 20:
461
436
  try {
462
437
  if (!_iteratorNormalCompletion && _iterator.return != null) {
463
438
  _iterator.return();
@@ -470,25 +445,25 @@ export var loadPublishDetailsWithChecks = /*#__PURE__*/ function() {
470
445
  return [
471
446
  7
472
447
  ];
473
- case 23:
448
+ case 21:
474
449
  videos = (_config_release_media4 = config.release.media) === null || _config_release_media4 === void 0 ? void 0 : _config_release_media4.filter(function(asset) {
475
450
  return asset.purpose === "video";
476
451
  });
477
452
  _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
478
- _state.label = 24;
479
- case 24:
453
+ _state.label = 22;
454
+ case 22:
480
455
  _state.trys.push([
481
- 24,
482
- 29,
483
- 30,
484
- 31
456
+ 22,
457
+ 27,
458
+ 28,
459
+ 29
485
460
  ]);
486
461
  _iterator1 = videos[Symbol.iterator]();
487
- _state.label = 25;
488
- case 25:
462
+ _state.label = 23;
463
+ case 23:
489
464
  if (!!(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done)) return [
490
465
  3,
491
- 28
466
+ 26
492
467
  ];
493
468
  video = _step1.value;
494
469
  mediaPath1 = path.join(process.cwd(), video.uri);
@@ -496,31 +471,31 @@ export var loadPublishDetailsWithChecks = /*#__PURE__*/ function() {
496
471
  4,
497
472
  checkVideoDimensions(mediaPath1)
498
473
  ];
499
- case 26:
474
+ case 24:
500
475
  if (_state.sent()) {
501
476
  throw new Error("Video ".concat(mediaPath1, " must be at least 720px in width and height."));
502
477
  }
503
- _state.label = 27;
504
- case 27:
478
+ _state.label = 25;
479
+ case 25:
505
480
  _iteratorNormalCompletion1 = true;
506
481
  return [
507
482
  3,
508
- 25
483
+ 23
509
484
  ];
510
- case 28:
485
+ case 26:
511
486
  return [
512
487
  3,
513
- 31
488
+ 29
514
489
  ];
515
- case 29:
490
+ case 27:
516
491
  err = _state.sent();
517
492
  _didIteratorError1 = true;
518
493
  _iteratorError1 = err;
519
494
  return [
520
495
  3,
521
- 31
496
+ 29
522
497
  ];
523
- case 30:
498
+ case 28:
524
499
  try {
525
500
  if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
526
501
  _iterator1.return();
@@ -533,7 +508,7 @@ export var loadPublishDetailsWithChecks = /*#__PURE__*/ function() {
533
508
  return [
534
509
  7
535
510
  ];
536
- case 31:
511
+ case 29:
537
512
  if (screenshots.length + videos.length < 4) {
538
513
  throw new Error("At least 4 screenshots or videos are required for publishing a new release. Found only ".concat(screenshots.length + videos.length));
539
514
  }
@@ -581,13 +556,10 @@ export var loadPublishDetailsWithChecks = /*#__PURE__*/ function() {
581
556
  ];
582
557
  }
583
558
  });
584
- });
585
- return function loadPublishDetailsWithChecks() {
586
- return _ref.apply(this, arguments);
587
- };
588
- }();
589
- var checkIconCompatibility = /*#__PURE__*/ function() {
590
- var _ref = _async_to_generator(function(path, typeString) {
559
+ })();
560
+ };
561
+ var checkIconCompatibility = function(path, typeString) {
562
+ return _async_to_generator(function() {
591
563
  return _ts_generator(this, function(_state) {
592
564
  switch(_state.label){
593
565
  case 0:
@@ -607,13 +579,10 @@ var checkIconCompatibility = /*#__PURE__*/ function() {
607
579
  ];
608
580
  }
609
581
  });
610
- });
611
- return function checkIconCompatibility(path, typeString) {
612
- return _ref.apply(this, arguments);
613
- };
614
- }();
615
- var checkBannerCompatibility = /*#__PURE__*/ function() {
616
- var _ref = _async_to_generator(function(path) {
582
+ })();
583
+ };
584
+ var checkBannerCompatibility = function(path) {
585
+ return _async_to_generator(function() {
617
586
  return _ts_generator(this, function(_state) {
618
587
  switch(_state.label){
619
588
  case 0:
@@ -633,13 +602,10 @@ var checkBannerCompatibility = /*#__PURE__*/ function() {
633
602
  ];
634
603
  }
635
604
  });
636
- });
637
- return function checkBannerCompatibility(path) {
638
- return _ref.apply(this, arguments);
639
- };
640
- }();
641
- var checkFeatureGraphicCompatibility = /*#__PURE__*/ function() {
642
- var _ref = _async_to_generator(function(path) {
605
+ })();
606
+ };
607
+ var checkFeatureGraphicCompatibility = function(path) {
608
+ return _async_to_generator(function() {
643
609
  return _ts_generator(this, function(_state) {
644
610
  switch(_state.label){
645
611
  case 0:
@@ -659,11 +625,8 @@ var checkFeatureGraphicCompatibility = /*#__PURE__*/ function() {
659
625
  ];
660
626
  }
661
627
  });
662
- });
663
- return function checkFeatureGraphicCompatibility(path) {
664
- return _ref.apply(this, arguments);
665
- };
666
- }();
628
+ })();
629
+ };
667
630
  var checkImageExtension = function(uri) {
668
631
  var fileExt = path.extname(uri).toLowerCase();
669
632
  return fileExt == ".png" || fileExt == ".jpg" || fileExt == ".jpeg" || fileExt == ".webp";
@@ -694,8 +657,8 @@ var checkVideoExtension = function(uri) {
694
657
  throw new Error("Please ensure all translations of short_description are between 0 and 30 characters");
695
658
  }
696
659
  };
697
- var checkIconDimensions = /*#__PURE__*/ function() {
698
- var _ref = _async_to_generator(function(iconPath) {
660
+ var checkIconDimensions = function(iconPath) {
661
+ return _async_to_generator(function() {
699
662
  var size, _size_width;
700
663
  return _ts_generator(this, function(_state) {
701
664
  switch(_state.label){
@@ -712,13 +675,10 @@ var checkIconDimensions = /*#__PURE__*/ function() {
712
675
  ];
713
676
  }
714
677
  });
715
- });
716
- return function checkIconDimensions(iconPath) {
717
- return _ref.apply(this, arguments);
718
- };
719
- }();
720
- var checkScreenshotDimensions = /*#__PURE__*/ function() {
721
- var _ref = _async_to_generator(function(imagePath) {
678
+ })();
679
+ };
680
+ var checkScreenshotDimensions = function(imagePath) {
681
+ return _async_to_generator(function() {
722
682
  var size, _size_width, _size_height;
723
683
  return _ts_generator(this, function(_state) {
724
684
  switch(_state.label){
@@ -735,13 +695,10 @@ var checkScreenshotDimensions = /*#__PURE__*/ function() {
735
695
  ];
736
696
  }
737
697
  });
738
- });
739
- return function checkScreenshotDimensions(imagePath) {
740
- return _ref.apply(this, arguments);
741
- };
742
- }();
743
- var checkBannerDimensions = /*#__PURE__*/ function() {
744
- var _ref = _async_to_generator(function(imagePath) {
698
+ })();
699
+ };
700
+ var checkBannerDimensions = function(imagePath) {
701
+ return _async_to_generator(function() {
745
702
  var size, _size_width, _size_height;
746
703
  return _ts_generator(this, function(_state) {
747
704
  switch(_state.label){
@@ -758,13 +715,10 @@ var checkBannerDimensions = /*#__PURE__*/ function() {
758
715
  ];
759
716
  }
760
717
  });
761
- });
762
- return function checkBannerDimensions(imagePath) {
763
- return _ref.apply(this, arguments);
764
- };
765
- }();
766
- var checkFeatureGraphicDimensions = /*#__PURE__*/ function() {
767
- var _ref = _async_to_generator(function(imagePath) {
718
+ })();
719
+ };
720
+ var checkFeatureGraphicDimensions = function(imagePath) {
721
+ return _async_to_generator(function() {
768
722
  var size, _size_width, _size_height;
769
723
  return _ts_generator(this, function(_state) {
770
724
  switch(_state.label){
@@ -781,13 +735,10 @@ var checkFeatureGraphicDimensions = /*#__PURE__*/ function() {
781
735
  ];
782
736
  }
783
737
  });
784
- });
785
- return function checkFeatureGraphicDimensions(imagePath) {
786
- return _ref.apply(this, arguments);
787
- };
788
- }();
789
- var checkVideoDimensions = /*#__PURE__*/ function() {
790
- var _ref = _async_to_generator(function(imagePath) {
738
+ })();
739
+ };
740
+ var checkVideoDimensions = function(imagePath) {
741
+ return _async_to_generator(function() {
791
742
  var size, _size_width, _size_height;
792
743
  return _ts_generator(this, function(_state) {
793
744
  switch(_state.label){
@@ -804,13 +755,10 @@ var checkVideoDimensions = /*#__PURE__*/ function() {
804
755
  ];
805
756
  }
806
757
  });
807
- });
808
- return function checkVideoDimensions(imagePath) {
809
- return _ref.apply(this, arguments);
810
- };
811
- }();
812
- var getAndroidDetails = /*#__PURE__*/ function() {
813
- var _ref = _async_to_generator(function(aaptDir, apkPath) {
758
+ })();
759
+ };
760
+ var getAndroidDetails = function(aaptDir, apkPath, developerOverridenLocales) {
761
+ return _async_to_generator(function() {
814
762
  var stdout, appPackage, versionCode, versionName, minSdk, permissions, locales, isDebuggable, _locales_values, localeArray, localesSrc, _appPackage_, _minSdk_, _versionCode_, _versionName_, _tmp, e;
815
763
  return _ts_generator(this, function(_state) {
816
764
  switch(_state.label){
@@ -852,13 +800,12 @@ var getAndroidDetails = /*#__PURE__*/ function() {
852
800
  if (permissions.includes("android.permission.REQUEST_INSTALL_PACKAGES") || permissions.includes("android.permission.REQUEST_DELETE_PACKAGES")) {
853
801
  showMessage("App requests install or delete permission", "App will be subject to additional security reviews for listing on Solana dApp Store and processing time may be beyond regular review time", "warning");
854
802
  }
855
- if (permissions.includes("com.solanamobile.seedvault.ACCESS_SEED_VAULT")) {
803
+ if (permissions.includes("com.solanamobile.seedvault.ACCESS_SEED_VAULT") || permissions.includes("com.solanamobile.seedvault.ACCESS_SEED_VAULT_PRIVILEGED")) {
856
804
  showMessage("App requests Seed Vault permission", "If this is not a wallet application, your app maybe rejected from listing on Solana dApp Store.", "warning");
857
805
  }
858
- if (localeArray.length >= 60) {
859
- showMessage("The bundle apk claims supports for following locales", "Claim for supported locales::\n" + localeArray + "\nIf this release does not support all these locales the release may be rejected" + "\nSee details at https://developer.android.com/guide/topics/resources/multilingual-support#design for configuring the supported locales", "warning");
806
+ if (developerOverridenLocales == null && localeArray.length >= 60 || (developerOverridenLocales === null || developerOverridenLocales === void 0 ? void 0 : developerOverridenLocales.length) >= 60) {
807
+ showMessage("Excessive language support detected", "The bundle apk claims supports for following locales \n" + localeArray + "\nYou config.yaml claims support for following locales\n" + developerOverridenLocales + "\nIf this release does not support all these locales the release may be rejected\n." + "You can override this list of supported locales in config.yaml" + "\nSee details at https://developer.android.com/guide/topics/resources/multilingual-support#design for configuring the supported locales in your apk file", "warning");
860
808
  }
861
- checkAbis(apkPath);
862
809
  _tmp = {
863
810
  android_package: (_appPackage_ = appPackage === null || appPackage === void 0 ? void 0 : appPackage[1]) !== null && _appPackage_ !== void 0 ? _appPackage_ : "",
864
811
  min_sdk: parseInt((_minSdk_ = minSdk === null || minSdk === void 0 ? void 0 : minSdk[1]) !== null && _minSdk_ !== void 0 ? _minSdk_ : "0", 10),
@@ -872,7 +819,7 @@ var getAndroidDetails = /*#__PURE__*/ function() {
872
819
  case 2:
873
820
  return [
874
821
  2,
875
- (_tmp.cert_fingerprint = _state.sent(), _tmp.permissions = permissions, _tmp.locales = localeArray, _tmp)
822
+ (_tmp.cert_fingerprint = _state.sent(), _tmp.permissions = permissions, _tmp.locales = developerOverridenLocales !== null && developerOverridenLocales !== void 0 ? developerOverridenLocales : localeArray, _tmp)
876
823
  ];
877
824
  case 3:
878
825
  e = _state.sent();
@@ -891,77 +838,10 @@ var getAndroidDetails = /*#__PURE__*/ function() {
891
838
  ];
892
839
  }
893
840
  });
894
- });
895
- return function getAndroidDetails(aaptDir, apkPath) {
896
- return _ref.apply(this, arguments);
897
- };
898
- }();
899
- var checkAbis = /*#__PURE__*/ function() {
900
- var _ref = _async_to_generator(function(apkPath) {
901
- var stdout, amV7libs, x86libs, x8664libs, messages, e;
902
- return _ts_generator(this, function(_state) {
903
- switch(_state.label){
904
- case 0:
905
- _state.trys.push([
906
- 0,
907
- 2,
908
- ,
909
- 3
910
- ]);
911
- return [
912
- 4,
913
- runExec("zipinfo -s ".concat(apkPath, " | grep .so$"))
914
- ];
915
- case 1:
916
- stdout = _state.sent().stdout;
917
- amV7libs = _to_consumable_array(stdout.matchAll(/lib\/armeabi-v7a\/(.*)/g)).flatMap(function(permission) {
918
- return permission[1];
919
- });
920
- x86libs = _to_consumable_array(stdout.matchAll(/lib\/x86\/(.*)/g)).flatMap(function(permission) {
921
- return permission[1];
922
- });
923
- x8664libs = _to_consumable_array(stdout.matchAll(/lib\/x86_64\/(.*)/g)).flatMap(function(permission) {
924
- return permission[1];
925
- });
926
- if (amV7libs.length > 0 || x86libs.length > 0 || x8664libs.length > 0) {
927
- messages = [
928
- "Solana dApp Store only supports arm64-v8a abi.",
929
- "Your apk file contains following unsupported abis"
930
- ].concat(_to_consumable_array(amV7libs.length > 0 ? [
931
- "\narmeabi-v7a:\n" + amV7libs
932
- ] : []), _to_consumable_array(x86libs.length > 0 ? [
933
- "\nx86:\n" + x86libs
934
- ] : []), _to_consumable_array(x8664libs.length > 0 ? [
935
- "\nx86_64:\n" + x8664libs
936
- ] : []), [
937
- "\n\nAlthough your app works fine on Saga, these library files are unused and increase the size of apk file making the download and update time longer for your app.",
938
- "\n\nSee https://developer.android.com/games/optimize/64-bit#build-with-64-bit for how to optimize your app."
939
- ]).join('\n');
940
- showMessage("Unsupported files found in apk", messages, "warning");
941
- }
942
- return [
943
- 3,
944
- 3
945
- ];
946
- case 2:
947
- e = _state.sent();
948
- return [
949
- 3,
950
- 3
951
- ];
952
- case 3:
953
- return [
954
- 2
955
- ];
956
- }
957
- });
958
- });
959
- return function checkAbis(apkPath) {
960
- return _ref.apply(this, arguments);
961
- };
962
- }();
963
- export var extractCertFingerprint = /*#__PURE__*/ function() {
964
- var _ref = _async_to_generator(function(aaptDir, apkPath) {
841
+ })();
842
+ };
843
+ export var extractCertFingerprint = function(aaptDir, apkPath) {
844
+ return _async_to_generator(function() {
965
845
  var stdout, regex, match;
966
846
  return _ts_generator(this, function(_state) {
967
847
  switch(_state.label){
@@ -987,18 +867,15 @@ export var extractCertFingerprint = /*#__PURE__*/ function() {
987
867
  ];
988
868
  }
989
869
  });
990
- });
991
- return function extractCertFingerprint(aaptDir, apkPath) {
992
- return _ref.apply(this, arguments);
993
- };
994
- }();
995
- export var writeToPublishDetails = /*#__PURE__*/ function() {
996
- var _ref = _async_to_generator(function(param) {
997
- var publisher, app, release, lastSubmittedVersionOnChain, lastUpdatedVersionOnStore, currentConfig, _publisher_address, _app_address, _release_address, newConfig;
870
+ })();
871
+ };
872
+ export var writeToPublishDetails = function(param) {
873
+ var app = param.app, release = param.release, lastSubmittedVersionOnChain = param.lastSubmittedVersionOnChain, lastUpdatedVersionOnStore = param.lastUpdatedVersionOnStore;
874
+ return _async_to_generator(function() {
875
+ var _release_android_details, _release_android_details1, _release_android_details2, _release_android_details3, _release_android_details4, currentConfig, _app_address, _release_address, _release_android_details_cert_fingerprint, _release_android_details_min_sdk, _release_android_details_version, _release_android_details_version_code, _release_android_details_locales, newConfig;
998
876
  return _ts_generator(this, function(_state) {
999
877
  switch(_state.label){
1000
878
  case 0:
1001
- publisher = param.publisher, app = param.app, release = param.release, lastSubmittedVersionOnChain = param.lastSubmittedVersionOnChain, lastUpdatedVersionOnStore = param.lastUpdatedVersionOnStore;
1002
879
  return [
1003
880
  4,
1004
881
  loadPublishDetailsWithChecks()
@@ -1008,14 +885,19 @@ export var writeToPublishDetails = /*#__PURE__*/ function() {
1008
885
  delete currentConfig.publisher.icon;
1009
886
  delete currentConfig.app.icon;
1010
887
  newConfig = {
1011
- publisher: _object_spread_props(_object_spread({}, currentConfig.publisher), {
1012
- address: (_publisher_address = publisher === null || publisher === void 0 ? void 0 : publisher.address) !== null && _publisher_address !== void 0 ? _publisher_address : currentConfig.publisher.address
1013
- }),
888
+ publisher: _object_spread({}, currentConfig.publisher),
1014
889
  app: _object_spread_props(_object_spread({}, currentConfig.app), {
1015
890
  address: (_app_address = app === null || app === void 0 ? void 0 : app.address) !== null && _app_address !== void 0 ? _app_address : currentConfig.app.address
1016
891
  }),
1017
892
  release: _object_spread_props(_object_spread({}, currentConfig.release), {
1018
- address: (_release_address = release === null || release === void 0 ? void 0 : release.address) !== null && _release_address !== void 0 ? _release_address : currentConfig.release.address
893
+ address: (_release_address = release === null || release === void 0 ? void 0 : release.address) !== null && _release_address !== void 0 ? _release_address : currentConfig.release.address,
894
+ android_details: {
895
+ cert_fingerprint: (_release_android_details_cert_fingerprint = release === null || release === void 0 ? void 0 : (_release_android_details = release.android_details) === null || _release_android_details === void 0 ? void 0 : _release_android_details.cert_fingerprint) !== null && _release_android_details_cert_fingerprint !== void 0 ? _release_android_details_cert_fingerprint : currentConfig.release.android_details.cert_fingerprint,
896
+ min_sdk: (_release_android_details_min_sdk = release === null || release === void 0 ? void 0 : (_release_android_details1 = release.android_details) === null || _release_android_details1 === void 0 ? void 0 : _release_android_details1.min_sdk) !== null && _release_android_details_min_sdk !== void 0 ? _release_android_details_min_sdk : currentConfig.release.android_details.min_sdk,
897
+ version: (_release_android_details_version = release === null || release === void 0 ? void 0 : (_release_android_details2 = release.android_details) === null || _release_android_details2 === void 0 ? void 0 : _release_android_details2.version) !== null && _release_android_details_version !== void 0 ? _release_android_details_version : currentConfig.release.android_details.version,
898
+ version_code: (_release_android_details_version_code = release === null || release === void 0 ? void 0 : (_release_android_details3 = release.android_details) === null || _release_android_details3 === void 0 ? void 0 : _release_android_details3.version_code) !== null && _release_android_details_version_code !== void 0 ? _release_android_details_version_code : currentConfig.release.android_details.version_code,
899
+ locales: (_release_android_details_locales = release === null || release === void 0 ? void 0 : (_release_android_details4 = release.android_details) === null || _release_android_details4 === void 0 ? void 0 : _release_android_details4.locales) !== null && _release_android_details_locales !== void 0 ? _release_android_details_locales : currentConfig.release.android_details.locales
900
+ }
1019
901
  }),
1020
902
  solana_mobile_dapp_publisher_portal: currentConfig.solana_mobile_dapp_publisher_portal,
1021
903
  lastSubmittedVersionOnChain: lastSubmittedVersionOnChain !== null && lastSubmittedVersionOnChain !== void 0 ? lastSubmittedVersionOnChain : currentConfig.lastSubmittedVersionOnChain,
@@ -1029,8 +911,5 @@ export var writeToPublishDetails = /*#__PURE__*/ function() {
1029
911
  ];
1030
912
  }
1031
913
  });
1032
- });
1033
- return function writeToPublishDetails(_) {
1034
- return _ref.apply(this, arguments);
1035
- };
1036
- }();
914
+ })();
915
+ };