iphone-dimensions 1.0.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 ADDED
@@ -0,0 +1,1260 @@
1
+ // Generated by scripts/build.mjs. Do not edit.
2
+ 'use strict';
3
+ const dataset = {
4
+ "schema_version": 1,
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",
8
+ "homepage": "https://iphonesize.com/data-sources",
9
+ "source": "Apple technical specifications (apple.com, support.apple.com)",
10
+ "verified": "2026-09-09",
11
+ "notes": [
12
+ "One row per physical configuration; the iPhone Duo has two (closed and open).",
13
+ "Apple calls the Duo's two states closed and open, and its displays the outer and inner display.",
14
+ "display_in is Apple's marketed display diagonal.",
15
+ "Millimetres, grams, display, resolution and ppi are Apple's published values.",
16
+ "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
+ "Depth is the body without the camera protrusion.",
18
+ "Not suitable for case or accessory manufacturing; use Apple's dimensional drawings for that.",
19
+ "Rows follow the site's lineup order."
20
+ ],
21
+ "units": {
22
+ "length": "mm",
23
+ "mass": "g",
24
+ "display": "in"
25
+ },
26
+ "count": 43,
27
+ "phones": [
28
+ {
29
+ "id": "iphone-duo",
30
+ "product_id": "iphone-duo",
31
+ "state": "closed",
32
+ "name": "iPhone Duo",
33
+ "also_known_as": [
34
+ "iPhone Duo (closed)"
35
+ ],
36
+ "family": "iPhone Duo",
37
+ "announced": "2026-09-09",
38
+ "released": "2026-10-23",
39
+ "height_mm": 117.8,
40
+ "width_mm": 84.1,
41
+ "depth_mm": 11.3,
42
+ "weight_g": 254,
43
+ "height_in": 4.64,
44
+ "width_in": 3.31,
45
+ "depth_in": 0.44,
46
+ "weight_oz": 8.96,
47
+ "display_in": 5.4,
48
+ "resolution_px": {
49
+ "width": 1398,
50
+ "height": 2034
51
+ },
52
+ "ppi": 460,
53
+ "url": "https://iphonesize.com/iphone-duo",
54
+ "source_url": "https://www.apple.com/iphone-duo/specs/",
55
+ "dates_source_url": "https://www.apple.com/newsroom/2026/09/apple-unveils-iphone-duo/"
56
+ },
57
+ {
58
+ "id": "iphone-duo-unfolded",
59
+ "product_id": "iphone-duo",
60
+ "state": "open",
61
+ "name": "iPhone Duo",
62
+ "also_known_as": [
63
+ "iPhone Duo (open)"
64
+ ],
65
+ "family": "iPhone Duo",
66
+ "announced": "2026-09-09",
67
+ "released": "2026-10-23",
68
+ "height_mm": 117.8,
69
+ "width_mm": 164.6,
70
+ "depth_mm": 5.2,
71
+ "weight_g": 254,
72
+ "height_in": 4.64,
73
+ "width_in": 6.48,
74
+ "depth_in": 0.2,
75
+ "weight_oz": 8.96,
76
+ "display_in": 7.6,
77
+ "resolution_px": {
78
+ "width": 1878,
79
+ "height": 2670
80
+ },
81
+ "ppi": 430,
82
+ "url": "https://iphonesize.com/iphone-duo?duo=unfolded",
83
+ "source_url": "https://www.apple.com/iphone-duo/specs/",
84
+ "dates_source_url": "https://www.apple.com/newsroom/2026/09/apple-unveils-iphone-duo/"
85
+ },
86
+ {
87
+ "id": "iphone-18-pro-max",
88
+ "product_id": "iphone-18-pro-max",
89
+ "state": null,
90
+ "name": "iPhone 18 Pro Max",
91
+ "also_known_as": [],
92
+ "family": "iPhone 18",
93
+ "announced": "2026-09-09",
94
+ "released": "2026-09-18",
95
+ "height_mm": 163.4,
96
+ "width_mm": 78,
97
+ "depth_mm": 8.75,
98
+ "weight_g": 249,
99
+ "height_in": 6.43,
100
+ "width_in": 3.07,
101
+ "depth_in": 0.34,
102
+ "weight_oz": 8.78,
103
+ "display_in": 6.9,
104
+ "resolution_px": {
105
+ "width": 1320,
106
+ "height": 2868
107
+ },
108
+ "ppi": 460,
109
+ "url": "https://iphonesize.com/iphone-18-pro-max",
110
+ "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/"
112
+ },
113
+ {
114
+ "id": "iphone-18-pro",
115
+ "product_id": "iphone-18-pro",
116
+ "state": null,
117
+ "name": "iPhone 18 Pro",
118
+ "also_known_as": [],
119
+ "family": "iPhone 18",
120
+ "announced": "2026-09-09",
121
+ "released": "2026-09-18",
122
+ "height_mm": 150,
123
+ "width_mm": 71.9,
124
+ "depth_mm": 8.75,
125
+ "weight_g": 211,
126
+ "height_in": 5.91,
127
+ "width_in": 2.83,
128
+ "depth_in": 0.34,
129
+ "weight_oz": 7.44,
130
+ "display_in": 6.3,
131
+ "resolution_px": {
132
+ "width": 1206,
133
+ "height": 2622
134
+ },
135
+ "ppi": 460,
136
+ "url": "https://iphonesize.com/iphone-18-pro",
137
+ "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/"
139
+ },
140
+ {
141
+ "id": "iphone-17-pro-max",
142
+ "product_id": "iphone-17-pro-max",
143
+ "state": null,
144
+ "name": "iPhone 17 Pro Max",
145
+ "also_known_as": [],
146
+ "family": "iPhone 17",
147
+ "announced": "2025-09-09",
148
+ "released": "2025-09-19",
149
+ "height_mm": 163.4,
150
+ "width_mm": 78,
151
+ "depth_mm": 8.75,
152
+ "weight_g": 233,
153
+ "height_in": 6.43,
154
+ "width_in": 3.07,
155
+ "depth_in": 0.34,
156
+ "weight_oz": 8.22,
157
+ "display_in": 6.9,
158
+ "resolution_px": {
159
+ "width": 1320,
160
+ "height": 2868
161
+ },
162
+ "ppi": 460,
163
+ "url": "https://iphonesize.com/iphone-17-pro-max",
164
+ "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/"
166
+ },
167
+ {
168
+ "id": "iphone-17-pro",
169
+ "product_id": "iphone-17-pro",
170
+ "state": null,
171
+ "name": "iPhone 17 Pro",
172
+ "also_known_as": [],
173
+ "family": "iPhone 17",
174
+ "announced": "2025-09-09",
175
+ "released": "2025-09-19",
176
+ "height_mm": 150,
177
+ "width_mm": 71.9,
178
+ "depth_mm": 8.75,
179
+ "weight_g": 206,
180
+ "height_in": 5.91,
181
+ "width_in": 2.83,
182
+ "depth_in": 0.34,
183
+ "weight_oz": 7.27,
184
+ "display_in": 6.3,
185
+ "resolution_px": {
186
+ "width": 1206,
187
+ "height": 2622
188
+ },
189
+ "ppi": 460,
190
+ "url": "https://iphonesize.com/iphone-17-pro",
191
+ "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/"
193
+ },
194
+ {
195
+ "id": "iphone-17-air",
196
+ "product_id": "iphone-17-air",
197
+ "state": null,
198
+ "name": "iPhone Air",
199
+ "also_known_as": [
200
+ "iPhone 17 Air"
201
+ ],
202
+ "family": "iPhone 17",
203
+ "announced": "2025-09-09",
204
+ "released": "2025-09-19",
205
+ "height_mm": 156.2,
206
+ "width_mm": 74.7,
207
+ "depth_mm": 5.64,
208
+ "weight_g": 165,
209
+ "height_in": 6.15,
210
+ "width_in": 2.94,
211
+ "depth_in": 0.22,
212
+ "weight_oz": 5.82,
213
+ "display_in": 6.5,
214
+ "resolution_px": {
215
+ "width": 1260,
216
+ "height": 2736
217
+ },
218
+ "ppi": 460,
219
+ "url": "https://iphonesize.com/iphone-17-air",
220
+ "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/"
222
+ },
223
+ {
224
+ "id": "iphone-17",
225
+ "product_id": "iphone-17",
226
+ "state": null,
227
+ "name": "iPhone 17",
228
+ "also_known_as": [],
229
+ "family": "iPhone 17",
230
+ "announced": "2025-09-09",
231
+ "released": "2025-09-19",
232
+ "height_mm": 149.6,
233
+ "width_mm": 71.5,
234
+ "depth_mm": 7.95,
235
+ "weight_g": 177,
236
+ "height_in": 5.89,
237
+ "width_in": 2.81,
238
+ "depth_in": 0.31,
239
+ "weight_oz": 6.24,
240
+ "display_in": 6.3,
241
+ "resolution_px": {
242
+ "width": 1206,
243
+ "height": 2622
244
+ },
245
+ "ppi": 460,
246
+ "url": "https://iphonesize.com/iphone-17",
247
+ "source_url": "https://support.apple.com/en-us/125089",
248
+ "dates_source_url": "https://www.apple.com/newsroom/2025/09/apple-debuts-iphone-17/"
249
+ },
250
+ {
251
+ "id": "iphone-17e",
252
+ "product_id": "iphone-17e",
253
+ "state": null,
254
+ "name": "iPhone 17e",
255
+ "also_known_as": [],
256
+ "family": "iPhone 17",
257
+ "announced": "2026-03-02",
258
+ "released": "2026-03-11",
259
+ "height_mm": 146.7,
260
+ "width_mm": 71.5,
261
+ "depth_mm": 7.8,
262
+ "weight_g": 169,
263
+ "height_in": 5.78,
264
+ "width_in": 2.81,
265
+ "depth_in": 0.31,
266
+ "weight_oz": 5.96,
267
+ "display_in": 6.1,
268
+ "resolution_px": {
269
+ "width": 1170,
270
+ "height": 2532
271
+ },
272
+ "ppi": 460,
273
+ "url": "https://iphonesize.com/iphone-17e",
274
+ "source_url": "https://support.apple.com/en-us/126470",
275
+ "dates_source_url": "https://www.apple.com/newsroom/2026/03/apple-introduces-iphone-17e/"
276
+ },
277
+ {
278
+ "id": "iphone-16-pro-max",
279
+ "product_id": "iphone-16-pro-max",
280
+ "state": null,
281
+ "name": "iPhone 16 Pro Max",
282
+ "also_known_as": [],
283
+ "family": "iPhone 16",
284
+ "announced": "2024-09-09",
285
+ "released": "2024-09-20",
286
+ "height_mm": 163,
287
+ "width_mm": 77.6,
288
+ "depth_mm": 8.25,
289
+ "weight_g": 227,
290
+ "height_in": 6.42,
291
+ "width_in": 3.06,
292
+ "depth_in": 0.32,
293
+ "weight_oz": 8.01,
294
+ "display_in": 6.9,
295
+ "resolution_px": {
296
+ "width": 1320,
297
+ "height": 2868
298
+ },
299
+ "ppi": 460,
300
+ "url": "https://iphonesize.com/iphone-16-pro-max",
301
+ "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/"
303
+ },
304
+ {
305
+ "id": "iphone-16-pro",
306
+ "product_id": "iphone-16-pro",
307
+ "state": null,
308
+ "name": "iPhone 16 Pro",
309
+ "also_known_as": [],
310
+ "family": "iPhone 16",
311
+ "announced": "2024-09-09",
312
+ "released": "2024-09-20",
313
+ "height_mm": 149.6,
314
+ "width_mm": 71.5,
315
+ "depth_mm": 8.25,
316
+ "weight_g": 199,
317
+ "height_in": 5.89,
318
+ "width_in": 2.81,
319
+ "depth_in": 0.32,
320
+ "weight_oz": 7.02,
321
+ "display_in": 6.3,
322
+ "resolution_px": {
323
+ "width": 1206,
324
+ "height": 2622
325
+ },
326
+ "ppi": 460,
327
+ "url": "https://iphonesize.com/iphone-16-pro",
328
+ "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/"
330
+ },
331
+ {
332
+ "id": "iphone-16-plus",
333
+ "product_id": "iphone-16-plus",
334
+ "state": null,
335
+ "name": "iPhone 16 Plus",
336
+ "also_known_as": [],
337
+ "family": "iPhone 16",
338
+ "announced": "2024-09-09",
339
+ "released": "2024-09-20",
340
+ "height_mm": 160.9,
341
+ "width_mm": 77.8,
342
+ "depth_mm": 7.8,
343
+ "weight_g": 199,
344
+ "height_in": 6.33,
345
+ "width_in": 3.06,
346
+ "depth_in": 0.31,
347
+ "weight_oz": 7.02,
348
+ "display_in": 6.7,
349
+ "resolution_px": {
350
+ "width": 1290,
351
+ "height": 2796
352
+ },
353
+ "ppi": 460,
354
+ "url": "https://iphonesize.com/iphone-16-plus",
355
+ "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/"
357
+ },
358
+ {
359
+ "id": "iphone-16",
360
+ "product_id": "iphone-16",
361
+ "state": null,
362
+ "name": "iPhone 16",
363
+ "also_known_as": [],
364
+ "family": "iPhone 16",
365
+ "announced": "2024-09-09",
366
+ "released": "2024-09-20",
367
+ "height_mm": 147.6,
368
+ "width_mm": 71.6,
369
+ "depth_mm": 7.8,
370
+ "weight_g": 170,
371
+ "height_in": 5.81,
372
+ "width_in": 2.82,
373
+ "depth_in": 0.31,
374
+ "weight_oz": 6,
375
+ "display_in": 6.1,
376
+ "resolution_px": {
377
+ "width": 1179,
378
+ "height": 2556
379
+ },
380
+ "ppi": 460,
381
+ "url": "https://iphonesize.com/iphone-16",
382
+ "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/"
384
+ },
385
+ {
386
+ "id": "iphone-16e",
387
+ "product_id": "iphone-16e",
388
+ "state": null,
389
+ "name": "iPhone 16e",
390
+ "also_known_as": [],
391
+ "family": "iPhone 16",
392
+ "announced": "2025-02-19",
393
+ "released": "2025-02-28",
394
+ "height_mm": 146.7,
395
+ "width_mm": 71.5,
396
+ "depth_mm": 7.8,
397
+ "weight_g": 167,
398
+ "height_in": 5.78,
399
+ "width_in": 2.81,
400
+ "depth_in": 0.31,
401
+ "weight_oz": 5.89,
402
+ "display_in": 6.1,
403
+ "resolution_px": {
404
+ "width": 1170,
405
+ "height": 2532
406
+ },
407
+ "ppi": 460,
408
+ "url": "https://iphonesize.com/iphone-16e",
409
+ "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/"
411
+ },
412
+ {
413
+ "id": "iphone-15-pro-max",
414
+ "product_id": "iphone-15-pro-max",
415
+ "state": null,
416
+ "name": "iPhone 15 Pro Max",
417
+ "also_known_as": [],
418
+ "family": "iPhone 15",
419
+ "announced": "2023-09-12",
420
+ "released": "2023-09-22",
421
+ "height_mm": 159.9,
422
+ "width_mm": 76.7,
423
+ "depth_mm": 8.25,
424
+ "weight_g": 221,
425
+ "height_in": 6.3,
426
+ "width_in": 3.02,
427
+ "depth_in": 0.32,
428
+ "weight_oz": 7.8,
429
+ "display_in": 6.7,
430
+ "resolution_px": {
431
+ "width": 1290,
432
+ "height": 2796
433
+ },
434
+ "ppi": 460,
435
+ "url": "https://iphonesize.com/iphone-15-pro-max",
436
+ "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/"
438
+ },
439
+ {
440
+ "id": "iphone-15-pro",
441
+ "product_id": "iphone-15-pro",
442
+ "state": null,
443
+ "name": "iPhone 15 Pro",
444
+ "also_known_as": [],
445
+ "family": "iPhone 15",
446
+ "announced": "2023-09-12",
447
+ "released": "2023-09-22",
448
+ "height_mm": 146.6,
449
+ "width_mm": 70.6,
450
+ "depth_mm": 8.25,
451
+ "weight_g": 187,
452
+ "height_in": 5.77,
453
+ "width_in": 2.78,
454
+ "depth_in": 0.32,
455
+ "weight_oz": 6.6,
456
+ "display_in": 6.1,
457
+ "resolution_px": {
458
+ "width": 1179,
459
+ "height": 2556
460
+ },
461
+ "ppi": 460,
462
+ "url": "https://iphonesize.com/iphone-15-pro",
463
+ "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/"
465
+ },
466
+ {
467
+ "id": "iphone-15-plus",
468
+ "product_id": "iphone-15-plus",
469
+ "state": null,
470
+ "name": "iPhone 15 Plus",
471
+ "also_known_as": [],
472
+ "family": "iPhone 15",
473
+ "announced": "2023-09-12",
474
+ "released": "2023-09-22",
475
+ "height_mm": 160.9,
476
+ "width_mm": 77.8,
477
+ "depth_mm": 7.8,
478
+ "weight_g": 201,
479
+ "height_in": 6.33,
480
+ "width_in": 3.06,
481
+ "depth_in": 0.31,
482
+ "weight_oz": 7.09,
483
+ "display_in": 6.7,
484
+ "resolution_px": {
485
+ "width": 1290,
486
+ "height": 2796
487
+ },
488
+ "ppi": 460,
489
+ "url": "https://iphonesize.com/iphone-15-plus",
490
+ "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/"
492
+ },
493
+ {
494
+ "id": "iphone-15",
495
+ "product_id": "iphone-15",
496
+ "state": null,
497
+ "name": "iPhone 15",
498
+ "also_known_as": [],
499
+ "family": "iPhone 15",
500
+ "announced": "2023-09-12",
501
+ "released": "2023-09-22",
502
+ "height_mm": 147.6,
503
+ "width_mm": 71.6,
504
+ "depth_mm": 7.8,
505
+ "weight_g": 171,
506
+ "height_in": 5.81,
507
+ "width_in": 2.82,
508
+ "depth_in": 0.31,
509
+ "weight_oz": 6.03,
510
+ "display_in": 6.1,
511
+ "resolution_px": {
512
+ "width": 1179,
513
+ "height": 2556
514
+ },
515
+ "ppi": 460,
516
+ "url": "https://iphonesize.com/iphone-15",
517
+ "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/"
519
+ },
520
+ {
521
+ "id": "iphone-14-pro-max",
522
+ "product_id": "iphone-14-pro-max",
523
+ "state": null,
524
+ "name": "iPhone 14 Pro Max",
525
+ "also_known_as": [],
526
+ "family": "iPhone 14",
527
+ "announced": "2022-09-07",
528
+ "released": "2022-09-16",
529
+ "height_mm": 160.7,
530
+ "width_mm": 77.6,
531
+ "depth_mm": 7.85,
532
+ "weight_g": 240,
533
+ "height_in": 6.33,
534
+ "width_in": 3.06,
535
+ "depth_in": 0.31,
536
+ "weight_oz": 8.47,
537
+ "display_in": 6.7,
538
+ "resolution_px": {
539
+ "width": 1290,
540
+ "height": 2796
541
+ },
542
+ "ppi": 460,
543
+ "url": "https://iphonesize.com/iphone-14-pro-max",
544
+ "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/"
546
+ },
547
+ {
548
+ "id": "iphone-14-pro",
549
+ "product_id": "iphone-14-pro",
550
+ "state": null,
551
+ "name": "iPhone 14 Pro",
552
+ "also_known_as": [],
553
+ "family": "iPhone 14",
554
+ "announced": "2022-09-07",
555
+ "released": "2022-09-16",
556
+ "height_mm": 147.5,
557
+ "width_mm": 71.5,
558
+ "depth_mm": 7.85,
559
+ "weight_g": 206,
560
+ "height_in": 5.81,
561
+ "width_in": 2.81,
562
+ "depth_in": 0.31,
563
+ "weight_oz": 7.27,
564
+ "display_in": 6.1,
565
+ "resolution_px": {
566
+ "width": 1179,
567
+ "height": 2556
568
+ },
569
+ "ppi": 460,
570
+ "url": "https://iphonesize.com/iphone-14-pro",
571
+ "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/"
573
+ },
574
+ {
575
+ "id": "iphone-14-plus",
576
+ "product_id": "iphone-14-plus",
577
+ "state": null,
578
+ "name": "iPhone 14 Plus",
579
+ "also_known_as": [],
580
+ "family": "iPhone 14",
581
+ "announced": "2022-09-07",
582
+ "released": "2022-10-07",
583
+ "height_mm": 160.8,
584
+ "width_mm": 78.1,
585
+ "depth_mm": 7.8,
586
+ "weight_g": 203,
587
+ "height_in": 6.33,
588
+ "width_in": 3.07,
589
+ "depth_in": 0.31,
590
+ "weight_oz": 7.16,
591
+ "display_in": 6.7,
592
+ "resolution_px": {
593
+ "width": 1284,
594
+ "height": 2778
595
+ },
596
+ "ppi": 458,
597
+ "url": "https://iphonesize.com/iphone-14-plus",
598
+ "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/"
600
+ },
601
+ {
602
+ "id": "iphone-14",
603
+ "product_id": "iphone-14",
604
+ "state": null,
605
+ "name": "iPhone 14",
606
+ "also_known_as": [],
607
+ "family": "iPhone 14",
608
+ "announced": "2022-09-07",
609
+ "released": "2022-09-16",
610
+ "height_mm": 146.7,
611
+ "width_mm": 71.5,
612
+ "depth_mm": 7.8,
613
+ "weight_g": 172,
614
+ "height_in": 5.78,
615
+ "width_in": 2.81,
616
+ "depth_in": 0.31,
617
+ "weight_oz": 6.07,
618
+ "display_in": 6.1,
619
+ "resolution_px": {
620
+ "width": 1170,
621
+ "height": 2532
622
+ },
623
+ "ppi": 460,
624
+ "url": "https://iphonesize.com/iphone-14",
625
+ "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/"
627
+ },
628
+ {
629
+ "id": "iphone-13-pro-max",
630
+ "product_id": "iphone-13-pro-max",
631
+ "state": null,
632
+ "name": "iPhone 13 Pro Max",
633
+ "also_known_as": [],
634
+ "family": "iPhone 13",
635
+ "announced": "2021-09-14",
636
+ "released": "2021-09-24",
637
+ "height_mm": 160.8,
638
+ "width_mm": 78.1,
639
+ "depth_mm": 7.65,
640
+ "weight_g": 240,
641
+ "height_in": 6.33,
642
+ "width_in": 3.07,
643
+ "depth_in": 0.3,
644
+ "weight_oz": 8.47,
645
+ "display_in": 6.7,
646
+ "resolution_px": {
647
+ "width": 1284,
648
+ "height": 2778
649
+ },
650
+ "ppi": 458,
651
+ "url": "https://iphonesize.com/iphone-13-pro-max",
652
+ "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/"
654
+ },
655
+ {
656
+ "id": "iphone-13-pro",
657
+ "product_id": "iphone-13-pro",
658
+ "state": null,
659
+ "name": "iPhone 13 Pro",
660
+ "also_known_as": [],
661
+ "family": "iPhone 13",
662
+ "announced": "2021-09-14",
663
+ "released": "2021-09-24",
664
+ "height_mm": 146.7,
665
+ "width_mm": 71.5,
666
+ "depth_mm": 7.65,
667
+ "weight_g": 204,
668
+ "height_in": 5.78,
669
+ "width_in": 2.81,
670
+ "depth_in": 0.3,
671
+ "weight_oz": 7.2,
672
+ "display_in": 6.1,
673
+ "resolution_px": {
674
+ "width": 1170,
675
+ "height": 2532
676
+ },
677
+ "ppi": 460,
678
+ "url": "https://iphonesize.com/iphone-13-pro",
679
+ "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/"
681
+ },
682
+ {
683
+ "id": "iphone-13-mini",
684
+ "product_id": "iphone-13-mini",
685
+ "state": null,
686
+ "name": "iPhone 13 mini",
687
+ "also_known_as": [],
688
+ "family": "iPhone 13",
689
+ "announced": "2021-09-14",
690
+ "released": "2021-09-24",
691
+ "height_mm": 131.5,
692
+ "width_mm": 64.2,
693
+ "depth_mm": 7.65,
694
+ "weight_g": 141,
695
+ "height_in": 5.18,
696
+ "width_in": 2.53,
697
+ "depth_in": 0.3,
698
+ "weight_oz": 4.97,
699
+ "display_in": 5.4,
700
+ "resolution_px": {
701
+ "width": 1080,
702
+ "height": 2340
703
+ },
704
+ "ppi": 476,
705
+ "url": "https://iphonesize.com/iphone-13-mini",
706
+ "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/"
708
+ },
709
+ {
710
+ "id": "iphone-13",
711
+ "product_id": "iphone-13",
712
+ "state": null,
713
+ "name": "iPhone 13",
714
+ "also_known_as": [],
715
+ "family": "iPhone 13",
716
+ "announced": "2021-09-14",
717
+ "released": "2021-09-24",
718
+ "height_mm": 146.7,
719
+ "width_mm": 71.5,
720
+ "depth_mm": 7.65,
721
+ "weight_g": 174,
722
+ "height_in": 5.78,
723
+ "width_in": 2.81,
724
+ "depth_in": 0.3,
725
+ "weight_oz": 6.14,
726
+ "display_in": 6.1,
727
+ "resolution_px": {
728
+ "width": 1170,
729
+ "height": 2532
730
+ },
731
+ "ppi": 460,
732
+ "url": "https://iphonesize.com/iphone-13",
733
+ "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/"
735
+ },
736
+ {
737
+ "id": "iphone-se-3rd",
738
+ "product_id": "iphone-se-3rd",
739
+ "state": null,
740
+ "name": "iPhone SE (3rd generation)",
741
+ "also_known_as": [
742
+ "iPhone SE (3rd gen)"
743
+ ],
744
+ "family": "iPhone SE",
745
+ "announced": "2022-03-08",
746
+ "released": "2022-03-18",
747
+ "height_mm": 138.4,
748
+ "width_mm": 67.3,
749
+ "depth_mm": 7.3,
750
+ "weight_g": 144,
751
+ "height_in": 5.45,
752
+ "width_in": 2.65,
753
+ "depth_in": 0.29,
754
+ "weight_oz": 5.08,
755
+ "display_in": 4.7,
756
+ "resolution_px": {
757
+ "width": 750,
758
+ "height": 1334
759
+ },
760
+ "ppi": 326,
761
+ "url": "https://iphonesize.com/iphone-se-3rd",
762
+ "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/"
764
+ },
765
+ {
766
+ "id": "iphone-12-pro-max",
767
+ "product_id": "iphone-12-pro-max",
768
+ "state": null,
769
+ "name": "iPhone 12 Pro Max",
770
+ "also_known_as": [],
771
+ "family": "iPhone 12",
772
+ "announced": "2020-10-13",
773
+ "released": "2020-11-13",
774
+ "height_mm": 160.8,
775
+ "width_mm": 78.1,
776
+ "depth_mm": 7.4,
777
+ "weight_g": 228,
778
+ "height_in": 6.33,
779
+ "width_in": 3.07,
780
+ "depth_in": 0.29,
781
+ "weight_oz": 8.04,
782
+ "display_in": 6.7,
783
+ "resolution_px": {
784
+ "width": 1284,
785
+ "height": 2778
786
+ },
787
+ "ppi": 458,
788
+ "url": "https://iphonesize.com/iphone-12-pro-max",
789
+ "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/"
791
+ },
792
+ {
793
+ "id": "iphone-12-pro",
794
+ "product_id": "iphone-12-pro",
795
+ "state": null,
796
+ "name": "iPhone 12 Pro",
797
+ "also_known_as": [],
798
+ "family": "iPhone 12",
799
+ "announced": "2020-10-13",
800
+ "released": "2020-10-23",
801
+ "height_mm": 146.7,
802
+ "width_mm": 71.5,
803
+ "depth_mm": 7.4,
804
+ "weight_g": 189,
805
+ "height_in": 5.78,
806
+ "width_in": 2.81,
807
+ "depth_in": 0.29,
808
+ "weight_oz": 6.67,
809
+ "display_in": 6.1,
810
+ "resolution_px": {
811
+ "width": 1170,
812
+ "height": 2532
813
+ },
814
+ "ppi": 460,
815
+ "url": "https://iphonesize.com/iphone-12-pro",
816
+ "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/"
818
+ },
819
+ {
820
+ "id": "iphone-12-mini",
821
+ "product_id": "iphone-12-mini",
822
+ "state": null,
823
+ "name": "iPhone 12 mini",
824
+ "also_known_as": [],
825
+ "family": "iPhone 12",
826
+ "announced": "2020-10-13",
827
+ "released": "2020-11-13",
828
+ "height_mm": 131.5,
829
+ "width_mm": 64.2,
830
+ "depth_mm": 7.4,
831
+ "weight_g": 135,
832
+ "height_in": 5.18,
833
+ "width_in": 2.53,
834
+ "depth_in": 0.29,
835
+ "weight_oz": 4.76,
836
+ "display_in": 5.4,
837
+ "resolution_px": {
838
+ "width": 1080,
839
+ "height": 2340
840
+ },
841
+ "ppi": 476,
842
+ "url": "https://iphonesize.com/iphone-12-mini",
843
+ "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/"
845
+ },
846
+ {
847
+ "id": "iphone-12",
848
+ "product_id": "iphone-12",
849
+ "state": null,
850
+ "name": "iPhone 12",
851
+ "also_known_as": [],
852
+ "family": "iPhone 12",
853
+ "announced": "2020-10-13",
854
+ "released": "2020-10-23",
855
+ "height_mm": 146.7,
856
+ "width_mm": 71.5,
857
+ "depth_mm": 7.4,
858
+ "weight_g": 164,
859
+ "height_in": 5.78,
860
+ "width_in": 2.81,
861
+ "depth_in": 0.29,
862
+ "weight_oz": 5.78,
863
+ "display_in": 6.1,
864
+ "resolution_px": {
865
+ "width": 1170,
866
+ "height": 2532
867
+ },
868
+ "ppi": 460,
869
+ "url": "https://iphonesize.com/iphone-12",
870
+ "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/"
872
+ },
873
+ {
874
+ "id": "iphone-11-pro-max",
875
+ "product_id": "iphone-11-pro-max",
876
+ "state": null,
877
+ "name": "iPhone 11 Pro Max",
878
+ "also_known_as": [],
879
+ "family": "iPhone 11",
880
+ "announced": "2019-09-10",
881
+ "released": "2019-09-20",
882
+ "height_mm": 158,
883
+ "width_mm": 77.8,
884
+ "depth_mm": 8.1,
885
+ "weight_g": 226,
886
+ "height_in": 6.22,
887
+ "width_in": 3.06,
888
+ "depth_in": 0.32,
889
+ "weight_oz": 7.97,
890
+ "display_in": 6.5,
891
+ "resolution_px": {
892
+ "width": 1242,
893
+ "height": 2688
894
+ },
895
+ "ppi": 458,
896
+ "url": "https://iphonesize.com/iphone-11-pro-max",
897
+ "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/"
899
+ },
900
+ {
901
+ "id": "iphone-11-pro",
902
+ "product_id": "iphone-11-pro",
903
+ "state": null,
904
+ "name": "iPhone 11 Pro",
905
+ "also_known_as": [],
906
+ "family": "iPhone 11",
907
+ "announced": "2019-09-10",
908
+ "released": "2019-09-20",
909
+ "height_mm": 144,
910
+ "width_mm": 71.4,
911
+ "depth_mm": 8.1,
912
+ "weight_g": 188,
913
+ "height_in": 5.67,
914
+ "width_in": 2.81,
915
+ "depth_in": 0.32,
916
+ "weight_oz": 6.63,
917
+ "display_in": 5.8,
918
+ "resolution_px": {
919
+ "width": 1125,
920
+ "height": 2436
921
+ },
922
+ "ppi": 458,
923
+ "url": "https://iphonesize.com/iphone-11-pro",
924
+ "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/"
926
+ },
927
+ {
928
+ "id": "iphone-11",
929
+ "product_id": "iphone-11",
930
+ "state": null,
931
+ "name": "iPhone 11",
932
+ "also_known_as": [],
933
+ "family": "iPhone 11",
934
+ "announced": "2019-09-10",
935
+ "released": "2019-09-20",
936
+ "height_mm": 150.9,
937
+ "width_mm": 75.7,
938
+ "depth_mm": 8.3,
939
+ "weight_g": 194,
940
+ "height_in": 5.94,
941
+ "width_in": 2.98,
942
+ "depth_in": 0.33,
943
+ "weight_oz": 6.84,
944
+ "display_in": 6.1,
945
+ "resolution_px": {
946
+ "width": 828,
947
+ "height": 1792
948
+ },
949
+ "ppi": 326,
950
+ "url": "https://iphonesize.com/iphone-11",
951
+ "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/"
953
+ },
954
+ {
955
+ "id": "iphone-se-2nd",
956
+ "product_id": "iphone-se-2nd",
957
+ "state": null,
958
+ "name": "iPhone SE (2nd generation)",
959
+ "also_known_as": [
960
+ "iPhone SE (2nd gen)"
961
+ ],
962
+ "family": "iPhone SE",
963
+ "announced": "2020-04-15",
964
+ "released": "2020-04-24",
965
+ "height_mm": 138.4,
966
+ "width_mm": 67.3,
967
+ "depth_mm": 7.3,
968
+ "weight_g": 148,
969
+ "height_in": 5.45,
970
+ "width_in": 2.65,
971
+ "depth_in": 0.29,
972
+ "weight_oz": 5.22,
973
+ "display_in": 4.7,
974
+ "resolution_px": {
975
+ "width": 750,
976
+ "height": 1334
977
+ },
978
+ "ppi": 326,
979
+ "url": "https://iphonesize.com/iphone-se-2nd",
980
+ "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/"
982
+ },
983
+ {
984
+ "id": "iphone-xs-max",
985
+ "product_id": "iphone-xs-max",
986
+ "state": null,
987
+ "name": "iPhone XS Max",
988
+ "also_known_as": [],
989
+ "family": "iPhone X",
990
+ "announced": "2018-09-12",
991
+ "released": "2018-09-21",
992
+ "height_mm": 157.5,
993
+ "width_mm": 77.4,
994
+ "depth_mm": 7.7,
995
+ "weight_g": 208,
996
+ "height_in": 6.2,
997
+ "width_in": 3.05,
998
+ "depth_in": 0.3,
999
+ "weight_oz": 7.34,
1000
+ "display_in": 6.5,
1001
+ "resolution_px": {
1002
+ "width": 1242,
1003
+ "height": 2688
1004
+ },
1005
+ "ppi": 458,
1006
+ "url": "https://iphonesize.com/iphone-xs-max",
1007
+ "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/"
1009
+ },
1010
+ {
1011
+ "id": "iphone-xs",
1012
+ "product_id": "iphone-xs",
1013
+ "state": null,
1014
+ "name": "iPhone XS",
1015
+ "also_known_as": [],
1016
+ "family": "iPhone X",
1017
+ "announced": "2018-09-12",
1018
+ "released": "2018-09-21",
1019
+ "height_mm": 143.6,
1020
+ "width_mm": 70.9,
1021
+ "depth_mm": 7.7,
1022
+ "weight_g": 177,
1023
+ "height_in": 5.65,
1024
+ "width_in": 2.79,
1025
+ "depth_in": 0.3,
1026
+ "weight_oz": 6.24,
1027
+ "display_in": 5.8,
1028
+ "resolution_px": {
1029
+ "width": 1125,
1030
+ "height": 2436
1031
+ },
1032
+ "ppi": 458,
1033
+ "url": "https://iphonesize.com/iphone-xs",
1034
+ "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/"
1036
+ },
1037
+ {
1038
+ "id": "iphone-xr",
1039
+ "product_id": "iphone-xr",
1040
+ "state": null,
1041
+ "name": "iPhone XR",
1042
+ "also_known_as": [],
1043
+ "family": "iPhone X",
1044
+ "announced": "2018-09-12",
1045
+ "released": "2018-10-26",
1046
+ "height_mm": 150.9,
1047
+ "width_mm": 75.7,
1048
+ "depth_mm": 8.3,
1049
+ "weight_g": 194,
1050
+ "height_in": 5.94,
1051
+ "width_in": 2.98,
1052
+ "depth_in": 0.33,
1053
+ "weight_oz": 6.84,
1054
+ "display_in": 6.1,
1055
+ "resolution_px": {
1056
+ "width": 828,
1057
+ "height": 1792
1058
+ },
1059
+ "ppi": 326,
1060
+ "url": "https://iphonesize.com/iphone-xr",
1061
+ "source_url": "https://support.apple.com/en-us/111868",
1062
+ "dates_source_url": "https://www.apple.com/newsroom/2018/09/apple-introduces-iphone-xr/"
1063
+ },
1064
+ {
1065
+ "id": "iphone-x",
1066
+ "product_id": "iphone-x",
1067
+ "state": null,
1068
+ "name": "iPhone X",
1069
+ "also_known_as": [],
1070
+ "family": "iPhone X",
1071
+ "announced": "2017-09-12",
1072
+ "released": "2017-11-03",
1073
+ "height_mm": 143.6,
1074
+ "width_mm": 70.9,
1075
+ "depth_mm": 7.7,
1076
+ "weight_g": 174,
1077
+ "height_in": 5.65,
1078
+ "width_in": 2.79,
1079
+ "depth_in": 0.3,
1080
+ "weight_oz": 6.14,
1081
+ "display_in": 5.8,
1082
+ "resolution_px": {
1083
+ "width": 1125,
1084
+ "height": 2436
1085
+ },
1086
+ "ppi": 458,
1087
+ "url": "https://iphonesize.com/iphone-x",
1088
+ "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/"
1090
+ },
1091
+ {
1092
+ "id": "iphone-8-plus",
1093
+ "product_id": "iphone-8-plus",
1094
+ "state": null,
1095
+ "name": "iPhone 8 Plus",
1096
+ "also_known_as": [],
1097
+ "family": "iPhone 8",
1098
+ "announced": "2017-09-12",
1099
+ "released": "2017-09-22",
1100
+ "height_mm": 158.4,
1101
+ "width_mm": 78.1,
1102
+ "depth_mm": 7.5,
1103
+ "weight_g": 202,
1104
+ "height_in": 6.24,
1105
+ "width_in": 3.07,
1106
+ "depth_in": 0.3,
1107
+ "weight_oz": 7.13,
1108
+ "display_in": 5.5,
1109
+ "resolution_px": {
1110
+ "width": 1080,
1111
+ "height": 1920
1112
+ },
1113
+ "ppi": 401,
1114
+ "url": "https://iphonesize.com/iphone-8-plus",
1115
+ "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/"
1117
+ },
1118
+ {
1119
+ "id": "iphone-8",
1120
+ "product_id": "iphone-8",
1121
+ "state": null,
1122
+ "name": "iPhone 8",
1123
+ "also_known_as": [],
1124
+ "family": "iPhone 8",
1125
+ "announced": "2017-09-12",
1126
+ "released": "2017-09-22",
1127
+ "height_mm": 138.4,
1128
+ "width_mm": 67.3,
1129
+ "depth_mm": 7.3,
1130
+ "weight_g": 148,
1131
+ "height_in": 5.45,
1132
+ "width_in": 2.65,
1133
+ "depth_in": 0.29,
1134
+ "weight_oz": 5.22,
1135
+ "display_in": 4.7,
1136
+ "resolution_px": {
1137
+ "width": 750,
1138
+ "height": 1334
1139
+ },
1140
+ "ppi": 326,
1141
+ "url": "https://iphonesize.com/iphone-8",
1142
+ "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/"
1144
+ },
1145
+ {
1146
+ "id": "iphone-7-plus",
1147
+ "product_id": "iphone-7-plus",
1148
+ "state": null,
1149
+ "name": "iPhone 7 Plus",
1150
+ "also_known_as": [],
1151
+ "family": "iPhone 7",
1152
+ "announced": "2016-09-07",
1153
+ "released": "2016-09-16",
1154
+ "height_mm": 158.2,
1155
+ "width_mm": 77.9,
1156
+ "depth_mm": 7.3,
1157
+ "weight_g": 188,
1158
+ "height_in": 6.23,
1159
+ "width_in": 3.07,
1160
+ "depth_in": 0.29,
1161
+ "weight_oz": 6.63,
1162
+ "display_in": 5.5,
1163
+ "resolution_px": {
1164
+ "width": 1080,
1165
+ "height": 1920
1166
+ },
1167
+ "ppi": 401,
1168
+ "url": "https://iphonesize.com/iphone-7-plus",
1169
+ "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/"
1171
+ },
1172
+ {
1173
+ "id": "iphone-7",
1174
+ "product_id": "iphone-7",
1175
+ "state": null,
1176
+ "name": "iPhone 7",
1177
+ "also_known_as": [],
1178
+ "family": "iPhone 7",
1179
+ "announced": "2016-09-07",
1180
+ "released": "2016-09-16",
1181
+ "height_mm": 138.3,
1182
+ "width_mm": 67.1,
1183
+ "depth_mm": 7.1,
1184
+ "weight_g": 138,
1185
+ "height_in": 5.44,
1186
+ "width_in": 2.64,
1187
+ "depth_in": 0.28,
1188
+ "weight_oz": 4.87,
1189
+ "display_in": 4.7,
1190
+ "resolution_px": {
1191
+ "width": 750,
1192
+ "height": 1334
1193
+ },
1194
+ "ppi": 326,
1195
+ "url": "https://iphonesize.com/iphone-7",
1196
+ "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/"
1198
+ }
1199
+ ]
1200
+ };
1201
+ function stateRank(state) {
1202
+ if (state === 'closed') {
1203
+ return 0;
1204
+ }
1205
+ if (state === 'open') {
1206
+ return 1;
1207
+ }
1208
+ return 2;
1209
+ }
1210
+
1211
+ function freezePhone(phone) {
1212
+ Object.freeze(phone.resolution_px);
1213
+ Object.freeze(phone.also_known_as);
1214
+ return Object.freeze(phone);
1215
+ }
1216
+
1217
+ const { phones: phoneList, ...rest } = dataset;
1218
+ Object.freeze(rest.notes);
1219
+ Object.freeze(rest.units);
1220
+ const phones = Object.freeze(phoneList.map(freezePhone));
1221
+ const meta = Object.freeze(rest);
1222
+
1223
+ function getPhone(id) {
1224
+ for (const phone of phones) {
1225
+ if (phone.id === id) {
1226
+ return phone;
1227
+ }
1228
+ }
1229
+ return undefined;
1230
+ }
1231
+
1232
+ function findPhones(query) {
1233
+ const needle = query.toLowerCase();
1234
+ const matches = [];
1235
+ for (const phone of phones) {
1236
+ if (phone.name.toLowerCase().includes(needle) || phone.id.toLowerCase().includes(needle)) {
1237
+ matches.push(phone);
1238
+ continue;
1239
+ }
1240
+ for (const alias of phone.also_known_as) {
1241
+ if (alias.toLowerCase().includes(needle)) {
1242
+ matches.push(phone);
1243
+ break;
1244
+ }
1245
+ }
1246
+ }
1247
+ return matches;
1248
+ }
1249
+
1250
+ function getProduct(productId) {
1251
+ const matches = [];
1252
+ for (const phone of phones) {
1253
+ if (phone.product_id === productId) {
1254
+ matches.push(phone);
1255
+ }
1256
+ }
1257
+ matches.sort((left, right) => stateRank(left.state) - stateRank(right.state));
1258
+ return matches;
1259
+ }
1260
+ module.exports = { phones, meta, getPhone, findPhones, getProduct };