@teambit/ipc-events 1.0.469 → 1.0.471
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/ipc-events@1.0.
|
|
3
|
+
<testsuite name="teambit.harmony/ipc-events@1.0.471" tests="0" failures="0" errors="0" skipped="0"/>
|
|
4
4
|
</testsuites>
|
package/artifacts/schema.json
CHANGED
|
@@ -68,11 +68,7 @@
|
|
|
68
68
|
"line": 34,
|
|
69
69
|
"character": 20
|
|
70
70
|
},
|
|
71
|
-
"name": "ScopeMain"
|
|
72
|
-
"componentId": {
|
|
73
|
-
"scope": "teambit.scope",
|
|
74
|
-
"name": "scope"
|
|
75
|
-
}
|
|
71
|
+
"name": "ScopeMain"
|
|
76
72
|
},
|
|
77
73
|
"isOptional": false,
|
|
78
74
|
"isSpread": false
|
|
@@ -92,8 +88,7 @@
|
|
|
92
88
|
"line": 35,
|
|
93
89
|
"character": 27
|
|
94
90
|
},
|
|
95
|
-
"name": "GotEventSlot"
|
|
96
|
-
"internalFilePath": "ipc-events.main.runtime.ts"
|
|
91
|
+
"name": "GotEventSlot"
|
|
97
92
|
},
|
|
98
93
|
"isOptional": false,
|
|
99
94
|
"isSpread": false
|
|
@@ -113,11 +108,7 @@
|
|
|
113
108
|
"line": 36,
|
|
114
109
|
"character": 21
|
|
115
110
|
},
|
|
116
|
-
"name": "Logger"
|
|
117
|
-
"componentId": {
|
|
118
|
-
"scope": "teambit.harmony",
|
|
119
|
-
"name": "logger"
|
|
120
|
-
}
|
|
111
|
+
"name": "Logger"
|
|
121
112
|
},
|
|
122
113
|
"isOptional": false,
|
|
123
114
|
"isSpread": false
|
|
@@ -159,8 +150,7 @@
|
|
|
159
150
|
"line": 39,
|
|
160
151
|
"character": 28
|
|
161
152
|
},
|
|
162
|
-
"name": "GotEvent"
|
|
163
|
-
"internalFilePath": "ipc-events.main.runtime.ts"
|
|
153
|
+
"name": "GotEvent"
|
|
164
154
|
},
|
|
165
155
|
"isOptional": false,
|
|
166
156
|
"isSpread": false
|
|
@@ -213,8 +203,7 @@
|
|
|
213
203
|
"line": 47,
|
|
214
204
|
"character": 36
|
|
215
205
|
},
|
|
216
|
-
"name": "EventName"
|
|
217
|
-
"internalFilePath": "ipc-events.main.runtime.ts"
|
|
206
|
+
"name": "EventName"
|
|
218
207
|
},
|
|
219
208
|
"isOptional": false,
|
|
220
209
|
"isSpread": false
|
|
@@ -269,8 +258,7 @@
|
|
|
269
258
|
"line": 56,
|
|
270
259
|
"character": 36
|
|
271
260
|
},
|
|
272
|
-
"name": "EventName"
|
|
273
|
-
"internalFilePath": "ipc-events.main.runtime.ts"
|
|
261
|
+
"name": "EventName"
|
|
274
262
|
},
|
|
275
263
|
"isOptional": false,
|
|
276
264
|
"isSpread": false
|
|
@@ -444,11 +432,7 @@
|
|
|
444
432
|
"line": 70,
|
|
445
433
|
"character": 47
|
|
446
434
|
},
|
|
447
|
-
"name": "ScopeMain"
|
|
448
|
-
"componentId": {
|
|
449
|
-
"scope": "teambit.scope",
|
|
450
|
-
"name": "scope"
|
|
451
|
-
}
|
|
435
|
+
"name": "ScopeMain"
|
|
452
436
|
},
|
|
453
437
|
{
|
|
454
438
|
"__schema": "TypeRefSchema",
|
|
@@ -457,11 +441,7 @@
|
|
|
457
441
|
"line": 70,
|
|
458
442
|
"character": 58
|
|
459
443
|
},
|
|
460
|
-
"name": "LoggerMain"
|
|
461
|
-
"componentId": {
|
|
462
|
-
"scope": "teambit.harmony",
|
|
463
|
-
"name": "logger"
|
|
464
|
-
}
|
|
444
|
+
"name": "LoggerMain"
|
|
465
445
|
}
|
|
466
446
|
]
|
|
467
447
|
},
|
|
@@ -511,8 +491,7 @@
|
|
|
511
491
|
"line": 70,
|
|
512
492
|
"character": 91
|
|
513
493
|
},
|
|
514
|
-
"name": "GotEventSlot"
|
|
515
|
-
"internalFilePath": "ipc-events.main.runtime.ts"
|
|
494
|
+
"name": "GotEventSlot"
|
|
516
495
|
}
|
|
517
496
|
]
|
|
518
497
|
},
|
|
@@ -643,11 +622,7 @@
|
|
|
643
622
|
"line": 34,
|
|
644
623
|
"character": 20
|
|
645
624
|
},
|
|
646
|
-
"name": "ScopeMain"
|
|
647
|
-
"componentId": {
|
|
648
|
-
"scope": "teambit.scope",
|
|
649
|
-
"name": "scope"
|
|
650
|
-
}
|
|
625
|
+
"name": "ScopeMain"
|
|
651
626
|
},
|
|
652
627
|
"isOptional": false,
|
|
653
628
|
"isSpread": false
|
|
@@ -667,8 +642,7 @@
|
|
|
667
642
|
"line": 35,
|
|
668
643
|
"character": 27
|
|
669
644
|
},
|
|
670
|
-
"name": "GotEventSlot"
|
|
671
|
-
"internalFilePath": "ipc-events.main.runtime.ts"
|
|
645
|
+
"name": "GotEventSlot"
|
|
672
646
|
},
|
|
673
647
|
"isOptional": false,
|
|
674
648
|
"isSpread": false
|
|
@@ -688,11 +662,7 @@
|
|
|
688
662
|
"line": 36,
|
|
689
663
|
"character": 21
|
|
690
664
|
},
|
|
691
|
-
"name": "Logger"
|
|
692
|
-
"componentId": {
|
|
693
|
-
"scope": "teambit.harmony",
|
|
694
|
-
"name": "logger"
|
|
695
|
-
}
|
|
665
|
+
"name": "Logger"
|
|
696
666
|
},
|
|
697
667
|
"isOptional": false,
|
|
698
668
|
"isSpread": false
|
|
@@ -734,8 +704,7 @@
|
|
|
734
704
|
"line": 39,
|
|
735
705
|
"character": 28
|
|
736
706
|
},
|
|
737
|
-
"name": "GotEvent"
|
|
738
|
-
"internalFilePath": "ipc-events.main.runtime.ts"
|
|
707
|
+
"name": "GotEvent"
|
|
739
708
|
},
|
|
740
709
|
"isOptional": false,
|
|
741
710
|
"isSpread": false
|
|
@@ -788,8 +757,7 @@
|
|
|
788
757
|
"line": 47,
|
|
789
758
|
"character": 36
|
|
790
759
|
},
|
|
791
|
-
"name": "EventName"
|
|
792
|
-
"internalFilePath": "ipc-events.main.runtime.ts"
|
|
760
|
+
"name": "EventName"
|
|
793
761
|
},
|
|
794
762
|
"isOptional": false,
|
|
795
763
|
"isSpread": false
|
|
@@ -844,8 +812,7 @@
|
|
|
844
812
|
"line": 56,
|
|
845
813
|
"character": 36
|
|
846
814
|
},
|
|
847
|
-
"name": "EventName"
|
|
848
|
-
"internalFilePath": "ipc-events.main.runtime.ts"
|
|
815
|
+
"name": "EventName"
|
|
849
816
|
},
|
|
850
817
|
"isOptional": false,
|
|
851
818
|
"isSpread": false
|
|
@@ -1019,11 +986,7 @@
|
|
|
1019
986
|
"line": 70,
|
|
1020
987
|
"character": 47
|
|
1021
988
|
},
|
|
1022
|
-
"name": "ScopeMain"
|
|
1023
|
-
"componentId": {
|
|
1024
|
-
"scope": "teambit.scope",
|
|
1025
|
-
"name": "scope"
|
|
1026
|
-
}
|
|
989
|
+
"name": "ScopeMain"
|
|
1027
990
|
},
|
|
1028
991
|
{
|
|
1029
992
|
"__schema": "TypeRefSchema",
|
|
@@ -1032,11 +995,7 @@
|
|
|
1032
995
|
"line": 70,
|
|
1033
996
|
"character": 58
|
|
1034
997
|
},
|
|
1035
|
-
"name": "LoggerMain"
|
|
1036
|
-
"componentId": {
|
|
1037
|
-
"scope": "teambit.harmony",
|
|
1038
|
-
"name": "logger"
|
|
1039
|
-
}
|
|
998
|
+
"name": "LoggerMain"
|
|
1040
999
|
}
|
|
1041
1000
|
]
|
|
1042
1001
|
},
|
|
@@ -1086,8 +1045,7 @@
|
|
|
1086
1045
|
"line": 70,
|
|
1087
1046
|
"character": 91
|
|
1088
1047
|
},
|
|
1089
|
-
"name": "GotEventSlot"
|
|
1090
|
-
"internalFilePath": "ipc-events.main.runtime.ts"
|
|
1048
|
+
"name": "GotEventSlot"
|
|
1091
1049
|
}
|
|
1092
1050
|
]
|
|
1093
1051
|
},
|
|
@@ -1117,7 +1075,7 @@
|
|
|
1117
1075
|
"__schema": "UnImplementedSchema",
|
|
1118
1076
|
"location": {
|
|
1119
1077
|
"filePath": "ipc-events.main.runtime.ts",
|
|
1120
|
-
"line":
|
|
1078
|
+
"line": 95,
|
|
1121
1079
|
"character": 16
|
|
1122
1080
|
},
|
|
1123
1081
|
"name": "IpcEventsMain",
|
|
@@ -1197,8 +1155,7 @@
|
|
|
1197
1155
|
"line": 12,
|
|
1198
1156
|
"character": 29
|
|
1199
1157
|
},
|
|
1200
|
-
"name": "EventName"
|
|
1201
|
-
"internalFilePath": "ipc-events.main.runtime.ts"
|
|
1158
|
+
"name": "EventName"
|
|
1202
1159
|
},
|
|
1203
1160
|
"isOptional": false,
|
|
1204
1161
|
"isSpread": false
|
|
@@ -1244,11 +1201,6 @@
|
|
|
1244
1201
|
"character": 21
|
|
1245
1202
|
},
|
|
1246
1203
|
"name": "SlotRegistry",
|
|
1247
|
-
"componentId": {
|
|
1248
|
-
"scope": "teambit.harmony",
|
|
1249
|
-
"name": "harmony",
|
|
1250
|
-
"version": "0.4.6"
|
|
1251
|
-
},
|
|
1252
1204
|
"typeArgs": [
|
|
1253
1205
|
{
|
|
1254
1206
|
"__schema": "TypeRefSchema",
|
|
@@ -1257,8 +1209,7 @@
|
|
|
1257
1209
|
"line": 13,
|
|
1258
1210
|
"character": 34
|
|
1259
1211
|
},
|
|
1260
|
-
"name": "GotEvent"
|
|
1261
|
-
"internalFilePath": "ipc-events.main.runtime.ts"
|
|
1212
|
+
"name": "GotEvent"
|
|
1262
1213
|
}
|
|
1263
1214
|
]
|
|
1264
1215
|
}
|
|
@@ -1299,7 +1250,7 @@
|
|
|
1299
1250
|
"__schema": "UnImplementedSchema",
|
|
1300
1251
|
"location": {
|
|
1301
1252
|
"filePath": "ipc-events.main.runtime.ts",
|
|
1302
|
-
"line":
|
|
1253
|
+
"line": 93,
|
|
1303
1254
|
"character": 1
|
|
1304
1255
|
},
|
|
1305
1256
|
"name": "IpcEventsAspect.addRuntime(IpcEventsMain);",
|
|
@@ -1348,7 +1299,7 @@
|
|
|
1348
1299
|
"componentId": {
|
|
1349
1300
|
"scope": "teambit.harmony",
|
|
1350
1301
|
"name": "ipc-events",
|
|
1351
|
-
"version": "1.0.
|
|
1302
|
+
"version": "1.0.471"
|
|
1352
1303
|
},
|
|
1353
1304
|
"taggedModuleExports": []
|
|
1354
1305
|
}
|
|
@@ -123,7 +123,9 @@ class IpcEventsMain {
|
|
|
123
123
|
});
|
|
124
124
|
ipcEventsMain.registerGotEventSlot(async eventName => {
|
|
125
125
|
if (eventName === 'onPostObjectsPersist') {
|
|
126
|
+
logger.debug('got an event onPostObjectsPersist, clearing the cache and reloading staged-snaps');
|
|
126
127
|
scope.legacyScope.objects.clearObjectsFromCache();
|
|
128
|
+
scope.legacyScope.setStagedSnaps(); // "bit export" deletes the staged-snaps file, so it should be reloaded
|
|
127
129
|
}
|
|
128
130
|
});
|
|
129
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_scope","data","require","_harmony","_logger","_pMapSeries","_interopRequireDefault","_cli","_path","_fsExtra","_ipcEvents","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","EVENTS_DIR","IpcEventsMain","constructor","scope","gotEventSlot","logger","registerGotEventSlot","fn","register","triggerGotEvent","eventName","info","pMapSeries","values","publishIpcEvent","filename","path","join","eventsDir","content","JSON","stringify","undefined","fs","outputFile","provider","loggerMain","_","createLogger","IpcEventsAspect","id","ipcEventsMain","registerOnPostObjectsPersist","legacyScope","objects","clearObjectsFromCache","exports","Slot","withType","ScopeAspect","LoggerAspect","MainRuntime","addRuntime","_default"],"sources":["ipc-events.main.runtime.ts"],"sourcesContent":["import { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport pMapSeries from 'p-map-series';\nimport { MainRuntime } from '@teambit/cli';\nimport path from 'path';\nimport fs from 'fs-extra';\nimport { IpcEventsAspect } from './ipc-events.aspect';\n\ntype EventName = 'onPostInstall' | 'onPostObjectsPersist';\n\ntype GotEvent = (eventName: EventName) => Promise<void>;\ntype GotEventSlot = SlotRegistry<GotEvent>;\n\nconst EVENTS_DIR = 'events';\n\n/**\n * imagine you have multiple processes running in the background, such as `bit watch`, `bit start`, `bit server`.\n * the user is running `bit install` from the cli, how do you let these processes know that the installation is complete?\n * `bit start` for instance could use ths info to clear the \"component issues\" of the components that were missing packages.\n *\n * this class provides a mechanism to achieve this by writing the event into the filesystem (`.bit/events/event-name`),\n * while each one of the processes has a watcher in the background watch this file. once they got the data from the watcher,\n * they can act upon it.\n *\n * in the previous example, when the user is running `bit install`, the install aspect runs `this.publishIpcEvent` to\n * write `.bit/events/onPostInstall` to the filesystem. then, the watcher of `bit start` process got a notification\n * that this file has changed/added and it runs `triggerGotEvent` to run all aspects registered to its gotEventSlot.\n * the installer in turn is registered to this slot and once its function is triggered, it check whether the eventName\n * is onPostInstall and then triggers its own OnPostInstall slot.\n */\nexport class IpcEventsMain {\n constructor(\n private scope: ScopeMain,\n private gotEventSlot: GotEventSlot,\n private logger: Logger\n ) {}\n\n registerGotEventSlot(fn: GotEvent) {\n this.gotEventSlot.register(fn);\n }\n\n /**\n * this gets called from the watcher only.\n * as soon as the watcher finds out that a new event has been written to the filesystem, it triggers this function\n */\n async triggerGotEvent(eventName: EventName) {\n this.logger.info(`triggering got event ${eventName}`);\n await pMapSeries(this.gotEventSlot.values(), (fn) => fn(eventName));\n }\n\n /**\n * write event data into the filesystem, so then other processes, such as \"bit start\", \"bit watch\", could use the\n * watcher to get the event data.\n */\n async publishIpcEvent(eventName: EventName, data?: Record<string, any>) {\n const filename = path.join(this.eventsDir, eventName);\n const content = data ? JSON.stringify(data, undefined, 2) : '';\n await fs.outputFile(filename, content);\n }\n\n get eventsDir() {\n return path.join(this.scope.path, EVENTS_DIR);\n }\n\n static slots = [Slot.withType<GotEventSlot>()];\n static dependencies = [ScopeAspect, LoggerAspect];\n static runtime = MainRuntime;\n\n static async provider([scope, loggerMain]: [ScopeMain, LoggerMain], _, [gotEventSlot]: [GotEventSlot]) {\n const logger = loggerMain.createLogger(IpcEventsAspect.id);\n const ipcEventsMain = new IpcEventsMain(scope, gotEventSlot, logger);\n\n if (scope) {\n // in case commands like \"bit export\" are running from the cli, long-running processes should clear their cache.\n // otherwise, objects like \"ModelComponent\" are out-of-date and could have the wrong head and the \"state\"/\"local\" data.\n scope.registerOnPostObjectsPersist(async () => {\n await ipcEventsMain.publishIpcEvent('onPostObjectsPersist');\n });\n ipcEventsMain.registerGotEventSlot(async (eventName) => {\n if (eventName === 'onPostObjectsPersist') {\n scope.legacyScope.objects.clearObjectsFromCache();\n }\n });\n }\n\n return ipcEventsMain;\n }\n}\n\nIpcEventsAspect.addRuntime(IpcEventsMain);\n\nexport default IpcEventsMain;\n"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["_scope","data","require","_harmony","_logger","_pMapSeries","_interopRequireDefault","_cli","_path","_fsExtra","_ipcEvents","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","EVENTS_DIR","IpcEventsMain","constructor","scope","gotEventSlot","logger","registerGotEventSlot","fn","register","triggerGotEvent","eventName","info","pMapSeries","values","publishIpcEvent","filename","path","join","eventsDir","content","JSON","stringify","undefined","fs","outputFile","provider","loggerMain","_","createLogger","IpcEventsAspect","id","ipcEventsMain","registerOnPostObjectsPersist","debug","legacyScope","objects","clearObjectsFromCache","setStagedSnaps","exports","Slot","withType","ScopeAspect","LoggerAspect","MainRuntime","addRuntime","_default"],"sources":["ipc-events.main.runtime.ts"],"sourcesContent":["import { ScopeAspect, ScopeMain } from '@teambit/scope';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport pMapSeries from 'p-map-series';\nimport { MainRuntime } from '@teambit/cli';\nimport path from 'path';\nimport fs from 'fs-extra';\nimport { IpcEventsAspect } from './ipc-events.aspect';\n\ntype EventName = 'onPostInstall' | 'onPostObjectsPersist';\n\ntype GotEvent = (eventName: EventName) => Promise<void>;\ntype GotEventSlot = SlotRegistry<GotEvent>;\n\nconst EVENTS_DIR = 'events';\n\n/**\n * imagine you have multiple processes running in the background, such as `bit watch`, `bit start`, `bit server`.\n * the user is running `bit install` from the cli, how do you let these processes know that the installation is complete?\n * `bit start` for instance could use ths info to clear the \"component issues\" of the components that were missing packages.\n *\n * this class provides a mechanism to achieve this by writing the event into the filesystem (`.bit/events/event-name`),\n * while each one of the processes has a watcher in the background watch this file. once they got the data from the watcher,\n * they can act upon it.\n *\n * in the previous example, when the user is running `bit install`, the install aspect runs `this.publishIpcEvent` to\n * write `.bit/events/onPostInstall` to the filesystem. then, the watcher of `bit start` process got a notification\n * that this file has changed/added and it runs `triggerGotEvent` to run all aspects registered to its gotEventSlot.\n * the installer in turn is registered to this slot and once its function is triggered, it check whether the eventName\n * is onPostInstall and then triggers its own OnPostInstall slot.\n */\nexport class IpcEventsMain {\n constructor(\n private scope: ScopeMain,\n private gotEventSlot: GotEventSlot,\n private logger: Logger\n ) {}\n\n registerGotEventSlot(fn: GotEvent) {\n this.gotEventSlot.register(fn);\n }\n\n /**\n * this gets called from the watcher only.\n * as soon as the watcher finds out that a new event has been written to the filesystem, it triggers this function\n */\n async triggerGotEvent(eventName: EventName) {\n this.logger.info(`triggering got event ${eventName}`);\n await pMapSeries(this.gotEventSlot.values(), (fn) => fn(eventName));\n }\n\n /**\n * write event data into the filesystem, so then other processes, such as \"bit start\", \"bit watch\", could use the\n * watcher to get the event data.\n */\n async publishIpcEvent(eventName: EventName, data?: Record<string, any>) {\n const filename = path.join(this.eventsDir, eventName);\n const content = data ? JSON.stringify(data, undefined, 2) : '';\n await fs.outputFile(filename, content);\n }\n\n get eventsDir() {\n return path.join(this.scope.path, EVENTS_DIR);\n }\n\n static slots = [Slot.withType<GotEventSlot>()];\n static dependencies = [ScopeAspect, LoggerAspect];\n static runtime = MainRuntime;\n\n static async provider([scope, loggerMain]: [ScopeMain, LoggerMain], _, [gotEventSlot]: [GotEventSlot]) {\n const logger = loggerMain.createLogger(IpcEventsAspect.id);\n const ipcEventsMain = new IpcEventsMain(scope, gotEventSlot, logger);\n\n if (scope) {\n // in case commands like \"bit export\" are running from the cli, long-running processes should clear their cache.\n // otherwise, objects like \"ModelComponent\" are out-of-date and could have the wrong head and the \"state\"/\"local\" data.\n scope.registerOnPostObjectsPersist(async () => {\n await ipcEventsMain.publishIpcEvent('onPostObjectsPersist');\n });\n ipcEventsMain.registerGotEventSlot(async (eventName) => {\n if (eventName === 'onPostObjectsPersist') {\n logger.debug('got an event onPostObjectsPersist, clearing the cache and reloading staged-snaps');\n scope.legacyScope.objects.clearObjectsFromCache();\n scope.legacyScope.setStagedSnaps(); // \"bit export\" deletes the staged-snaps file, so it should be reloaded\n }\n });\n }\n\n return ipcEventsMain;\n }\n}\n\nIpcEventsAspect.addRuntime(IpcEventsMain);\n\nexport default IpcEventsMain;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/ipc-events",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.471",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/harmony/ipc-events",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.harmony",
|
|
8
8
|
"name": "ipc-events",
|
|
9
|
-
"version": "1.0.
|
|
9
|
+
"version": "1.0.471"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"fs-extra": "10.0.0",
|
|
13
13
|
"p-map-series": "2.1.0",
|
|
14
14
|
"@teambit/harmony": "0.4.6",
|
|
15
|
-
"@teambit/cli": "0.0.
|
|
16
|
-
"@teambit/logger": "0.0.
|
|
17
|
-
"@teambit/scope": "1.0.
|
|
15
|
+
"@teambit/cli": "0.0.1048",
|
|
16
|
+
"@teambit/logger": "0.0.1141",
|
|
17
|
+
"@teambit/scope": "1.0.471"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
20
|
"@types/fs-extra": "9.0.7",
|
|
File without changes
|