@jterrazz/intelligence 4.2.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2819 @@
1
+ import { createRequire } from "node:module";
2
+ import { readFileSync } from "node:fs";
3
+ import path from "node:path";
4
+ import nspell from "nspell";
5
+ //#region src/formatting/clean-ai-text.ts
6
+ const INVISIBLE_CHARS_RE = /[\u00AD\u180E\u200B-\u200C\u200E-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u2069\uFEFF]/g;
7
+ const ASCII_CTRL_RE = /[\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F]/g;
8
+ const SPACE_LIKE_RE = /[\u00A0\u1680\u2000-\u200A\u202F\u205F\u3000]/g;
9
+ const MULTIPLE_SPACES_RE = / {2,}/g;
10
+ const CR_RE = /\r\n?/g;
11
+ const CITATION_RE = / *\(oaicite:\d+\)\{index=\d+\}/g;
12
+ const EM_DASH_SEPARATOR_RE = /\s*[—–―‒]\s*/g;
13
+ const TYPOGRAPHY_REPLACEMENTS = [
14
+ {
15
+ pattern: /[\u2018\u2019\u201A]/g,
16
+ replacement: "'"
17
+ },
18
+ {
19
+ pattern: /[\u201C\u201D\u201E]/g,
20
+ replacement: "\""
21
+ },
22
+ {
23
+ pattern: /\u2026/g,
24
+ replacement: "..."
25
+ },
26
+ {
27
+ pattern: /[\u2022\u25AA-\u25AB\u25B8-\u25B9\u25CF]/g,
28
+ replacement: "-"
29
+ }
30
+ ];
31
+ /**
32
+ * Cleans AI-generated text by removing AI artifacts and normalizing typography.
33
+ *
34
+ * @param text - The text to clean
35
+ * @param options - Cleaning options
36
+ * @returns The cleaned text
37
+ */
38
+ function cleanAiText(text, options = {}) {
39
+ const { normalizeEmDashesToCommas = true, collapseSpaces = true } = options;
40
+ if (!text) return "";
41
+ let result = text;
42
+ result = result.replace(CR_RE, "\n");
43
+ result = result.replace(CITATION_RE, "");
44
+ result = result.normalize("NFKC");
45
+ result = result.replace(INVISIBLE_CHARS_RE, "");
46
+ result = result.replace(ASCII_CTRL_RE, "");
47
+ if (normalizeEmDashesToCommas) result = result.replace(EM_DASH_SEPARATOR_RE, ", ");
48
+ result = result.replace(SPACE_LIKE_RE, " ");
49
+ for (const { pattern, replacement } of TYPOGRAPHY_REPLACEMENTS) result = result.replace(pattern, replacement);
50
+ if (collapseSpaces) result = result.replace(MULTIPLE_SPACES_RE, " ").trim();
51
+ return result;
52
+ }
53
+ //#endregion
54
+ //#region src/formatting/preserved-terms.generated.ts
55
+ /**
56
+ * GENERATED FILE — do not edit, run `npm run generate:terms`.
57
+ *
58
+ * Source: @cspell/dict-companies + @cspell/dict-software-terms, filtered
59
+ * through the `dictionary-en` ambiguity check (see
60
+ * scripts/generate-preserved-terms.ts for the full pipeline).
61
+ *
62
+ * Candidates before ambiguity filter: 3053
63
+ * Excluded as ambiguous (lowercase form is a common English word): 516
64
+ * Kept: 2512
65
+ *
66
+ * Examples of ambiguity exclusions:
67
+ * ADMIN -> "admin" (computing-acronyms.txt)
68
+ * DB -> "db" (computing-acronyms.txt)
69
+ * DRAM -> "dram" (computing-acronyms.txt)
70
+ * RAM -> "ram" (computing-acronyms.txt)
71
+ * REF -> "ref" (computing-acronyms.txt)
72
+ * UHF -> "uhf" (computing-acronyms.txt)
73
+ * WAN -> "wan" (computing-acronyms.txt)
74
+ * ZIP -> "zip" (computing-acronyms.txt)
75
+ * A -> "a" (companies.txt)
76
+ * AD -> "ad" (companies.txt)
77
+ * AT -> "at" (companies.txt)
78
+ * Adobe -> "adobe" (companies.txt)
79
+ */
80
+ const GENERATED_PRESERVED_TERMS = [
81
+ "2GIS",
82
+ "3M",
83
+ "AAA",
84
+ "AAAI",
85
+ "Aachen",
86
+ "Aalto",
87
+ "AAPL",
88
+ "Aarhus",
89
+ "ABB",
90
+ "Abbott",
91
+ "ABBV",
92
+ "AbbVie",
93
+ "ABBYY",
94
+ "Abdulaziz",
95
+ "Abdullah",
96
+ "Aberdeen",
97
+ "ABIOMED",
98
+ "Abios",
99
+ "AbiosGaming",
100
+ "ABMD",
101
+ "ABNF",
102
+ "Accenture",
103
+ "ACFS",
104
+ "Ackermann",
105
+ "ACM",
106
+ "ACS",
107
+ "Activision",
108
+ "ADBE",
109
+ "Adblock",
110
+ "Adecco",
111
+ "Adelaide",
112
+ "AdGuard",
113
+ "ADI",
114
+ "Adidas",
115
+ "ADOT",
116
+ "ADSK",
117
+ "Adsterra",
118
+ "Advanced",
119
+ "AECOM",
120
+ "Aegon",
121
+ "AEON",
122
+ "AES",
123
+ "AES128",
124
+ "Aetna",
125
+ "Aeva",
126
+ "Affero",
127
+ "AFLAC",
128
+ "Agari",
129
+ "AGCO",
130
+ "agentLess",
131
+ "Agilent",
132
+ "Agricole",
133
+ "Ahold",
134
+ "AICPA",
135
+ "Airbnb",
136
+ "Aires",
137
+ "Airgas",
138
+ "Airlines",
139
+ "Airways",
140
+ "Aisin",
141
+ "AK",
142
+ "AKAM",
143
+ "Akamai",
144
+ "Alaska",
145
+ "Albemarle",
146
+ "Alberta",
147
+ "Alcoa",
148
+ "Aldi",
149
+ "Alexandria",
150
+ "Alfresa",
151
+ "ALGN",
152
+ "Alipay",
153
+ "AlixPartners",
154
+ "ALLE",
155
+ "Alleghany",
156
+ "Allegion",
157
+ "Allen",
158
+ "Allergan",
159
+ "Alliant",
160
+ "Allianz",
161
+ "Allstate",
162
+ "Alstom",
163
+ "Altri",
164
+ "Altria",
165
+ "AMAT",
166
+ "Ambientia",
167
+ "Amcor",
168
+ "AMCR",
169
+ "Ameren",
170
+ "America",
171
+ "American",
172
+ "Ameriprise",
173
+ "AmerisourceBergen",
174
+ "AMETEK",
175
+ "Amgen",
176
+ "AMGN",
177
+ "Amherst",
178
+ "Amphenol",
179
+ "AMR",
180
+ "Amsterdam",
181
+ "Amtrack",
182
+ "AMZN",
183
+ "Anadarko",
184
+ "Analytics",
185
+ "Andersons",
186
+ "Andes",
187
+ "Andrews",
188
+ "ANET",
189
+ "Anglo",
190
+ "Anheuser-Busch",
191
+ "Anixter",
192
+ "ANSS",
193
+ "Ansteel",
194
+ "ANSYS",
195
+ "ANTM",
196
+ "Antwerp",
197
+ "Aon",
198
+ "Apache",
199
+ "Apartments",
200
+ "Appetize",
201
+ "Applied",
202
+ "Appointedd",
203
+ "Aprilia",
204
+ "Aptiv",
205
+ "APTV",
206
+ "Aramark",
207
+ "ArcelorMittal",
208
+ "Archer-Daniels-Midland",
209
+ "Argentaria",
210
+ "Arista",
211
+ "Arize",
212
+ "Arizona",
213
+ "Armour",
214
+ "ARNES",
215
+ "Arthur",
216
+ "Arts",
217
+ "arXiv",
218
+ "Asana",
219
+ "Asbury",
220
+ "Ashland",
221
+ "ASLR",
222
+ "Assicurazioni",
223
+ "Associates",
224
+ "Assurances",
225
+ "Assurant",
226
+ "Aston",
227
+ "AstraZeneca",
228
+ "ATAPI",
229
+ "Atlassian",
230
+ "Atmos",
231
+ "ATVI",
232
+ "Auchan",
233
+ "Auckland",
234
+ "Audi",
235
+ "Austin",
236
+ "Australia",
237
+ "Australian",
238
+ "Auto-Owners",
239
+ "autoClose",
240
+ "Autodesk",
241
+ "Autoliv",
242
+ "autoLoader",
243
+ "Automattic",
244
+ "autoMock",
245
+ "autoMocking",
246
+ "autoMocks",
247
+ "AutoNation",
248
+ "autoScroll",
249
+ "autoSpy",
250
+ "AutoZone",
251
+ "AvalonBay",
252
+ "Avery",
253
+ "AVGO",
254
+ "Avis",
255
+ "Avito",
256
+ "Aviv",
257
+ "Aviva",
258
+ "Avnet",
259
+ "Avon",
260
+ "AXA",
261
+ "azureCR",
262
+ "azureRM",
263
+ "azureTools",
264
+ "azureWebsites",
265
+ "Baden-Wurttemberg",
266
+ "BAE",
267
+ "Bahls",
268
+ "Bahn",
269
+ "Bakeries",
270
+ "Baltimore",
271
+ "Banco",
272
+ "Bancorp",
273
+ "Bancshares",
274
+ "Bandung",
275
+ "Bangalore",
276
+ "Bankengruppe",
277
+ "Bankin",
278
+ "Banks",
279
+ "Baosteel",
280
+ "Barbara",
281
+ "Barcelona",
282
+ "Barclays",
283
+ "Barnes",
284
+ "baseAddress",
285
+ "Basecamp",
286
+ "Basel",
287
+ "baseNode",
288
+ "baseObj",
289
+ "basePath",
290
+ "basePtr",
291
+ "BASF",
292
+ "Bauman",
293
+ "Baxter",
294
+ "Bayer",
295
+ "Bazaarvoice",
296
+ "BB",
297
+ "Becton",
298
+ "Beihang",
299
+ "Beijing",
300
+ "Beirut",
301
+ "Belarusian",
302
+ "Belfast",
303
+ "Bemis",
304
+ "Ben",
305
+ "Benefits",
306
+ "Bentley",
307
+ "Bergen",
308
+ "Berkeley",
309
+ "Berkley",
310
+ "Berksfile",
311
+ "Berkshire",
312
+ "Berlin",
313
+ "Bern",
314
+ "Bertelsmann",
315
+ "Bharat",
316
+ "BHP",
317
+ "BIIB",
318
+ "Bilbao",
319
+ "Billiton",
320
+ "Bing",
321
+ "Bio-Rad",
322
+ "Biogen",
323
+ "Biomet",
324
+ "Birmingham",
325
+ "bitCount",
326
+ "Bitly",
327
+ "Bitnami",
328
+ "Bitrate",
329
+ "bitSize",
330
+ "Bjango",
331
+ "BKNG",
332
+ "BlackRock",
333
+ "Blackstone",
334
+ "blahBlah",
335
+ "Bloomberg",
336
+ "Bloomreach",
337
+ "Bluesky",
338
+ "Blueway",
339
+ "BMW",
340
+ "BNP",
341
+ "Boeing",
342
+ "BOM",
343
+ "Bombay",
344
+ "Bonn",
345
+ "Boots",
346
+ "Booz",
347
+ "BorgWarner",
348
+ "Bosch",
349
+ "Boston",
350
+ "bottomLeft",
351
+ "bottomRight",
352
+ "Bouygues",
353
+ "BP",
354
+ "BPCE",
355
+ "Bradesco",
356
+ "Brands",
357
+ "Brandwatch",
358
+ "Brasil",
359
+ "Brazilian",
360
+ "Brewblox",
361
+ "Bridgestone",
362
+ "Bridgewater",
363
+ "Bristol",
364
+ "Bristol-Myers",
365
+ "British",
366
+ "BRK",
367
+ "Broadcom",
368
+ "Broadridge",
369
+ "Brown-Forman",
370
+ "browserConfig",
371
+ "Bruijn",
372
+ "Brunei",
373
+ "Brunswick",
374
+ "Brussels",
375
+ "bSize",
376
+ "BSON",
377
+ "BT",
378
+ "BTN",
379
+ "BTNS",
380
+ "Buenos",
381
+ "bufIndex",
382
+ "bufSize",
383
+ "Bugatti",
384
+ "buildFolder",
385
+ "Bunge",
386
+ "Bunnings",
387
+ "BYOD",
388
+ "bzFile",
389
+ "bzipFile",
390
+ "Cablevision",
391
+ "Cabot",
392
+ "Cadillac",
393
+ "Caesars",
394
+ "Calendly",
395
+ "Calgary",
396
+ "California",
397
+ "Calpine",
398
+ "Caltech",
399
+ "Caltex",
400
+ "Cambridge",
401
+ "Camerfirma",
402
+ "Cameron",
403
+ "Campbell",
404
+ "Camunda",
405
+ "Canada",
406
+ "Canterbury",
407
+ "Capgemini",
408
+ "Capnproto",
409
+ "Cardiff",
410
+ "Caremark",
411
+ "Caribbean",
412
+ "CarMax",
413
+ "Carnegie",
414
+ "Carolina",
415
+ "CARR",
416
+ "Carrefour",
417
+ "Casey's",
418
+ "Caskroom",
419
+ "Castparts",
420
+ "Catalent",
421
+ "categoryName",
422
+ "Cathay",
423
+ "Causely",
424
+ "CBOE",
425
+ "CBRE",
426
+ "CBS",
427
+ "CDATA",
428
+ "CDATASection",
429
+ "CDN",
430
+ "CDNS",
431
+ "CDW",
432
+ "Cegid",
433
+ "CEIP",
434
+ "Celanese",
435
+ "Celgene",
436
+ "Centene",
437
+ "CenterPoint",
438
+ "Centers",
439
+ "Centrica",
440
+ "CenturyLink",
441
+ "Cepton",
442
+ "CERN",
443
+ "Cerner",
444
+ "certId",
445
+ "certStore",
446
+ "Certum",
447
+ "CEST",
448
+ "CEVA",
449
+ "CFE",
450
+ "CFONB",
451
+ "CGA",
452
+ "CH2M",
453
+ "Chalmers",
454
+ "Chambersign",
455
+ "changeDir",
456
+ "changeList",
457
+ "changeLists",
458
+ "Charles",
459
+ "Chartered",
460
+ "ChefDK",
461
+ "ChemChina",
462
+ "Chemicals",
463
+ "Cheng",
464
+ "CHEP",
465
+ "Chesapeake",
466
+ "Chevrolet",
467
+ "Chicago",
468
+ "childNode",
469
+ "Chile",
470
+ "Chinese",
471
+ "Chipotle",
472
+ "Chocolately",
473
+ "Cholesky",
474
+ "Chronosphere",
475
+ "CHRW",
476
+ "Chrysler",
477
+ "CHS",
478
+ "CHTR",
479
+ "Chubb",
480
+ "Chubu",
481
+ "Chulalongkorn",
482
+ "CIGNA",
483
+ "Cincinnati",
484
+ "Cinemark",
485
+ "CINF",
486
+ "Cintas",
487
+ "Cisco",
488
+ "Citibank",
489
+ "CITIC",
490
+ "Citigroup",
491
+ "Citizens",
492
+ "Citrix",
493
+ "Citylink",
494
+ "classPath",
495
+ "Cliffs",
496
+ "Clojure",
497
+ "Clorox",
498
+ "Cloudflare",
499
+ "Cloudinary",
500
+ "CMCSA",
501
+ "CME",
502
+ "CMOS",
503
+ "CMS",
504
+ "CN",
505
+ "CNAME",
506
+ "CNCF",
507
+ "CNP",
508
+ "Coca-Cola",
509
+ "Codecentric",
510
+ "codeId",
511
+ "codeMirror",
512
+ "Codento",
513
+ "codePage",
514
+ "COFCO",
515
+ "CoffeeScript",
516
+ "Colgate-Palmolive",
517
+ "Collibra",
518
+ "Colombia",
519
+ "COLOPL",
520
+ "colorRef",
521
+ "Columbia",
522
+ "Comcast",
523
+ "Comerica",
524
+ "Commerzbank",
525
+ "Communications",
526
+ "Communities",
527
+ "Comodo",
528
+ "Compal",
529
+ "Companies",
530
+ "Complutense",
531
+ "componentManager",
532
+ "COMPUTERNAME",
533
+ "Con-way",
534
+ "ConAgra",
535
+ "Concho",
536
+ "ConocoPhillips",
537
+ "CONSOL",
538
+ "containerName",
539
+ "Controls",
540
+ "Coors",
541
+ "Copart",
542
+ "Copenhagen",
543
+ "Coralogix",
544
+ "Core-Mark",
545
+ "CorePack",
546
+ "Cornell",
547
+ "Corning",
548
+ "Corteva",
549
+ "Cosmo",
550
+ "Costco",
551
+ "Coursera",
552
+ "CPC",
553
+ "CPRT",
554
+ "CQRS",
555
+ "CRD",
556
+ "Creations",
557
+ "Credly",
558
+ "CRH",
559
+ "Criteo",
560
+ "crossSite",
561
+ "Crowdin",
562
+ "CSAIL",
563
+ "CSAT",
564
+ "CSCO",
565
+ "CSRF",
566
+ "CST",
567
+ "csvLine",
568
+ "CSX",
569
+ "CTAS",
570
+ "CTL",
571
+ "CTLT",
572
+ "CTSH",
573
+ "CTVA",
574
+ "CTXS",
575
+ "Cummins",
576
+ "curLoc",
577
+ "Curtin",
578
+ "customDomain",
579
+ "cValue",
580
+ "cVar",
581
+ "cVars",
582
+ "CVE",
583
+ "CVS",
584
+ "CWE",
585
+ "CyberTrust",
586
+ "Cybozu",
587
+ "Dachser",
588
+ "Dai-ichi",
589
+ "Daimler",
590
+ "Daiwa",
591
+ "DAL",
592
+ "Dana",
593
+ "Danaher",
594
+ "Daniels",
595
+ "Danone",
596
+ "Darden",
597
+ "Darmstadt",
598
+ "Dartmouth",
599
+ "Darussalam",
600
+ "DAST",
601
+ "Databricks",
602
+ "dataCenter",
603
+ "dataCenters",
604
+ "Datadog",
605
+ "dataFile",
606
+ "Datanami",
607
+ "Datang",
608
+ "dateInterval",
609
+ "dateObject",
610
+ "dateTime",
611
+ "dateTimezone",
612
+ "datFile",
613
+ "Datorama",
614
+ "Davis",
615
+ "DaVita",
616
+ "DAWG",
617
+ "Dayjs",
618
+ "Dazs",
619
+ "DBaaS",
620
+ "DBAL",
621
+ "dbLog",
622
+ "DBs",
623
+ "DCs",
624
+ "DDMMYY",
625
+ "DDOG",
626
+ "DDoS",
627
+ "DDR",
628
+ "DDTHH",
629
+ "Deakin",
630
+ "debugBreak",
631
+ "Decker",
632
+ "DeepScale",
633
+ "Deere",
634
+ "Delhaize",
635
+ "Delhi",
636
+ "Deloitte",
637
+ "Denki",
638
+ "Denmark",
639
+ "Dennison",
640
+ "Denso",
641
+ "Dentsply",
642
+ "Depot",
643
+ "Deutsche",
644
+ "Deutschland",
645
+ "DEV",
646
+ "devContainers",
647
+ "deviceId",
648
+ "deviceInfo",
649
+ "deviceIp",
650
+ "deviceName",
651
+ "Devices",
652
+ "Devon",
653
+ "DEVs",
654
+ "DexCom",
655
+ "Dexia",
656
+ "Dezzai",
657
+ "DFKI",
658
+ "Dick's",
659
+ "Dickinson",
660
+ "Diego",
661
+ "Digia",
662
+ "DigiCert",
663
+ "Dillard's",
664
+ "Dior",
665
+ "DirecTV",
666
+ "dirId",
667
+ "dirLen",
668
+ "dirPath",
669
+ "DISCA",
670
+ "DISCK",
671
+ "Disney",
672
+ "DLTR",
673
+ "DocBlock",
674
+ "docId",
675
+ "docSearch",
676
+ "Docusaurus",
677
+ "docUtil",
678
+ "docUtils",
679
+ "DOM",
680
+ "Domino's",
681
+ "Domtar",
682
+ "Dongfeng",
683
+ "Donnelley",
684
+ "DOS",
685
+ "dotNET",
686
+ "Douyin",
687
+ "Dover",
688
+ "Dow",
689
+ "downloadFile",
690
+ "downloadFolder",
691
+ "downloadId",
692
+ "dPad",
693
+ "Dr",
694
+ "Dresden",
695
+ "driveInfo",
696
+ "driveName",
697
+ "DRM",
698
+ "dSize",
699
+ "DSNU",
700
+ "dstFile",
701
+ "dstStream",
702
+ "DTE",
703
+ "Dublin",
704
+ "Ducati",
705
+ "DuPont",
706
+ "Durham",
707
+ "dValue",
708
+ "Dwight",
709
+ "DXC",
710
+ "DXCM",
711
+ "Dynatrace",
712
+ "Dyno",
713
+ "EADS",
714
+ "eAPI",
715
+ "Eastman",
716
+ "Eaton",
717
+ "eBPF",
718
+ "ECDHE",
719
+ "ECDSA",
720
+ "ECMA",
721
+ "Ecolab",
722
+ "Ecole",
723
+ "Ecopetrol",
724
+ "Edeka",
725
+ "Edinburgh",
726
+ "Edison",
727
+ "Edwards",
728
+ "EET",
729
+ "EGA",
730
+ "Egnyte",
731
+ "Eindhoven",
732
+ "Electricite",
733
+ "Eleuther",
734
+ "Elfsight",
735
+ "Eli",
736
+ "EMC",
737
+ "EMCOR",
738
+ "Emerson",
739
+ "Emojipedia",
740
+ "Emory",
741
+ "endScroll",
742
+ "endUnless",
743
+ "Enel",
744
+ "Energie",
745
+ "ENI",
746
+ "Entergy",
747
+ "Enterprises",
748
+ "entryName",
749
+ "Environnement",
750
+ "EOG",
751
+ "EOL",
752
+ "EOLs",
753
+ "EPFL",
754
+ "EPYC",
755
+ "EQIX",
756
+ "Equifax",
757
+ "Equinix",
758
+ "Equities",
759
+ "Erasmus",
760
+ "Ericsson",
761
+ "Erie",
762
+ "errorCode",
763
+ "errorLog",
764
+ "errorLogs",
765
+ "ESA",
766
+ "eSignature",
767
+ "ESMTPS",
768
+ "ESNEXT",
769
+ "Esri",
770
+ "Essex",
771
+ "ETag",
772
+ "ETags",
773
+ "ETH",
774
+ "Ethereum",
775
+ "Etsy",
776
+ "Ettercap",
777
+ "Eurasian",
778
+ "Euris",
779
+ "eventLog",
780
+ "Everest",
781
+ "Evergy",
782
+ "Eversource",
783
+ "EVRG",
784
+ "Exelon",
785
+ "Exeter",
786
+ "Exherbo",
787
+ "EXOR",
788
+ "EXPD",
789
+ "EXPE",
790
+ "Expedia",
791
+ "Expeditors",
792
+ "Expensify",
793
+ "Experian",
794
+ "Exps",
795
+ "externalProject",
796
+ "Exts",
797
+ "Exxon",
798
+ "EY",
799
+ "F5",
800
+ "FaaS",
801
+ "Fabra",
802
+ "Facebook",
803
+ "Fannie",
804
+ "Fargo",
805
+ "Fastenal",
806
+ "FAW",
807
+ "FBHS",
808
+ "FCStone",
809
+ "featureId",
810
+ "featureStore",
811
+ "FedEx",
812
+ "Fenosa",
813
+ "Ferrari",
814
+ "FFIV",
815
+ "Figma",
816
+ "fileData",
817
+ "fileDir",
818
+ "fileExt",
819
+ "fileFolder",
820
+ "fileId",
821
+ "fileIdx",
822
+ "fileIndex",
823
+ "fileInfo",
824
+ "fileLen",
825
+ "fileLog",
826
+ "filePath",
827
+ "fileUtil",
828
+ "fileUtils",
829
+ "Finmeccanica",
830
+ "Fireblocks",
831
+ "FirstEnergy",
832
+ "Fiserv",
833
+ "FISV",
834
+ "FITB",
835
+ "FIXURL",
836
+ "Flattr",
837
+ "Flavors",
838
+ "FleetCor",
839
+ "Flextronics",
840
+ "Flickr",
841
+ "Flipkart",
842
+ "FLIR",
843
+ "Florida",
844
+ "Flowserve",
845
+ "Fluor",
846
+ "FMC",
847
+ "folderInfo",
848
+ "folderName",
849
+ "Foncire",
850
+ "Fonticons",
851
+ "Foods",
852
+ "Formosa",
853
+ "Fortinet",
854
+ "Fortive",
855
+ "FOXA",
856
+ "FPM",
857
+ "FQDNS",
858
+ "Fragrances",
859
+ "frameBuffer",
860
+ "France",
861
+ "France-KLM",
862
+ "Franklin",
863
+ "Franz",
864
+ "Freddie",
865
+ "Freeport-McMoRan",
866
+ "freeSpace",
867
+ "Freiburg",
868
+ "Freightlinx",
869
+ "Frenet",
870
+ "Fresenius",
871
+ "Freshworks",
872
+ "Fried",
873
+ "FTNT",
874
+ "Fudan",
875
+ "Fujifilm",
876
+ "Fujitsu",
877
+ "fullScreen",
878
+ "Futurice",
879
+ "fValue",
880
+ "Gadjah",
881
+ "Gallagher",
882
+ "Galway",
883
+ "gamePad",
884
+ "GameStop",
885
+ "Gannett",
886
+ "Garmin",
887
+ "Gartner",
888
+ "GasTerra",
889
+ "Gazprom",
890
+ "GCE",
891
+ "GCESD",
892
+ "GCM",
893
+ "GCP",
894
+ "GCS",
895
+ "GDF",
896
+ "GDPR",
897
+ "Gebruder",
898
+ "Geely",
899
+ "Gemfile",
900
+ "GEMM",
901
+ "Generale",
902
+ "Generali",
903
+ "Geneva",
904
+ "Genworth",
905
+ "George",
906
+ "Georgetown",
907
+ "Georgia",
908
+ "GeoTrust",
909
+ "getFont",
910
+ "getSel",
911
+ "Ghent",
912
+ "GICS",
913
+ "Gilead",
914
+ "Giphy",
915
+ "GitHub",
916
+ "GitLab",
917
+ "GLAPI",
918
+ "Glasgow",
919
+ "GlaxoSmithKline",
920
+ "Glencore",
921
+ "GlobalSign",
922
+ "GmbH",
923
+ "GNSS",
924
+ "gnuLocaleDir",
925
+ "Gofore",
926
+ "Goldman",
927
+ "Goodyear",
928
+ "GOOG",
929
+ "GOOGL",
930
+ "Gothenburg",
931
+ "GP",
932
+ "GPIO",
933
+ "GPKG",
934
+ "Gradio",
935
+ "Grafana",
936
+ "Grainger",
937
+ "Grammarly",
938
+ "Graphcool",
939
+ "Graybar",
940
+ "Graz",
941
+ "Greenland",
942
+ "GRMN",
943
+ "Groningen",
944
+ "groupBox",
945
+ "Groupe",
946
+ "gRPC",
947
+ "Grumman",
948
+ "GS",
949
+ "GSM",
950
+ "GUI",
951
+ "GUID",
952
+ "GUIs",
953
+ "Guodian",
954
+ "Gwangju",
955
+ "gzFile",
956
+ "gzipFile",
957
+ "Hacktoberfest",
958
+ "Hai",
959
+ "Hallak",
960
+ "Halliburton",
961
+ "Hamilton",
962
+ "Hanesbrands",
963
+ "Haniel",
964
+ "Hanyang",
965
+ "Hapag-Lloyd",
966
+ "Harbin",
967
+ "Harley-Davidson",
968
+ "Harris",
969
+ "Hartford",
970
+ "Harvard",
971
+ "Hasbro",
972
+ "HashiCorp",
973
+ "Hathaway",
974
+ "HBAN",
975
+ "hBrush",
976
+ "HCA",
977
+ "hCursor",
978
+ "HD",
979
+ "HDD",
980
+ "HDMI",
981
+ "Healthpeak",
982
+ "HeBei",
983
+ "Hebrew",
984
+ "Hee",
985
+ "Heidelberg",
986
+ "Heineken",
987
+ "Heinz",
988
+ "helloWorld",
989
+ "Helsinki",
990
+ "Henan",
991
+ "Henry",
992
+ "Heptio",
993
+ "Heraeus",
994
+ "Heriot-Watt",
995
+ "Hershey",
996
+ "Hesai",
997
+ "Hess",
998
+ "Hetzner",
999
+ "Hewlett",
1000
+ "Hewlett-Packard",
1001
+ "hFile",
1002
+ "HHMM",
1003
+ "hIcon",
1004
+ "Hilton",
1005
+ "Hindustan",
1006
+ "Hipercard",
1007
+ "Hitachi",
1008
+ "hKey",
1009
+ "hModule",
1010
+ "Hokkaido",
1011
+ "Holcim",
1012
+ "Holdings",
1013
+ "HollyFrontier",
1014
+ "Hologic",
1015
+ "HOLX",
1016
+ "HOMAG",
1017
+ "HOMEDRIVE",
1018
+ "HOMEPATH",
1019
+ "Honda",
1020
+ "Honeywell",
1021
+ "Hong",
1022
+ "Hopkins",
1023
+ "Hormel",
1024
+ "Horton",
1025
+ "Hotels",
1026
+ "Howmet",
1027
+ "howTo",
1028
+ "HPBW",
1029
+ "hrTime",
1030
+ "HSBC",
1031
+ "hScroll",
1032
+ "HSIC",
1033
+ "HSLA",
1034
+ "HSVA",
1035
+ "HTML",
1036
+ "HTTP",
1037
+ "HTTPS",
1038
+ "HTTPSD",
1039
+ "httpSocket",
1040
+ "httpUrl",
1041
+ "Hua",
1042
+ "Huadian",
1043
+ "Huaneng",
1044
+ "Huawei",
1045
+ "Huazhong",
1046
+ "HubSpot",
1047
+ "Hughes",
1048
+ "Hulu",
1049
+ "Humana",
1050
+ "Humboldt",
1051
+ "Hungarian",
1052
+ "Huntington",
1053
+ "Hutchison",
1054
+ "hWin",
1055
+ "hWnd",
1056
+ "Hyundai",
1057
+ "IANA",
1058
+ "Iberdrola",
1059
+ "Icahn",
1060
+ "ICCC",
1061
+ "iCloud",
1062
+ "ICLR",
1063
+ "iData",
1064
+ "Idealo",
1065
+ "Idean",
1066
+ "Idec",
1067
+ "Idemitsu",
1068
+ "IDEX",
1069
+ "Idexx",
1070
+ "IDXX",
1071
+ "IEEE",
1072
+ "IETF",
1073
+ "IHS",
1074
+ "IKEA",
1075
+ "Illinois",
1076
+ "Illumina",
1077
+ "ILMN",
1078
+ "imageSize",
1079
+ "Imgix",
1080
+ "Imgur",
1081
+ "Imperva",
1082
+ "importLib",
1083
+ "INAP",
1084
+ "InBev",
1085
+ "inBuffer",
1086
+ "Income",
1087
+ "INCY",
1088
+ "Incyte",
1089
+ "indexFile",
1090
+ "India",
1091
+ "Indian",
1092
+ "Indonesia",
1093
+ "Industries",
1094
+ "Ineos",
1095
+ "Infisical",
1096
+ "Infomaniak",
1097
+ "Infosys",
1098
+ "ING",
1099
+ "Ingalls",
1100
+ "Ingersoll",
1101
+ "Ingram",
1102
+ "Ingredion",
1103
+ "Initializers",
1104
+ "Innovations",
1105
+ "Innoviz",
1106
+ "Ins",
1107
+ "Instagram",
1108
+ "instanceDir",
1109
+ "Instruments",
1110
+ "Int'l",
1111
+ "INTC",
1112
+ "Integrated",
1113
+ "Integrys",
1114
+ "Interpublic",
1115
+ "intervalObj",
1116
+ "Intesa",
1117
+ "INTL",
1118
+ "INTU",
1119
+ "Invesco",
1120
+ "IOUtil",
1121
+ "IP",
1122
+ "IPG",
1123
+ "IPGP",
1124
+ "ipNet",
1125
+ "iPos",
1126
+ "IQVIA",
1127
+ "Ireland",
1128
+ "IRSA",
1129
+ "Irvine",
1130
+ "isArray",
1131
+ "isCallable",
1132
+ "isDisabled",
1133
+ "ISEA",
1134
+ "isEmpty",
1135
+ "isObject",
1136
+ "Isovalent",
1137
+ "ISRG",
1138
+ "isStr",
1139
+ "isString",
1140
+ "IssueHunt",
1141
+ "issueId",
1142
+ "isUnDef",
1143
+ "Italia",
1144
+ "Italiane",
1145
+ "Itanium",
1146
+ "Itausa-Investimentos",
1147
+ "itemId",
1148
+ "Itochu",
1149
+ "Iubenda",
1150
+ "iVal",
1151
+ "Jabil",
1152
+ "Jacobs",
1153
+ "Jagiellonian",
1154
+ "James",
1155
+ "Jarden",
1156
+ "Jardine",
1157
+ "JavaScript",
1158
+ "JavaScriptReact",
1159
+ "JBHT",
1160
+ "JBoss",
1161
+ "JBS",
1162
+ "JDBC",
1163
+ "Jekylling",
1164
+ "Jekyllrb",
1165
+ "Jemmic",
1166
+ "Jerry's",
1167
+ "JetBlue",
1168
+ "Jetifier",
1169
+ "JFE",
1170
+ "JFrog",
1171
+ "Jiangsu",
1172
+ "Jiaotong",
1173
+ "Jizhong",
1174
+ "JKHY",
1175
+ "JM",
1176
+ "JNPR",
1177
+ "Johns",
1178
+ "Johnson",
1179
+ "Jones",
1180
+ "Joyent",
1181
+ "JPDC",
1182
+ "JPMorgan",
1183
+ "jPos",
1184
+ "JSON",
1185
+ "JSONLD",
1186
+ "JSTOR",
1187
+ "Jude",
1188
+ "Jupyter",
1189
+ "jVal",
1190
+ "JWK",
1191
+ "JWKS",
1192
+ "JWT",
1193
+ "JX",
1194
+ "Kabbage",
1195
+ "Kabushiki",
1196
+ "Kailuan",
1197
+ "Kaisha",
1198
+ "Kalgin",
1199
+ "Kanpur",
1200
+ "Kansai",
1201
+ "Kansas",
1202
+ "Karlsruhe",
1203
+ "Kawasaki",
1204
+ "KBC",
1205
+ "KBR",
1206
+ "KDDI",
1207
+ "KEDA",
1208
+ "Keio",
1209
+ "Kellogg",
1210
+ "Kelly",
1211
+ "Kentucky",
1212
+ "Kerberos",
1213
+ "KeyCloak",
1214
+ "KeyCorp",
1215
+ "keyDown",
1216
+ "keyMenu",
1217
+ "keyOf",
1218
+ "KEYS",
1219
+ "Keysight",
1220
+ "keyVault",
1221
+ "KFC",
1222
+ "KFUPM",
1223
+ "KFW",
1224
+ "Khalifa",
1225
+ "Kia",
1226
+ "Kiewit",
1227
+ "Kimberly-Clark",
1228
+ "Kimco",
1229
+ "Kinder",
1230
+ "King's",
1231
+ "KKR",
1232
+ "KLA",
1233
+ "KLAC",
1234
+ "Knuth",
1235
+ "Ko-fi",
1236
+ "Kobe",
1237
+ "Kohl's",
1238
+ "Komatsu",
1239
+ "Konami",
1240
+ "Kong",
1241
+ "Koo",
1242
+ "Korea",
1243
+ "Kosan",
1244
+ "Kotlin",
1245
+ "KotlinScript",
1246
+ "KPMG",
1247
+ "kPos",
1248
+ "Kraft",
1249
+ "Kragpur",
1250
+ "Kramdown",
1251
+ "Kroger",
1252
+ "KTM",
1253
+ "KU",
1254
+ "Kuehne",
1255
+ "KUKA",
1256
+ "Kung",
1257
+ "KupiVIP",
1258
+ "Kuula",
1259
+ "kVal",
1260
+ "kvCopy",
1261
+ "kvPair",
1262
+ "Kyoto",
1263
+ "Kyung",
1264
+ "Kyushu",
1265
+ "L-3",
1266
+ "L'Oreal",
1267
+ "L3Harris",
1268
+ "Laboratories",
1269
+ "Labs",
1270
+ "Lafarge",
1271
+ "Lamborghini",
1272
+ "Lamoda",
1273
+ "Lancaster",
1274
+ "Lancia",
1275
+ "Landesbank",
1276
+ "Langfuse",
1277
+ "Langtrace",
1278
+ "Las",
1279
+ "Lastfm",
1280
+ "Lauder",
1281
+ "Lauren",
1282
+ "Lausanne",
1283
+ "lButton",
1284
+ "LDOS",
1285
+ "Lear",
1286
+ "Leaseweb",
1287
+ "LEDDAR",
1288
+ "Leeds",
1289
+ "Leggett",
1290
+ "Lego",
1291
+ "Leica",
1292
+ "Leicester",
1293
+ "Leiden",
1294
+ "Leidos",
1295
+ "Leishen",
1296
+ "Lennar",
1297
+ "Lenovo",
1298
+ "Letterboxd",
1299
+ "Leucadia",
1300
+ "Leuven",
1301
+ "Levenshtein",
1302
+ "Levis",
1303
+ "LexisNexis",
1304
+ "Lexus",
1305
+ "LHS",
1306
+ "Liatrio",
1307
+ "libATA",
1308
+ "libDir",
1309
+ "libDirs",
1310
+ "Liberapay",
1311
+ "Librato",
1312
+ "Lidl",
1313
+ "Lifesciences",
1314
+ "Lightstep",
1315
+ "Lilly",
1316
+ "Lincoln",
1317
+ "Linde",
1318
+ "lineDown",
1319
+ "Lines",
1320
+ "LinkCode",
1321
+ "LinkedIn",
1322
+ "linkName",
1323
+ "linkRef",
1324
+ "Liverpool",
1325
+ "Livox",
1326
+ "LKQ",
1327
+ "LLC",
1328
+ "Lloyds",
1329
+ "LOCALEDIR",
1330
+ "localeInfo",
1331
+ "localStorage",
1332
+ "Lockheed",
1333
+ "Loews",
1334
+ "Logitech",
1335
+ "Logz",
1336
+ "Lomonosov",
1337
+ "London",
1338
+ "LONGLONG",
1339
+ "Lonza",
1340
+ "LoongArch",
1341
+ "Loongson",
1342
+ "Lorillard",
1343
+ "Los",
1344
+ "LOSCAM",
1345
+ "Lots",
1346
+ "Loughborough",
1347
+ "Louis",
1348
+ "Lovatt",
1349
+ "Lowe's",
1350
+ "LP",
1351
+ "lParam",
1352
+ "lpBuffer",
1353
+ "lpctStr",
1354
+ "lpDWord",
1355
+ "LPSTR",
1356
+ "lptStr",
1357
+ "lpVoid",
1358
+ "lpWord",
1359
+ "LRCX",
1360
+ "lResult",
1361
+ "lSize",
1362
+ "LSM",
1363
+ "LTS",
1364
+ "LTSV",
1365
+ "Lufthansa",
1366
+ "Lukoil",
1367
+ "Lumibird",
1368
+ "Luminar",
1369
+ "Lumitics",
1370
+ "Lund",
1371
+ "Lunr",
1372
+ "Lutherans",
1373
+ "lVar",
1374
+ "lVars",
1375
+ "LXC",
1376
+ "Lyft",
1377
+ "Lyon",
1378
+ "LyondellBasell",
1379
+ "Maastricht",
1380
+ "Machines",
1381
+ "macOS",
1382
+ "Macquarie",
1383
+ "Macy's",
1384
+ "Mada",
1385
+ "Madrid",
1386
+ "Mae",
1387
+ "Maersk",
1388
+ "Magna",
1389
+ "Mahalanobis",
1390
+ "Mahidol",
1391
+ "Mailchimp",
1392
+ "Malaya",
1393
+ "Malaysia",
1394
+ "Manchester",
1395
+ "ManpowerGroup",
1396
+ "Manulife",
1397
+ "Mapfre",
1398
+ "Marietta",
1399
+ "MarketAxess",
1400
+ "Markets",
1401
+ "Markit",
1402
+ "Marquard",
1403
+ "Marriott",
1404
+ "Marubeni",
1405
+ "Maruhan",
1406
+ "Mary",
1407
+ "Maryland",
1408
+ "Masco",
1409
+ "Maserati",
1410
+ "Massachusetts",
1411
+ "Massey",
1412
+ "MasterCard",
1413
+ "Materials",
1414
+ "Matheson",
1415
+ "Matomo",
1416
+ "Mattel",
1417
+ "Mattermost",
1418
+ "maxCPUs",
1419
+ "Mazda",
1420
+ "mButton",
1421
+ "McCormick",
1422
+ "McDonald's",
1423
+ "McGill",
1424
+ "McGraw",
1425
+ "MCHP",
1426
+ "McKesson",
1427
+ "McLaren",
1428
+ "McLennan",
1429
+ "McMaster",
1430
+ "MDLZ",
1431
+ "MeadWestvaco",
1432
+ "Medco",
1433
+ "MediaWiki",
1434
+ "Medipal",
1435
+ "Medtronic",
1436
+ "Meiji",
1437
+ "Melanox",
1438
+ "Melbourne",
1439
+ "Mellon",
1440
+ "MemDB",
1441
+ "Mendeley",
1442
+ "Mercari",
1443
+ "Mercedes",
1444
+ "Mercedes-Benz",
1445
+ "MERCHANTABILITY",
1446
+ "Merchants",
1447
+ "Merck",
1448
+ "messageId",
1449
+ "messageIds",
1450
+ "messageList",
1451
+ "Metals",
1452
+ "MetLife",
1453
+ "Mettler",
1454
+ "Mexican",
1455
+ "Mexico",
1456
+ "MGM",
1457
+ "Miami",
1458
+ "Michelin",
1459
+ "Michigan",
1460
+ "Microsoft",
1461
+ "Mid-America",
1462
+ "Midjourney",
1463
+ "Migros",
1464
+ "Milano",
1465
+ "Mills",
1466
+ "Minecraft",
1467
+ "Ming",
1468
+ "minMaxInfo",
1469
+ "Minmetals",
1470
+ "Minnesota",
1471
+ "Mirantis",
1472
+ "MITM",
1473
+ "Mitsubishi",
1474
+ "Mitsui",
1475
+ "Mixpanel",
1476
+ "Mizuho",
1477
+ "MKTX",
1478
+ "MLP",
1479
+ "MMDDYY",
1480
+ "MMDDYYYY",
1481
+ "MNST",
1482
+ "Mobil",
1483
+ "Mobis",
1484
+ "mockFile",
1485
+ "mockFn",
1486
+ "mockFunction",
1487
+ "Mockito",
1488
+ "mockPath",
1489
+ "Mohawk",
1490
+ "Mol",
1491
+ "Molina",
1492
+ "Moller-Maersk",
1493
+ "Molson",
1494
+ "Monash",
1495
+ "Mondelez",
1496
+ "Mondiale",
1497
+ "Mondoo",
1498
+ "Mongo",
1499
+ "Monsanto",
1500
+ "Monterey",
1501
+ "Montreal",
1502
+ "Moody's",
1503
+ "Moore's",
1504
+ "Moovit",
1505
+ "Morgan",
1506
+ "Morris",
1507
+ "Morrison",
1508
+ "Moscow",
1509
+ "Motorola",
1510
+ "Motors",
1511
+ "Mouseflow",
1512
+ "mouseWheel",
1513
+ "Movil",
1514
+ "Mozilla",
1515
+ "MRC",
1516
+ "MS",
1517
+ "MSCI",
1518
+ "MSFT",
1519
+ "msgList",
1520
+ "MSSQLSERVER",
1521
+ "multiLog",
1522
+ "multiPath",
1523
+ "Munich",
1524
+ "Murphy",
1525
+ "Musixmatch",
1526
+ "MXIM",
1527
+ "Myer",
1528
+ "Mylan",
1529
+ "Nagel",
1530
+ "Nagoya",
1531
+ "Nanjing",
1532
+ "Nanyang",
1533
+ "Napatech",
1534
+ "Narrowable",
1535
+ "Narrowables",
1536
+ "Nasdaq",
1537
+ "Nava",
1538
+ "Navarra",
1539
+ "Naver",
1540
+ "Navistar",
1541
+ "NCLH",
1542
+ "NCR",
1543
+ "NDA",
1544
+ "NDAQ",
1545
+ "NDJSON",
1546
+ "NEC",
1547
+ "Nederlanden",
1548
+ "Nemours",
1549
+ "NetApp",
1550
+ "Netflix",
1551
+ "Netlify",
1552
+ "Networks",
1553
+ "Neuralink",
1554
+ "Newcastle",
1555
+ "NEWDATE",
1556
+ "NEWDECIMAL",
1557
+ "newDir",
1558
+ "Newell",
1559
+ "newFile",
1560
+ "newId",
1561
+ "Newmont",
1562
+ "Nextel",
1563
+ "NextEra",
1564
+ "nextIdx",
1565
+ "nFile",
1566
+ "NFLX",
1567
+ "Nginx",
1568
+ "Nginxinc",
1569
+ "Nielsen",
1570
+ "NII",
1571
+ "Nijmegen",
1572
+ "Nike",
1573
+ "Nikto",
1574
+ "Nintendo",
1575
+ "Nippon",
1576
+ "NiSource",
1577
+ "Nissan",
1578
+ "NIST",
1579
+ "Nitor",
1580
+ "nKey",
1581
+ "NKSJ",
1582
+ "NLOK",
1583
+ "NLSN",
1584
+ "noCookie",
1585
+ "nodeMap",
1586
+ "NodeNext",
1587
+ "nodeObj",
1588
+ "nodeP",
1589
+ "nodePtr",
1590
+ "Nokia",
1591
+ "Nomura",
1592
+ "nonStatic",
1593
+ "Nordcloud",
1594
+ "Nordea",
1595
+ "Nordstrom",
1596
+ "NordVPN",
1597
+ "NOREF",
1598
+ "NoReply",
1599
+ "Norfolk",
1600
+ "Normale",
1601
+ "Northrop",
1602
+ "NortonLifeLock",
1603
+ "Norwegian",
1604
+ "noSlash",
1605
+ "NOSQL",
1606
+ "notArray",
1607
+ "NOTFOUND",
1608
+ "notObject",
1609
+ "Notre",
1610
+ "Nottingham",
1611
+ "Novartis",
1612
+ "Novell",
1613
+ "Novosibirsk",
1614
+ "NRG",
1615
+ "NTAP",
1616
+ "NTRS",
1617
+ "Nubity",
1618
+ "Nucor",
1619
+ "Nullable",
1620
+ "Nullables",
1621
+ "Nullsoft",
1622
+ "NVDA",
1623
+ "Nvidia",
1624
+ "NVR",
1625
+ "NWSA",
1626
+ "NYSE",
1627
+ "O'Lakes",
1628
+ "O'Reilly",
1629
+ "Oaktree",
1630
+ "OAuthLib",
1631
+ "objectId",
1632
+ "ObservIQ",
1633
+ "ODBC",
1634
+ "ODFL",
1635
+ "Ohio",
1636
+ "OIDC",
1637
+ "Oilwell",
1638
+ "okCancel",
1639
+ "Okta",
1640
+ "OLAP",
1641
+ "oldFile",
1642
+ "OleDLL",
1643
+ "Olly",
1644
+ "OLM",
1645
+ "OLTP",
1646
+ "Omaha",
1647
+ "Omnicare",
1648
+ "Omnicom",
1649
+ "Omnition",
1650
+ "OMV",
1651
+ "oneOf",
1652
+ "ONEOK",
1653
+ "Onex",
1654
+ "Ontario",
1655
+ "OOBE",
1656
+ "OOCL",
1657
+ "OOTB",
1658
+ "Opel",
1659
+ "OpenAI",
1660
+ "Openbase",
1661
+ "OpenDNS",
1662
+ "OpenID",
1663
+ "OpenTelemetry",
1664
+ "Opscode",
1665
+ "ORCL",
1666
+ "orderId",
1667
+ "ORLEN",
1668
+ "ORLY",
1669
+ "ORM",
1670
+ "OSA",
1671
+ "Osaka",
1672
+ "OSDI",
1673
+ "Oshkosh",
1674
+ "OSINT",
1675
+ "Oslo",
1676
+ "OSS",
1677
+ "OSTIF",
1678
+ "Otago",
1679
+ "Otechie",
1680
+ "OTIS",
1681
+ "OTL",
1682
+ "OTLP",
1683
+ "Ottawa",
1684
+ "OU",
1685
+ "outBuffer",
1686
+ "outDir",
1687
+ "Outreachy",
1688
+ "OWASP",
1689
+ "Owens",
1690
+ "Owens-Illinois",
1691
+ "Oy",
1692
+ "Ozforex",
1693
+ "Ozon",
1694
+ "PACCAR",
1695
+ "Packard",
1696
+ "Padova",
1697
+ "pageData",
1698
+ "PagerDuty",
1699
+ "pageView",
1700
+ "pageViews",
1701
+ "Palantir",
1702
+ "Paludis",
1703
+ "Panasonic",
1704
+ "Panner",
1705
+ "Papaki",
1706
+ "PARCO",
1707
+ "parentNode",
1708
+ "Paribas",
1709
+ "Paris",
1710
+ "Parker-Hannifin",
1711
+ "Partners",
1712
+ "Parts",
1713
+ "Patreon",
1714
+ "Paulo",
1715
+ "Paxos",
1716
+ "PAYC",
1717
+ "Paychex",
1718
+ "Paycom",
1719
+ "Paylocity",
1720
+ "Payments",
1721
+ "PayPal",
1722
+ "PAYX",
1723
+ "PBCT",
1724
+ "PBF",
1725
+ "pBuf",
1726
+ "pBuffer",
1727
+ "PCAP",
1728
+ "PCAPNG",
1729
+ "PCAR",
1730
+ "pcFileDir",
1731
+ "pConnection",
1732
+ "PCTL",
1733
+ "PDVSA",
1734
+ "Peabody",
1735
+ "Pemex",
1736
+ "Penh",
1737
+ "Penn",
1738
+ "Penney",
1739
+ "Pennsylvania",
1740
+ "Penske",
1741
+ "Pentair",
1742
+ "Penteston",
1743
+ "People's",
1744
+ "Pepsi",
1745
+ "PepsiCo",
1746
+ "Percona",
1747
+ "PerkinElmer",
1748
+ "Perrigo",
1749
+ "Petersburg",
1750
+ "Petrobras",
1751
+ "Petronas",
1752
+ "PetSmart",
1753
+ "Peugeot",
1754
+ "pFile",
1755
+ "Pfizer",
1756
+ "Pharmaceuticals",
1757
+ "Pharmahandel",
1758
+ "Philip",
1759
+ "Philips",
1760
+ "Phillips",
1761
+ "Phnom",
1762
+ "Photonics",
1763
+ "PHPs",
1764
+ "Pingdom",
1765
+ "Pinterest",
1766
+ "Pioneering",
1767
+ "Pittsburgh",
1768
+ "Pixar",
1769
+ "PKCS",
1770
+ "PKGDATADIR",
1771
+ "PKN",
1772
+ "Plains",
1773
+ "Plans",
1774
+ "Platt",
1775
+ "PLC",
1776
+ "Plex",
1777
+ "PLSQL",
1778
+ "PNC",
1779
+ "Po",
1780
+ "Pohang",
1781
+ "POJO",
1782
+ "POJOs",
1783
+ "Politecnico",
1784
+ "Pompeu",
1785
+ "Pont",
1786
+ "Porsche",
1787
+ "Portainer",
1788
+ "Porto",
1789
+ "POSCO",
1790
+ "POSIX",
1791
+ "postCondition",
1792
+ "Poste",
1793
+ "Postgres",
1794
+ "PPG",
1795
+ "PPL",
1796
+ "Prague",
1797
+ "Praxair",
1798
+ "Precommit",
1799
+ "Preformat",
1800
+ "prevIdx",
1801
+ "PRGO",
1802
+ "Priceline",
1803
+ "Princeton",
1804
+ "printName",
1805
+ "Prisma",
1806
+ "PRNU",
1807
+ "processId",
1808
+ "Processing",
1809
+ "procId",
1810
+ "Procter",
1811
+ "Products",
1812
+ "projectId",
1813
+ "Prologis",
1814
+ "PromQL",
1815
+ "Properties",
1816
+ "Protobuf",
1817
+ "Protobufs",
1818
+ "Proxmox",
1819
+ "PSEG",
1820
+ "PSP",
1821
+ "PSTR",
1822
+ "PTT",
1823
+ "Pty",
1824
+ "Publix",
1825
+ "PulteGroup",
1826
+ "Purdue",
1827
+ "Putra",
1828
+ "pVar",
1829
+ "PVH",
1830
+ "PwC",
1831
+ "PYPL",
1832
+ "Qatar",
1833
+ "QCOM",
1834
+ "Qorvo",
1835
+ "QRVO",
1836
+ "QUALCOMM",
1837
+ "Quanergy",
1838
+ "Queen's",
1839
+ "Queensland",
1840
+ "QuesmaOrg",
1841
+ "Quintiles",
1842
+ "QuoVadis",
1843
+ "Rabobank",
1844
+ "Rackspace",
1845
+ "Ralph",
1846
+ "Randstad",
1847
+ "Raymond",
1848
+ "Raytheon",
1849
+ "rayTrace",
1850
+ "rayTracing",
1851
+ "Razorpay",
1852
+ "RBS",
1853
+ "rButton",
1854
+ "RDP",
1855
+ "Reachability",
1856
+ "readDir",
1857
+ "readError",
1858
+ "readErrorLog",
1859
+ "readErrorLogs",
1860
+ "readErrors",
1861
+ "readFile",
1862
+ "Reaktor",
1863
+ "Realogy",
1864
+ "Rebrandly",
1865
+ "Recv",
1866
+ "Redbud",
1867
+ "Reddit",
1868
+ "Reddit's",
1869
+ "RedHat",
1870
+ "refCount",
1871
+ "refCounting",
1872
+ "referenceCounting",
1873
+ "Refining",
1874
+ "REFLEX",
1875
+ "refNum",
1876
+ "REFs",
1877
+ "refVal",
1878
+ "refValue",
1879
+ "Regeneron",
1880
+ "Regions",
1881
+ "REGN",
1882
+ "regRead",
1883
+ "relDate",
1884
+ "relDateTime",
1885
+ "Relex",
1886
+ "relTime",
1887
+ "Renault",
1888
+ "Rentals",
1889
+ "repoRoot",
1890
+ "Repsol",
1891
+ "Research",
1892
+ "Reserve",
1893
+ "ResMed",
1894
+ "ResNet",
1895
+ "Resorts",
1896
+ "Resources",
1897
+ "Responsys",
1898
+ "Restaurants",
1899
+ "retryCancel",
1900
+ "Revolut",
1901
+ "Reynolds",
1902
+ "RGBIR",
1903
+ "RHS",
1904
+ "Ricoh",
1905
+ "RIEGL",
1906
+ "RIMAS",
1907
+ "Rio",
1908
+ "RMIT",
1909
+ "Robert",
1910
+ "Robinson",
1911
+ "Roblox",
1912
+ "Roche",
1913
+ "Rochester",
1914
+ "Rock-Tenn",
1915
+ "Rockwell",
1916
+ "Rohlig",
1917
+ "rollDown",
1918
+ "Rollins",
1919
+ "Rolls",
1920
+ "Rome",
1921
+ "Rosneft",
1922
+ "Ross",
1923
+ "ROST",
1924
+ "Rotterdam",
1925
+ "Rowe",
1926
+ "rowId",
1927
+ "Royce",
1928
+ "RPATH",
1929
+ "RPC",
1930
+ "RPCs",
1931
+ "RSA",
1932
+ "rSize",
1933
+ "Rubbermaid",
1934
+ "Russia",
1935
+ "Rutgers",
1936
+ "Ruuvi",
1937
+ "RWE",
1938
+ "RWTH",
1939
+ "Ryder",
1940
+ "S-Oil",
1941
+ "Saab",
1942
+ "SaaS",
1943
+ "Sabic",
1944
+ "Sachs",
1945
+ "Safeway",
1946
+ "SAIC",
1947
+ "Sainsbury",
1948
+ "Saint-Gobain",
1949
+ "Sales",
1950
+ "Salesforce",
1951
+ "sameSite",
1952
+ "Samsung",
1953
+ "San",
1954
+ "SanDisk",
1955
+ "Sands",
1956
+ "Sanmina",
1957
+ "Sanofi",
1958
+ "Sanpaolo",
1959
+ "Santa",
1960
+ "Santander",
1961
+ "Sao",
1962
+ "SAST",
1963
+ "SATA",
1964
+ "Saud",
1965
+ "SBA",
1966
+ "SBAC",
1967
+ "Sberbank",
1968
+ "SBOM",
1969
+ "SBUX",
1970
+ "SCADA",
1971
+ "Schein",
1972
+ "schemeId",
1973
+ "Schenker",
1974
+ "Schlumberger",
1975
+ "Schneider",
1976
+ "SCHW",
1977
+ "Schwab",
1978
+ "Sciences",
1979
+ "Scotia",
1980
+ "Scotland",
1981
+ "screenShare",
1982
+ "Scripts",
1983
+ "scrollInfo",
1984
+ "SDRAM",
1985
+ "SE",
1986
+ "Seagate",
1987
+ "Sealed",
1988
+ "Sears",
1989
+ "securityLevel",
1990
+ "Seiki",
1991
+ "Sekiyu",
1992
+ "Semilux",
1993
+ "Semmle",
1994
+ "Sempra",
1995
+ "Sencha",
1996
+ "Sensedia",
1997
+ "Seoul",
1998
+ "Serret",
1999
+ "ServiceNow",
2000
+ "Services",
2001
+ "setAffinity",
2002
+ "setEnv",
2003
+ "setFont",
2004
+ "setRedraw",
2005
+ "setSel",
2006
+ "setText",
2007
+ "SHA256",
2008
+ "Shagang",
2009
+ "Shandong",
2010
+ "Shanxi",
2011
+ "Sheffield",
2012
+ "Shenhua",
2013
+ "Sherwin-Williams",
2014
+ "Shopify",
2015
+ "Shougang",
2016
+ "Showa",
2017
+ "SHV",
2018
+ "sideEffect",
2019
+ "Siemens",
2020
+ "SIGHUP",
2021
+ "SIGINT",
2022
+ "SIGKDD",
2023
+ "SIGKILL",
2024
+ "signOff",
2025
+ "SIGQUIT",
2026
+ "SIGTERM",
2027
+ "SigV4",
2028
+ "SigV4A",
2029
+ "Silae",
2030
+ "Silicom",
2031
+ "SIMD",
2032
+ "Simon",
2033
+ "Singapore",
2034
+ "SinnerSchrader",
2035
+ "Sinochem",
2036
+ "Sinomach",
2037
+ "Sinopec",
2038
+ "Sirona",
2039
+ "Sismology",
2040
+ "Sistema",
2041
+ "SIVB",
2042
+ "SK",
2043
+ "Skaffold",
2044
+ "Skoda",
2045
+ "Skyworks",
2046
+ "SL",
2047
+ "SLA",
2048
+ "sLen",
2049
+ "Slevomat",
2050
+ "SLI",
2051
+ "Slimpay",
2052
+ "SLM",
2053
+ "SLO",
2054
+ "slotId",
2055
+ "Smania",
2056
+ "Smarkets",
2057
+ "SmartyStreets",
2058
+ "Smithfield",
2059
+ "Smucker",
2060
+ "Snap-on",
2061
+ "Snapchat",
2062
+ "Snapple",
2063
+ "SNCF",
2064
+ "SNPS",
2065
+ "Snyk",
2066
+ "Societe",
2067
+ "socketId",
2068
+ "Sodexo",
2069
+ "Softbank",
2070
+ "SoftLayer",
2071
+ "Solaris",
2072
+ "SolarWinds",
2073
+ "Solita",
2074
+ "Solr",
2075
+ "Solutions",
2076
+ "someHost",
2077
+ "Sonera",
2078
+ "Sons",
2079
+ "Sony",
2080
+ "Sorbonne",
2081
+ "sourceIdx",
2082
+ "sourceMap",
2083
+ "sourceMaps",
2084
+ "Southampton",
2085
+ "SpaceX",
2086
+ "Sparc",
2087
+ "SPDX",
2088
+ "SPGI",
2089
+ "Spirent",
2090
+ "Spotify",
2091
+ "SQL",
2092
+ "SQRL",
2093
+ "SquashFS",
2094
+ "Squibb",
2095
+ "SRAM",
2096
+ "srcDir",
2097
+ "srcFile",
2098
+ "srcFolder",
2099
+ "srcStream",
2100
+ "SSD",
2101
+ "SSE",
2102
+ "SSID",
2103
+ "SSP",
2104
+ "SSRF",
2105
+ "Staat",
2106
+ "Stanford",
2107
+ "Stanley",
2108
+ "Staples",
2109
+ "Starbucks",
2110
+ "Starfield",
2111
+ "Starwood",
2112
+ "States",
2113
+ "staticFile",
2114
+ "Staticman",
2115
+ "Staticman's",
2116
+ "Stationers",
2117
+ "Statoil",
2118
+ "stdCall",
2119
+ "stdWin",
2120
+ "Steelers",
2121
+ "Stellantis",
2122
+ "STERIS",
2123
+ "Stimulsoft",
2124
+ "Stockholm",
2125
+ "Stores",
2126
+ "strLen",
2127
+ "Stryker",
2128
+ "Subaru",
2129
+ "subDirective",
2130
+ "subDirectives",
2131
+ "Suez",
2132
+ "Suisse",
2133
+ "Sumitomo",
2134
+ "Suncor",
2135
+ "Sungkyunkwan",
2136
+ "Sunoco",
2137
+ "SunTrust",
2138
+ "Supercomputing",
2139
+ "Superfeedr",
2140
+ "Supermarkets",
2141
+ "Supervalu",
2142
+ "Surgutneftegas",
2143
+ "SUSE",
2144
+ "sUser",
2145
+ "Susser",
2146
+ "Sussex",
2147
+ "Suzuken",
2148
+ "Suzuki",
2149
+ "SVB",
2150
+ "Svc",
2151
+ "SVGA",
2152
+ "SwedenCentral",
2153
+ "Swiftype",
2154
+ "Swinburne",
2155
+ "Swiss",
2156
+ "Swisscom",
2157
+ "SWKS",
2158
+ "Swyftx",
2159
+ "Sydney",
2160
+ "Symantec",
2161
+ "Synnex",
2162
+ "Synopsys",
2163
+ "Sysco",
2164
+ "sysError",
2165
+ "sysKeyDown",
2166
+ "sysRoot",
2167
+ "sysRoots",
2168
+ "Systems",
2169
+ "T-Mobile",
2170
+ "Taiwan",
2171
+ "Take-Two",
2172
+ "tarFile",
2173
+ "Targa",
2174
+ "Tartu",
2175
+ "Tata",
2176
+ "Taylor's",
2177
+ "tBody",
2178
+ "tChar",
2179
+ "tCol",
2180
+ "TCP",
2181
+ "tDiff",
2182
+ "TE",
2183
+ "TechnipFMC",
2184
+ "Technologies",
2185
+ "TechRadar",
2186
+ "Telecom",
2187
+ "Teledyne",
2188
+ "Teleflex",
2189
+ "Telefonica",
2190
+ "Telekom",
2191
+ "Telia",
2192
+ "Telstra",
2193
+ "Tencent",
2194
+ "Tenneco",
2195
+ "Teradyne",
2196
+ "Terex",
2197
+ "Tesco",
2198
+ "Tesla",
2199
+ "Tesoro",
2200
+ "testEnv",
2201
+ "testFile",
2202
+ "testFiles",
2203
+ "testId",
2204
+ "testLog",
2205
+ "testLogs",
2206
+ "testMessage",
2207
+ "testMsg",
2208
+ "testParam",
2209
+ "testParams",
2210
+ "testSuite",
2211
+ "testSuites",
2212
+ "testVal",
2213
+ "testValue",
2214
+ "testVar",
2215
+ "Tewoo",
2216
+ "Texas",
2217
+ "texCoord",
2218
+ "texCoords",
2219
+ "textFile",
2220
+ "textFiles",
2221
+ "Textron",
2222
+ "tFoot",
2223
+ "Thanos",
2224
+ "tHead",
2225
+ "Theming",
2226
+ "Thermo",
2227
+ "Thrivent",
2228
+ "ThyssenKrupp",
2229
+ "TIAA-CREF",
2230
+ "Ticino",
2231
+ "Tidelift",
2232
+ "Tieto",
2233
+ "Tiffany",
2234
+ "TikTok",
2235
+ "timeFrame",
2236
+ "timeFrames",
2237
+ "timeInterval",
2238
+ "timeStep",
2239
+ "timeSteps",
2240
+ "Tinto",
2241
+ "TJX",
2242
+ "tmpDir",
2243
+ "tmpFile",
2244
+ "tmpStr",
2245
+ "TMUS",
2246
+ "TNK-BP",
2247
+ "Todoist",
2248
+ "Tokio",
2249
+ "Tokyo",
2250
+ "Toledo",
2251
+ "Tomsk",
2252
+ "Tongji",
2253
+ "topLeft",
2254
+ "topRight",
2255
+ "Torchmark",
2256
+ "Toronto",
2257
+ "Toronto-Dominion",
2258
+ "Toshiba",
2259
+ "Towers",
2260
+ "Toyota",
2261
+ "Toys",
2262
+ "TPDS",
2263
+ "tPtr",
2264
+ "Traceloop",
2265
+ "Trakt",
2266
+ "Trane",
2267
+ "TransDigm",
2268
+ "Translogix",
2269
+ "TravelCenters",
2270
+ "Travelers",
2271
+ "Trimble",
2272
+ "Tripadvisor",
2273
+ "Truist",
2274
+ "TRW",
2275
+ "TSBuild",
2276
+ "TSBuildInfo",
2277
+ "TSCO",
2278
+ "TSDB",
2279
+ "Tsing",
2280
+ "Tsinghua",
2281
+ "tSize",
2282
+ "TSLA",
2283
+ "TSQL",
2284
+ "TTWO",
2285
+ "TUI",
2286
+ "Tumblr",
2287
+ "Turku",
2288
+ "tValue",
2289
+ "Twente",
2290
+ "Twenty-First",
2291
+ "Twilio",
2292
+ "TWTR",
2293
+ "Tyler",
2294
+ "TypeCheck",
2295
+ "Typedef",
2296
+ "TypeScriptReact",
2297
+ "Tyson",
2298
+ "tzId",
2299
+ "tzObj",
2300
+ "UAB",
2301
+ "UAE",
2302
+ "Uber",
2303
+ "UBS",
2304
+ "UC",
2305
+ "UCIM",
2306
+ "UCLA",
2307
+ "uCoord",
2308
+ "uCoords",
2309
+ "UCSI",
2310
+ "UCUM",
2311
+ "UDR",
2312
+ "UEFA",
2313
+ "UFJ",
2314
+ "UGent",
2315
+ "UGI",
2316
+ "UI",
2317
+ "ULTA",
2318
+ "Ultrapar",
2319
+ "unDef",
2320
+ "UniCredit",
2321
+ "Unilever",
2322
+ "uniqueId",
2323
+ "uniqueIdentifier",
2324
+ "UNIST",
2325
+ "United",
2326
+ "UnitedHealth",
2327
+ "Universiteit",
2328
+ "unixRoot",
2329
+ "unSetter",
2330
+ "Unsplash",
2331
+ "UNSW",
2332
+ "Unum",
2333
+ "Upcloud",
2334
+ "updateTimestamp",
2335
+ "uPos",
2336
+ "Uppsala",
2337
+ "Urbana-Champaign",
2338
+ "URS",
2339
+ "US",
2340
+ "USA",
2341
+ "USENIX",
2342
+ "userId",
2343
+ "Utilities",
2344
+ "UTP",
2345
+ "Utrecht",
2346
+ "UUID",
2347
+ "UUIDs",
2348
+ "uVal",
2349
+ "Vagrantfile",
2350
+ "Valarian",
2351
+ "Valeo",
2352
+ "Valero",
2353
+ "Vanderbilt",
2354
+ "Varco",
2355
+ "Variadic",
2356
+ "Varian",
2357
+ "Vasona",
2358
+ "Vattenfall",
2359
+ "vCursor",
2360
+ "vDSO",
2361
+ "Vegas",
2362
+ "Veikkaus",
2363
+ "Velodyne",
2364
+ "Ventas",
2365
+ "Veolia",
2366
+ "Verdaccio",
2367
+ "Verisec",
2368
+ "Verisign",
2369
+ "Verisk",
2370
+ "Verizon",
2371
+ "VF",
2372
+ "vFile",
2373
+ "VGA",
2374
+ "VGL",
2375
+ "VHS",
2376
+ "VIAC",
2377
+ "Viacom",
2378
+ "ViacomCBS",
2379
+ "Viber",
2380
+ "Victoria",
2381
+ "VictoriaMetrics",
2382
+ "Vienna",
2383
+ "Vimeo",
2384
+ "Vinci",
2385
+ "Vincit",
2386
+ "Virginia",
2387
+ "VirtualBox",
2388
+ "VirusTotal",
2389
+ "Visteon",
2390
+ "Visy",
2391
+ "Vivendi",
2392
+ "Vizcaya",
2393
+ "VLAN",
2394
+ "VLANs",
2395
+ "VLDB",
2396
+ "VMDK",
2397
+ "VMOMI",
2398
+ "VMware",
2399
+ "VMXNET",
2400
+ "VNC",
2401
+ "Vodafone",
2402
+ "Volkswagen",
2403
+ "Volvo",
2404
+ "Vornado",
2405
+ "VPN",
2406
+ "VPS",
2407
+ "VRAM",
2408
+ "VRSK",
2409
+ "VRSN",
2410
+ "VRTX",
2411
+ "VSAN",
2412
+ "vScroll",
2413
+ "vSphere",
2414
+ "vSwitch",
2415
+ "VTEX",
2416
+ "Vulcan",
2417
+ "Vulkan",
2418
+ "Vultr",
2419
+ "Vyatta",
2420
+ "W3C",
2421
+ "Wabtec",
2422
+ "Wacom",
2423
+ "Wageningen",
2424
+ "WAgent",
2425
+ "waitUntil",
2426
+ "Wal-Mart",
2427
+ "Walgreen",
2428
+ "Walgreens",
2429
+ "Walmart",
2430
+ "Walt",
2431
+ "WAP",
2432
+ "Warner",
2433
+ "Warsaw",
2434
+ "Warwick",
2435
+ "Waseda",
2436
+ "Washington",
2437
+ "Watchr",
2438
+ "Waterloo",
2439
+ "Watson",
2440
+ "Waze",
2441
+ "Weaviate",
2442
+ "Webex",
2443
+ "webIndex",
2444
+ "webIndexFile",
2445
+ "WebJS",
2446
+ "WEC",
2447
+ "Wedos",
2448
+ "Weiqiao",
2449
+ "Weiss",
2450
+ "WellCare",
2451
+ "WellPoint",
2452
+ "Wells",
2453
+ "Welltower",
2454
+ "WESCO",
2455
+ "Wesfarmers",
2456
+ "Westinghouse",
2457
+ "Westlake",
2458
+ "Weston",
2459
+ "Westpac",
2460
+ "WestRock",
2461
+ "Weyerhaeuser",
2462
+ "Whampoa",
2463
+ "WhatsApp",
2464
+ "widgetManager",
2465
+ "Wikidata",
2466
+ "Wikimedia",
2467
+ "Wikipedia",
2468
+ "Wiktionary",
2469
+ "Wildberries",
2470
+ "Williams",
2471
+ "Willis",
2472
+ "Wilmar",
2473
+ "WinDLL",
2474
+ "WindowsLogin",
2475
+ "Windstream",
2476
+ "WinNT",
2477
+ "WinOS",
2478
+ "WinRM",
2479
+ "WinRS",
2480
+ "WIPO",
2481
+ "Wisconsin-Madison",
2482
+ "WiseTech",
2483
+ "Wishart",
2484
+ "Wistron",
2485
+ "Wix",
2486
+ "WLTW",
2487
+ "Wm",
2488
+ "WMIC",
2489
+ "Wollongong",
2490
+ "Woolworths",
2491
+ "Woori",
2492
+ "WordPress",
2493
+ "workArea",
2494
+ "workDir",
2495
+ "workFolder",
2496
+ "worldGen",
2497
+ "WPAR",
2498
+ "wParam",
2499
+ "WPARs",
2500
+ "writeDir",
2501
+ "writeFile",
2502
+ "WSMan",
2503
+ "WSUS",
2504
+ "Wuhan",
2505
+ "WWAN",
2506
+ "WWW",
2507
+ "Wyndham",
2508
+ "WYNN",
2509
+ "WYSIWYG",
2510
+ "Xbox",
2511
+ "Xcel",
2512
+ "Xcode",
2513
+ "xCoord",
2514
+ "xCoords",
2515
+ "Xenial",
2516
+ "XFS",
2517
+ "Xi'an",
2518
+ "Xiaohongshu",
2519
+ "Xiaomi",
2520
+ "Xilinx",
2521
+ "XING",
2522
+ "Xinxing",
2523
+ "xKey",
2524
+ "XLNX",
2525
+ "xMax",
2526
+ "xMin",
2527
+ "XML",
2528
+ "XMLRPC",
2529
+ "xPos",
2530
+ "Xproto",
2531
+ "XRAY",
2532
+ "XSD",
2533
+ "XSRF",
2534
+ "Xstrata",
2535
+ "xVal",
2536
+ "Xware",
2537
+ "YAGNI",
2538
+ "Yale",
2539
+ "Yamada",
2540
+ "Yamaha",
2541
+ "Yandex",
2542
+ "Yassir",
2543
+ "Yasuda",
2544
+ "Yat-Sen",
2545
+ "yCoord",
2546
+ "yCoords",
2547
+ "yesNo",
2548
+ "Yext",
2549
+ "yKey",
2550
+ "Yleisradio",
2551
+ "yMax",
2552
+ "yMin",
2553
+ "Yonsei",
2554
+ "York",
2555
+ "YouTube",
2556
+ "YPF",
2557
+ "yPos",
2558
+ "Yusen",
2559
+ "yVal",
2560
+ "Zalando",
2561
+ "Zapier",
2562
+ "Zappos",
2563
+ "ZBRA",
2564
+ "zCoord",
2565
+ "zCoords",
2566
+ "Zealand",
2567
+ "ZEIT",
2568
+ "Zend",
2569
+ "Zentrale",
2570
+ "Zerodha",
2571
+ "ZFS",
2572
+ "Zhejiang",
2573
+ "Zhihu",
2574
+ "Ziggo",
2575
+ "Zillow",
2576
+ "Zimmer",
2577
+ "ZION",
2578
+ "Zions",
2579
+ "zipFile",
2580
+ "zKey",
2581
+ "zLog",
2582
+ "zMax",
2583
+ "zMin",
2584
+ "Zoetis",
2585
+ "Zoho",
2586
+ "ZPool",
2587
+ "ZPools",
2588
+ "zPos",
2589
+ "Zscaler",
2590
+ "Zuora",
2591
+ "Zurich",
2592
+ "zVal"
2593
+ ];
2594
+ //#endregion
2595
+ //#region src/formatting/to-sentence-case.ts
2596
+ /**
2597
+ * Normalize Title Case overuse (a common AI/marketing tic) back to sentence
2598
+ * case while preserving acronyms, mixed-case proper nouns, and the first word
2599
+ * of each sentence.
2600
+ *
2601
+ * The function is conservative: it only rewrites strings whose ratio of
2602
+ * capitalized words is high enough that the input is unambiguously in Title
2603
+ * Case. Normal prose with one or two proper nouns is left untouched.
2604
+ *
2605
+ * Philosophy (important, and the inverse of the naive approach): we only
2606
+ * lowercase a capitalized/ALL-CAPS token when we can positively confirm its
2607
+ * lowercase form is a real word — via the generated preserved-terms list, or
2608
+ * via an actual EN/FR spelling dictionary lookup (through `nspell`, which
2609
+ * expands Hunspell affixes, so inflected forms like "Published" or
2610
+ * "Reported" resolve correctly even though only their stems are dictionary
2611
+ * headwords). Anything we don't recognize is assumed to be a proper noun and
2612
+ * its original casing is preserved. This is deliberately asymmetric:
2613
+ * over-capitalizing a rare common word is a mild cosmetic miss, but
2614
+ * decapitalizing an unrecognized proper noun (a person, a place, a brand) is
2615
+ * an outright factual error. The old approach did the opposite — lowercase
2616
+ * by default, preserve only what's on an explicit allowlist — which
2617
+ * systematically mangled any proper noun the allowlist didn't happen to
2618
+ * cover.
2619
+ *
2620
+ * Known limitation: proper nouns whose lowercase homograph is a real
2621
+ * dictionary word get wrongly lowercased mid-sentence — e.g. "Macron"
2622
+ * ("macron" is an English word), "Musk" ("musk" is a fragrance note), "API"
2623
+ * ("api" is a dictionary-fr headword). Same class of ambiguity as "Apple"
2624
+ * the fruit vs. "Apple" the company; see the test suite for more cases.
2625
+ * Callers who need a specific term protected can pass it via
2626
+ * `preservedTerms`.
2627
+ *
2628
+ * Examples:
2629
+ * "Your Next AI Skill Is Worldbuilding" -> "Your next AI skill is Worldbuilding"
2630
+ * "How To Use The API For HTTP Calls" -> "How to use the API for HTTP calls"
2631
+ * "The OpenAI Revolution" -> "The OpenAI revolution"
2632
+ * "Macron Meets Zelensky In Kyiv" -> "Macron meets Zelensky in Kyiv" (see caveat above: "macron" collides with a real word, so it *does* get lowercased — see tests)
2633
+ * "Cursor: the compression of mechanical work" -> unchanged
2634
+ * "AI is making us smarter" -> unchanged
2635
+ */
2636
+ /**
2637
+ * Terms `npm run generate:terms` (see scripts/generate-preserved-terms.ts)
2638
+ * cannot derive from the cspell dictionaries, kept here by hand. Stays
2639
+ * short and deliberate on purpose:
2640
+ *
2641
+ * - 'I' — the pronoun is always capitalized in English. It's excluded from
2642
+ * the generated list because lowercase "i" is a genuine dictionary
2643
+ * headword (the math/code variable) in both EN and FR, so a plain
2644
+ * spelling-dictionary lookup would incorrectly lowercase it; this one
2645
+ * hardcoded linguistic rule overrides that.
2646
+ * - 'AI' — a real gap: dictionary-en does list uppercase "AI" as a valid
2647
+ * headword these days, but lowercase "ai" is *also* a genuine French verb
2648
+ * form ("j'ai" — I have). With French enabled by default, a plain
2649
+ * dictionary lookup on the lowercased token would find "ai" valid via
2650
+ * French and wrongly lowercase the acronym. The explicit preserved-term
2651
+ * entry (checked before any dictionary access) sidesteps the collision
2652
+ * entirely.
2653
+ * - 'OAuth' — not a dictionary headword in either language, so on its own
2654
+ * it would already survive mid-title via the "unrecognized -> preserve"
2655
+ * default. The entry earns its keep for input that doesn't already use
2656
+ * the canonical casing (e.g. "Oauth"), restoring it to "OAuth".
2657
+ *
2658
+ * Deliberately NOT re-added, even though they were in the old hardcoded
2659
+ * list and cspell doesn't source them either:
2660
+ * - 'Apple', 'Meta', 'Linear', 'Operator', 'Codex', 'Google', 'Slack',
2661
+ * 'Notion', 'Cursor', 'Amazon', 'Grok', 'TypeScript', 'Python', 'React'
2662
+ * — each collides with a genuine lowercase English dictionary word
2663
+ * (apple, meta, linear, operator, codex, google, slack, notion, cursor,
2664
+ * amazon, grok, typescript, python, react). Preserving them
2665
+ * unconditionally would wrongly force-capitalize the common word too;
2666
+ * the dictionary-lookup fallback applies the same ambiguity rule
2667
+ * automatically for terms that aren't hand- or cspell-listed.
2668
+ * - 'Node.js', 'Next.js' — can't be represented as a single preserved
2669
+ * term anyway: the tokenizer below splits on '.', so these would only
2670
+ * ever match a lone "Node"/"Next" token. Both "node" and "next" are
2671
+ * common dictionary words, so adding them would incorrectly preserve
2672
+ * ordinary title-case capitalization of unrelated sentences.
2673
+ * - 'iOS', 'macOS' — no longer needed. Both have an internal lower→upper
2674
+ * transition ("iOS", "macOS"), so the mixed-case heuristic (checked
2675
+ * before any dictionary access) already preserves them without an
2676
+ * explicit entry.
2677
+ */
2678
+ const MANUAL_PRESERVED_TERMS = [
2679
+ "I",
2680
+ "AI",
2681
+ "OAuth"
2682
+ ];
2683
+ const WORD_PATTERN = /(?<word>[\p{L}0-9']+)/u;
2684
+ const HAS_LOWER_THEN_UPPER = /\p{Ll}\p{Lu}/u;
2685
+ const HAS_UPPER = /\p{Lu}/u;
2686
+ const HAS_LOWER = /\p{Ll}/u;
2687
+ const HAS_LETTER = /\p{L}/u;
2688
+ const SENTENCE_END_PATTERN = /[.!?]/;
2689
+ const DICTIONARY_PACKAGE = {
2690
+ en: "dictionary-en",
2691
+ fr: "dictionary-fr"
2692
+ };
2693
+ /**
2694
+ * Lazily-built singleton map (lowercase -> canonical casing) for the
2695
+ * combined default preserved terms. Built once on first use and reused for
2696
+ * every call that doesn't ask to replace the defaults entirely.
2697
+ */
2698
+ let defaultPreservedMap = null;
2699
+ function getDefaultPreservedMap() {
2700
+ if (!defaultPreservedMap) {
2701
+ const map = /* @__PURE__ */ new Map();
2702
+ for (const term of GENERATED_PRESERVED_TERMS) map.set(term.toLowerCase(), term);
2703
+ for (const term of MANUAL_PRESERVED_TERMS) map.set(term.toLowerCase(), term);
2704
+ defaultPreservedMap = map;
2705
+ }
2706
+ return defaultPreservedMap;
2707
+ }
2708
+ /**
2709
+ * Lazily-constructed, per-language `nspell` singletons. Parsing a Hunspell
2710
+ * affix + dictionary file costs roughly 100-300ms, so an instance is only
2711
+ * ever built the first time a token *actually* requires a dictionary lookup
2712
+ * (never at module import, never at the first `toSentenceCase` call if that
2713
+ * call's tokens are all resolved by the cheaper fast paths first). Each
2714
+ * language is independent: a call that only uses `languages: ['en']` never
2715
+ * pays the French parsing cost, and vice versa.
2716
+ */
2717
+ const spellCheckers = /* @__PURE__ */ new Map();
2718
+ /**
2719
+ * `dictionary-en`/`dictionary-fr` ship an async default export (they read
2720
+ * their `.aff`/`.dic` files with `fs.promises.readFile` at import time), but
2721
+ * `toSentenceCase` must stay synchronous. We bypass their package entry
2722
+ * point entirely and read the underlying Hunspell data files ourselves with
2723
+ * a synchronous `readFileSync`, resolving the package directory via
2724
+ * `createRequire` (works from both the ESM and CJS build outputs).
2725
+ */
2726
+ const nodeRequire = createRequire(import.meta.url);
2727
+ function loadSpellChecker(language) {
2728
+ const packageEntry = nodeRequire.resolve(DICTIONARY_PACKAGE[language]);
2729
+ const packageDir = path.dirname(packageEntry);
2730
+ return nspell({
2731
+ aff: readFileSync(path.join(packageDir, "index.aff")),
2732
+ dic: readFileSync(path.join(packageDir, "index.dic"))
2733
+ });
2734
+ }
2735
+ function getSpellChecker(language) {
2736
+ let checker = spellCheckers.get(language);
2737
+ if (!checker) {
2738
+ checker = loadSpellChecker(language);
2739
+ spellCheckers.set(language, checker);
2740
+ }
2741
+ return checker;
2742
+ }
2743
+ /**
2744
+ * Memoizes dictionary verdicts (`"<lang>\0<word>"` -> `correct(word)`) since
2745
+ * headline-style text repeats the same handful of words constantly. Bounded
2746
+ * to avoid unbounded growth across a long-running process; eviction is a
2747
+ * simple FIFO (oldest-inserted entry dropped first) rather than true LRU —
2748
+ * good enough for this access pattern and far cheaper to maintain.
2749
+ */
2750
+ const MAX_VERDICT_CACHE_ENTRIES = 1e4;
2751
+ const spellVerdictCache = /* @__PURE__ */ new Map();
2752
+ function isKnownSpelling(word, language) {
2753
+ const key = `${language}${word}`;
2754
+ const cached = spellVerdictCache.get(key);
2755
+ if (cached !== void 0) return cached;
2756
+ const verdict = getSpellChecker(language).correct(word);
2757
+ if (spellVerdictCache.size >= MAX_VERDICT_CACHE_ENTRIES) {
2758
+ const oldestKey = spellVerdictCache.keys().next().value;
2759
+ if (oldestKey !== void 0) spellVerdictCache.delete(oldestKey);
2760
+ }
2761
+ spellVerdictCache.set(key, verdict);
2762
+ return verdict;
2763
+ }
2764
+ /** Whether `word` is recognized (case-sensitively) by any of `languages`, checked in order. */
2765
+ function isKnownInAnyLanguage(word, languages) {
2766
+ for (const language of languages) if (isKnownSpelling(word, language)) return true;
2767
+ return false;
2768
+ }
2769
+ /**
2770
+ * Normalizes Title Case overuse back to sentence case.
2771
+ *
2772
+ * @param text - The text to normalize
2773
+ * @param options - Normalization options
2774
+ * @returns The normalized text, or the original text if it doesn't look like Title Case
2775
+ */
2776
+ function toSentenceCase(text, options = {}) {
2777
+ if (!text) return text;
2778
+ const localPreservedMap = /* @__PURE__ */ new Map();
2779
+ for (const term of options.preservedTerms ?? []) localPreservedMap.set(term.toLowerCase(), term);
2780
+ const defaultMap = options.replacePreserved ? null : getDefaultPreservedMap();
2781
+ const lookupPreserved = (lower) => localPreservedMap.get(lower) ?? defaultMap?.get(lower);
2782
+ const threshold = options.titleCaseThreshold ?? .6;
2783
+ const minWords = options.minWords ?? 3;
2784
+ const languages = options.languages ?? ["en", "fr"];
2785
+ const tokens = text.split(WORD_PATTERN);
2786
+ const wordTokens = tokens.filter((t) => WORD_PATTERN.test(t) && HAS_LETTER.test(t));
2787
+ if (wordTokens.length < minWords) return text;
2788
+ if (wordTokens.filter((t) => HAS_UPPER.test(t[0] ?? "")).length / wordTokens.length < threshold) return text;
2789
+ let isFirstWord = true;
2790
+ let nextStartsSentence = false;
2791
+ return tokens.map((tok) => {
2792
+ if (!WORD_PATTERN.test(tok) || !HAS_LETTER.test(tok)) {
2793
+ if (SENTENCE_END_PATTERN.test(tok)) nextStartsSentence = true;
2794
+ return tok;
2795
+ }
2796
+ const startsNewSentence = isFirstWord || nextStartsSentence;
2797
+ isFirstWord = false;
2798
+ nextStartsSentence = false;
2799
+ const preserved = lookupPreserved(tok.toLowerCase());
2800
+ if (preserved) return preserved;
2801
+ if (HAS_LOWER_THEN_UPPER.test(tok)) return tok;
2802
+ if (startsNewSentence) return tok[0].toUpperCase() + tok.slice(1).toLowerCase();
2803
+ if (!HAS_UPPER.test(tok)) return tok;
2804
+ if (!HAS_LOWER.test(tok) && tok.length >= 2) {
2805
+ const lower = tok.toLowerCase();
2806
+ if (isKnownInAnyLanguage(lower, languages)) return lower;
2807
+ const titleCased = tok[0] + tok.slice(1).toLowerCase();
2808
+ if (isKnownInAnyLanguage(titleCased, languages)) return titleCased;
2809
+ return tok;
2810
+ }
2811
+ const lower = tok.toLowerCase();
2812
+ if (isKnownInAnyLanguage(lower, languages)) return lower;
2813
+ return tok;
2814
+ }).join("");
2815
+ }
2816
+ //#endregion
2817
+ export { cleanAiText, toSentenceCase };
2818
+
2819
+ //# sourceMappingURL=formatting.js.map