@teambit/api-server 1.0.434 → 1.0.436

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.
@@ -1,4 +1,4 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <testsuites tests="0" failures="0" errors="0" skipped="0">
3
- <testsuite name="teambit.harmony/api-server@1.0.434" tests="0" failures="0" errors="0" skipped="0"/>
3
+ <testsuite name="teambit.harmony/api-server@1.0.436" tests="0" failures="0" errors="0" skipped="0"/>
4
4
  </testsuites>
@@ -57,11 +57,7 @@
57
57
  "line": 38,
58
58
  "character": 24
59
59
  },
60
- "name": "Workspace",
61
- "componentId": {
62
- "scope": "teambit.workspace",
63
- "name": "workspace"
64
- }
60
+ "name": "Workspace"
65
61
  },
66
62
  "isOptional": false,
67
63
  "isSpread": false
@@ -81,11 +77,7 @@
81
77
  "line": 39,
82
78
  "character": 21
83
79
  },
84
- "name": "Logger",
85
- "componentId": {
86
- "scope": "teambit.harmony",
87
- "name": "logger"
88
- }
80
+ "name": "Logger"
89
81
  },
90
82
  "isOptional": false,
91
83
  "isSpread": false
@@ -105,11 +97,7 @@
105
97
  "line": 40,
106
98
  "character": 22
107
99
  },
108
- "name": "ExpressMain",
109
- "componentId": {
110
- "scope": "teambit.harmony",
111
- "name": "express"
112
- }
100
+ "name": "ExpressMain"
113
101
  },
114
102
  "isOptional": false,
115
103
  "isSpread": false
@@ -129,11 +117,7 @@
129
117
  "line": 41,
130
118
  "character": 22
131
119
  },
132
- "name": "WatcherMain",
133
- "componentId": {
134
- "scope": "teambit.workspace",
135
- "name": "watcher"
136
- }
120
+ "name": "WatcherMain"
137
121
  },
138
122
  "isOptional": false,
139
123
  "isSpread": false
@@ -153,11 +137,7 @@
153
137
  "line": 42,
154
138
  "character": 24
155
139
  },
156
- "name": "InstallMain",
157
- "componentId": {
158
- "scope": "teambit.workspace",
159
- "name": "install"
160
- }
140
+ "name": "InstallMain"
161
141
  },
162
142
  "isOptional": false,
163
143
  "isSpread": false
@@ -177,11 +157,7 @@
177
157
  "line": 43,
178
158
  "character": 23
179
159
  },
180
- "name": "ImporterMain",
181
- "componentId": {
182
- "scope": "teambit.scope",
183
- "name": "importer"
184
- }
160
+ "name": "ImporterMain"
185
161
  },
186
162
  "isOptional": false,
187
163
  "isSpread": false
@@ -476,11 +452,7 @@
476
452
  "line": 250,
477
453
  "character": 5
478
454
  },
479
- "name": "CLIMain",
480
- "componentId": {
481
- "scope": "teambit.harmony",
482
- "name": "cli"
483
- }
455
+ "name": "CLIMain"
484
456
  },
485
457
  {
486
458
  "__schema": "TypeRefSchema",
@@ -489,11 +461,7 @@
489
461
  "line": 251,
490
462
  "character": 5
491
463
  },
492
- "name": "Workspace",
493
- "componentId": {
494
- "scope": "teambit.workspace",
495
- "name": "workspace"
496
- }
464
+ "name": "Workspace"
497
465
  },
498
466
  {
499
467
  "__schema": "TypeRefSchema",
@@ -502,11 +470,7 @@
502
470
  "line": 252,
503
471
  "character": 5
504
472
  },
505
- "name": "LoggerMain",
506
- "componentId": {
507
- "scope": "teambit.harmony",
508
- "name": "logger"
509
- }
473
+ "name": "LoggerMain"
510
474
  },
511
475
  {
512
476
  "__schema": "TypeRefSchema",
@@ -515,11 +479,7 @@
515
479
  "line": 253,
516
480
  "character": 5
517
481
  },
518
- "name": "ExpressMain",
519
- "componentId": {
520
- "scope": "teambit.harmony",
521
- "name": "express"
522
- }
482
+ "name": "ExpressMain"
523
483
  },
524
484
  {
525
485
  "__schema": "TypeRefSchema",
@@ -528,11 +488,7 @@
528
488
  "line": 254,
529
489
  "character": 5
530
490
  },
531
- "name": "WatcherMain",
532
- "componentId": {
533
- "scope": "teambit.workspace",
534
- "name": "watcher"
535
- }
491
+ "name": "WatcherMain"
536
492
  },
537
493
  {
538
494
  "__schema": "TypeRefSchema",
@@ -541,11 +497,7 @@
541
497
  "line": 255,
542
498
  "character": 5
543
499
  },
544
- "name": "SnappingMain",
545
- "componentId": {
546
- "scope": "teambit.component",
547
- "name": "snapping"
548
- }
500
+ "name": "SnappingMain"
549
501
  },
550
502
  {
551
503
  "__schema": "TypeRefSchema",
@@ -554,11 +506,7 @@
554
506
  "line": 256,
555
507
  "character": 5
556
508
  },
557
- "name": "LanesMain",
558
- "componentId": {
559
- "scope": "teambit.lanes",
560
- "name": "lanes"
561
- }
509
+ "name": "LanesMain"
562
510
  },
563
511
  {
564
512
  "__schema": "TypeRefSchema",
@@ -567,11 +515,7 @@
567
515
  "line": 257,
568
516
  "character": 5
569
517
  },
570
- "name": "InstallMain",
571
- "componentId": {
572
- "scope": "teambit.workspace",
573
- "name": "install"
574
- }
518
+ "name": "InstallMain"
575
519
  },
576
520
  {
577
521
  "__schema": "TypeRefSchema",
@@ -580,11 +524,7 @@
580
524
  "line": 258,
581
525
  "character": 5
582
526
  },
583
- "name": "ExportMain",
584
- "componentId": {
585
- "scope": "teambit.scope",
586
- "name": "export"
587
- }
527
+ "name": "ExportMain"
588
528
  },
589
529
  {
590
530
  "__schema": "TypeRefSchema",
@@ -593,11 +533,7 @@
593
533
  "line": 259,
594
534
  "character": 5
595
535
  },
596
- "name": "CheckoutMain",
597
- "componentId": {
598
- "scope": "teambit.component",
599
- "name": "checkout"
600
- }
536
+ "name": "CheckoutMain"
601
537
  },
602
538
  {
603
539
  "__schema": "TypeRefSchema",
@@ -606,11 +542,7 @@
606
542
  "line": 260,
607
543
  "character": 5
608
544
  },
609
- "name": "ComponentLogMain",
610
- "componentId": {
611
- "scope": "teambit.component",
612
- "name": "component-log"
613
- }
545
+ "name": "ComponentLogMain"
614
546
  },
615
547
  {
616
548
  "__schema": "TypeRefSchema",
@@ -619,11 +551,7 @@
619
551
  "line": 261,
620
552
  "character": 5
621
553
  },
622
- "name": "ImporterMain",
623
- "componentId": {
624
- "scope": "teambit.scope",
625
- "name": "importer"
626
- }
554
+ "name": "ImporterMain"
627
555
  },
628
556
  {
629
557
  "__schema": "TypeRefSchema",
@@ -632,11 +560,7 @@
632
560
  "line": 262,
633
561
  "character": 5
634
562
  },
635
- "name": "ComponentCompareMain",
636
- "componentId": {
637
- "scope": "teambit.component",
638
- "name": "component-compare"
639
- }
563
+ "name": "ComponentCompareMain"
640
564
  },
641
565
  {
642
566
  "__schema": "TypeRefSchema",
@@ -645,11 +569,7 @@
645
569
  "line": 263,
646
570
  "character": 5
647
571
  },
648
- "name": "GeneratorMain",
649
- "componentId": {
650
- "scope": "teambit.generator",
651
- "name": "generator"
652
- }
572
+ "name": "GeneratorMain"
653
573
  },
654
574
  {
655
575
  "__schema": "TypeRefSchema",
@@ -658,11 +578,7 @@
658
578
  "line": 264,
659
579
  "character": 5
660
580
  },
661
- "name": "RemoveMain",
662
- "componentId": {
663
- "scope": "teambit.component",
664
- "name": "remove"
665
- }
581
+ "name": "RemoveMain"
666
582
  },
667
583
  {
668
584
  "__schema": "TypeRefSchema",
@@ -671,11 +587,7 @@
671
587
  "line": 265,
672
588
  "character": 5
673
589
  },
674
- "name": "ConfigMain",
675
- "componentId": {
676
- "scope": "teambit.harmony",
677
- "name": "config"
678
- }
590
+ "name": "ConfigMain"
679
591
  },
680
592
  {
681
593
  "__schema": "TypeRefSchema",
@@ -684,11 +596,7 @@
684
596
  "line": 266,
685
597
  "character": 5
686
598
  },
687
- "name": "ApplicationMain",
688
- "componentId": {
689
- "scope": "teambit.harmony",
690
- "name": "application"
691
- }
599
+ "name": "ApplicationMain"
692
600
  },
693
601
  {
694
602
  "__schema": "TypeRefSchema",
@@ -697,11 +605,7 @@
697
605
  "line": 267,
698
606
  "character": 5
699
607
  },
700
- "name": "DeprecationMain",
701
- "componentId": {
702
- "scope": "teambit.component",
703
- "name": "deprecation"
704
- }
608
+ "name": "DeprecationMain"
705
609
  },
706
610
  {
707
611
  "__schema": "TypeRefSchema",
@@ -710,11 +614,7 @@
710
614
  "line": 268,
711
615
  "character": 5
712
616
  },
713
- "name": "EnvsMain",
714
- "componentId": {
715
- "scope": "teambit.envs",
716
- "name": "envs"
717
- }
617
+ "name": "EnvsMain"
718
618
  }
719
619
  ]
720
620
  },
@@ -834,11 +734,7 @@
834
734
  "line": 38,
835
735
  "character": 24
836
736
  },
837
- "name": "Workspace",
838
- "componentId": {
839
- "scope": "teambit.workspace",
840
- "name": "workspace"
841
- }
737
+ "name": "Workspace"
842
738
  },
843
739
  "isOptional": false,
844
740
  "isSpread": false
@@ -858,11 +754,7 @@
858
754
  "line": 39,
859
755
  "character": 21
860
756
  },
861
- "name": "Logger",
862
- "componentId": {
863
- "scope": "teambit.harmony",
864
- "name": "logger"
865
- }
757
+ "name": "Logger"
866
758
  },
867
759
  "isOptional": false,
868
760
  "isSpread": false
@@ -882,11 +774,7 @@
882
774
  "line": 40,
883
775
  "character": 22
884
776
  },
885
- "name": "ExpressMain",
886
- "componentId": {
887
- "scope": "teambit.harmony",
888
- "name": "express"
889
- }
777
+ "name": "ExpressMain"
890
778
  },
891
779
  "isOptional": false,
892
780
  "isSpread": false
@@ -906,11 +794,7 @@
906
794
  "line": 41,
907
795
  "character": 22
908
796
  },
909
- "name": "WatcherMain",
910
- "componentId": {
911
- "scope": "teambit.workspace",
912
- "name": "watcher"
913
- }
797
+ "name": "WatcherMain"
914
798
  },
915
799
  "isOptional": false,
916
800
  "isSpread": false
@@ -930,11 +814,7 @@
930
814
  "line": 42,
931
815
  "character": 24
932
816
  },
933
- "name": "InstallMain",
934
- "componentId": {
935
- "scope": "teambit.workspace",
936
- "name": "install"
937
- }
817
+ "name": "InstallMain"
938
818
  },
939
819
  "isOptional": false,
940
820
  "isSpread": false
@@ -954,11 +834,7 @@
954
834
  "line": 43,
955
835
  "character": 23
956
836
  },
957
- "name": "ImporterMain",
958
- "componentId": {
959
- "scope": "teambit.scope",
960
- "name": "importer"
961
- }
837
+ "name": "ImporterMain"
962
838
  },
963
839
  "isOptional": false,
964
840
  "isSpread": false
@@ -1253,11 +1129,7 @@
1253
1129
  "line": 250,
1254
1130
  "character": 5
1255
1131
  },
1256
- "name": "CLIMain",
1257
- "componentId": {
1258
- "scope": "teambit.harmony",
1259
- "name": "cli"
1260
- }
1132
+ "name": "CLIMain"
1261
1133
  },
1262
1134
  {
1263
1135
  "__schema": "TypeRefSchema",
@@ -1266,11 +1138,7 @@
1266
1138
  "line": 251,
1267
1139
  "character": 5
1268
1140
  },
1269
- "name": "Workspace",
1270
- "componentId": {
1271
- "scope": "teambit.workspace",
1272
- "name": "workspace"
1273
- }
1141
+ "name": "Workspace"
1274
1142
  },
1275
1143
  {
1276
1144
  "__schema": "TypeRefSchema",
@@ -1279,11 +1147,7 @@
1279
1147
  "line": 252,
1280
1148
  "character": 5
1281
1149
  },
1282
- "name": "LoggerMain",
1283
- "componentId": {
1284
- "scope": "teambit.harmony",
1285
- "name": "logger"
1286
- }
1150
+ "name": "LoggerMain"
1287
1151
  },
1288
1152
  {
1289
1153
  "__schema": "TypeRefSchema",
@@ -1292,11 +1156,7 @@
1292
1156
  "line": 253,
1293
1157
  "character": 5
1294
1158
  },
1295
- "name": "ExpressMain",
1296
- "componentId": {
1297
- "scope": "teambit.harmony",
1298
- "name": "express"
1299
- }
1159
+ "name": "ExpressMain"
1300
1160
  },
1301
1161
  {
1302
1162
  "__schema": "TypeRefSchema",
@@ -1305,11 +1165,7 @@
1305
1165
  "line": 254,
1306
1166
  "character": 5
1307
1167
  },
1308
- "name": "WatcherMain",
1309
- "componentId": {
1310
- "scope": "teambit.workspace",
1311
- "name": "watcher"
1312
- }
1168
+ "name": "WatcherMain"
1313
1169
  },
1314
1170
  {
1315
1171
  "__schema": "TypeRefSchema",
@@ -1318,11 +1174,7 @@
1318
1174
  "line": 255,
1319
1175
  "character": 5
1320
1176
  },
1321
- "name": "SnappingMain",
1322
- "componentId": {
1323
- "scope": "teambit.component",
1324
- "name": "snapping"
1325
- }
1177
+ "name": "SnappingMain"
1326
1178
  },
1327
1179
  {
1328
1180
  "__schema": "TypeRefSchema",
@@ -1331,11 +1183,7 @@
1331
1183
  "line": 256,
1332
1184
  "character": 5
1333
1185
  },
1334
- "name": "LanesMain",
1335
- "componentId": {
1336
- "scope": "teambit.lanes",
1337
- "name": "lanes"
1338
- }
1186
+ "name": "LanesMain"
1339
1187
  },
1340
1188
  {
1341
1189
  "__schema": "TypeRefSchema",
@@ -1344,11 +1192,7 @@
1344
1192
  "line": 257,
1345
1193
  "character": 5
1346
1194
  },
1347
- "name": "InstallMain",
1348
- "componentId": {
1349
- "scope": "teambit.workspace",
1350
- "name": "install"
1351
- }
1195
+ "name": "InstallMain"
1352
1196
  },
1353
1197
  {
1354
1198
  "__schema": "TypeRefSchema",
@@ -1357,11 +1201,7 @@
1357
1201
  "line": 258,
1358
1202
  "character": 5
1359
1203
  },
1360
- "name": "ExportMain",
1361
- "componentId": {
1362
- "scope": "teambit.scope",
1363
- "name": "export"
1364
- }
1204
+ "name": "ExportMain"
1365
1205
  },
1366
1206
  {
1367
1207
  "__schema": "TypeRefSchema",
@@ -1370,11 +1210,7 @@
1370
1210
  "line": 259,
1371
1211
  "character": 5
1372
1212
  },
1373
- "name": "CheckoutMain",
1374
- "componentId": {
1375
- "scope": "teambit.component",
1376
- "name": "checkout"
1377
- }
1213
+ "name": "CheckoutMain"
1378
1214
  },
1379
1215
  {
1380
1216
  "__schema": "TypeRefSchema",
@@ -1383,11 +1219,7 @@
1383
1219
  "line": 260,
1384
1220
  "character": 5
1385
1221
  },
1386
- "name": "ComponentLogMain",
1387
- "componentId": {
1388
- "scope": "teambit.component",
1389
- "name": "component-log"
1390
- }
1222
+ "name": "ComponentLogMain"
1391
1223
  },
1392
1224
  {
1393
1225
  "__schema": "TypeRefSchema",
@@ -1396,11 +1228,7 @@
1396
1228
  "line": 261,
1397
1229
  "character": 5
1398
1230
  },
1399
- "name": "ImporterMain",
1400
- "componentId": {
1401
- "scope": "teambit.scope",
1402
- "name": "importer"
1403
- }
1231
+ "name": "ImporterMain"
1404
1232
  },
1405
1233
  {
1406
1234
  "__schema": "TypeRefSchema",
@@ -1409,11 +1237,7 @@
1409
1237
  "line": 262,
1410
1238
  "character": 5
1411
1239
  },
1412
- "name": "ComponentCompareMain",
1413
- "componentId": {
1414
- "scope": "teambit.component",
1415
- "name": "component-compare"
1416
- }
1240
+ "name": "ComponentCompareMain"
1417
1241
  },
1418
1242
  {
1419
1243
  "__schema": "TypeRefSchema",
@@ -1422,11 +1246,7 @@
1422
1246
  "line": 263,
1423
1247
  "character": 5
1424
1248
  },
1425
- "name": "GeneratorMain",
1426
- "componentId": {
1427
- "scope": "teambit.generator",
1428
- "name": "generator"
1429
- }
1249
+ "name": "GeneratorMain"
1430
1250
  },
1431
1251
  {
1432
1252
  "__schema": "TypeRefSchema",
@@ -1435,11 +1255,7 @@
1435
1255
  "line": 264,
1436
1256
  "character": 5
1437
1257
  },
1438
- "name": "RemoveMain",
1439
- "componentId": {
1440
- "scope": "teambit.component",
1441
- "name": "remove"
1442
- }
1258
+ "name": "RemoveMain"
1443
1259
  },
1444
1260
  {
1445
1261
  "__schema": "TypeRefSchema",
@@ -1448,11 +1264,7 @@
1448
1264
  "line": 265,
1449
1265
  "character": 5
1450
1266
  },
1451
- "name": "ConfigMain",
1452
- "componentId": {
1453
- "scope": "teambit.harmony",
1454
- "name": "config"
1455
- }
1267
+ "name": "ConfigMain"
1456
1268
  },
1457
1269
  {
1458
1270
  "__schema": "TypeRefSchema",
@@ -1461,11 +1273,7 @@
1461
1273
  "line": 266,
1462
1274
  "character": 5
1463
1275
  },
1464
- "name": "ApplicationMain",
1465
- "componentId": {
1466
- "scope": "teambit.harmony",
1467
- "name": "application"
1468
- }
1276
+ "name": "ApplicationMain"
1469
1277
  },
1470
1278
  {
1471
1279
  "__schema": "TypeRefSchema",
@@ -1474,11 +1282,7 @@
1474
1282
  "line": 267,
1475
1283
  "character": 5
1476
1284
  },
1477
- "name": "DeprecationMain",
1478
- "componentId": {
1479
- "scope": "teambit.component",
1480
- "name": "deprecation"
1481
- }
1285
+ "name": "DeprecationMain"
1482
1286
  },
1483
1287
  {
1484
1288
  "__schema": "TypeRefSchema",
@@ -1487,11 +1291,7 @@
1487
1291
  "line": 268,
1488
1292
  "character": 5
1489
1293
  },
1490
- "name": "EnvsMain",
1491
- "componentId": {
1492
- "scope": "teambit.envs",
1493
- "name": "envs"
1494
- }
1294
+ "name": "EnvsMain"
1495
1295
  }
1496
1296
  ]
1497
1297
  },
@@ -1582,7 +1382,7 @@
1582
1382
  "componentId": {
1583
1383
  "scope": "teambit.harmony",
1584
1384
  "name": "api-server",
1585
- "version": "1.0.434"
1385
+ "version": "1.0.436"
1586
1386
  },
1587
1387
  "taggedModuleExports": []
1588
1388
  }
@@ -88,6 +88,7 @@ export declare class APIForIDE {
88
88
  constructor(workspace: Workspace, snapping: SnappingMain, lanes: LanesMain, installer: InstallMain, exporter: ExportMain, checkout: CheckoutMain, componentLog: ComponentLogMain, componentCompare: ComponentCompareMain, generator: GeneratorMain, remove: RemoveMain, config: ConfigMain, application: ApplicationMain, deprecation: DeprecationMain, envs: EnvsMain);
89
89
  logStartCmdHistory(op: string): Promise<void>;
90
90
  logFinishCmdHistory(op: string, code: number): Promise<void>;
91
+ getProcessPid(): number;
91
92
  private writeToCmdHistory;
92
93
  listIdsWithPaths(): Promise<{}>;
93
94
  getMainFilePath(id: string): Promise<PathOsBasedAbsolute>;
@@ -114,6 +114,9 @@ class APIForIDE {
114
114
  const str = `${op}, ${endStr}`;
115
115
  await this.writeToCmdHistory(str);
116
116
  }
117
+ getProcessPid() {
118
+ return process.pid;
119
+ }
117
120
  async writeToCmdHistory(str) {
118
121
  await _fsExtra().default.appendFile(_path().default.join(this.workspace.scope.path, CMD_HISTORY), `${new Date().toISOString()} ${str}\n`);
119
122
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_path","data","_interopRequireDefault","require","_fsExtra","_filenamify","_legacy","_pMap","_consumer","_lodash","_constants","_laneId","_nodeFetch","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","FILES_HISTORY_DIR","ENV_ICONS_DIR","LAST_SNAP_DIR","CMD_HISTORY","APIForIDE","constructor","workspace","snapping","lanes","installer","exporter","checkout","componentLog","componentCompare","generator","remove","config","application","deprecation","envs","logStartCmdHistory","op","str","writeToCmdHistory","logFinishCmdHistory","code","endStr","fs","appendFile","path","join","scope","Date","toISOString","listIdsWithPaths","ids","listIds","reduce","acc","id","toStringWithoutVersion","componentDir","getMainFilePath","compId","resolveComponentId","comp","get","state","mainFile","getWorkspaceHistory","current","bitMap","getPath","bitmapHistoryDir","consumer","getBitmapHistoryDir","historyPaths","readdir","historyMetadata","getParsedBitmapHistoryMetadata","history","map","historyPath","fileName","basename","fileId","replace","reason","historySorted","sort","a","b","fileIdToTimestamp","getConfigHistory","workspaceConfig","Error","configHistoryDir","getBackupHistoryDir","getParsedHistoryMetadata","getBackupMetadataFilePath","importLane","laneName","skipDependencyInstallation","results","switchLanes","components","c","toString","getCurrentLaneObject","currentLane","getCurrentLane","undefined","head","name","log","isNew","forkedFrom","listLanes","getLanes","showDefaultLane","createLane","includes","LANE_REMOTE_DELIMITER","laneId","LaneId","parse","getCompsMetadata","comps","list","apps","listAppsIdsAndNames","pMap","deprecationInfo","getDeprecationInfo","foundApp","find","app","env","getEnv","isDeprecated","isDeprecate","appName","icon","concurrency","allIcons","uniq","compact","iconsMap","getEnvIconsMapFetchIfMissing","localIconPath","getEnvIconsFullPath","getExistingEnvIcons","existingEnvIcons","envIconsDir","ensureDir","existingIcons","icons","Promise","all","iconFileName","filenamify","replacement","fullIconPath","res","fetch","err","message","svgText","text","outputFile","getCompFiles","dirAbs","filesRelative","filesystem","files","file","relative","getCompFilesDirPathFromLastSnap","hasVersion","compDir","ignoreVersion","filePathsRootDir","modelComponent","getBitObjectModelComponent","versionObject","getBitObjectVersion","version","sourceFiles","modelFilesToSourceFiles","legacyScope","objects","filePath","contents","pathJoinLinux","catObject","hash","object","getRawObject","JSON","stringify","content","logFile","getFileHistoryHashes","changedFilesFromParent","getChangedFilesFromParent","getConfigForDiff","getConfigForDiffById","setDefaultScope","scopeName","getDefaultScope","defaultScope","getCompFilesDirPathFromLastSnapUsingCompFiles","compFiles","getHeadFiles","warmWorkspaceCache","warmCache","clearCache","clearAllComponentsCache","install","options","opts","optimizeReportForNonTerminal","dedupe","updateExisting","import","export","componentsIds","removedIds","exportedLanes","rippleJobs","rippleJobsFullUrls","job","getCloudDomain","l","checkoutHead","skipNpmInstall","adjustCheckoutResultsToIde","getTemplates","templates","listTemplates","createComponent","templateName","idIncludeScope","nameSplit","split","generateComponentTemplate","removeComponent","componentsPattern","force","serializedResults","localResult","serialize","deleteComponents","deleteComps","deprecateComponent","newId","range","deprecateByCLIValues","undeprecateComponent","unDeprecateByCLIValues","switchLane","output","failedComponents","skipped","f","unchangedLegitimately","failed","succeed","getModifiedByConfig","modifiedComps","modified","autoTagIds","listAutoTagPendingComponentIds","autoTagComps","getMany","locallyDeletedIds","locallyDeletedComps","allComps","allIds","wsComp","getConfigForDiffByCompObject","scopeComp","hasSameDeps","dependencies","hasSameAspects","aspects","result","getDataToInitSCM","getFilesModification","pathsFromLastSnap","idStr","filesStatus","getFilesStatus","componentId","getCompFilesDirPathFromLastSnapForAllComps","compResults","getCurrentLaneName","getCurrentLaneId","tagOrSnap","params","build","isOnMain","tag","snap","taggedComponents","snappedComponents","exports","dateStr","year","month","day","hours","minutes","seconds","date","getTime"],"sources":["api-for-ide.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport filenamify from 'filenamify';\nimport { CompFiles, Workspace, FilesStatus } from '@teambit/workspace';\nimport { PathOsBasedAbsolute, PathOsBasedRelative, pathJoinLinux } from '@teambit/legacy.utils';\nimport pMap from 'p-map';\nimport { SnappingMain } from '@teambit/snapping';\nimport { LanesMain } from '@teambit/lanes';\nimport { InstallMain } from '@teambit/install';\nimport { ExportMain } from '@teambit/export';\nimport { CheckoutMain } from '@teambit/checkout';\nimport { ApplyVersionResults } from '@teambit/merging';\nimport { ComponentLogMain, FileHashDiffFromParent } from '@teambit/component-log';\nimport { Log } from '@teambit/legacy/dist/scope/models/lane';\nimport { ComponentCompareMain } from '@teambit/component-compare';\nimport { GeneratorMain } from '@teambit/generator';\nimport { getParsedHistoryMetadata } from '@teambit/legacy/dist/consumer/consumer';\nimport RemovedObjects from '@teambit/legacy/dist/scope/removed-components';\nimport { RemoveMain } from '@teambit/remove';\nimport { compact, uniq } from 'lodash';\nimport { getCloudDomain } from '@teambit/legacy/dist/constants';\nimport { ConfigMain } from '@teambit/config';\nimport { LANE_REMOTE_DELIMITER, LaneId } from '@teambit/lane-id';\nimport { ApplicationMain } from '@teambit/application';\nimport { DeprecationMain } from '@teambit/deprecation';\nimport { EnvsMain } from '@teambit/envs';\nimport fetch from 'node-fetch';\n\nconst FILES_HISTORY_DIR = 'files-history';\nconst ENV_ICONS_DIR = 'env-icons';\nconst LAST_SNAP_DIR = 'last-snap';\nconst CMD_HISTORY = 'command-history-ide';\n\ntype PathLinux = string; // problematic to get it from @teambit/legacy/dist/utils/path.\n\ntype PathFromLastSnap = { [relativeToWorkspace: PathLinux]: string };\n\ntype InitSCMEntry = {\n filesStatus: FilesStatus;\n pathsFromLastSnap: PathFromLastSnap;\n compDir: PathLinux;\n};\n\ntype DataToInitSCM = { [compId: string]: InitSCMEntry };\n\ntype LaneObj = {\n name: string;\n scope: string;\n id: string;\n log: Log;\n components: Array<{ id: string; head: string }>;\n isNew: boolean;\n forkedFrom?: string;\n};\n\ntype ModifiedByConfig = {\n id: string;\n version: string;\n dependencies?: { workspace: string[]; scope: string[] };\n aspects?: { workspace: Record<string, any>; scope: Record<string, any> };\n};\n\ntype WorkspaceHistory = {\n current: PathOsBasedAbsolute;\n history: Array<{ path: PathOsBasedAbsolute; fileId: string; reason?: string }>;\n};\n\ntype CompMetadata = {\n id: string;\n isDeprecated: boolean;\n appName?: string; // in case it's an app\n env: {\n id: string;\n name?: string;\n icon: string;\n localIconPath?: string;\n };\n};\n\nexport class APIForIDE {\n private existingEnvIcons: string[] | undefined;\n constructor(\n private workspace: Workspace,\n private snapping: SnappingMain,\n private lanes: LanesMain,\n private installer: InstallMain,\n private exporter: ExportMain,\n private checkout: CheckoutMain,\n private componentLog: ComponentLogMain,\n private componentCompare: ComponentCompareMain,\n private generator: GeneratorMain,\n private remove: RemoveMain,\n private config: ConfigMain,\n private application: ApplicationMain,\n private deprecation: DeprecationMain,\n private envs: EnvsMain\n ) {}\n\n async logStartCmdHistory(op: string) {\n const str = `${op}, started`;\n await this.writeToCmdHistory(str);\n }\n\n async logFinishCmdHistory(op: string, code: number) {\n const endStr = code === 0 ? 'succeeded' : 'failed';\n const str = `${op}, ${endStr}`;\n await this.writeToCmdHistory(str);\n }\n\n private async writeToCmdHistory(str: string) {\n await fs.appendFile(path.join(this.workspace.scope.path, CMD_HISTORY), `${new Date().toISOString()} ${str}\\n`);\n }\n\n async listIdsWithPaths() {\n const ids = this.workspace.listIds();\n return ids.reduce((acc, id) => {\n acc[id.toStringWithoutVersion()] = this.workspace.componentDir(id);\n return acc;\n }, {});\n }\n\n async getMainFilePath(id: string): Promise<PathOsBasedAbsolute> {\n const compId = await this.workspace.resolveComponentId(id);\n const comp = await this.workspace.get(compId);\n return path.join(this.workspace.componentDir(compId), comp.state._consumer.mainFile);\n }\n\n async getWorkspaceHistory(): Promise<WorkspaceHistory> {\n const current = this.workspace.bitMap.getPath();\n const bitmapHistoryDir = this.workspace.consumer.getBitmapHistoryDir();\n const historyPaths = await fs.readdir(bitmapHistoryDir);\n const historyMetadata = await this.workspace.consumer.getParsedBitmapHistoryMetadata();\n const history = historyPaths.map((historyPath) => {\n const fileName = path.basename(historyPath);\n const fileId = fileName.replace('.bitmap-', '');\n const reason = historyMetadata[fileId];\n return { path: path.join(bitmapHistoryDir, fileName), fileId, reason };\n });\n const historySorted = history.sort((a, b) => fileIdToTimestamp(b.fileId) - fileIdToTimestamp(a.fileId));\n\n return { current, history: historySorted };\n }\n\n async getConfigHistory(): Promise<WorkspaceHistory> {\n const workspaceConfig = this.config.workspaceConfig;\n if (!workspaceConfig) throw new Error('getConfigHistory(), workspace config is missing');\n const current = workspaceConfig.path;\n const configHistoryDir = workspaceConfig.getBackupHistoryDir();\n const historyPaths = await fs.readdir(configHistoryDir);\n const historyMetadata = await getParsedHistoryMetadata(workspaceConfig.getBackupMetadataFilePath());\n const history = historyPaths.map((historyPath) => {\n const fileName = path.basename(historyPath);\n const fileId = fileName;\n const reason = historyMetadata[fileId];\n return { path: path.join(configHistoryDir, fileName), fileId, reason };\n });\n const historySorted = history.sort((a, b) => fileIdToTimestamp(b.fileId) - fileIdToTimestamp(a.fileId));\n\n return { current, history: historySorted };\n }\n\n async importLane(\n laneName: string,\n { skipDependencyInstallation }: { skipDependencyInstallation?: boolean }\n ): Promise<string[]> {\n const results = await this.lanes.switchLanes(laneName, {\n skipDependencyInstallation,\n });\n return (results.components || []).map((c) => c.id.toString());\n }\n\n async getCurrentLaneObject(): Promise<LaneObj | undefined> {\n const currentLane = await this.lanes.getCurrentLane();\n if (!currentLane) return undefined;\n const components = currentLane.components.map((c) => {\n return {\n id: c.id.toStringWithoutVersion(),\n head: c.head.toString(),\n };\n });\n return {\n name: currentLane.name,\n scope: currentLane.scope,\n id: currentLane.id(),\n log: currentLane.log,\n components,\n isNew: currentLane.isNew,\n forkedFrom: currentLane.forkedFrom?.toString(),\n };\n }\n\n async listLanes() {\n return this.lanes.getLanes({ showDefaultLane: true });\n }\n\n async createLane(name: string) {\n if (name.includes(LANE_REMOTE_DELIMITER)) {\n const laneId = LaneId.parse(name);\n return this.lanes.createLane(laneId.name, { scope: laneId.scope });\n }\n return this.lanes.createLane(name);\n }\n\n async getCompsMetadata(): Promise<CompMetadata[]> {\n const comps = await this.workspace.list();\n const apps = await this.application.listAppsIdsAndNames();\n const results: CompMetadata[] = await pMap(\n comps,\n async (comp) => {\n const id = comp.id;\n const deprecationInfo = await this.deprecation.getDeprecationInfo(comp);\n const foundApp = apps.find((app) => app.id === id.toString());\n const env = this.envs.getEnv(comp);\n return {\n id: id.toStringWithoutVersion(),\n isDeprecated: deprecationInfo.isDeprecate,\n appName: foundApp?.name,\n env: {\n id: env.id,\n name: env.name,\n icon: env.icon,\n },\n };\n },\n { concurrency: 30 }\n );\n const allIcons = uniq(compact(results.map((r) => r.env.icon)));\n const iconsMap = await this.getEnvIconsMapFetchIfMissing(allIcons);\n results.forEach((r) => {\n r.env.localIconPath = iconsMap[r.env.icon];\n });\n return results;\n }\n\n private getEnvIconsFullPath() {\n return path.join(this.workspace.scope.path, ENV_ICONS_DIR);\n }\n\n private async getExistingEnvIcons(): Promise<string[]> {\n if (!this.existingEnvIcons) {\n const envIconsDir = this.getEnvIconsFullPath();\n await fs.ensureDir(envIconsDir);\n const existingIcons = await fs.readdir(envIconsDir);\n this.existingEnvIcons = existingIcons;\n }\n return this.existingEnvIcons;\n }\n\n private async getEnvIconsMapFetchIfMissing(icons: string[]): Promise<{ [iconHttpUrl: string]: string }> {\n const existingIcons = await this.getExistingEnvIcons();\n const iconsMap: Record<string, string> = {};\n await Promise.all(\n icons.map(async (icon) => {\n const iconFileName = filenamify(icon, { replacement: '-' });\n const fullIconPath = path.join(this.workspace.scope.path, ENV_ICONS_DIR, iconFileName);\n if (existingIcons.includes(iconFileName)) {\n iconsMap[icon] = fullIconPath;\n return;\n }\n let res;\n // download the icon from the url and save it locally.\n try {\n res = await fetch(icon);\n } catch (err: any) {\n throw new Error(`failed to get the icon from ${icon}, error: ${err.message}`);\n }\n const svgText = await res.text();\n await fs.outputFile(fullIconPath, svgText);\n iconsMap[icon] = fullIconPath;\n this.existingEnvIcons?.push(iconFileName);\n })\n );\n return iconsMap;\n }\n\n async getCompFiles(id: string): Promise<{ dirAbs: string; filesRelative: PathOsBasedRelative[] }> {\n const compId = await this.workspace.resolveComponentId(id);\n const comp = await this.workspace.get(compId);\n const dirAbs = this.workspace.componentDir(comp.id);\n const filesRelative = comp.state.filesystem.files.map((file) => file.relative);\n return { dirAbs, filesRelative };\n }\n\n async getCompFilesDirPathFromLastSnap(id: string): Promise<{ [relativePath: string]: string }> {\n const compId = await this.workspace.resolveComponentId(id);\n if (!compId.hasVersion()) return {}; // it's a new component.\n const compDir = this.workspace.componentDir(compId, { ignoreVersion: true }, { relative: true });\n // const dirName = filenamify(compId.toString(), { replacement: '_' });\n const filePathsRootDir = path.join(this.workspace.scope.path, FILES_HISTORY_DIR, LAST_SNAP_DIR, compDir);\n await fs.remove(filePathsRootDir); // in case it has old data\n await fs.ensureDir(filePathsRootDir);\n\n const modelComponent = await this.workspace.scope.getBitObjectModelComponent(compId);\n if (!modelComponent) {\n throw new Error(`unable to find ${compId.toString()} in the local scope, please run \"bit import\"`);\n }\n const versionObject = await this.workspace.scope.getBitObjectVersion(modelComponent, compId.version as string);\n if (!versionObject)\n throw new Error(`unable to find the Version object of ${compId.toString()}, please run \"bit import\"`);\n const sourceFiles = await versionObject.modelFilesToSourceFiles(this.workspace.scope.legacyScope.objects);\n const results: { [relativePath: string]: string } = {};\n await Promise.all(\n sourceFiles.map(async (file) => {\n const filePath = path.join(filePathsRootDir, file.relative);\n await fs.outputFile(filePath, file.contents);\n results[pathJoinLinux(compDir, file.relative)] = filePath;\n })\n );\n return results;\n }\n\n async catObject(hash: string) {\n const object = await this.workspace.scope.legacyScope.getRawObject(hash);\n return JSON.stringify(object.content.toString());\n }\n\n async logFile(filePath: string) {\n const results = await this.componentLog.getFileHistoryHashes(filePath);\n return results;\n }\n\n async changedFilesFromParent(id: string): Promise<FileHashDiffFromParent[]> {\n const results = await this.componentLog.getChangedFilesFromParent(id);\n return results;\n }\n\n async getConfigForDiff(id: string) {\n const results = await this.componentCompare.getConfigForDiffById(id);\n return results;\n }\n\n async setDefaultScope(scopeName: string) {\n await this.workspace.setDefaultScope(scopeName);\n return scopeName;\n }\n\n getDefaultScope() {\n return this.workspace.defaultScope;\n }\n\n async getCompFilesDirPathFromLastSnapUsingCompFiles(\n compFiles: CompFiles\n ): Promise<{ [relativePath: string]: string }> {\n const compId = compFiles.id;\n if (!compId.hasVersion()) return {}; // it's a new component.\n const compDir = compFiles.compDir;\n const filePathsRootDir = path.join(this.workspace.scope.path, FILES_HISTORY_DIR, LAST_SNAP_DIR, compDir);\n await fs.remove(filePathsRootDir); // in case it has old data\n\n const sourceFiles = await compFiles.getHeadFiles();\n\n const results: { [relativePath: string]: string } = {};\n await Promise.all(\n sourceFiles.map(async (file) => {\n const filePath = path.join(filePathsRootDir, file.relative);\n await fs.outputFile(filePath, file.contents);\n results[pathJoinLinux(compDir, file.relative)] = filePath;\n })\n );\n return results;\n }\n\n async warmWorkspaceCache() {\n await this.workspace.warmCache();\n }\n async clearCache() {\n await this.workspace.clearCache();\n this.workspace.clearAllComponentsCache();\n }\n\n async install(options = {}) {\n const opts = {\n optimizeReportForNonTerminal: true,\n dedupe: true,\n updateExisting: false,\n import: false,\n ...options,\n };\n\n return this.installer.install(undefined, opts);\n }\n\n async export() {\n const { componentsIds, removedIds, exportedLanes, rippleJobs } = await this.exporter.export();\n const rippleJobsFullUrls = rippleJobs.map((job) => `https://${getCloudDomain()}/ripple-ci/job/${job}`);\n return {\n componentsIds: componentsIds.map((c) => c.toString()),\n removedIds: removedIds.map((c) => c.toString()),\n exportedLanes: exportedLanes.map((l) => l.id()),\n rippleJobs: rippleJobsFullUrls,\n };\n }\n\n async checkoutHead() {\n const results = await this.checkout.checkout({\n head: true,\n skipNpmInstall: true,\n ids: await this.workspace.listIds(),\n });\n return this.adjustCheckoutResultsToIde(results);\n }\n\n async getTemplates() {\n const templates = await this.generator.listTemplates();\n return templates;\n }\n\n async createComponent(templateName: string, idIncludeScope: string) {\n if (!idIncludeScope.includes('/')) {\n throw new Error('id should include the scope name');\n }\n const [scope, ...nameSplit] = idIncludeScope.split('/');\n return this.generator.generateComponentTemplate(\n [nameSplit.join('/')],\n templateName,\n { scope },\n { optimizeReportForNonTerminal: true }\n );\n }\n\n async removeComponent(componentsPattern: string) {\n const results = await this.remove.remove({\n componentsPattern,\n force: true,\n });\n const serializedResults = (results.localResult as RemovedObjects).serialize();\n return serializedResults;\n }\n\n async deleteComponents(componentsPattern: string, opts): Promise<string[]> {\n const results = await this.remove.deleteComps(componentsPattern, opts);\n const serializedResults = results.map((c) => c.id.toString());\n return serializedResults;\n }\n\n async deprecateComponent(id: string, newId?: string, range?: string): Promise<boolean> {\n return this.deprecation.deprecateByCLIValues(id, newId, range);\n }\n async undeprecateComponent(id: string): Promise<boolean> {\n return this.deprecation.unDeprecateByCLIValues(id);\n }\n\n async switchLane(name: string) {\n const results = await this.lanes.switchLanes(name, { skipDependencyInstallation: true });\n return this.adjustCheckoutResultsToIde(results);\n }\n\n private adjustCheckoutResultsToIde(output: ApplyVersionResults) {\n const { components, failedComponents } = output;\n const skipped = failedComponents?.filter((f) => f.unchangedLegitimately).map((f) => f.id.toString());\n const failed = failedComponents?.filter((f) => !f.unchangedLegitimately).map((f) => f.id.toString());\n return {\n succeed: components?.map((c) => c.id.toString()),\n skipped,\n failed,\n };\n }\n\n async getModifiedByConfig(): Promise<ModifiedByConfig[]> {\n const modifiedComps = await this.workspace.modified();\n const autoTagIds = await this.workspace.listAutoTagPendingComponentIds();\n const autoTagComps = await this.workspace.getMany(autoTagIds);\n const locallyDeletedIds = await this.workspace.locallyDeletedIds();\n const locallyDeletedComps = await this.workspace.getMany(locallyDeletedIds);\n const allComps = [...modifiedComps, ...autoTagComps, ...locallyDeletedComps];\n const allIds = allComps.map((c) => c.id);\n const results = await Promise.all(\n allComps.map(async (comp) => {\n const wsComp = await this.componentCompare.getConfigForDiffByCompObject(comp, allIds);\n const scopeComp = await this.componentCompare.getConfigForDiffById(comp.id.toString());\n const hasSameDeps = JSON.stringify(wsComp.dependencies) === JSON.stringify(scopeComp.dependencies);\n const hasSameAspects = JSON.stringify(wsComp.aspects) === JSON.stringify(scopeComp.aspects);\n if (hasSameDeps && hasSameAspects) return null;\n const result: ModifiedByConfig = {\n id: comp.id.toStringWithoutVersion(),\n version: comp.id.version as string,\n };\n if (!hasSameDeps) result.dependencies = { workspace: wsComp.dependencies, scope: scopeComp.dependencies || [] };\n if (!hasSameAspects) result.aspects = { workspace: wsComp.aspects, scope: scopeComp.aspects || {} };\n return result;\n })\n );\n\n return compact(results);\n }\n\n async getDataToInitSCM(): Promise<DataToInitSCM> {\n const ids = this.workspace.listIds();\n const results: DataToInitSCM = {};\n await pMap(\n ids,\n async (id) => {\n const compFiles = await this.workspace.getFilesModification(id);\n const pathsFromLastSnap = await this.getCompFilesDirPathFromLastSnapUsingCompFiles(compFiles);\n const idStr = id.toStringWithoutVersion();\n results[idStr] = {\n filesStatus: compFiles.getFilesStatus(),\n pathsFromLastSnap,\n compDir: compFiles.compDir,\n };\n },\n { concurrency: 30 }\n );\n\n return results;\n }\n\n async getFilesStatus(id: string): Promise<FilesStatus> {\n const componentId = await this.workspace.resolveComponentId(id);\n const compFiles = await this.workspace.getFilesModification(componentId);\n return compFiles.getFilesStatus();\n }\n\n async getCompFilesDirPathFromLastSnapForAllComps(): Promise<{ [relativePath: string]: string }> {\n const ids = this.workspace.listIds();\n let results = {};\n await pMap(\n ids,\n async (id) => {\n const idStr = id.toStringWithoutVersion();\n const compResults = await this.getCompFilesDirPathFromLastSnap(idStr);\n results = { ...results, ...compResults };\n },\n { concurrency: 30 }\n );\n return results;\n }\n\n getCurrentLaneName(): string {\n return this.workspace.getCurrentLaneId().name;\n }\n\n async tagOrSnap(message = '') {\n const params = { message, build: false };\n return this.workspace.isOnMain() ? this.snapping.tag(params) : this.snapping.snap(params);\n }\n\n async tag(message = ''): Promise<string[]> {\n const params = { message, build: false };\n const results = await this.snapping.tag(params);\n return (results?.taggedComponents || []).map((c) => c.id.toString());\n }\n\n async snap(message = ''): Promise<string[]> {\n const params = { message, build: false };\n const results = await this.snapping.snap(params);\n return (results?.snappedComponents || []).map((c) => c.id.toString());\n }\n}\n\nfunction fileIdToTimestamp(dateStr: string): number {\n const [year, month, day, hours, minutes, seconds] = dateStr.split('-');\n const date = new Date(Number(year), Number(month) - 1, Number(day), Number(hours), Number(minutes), Number(seconds));\n return date.getTime();\n}\n"],"mappings":";;;;;;AAAA,SAAAA,MAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,KAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,SAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,YAAA;EAAA,MAAAJ,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAE,WAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAK,QAAA;EAAA,MAAAL,IAAA,GAAAE,OAAA;EAAAG,OAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,MAAA;EAAA,MAAAN,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAI,KAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAWA,SAAAO,UAAA;EAAA,MAAAP,IAAA,GAAAE,OAAA;EAAAK,SAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAQ,QAAA;EAAA,MAAAR,IAAA,GAAAE,OAAA;EAAAM,OAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAS,WAAA;EAAA,MAAAT,IAAA,GAAAE,OAAA;EAAAO,UAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAU,QAAA;EAAA,MAAAV,IAAA,GAAAE,OAAA;EAAAQ,OAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIA,SAAAW,WAAA;EAAA,MAAAX,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAS,UAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA+B,SAAAC,uBAAAW,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,QAAAH,CAAA,EAAAI,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAP,CAAA,OAAAM,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAR,CAAA,GAAAI,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAX,CAAA,EAAAI,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAf,CAAA,aAAAI,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAD,OAAA,CAAAG,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAArB,CAAA,EAAAM,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAF,OAAA,CAAAG,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAJ,CAAA;AAAA,SAAAmB,gBAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAJ,CAAA,GAAAM,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAA1B,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAuB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA9B,CAAA,QAAA2B,CAAA,GAAA3B,CAAA,CAAA+B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA;AAE/B,MAAM8B,iBAAiB,GAAG,eAAe;AACzC,MAAMC,aAAa,GAAG,WAAW;AACjC,MAAMC,aAAa,GAAG,WAAW;AACjC,MAAMC,WAAW,GAAG,qBAAqB;;AAEhB;;AA8ClB,MAAMC,SAAS,CAAC;EAErBC,WAAWA,CACDC,SAAoB,EACpBC,QAAsB,EACtBC,KAAgB,EAChBC,SAAsB,EACtBC,QAAoB,EACpBC,QAAsB,EACtBC,YAA8B,EAC9BC,gBAAsC,EACtCC,SAAwB,EACxBC,MAAkB,EAClBC,MAAkB,EAClBC,WAA4B,EAC5BC,WAA4B,EAC5BC,IAAc,EACtB;IAAA,KAdQb,SAAoB,GAApBA,SAAoB;IAAA,KACpBC,QAAsB,GAAtBA,QAAsB;IAAA,KACtBC,KAAgB,GAAhBA,KAAgB;IAAA,KAChBC,SAAsB,GAAtBA,SAAsB;IAAA,KACtBC,QAAoB,GAApBA,QAAoB;IAAA,KACpBC,QAAsB,GAAtBA,QAAsB;IAAA,KACtBC,YAA8B,GAA9BA,YAA8B;IAAA,KAC9BC,gBAAsC,GAAtCA,gBAAsC;IAAA,KACtCC,SAAwB,GAAxBA,SAAwB;IAAA,KACxBC,MAAkB,GAAlBA,MAAkB;IAAA,KAClBC,MAAkB,GAAlBA,MAAkB;IAAA,KAClBC,WAA4B,GAA5BA,WAA4B;IAAA,KAC5BC,WAA4B,GAA5BA,WAA4B;IAAA,KAC5BC,IAAc,GAAdA,IAAc;IAAAnC,eAAA;EACrB;EAEH,MAAMoC,kBAAkBA,CAACC,EAAU,EAAE;IACnC,MAAMC,GAAG,GAAG,GAAGD,EAAE,WAAW;IAC5B,MAAM,IAAI,CAACE,iBAAiB,CAACD,GAAG,CAAC;EACnC;EAEA,MAAME,mBAAmBA,CAACH,EAAU,EAAEI,IAAY,EAAE;IAClD,MAAMC,MAAM,GAAGD,IAAI,KAAK,CAAC,GAAG,WAAW,GAAG,QAAQ;IAClD,MAAMH,GAAG,GAAG,GAAGD,EAAE,KAAKK,MAAM,EAAE;IAC9B,MAAM,IAAI,CAACH,iBAAiB,CAACD,GAAG,CAAC;EACnC;EAEA,MAAcC,iBAAiBA,CAACD,GAAW,EAAE;IAC3C,MAAMK,kBAAE,CAACC,UAAU,CAACC,eAAI,CAACC,IAAI,CAAC,IAAI,CAACxB,SAAS,CAACyB,KAAK,CAACF,IAAI,EAAE1B,WAAW,CAAC,EAAE,GAAG,IAAI6B,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,IAAIX,GAAG,IAAI,CAAC;EAChH;EAEA,MAAMY,gBAAgBA,CAAA,EAAG;IACvB,MAAMC,GAAG,GAAG,IAAI,CAAC7B,SAAS,CAAC8B,OAAO,CAAC,CAAC;IACpC,OAAOD,GAAG,CAACE,MAAM,CAAC,CAACC,GAAG,EAAEC,EAAE,KAAK;MAC7BD,GAAG,CAACC,EAAE,CAACC,sBAAsB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAClC,SAAS,CAACmC,YAAY,CAACF,EAAE,CAAC;MAClE,OAAOD,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;EACR;EAEA,MAAMI,eAAeA,CAACH,EAAU,EAAgC;IAC9D,MAAMI,MAAM,GAAG,MAAM,IAAI,CAACrC,SAAS,CAACsC,kBAAkB,CAACL,EAAE,CAAC;IAC1D,MAAMM,IAAI,GAAG,MAAM,IAAI,CAACvC,SAAS,CAACwC,GAAG,CAACH,MAAM,CAAC;IAC7C,OAAOd,eAAI,CAACC,IAAI,CAAC,IAAI,CAACxB,SAAS,CAACmC,YAAY,CAACE,MAAM,CAAC,EAAEE,IAAI,CAACE,KAAK,CAACvF,SAAS,CAACwF,QAAQ,CAAC;EACtF;EAEA,MAAMC,mBAAmBA,CAAA,EAA8B;IACrD,MAAMC,OAAO,GAAG,IAAI,CAAC5C,SAAS,CAAC6C,MAAM,CAACC,OAAO,CAAC,CAAC;IAC/C,MAAMC,gBAAgB,GAAG,IAAI,CAAC/C,SAAS,CAACgD,QAAQ,CAACC,mBAAmB,CAAC,CAAC;IACtE,MAAMC,YAAY,GAAG,MAAM7B,kBAAE,CAAC8B,OAAO,CAACJ,gBAAgB,CAAC;IACvD,MAAMK,eAAe,GAAG,MAAM,IAAI,CAACpD,SAAS,CAACgD,QAAQ,CAACK,8BAA8B,CAAC,CAAC;IACtF,MAAMC,OAAO,GAAGJ,YAAY,CAACK,GAAG,CAAEC,WAAW,IAAK;MAChD,MAAMC,QAAQ,GAAGlC,eAAI,CAACmC,QAAQ,CAACF,WAAW,CAAC;MAC3C,MAAMG,MAAM,GAAGF,QAAQ,CAACG,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;MAC/C,MAAMC,MAAM,GAAGT,eAAe,CAACO,MAAM,CAAC;MACtC,OAAO;QAAEpC,IAAI,EAAEA,eAAI,CAACC,IAAI,CAACuB,gBAAgB,EAAEU,QAAQ,CAAC;QAAEE,MAAM;QAAEE;MAAO,CAAC;IACxE,CAAC,CAAC;IACF,MAAMC,aAAa,GAAGR,OAAO,CAACS,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKC,iBAAiB,CAACD,CAAC,CAACN,MAAM,CAAC,GAAGO,iBAAiB,CAACF,CAAC,CAACL,MAAM,CAAC,CAAC;IAEvG,OAAO;MAAEf,OAAO;MAAEU,OAAO,EAAEQ;IAAc,CAAC;EAC5C;EAEA,MAAMK,gBAAgBA,CAAA,EAA8B;IAClD,MAAMC,eAAe,GAAG,IAAI,CAAC1D,MAAM,CAAC0D,eAAe;IACnD,IAAI,CAACA,eAAe,EAAE,MAAM,IAAIC,KAAK,CAAC,iDAAiD,CAAC;IACxF,MAAMzB,OAAO,GAAGwB,eAAe,CAAC7C,IAAI;IACpC,MAAM+C,gBAAgB,GAAGF,eAAe,CAACG,mBAAmB,CAAC,CAAC;IAC9D,MAAMrB,YAAY,GAAG,MAAM7B,kBAAE,CAAC8B,OAAO,CAACmB,gBAAgB,CAAC;IACvD,MAAMlB,eAAe,GAAG,MAAM,IAAAoB,oCAAwB,EAACJ,eAAe,CAACK,yBAAyB,CAAC,CAAC,CAAC;IACnG,MAAMnB,OAAO,GAAGJ,YAAY,CAACK,GAAG,CAAEC,WAAW,IAAK;MAChD,MAAMC,QAAQ,GAAGlC,eAAI,CAACmC,QAAQ,CAACF,WAAW,CAAC;MAC3C,MAAMG,MAAM,GAAGF,QAAQ;MACvB,MAAMI,MAAM,GAAGT,eAAe,CAACO,MAAM,CAAC;MACtC,OAAO;QAAEpC,IAAI,EAAEA,eAAI,CAACC,IAAI,CAAC8C,gBAAgB,EAAEb,QAAQ,CAAC;QAAEE,MAAM;QAAEE;MAAO,CAAC;IACxE,CAAC,CAAC;IACF,MAAMC,aAAa,GAAGR,OAAO,CAACS,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKC,iBAAiB,CAACD,CAAC,CAACN,MAAM,CAAC,GAAGO,iBAAiB,CAACF,CAAC,CAACL,MAAM,CAAC,CAAC;IAEvG,OAAO;MAAEf,OAAO;MAAEU,OAAO,EAAEQ;IAAc,CAAC;EAC5C;EAEA,MAAMY,UAAUA,CACdC,QAAgB,EAChB;IAAEC;EAAqE,CAAC,EACrD;IACnB,MAAMC,OAAO,GAAG,MAAM,IAAI,CAAC3E,KAAK,CAAC4E,WAAW,CAACH,QAAQ,EAAE;MACrDC;IACF,CAAC,CAAC;IACF,OAAO,CAACC,OAAO,CAACE,UAAU,IAAI,EAAE,EAAExB,GAAG,CAAEyB,CAAC,IAAKA,CAAC,CAAC/C,EAAE,CAACgD,QAAQ,CAAC,CAAC,CAAC;EAC/D;EAEA,MAAMC,oBAAoBA,CAAA,EAAiC;IACzD,MAAMC,WAAW,GAAG,MAAM,IAAI,CAACjF,KAAK,CAACkF,cAAc,CAAC,CAAC;IACrD,IAAI,CAACD,WAAW,EAAE,OAAOE,SAAS;IAClC,MAAMN,UAAU,GAAGI,WAAW,CAACJ,UAAU,CAACxB,GAAG,CAAEyB,CAAC,IAAK;MACnD,OAAO;QACL/C,EAAE,EAAE+C,CAAC,CAAC/C,EAAE,CAACC,sBAAsB,CAAC,CAAC;QACjCoD,IAAI,EAAEN,CAAC,CAACM,IAAI,CAACL,QAAQ,CAAC;MACxB,CAAC;IACH,CAAC,CAAC;IACF,OAAO;MACLM,IAAI,EAAEJ,WAAW,CAACI,IAAI;MACtB9D,KAAK,EAAE0D,WAAW,CAAC1D,KAAK;MACxBQ,EAAE,EAAEkD,WAAW,CAAClD,EAAE,CAAC,CAAC;MACpBuD,GAAG,EAAEL,WAAW,CAACK,GAAG;MACpBT,UAAU;MACVU,KAAK,EAAEN,WAAW,CAACM,KAAK;MACxBC,UAAU,EAAEP,WAAW,CAACO,UAAU,EAAET,QAAQ,CAAC;IAC/C,CAAC;EACH;EAEA,MAAMU,SAASA,CAAA,EAAG;IAChB,OAAO,IAAI,CAACzF,KAAK,CAAC0F,QAAQ,CAAC;MAAEC,eAAe,EAAE;IAAK,CAAC,CAAC;EACvD;EAEA,MAAMC,UAAUA,CAACP,IAAY,EAAE;IAC7B,IAAIA,IAAI,CAACQ,QAAQ,CAACC,+BAAqB,CAAC,EAAE;MACxC,MAAMC,MAAM,GAAGC,gBAAM,CAACC,KAAK,CAACZ,IAAI,CAAC;MACjC,OAAO,IAAI,CAACrF,KAAK,CAAC4F,UAAU,CAACG,MAAM,CAACV,IAAI,EAAE;QAAE9D,KAAK,EAAEwE,MAAM,CAACxE;MAAM,CAAC,CAAC;IACpE;IACA,OAAO,IAAI,CAACvB,KAAK,CAAC4F,UAAU,CAACP,IAAI,CAAC;EACpC;EAEA,MAAMa,gBAAgBA,CAAA,EAA4B;IAChD,MAAMC,KAAK,GAAG,MAAM,IAAI,CAACrG,SAAS,CAACsG,IAAI,CAAC,CAAC;IACzC,MAAMC,IAAI,GAAG,MAAM,IAAI,CAAC5F,WAAW,CAAC6F,mBAAmB,CAAC,CAAC;IACzD,MAAM3B,OAAuB,GAAG,MAAM,IAAA4B,eAAI,EACxCJ,KAAK,EACL,MAAO9D,IAAI,IAAK;MACd,MAAMN,EAAE,GAAGM,IAAI,CAACN,EAAE;MAClB,MAAMyE,eAAe,GAAG,MAAM,IAAI,CAAC9F,WAAW,CAAC+F,kBAAkB,CAACpE,IAAI,CAAC;MACvE,MAAMqE,QAAQ,GAAGL,IAAI,CAACM,IAAI,CAAEC,GAAG,IAAKA,GAAG,CAAC7E,EAAE,KAAKA,EAAE,CAACgD,QAAQ,CAAC,CAAC,CAAC;MAC7D,MAAM8B,GAAG,GAAG,IAAI,CAAClG,IAAI,CAACmG,MAAM,CAACzE,IAAI,CAAC;MAClC,OAAO;QACLN,EAAE,EAAEA,EAAE,CAACC,sBAAsB,CAAC,CAAC;QAC/B+E,YAAY,EAAEP,eAAe,CAACQ,WAAW;QACzCC,OAAO,EAAEP,QAAQ,EAAErB,IAAI;QACvBwB,GAAG,EAAE;UACH9E,EAAE,EAAE8E,GAAG,CAAC9E,EAAE;UACVsD,IAAI,EAAEwB,GAAG,CAACxB,IAAI;UACd6B,IAAI,EAAEL,GAAG,CAACK;QACZ;MACF,CAAC;IACH,CAAC,EACD;MAAEC,WAAW,EAAE;IAAG,CACpB,CAAC;IACD,MAAMC,QAAQ,GAAG,IAAAC,cAAI,EAAC,IAAAC,iBAAO,EAAC3C,OAAO,CAACtB,GAAG,CAAE5F,CAAC,IAAKA,CAAC,CAACoJ,GAAG,CAACK,IAAI,CAAC,CAAC,CAAC;IAC9D,MAAMK,QAAQ,GAAG,MAAM,IAAI,CAACC,4BAA4B,CAACJ,QAAQ,CAAC;IAClEzC,OAAO,CAACpG,OAAO,CAAEd,CAAC,IAAK;MACrBA,CAAC,CAACoJ,GAAG,CAACY,aAAa,GAAGF,QAAQ,CAAC9J,CAAC,CAACoJ,GAAG,CAACK,IAAI,CAAC;IAC5C,CAAC,CAAC;IACF,OAAOvC,OAAO;EAChB;EAEQ+C,mBAAmBA,CAAA,EAAG;IAC5B,OAAOrG,eAAI,CAACC,IAAI,CAAC,IAAI,CAACxB,SAAS,CAACyB,KAAK,CAACF,IAAI,EAAE5B,aAAa,CAAC;EAC5D;EAEA,MAAckI,mBAAmBA,CAAA,EAAsB;IACrD,IAAI,CAAC,IAAI,CAACC,gBAAgB,EAAE;MAC1B,MAAMC,WAAW,GAAG,IAAI,CAACH,mBAAmB,CAAC,CAAC;MAC9C,MAAMvG,kBAAE,CAAC2G,SAAS,CAACD,WAAW,CAAC;MAC/B,MAAME,aAAa,GAAG,MAAM5G,kBAAE,CAAC8B,OAAO,CAAC4E,WAAW,CAAC;MACnD,IAAI,CAACD,gBAAgB,GAAGG,aAAa;IACvC;IACA,OAAO,IAAI,CAACH,gBAAgB;EAC9B;EAEA,MAAcJ,4BAA4BA,CAACQ,KAAe,EAA8C;IACtG,MAAMD,aAAa,GAAG,MAAM,IAAI,CAACJ,mBAAmB,CAAC,CAAC;IACtD,MAAMJ,QAAgC,GAAG,CAAC,CAAC;IAC3C,MAAMU,OAAO,CAACC,GAAG,CACfF,KAAK,CAAC3E,GAAG,CAAC,MAAO6D,IAAI,IAAK;MACxB,MAAMiB,YAAY,GAAG,IAAAC,qBAAU,EAAClB,IAAI,EAAE;QAAEmB,WAAW,EAAE;MAAI,CAAC,CAAC;MAC3D,MAAMC,YAAY,GAAGjH,eAAI,CAACC,IAAI,CAAC,IAAI,CAACxB,SAAS,CAACyB,KAAK,CAACF,IAAI,EAAE5B,aAAa,EAAE0I,YAAY,CAAC;MACtF,IAAIJ,aAAa,CAAClC,QAAQ,CAACsC,YAAY,CAAC,EAAE;QACxCZ,QAAQ,CAACL,IAAI,CAAC,GAAGoB,YAAY;QAC7B;MACF;MACA,IAAIC,GAAG;MACP;MACA,IAAI;QACFA,GAAG,GAAG,MAAM,IAAAC,oBAAK,EAACtB,IAAI,CAAC;MACzB,CAAC,CAAC,OAAOuB,GAAQ,EAAE;QACjB,MAAM,IAAItE,KAAK,CAAC,+BAA+B+C,IAAI,YAAYuB,GAAG,CAACC,OAAO,EAAE,CAAC;MAC/E;MACA,MAAMC,OAAO,GAAG,MAAMJ,GAAG,CAACK,IAAI,CAAC,CAAC;MAChC,MAAMzH,kBAAE,CAAC0H,UAAU,CAACP,YAAY,EAAEK,OAAO,CAAC;MAC1CpB,QAAQ,CAACL,IAAI,CAAC,GAAGoB,YAAY;MAC7B,IAAI,CAACV,gBAAgB,EAAE1J,IAAI,CAACiK,YAAY,CAAC;IAC3C,CAAC,CACH,CAAC;IACD,OAAOZ,QAAQ;EACjB;EAEA,MAAMuB,YAAYA,CAAC/G,EAAU,EAAqE;IAChG,MAAMI,MAAM,GAAG,MAAM,IAAI,CAACrC,SAAS,CAACsC,kBAAkB,CAACL,EAAE,CAAC;IAC1D,MAAMM,IAAI,GAAG,MAAM,IAAI,CAACvC,SAAS,CAACwC,GAAG,CAACH,MAAM,CAAC;IAC7C,MAAM4G,MAAM,GAAG,IAAI,CAACjJ,SAAS,CAACmC,YAAY,CAACI,IAAI,CAACN,EAAE,CAAC;IACnD,MAAMiH,aAAa,GAAG3G,IAAI,CAACE,KAAK,CAAC0G,UAAU,CAACC,KAAK,CAAC7F,GAAG,CAAE8F,IAAI,IAAKA,IAAI,CAACC,QAAQ,CAAC;IAC9E,OAAO;MAAEL,MAAM;MAAEC;IAAc,CAAC;EAClC;EAEA,MAAMK,+BAA+BA,CAACtH,EAAU,EAA+C;IAC7F,MAAMI,MAAM,GAAG,MAAM,IAAI,CAACrC,SAAS,CAACsC,kBAAkB,CAACL,EAAE,CAAC;IAC1D,IAAI,CAACI,MAAM,CAACmH,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACrC,MAAMC,OAAO,GAAG,IAAI,CAACzJ,SAAS,CAACmC,YAAY,CAACE,MAAM,EAAE;MAAEqH,aAAa,EAAE;IAAK,CAAC,EAAE;MAAEJ,QAAQ,EAAE;IAAK,CAAC,CAAC;IAChG;IACA,MAAMK,gBAAgB,GAAGpI,eAAI,CAACC,IAAI,CAAC,IAAI,CAACxB,SAAS,CAACyB,KAAK,CAACF,IAAI,EAAE7B,iBAAiB,EAAEE,aAAa,EAAE6J,OAAO,CAAC;IACxG,MAAMpI,kBAAE,CAACZ,MAAM,CAACkJ,gBAAgB,CAAC,CAAC,CAAC;IACnC,MAAMtI,kBAAE,CAAC2G,SAAS,CAAC2B,gBAAgB,CAAC;IAEpC,MAAMC,cAAc,GAAG,MAAM,IAAI,CAAC5J,SAAS,CAACyB,KAAK,CAACoI,0BAA0B,CAACxH,MAAM,CAAC;IACpF,IAAI,CAACuH,cAAc,EAAE;MACnB,MAAM,IAAIvF,KAAK,CAAC,kBAAkBhC,MAAM,CAAC4C,QAAQ,CAAC,CAAC,8CAA8C,CAAC;IACpG;IACA,MAAM6E,aAAa,GAAG,MAAM,IAAI,CAAC9J,SAAS,CAACyB,KAAK,CAACsI,mBAAmB,CAACH,cAAc,EAAEvH,MAAM,CAAC2H,OAAiB,CAAC;IAC9G,IAAI,CAACF,aAAa,EAChB,MAAM,IAAIzF,KAAK,CAAC,wCAAwChC,MAAM,CAAC4C,QAAQ,CAAC,CAAC,2BAA2B,CAAC;IACvG,MAAMgF,WAAW,GAAG,MAAMH,aAAa,CAACI,uBAAuB,CAAC,IAAI,CAAClK,SAAS,CAACyB,KAAK,CAAC0I,WAAW,CAACC,OAAO,CAAC;IACzG,MAAMvF,OAA2C,GAAG,CAAC,CAAC;IACtD,MAAMsD,OAAO,CAACC,GAAG,CACf6B,WAAW,CAAC1G,GAAG,CAAC,MAAO8F,IAAI,IAAK;MAC9B,MAAMgB,QAAQ,GAAG9I,eAAI,CAACC,IAAI,CAACmI,gBAAgB,EAAEN,IAAI,CAACC,QAAQ,CAAC;MAC3D,MAAMjI,kBAAE,CAAC0H,UAAU,CAACsB,QAAQ,EAAEhB,IAAI,CAACiB,QAAQ,CAAC;MAC5CzF,OAAO,CAAC,IAAA0F,uBAAa,EAACd,OAAO,EAAEJ,IAAI,CAACC,QAAQ,CAAC,CAAC,GAAGe,QAAQ;IAC3D,CAAC,CACH,CAAC;IACD,OAAOxF,OAAO;EAChB;EAEA,MAAM2F,SAASA,CAACC,IAAY,EAAE;IAC5B,MAAMC,MAAM,GAAG,MAAM,IAAI,CAAC1K,SAAS,CAACyB,KAAK,CAAC0I,WAAW,CAACQ,YAAY,CAACF,IAAI,CAAC;IACxE,OAAOG,IAAI,CAACC,SAAS,CAACH,MAAM,CAACI,OAAO,CAAC7F,QAAQ,CAAC,CAAC,CAAC;EAClD;EAEA,MAAM8F,OAAOA,CAACV,QAAgB,EAAE;IAC9B,MAAMxF,OAAO,GAAG,MAAM,IAAI,CAACvE,YAAY,CAAC0K,oBAAoB,CAACX,QAAQ,CAAC;IACtE,OAAOxF,OAAO;EAChB;EAEA,MAAMoG,sBAAsBA,CAAChJ,EAAU,EAAqC;IAC1E,MAAM4C,OAAO,GAAG,MAAM,IAAI,CAACvE,YAAY,CAAC4K,yBAAyB,CAACjJ,EAAE,CAAC;IACrE,OAAO4C,OAAO;EAChB;EAEA,MAAMsG,gBAAgBA,CAAClJ,EAAU,EAAE;IACjC,MAAM4C,OAAO,GAAG,MAAM,IAAI,CAACtE,gBAAgB,CAAC6K,oBAAoB,CAACnJ,EAAE,CAAC;IACpE,OAAO4C,OAAO;EAChB;EAEA,MAAMwG,eAAeA,CAACC,SAAiB,EAAE;IACvC,MAAM,IAAI,CAACtL,SAAS,CAACqL,eAAe,CAACC,SAAS,CAAC;IAC/C,OAAOA,SAAS;EAClB;EAEAC,eAAeA,CAAA,EAAG;IAChB,OAAO,IAAI,CAACvL,SAAS,CAACwL,YAAY;EACpC;EAEA,MAAMC,6CAA6CA,CACjDC,SAAoB,EACyB;IAC7C,MAAMrJ,MAAM,GAAGqJ,SAAS,CAACzJ,EAAE;IAC3B,IAAI,CAACI,MAAM,CAACmH,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACrC,MAAMC,OAAO,GAAGiC,SAAS,CAACjC,OAAO;IACjC,MAAME,gBAAgB,GAAGpI,eAAI,CAACC,IAAI,CAAC,IAAI,CAACxB,SAAS,CAACyB,KAAK,CAACF,IAAI,EAAE7B,iBAAiB,EAAEE,aAAa,EAAE6J,OAAO,CAAC;IACxG,MAAMpI,kBAAE,CAACZ,MAAM,CAACkJ,gBAAgB,CAAC,CAAC,CAAC;;IAEnC,MAAMM,WAAW,GAAG,MAAMyB,SAAS,CAACC,YAAY,CAAC,CAAC;IAElD,MAAM9G,OAA2C,GAAG,CAAC,CAAC;IACtD,MAAMsD,OAAO,CAACC,GAAG,CACf6B,WAAW,CAAC1G,GAAG,CAAC,MAAO8F,IAAI,IAAK;MAC9B,MAAMgB,QAAQ,GAAG9I,eAAI,CAACC,IAAI,CAACmI,gBAAgB,EAAEN,IAAI,CAACC,QAAQ,CAAC;MAC3D,MAAMjI,kBAAE,CAAC0H,UAAU,CAACsB,QAAQ,EAAEhB,IAAI,CAACiB,QAAQ,CAAC;MAC5CzF,OAAO,CAAC,IAAA0F,uBAAa,EAACd,OAAO,EAAEJ,IAAI,CAACC,QAAQ,CAAC,CAAC,GAAGe,QAAQ;IAC3D,CAAC,CACH,CAAC;IACD,OAAOxF,OAAO;EAChB;EAEA,MAAM+G,kBAAkBA,CAAA,EAAG;IACzB,MAAM,IAAI,CAAC5L,SAAS,CAAC6L,SAAS,CAAC,CAAC;EAClC;EACA,MAAMC,UAAUA,CAAA,EAAG;IACjB,MAAM,IAAI,CAAC9L,SAAS,CAAC8L,UAAU,CAAC,CAAC;IACjC,IAAI,CAAC9L,SAAS,CAAC+L,uBAAuB,CAAC,CAAC;EAC1C;EAEA,MAAMC,OAAOA,CAACC,OAAO,GAAG,CAAC,CAAC,EAAE;IAC1B,MAAMC,IAAI,GAAA5N,aAAA;MACR6N,4BAA4B,EAAE,IAAI;MAClCC,MAAM,EAAE,IAAI;MACZC,cAAc,EAAE,KAAK;MACrBC,MAAM,EAAE;IAAK,GACVL,OAAO,CACX;IAED,OAAO,IAAI,CAAC9L,SAAS,CAAC6L,OAAO,CAAC3G,SAAS,EAAE6G,IAAI,CAAC;EAChD;EAEA,MAAMK,MAAMA,CAAA,EAAG;IACb,MAAM;MAAEC,aAAa;MAAEC,UAAU;MAAEC,aAAa;MAAEC;IAAW,CAAC,GAAG,MAAM,IAAI,CAACvM,QAAQ,CAACmM,MAAM,CAAC,CAAC;IAC7F,MAAMK,kBAAkB,GAAGD,UAAU,CAACpJ,GAAG,CAAEsJ,GAAG,IAAK,WAAW,IAAAC,2BAAc,EAAC,CAAC,kBAAkBD,GAAG,EAAE,CAAC;IACtG,OAAO;MACLL,aAAa,EAAEA,aAAa,CAACjJ,GAAG,CAAEyB,CAAC,IAAKA,CAAC,CAACC,QAAQ,CAAC,CAAC,CAAC;MACrDwH,UAAU,EAAEA,UAAU,CAAClJ,GAAG,CAAEyB,CAAC,IAAKA,CAAC,CAACC,QAAQ,CAAC,CAAC,CAAC;MAC/CyH,aAAa,EAAEA,aAAa,CAACnJ,GAAG,CAAEwJ,CAAC,IAAKA,CAAC,CAAC9K,EAAE,CAAC,CAAC,CAAC;MAC/C0K,UAAU,EAAEC;IACd,CAAC;EACH;EAEA,MAAMI,YAAYA,CAAA,EAAG;IACnB,MAAMnI,OAAO,GAAG,MAAM,IAAI,CAACxE,QAAQ,CAACA,QAAQ,CAAC;MAC3CiF,IAAI,EAAE,IAAI;MACV2H,cAAc,EAAE,IAAI;MACpBpL,GAAG,EAAE,MAAM,IAAI,CAAC7B,SAAS,CAAC8B,OAAO,CAAC;IACpC,CAAC,CAAC;IACF,OAAO,IAAI,CAACoL,0BAA0B,CAACrI,OAAO,CAAC;EACjD;EAEA,MAAMsI,YAAYA,CAAA,EAAG;IACnB,MAAMC,SAAS,GAAG,MAAM,IAAI,CAAC5M,SAAS,CAAC6M,aAAa,CAAC,CAAC;IACtD,OAAOD,SAAS;EAClB;EAEA,MAAME,eAAeA,CAACC,YAAoB,EAAEC,cAAsB,EAAE;IAClE,IAAI,CAACA,cAAc,CAACzH,QAAQ,CAAC,GAAG,CAAC,EAAE;MACjC,MAAM,IAAI1B,KAAK,CAAC,kCAAkC,CAAC;IACrD;IACA,MAAM,CAAC5C,KAAK,EAAE,GAAGgM,SAAS,CAAC,GAAGD,cAAc,CAACE,KAAK,CAAC,GAAG,CAAC;IACvD,OAAO,IAAI,CAAClN,SAAS,CAACmN,yBAAyB,CAC7C,CAACF,SAAS,CAACjM,IAAI,CAAC,GAAG,CAAC,CAAC,EACrB+L,YAAY,EACZ;MAAE9L;IAAM,CAAC,EACT;MAAE0K,4BAA4B,EAAE;IAAK,CACvC,CAAC;EACH;EAEA,MAAMyB,eAAeA,CAACC,iBAAyB,EAAE;IAC/C,MAAMhJ,OAAO,GAAG,MAAM,IAAI,CAACpE,MAAM,CAACA,MAAM,CAAC;MACvCoN,iBAAiB;MACjBC,KAAK,EAAE;IACT,CAAC,CAAC;IACF,MAAMC,iBAAiB,GAAIlJ,OAAO,CAACmJ,WAAW,CAAoBC,SAAS,CAAC,CAAC;IAC7E,OAAOF,iBAAiB;EAC1B;EAEA,MAAMG,gBAAgBA,CAACL,iBAAyB,EAAE3B,IAAI,EAAqB;IACzE,MAAMrH,OAAO,GAAG,MAAM,IAAI,CAACpE,MAAM,CAAC0N,WAAW,CAACN,iBAAiB,EAAE3B,IAAI,CAAC;IACtE,MAAM6B,iBAAiB,GAAGlJ,OAAO,CAACtB,GAAG,CAAEyB,CAAC,IAAKA,CAAC,CAAC/C,EAAE,CAACgD,QAAQ,CAAC,CAAC,CAAC;IAC7D,OAAO8I,iBAAiB;EAC1B;EAEA,MAAMK,kBAAkBA,CAACnM,EAAU,EAAEoM,KAAc,EAAEC,KAAc,EAAoB;IACrF,OAAO,IAAI,CAAC1N,WAAW,CAAC2N,oBAAoB,CAACtM,EAAE,EAAEoM,KAAK,EAAEC,KAAK,CAAC;EAChE;EACA,MAAME,oBAAoBA,CAACvM,EAAU,EAAoB;IACvD,OAAO,IAAI,CAACrB,WAAW,CAAC6N,sBAAsB,CAACxM,EAAE,CAAC;EACpD;EAEA,MAAMyM,UAAUA,CAACnJ,IAAY,EAAE;IAC7B,MAAMV,OAAO,GAAG,MAAM,IAAI,CAAC3E,KAAK,CAAC4E,WAAW,CAACS,IAAI,EAAE;MAAEX,0BAA0B,EAAE;IAAK,CAAC,CAAC;IACxF,OAAO,IAAI,CAACsI,0BAA0B,CAACrI,OAAO,CAAC;EACjD;EAEQqI,0BAA0BA,CAACyB,MAA2B,EAAE;IAC9D,MAAM;MAAE5J,UAAU;MAAE6J;IAAiB,CAAC,GAAGD,MAAM;IAC/C,MAAME,OAAO,GAAGD,gBAAgB,EAAE3Q,MAAM,CAAE6Q,CAAC,IAAKA,CAAC,CAACC,qBAAqB,CAAC,CAACxL,GAAG,CAAEuL,CAAC,IAAKA,CAAC,CAAC7M,EAAE,CAACgD,QAAQ,CAAC,CAAC,CAAC;IACpG,MAAM+J,MAAM,GAAGJ,gBAAgB,EAAE3Q,MAAM,CAAE6Q,CAAC,IAAK,CAACA,CAAC,CAACC,qBAAqB,CAAC,CAACxL,GAAG,CAAEuL,CAAC,IAAKA,CAAC,CAAC7M,EAAE,CAACgD,QAAQ,CAAC,CAAC,CAAC;IACpG,OAAO;MACLgK,OAAO,EAAElK,UAAU,EAAExB,GAAG,CAAEyB,CAAC,IAAKA,CAAC,CAAC/C,EAAE,CAACgD,QAAQ,CAAC,CAAC,CAAC;MAChD4J,OAAO;MACPG;IACF,CAAC;EACH;EAEA,MAAME,mBAAmBA,CAAA,EAAgC;IACvD,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACnP,SAAS,CAACoP,QAAQ,CAAC,CAAC;IACrD,MAAMC,UAAU,GAAG,MAAM,IAAI,CAACrP,SAAS,CAACsP,8BAA8B,CAAC,CAAC;IACxE,MAAMC,YAAY,GAAG,MAAM,IAAI,CAACvP,SAAS,CAACwP,OAAO,CAACH,UAAU,CAAC;IAC7D,MAAMI,iBAAiB,GAAG,MAAM,IAAI,CAACzP,SAAS,CAACyP,iBAAiB,CAAC,CAAC;IAClE,MAAMC,mBAAmB,GAAG,MAAM,IAAI,CAAC1P,SAAS,CAACwP,OAAO,CAACC,iBAAiB,CAAC;IAC3E,MAAME,QAAQ,GAAG,CAAC,GAAGR,aAAa,EAAE,GAAGI,YAAY,EAAE,GAAGG,mBAAmB,CAAC;IAC5E,MAAME,MAAM,GAAGD,QAAQ,CAACpM,GAAG,CAAEyB,CAAC,IAAKA,CAAC,CAAC/C,EAAE,CAAC;IACxC,MAAM4C,OAAO,GAAG,MAAMsD,OAAO,CAACC,GAAG,CAC/BuH,QAAQ,CAACpM,GAAG,CAAC,MAAOhB,IAAI,IAAK;MAC3B,MAAMsN,MAAM,GAAG,MAAM,IAAI,CAACtP,gBAAgB,CAACuP,4BAA4B,CAACvN,IAAI,EAAEqN,MAAM,CAAC;MACrF,MAAMG,SAAS,GAAG,MAAM,IAAI,CAACxP,gBAAgB,CAAC6K,oBAAoB,CAAC7I,IAAI,CAACN,EAAE,CAACgD,QAAQ,CAAC,CAAC,CAAC;MACtF,MAAM+K,WAAW,GAAGpF,IAAI,CAACC,SAAS,CAACgF,MAAM,CAACI,YAAY,CAAC,KAAKrF,IAAI,CAACC,SAAS,CAACkF,SAAS,CAACE,YAAY,CAAC;MAClG,MAAMC,cAAc,GAAGtF,IAAI,CAACC,SAAS,CAACgF,MAAM,CAACM,OAAO,CAAC,KAAKvF,IAAI,CAACC,SAAS,CAACkF,SAAS,CAACI,OAAO,CAAC;MAC3F,IAAIH,WAAW,IAAIE,cAAc,EAAE,OAAO,IAAI;MAC9C,MAAME,MAAwB,GAAG;QAC/BnO,EAAE,EAAEM,IAAI,CAACN,EAAE,CAACC,sBAAsB,CAAC,CAAC;QACpC8H,OAAO,EAAEzH,IAAI,CAACN,EAAE,CAAC+H;MACnB,CAAC;MACD,IAAI,CAACgG,WAAW,EAAEI,MAAM,CAACH,YAAY,GAAG;QAAEjQ,SAAS,EAAE6P,MAAM,CAACI,YAAY;QAAExO,KAAK,EAAEsO,SAAS,CAACE,YAAY,IAAI;MAAG,CAAC;MAC/G,IAAI,CAACC,cAAc,EAAEE,MAAM,CAACD,OAAO,GAAG;QAAEnQ,SAAS,EAAE6P,MAAM,CAACM,OAAO;QAAE1O,KAAK,EAAEsO,SAAS,CAACI,OAAO,IAAI,CAAC;MAAE,CAAC;MACnG,OAAOC,MAAM;IACf,CAAC,CACH,CAAC;IAED,OAAO,IAAA5I,iBAAO,EAAC3C,OAAO,CAAC;EACzB;EAEA,MAAMwL,gBAAgBA,CAAA,EAA2B;IAC/C,MAAMxO,GAAG,GAAG,IAAI,CAAC7B,SAAS,CAAC8B,OAAO,CAAC,CAAC;IACpC,MAAM+C,OAAsB,GAAG,CAAC,CAAC;IACjC,MAAM,IAAA4B,eAAI,EACR5E,GAAG,EACH,MAAOI,EAAE,IAAK;MACZ,MAAMyJ,SAAS,GAAG,MAAM,IAAI,CAAC1L,SAAS,CAACsQ,oBAAoB,CAACrO,EAAE,CAAC;MAC/D,MAAMsO,iBAAiB,GAAG,MAAM,IAAI,CAAC9E,6CAA6C,CAACC,SAAS,CAAC;MAC7F,MAAM8E,KAAK,GAAGvO,EAAE,CAACC,sBAAsB,CAAC,CAAC;MACzC2C,OAAO,CAAC2L,KAAK,CAAC,GAAG;QACfC,WAAW,EAAE/E,SAAS,CAACgF,cAAc,CAAC,CAAC;QACvCH,iBAAiB;QACjB9G,OAAO,EAAEiC,SAAS,CAACjC;MACrB,CAAC;IACH,CAAC,EACD;MAAEpC,WAAW,EAAE;IAAG,CACpB,CAAC;IAED,OAAOxC,OAAO;EAChB;EAEA,MAAM6L,cAAcA,CAACzO,EAAU,EAAwB;IACrD,MAAM0O,WAAW,GAAG,MAAM,IAAI,CAAC3Q,SAAS,CAACsC,kBAAkB,CAACL,EAAE,CAAC;IAC/D,MAAMyJ,SAAS,GAAG,MAAM,IAAI,CAAC1L,SAAS,CAACsQ,oBAAoB,CAACK,WAAW,CAAC;IACxE,OAAOjF,SAAS,CAACgF,cAAc,CAAC,CAAC;EACnC;EAEA,MAAME,0CAA0CA,CAAA,EAAgD;IAC9F,MAAM/O,GAAG,GAAG,IAAI,CAAC7B,SAAS,CAAC8B,OAAO,CAAC,CAAC;IACpC,IAAI+C,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,IAAA4B,eAAI,EACR5E,GAAG,EACH,MAAOI,EAAE,IAAK;MACZ,MAAMuO,KAAK,GAAGvO,EAAE,CAACC,sBAAsB,CAAC,CAAC;MACzC,MAAM2O,WAAW,GAAG,MAAM,IAAI,CAACtH,+BAA+B,CAACiH,KAAK,CAAC;MACrE3L,OAAO,GAAAvG,aAAA,CAAAA,aAAA,KAAQuG,OAAO,GAAKgM,WAAW,CAAE;IAC1C,CAAC,EACD;MAAExJ,WAAW,EAAE;IAAG,CACpB,CAAC;IACD,OAAOxC,OAAO;EAChB;EAEAiM,kBAAkBA,CAAA,EAAW;IAC3B,OAAO,IAAI,CAAC9Q,SAAS,CAAC+Q,gBAAgB,CAAC,CAAC,CAACxL,IAAI;EAC/C;EAEA,MAAMyL,SAASA,CAACpI,OAAO,GAAG,EAAE,EAAE;IAC5B,MAAMqI,MAAM,GAAG;MAAErI,OAAO;MAAEsI,KAAK,EAAE;IAAM,CAAC;IACxC,OAAO,IAAI,CAAClR,SAAS,CAACmR,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAClR,QAAQ,CAACmR,GAAG,CAACH,MAAM,CAAC,GAAG,IAAI,CAAChR,QAAQ,CAACoR,IAAI,CAACJ,MAAM,CAAC;EAC3F;EAEA,MAAMG,GAAGA,CAACxI,OAAO,GAAG,EAAE,EAAqB;IACzC,MAAMqI,MAAM,GAAG;MAAErI,OAAO;MAAEsI,KAAK,EAAE;IAAM,CAAC;IACxC,MAAMrM,OAAO,GAAG,MAAM,IAAI,CAAC5E,QAAQ,CAACmR,GAAG,CAACH,MAAM,CAAC;IAC/C,OAAO,CAACpM,OAAO,EAAEyM,gBAAgB,IAAI,EAAE,EAAE/N,GAAG,CAAEyB,CAAC,IAAKA,CAAC,CAAC/C,EAAE,CAACgD,QAAQ,CAAC,CAAC,CAAC;EACtE;EAEA,MAAMoM,IAAIA,CAACzI,OAAO,GAAG,EAAE,EAAqB;IAC1C,MAAMqI,MAAM,GAAG;MAAErI,OAAO;MAAEsI,KAAK,EAAE;IAAM,CAAC;IACxC,MAAMrM,OAAO,GAAG,MAAM,IAAI,CAAC5E,QAAQ,CAACoR,IAAI,CAACJ,MAAM,CAAC;IAChD,OAAO,CAACpM,OAAO,EAAE0M,iBAAiB,IAAI,EAAE,EAAEhO,GAAG,CAAEyB,CAAC,IAAKA,CAAC,CAAC/C,EAAE,CAACgD,QAAQ,CAAC,CAAC,CAAC;EACvE;AACF;AAACuM,OAAA,CAAA1R,SAAA,GAAAA,SAAA;AAED,SAASoE,iBAAiBA,CAACuN,OAAe,EAAU;EAClD,MAAM,CAACC,IAAI,EAAEC,KAAK,EAAEC,GAAG,EAAEC,KAAK,EAAEC,OAAO,EAAEC,OAAO,CAAC,GAAGN,OAAO,CAAC/D,KAAK,CAAC,GAAG,CAAC;EACtE,MAAMsE,IAAI,GAAG,IAAItQ,IAAI,CAACjC,MAAM,CAACiS,IAAI,CAAC,EAAEjS,MAAM,CAACkS,KAAK,CAAC,GAAG,CAAC,EAAElS,MAAM,CAACmS,GAAG,CAAC,EAAEnS,MAAM,CAACoS,KAAK,CAAC,EAAEpS,MAAM,CAACqS,OAAO,CAAC,EAAErS,MAAM,CAACsS,OAAO,CAAC,CAAC;EACpH,OAAOC,IAAI,CAACC,OAAO,CAAC,CAAC;AACvB","ignoreList":[]}
1
+ {"version":3,"names":["_path","data","_interopRequireDefault","require","_fsExtra","_filenamify","_legacy","_pMap","_consumer","_lodash","_constants","_laneId","_nodeFetch","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","FILES_HISTORY_DIR","ENV_ICONS_DIR","LAST_SNAP_DIR","CMD_HISTORY","APIForIDE","constructor","workspace","snapping","lanes","installer","exporter","checkout","componentLog","componentCompare","generator","remove","config","application","deprecation","envs","logStartCmdHistory","op","str","writeToCmdHistory","logFinishCmdHistory","code","endStr","getProcessPid","process","pid","fs","appendFile","path","join","scope","Date","toISOString","listIdsWithPaths","ids","listIds","reduce","acc","id","toStringWithoutVersion","componentDir","getMainFilePath","compId","resolveComponentId","comp","get","state","mainFile","getWorkspaceHistory","current","bitMap","getPath","bitmapHistoryDir","consumer","getBitmapHistoryDir","historyPaths","readdir","historyMetadata","getParsedBitmapHistoryMetadata","history","map","historyPath","fileName","basename","fileId","replace","reason","historySorted","sort","a","b","fileIdToTimestamp","getConfigHistory","workspaceConfig","Error","configHistoryDir","getBackupHistoryDir","getParsedHistoryMetadata","getBackupMetadataFilePath","importLane","laneName","skipDependencyInstallation","results","switchLanes","components","c","toString","getCurrentLaneObject","currentLane","getCurrentLane","undefined","head","name","log","isNew","forkedFrom","listLanes","getLanes","showDefaultLane","createLane","includes","LANE_REMOTE_DELIMITER","laneId","LaneId","parse","getCompsMetadata","comps","list","apps","listAppsIdsAndNames","pMap","deprecationInfo","getDeprecationInfo","foundApp","find","app","env","getEnv","isDeprecated","isDeprecate","appName","icon","concurrency","allIcons","uniq","compact","iconsMap","getEnvIconsMapFetchIfMissing","localIconPath","getEnvIconsFullPath","getExistingEnvIcons","existingEnvIcons","envIconsDir","ensureDir","existingIcons","icons","Promise","all","iconFileName","filenamify","replacement","fullIconPath","res","fetch","err","message","svgText","text","outputFile","getCompFiles","dirAbs","filesRelative","filesystem","files","file","relative","getCompFilesDirPathFromLastSnap","hasVersion","compDir","ignoreVersion","filePathsRootDir","modelComponent","getBitObjectModelComponent","versionObject","getBitObjectVersion","version","sourceFiles","modelFilesToSourceFiles","legacyScope","objects","filePath","contents","pathJoinLinux","catObject","hash","object","getRawObject","JSON","stringify","content","logFile","getFileHistoryHashes","changedFilesFromParent","getChangedFilesFromParent","getConfigForDiff","getConfigForDiffById","setDefaultScope","scopeName","getDefaultScope","defaultScope","getCompFilesDirPathFromLastSnapUsingCompFiles","compFiles","getHeadFiles","warmWorkspaceCache","warmCache","clearCache","clearAllComponentsCache","install","options","opts","optimizeReportForNonTerminal","dedupe","updateExisting","import","export","componentsIds","removedIds","exportedLanes","rippleJobs","rippleJobsFullUrls","job","getCloudDomain","l","checkoutHead","skipNpmInstall","adjustCheckoutResultsToIde","getTemplates","templates","listTemplates","createComponent","templateName","idIncludeScope","nameSplit","split","generateComponentTemplate","removeComponent","componentsPattern","force","serializedResults","localResult","serialize","deleteComponents","deleteComps","deprecateComponent","newId","range","deprecateByCLIValues","undeprecateComponent","unDeprecateByCLIValues","switchLane","output","failedComponents","skipped","f","unchangedLegitimately","failed","succeed","getModifiedByConfig","modifiedComps","modified","autoTagIds","listAutoTagPendingComponentIds","autoTagComps","getMany","locallyDeletedIds","locallyDeletedComps","allComps","allIds","wsComp","getConfigForDiffByCompObject","scopeComp","hasSameDeps","dependencies","hasSameAspects","aspects","result","getDataToInitSCM","getFilesModification","pathsFromLastSnap","idStr","filesStatus","getFilesStatus","componentId","getCompFilesDirPathFromLastSnapForAllComps","compResults","getCurrentLaneName","getCurrentLaneId","tagOrSnap","params","build","isOnMain","tag","snap","taggedComponents","snappedComponents","exports","dateStr","year","month","day","hours","minutes","seconds","date","getTime"],"sources":["api-for-ide.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport filenamify from 'filenamify';\nimport { CompFiles, Workspace, FilesStatus } from '@teambit/workspace';\nimport { PathOsBasedAbsolute, PathOsBasedRelative, pathJoinLinux } from '@teambit/legacy.utils';\nimport pMap from 'p-map';\nimport { SnappingMain } from '@teambit/snapping';\nimport { LanesMain } from '@teambit/lanes';\nimport { InstallMain } from '@teambit/install';\nimport { ExportMain } from '@teambit/export';\nimport { CheckoutMain } from '@teambit/checkout';\nimport { ApplyVersionResults } from '@teambit/merging';\nimport { ComponentLogMain, FileHashDiffFromParent } from '@teambit/component-log';\nimport { Log } from '@teambit/legacy/dist/scope/models/lane';\nimport { ComponentCompareMain } from '@teambit/component-compare';\nimport { GeneratorMain } from '@teambit/generator';\nimport { getParsedHistoryMetadata } from '@teambit/legacy/dist/consumer/consumer';\nimport RemovedObjects from '@teambit/legacy/dist/scope/removed-components';\nimport { RemoveMain } from '@teambit/remove';\nimport { compact, uniq } from 'lodash';\nimport { getCloudDomain } from '@teambit/legacy/dist/constants';\nimport { ConfigMain } from '@teambit/config';\nimport { LANE_REMOTE_DELIMITER, LaneId } from '@teambit/lane-id';\nimport { ApplicationMain } from '@teambit/application';\nimport { DeprecationMain } from '@teambit/deprecation';\nimport { EnvsMain } from '@teambit/envs';\nimport fetch from 'node-fetch';\n\nconst FILES_HISTORY_DIR = 'files-history';\nconst ENV_ICONS_DIR = 'env-icons';\nconst LAST_SNAP_DIR = 'last-snap';\nconst CMD_HISTORY = 'command-history-ide';\n\ntype PathLinux = string; // problematic to get it from @teambit/legacy/dist/utils/path.\n\ntype PathFromLastSnap = { [relativeToWorkspace: PathLinux]: string };\n\ntype InitSCMEntry = {\n filesStatus: FilesStatus;\n pathsFromLastSnap: PathFromLastSnap;\n compDir: PathLinux;\n};\n\ntype DataToInitSCM = { [compId: string]: InitSCMEntry };\n\ntype LaneObj = {\n name: string;\n scope: string;\n id: string;\n log: Log;\n components: Array<{ id: string; head: string }>;\n isNew: boolean;\n forkedFrom?: string;\n};\n\ntype ModifiedByConfig = {\n id: string;\n version: string;\n dependencies?: { workspace: string[]; scope: string[] };\n aspects?: { workspace: Record<string, any>; scope: Record<string, any> };\n};\n\ntype WorkspaceHistory = {\n current: PathOsBasedAbsolute;\n history: Array<{ path: PathOsBasedAbsolute; fileId: string; reason?: string }>;\n};\n\ntype CompMetadata = {\n id: string;\n isDeprecated: boolean;\n appName?: string; // in case it's an app\n env: {\n id: string;\n name?: string;\n icon: string;\n localIconPath?: string;\n };\n};\n\nexport class APIForIDE {\n private existingEnvIcons: string[] | undefined;\n constructor(\n private workspace: Workspace,\n private snapping: SnappingMain,\n private lanes: LanesMain,\n private installer: InstallMain,\n private exporter: ExportMain,\n private checkout: CheckoutMain,\n private componentLog: ComponentLogMain,\n private componentCompare: ComponentCompareMain,\n private generator: GeneratorMain,\n private remove: RemoveMain,\n private config: ConfigMain,\n private application: ApplicationMain,\n private deprecation: DeprecationMain,\n private envs: EnvsMain\n ) {}\n\n async logStartCmdHistory(op: string) {\n const str = `${op}, started`;\n await this.writeToCmdHistory(str);\n }\n\n async logFinishCmdHistory(op: string, code: number) {\n const endStr = code === 0 ? 'succeeded' : 'failed';\n const str = `${op}, ${endStr}`;\n await this.writeToCmdHistory(str);\n }\n\n getProcessPid() {\n return process.pid;\n }\n\n private async writeToCmdHistory(str: string) {\n await fs.appendFile(path.join(this.workspace.scope.path, CMD_HISTORY), `${new Date().toISOString()} ${str}\\n`);\n }\n\n async listIdsWithPaths() {\n const ids = this.workspace.listIds();\n return ids.reduce((acc, id) => {\n acc[id.toStringWithoutVersion()] = this.workspace.componentDir(id);\n return acc;\n }, {});\n }\n\n async getMainFilePath(id: string): Promise<PathOsBasedAbsolute> {\n const compId = await this.workspace.resolveComponentId(id);\n const comp = await this.workspace.get(compId);\n return path.join(this.workspace.componentDir(compId), comp.state._consumer.mainFile);\n }\n\n async getWorkspaceHistory(): Promise<WorkspaceHistory> {\n const current = this.workspace.bitMap.getPath();\n const bitmapHistoryDir = this.workspace.consumer.getBitmapHistoryDir();\n const historyPaths = await fs.readdir(bitmapHistoryDir);\n const historyMetadata = await this.workspace.consumer.getParsedBitmapHistoryMetadata();\n const history = historyPaths.map((historyPath) => {\n const fileName = path.basename(historyPath);\n const fileId = fileName.replace('.bitmap-', '');\n const reason = historyMetadata[fileId];\n return { path: path.join(bitmapHistoryDir, fileName), fileId, reason };\n });\n const historySorted = history.sort((a, b) => fileIdToTimestamp(b.fileId) - fileIdToTimestamp(a.fileId));\n\n return { current, history: historySorted };\n }\n\n async getConfigHistory(): Promise<WorkspaceHistory> {\n const workspaceConfig = this.config.workspaceConfig;\n if (!workspaceConfig) throw new Error('getConfigHistory(), workspace config is missing');\n const current = workspaceConfig.path;\n const configHistoryDir = workspaceConfig.getBackupHistoryDir();\n const historyPaths = await fs.readdir(configHistoryDir);\n const historyMetadata = await getParsedHistoryMetadata(workspaceConfig.getBackupMetadataFilePath());\n const history = historyPaths.map((historyPath) => {\n const fileName = path.basename(historyPath);\n const fileId = fileName;\n const reason = historyMetadata[fileId];\n return { path: path.join(configHistoryDir, fileName), fileId, reason };\n });\n const historySorted = history.sort((a, b) => fileIdToTimestamp(b.fileId) - fileIdToTimestamp(a.fileId));\n\n return { current, history: historySorted };\n }\n\n async importLane(\n laneName: string,\n { skipDependencyInstallation }: { skipDependencyInstallation?: boolean }\n ): Promise<string[]> {\n const results = await this.lanes.switchLanes(laneName, {\n skipDependencyInstallation,\n });\n return (results.components || []).map((c) => c.id.toString());\n }\n\n async getCurrentLaneObject(): Promise<LaneObj | undefined> {\n const currentLane = await this.lanes.getCurrentLane();\n if (!currentLane) return undefined;\n const components = currentLane.components.map((c) => {\n return {\n id: c.id.toStringWithoutVersion(),\n head: c.head.toString(),\n };\n });\n return {\n name: currentLane.name,\n scope: currentLane.scope,\n id: currentLane.id(),\n log: currentLane.log,\n components,\n isNew: currentLane.isNew,\n forkedFrom: currentLane.forkedFrom?.toString(),\n };\n }\n\n async listLanes() {\n return this.lanes.getLanes({ showDefaultLane: true });\n }\n\n async createLane(name: string) {\n if (name.includes(LANE_REMOTE_DELIMITER)) {\n const laneId = LaneId.parse(name);\n return this.lanes.createLane(laneId.name, { scope: laneId.scope });\n }\n return this.lanes.createLane(name);\n }\n\n async getCompsMetadata(): Promise<CompMetadata[]> {\n const comps = await this.workspace.list();\n const apps = await this.application.listAppsIdsAndNames();\n const results: CompMetadata[] = await pMap(\n comps,\n async (comp) => {\n const id = comp.id;\n const deprecationInfo = await this.deprecation.getDeprecationInfo(comp);\n const foundApp = apps.find((app) => app.id === id.toString());\n const env = this.envs.getEnv(comp);\n return {\n id: id.toStringWithoutVersion(),\n isDeprecated: deprecationInfo.isDeprecate,\n appName: foundApp?.name,\n env: {\n id: env.id,\n name: env.name,\n icon: env.icon,\n },\n };\n },\n { concurrency: 30 }\n );\n const allIcons = uniq(compact(results.map((r) => r.env.icon)));\n const iconsMap = await this.getEnvIconsMapFetchIfMissing(allIcons);\n results.forEach((r) => {\n r.env.localIconPath = iconsMap[r.env.icon];\n });\n return results;\n }\n\n private getEnvIconsFullPath() {\n return path.join(this.workspace.scope.path, ENV_ICONS_DIR);\n }\n\n private async getExistingEnvIcons(): Promise<string[]> {\n if (!this.existingEnvIcons) {\n const envIconsDir = this.getEnvIconsFullPath();\n await fs.ensureDir(envIconsDir);\n const existingIcons = await fs.readdir(envIconsDir);\n this.existingEnvIcons = existingIcons;\n }\n return this.existingEnvIcons;\n }\n\n private async getEnvIconsMapFetchIfMissing(icons: string[]): Promise<{ [iconHttpUrl: string]: string }> {\n const existingIcons = await this.getExistingEnvIcons();\n const iconsMap: Record<string, string> = {};\n await Promise.all(\n icons.map(async (icon) => {\n const iconFileName = filenamify(icon, { replacement: '-' });\n const fullIconPath = path.join(this.workspace.scope.path, ENV_ICONS_DIR, iconFileName);\n if (existingIcons.includes(iconFileName)) {\n iconsMap[icon] = fullIconPath;\n return;\n }\n let res;\n // download the icon from the url and save it locally.\n try {\n res = await fetch(icon);\n } catch (err: any) {\n throw new Error(`failed to get the icon from ${icon}, error: ${err.message}`);\n }\n const svgText = await res.text();\n await fs.outputFile(fullIconPath, svgText);\n iconsMap[icon] = fullIconPath;\n this.existingEnvIcons?.push(iconFileName);\n })\n );\n return iconsMap;\n }\n\n async getCompFiles(id: string): Promise<{ dirAbs: string; filesRelative: PathOsBasedRelative[] }> {\n const compId = await this.workspace.resolveComponentId(id);\n const comp = await this.workspace.get(compId);\n const dirAbs = this.workspace.componentDir(comp.id);\n const filesRelative = comp.state.filesystem.files.map((file) => file.relative);\n return { dirAbs, filesRelative };\n }\n\n async getCompFilesDirPathFromLastSnap(id: string): Promise<{ [relativePath: string]: string }> {\n const compId = await this.workspace.resolveComponentId(id);\n if (!compId.hasVersion()) return {}; // it's a new component.\n const compDir = this.workspace.componentDir(compId, { ignoreVersion: true }, { relative: true });\n // const dirName = filenamify(compId.toString(), { replacement: '_' });\n const filePathsRootDir = path.join(this.workspace.scope.path, FILES_HISTORY_DIR, LAST_SNAP_DIR, compDir);\n await fs.remove(filePathsRootDir); // in case it has old data\n await fs.ensureDir(filePathsRootDir);\n\n const modelComponent = await this.workspace.scope.getBitObjectModelComponent(compId);\n if (!modelComponent) {\n throw new Error(`unable to find ${compId.toString()} in the local scope, please run \"bit import\"`);\n }\n const versionObject = await this.workspace.scope.getBitObjectVersion(modelComponent, compId.version as string);\n if (!versionObject)\n throw new Error(`unable to find the Version object of ${compId.toString()}, please run \"bit import\"`);\n const sourceFiles = await versionObject.modelFilesToSourceFiles(this.workspace.scope.legacyScope.objects);\n const results: { [relativePath: string]: string } = {};\n await Promise.all(\n sourceFiles.map(async (file) => {\n const filePath = path.join(filePathsRootDir, file.relative);\n await fs.outputFile(filePath, file.contents);\n results[pathJoinLinux(compDir, file.relative)] = filePath;\n })\n );\n return results;\n }\n\n async catObject(hash: string) {\n const object = await this.workspace.scope.legacyScope.getRawObject(hash);\n return JSON.stringify(object.content.toString());\n }\n\n async logFile(filePath: string) {\n const results = await this.componentLog.getFileHistoryHashes(filePath);\n return results;\n }\n\n async changedFilesFromParent(id: string): Promise<FileHashDiffFromParent[]> {\n const results = await this.componentLog.getChangedFilesFromParent(id);\n return results;\n }\n\n async getConfigForDiff(id: string) {\n const results = await this.componentCompare.getConfigForDiffById(id);\n return results;\n }\n\n async setDefaultScope(scopeName: string) {\n await this.workspace.setDefaultScope(scopeName);\n return scopeName;\n }\n\n getDefaultScope() {\n return this.workspace.defaultScope;\n }\n\n async getCompFilesDirPathFromLastSnapUsingCompFiles(\n compFiles: CompFiles\n ): Promise<{ [relativePath: string]: string }> {\n const compId = compFiles.id;\n if (!compId.hasVersion()) return {}; // it's a new component.\n const compDir = compFiles.compDir;\n const filePathsRootDir = path.join(this.workspace.scope.path, FILES_HISTORY_DIR, LAST_SNAP_DIR, compDir);\n await fs.remove(filePathsRootDir); // in case it has old data\n\n const sourceFiles = await compFiles.getHeadFiles();\n\n const results: { [relativePath: string]: string } = {};\n await Promise.all(\n sourceFiles.map(async (file) => {\n const filePath = path.join(filePathsRootDir, file.relative);\n await fs.outputFile(filePath, file.contents);\n results[pathJoinLinux(compDir, file.relative)] = filePath;\n })\n );\n return results;\n }\n\n async warmWorkspaceCache() {\n await this.workspace.warmCache();\n }\n async clearCache() {\n await this.workspace.clearCache();\n this.workspace.clearAllComponentsCache();\n }\n\n async install(options = {}) {\n const opts = {\n optimizeReportForNonTerminal: true,\n dedupe: true,\n updateExisting: false,\n import: false,\n ...options,\n };\n\n return this.installer.install(undefined, opts);\n }\n\n async export() {\n const { componentsIds, removedIds, exportedLanes, rippleJobs } = await this.exporter.export();\n const rippleJobsFullUrls = rippleJobs.map((job) => `https://${getCloudDomain()}/ripple-ci/job/${job}`);\n return {\n componentsIds: componentsIds.map((c) => c.toString()),\n removedIds: removedIds.map((c) => c.toString()),\n exportedLanes: exportedLanes.map((l) => l.id()),\n rippleJobs: rippleJobsFullUrls,\n };\n }\n\n async checkoutHead() {\n const results = await this.checkout.checkout({\n head: true,\n skipNpmInstall: true,\n ids: await this.workspace.listIds(),\n });\n return this.adjustCheckoutResultsToIde(results);\n }\n\n async getTemplates() {\n const templates = await this.generator.listTemplates();\n return templates;\n }\n\n async createComponent(templateName: string, idIncludeScope: string) {\n if (!idIncludeScope.includes('/')) {\n throw new Error('id should include the scope name');\n }\n const [scope, ...nameSplit] = idIncludeScope.split('/');\n return this.generator.generateComponentTemplate(\n [nameSplit.join('/')],\n templateName,\n { scope },\n { optimizeReportForNonTerminal: true }\n );\n }\n\n async removeComponent(componentsPattern: string) {\n const results = await this.remove.remove({\n componentsPattern,\n force: true,\n });\n const serializedResults = (results.localResult as RemovedObjects).serialize();\n return serializedResults;\n }\n\n async deleteComponents(componentsPattern: string, opts): Promise<string[]> {\n const results = await this.remove.deleteComps(componentsPattern, opts);\n const serializedResults = results.map((c) => c.id.toString());\n return serializedResults;\n }\n\n async deprecateComponent(id: string, newId?: string, range?: string): Promise<boolean> {\n return this.deprecation.deprecateByCLIValues(id, newId, range);\n }\n async undeprecateComponent(id: string): Promise<boolean> {\n return this.deprecation.unDeprecateByCLIValues(id);\n }\n\n async switchLane(name: string) {\n const results = await this.lanes.switchLanes(name, { skipDependencyInstallation: true });\n return this.adjustCheckoutResultsToIde(results);\n }\n\n private adjustCheckoutResultsToIde(output: ApplyVersionResults) {\n const { components, failedComponents } = output;\n const skipped = failedComponents?.filter((f) => f.unchangedLegitimately).map((f) => f.id.toString());\n const failed = failedComponents?.filter((f) => !f.unchangedLegitimately).map((f) => f.id.toString());\n return {\n succeed: components?.map((c) => c.id.toString()),\n skipped,\n failed,\n };\n }\n\n async getModifiedByConfig(): Promise<ModifiedByConfig[]> {\n const modifiedComps = await this.workspace.modified();\n const autoTagIds = await this.workspace.listAutoTagPendingComponentIds();\n const autoTagComps = await this.workspace.getMany(autoTagIds);\n const locallyDeletedIds = await this.workspace.locallyDeletedIds();\n const locallyDeletedComps = await this.workspace.getMany(locallyDeletedIds);\n const allComps = [...modifiedComps, ...autoTagComps, ...locallyDeletedComps];\n const allIds = allComps.map((c) => c.id);\n const results = await Promise.all(\n allComps.map(async (comp) => {\n const wsComp = await this.componentCompare.getConfigForDiffByCompObject(comp, allIds);\n const scopeComp = await this.componentCompare.getConfigForDiffById(comp.id.toString());\n const hasSameDeps = JSON.stringify(wsComp.dependencies) === JSON.stringify(scopeComp.dependencies);\n const hasSameAspects = JSON.stringify(wsComp.aspects) === JSON.stringify(scopeComp.aspects);\n if (hasSameDeps && hasSameAspects) return null;\n const result: ModifiedByConfig = {\n id: comp.id.toStringWithoutVersion(),\n version: comp.id.version as string,\n };\n if (!hasSameDeps) result.dependencies = { workspace: wsComp.dependencies, scope: scopeComp.dependencies || [] };\n if (!hasSameAspects) result.aspects = { workspace: wsComp.aspects, scope: scopeComp.aspects || {} };\n return result;\n })\n );\n\n return compact(results);\n }\n\n async getDataToInitSCM(): Promise<DataToInitSCM> {\n const ids = this.workspace.listIds();\n const results: DataToInitSCM = {};\n await pMap(\n ids,\n async (id) => {\n const compFiles = await this.workspace.getFilesModification(id);\n const pathsFromLastSnap = await this.getCompFilesDirPathFromLastSnapUsingCompFiles(compFiles);\n const idStr = id.toStringWithoutVersion();\n results[idStr] = {\n filesStatus: compFiles.getFilesStatus(),\n pathsFromLastSnap,\n compDir: compFiles.compDir,\n };\n },\n { concurrency: 30 }\n );\n\n return results;\n }\n\n async getFilesStatus(id: string): Promise<FilesStatus> {\n const componentId = await this.workspace.resolveComponentId(id);\n const compFiles = await this.workspace.getFilesModification(componentId);\n return compFiles.getFilesStatus();\n }\n\n async getCompFilesDirPathFromLastSnapForAllComps(): Promise<{ [relativePath: string]: string }> {\n const ids = this.workspace.listIds();\n let results = {};\n await pMap(\n ids,\n async (id) => {\n const idStr = id.toStringWithoutVersion();\n const compResults = await this.getCompFilesDirPathFromLastSnap(idStr);\n results = { ...results, ...compResults };\n },\n { concurrency: 30 }\n );\n return results;\n }\n\n getCurrentLaneName(): string {\n return this.workspace.getCurrentLaneId().name;\n }\n\n async tagOrSnap(message = '') {\n const params = { message, build: false };\n return this.workspace.isOnMain() ? this.snapping.tag(params) : this.snapping.snap(params);\n }\n\n async tag(message = ''): Promise<string[]> {\n const params = { message, build: false };\n const results = await this.snapping.tag(params);\n return (results?.taggedComponents || []).map((c) => c.id.toString());\n }\n\n async snap(message = ''): Promise<string[]> {\n const params = { message, build: false };\n const results = await this.snapping.snap(params);\n return (results?.snappedComponents || []).map((c) => c.id.toString());\n }\n}\n\nfunction fileIdToTimestamp(dateStr: string): number {\n const [year, month, day, hours, minutes, seconds] = dateStr.split('-');\n const date = new Date(Number(year), Number(month) - 1, Number(day), Number(hours), Number(minutes), Number(seconds));\n return date.getTime();\n}\n"],"mappings":"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","ignoreList":[]}
@@ -80,6 +80,8 @@ class CLIRawRoute {
80
80
  if (pwd && !pwd.startsWith(process.cwd())) {
81
81
  throw new Error(`bit-server is running on a different directory. bit-server: ${process.cwd()}, pwd: ${pwd}`);
82
82
  }
83
+ // there are 3 methods to interact with bit-server: 1) SSE, 2) TTY, 3) PTY. See server-commander.ts for more info.
84
+ const isSSE = !ttyPath && !isPty;
83
85
 
84
86
  // save the original process.stdout.write method
85
87
  const originalStdoutWrite = process.stdout.write;
@@ -96,7 +98,8 @@ class CLIRawRoute {
96
98
  _fsExtra().default.writeSync(fileHandle, chunk.toString());
97
99
  return originalStderrWrite.call(process.stdout, chunk, encoding, callback);
98
100
  };
99
- } else if (!isPty) {
101
+ }
102
+ if (isSSE) {
100
103
  process.env.BIT_CLI_SERVER_NO_TTY = 'true';
101
104
  _loader().default.shouldSendServerEvents = true;
102
105
  }
@@ -104,9 +107,10 @@ class CLIRawRoute {
104
107
  const levelFromArgv = (0, _logger().getLevelFromArgv)(command);
105
108
  if (levelFromArgv) {
106
109
  currentLogger = _logger().default.logger;
107
- if (ttyPath) {
110
+ if (ttyPath || isPty) {
108
111
  _logger().default.switchToConsoleLogger(levelFromArgv);
109
- } else {
112
+ }
113
+ if (isSSE) {
110
114
  _logger().default.switchToSSELogger(levelFromArgv);
111
115
  }
112
116
  }
@@ -127,8 +131,10 @@ class CLIRawRoute {
127
131
  const commandRunner = await cliParser.parse(command);
128
132
  const result = await commandRunner.runCommand(true);
129
133
  await this.apiForIDE.logFinishCmdHistory(cmdStrLog, 0);
134
+ this.logger.clearStatusLine();
130
135
  res.json(result);
131
136
  } catch (err) {
137
+ this.logger.clearStatusLine();
132
138
  if (err instanceof _cli().YargsExitWorkaround) {
133
139
  res.json({
134
140
  data: err.helpMsg,
@@ -144,14 +150,16 @@ class CLIRawRoute {
144
150
  });
145
151
  }
146
152
  } finally {
153
+ // important! at this stage, don't write to stdout/stderr anymore, e.g. don't do "this.logger.clearStatusLine()"
154
+ // because the socket (for pty) is already closed.
147
155
  if (ttyPath) {
148
156
  process.stdout.write = originalStdoutWrite;
149
157
  process.stderr.write = originalStderrWrite;
150
- } else {
158
+ }
159
+ if (isSSE) {
151
160
  delete process.env.BIT_CLI_SERVER_NO_TTY;
152
161
  _loader().default.shouldSendServerEvents = false;
153
162
  }
154
- this.logger.clearStatusLine();
155
163
  // change chalk back to false, otherwise, the IDE will have colors. (this is a global setting)
156
164
  _chalk().default.enabled = false;
157
165
  if (shouldReloadFeatureToggle) {
@@ -1 +1 @@
1
- {"version":3,"names":["_cli","data","require","_fsExtra","_interopRequireDefault","_chalk","_logger","_interopRequireWildcard","_harmonyModules","_loader","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","CLIRawRoute","constructor","logger","cli","apiForIDE","req","res","command","pwd","envBitFeatures","ttyPath","isPty","body","debug","startsWith","process","cwd","Error","originalStdoutWrite","stdout","write","originalStderrWrite","stderr","fileHandle","fs","open","chunk","encoding","callback","writeSync","toString","env","BIT_CLI_SERVER_NO_TTY","loader","shouldSendServerEvents","currentLogger","levelFromArgv","getLevelFromArgv","legacyLogger","switchToConsoleLogger","switchToSSELogger","currentBitFeatures","BIT_FEATURES","shouldReloadFeatureToggle","reloadFeatureToggle","randomNumber","Math","floor","random","commandStr","join","cmdStrLog","logStartCmdHistory","isDaemon","enableChalk","cliParser","CLIParser","commands","groups","onCommandStartSlot","commandRunner","parse","result","runCommand","logFinishCmdHistory","json","err","YargsExitWorkaround","helpMsg","exitCode","error","status","jsonp","message","clearStatusLine","chalk","enabled","switchToLogger","exports","level"],"sources":["cli-raw.route.ts"],"sourcesContent":["import { CLIMain, CLIParser, YargsExitWorkaround } from '@teambit/cli';\nimport fs from 'fs-extra';\nimport chalk from 'chalk';\nimport { Route, Request, Response } from '@teambit/express';\nimport { Logger } from '@teambit/logger';\nimport legacyLogger, { getLevelFromArgv } from '@teambit/legacy/dist/logger/logger';\nimport { reloadFeatureToggle } from '@teambit/harmony.modules.feature-toggle';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport { APIForIDE } from './api-for-ide';\n\n/**\n * example usage:\n * post to http://localhost:3000/api/cli\n * with the following json as the body\n *\n{\n \"command\": [\"tag comp1 --build\"]\n}\n */\nexport class CLIRawRoute implements Route {\n constructor(\n private logger: Logger,\n private cli: CLIMain,\n private apiForIDE: APIForIDE\n ) {}\n\n method = 'post';\n route = '/cli-raw';\n\n middlewares = [\n async (req: Request, res: Response) => {\n const { command, pwd, envBitFeatures, ttyPath, isPty } = req.body;\n this.logger.debug(`cli-raw server: got request for ${command}`);\n if (pwd && !pwd.startsWith(process.cwd())) {\n throw new Error(`bit-server is running on a different directory. bit-server: ${process.cwd()}, pwd: ${pwd}`);\n }\n\n // save the original process.stdout.write method\n const originalStdoutWrite = process.stdout.write;\n const originalStderrWrite = process.stderr.write;\n\n if (ttyPath) {\n const fileHandle = await fs.open(ttyPath, 'w');\n // @ts-ignore monkey patch the process stdout write method\n process.stdout.write = (chunk, encoding, callback) => {\n fs.writeSync(fileHandle, chunk.toString());\n return originalStdoutWrite.call(process.stdout, chunk, encoding, callback);\n };\n // @ts-ignore monkey patch the process stderr write method\n process.stderr.write = (chunk, encoding, callback) => {\n fs.writeSync(fileHandle, chunk.toString());\n return originalStderrWrite.call(process.stdout, chunk, encoding, callback);\n };\n } else if (!isPty) {\n process.env.BIT_CLI_SERVER_NO_TTY = 'true';\n loader.shouldSendServerEvents = true;\n }\n\n let currentLogger;\n const levelFromArgv = getLevelFromArgv(command);\n if (levelFromArgv) {\n currentLogger = legacyLogger.logger;\n if (ttyPath) {\n legacyLogger.switchToConsoleLogger(levelFromArgv);\n } else {\n legacyLogger.switchToSSELogger(levelFromArgv);\n }\n }\n\n const currentBitFeatures = process.env.BIT_FEATURES;\n const shouldReloadFeatureToggle = currentBitFeatures !== envBitFeatures;\n if (shouldReloadFeatureToggle) {\n process.env.BIT_FEATURES = envBitFeatures;\n reloadFeatureToggle();\n }\n\n const randomNumber = Math.floor(Math.random() * 10000); // helps to distinguish between commands in the log\n const commandStr = command.join(' ');\n const cmdStrLog = `${randomNumber} ${commandStr}`;\n await this.apiForIDE.logStartCmdHistory(cmdStrLog);\n legacyLogger.isDaemon = true;\n enableChalk();\n const cliParser = new CLIParser(this.cli.commands, this.cli.groups, this.cli.onCommandStartSlot);\n try {\n const commandRunner = await cliParser.parse(command);\n const result = await commandRunner.runCommand(true);\n await this.apiForIDE.logFinishCmdHistory(cmdStrLog, 0);\n res.json(result);\n } catch (err: any) {\n if (err instanceof YargsExitWorkaround) {\n res.json({ data: err.helpMsg, exitCode: err.exitCode });\n } else {\n this.logger.error(`cli-raw server: got an error for ${commandStr}`, err);\n await this.apiForIDE.logFinishCmdHistory(cmdStrLog, 1);\n res.status(500);\n res.jsonp({\n message: err.message,\n error: err,\n });\n }\n } finally {\n if (ttyPath) {\n process.stdout.write = originalStdoutWrite;\n process.stderr.write = originalStderrWrite;\n } else {\n delete process.env.BIT_CLI_SERVER_NO_TTY;\n loader.shouldSendServerEvents = false;\n }\n this.logger.clearStatusLine();\n // change chalk back to false, otherwise, the IDE will have colors. (this is a global setting)\n chalk.enabled = false;\n if (shouldReloadFeatureToggle) {\n process.env.BIT_FEATURES = currentBitFeatures;\n reloadFeatureToggle();\n }\n if (currentLogger) {\n legacyLogger.switchToLogger(currentLogger);\n }\n }\n },\n ];\n}\n\n/**\n * because this gets called from the express server, which gets spawn from a script, chalk defaults to false.\n * changing only the \"level\" is not enough, it must be enabled as well.\n * only when calling this route from the terminal, we want colors. on the IDE, we don't want colors.\n */\nfunction enableChalk() {\n chalk.enabled = true;\n chalk.level = 3;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_cli","data","require","_fsExtra","_interopRequireDefault","_chalk","_logger","_interopRequireWildcard","_harmonyModules","_loader","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","CLIRawRoute","constructor","logger","cli","apiForIDE","req","res","command","pwd","envBitFeatures","ttyPath","isPty","body","debug","startsWith","process","cwd","Error","isSSE","originalStdoutWrite","stdout","write","originalStderrWrite","stderr","fileHandle","fs","open","chunk","encoding","callback","writeSync","toString","env","BIT_CLI_SERVER_NO_TTY","loader","shouldSendServerEvents","currentLogger","levelFromArgv","getLevelFromArgv","legacyLogger","switchToConsoleLogger","switchToSSELogger","currentBitFeatures","BIT_FEATURES","shouldReloadFeatureToggle","reloadFeatureToggle","randomNumber","Math","floor","random","commandStr","join","cmdStrLog","logStartCmdHistory","isDaemon","enableChalk","cliParser","CLIParser","commands","groups","onCommandStartSlot","commandRunner","parse","result","runCommand","logFinishCmdHistory","clearStatusLine","json","err","YargsExitWorkaround","helpMsg","exitCode","error","status","jsonp","message","chalk","enabled","switchToLogger","exports","level"],"sources":["cli-raw.route.ts"],"sourcesContent":["import { CLIMain, CLIParser, YargsExitWorkaround } from '@teambit/cli';\nimport fs from 'fs-extra';\nimport chalk from 'chalk';\nimport { Route, Request, Response } from '@teambit/express';\nimport { Logger } from '@teambit/logger';\nimport legacyLogger, { getLevelFromArgv } from '@teambit/legacy/dist/logger/logger';\nimport { reloadFeatureToggle } from '@teambit/harmony.modules.feature-toggle';\nimport loader from '@teambit/legacy/dist/cli/loader';\nimport { APIForIDE } from './api-for-ide';\n\n/**\n * example usage:\n * post to http://localhost:3000/api/cli\n * with the following json as the body\n *\n{\n \"command\": [\"tag comp1 --build\"]\n}\n */\nexport class CLIRawRoute implements Route {\n constructor(\n private logger: Logger,\n private cli: CLIMain,\n private apiForIDE: APIForIDE\n ) {}\n\n method = 'post';\n route = '/cli-raw';\n\n middlewares = [\n async (req: Request, res: Response) => {\n const { command, pwd, envBitFeatures, ttyPath, isPty } = req.body;\n this.logger.debug(`cli-raw server: got request for ${command}`);\n if (pwd && !pwd.startsWith(process.cwd())) {\n throw new Error(`bit-server is running on a different directory. bit-server: ${process.cwd()}, pwd: ${pwd}`);\n }\n // there are 3 methods to interact with bit-server: 1) SSE, 2) TTY, 3) PTY. See server-commander.ts for more info.\n const isSSE = !ttyPath && !isPty;\n\n // save the original process.stdout.write method\n const originalStdoutWrite = process.stdout.write;\n const originalStderrWrite = process.stderr.write;\n\n if (ttyPath) {\n const fileHandle = await fs.open(ttyPath, 'w');\n // @ts-ignore monkey patch the process stdout write method\n process.stdout.write = (chunk, encoding, callback) => {\n fs.writeSync(fileHandle, chunk.toString());\n return originalStdoutWrite.call(process.stdout, chunk, encoding, callback);\n };\n // @ts-ignore monkey patch the process stderr write method\n process.stderr.write = (chunk, encoding, callback) => {\n fs.writeSync(fileHandle, chunk.toString());\n return originalStderrWrite.call(process.stdout, chunk, encoding, callback);\n };\n }\n if (isSSE) {\n process.env.BIT_CLI_SERVER_NO_TTY = 'true';\n loader.shouldSendServerEvents = true;\n }\n\n let currentLogger;\n const levelFromArgv = getLevelFromArgv(command);\n if (levelFromArgv) {\n currentLogger = legacyLogger.logger;\n if (ttyPath || isPty) {\n legacyLogger.switchToConsoleLogger(levelFromArgv);\n }\n if (isSSE) {\n legacyLogger.switchToSSELogger(levelFromArgv);\n }\n }\n\n const currentBitFeatures = process.env.BIT_FEATURES;\n const shouldReloadFeatureToggle = currentBitFeatures !== envBitFeatures;\n if (shouldReloadFeatureToggle) {\n process.env.BIT_FEATURES = envBitFeatures;\n reloadFeatureToggle();\n }\n\n const randomNumber = Math.floor(Math.random() * 10000); // helps to distinguish between commands in the log\n const commandStr = command.join(' ');\n const cmdStrLog = `${randomNumber} ${commandStr}`;\n await this.apiForIDE.logStartCmdHistory(cmdStrLog);\n legacyLogger.isDaemon = true;\n enableChalk();\n const cliParser = new CLIParser(this.cli.commands, this.cli.groups, this.cli.onCommandStartSlot);\n try {\n const commandRunner = await cliParser.parse(command);\n const result = await commandRunner.runCommand(true);\n await this.apiForIDE.logFinishCmdHistory(cmdStrLog, 0);\n this.logger.clearStatusLine();\n res.json(result);\n } catch (err: any) {\n this.logger.clearStatusLine();\n if (err instanceof YargsExitWorkaround) {\n res.json({ data: err.helpMsg, exitCode: err.exitCode });\n } else {\n this.logger.error(`cli-raw server: got an error for ${commandStr}`, err);\n await this.apiForIDE.logFinishCmdHistory(cmdStrLog, 1);\n res.status(500);\n res.jsonp({\n message: err.message,\n error: err,\n });\n }\n } finally {\n // important! at this stage, don't write to stdout/stderr anymore, e.g. don't do \"this.logger.clearStatusLine()\"\n // because the socket (for pty) is already closed.\n if (ttyPath) {\n process.stdout.write = originalStdoutWrite;\n process.stderr.write = originalStderrWrite;\n }\n if (isSSE) {\n delete process.env.BIT_CLI_SERVER_NO_TTY;\n loader.shouldSendServerEvents = false;\n }\n // change chalk back to false, otherwise, the IDE will have colors. (this is a global setting)\n chalk.enabled = false;\n if (shouldReloadFeatureToggle) {\n process.env.BIT_FEATURES = currentBitFeatures;\n reloadFeatureToggle();\n }\n if (currentLogger) {\n legacyLogger.switchToLogger(currentLogger);\n }\n }\n },\n ];\n}\n\n/**\n * because this gets called from the express server, which gets spawn from a script, chalk defaults to false.\n * changing only the \"level\" is not enough, it must be enabled as well.\n * only when calling this route from the terminal, we want colors. on the IDE, we don't want colors.\n */\nfunction enableChalk() {\n chalk.enabled = true;\n chalk.level = 3;\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/api-server",
3
- "version": "1.0.434",
3
+ "version": "1.0.436",
4
4
  "homepage": "https://bit.cloud/teambit/harmony/api-server",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.harmony",
8
8
  "name": "api-server",
9
- "version": "1.0.434"
9
+ "version": "1.0.436"
10
10
  },
11
11
  "dependencies": {
12
12
  "filenamify": "4.2.0",
@@ -20,30 +20,30 @@
20
20
  "pretty-time": "1.1.0",
21
21
  "@teambit/lane-id": "0.0.311",
22
22
  "@teambit/harmony": "0.4.6",
23
- "@teambit/application": "1.0.434",
24
- "@teambit/checkout": "1.0.434",
25
- "@teambit/component-compare": "1.0.434",
26
- "@teambit/component-log": "1.0.434",
27
- "@teambit/config": "0.0.1185",
28
- "@teambit/deprecation": "1.0.434",
29
- "@teambit/envs": "1.0.434",
30
- "@teambit/export": "1.0.434",
31
- "@teambit/generator": "1.0.435",
32
- "@teambit/install": "1.0.434",
33
- "@teambit/lanes": "1.0.434",
23
+ "@teambit/application": "1.0.436",
24
+ "@teambit/checkout": "1.0.436",
25
+ "@teambit/component-compare": "1.0.436",
26
+ "@teambit/component-log": "1.0.436",
27
+ "@teambit/config": "0.0.1187",
28
+ "@teambit/deprecation": "1.0.436",
29
+ "@teambit/envs": "1.0.436",
30
+ "@teambit/export": "1.0.436",
31
+ "@teambit/generator": "1.0.437",
32
+ "@teambit/install": "1.0.436",
33
+ "@teambit/lanes": "1.0.436",
34
34
  "@teambit/legacy.utils": "0.0.6",
35
- "@teambit/merging": "1.0.434",
36
- "@teambit/remove": "1.0.434",
37
- "@teambit/snapping": "1.0.434",
38
- "@teambit/workspace": "1.0.434",
39
- "@teambit/cli": "0.0.1011",
40
- "@teambit/component": "1.0.434",
41
- "@teambit/express": "0.0.1110",
35
+ "@teambit/merging": "1.0.436",
36
+ "@teambit/remove": "1.0.436",
37
+ "@teambit/snapping": "1.0.436",
38
+ "@teambit/workspace": "1.0.436",
39
+ "@teambit/cli": "0.0.1013",
40
+ "@teambit/component": "1.0.436",
41
+ "@teambit/express": "0.0.1112",
42
42
  "@teambit/harmony.modules.send-server-sent-events": "0.0.3",
43
- "@teambit/importer": "1.0.434",
44
- "@teambit/logger": "0.0.1104",
43
+ "@teambit/importer": "1.0.436",
44
+ "@teambit/logger": "0.0.1106",
45
45
  "@teambit/toolbox.network.get-port": "1.0.6",
46
- "@teambit/watcher": "1.0.434",
46
+ "@teambit/watcher": "1.0.436",
47
47
  "@teambit/harmony.modules.feature-toggle": "0.0.6"
48
48
  },
49
49
  "devDependencies": {