@lvce-editor/extension-host-worker 8.29.0 → 8.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/extension-api/index.js +182 -9
- package/dist/extension-api/parts/ExtensionApiCommandMap/ExtensionApiCommandMap.js +24 -0
- package/dist/extension-api/parts/Preferences/Preferences.js +11 -0
- package/dist/extension-api/parts/RegisteredSourceControlProvider/RegisteredSourceControlProvider.js +0 -0
- package/dist/extension-api/parts/SourceControl/SourceControl.js +30 -0
- package/dist/extension-api/parts/SourceControlProvider/SourceControlProvider.js +0 -0
- package/dist/extension-api/parts/SourceControlProviderRegistry/SourceControlProviderRegistry.js +154 -0
- package/dist/extension-api/parts/SourceControlProviderRegistrySnapshot/SourceControlProviderRegistrySnapshot.js +0 -0
- package/dist/extensionHostWorkerMain.js +373 -0
- package/extension-api/dist/index.d.ts +3 -0
- package/extension-api/dist/index.js +2 -0
- package/extension-api/dist/parts/CommandMap/CommandMap.d.ts +11 -0
- package/extension-api/dist/parts/ExtensionApiCommandMap/ExtensionApiCommandMap.d.ts +11 -0
- package/extension-api/dist/parts/ExtensionApiCommandMap/ExtensionApiCommandMap.js +12 -0
- package/extension-api/dist/parts/ExtensionApiWorkerCommandMap/ExtensionApiWorkerCommandMap.d.ts +11 -0
- package/extension-api/dist/parts/Preferences/Preferences.d.ts +2 -0
- package/extension-api/dist/parts/Preferences/Preferences.js +7 -0
- package/extension-api/dist/parts/RegisteredSourceControlProvider/RegisteredSourceControlProvider.d.ts +13 -0
- package/extension-api/dist/parts/RegisteredSourceControlProvider/RegisteredSourceControlProvider.js +1 -0
- package/extension-api/dist/parts/SourceControl/SourceControl.d.ts +4 -0
- package/extension-api/dist/parts/SourceControl/SourceControl.js +1 -0
- package/extension-api/dist/parts/SourceControlProvider/SourceControlProvider.d.ts +13 -0
- package/extension-api/dist/parts/SourceControlProvider/SourceControlProvider.js +1 -0
- package/extension-api/dist/parts/SourceControlProviderRegistry/SourceControlProviderRegistry.d.ts +16 -0
- package/extension-api/dist/parts/SourceControlProviderRegistry/SourceControlProviderRegistry.js +139 -0
- package/extension-api/dist/parts/SourceControlProviderRegistrySnapshot/SourceControlProviderRegistrySnapshot.d.ts +5 -0
- package/extension-api/dist/parts/SourceControlProviderRegistrySnapshot/SourceControlProviderRegistrySnapshot.js +1 -0
- package/extension-api/package.json +1 -1
- package/extension-api/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -2
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface SourceControlProvider {
|
|
2
|
+
readonly acceptInput?: (value: string) => unknown | Promise<unknown>;
|
|
3
|
+
readonly add?: (path: string) => unknown | Promise<unknown>;
|
|
4
|
+
readonly discard?: (path: string) => unknown | Promise<unknown>;
|
|
5
|
+
readonly generateCommitMessage?: () => unknown | Promise<unknown>;
|
|
6
|
+
readonly getChangedFiles: () => readonly unknown[] | Promise<readonly unknown[]>;
|
|
7
|
+
readonly getFeatures?: () => unknown | Promise<unknown>;
|
|
8
|
+
readonly getFileBefore?: (uri: string) => unknown | Promise<unknown>;
|
|
9
|
+
readonly getFileDecorations?: (uris: readonly string[]) => unknown | Promise<unknown>;
|
|
10
|
+
readonly getGroups?: (cwd: string) => unknown | Promise<unknown>;
|
|
11
|
+
readonly id: string;
|
|
12
|
+
readonly isActive?: (scheme: string, root: string) => boolean | Promise<boolean>;
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/extension-api/dist/parts/SourceControlProviderRegistry/SourceControlProviderRegistry.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Disposable } from '../Disposable/Disposable.ts';
|
|
2
|
+
import type { SourceControlProvider } from '../SourceControlProvider/SourceControlProvider.ts';
|
|
3
|
+
import type { SourceControlProviderRegistrySnapshot } from '../SourceControlProviderRegistrySnapshot/SourceControlProviderRegistrySnapshot.ts';
|
|
4
|
+
export declare const registerSourceControlProvider: (provider: SourceControlProvider) => Disposable;
|
|
5
|
+
export declare const executeSourceControlAcceptInput: (id: string, value: string) => Promise<unknown>;
|
|
6
|
+
export declare const executeSourceControlAdd: (id: string, path: string) => Promise<unknown>;
|
|
7
|
+
export declare const executeSourceControlDiscard: (id: string, path: string) => Promise<unknown>;
|
|
8
|
+
export declare const executeSourceControlGenerateCommitMessage: (id: string) => Promise<unknown>;
|
|
9
|
+
export declare const executeSourceControlGetChangedFiles: (id: string) => Promise<readonly unknown[]>;
|
|
10
|
+
export declare const executeSourceControlGetFeatures: (id: string) => Promise<unknown>;
|
|
11
|
+
export declare const executeSourceControlGetFileBefore: (id: string, uri: string) => Promise<unknown>;
|
|
12
|
+
export declare const executeSourceControlGetFileDecorations: (id: string, uris: readonly string[]) => Promise<unknown>;
|
|
13
|
+
export declare const executeSourceControlGetGroups: (id: string, cwd: string) => Promise<unknown>;
|
|
14
|
+
export declare const executeSourceControlIsActive: (id: string, scheme: string, root: string) => Promise<boolean>;
|
|
15
|
+
export declare const getSourceControlProviderRegistrySnapshot: () => SourceControlProviderRegistrySnapshot;
|
|
16
|
+
export declare const resetSourceControlProviderRegistry: () => void;
|
package/extension-api/dist/parts/SourceControlProviderRegistry/SourceControlProviderRegistry.js
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { ExtensionApiError } from "../ExtensionApiError/ExtensionApiError.js";
|
|
2
|
+
const providers = Object.create(null);
|
|
3
|
+
const optionalMethods = [
|
|
4
|
+
'acceptInput',
|
|
5
|
+
'add',
|
|
6
|
+
'discard',
|
|
7
|
+
'generateCommitMessage',
|
|
8
|
+
'getFeatures',
|
|
9
|
+
'getFileBefore',
|
|
10
|
+
'getFileDecorations',
|
|
11
|
+
'getGroups',
|
|
12
|
+
'isActive',
|
|
13
|
+
];
|
|
14
|
+
const assertOptionalProviderMethod = (provider, providerId, methodName) => {
|
|
15
|
+
if (provider[methodName] !== undefined && typeof provider[methodName] !== 'function') {
|
|
16
|
+
throw new ExtensionApiError(`source control provider ${providerId} has invalid ${methodName} function`);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const assertSourceControlProvider = (provider) => {
|
|
20
|
+
if (!provider) {
|
|
21
|
+
throw new ExtensionApiError('source control provider is not defined');
|
|
22
|
+
}
|
|
23
|
+
const providerRecord = provider;
|
|
24
|
+
const { id } = providerRecord;
|
|
25
|
+
if (typeof id !== 'string' || id.length === 0) {
|
|
26
|
+
throw new ExtensionApiError('source control provider is missing id');
|
|
27
|
+
}
|
|
28
|
+
if (typeof providerRecord.getChangedFiles !== 'function') {
|
|
29
|
+
throw new ExtensionApiError(`source control provider ${id} is missing getChangedFiles function`);
|
|
30
|
+
}
|
|
31
|
+
for (const methodName of optionalMethods) {
|
|
32
|
+
assertOptionalProviderMethod(providerRecord, id, methodName);
|
|
33
|
+
}
|
|
34
|
+
if (id in providers) {
|
|
35
|
+
throw new ExtensionApiError(`source control provider ${id} is already registered`);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const getProvider = (id) => {
|
|
39
|
+
const provider = providers[id];
|
|
40
|
+
if (!provider) {
|
|
41
|
+
throw new ExtensionApiError(`source control provider ${id} not found`);
|
|
42
|
+
}
|
|
43
|
+
return provider;
|
|
44
|
+
};
|
|
45
|
+
const mapSourceControlProvider = (provider) => {
|
|
46
|
+
const registeredProvider = {
|
|
47
|
+
getChangedFiles: () => provider.getChangedFiles(),
|
|
48
|
+
id: provider.id,
|
|
49
|
+
};
|
|
50
|
+
if (provider.acceptInput) {
|
|
51
|
+
registeredProvider.acceptInput = (value) => provider.acceptInput(value);
|
|
52
|
+
}
|
|
53
|
+
if (provider.add) {
|
|
54
|
+
registeredProvider.add = (path) => provider.add(path);
|
|
55
|
+
}
|
|
56
|
+
if (provider.discard) {
|
|
57
|
+
registeredProvider.discard = (path) => provider.discard(path);
|
|
58
|
+
}
|
|
59
|
+
if (provider.generateCommitMessage) {
|
|
60
|
+
registeredProvider.generateCommitMessage = () => provider.generateCommitMessage();
|
|
61
|
+
}
|
|
62
|
+
if (provider.getFeatures) {
|
|
63
|
+
registeredProvider.getFeatures = () => provider.getFeatures();
|
|
64
|
+
}
|
|
65
|
+
if (provider.getFileBefore) {
|
|
66
|
+
registeredProvider.getFileBefore = (uri) => provider.getFileBefore(uri);
|
|
67
|
+
}
|
|
68
|
+
if (provider.getFileDecorations) {
|
|
69
|
+
registeredProvider.getFileDecorations = (uris) => provider.getFileDecorations(uris);
|
|
70
|
+
}
|
|
71
|
+
if (provider.getGroups) {
|
|
72
|
+
registeredProvider.getGroups = (cwd) => provider.getGroups(cwd);
|
|
73
|
+
}
|
|
74
|
+
if (provider.isActive) {
|
|
75
|
+
registeredProvider.isActive = (scheme, root) => provider.isActive(scheme, root);
|
|
76
|
+
}
|
|
77
|
+
return registeredProvider;
|
|
78
|
+
};
|
|
79
|
+
export const registerSourceControlProvider = (provider) => {
|
|
80
|
+
assertSourceControlProvider(provider);
|
|
81
|
+
providers[provider.id] = mapSourceControlProvider(provider);
|
|
82
|
+
return {
|
|
83
|
+
dispose() {
|
|
84
|
+
delete providers[provider.id];
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
export const executeSourceControlAcceptInput = async (id, value) => {
|
|
89
|
+
return getProvider(id).acceptInput?.(value);
|
|
90
|
+
};
|
|
91
|
+
export const executeSourceControlAdd = async (id, path) => {
|
|
92
|
+
return getProvider(id).add?.(path);
|
|
93
|
+
};
|
|
94
|
+
export const executeSourceControlDiscard = async (id, path) => {
|
|
95
|
+
return getProvider(id).discard?.(path);
|
|
96
|
+
};
|
|
97
|
+
export const executeSourceControlGenerateCommitMessage = async (id) => {
|
|
98
|
+
return getProvider(id).generateCommitMessage?.();
|
|
99
|
+
};
|
|
100
|
+
export const executeSourceControlGetChangedFiles = async (id) => {
|
|
101
|
+
return getProvider(id).getChangedFiles();
|
|
102
|
+
};
|
|
103
|
+
export const executeSourceControlGetFeatures = async (id) => {
|
|
104
|
+
return getProvider(id).getFeatures?.() ?? {};
|
|
105
|
+
};
|
|
106
|
+
export const executeSourceControlGetFileBefore = async (id, uri) => {
|
|
107
|
+
return getProvider(id).getFileBefore?.(uri);
|
|
108
|
+
};
|
|
109
|
+
export const executeSourceControlGetFileDecorations = async (id, uris) => {
|
|
110
|
+
return getProvider(id).getFileDecorations?.(uris) ?? [];
|
|
111
|
+
};
|
|
112
|
+
export const executeSourceControlGetGroups = async (id, cwd) => {
|
|
113
|
+
const provider = getProvider(id);
|
|
114
|
+
if (provider.getGroups) {
|
|
115
|
+
return provider.getGroups(cwd);
|
|
116
|
+
}
|
|
117
|
+
return [
|
|
118
|
+
{
|
|
119
|
+
id: 'changes',
|
|
120
|
+
items: await provider.getChangedFiles(),
|
|
121
|
+
label: 'Changes',
|
|
122
|
+
},
|
|
123
|
+
];
|
|
124
|
+
};
|
|
125
|
+
export const executeSourceControlIsActive = async (id, scheme, root) => {
|
|
126
|
+
return Boolean(await getProvider(id).isActive?.(scheme, root));
|
|
127
|
+
};
|
|
128
|
+
export const getSourceControlProviderRegistrySnapshot = () => {
|
|
129
|
+
return {
|
|
130
|
+
providers: Object.values(providers).map((provider) => ({
|
|
131
|
+
id: provider.id,
|
|
132
|
+
})),
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
export const resetSourceControlProviderRegistry = () => {
|
|
136
|
+
for (const id of Object.keys(providers)) {
|
|
137
|
+
delete providers[id];
|
|
138
|
+
}
|
|
139
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|