@visulima/vis 1.0.0-alpha.11 → 1.0.0-alpha.13

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 (116) hide show
  1. package/CHANGELOG.md +101 -0
  2. package/LICENSE.md +559 -186
  3. package/README.md +18 -0
  4. package/dist/bin.js +1 -9
  5. package/dist/config/index.d.ts +477 -556
  6. package/dist/config/index.js +1 -2
  7. package/dist/generate/index.js +1 -3
  8. package/dist/packem_chunks/applyDefaults.js +2 -336
  9. package/dist/packem_chunks/bin.js +234 -9552
  10. package/dist/packem_chunks/doctor-probe.js +2 -112
  11. package/dist/packem_chunks/fix.js +11 -234
  12. package/dist/packem_chunks/handler.js +1 -99
  13. package/dist/packem_chunks/handler10.js +2 -53
  14. package/dist/packem_chunks/handler11.js +1 -32
  15. package/dist/packem_chunks/handler12.js +5 -100
  16. package/dist/packem_chunks/handler13.js +1 -25
  17. package/dist/packem_chunks/handler14.js +18 -916
  18. package/dist/packem_chunks/handler15.js +15 -201
  19. package/dist/packem_chunks/handler16.js +1 -124
  20. package/dist/packem_chunks/handler17.js +1 -13
  21. package/dist/packem_chunks/handler18.js +1 -106
  22. package/dist/packem_chunks/handler19.js +1 -19
  23. package/dist/packem_chunks/handler2.js +2 -75
  24. package/dist/packem_chunks/handler20.js +5 -29
  25. package/dist/packem_chunks/handler21.js +1 -222
  26. package/dist/packem_chunks/handler22.js +1 -237
  27. package/dist/packem_chunks/handler23.js +5 -101
  28. package/dist/packem_chunks/handler24.js +1 -110
  29. package/dist/packem_chunks/handler25.js +3 -402
  30. package/dist/packem_chunks/handler26.js +1 -13
  31. package/dist/packem_chunks/handler27.js +1 -63
  32. package/dist/packem_chunks/handler28.js +7 -34
  33. package/dist/packem_chunks/handler29.js +21 -456
  34. package/dist/packem_chunks/handler3.js +4 -95
  35. package/dist/packem_chunks/handler30.js +3 -170
  36. package/dist/packem_chunks/handler31.js +1 -530
  37. package/dist/packem_chunks/handler32.js +2 -214
  38. package/dist/packem_chunks/handler33.js +25 -119
  39. package/dist/packem_chunks/handler34.js +2 -630
  40. package/dist/packem_chunks/handler35.js +3 -283
  41. package/dist/packem_chunks/handler36.js +22 -542
  42. package/dist/packem_chunks/handler37.js +410 -744
  43. package/dist/packem_chunks/handler38.js +22 -989
  44. package/dist/packem_chunks/handler39.js +22 -574
  45. package/dist/packem_chunks/handler4.js +2 -90
  46. package/dist/packem_chunks/handler40.js +22 -1685
  47. package/dist/packem_chunks/handler41.js +6 -1088
  48. package/dist/packem_chunks/handler42.js +5 -797
  49. package/dist/packem_chunks/handler43.js +10 -2658
  50. package/dist/packem_chunks/handler44.js +51 -3784
  51. package/dist/packem_chunks/handler45.js +25 -2574
  52. package/dist/packem_chunks/handler46.js +3 -3769
  53. package/dist/packem_chunks/handler47.js +21 -1485
  54. package/dist/packem_chunks/handler48.js +42 -0
  55. package/dist/packem_chunks/handler5.js +8 -174
  56. package/dist/packem_chunks/handler6.js +1 -95
  57. package/dist/packem_chunks/handler7.js +1 -115
  58. package/dist/packem_chunks/handler8.js +1 -12
  59. package/dist/packem_chunks/handler9.js +1 -29
  60. package/dist/packem_chunks/heal-accept.js +10 -522
  61. package/dist/packem_chunks/heal.js +14 -673
  62. package/dist/packem_chunks/index.js +7 -873
  63. package/dist/packem_chunks/loader.js +1 -23
  64. package/dist/packem_chunks/tar.js +3 -0
  65. package/dist/packem_shared/ai-analysis-hm8d2W7z.js +67 -0
  66. package/dist/packem_shared/ai-cache-DoiF80AR.js +1 -0
  67. package/dist/packem_shared/ai-fix-nn4zOE95.js +43 -0
  68. package/dist/packem_shared/cache-directory-CwHlJhgx.js +1 -0
  69. package/dist/packem_shared/dependency-scan-COr5n63B.js +2 -0
  70. package/dist/packem_shared/docker-D6OGr5_S.js +2 -0
  71. package/dist/packem_shared/failure-log-iUVLf6ts.js +2 -0
  72. package/dist/packem_shared/flakiness-D9wf0t56.js +1 -0
  73. package/dist/packem_shared/giget-CcEy_Elm.js +2 -0
  74. package/dist/packem_shared/index-DH-5hsrC.js +1 -0
  75. package/dist/packem_shared/otel-DxDUPJJH.js +6 -0
  76. package/dist/packem_shared/otelPlugin-CQq6poq8.js +1 -0
  77. package/dist/packem_shared/registry-CkubDdiY.js +2 -0
  78. package/dist/packem_shared/run-summary-utils-BfBvjzhY.js +1 -0
  79. package/dist/packem_shared/runtime-check-BXZ43CBW.js +1 -0
  80. package/dist/packem_shared/selectors-BylODRiM.js +3 -0
  81. package/dist/packem_shared/symbols-CQmER5MT.js +1 -0
  82. package/dist/packem_shared/toolchain-BgBOUHII.js +5 -0
  83. package/dist/packem_shared/typosquats-CcZl99B1.js +1 -0
  84. package/dist/packem_shared/use-measured-height-DjYgUOKk.js +1 -0
  85. package/dist/packem_shared/utils-DrNg0XTR.js +1 -0
  86. package/dist/packem_shared/verify-Baj5mFJ7.js +1 -0
  87. package/dist/packem_shared/vis-update-app-D1jl0UZZ.js +1 -0
  88. package/dist/packem_shared/xxh3-DrAUNq4n.js +1 -0
  89. package/index.js +556 -727
  90. package/package.json +19 -29
  91. package/schemas/project.schema.json +739 -297
  92. package/schemas/vis-config.schema.json +3365 -384
  93. package/templates/buildkite-ci/template.yml +20 -20
  94. package/dist/packem_shared/VisUpdateApp-D-Yz_wvg.js +0 -1316
  95. package/dist/packem_shared/_commonjsHelpers-BqLXS_qQ.js +0 -5
  96. package/dist/packem_shared/ai-analysis-CHeB1joD.js +0 -367
  97. package/dist/packem_shared/ai-cache-Be_jexe4.js +0 -142
  98. package/dist/packem_shared/ai-fix-B9iQVcD2.js +0 -379
  99. package/dist/packem_shared/cache-directory-2qvs4goY.js +0 -98
  100. package/dist/packem_shared/catalog-BJTtyi-O.js +0 -1371
  101. package/dist/packem_shared/dependency-scan-A0KSklpG.js +0 -188
  102. package/dist/packem_shared/docker-2iZzc280.js +0 -181
  103. package/dist/packem_shared/failure-log-Cz3Z4SKL.js +0 -100
  104. package/dist/packem_shared/flakiness-goTxXuCX.js +0 -180
  105. package/dist/packem_shared/otel-DCvqCTz_.js +0 -158
  106. package/dist/packem_shared/otelPlugin-DFaLDvJf.js +0 -3
  107. package/dist/packem_shared/registry-CbqXI0rc.js +0 -272
  108. package/dist/packem_shared/run-summary-utils-PVMl4aIh.js +0 -130
  109. package/dist/packem_shared/runtime-check-Cobi3p6l.js +0 -127
  110. package/dist/packem_shared/selectors-SM69TfqC.js +0 -194
  111. package/dist/packem_shared/symbols-Ta7g2nU-.js +0 -14
  112. package/dist/packem_shared/toolchain-BdZd9eBi.js +0 -975
  113. package/dist/packem_shared/typosquats-C-bCh3PX.js +0 -1210
  114. package/dist/packem_shared/use-measured-height-CNP0vT4M.js +0 -20
  115. package/dist/packem_shared/utils-CthVdBPS.js +0 -40
  116. package/dist/packem_shared/xxh3-Ck8mXNg1.js +0 -239
@@ -1,1210 +0,0 @@
1
- import { createRequire as __cjs_createRequire } from "node:module";
2
-
3
- const __cjs_require = __cjs_createRequire(import.meta.url);
4
-
5
- const __cjs_getProcess = typeof globalThis !== "undefined" && typeof globalThis.process !== "undefined" ? globalThis.process : process;
6
-
7
- const __cjs_getBuiltinModule = (module) => {
8
- // Check if we're in Node.js and version supports getBuiltinModule
9
- if (typeof __cjs_getProcess !== "undefined" && __cjs_getProcess.versions && __cjs_getProcess.versions.node) {
10
- const [major, minor] = __cjs_getProcess.versions.node.split(".").map(Number);
11
- // Node.js 20.16.0+ and 22.3.0+
12
- if (major > 22 || (major === 22 && minor >= 3) || (major === 20 && minor >= 16)) {
13
- return __cjs_getProcess.getBuiltinModule(module);
14
- }
15
- }
16
- // Fallback to createRequire
17
- return __cjs_require(module);
18
- };
19
-
20
- const {
21
- createInterface
22
- } = __cjs_getBuiltinModule("node:readline");
23
- import { red, yellow } from '@visulima/colorize';
24
- import { isAccessibleSync, readJsonSync } from '@visulima/fs';
25
- import { join } from '@visulima/path';
26
- import { g as getDefaultExportFromCjs } from './_commonjsHelpers-BqLXS_qQ.js';
27
- import { p as pail } from '../packem_chunks/bin.js';
28
-
29
- var ajv = [
30
- "aj",
31
- "aju",
32
- "av",
33
- "avj",
34
- "ejv",
35
- "jav",
36
- "jv"
37
- ];
38
- var angular = [
39
- "angula",
40
- "angular-node",
41
- "angularjs"
42
- ];
43
- var autoprefixer = [
44
- "auto-prefixer"
45
- ];
46
- var axios = [
47
- "aaxios",
48
- "aios",
49
- "axio",
50
- "axioos",
51
- "axios-node",
52
- "axioss",
53
- "axis",
54
- "axiso",
55
- "axois",
56
- "axos",
57
- "axxios"
58
- ];
59
- var babel = [
60
- "abel",
61
- "babbel",
62
- "babe",
63
- "babel-js",
64
- "babel-node",
65
- "babl",
66
- "bable",
67
- "bbael",
68
- "bebel"
69
- ];
70
- var bcrypt = [
71
- "bcrpyt",
72
- "bcrypt-node",
73
- "brcypt",
74
- "crypt",
75
- "dcrypt"
76
- ];
77
- var bcryptjs = [
78
- "bcryptjs-node",
79
- "dcryptjs"
80
- ];
81
- var bunyan = [
82
- "bunan",
83
- "bunya",
84
- "bunyan-node",
85
- "buynan"
86
- ];
87
- var chai = [
88
- "cai",
89
- "cha",
90
- "chaijs",
91
- "chal",
92
- "chi",
93
- "chia",
94
- "hai"
95
- ];
96
- var chalk = [
97
- "cahlk",
98
- "calk",
99
- "cchalk",
100
- "ch4lk",
101
- "cha1k",
102
- "chaalk",
103
- "chaik",
104
- "chak",
105
- "chakl",
106
- "chalk-node",
107
- "chalkk",
108
- "challk",
109
- "chhalk",
110
- "chlak",
111
- "chlk",
112
- "halk",
113
- "hcalk"
114
- ];
115
- var cheerio = [
116
- "cheero",
117
- "cherio"
118
- ];
119
- var color = [
120
- "c0lor",
121
- "ccolor",
122
- "clor",
123
- "colo",
124
- "coloor",
125
- "color-js",
126
- "colorjs",
127
- "colorr",
128
- "colr",
129
- "coolor",
130
- "coolr"
131
- ];
132
- var colors = [
133
- "ccolors",
134
- "colors-node",
135
- "colorss",
136
- "colorz",
137
- "colrs",
138
- "coolors"
139
- ];
140
- var commander = [
141
- "c0mmander",
142
- "ccommander",
143
- "cmmander",
144
- "cmomander",
145
- "co-mmander",
146
- "comamnder",
147
- "comander",
148
- "comm4nder",
149
- "commaander",
150
- "commader",
151
- "commadner",
152
- "commamder",
153
- "command3r",
154
- "commandder",
155
- "commande",
156
- "commandeer",
157
- "commander-js",
158
- "commanderr",
159
- "commandr",
160
- "commandre",
161
- "commanedr",
162
- "commaner",
163
- "commannder",
164
- "commender",
165
- "commmander",
166
- "commnader",
167
- "commnder",
168
- "coommander",
169
- "ocmmander",
170
- "ommander"
171
- ];
172
- var cors = [
173
- "cor",
174
- "corss",
175
- "cos",
176
- "cosr",
177
- "cros",
178
- "crs",
179
- "ors"
180
- ];
181
- var dayjs = [
182
- "days"
183
- ];
184
- var debug = [
185
- "d3bug",
186
- "dbeug",
187
- "dbug",
188
- "ddebug",
189
- "debbug",
190
- "debg",
191
- "debgu",
192
- "debu",
193
- "debu9",
194
- "debug-js",
195
- "debug-node",
196
- "debugg",
197
- "debugjs",
198
- "debuug",
199
- "deebug",
200
- "deubg",
201
- "deug",
202
- "ebug",
203
- "edbug"
204
- ];
205
- var dotenv = [
206
- "dot-env",
207
- "dotenv-node",
208
- "dotenvjs",
209
- "dotevn"
210
- ];
211
- var electron = [
212
- "3lectron",
213
- "eectron",
214
- "eelctron",
215
- "eelectron",
216
- "el3ctron",
217
- "elcetron",
218
- "elctron",
219
- "elecctron",
220
- "elecron",
221
- "elecrton",
222
- "electon",
223
- "electorn",
224
- "electr0n",
225
- "electrn",
226
- "electrno",
227
- "electro",
228
- "electrom",
229
- "electron-node",
230
- "electronn",
231
- "electroon",
232
- "electrron",
233
- "electtron",
234
- "eleectron",
235
- "eletcron",
236
- "eletron",
237
- "ellectron",
238
- "lectron",
239
- "leectron"
240
- ];
241
- var esbuild = [
242
- "asbuild",
243
- "ebuild",
244
- "esbuild-node",
245
- "esbuildjs",
246
- "ezbuild",
247
- "sbuild"
248
- ];
249
- var eslint = [
250
- "aslint",
251
- "elint",
252
- "eslint-js",
253
- "eslint-node",
254
- "eslit",
255
- "ezlint",
256
- "slint"
257
- ];
258
- var express = [
259
- "eexpress",
260
- "epress",
261
- "epxress",
262
- "experss",
263
- "expess",
264
- "exppress",
265
- "expreess",
266
- "expres",
267
- "express-node",
268
- "expressjs",
269
- "expresss",
270
- "exprress",
271
- "exprses",
272
- "exprss",
273
- "exress",
274
- "exrpess",
275
- "exxpress",
276
- "xepress",
277
- "xpress"
278
- ];
279
- var fastify = [
280
- "astify"
281
- ];
282
- var firebase = [
283
- "firebasejs"
284
- ];
285
- var formidable = [
286
- "form1dable"
287
- ];
288
- var glob = [
289
- "glb",
290
- "glo",
291
- "glob-js",
292
- "globjs",
293
- "gob",
294
- "golb",
295
- "lob"
296
- ];
297
- var got = [
298
- "go",
299
- "goot",
300
- "gotjs",
301
- "gott",
302
- "gt",
303
- "gto",
304
- "ogt",
305
- "ot",
306
- "qot"
307
- ];
308
- var helmet = [
309
- "helmetjs",
310
- "helnet"
311
- ];
312
- var hono = [
313
- "homo",
314
- "hon",
315
- "hoo",
316
- "hoon",
317
- "ohno",
318
- "ono"
319
- ];
320
- var inquirer = [
321
- "inquire",
322
- "inquirer-js",
323
- "nquirer"
324
- ];
325
- var ioredis = [
326
- "iredis"
327
- ];
328
- var jest = [
329
- "ejst",
330
- "est",
331
- "jast",
332
- "jes",
333
- "jestjs",
334
- "jestt",
335
- "jet",
336
- "jets",
337
- "jst"
338
- ];
339
- var jimp = [
340
- "imp",
341
- "jim",
342
- "jip",
343
- "jmp"
344
- ];
345
- var joi = [
346
- "ji",
347
- "jio",
348
- "jo",
349
- "joii",
350
- "jol",
351
- "oi",
352
- "oji"
353
- ];
354
- var jsdom = [
355
- "jdom",
356
- "jsdm",
357
- "jsdo",
358
- "jsdom-js",
359
- "jsdon",
360
- "jsom",
361
- "sdom"
362
- ];
363
- var jsonwebtoken = [
364
- "jsonwebtoken-js",
365
- "jsonwebtoken-node"
366
- ];
367
- var koa = [
368
- "ka",
369
- "kao",
370
- "ko",
371
- "koaa",
372
- "koajs",
373
- "koe",
374
- "oa",
375
- "oka"
376
- ];
377
- var lodash = [
378
- "1odash",
379
- "iodash",
380
- "l0dash",
381
- "ldash",
382
- "ldoash",
383
- "llodash",
384
- "lo-dash",
385
- "loadsh",
386
- "loash",
387
- "lobash",
388
- "lod4sh",
389
- "lodaash",
390
- "lodah",
391
- "lodahs",
392
- "lodas",
393
- "lodash-node",
394
- "lodashh",
395
- "lodassh",
396
- "loddash",
397
- "lodesh",
398
- "lodsah",
399
- "lodsh",
400
- "loodash",
401
- "odash",
402
- "oldash"
403
- ];
404
- var lucia = [
405
- "luca",
406
- "luci",
407
- "lucie"
408
- ];
409
- var luxon = [
410
- "luon",
411
- "luxo",
412
- "luxon-js"
413
- ];
414
- var micromatch = [
415
- "imcromatch",
416
- "mciromatch",
417
- "micormatch",
418
- "micrmoatch",
419
- "micro-match",
420
- "microamtch",
421
- "micromacth",
422
- "micromathc",
423
- "micromtach",
424
- "mircomatch"
425
- ];
426
- var minimatch = [
427
- "minimath"
428
- ];
429
- var mocha = [
430
- "mcha",
431
- "mmocha",
432
- "moca",
433
- "moch",
434
- "mocha-js",
435
- "moha",
436
- "nocha",
437
- "ocha"
438
- ];
439
- var moment = [
440
- "m0ment",
441
- "mment",
442
- "mmoent",
443
- "mmoment",
444
- "moemnt",
445
- "moent",
446
- "mom3nt",
447
- "momeent",
448
- "momemt",
449
- "momen",
450
- "momen7",
451
- "momennt",
452
- "moment-js",
453
- "momentjs",
454
- "momentt",
455
- "momet",
456
- "mometn",
457
- "momment",
458
- "momnet",
459
- "momnt",
460
- "monent",
461
- "mooment",
462
- "oment",
463
- "omment"
464
- ];
465
- var mongoose = [
466
- "mognoose",
467
- "mogoose",
468
- "mongoos",
469
- "mongose",
470
- "monqoose",
471
- "moongoose"
472
- ];
473
- var morgan = [
474
- "moran",
475
- "organ"
476
- ];
477
- var multer = [
478
- "muler",
479
- "multer-js",
480
- "muter"
481
- ];
482
- var mysql2 = [
483
- "mysql"
484
- ];
485
- var next = [
486
- "ext",
487
- "mext",
488
- "n3xt",
489
- "naxt",
490
- "net",
491
- "netx",
492
- "nex",
493
- "next-js",
494
- "next-node",
495
- "nextjs",
496
- "nxt"
497
- ];
498
- var nodemailer = [
499
- "node-mailer",
500
- "nodemailer-js"
501
- ];
502
- var nodemon = [
503
- "nodemo",
504
- "nodemonjs",
505
- "nodmeon"
506
- ];
507
- var ora = [
508
- "oar",
509
- "or",
510
- "ora-node",
511
- "ore",
512
- "ra",
513
- "roa"
514
- ];
515
- var parcel = [
516
- "arcel",
517
- "parce",
518
- "parceljs"
519
- ];
520
- var passport = [
521
- "passport-js"
522
- ];
523
- var phaser = [
524
- "phase",
525
- "phaser-node"
526
- ];
527
- var pino = [
528
- "ino",
529
- "pimo",
530
- "pin",
531
- "pino-node",
532
- "pinojs",
533
- "pio",
534
- "pion"
535
- ];
536
- var playwright = [
537
- "playright",
538
- "playwright-js"
539
- ];
540
- var postcss = [
541
- "postcss-js",
542
- "postcss-node",
543
- "potscss"
544
- ];
545
- var prettier = [
546
- "pettier",
547
- "pprettier",
548
- "pretier",
549
- "prettierjs",
550
- "prettierr",
551
- "prtetier"
552
- ];
553
- var prisma = [
554
- "prima",
555
- "prism",
556
- "prisma-js",
557
- "prismajs",
558
- "prizma"
559
- ];
560
- var puppeteer = [
561
- "pupeteer"
562
- ];
563
- var ramda = [
564
- "rada",
565
- "rama",
566
- "ramd",
567
- "randa"
568
- ];
569
- var react = [
570
- "eact",
571
- "eract",
572
- "r3act",
573
- "raact",
574
- "ract",
575
- "raect",
576
- "re4ct",
577
- "reaact",
578
- "reac",
579
- "reac7",
580
- "reacct",
581
- "react-node",
582
- "reactjs",
583
- "reactt",
584
- "reat",
585
- "reatc",
586
- "recat",
587
- "rect",
588
- "reeact",
589
- "reect",
590
- "rreact"
591
- ];
592
- var redis = [
593
- "erdis",
594
- "radis",
595
- "rdis",
596
- "redi",
597
- "redis-js",
598
- "redis-node",
599
- "rediss",
600
- "rediz",
601
- "reds",
602
- "reis",
603
- "rredis"
604
- ];
605
- var resend = [
606
- "resen",
607
- "rsend"
608
- ];
609
- var rollup = [
610
- "ollup",
611
- "rollup-js",
612
- "rollup-node"
613
- ];
614
- var sass = [
615
- "ass",
616
- "asss",
617
- "sas",
618
- "sass-node",
619
- "sess",
620
- "ssas",
621
- "sss"
622
- ];
623
- var semver = [
624
- "emver",
625
- "seemver",
626
- "semver-node",
627
- "semvre",
628
- "senver",
629
- "sever"
630
- ];
631
- var sequelize = [
632
- "sequelize-js",
633
- "sequelize-node"
634
- ];
635
- var sharp = [
636
- "harp",
637
- "shap",
638
- "shar",
639
- "sharp-js",
640
- "sharpjs"
641
- ];
642
- var stripe = [
643
- "stipe",
644
- "strip",
645
- "stripe-node",
646
- "tripe"
647
- ];
648
- var supabase = [
649
- "supabase-js"
650
- ];
651
- var svelte = [
652
- "suelte",
653
- "svelt3",
654
- "svelte-js",
655
- "sveltejs",
656
- "velte"
657
- ];
658
- var tailwindcss = [
659
- "tailwindcss-js"
660
- ];
661
- var tauri = [
662
- "auri",
663
- "taui"
664
- ];
665
- var three = [
666
- "hree",
667
- "htree",
668
- "thee",
669
- "there",
670
- "three-js",
671
- "three-node",
672
- "tree"
673
- ];
674
- var tsx = [
675
- "stx",
676
- "sx",
677
- "ts",
678
- "tsxx",
679
- "ttsx",
680
- "tx",
681
- "txs",
682
- "tzx"
683
- ];
684
- var typescript = [
685
- "ttypescript",
686
- "typecript",
687
- "typescipt",
688
- "typescript-node",
689
- "typescriptjs",
690
- "typescrit",
691
- "typescritp"
692
- ];
693
- var underscore = [
694
- "udnerscore",
695
- "undercore",
696
- "underscoer",
697
- "underscore-node",
698
- "underscroe",
699
- "undersocre",
700
- "undesrcore"
701
- ];
702
- var uuid = [
703
- "uid",
704
- "uud",
705
- "uudi",
706
- "uui",
707
- "uuid-js",
708
- "uuid-node",
709
- "uuidjs",
710
- "vuid"
711
- ];
712
- var vite = [
713
- "ite",
714
- "vie",
715
- "vit",
716
- "vita",
717
- "vite-node",
718
- "vitee",
719
- "vlte",
720
- "vte"
721
- ];
722
- var vitest = [
723
- "itest",
724
- "uitest",
725
- "vitestjs",
726
- "vitezt",
727
- "vittest",
728
- "vtest"
729
- ];
730
- var vue = [
731
- "ue",
732
- "uue",
733
- "uve",
734
- "ve",
735
- "veu",
736
- "vu",
737
- "vu3",
738
- "vua",
739
- "vue-node",
740
- "vuee",
741
- "vuejs",
742
- "vuue",
743
- "vve",
744
- "vvue"
745
- ];
746
- var webpack = [
747
- "web-pack",
748
- "weback",
749
- "webpac",
750
- "webpack-node",
751
- "webpackjs",
752
- "webpak",
753
- "weebpack",
754
- "wepack",
755
- "wepback"
756
- ];
757
- var winston = [
758
- "winson",
759
- "winston-js",
760
- "winstoon"
761
- ];
762
- var yup = [
763
- "up",
764
- "uyp",
765
- "yp",
766
- "yu",
767
- "yupjs",
768
- "yupp"
769
- ];
770
- var zod = [
771
- "od",
772
- "zd",
773
- "zdo",
774
- "zo",
775
- "zob",
776
- "zod-js",
777
- "zodjs"
778
- ];
779
- const autoBlocklistData = {
780
- ajv: ajv,
781
- angular: angular,
782
- autoprefixer: autoprefixer,
783
- "aws-sdk": [
784
- "awssdk",
785
- "ews-sdk"
786
- ],
787
- axios: axios,
788
- babel: babel,
789
- bcrypt: bcrypt,
790
- bcryptjs: bcryptjs,
791
- "body-parser": [
792
- "body-paresr",
793
- "body-parse",
794
- "body-parser-js",
795
- "body_parser"
796
- ],
797
- bunyan: bunyan,
798
- chai: chai,
799
- chalk: chalk,
800
- cheerio: cheerio,
801
- color: color,
802
- colors: colors,
803
- commander: commander,
804
- "cookie-parser": [
805
- "cookie-parse",
806
- "cookieparser"
807
- ],
808
- cors: cors,
809
- "cross-env": [
810
- "crossenv"
811
- ],
812
- "date-fns": [
813
- "data-fns",
814
- "date-fn"
815
- ],
816
- dayjs: dayjs,
817
- debug: debug,
818
- dotenv: dotenv,
819
- electron: electron,
820
- esbuild: esbuild,
821
- eslint: eslint,
822
- express: express,
823
- fastify: fastify,
824
- firebase: firebase,
825
- formidable: formidable,
826
- glob: glob,
827
- got: got,
828
- helmet: helmet,
829
- hono: hono,
830
- inquirer: inquirer,
831
- ioredis: ioredis,
832
- jest: jest,
833
- jimp: jimp,
834
- joi: joi,
835
- jsdom: jsdom,
836
- jsonwebtoken: jsonwebtoken,
837
- koa: koa,
838
- lodash: lodash,
839
- lucia: lucia,
840
- luxon: luxon,
841
- micromatch: micromatch,
842
- minimatch: minimatch,
843
- mocha: mocha,
844
- moment: moment,
845
- mongoose: mongoose,
846
- morgan: morgan,
847
- multer: multer,
848
- mysql2: mysql2,
849
- next: next,
850
- "node-fetch": [
851
- "node-fecth",
852
- "node-fethc",
853
- "node.fetch"
854
- ],
855
- nodemailer: nodemailer,
856
- nodemon: nodemon,
857
- ora: ora,
858
- parcel: parcel,
859
- passport: passport,
860
- phaser: phaser,
861
- pino: pino,
862
- playwright: playwright,
863
- postcss: postcss,
864
- prettier: prettier,
865
- prisma: prisma,
866
- puppeteer: puppeteer,
867
- ramda: ramda,
868
- react: react,
869
- "react-dom": [
870
- "eact-dom",
871
- "eract-dom",
872
- "r3act-dom",
873
- "ract-dom",
874
- "raect-dom",
875
- "re4ct-dom",
876
- "reaact-dom",
877
- "reac-dom",
878
- "reac7-dom",
879
- "reacct-dom",
880
- "react-bom",
881
- "react-d0m",
882
- "react-ddom",
883
- "react-dm",
884
- "react-dmo",
885
- "react-do",
886
- "react-domm",
887
- "react-don",
888
- "react-doom",
889
- "react-odm",
890
- "react-om",
891
- "react.dom",
892
- "reactdom",
893
- "reactt-dom",
894
- "reat-dom",
895
- "reatc-dom",
896
- "recat-dom",
897
- "rect-dom",
898
- "reeact-dom",
899
- "rreact-dom"
900
- ],
901
- redis: redis,
902
- resend: resend,
903
- rollup: rollup,
904
- sass: sass,
905
- semver: semver,
906
- sequelize: sequelize,
907
- sharp: sharp,
908
- "socket.io": [
909
- "ocket.io",
910
- "oscket.io",
911
- "scket.io",
912
- "scoket.io",
913
- "soccket.io",
914
- "socekt.io",
915
- "socet.io",
916
- "sock3t.io",
917
- "socke.io",
918
- "socke7.io",
919
- "sockeet.io",
920
- "socket.1o",
921
- "socket.i",
922
- "socket.iio",
923
- "socket.ioo",
924
- "socket.lo",
925
- "socket.o",
926
- "socket.oi",
927
- "sockett.io",
928
- "sockket.io",
929
- "sockt.io",
930
- "sockte.io",
931
- "sokcet.io",
932
- "soket.io",
933
- "soocket.io",
934
- "ssocket.io"
935
- ],
936
- stripe: stripe,
937
- supabase: supabase,
938
- svelte: svelte,
939
- tailwindcss: tailwindcss,
940
- tauri: tauri,
941
- three: three,
942
- "ts-node": [
943
- "tts-node"
944
- ],
945
- tsx: tsx,
946
- typescript: typescript,
947
- underscore: underscore,
948
- uuid: uuid,
949
- vite: vite,
950
- vitest: vitest,
951
- vue: vue,
952
- webpack: webpack,
953
- winston: winston,
954
- yup: yup,
955
- zod: zod
956
- };
957
-
958
- var typosquatsManual;
959
- var hasRequiredTyposquatsManual;
960
-
961
- function requireTyposquatsManual () {
962
- if (hasRequiredTyposquatsManual) return typosquatsManual;
963
- hasRequiredTyposquatsManual = 1;
964
- typosquatsManual = {
965
- "@tanstack/start": [
966
- "start-tanstack-app",
967
- "tanstack",
968
- "tanstack-app",
969
- "tanstack-start"
970
- ]
971
- };
972
- return typosquatsManual;
973
- }
974
-
975
- var typosquatsManualExports = /*@__PURE__*/ requireTyposquatsManual();
976
- const manualBlocklistData = /*@__PURE__*/getDefaultExportFromCjs(typosquatsManualExports);
977
-
978
- const SUBSTITUTIONS = {
979
- a: ["4", "e"],
980
- b: ["d"],
981
- d: ["b"],
982
- e: ["3", "a"],
983
- g: ["9", "q"],
984
- i: ["1", "l"],
985
- l: ["1", "i"],
986
- m: ["n"],
987
- n: ["m"],
988
- o: ["0"],
989
- s: ["5", "z"],
990
- t: ["7"],
991
- u: ["v"],
992
- v: ["u"]
993
- };
994
- const SCOPED_BRAND_SUFFIXES = ["app", "cli", "core", "kit", "lib", "pkg", "sdk"];
995
- const generateVariants = (name) => {
996
- const variants = /* @__PURE__ */ new Set();
997
- if (name.length < 3) {
998
- return variants;
999
- }
1000
- for (let i = 0; i < name.length; i++) {
1001
- const isSeparator = name[i] === "-" || name[i] === "." || name[i] === "_";
1002
- if (!isSeparator) {
1003
- variants.add(name.slice(0, i) + name.slice(i + 1));
1004
- }
1005
- if (!isSeparator) {
1006
- variants.add(name.slice(0, i) + name[i] + name.slice(i));
1007
- }
1008
- if (i < name.length - 1 && name[i] !== name[i + 1]) {
1009
- const nextIsSeparator = name[i + 1] === "-" || name[i + 1] === "." || name[i + 1] === "_";
1010
- if (!isSeparator && !nextIsSeparator) {
1011
- const chars = name.split("");
1012
- [chars[i], chars[i + 1]] = [chars[i + 1], chars[i]];
1013
- variants.add(chars.join(""));
1014
- }
1015
- }
1016
- const ch = name[i].toLowerCase();
1017
- const subs = SUBSTITUTIONS[ch];
1018
- if (subs) {
1019
- for (const replacement of subs) {
1020
- variants.add(name.slice(0, i) + replacement + name.slice(i + 1));
1021
- }
1022
- }
1023
- }
1024
- const SEP_RE = /[-._]/g;
1025
- const hasSeparator = SEP_RE.test(name);
1026
- if (hasSeparator) {
1027
- variants.add(name.replaceAll(SEP_RE, ""));
1028
- variants.add(name.replaceAll(SEP_RE, "-"));
1029
- variants.add(name.replaceAll(SEP_RE, "."));
1030
- variants.add(name.replaceAll(SEP_RE, "_"));
1031
- } else if (name.length > 5) {
1032
- for (let i = 2; i < name.length - 2; i++) {
1033
- variants.add(`${name.slice(0, i)}-${name.slice(i)}`);
1034
- variants.add(`${name.slice(0, i)}.${name.slice(i)}`);
1035
- variants.add(`${name.slice(0, i)}_${name.slice(i)}`);
1036
- }
1037
- }
1038
- if (!name.startsWith("@")) {
1039
- variants.add(`${name}-js`);
1040
- variants.add(`${name}js`);
1041
- variants.add(`${name}-node`);
1042
- }
1043
- if (name.startsWith("@")) {
1044
- const slash = name.indexOf("/");
1045
- if (slash > 1 && slash < name.length - 1) {
1046
- const scope = name.slice(1, slash);
1047
- const sub = name.slice(slash + 1);
1048
- if (scope.length >= 3) {
1049
- variants.add(scope);
1050
- }
1051
- for (const sep of ["", "-", ".", "_"]) {
1052
- variants.add(`${scope}${sep}${sub}`);
1053
- variants.add(`${sub}${sep}${scope}`);
1054
- }
1055
- for (const suffix of SCOPED_BRAND_SUFFIXES) {
1056
- variants.add(`${scope}-${suffix}`);
1057
- variants.add(`${sub}-${scope}-${suffix}`);
1058
- variants.add(`${suffix}-${scope}-${sub}`);
1059
- }
1060
- }
1061
- }
1062
- variants.delete(name);
1063
- return variants;
1064
- };
1065
- let cachedBlocklist;
1066
- let cachedReverseLookup;
1067
- const loadBlocklist = () => {
1068
- if (!cachedBlocklist) {
1069
- const merged = {};
1070
- for (const source of [autoBlocklistData, manualBlocklistData]) {
1071
- for (const [legitimate, typosquats] of Object.entries(source)) {
1072
- const bucket = merged[legitimate] ?? (merged[legitimate] = []);
1073
- for (const typo of typosquats) {
1074
- if (!bucket.includes(typo)) {
1075
- bucket.push(typo);
1076
- }
1077
- }
1078
- }
1079
- }
1080
- cachedBlocklist = merged;
1081
- }
1082
- return cachedBlocklist;
1083
- };
1084
- const getReverseLookup = () => {
1085
- if (!cachedReverseLookup) {
1086
- cachedReverseLookup = /* @__PURE__ */ new Map();
1087
- for (const [legitimate, typosquats] of Object.entries(loadBlocklist())) {
1088
- for (const typo of typosquats) {
1089
- cachedReverseLookup.set(typo, legitimate);
1090
- }
1091
- }
1092
- }
1093
- return cachedReverseLookup;
1094
- };
1095
- const bareName = (packageName) => packageName.startsWith("@") ? packageName.split("/")[1] ?? packageName : packageName;
1096
- const checkTyposquat = (packageName) => {
1097
- const bare = bareName(packageName);
1098
- const blocklisted = getReverseLookup().get(bare);
1099
- if (blocklisted) {
1100
- return { input: packageName, legitimate: blocklisted, method: "blocklist" };
1101
- }
1102
- for (const legitimate of Object.keys(loadBlocklist())) {
1103
- if (generateVariants(legitimate).has(bare)) {
1104
- return { input: packageName, legitimate, method: "heuristic" };
1105
- }
1106
- }
1107
- return void 0;
1108
- };
1109
- const checkTyposquats = (packageNames, allowlist) => {
1110
- const allowed = allowlist ? new Set(allowlist) : void 0;
1111
- const matches = [];
1112
- for (const name of packageNames) {
1113
- if (allowed?.has(name)) {
1114
- continue;
1115
- }
1116
- const match = checkTyposquat(name);
1117
- if (match) {
1118
- matches.push(match);
1119
- }
1120
- }
1121
- return matches;
1122
- };
1123
- const printTyposquatWarnings = (matches, context) => {
1124
- pail.warn("");
1125
- pail.warn(red(`Possible typosquat${matches.length === 1 ? "" : "s"} ${context}:`));
1126
- for (const match of matches) {
1127
- const method = match.method === "blocklist" ? "known typosquat" : "similar name";
1128
- pail.warn(` ${yellow("⚠")} ${red(match.input)} — did you mean ${yellow(match.legitimate)}? (${method})`);
1129
- }
1130
- pail.warn("");
1131
- };
1132
- const askConfirmation = async (question) => {
1133
- if (!process.stdin.isTTY) {
1134
- pail.warn("Aborting: potential typosquat detected in non-interactive mode. Use --no-typosquat-check to skip.");
1135
- return void 0;
1136
- }
1137
- const rl = createInterface({ input: process.stdin, output: process.stdout });
1138
- const answer = await new Promise((resolve) => {
1139
- rl.question(question, (a) => {
1140
- resolve(a.trim().toLowerCase());
1141
- });
1142
- });
1143
- rl.close();
1144
- return answer;
1145
- };
1146
- const runTyposquatCheck = async (packageNames, allowlist) => {
1147
- const matches = checkTyposquats(packageNames, allowlist);
1148
- if (matches.length === 0) {
1149
- return { ok: true, packages: packageNames };
1150
- }
1151
- printTyposquatWarnings(matches, "detected");
1152
- const answer = await askConfirmation(
1153
- `Use suggested package${matches.length === 1 ? "" : "s"} instead? [S]uggested / [y]es, keep original / [N]o, abort (default: N) `
1154
- );
1155
- if (answer === void 0) {
1156
- return { ok: false, packages: packageNames };
1157
- }
1158
- if (answer === "s" || answer === "suggested") {
1159
- const replacements = new Map(matches.map((m) => [m.input, m.legitimate]));
1160
- const corrected = packageNames.map((name) => replacements.get(name) ?? name);
1161
- return { ok: true, packages: corrected };
1162
- }
1163
- if (answer === "y" || answer === "yes") {
1164
- return { ok: true, packages: packageNames };
1165
- }
1166
- return { ok: false, packages: packageNames };
1167
- };
1168
- const ALIAS_RE = /^(?:npm|pnpm|yarn):(.+?)(?:@.*)?$/;
1169
- const parseAliasTarget = (value) => {
1170
- const match = ALIAS_RE.exec(value);
1171
- return match?.[1];
1172
- };
1173
- const readDepsFromPackageJson = (packageJsonPath) => {
1174
- if (!isAccessibleSync(packageJsonPath)) {
1175
- return [];
1176
- }
1177
- const pkg = readJsonSync(packageJsonPath);
1178
- const allDeps = {
1179
- ...pkg.dependencies,
1180
- ...pkg.devDependencies,
1181
- ...pkg.optionalDependencies,
1182
- ...pkg.peerDependencies
1183
- };
1184
- const names = /* @__PURE__ */ new Set();
1185
- for (const [key, value] of Object.entries(allDeps)) {
1186
- names.add(key);
1187
- const aliasTarget = parseAliasTarget(value);
1188
- if (aliasTarget) {
1189
- names.add(aliasTarget);
1190
- }
1191
- }
1192
- return [...names];
1193
- };
1194
- const scanDepsForTyposquats = async (cwd, allowlist) => {
1195
- const packageJsonPath = join(cwd, "package.json");
1196
- const depNames = readDepsFromPackageJson(packageJsonPath);
1197
- if (depNames.length === 0) {
1198
- return true;
1199
- }
1200
- const matches = checkTyposquats(depNames, allowlist);
1201
- if (matches.length === 0) {
1202
- return true;
1203
- }
1204
- printTyposquatWarnings(matches, "in package.json dependencies");
1205
- pail.warn("Fix the package name in package.json before proceeding.");
1206
- const answer = await askConfirmation("Continue anyway? [y/N] ");
1207
- return answer === "y" || answer === "yes";
1208
- };
1209
-
1210
- export { runTyposquatCheck as r, scanDepsForTyposquats as s };