@opensumi/ide-workspace-edit 2.12.1-next-079c1930
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/browser/bulk-edit.service.d.ts +18 -0
- package/lib/browser/bulk-edit.service.d.ts.map +1 -0
- package/lib/browser/bulk-edit.service.js +120 -0
- package/lib/browser/bulk-edit.service.js.map +1 -0
- package/lib/browser/index.d.ts +18 -0
- package/lib/browser/index.d.ts.map +1 -0
- package/lib/browser/index.js +112 -0
- package/lib/browser/index.js.map +1 -0
- package/lib/browser/refactor-preview.d.ts +6 -0
- package/lib/browser/refactor-preview.d.ts.map +1 -0
- package/lib/browser/refactor-preview.js +129 -0
- package/lib/browser/refactor-preview.js.map +1 -0
- package/lib/browser/refactor-preview.service.d.ts +31 -0
- package/lib/browser/refactor-preview.service.d.ts.map +1 -0
- package/lib/browser/refactor-preview.service.js +123 -0
- package/lib/browser/refactor-preview.service.js.map +1 -0
- package/lib/browser/refactor_preview.module.less +49 -0
- package/lib/browser/utils.d.ts +4 -0
- package/lib/browser/utils.d.ts.map +1 -0
- package/lib/browser/utils.js +16 -0
- package/lib/browser/utils.js.map +1 -0
- package/lib/browser/workspace-edit.service.d.ts +54 -0
- package/lib/browser/workspace-edit.service.d.ts.map +1 -0
- package/lib/browser/workspace-edit.service.js +318 -0
- package/lib/browser/workspace-edit.service.js.map +1 -0
- package/lib/browser/workspace-file.service.d.ts +43 -0
- package/lib/browser/workspace-file.service.d.ts.map +1 -0
- package/lib/browser/workspace-file.service.js +166 -0
- package/lib/browser/workspace-file.service.js.map +1 -0
- package/lib/common/index.d.ts +123 -0
- package/lib/common/index.d.ts.map +1 -0
- package/lib/common/index.js +16 -0
- package/lib/common/index.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +6 -0
- package/lib/index.js.map +1 -0
- package/package.json +32 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WorkspaceFileService = exports.WorkspaceFileOperationParticipant = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const di_1 = require("@opensumi/di");
|
|
6
|
+
const ide_file_service_1 = require("@opensumi/ide-file-service");
|
|
7
|
+
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
8
|
+
const progress_1 = require("@opensumi/ide-core-browser/lib/progress");
|
|
9
|
+
const __1 = require("..");
|
|
10
|
+
let WorkspaceFileOperationParticipant = class WorkspaceFileOperationParticipant extends ide_core_common_1.Disposable {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.participants = [];
|
|
14
|
+
}
|
|
15
|
+
registerParticipant(participant) {
|
|
16
|
+
this.participants.push(participant);
|
|
17
|
+
return {
|
|
18
|
+
dispose: () => {
|
|
19
|
+
const index = this.participants.findIndex((item) => item === participant);
|
|
20
|
+
this.participants.splice(index, 1);
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
async participate(files, operation) {
|
|
25
|
+
const cts = new ide_core_common_1.CancellationTokenSource();
|
|
26
|
+
for (const participant of this.participants) {
|
|
27
|
+
if (cts.token.isCancellationRequested) {
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
await participant.participate(files, operation, undefined, __1.FILE_OPERATION_TIMEOUT, cts.token);
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
(0, ide_core_common_1.getDebugLogger)().error(err);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
dispose() {
|
|
39
|
+
this.participants.splice(0, this.participants.length);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
(0, tslib_1.__decorate)([
|
|
43
|
+
(0, di_1.Autowired)(progress_1.IProgressService),
|
|
44
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
45
|
+
], WorkspaceFileOperationParticipant.prototype, "progressService", void 0);
|
|
46
|
+
WorkspaceFileOperationParticipant = (0, tslib_1.__decorate)([
|
|
47
|
+
(0, di_1.Injectable)()
|
|
48
|
+
], WorkspaceFileOperationParticipant);
|
|
49
|
+
exports.WorkspaceFileOperationParticipant = WorkspaceFileOperationParticipant;
|
|
50
|
+
let WorkspaceFileService = class WorkspaceFileService {
|
|
51
|
+
constructor() {
|
|
52
|
+
this.correlationIds = 0;
|
|
53
|
+
this._onWillRunWorkspaceFileOperation = new ide_core_common_1.AsyncEmitter();
|
|
54
|
+
this.onWillRunWorkspaceFileOperation = this._onWillRunWorkspaceFileOperation.event;
|
|
55
|
+
this._onDidFailWorkspaceFileOperation = new ide_core_common_1.AsyncEmitter();
|
|
56
|
+
this.onDidFailWorkspaceFileOperation = this._onDidFailWorkspaceFileOperation.event;
|
|
57
|
+
this._onDidRunWorkspaceFileOperation = new ide_core_common_1.AsyncEmitter();
|
|
58
|
+
this.onDidRunWorkspaceFileOperation = this._onDidRunWorkspaceFileOperation.event;
|
|
59
|
+
}
|
|
60
|
+
create(resource, contents, options) {
|
|
61
|
+
return this.doCreate(resource, true, contents, options);
|
|
62
|
+
}
|
|
63
|
+
createFolder(resource) {
|
|
64
|
+
return this.doCreate(resource, false);
|
|
65
|
+
}
|
|
66
|
+
move(files, options) {
|
|
67
|
+
return this.doMoveOrCopy(files, true, options);
|
|
68
|
+
}
|
|
69
|
+
copy(files, options) {
|
|
70
|
+
return this.doMoveOrCopy(files, false, options);
|
|
71
|
+
}
|
|
72
|
+
async delete(resources, options) {
|
|
73
|
+
// file operation participant
|
|
74
|
+
const files = resources.map((target) => ({ target: target.codeUri }));
|
|
75
|
+
await this.runOperationParticipant(files, 1 /* DELETE */);
|
|
76
|
+
// before events
|
|
77
|
+
const event = { correlationId: this.correlationIds++, operation: 1 /* DELETE */, files };
|
|
78
|
+
await this._onWillRunWorkspaceFileOperation.fireAsync(event, ide_core_common_1.CancellationToken.None);
|
|
79
|
+
// now actually delete from disk
|
|
80
|
+
try {
|
|
81
|
+
for (const resource of resources) {
|
|
82
|
+
// TODO: support recursive option
|
|
83
|
+
await this.fileService.delete(resource.toString(), { moveToTrash: options === null || options === void 0 ? void 0 : options.useTrash });
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
// error event
|
|
88
|
+
await this._onDidFailWorkspaceFileOperation.fireAsync(event, ide_core_common_1.CancellationToken.None);
|
|
89
|
+
throw error;
|
|
90
|
+
}
|
|
91
|
+
// after event
|
|
92
|
+
await this._onDidRunWorkspaceFileOperation.fireAsync(event, ide_core_common_1.CancellationToken.None);
|
|
93
|
+
}
|
|
94
|
+
registerFileOperationParticipant(participant) {
|
|
95
|
+
return this.fileOperationParticipants.registerParticipant(participant);
|
|
96
|
+
}
|
|
97
|
+
runOperationParticipant(files, operation) {
|
|
98
|
+
return this.fileOperationParticipants.participate(files, operation);
|
|
99
|
+
}
|
|
100
|
+
async doMoveOrCopy(files, move, options) {
|
|
101
|
+
const overwrite = options === null || options === void 0 ? void 0 : options.overwrite;
|
|
102
|
+
const stats = [];
|
|
103
|
+
// file operation participant
|
|
104
|
+
await this.runOperationParticipant(files, move ? 2 /* MOVE */ : 3 /* COPY */);
|
|
105
|
+
// before event
|
|
106
|
+
const event = { correlationId: this.correlationIds++, operation: move ? 2 /* MOVE */ : 3 /* COPY */, files };
|
|
107
|
+
await this._onWillRunWorkspaceFileOperation.fireAsync(event, ide_core_common_1.CancellationToken.None);
|
|
108
|
+
try {
|
|
109
|
+
for (const { source, target } of files) {
|
|
110
|
+
// now we can rename the source to target via file operation
|
|
111
|
+
if (move) {
|
|
112
|
+
stats.push(await this.fileService.move(source.toString(), target.toString(), { overwrite }));
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
stats.push(await this.fileService.copy(source.toString(), target.toString(), { overwrite }));
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
// error event
|
|
121
|
+
await this._onDidFailWorkspaceFileOperation.fireAsync(event, ide_core_common_1.CancellationToken.None);
|
|
122
|
+
throw error;
|
|
123
|
+
}
|
|
124
|
+
// after event
|
|
125
|
+
await this._onDidRunWorkspaceFileOperation.fireAsync(event, ide_core_common_1.CancellationToken.None);
|
|
126
|
+
return stats;
|
|
127
|
+
}
|
|
128
|
+
async doCreate(resource, isFile, content, options) {
|
|
129
|
+
// file operation participant
|
|
130
|
+
await this.runOperationParticipant([{ target: resource.codeUri }], 0 /* CREATE */);
|
|
131
|
+
// before events
|
|
132
|
+
const event = { correlationId: this.correlationIds++, operation: 0 /* CREATE */, files: [{ target: resource.codeUri }] };
|
|
133
|
+
await this._onWillRunWorkspaceFileOperation.fireAsync(event, ide_core_common_1.CancellationToken.None);
|
|
134
|
+
// now actually create on disk
|
|
135
|
+
let stat;
|
|
136
|
+
try {
|
|
137
|
+
if (isFile) {
|
|
138
|
+
stat = await this.fileService.createFile(resource.toString(), { overwrite: options === null || options === void 0 ? void 0 : options.overwrite, content });
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
stat = await this.fileService.createFolder(resource.toString());
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
// error event
|
|
146
|
+
await this._onDidFailWorkspaceFileOperation.fireAsync(event, ide_core_common_1.CancellationToken.None);
|
|
147
|
+
throw error;
|
|
148
|
+
}
|
|
149
|
+
// after event
|
|
150
|
+
await this._onDidRunWorkspaceFileOperation.fireAsync(event, ide_core_common_1.CancellationToken.None);
|
|
151
|
+
return stat;
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
(0, tslib_1.__decorate)([
|
|
155
|
+
(0, di_1.Autowired)(ide_file_service_1.IFileServiceClient),
|
|
156
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
157
|
+
], WorkspaceFileService.prototype, "fileService", void 0);
|
|
158
|
+
(0, tslib_1.__decorate)([
|
|
159
|
+
(0, di_1.Autowired)(WorkspaceFileOperationParticipant),
|
|
160
|
+
(0, tslib_1.__metadata)("design:type", WorkspaceFileOperationParticipant)
|
|
161
|
+
], WorkspaceFileService.prototype, "fileOperationParticipants", void 0);
|
|
162
|
+
WorkspaceFileService = (0, tslib_1.__decorate)([
|
|
163
|
+
(0, di_1.Injectable)()
|
|
164
|
+
], WorkspaceFileService);
|
|
165
|
+
exports.WorkspaceFileService = WorkspaceFileService;
|
|
166
|
+
//# sourceMappingURL=workspace-file.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-file.service.js","sourceRoot":"","sources":["../../src/browser/workspace-file.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { Uri, URI, IRange, BasicEvent, FileStat, CancellationToken, WaitUntilEvent, IDisposable, Event } from '@opensumi/ide-core-common';
|
|
2
|
+
import { EndOfLineSequence } from '@opensumi/ide-monaco/lib/browser/monaco-api/types';
|
|
3
|
+
import type { IBulkEditService } from '@opensumi/monaco-editor-core/esm/vs/editor/browser/services/bulkEditService';
|
|
4
|
+
export interface IResourceFileEdit {
|
|
5
|
+
oldResource?: URI;
|
|
6
|
+
newResource?: URI;
|
|
7
|
+
options: {
|
|
8
|
+
overwrite?: boolean;
|
|
9
|
+
ignoreIfNotExists?: boolean;
|
|
10
|
+
ignoreIfExists?: boolean;
|
|
11
|
+
recursive?: boolean;
|
|
12
|
+
showInEditor?: boolean;
|
|
13
|
+
isDirectory?: boolean;
|
|
14
|
+
copy?: boolean;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export interface IResourceTextEdit {
|
|
18
|
+
resource: URI;
|
|
19
|
+
versionId?: number;
|
|
20
|
+
textEdit: ITextEdit;
|
|
21
|
+
options?: {
|
|
22
|
+
openDirtyInEditor?: boolean;
|
|
23
|
+
dirtyIfInEditor?: boolean;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export interface ITextEdit {
|
|
27
|
+
range: IRange;
|
|
28
|
+
text: string;
|
|
29
|
+
eol?: EndOfLineSequence;
|
|
30
|
+
}
|
|
31
|
+
export interface IWorkspaceEdit {
|
|
32
|
+
edits: Array<IResourceFileEdit | IResourceTextEdit>;
|
|
33
|
+
}
|
|
34
|
+
export declare const IWorkspaceEditService: unique symbol;
|
|
35
|
+
export interface IWorkspaceEditService {
|
|
36
|
+
apply(edit: IWorkspaceEdit): Promise<void>;
|
|
37
|
+
revertTopFileEdit(): Promise<void>;
|
|
38
|
+
}
|
|
39
|
+
export declare const IWorkspaceFileService: unique symbol;
|
|
40
|
+
export declare const IBulkEditServiceShape: unique symbol;
|
|
41
|
+
export declare type IBulkEditServiceShape = IBulkEditService;
|
|
42
|
+
export declare const enum FileOperation {
|
|
43
|
+
CREATE = 0,
|
|
44
|
+
DELETE = 1,
|
|
45
|
+
MOVE = 2,
|
|
46
|
+
COPY = 3
|
|
47
|
+
}
|
|
48
|
+
export declare const FILE_OPERATION_TIMEOUT = 5000;
|
|
49
|
+
export interface SourceTargetPair {
|
|
50
|
+
/**
|
|
51
|
+
* The source resource that is defined for move operations.
|
|
52
|
+
*/
|
|
53
|
+
readonly source?: Uri;
|
|
54
|
+
/**
|
|
55
|
+
* The target resource the event is about.
|
|
56
|
+
*/
|
|
57
|
+
readonly target: Uri;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* not supported yet
|
|
61
|
+
*/
|
|
62
|
+
export interface IFileOperationUndoRedoInfo {
|
|
63
|
+
/**
|
|
64
|
+
* Id of the undo group that the file operation belongs to.
|
|
65
|
+
*/
|
|
66
|
+
undoRedoGroupId?: number;
|
|
67
|
+
/**
|
|
68
|
+
* Flag indicates if the operation is an undo.
|
|
69
|
+
*/
|
|
70
|
+
isUndoing?: boolean;
|
|
71
|
+
}
|
|
72
|
+
export interface IWorkspaceFileOperationParticipant {
|
|
73
|
+
/**
|
|
74
|
+
* Participate in a file operation of working copies. Allows to
|
|
75
|
+
* change the working copies before they are being saved to disk.
|
|
76
|
+
*/
|
|
77
|
+
participate(files: SourceTargetPair[], operation: FileOperation, undoInfo: IFileOperationUndoRedoInfo | undefined, timeout: number, token: CancellationToken): Promise<void>;
|
|
78
|
+
}
|
|
79
|
+
export interface WorkspaceFileEvent extends WaitUntilEvent {
|
|
80
|
+
/**
|
|
81
|
+
* An identifier to correlate the operation through the
|
|
82
|
+
* different event types (before, after, error).
|
|
83
|
+
*/
|
|
84
|
+
readonly correlationId: number;
|
|
85
|
+
/**
|
|
86
|
+
* The file operation that is taking place.
|
|
87
|
+
*/
|
|
88
|
+
readonly operation: FileOperation;
|
|
89
|
+
/**
|
|
90
|
+
* The array of source/target pair of files involved in given operation.
|
|
91
|
+
*/
|
|
92
|
+
readonly files: SourceTargetPair[];
|
|
93
|
+
}
|
|
94
|
+
export interface IWorkspaceFileService {
|
|
95
|
+
readonly onWillRunWorkspaceFileOperation: Event<WorkspaceFileEvent>;
|
|
96
|
+
readonly onDidFailWorkspaceFileOperation: Event<WorkspaceFileEvent>;
|
|
97
|
+
readonly onDidRunWorkspaceFileOperation: Event<WorkspaceFileEvent>;
|
|
98
|
+
create(resource: URI, contents?: string, options?: {
|
|
99
|
+
overwrite?: boolean;
|
|
100
|
+
}): Promise<FileStat>;
|
|
101
|
+
createFolder(resource: URI): Promise<FileStat>;
|
|
102
|
+
move(files: Required<SourceTargetPair>[], options?: {
|
|
103
|
+
overwrite?: boolean;
|
|
104
|
+
}): Promise<FileStat[]>;
|
|
105
|
+
copy(files: Required<SourceTargetPair>[], options?: {
|
|
106
|
+
overwrite?: boolean;
|
|
107
|
+
}): Promise<FileStat[]>;
|
|
108
|
+
delete(resources: URI[], options?: {
|
|
109
|
+
useTrash?: boolean;
|
|
110
|
+
recursive?: boolean;
|
|
111
|
+
}): Promise<void>;
|
|
112
|
+
registerFileOperationParticipant(participant: IWorkspaceFileOperationParticipant): IDisposable;
|
|
113
|
+
}
|
|
114
|
+
export declare class WorkspaceEditDidRenameFileEvent extends BasicEvent<{
|
|
115
|
+
oldUri: URI;
|
|
116
|
+
newUri: URI;
|
|
117
|
+
}> {
|
|
118
|
+
}
|
|
119
|
+
export declare class WorkspaceEditDidDeleteFileEvent extends BasicEvent<{
|
|
120
|
+
oldUri: URI;
|
|
121
|
+
}> {
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WorkspaceEditDidDeleteFileEvent = exports.WorkspaceEditDidRenameFileEvent = exports.FILE_OPERATION_TIMEOUT = exports.IBulkEditServiceShape = exports.IWorkspaceFileService = exports.IWorkspaceEditService = void 0;
|
|
4
|
+
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
5
|
+
exports.IWorkspaceEditService = Symbol('IWorkspaceEditService');
|
|
6
|
+
exports.IWorkspaceFileService = Symbol('IWorkspaceFileService');
|
|
7
|
+
// 区分开 monaco 内部的 IBulkEditServiceShape
|
|
8
|
+
exports.IBulkEditServiceShape = Symbol('IBulkEditServiceShape');
|
|
9
|
+
exports.FILE_OPERATION_TIMEOUT = 5000;
|
|
10
|
+
class WorkspaceEditDidRenameFileEvent extends ide_core_common_1.BasicEvent {
|
|
11
|
+
}
|
|
12
|
+
exports.WorkspaceEditDidRenameFileEvent = WorkspaceEditDidRenameFileEvent;
|
|
13
|
+
class WorkspaceEditDidDeleteFileEvent extends ide_core_common_1.BasicEvent {
|
|
14
|
+
}
|
|
15
|
+
exports.WorkspaceEditDidDeleteFileEvent = WorkspaceEditDidDeleteFileEvent;
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;AAAA,+DAA0I;AAwC7H,QAAA,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAWxD,QAAA,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAErE,uCAAuC;AAC1B,QAAA,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAUxD,QAAA,sBAAsB,GAAG,IAAI,CAAC;AA+E3C,MAAa,+BAAgC,SAAQ,4BAAsC;CAAG;AAA9F,0EAA8F;AAC9F,MAAa,+BAAgC,SAAQ,4BAAyB;CAAG;AAAjF,0EAAiF"}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"}
|
package/lib/index.js
ADDED
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,wDAAyB;AACzB,yDAA0B"}
|
package/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@opensumi/ide-workspace-edit",
|
|
3
|
+
"version": "2.12.1-next-079c1930",
|
|
4
|
+
"files": [
|
|
5
|
+
"lib"
|
|
6
|
+
],
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"main": "lib/index.js",
|
|
9
|
+
"typings": "lib/index.d.ts",
|
|
10
|
+
"scripts": {
|
|
11
|
+
"prepublishOnly": "npm run build",
|
|
12
|
+
"build": "tsc --build ../../configs/ts/references/tsconfig.workspace-edit.json"
|
|
13
|
+
},
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git@github.com:opensumi/core.git"
|
|
17
|
+
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@opensumi/ide-core-common": "2.12.1-next-079c1930",
|
|
20
|
+
"@opensumi/ide-core-node": "2.12.1-next-079c1930",
|
|
21
|
+
"@opensumi/ide-editor": "2.12.1-next-079c1930",
|
|
22
|
+
"@opensumi/ide-file-service": "2.12.1-next-079c1930",
|
|
23
|
+
"@opensumi/ide-overlay": "2.12.1-next-079c1930",
|
|
24
|
+
"@opensumi/ide-main-layout": "2.12.1-next-079c1930",
|
|
25
|
+
"@opensumi/ide-components": "2.12.1-next-079c1930",
|
|
26
|
+
"@opensumi/ide-monaco": "2.12.1-next-079c1930"
|
|
27
|
+
},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"@opensumi/ide-core-browser": "2.12.1-next-079c1930",
|
|
30
|
+
"@opensumi/ide-dev-tool": "^1.3.1"
|
|
31
|
+
}
|
|
32
|
+
}
|