iphone-dimensions 1.0.3 → 1.1.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.
package/dist/index.cjs CHANGED
@@ -1,10 +1,11 @@
1
1
  // Generated by scripts/build.mjs. Do not edit.
2
2
  'use strict';
3
3
  const dataset = {
4
- "schema_version": 1,
4
+ "schema_version": 2,
5
5
  "name": "iphone-dimensions",
6
- "description": "Apple's published height, width, depth, weight, display diagonal, resolution and pixel density for every iPhone on iphonesize.com. One row per physical configuration; the iPhone Duo appears twice, closed and open.",
7
- "license": "MIT",
6
+ "description": "Apple's published height, width, depth, weight, display diagonal, resolution and pixel density for every iPhone since the original iPhone (2007). One row per physical configuration; the iPhone Duo appears twice, closed and open.",
7
+ "license": "CC0-1.0",
8
+ "license_url": "https://creativecommons.org/publicdomain/zero/1.0/",
8
9
  "homepage": "https://iphonesize.com/data-sources",
9
10
  "source": "Apple technical specifications (apple.com, support.apple.com)",
10
11
  "verified": "2026-09-09",
@@ -16,14 +17,20 @@ const dataset = {
16
17
  "Inches and ounces are calculated from them (mm / 25.4, g / 28.3495, rounded to 2 decimals) and can differ from Apple's own rounded imperial figures by 0.01.",
17
18
  "Depth is the body without the camera protrusion.",
18
19
  "Not suitable for case or accessory manufacturing; use Apple's dimensional drawings for that.",
19
- "Rows follow the site's lineup order."
20
+ "Rows for phones on iphonesize.com follow the site's lineup order. Phones with no page on the site are appended after them; their url is null.",
21
+ "site_models_count is the number of rows for phones that have a page on iphonesize.com, including both states of the iPhone Duo. historic_count is the number of earlier iPhones appended after them.",
22
+ "A-numbers are from Apple's Identify your iPhone model page (https://support.apple.com/en-us/108044), except the iPhone Duo's, which are from Apple's regional Duo specs pages.",
23
+ "Identifier strings marked apple come from Apple's device database shipped inside Xcode 27 (no public URL), cross-checked against The Apple Wiki.",
24
+ "Identifier strings marked secondary come from The Apple Wiki only (original iPhone, 3G, 3GS, 4, Duo) and are not Apple-confirmed."
20
25
  ],
21
26
  "units": {
22
27
  "length": "mm",
23
28
  "mass": "g",
24
29
  "display": "in"
25
30
  },
26
- "count": 43,
31
+ "count": 56,
32
+ "site_models_count": 43,
33
+ "historic_count": 13,
27
34
  "phones": [
28
35
  {
29
36
  "id": "iphone-duo",
@@ -52,7 +59,17 @@ const dataset = {
52
59
  "ppi": 460,
53
60
  "url": "https://iphonesize.com/iphone-duo",
54
61
  "source_url": "https://www.apple.com/iphone-duo/specs/",
55
- "dates_source_url": "https://www.apple.com/newsroom/2026/09/apple-unveils-iphone-duo/"
62
+ "dates_source_url": "https://www.apple.com/newsroom/2026/09/apple-unveils-iphone-duo/",
63
+ "model_identifiers": [
64
+ "iPhone19,4"
65
+ ],
66
+ "model_numbers": [
67
+ "A3447",
68
+ "A3719",
69
+ "A3720",
70
+ "A3721"
71
+ ],
72
+ "model_identifiers_source": "secondary"
56
73
  },
57
74
  {
58
75
  "id": "iphone-duo-unfolded",
@@ -81,7 +98,17 @@ const dataset = {
81
98
  "ppi": 430,
82
99
  "url": "https://iphonesize.com/iphone-duo?duo=unfolded",
83
100
  "source_url": "https://www.apple.com/iphone-duo/specs/",
84
- "dates_source_url": "https://www.apple.com/newsroom/2026/09/apple-unveils-iphone-duo/"
101
+ "dates_source_url": "https://www.apple.com/newsroom/2026/09/apple-unveils-iphone-duo/",
102
+ "model_identifiers": [
103
+ "iPhone19,4"
104
+ ],
105
+ "model_numbers": [
106
+ "A3447",
107
+ "A3719",
108
+ "A3720",
109
+ "A3721"
110
+ ],
111
+ "model_identifiers_source": "secondary"
85
112
  },
86
113
  {
87
114
  "id": "iphone-18-pro-max",
@@ -108,7 +135,18 @@ const dataset = {
108
135
  "ppi": 460,
109
136
  "url": "https://iphonesize.com/iphone-18-pro-max",
110
137
  "source_url": "https://www.apple.com/iphone-18-pro/specs/",
111
- "dates_source_url": "https://www.apple.com/newsroom/2026/09/apple-debuts-iphone-18-pro-and-iphone-18-pro-max/"
138
+ "dates_source_url": "https://www.apple.com/newsroom/2026/09/apple-debuts-iphone-18-pro-and-iphone-18-pro-max/",
139
+ "model_identifiers": [
140
+ "iPhone19,3",
141
+ "iPhone19,7"
142
+ ],
143
+ "model_numbers": [
144
+ "A3473",
145
+ "A3716",
146
+ "A3718",
147
+ "A3717"
148
+ ],
149
+ "model_identifiers_source": "apple"
112
150
  },
113
151
  {
114
152
  "id": "iphone-18-pro",
@@ -135,7 +173,17 @@ const dataset = {
135
173
  "ppi": 460,
136
174
  "url": "https://iphonesize.com/iphone-18-pro",
137
175
  "source_url": "https://www.apple.com/iphone-18-pro/specs/",
138
- "dates_source_url": "https://www.apple.com/newsroom/2026/09/apple-debuts-iphone-18-pro-and-iphone-18-pro-max/"
176
+ "dates_source_url": "https://www.apple.com/newsroom/2026/09/apple-debuts-iphone-18-pro-and-iphone-18-pro-max/",
177
+ "model_identifiers": [
178
+ "iPhone19,2"
179
+ ],
180
+ "model_numbers": [
181
+ "A3472",
182
+ "A3713",
183
+ "A3715",
184
+ "A3714"
185
+ ],
186
+ "model_identifiers_source": "apple"
139
187
  },
140
188
  {
141
189
  "id": "iphone-17-pro-max",
@@ -162,7 +210,17 @@ const dataset = {
162
210
  "ppi": 460,
163
211
  "url": "https://iphonesize.com/iphone-17-pro-max",
164
212
  "source_url": "https://support.apple.com/en-us/125091",
165
- "dates_source_url": "https://www.apple.com/newsroom/2025/09/apple-unveils-iphone-17-pro-and-iphone-17-pro-max/"
213
+ "dates_source_url": "https://www.apple.com/newsroom/2025/09/apple-unveils-iphone-17-pro-and-iphone-17-pro-max/",
214
+ "model_identifiers": [
215
+ "iPhone18,2"
216
+ ],
217
+ "model_numbers": [
218
+ "A3257",
219
+ "A3525",
220
+ "A3527",
221
+ "A3526"
222
+ ],
223
+ "model_identifiers_source": "apple"
166
224
  },
167
225
  {
168
226
  "id": "iphone-17-pro",
@@ -189,7 +247,17 @@ const dataset = {
189
247
  "ppi": 460,
190
248
  "url": "https://iphonesize.com/iphone-17-pro",
191
249
  "source_url": "https://support.apple.com/en-us/125090",
192
- "dates_source_url": "https://www.apple.com/newsroom/2025/09/apple-unveils-iphone-17-pro-and-iphone-17-pro-max/"
250
+ "dates_source_url": "https://www.apple.com/newsroom/2025/09/apple-unveils-iphone-17-pro-and-iphone-17-pro-max/",
251
+ "model_identifiers": [
252
+ "iPhone18,1"
253
+ ],
254
+ "model_numbers": [
255
+ "A3256",
256
+ "A3522",
257
+ "A3524",
258
+ "A3523"
259
+ ],
260
+ "model_identifiers_source": "apple"
193
261
  },
194
262
  {
195
263
  "id": "iphone-17-air",
@@ -218,7 +286,17 @@ const dataset = {
218
286
  "ppi": 460,
219
287
  "url": "https://iphonesize.com/iphone-17-air",
220
288
  "source_url": "https://support.apple.com/en-us/125092",
221
- "dates_source_url": "https://www.apple.com/newsroom/2025/09/introducing-iphone-air-a-powerful-new-iphone-with-a-breakthrough-design/"
289
+ "dates_source_url": "https://www.apple.com/newsroom/2025/09/introducing-iphone-air-a-powerful-new-iphone-with-a-breakthrough-design/",
290
+ "model_identifiers": [
291
+ "iPhone18,4"
292
+ ],
293
+ "model_numbers": [
294
+ "A3260",
295
+ "A3516",
296
+ "A3518",
297
+ "A3517"
298
+ ],
299
+ "model_identifiers_source": "apple"
222
300
  },
223
301
  {
224
302
  "id": "iphone-17",
@@ -245,7 +323,17 @@ const dataset = {
245
323
  "ppi": 460,
246
324
  "url": "https://iphonesize.com/iphone-17",
247
325
  "source_url": "https://support.apple.com/en-us/125089",
248
- "dates_source_url": "https://www.apple.com/newsroom/2025/09/apple-debuts-iphone-17/"
326
+ "dates_source_url": "https://www.apple.com/newsroom/2025/09/apple-debuts-iphone-17/",
327
+ "model_identifiers": [
328
+ "iPhone18,3"
329
+ ],
330
+ "model_numbers": [
331
+ "A3258",
332
+ "A3519",
333
+ "A3521",
334
+ "A3520"
335
+ ],
336
+ "model_identifiers_source": "apple"
249
337
  },
250
338
  {
251
339
  "id": "iphone-17e",
@@ -272,7 +360,16 @@ const dataset = {
272
360
  "ppi": 460,
273
361
  "url": "https://iphonesize.com/iphone-17e",
274
362
  "source_url": "https://support.apple.com/en-us/126470",
275
- "dates_source_url": "https://www.apple.com/newsroom/2026/03/apple-introduces-iphone-17e/"
363
+ "dates_source_url": "https://www.apple.com/newsroom/2026/03/apple-introduces-iphone-17e/",
364
+ "model_identifiers": [
365
+ "iPhone18,5"
366
+ ],
367
+ "model_numbers": [
368
+ "A3575",
369
+ "A3635",
370
+ "A3634"
371
+ ],
372
+ "model_identifiers_source": "apple"
276
373
  },
277
374
  {
278
375
  "id": "iphone-16-pro-max",
@@ -299,7 +396,17 @@ const dataset = {
299
396
  "ppi": 460,
300
397
  "url": "https://iphonesize.com/iphone-16-pro-max",
301
398
  "source_url": "https://support.apple.com/en-us/121032",
302
- "dates_source_url": "https://www.apple.com/newsroom/2024/09/apple-debuts-iphone-16-pro-and-iphone-16-pro-max/"
399
+ "dates_source_url": "https://www.apple.com/newsroom/2024/09/apple-debuts-iphone-16-pro-and-iphone-16-pro-max/",
400
+ "model_identifiers": [
401
+ "iPhone17,2"
402
+ ],
403
+ "model_numbers": [
404
+ "A3084",
405
+ "A3295",
406
+ "A3297",
407
+ "A3296"
408
+ ],
409
+ "model_identifiers_source": "apple"
303
410
  },
304
411
  {
305
412
  "id": "iphone-16-pro",
@@ -326,7 +433,17 @@ const dataset = {
326
433
  "ppi": 460,
327
434
  "url": "https://iphonesize.com/iphone-16-pro",
328
435
  "source_url": "https://support.apple.com/en-us/121031",
329
- "dates_source_url": "https://www.apple.com/newsroom/2024/09/apple-debuts-iphone-16-pro-and-iphone-16-pro-max/"
436
+ "dates_source_url": "https://www.apple.com/newsroom/2024/09/apple-debuts-iphone-16-pro-and-iphone-16-pro-max/",
437
+ "model_identifiers": [
438
+ "iPhone17,1"
439
+ ],
440
+ "model_numbers": [
441
+ "A3083",
442
+ "A3292",
443
+ "A3294",
444
+ "A3293"
445
+ ],
446
+ "model_identifiers_source": "apple"
330
447
  },
331
448
  {
332
449
  "id": "iphone-16-plus",
@@ -353,7 +470,17 @@ const dataset = {
353
470
  "ppi": 460,
354
471
  "url": "https://iphonesize.com/iphone-16-plus",
355
472
  "source_url": "https://support.apple.com/en-us/121030",
356
- "dates_source_url": "https://www.apple.com/newsroom/2024/09/apple-introduces-iphone-16-and-iphone-16-plus/"
473
+ "dates_source_url": "https://www.apple.com/newsroom/2024/09/apple-introduces-iphone-16-and-iphone-16-plus/",
474
+ "model_identifiers": [
475
+ "iPhone17,4"
476
+ ],
477
+ "model_numbers": [
478
+ "A3082",
479
+ "A3289",
480
+ "A3291",
481
+ "A3290"
482
+ ],
483
+ "model_identifiers_source": "apple"
357
484
  },
358
485
  {
359
486
  "id": "iphone-16",
@@ -380,7 +507,17 @@ const dataset = {
380
507
  "ppi": 460,
381
508
  "url": "https://iphonesize.com/iphone-16",
382
509
  "source_url": "https://support.apple.com/en-us/121029",
383
- "dates_source_url": "https://www.apple.com/newsroom/2024/09/apple-introduces-iphone-16-and-iphone-16-plus/"
510
+ "dates_source_url": "https://www.apple.com/newsroom/2024/09/apple-introduces-iphone-16-and-iphone-16-plus/",
511
+ "model_identifiers": [
512
+ "iPhone17,3"
513
+ ],
514
+ "model_numbers": [
515
+ "A3081",
516
+ "A3286",
517
+ "A3288",
518
+ "A3287"
519
+ ],
520
+ "model_identifiers_source": "apple"
384
521
  },
385
522
  {
386
523
  "id": "iphone-16e",
@@ -407,7 +544,17 @@ const dataset = {
407
544
  "ppi": 460,
408
545
  "url": "https://iphonesize.com/iphone-16e",
409
546
  "source_url": "https://support.apple.com/en-us/122208",
410
- "dates_source_url": "https://www.apple.com/newsroom/2025/02/apple-debuts-iphone-16e-a-powerful-new-member-of-the-iphone-16-family/"
547
+ "dates_source_url": "https://www.apple.com/newsroom/2025/02/apple-debuts-iphone-16e-a-powerful-new-member-of-the-iphone-16-family/",
548
+ "model_identifiers": [
549
+ "iPhone17,5"
550
+ ],
551
+ "model_numbers": [
552
+ "A3212",
553
+ "A3408",
554
+ "A3410",
555
+ "A3409"
556
+ ],
557
+ "model_identifiers_source": "apple"
411
558
  },
412
559
  {
413
560
  "id": "iphone-15-pro-max",
@@ -434,7 +581,17 @@ const dataset = {
434
581
  "ppi": 460,
435
582
  "url": "https://iphonesize.com/iphone-15-pro-max",
436
583
  "source_url": "https://support.apple.com/en-us/111828",
437
- "dates_source_url": "https://www.apple.com/newsroom/2023/09/apple-unveils-iphone-15-pro-and-iphone-15-pro-max/"
584
+ "dates_source_url": "https://www.apple.com/newsroom/2023/09/apple-unveils-iphone-15-pro-and-iphone-15-pro-max/",
585
+ "model_identifiers": [
586
+ "iPhone16,2"
587
+ ],
588
+ "model_numbers": [
589
+ "A2849",
590
+ "A3105",
591
+ "A3108",
592
+ "A3106"
593
+ ],
594
+ "model_identifiers_source": "apple"
438
595
  },
439
596
  {
440
597
  "id": "iphone-15-pro",
@@ -461,7 +618,17 @@ const dataset = {
461
618
  "ppi": 460,
462
619
  "url": "https://iphonesize.com/iphone-15-pro",
463
620
  "source_url": "https://support.apple.com/en-us/111829",
464
- "dates_source_url": "https://www.apple.com/newsroom/2023/09/apple-unveils-iphone-15-pro-and-iphone-15-pro-max/"
621
+ "dates_source_url": "https://www.apple.com/newsroom/2023/09/apple-unveils-iphone-15-pro-and-iphone-15-pro-max/",
622
+ "model_identifiers": [
623
+ "iPhone16,1"
624
+ ],
625
+ "model_numbers": [
626
+ "A2848",
627
+ "A3101",
628
+ "A3104",
629
+ "A3102"
630
+ ],
631
+ "model_identifiers_source": "apple"
465
632
  },
466
633
  {
467
634
  "id": "iphone-15-plus",
@@ -488,7 +655,17 @@ const dataset = {
488
655
  "ppi": 460,
489
656
  "url": "https://iphonesize.com/iphone-15-plus",
490
657
  "source_url": "https://support.apple.com/en-us/111830",
491
- "dates_source_url": "https://www.apple.com/newsroom/2023/09/apple-debuts-iphone-15-and-iphone-15-plus/"
658
+ "dates_source_url": "https://www.apple.com/newsroom/2023/09/apple-debuts-iphone-15-and-iphone-15-plus/",
659
+ "model_identifiers": [
660
+ "iPhone15,5"
661
+ ],
662
+ "model_numbers": [
663
+ "A2847",
664
+ "A3093",
665
+ "A3096",
666
+ "A3094"
667
+ ],
668
+ "model_identifiers_source": "apple"
492
669
  },
493
670
  {
494
671
  "id": "iphone-15",
@@ -515,7 +692,17 @@ const dataset = {
515
692
  "ppi": 460,
516
693
  "url": "https://iphonesize.com/iphone-15",
517
694
  "source_url": "https://support.apple.com/en-us/111831",
518
- "dates_source_url": "https://www.apple.com/newsroom/2023/09/apple-debuts-iphone-15-and-iphone-15-plus/"
695
+ "dates_source_url": "https://www.apple.com/newsroom/2023/09/apple-debuts-iphone-15-and-iphone-15-plus/",
696
+ "model_identifiers": [
697
+ "iPhone15,4"
698
+ ],
699
+ "model_numbers": [
700
+ "A2846",
701
+ "A3089",
702
+ "A3092",
703
+ "A3090"
704
+ ],
705
+ "model_identifiers_source": "apple"
519
706
  },
520
707
  {
521
708
  "id": "iphone-14-pro-max",
@@ -542,7 +729,18 @@ const dataset = {
542
729
  "ppi": 460,
543
730
  "url": "https://iphonesize.com/iphone-14-pro-max",
544
731
  "source_url": "https://support.apple.com/en-us/111846",
545
- "dates_source_url": "https://www.apple.com/newsroom/2022/09/apple-debuts-iphone-14-pro-and-iphone-14-pro-max/"
732
+ "dates_source_url": "https://www.apple.com/newsroom/2022/09/apple-debuts-iphone-14-pro-and-iphone-14-pro-max/",
733
+ "model_identifiers": [
734
+ "iPhone15,3"
735
+ ],
736
+ "model_numbers": [
737
+ "A2651",
738
+ "A2893",
739
+ "A2896",
740
+ "A2895",
741
+ "A2894"
742
+ ],
743
+ "model_identifiers_source": "apple"
546
744
  },
547
745
  {
548
746
  "id": "iphone-14-pro",
@@ -569,7 +767,18 @@ const dataset = {
569
767
  "ppi": 460,
570
768
  "url": "https://iphonesize.com/iphone-14-pro",
571
769
  "source_url": "https://support.apple.com/en-us/111849",
572
- "dates_source_url": "https://www.apple.com/newsroom/2022/09/apple-debuts-iphone-14-pro-and-iphone-14-pro-max/"
770
+ "dates_source_url": "https://www.apple.com/newsroom/2022/09/apple-debuts-iphone-14-pro-and-iphone-14-pro-max/",
771
+ "model_identifiers": [
772
+ "iPhone15,2"
773
+ ],
774
+ "model_numbers": [
775
+ "A2650",
776
+ "A2889",
777
+ "A2892",
778
+ "A2891",
779
+ "A2890"
780
+ ],
781
+ "model_identifiers_source": "apple"
573
782
  },
574
783
  {
575
784
  "id": "iphone-14-plus",
@@ -596,7 +805,18 @@ const dataset = {
596
805
  "ppi": 458,
597
806
  "url": "https://iphonesize.com/iphone-14-plus",
598
807
  "source_url": "https://support.apple.com/en-us/111854",
599
- "dates_source_url": "https://www.apple.com/newsroom/2022/09/apple-introduces-iphone-14-and-iphone-14-plus/"
808
+ "dates_source_url": "https://www.apple.com/newsroom/2022/09/apple-introduces-iphone-14-and-iphone-14-plus/",
809
+ "model_identifiers": [
810
+ "iPhone14,8"
811
+ ],
812
+ "model_numbers": [
813
+ "A2632",
814
+ "A2885",
815
+ "A2888",
816
+ "A2887",
817
+ "A2886"
818
+ ],
819
+ "model_identifiers_source": "apple"
600
820
  },
601
821
  {
602
822
  "id": "iphone-14",
@@ -623,7 +843,18 @@ const dataset = {
623
843
  "ppi": 460,
624
844
  "url": "https://iphonesize.com/iphone-14",
625
845
  "source_url": "https://support.apple.com/en-us/111850",
626
- "dates_source_url": "https://www.apple.com/newsroom/2022/09/apple-introduces-iphone-14-and-iphone-14-plus/"
846
+ "dates_source_url": "https://www.apple.com/newsroom/2022/09/apple-introduces-iphone-14-and-iphone-14-plus/",
847
+ "model_identifiers": [
848
+ "iPhone14,7"
849
+ ],
850
+ "model_numbers": [
851
+ "A2649",
852
+ "A2881",
853
+ "A2884",
854
+ "A2883",
855
+ "A2882"
856
+ ],
857
+ "model_identifiers_source": "apple"
627
858
  },
628
859
  {
629
860
  "id": "iphone-13-pro-max",
@@ -650,7 +881,18 @@ const dataset = {
650
881
  "ppi": 458,
651
882
  "url": "https://iphonesize.com/iphone-13-pro-max",
652
883
  "source_url": "https://support.apple.com/en-us/111870",
653
- "dates_source_url": "https://www.apple.com/newsroom/2021/09/apple-unveils-iphone-13-pro-and-iphone-13-pro-max-more-pro-than-ever-before/"
884
+ "dates_source_url": "https://www.apple.com/newsroom/2021/09/apple-unveils-iphone-13-pro-and-iphone-13-pro-max-more-pro-than-ever-before/",
885
+ "model_identifiers": [
886
+ "iPhone14,3"
887
+ ],
888
+ "model_numbers": [
889
+ "A2484",
890
+ "A2641",
891
+ "A2644",
892
+ "A2645",
893
+ "A2643"
894
+ ],
895
+ "model_identifiers_source": "apple"
654
896
  },
655
897
  {
656
898
  "id": "iphone-13-pro",
@@ -677,7 +919,18 @@ const dataset = {
677
919
  "ppi": 460,
678
920
  "url": "https://iphonesize.com/iphone-13-pro",
679
921
  "source_url": "https://support.apple.com/en-us/111871",
680
- "dates_source_url": "https://www.apple.com/newsroom/2021/09/apple-unveils-iphone-13-pro-and-iphone-13-pro-max-more-pro-than-ever-before/"
922
+ "dates_source_url": "https://www.apple.com/newsroom/2021/09/apple-unveils-iphone-13-pro-and-iphone-13-pro-max-more-pro-than-ever-before/",
923
+ "model_identifiers": [
924
+ "iPhone14,2"
925
+ ],
926
+ "model_numbers": [
927
+ "A2483",
928
+ "A2636",
929
+ "A2639",
930
+ "A2640",
931
+ "A2638"
932
+ ],
933
+ "model_identifiers_source": "apple"
681
934
  },
682
935
  {
683
936
  "id": "iphone-13-mini",
@@ -704,7 +957,18 @@ const dataset = {
704
957
  "ppi": 476,
705
958
  "url": "https://iphonesize.com/iphone-13-mini",
706
959
  "source_url": "https://support.apple.com/en-us/111873",
707
- "dates_source_url": "https://www.apple.com/newsroom/2021/09/apple-introduces-iphone-13-and-iphone-13-mini/"
960
+ "dates_source_url": "https://www.apple.com/newsroom/2021/09/apple-introduces-iphone-13-and-iphone-13-mini/",
961
+ "model_identifiers": [
962
+ "iPhone14,4"
963
+ ],
964
+ "model_numbers": [
965
+ "A2481",
966
+ "A2626",
967
+ "A2629",
968
+ "A2630",
969
+ "A2628"
970
+ ],
971
+ "model_identifiers_source": "apple"
708
972
  },
709
973
  {
710
974
  "id": "iphone-13",
@@ -731,7 +995,18 @@ const dataset = {
731
995
  "ppi": 460,
732
996
  "url": "https://iphonesize.com/iphone-13",
733
997
  "source_url": "https://support.apple.com/en-us/111872",
734
- "dates_source_url": "https://www.apple.com/newsroom/2021/09/apple-introduces-iphone-13-and-iphone-13-mini/"
998
+ "dates_source_url": "https://www.apple.com/newsroom/2021/09/apple-introduces-iphone-13-and-iphone-13-mini/",
999
+ "model_identifiers": [
1000
+ "iPhone14,5"
1001
+ ],
1002
+ "model_numbers": [
1003
+ "A2482",
1004
+ "A2631",
1005
+ "A2634",
1006
+ "A2635",
1007
+ "A2633"
1008
+ ],
1009
+ "model_identifiers_source": "apple"
735
1010
  },
736
1011
  {
737
1012
  "id": "iphone-se-3rd",
@@ -760,7 +1035,18 @@ const dataset = {
760
1035
  "ppi": 326,
761
1036
  "url": "https://iphonesize.com/iphone-se-3rd",
762
1037
  "source_url": "https://support.apple.com/en-us/111866",
763
- "dates_source_url": "https://www.apple.com/newsroom/2022/03/apple-announces-the-new-iphone-se-a-powerful-smartphone-in-an-iconic-design/"
1038
+ "dates_source_url": "https://www.apple.com/newsroom/2022/03/apple-announces-the-new-iphone-se-a-powerful-smartphone-in-an-iconic-design/",
1039
+ "model_identifiers": [
1040
+ "iPhone14,6"
1041
+ ],
1042
+ "model_numbers": [
1043
+ "A2595",
1044
+ "A2782",
1045
+ "A2784",
1046
+ "A2785",
1047
+ "A2783"
1048
+ ],
1049
+ "model_identifiers_source": "apple"
764
1050
  },
765
1051
  {
766
1052
  "id": "iphone-12-pro-max",
@@ -787,7 +1073,17 @@ const dataset = {
787
1073
  "ppi": 458,
788
1074
  "url": "https://iphonesize.com/iphone-12-pro-max",
789
1075
  "source_url": "https://support.apple.com/en-us/111874",
790
- "dates_source_url": "https://www.apple.com/newsroom/2020/10/apple-introduces-iphone-12-pro-and-iphone-12-pro-max-with-5g/"
1076
+ "dates_source_url": "https://www.apple.com/newsroom/2020/10/apple-introduces-iphone-12-pro-and-iphone-12-pro-max-with-5g/",
1077
+ "model_identifiers": [
1078
+ "iPhone13,4"
1079
+ ],
1080
+ "model_numbers": [
1081
+ "A2342",
1082
+ "A2410",
1083
+ "A2412",
1084
+ "A2411"
1085
+ ],
1086
+ "model_identifiers_source": "apple"
791
1087
  },
792
1088
  {
793
1089
  "id": "iphone-12-pro",
@@ -814,7 +1110,17 @@ const dataset = {
814
1110
  "ppi": 460,
815
1111
  "url": "https://iphonesize.com/iphone-12-pro",
816
1112
  "source_url": "https://support.apple.com/en-us/111875",
817
- "dates_source_url": "https://www.apple.com/newsroom/2020/10/apple-introduces-iphone-12-pro-and-iphone-12-pro-max-with-5g/"
1113
+ "dates_source_url": "https://www.apple.com/newsroom/2020/10/apple-introduces-iphone-12-pro-and-iphone-12-pro-max-with-5g/",
1114
+ "model_identifiers": [
1115
+ "iPhone13,3"
1116
+ ],
1117
+ "model_numbers": [
1118
+ "A2341",
1119
+ "A2406",
1120
+ "A2408",
1121
+ "A2407"
1122
+ ],
1123
+ "model_identifiers_source": "apple"
818
1124
  },
819
1125
  {
820
1126
  "id": "iphone-12-mini",
@@ -841,7 +1147,17 @@ const dataset = {
841
1147
  "ppi": 476,
842
1148
  "url": "https://iphonesize.com/iphone-12-mini",
843
1149
  "source_url": "https://support.apple.com/en-us/111877",
844
- "dates_source_url": "https://www.apple.com/newsroom/2020/10/apple-announces-iphone-12-and-iphone-12-mini-a-new-era-for-iphone-with-5g/"
1150
+ "dates_source_url": "https://www.apple.com/newsroom/2020/10/apple-announces-iphone-12-and-iphone-12-mini-a-new-era-for-iphone-with-5g/",
1151
+ "model_identifiers": [
1152
+ "iPhone13,1"
1153
+ ],
1154
+ "model_numbers": [
1155
+ "A2176",
1156
+ "A2398",
1157
+ "A2400",
1158
+ "A2399"
1159
+ ],
1160
+ "model_identifiers_source": "apple"
845
1161
  },
846
1162
  {
847
1163
  "id": "iphone-12",
@@ -868,7 +1184,17 @@ const dataset = {
868
1184
  "ppi": 460,
869
1185
  "url": "https://iphonesize.com/iphone-12",
870
1186
  "source_url": "https://support.apple.com/en-us/111876",
871
- "dates_source_url": "https://www.apple.com/newsroom/2020/10/apple-announces-iphone-12-and-iphone-12-mini-a-new-era-for-iphone-with-5g/"
1187
+ "dates_source_url": "https://www.apple.com/newsroom/2020/10/apple-announces-iphone-12-and-iphone-12-mini-a-new-era-for-iphone-with-5g/",
1188
+ "model_identifiers": [
1189
+ "iPhone13,2"
1190
+ ],
1191
+ "model_numbers": [
1192
+ "A2172",
1193
+ "A2402",
1194
+ "A2404",
1195
+ "A2403"
1196
+ ],
1197
+ "model_identifiers_source": "apple"
872
1198
  },
873
1199
  {
874
1200
  "id": "iphone-11-pro-max",
@@ -895,7 +1221,16 @@ const dataset = {
895
1221
  "ppi": 458,
896
1222
  "url": "https://iphonesize.com/iphone-11-pro-max",
897
1223
  "source_url": "https://support.apple.com/en-us/111878",
898
- "dates_source_url": "https://www.apple.com/newsroom/2019/09/iphone-11-pro-and-iphone-11-pro-max-the-most-powerful-and-advanced-smartphones/"
1224
+ "dates_source_url": "https://www.apple.com/newsroom/2019/09/iphone-11-pro-and-iphone-11-pro-max-the-most-powerful-and-advanced-smartphones/",
1225
+ "model_identifiers": [
1226
+ "iPhone12,5"
1227
+ ],
1228
+ "model_numbers": [
1229
+ "A2161",
1230
+ "A2220",
1231
+ "A2218"
1232
+ ],
1233
+ "model_identifiers_source": "apple"
899
1234
  },
900
1235
  {
901
1236
  "id": "iphone-11-pro",
@@ -922,7 +1257,16 @@ const dataset = {
922
1257
  "ppi": 458,
923
1258
  "url": "https://iphonesize.com/iphone-11-pro",
924
1259
  "source_url": "https://support.apple.com/en-us/111879",
925
- "dates_source_url": "https://www.apple.com/newsroom/2019/09/iphone-11-pro-and-iphone-11-pro-max-the-most-powerful-and-advanced-smartphones/"
1260
+ "dates_source_url": "https://www.apple.com/newsroom/2019/09/iphone-11-pro-and-iphone-11-pro-max-the-most-powerful-and-advanced-smartphones/",
1261
+ "model_identifiers": [
1262
+ "iPhone12,3"
1263
+ ],
1264
+ "model_numbers": [
1265
+ "A2160",
1266
+ "A2217",
1267
+ "A2215"
1268
+ ],
1269
+ "model_identifiers_source": "apple"
926
1270
  },
927
1271
  {
928
1272
  "id": "iphone-11",
@@ -949,7 +1293,16 @@ const dataset = {
949
1293
  "ppi": 326,
950
1294
  "url": "https://iphonesize.com/iphone-11",
951
1295
  "source_url": "https://support.apple.com/en-us/111865",
952
- "dates_source_url": "https://www.apple.com/newsroom/2019/09/apple-introduces-dual-camera-iphone-11/"
1296
+ "dates_source_url": "https://www.apple.com/newsroom/2019/09/apple-introduces-dual-camera-iphone-11/",
1297
+ "model_identifiers": [
1298
+ "iPhone12,1"
1299
+ ],
1300
+ "model_numbers": [
1301
+ "A2111",
1302
+ "A2223",
1303
+ "A2221"
1304
+ ],
1305
+ "model_identifiers_source": "apple"
953
1306
  },
954
1307
  {
955
1308
  "id": "iphone-se-2nd",
@@ -978,7 +1331,16 @@ const dataset = {
978
1331
  "ppi": 326,
979
1332
  "url": "https://iphonesize.com/iphone-se-2nd",
980
1333
  "source_url": "https://support.apple.com/en-us/111882",
981
- "dates_source_url": "https://www.apple.com/newsroom/2020/04/iphone-se-a-powerful-new-smartphone-in-a-popular-design/"
1334
+ "dates_source_url": "https://www.apple.com/newsroom/2020/04/iphone-se-a-powerful-new-smartphone-in-a-popular-design/",
1335
+ "model_identifiers": [
1336
+ "iPhone12,8"
1337
+ ],
1338
+ "model_numbers": [
1339
+ "A2275",
1340
+ "A2298",
1341
+ "A2296"
1342
+ ],
1343
+ "model_identifiers_source": "apple"
982
1344
  },
983
1345
  {
984
1346
  "id": "iphone-xs-max",
@@ -1005,7 +1367,19 @@ const dataset = {
1005
1367
  "ppi": 458,
1006
1368
  "url": "https://iphonesize.com/iphone-xs-max",
1007
1369
  "source_url": "https://support.apple.com/en-us/111880",
1008
- "dates_source_url": "https://www.apple.com/newsroom/2018/09/iphone-xs-and-iphone-xs-max-bring-the-best-and-biggest-displays-to-iphone/"
1370
+ "dates_source_url": "https://www.apple.com/newsroom/2018/09/iphone-xs-and-iphone-xs-max-bring-the-best-and-biggest-displays-to-iphone/",
1371
+ "model_identifiers": [
1372
+ "iPhone11,4",
1373
+ "iPhone11,6"
1374
+ ],
1375
+ "model_numbers": [
1376
+ "A1921",
1377
+ "A2101",
1378
+ "A2102",
1379
+ "A2103",
1380
+ "A2104"
1381
+ ],
1382
+ "model_identifiers_source": "apple"
1009
1383
  },
1010
1384
  {
1011
1385
  "id": "iphone-xs",
@@ -1032,7 +1406,18 @@ const dataset = {
1032
1406
  "ppi": 458,
1033
1407
  "url": "https://iphonesize.com/iphone-xs",
1034
1408
  "source_url": "https://support.apple.com/en-us/111881",
1035
- "dates_source_url": "https://www.apple.com/newsroom/2018/09/iphone-xs-and-iphone-xs-max-bring-the-best-and-biggest-displays-to-iphone/"
1409
+ "dates_source_url": "https://www.apple.com/newsroom/2018/09/iphone-xs-and-iphone-xs-max-bring-the-best-and-biggest-displays-to-iphone/",
1410
+ "model_identifiers": [
1411
+ "iPhone11,2"
1412
+ ],
1413
+ "model_numbers": [
1414
+ "A1920",
1415
+ "A2097",
1416
+ "A2098",
1417
+ "A2099",
1418
+ "A2100"
1419
+ ],
1420
+ "model_identifiers_source": "apple"
1036
1421
  },
1037
1422
  {
1038
1423
  "id": "iphone-xr",
@@ -1059,7 +1444,18 @@ const dataset = {
1059
1444
  "ppi": 326,
1060
1445
  "url": "https://iphonesize.com/iphone-xr",
1061
1446
  "source_url": "https://support.apple.com/en-us/111868",
1062
- "dates_source_url": "https://www.apple.com/newsroom/2018/09/apple-introduces-iphone-xr/"
1447
+ "dates_source_url": "https://www.apple.com/newsroom/2018/09/apple-introduces-iphone-xr/",
1448
+ "model_identifiers": [
1449
+ "iPhone11,8"
1450
+ ],
1451
+ "model_numbers": [
1452
+ "A1984",
1453
+ "A2105",
1454
+ "A2106",
1455
+ "A2107",
1456
+ "A2108"
1457
+ ],
1458
+ "model_identifiers_source": "apple"
1063
1459
  },
1064
1460
  {
1065
1461
  "id": "iphone-x",
@@ -1086,7 +1482,17 @@ const dataset = {
1086
1482
  "ppi": 458,
1087
1483
  "url": "https://iphonesize.com/iphone-x",
1088
1484
  "source_url": "https://support.apple.com/en-us/111864",
1089
- "dates_source_url": "https://www.apple.com/newsroom/2017/09/the-future-is-here-iphone-x/"
1485
+ "dates_source_url": "https://www.apple.com/newsroom/2017/09/the-future-is-here-iphone-x/",
1486
+ "model_identifiers": [
1487
+ "iPhone10,3",
1488
+ "iPhone10,6"
1489
+ ],
1490
+ "model_numbers": [
1491
+ "A1865",
1492
+ "A1901",
1493
+ "A1902"
1494
+ ],
1495
+ "model_identifiers_source": "apple"
1090
1496
  },
1091
1497
  {
1092
1498
  "id": "iphone-8-plus",
@@ -1113,7 +1519,17 @@ const dataset = {
1113
1519
  "ppi": 401,
1114
1520
  "url": "https://iphonesize.com/iphone-8-plus",
1115
1521
  "source_url": "https://support.apple.com/en-us/111950",
1116
- "dates_source_url": "https://www.apple.com/newsroom/2017/09/iphone-8-and-iphone-8-plus-a-new-generation-of-iphone/"
1522
+ "dates_source_url": "https://www.apple.com/newsroom/2017/09/iphone-8-and-iphone-8-plus-a-new-generation-of-iphone/",
1523
+ "model_identifiers": [
1524
+ "iPhone10,2",
1525
+ "iPhone10,5"
1526
+ ],
1527
+ "model_numbers": [
1528
+ "A1864",
1529
+ "A1897",
1530
+ "A1898"
1531
+ ],
1532
+ "model_identifiers_source": "apple"
1117
1533
  },
1118
1534
  {
1119
1535
  "id": "iphone-8",
@@ -1140,7 +1556,17 @@ const dataset = {
1140
1556
  "ppi": 326,
1141
1557
  "url": "https://iphonesize.com/iphone-8",
1142
1558
  "source_url": "https://support.apple.com/en-us/111976",
1143
- "dates_source_url": "https://www.apple.com/newsroom/2017/09/iphone-8-and-iphone-8-plus-a-new-generation-of-iphone/"
1559
+ "dates_source_url": "https://www.apple.com/newsroom/2017/09/iphone-8-and-iphone-8-plus-a-new-generation-of-iphone/",
1560
+ "model_identifiers": [
1561
+ "iPhone10,1",
1562
+ "iPhone10,4"
1563
+ ],
1564
+ "model_numbers": [
1565
+ "A1863",
1566
+ "A1905",
1567
+ "A1906"
1568
+ ],
1569
+ "model_identifiers_source": "apple"
1144
1570
  },
1145
1571
  {
1146
1572
  "id": "iphone-7-plus",
@@ -1167,7 +1593,17 @@ const dataset = {
1167
1593
  "ppi": 401,
1168
1594
  "url": "https://iphonesize.com/iphone-7-plus",
1169
1595
  "source_url": "https://support.apple.com/en-us/111953",
1170
- "dates_source_url": "https://www.apple.com/newsroom/2016/09/apple-introduces-iphone-7-iphone-7-plus/"
1596
+ "dates_source_url": "https://www.apple.com/newsroom/2016/09/apple-introduces-iphone-7-iphone-7-plus/",
1597
+ "model_identifiers": [
1598
+ "iPhone9,2",
1599
+ "iPhone9,4"
1600
+ ],
1601
+ "model_numbers": [
1602
+ "A1661",
1603
+ "A1784",
1604
+ "A1785"
1605
+ ],
1606
+ "model_identifiers_source": "apple"
1171
1607
  },
1172
1608
  {
1173
1609
  "id": "iphone-7",
@@ -1194,7 +1630,491 @@ const dataset = {
1194
1630
  "ppi": 326,
1195
1631
  "url": "https://iphonesize.com/iphone-7",
1196
1632
  "source_url": "https://support.apple.com/en-us/111943",
1197
- "dates_source_url": "https://www.apple.com/newsroom/2016/09/apple-introduces-iphone-7-iphone-7-plus/"
1633
+ "dates_source_url": "https://www.apple.com/newsroom/2016/09/apple-introduces-iphone-7-iphone-7-plus/",
1634
+ "model_identifiers": [
1635
+ "iPhone9,1",
1636
+ "iPhone9,3"
1637
+ ],
1638
+ "model_numbers": [
1639
+ "A1660",
1640
+ "A1778",
1641
+ "A1779"
1642
+ ],
1643
+ "model_identifiers_source": "apple"
1644
+ },
1645
+ {
1646
+ "id": "iphone-2007",
1647
+ "product_id": "iphone-2007",
1648
+ "state": null,
1649
+ "name": "iPhone",
1650
+ "also_known_as": [],
1651
+ "family": "iPhone",
1652
+ "announced": "2007-01-09",
1653
+ "released": "2007-06-29",
1654
+ "height_mm": 115,
1655
+ "width_mm": 61,
1656
+ "depth_mm": 11.6,
1657
+ "weight_g": 135,
1658
+ "height_in": 4.53,
1659
+ "width_in": 2.4,
1660
+ "depth_in": 0.46,
1661
+ "weight_oz": 4.76,
1662
+ "display_in": 3.5,
1663
+ "resolution_px": {
1664
+ "width": 320,
1665
+ "height": 480
1666
+ },
1667
+ "ppi": 163,
1668
+ "url": null,
1669
+ "source_url": "https://support.apple.com/en-us/112445",
1670
+ "dates_source_url": "https://www.apple.com/newsroom/2007/06/28iPhone-Premieres-This-Friday-Night-at-Apple-Retail-Stores/",
1671
+ "model_identifiers": [
1672
+ "iPhone1,1"
1673
+ ],
1674
+ "model_numbers": [
1675
+ "A1203"
1676
+ ],
1677
+ "model_identifiers_source": "secondary"
1678
+ },
1679
+ {
1680
+ "id": "iphone-3g",
1681
+ "product_id": "iphone-3g",
1682
+ "state": null,
1683
+ "name": "iPhone 3G",
1684
+ "also_known_as": [],
1685
+ "family": "iPhone 3G",
1686
+ "announced": "2008-06-09",
1687
+ "released": "2008-07-11",
1688
+ "height_mm": 115.5,
1689
+ "width_mm": 62.1,
1690
+ "depth_mm": 12.3,
1691
+ "weight_g": 133,
1692
+ "height_in": 4.55,
1693
+ "width_in": 2.44,
1694
+ "depth_in": 0.48,
1695
+ "weight_oz": 4.69,
1696
+ "display_in": 3.5,
1697
+ "resolution_px": {
1698
+ "width": 320,
1699
+ "height": 480
1700
+ },
1701
+ "ppi": 163,
1702
+ "url": null,
1703
+ "source_url": "https://support.apple.com/en-us/112496",
1704
+ "dates_source_url": "https://www.apple.com/newsroom/2008/06/09Apple-Introduces-the-New-iPhone-3G/",
1705
+ "model_identifiers": [
1706
+ "iPhone1,2"
1707
+ ],
1708
+ "model_numbers": [
1709
+ "A1324",
1710
+ "A1241"
1711
+ ],
1712
+ "model_identifiers_source": "secondary"
1713
+ },
1714
+ {
1715
+ "id": "iphone-3gs",
1716
+ "product_id": "iphone-3gs",
1717
+ "state": null,
1718
+ "name": "iPhone 3GS",
1719
+ "also_known_as": [],
1720
+ "family": "iPhone 3GS",
1721
+ "announced": "2009-06-08",
1722
+ "released": "2009-06-19",
1723
+ "height_mm": 115.5,
1724
+ "width_mm": 62.1,
1725
+ "depth_mm": 12.3,
1726
+ "weight_g": 135,
1727
+ "height_in": 4.55,
1728
+ "width_in": 2.44,
1729
+ "depth_in": 0.48,
1730
+ "weight_oz": 4.76,
1731
+ "display_in": 3.5,
1732
+ "resolution_px": {
1733
+ "width": 320,
1734
+ "height": 480
1735
+ },
1736
+ "ppi": 163,
1737
+ "url": null,
1738
+ "source_url": "https://support.apple.com/en-us/112307",
1739
+ "dates_source_url": "https://www.apple.com/newsroom/2009/06/08Apple-Announces-the-New-iPhone-3GS-The-Fastest-Most-Powerful-iPhone-Yet/",
1740
+ "model_identifiers": [
1741
+ "iPhone2,1"
1742
+ ],
1743
+ "model_numbers": [
1744
+ "A1325",
1745
+ "A1303"
1746
+ ],
1747
+ "model_identifiers_source": "secondary"
1748
+ },
1749
+ {
1750
+ "id": "iphone-4",
1751
+ "product_id": "iphone-4",
1752
+ "state": null,
1753
+ "name": "iPhone 4",
1754
+ "also_known_as": [],
1755
+ "family": "iPhone 4",
1756
+ "announced": "2010-06-07",
1757
+ "released": "2010-06-24",
1758
+ "height_mm": 115.2,
1759
+ "width_mm": 58.6,
1760
+ "depth_mm": 9.3,
1761
+ "weight_g": 137,
1762
+ "height_in": 4.54,
1763
+ "width_in": 2.31,
1764
+ "depth_in": 0.37,
1765
+ "weight_oz": 4.83,
1766
+ "display_in": 3.5,
1767
+ "resolution_px": {
1768
+ "width": 640,
1769
+ "height": 960
1770
+ },
1771
+ "ppi": 326,
1772
+ "url": null,
1773
+ "source_url": "https://support.apple.com/en-us/112562",
1774
+ "dates_source_url": "https://www.apple.com/newsroom/2010/06/07Apple-Presents-iPhone-4/",
1775
+ "model_identifiers": [
1776
+ "iPhone3,1",
1777
+ "iPhone3,2",
1778
+ "iPhone3,3"
1779
+ ],
1780
+ "model_numbers": [
1781
+ "A1349",
1782
+ "A1332"
1783
+ ],
1784
+ "model_identifiers_source": "secondary"
1785
+ },
1786
+ {
1787
+ "id": "iphone-4s",
1788
+ "product_id": "iphone-4s",
1789
+ "state": null,
1790
+ "name": "iPhone 4s",
1791
+ "also_known_as": [
1792
+ "iPhone 4S"
1793
+ ],
1794
+ "family": "iPhone 4",
1795
+ "announced": "2011-10-04",
1796
+ "released": "2011-10-14",
1797
+ "height_mm": 115.2,
1798
+ "width_mm": 58.6,
1799
+ "depth_mm": 9.3,
1800
+ "weight_g": 140,
1801
+ "height_in": 4.54,
1802
+ "width_in": 2.31,
1803
+ "depth_in": 0.37,
1804
+ "weight_oz": 4.94,
1805
+ "display_in": 3.5,
1806
+ "resolution_px": {
1807
+ "width": 640,
1808
+ "height": 960
1809
+ },
1810
+ "ppi": 326,
1811
+ "url": null,
1812
+ "source_url": "https://support.apple.com/en-us/112004",
1813
+ "dates_source_url": "https://www.apple.com/newsroom/2011/10/04Apple-Launches-iPhone-4S-iOS-5-iCloud/",
1814
+ "model_identifiers": [
1815
+ "iPhone4,1"
1816
+ ],
1817
+ "model_numbers": [
1818
+ "A1431",
1819
+ "A1387"
1820
+ ],
1821
+ "model_identifiers_source": "apple"
1822
+ },
1823
+ {
1824
+ "id": "iphone-5",
1825
+ "product_id": "iphone-5",
1826
+ "state": null,
1827
+ "name": "iPhone 5",
1828
+ "also_known_as": [],
1829
+ "family": "iPhone 5",
1830
+ "announced": "2012-09-12",
1831
+ "released": "2012-09-21",
1832
+ "height_mm": 123.8,
1833
+ "width_mm": 58.6,
1834
+ "depth_mm": 7.6,
1835
+ "weight_g": 112,
1836
+ "height_in": 4.87,
1837
+ "width_in": 2.31,
1838
+ "depth_in": 0.3,
1839
+ "weight_oz": 3.95,
1840
+ "display_in": 4,
1841
+ "resolution_px": {
1842
+ "width": 640,
1843
+ "height": 1136
1844
+ },
1845
+ "ppi": 326,
1846
+ "url": null,
1847
+ "source_url": "https://support.apple.com/en-us/112016",
1848
+ "dates_source_url": "https://www.apple.com/newsroom/2012/09/12Apple-Introduces-iPhone-5/",
1849
+ "model_identifiers": [
1850
+ "iPhone5,1",
1851
+ "iPhone5,2"
1852
+ ],
1853
+ "model_numbers": [
1854
+ "A1428",
1855
+ "A1429",
1856
+ "A1442"
1857
+ ],
1858
+ "model_identifiers_source": "apple"
1859
+ },
1860
+ {
1861
+ "id": "iphone-5c",
1862
+ "product_id": "iphone-5c",
1863
+ "state": null,
1864
+ "name": "iPhone 5c",
1865
+ "also_known_as": [],
1866
+ "family": "iPhone 5",
1867
+ "announced": "2013-09-10",
1868
+ "released": "2013-09-20",
1869
+ "height_mm": 124.4,
1870
+ "width_mm": 59.2,
1871
+ "depth_mm": 8.97,
1872
+ "weight_g": 132,
1873
+ "height_in": 4.9,
1874
+ "width_in": 2.33,
1875
+ "depth_in": 0.35,
1876
+ "weight_oz": 4.66,
1877
+ "display_in": 4,
1878
+ "resolution_px": {
1879
+ "width": 640,
1880
+ "height": 1136
1881
+ },
1882
+ "ppi": 326,
1883
+ "url": null,
1884
+ "source_url": "https://support.apple.com/en-us/111917",
1885
+ "dates_source_url": "https://www.apple.com/newsroom/2013/09/10Apple-Introduces-iPhone-5c-The-Most-Colorful-iPhone-Yet/",
1886
+ "model_identifiers": [
1887
+ "iPhone5,3",
1888
+ "iPhone5,4"
1889
+ ],
1890
+ "model_numbers": [
1891
+ "A1456",
1892
+ "A1507",
1893
+ "A1516",
1894
+ "A1529",
1895
+ "A1532"
1896
+ ],
1897
+ "model_identifiers_source": "apple"
1898
+ },
1899
+ {
1900
+ "id": "iphone-5s",
1901
+ "product_id": "iphone-5s",
1902
+ "state": null,
1903
+ "name": "iPhone 5s",
1904
+ "also_known_as": [],
1905
+ "family": "iPhone 5",
1906
+ "announced": "2013-09-10",
1907
+ "released": "2013-09-20",
1908
+ "height_mm": 123.8,
1909
+ "width_mm": 58.6,
1910
+ "depth_mm": 7.6,
1911
+ "weight_g": 112,
1912
+ "height_in": 4.87,
1913
+ "width_in": 2.31,
1914
+ "depth_in": 0.3,
1915
+ "weight_oz": 3.95,
1916
+ "display_in": 4,
1917
+ "resolution_px": {
1918
+ "width": 640,
1919
+ "height": 1136
1920
+ },
1921
+ "ppi": 326,
1922
+ "url": null,
1923
+ "source_url": "https://support.apple.com/en-us/111973",
1924
+ "dates_source_url": "https://www.apple.com/newsroom/2013/09/10Apple-Announces-iPhone-5s-The-Most-Forward-Thinking-Smartphone-in-the-World/",
1925
+ "model_identifiers": [
1926
+ "iPhone6,1",
1927
+ "iPhone6,2"
1928
+ ],
1929
+ "model_numbers": [
1930
+ "A1453",
1931
+ "A1457",
1932
+ "A1518",
1933
+ "A1528",
1934
+ "A1530",
1935
+ "A1533"
1936
+ ],
1937
+ "model_identifiers_source": "apple"
1938
+ },
1939
+ {
1940
+ "id": "iphone-6",
1941
+ "product_id": "iphone-6",
1942
+ "state": null,
1943
+ "name": "iPhone 6",
1944
+ "also_known_as": [],
1945
+ "family": "iPhone 6",
1946
+ "announced": "2014-09-09",
1947
+ "released": "2014-09-19",
1948
+ "height_mm": 138.1,
1949
+ "width_mm": 67,
1950
+ "depth_mm": 6.9,
1951
+ "weight_g": 129,
1952
+ "height_in": 5.44,
1953
+ "width_in": 2.64,
1954
+ "depth_in": 0.27,
1955
+ "weight_oz": 4.55,
1956
+ "display_in": 4.7,
1957
+ "resolution_px": {
1958
+ "width": 750,
1959
+ "height": 1334
1960
+ },
1961
+ "ppi": 326,
1962
+ "url": null,
1963
+ "source_url": "https://support.apple.com/en-us/111954",
1964
+ "dates_source_url": "https://www.apple.com/newsroom/2014/09/09Apple-Announces-iPhone-6-iPhone-6-Plus-The-Biggest-Advancements-in-iPhone-History/",
1965
+ "model_identifiers": [
1966
+ "iPhone7,2"
1967
+ ],
1968
+ "model_numbers": [
1969
+ "A1549",
1970
+ "A1586",
1971
+ "A1589"
1972
+ ],
1973
+ "model_identifiers_source": "apple"
1974
+ },
1975
+ {
1976
+ "id": "iphone-6-plus",
1977
+ "product_id": "iphone-6-plus",
1978
+ "state": null,
1979
+ "name": "iPhone 6 Plus",
1980
+ "also_known_as": [],
1981
+ "family": "iPhone 6",
1982
+ "announced": "2014-09-09",
1983
+ "released": "2014-09-19",
1984
+ "height_mm": 158.1,
1985
+ "width_mm": 77.8,
1986
+ "depth_mm": 7.1,
1987
+ "weight_g": 172,
1988
+ "height_in": 6.22,
1989
+ "width_in": 3.06,
1990
+ "depth_in": 0.28,
1991
+ "weight_oz": 6.07,
1992
+ "display_in": 5.5,
1993
+ "resolution_px": {
1994
+ "width": 1080,
1995
+ "height": 1920
1996
+ },
1997
+ "ppi": 401,
1998
+ "url": null,
1999
+ "source_url": "https://support.apple.com/en-us/111940",
2000
+ "dates_source_url": "https://www.apple.com/newsroom/2014/09/09Apple-Announces-iPhone-6-iPhone-6-Plus-The-Biggest-Advancements-in-iPhone-History/",
2001
+ "model_identifiers": [
2002
+ "iPhone7,1"
2003
+ ],
2004
+ "model_numbers": [
2005
+ "A1522",
2006
+ "A1524",
2007
+ "A1593"
2008
+ ],
2009
+ "model_identifiers_source": "apple"
2010
+ },
2011
+ {
2012
+ "id": "iphone-6s",
2013
+ "product_id": "iphone-6s",
2014
+ "state": null,
2015
+ "name": "iPhone 6s",
2016
+ "also_known_as": [],
2017
+ "family": "iPhone 6",
2018
+ "announced": "2015-09-09",
2019
+ "released": "2015-09-25",
2020
+ "height_mm": 138.3,
2021
+ "width_mm": 67.1,
2022
+ "depth_mm": 7.1,
2023
+ "weight_g": 143,
2024
+ "height_in": 5.44,
2025
+ "width_in": 2.64,
2026
+ "depth_in": 0.28,
2027
+ "weight_oz": 5.04,
2028
+ "display_in": 4.7,
2029
+ "resolution_px": {
2030
+ "width": 750,
2031
+ "height": 1334
2032
+ },
2033
+ "ppi": 326,
2034
+ "url": null,
2035
+ "source_url": "https://support.apple.com/en-us/111952",
2036
+ "dates_source_url": "https://www.apple.com/newsroom/2015/09/09Apple-Introduces-iPhone-6s-iPhone-6s-Plus/",
2037
+ "model_identifiers": [
2038
+ "iPhone8,1"
2039
+ ],
2040
+ "model_numbers": [
2041
+ "A1633",
2042
+ "A1688",
2043
+ "A1700"
2044
+ ],
2045
+ "model_identifiers_source": "apple"
2046
+ },
2047
+ {
2048
+ "id": "iphone-6s-plus",
2049
+ "product_id": "iphone-6s-plus",
2050
+ "state": null,
2051
+ "name": "iPhone 6s Plus",
2052
+ "also_known_as": [],
2053
+ "family": "iPhone 6",
2054
+ "announced": "2015-09-09",
2055
+ "released": "2015-09-25",
2056
+ "height_mm": 158.2,
2057
+ "width_mm": 77.9,
2058
+ "depth_mm": 7.3,
2059
+ "weight_g": 192,
2060
+ "height_in": 6.23,
2061
+ "width_in": 3.07,
2062
+ "depth_in": 0.29,
2063
+ "weight_oz": 6.77,
2064
+ "display_in": 5.5,
2065
+ "resolution_px": {
2066
+ "width": 1080,
2067
+ "height": 1920
2068
+ },
2069
+ "ppi": 401,
2070
+ "url": null,
2071
+ "source_url": "https://support.apple.com/en-us/111996",
2072
+ "dates_source_url": "https://www.apple.com/newsroom/2015/09/09Apple-Introduces-iPhone-6s-iPhone-6s-Plus/",
2073
+ "model_identifiers": [
2074
+ "iPhone8,2"
2075
+ ],
2076
+ "model_numbers": [
2077
+ "A1634",
2078
+ "A1687",
2079
+ "A1699"
2080
+ ],
2081
+ "model_identifiers_source": "apple"
2082
+ },
2083
+ {
2084
+ "id": "iphone-se-1st",
2085
+ "product_id": "iphone-se-1st",
2086
+ "state": null,
2087
+ "name": "iPhone SE (1st generation)",
2088
+ "also_known_as": [],
2089
+ "family": "iPhone SE",
2090
+ "announced": "2016-03-21",
2091
+ "released": "2016-03-31",
2092
+ "height_mm": 123.8,
2093
+ "width_mm": 58.6,
2094
+ "depth_mm": 7.6,
2095
+ "weight_g": 113,
2096
+ "height_in": 4.87,
2097
+ "width_in": 2.31,
2098
+ "depth_in": 0.3,
2099
+ "weight_oz": 3.99,
2100
+ "display_in": 4,
2101
+ "resolution_px": {
2102
+ "width": 640,
2103
+ "height": 1136
2104
+ },
2105
+ "ppi": 326,
2106
+ "url": null,
2107
+ "source_url": "https://support.apple.com/en-us/112005",
2108
+ "dates_source_url": "https://www.apple.com/newsroom/2016/03/21Apple-Introduces-iPhone-SE-The-Most-Powerful-Phone-with-a-Four-inch-Display/",
2109
+ "model_identifiers": [
2110
+ "iPhone8,4"
2111
+ ],
2112
+ "model_numbers": [
2113
+ "A1723",
2114
+ "A1662",
2115
+ "A1724"
2116
+ ],
2117
+ "model_identifiers_source": "apple"
1198
2118
  }
1199
2119
  ]
1200
2120
  };
@@ -1211,6 +2131,8 @@ function stateRank(state) {
1211
2131
  function freezePhone(phone) {
1212
2132
  Object.freeze(phone.resolution_px);
1213
2133
  Object.freeze(phone.also_known_as);
2134
+ Object.freeze(phone.model_identifiers);
2135
+ Object.freeze(phone.model_numbers);
1214
2136
  return Object.freeze(phone);
1215
2137
  }
1216
2138
 
@@ -1229,22 +2151,53 @@ function getPhone(id) {
1229
2151
  return undefined;
1230
2152
  }
1231
2153
 
2154
+ function listIncludes(values, needle) {
2155
+ for (const value of values) {
2156
+ if (value.toLowerCase().includes(needle)) {
2157
+ return true;
2158
+ }
2159
+ }
2160
+ return false;
2161
+ }
2162
+
1232
2163
  function findPhones(query) {
1233
2164
  const needle = query.toLowerCase();
1234
2165
  const matches = [];
1235
2166
  for (const phone of phones) {
1236
- if (phone.name.toLowerCase().includes(needle) || phone.id.toLowerCase().includes(needle)) {
2167
+ if (
2168
+ phone.name.toLowerCase().includes(needle)
2169
+ || phone.id.toLowerCase().includes(needle)
2170
+ || listIncludes(phone.also_known_as, needle)
2171
+ || listIncludes(phone.model_identifiers, needle)
2172
+ || listIncludes(phone.model_numbers, needle)
2173
+ ) {
1237
2174
  matches.push(phone);
1238
- continue;
1239
2175
  }
1240
- for (const alias of phone.also_known_as) {
1241
- if (alias.toLowerCase().includes(needle)) {
1242
- matches.push(phone);
1243
- break;
2176
+ }
2177
+ return matches;
2178
+ }
2179
+
2180
+ function getByIdentifier(modelIdentifier) {
2181
+ for (const phone of phones) {
2182
+ for (const identifier of phone.model_identifiers) {
2183
+ if (identifier === modelIdentifier) {
2184
+ return phone;
1244
2185
  }
1245
2186
  }
1246
2187
  }
1247
- return matches;
2188
+ return undefined;
2189
+ }
2190
+
2191
+ function getByModelNumber(aNumber) {
2192
+ const needle = aNumber.toLowerCase();
2193
+ for (const phone of phones) {
2194
+ for (const modelNumber of phone.model_numbers) {
2195
+ if (modelNumber.toLowerCase() === needle) {
2196
+ return phone;
2197
+ }
2198
+ }
2199
+ }
2200
+ return undefined;
1248
2201
  }
1249
2202
 
1250
2203
  function getProduct(productId) {
@@ -1257,4 +2210,4 @@ function getProduct(productId) {
1257
2210
  matches.sort((left, right) => stateRank(left.state) - stateRank(right.state));
1258
2211
  return matches;
1259
2212
  }
1260
- module.exports = { phones, meta, getPhone, findPhones, getProduct };
2213
+ module.exports = { phones, meta, getPhone, findPhones, getProduct, getByIdentifier, getByModelNumber };