fugu-api-data 1.21.0 → 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/package.json +2 -2
  2. package/patterns.js +67 -67
  3. package/patterns.mjs +67 -67
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fugu-api-data",
3
- "version": "1.21.0",
3
+ "version": "1.22.0",
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.5.3"
27
+ "prettier": "^3.6.0"
28
28
  }
29
29
  }
package/patterns.js CHANGED
@@ -1,6 +1,6 @@
1
1
  const patterns = {
2
2
  'Absolute Orientation Sensor': {
3
- regEx: /new\s+AbsoluteOrientationSensor\s*\(/g,
3
+ regEx: /\bnew\s+AbsoluteOrientationSensor\s*\(/g,
4
4
  where: 'JavaScript',
5
5
  supported: (async () => 'AbsoluteOrientationSensor' in self)(),
6
6
  featureDetection: `(async () => 'AbsoluteOrientationSensor' in self)()`,
@@ -9,7 +9,7 @@ const patterns = {
9
9
  chromeStatusID: 5698781827825664,
10
10
  },
11
11
  'Accelerometer': {
12
- regEx: /new\s+Accelerometer\s*\(/g,
12
+ regEx: /\bnew\s+Accelerometer\s*\(/g,
13
13
  where: 'JavaScript',
14
14
  supported: (async () => 'Accelerometer' in self)(),
15
15
  featureDetection: `(async () => 'Accelerometer' in self)()`,
@@ -28,7 +28,7 @@ const patterns = {
28
28
  chromeStatusID: 6560913322672128,
29
29
  },
30
30
  'Ambient Light Sensor': {
31
- regEx: /new\s+AmbientLightSensor\s*\(\)/g,
31
+ regEx: /\bnew\s+AmbientLightSensor\s*\(\)/g,
32
32
  where: 'JavaScript',
33
33
  supported: (async () => 'AmbientLightSensor' in self)(),
34
34
  featureDetection: `(async () => 'AmbientLightSensor' in self)()`,
@@ -37,7 +37,7 @@ const patterns = {
37
37
  chromeStatusID: 5298357018820608,
38
38
  },
39
39
  'Async Clipboard': {
40
- regEx: /navigator\.clipboard\.writeText\s*\(/g,
40
+ regEx: /\bnavigator\.clipboard\.writeText\s*\(/g,
41
41
  where: 'JavaScript',
42
42
  supported: (async () =>
43
43
  'clipboard' in navigator && 'writeText' in navigator.clipboard)(),
@@ -47,7 +47,7 @@ const patterns = {
47
47
  chromeStatusID: 5861289330999296,
48
48
  },
49
49
  'Async Clipboard (Images)': {
50
- regEx: /navigator\.clipboard\.write\s*\(/g,
50
+ regEx: /\bnavigator\.clipboard\.write\s*\(/g,
51
51
  where: 'JavaScript',
52
52
  supported: (async () =>
53
53
  'clipboard' in navigator && 'write' in navigator.clipboard)(),
@@ -80,7 +80,7 @@ const patterns = {
80
80
  chromeStatusID: 6170807885627392,
81
81
  },
82
82
  'Badging': {
83
- regEx: /navigator\.setAppBadge\s*\(/g,
83
+ regEx: /\bnavigator\.setAppBadge\s*\(/g,
84
84
  where: 'JavaScript',
85
85
  supported: (async () => 'setAppBadge' in navigator)(),
86
86
  featureDetection: `(async () => 'setAppBadge' in navigator)()`,
@@ -89,7 +89,7 @@ const patterns = {
89
89
  chromeStatusID: 6068482055602176,
90
90
  },
91
91
  'Cache Storage': {
92
- regEx: /caches\.open\s*\(/g,
92
+ regEx: /\bcaches\.open\s*\(/g,
93
93
  where: 'JavaScript',
94
94
  supported: (async () => 'serviceWorker' in navigator && 'caches' in self)(),
95
95
  featureDetection: `(async () => 'serviceWorker' in navigator && 'caches' in self)()`,
@@ -99,7 +99,7 @@ const patterns = {
99
99
  chromeStatusID: 6461631328419840,
100
100
  },
101
101
  'Compression Streams': {
102
- regEx: /new\s+CompressionStream\s*\(/g,
102
+ regEx: /\bnew\s+CompressionStream\s*\(/g,
103
103
  where: 'JavaScript',
104
104
  supported: (async () => 'CompressionStream' in self)(),
105
105
  featureDetection: `(async () => 'CompressionStream' in self)()`,
@@ -108,7 +108,7 @@ const patterns = {
108
108
  chromeStatusID: 5855937971617792,
109
109
  },
110
110
  'Compute Pressure': {
111
- regEx: /new\s+ComputePressureObserver\s*\(/g,
111
+ regEx: /\bnew\s+ComputePressureObserver\s*\(/g,
112
112
  where: 'JavaScript',
113
113
  supported: (async () => 'ComputePressureObserver' in self)(),
114
114
  featureDetection: `(async () => 'ComputePressureObserver' in self)()`,
@@ -118,7 +118,7 @@ const patterns = {
118
118
  chromeStatusID: 5597608644968448,
119
119
  },
120
120
  'Contact Picker': {
121
- regEx: /navigator\.contacts\.select\s*\(/g,
121
+ regEx: /\bnavigator\.contacts\.select\s*\(/g,
122
122
  where: 'JavaScript',
123
123
  supported: (async () => 'contacts' in navigator)(),
124
124
  featureDetection: `(async () => 'contacts' in navigator)()`,
@@ -127,7 +127,7 @@ const patterns = {
127
127
  chromeStatusID: 6511327140904960,
128
128
  },
129
129
  'Content Index': {
130
- regEx: /index\.getAll\s*\(/g,
130
+ regEx: /\bindex\.getAll\s*\(/g,
131
131
  where: 'JavaScript',
132
132
  supported: (async () =>
133
133
  'serviceWorker' in navigator &&
@@ -140,7 +140,7 @@ const patterns = {
140
140
  chromeStatusID: 5658416729030656,
141
141
  },
142
142
  'Credential Management': {
143
- regEx: /navigator\.credentials\.get\s*\(/g,
143
+ regEx: /\bnavigator\.credentials\.get\s*\(/g,
144
144
  where: 'JavaScript',
145
145
  supported: (async () => 'credentials' in navigator)(),
146
146
  featureDetection: `(async () => 'credentials' in navigator)()`,
@@ -150,7 +150,7 @@ const patterns = {
150
150
  chromeStatusID: 5026422640869376,
151
151
  },
152
152
  'Device Memory': {
153
- regEx: /navigator\.deviceMemory/g,
153
+ regEx: /\bnavigator\.deviceMemory/g,
154
154
  where: 'JavaScript',
155
155
  supported: (async () => 'deviceMemory' in navigator)(),
156
156
  featureDetection: `(async () => 'deviceMemory' in navigator)()`,
@@ -160,7 +160,7 @@ const patterns = {
160
160
  chromeStatusID: 5119701235531776,
161
161
  },
162
162
  'Device Posture': {
163
- regEx: /navigator\.devicePosture/g,
163
+ regEx: /\bnavigator\.devicePosture/g,
164
164
  where: 'JavaScript',
165
165
  supported: (async () => 'devicePosture' in navigator)(),
166
166
  featureDetection: `(async () => 'devicePosture' in navigator)()`,
@@ -170,7 +170,7 @@ const patterns = {
170
170
  chromeStatusID: 5185813744975872,
171
171
  },
172
172
  'Digital Goods': {
173
- regEx: /getDigitalGoodsService\s*\(/g,
173
+ regEx: /\bgetDigitalGoodsService\s*\(/g,
174
174
  where: 'JavaScript',
175
175
  supported: (async () => 'getDigitalGoodsService' in self)(),
176
176
  featureDetection: `(async () => 'getDigitalGoodsService' in self)()`,
@@ -180,7 +180,7 @@ const patterns = {
180
180
  chromeStatusID: 5339955595313152,
181
181
  },
182
182
  'EyeDropper': {
183
- regEx: /new\s+EyeDropper\s*\(\)/g,
183
+ regEx: /\bnew\s+EyeDropper\s*\(\)/g,
184
184
  where: 'JavaScript',
185
185
  supported: (async () => 'EyeDropper' in self)(),
186
186
  featureDetection: `(async () => 'EyeDropper' in self)()`,
@@ -199,7 +199,7 @@ const patterns = {
199
199
  chromeStatusID: 5721776357113856,
200
200
  },
201
201
  'File System Observer': {
202
- regEx: /new\s+FileSystemObserver\s*\(/g,
202
+ regEx: /\bnew\s+FileSystemObserver\s*\(/g,
203
203
  where: 'JavaScript',
204
204
  supported: (async () => 'FileSystemObserver' in self)(),
205
205
  featureDetection: `(async () => 'FileSystemObserver' in self)()`,
@@ -210,7 +210,7 @@ const patterns = {
210
210
  },
211
211
  'File System Access': {
212
212
  regEx:
213
- /showOpenFilePicker\s*\(|showSaveFilePicker\s*\(|showDirectoryPicker\s*\(/g,
213
+ /\bshowOpenFilePicker\s*\(|showSaveFilePicker\s*\(|showDirectoryPicker\s*\(/g,
214
214
  where: 'JavaScript',
215
215
  supported: (async () => 'showOpenFilePicker' in self)(),
216
216
  featureDetection: `(async () => 'showOpenFilePicker' in self)()`,
@@ -219,7 +219,7 @@ const patterns = {
219
219
  chromeStatusID: 6284708426022912,
220
220
  },
221
221
  'Gamepad': {
222
- regEx: /navigator\.getGamepads\s*\(/g,
222
+ regEx: /\bnavigator\.getGamepads\s*\(/g,
223
223
  where: 'JavaScript',
224
224
  supported: (async () => 'getGamepads' in navigator)(),
225
225
  featureDetection: `(async () => 'getGamepads' in navigator)()`,
@@ -228,7 +228,7 @@ const patterns = {
228
228
  chromeStatusID: 5118776383111168,
229
229
  },
230
230
  'getInstalledRelatedApps': {
231
- regEx: /navigator\.getInstalledRelatedApps\s*\(/g,
231
+ regEx: /\bnavigator\.getInstalledRelatedApps\s*\(/g,
232
232
  where: 'JavaScript',
233
233
  supported: (async () => 'getInstalledRelatedApps' in navigator)(),
234
234
  featureDetection: `(async () => 'getInstalledRelatedApps' in navigator)()`,
@@ -237,7 +237,7 @@ const patterns = {
237
237
  chromeStatusID: 5695378309513216,
238
238
  },
239
239
  'Gravity Sensor': {
240
- regEx: /new\s+GravitySensor\s*\(/g,
240
+ regEx: /\bnew\s+GravitySensor\s*\(/g,
241
241
  where: 'JavaScript',
242
242
  supported: (async () => 'GravitySensor' in self)(),
243
243
  featureDetection: `(async () => 'GravitySensor' in self)()`,
@@ -246,7 +246,7 @@ const patterns = {
246
246
  chromeStatusID: 5384099747332096,
247
247
  },
248
248
  'Gyroscope': {
249
- regEx: /new\s+Gyroscope\s*\(/g,
249
+ regEx: /\bnew\s+Gyroscope\s*\(/g,
250
250
  where: 'JavaScript',
251
251
  supported: (async () => 'Gyroscope' in self)(),
252
252
  featureDetection: `(async () => 'Gyroscope' in self)()`,
@@ -255,7 +255,7 @@ const patterns = {
255
255
  chromeStatusID: 5698781827825664,
256
256
  },
257
257
  'Handwriting Recognition': {
258
- regEx: /navigator\.queryHandwritingRecognizerSupport\s*\(/g,
258
+ regEx: /\bnavigator\.queryHandwritingRecognizerSupport\s*\(/g,
259
259
  where: 'JavaScript',
260
260
  supported: (async () => 'queryHandwritingRecognizerSupport' in navigator)(),
261
261
  featureDetection: `(async () => 'queryHandwritingRecognizerSupport' in navigator)()`,
@@ -275,7 +275,7 @@ const patterns = {
275
275
  chromeStatusID: 5720648543371264,
276
276
  },
277
277
  'Idle Detection': {
278
- regEx: /new\s+IdleDetector\s*\(/g,
278
+ regEx: /\bnew\s+IdleDetector\s*\(/g,
279
279
  where: 'JavaScript',
280
280
  supported: (async () => 'IdleDetector' in self)(),
281
281
  featureDetection: `(async () => 'IdleDetector' in self)()`,
@@ -284,7 +284,7 @@ const patterns = {
284
284
  chromeStatusID: 4590256452009984,
285
285
  },
286
286
  'Ink': {
287
- regEx: /navigator\.ink\.requestPresenter\s*\(/g,
287
+ regEx: /\bnavigator\.ink\.requestPresenter\s*\(/g,
288
288
  where: 'JavaScript',
289
289
  supported: (async () => 'ink' in navigator)(),
290
290
  featureDetection: `(async () => 'ink' in navigator)()`,
@@ -294,7 +294,7 @@ const patterns = {
294
294
  chromeStatusID: 5961434129235968,
295
295
  },
296
296
  'Insertable streams for MediaStreamTrack': {
297
- regEx: /MediaStreamTrackProcessor\s*\(/g,
297
+ regEx: /\bMediaStreamTrackProcessor\s*\(/g,
298
298
  where: 'JavaScript',
299
299
  supported: (async () =>
300
300
  'MediaStreamTrackProcessor' in self &&
@@ -317,7 +317,7 @@ const patterns = {
317
317
  chromeStatusID: 5722383233056768,
318
318
  },
319
319
  'Linear Acceleration Sensor': {
320
- regEx: /new\s+LinearAccelerationSensor\s*\(/g,
320
+ regEx: /\bnew\s+LinearAccelerationSensor\s*\(/g,
321
321
  where: 'JavaScript',
322
322
  supported: (async () => 'LinearAccelerationSensor' in self)(),
323
323
  featureDetection: `(async () => 'LinearAccelerationSensor' in self)()`,
@@ -326,7 +326,7 @@ const patterns = {
326
326
  chromeStatusID: 5698781827825664,
327
327
  },
328
328
  'Local Font Access': {
329
- regEx: /queryLocalFonts\s*\(/g,
329
+ regEx: /\bqueryLocalFonts\s*\(/g,
330
330
  where: 'JavaScript',
331
331
  supported: (async () => 'queryLocalFonts' in self)(),
332
332
  featureDetection: `(async () => 'queryLocalFonts' in self)()`,
@@ -335,7 +335,7 @@ const patterns = {
335
335
  chromeStatusID: 6234451761692672,
336
336
  },
337
337
  'Magnetometer': {
338
- regEx: /new\s+Magnetometer\s*\(/g,
338
+ regEx: /\bnew\s+Magnetometer\s*\(/g,
339
339
  where: 'JavaScript',
340
340
  supported: (async () => 'Magnetometer' in self)(),
341
341
  featureDetection: `(async () => 'Magnetometer' in self)()`,
@@ -344,7 +344,7 @@ const patterns = {
344
344
  chromeStatusID: 5698781827825664,
345
345
  },
346
346
  'Media Capabilities': {
347
- regEx: /navigator\.mediaCapabilities\.decodingInfo\s*\(/g,
347
+ regEx: /\bnavigator\.mediaCapabilities\.decodingInfo\s*\(/g,
348
348
  where: 'JavaScript',
349
349
  supported: (async () => 'mediaCapabilities' in navigator)(),
350
350
  featureDetection: `(async () => 'mediaCapabilities' in navigator)()`,
@@ -355,7 +355,7 @@ const patterns = {
355
355
  },
356
356
  'Media Session': {
357
357
  regEx:
358
- /navigator\.mediaSession\.setActionHandler|navigator\.mediaSession\.metadata/g,
358
+ /\bnavigator\.mediaSession\.setActionHandler|navigator\.mediaSession\.metadata/g,
359
359
  where: 'JavaScript',
360
360
  supported: (async () => 'mediaSession' in navigator)(),
361
361
  featureDetection: `(async () => 'mediaSession' in navigator)()`,
@@ -365,7 +365,7 @@ const patterns = {
365
365
  chromeStatusID: 5639924124483584,
366
366
  },
367
367
  'Window Management': {
368
- regEx: /getScreenDetails\s*\(\)/g,
368
+ regEx: /\bgetScreenDetails\s*\(\)/g,
369
369
  where: 'JavaScript',
370
370
  supported: (async () => 'getScreenDetails' in self)(),
371
371
  featureDetection: `(async () => 'getScreenDetails' in self)()`,
@@ -387,7 +387,7 @@ const patterns = {
387
387
  chromeStatusID: 5734842339688448,
388
388
  },
389
389
  'Origin Private File System': {
390
- regEx: /navigator\.storage\.getDirectory\s*\(\)/g,
390
+ regEx: /\bnavigator\.storage\.getDirectory\s*\(\)/g,
391
391
  where: 'JavaScript',
392
392
  supported: (async () =>
393
393
  'StorageManager' in self && 'getDirectory' in StorageManager.prototype)(),
@@ -406,7 +406,7 @@ const patterns = {
406
406
  chromeStatusID: 5160285237149696,
407
407
  },
408
408
  'Payment Request': {
409
- regEx: /new\s+PaymentRequest\s*\(/g,
409
+ regEx: /\bnew\s+PaymentRequest\s*\(/g,
410
410
  where: 'JavaScript',
411
411
  supported: (async () => 'PaymentRequest' in self)(),
412
412
  featureDetection: `(async () => 'PaymentRequest' in self)()`,
@@ -416,7 +416,7 @@ const patterns = {
416
416
  chromeStatusID: 5639348045217792,
417
417
  },
418
418
  'Periodic Background Sync': {
419
- regEx: /periodicSync\.register\s*\(/g,
419
+ regEx: /\bperiodicSync\.register\s*\(/g,
420
420
  where: 'JavaScript',
421
421
  supported: (async () => 'PeriodicSyncManager' in self)(),
422
422
  featureDetection: `(async () => 'PeriodicSyncManager' in self)()`,
@@ -426,7 +426,7 @@ const patterns = {
426
426
  chromeStatusID: 5689383275462656,
427
427
  },
428
428
  'Persistent Storage': {
429
- regEx: /navigator\.storage\.persist\s*\(\)/g,
429
+ regEx: /\bnavigator\.storage\.persist\s*\(\)/g,
430
430
  where: 'JavaScript',
431
431
  supported: (async () =>
432
432
  'storage' in navigator && 'persist' in navigator.storage)(),
@@ -437,7 +437,7 @@ const patterns = {
437
437
  chromeStatusID: 5715811364765696,
438
438
  },
439
439
  'Storage Buckets': {
440
- regEx: /navigator\.storageBuckets\.open\s*\(/g,
440
+ regEx: /\bnavigator\.storageBuckets\.open\s*\(/g,
441
441
  where: 'JavaScript',
442
442
  supported: (async () => 'storageBuckets' in navigator)(),
443
443
  featureDetection: `(async () => 'storageBuckets' in navigator)()`,
@@ -446,7 +446,7 @@ const patterns = {
446
446
  chromeStatusID: 5739224579964928,
447
447
  },
448
448
  'Pointer Lock (unadjustedMovement)': {
449
- regEx: /unadjustedMovement\s*:\s*/g,
449
+ regEx: /\bunadjustedMovement\s*:\s*/g,
450
450
  where: 'JavaScript',
451
451
  supported: (async () =>
452
452
  'HTMLParagraphElement' in self
@@ -488,7 +488,7 @@ const patterns = {
488
488
  chromeStatusID: 5416033485586432,
489
489
  },
490
490
  'Relative Orientation Sensor': {
491
- regEx: /new\s+RelativeOrientationSensor\s*\(/g,
491
+ regEx: /\bnew\s+RelativeOrientationSensor\s*\(/g,
492
492
  where: 'JavaScript',
493
493
  supported: (async () => 'RelativeOrientationSensor' in self)(),
494
494
  featureDetection: `(async () => 'RelativeOrientationSensor' in self)()`,
@@ -497,7 +497,7 @@ const patterns = {
497
497
  chromeStatusID: 5698781827825664,
498
498
  },
499
499
  'Screen Wake Lock': {
500
- regEx: /navigator\.wakeLock\.request\s*\(/g,
500
+ regEx: /\bnavigator\.wakeLock\.request\s*\(/g,
501
501
  where: 'JavaScript',
502
502
  supported: (async () => 'wakeLock' in navigator)(),
503
503
  featureDetection: `(async () => 'wakeLock' in navigator)()`,
@@ -506,7 +506,7 @@ const patterns = {
506
506
  chromeStatusID: 4636879949398016,
507
507
  },
508
508
  'Service Worker': {
509
- regEx: /navigator\.serviceWorker\.register\s*\(/g,
509
+ regEx: /\bnavigator\.serviceWorker\.register\s*\(/g,
510
510
  where: 'JavaScript',
511
511
  supported: (async () => 'serviceWorker' in navigator)(),
512
512
  featureDetection: `(async () => 'serviceWorker' in navigator)()`,
@@ -516,7 +516,7 @@ const patterns = {
516
516
  chromeStatusID: 6561526227927040,
517
517
  },
518
518
  'Shape Detection (Barcodes)': {
519
- regEx: /new\s+BarcodeDetector\s*\(/g,
519
+ regEx: /\bnew\s+BarcodeDetector\s*\(/g,
520
520
  where: 'JavaScript',
521
521
  supported: (async () => 'BarcodeDetector' in self)(),
522
522
  featureDetection: `(async () => 'BarcodeDetector' in self)()`,
@@ -525,7 +525,7 @@ const patterns = {
525
525
  chromeStatusID: 4757990523535360,
526
526
  },
527
527
  'Shape Detection (Faces)': {
528
- regEx: /new\s+FaceDetector\s*\(/g,
528
+ regEx: /\bnew\s+FaceDetector\s*\(/g,
529
529
  where: 'JavaScript',
530
530
  supported: (async () => 'FaceDetector' in self)(),
531
531
  featureDetection: `(async () => 'FaceDetector' in self)()`,
@@ -534,7 +534,7 @@ const patterns = {
534
534
  chromeStatusID: 5678216012365824,
535
535
  },
536
536
  'Shape Detection (Texts)': {
537
- regEx: /new\s+TextDetector\s*\(/g,
537
+ regEx: /\bnew\s+TextDetector\s*\(/g,
538
538
  where: 'JavaScript',
539
539
  supported: (async () => 'TextDetector' in self)(),
540
540
  featureDetection: `(async () => 'TextDetector' in self)()`,
@@ -552,7 +552,7 @@ const patterns = {
552
552
  chromeStatusID: 5706099464339456,
553
553
  },
554
554
  'Storage Estimation': {
555
- regEx: /navigator\.storage\.estimate\s*\(\)/g,
555
+ regEx: /\bnavigator\.storage\.estimate\s*\(\)/g,
556
556
  where: 'JavaScript',
557
557
  supported: (async () =>
558
558
  'storage' in navigator && 'estimate' in navigator.storage)(),
@@ -572,7 +572,7 @@ const patterns = {
572
572
  chromeStatusID: 5128143454076928,
573
573
  },
574
574
  'VirtualKeyboard': {
575
- regEx: /navigator\.virtualKeyboard/g,
575
+ regEx: /\bnavigator\.virtualKeyboard/g,
576
576
  where: 'JavaScript',
577
577
  supported: (async () => 'virtualKeyboard' in navigator)(),
578
578
  featureDetection: `(async () => 'virtualKeyboard' in navigator)()`,
@@ -592,7 +592,7 @@ const patterns = {
592
592
  chromeStatusID: 5740751225880576,
593
593
  },
594
594
  'Web Audio': {
595
- regEx: /new\s+AudioContext\s*\(/g,
595
+ regEx: /\bnew\s+AudioContext\s*\(/g,
596
596
  where: 'JavaScript',
597
597
  supported: (async () => 'AudioContext' in self)(),
598
598
  featureDetection: `(async () => 'AudioContext' in self)()`,
@@ -602,7 +602,7 @@ const patterns = {
602
602
  chromeStatusID: 6261718720184320,
603
603
  },
604
604
  'Web Share': {
605
- regEx: /navigator\.share\s*\(/g,
605
+ regEx: /\bnavigator\.share\s*\(/g,
606
606
  where: 'JavaScript',
607
607
  supported: (async () => 'share' in navigator)(),
608
608
  featureDetection: `(async () => 'share' in navigator)()`,
@@ -611,7 +611,7 @@ const patterns = {
611
611
  chromeStatusID: 5668769141620736,
612
612
  },
613
613
  'Web Share (Files)': {
614
- regEx: /navigator\.canShare\s*\(/g,
614
+ regEx: /\bnavigator\.canShare\s*\(/g,
615
615
  where: 'JavaScript',
616
616
  supported: (async () => 'canShare' in navigator)(),
617
617
  featureDetection: `(async () => 'canShare' in navigator)()`,
@@ -638,7 +638,7 @@ const patterns = {
638
638
  chromeStatusID: 6124071381106688,
639
639
  },
640
640
  'Web Bluetooth': {
641
- regEx: /navigator\.bluetooth\.requestDevice\s*\(/g,
641
+ regEx: /\bnavigator\.bluetooth\.requestDevice\s*\(/g,
642
642
  where: 'JavaScript',
643
643
  supported: (async () => 'bluetooth' in navigator)(),
644
644
  featureDetection: `(async () => 'bluetooth' in navigator)()`,
@@ -647,7 +647,7 @@ const patterns = {
647
647
  chromeStatusID: 5264933985976320,
648
648
  },
649
649
  'WebCodecs': {
650
- regEx: /new\s+MediaStreamTrackProcessor\s*\(/g,
650
+ regEx: /\bnew\s+MediaStreamTrackProcessor\s*\(/g,
651
651
  where: 'JavaScript',
652
652
  supported: (async () => 'MediaStreamTrackProcessor' in self)(),
653
653
  featureDetection: `(async () => 'MediaStreamTrackProcessor' in self)()`,
@@ -656,7 +656,7 @@ const patterns = {
656
656
  chromeStatusID: 5669293909868544,
657
657
  },
658
658
  'WebGPU': {
659
- regEx: /navigator\.gpu\.requestAdapter\s*\(/g,
659
+ regEx: /\bnavigator\.gpu\.requestAdapter\s*\(/g,
660
660
  where: 'JavaScript',
661
661
  supported: (async () => 'gpu' in navigator)(),
662
662
  featureDetection: `(async () => 'gpu' in navigator)()`,
@@ -665,7 +665,7 @@ const patterns = {
665
665
  chromeStatusID: 6213121689518080,
666
666
  },
667
667
  'WebHID': {
668
- regEx: /navigator\.hid\.requestDevice\s*\(/g,
668
+ regEx: /\bnavigator\.hid\.requestDevice\s*\(/g,
669
669
  where: 'JavaScript',
670
670
  supported: (async () => 'hid' in navigator)(),
671
671
  featureDetection: `(async () => 'hid' in navigator)()`,
@@ -674,7 +674,7 @@ const patterns = {
674
674
  chromeStatusID: 5172464636133376,
675
675
  },
676
676
  'Web MIDI': {
677
- regEx: /navigator\.requestMIDIAccess\s*\(/g,
677
+ regEx: /\bnavigator\.requestMIDIAccess\s*\(/g,
678
678
  where: 'JavaScript',
679
679
  supported: (async () => 'requestMIDIAccess' in navigator)(),
680
680
  featureDetection: `(async () => 'requestMIDIAccess' in navigator)()`,
@@ -684,7 +684,7 @@ const patterns = {
684
684
  chromeStatusID: 4923613069180928,
685
685
  },
686
686
  'Web NFC': {
687
- regEx: /new\s+NDEFReader\s*\(/g,
687
+ regEx: /\bnew\s+NDEFReader\s*\(/g,
688
688
  where: 'JavaScript',
689
689
  supported: (async () => 'NDEFReader' in self)(),
690
690
  featureDetection: `(async () => 'NDEFReader' in self)()`,
@@ -693,7 +693,7 @@ const patterns = {
693
693
  chromeStatusID: 6261030015467520,
694
694
  },
695
695
  'WebOTP': {
696
- regEx: /transport\s*:\s*\[["']sms["']\]/g,
696
+ regEx: /\btransport\s*:\s*\[["']sms["']\]/g,
697
697
  where: 'JavaScript',
698
698
  supported: (async () => 'OTPCredential' in self)(),
699
699
  featureDetection: `(async () => 'OTPCredential' in self)()`,
@@ -702,7 +702,7 @@ const patterns = {
702
702
  chromeStatusID: 5873577578463232,
703
703
  },
704
704
  'Web Serial': {
705
- regEx: /navigator\.serial\.requestPort\s*\(/g,
705
+ regEx: /\bnavigator\.serial\.requestPort\s*\(/g,
706
706
  where: 'JavaScript',
707
707
  supported: (async () => 'serial' in navigator)(),
708
708
  featureDetection: `(async () => 'serial' in navigator)()`,
@@ -711,7 +711,7 @@ const patterns = {
711
711
  chromeStatusID: 6577673212002304,
712
712
  },
713
713
  'WebSocketStream': {
714
- regEx: /new\s+WebSocketStream\s*\(/g,
714
+ regEx: /\bnew\s+WebSocketStream\s*\(/g,
715
715
  where: 'JavaScript',
716
716
  supported: (async () => 'WebSocketStream' in self)(),
717
717
  featureDetection: `(async () => 'WebSocketStream' in self)()`,
@@ -720,7 +720,7 @@ const patterns = {
720
720
  chromeStatusID: 5189728691290112,
721
721
  },
722
722
  'WebTransport': {
723
- regEx: /new\s+WebTransport\s*\(/g,
723
+ regEx: /\bnew\s+WebTransport\s*\(/g,
724
724
  where: 'JavaScript',
725
725
  supported: (async () => 'WebTransport' in self)(),
726
726
  featureDetection: `(async () => 'WebTransport' in self)()`,
@@ -729,7 +729,7 @@ const patterns = {
729
729
  chromeStatusID: 4854144902889472,
730
730
  },
731
731
  'WebUSB': {
732
- regEx: /navigator\.usb\.requestDevice\s*\(/g,
732
+ regEx: /\bnavigator\.usb\.requestDevice\s*\(/g,
733
733
  where: 'JavaScript',
734
734
  supported: (async () => 'usb' in navigator)(),
735
735
  featureDetection: `(async () => 'usb' in navigator)()`,
@@ -747,7 +747,7 @@ const patterns = {
747
747
  chromeStatusID: 5741247866077184,
748
748
  },
749
749
  'Prompt': {
750
- regEx: /LanguageModel\.create\s*\(/g,
750
+ regEx: /\bLanguageModel\.create\s*\(/g,
751
751
  where: 'JavaScript',
752
752
  supported: (async () => 'LanguageModel' in self)(),
753
753
  featureDetection: `(async () => 'LanguageModel' in self)()`,
@@ -756,7 +756,7 @@ const patterns = {
756
756
  chromeStatusID: 5134603979063296,
757
757
  },
758
758
  'Summarizer': {
759
- regEx: /Summarizer\.create\s*\(/g,
759
+ regEx: /\bSummarizer\.create\s*\(/g,
760
760
  where: 'JavaScript',
761
761
  supported: (async () => 'Summarizer' in self)(),
762
762
  featureDetection: `(async () => 'Summarizer' in self)()`,
@@ -765,7 +765,7 @@ const patterns = {
765
765
  chromeStatusID: 5193953788559360,
766
766
  },
767
767
  'Writer': {
768
- regEx: /Writer\.create\s*\(/g,
768
+ regEx: /\bWriter\.create\s*\(/g,
769
769
  where: 'JavaScript',
770
770
  supported: (async () => 'Writer' in self)(),
771
771
  featureDetection: `(async () => 'Writer' in self)()`,
@@ -774,7 +774,7 @@ const patterns = {
774
774
  chromeStatusID: 4712595362414592,
775
775
  },
776
776
  'Rewriter': {
777
- regEx: /Rewriter\.create\s*\(/g,
777
+ regEx: /\bRewriter\.create\s*\(/g,
778
778
  where: 'JavaScript',
779
779
  supported: (async () => 'Rewriter' in self)(),
780
780
  featureDetection: `(async () => 'Rewriter' in self)()`,
@@ -783,7 +783,7 @@ const patterns = {
783
783
  chromeStatusID: 5112320150470656,
784
784
  },
785
785
  'Proofreader': {
786
- regEx: /Proofreader\.create\s*\(/g,
786
+ regEx: /\bProofreader\.create\s*\(/g,
787
787
  where: 'JavaScript',
788
788
  supported: (async () => 'Proofreader' in self)(),
789
789
  featureDetection: `(async () => 'Proofreader' in self)()`,
@@ -792,7 +792,7 @@ const patterns = {
792
792
  chromeStatusID: 5164677291835392,
793
793
  },
794
794
  'Translator': {
795
- regEx: /Translator\.create\s*\(/g,
795
+ regEx: /\bTranslator\.create\s*\(/g,
796
796
  where: 'JavaScript',
797
797
  supported: (async () => 'Translator' in self)(),
798
798
  featureDetection: `(async () => 'Translator' in self)()`,
@@ -801,7 +801,7 @@ const patterns = {
801
801
  chromeStatusID: 5172811302961152,
802
802
  },
803
803
  'LanguageDetector': {
804
- regEx: /LanguageDetector\.create\s*\(/g,
804
+ regEx: /\bLanguageDetector\.create\s*\(/g,
805
805
  where: 'JavaScript',
806
806
  supported: (async () => 'LanguageDetector' in self)(),
807
807
  featureDetection: `(async () => 'LanguageDetector' in self)()`,
package/patterns.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  'Absolute Orientation Sensor': {
3
- regEx: /new\s+AbsoluteOrientationSensor\s*\(/g,
3
+ regEx: /\bnew\s+AbsoluteOrientationSensor\s*\(/g,
4
4
  where: 'JavaScript',
5
5
  supported: (async () => 'AbsoluteOrientationSensor' in self)(),
6
6
  featureDetection: `(async () => 'AbsoluteOrientationSensor' in self)()`,
@@ -9,7 +9,7 @@ export default {
9
9
  chromeStatusID: 5698781827825664,
10
10
  },
11
11
  'Accelerometer': {
12
- regEx: /new\s+Accelerometer\s*\(/g,
12
+ regEx: /\bnew\s+Accelerometer\s*\(/g,
13
13
  where: 'JavaScript',
14
14
  supported: (async () => 'Accelerometer' in self)(),
15
15
  featureDetection: `(async () => 'Accelerometer' in self)()`,
@@ -28,7 +28,7 @@ export default {
28
28
  chromeStatusID: 6560913322672128,
29
29
  },
30
30
  'Ambient Light Sensor': {
31
- regEx: /new\s+AmbientLightSensor\s*\(\)/g,
31
+ regEx: /\bnew\s+AmbientLightSensor\s*\(\)/g,
32
32
  where: 'JavaScript',
33
33
  supported: (async () => 'AmbientLightSensor' in self)(),
34
34
  featureDetection: `(async () => 'AmbientLightSensor' in self)()`,
@@ -37,7 +37,7 @@ export default {
37
37
  chromeStatusID: 5298357018820608,
38
38
  },
39
39
  'Async Clipboard': {
40
- regEx: /navigator\.clipboard\.writeText\s*\(/g,
40
+ regEx: /\bnavigator\.clipboard\.writeText\s*\(/g,
41
41
  where: 'JavaScript',
42
42
  supported: (async () =>
43
43
  'clipboard' in navigator && 'writeText' in navigator.clipboard)(),
@@ -47,7 +47,7 @@ export default {
47
47
  chromeStatusID: 5861289330999296,
48
48
  },
49
49
  'Async Clipboard (Images)': {
50
- regEx: /navigator\.clipboard\.write\s*\(/g,
50
+ regEx: /\bnavigator\.clipboard\.write\s*\(/g,
51
51
  where: 'JavaScript',
52
52
  supported: (async () =>
53
53
  'clipboard' in navigator && 'write' in navigator.clipboard)(),
@@ -80,7 +80,7 @@ export default {
80
80
  chromeStatusID: 6170807885627392,
81
81
  },
82
82
  'Badging': {
83
- regEx: /navigator\.setAppBadge\s*\(/g,
83
+ regEx: /\bnavigator\.setAppBadge\s*\(/g,
84
84
  where: 'JavaScript',
85
85
  supported: (async () => 'setAppBadge' in navigator)(),
86
86
  featureDetection: `(async () => 'setAppBadge' in navigator)()`,
@@ -89,7 +89,7 @@ export default {
89
89
  chromeStatusID: 6068482055602176,
90
90
  },
91
91
  'Cache Storage': {
92
- regEx: /caches\.open\s*\(/g,
92
+ regEx: /\bcaches\.open\s*\(/g,
93
93
  where: 'JavaScript',
94
94
  supported: (async () => 'serviceWorker' in navigator && 'caches' in self)(),
95
95
  featureDetection: `(async () => 'serviceWorker' in navigator && 'caches' in self)()`,
@@ -99,7 +99,7 @@ export default {
99
99
  chromeStatusID: 6461631328419840,
100
100
  },
101
101
  'Compression Streams': {
102
- regEx: /new\s+CompressionStream\s*\(/g,
102
+ regEx: /\bnew\s+CompressionStream\s*\(/g,
103
103
  where: 'JavaScript',
104
104
  supported: (async () => 'CompressionStream' in self)(),
105
105
  featureDetection: `(async () => 'CompressionStream' in self)()`,
@@ -108,7 +108,7 @@ export default {
108
108
  chromeStatusID: 5855937971617792,
109
109
  },
110
110
  'Compute Pressure': {
111
- regEx: /new\s+ComputePressureObserver\s*\(/g,
111
+ regEx: /\bnew\s+ComputePressureObserver\s*\(/g,
112
112
  where: 'JavaScript',
113
113
  supported: (async () => 'ComputePressureObserver' in self)(),
114
114
  featureDetection: `(async () => 'ComputePressureObserver' in self)()`,
@@ -118,7 +118,7 @@ export default {
118
118
  chromeStatusID: 5597608644968448,
119
119
  },
120
120
  'Contact Picker': {
121
- regEx: /navigator\.contacts\.select\s*\(/g,
121
+ regEx: /\bnavigator\.contacts\.select\s*\(/g,
122
122
  where: 'JavaScript',
123
123
  supported: (async () => 'contacts' in navigator)(),
124
124
  featureDetection: `(async () => 'contacts' in navigator)()`,
@@ -127,7 +127,7 @@ export default {
127
127
  chromeStatusID: 6511327140904960,
128
128
  },
129
129
  'Content Index': {
130
- regEx: /index\.getAll\s*\(/g,
130
+ regEx: /\bindex\.getAll\s*\(/g,
131
131
  where: 'JavaScript',
132
132
  supported: (async () =>
133
133
  'serviceWorker' in navigator &&
@@ -140,7 +140,7 @@ export default {
140
140
  chromeStatusID: 5658416729030656,
141
141
  },
142
142
  'Credential Management': {
143
- regEx: /navigator\.credentials\.get\s*\(/g,
143
+ regEx: /\bnavigator\.credentials\.get\s*\(/g,
144
144
  where: 'JavaScript',
145
145
  supported: (async () => 'credentials' in navigator)(),
146
146
  featureDetection: `(async () => 'credentials' in navigator)()`,
@@ -150,7 +150,7 @@ export default {
150
150
  chromeStatusID: 5026422640869376,
151
151
  },
152
152
  'Device Memory': {
153
- regEx: /navigator\.deviceMemory/g,
153
+ regEx: /\bnavigator\.deviceMemory/g,
154
154
  where: 'JavaScript',
155
155
  supported: (async () => 'deviceMemory' in navigator)(),
156
156
  featureDetection: `(async () => 'deviceMemory' in navigator)()`,
@@ -160,7 +160,7 @@ export default {
160
160
  chromeStatusID: 5119701235531776,
161
161
  },
162
162
  'Device Posture': {
163
- regEx: /navigator\.devicePosture/g,
163
+ regEx: /\bnavigator\.devicePosture/g,
164
164
  where: 'JavaScript',
165
165
  supported: (async () => 'devicePosture' in navigator)(),
166
166
  featureDetection: `(async () => 'devicePosture' in navigator)()`,
@@ -170,7 +170,7 @@ export default {
170
170
  chromeStatusID: 5185813744975872,
171
171
  },
172
172
  'Digital Goods': {
173
- regEx: /getDigitalGoodsService\s*\(/g,
173
+ regEx: /\bgetDigitalGoodsService\s*\(/g,
174
174
  where: 'JavaScript',
175
175
  supported: (async () => 'getDigitalGoodsService' in self)(),
176
176
  featureDetection: `(async () => 'getDigitalGoodsService' in self)()`,
@@ -180,7 +180,7 @@ export default {
180
180
  chromeStatusID: 5339955595313152,
181
181
  },
182
182
  'EyeDropper': {
183
- regEx: /new\s+EyeDropper\s*\(\)/g,
183
+ regEx: /\bnew\s+EyeDropper\s*\(\)/g,
184
184
  where: 'JavaScript',
185
185
  supported: (async () => 'EyeDropper' in self)(),
186
186
  featureDetection: `(async () => 'EyeDropper' in self)()`,
@@ -199,7 +199,7 @@ export default {
199
199
  chromeStatusID: 5721776357113856,
200
200
  },
201
201
  'File System Observer': {
202
- regEx: /new\s+FileSystemObserver\s*\(/g,
202
+ regEx: /\bnew\s+FileSystemObserver\s*\(/g,
203
203
  where: 'JavaScript',
204
204
  supported: (async () => 'FileSystemObserver' in self)(),
205
205
  featureDetection: `(async () => 'FileSystemObserver' in self)()`,
@@ -210,7 +210,7 @@ export default {
210
210
  },
211
211
  'File System Access': {
212
212
  regEx:
213
- /showOpenFilePicker\s*\(|showSaveFilePicker\s*\(|showDirectoryPicker\s*\(/g,
213
+ /\bshowOpenFilePicker\s*\(|showSaveFilePicker\s*\(|showDirectoryPicker\s*\(/g,
214
214
  where: 'JavaScript',
215
215
  supported: (async () => 'showOpenFilePicker' in self)(),
216
216
  featureDetection: `(async () => 'showOpenFilePicker' in self)()`,
@@ -219,7 +219,7 @@ export default {
219
219
  chromeStatusID: 6284708426022912,
220
220
  },
221
221
  'Gamepad': {
222
- regEx: /navigator\.getGamepads\s*\(/g,
222
+ regEx: /\bnavigator\.getGamepads\s*\(/g,
223
223
  where: 'JavaScript',
224
224
  supported: (async () => 'getGamepads' in navigator)(),
225
225
  featureDetection: `(async () => 'getGamepads' in navigator)()`,
@@ -228,7 +228,7 @@ export default {
228
228
  chromeStatusID: 5118776383111168,
229
229
  },
230
230
  'getInstalledRelatedApps': {
231
- regEx: /navigator\.getInstalledRelatedApps\s*\(/g,
231
+ regEx: /\bnavigator\.getInstalledRelatedApps\s*\(/g,
232
232
  where: 'JavaScript',
233
233
  supported: (async () => 'getInstalledRelatedApps' in navigator)(),
234
234
  featureDetection: `(async () => 'getInstalledRelatedApps' in navigator)()`,
@@ -237,7 +237,7 @@ export default {
237
237
  chromeStatusID: 5695378309513216,
238
238
  },
239
239
  'Gravity Sensor': {
240
- regEx: /new\s+GravitySensor\s*\(/g,
240
+ regEx: /\bnew\s+GravitySensor\s*\(/g,
241
241
  where: 'JavaScript',
242
242
  supported: (async () => 'GravitySensor' in self)(),
243
243
  featureDetection: `(async () => 'GravitySensor' in self)()`,
@@ -246,7 +246,7 @@ export default {
246
246
  chromeStatusID: 5384099747332096,
247
247
  },
248
248
  'Gyroscope': {
249
- regEx: /new\s+Gyroscope\s*\(/g,
249
+ regEx: /\bnew\s+Gyroscope\s*\(/g,
250
250
  where: 'JavaScript',
251
251
  supported: (async () => 'Gyroscope' in self)(),
252
252
  featureDetection: `(async () => 'Gyroscope' in self)()`,
@@ -255,7 +255,7 @@ export default {
255
255
  chromeStatusID: 5698781827825664,
256
256
  },
257
257
  'Handwriting Recognition': {
258
- regEx: /navigator\.queryHandwritingRecognizerSupport\s*\(/g,
258
+ regEx: /\bnavigator\.queryHandwritingRecognizerSupport\s*\(/g,
259
259
  where: 'JavaScript',
260
260
  supported: (async () => 'queryHandwritingRecognizerSupport' in navigator)(),
261
261
  featureDetection: `(async () => 'queryHandwritingRecognizerSupport' in navigator)()`,
@@ -275,7 +275,7 @@ export default {
275
275
  chromeStatusID: 5720648543371264,
276
276
  },
277
277
  'Idle Detection': {
278
- regEx: /new\s+IdleDetector\s*\(/g,
278
+ regEx: /\bnew\s+IdleDetector\s*\(/g,
279
279
  where: 'JavaScript',
280
280
  supported: (async () => 'IdleDetector' in self)(),
281
281
  featureDetection: `(async () => 'IdleDetector' in self)()`,
@@ -284,7 +284,7 @@ export default {
284
284
  chromeStatusID: 4590256452009984,
285
285
  },
286
286
  'Ink': {
287
- regEx: /navigator\.ink\.requestPresenter\s*\(/g,
287
+ regEx: /\bnavigator\.ink\.requestPresenter\s*\(/g,
288
288
  where: 'JavaScript',
289
289
  supported: (async () => 'ink' in navigator)(),
290
290
  featureDetection: `(async () => 'ink' in navigator)()`,
@@ -294,7 +294,7 @@ export default {
294
294
  chromeStatusID: 5961434129235968,
295
295
  },
296
296
  'Insertable streams for MediaStreamTrack': {
297
- regEx: /MediaStreamTrackProcessor\s*\(/g,
297
+ regEx: /\bMediaStreamTrackProcessor\s*\(/g,
298
298
  where: 'JavaScript',
299
299
  supported: (async () =>
300
300
  'MediaStreamTrackProcessor' in self &&
@@ -317,7 +317,7 @@ export default {
317
317
  chromeStatusID: 5722383233056768,
318
318
  },
319
319
  'Linear Acceleration Sensor': {
320
- regEx: /new\s+LinearAccelerationSensor\s*\(/g,
320
+ regEx: /\bnew\s+LinearAccelerationSensor\s*\(/g,
321
321
  where: 'JavaScript',
322
322
  supported: (async () => 'LinearAccelerationSensor' in self)(),
323
323
  featureDetection: `(async () => 'LinearAccelerationSensor' in self)()`,
@@ -326,7 +326,7 @@ export default {
326
326
  chromeStatusID: 5698781827825664,
327
327
  },
328
328
  'Local Font Access': {
329
- regEx: /queryLocalFonts\s*\(/g,
329
+ regEx: /\bqueryLocalFonts\s*\(/g,
330
330
  where: 'JavaScript',
331
331
  supported: (async () => 'queryLocalFonts' in self)(),
332
332
  featureDetection: `(async () => 'queryLocalFonts' in self)()`,
@@ -335,7 +335,7 @@ export default {
335
335
  chromeStatusID: 6234451761692672,
336
336
  },
337
337
  'Magnetometer': {
338
- regEx: /new\s+Magnetometer\s*\(/g,
338
+ regEx: /\bnew\s+Magnetometer\s*\(/g,
339
339
  where: 'JavaScript',
340
340
  supported: (async () => 'Magnetometer' in self)(),
341
341
  featureDetection: `(async () => 'Magnetometer' in self)()`,
@@ -344,7 +344,7 @@ export default {
344
344
  chromeStatusID: 5698781827825664,
345
345
  },
346
346
  'Media Capabilities': {
347
- regEx: /navigator\.mediaCapabilities\.decodingInfo\s*\(/g,
347
+ regEx: /\bnavigator\.mediaCapabilities\.decodingInfo\s*\(/g,
348
348
  where: 'JavaScript',
349
349
  supported: (async () => 'mediaCapabilities' in navigator)(),
350
350
  featureDetection: `(async () => 'mediaCapabilities' in navigator)()`,
@@ -355,7 +355,7 @@ export default {
355
355
  },
356
356
  'Media Session': {
357
357
  regEx:
358
- /navigator\.mediaSession\.setActionHandler|navigator\.mediaSession\.metadata/g,
358
+ /\bnavigator\.mediaSession\.setActionHandler|navigator\.mediaSession\.metadata/g,
359
359
  where: 'JavaScript',
360
360
  supported: (async () => 'mediaSession' in navigator)(),
361
361
  featureDetection: `(async () => 'mediaSession' in navigator)()`,
@@ -365,7 +365,7 @@ export default {
365
365
  chromeStatusID: 5639924124483584,
366
366
  },
367
367
  'Window Management': {
368
- regEx: /getScreenDetails\s*\(\)/g,
368
+ regEx: /\bgetScreenDetails\s*\(\)/g,
369
369
  where: 'JavaScript',
370
370
  supported: (async () => 'getScreenDetails' in self)(),
371
371
  featureDetection: `(async () => 'getScreenDetails' in self)()`,
@@ -387,7 +387,7 @@ export default {
387
387
  chromeStatusID: 5734842339688448,
388
388
  },
389
389
  'Origin Private File System': {
390
- regEx: /navigator\.storage\.getDirectory\s*\(\)/g,
390
+ regEx: /\bnavigator\.storage\.getDirectory\s*\(\)/g,
391
391
  where: 'JavaScript',
392
392
  supported: (async () =>
393
393
  'StorageManager' in self && 'getDirectory' in StorageManager.prototype)(),
@@ -406,7 +406,7 @@ export default {
406
406
  chromeStatusID: 5160285237149696,
407
407
  },
408
408
  'Payment Request': {
409
- regEx: /new\s+PaymentRequest\s*\(/g,
409
+ regEx: /\bnew\s+PaymentRequest\s*\(/g,
410
410
  where: 'JavaScript',
411
411
  supported: (async () => 'PaymentRequest' in self)(),
412
412
  featureDetection: `(async () => 'PaymentRequest' in self)()`,
@@ -416,7 +416,7 @@ export default {
416
416
  chromeStatusID: 5639348045217792,
417
417
  },
418
418
  'Periodic Background Sync': {
419
- regEx: /periodicSync\.register\s*\(/g,
419
+ regEx: /\bperiodicSync\.register\s*\(/g,
420
420
  where: 'JavaScript',
421
421
  supported: (async () => 'PeriodicSyncManager' in self)(),
422
422
  featureDetection: `(async () => 'PeriodicSyncManager' in self)()`,
@@ -426,7 +426,7 @@ export default {
426
426
  chromeStatusID: 5689383275462656,
427
427
  },
428
428
  'Persistent Storage': {
429
- regEx: /navigator\.storage\.persist\s*\(\)/g,
429
+ regEx: /\bnavigator\.storage\.persist\s*\(\)/g,
430
430
  where: 'JavaScript',
431
431
  supported: (async () =>
432
432
  'storage' in navigator && 'persist' in navigator.storage)(),
@@ -437,7 +437,7 @@ export default {
437
437
  chromeStatusID: 5715811364765696,
438
438
  },
439
439
  'Storage Buckets': {
440
- regEx: /navigator\.storageBuckets\.open\s*\(/g,
440
+ regEx: /\bnavigator\.storageBuckets\.open\s*\(/g,
441
441
  where: 'JavaScript',
442
442
  supported: (async () => 'storageBuckets' in navigator)(),
443
443
  featureDetection: `(async () => 'storageBuckets' in navigator)()`,
@@ -446,7 +446,7 @@ export default {
446
446
  chromeStatusID: 5739224579964928,
447
447
  },
448
448
  'Pointer Lock (unadjustedMovement)': {
449
- regEx: /unadjustedMovement\s*:\s*/g,
449
+ regEx: /\bunadjustedMovement\s*:\s*/g,
450
450
  where: 'JavaScript',
451
451
  supported: (async () =>
452
452
  'HTMLParagraphElement' in self
@@ -488,7 +488,7 @@ export default {
488
488
  chromeStatusID: 5416033485586432,
489
489
  },
490
490
  'Relative Orientation Sensor': {
491
- regEx: /new\s+RelativeOrientationSensor\s*\(/g,
491
+ regEx: /\bnew\s+RelativeOrientationSensor\s*\(/g,
492
492
  where: 'JavaScript',
493
493
  supported: (async () => 'RelativeOrientationSensor' in self)(),
494
494
  featureDetection: `(async () => 'RelativeOrientationSensor' in self)()`,
@@ -497,7 +497,7 @@ export default {
497
497
  chromeStatusID: 5698781827825664,
498
498
  },
499
499
  'Screen Wake Lock': {
500
- regEx: /navigator\.wakeLock\.request\s*\(/g,
500
+ regEx: /\bnavigator\.wakeLock\.request\s*\(/g,
501
501
  where: 'JavaScript',
502
502
  supported: (async () => 'wakeLock' in navigator)(),
503
503
  featureDetection: `(async () => 'wakeLock' in navigator)()`,
@@ -506,7 +506,7 @@ export default {
506
506
  chromeStatusID: 4636879949398016,
507
507
  },
508
508
  'Service Worker': {
509
- regEx: /navigator\.serviceWorker\.register\s*\(/g,
509
+ regEx: /\bnavigator\.serviceWorker\.register\s*\(/g,
510
510
  where: 'JavaScript',
511
511
  supported: (async () => 'serviceWorker' in navigator)(),
512
512
  featureDetection: `(async () => 'serviceWorker' in navigator)()`,
@@ -516,7 +516,7 @@ export default {
516
516
  chromeStatusID: 6561526227927040,
517
517
  },
518
518
  'Shape Detection (Barcodes)': {
519
- regEx: /new\s+BarcodeDetector\s*\(/g,
519
+ regEx: /\bnew\s+BarcodeDetector\s*\(/g,
520
520
  where: 'JavaScript',
521
521
  supported: (async () => 'BarcodeDetector' in self)(),
522
522
  featureDetection: `(async () => 'BarcodeDetector' in self)()`,
@@ -525,7 +525,7 @@ export default {
525
525
  chromeStatusID: 4757990523535360,
526
526
  },
527
527
  'Shape Detection (Faces)': {
528
- regEx: /new\s+FaceDetector\s*\(/g,
528
+ regEx: /\bnew\s+FaceDetector\s*\(/g,
529
529
  where: 'JavaScript',
530
530
  supported: (async () => 'FaceDetector' in self)(),
531
531
  featureDetection: `(async () => 'FaceDetector' in self)()`,
@@ -534,7 +534,7 @@ export default {
534
534
  chromeStatusID: 5678216012365824,
535
535
  },
536
536
  'Shape Detection (Texts)': {
537
- regEx: /new\s+TextDetector\s*\(/g,
537
+ regEx: /\bnew\s+TextDetector\s*\(/g,
538
538
  where: 'JavaScript',
539
539
  supported: (async () => 'TextDetector' in self)(),
540
540
  featureDetection: `(async () => 'TextDetector' in self)()`,
@@ -552,7 +552,7 @@ export default {
552
552
  chromeStatusID: 5706099464339456,
553
553
  },
554
554
  'Storage Estimation': {
555
- regEx: /navigator\.storage\.estimate\s*\(\)/g,
555
+ regEx: /\bnavigator\.storage\.estimate\s*\(\)/g,
556
556
  where: 'JavaScript',
557
557
  supported: (async () =>
558
558
  'storage' in navigator && 'estimate' in navigator.storage)(),
@@ -572,7 +572,7 @@ export default {
572
572
  chromeStatusID: 5128143454076928,
573
573
  },
574
574
  'VirtualKeyboard': {
575
- regEx: /navigator\.virtualKeyboard/g,
575
+ regEx: /\bnavigator\.virtualKeyboard/g,
576
576
  where: 'JavaScript',
577
577
  supported: (async () => 'virtualKeyboard' in navigator)(),
578
578
  featureDetection: `(async () => 'virtualKeyboard' in navigator)()`,
@@ -592,7 +592,7 @@ export default {
592
592
  chromeStatusID: 5740751225880576,
593
593
  },
594
594
  'Web Audio': {
595
- regEx: /new\s+AudioContext\s*\(/g,
595
+ regEx: /\bnew\s+AudioContext\s*\(/g,
596
596
  where: 'JavaScript',
597
597
  supported: (async () => 'AudioContext' in self)(),
598
598
  featureDetection: `(async () => 'AudioContext' in self)()`,
@@ -602,7 +602,7 @@ export default {
602
602
  chromeStatusID: 6261718720184320,
603
603
  },
604
604
  'Web Share': {
605
- regEx: /navigator\.share\s*\(/g,
605
+ regEx: /\bnavigator\.share\s*\(/g,
606
606
  where: 'JavaScript',
607
607
  supported: (async () => 'share' in navigator)(),
608
608
  featureDetection: `(async () => 'share' in navigator)()`,
@@ -611,7 +611,7 @@ export default {
611
611
  chromeStatusID: 5668769141620736,
612
612
  },
613
613
  'Web Share (Files)': {
614
- regEx: /navigator\.canShare\s*\(/g,
614
+ regEx: /\bnavigator\.canShare\s*\(/g,
615
615
  where: 'JavaScript',
616
616
  supported: (async () => 'canShare' in navigator)(),
617
617
  featureDetection: `(async () => 'canShare' in navigator)()`,
@@ -638,7 +638,7 @@ export default {
638
638
  chromeStatusID: 6124071381106688,
639
639
  },
640
640
  'Web Bluetooth': {
641
- regEx: /navigator\.bluetooth\.requestDevice\s*\(/g,
641
+ regEx: /\bnavigator\.bluetooth\.requestDevice\s*\(/g,
642
642
  where: 'JavaScript',
643
643
  supported: (async () => 'bluetooth' in navigator)(),
644
644
  featureDetection: `(async () => 'bluetooth' in navigator)()`,
@@ -647,7 +647,7 @@ export default {
647
647
  chromeStatusID: 5264933985976320,
648
648
  },
649
649
  'WebCodecs': {
650
- regEx: /new\s+MediaStreamTrackProcessor\s*\(/g,
650
+ regEx: /\bnew\s+MediaStreamTrackProcessor\s*\(/g,
651
651
  where: 'JavaScript',
652
652
  supported: (async () => 'MediaStreamTrackProcessor' in self)(),
653
653
  featureDetection: `(async () => 'MediaStreamTrackProcessor' in self)()`,
@@ -656,7 +656,7 @@ export default {
656
656
  chromeStatusID: 5669293909868544,
657
657
  },
658
658
  'WebGPU': {
659
- regEx: /navigator\.gpu\.requestAdapter\s*\(/g,
659
+ regEx: /\bnavigator\.gpu\.requestAdapter\s*\(/g,
660
660
  where: 'JavaScript',
661
661
  supported: (async () => 'gpu' in navigator)(),
662
662
  featureDetection: `(async () => 'gpu' in navigator)()`,
@@ -665,7 +665,7 @@ export default {
665
665
  chromeStatusID: 6213121689518080,
666
666
  },
667
667
  'WebHID': {
668
- regEx: /navigator\.hid\.requestDevice\s*\(/g,
668
+ regEx: /\bnavigator\.hid\.requestDevice\s*\(/g,
669
669
  where: 'JavaScript',
670
670
  supported: (async () => 'hid' in navigator)(),
671
671
  featureDetection: `(async () => 'hid' in navigator)()`,
@@ -674,7 +674,7 @@ export default {
674
674
  chromeStatusID: 5172464636133376,
675
675
  },
676
676
  'Web MIDI': {
677
- regEx: /navigator\.requestMIDIAccess\s*\(/g,
677
+ regEx: /\bnavigator\.requestMIDIAccess\s*\(/g,
678
678
  where: 'JavaScript',
679
679
  supported: (async () => 'requestMIDIAccess' in navigator)(),
680
680
  featureDetection: `(async () => 'requestMIDIAccess' in navigator)()`,
@@ -684,7 +684,7 @@ export default {
684
684
  chromeStatusID: 4923613069180928,
685
685
  },
686
686
  'Web NFC': {
687
- regEx: /new\s+NDEFReader\s*\(/g,
687
+ regEx: /\bnew\s+NDEFReader\s*\(/g,
688
688
  where: 'JavaScript',
689
689
  supported: (async () => 'NDEFReader' in self)(),
690
690
  featureDetection: `(async () => 'NDEFReader' in self)()`,
@@ -693,7 +693,7 @@ export default {
693
693
  chromeStatusID: 6261030015467520,
694
694
  },
695
695
  'WebOTP': {
696
- regEx: /transport\s*:\s*\[["']sms["']\]/g,
696
+ regEx: /\btransport\s*:\s*\[["']sms["']\]/g,
697
697
  where: 'JavaScript',
698
698
  supported: (async () => 'OTPCredential' in self)(),
699
699
  featureDetection: `(async () => 'OTPCredential' in self)()`,
@@ -702,7 +702,7 @@ export default {
702
702
  chromeStatusID: 5873577578463232,
703
703
  },
704
704
  'Web Serial': {
705
- regEx: /navigator\.serial\.requestPort\s*\(/g,
705
+ regEx: /\bnavigator\.serial\.requestPort\s*\(/g,
706
706
  where: 'JavaScript',
707
707
  supported: (async () => 'serial' in navigator)(),
708
708
  featureDetection: `(async () => 'serial' in navigator)()`,
@@ -711,7 +711,7 @@ export default {
711
711
  chromeStatusID: 6577673212002304,
712
712
  },
713
713
  'WebSocketStream': {
714
- regEx: /new\s+WebSocketStream\s*\(/g,
714
+ regEx: /\bnew\s+WebSocketStream\s*\(/g,
715
715
  where: 'JavaScript',
716
716
  supported: (async () => 'WebSocketStream' in self)(),
717
717
  featureDetection: `(async () => 'WebSocketStream' in self)()`,
@@ -720,7 +720,7 @@ export default {
720
720
  chromeStatusID: 5189728691290112,
721
721
  },
722
722
  'WebTransport': {
723
- regEx: /new\s+WebTransport\s*\(/g,
723
+ regEx: /\bnew\s+WebTransport\s*\(/g,
724
724
  where: 'JavaScript',
725
725
  supported: (async () => 'WebTransport' in self)(),
726
726
  featureDetection: `(async () => 'WebTransport' in self)()`,
@@ -729,7 +729,7 @@ export default {
729
729
  chromeStatusID: 4854144902889472,
730
730
  },
731
731
  'WebUSB': {
732
- regEx: /navigator\.usb\.requestDevice\s*\(/g,
732
+ regEx: /\bnavigator\.usb\.requestDevice\s*\(/g,
733
733
  where: 'JavaScript',
734
734
  supported: (async () => 'usb' in navigator)(),
735
735
  featureDetection: `(async () => 'usb' in navigator)()`,
@@ -747,7 +747,7 @@ export default {
747
747
  chromeStatusID: 5741247866077184,
748
748
  },
749
749
  'Prompt': {
750
- regEx: /LanguageModel\.create\s*\(/g,
750
+ regEx: /\bLanguageModel\.create\s*\(/g,
751
751
  where: 'JavaScript',
752
752
  supported: (async () => 'LanguageModel' in self)(),
753
753
  featureDetection: `(async () => 'LanguageModel' in self)()`,
@@ -756,7 +756,7 @@ export default {
756
756
  chromeStatusID: 5134603979063296,
757
757
  },
758
758
  'Summarizer': {
759
- regEx: /Summarizer\.create\s*\(/g,
759
+ regEx: /\bSummarizer\.create\s*\(/g,
760
760
  where: 'JavaScript',
761
761
  supported: (async () => 'Summarizer' in self)(),
762
762
  featureDetection: `(async () => 'Summarizer' in self)()`,
@@ -765,7 +765,7 @@ export default {
765
765
  chromeStatusID: 5193953788559360,
766
766
  },
767
767
  'Writer': {
768
- regEx: /Writer\.create\s*\(/g,
768
+ regEx: /\bWriter\.create\s*\(/g,
769
769
  where: 'JavaScript',
770
770
  supported: (async () => 'Writer' in self)(),
771
771
  featureDetection: `(async () => 'Writer' in self)()`,
@@ -774,7 +774,7 @@ export default {
774
774
  chromeStatusID: 4712595362414592,
775
775
  },
776
776
  'Rewriter': {
777
- regEx: /Rewriter\.create\s*\(/g,
777
+ regEx: /\bRewriter\.create\s*\(/g,
778
778
  where: 'JavaScript',
779
779
  supported: (async () => 'Rewriter' in self)(),
780
780
  featureDetection: `(async () => 'Rewriter' in self)()`,
@@ -783,7 +783,7 @@ export default {
783
783
  chromeStatusID: 5112320150470656,
784
784
  },
785
785
  'Proofreader': {
786
- regEx: /Proofreader\.create\s*\(/g,
786
+ regEx: /\bProofreader\.create\s*\(/g,
787
787
  where: 'JavaScript',
788
788
  supported: (async () => 'Proofreader' in self)(),
789
789
  featureDetection: `(async () => 'Proofreader' in self)()`,
@@ -792,7 +792,7 @@ export default {
792
792
  chromeStatusID: 5164677291835392,
793
793
  },
794
794
  'Translator': {
795
- regEx: /Translator\.create\s*\(/g,
795
+ regEx: /\bTranslator\.create\s*\(/g,
796
796
  where: 'JavaScript',
797
797
  supported: (async () => 'Translator' in self)(),
798
798
  featureDetection: `(async () => 'Translator' in self)()`,
@@ -801,7 +801,7 @@ export default {
801
801
  chromeStatusID: 5172811302961152,
802
802
  },
803
803
  'LanguageDetector': {
804
- regEx: /LanguageDetector\.create\s*\(/g,
804
+ regEx: /\bLanguageDetector\.create\s*\(/g,
805
805
  where: 'JavaScript',
806
806
  supported: (async () => 'LanguageDetector' in self)(),
807
807
  featureDetection: `(async () => 'LanguageDetector' in self)()`,