fugu-api-data 1.17.0 → 1.18.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fugu-api-data",
3
- "version": "1.17.0",
3
+ "version": "1.18.1",
4
4
  "description": "Data about Project Fugu 🐡 APIs.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -24,6 +24,6 @@
24
24
  "homepage": "https://github.com/tomayac/fugu-api-data#readme",
25
25
  "devDependencies": {
26
26
  "node-fetch": "^3.3.2",
27
- "prettier": "^3.1.1"
27
+ "prettier": "^3.2.4"
28
28
  }
29
29
  }
package/patterns.js CHANGED
@@ -6,6 +6,7 @@ const patterns = {
6
6
  featureDetection: `(async () => 'AbsoluteOrientationSensor' in self)()`,
7
7
  documentation: 'https://developer.chrome.com/articles/generic-sensor/',
8
8
  blinkFeatureID: 1900,
9
+ chromeStatusID: 5698781827825664,
9
10
  },
10
11
  'Accelerometer': {
11
12
  regEx: /new\s+Accelerometer\s*\(/g,
@@ -14,6 +15,7 @@ const patterns = {
14
15
  featureDetection: `(async () => 'Accelerometer' in self)()`,
15
16
  documentation: 'https://developer.chrome.com/articles/generic-sensor/',
16
17
  blinkFeatureID: 1899,
18
+ chromeStatusID: 5698781827825664,
17
19
  },
18
20
  'Add to Home Screen': {
19
21
  regEx: /["']beforeinstallprompt["']|\.onbeforeinstallprompt/g,
@@ -23,6 +25,7 @@ const patterns = {
23
25
  documentation:
24
26
  'https://developer.mozilla.org/en-US/docs/Web/API/BeforeInstallPromptEvent',
25
27
  blinkFeatureID: 1436,
28
+ chromeStatusID: 6560913322672128,
26
29
  },
27
30
  'Ambient Light Sensor': {
28
31
  regEx: /new\s+AmbientLightSensor\s*\(\)/g,
@@ -31,6 +34,7 @@ const patterns = {
31
34
  featureDetection: `(async () => 'AmbientLightSensor' in self)()`,
32
35
  documentation: 'https://developer.chrome.com/articles/generic-sensor/',
33
36
  blinkFeatureID: 1901,
37
+ chromeStatusID: 5298357018820608,
34
38
  },
35
39
  'Async Clipboard': {
36
40
  regEx: /navigator\.clipboard\.writeText\s*\(/g,
@@ -40,6 +44,7 @@ const patterns = {
40
44
  featureDetection: `(async () => 'clipboard' in navigator && 'writeText' in navigator.clipboard)()`,
41
45
  documentation: 'https://web.dev/async-clipboard/',
42
46
  blinkFeatureID: 2372,
47
+ chromeStatusID: 5861289330999296,
43
48
  },
44
49
  'Async Clipboard (Images)': {
45
50
  regEx: /navigator\.clipboard\.write\s*\(/g,
@@ -49,6 +54,7 @@ const patterns = {
49
54
  featureDetection: `(async () => 'clipboard' in navigator && 'write' in navigator.clipboard)()`,
50
55
  documentation: 'https://web.dev/async-clipboard/',
51
56
  blinkFeatureID: 2370,
57
+ chromeStatusID: 5074658793619456,
52
58
  },
53
59
  'Background Fetch': {
54
60
  regEx: /\.backgroundFetch\.fetch\s*\(["']/g,
@@ -58,6 +64,7 @@ const patterns = {
58
64
  documentation:
59
65
  'https://developer.mozilla.org/en-US/docs/Web/API/Background_Fetch_API',
60
66
  blinkFeatureID: 2549,
67
+ chromeStatusID: 5712608971718656,
61
68
  },
62
69
  'Background Sync': {
63
70
  regEx: /\.sync\.register\s*\(["']/g,
@@ -70,6 +77,7 @@ const patterns = {
70
77
  documentation:
71
78
  'https://developer.mozilla.org/en-US/docs/Web/API/Background_Synchronization_API',
72
79
  blinkFeatureID: 745,
80
+ chromeStatusID: 6170807885627392,
73
81
  },
74
82
  'Badging': {
75
83
  regEx: /navigator\.setAppBadge\s*\(/g,
@@ -78,6 +86,7 @@ const patterns = {
78
86
  featureDetection: `(async () => 'setAppBadge' in navigator)()`,
79
87
  documentation: 'https://developer.chrome.com/articles/badging-api/',
80
88
  blinkFeatureID: 2726,
89
+ chromeStatusID: 6068482055602176,
81
90
  },
82
91
  'Cache Storage': {
83
92
  regEx: /caches\.open\s*\(/g,
@@ -87,6 +96,7 @@ const patterns = {
87
96
  documentation:
88
97
  'https://developer.mozilla.org/en-US/docs/Web/API/CacheStorage',
89
98
  blinkFeatureID: 3022,
99
+ chromeStatusID: 6461631328419840,
90
100
  },
91
101
  'Compression Streams': {
92
102
  regEx: /new\s+CompressionStream\s*\(/g,
@@ -95,6 +105,7 @@ const patterns = {
95
105
  featureDetection: `(async () => 'CompressionStream' in self)()`,
96
106
  documentation: 'https://developer.chrome.com/blog/compression-streams-api/',
97
107
  blinkFeatureID: 3060,
108
+ chromeStatusID: 5855937971617792,
98
109
  },
99
110
  'Compute Pressure': {
100
111
  regEx: /new\s+ComputePressureObserver\s*\(/g,
@@ -104,6 +115,7 @@ const patterns = {
104
115
  documentation:
105
116
  'https://developer.chrome.com/docs/web-platform/compute-pressure/',
106
117
  blinkFeatureID: 3899,
118
+ chromeStatusID: 5597608644968448,
107
119
  },
108
120
  'Contact Picker': {
109
121
  regEx: /navigator\.contacts\.select\s*\(/g,
@@ -112,6 +124,7 @@ const patterns = {
112
124
  featureDetection: `(async () => 'contacts' in navigator)()`,
113
125
  documentation: 'https://developer.chrome.com/articles/contact-picker/',
114
126
  blinkFeatureID: 2993,
127
+ chromeStatusID: 6511327140904960,
115
128
  },
116
129
  'Content Index': {
117
130
  regEx: /index\.getAll\s*\(/g,
@@ -124,6 +137,7 @@ const patterns = {
124
137
  documentation:
125
138
  'https://developer.chrome.com/articles/content-indexing-api/',
126
139
  blinkFeatureID: 2985,
140
+ chromeStatusID: 5658416729030656,
127
141
  },
128
142
  'Credential Management': {
129
143
  regEx: /navigator\.credentials\.get\s*\(/g,
@@ -133,6 +147,7 @@ const patterns = {
133
147
  documentation:
134
148
  'https://developers.google.com/web/updates/2016/04/credential-management-api',
135
149
  blinkFeatureID: 960,
150
+ chromeStatusID: 5026422640869376,
136
151
  },
137
152
  'Device Memory': {
138
153
  regEx: /navigator\.deviceMemory/g,
@@ -142,6 +157,7 @@ const patterns = {
142
157
  documentation:
143
158
  'https://developer.mozilla.org/en-US/docs/Web/API/Device_Memory_API',
144
159
  blinkFeatureID: 2121,
160
+ chromeStatusID: 5119701235531776,
145
161
  },
146
162
  'Device Posture': {
147
163
  regEx: /navigator\.devicePosture/g,
@@ -151,6 +167,7 @@ const patterns = {
151
167
  documentation:
152
168
  'https://github.com/w3c/device-posture/blob/gh-pages/README.md',
153
169
  blinkFeatureID: undefined,
170
+ chromeStatusID: 5185813744975872,
154
171
  },
155
172
  'Digital Goods': {
156
173
  regEx: /getDigitalGoodsService\s*\(/g,
@@ -160,6 +177,7 @@ const patterns = {
160
177
  documentation:
161
178
  'https://developer.chrome.com/docs/android/trusted-web-activity/receive-payments-play-billing/',
162
179
  blinkFeatureID: 3397,
180
+ chromeStatusID: 5339955595313152,
163
181
  },
164
182
  'EyeDropper': {
165
183
  regEx: /new\s+EyeDropper\s*\(\)/g,
@@ -168,6 +186,7 @@ const patterns = {
168
186
  featureDetection: `(async () => 'EyeDropper' in self)()`,
169
187
  documentation: 'https://developer.chrome.com/articles/eyedropper/',
170
188
  blinkFeatureID: undefined,
189
+ chromeStatusID: 6304275594477568,
171
190
  },
172
191
  'File Handling': {
173
192
  regEx: /"file_handlers"/g,
@@ -177,6 +196,7 @@ const patterns = {
177
196
  featureDetection: `(async () => 'launchQueue' in self && 'files' in LaunchParams.prototype)()`,
178
197
  documentation: 'https://developer.chrome.com/articles/file-handling/',
179
198
  blinkFeatureID: 3875,
199
+ chromeStatusID: 5721776357113856,
180
200
  },
181
201
  'File System Access': {
182
202
  regEx:
@@ -186,6 +206,7 @@ const patterns = {
186
206
  featureDetection: `(async () => 'showOpenFilePicker' in self)()`,
187
207
  documentation: 'https://developer.chrome.com/articles/file-system-access/',
188
208
  blinkFeatureID: 3340,
209
+ chromeStatusID: 6284708426022912,
189
210
  },
190
211
  'Gamepad': {
191
212
  regEx: /navigator\.getGamepads\s*\(/g,
@@ -194,6 +215,7 @@ const patterns = {
194
215
  featureDetection: `(async () => 'getGamepads' in navigator)()`,
195
216
  documentation: 'https://web.dev/gamepad/',
196
217
  blinkFeatureID: 1916,
218
+ chromeStatusID: 5118776383111168,
197
219
  },
198
220
  'getInstalledRelatedApps': {
199
221
  regEx: /navigator\.getInstalledRelatedApps\s*\(/g,
@@ -202,6 +224,7 @@ const patterns = {
202
224
  featureDetection: `(async () => 'getInstalledRelatedApps' in navigator)()`,
203
225
  documentation: 'https://web.dev/get-installed-related-apps/',
204
226
  blinkFeatureID: 1870,
227
+ chromeStatusID: 5695378309513216,
205
228
  },
206
229
  'Gravity Sensor': {
207
230
  regEx: /new\s+GravitySensor\s*\(/g,
@@ -210,6 +233,7 @@ const patterns = {
210
233
  featureDetection: `(async () => 'GravitySensor' in self)()`,
211
234
  documentation: 'https://developer.chrome.com/articles/generic-sensor/',
212
235
  blinkFeatureID: 3795,
236
+ chromeStatusID: 5384099747332096,
213
237
  },
214
238
  'Gyroscope': {
215
239
  regEx: /new\s+Gyroscope\s*\(/g,
@@ -218,6 +242,7 @@ const patterns = {
218
242
  featureDetection: `(async () => 'Gyroscope' in self)()`,
219
243
  documentation: 'https://developer.chrome.com/articles/generic-sensor/',
220
244
  blinkFeatureID: 1906,
245
+ chromeStatusID: 5698781827825664,
221
246
  },
222
247
  'Handwriting Recognition': {
223
248
  regEx: /navigator\.queryHandwritingRecognizerSupport\s*\(/g,
@@ -227,6 +252,7 @@ const patterns = {
227
252
  documentation:
228
253
  'https://developer.chrome.com/docs/web-platform/handwriting-recognition/',
229
254
  blinkFeatureID: 3893,
255
+ chromeStatusID: 5263213807534080,
230
256
  },
231
257
  'HapticsDevice': {
232
258
  regEx: /\.haptics\.play\s*\(/g,
@@ -236,6 +262,7 @@ const patterns = {
236
262
  documentation:
237
263
  'https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/HapticsDevice/explainer.md',
238
264
  blinkFeatureID: undefined,
265
+ chromeStatusID: 5720648543371264,
239
266
  },
240
267
  'Idle Detection': {
241
268
  regEx: /new\s+IdleDetector\s*\(/g,
@@ -244,6 +271,7 @@ const patterns = {
244
271
  featureDetection: `(async () => 'IdleDetector' in self)()`,
245
272
  documentation: 'https://developer.chrome.com/articles/idle-detection/',
246
273
  blinkFeatureID: 2834,
274
+ chromeStatusID: 4590256452009984,
247
275
  },
248
276
  'Ink': {
249
277
  regEx: /navigator\.ink\.requestPresenter\s*\(/g,
@@ -253,6 +281,7 @@ const patterns = {
253
281
  documentation:
254
282
  'https://blogs.windows.com/msedgedev/2021/08/18/enhancing-inking-on-the-web/',
255
283
  blinkFeatureID: undefined,
284
+ chromeStatusID: 5961434129235968,
256
285
  },
257
286
  'Insertable streams for MediaStreamTrack': {
258
287
  regEx: /MediaStreamTrackProcessor\s*\(/g,
@@ -264,6 +293,7 @@ const patterns = {
264
293
  documentation:
265
294
  'https://developer.chrome.com/articles/mediastreamtrack-insertable-media-processing/',
266
295
  blinkFeatureID: 3729,
296
+ chromeStatusID: 5499415634640896,
267
297
  },
268
298
  'Launch Handler': {
269
299
  regEx: /"launch_handler"/g,
@@ -274,6 +304,7 @@ const patterns = {
274
304
  documentation:
275
305
  'https://developer.chrome.com/docs/web-platform/launch-handler/',
276
306
  blinkFeatureID: undefined,
307
+ chromeStatusID: 5722383233056768,
277
308
  },
278
309
  'Linear Acceleration Sensor': {
279
310
  regEx: /new\s+LinearAccelerationSensor\s*\(/g,
@@ -282,6 +313,7 @@ const patterns = {
282
313
  featureDetection: `(async () => 'LinearAccelerationSensor' in self)()`,
283
314
  documentation: 'https://developer.chrome.com/articles/generic-sensor/',
284
315
  blinkFeatureID: 2051,
316
+ chromeStatusID: 5698781827825664,
285
317
  },
286
318
  'Local Font Access': {
287
319
  regEx: /queryLocalFonts\s*\(/g,
@@ -290,6 +322,7 @@ const patterns = {
290
322
  featureDetection: `(async () => 'queryLocalFonts' in self)()`,
291
323
  documentation: 'https://developer.chrome.com/articles/local-fonts/',
292
324
  blinkFeatureID: 4211,
325
+ chromeStatusID: 6234451761692672,
293
326
  },
294
327
  'Magnetometer': {
295
328
  regEx: /new\s+Magnetometer\s*\(/g,
@@ -298,6 +331,7 @@ const patterns = {
298
331
  featureDetection: `(async () => 'Magnetometer' in self)()`,
299
332
  documentation: 'https://developer.chrome.com/articles/generic-sensor/',
300
333
  blinkFeatureID: 1907,
334
+ chromeStatusID: 5698781827825664,
301
335
  },
302
336
  'Media Capabilities': {
303
337
  regEx: /navigator\.mediaCapabilities\.decodingInfo\s*\(/g,
@@ -307,6 +341,7 @@ const patterns = {
307
341
  documentation:
308
342
  'https://developer.mozilla.org/en-US/docs/Web/API/Media_Capabilities_API',
309
343
  blinkFeatureID: 2239,
344
+ chromeStatusID: 5869632707624960,
310
345
  },
311
346
  'Media Session': {
312
347
  regEx:
@@ -317,6 +352,7 @@ const patterns = {
317
352
  documentation:
318
353
  'https://developer.mozilla.org/en-US/docs/Web/API/Media_Session_API',
319
354
  blinkFeatureID: 1792,
355
+ chromeStatusID: 5639924124483584,
320
356
  },
321
357
  'Window Management': {
322
358
  regEx: /getScreenDetails\s*\(\)/g,
@@ -325,6 +361,7 @@ const patterns = {
325
361
  featureDetection: `(async () => 'getScreenDetails' in self)()`,
326
362
  documentation: 'https://developer.chrome.com/articles/window-management/',
327
363
  blinkFeatureID: 3388,
364
+ chromeStatusID: 5252960583942144,
328
365
  },
329
366
  'Navigation Preload': {
330
367
  regEx: /\.navigationPreload\.enable\s*\(\)/g,
@@ -337,6 +374,7 @@ const patterns = {
337
374
  documentation:
338
375
  'https://developer.mozilla.org/en-US/docs/Web/API/NavigationPreloadManager',
339
376
  blinkFeatureID: 1803,
377
+ chromeStatusID: 5734842339688448,
340
378
  },
341
379
  'Origin Private File System': {
342
380
  regEx: /navigator\.storage\.getDirectory\s*\(\)/g,
@@ -346,6 +384,7 @@ const patterns = {
346
384
  featureDetection: `(async () => 'StorageManager' in self && 'getDirectory' in StorageManager.prototype)()`,
347
385
  documentation: 'https://web.dev/origin-private-file-system/',
348
386
  blinkFeatureID: 3428,
387
+ chromeStatusID: 5702777582911488,
349
388
  },
350
389
  'Payment Handler': {
351
390
  regEx: /\.paymentManager\.instruments\.set\s*\(/g,
@@ -354,6 +393,7 @@ const patterns = {
354
393
  featureDetection: `(async () => 'PaymentInstruments' in self)()`,
355
394
  documentation: 'https://web.dev/registering-a-web-based-payment-app/',
356
395
  blinkFeatureID: 2397,
396
+ chromeStatusID: 5160285237149696,
357
397
  },
358
398
  'Payment Request': {
359
399
  regEx: /new\s+PaymentRequest\s*\(/g,
@@ -363,6 +403,7 @@ const patterns = {
363
403
  documentation:
364
404
  'https://developer.mozilla.org/en-US/docs/Web/API/Payment_Request_API',
365
405
  blinkFeatureID: 2894,
406
+ chromeStatusID: 5639348045217792,
366
407
  },
367
408
  'Periodic Background Sync': {
368
409
  regEx: /periodicSync\.register\s*\(/g,
@@ -372,6 +413,7 @@ const patterns = {
372
413
  documentation:
373
414
  'https://developer.chrome.com/articles/periodic-background-sync/',
374
415
  blinkFeatureID: 2931,
416
+ chromeStatusID: 5689383275462656,
375
417
  },
376
418
  'Persistent Storage': {
377
419
  regEx: /navigator\.storage\.persist\s*\(\)/g,
@@ -382,6 +424,7 @@ const patterns = {
382
424
  documentation:
383
425
  'https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/persist',
384
426
  blinkFeatureID: 1369,
427
+ chromeStatusID: 5715811364765696,
385
428
  },
386
429
  'Storage Buckets': {
387
430
  regEx: /navigator\.storageBuckets\.open\s*\(/g,
@@ -390,6 +433,7 @@ const patterns = {
390
433
  featureDetection: `(async () => 'storageBuckets' in navigator)()`,
391
434
  documentation: 'https://developer.chrome.com/blog/storage-buckets/',
392
435
  blinkFeatureID: 4378,
436
+ chromeStatusID: 5739224579964928,
393
437
  },
394
438
  'Pointer Lock (unadjustedMovement)': {
395
439
  regEx: /unadjustedMovement\s*\:\s*/g,
@@ -409,6 +453,7 @@ const patterns = {
409
453
  featureDetection: `(async () => 'HTMLParagraphElement' in self ? await (async () => { try { return !!await document.createElement("p").requestPointerLock({ unadjustedMovement: true }) } catch { return 'requestPointerLock' in HTMLParagraphElement.prototype } })() : undefined)()`,
410
454
  documentation: 'https://web.dev/disable-mouse-acceleration/',
411
455
  blinkFeatureID: 3027,
456
+ chromeStatusID: 5723553087356928,
412
457
  },
413
458
  'Protocol Handlers': {
414
459
  regEx: /"protocol_handlers"/g,
@@ -418,6 +463,7 @@ const patterns = {
418
463
  documentation:
419
464
  'https://developer.chrome.com/articles/url-protocol-handler/',
420
465
  blinkFeatureID: 3884,
466
+ chromeStatusID: 5151703944921088,
421
467
  },
422
468
  'Push': {
423
469
  regEx: /\.pushManager\.subscribe\s*\(/g,
@@ -429,6 +475,7 @@ const patterns = {
429
475
  featureDetection: `(async () => 'serviceWorker' in navigator && 'pushManager' in (await navigator.serviceWorker?.ready || self.registration))()`,
430
476
  documentation: 'https://developer.mozilla.org/en-US/docs/Web/API/Push_API',
431
477
  blinkFeatureID: 769,
478
+ chromeStatusID: 5416033485586432,
432
479
  },
433
480
  'Relative Orientation Sensor': {
434
481
  regEx: /new\s+RelativeOrientationSensor\s*\(/g,
@@ -437,6 +484,7 @@ const patterns = {
437
484
  featureDetection: `(async () => 'RelativeOrientationSensor' in self)()`,
438
485
  documentation: 'https://developer.chrome.com/articles/generic-sensor/',
439
486
  blinkFeatureID: 2019,
487
+ chromeStatusID: 5698781827825664,
440
488
  },
441
489
  'Screen Wake Lock': {
442
490
  regEx: /navigator\.wakeLock\.request\s*\(/g,
@@ -445,6 +493,7 @@ const patterns = {
445
493
  featureDetection: `(async () => 'wakeLock' in navigator)()`,
446
494
  documentation: 'https://developer.chrome.com/articles/wake-lock/',
447
495
  blinkFeatureID: 3005,
496
+ chromeStatusID: 4636879949398016,
448
497
  },
449
498
  'Service Worker': {
450
499
  regEx: /navigator\.serviceWorker\.register\s*\(/g,
@@ -454,6 +503,7 @@ const patterns = {
454
503
  documentation:
455
504
  'https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API',
456
505
  blinkFeatureID: 990,
506
+ chromeStatusID: 6561526227927040,
457
507
  },
458
508
  'Shape Detection (Barcodes)': {
459
509
  regEx: /new\s+BarcodeDetector\s*\(/g,
@@ -462,6 +512,7 @@ const patterns = {
462
512
  featureDetection: `(async () => 'BarcodeDetector' in self)()`,
463
513
  documentation: 'https://developer.chrome.com/articles/shape-detection/',
464
514
  blinkFeatureID: 3711,
515
+ chromeStatusID: 4757990523535360,
465
516
  },
466
517
  'Shape Detection (Faces)': {
467
518
  regEx: /new\s+FaceDetector\s*\(/g,
@@ -470,6 +521,7 @@ const patterns = {
470
521
  featureDetection: `(async () => 'FaceDetector' in self)()`,
471
522
  documentation: 'https://developer.chrome.com/articles/shape-detection/',
472
523
  blinkFeatureID: 3712,
524
+ chromeStatusID: 5678216012365824,
473
525
  },
474
526
  'Shape Detection (Texts)': {
475
527
  regEx: /new\s+TextDetector\s*\(/g,
@@ -478,6 +530,7 @@ const patterns = {
478
530
  featureDetection: `(async () => 'TextDetector' in self)()`,
479
531
  documentation: 'https://developer.chrome.com/articles/shape-detection/',
480
532
  blinkFeatureID: 3713,
533
+ chromeStatusID: 5644087665360896,
481
534
  },
482
535
  'Shortcuts': {
483
536
  regEx: /"shortcuts"/g,
@@ -486,6 +539,7 @@ const patterns = {
486
539
  featureDetection: `(async () => undefined)()`,
487
540
  documentation: 'https://web.dev/app-shortcuts/',
488
541
  blinkFeatureID: undefined,
542
+ chromeStatusID: 5706099464339456,
489
543
  },
490
544
  'Storage Estimation': {
491
545
  regEx: /navigator\.storage\.estimate\s*\(\)/g,
@@ -496,6 +550,7 @@ const patterns = {
496
550
  documentation:
497
551
  'https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/estimate',
498
552
  blinkFeatureID: 1371,
553
+ chromeStatusID: 5630353511284736,
499
554
  },
500
555
  'Tabbed Application Mode': {
501
556
  regEx: /"tabbed"/g,
@@ -504,6 +559,7 @@ const patterns = {
504
559
  featureDetection: `(async () => undefined)()`,
505
560
  documentation: 'https://web.dev/tabbed-application-mode/',
506
561
  blinkFeatureID: undefined,
562
+ chromeStatusID: 5128143454076928,
507
563
  },
508
564
  'VirtualKeyboard': {
509
565
  regEx: /navigator\.virtualKeyboard/g,
@@ -513,6 +569,7 @@ const patterns = {
513
569
  documentation:
514
570
  'https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/VirtualKeyboardAPI/explainer.md',
515
571
  blinkFeatureID: undefined,
572
+ chromeStatusID: 5717448231747584,
516
573
  },
517
574
  'Web App Link Handling': {
518
575
  regEx: /"handle_links"/g,
@@ -522,6 +579,7 @@ const patterns = {
522
579
  documentation:
523
580
  'https://github.com/WICG/pwa-url-handler/blob/main/handle_links/explainer.md',
524
581
  blinkFeatureID: undefined,
582
+ chromeStatusID: 5740751225880576,
525
583
  },
526
584
  'Web Audio': {
527
585
  regEx: /new\s+AudioContext\s*\(/g,
@@ -531,6 +589,7 @@ const patterns = {
531
589
  documentation:
532
590
  'https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API',
533
591
  blinkFeatureID: 1698,
592
+ chromeStatusID: 6261718720184320,
534
593
  },
535
594
  'Web Share': {
536
595
  regEx: /navigator\.share\s*\(/g,
@@ -539,6 +598,7 @@ const patterns = {
539
598
  featureDetection: `(async () => 'share' in navigator)()`,
540
599
  documentation: 'https://web.dev/web-share/',
541
600
  blinkFeatureID: 1501,
601
+ chromeStatusID: 5668769141620736,
542
602
  },
543
603
  'Web Share (Files)': {
544
604
  regEx: /navigator\.canShare\s*\(/g,
@@ -547,6 +607,7 @@ const patterns = {
547
607
  featureDetection: `(async () => 'canShare' in navigator)()`,
548
608
  documentation: 'https://web.dev/web-share/',
549
609
  blinkFeatureID: 2737,
610
+ chromeStatusID: 4777349178458112,
550
611
  },
551
612
  'Web Share Target': {
552
613
  regEx: /"share_target"/g,
@@ -555,6 +616,7 @@ const patterns = {
555
616
  featureDetection: `(async () => undefined)()`,
556
617
  documentation: 'https://developer.chrome.com/articles/web-share-target/',
557
618
  blinkFeatureID: undefined,
619
+ chromeStatusID: 5662315307335680,
558
620
  },
559
621
  'Web Share Target (Files)': {
560
622
  regEx: /"enctype"\s*\:\s*"multipart\/form\-data"/g,
@@ -563,6 +625,7 @@ const patterns = {
563
625
  featureDetection: `(async () => undefined)()`,
564
626
  documentation: 'https://developer.chrome.com/articles/web-share-target/',
565
627
  blinkFeatureID: undefined,
628
+ chromeStatusID: 6124071381106688,
566
629
  },
567
630
  'Web Bluetooth': {
568
631
  regEx: /navigator\.bluetooth\.requestDevice\s*\(/g,
@@ -571,6 +634,7 @@ const patterns = {
571
634
  featureDetection: `(async () => 'bluetooth' in navigator)()`,
572
635
  documentation: 'https://developer.chrome.com/articles/bluetooth/',
573
636
  blinkFeatureID: 1670,
637
+ chromeStatusID: 5264933985976320,
574
638
  },
575
639
  'WebCodecs': {
576
640
  regEx: /new\s+MediaStreamTrackProcessor\s*\(/g,
@@ -579,6 +643,7 @@ const patterns = {
579
643
  featureDetection: `(async () => 'MediaStreamTrackProcessor' in self)()`,
580
644
  documentation: 'https://developer.chrome.com/articles/webcodecs/',
581
645
  blinkFeatureID: 3728,
646
+ chromeStatusID: 5669293909868544,
582
647
  },
583
648
  'WebGPU': {
584
649
  regEx: /navigator\.gpu\.requestAdapter\s*\(/g,
@@ -587,6 +652,7 @@ const patterns = {
587
652
  featureDetection: `(async () => 'gpu' in navigator)()`,
588
653
  documentation: 'https://developer.chrome.com/docs/web-platform/webgpu/',
589
654
  blinkFeatureID: 3888,
655
+ chromeStatusID: 6213121689518080,
590
656
  },
591
657
  'WebHID': {
592
658
  regEx: /navigator\.hid\.requestDevice\s*\(/g,
@@ -595,6 +661,7 @@ const patterns = {
595
661
  featureDetection: `(async () => 'hid' in navigator)()`,
596
662
  documentation: 'https://developer.chrome.com/articles/hid/',
597
663
  blinkFeatureID: 2866,
664
+ chromeStatusID: 5172464636133376,
598
665
  },
599
666
  'Web MIDI': {
600
667
  regEx: /navigator\.requestMIDIAccess\s*\(/g,
@@ -604,6 +671,7 @@ const patterns = {
604
671
  documentation:
605
672
  'https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API',
606
673
  blinkFeatureID: 2029,
674
+ chromeStatusID: 4923613069180928,
607
675
  },
608
676
  'Web NFC': {
609
677
  regEx: /new\s+NDEFReader\s*\(/g,
@@ -612,6 +680,7 @@ const patterns = {
612
680
  featureDetection: `(async () => 'NDEFReader' in self)()`,
613
681
  documentation: 'https://developer.chrome.com/articles/nfc/',
614
682
  blinkFeatureID: 3094,
683
+ chromeStatusID: 6261030015467520,
615
684
  },
616
685
  'WebOTP': {
617
686
  regEx: /transport\s*\:\s*\[["']sms["']\]/g,
@@ -620,6 +689,7 @@ const patterns = {
620
689
  featureDetection: `(async () => 'OTPCredential' in self)()`,
621
690
  documentation: 'https://developer.chrome.com/articles/web-otp/',
622
691
  blinkFeatureID: 2880,
692
+ chromeStatusID: 5873577578463232,
623
693
  },
624
694
  'Web Serial': {
625
695
  regEx: /navigator\.serial\.requestPort\s*\(/g,
@@ -628,6 +698,7 @@ const patterns = {
628
698
  featureDetection: `(async () => 'serial' in navigator)()`,
629
699
  documentation: 'https://developer.chrome.com/articles/serial/',
630
700
  blinkFeatureID: 2546,
701
+ chromeStatusID: 6577673212002304,
631
702
  },
632
703
  'WebSocketStream': {
633
704
  regEx: /new\s+WebSocketStream\s*\(/g,
@@ -636,6 +707,7 @@ const patterns = {
636
707
  featureDetection: `(async () => 'WebSocketStream' in self)()`,
637
708
  documentation: 'https://developer.chrome.com/articles/websocketstream/',
638
709
  blinkFeatureID: 3018,
710
+ chromeStatusID: 5189728691290112,
639
711
  },
640
712
  'WebTransport': {
641
713
  regEx: /new\s+WebTransport\s*\(/g,
@@ -644,6 +716,7 @@ const patterns = {
644
716
  featureDetection: `(async () => 'WebTransport' in self)()`,
645
717
  documentation: 'https://developer.chrome.com/articles/webtransport/',
646
718
  blinkFeatureID: 3472,
719
+ chromeStatusID: 4854144902889472,
647
720
  },
648
721
  'WebUSB': {
649
722
  regEx: /navigator\.usb\.requestDevice\s*\(/g,
@@ -652,6 +725,7 @@ const patterns = {
652
725
  featureDetection: `(async () => 'usb' in navigator)()`,
653
726
  documentation: 'https://developer.chrome.com/articles/usb/',
654
727
  blinkFeatureID: 1520,
728
+ chromeStatusID: 5651917954875392,
655
729
  },
656
730
  'Window Controls Overlay': {
657
731
  regEx: /"window\-controls\-overlay"/g,
@@ -660,5 +734,6 @@ const patterns = {
660
734
  featureDetection: `(async () => 'windowControlsOverlay' in navigator)()`,
661
735
  documentation: 'https://web.dev/window-controls-overlay/',
662
736
  blinkFeatureID: 3902,
737
+ chromeStatusID: 5741247866077184,
663
738
  },
664
739
  };
package/patterns.mjs CHANGED
@@ -6,6 +6,7 @@ export default {
6
6
  featureDetection: `(async () => 'AbsoluteOrientationSensor' in self)()`,
7
7
  documentation: 'https://developer.chrome.com/articles/generic-sensor/',
8
8
  blinkFeatureID: 1900,
9
+ chromeStatusID: 5698781827825664,
9
10
  },
10
11
  'Accelerometer': {
11
12
  regEx: /new\s+Accelerometer\s*\(/g,
@@ -14,6 +15,7 @@ export default {
14
15
  featureDetection: `(async () => 'Accelerometer' in self)()`,
15
16
  documentation: 'https://developer.chrome.com/articles/generic-sensor/',
16
17
  blinkFeatureID: 1899,
18
+ chromeStatusID: 5698781827825664,
17
19
  },
18
20
  'Add to Home Screen': {
19
21
  regEx: /["']beforeinstallprompt["']|\.onbeforeinstallprompt/g,
@@ -23,6 +25,7 @@ export default {
23
25
  documentation:
24
26
  'https://developer.mozilla.org/en-US/docs/Web/API/BeforeInstallPromptEvent',
25
27
  blinkFeatureID: 1436,
28
+ chromeStatusID: 6560913322672128,
26
29
  },
27
30
  'Ambient Light Sensor': {
28
31
  regEx: /new\s+AmbientLightSensor\s*\(\)/g,
@@ -31,6 +34,7 @@ export default {
31
34
  featureDetection: `(async () => 'AmbientLightSensor' in self)()`,
32
35
  documentation: 'https://developer.chrome.com/articles/generic-sensor/',
33
36
  blinkFeatureID: 1901,
37
+ chromeStatusID: 5298357018820608,
34
38
  },
35
39
  'Async Clipboard': {
36
40
  regEx: /navigator\.clipboard\.writeText\s*\(/g,
@@ -40,6 +44,7 @@ export default {
40
44
  featureDetection: `(async () => 'clipboard' in navigator && 'writeText' in navigator.clipboard)()`,
41
45
  documentation: 'https://web.dev/async-clipboard/',
42
46
  blinkFeatureID: 2372,
47
+ chromeStatusID: 5861289330999296,
43
48
  },
44
49
  'Async Clipboard (Images)': {
45
50
  regEx: /navigator\.clipboard\.write\s*\(/g,
@@ -49,6 +54,7 @@ export default {
49
54
  featureDetection: `(async () => 'clipboard' in navigator && 'write' in navigator.clipboard)()`,
50
55
  documentation: 'https://web.dev/async-clipboard/',
51
56
  blinkFeatureID: 2370,
57
+ chromeStatusID: 5074658793619456,
52
58
  },
53
59
  'Background Fetch': {
54
60
  regEx: /\.backgroundFetch\.fetch\s*\(["']/g,
@@ -58,6 +64,7 @@ export default {
58
64
  documentation:
59
65
  'https://developer.mozilla.org/en-US/docs/Web/API/Background_Fetch_API',
60
66
  blinkFeatureID: 2549,
67
+ chromeStatusID: 5712608971718656,
61
68
  },
62
69
  'Background Sync': {
63
70
  regEx: /\.sync\.register\s*\(["']/g,
@@ -70,6 +77,7 @@ export default {
70
77
  documentation:
71
78
  'https://developer.mozilla.org/en-US/docs/Web/API/Background_Synchronization_API',
72
79
  blinkFeatureID: 745,
80
+ chromeStatusID: 6170807885627392,
73
81
  },
74
82
  'Badging': {
75
83
  regEx: /navigator\.setAppBadge\s*\(/g,
@@ -78,6 +86,7 @@ export default {
78
86
  featureDetection: `(async () => 'setAppBadge' in navigator)()`,
79
87
  documentation: 'https://developer.chrome.com/articles/badging-api/',
80
88
  blinkFeatureID: 2726,
89
+ chromeStatusID: 6068482055602176,
81
90
  },
82
91
  'Cache Storage': {
83
92
  regEx: /caches\.open\s*\(/g,
@@ -87,6 +96,7 @@ export default {
87
96
  documentation:
88
97
  'https://developer.mozilla.org/en-US/docs/Web/API/CacheStorage',
89
98
  blinkFeatureID: 3022,
99
+ chromeStatusID: 6461631328419840,
90
100
  },
91
101
  'Compression Streams': {
92
102
  regEx: /new\s+CompressionStream\s*\(/g,
@@ -95,6 +105,7 @@ export default {
95
105
  featureDetection: `(async () => 'CompressionStream' in self)()`,
96
106
  documentation: 'https://developer.chrome.com/blog/compression-streams-api/',
97
107
  blinkFeatureID: 3060,
108
+ chromeStatusID: 5855937971617792,
98
109
  },
99
110
  'Compute Pressure': {
100
111
  regEx: /new\s+ComputePressureObserver\s*\(/g,
@@ -104,6 +115,7 @@ export default {
104
115
  documentation:
105
116
  'https://developer.chrome.com/docs/web-platform/compute-pressure/',
106
117
  blinkFeatureID: 3899,
118
+ chromeStatusID: 5597608644968448,
107
119
  },
108
120
  'Contact Picker': {
109
121
  regEx: /navigator\.contacts\.select\s*\(/g,
@@ -112,6 +124,7 @@ export default {
112
124
  featureDetection: `(async () => 'contacts' in navigator)()`,
113
125
  documentation: 'https://developer.chrome.com/articles/contact-picker/',
114
126
  blinkFeatureID: 2993,
127
+ chromeStatusID: 6511327140904960,
115
128
  },
116
129
  'Content Index': {
117
130
  regEx: /index\.getAll\s*\(/g,
@@ -124,6 +137,7 @@ export default {
124
137
  documentation:
125
138
  'https://developer.chrome.com/articles/content-indexing-api/',
126
139
  blinkFeatureID: 2985,
140
+ chromeStatusID: 5658416729030656,
127
141
  },
128
142
  'Credential Management': {
129
143
  regEx: /navigator\.credentials\.get\s*\(/g,
@@ -133,6 +147,7 @@ export default {
133
147
  documentation:
134
148
  'https://developers.google.com/web/updates/2016/04/credential-management-api',
135
149
  blinkFeatureID: 960,
150
+ chromeStatusID: 5026422640869376,
136
151
  },
137
152
  'Device Memory': {
138
153
  regEx: /navigator\.deviceMemory/g,
@@ -142,6 +157,7 @@ export default {
142
157
  documentation:
143
158
  'https://developer.mozilla.org/en-US/docs/Web/API/Device_Memory_API',
144
159
  blinkFeatureID: 2121,
160
+ chromeStatusID: 5119701235531776,
145
161
  },
146
162
  'Device Posture': {
147
163
  regEx: /navigator\.devicePosture/g,
@@ -151,6 +167,7 @@ export default {
151
167
  documentation:
152
168
  'https://github.com/w3c/device-posture/blob/gh-pages/README.md',
153
169
  blinkFeatureID: undefined,
170
+ chromeStatusID: 5185813744975872,
154
171
  },
155
172
  'Digital Goods': {
156
173
  regEx: /getDigitalGoodsService\s*\(/g,
@@ -160,6 +177,7 @@ export default {
160
177
  documentation:
161
178
  'https://developer.chrome.com/docs/android/trusted-web-activity/receive-payments-play-billing/',
162
179
  blinkFeatureID: 3397,
180
+ chromeStatusID: 5339955595313152,
163
181
  },
164
182
  'EyeDropper': {
165
183
  regEx: /new\s+EyeDropper\s*\(\)/g,
@@ -168,6 +186,7 @@ export default {
168
186
  featureDetection: `(async () => 'EyeDropper' in self)()`,
169
187
  documentation: 'https://developer.chrome.com/articles/eyedropper/',
170
188
  blinkFeatureID: undefined,
189
+ chromeStatusID: 6304275594477568,
171
190
  },
172
191
  'File Handling': {
173
192
  regEx: /"file_handlers"/g,
@@ -177,6 +196,7 @@ export default {
177
196
  featureDetection: `(async () => 'launchQueue' in self && 'files' in LaunchParams.prototype)()`,
178
197
  documentation: 'https://developer.chrome.com/articles/file-handling/',
179
198
  blinkFeatureID: 3875,
199
+ chromeStatusID: 5721776357113856,
180
200
  },
181
201
  'File System Access': {
182
202
  regEx:
@@ -186,6 +206,7 @@ export default {
186
206
  featureDetection: `(async () => 'showOpenFilePicker' in self)()`,
187
207
  documentation: 'https://developer.chrome.com/articles/file-system-access/',
188
208
  blinkFeatureID: 3340,
209
+ chromeStatusID: 6284708426022912,
189
210
  },
190
211
  'Gamepad': {
191
212
  regEx: /navigator\.getGamepads\s*\(/g,
@@ -194,6 +215,7 @@ export default {
194
215
  featureDetection: `(async () => 'getGamepads' in navigator)()`,
195
216
  documentation: 'https://web.dev/gamepad/',
196
217
  blinkFeatureID: 1916,
218
+ chromeStatusID: 5118776383111168,
197
219
  },
198
220
  'getInstalledRelatedApps': {
199
221
  regEx: /navigator\.getInstalledRelatedApps\s*\(/g,
@@ -202,6 +224,7 @@ export default {
202
224
  featureDetection: `(async () => 'getInstalledRelatedApps' in navigator)()`,
203
225
  documentation: 'https://web.dev/get-installed-related-apps/',
204
226
  blinkFeatureID: 1870,
227
+ chromeStatusID: 5695378309513216,
205
228
  },
206
229
  'Gravity Sensor': {
207
230
  regEx: /new\s+GravitySensor\s*\(/g,
@@ -210,6 +233,7 @@ export default {
210
233
  featureDetection: `(async () => 'GravitySensor' in self)()`,
211
234
  documentation: 'https://developer.chrome.com/articles/generic-sensor/',
212
235
  blinkFeatureID: 3795,
236
+ chromeStatusID: 5384099747332096,
213
237
  },
214
238
  'Gyroscope': {
215
239
  regEx: /new\s+Gyroscope\s*\(/g,
@@ -218,6 +242,7 @@ export default {
218
242
  featureDetection: `(async () => 'Gyroscope' in self)()`,
219
243
  documentation: 'https://developer.chrome.com/articles/generic-sensor/',
220
244
  blinkFeatureID: 1906,
245
+ chromeStatusID: 5698781827825664,
221
246
  },
222
247
  'Handwriting Recognition': {
223
248
  regEx: /navigator\.queryHandwritingRecognizerSupport\s*\(/g,
@@ -227,6 +252,7 @@ export default {
227
252
  documentation:
228
253
  'https://developer.chrome.com/docs/web-platform/handwriting-recognition/',
229
254
  blinkFeatureID: 3893,
255
+ chromeStatusID: 5263213807534080,
230
256
  },
231
257
  'HapticsDevice': {
232
258
  regEx: /\.haptics\.play\s*\(/g,
@@ -236,6 +262,7 @@ export default {
236
262
  documentation:
237
263
  'https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/HapticsDevice/explainer.md',
238
264
  blinkFeatureID: undefined,
265
+ chromeStatusID: 5720648543371264,
239
266
  },
240
267
  'Idle Detection': {
241
268
  regEx: /new\s+IdleDetector\s*\(/g,
@@ -244,6 +271,7 @@ export default {
244
271
  featureDetection: `(async () => 'IdleDetector' in self)()`,
245
272
  documentation: 'https://developer.chrome.com/articles/idle-detection/',
246
273
  blinkFeatureID: 2834,
274
+ chromeStatusID: 4590256452009984,
247
275
  },
248
276
  'Ink': {
249
277
  regEx: /navigator\.ink\.requestPresenter\s*\(/g,
@@ -253,6 +281,7 @@ export default {
253
281
  documentation:
254
282
  'https://blogs.windows.com/msedgedev/2021/08/18/enhancing-inking-on-the-web/',
255
283
  blinkFeatureID: undefined,
284
+ chromeStatusID: 5961434129235968,
256
285
  },
257
286
  'Insertable streams for MediaStreamTrack': {
258
287
  regEx: /MediaStreamTrackProcessor\s*\(/g,
@@ -264,6 +293,7 @@ export default {
264
293
  documentation:
265
294
  'https://developer.chrome.com/articles/mediastreamtrack-insertable-media-processing/',
266
295
  blinkFeatureID: 3729,
296
+ chromeStatusID: 5499415634640896,
267
297
  },
268
298
  'Launch Handler': {
269
299
  regEx: /"launch_handler"/g,
@@ -274,6 +304,7 @@ export default {
274
304
  documentation:
275
305
  'https://developer.chrome.com/docs/web-platform/launch-handler/',
276
306
  blinkFeatureID: undefined,
307
+ chromeStatusID: 5722383233056768,
277
308
  },
278
309
  'Linear Acceleration Sensor': {
279
310
  regEx: /new\s+LinearAccelerationSensor\s*\(/g,
@@ -282,6 +313,7 @@ export default {
282
313
  featureDetection: `(async () => 'LinearAccelerationSensor' in self)()`,
283
314
  documentation: 'https://developer.chrome.com/articles/generic-sensor/',
284
315
  blinkFeatureID: 2051,
316
+ chromeStatusID: 5698781827825664,
285
317
  },
286
318
  'Local Font Access': {
287
319
  regEx: /queryLocalFonts\s*\(/g,
@@ -290,6 +322,7 @@ export default {
290
322
  featureDetection: `(async () => 'queryLocalFonts' in self)()`,
291
323
  documentation: 'https://developer.chrome.com/articles/local-fonts/',
292
324
  blinkFeatureID: 4211,
325
+ chromeStatusID: 6234451761692672,
293
326
  },
294
327
  'Magnetometer': {
295
328
  regEx: /new\s+Magnetometer\s*\(/g,
@@ -298,6 +331,7 @@ export default {
298
331
  featureDetection: `(async () => 'Magnetometer' in self)()`,
299
332
  documentation: 'https://developer.chrome.com/articles/generic-sensor/',
300
333
  blinkFeatureID: 1907,
334
+ chromeStatusID: 5698781827825664,
301
335
  },
302
336
  'Media Capabilities': {
303
337
  regEx: /navigator\.mediaCapabilities\.decodingInfo\s*\(/g,
@@ -307,6 +341,7 @@ export default {
307
341
  documentation:
308
342
  'https://developer.mozilla.org/en-US/docs/Web/API/Media_Capabilities_API',
309
343
  blinkFeatureID: 2239,
344
+ chromeStatusID: 5869632707624960,
310
345
  },
311
346
  'Media Session': {
312
347
  regEx:
@@ -317,6 +352,7 @@ export default {
317
352
  documentation:
318
353
  'https://developer.mozilla.org/en-US/docs/Web/API/Media_Session_API',
319
354
  blinkFeatureID: 1792,
355
+ chromeStatusID: 5639924124483584,
320
356
  },
321
357
  'Window Management': {
322
358
  regEx: /getScreenDetails\s*\(\)/g,
@@ -325,6 +361,7 @@ export default {
325
361
  featureDetection: `(async () => 'getScreenDetails' in self)()`,
326
362
  documentation: 'https://developer.chrome.com/articles/window-management/',
327
363
  blinkFeatureID: 3388,
364
+ chromeStatusID: 5252960583942144,
328
365
  },
329
366
  'Navigation Preload': {
330
367
  regEx: /\.navigationPreload\.enable\s*\(\)/g,
@@ -337,6 +374,7 @@ export default {
337
374
  documentation:
338
375
  'https://developer.mozilla.org/en-US/docs/Web/API/NavigationPreloadManager',
339
376
  blinkFeatureID: 1803,
377
+ chromeStatusID: 5734842339688448,
340
378
  },
341
379
  'Origin Private File System': {
342
380
  regEx: /navigator\.storage\.getDirectory\s*\(\)/g,
@@ -346,6 +384,7 @@ export default {
346
384
  featureDetection: `(async () => 'StorageManager' in self && 'getDirectory' in StorageManager.prototype)()`,
347
385
  documentation: 'https://web.dev/origin-private-file-system/',
348
386
  blinkFeatureID: 3428,
387
+ chromeStatusID: 5702777582911488,
349
388
  },
350
389
  'Payment Handler': {
351
390
  regEx: /\.paymentManager\.instruments\.set\s*\(/g,
@@ -354,6 +393,7 @@ export default {
354
393
  featureDetection: `(async () => 'PaymentInstruments' in self)()`,
355
394
  documentation: 'https://web.dev/registering-a-web-based-payment-app/',
356
395
  blinkFeatureID: 2397,
396
+ chromeStatusID: 5160285237149696,
357
397
  },
358
398
  'Payment Request': {
359
399
  regEx: /new\s+PaymentRequest\s*\(/g,
@@ -363,6 +403,7 @@ export default {
363
403
  documentation:
364
404
  'https://developer.mozilla.org/en-US/docs/Web/API/Payment_Request_API',
365
405
  blinkFeatureID: 2894,
406
+ chromeStatusID: 5639348045217792,
366
407
  },
367
408
  'Periodic Background Sync': {
368
409
  regEx: /periodicSync\.register\s*\(/g,
@@ -372,6 +413,7 @@ export default {
372
413
  documentation:
373
414
  'https://developer.chrome.com/articles/periodic-background-sync/',
374
415
  blinkFeatureID: 2931,
416
+ chromeStatusID: 5689383275462656,
375
417
  },
376
418
  'Persistent Storage': {
377
419
  regEx: /navigator\.storage\.persist\s*\(\)/g,
@@ -382,6 +424,7 @@ export default {
382
424
  documentation:
383
425
  'https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/persist',
384
426
  blinkFeatureID: 1369,
427
+ chromeStatusID: 5715811364765696,
385
428
  },
386
429
  'Storage Buckets': {
387
430
  regEx: /navigator\.storageBuckets\.open\s*\(/g,
@@ -390,6 +433,7 @@ export default {
390
433
  featureDetection: `(async () => 'storageBuckets' in navigator)()`,
391
434
  documentation: 'https://developer.chrome.com/blog/storage-buckets/',
392
435
  blinkFeatureID: 4378,
436
+ chromeStatusID: 5739224579964928,
393
437
  },
394
438
  'Pointer Lock (unadjustedMovement)': {
395
439
  regEx: /unadjustedMovement\s*\:\s*/g,
@@ -409,6 +453,7 @@ export default {
409
453
  featureDetection: `(async () => 'HTMLParagraphElement' in self ? await (async () => { try { return !!await document.createElement("p").requestPointerLock({ unadjustedMovement: true }) } catch { return 'requestPointerLock' in HTMLParagraphElement.prototype } })() : undefined)()`,
410
454
  documentation: 'https://web.dev/disable-mouse-acceleration/',
411
455
  blinkFeatureID: 3027,
456
+ chromeStatusID: 5723553087356928,
412
457
  },
413
458
  'Protocol Handlers': {
414
459
  regEx: /"protocol_handlers"/g,
@@ -418,6 +463,7 @@ export default {
418
463
  documentation:
419
464
  'https://developer.chrome.com/articles/url-protocol-handler/',
420
465
  blinkFeatureID: 3884,
466
+ chromeStatusID: 5151703944921088,
421
467
  },
422
468
  'Push': {
423
469
  regEx: /\.pushManager\.subscribe\s*\(/g,
@@ -429,6 +475,7 @@ export default {
429
475
  featureDetection: `(async () => 'serviceWorker' in navigator && 'pushManager' in (await navigator.serviceWorker?.ready || self.registration))()`,
430
476
  documentation: 'https://developer.mozilla.org/en-US/docs/Web/API/Push_API',
431
477
  blinkFeatureID: 769,
478
+ chromeStatusID: 5416033485586432,
432
479
  },
433
480
  'Relative Orientation Sensor': {
434
481
  regEx: /new\s+RelativeOrientationSensor\s*\(/g,
@@ -437,6 +484,7 @@ export default {
437
484
  featureDetection: `(async () => 'RelativeOrientationSensor' in self)()`,
438
485
  documentation: 'https://developer.chrome.com/articles/generic-sensor/',
439
486
  blinkFeatureID: 2019,
487
+ chromeStatusID: 5698781827825664,
440
488
  },
441
489
  'Screen Wake Lock': {
442
490
  regEx: /navigator\.wakeLock\.request\s*\(/g,
@@ -445,6 +493,7 @@ export default {
445
493
  featureDetection: `(async () => 'wakeLock' in navigator)()`,
446
494
  documentation: 'https://developer.chrome.com/articles/wake-lock/',
447
495
  blinkFeatureID: 3005,
496
+ chromeStatusID: 4636879949398016,
448
497
  },
449
498
  'Service Worker': {
450
499
  regEx: /navigator\.serviceWorker\.register\s*\(/g,
@@ -454,6 +503,7 @@ export default {
454
503
  documentation:
455
504
  'https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API',
456
505
  blinkFeatureID: 990,
506
+ chromeStatusID: 6561526227927040,
457
507
  },
458
508
  'Shape Detection (Barcodes)': {
459
509
  regEx: /new\s+BarcodeDetector\s*\(/g,
@@ -462,6 +512,7 @@ export default {
462
512
  featureDetection: `(async () => 'BarcodeDetector' in self)()`,
463
513
  documentation: 'https://developer.chrome.com/articles/shape-detection/',
464
514
  blinkFeatureID: 3711,
515
+ chromeStatusID: 4757990523535360,
465
516
  },
466
517
  'Shape Detection (Faces)': {
467
518
  regEx: /new\s+FaceDetector\s*\(/g,
@@ -470,6 +521,7 @@ export default {
470
521
  featureDetection: `(async () => 'FaceDetector' in self)()`,
471
522
  documentation: 'https://developer.chrome.com/articles/shape-detection/',
472
523
  blinkFeatureID: 3712,
524
+ chromeStatusID: 5678216012365824,
473
525
  },
474
526
  'Shape Detection (Texts)': {
475
527
  regEx: /new\s+TextDetector\s*\(/g,
@@ -478,6 +530,7 @@ export default {
478
530
  featureDetection: `(async () => 'TextDetector' in self)()`,
479
531
  documentation: 'https://developer.chrome.com/articles/shape-detection/',
480
532
  blinkFeatureID: 3713,
533
+ chromeStatusID: 5644087665360896,
481
534
  },
482
535
  'Shortcuts': {
483
536
  regEx: /"shortcuts"/g,
@@ -486,6 +539,7 @@ export default {
486
539
  featureDetection: `(async () => undefined)()`,
487
540
  documentation: 'https://web.dev/app-shortcuts/',
488
541
  blinkFeatureID: undefined,
542
+ chromeStatusID: 5706099464339456,
489
543
  },
490
544
  'Storage Estimation': {
491
545
  regEx: /navigator\.storage\.estimate\s*\(\)/g,
@@ -496,6 +550,7 @@ export default {
496
550
  documentation:
497
551
  'https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/estimate',
498
552
  blinkFeatureID: 1371,
553
+ chromeStatusID: 5630353511284736,
499
554
  },
500
555
  'Tabbed Application Mode': {
501
556
  regEx: /"tabbed"/g,
@@ -504,6 +559,7 @@ export default {
504
559
  featureDetection: `(async () => undefined)()`,
505
560
  documentation: 'https://web.dev/tabbed-application-mode/',
506
561
  blinkFeatureID: undefined,
562
+ chromeStatusID: 5128143454076928,
507
563
  },
508
564
  'VirtualKeyboard': {
509
565
  regEx: /navigator\.virtualKeyboard/g,
@@ -513,6 +569,7 @@ export default {
513
569
  documentation:
514
570
  'https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/VirtualKeyboardAPI/explainer.md',
515
571
  blinkFeatureID: undefined,
572
+ chromeStatusID: 5717448231747584,
516
573
  },
517
574
  'Web App Link Handling': {
518
575
  regEx: /"handle_links"/g,
@@ -522,6 +579,7 @@ export default {
522
579
  documentation:
523
580
  'https://github.com/WICG/pwa-url-handler/blob/main/handle_links/explainer.md',
524
581
  blinkFeatureID: undefined,
582
+ chromeStatusID: 5740751225880576,
525
583
  },
526
584
  'Web Audio': {
527
585
  regEx: /new\s+AudioContext\s*\(/g,
@@ -531,6 +589,7 @@ export default {
531
589
  documentation:
532
590
  'https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API',
533
591
  blinkFeatureID: 1698,
592
+ chromeStatusID: 6261718720184320,
534
593
  },
535
594
  'Web Share': {
536
595
  regEx: /navigator\.share\s*\(/g,
@@ -539,6 +598,7 @@ export default {
539
598
  featureDetection: `(async () => 'share' in navigator)()`,
540
599
  documentation: 'https://web.dev/web-share/',
541
600
  blinkFeatureID: 1501,
601
+ chromeStatusID: 5668769141620736,
542
602
  },
543
603
  'Web Share (Files)': {
544
604
  regEx: /navigator\.canShare\s*\(/g,
@@ -547,6 +607,7 @@ export default {
547
607
  featureDetection: `(async () => 'canShare' in navigator)()`,
548
608
  documentation: 'https://web.dev/web-share/',
549
609
  blinkFeatureID: 2737,
610
+ chromeStatusID: 4777349178458112,
550
611
  },
551
612
  'Web Share Target': {
552
613
  regEx: /"share_target"/g,
@@ -555,6 +616,7 @@ export default {
555
616
  featureDetection: `(async () => undefined)()`,
556
617
  documentation: 'https://developer.chrome.com/articles/web-share-target/',
557
618
  blinkFeatureID: undefined,
619
+ chromeStatusID: 5662315307335680,
558
620
  },
559
621
  'Web Share Target (Files)': {
560
622
  regEx: /"enctype"\s*\:\s*"multipart\/form\-data"/g,
@@ -563,6 +625,7 @@ export default {
563
625
  featureDetection: `(async () => undefined)()`,
564
626
  documentation: 'https://developer.chrome.com/articles/web-share-target/',
565
627
  blinkFeatureID: undefined,
628
+ chromeStatusID: 6124071381106688,
566
629
  },
567
630
  'Web Bluetooth': {
568
631
  regEx: /navigator\.bluetooth\.requestDevice\s*\(/g,
@@ -571,6 +634,7 @@ export default {
571
634
  featureDetection: `(async () => 'bluetooth' in navigator)()`,
572
635
  documentation: 'https://developer.chrome.com/articles/bluetooth/',
573
636
  blinkFeatureID: 1670,
637
+ chromeStatusID: 5264933985976320,
574
638
  },
575
639
  'WebCodecs': {
576
640
  regEx: /new\s+MediaStreamTrackProcessor\s*\(/g,
@@ -579,6 +643,7 @@ export default {
579
643
  featureDetection: `(async () => 'MediaStreamTrackProcessor' in self)()`,
580
644
  documentation: 'https://developer.chrome.com/articles/webcodecs/',
581
645
  blinkFeatureID: 3728,
646
+ chromeStatusID: 5669293909868544,
582
647
  },
583
648
  'WebGPU': {
584
649
  regEx: /navigator\.gpu\.requestAdapter\s*\(/g,
@@ -587,6 +652,7 @@ export default {
587
652
  featureDetection: `(async () => 'gpu' in navigator)()`,
588
653
  documentation: 'https://developer.chrome.com/docs/web-platform/webgpu/',
589
654
  blinkFeatureID: 3888,
655
+ chromeStatusID: 6213121689518080,
590
656
  },
591
657
  'WebHID': {
592
658
  regEx: /navigator\.hid\.requestDevice\s*\(/g,
@@ -595,6 +661,7 @@ export default {
595
661
  featureDetection: `(async () => 'hid' in navigator)()`,
596
662
  documentation: 'https://developer.chrome.com/articles/hid/',
597
663
  blinkFeatureID: 2866,
664
+ chromeStatusID: 5172464636133376,
598
665
  },
599
666
  'Web MIDI': {
600
667
  regEx: /navigator\.requestMIDIAccess\s*\(/g,
@@ -604,6 +671,7 @@ export default {
604
671
  documentation:
605
672
  'https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API',
606
673
  blinkFeatureID: 2029,
674
+ chromeStatusID: 4923613069180928,
607
675
  },
608
676
  'Web NFC': {
609
677
  regEx: /new\s+NDEFReader\s*\(/g,
@@ -612,6 +680,7 @@ export default {
612
680
  featureDetection: `(async () => 'NDEFReader' in self)()`,
613
681
  documentation: 'https://developer.chrome.com/articles/nfc/',
614
682
  blinkFeatureID: 3094,
683
+ chromeStatusID: 6261030015467520,
615
684
  },
616
685
  'WebOTP': {
617
686
  regEx: /transport\s*\:\s*\[["']sms["']\]/g,
@@ -620,6 +689,7 @@ export default {
620
689
  featureDetection: `(async () => 'OTPCredential' in self)()`,
621
690
  documentation: 'https://developer.chrome.com/articles/web-otp/',
622
691
  blinkFeatureID: 2880,
692
+ chromeStatusID: 5873577578463232,
623
693
  },
624
694
  'Web Serial': {
625
695
  regEx: /navigator\.serial\.requestPort\s*\(/g,
@@ -628,6 +698,7 @@ export default {
628
698
  featureDetection: `(async () => 'serial' in navigator)()`,
629
699
  documentation: 'https://developer.chrome.com/articles/serial/',
630
700
  blinkFeatureID: 2546,
701
+ chromeStatusID: 6577673212002304,
631
702
  },
632
703
  'WebSocketStream': {
633
704
  regEx: /new\s+WebSocketStream\s*\(/g,
@@ -636,6 +707,7 @@ export default {
636
707
  featureDetection: `(async () => 'WebSocketStream' in self)()`,
637
708
  documentation: 'https://developer.chrome.com/articles/websocketstream/',
638
709
  blinkFeatureID: 3018,
710
+ chromeStatusID: 5189728691290112,
639
711
  },
640
712
  'WebTransport': {
641
713
  regEx: /new\s+WebTransport\s*\(/g,
@@ -644,6 +716,7 @@ export default {
644
716
  featureDetection: `(async () => 'WebTransport' in self)()`,
645
717
  documentation: 'https://developer.chrome.com/articles/webtransport/',
646
718
  blinkFeatureID: 3472,
719
+ chromeStatusID: 4854144902889472,
647
720
  },
648
721
  'WebUSB': {
649
722
  regEx: /navigator\.usb\.requestDevice\s*\(/g,
@@ -652,6 +725,7 @@ export default {
652
725
  featureDetection: `(async () => 'usb' in navigator)()`,
653
726
  documentation: 'https://developer.chrome.com/articles/usb/',
654
727
  blinkFeatureID: 1520,
728
+ chromeStatusID: 5651917954875392,
655
729
  },
656
730
  'Window Controls Overlay': {
657
731
  regEx: /"window\-controls\-overlay"/g,
@@ -660,5 +734,6 @@ export default {
660
734
  featureDetection: `(async () => 'windowControlsOverlay' in navigator)()`,
661
735
  documentation: 'https://web.dev/window-controls-overlay/',
662
736
  blinkFeatureID: 3902,
737
+ chromeStatusID: 5741247866077184,
663
738
  },
664
739
  };