fastlane-plugin-store_screenshot_check 0.1.0 → 0.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 39b9ce01745b8ea131d9492c960d34c66e4aff76fb7b74fa82b2b466bc273c54
4
- data.tar.gz: 8e45cba9c4706d5b90f0d1409706b25d71cc25544999375727e494ef692dec1c
3
+ metadata.gz: d91b0d3b71bb79040fb01c8a3fa6834fe550100c279d5a0ec3f5dba122a6daf6
4
+ data.tar.gz: 6bea841e05f48b8b57cecb3604c07423182c9d5adc3935bb58e747f6b79bcb19
5
5
  SHA512:
6
- metadata.gz: 4850003b14ce13a0a91b346e9b8919f8e2a990993905d6acf126fc94608ed865967f3a3af40216158a6bc0f09e36f14920c9978963b8f28b5a0a1a762713dd10
7
- data.tar.gz: c06003e8400e5604476c78183e5560a6fd00ce93090cea1d2112d542891ec53d8c9ebc0a8a389d8aa22286b49961e7f80241b84ef0dc86bae6faa3a1b2fa830b
6
+ metadata.gz: 7f5daf5bd204cb930c836129f94cd747346fff91f33c428784cd905cb0d5f68d1a16c63a008f37c1eafbc2797b94b522a350bc2a919403a02ebc6604fdf2b01a
7
+ data.tar.gz: 4d1728e35e8e59ec16634b33b2e5ceb4f78c0f2a90876fb20c4a4812d9a699468f82b9181b817f3a136ea09dbf1c9e64562cbcbe78030f1741122654be117b11
data/README.md CHANGED
@@ -5,16 +5,14 @@ Play. The `store_screenshot_check` action checks image data, dimensions,
5
5
  transparency and set counts using `@grunersoftware/store-screenshot-specs` 0.1.0.
6
6
  It returns a report and, by default, stops the lane when a file or set fails.
7
7
 
8
- Version 0.1.0 is available from its public GitHub release. Until the RubyGem is
9
- published, add the tagged repository to your project's `fastlane/Pluginfile`:
8
+ Version 0.1.1 is published on RubyGems. Add the plugin to a Fastlane project:
10
9
 
11
- ```ruby
12
- gem 'fastlane-plugin-store_screenshot_check',
13
- git: 'https://github.com/MartinGryner/fastlane-plugin-store_screenshot_check.git',
14
- tag: 'v0.1.0'
10
+ ```sh
11
+ bundle exec fastlane add_plugin store_screenshot_check
15
12
  ```
16
13
 
17
- Run `bundle install` in your project. The lane host needs Node.js 22 or newer,
14
+ Or add `gem 'fastlane-plugin-store_screenshot_check', '~> 0.1.1'` to the
15
+ project's `fastlane/Pluginfile` and run `bundle install`. The lane host needs Node.js 22 or newer,
18
16
  Ruby 3.1 or newer, and Fastlane 2.220 or newer (2.x). The gem includes its
19
17
  JavaScript validator and dependencies; no npm install is needed to run it.
20
18
 
@@ -98,15 +96,15 @@ Fastlane actions and CI provider have their own data handling.
98
96
  optional app for creating screenshot sets. It is not required to run this check.
99
97
  You can also use the [browser validator](https://martingruner.com/tools/store-screenshot-validator).
100
98
 
101
- ## Build and test in this workspace
99
+ ## Build and test
102
100
 
103
- The runtime bundle imports the existing validator from
104
- `../validate-store-screenshots/src/validate.mjs` and the shared specification
105
- package. There is no independently maintained rule table in this plugin.
101
+ The runtime bundle is generated from the validator source under
102
+ `vendor/validate-store-screenshots` and the exact published
103
+ `@grunersoftware/store-screenshot-specs` 0.1.0 package. There is no
104
+ independently maintained rule table in this plugin.
106
105
 
107
106
  ```sh
108
- npm --prefix ../store-screenshot-specs run build
109
- npm --prefix ../validate-store-screenshots ci
107
+ npm --prefix vendor/validate-store-screenshots ci
110
108
  node scripts/build.mjs
111
109
  node --test test/validator.test.mjs
112
110
  ruby test/action_test.rb
@@ -115,6 +113,4 @@ gem build fastlane-plugin-store_screenshot_check.gemspec
115
113
 
116
114
  The Ruby integration test requires Fastlane to be installed. Rebuild the bundle
117
115
  whenever the shared validator or specifications change. Keep `LICENSE` and
118
- `THIRD_PARTY_LICENSES.txt` with the bundle. The public standalone repository
119
- includes the shared build inputs and pinned dependency manifests needed to rebuild
120
- the helper. Repeat these checks before each tagged release.
116
+ `THIRD_PARTY_LICENSES.txt` with the bundle.
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -29,9 +28,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
29
28
  mod
30
29
  ));
31
30
 
32
- // ../validate-store-screenshots/node_modules/pngjs/lib/chunkstream.js
31
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/chunkstream.js
33
32
  var require_chunkstream = __commonJS({
34
- "../validate-store-screenshots/node_modules/pngjs/lib/chunkstream.js"(exports2, module2) {
33
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/chunkstream.js"(exports2, module2) {
35
34
  "use strict";
36
35
  var util = require("util");
37
36
  var Stream = require("stream");
@@ -167,9 +166,9 @@ var require_chunkstream = __commonJS({
167
166
  }
168
167
  });
169
168
 
170
- // ../validate-store-screenshots/node_modules/pngjs/lib/interlace.js
169
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/interlace.js
171
170
  var require_interlace = __commonJS({
172
- "../validate-store-screenshots/node_modules/pngjs/lib/interlace.js"(exports2) {
171
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/interlace.js"(exports2) {
173
172
  "use strict";
174
173
  var imagePasses = [
175
174
  {
@@ -250,9 +249,9 @@ var require_interlace = __commonJS({
250
249
  }
251
250
  });
252
251
 
253
- // ../validate-store-screenshots/node_modules/pngjs/lib/paeth-predictor.js
252
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/paeth-predictor.js
254
253
  var require_paeth_predictor = __commonJS({
255
- "../validate-store-screenshots/node_modules/pngjs/lib/paeth-predictor.js"(exports2, module2) {
254
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/paeth-predictor.js"(exports2, module2) {
256
255
  "use strict";
257
256
  module2.exports = function paethPredictor(left, above, upLeft) {
258
257
  let paeth = left + above - upLeft;
@@ -270,9 +269,9 @@ var require_paeth_predictor = __commonJS({
270
269
  }
271
270
  });
272
271
 
273
- // ../validate-store-screenshots/node_modules/pngjs/lib/filter-parse.js
272
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/filter-parse.js
274
273
  var require_filter_parse = __commonJS({
275
- "../validate-store-screenshots/node_modules/pngjs/lib/filter-parse.js"(exports2, module2) {
274
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/filter-parse.js"(exports2, module2) {
276
275
  "use strict";
277
276
  var interlaceUtils = require_interlace();
278
277
  var paethPredictor = require_paeth_predictor();
@@ -411,9 +410,9 @@ var require_filter_parse = __commonJS({
411
410
  }
412
411
  });
413
412
 
414
- // ../validate-store-screenshots/node_modules/pngjs/lib/filter-parse-async.js
413
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/filter-parse-async.js
415
414
  var require_filter_parse_async = __commonJS({
416
- "../validate-store-screenshots/node_modules/pngjs/lib/filter-parse-async.js"(exports2, module2) {
415
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/filter-parse-async.js"(exports2, module2) {
417
416
  "use strict";
418
417
  var util = require("util");
419
418
  var ChunkStream = require_chunkstream();
@@ -437,9 +436,9 @@ var require_filter_parse_async = __commonJS({
437
436
  }
438
437
  });
439
438
 
440
- // ../validate-store-screenshots/node_modules/pngjs/lib/constants.js
439
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/constants.js
441
440
  var require_constants = __commonJS({
442
- "../validate-store-screenshots/node_modules/pngjs/lib/constants.js"(exports2, module2) {
441
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/constants.js"(exports2, module2) {
443
442
  "use strict";
444
443
  module2.exports = {
445
444
  PNG_SIGNATURE: [137, 80, 78, 71, 13, 10, 26, 10],
@@ -472,9 +471,9 @@ var require_constants = __commonJS({
472
471
  }
473
472
  });
474
473
 
475
- // ../validate-store-screenshots/node_modules/pngjs/lib/crc.js
474
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/crc.js
476
475
  var require_crc = __commonJS({
477
- "../validate-store-screenshots/node_modules/pngjs/lib/crc.js"(exports2, module2) {
476
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/crc.js"(exports2, module2) {
478
477
  "use strict";
479
478
  var crcTable = [];
480
479
  (function() {
@@ -512,9 +511,9 @@ var require_crc = __commonJS({
512
511
  }
513
512
  });
514
513
 
515
- // ../validate-store-screenshots/node_modules/pngjs/lib/parser.js
514
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/parser.js
516
515
  var require_parser = __commonJS({
517
- "../validate-store-screenshots/node_modules/pngjs/lib/parser.js"(exports2, module2) {
516
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/parser.js"(exports2, module2) {
518
517
  "use strict";
519
518
  var constants = require_constants();
520
519
  var CrcCalculator = require_crc();
@@ -733,9 +732,9 @@ var require_parser = __commonJS({
733
732
  }
734
733
  });
735
734
 
736
- // ../validate-store-screenshots/node_modules/pngjs/lib/bitmapper.js
735
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/bitmapper.js
737
736
  var require_bitmapper = __commonJS({
738
- "../validate-store-screenshots/node_modules/pngjs/lib/bitmapper.js"(exports2) {
737
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/bitmapper.js"(exports2) {
739
738
  "use strict";
740
739
  var interlaceUtils = require_interlace();
741
740
  var pixelBppMapper = [
@@ -981,9 +980,9 @@ var require_bitmapper = __commonJS({
981
980
  }
982
981
  });
983
982
 
984
- // ../validate-store-screenshots/node_modules/pngjs/lib/format-normaliser.js
983
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/format-normaliser.js
985
984
  var require_format_normaliser = __commonJS({
986
- "../validate-store-screenshots/node_modules/pngjs/lib/format-normaliser.js"(exports2, module2) {
985
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/format-normaliser.js"(exports2, module2) {
987
986
  "use strict";
988
987
  function dePalette(indata, outdata, width, height, palette) {
989
988
  let pxPos = 0;
@@ -1062,9 +1061,9 @@ var require_format_normaliser = __commonJS({
1062
1061
  }
1063
1062
  });
1064
1063
 
1065
- // ../validate-store-screenshots/node_modules/pngjs/lib/parser-async.js
1064
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/parser-async.js
1066
1065
  var require_parser_async = __commonJS({
1067
- "../validate-store-screenshots/node_modules/pngjs/lib/parser-async.js"(exports2, module2) {
1066
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/parser-async.js"(exports2, module2) {
1068
1067
  "use strict";
1069
1068
  var util = require("util");
1070
1069
  var zlib = require("zlib");
@@ -1192,9 +1191,9 @@ var require_parser_async = __commonJS({
1192
1191
  }
1193
1192
  });
1194
1193
 
1195
- // ../validate-store-screenshots/node_modules/pngjs/lib/bitpacker.js
1194
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/bitpacker.js
1196
1195
  var require_bitpacker = __commonJS({
1197
- "../validate-store-screenshots/node_modules/pngjs/lib/bitpacker.js"(exports2, module2) {
1196
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/bitpacker.js"(exports2, module2) {
1198
1197
  "use strict";
1199
1198
  var constants = require_constants();
1200
1199
  module2.exports = function(dataIn, width, height, options) {
@@ -1342,9 +1341,9 @@ var require_bitpacker = __commonJS({
1342
1341
  }
1343
1342
  });
1344
1343
 
1345
- // ../validate-store-screenshots/node_modules/pngjs/lib/filter-pack.js
1344
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/filter-pack.js
1346
1345
  var require_filter_pack = __commonJS({
1347
- "../validate-store-screenshots/node_modules/pngjs/lib/filter-pack.js"(exports2, module2) {
1346
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/filter-pack.js"(exports2, module2) {
1348
1347
  "use strict";
1349
1348
  var paethPredictor = require_paeth_predictor();
1350
1349
  function filterNone(pxData, pxPos, byteWidth, rawData, rawPos) {
@@ -1484,9 +1483,9 @@ var require_filter_pack = __commonJS({
1484
1483
  }
1485
1484
  });
1486
1485
 
1487
- // ../validate-store-screenshots/node_modules/pngjs/lib/packer.js
1486
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/packer.js
1488
1487
  var require_packer = __commonJS({
1489
- "../validate-store-screenshots/node_modules/pngjs/lib/packer.js"(exports2, module2) {
1488
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/packer.js"(exports2, module2) {
1490
1489
  "use strict";
1491
1490
  var constants = require_constants();
1492
1491
  var CrcStream = require_crc();
@@ -1584,9 +1583,9 @@ var require_packer = __commonJS({
1584
1583
  }
1585
1584
  });
1586
1585
 
1587
- // ../validate-store-screenshots/node_modules/pngjs/lib/packer-async.js
1586
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/packer-async.js
1588
1587
  var require_packer_async = __commonJS({
1589
- "../validate-store-screenshots/node_modules/pngjs/lib/packer-async.js"(exports2, module2) {
1588
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/packer-async.js"(exports2, module2) {
1590
1589
  "use strict";
1591
1590
  var util = require("util");
1592
1591
  var Stream = require("stream");
@@ -1626,9 +1625,9 @@ var require_packer_async = __commonJS({
1626
1625
  }
1627
1626
  });
1628
1627
 
1629
- // ../validate-store-screenshots/node_modules/pngjs/lib/sync-inflate.js
1628
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/sync-inflate.js
1630
1629
  var require_sync_inflate = __commonJS({
1631
- "../validate-store-screenshots/node_modules/pngjs/lib/sync-inflate.js"(exports2, module2) {
1630
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/sync-inflate.js"(exports2, module2) {
1632
1631
  "use strict";
1633
1632
  var assert = require("assert").ok;
1634
1633
  var zlib = require("zlib");
@@ -1763,9 +1762,9 @@ var require_sync_inflate = __commonJS({
1763
1762
  }
1764
1763
  });
1765
1764
 
1766
- // ../validate-store-screenshots/node_modules/pngjs/lib/sync-reader.js
1765
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/sync-reader.js
1767
1766
  var require_sync_reader = __commonJS({
1768
- "../validate-store-screenshots/node_modules/pngjs/lib/sync-reader.js"(exports2, module2) {
1767
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/sync-reader.js"(exports2, module2) {
1769
1768
  "use strict";
1770
1769
  var SyncReader = module2.exports = function(buffer) {
1771
1770
  this._buffer = buffer;
@@ -1801,9 +1800,9 @@ var require_sync_reader = __commonJS({
1801
1800
  }
1802
1801
  });
1803
1802
 
1804
- // ../validate-store-screenshots/node_modules/pngjs/lib/filter-parse-sync.js
1803
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/filter-parse-sync.js
1805
1804
  var require_filter_parse_sync = __commonJS({
1806
- "../validate-store-screenshots/node_modules/pngjs/lib/filter-parse-sync.js"(exports2) {
1805
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/filter-parse-sync.js"(exports2) {
1807
1806
  "use strict";
1808
1807
  var SyncReader = require_sync_reader();
1809
1808
  var Filter = require_filter_parse();
@@ -1825,9 +1824,9 @@ var require_filter_parse_sync = __commonJS({
1825
1824
  }
1826
1825
  });
1827
1826
 
1828
- // ../validate-store-screenshots/node_modules/pngjs/lib/parser-sync.js
1827
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/parser-sync.js
1829
1828
  var require_parser_sync = __commonJS({
1830
- "../validate-store-screenshots/node_modules/pngjs/lib/parser-sync.js"(exports2, module2) {
1829
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/parser-sync.js"(exports2, module2) {
1831
1830
  "use strict";
1832
1831
  var hasSyncZlib = true;
1833
1832
  var zlib = require("zlib");
@@ -1920,9 +1919,9 @@ var require_parser_sync = __commonJS({
1920
1919
  }
1921
1920
  });
1922
1921
 
1923
- // ../validate-store-screenshots/node_modules/pngjs/lib/packer-sync.js
1922
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/packer-sync.js
1924
1923
  var require_packer_sync = __commonJS({
1925
- "../validate-store-screenshots/node_modules/pngjs/lib/packer-sync.js"(exports2, module2) {
1924
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/packer-sync.js"(exports2, module2) {
1926
1925
  "use strict";
1927
1926
  var hasSyncZlib = true;
1928
1927
  var zlib = require("zlib");
@@ -1965,9 +1964,9 @@ var require_packer_sync = __commonJS({
1965
1964
  }
1966
1965
  });
1967
1966
 
1968
- // ../validate-store-screenshots/node_modules/pngjs/lib/png-sync.js
1967
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/png-sync.js
1969
1968
  var require_png_sync = __commonJS({
1970
- "../validate-store-screenshots/node_modules/pngjs/lib/png-sync.js"(exports2) {
1969
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/png-sync.js"(exports2) {
1971
1970
  "use strict";
1972
1971
  var parse = require_parser_sync();
1973
1972
  var pack = require_packer_sync();
@@ -1980,9 +1979,9 @@ var require_png_sync = __commonJS({
1980
1979
  }
1981
1980
  });
1982
1981
 
1983
- // ../validate-store-screenshots/node_modules/pngjs/lib/png.js
1982
+ // vendor/validate-store-screenshots/node_modules/pngjs/lib/png.js
1984
1983
  var require_png = __commonJS({
1985
- "../validate-store-screenshots/node_modules/pngjs/lib/png.js"(exports2) {
1984
+ "vendor/validate-store-screenshots/node_modules/pngjs/lib/png.js"(exports2) {
1986
1985
  "use strict";
1987
1986
  var util = require("util");
1988
1987
  var Stream = require("stream");
@@ -2117,9 +2116,9 @@ var require_png = __commonJS({
2117
2116
  }
2118
2117
  });
2119
2118
 
2120
- // ../validate-store-screenshots/node_modules/jpeg-js/lib/encoder.js
2119
+ // vendor/validate-store-screenshots/node_modules/jpeg-js/lib/encoder.js
2121
2120
  var require_encoder = __commonJS({
2122
- "../validate-store-screenshots/node_modules/jpeg-js/lib/encoder.js"(exports2, module2) {
2121
+ "vendor/validate-store-screenshots/node_modules/jpeg-js/lib/encoder.js"(exports2, module2) {
2123
2122
  var btoa = btoa || function(buf) {
2124
2123
  return Buffer.from(buf).toString("base64");
2125
2124
  };
@@ -3194,9 +3193,9 @@ var require_encoder = __commonJS({
3194
3193
  }
3195
3194
  });
3196
3195
 
3197
- // ../validate-store-screenshots/node_modules/jpeg-js/lib/decoder.js
3196
+ // vendor/validate-store-screenshots/node_modules/jpeg-js/lib/decoder.js
3198
3197
  var require_decoder = __commonJS({
3199
- "../validate-store-screenshots/node_modules/jpeg-js/lib/decoder.js"(exports2, module2) {
3198
+ "vendor/validate-store-screenshots/node_modules/jpeg-js/lib/decoder.js"(exports2, module2) {
3200
3199
  var JpegImage = (function jpegImage() {
3201
3200
  "use strict";
3202
3201
  var dctZigZag = new Int32Array([
@@ -4256,9 +4255,9 @@ var require_decoder = __commonJS({
4256
4255
  }
4257
4256
  });
4258
4257
 
4259
- // ../validate-store-screenshots/node_modules/jpeg-js/index.js
4258
+ // vendor/validate-store-screenshots/node_modules/jpeg-js/index.js
4260
4259
  var require_jpeg_js = __commonJS({
4261
- "../validate-store-screenshots/node_modules/jpeg-js/index.js"(exports2, module2) {
4260
+ "vendor/validate-store-screenshots/node_modules/jpeg-js/index.js"(exports2, module2) {
4262
4261
  var encode = require_encoder();
4263
4262
  var decode = require_decoder();
4264
4263
  module2.exports = {
@@ -4271,13 +4270,13 @@ var require_jpeg_js = __commonJS({
4271
4270
  // scripts/validate.mjs
4272
4271
  var import_node_fs = require("node:fs");
4273
4272
 
4274
- // ../validate-store-screenshots/src/validate.mjs
4273
+ // vendor/validate-store-screenshots/src/validate.mjs
4275
4274
  var import_promises = require("node:fs/promises");
4276
4275
  var import_node_path = __toESM(require("node:path"), 1);
4277
4276
  var import_pngjs = __toESM(require_png(), 1);
4278
4277
  var import_jpeg_js = __toESM(require_jpeg_js(), 1);
4279
4278
 
4280
- // ../validate-store-screenshots/node_modules/@grunersoftware/store-screenshot-specs/dist/apple.js
4279
+ // vendor/validate-store-screenshots/node_modules/@grunersoftware/store-screenshot-specs/dist/apple.js
4281
4280
  var appleScreenshotSpecifications = {
4282
4281
  schemaVersion: 1,
4283
4282
  verifiedAt: "2026-10-07",
@@ -4551,7 +4550,7 @@ function getAppleScreenshotSlotByValidatorTarget(targetId) {
4551
4550
  return appleScreenshotSpecifications.slots.find((slot) => slot.validatorTargetId === targetId);
4552
4551
  }
4553
4552
 
4554
- // ../validate-store-screenshots/node_modules/@grunersoftware/store-screenshot-specs/dist/index.js
4553
+ // vendor/validate-store-screenshots/node_modules/@grunersoftware/store-screenshot-specs/dist/index.js
4555
4554
  var appleSource = appleScreenshotSpecifications.sourceUrl;
4556
4555
  var appleVerifiedAt = appleScreenshotSpecifications.verifiedAt;
4557
4556
  function acceptedAppleSizes(targetId) {
@@ -4807,7 +4806,7 @@ function screenshotExampleFor(target) {
4807
4806
  }
4808
4807
  var screenshotExample = screenshotExampleFor("apple-iphone-69");
4809
4808
 
4810
- // ../validate-store-screenshots/src/validate.mjs
4809
+ // vendor/validate-store-screenshots/src/validate.mjs
4811
4810
  var MAX_BYTES = 64 * 1024 * 1024;
4812
4811
  var MAX_PIXELS = 24e6;
4813
4812
  function inspectBuffer(buffer, name) {
@@ -4874,459 +4873,7 @@ async function validateDirectory(directory, target, workspace) {
4874
4873
  return { ...report, errors, failures: report.failures + errors.length, target, files: files.length };
4875
4874
  }
4876
4875
 
4877
- // ../store-screenshot-specs/dist/apple.js
4878
- var appleScreenshotSpecifications2 = {
4879
- schemaVersion: 1,
4880
- verifiedAt: "2026-10-07",
4881
- sourceUrl: "https://developer.apple.com/help/app-store-connect/reference/app-information/screenshot-specifications/",
4882
- uploadGuidanceUrl: "https://developer.apple.com/help/app-store-connect/manage-app-information/manage-your-app-store-assets/",
4883
- fileRules: {
4884
- minimumScreenshots: 1,
4885
- maximumScreenshots: 10,
4886
- formats: ["jpeg", "jpg", "png"],
4887
- alphaChannelsAllowed: false,
4888
- transparencyAllowed: false
4889
- },
4890
- slots: [
4891
- {
4892
- id: "iphone-duo",
4893
- platform: "iPhone",
4894
- display: "iPhone Duo",
4895
- requirement: null,
4896
- fallback: null,
4897
- validatorTargetId: "apple-iphone-duo",
4898
- sizes: [
4899
- { width: 1398, height: 2034, orientation: "portrait", note: "outer display" },
4900
- { width: 2034, height: 1398, orientation: "landscape", note: "outer display" },
4901
- { width: 2007, height: 2853, orientation: "portrait", note: "inner display" },
4902
- { width: 2853, height: 2007, orientation: "landscape", note: "inner display" }
4903
- ]
4904
- },
4905
- {
4906
- id: "iphone-6-9",
4907
- platform: "iPhone",
4908
- display: "iPhone with Dynamic Island (large display)",
4909
- formerLabel: "6.9-inch",
4910
- requirement: null,
4911
- fallback: "App Store Connect uses scaled Face ID (large display) screenshots when this slot is omitted.",
4912
- validatorTargetId: "apple-iphone-69",
4913
- sizes: [
4914
- { width: 1260, height: 2736, orientation: "portrait" },
4915
- { width: 2736, height: 1260, orientation: "landscape" },
4916
- { width: 1290, height: 2796, orientation: "portrait" },
4917
- { width: 2796, height: 1290, orientation: "landscape" },
4918
- { width: 1320, height: 2868, orientation: "portrait" },
4919
- { width: 2868, height: 1320, orientation: "landscape" }
4920
- ]
4921
- },
4922
- {
4923
- id: "iphone-6-5",
4924
- platform: "iPhone",
4925
- display: "iPhone with Face ID (large display)",
4926
- formerLabel: "6.5-inch",
4927
- requirement: "Apple\u2019s table: required if the app runs on iPhone and Dynamic Island (large display) screenshots are not provided.",
4928
- fallback: "App Store Connect uses scaled Dynamic Island (large display) screenshots when this slot is omitted.",
4929
- validatorTargetId: "apple-iphone-65",
4930
- sizes: [
4931
- { width: 1284, height: 2778, orientation: "portrait" },
4932
- { width: 2778, height: 1284, orientation: "landscape" },
4933
- { width: 1242, height: 2688, orientation: "portrait" },
4934
- { width: 2688, height: 1242, orientation: "landscape" }
4935
- ]
4936
- },
4937
- {
4938
- id: "iphone-6-3",
4939
- platform: "iPhone",
4940
- display: "iPhone with Dynamic Island (medium display)",
4941
- formerLabel: "6.3-inch",
4942
- requirement: "Apple\u2019s required-sizes summary: at least one iPhone screenshot at this size.",
4943
- fallback: "App Store Connect uses scaled Face ID (large display) screenshots when this slot is omitted.",
4944
- validatorTargetId: "apple-iphone-63",
4945
- sizes: [
4946
- { width: 1179, height: 2556, orientation: "portrait" },
4947
- { width: 2556, height: 1179, orientation: "landscape" },
4948
- { width: 1206, height: 2622, orientation: "portrait" },
4949
- { width: 2622, height: 1206, orientation: "landscape" }
4950
- ]
4951
- },
4952
- {
4953
- id: "iphone-6-1",
4954
- platform: "iPhone",
4955
- display: "iPhone with Face ID (medium display)",
4956
- formerLabel: "6.1-inch",
4957
- requirement: null,
4958
- fallback: "App Store Connect uses scaled Dynamic Island (medium display) screenshots when this slot is omitted.",
4959
- validatorTargetId: "apple-iphone-61",
4960
- sizes: [
4961
- { width: 1170, height: 2532, orientation: "portrait" },
4962
- { width: 2532, height: 1170, orientation: "landscape" },
4963
- { width: 1125, height: 2436, orientation: "portrait" },
4964
- { width: 2436, height: 1125, orientation: "landscape" },
4965
- { width: 1080, height: 2340, orientation: "portrait" },
4966
- { width: 2340, height: 1080, orientation: "landscape" }
4967
- ]
4968
- },
4969
- {
4970
- id: "iphone-5-5",
4971
- platform: "iPhone",
4972
- display: "iPhone with Home Button (large display)",
4973
- formerLabel: "5.5-inch",
4974
- requirement: null,
4975
- fallback: "App Store Connect uses scaled Face ID (medium display) screenshots when this slot is omitted.",
4976
- validatorTargetId: "apple-iphone-55",
4977
- sizes: [
4978
- { width: 1242, height: 2208, orientation: "portrait" },
4979
- { width: 2208, height: 1242, orientation: "landscape" }
4980
- ]
4981
- },
4982
- {
4983
- id: "iphone-4-7",
4984
- platform: "iPhone",
4985
- display: "iPhone with Home Button (medium display)",
4986
- formerLabel: "4.7-inch",
4987
- requirement: null,
4988
- fallback: "App Store Connect uses scaled Home Button (large display) screenshots when this slot is omitted.",
4989
- validatorTargetId: "apple-iphone-47",
4990
- sizes: [
4991
- { width: 750, height: 1334, orientation: "portrait" },
4992
- { width: 1334, height: 750, orientation: "landscape" }
4993
- ]
4994
- },
4995
- {
4996
- id: "iphone-4",
4997
- platform: "iPhone",
4998
- display: "iPhone with Home Button (4-inch display)",
4999
- requirement: null,
5000
- fallback: "App Store Connect uses scaled Home Button (medium display) screenshots when this slot is omitted.",
5001
- validatorTargetId: "apple-iphone-4",
5002
- sizes: [
5003
- { width: 640, height: 1096, orientation: "portrait", note: "without status bar" },
5004
- { width: 640, height: 1136, orientation: "portrait", note: "with status bar" },
5005
- { width: 1136, height: 600, orientation: "landscape", note: "without status bar" },
5006
- { width: 1136, height: 640, orientation: "landscape", note: "with status bar" }
5007
- ]
5008
- },
5009
- {
5010
- id: "iphone-3-5",
5011
- platform: "iPhone",
5012
- display: "iPhone with Home Button (3.5-inch display)",
5013
- requirement: null,
5014
- fallback: "App Store Connect uses scaled Home Button (4-inch display) screenshots when this slot is omitted.",
5015
- validatorTargetId: "apple-iphone-35",
5016
- sizes: [
5017
- { width: 640, height: 920, orientation: "portrait", note: "without status bar" },
5018
- { width: 640, height: 960, orientation: "portrait", note: "with status bar" },
5019
- { width: 960, height: 600, orientation: "landscape", note: "without status bar" },
5020
- { width: 960, height: 640, orientation: "landscape", note: "with status bar" }
5021
- ]
5022
- },
5023
- {
5024
- id: "ipad-13",
5025
- platform: "iPad",
5026
- display: "13-inch display",
5027
- requirement: "Required when the app runs on iPad.",
5028
- fallback: null,
5029
- validatorTargetId: "apple-ipad-13",
5030
- sizes: [
5031
- { width: 2064, height: 2752, orientation: "portrait" },
5032
- { width: 2752, height: 2064, orientation: "landscape" },
5033
- { width: 2048, height: 2732, orientation: "portrait" },
5034
- { width: 2732, height: 2048, orientation: "landscape" }
5035
- ]
5036
- },
5037
- {
5038
- id: "ipad-12-9",
5039
- platform: "iPad",
5040
- display: "12.9-inch display",
5041
- requirement: null,
5042
- fallback: "App Store Connect uses scaled 13-inch screenshots when this slot is omitted.",
5043
- validatorTargetId: "apple-ipad-129",
5044
- sizes: [
5045
- { width: 2048, height: 2732, orientation: "portrait" },
5046
- { width: 2732, height: 2048, orientation: "landscape" }
5047
- ]
5048
- },
5049
- {
5050
- id: "ipad-11",
5051
- platform: "iPad",
5052
- display: "11-inch display",
5053
- requirement: null,
5054
- fallback: "App Store Connect uses scaled 13-inch screenshots when this slot is omitted.",
5055
- validatorTargetId: "apple-ipad-11",
5056
- sizes: [
5057
- { width: 1488, height: 2266, orientation: "portrait" },
5058
- { width: 2266, height: 1488, orientation: "landscape" },
5059
- { width: 1668, height: 2420, orientation: "portrait" },
5060
- { width: 2420, height: 1668, orientation: "landscape" },
5061
- { width: 1668, height: 2388, orientation: "portrait" },
5062
- { width: 2388, height: 1668, orientation: "landscape" },
5063
- { width: 1640, height: 2360, orientation: "portrait" },
5064
- { width: 2360, height: 1640, orientation: "landscape" }
5065
- ]
5066
- },
5067
- {
5068
- id: "ipad-10-5",
5069
- platform: "iPad",
5070
- display: "10.5-inch display",
5071
- requirement: null,
5072
- fallback: "App Store Connect uses scaled 12.9-inch screenshots when this slot is omitted.",
5073
- validatorTargetId: "apple-ipad-105",
5074
- sizes: [
5075
- { width: 1668, height: 2224, orientation: "portrait" },
5076
- { width: 2224, height: 1668, orientation: "landscape" }
5077
- ]
5078
- },
5079
- {
5080
- id: "ipad-9-7",
5081
- platform: "iPad",
5082
- display: "9.7-inch display",
5083
- requirement: null,
5084
- fallback: "App Store Connect uses scaled 10.5-inch screenshots when this slot is omitted.",
5085
- validatorTargetId: "apple-ipad-97",
5086
- sizes: [
5087
- { width: 1536, height: 2008, orientation: "portrait", note: "without status bar" },
5088
- { width: 1536, height: 2048, orientation: "portrait", note: "with status bar" },
5089
- { width: 2048, height: 1496, orientation: "landscape", note: "without status bar" },
5090
- { width: 2048, height: 1536, orientation: "landscape", note: "with status bar" },
5091
- { width: 768, height: 1004, orientation: "portrait", note: "without status bar" },
5092
- { width: 768, height: 1024, orientation: "portrait", note: "with status bar" },
5093
- { width: 1024, height: 748, orientation: "landscape", note: "without status bar" },
5094
- { width: 1024, height: 768, orientation: "landscape", note: "with status bar" }
5095
- ]
5096
- },
5097
- {
5098
- id: "mac",
5099
- platform: "Mac",
5100
- display: "Mac",
5101
- requirement: "Required for Mac apps. Use a 16:10 aspect ratio.",
5102
- fallback: null,
5103
- validatorTargetId: "apple-mac",
5104
- sizes: [
5105
- { width: 1280, height: 800, orientation: "landscape" },
5106
- { width: 1440, height: 900, orientation: "landscape" },
5107
- { width: 2560, height: 1600, orientation: "landscape" },
5108
- { width: 2880, height: 1800, orientation: "landscape" }
5109
- ]
5110
- },
5111
- {
5112
- id: "apple-tv",
5113
- platform: "Apple TV",
5114
- display: "Apple TV",
5115
- requirement: "Required for Apple TV apps.",
5116
- fallback: null,
5117
- sizes: [
5118
- { width: 1920, height: 1080, orientation: "landscape" },
5119
- { width: 3840, height: 2160, orientation: "landscape" }
5120
- ]
5121
- },
5122
- {
5123
- id: "apple-vision-pro",
5124
- platform: "Apple Vision Pro",
5125
- display: "Apple Vision Pro",
5126
- requirement: "Required for Apple Vision Pro apps.",
5127
- fallback: null,
5128
- sizes: [{ width: 3840, height: 2160, orientation: "landscape" }]
5129
- },
5130
- {
5131
- id: "apple-watch",
5132
- platform: "Apple Watch",
5133
- display: "Apple Watch",
5134
- requirement: "Required for Apple Watch apps. Use the same size across every localization.",
5135
- fallback: null,
5136
- sizes: [
5137
- { width: 422, height: 514, orientation: "portrait", note: "Ultra 4 and Ultra 3" },
5138
- { width: 410, height: 502, orientation: "portrait", note: "Ultra 2 and Ultra" },
5139
- { width: 416, height: 496, orientation: "portrait", note: "Series 12, Series 11, and Series 10" },
5140
- { width: 396, height: 484, orientation: "portrait", note: "Series 9, Series 8, and Series 7" },
5141
- { width: 368, height: 448, orientation: "portrait", note: "Series 6, Series 5, Series 4, SE 3, SE 2, and SE" },
5142
- { width: 312, height: 390, orientation: "portrait", note: "Series 3, Series 2, and Series 1" }
5143
- ]
5144
- }
5145
- ]
5146
- };
5147
- function getAppleScreenshotSlotByValidatorTarget2(targetId) {
5148
- return appleScreenshotSpecifications2.slots.find((slot) => slot.validatorTargetId === targetId);
5149
- }
5150
-
5151
- // ../store-screenshot-specs/dist/index.js
5152
- var appleSource2 = appleScreenshotSpecifications2.sourceUrl;
5153
- var appleVerifiedAt2 = appleScreenshotSpecifications2.verifiedAt;
5154
- function acceptedAppleSizes2(targetId) {
5155
- const slot = getAppleScreenshotSlotByValidatorTarget2(targetId);
5156
- if (!slot)
5157
- throw new Error(`Missing Apple screenshot specification for validator target ${targetId}`);
5158
- return slot.sizes.map((size) => `${size.width}x${size.height}`);
5159
- }
5160
- var storeTargets2 = {
5161
- "apple-iphone-duo": {
5162
- name: "App Store Connect \xB7 iPhone Duo",
5163
- shortName: "iPhone Duo",
5164
- source: appleSource2,
5165
- sourceLabel: "Apple screenshot specifications",
5166
- verifiedAt: appleVerifiedAt2,
5167
- summary: "1\u201310 JPEG or PNG screenshots without transparency, using an exact iPhone Duo outer- or inner-display size.",
5168
- acceptedSizes: acceptedAppleSizes2("apple-iphone-duo")
5169
- },
5170
- "apple-iphone-69": {
5171
- name: "App Store Connect \xB7 iPhone Dynamic Island, large (6.9-inch)",
5172
- shortName: "iPhone Dynamic Island, large (6.9-inch)",
5173
- source: appleSource2,
5174
- sourceLabel: "Apple screenshot specifications",
5175
- verifiedAt: appleVerifiedAt2,
5176
- summary: "1\u201310 JPEG or PNG screenshots without transparency, using an exact current Dynamic Island (large display) size.",
5177
- acceptedSizes: acceptedAppleSizes2("apple-iphone-69")
5178
- },
5179
- "apple-iphone-65": {
5180
- name: "App Store Connect \xB7 iPhone Face ID, large (6.5-inch)",
5181
- shortName: "iPhone Face ID, large (6.5-inch)",
5182
- source: appleSource2,
5183
- sourceLabel: "Apple screenshot specifications",
5184
- verifiedAt: appleVerifiedAt2,
5185
- summary: "1\u201310 JPEG or PNG screenshots without transparency, using an exact Face ID (large display) size.",
5186
- acceptedSizes: acceptedAppleSizes2("apple-iphone-65")
5187
- },
5188
- "apple-iphone-63": {
5189
- name: "App Store Connect \xB7 iPhone Dynamic Island, medium (6.3-inch)",
5190
- shortName: "iPhone Dynamic Island, medium (6.3-inch)",
5191
- source: appleSource2,
5192
- sourceLabel: "Apple screenshot specifications",
5193
- verifiedAt: appleVerifiedAt2,
5194
- summary: "1\u201310 JPEG or PNG screenshots without transparency, using an exact Dynamic Island (medium display) size.",
5195
- acceptedSizes: acceptedAppleSizes2("apple-iphone-63")
5196
- },
5197
- "apple-iphone-61": {
5198
- name: "App Store Connect \xB7 iPhone Face ID, medium (6.1-inch)",
5199
- shortName: "iPhone Face ID, medium (6.1-inch)",
5200
- source: appleSource2,
5201
- sourceLabel: "Apple screenshot specifications",
5202
- verifiedAt: appleVerifiedAt2,
5203
- summary: "1\u201310 JPEG or PNG screenshots without transparency, using an exact Face ID (medium display) size.",
5204
- acceptedSizes: acceptedAppleSizes2("apple-iphone-61")
5205
- },
5206
- "apple-iphone-55": {
5207
- name: "App Store Connect \xB7 iPhone Home Button, large (5.5-inch)",
5208
- shortName: "iPhone Home Button, large (5.5-inch)",
5209
- source: appleSource2,
5210
- sourceLabel: "Apple screenshot specifications",
5211
- verifiedAt: appleVerifiedAt2,
5212
- summary: "1\u201310 JPEG or PNG screenshots without transparency, using the exact Home Button (large display) size.",
5213
- acceptedSizes: acceptedAppleSizes2("apple-iphone-55")
5214
- },
5215
- "apple-iphone-47": {
5216
- name: "App Store Connect \xB7 iPhone Home Button, medium (4.7-inch)",
5217
- shortName: "iPhone Home Button, medium (4.7-inch)",
5218
- source: appleSource2,
5219
- sourceLabel: "Apple screenshot specifications",
5220
- verifiedAt: appleVerifiedAt2,
5221
- summary: "1\u201310 JPEG or PNG screenshots without transparency, using the exact Home Button (medium display) size.",
5222
- acceptedSizes: acceptedAppleSizes2("apple-iphone-47")
5223
- },
5224
- "apple-iphone-4": {
5225
- name: "App Store Connect \xB7 iPhone Home Button, 4-inch",
5226
- shortName: "iPhone Home Button, 4-inch",
5227
- source: appleSource2,
5228
- sourceLabel: "Apple screenshot specifications",
5229
- verifiedAt: appleVerifiedAt2,
5230
- summary: "1\u201310 JPEG or PNG screenshots without transparency, using an exact 4-inch Home Button size with or without the status bar.",
5231
- acceptedSizes: acceptedAppleSizes2("apple-iphone-4")
5232
- },
5233
- "apple-iphone-35": {
5234
- name: "App Store Connect \xB7 iPhone Home Button, 3.5-inch",
5235
- shortName: "iPhone Home Button, 3.5-inch",
5236
- source: appleSource2,
5237
- sourceLabel: "Apple screenshot specifications",
5238
- verifiedAt: appleVerifiedAt2,
5239
- summary: "1\u201310 JPEG or PNG screenshots without transparency, using an exact 3.5-inch Home Button size with or without the status bar.",
5240
- acceptedSizes: acceptedAppleSizes2("apple-iphone-35")
5241
- },
5242
- "apple-ipad-13": {
5243
- name: "App Store Connect \xB7 iPad 13-inch",
5244
- shortName: "iPad 13-inch",
5245
- source: appleSource2,
5246
- sourceLabel: "Apple screenshot specifications",
5247
- verifiedAt: appleVerifiedAt2,
5248
- summary: "1\u201310 JPEG or PNG screenshots without transparency, using an exact current 13-inch iPad size.",
5249
- acceptedSizes: acceptedAppleSizes2("apple-ipad-13")
5250
- },
5251
- "apple-ipad-129": {
5252
- name: "App Store Connect \xB7 iPad 12.9-inch",
5253
- shortName: "iPad 12.9-inch",
5254
- source: appleSource2,
5255
- sourceLabel: "Apple screenshot specifications",
5256
- verifiedAt: appleVerifiedAt2,
5257
- summary: "1\u201310 JPEG or PNG screenshots without transparency, using the exact 12.9-inch iPad size.",
5258
- acceptedSizes: acceptedAppleSizes2("apple-ipad-129")
5259
- },
5260
- "apple-ipad-11": {
5261
- name: "App Store Connect \xB7 iPad 11-inch",
5262
- shortName: "iPad 11-inch",
5263
- source: appleSource2,
5264
- sourceLabel: "Apple screenshot specifications",
5265
- verifiedAt: appleVerifiedAt2,
5266
- summary: "1\u201310 JPEG or PNG screenshots without transparency, using an exact 11-inch iPad size.",
5267
- acceptedSizes: acceptedAppleSizes2("apple-ipad-11")
5268
- },
5269
- "apple-ipad-105": {
5270
- name: "App Store Connect \xB7 iPad 10.5-inch",
5271
- shortName: "iPad 10.5-inch",
5272
- source: appleSource2,
5273
- sourceLabel: "Apple screenshot specifications",
5274
- verifiedAt: appleVerifiedAt2,
5275
- summary: "1\u201310 JPEG or PNG screenshots without transparency, using the exact 10.5-inch iPad size.",
5276
- acceptedSizes: acceptedAppleSizes2("apple-ipad-105")
5277
- },
5278
- "apple-ipad-97": {
5279
- name: "App Store Connect \xB7 iPad 9.7-inch",
5280
- shortName: "iPad 9.7-inch",
5281
- source: appleSource2,
5282
- sourceLabel: "Apple screenshot specifications",
5283
- verifiedAt: appleVerifiedAt2,
5284
- summary: "1\u201310 JPEG or PNG screenshots without transparency, using an exact 9.7-inch iPad size with or without the status bar.",
5285
- acceptedSizes: acceptedAppleSizes2("apple-ipad-97")
5286
- },
5287
- "apple-mac": {
5288
- name: "App Store Connect \xB7 Mac",
5289
- shortName: "Apple \xB7 Mac",
5290
- source: appleSource2,
5291
- sourceLabel: "Apple screenshot specifications",
5292
- verifiedAt: appleVerifiedAt2,
5293
- summary: "1\u201310 JPEG or PNG screenshots, no transparency, using one of Apple\u2019s four exact 16:10 Mac sizes.",
5294
- acceptedSizes: acceptedAppleSizes2("apple-mac")
5295
- },
5296
- "google-phone": {
5297
- name: "Google Play \xB7 Phone",
5298
- shortName: "Google Play",
5299
- source: "https://support.google.com/googleplay/android-developer/answer/9866151?hl=en",
5300
- sourceLabel: "Google Play preview asset guidance",
5301
- verifiedAt: "2026-10-07",
5302
- summary: "JPEG or 24-bit PNG without alpha, 320\u20133840 px, with the long edge no more than twice the short edge."
5303
- },
5304
- "microsoft-desktop": {
5305
- name: "Microsoft Store \xB7 Desktop",
5306
- shortName: "Microsoft \xB7 Desktop",
5307
- source: "https://learn.microsoft.com/en-us/windows/apps/publish/publish-your-app/pwa/screenshots-and-images",
5308
- sourceLabel: "Microsoft Store screenshot guidance",
5309
- verifiedAt: "2026-10-07",
5310
- summary: "1\u201310 PNG screenshots, at least 1366 \xD7 768 in landscape (or the portrait equivalent), up to 50 MB each."
5311
- }
5312
- };
5313
- var appleTargetIds2 = ["apple-iphone-duo", "apple-iphone-69", "apple-iphone-65", "apple-iphone-63", "apple-iphone-61", "apple-iphone-55", "apple-iphone-47", "apple-iphone-4", "apple-iphone-35", "apple-ipad-13", "apple-ipad-129", "apple-ipad-11", "apple-ipad-105", "apple-ipad-97", "apple-mac"];
5314
- function isAppleTarget2(target) {
5315
- return appleTargetIds2.includes(target);
5316
- }
5317
- function screenshotExampleFor2(target) {
5318
- if (isAppleTarget2(target)) {
5319
- const [width, height] = storeTargets2[target].acceptedSizes[0].split("x").map(Number);
5320
- return [1, 2, 3].map((index) => ({ name: `${String(index).padStart(2, "0")}-app-screen.png`, width, height, size: 25e5 + index * 41e4, mime: "image/png", hasAlpha: false, pngBitDepth: 8, pngColorType: 2 }));
5321
- }
5322
- if (target === "google-phone") {
5323
- return [1, 2, 3, 4].map((index) => ({ name: `${String(index).padStart(2, "0")}-phone.png`, width: 1080, height: 1920, size: 18e5 + index * 25e4, mime: "image/png", hasAlpha: false, pngBitDepth: 8, pngColorType: 2 }));
5324
- }
5325
- return [1, 2, 3].map((index) => ({ name: `${String(index).padStart(2, "0")}-desktop.png`, width: 1920, height: 1080, size: 21e5 + index * 3e5, mime: "image/png", hasAlpha: false, pngBitDepth: 8, pngColorType: 2 }));
5326
- }
5327
- var screenshotExample2 = screenshotExampleFor2("apple-iphone-69");
5328
-
5329
- // ../store-screenshot-specs/dist/specs.json
4876
+ // vendor/validate-store-screenshots/node_modules/@grunersoftware/store-screenshot-specs/dist/specs.json
5330
4877
  var specs_default = {
5331
4878
  schemaVersion: 1,
5332
4879
  packageVersion: "0.1.0",
@@ -5912,7 +5459,7 @@ async function main() {
5912
5459
  for (const key of ["directory", "workspace", "target"]) {
5913
5460
  if (typeof request[key] !== "string" || !request[key].trim()) throw new Error(`${key} must be a non-empty string.`);
5914
5461
  }
5915
- const supported = [...appleTargetIds2, "google-phone"];
5462
+ const supported = [...appleTargetIds, "google-phone"];
5916
5463
  if (!supported.includes(request.target)) throw new Error(`Unsupported target. Choose ${supported.join(", ")}.`);
5917
5464
  for (const key of ["fail_on_error", "fail_on_review"]) {
5918
5465
  if (typeof request[key] !== "boolean") throw new Error(`${key} must be a boolean.`);
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module StoreScreenshotCheck
3
- VERSION = '0.1.0'.freeze
3
+ VERSION = '0.1.1'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-store_screenshot_check
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Grüner
@@ -47,7 +47,7 @@ licenses:
47
47
  - MIT
48
48
  metadata:
49
49
  homepage_uri: https://github.com/MartinGryner/fastlane-plugin-store_screenshot_check
50
- source_code_uri: https://github.com/MartinGryner/fastlane-plugin-store_screenshot_check/tree/v0.1.0
50
+ source_code_uri: https://github.com/MartinGryner/fastlane-plugin-store_screenshot_check/tree/v0.1.1
51
51
  bug_tracker_uri: https://github.com/MartinGryner/fastlane-plugin-store_screenshot_check/issues
52
52
  rdoc_options: []
53
53
  require_paths: