jamdesk 1.1.167 → 1.1.169
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/unit/vendored-sync.test.js +4 -0
- package/dist/__tests__/unit/vendored-sync.test.js.map +1 -1
- package/package.json +1 -1
- package/vendored/components/navigation/Sidebar.tsx +247 -141
- package/vendored/lib/middleware-helpers.ts +265 -2
- package/vendored/lib/project-resolver.ts +10 -0
- package/vendored/lib/screenshot-capture.ts +7 -1
- package/vendored/workspace-package-lock.json +27 -111
- package/dist/__tests__/unit/dev-workspace-symlinks.test.d.ts +0 -2
- package/dist/__tests__/unit/dev-workspace-symlinks.test.d.ts.map +0 -1
- package/dist/__tests__/unit/dev-workspace-symlinks.test.js +0 -112
- package/dist/__tests__/unit/dev-workspace-symlinks.test.js.map +0 -1
- package/dist/__tests__/unit/language-filter.test.d.ts +0 -2
- package/dist/__tests__/unit/language-filter.test.d.ts.map +0 -1
- package/dist/__tests__/unit/language-filter.test.js +0 -166
- package/dist/__tests__/unit/language-filter.test.js.map +0 -1
- package/dist/lib/language-filter.d.ts +0 -31
- package/dist/lib/language-filter.d.ts.map +0 -1
- package/dist/lib/language-filter.js +0 -14
- package/dist/lib/language-filter.js.map +0 -1
- package/vendored/lib/sidebar-prefetch-walker.ts +0 -50
|
@@ -217,57 +217,57 @@
|
|
|
217
217
|
}
|
|
218
218
|
},
|
|
219
219
|
"node_modules/@fortawesome/fontawesome-common-types": {
|
|
220
|
-
"version": "7.3.
|
|
221
|
-
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-7.3.
|
|
222
|
-
"integrity": "sha512-
|
|
220
|
+
"version": "7.3.1",
|
|
221
|
+
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-7.3.1.tgz",
|
|
222
|
+
"integrity": "sha512-k0C0sdHmZtAo6dRDtd1Z/qcpyHbL0CKsjV8seMY/21xGhY5Wsv0XRmiI/xEEH4y2c9b1+jvgNs/3EqhV27yUEA==",
|
|
223
223
|
"license": "MIT",
|
|
224
224
|
"engines": {
|
|
225
225
|
"node": ">=6"
|
|
226
226
|
}
|
|
227
227
|
},
|
|
228
228
|
"node_modules/@fortawesome/fontawesome-svg-core": {
|
|
229
|
-
"version": "7.3.
|
|
230
|
-
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-7.3.
|
|
231
|
-
"integrity": "sha512-
|
|
229
|
+
"version": "7.3.1",
|
|
230
|
+
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-7.3.1.tgz",
|
|
231
|
+
"integrity": "sha512-BoxVN3PKnMbgStHhjoaky/oWdxHomDqmBVA24IA3KEmssFGeI7u9YT/BJceOjIum/t6TpPa/vcMKaVYQeIQ/3Q==",
|
|
232
232
|
"license": "MIT",
|
|
233
233
|
"dependencies": {
|
|
234
|
-
"@fortawesome/fontawesome-common-types": "7.3.
|
|
234
|
+
"@fortawesome/fontawesome-common-types": "7.3.1"
|
|
235
235
|
},
|
|
236
236
|
"engines": {
|
|
237
237
|
"node": ">=6"
|
|
238
238
|
}
|
|
239
239
|
},
|
|
240
240
|
"node_modules/@fortawesome/free-brands-svg-icons": {
|
|
241
|
-
"version": "7.3.
|
|
242
|
-
"resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-7.3.
|
|
243
|
-
"integrity": "sha512-
|
|
241
|
+
"version": "7.3.1",
|
|
242
|
+
"resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-7.3.1.tgz",
|
|
243
|
+
"integrity": "sha512-8eiNzycuFhy3mZsi5EVO8JpO3H8l7/kSCl4Gk4iUew9hJuzYFqAAD6kqgeEup3+YZ9hL+5cjjorGzrRLkYuURg==",
|
|
244
244
|
"license": "(CC-BY-4.0 AND MIT)",
|
|
245
245
|
"dependencies": {
|
|
246
|
-
"@fortawesome/fontawesome-common-types": "7.3.
|
|
246
|
+
"@fortawesome/fontawesome-common-types": "7.3.1"
|
|
247
247
|
},
|
|
248
248
|
"engines": {
|
|
249
249
|
"node": ">=6"
|
|
250
250
|
}
|
|
251
251
|
},
|
|
252
252
|
"node_modules/@fortawesome/free-regular-svg-icons": {
|
|
253
|
-
"version": "7.3.
|
|
254
|
-
"resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-7.3.
|
|
255
|
-
"integrity": "sha512-
|
|
253
|
+
"version": "7.3.1",
|
|
254
|
+
"resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-7.3.1.tgz",
|
|
255
|
+
"integrity": "sha512-q1EsmL7Q8DDnkRBUjSvrxbq7c9oVwwVjCn/xa5apKmdp65YSgzUg2y0Ltnd5aDbT6GdAQQdXql5Ha90ArqIReQ==",
|
|
256
256
|
"license": "(CC-BY-4.0 AND MIT)",
|
|
257
257
|
"dependencies": {
|
|
258
|
-
"@fortawesome/fontawesome-common-types": "7.3.
|
|
258
|
+
"@fortawesome/fontawesome-common-types": "7.3.1"
|
|
259
259
|
},
|
|
260
260
|
"engines": {
|
|
261
261
|
"node": ">=6"
|
|
262
262
|
}
|
|
263
263
|
},
|
|
264
264
|
"node_modules/@fortawesome/free-solid-svg-icons": {
|
|
265
|
-
"version": "7.3.
|
|
266
|
-
"resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-7.3.
|
|
267
|
-
"integrity": "sha512-
|
|
265
|
+
"version": "7.3.1",
|
|
266
|
+
"resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-7.3.1.tgz",
|
|
267
|
+
"integrity": "sha512-v0BLa0eqg7ubvVWeNSHVBs8fWH/GJicERZoJaxJ3FE/lj67VSqzoMg9pzfZVOfLMX10y0pGwQAuxoRVVH2patg==",
|
|
268
268
|
"license": "(CC-BY-4.0 AND MIT)",
|
|
269
269
|
"dependencies": {
|
|
270
|
-
"@fortawesome/fontawesome-common-types": "7.3.
|
|
270
|
+
"@fortawesome/fontawesome-common-types": "7.3.1"
|
|
271
271
|
},
|
|
272
272
|
"engines": {
|
|
273
273
|
"node": ">=6"
|
|
@@ -396,9 +396,6 @@
|
|
|
396
396
|
"cpu": [
|
|
397
397
|
"arm"
|
|
398
398
|
],
|
|
399
|
-
"libc": [
|
|
400
|
-
"glibc"
|
|
401
|
-
],
|
|
402
399
|
"license": "LGPL-3.0-or-later",
|
|
403
400
|
"optional": true,
|
|
404
401
|
"os": [
|
|
@@ -415,9 +412,6 @@
|
|
|
415
412
|
"cpu": [
|
|
416
413
|
"arm64"
|
|
417
414
|
],
|
|
418
|
-
"libc": [
|
|
419
|
-
"glibc"
|
|
420
|
-
],
|
|
421
415
|
"license": "LGPL-3.0-or-later",
|
|
422
416
|
"optional": true,
|
|
423
417
|
"os": [
|
|
@@ -434,9 +428,6 @@
|
|
|
434
428
|
"cpu": [
|
|
435
429
|
"ppc64"
|
|
436
430
|
],
|
|
437
|
-
"libc": [
|
|
438
|
-
"glibc"
|
|
439
|
-
],
|
|
440
431
|
"license": "LGPL-3.0-or-later",
|
|
441
432
|
"optional": true,
|
|
442
433
|
"os": [
|
|
@@ -453,9 +444,6 @@
|
|
|
453
444
|
"cpu": [
|
|
454
445
|
"riscv64"
|
|
455
446
|
],
|
|
456
|
-
"libc": [
|
|
457
|
-
"glibc"
|
|
458
|
-
],
|
|
459
447
|
"license": "LGPL-3.0-or-later",
|
|
460
448
|
"optional": true,
|
|
461
449
|
"os": [
|
|
@@ -472,9 +460,6 @@
|
|
|
472
460
|
"cpu": [
|
|
473
461
|
"s390x"
|
|
474
462
|
],
|
|
475
|
-
"libc": [
|
|
476
|
-
"glibc"
|
|
477
|
-
],
|
|
478
463
|
"license": "LGPL-3.0-or-later",
|
|
479
464
|
"optional": true,
|
|
480
465
|
"os": [
|
|
@@ -491,9 +476,6 @@
|
|
|
491
476
|
"cpu": [
|
|
492
477
|
"x64"
|
|
493
478
|
],
|
|
494
|
-
"libc": [
|
|
495
|
-
"glibc"
|
|
496
|
-
],
|
|
497
479
|
"license": "LGPL-3.0-or-later",
|
|
498
480
|
"optional": true,
|
|
499
481
|
"os": [
|
|
@@ -510,9 +492,6 @@
|
|
|
510
492
|
"cpu": [
|
|
511
493
|
"arm64"
|
|
512
494
|
],
|
|
513
|
-
"libc": [
|
|
514
|
-
"musl"
|
|
515
|
-
],
|
|
516
495
|
"license": "LGPL-3.0-or-later",
|
|
517
496
|
"optional": true,
|
|
518
497
|
"os": [
|
|
@@ -529,9 +508,6 @@
|
|
|
529
508
|
"cpu": [
|
|
530
509
|
"x64"
|
|
531
510
|
],
|
|
532
|
-
"libc": [
|
|
533
|
-
"musl"
|
|
534
|
-
],
|
|
535
511
|
"license": "LGPL-3.0-or-later",
|
|
536
512
|
"optional": true,
|
|
537
513
|
"os": [
|
|
@@ -548,9 +524,6 @@
|
|
|
548
524
|
"cpu": [
|
|
549
525
|
"arm"
|
|
550
526
|
],
|
|
551
|
-
"libc": [
|
|
552
|
-
"glibc"
|
|
553
|
-
],
|
|
554
527
|
"license": "Apache-2.0",
|
|
555
528
|
"optional": true,
|
|
556
529
|
"os": [
|
|
@@ -573,9 +546,6 @@
|
|
|
573
546
|
"cpu": [
|
|
574
547
|
"arm64"
|
|
575
548
|
],
|
|
576
|
-
"libc": [
|
|
577
|
-
"glibc"
|
|
578
|
-
],
|
|
579
549
|
"license": "Apache-2.0",
|
|
580
550
|
"optional": true,
|
|
581
551
|
"os": [
|
|
@@ -598,9 +568,6 @@
|
|
|
598
568
|
"cpu": [
|
|
599
569
|
"ppc64"
|
|
600
570
|
],
|
|
601
|
-
"libc": [
|
|
602
|
-
"glibc"
|
|
603
|
-
],
|
|
604
571
|
"license": "Apache-2.0",
|
|
605
572
|
"optional": true,
|
|
606
573
|
"os": [
|
|
@@ -623,9 +590,6 @@
|
|
|
623
590
|
"cpu": [
|
|
624
591
|
"riscv64"
|
|
625
592
|
],
|
|
626
|
-
"libc": [
|
|
627
|
-
"glibc"
|
|
628
|
-
],
|
|
629
593
|
"license": "Apache-2.0",
|
|
630
594
|
"optional": true,
|
|
631
595
|
"os": [
|
|
@@ -648,9 +612,6 @@
|
|
|
648
612
|
"cpu": [
|
|
649
613
|
"s390x"
|
|
650
614
|
],
|
|
651
|
-
"libc": [
|
|
652
|
-
"glibc"
|
|
653
|
-
],
|
|
654
615
|
"license": "Apache-2.0",
|
|
655
616
|
"optional": true,
|
|
656
617
|
"os": [
|
|
@@ -673,9 +634,6 @@
|
|
|
673
634
|
"cpu": [
|
|
674
635
|
"x64"
|
|
675
636
|
],
|
|
676
|
-
"libc": [
|
|
677
|
-
"glibc"
|
|
678
|
-
],
|
|
679
637
|
"license": "Apache-2.0",
|
|
680
638
|
"optional": true,
|
|
681
639
|
"os": [
|
|
@@ -698,9 +656,6 @@
|
|
|
698
656
|
"cpu": [
|
|
699
657
|
"arm64"
|
|
700
658
|
],
|
|
701
|
-
"libc": [
|
|
702
|
-
"musl"
|
|
703
|
-
],
|
|
704
659
|
"license": "Apache-2.0",
|
|
705
660
|
"optional": true,
|
|
706
661
|
"os": [
|
|
@@ -723,9 +678,6 @@
|
|
|
723
678
|
"cpu": [
|
|
724
679
|
"x64"
|
|
725
680
|
],
|
|
726
|
-
"libc": [
|
|
727
|
-
"musl"
|
|
728
|
-
],
|
|
729
681
|
"license": "Apache-2.0",
|
|
730
682
|
"optional": true,
|
|
731
683
|
"os": [
|
|
@@ -1000,9 +952,6 @@
|
|
|
1000
952
|
"cpu": [
|
|
1001
953
|
"arm64"
|
|
1002
954
|
],
|
|
1003
|
-
"libc": [
|
|
1004
|
-
"glibc"
|
|
1005
|
-
],
|
|
1006
955
|
"license": "MIT",
|
|
1007
956
|
"optional": true,
|
|
1008
957
|
"os": [
|
|
@@ -1019,9 +968,6 @@
|
|
|
1019
968
|
"cpu": [
|
|
1020
969
|
"arm64"
|
|
1021
970
|
],
|
|
1022
|
-
"libc": [
|
|
1023
|
-
"musl"
|
|
1024
|
-
],
|
|
1025
971
|
"license": "MIT",
|
|
1026
972
|
"optional": true,
|
|
1027
973
|
"os": [
|
|
@@ -1038,9 +984,6 @@
|
|
|
1038
984
|
"cpu": [
|
|
1039
985
|
"x64"
|
|
1040
986
|
],
|
|
1041
|
-
"libc": [
|
|
1042
|
-
"glibc"
|
|
1043
|
-
],
|
|
1044
987
|
"license": "MIT",
|
|
1045
988
|
"optional": true,
|
|
1046
989
|
"os": [
|
|
@@ -1057,9 +1000,6 @@
|
|
|
1057
1000
|
"cpu": [
|
|
1058
1001
|
"x64"
|
|
1059
1002
|
],
|
|
1060
|
-
"libc": [
|
|
1061
|
-
"musl"
|
|
1062
|
-
],
|
|
1063
1003
|
"license": "MIT",
|
|
1064
1004
|
"optional": true,
|
|
1065
1005
|
"os": [
|
|
@@ -1399,9 +1339,6 @@
|
|
|
1399
1339
|
"cpu": [
|
|
1400
1340
|
"arm64"
|
|
1401
1341
|
],
|
|
1402
|
-
"libc": [
|
|
1403
|
-
"glibc"
|
|
1404
|
-
],
|
|
1405
1342
|
"license": "MIT",
|
|
1406
1343
|
"optional": true,
|
|
1407
1344
|
"os": [
|
|
@@ -1418,9 +1355,6 @@
|
|
|
1418
1355
|
"cpu": [
|
|
1419
1356
|
"arm64"
|
|
1420
1357
|
],
|
|
1421
|
-
"libc": [
|
|
1422
|
-
"musl"
|
|
1423
|
-
],
|
|
1424
1358
|
"license": "MIT",
|
|
1425
1359
|
"optional": true,
|
|
1426
1360
|
"os": [
|
|
@@ -1437,9 +1371,6 @@
|
|
|
1437
1371
|
"cpu": [
|
|
1438
1372
|
"x64"
|
|
1439
1373
|
],
|
|
1440
|
-
"libc": [
|
|
1441
|
-
"glibc"
|
|
1442
|
-
],
|
|
1443
1374
|
"license": "MIT",
|
|
1444
1375
|
"optional": true,
|
|
1445
1376
|
"os": [
|
|
@@ -1456,9 +1387,6 @@
|
|
|
1456
1387
|
"cpu": [
|
|
1457
1388
|
"x64"
|
|
1458
1389
|
],
|
|
1459
|
-
"libc": [
|
|
1460
|
-
"musl"
|
|
1461
|
-
],
|
|
1462
1390
|
"license": "MIT",
|
|
1463
1391
|
"optional": true,
|
|
1464
1392
|
"os": [
|
|
@@ -2113,9 +2041,9 @@
|
|
|
2113
2041
|
}
|
|
2114
2042
|
},
|
|
2115
2043
|
"node_modules/autoprefixer": {
|
|
2116
|
-
"version": "10.5.
|
|
2117
|
-
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.
|
|
2118
|
-
"integrity": "sha512-
|
|
2044
|
+
"version": "10.5.3",
|
|
2045
|
+
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.3.tgz",
|
|
2046
|
+
"integrity": "sha512-bJRzflk8GgE4JX+iZNEwz9f9p460NCHnU7bd+CZ9vIjIlZuTkt6F3WSl2oNO8StZBFx17nLEsiQ6H2wcZiY7nA==",
|
|
2119
2047
|
"funding": [
|
|
2120
2048
|
{
|
|
2121
2049
|
"type": "opencollective",
|
|
@@ -2132,8 +2060,8 @@
|
|
|
2132
2060
|
],
|
|
2133
2061
|
"license": "MIT",
|
|
2134
2062
|
"dependencies": {
|
|
2135
|
-
"browserslist": "^4.28.
|
|
2136
|
-
"caniuse-lite": "^1.0.
|
|
2063
|
+
"browserslist": "^4.28.6",
|
|
2064
|
+
"caniuse-lite": "^1.0.30001805",
|
|
2137
2065
|
"fraction.js": "^5.3.4",
|
|
2138
2066
|
"picocolors": "^1.1.1",
|
|
2139
2067
|
"postcss-value-parser": "^4.2.0"
|
|
@@ -2962,9 +2890,9 @@
|
|
|
2962
2890
|
"license": "MIT"
|
|
2963
2891
|
},
|
|
2964
2892
|
"node_modules/electron-to-chromium": {
|
|
2965
|
-
"version": "1.5.
|
|
2966
|
-
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.
|
|
2967
|
-
"integrity": "sha512-
|
|
2893
|
+
"version": "1.5.392",
|
|
2894
|
+
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.392.tgz",
|
|
2895
|
+
"integrity": "sha512-1yQq3VQCZRwsnYc67Oc+1fge6Lwtn0hzi6zmEVkB61Zx21kTbwJAW4dFLadl5Rc1tKhG/kSpYXnfiAhu0f0a1g==",
|
|
2968
2896
|
"license": "ISC"
|
|
2969
2897
|
},
|
|
2970
2898
|
"node_modules/enhanced-resolve": {
|
|
@@ -3960,9 +3888,6 @@
|
|
|
3960
3888
|
"cpu": [
|
|
3961
3889
|
"arm64"
|
|
3962
3890
|
],
|
|
3963
|
-
"libc": [
|
|
3964
|
-
"glibc"
|
|
3965
|
-
],
|
|
3966
3891
|
"license": "MPL-2.0",
|
|
3967
3892
|
"optional": true,
|
|
3968
3893
|
"os": [
|
|
@@ -3983,9 +3908,6 @@
|
|
|
3983
3908
|
"cpu": [
|
|
3984
3909
|
"arm64"
|
|
3985
3910
|
],
|
|
3986
|
-
"libc": [
|
|
3987
|
-
"musl"
|
|
3988
|
-
],
|
|
3989
3911
|
"license": "MPL-2.0",
|
|
3990
3912
|
"optional": true,
|
|
3991
3913
|
"os": [
|
|
@@ -4006,9 +3928,6 @@
|
|
|
4006
3928
|
"cpu": [
|
|
4007
3929
|
"x64"
|
|
4008
3930
|
],
|
|
4009
|
-
"libc": [
|
|
4010
|
-
"glibc"
|
|
4011
|
-
],
|
|
4012
3931
|
"license": "MPL-2.0",
|
|
4013
3932
|
"optional": true,
|
|
4014
3933
|
"os": [
|
|
@@ -4029,9 +3948,6 @@
|
|
|
4029
3948
|
"cpu": [
|
|
4030
3949
|
"x64"
|
|
4031
3950
|
],
|
|
4032
|
-
"libc": [
|
|
4033
|
-
"musl"
|
|
4034
|
-
],
|
|
4035
3951
|
"license": "MPL-2.0",
|
|
4036
3952
|
"optional": true,
|
|
4037
3953
|
"os": [
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dev-workspace-symlinks.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/unit/dev-workspace-symlinks.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @vitest-environment node
|
|
3
|
-
*
|
|
4
|
-
* Tests prepareProjectWorkspaceLinks — replaces the single
|
|
5
|
-
* <workspace>/projects/<name> -> <projectDir> symlink with per-entry
|
|
6
|
-
* symlinks that skip non-active language directories. This is what
|
|
7
|
-
* actually reduces Turbopack's filesystem scan from 403 MDX files to
|
|
8
|
-
* 135 on jamdesk-docs.
|
|
9
|
-
*/
|
|
10
|
-
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
|
|
11
|
-
import fs from 'fs-extra';
|
|
12
|
-
import path from 'path';
|
|
13
|
-
import { tmpdir } from 'os';
|
|
14
|
-
import { prepareProjectWorkspaceLinks } from '../../commands/dev.js';
|
|
15
|
-
import { output } from '../../lib/output.js';
|
|
16
|
-
describe('prepareProjectWorkspaceLinks', () => {
|
|
17
|
-
let tmpRoot;
|
|
18
|
-
let projectDir;
|
|
19
|
-
let workspaceProjectDir;
|
|
20
|
-
beforeEach(() => {
|
|
21
|
-
tmpRoot = fs.mkdtempSync(path.join(tmpdir(), 'jam-ws-'));
|
|
22
|
-
projectDir = path.join(tmpRoot, 'project');
|
|
23
|
-
workspaceProjectDir = path.join(tmpRoot, 'ws', 'projects', 'project');
|
|
24
|
-
// Set up a project layout that mirrors a multi-language docs project:
|
|
25
|
-
// project/
|
|
26
|
-
// ai/intro.mdx (en at root)
|
|
27
|
-
// development/foo.mdx (en at root)
|
|
28
|
-
// es/ai/intro.mdx (spanish)
|
|
29
|
-
// fr/ai/intro.mdx (french)
|
|
30
|
-
// docs.json
|
|
31
|
-
// images/logo.png
|
|
32
|
-
fs.mkdirpSync(path.join(projectDir, 'ai'));
|
|
33
|
-
fs.writeFileSync(path.join(projectDir, 'ai', 'intro.mdx'), '# en');
|
|
34
|
-
fs.mkdirpSync(path.join(projectDir, 'development'));
|
|
35
|
-
fs.writeFileSync(path.join(projectDir, 'development', 'foo.mdx'), '# en');
|
|
36
|
-
fs.mkdirpSync(path.join(projectDir, 'es', 'ai'));
|
|
37
|
-
fs.writeFileSync(path.join(projectDir, 'es', 'ai', 'intro.mdx'), '# es');
|
|
38
|
-
fs.mkdirpSync(path.join(projectDir, 'fr', 'ai'));
|
|
39
|
-
fs.writeFileSync(path.join(projectDir, 'fr', 'ai', 'intro.mdx'), '# fr');
|
|
40
|
-
fs.writeFileSync(path.join(projectDir, 'docs.json'), '{}');
|
|
41
|
-
fs.mkdirpSync(path.join(projectDir, 'images'));
|
|
42
|
-
fs.writeFileSync(path.join(projectDir, 'images', 'logo.png'), '');
|
|
43
|
-
});
|
|
44
|
-
afterEach(() => {
|
|
45
|
-
fs.removeSync(tmpRoot);
|
|
46
|
-
});
|
|
47
|
-
it('symlinks every top-level entry when skip set is empty', async () => {
|
|
48
|
-
await prepareProjectWorkspaceLinks(projectDir, workspaceProjectDir, new Set());
|
|
49
|
-
expect(fs.existsSync(path.join(workspaceProjectDir, 'ai', 'intro.mdx'))).toBe(true);
|
|
50
|
-
expect(fs.existsSync(path.join(workspaceProjectDir, 'es', 'ai', 'intro.mdx'))).toBe(true);
|
|
51
|
-
expect(fs.existsSync(path.join(workspaceProjectDir, 'fr', 'ai', 'intro.mdx'))).toBe(true);
|
|
52
|
-
});
|
|
53
|
-
it('does not symlink docs.json (caller writes a filtered copy)', async () => {
|
|
54
|
-
// docs.json must not be symlinked — the caller writes a per-language
|
|
55
|
-
// filtered copy, and fs.writeFile through a symlink would clobber the
|
|
56
|
-
// user's source docs.json.
|
|
57
|
-
await prepareProjectWorkspaceLinks(projectDir, workspaceProjectDir, new Set());
|
|
58
|
-
expect(fs.existsSync(path.join(workspaceProjectDir, 'docs.json'))).toBe(false);
|
|
59
|
-
});
|
|
60
|
-
it('skips entries whose names are in the skip set', async () => {
|
|
61
|
-
await prepareProjectWorkspaceLinks(projectDir, workspaceProjectDir, new Set(['es', 'fr']));
|
|
62
|
-
expect(fs.existsSync(path.join(workspaceProjectDir, 'ai', 'intro.mdx'))).toBe(true);
|
|
63
|
-
expect(fs.existsSync(path.join(workspaceProjectDir, 'development', 'foo.mdx'))).toBe(true);
|
|
64
|
-
expect(fs.existsSync(path.join(workspaceProjectDir, 'images', 'logo.png'))).toBe(true);
|
|
65
|
-
// Skipped:
|
|
66
|
-
expect(fs.existsSync(path.join(workspaceProjectDir, 'es'))).toBe(false);
|
|
67
|
-
expect(fs.existsSync(path.join(workspaceProjectDir, 'fr'))).toBe(false);
|
|
68
|
-
// docs.json not symlinked — caller writes a filtered copy.
|
|
69
|
-
expect(fs.existsSync(path.join(workspaceProjectDir, 'docs.json'))).toBe(false);
|
|
70
|
-
});
|
|
71
|
-
it('rebuilds the workspace links from scratch on subsequent calls', async () => {
|
|
72
|
-
// First call: no skip
|
|
73
|
-
await prepareProjectWorkspaceLinks(projectDir, workspaceProjectDir, new Set());
|
|
74
|
-
expect(fs.existsSync(path.join(workspaceProjectDir, 'es'))).toBe(true);
|
|
75
|
-
// Second call: skip es
|
|
76
|
-
await prepareProjectWorkspaceLinks(projectDir, workspaceProjectDir, new Set(['es']));
|
|
77
|
-
expect(fs.existsSync(path.join(workspaceProjectDir, 'es'))).toBe(false);
|
|
78
|
-
expect(fs.existsSync(path.join(workspaceProjectDir, 'fr'))).toBe(true);
|
|
79
|
-
expect(fs.existsSync(path.join(workspaceProjectDir, 'ai', 'intro.mdx'))).toBe(true);
|
|
80
|
-
});
|
|
81
|
-
it('handles a pre-existing single symlink at workspaceProjectDir (legacy layout)', async () => {
|
|
82
|
-
// Pre-create the legacy single-symlink layout
|
|
83
|
-
fs.mkdirpSync(path.dirname(workspaceProjectDir));
|
|
84
|
-
fs.symlinkSync(projectDir, workspaceProjectDir, 'junction');
|
|
85
|
-
await prepareProjectWorkspaceLinks(projectDir, workspaceProjectDir, new Set(['es', 'fr']));
|
|
86
|
-
const lstat = fs.lstatSync(workspaceProjectDir);
|
|
87
|
-
expect(lstat.isDirectory()).toBe(true);
|
|
88
|
-
expect(fs.existsSync(path.join(workspaceProjectDir, 'ai', 'intro.mdx'))).toBe(true);
|
|
89
|
-
expect(fs.existsSync(path.join(workspaceProjectDir, 'es'))).toBe(false);
|
|
90
|
-
});
|
|
91
|
-
it('surfaces friendly error (not raw stack trace) when fs.rm throws ENOTEMPTY', async () => {
|
|
92
|
-
// Regression: before safeRemoveCache, fs.remove raised an unfriendly stack
|
|
93
|
-
// trace when Turbopack still held open files. Now safeRemoveCache detects
|
|
94
|
-
// the race and calls process.exit(1) with a human-readable message.
|
|
95
|
-
const rmSpy = vi.spyOn(fs, 'rm');
|
|
96
|
-
const exitSpy = vi.spyOn(process, 'exit').mockImplementation(((code) => {
|
|
97
|
-
throw new Error(`process.exit:${code}`);
|
|
98
|
-
}));
|
|
99
|
-
const errorSpy = vi.spyOn(output, 'error').mockImplementation(() => undefined);
|
|
100
|
-
const enotempty = Object.assign(new Error('ENOTEMPTY'), { code: 'ENOTEMPTY' });
|
|
101
|
-
// fs.rm will be called by safeRemoveCache; make it fail with ENOTEMPTY
|
|
102
|
-
// even after the internal maxRetries — simulate persistent race condition.
|
|
103
|
-
rmSpy.mockRejectedValue(enotempty);
|
|
104
|
-
await expect(prepareProjectWorkspaceLinks(projectDir, workspaceProjectDir, new Set())).rejects.toThrow('process.exit:1');
|
|
105
|
-
const msg = errorSpy.mock.calls[0]?.[0] ?? '';
|
|
106
|
-
expect(msg).toContain('Another `jamdesk dev` instance');
|
|
107
|
-
expect(msg).toContain('pkill -f');
|
|
108
|
-
expect(exitSpy).toHaveBeenCalledWith(1);
|
|
109
|
-
vi.restoreAllMocks();
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
//# sourceMappingURL=dev-workspace-symlinks.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dev-workspace-symlinks.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/dev-workspace-symlinks.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"language-filter.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/unit/language-filter.test.ts"],"names":[],"mappings":""}
|