@codingame/monaco-vscode-user-data-sync-service-override 14.0.6 → 15.0.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.
Files changed (22) hide show
  1. package/package.json +16 -14
  2. package/vscode/src/vs/platform/userDataSync/common/promptsSync/promptsMerge.d.ts +16 -0
  3. package/vscode/src/vs/platform/userDataSync/common/promptsSync/promptsMerge.js +128 -0
  4. package/vscode/src/vs/platform/userDataSync/common/promptsSync/promptsSync.d.ts +43 -0
  5. package/vscode/src/vs/platform/userDataSync/common/promptsSync/promptsSync.js +437 -0
  6. package/vscode/src/vs/platform/userDataSync/common/userDataAutoSyncService.js +7 -7
  7. package/vscode/src/vs/platform/userDataSync/common/userDataProfilesManifestSync.js +1 -1
  8. package/vscode/src/vs/platform/userDataSync/common/userDataSyncEnablementService.d.ts +1 -1
  9. package/vscode/src/vs/platform/userDataSync/common/userDataSyncEnablementService.js +5 -3
  10. package/vscode/src/vs/platform/userDataSync/common/userDataSyncLog.js +1 -1
  11. package/vscode/src/vs/platform/userDataSync/common/userDataSyncResourceProvider.d.ts +2 -0
  12. package/vscode/src/vs/platform/userDataSync/common/userDataSyncResourceProvider.js +28 -2
  13. package/vscode/src/vs/platform/userDataSync/common/userDataSyncService.js +5 -2
  14. package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSync.contribution.js +8 -8
  15. package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSync.d.ts +4 -2
  16. package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSync.js +97 -85
  17. package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSyncConflictsView.d.ts +1 -2
  18. package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSyncConflictsView.js +17 -19
  19. package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSyncTrigger.js +1 -1
  20. package/vscode/src/vs/workbench/contrib/userDataSync/browser/userDataSyncViews.js +33 -33
  21. package/vscode/src/vs/workbench/services/userDataSync/browser/userDataSyncWorkbenchService.d.ts +1 -0
  22. package/vscode/src/vs/workbench/services/userDataSync/browser/userDataSyncWorkbenchService.js +37 -29
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-user-data-sync-service-override",
3
- "version": "14.0.6",
3
+ "version": "15.0.0",
4
4
  "private": false,
5
5
  "description": "VSCode public API plugged on the monaco editor - user-data-sync service-override",
6
6
  "keywords": [],
@@ -15,19 +15,21 @@
15
15
  },
16
16
  "type": "module",
17
17
  "dependencies": {
18
- "@codingame/monaco-vscode-3607c442-ae7a-594b-b840-038378c24fef-common": "14.0.6",
19
- "@codingame/monaco-vscode-407531d3-fdae-5387-8c41-49ba0e9574b5-common": "14.0.6",
20
- "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "14.0.6",
21
- "@codingame/monaco-vscode-4a316137-39d1-5d77-8b53-112db3547c1e-common": "14.0.6",
22
- "@codingame/monaco-vscode-897bebad-39df-57cb-8a57-36a271d038be-common": "14.0.6",
23
- "@codingame/monaco-vscode-91789cdf-e3cb-5a04-aaeb-6f7df7d3d231-common": "14.0.6",
24
- "@codingame/monaco-vscode-a022e9a8-b522-5ea2-97c7-f3dda2b0b597-common": "14.0.6",
25
- "@codingame/monaco-vscode-a2719803-af40-5ae9-a29f-8a2231c33056-common": "14.0.6",
26
- "@codingame/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common": "14.0.6",
27
- "@codingame/monaco-vscode-api": "14.0.6",
28
- "@codingame/monaco-vscode-e72c94ca-257a-5b75-8b68-5a5fa3c18255-common": "14.0.6",
29
- "@codingame/monaco-vscode-f48982c4-9e82-55e2-b800-20e6d1e6096f-common": "14.0.6",
30
- "@codingame/monaco-vscode-user-data-profile-service-override": "14.0.6"
18
+ "@codingame/monaco-vscode-12c5f9eb-72d3-57ca-babd-5bef7aa9de3b-common": "15.0.0",
19
+ "@codingame/monaco-vscode-3607c442-ae7a-594b-b840-038378c24fef-common": "15.0.0",
20
+ "@codingame/monaco-vscode-38f25ab8-ea30-5ba9-8a08-ae3308c297c0-common": "15.0.0",
21
+ "@codingame/monaco-vscode-411e0589-fa79-504b-b32c-80a88847b23a-common": "15.0.0",
22
+ "@codingame/monaco-vscode-4a316137-39d1-5d77-8b53-112db3547c1e-common": "15.0.0",
23
+ "@codingame/monaco-vscode-52bb4d5b-ba1a-57fd-9bee-b28824214eac-common": "15.0.0",
24
+ "@codingame/monaco-vscode-7ba0af96-90c2-5e11-ad7f-befdbbf246c8-common": "15.0.0",
25
+ "@codingame/monaco-vscode-897bebad-39df-57cb-8a57-36a271d038be-common": "15.0.0",
26
+ "@codingame/monaco-vscode-a022e9a8-b522-5ea2-97c7-f3dda2b0b597-common": "15.0.0",
27
+ "@codingame/monaco-vscode-a2719803-af40-5ae9-a29f-8a2231c33056-common": "15.0.0",
28
+ "@codingame/monaco-vscode-a4c2011e-8775-52bd-abf0-4a3c07a9696b-common": "15.0.0",
29
+ "@codingame/monaco-vscode-a7c9ae3c-16d2-5d17-86b2-981be7094566-common": "15.0.0",
30
+ "@codingame/monaco-vscode-api": "15.0.0",
31
+ "@codingame/monaco-vscode-e72c94ca-257a-5b75-8b68-5a5fa3c18255-common": "15.0.0",
32
+ "@codingame/monaco-vscode-user-data-profile-service-override": "15.0.0"
31
33
  },
32
34
  "main": "index.js",
33
35
  "module": "index.js",
@@ -0,0 +1,16 @@
1
+ import { IStringDictionary } from "@codingame/monaco-vscode-api/vscode/vs/base/common/collections";
2
+ export interface IMergeResult {
3
+ local: {
4
+ added: IStringDictionary<string>;
5
+ updated: IStringDictionary<string>;
6
+ removed: string[];
7
+ };
8
+ remote: {
9
+ added: IStringDictionary<string>;
10
+ updated: IStringDictionary<string>;
11
+ removed: string[];
12
+ };
13
+ conflicts: string[];
14
+ }
15
+ export declare function merge(local: IStringDictionary<string>, remote: IStringDictionary<string> | null, base: IStringDictionary<string> | null): IMergeResult;
16
+ export declare function areSame(a: IStringDictionary<string>, b: IStringDictionary<string>): boolean;
@@ -0,0 +1,128 @@
1
+
2
+
3
+ function merge(local, remote, base) {
4
+ const localAdded = {};
5
+ const localUpdated = {};
6
+ const localRemoved = ( new Set());
7
+ if (!remote) {
8
+ return {
9
+ local: { added: localAdded, updated: localUpdated, removed: [...( localRemoved.values())] },
10
+ remote: { added: local, updated: {}, removed: [] },
11
+ conflicts: []
12
+ };
13
+ }
14
+ const localToRemote = compare(local, remote);
15
+ if (localToRemote.added.size === 0 && localToRemote.removed.size === 0 && localToRemote.updated.size === 0) {
16
+ return {
17
+ local: { added: localAdded, updated: localUpdated, removed: [...( localRemoved.values())] },
18
+ remote: { added: {}, updated: {}, removed: [] },
19
+ conflicts: []
20
+ };
21
+ }
22
+ const baseToLocal = compare(base, local);
23
+ const baseToRemote = compare(base, remote);
24
+ const remoteAdded = {};
25
+ const remoteUpdated = {};
26
+ const remoteRemoved = ( new Set());
27
+ const conflicts = ( new Set());
28
+ for (const key of ( baseToLocal.removed.values())) {
29
+ if (( baseToRemote.updated.has(key))) {
30
+ localAdded[key] = remote[key];
31
+ }
32
+ else {
33
+ remoteRemoved.add(key);
34
+ }
35
+ }
36
+ for (const key of ( baseToRemote.removed.values())) {
37
+ if (( conflicts.has(key))) {
38
+ continue;
39
+ }
40
+ if (( baseToLocal.updated.has(key))) {
41
+ conflicts.add(key);
42
+ }
43
+ else {
44
+ localRemoved.add(key);
45
+ }
46
+ }
47
+ for (const key of ( baseToLocal.updated.values())) {
48
+ if (( conflicts.has(key))) {
49
+ continue;
50
+ }
51
+ if (( baseToRemote.updated.has(key))) {
52
+ if (( localToRemote.updated.has(key))) {
53
+ conflicts.add(key);
54
+ }
55
+ }
56
+ else {
57
+ remoteUpdated[key] = local[key];
58
+ }
59
+ }
60
+ for (const key of ( baseToRemote.updated.values())) {
61
+ if (( conflicts.has(key))) {
62
+ continue;
63
+ }
64
+ if (( baseToLocal.updated.has(key))) {
65
+ if (( localToRemote.updated.has(key))) {
66
+ conflicts.add(key);
67
+ }
68
+ }
69
+ else if (local[key] !== undefined) {
70
+ localUpdated[key] = remote[key];
71
+ }
72
+ }
73
+ for (const key of ( baseToLocal.added.values())) {
74
+ if (( conflicts.has(key))) {
75
+ continue;
76
+ }
77
+ if (( baseToRemote.added.has(key))) {
78
+ if (( localToRemote.updated.has(key))) {
79
+ conflicts.add(key);
80
+ }
81
+ }
82
+ else {
83
+ remoteAdded[key] = local[key];
84
+ }
85
+ }
86
+ for (const key of ( baseToRemote.added.values())) {
87
+ if (( conflicts.has(key))) {
88
+ continue;
89
+ }
90
+ if (( baseToLocal.added.has(key))) {
91
+ if (( localToRemote.updated.has(key))) {
92
+ conflicts.add(key);
93
+ }
94
+ }
95
+ else {
96
+ localAdded[key] = remote[key];
97
+ }
98
+ }
99
+ return {
100
+ local: { added: localAdded, removed: [...( localRemoved.values())], updated: localUpdated },
101
+ remote: { added: remoteAdded, removed: [...( remoteRemoved.values())], updated: remoteUpdated },
102
+ conflicts: [...( conflicts.values())],
103
+ };
104
+ }
105
+ function compare(from, to) {
106
+ const fromKeys = from ? ( Object.keys(from)) : [];
107
+ const toKeys = to ? ( Object.keys(to)) : [];
108
+ const added = toKeys.filter(key => !fromKeys.includes(key)).reduce((r, key) => { r.add(key); return r; }, ( new Set()));
109
+ const removed = fromKeys.filter(key => !toKeys.includes(key)).reduce((r, key) => { r.add(key); return r; }, ( new Set()));
110
+ const updated = ( new Set());
111
+ for (const key of fromKeys) {
112
+ if (( removed.has(key))) {
113
+ continue;
114
+ }
115
+ const fromPrompt = from[key];
116
+ const toPrompt = to[key];
117
+ if (fromPrompt !== toPrompt) {
118
+ updated.add(key);
119
+ }
120
+ }
121
+ return { added, removed, updated };
122
+ }
123
+ function areSame(a, b) {
124
+ const { added, removed, updated } = compare(a, b);
125
+ return added.size === 0 && removed.size === 0 && updated.size === 0;
126
+ }
127
+
128
+ export { areSame, merge };
@@ -0,0 +1,43 @@
1
+ import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri";
2
+ import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service";
3
+ import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service";
4
+ import { IStringDictionary } from "@codingame/monaco-vscode-api/vscode/vs/base/common/collections";
5
+ import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation";
6
+ import { IUriIdentityService } from "@codingame/monaco-vscode-api/vscode/vs/platform/uriIdentity/common/uriIdentity.service";
7
+ import { IEnvironmentService } from "@codingame/monaco-vscode-api/vscode/vs/platform/environment/common/environment.service";
8
+ import { IUserDataProfile } from "@codingame/monaco-vscode-api/vscode/vs/platform/userDataProfile/common/userDataProfile";
9
+ import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service";
10
+ import { AbstractSynchroniser, IAcceptResult, IFileResourcePreview, IMergeResult } from "@codingame/monaco-vscode-a2719803-af40-5ae9-a29f-8a2231c33056-common/vscode/vs/platform/userDataSync/common/abstractSynchronizer";
11
+ import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service";
12
+ import { IRemoteUserData, ISyncData, IUserDataSynchroniser } from "@codingame/monaco-vscode-api/vscode/vs/platform/userDataSync/common/userDataSync";
13
+ import { IUserDataSyncLogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/userDataSync/common/userDataSync.service";
14
+ import { IUserDataSyncEnablementService } from "@codingame/monaco-vscode-api/vscode/vs/platform/userDataSync/common/userDataSync.service";
15
+ import { IUserDataSyncLocalStoreService } from "@codingame/monaco-vscode-api/vscode/vs/platform/userDataSync/common/userDataSync.service";
16
+ import { IUserDataSyncStoreService } from "@codingame/monaco-vscode-api/vscode/vs/platform/userDataSync/common/userDataSync.service";
17
+ interface IPromptsResourcePreview extends IFileResourcePreview {
18
+ previewResult: IMergeResult;
19
+ }
20
+ export declare function parsePrompts(syncData: ISyncData): IStringDictionary<string>;
21
+ export declare class PromptsSynchronizer extends AbstractSynchroniser implements IUserDataSynchroniser {
22
+ protected readonly version: number;
23
+ private readonly promptsFolder;
24
+ constructor(profile: IUserDataProfile, collection: string | undefined, environmentService: IEnvironmentService, fileService: IFileService, storageService: IStorageService, userDataSyncStoreService: IUserDataSyncStoreService, userDataSyncLocalStoreService: IUserDataSyncLocalStoreService, logService: IUserDataSyncLogService, configurationService: IConfigurationService, userDataSyncEnablementService: IUserDataSyncEnablementService, telemetryService: ITelemetryService, uriIdentityService: IUriIdentityService);
25
+ protected generateSyncPreview(remoteUserData: IRemoteUserData, lastSyncUserData: IRemoteUserData | null, isRemoteDataFromCurrentMachine: boolean): Promise<IPromptsResourcePreview[]>;
26
+ protected hasRemoteChanged(lastSyncUserData: IRemoteUserData): Promise<boolean>;
27
+ protected getMergeResult(resourcePreview: IPromptsResourcePreview, token: CancellationToken): Promise<IMergeResult>;
28
+ protected getAcceptResult(resourcePreview: IPromptsResourcePreview, resource: URI, content: string | null | undefined, token: CancellationToken): Promise<IAcceptResult>;
29
+ protected applyResult(remoteUserData: IRemoteUserData, lastSyncUserData: IRemoteUserData | null, resourcePreviews: [
30
+ IPromptsResourcePreview,
31
+ IAcceptResult
32
+ ][], force: boolean): Promise<void>;
33
+ private getResourcePreviews;
34
+ resolveContent(uri: URI): Promise<string | null>;
35
+ hasLocalData(): Promise<boolean>;
36
+ private updateLocalBackup;
37
+ private updateLocalPrompts;
38
+ private updateRemotePrompts;
39
+ private parsePrompts;
40
+ private toPromptContents;
41
+ private getPromptsFileContents;
42
+ }
43
+ export {};