asyar-sdk 1.16.2 → 2.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.
- package/README.md +95 -42
- package/dist/ExtensionBridge.d.ts +1 -1
- package/dist/ExtensionBridge.d.ts.map +1 -1
- package/dist/ExtensionBridge.js +17 -13
- package/dist/ExtensionBridge.js.map +1 -1
- package/dist/ExtensionBridge.test.js +76 -101
- package/dist/ExtensionBridge.test.js.map +1 -1
- package/dist/ExtensionContext.d.ts +22 -57
- package/dist/ExtensionContext.d.ts.map +1 -1
- package/dist/ExtensionContext.js +84 -207
- package/dist/ExtensionContext.js.map +1 -1
- package/dist/ExtensionContext.test.js +91 -66
- package/dist/ExtensionContext.test.js.map +1 -1
- package/dist/ExtensionContextCore.d.ts +46 -0
- package/dist/ExtensionContextCore.d.ts.map +1 -0
- package/dist/ExtensionContextCore.js +149 -0
- package/dist/ExtensionContextCore.js.map +1 -0
- package/dist/PreferencesFacade.js +4 -9
- package/dist/PreferencesFacade.js.map +1 -1
- package/dist/PreferencesFacade.test.js +53 -55
- package/dist/PreferencesFacade.test.js.map +1 -1
- package/dist/cli/commands/attach.js +1 -1
- package/dist/cli/commands/attach.js.map +1 -1
- package/dist/cli/commands/build.d.ts +5 -1
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +43 -5
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/lib/manifest.d.ts +17 -5
- package/dist/cli/lib/manifest.d.ts.map +1 -1
- package/dist/cli/lib/manifest.js +125 -66
- package/dist/cli/lib/manifest.js.map +1 -1
- package/dist/{index.d.ts → contracts.d.ts} +23 -1
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +36 -0
- package/dist/contracts.js.map +1 -0
- package/dist/contracts.purity.test.d.ts +2 -0
- package/dist/contracts.purity.test.d.ts.map +1 -0
- package/dist/contracts.purity.test.js +42 -0
- package/dist/contracts.purity.test.js.map +1 -0
- package/dist/icons/AsyarIconElement.js +4 -9
- package/dist/icons/AsyarIconElement.js.map +1 -1
- package/dist/icons/AsyarIconElement.test.js +14 -16
- package/dist/icons/AsyarIconElement.test.js.map +1 -1
- package/dist/icons/IconRenderer.js +9 -15
- package/dist/icons/IconRenderer.js.map +1 -1
- package/dist/icons/IconRenderer.test.js +63 -65
- package/dist/icons/IconRenderer.test.js.map +1 -1
- package/dist/icons/iconData.js +2 -5
- package/dist/icons/iconData.js.map +1 -1
- package/dist/icons/index.js +3 -14
- package/dist/icons/index.js.map +1 -1
- package/dist/ipc/MessageBroker.d.ts.map +1 -1
- package/dist/ipc/MessageBroker.js +33 -6
- package/dist/ipc/MessageBroker.js.map +1 -1
- package/dist/ipc/MessageBroker.test.js +26 -28
- package/dist/ipc/MessageBroker.test.js.map +1 -1
- package/dist/ipc/devInspectorBridge.d.ts +57 -0
- package/dist/ipc/devInspectorBridge.d.ts.map +1 -0
- package/dist/ipc/devInspectorBridge.js +70 -0
- package/dist/ipc/devInspectorBridge.js.map +1 -0
- package/dist/ipc/devInspectorBridge.test.d.ts +2 -0
- package/dist/ipc/devInspectorBridge.test.d.ts.map +1 -0
- package/dist/ipc/devInspectorBridge.test.js +128 -0
- package/dist/ipc/devInspectorBridge.test.js.map +1 -0
- package/dist/ipc/namespaces.d.ts +1 -1
- package/dist/ipc/namespaces.d.ts.map +1 -1
- package/dist/ipc/namespaces.js +4 -7
- package/dist/ipc/namespaces.js.map +1 -1
- package/dist/ipc/namespaces.test.js +11 -13
- package/dist/ipc/namespaces.test.js.map +1 -1
- package/dist/lib/focusTracker.js +1 -4
- package/dist/lib/focusTracker.js.map +1 -1
- package/dist/lib/focusTracker.test.js +32 -57
- package/dist/lib/focusTracker.test.js.map +1 -1
- package/dist/lib/syncProviderBridge.js +1 -4
- package/dist/lib/syncProviderBridge.js.map +1 -1
- package/dist/lib/syncProviderBridge.test.js +60 -85
- package/dist/lib/syncProviderBridge.test.js.map +1 -1
- package/dist/lib/themeInjector.js +3 -8
- package/dist/lib/themeInjector.js.map +1 -1
- package/dist/lib/themeInjector.test.js +42 -44
- package/dist/lib/themeInjector.test.js.map +1 -1
- package/dist/search/SearchEngine.js +3 -10
- package/dist/search/SearchEngine.js.map +1 -1
- package/dist/search/SearchEngine.test.js +53 -55
- package/dist/search/SearchEngine.test.js.map +1 -1
- package/dist/search/index.js +2 -8
- package/dist/search/index.js.map +1 -1
- package/dist/search/textUtils.js +2 -6
- package/dist/search/textUtils.js.map +1 -1
- package/dist/search/textUtils.test.js +73 -75
- package/dist/search/textUtils.test.js.map +1 -1
- package/dist/search/types.js +1 -2
- package/dist/services/AIServiceProxy.js +2 -6
- package/dist/services/AIServiceProxy.js.map +1 -1
- package/dist/services/AIServiceProxy.test.js +69 -71
- package/dist/services/AIServiceProxy.test.js.map +1 -1
- package/dist/services/ActionServiceProxy.d.ts.map +1 -1
- package/dist/services/ActionServiceProxy.js +14 -13
- package/dist/services/ActionServiceProxy.js.map +1 -1
- package/dist/services/ActionServiceProxy.test.js +28 -23
- package/dist/services/ActionServiceProxy.test.js.map +1 -1
- package/dist/services/ApplicationService.js +2 -6
- package/dist/services/ApplicationService.js.map +1 -1
- package/dist/services/ApplicationService.test.js +108 -110
- package/dist/services/ApplicationService.test.js.map +1 -1
- package/dist/services/BaseServiceProxy.js +3 -7
- package/dist/services/BaseServiceProxy.js.map +1 -1
- package/dist/services/CacheServiceProxy.js +2 -6
- package/dist/services/CacheServiceProxy.js.map +1 -1
- package/dist/services/CacheServiceProxy.test.js +21 -23
- package/dist/services/CacheServiceProxy.test.js.map +1 -1
- package/dist/services/ClipboardHistoryServiceProxy.js +6 -10
- package/dist/services/ClipboardHistoryServiceProxy.js.map +1 -1
- package/dist/services/ClipboardHistoryServiceProxy.test.js +106 -108
- package/dist/services/ClipboardHistoryServiceProxy.test.js.map +1 -1
- package/dist/services/CommandServiceProxy.js +7 -11
- package/dist/services/CommandServiceProxy.js.map +1 -1
- package/dist/services/CommandServiceProxy.test.js +37 -39
- package/dist/services/CommandServiceProxy.test.js.map +1 -1
- package/dist/services/EntitlementServiceProxy.js +2 -6
- package/dist/services/EntitlementServiceProxy.js.map +1 -1
- package/dist/services/EntitlementServiceProxy.test.js +16 -18
- package/dist/services/EntitlementServiceProxy.test.js.map +1 -1
- package/dist/services/ExtensionManagerProxy.js +2 -6
- package/dist/services/ExtensionManagerProxy.js.map +1 -1
- package/dist/services/ExtensionManagerProxy.test.js +42 -44
- package/dist/services/ExtensionManagerProxy.test.js.map +1 -1
- package/dist/services/ExtensionRpc.d.ts +90 -0
- package/dist/services/ExtensionRpc.d.ts.map +1 -0
- package/dist/services/ExtensionRpc.js +277 -0
- package/dist/services/ExtensionRpc.js.map +1 -0
- package/dist/services/ExtensionRpc.test.d.ts +2 -0
- package/dist/services/ExtensionRpc.test.d.ts.map +1 -0
- package/dist/services/ExtensionRpc.test.js +259 -0
- package/dist/services/ExtensionRpc.test.js.map +1 -0
- package/dist/services/ExtensionStateProxy.d.ts +44 -0
- package/dist/services/ExtensionStateProxy.d.ts.map +1 -0
- package/dist/services/ExtensionStateProxy.js +115 -0
- package/dist/services/ExtensionStateProxy.js.map +1 -0
- package/dist/services/ExtensionStateProxy.test.d.ts +2 -0
- package/dist/services/ExtensionStateProxy.test.d.ts.map +1 -0
- package/dist/services/ExtensionStateProxy.test.js +158 -0
- package/dist/services/ExtensionStateProxy.test.js.map +1 -0
- package/dist/services/FeedbackServiceProxy.js +2 -6
- package/dist/services/FeedbackServiceProxy.js.map +1 -1
- package/dist/services/FeedbackServiceProxy.test.js +31 -33
- package/dist/services/FeedbackServiceProxy.test.js.map +1 -1
- package/dist/services/FileManagerServiceProxy.js +2 -6
- package/dist/services/FileManagerServiceProxy.js.map +1 -1
- package/dist/services/FileManagerServiceProxy.test.js +21 -23
- package/dist/services/FileManagerServiceProxy.test.js.map +1 -1
- package/dist/services/FileSystemWatcherService.js +2 -6
- package/dist/services/FileSystemWatcherService.js.map +1 -1
- package/dist/services/FileSystemWatcherService.test.js +45 -47
- package/dist/services/FileSystemWatcherService.test.js.map +1 -1
- package/dist/services/IAIService.js +1 -2
- package/dist/services/ICacheService.js +1 -2
- package/dist/services/IClipboardHistoryService.js +1 -2
- package/dist/services/ICommandService.js +1 -2
- package/dist/services/IEntitlementService.js +1 -2
- package/dist/services/IExtensionManager.js +1 -2
- package/dist/services/IFeedbackService.js +1 -2
- package/dist/services/IFileManagerService.js +1 -2
- package/dist/services/IInteropService.js +1 -5
- package/dist/services/IInteropService.js.map +1 -1
- package/dist/services/INotificationService.js +1 -2
- package/dist/services/IOAuthService.js +1 -2
- package/dist/services/IPowerService.js +1 -2
- package/dist/services/IPreferencesService.js +1 -2
- package/dist/services/ISelectionService.js +1 -2
- package/dist/services/ISettingsService.js +1 -2
- package/dist/services/IShellService.js +1 -2
- package/dist/services/IStatusBarService.js +1 -2
- package/dist/services/IStorageService.js +1 -2
- package/dist/services/ISystemEventsService.js +1 -2
- package/dist/services/ISystemEventsService.js.map +1 -1
- package/dist/services/ITimerService.js +1 -2
- package/dist/services/InteropServiceProxy.js +2 -6
- package/dist/services/InteropServiceProxy.js.map +1 -1
- package/dist/services/InteropServiceProxy.test.js +19 -21
- package/dist/services/InteropServiceProxy.test.js.map +1 -1
- package/dist/services/LogService.js +1 -2
- package/dist/services/LogServiceProxy.js +2 -6
- package/dist/services/LogServiceProxy.js.map +1 -1
- package/dist/services/LogServiceProxy.test.js +43 -45
- package/dist/services/LogServiceProxy.test.js.map +1 -1
- package/dist/services/NetworkServiceProxy.js +2 -6
- package/dist/services/NetworkServiceProxy.js.map +1 -1
- package/dist/services/NetworkServiceProxy.test.js +20 -22
- package/dist/services/NetworkServiceProxy.test.js.map +1 -1
- package/dist/services/NotificationServiceProxy.js +2 -6
- package/dist/services/NotificationServiceProxy.js.map +1 -1
- package/dist/services/NotificationServiceProxy.test.js +39 -41
- package/dist/services/NotificationServiceProxy.test.js.map +1 -1
- package/dist/services/OAuthServiceProxy.js +2 -6
- package/dist/services/OAuthServiceProxy.js.map +1 -1
- package/dist/services/OAuthServiceProxy.test.js +42 -44
- package/dist/services/OAuthServiceProxy.test.js.map +1 -1
- package/dist/services/PowerServiceProxy.js +2 -6
- package/dist/services/PowerServiceProxy.js.map +1 -1
- package/dist/services/PowerServiceProxy.test.js +24 -26
- package/dist/services/PowerServiceProxy.test.js.map +1 -1
- package/dist/services/PreferencesServiceProxy.js +2 -6
- package/dist/services/PreferencesServiceProxy.js.map +1 -1
- package/dist/services/PreferencesServiceProxy.test.js +22 -24
- package/dist/services/PreferencesServiceProxy.test.js.map +1 -1
- package/dist/services/SelectionServiceProxy.js +2 -6
- package/dist/services/SelectionServiceProxy.js.map +1 -1
- package/dist/services/SelectionServiceProxy.test.js +20 -22
- package/dist/services/SelectionServiceProxy.test.js.map +1 -1
- package/dist/services/SettingsServiceProxy.js +2 -6
- package/dist/services/SettingsServiceProxy.js.map +1 -1
- package/dist/services/SettingsServiceProxy.test.js +18 -20
- package/dist/services/SettingsServiceProxy.test.js.map +1 -1
- package/dist/services/ShellServiceProxy.js +2 -6
- package/dist/services/ShellServiceProxy.js.map +1 -1
- package/dist/services/ShellServiceProxy.test.js +92 -94
- package/dist/services/ShellServiceProxy.test.js.map +1 -1
- package/dist/services/StatusBarServiceProxy.js +9 -13
- package/dist/services/StatusBarServiceProxy.js.map +1 -1
- package/dist/services/StatusBarServiceProxy.test.js +68 -70
- package/dist/services/StatusBarServiceProxy.test.js.map +1 -1
- package/dist/services/StorageServiceProxy.js +2 -6
- package/dist/services/StorageServiceProxy.js.map +1 -1
- package/dist/services/StorageServiceProxy.test.js +31 -33
- package/dist/services/StorageServiceProxy.test.js.map +1 -1
- package/dist/services/SystemEventsServiceProxy.js +2 -6
- package/dist/services/SystemEventsServiceProxy.js.map +1 -1
- package/dist/services/SystemEventsServiceProxy.test.js +50 -52
- package/dist/services/SystemEventsServiceProxy.test.js.map +1 -1
- package/dist/services/TimerServiceProxy.js +2 -6
- package/dist/services/TimerServiceProxy.js.map +1 -1
- package/dist/services/TimerServiceProxy.test.js +33 -35
- package/dist/services/TimerServiceProxy.test.js.map +1 -1
- package/dist/services/WindowManagementService.js +2 -6
- package/dist/services/WindowManagementService.js.map +1 -1
- package/dist/services/WindowManagementService.test.js +23 -25
- package/dist/services/WindowManagementService.test.js.map +1 -1
- package/dist/services/index.js +36 -76
- package/dist/services/index.js.map +1 -1
- package/dist/services/statusBarValidation.js +7 -14
- package/dist/services/statusBarValidation.js.map +1 -1
- package/dist/types/ActionType.js +3 -6
- package/dist/types/ActionType.js.map +1 -1
- package/dist/types/ApplicationType.js +1 -2
- package/dist/types/ClipboardType.js +2 -5
- package/dist/types/ClipboardType.js.map +1 -1
- package/dist/types/CommandType.js +1 -2
- package/dist/types/ExtensionType.d.ts +40 -5
- package/dist/types/ExtensionType.d.ts.map +1 -1
- package/dist/types/ExtensionType.js +1 -2
- package/dist/types/NetworkType.js +1 -2
- package/dist/types/NotificationType.js +1 -2
- package/dist/types/SyncType.js +1 -2
- package/dist/types/index.js +2 -18
- package/dist/types/index.js.map +1 -1
- package/dist/view.d.ts +12 -0
- package/dist/view.d.ts.map +1 -0
- package/dist/view.js +19 -0
- package/dist/view.js.map +1 -0
- package/dist/view.test.d.ts +2 -0
- package/dist/view.test.d.ts.map +1 -0
- package/dist/view.test.js +114 -0
- package/dist/view.test.js.map +1 -0
- package/dist/worker.bundle-size.test.d.ts +2 -0
- package/dist/worker.bundle-size.test.d.ts.map +1 -0
- package/dist/worker.bundle-size.test.js +96 -0
- package/dist/worker.bundle-size.test.js.map +1 -0
- package/dist/worker.d.ts +37 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +122 -0
- package/dist/worker.js.map +1 -0
- package/dist/worker.test.d.ts +2 -0
- package/dist/worker.test.d.ts.map +1 -0
- package/dist/worker.test.js +136 -0
- package/dist/worker.test.js.map +1 -0
- package/package.json +12 -4
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -47
- package/dist/index.js.map +0 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,97 +7,96 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
8
|
});
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
messageBroker: { invoke: vitest_1.vi.fn().mockResolvedValue(undefined), on: vitest_1.vi.fn(), off: vitest_1.vi.fn() },
|
|
10
|
+
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
11
|
+
import { messageBroker } from '../ipc/MessageBroker';
|
|
12
|
+
vi.mock('../ipc/MessageBroker', () => ({
|
|
13
|
+
messageBroker: { invoke: vi.fn().mockResolvedValue(undefined), on: vi.fn(), off: vi.fn() },
|
|
16
14
|
}));
|
|
17
|
-
|
|
15
|
+
import { CommandServiceProxy } from './CommandServiceProxy';
|
|
18
16
|
// setExtensionId patches broker.invoke so it forwards extensionId as the 3rd
|
|
19
17
|
// argument: originalInvoke(cmd, payload, extensionId, timeoutMs).
|
|
20
18
|
// Tests destructure mock.calls[0] to assert only cmd and payload.
|
|
21
19
|
function makeProxy() {
|
|
22
|
-
const mockInvoke =
|
|
23
|
-
Object.assign(
|
|
24
|
-
invoke: mockInvoke, on:
|
|
20
|
+
const mockInvoke = vi.fn().mockResolvedValue(undefined);
|
|
21
|
+
Object.assign(messageBroker, {
|
|
22
|
+
invoke: mockInvoke, on: vi.fn(), off: vi.fn(),
|
|
25
23
|
});
|
|
26
|
-
const proxy = new
|
|
24
|
+
const proxy = new CommandServiceProxy();
|
|
27
25
|
proxy.setExtensionId('com.example.ext');
|
|
28
26
|
return { proxy, mockInvoke };
|
|
29
27
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
describe('CommandServiceProxy.updateCommandMetadata', () => {
|
|
29
|
+
beforeEach(() => {
|
|
30
|
+
vi.clearAllMocks();
|
|
33
31
|
});
|
|
34
|
-
|
|
32
|
+
it('invokes commands:updateCommandMetadata with extensionId, commandId, and subtitle string', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
35
33
|
const { proxy, mockInvoke } = makeProxy();
|
|
36
34
|
mockInvoke.mockResolvedValueOnce(undefined);
|
|
37
35
|
yield proxy.updateCommandMetadata('myCommand', { subtitle: 'Hello World' });
|
|
38
36
|
const [cmd, payload] = mockInvoke.mock.calls[0];
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
expect(cmd).toBe('commands:updateCommandMetadata');
|
|
38
|
+
expect(payload).toEqual({ extensionId: 'com.example.ext', commandId: 'myCommand', subtitle: 'Hello World' });
|
|
41
39
|
}));
|
|
42
|
-
|
|
40
|
+
it('sends null subtitle when metadata.subtitle is undefined', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
43
41
|
const { proxy, mockInvoke } = makeProxy();
|
|
44
42
|
mockInvoke.mockResolvedValueOnce(undefined);
|
|
45
43
|
yield proxy.updateCommandMetadata('myCommand', {});
|
|
46
44
|
const [cmd, payload] = mockInvoke.mock.calls[0];
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
expect(cmd).toBe('commands:updateCommandMetadata');
|
|
46
|
+
expect(payload).toEqual({ extensionId: 'com.example.ext', commandId: 'myCommand', subtitle: null });
|
|
49
47
|
}));
|
|
50
|
-
|
|
48
|
+
it('sends null subtitle when metadata.subtitle is explicitly undefined', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
51
49
|
const { proxy, mockInvoke } = makeProxy();
|
|
52
50
|
mockInvoke.mockResolvedValueOnce(undefined);
|
|
53
51
|
yield proxy.updateCommandMetadata('myCommand', { subtitle: undefined });
|
|
54
52
|
const [cmd, payload] = mockInvoke.mock.calls[0];
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
expect(cmd).toBe('commands:updateCommandMetadata');
|
|
54
|
+
expect(payload).toEqual({ extensionId: 'com.example.ext', commandId: 'myCommand', subtitle: null });
|
|
57
55
|
}));
|
|
58
|
-
|
|
56
|
+
it('resolves when broker resolves', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
59
57
|
const { proxy, mockInvoke } = makeProxy();
|
|
60
58
|
mockInvoke.mockResolvedValueOnce(undefined);
|
|
61
|
-
yield
|
|
59
|
+
yield expect(proxy.updateCommandMetadata('cmd', { subtitle: 'x' })).resolves.toBeUndefined();
|
|
62
60
|
}));
|
|
63
|
-
|
|
61
|
+
it('rejects when broker rejects', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
64
62
|
const { proxy, mockInvoke } = makeProxy();
|
|
65
63
|
mockInvoke.mockRejectedValueOnce(new Error('IPC error'));
|
|
66
|
-
yield
|
|
64
|
+
yield expect(proxy.updateCommandMetadata('cmd', { subtitle: 'x' })).rejects.toThrow('IPC error');
|
|
67
65
|
}));
|
|
68
66
|
});
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
67
|
+
describe('CommandServiceProxy canonical namespace', () => {
|
|
68
|
+
beforeEach(() => vi.clearAllMocks());
|
|
69
|
+
it('executeCommand → "commands:executeCommand"', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
72
70
|
const { proxy, mockInvoke } = makeProxy();
|
|
73
71
|
mockInvoke.mockResolvedValue(undefined);
|
|
74
72
|
yield proxy.executeCommand('cmd-1', {});
|
|
75
73
|
const call = mockInvoke.mock.calls.find(c => c[0] === 'commands:executeCommand');
|
|
76
|
-
|
|
74
|
+
expect(call).toBeDefined();
|
|
77
75
|
}));
|
|
78
|
-
|
|
76
|
+
it('registerCommand → "commands:registerCommand"', () => {
|
|
79
77
|
const { proxy, mockInvoke } = makeProxy();
|
|
80
78
|
proxy.registerCommand('cmd-1', { execute: () => { } }, 'ext-1', []);
|
|
81
79
|
const call = mockInvoke.mock.calls.find(c => c[0] === 'commands:registerCommand');
|
|
82
|
-
|
|
80
|
+
expect(call).toBeDefined();
|
|
83
81
|
});
|
|
84
|
-
|
|
82
|
+
it('unregisterCommand → "commands:unregisterCommand"', () => {
|
|
85
83
|
const { proxy, mockInvoke } = makeProxy();
|
|
86
84
|
proxy.unregisterCommand('cmd-1');
|
|
87
85
|
const call = mockInvoke.mock.calls.find(c => c[0] === 'commands:unregisterCommand');
|
|
88
|
-
|
|
86
|
+
expect(call).toBeDefined();
|
|
89
87
|
});
|
|
90
|
-
|
|
88
|
+
it('clearCommandsForExtension → "commands:clearCommandsForExtension"', () => {
|
|
91
89
|
const { proxy, mockInvoke } = makeProxy();
|
|
92
90
|
proxy.clearCommandsForExtension('ext-1');
|
|
93
91
|
const call = mockInvoke.mock.calls.find(c => c[0] === 'commands:clearCommandsForExtension');
|
|
94
|
-
|
|
92
|
+
expect(call).toBeDefined();
|
|
95
93
|
});
|
|
96
|
-
|
|
94
|
+
it('updateCommandMetadata → "commands:updateCommandMetadata"', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
97
95
|
const { proxy, mockInvoke } = makeProxy();
|
|
98
96
|
mockInvoke.mockResolvedValue(undefined);
|
|
99
97
|
yield proxy.updateCommandMetadata('cmd-1', {});
|
|
100
98
|
const call = mockInvoke.mock.calls.find(c => c[0] === 'commands:updateCommandMetadata');
|
|
101
|
-
|
|
99
|
+
expect(call).toBeDefined();
|
|
102
100
|
}));
|
|
103
101
|
});
|
|
104
102
|
//# sourceMappingURL=CommandServiceProxy.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandServiceProxy.test.js","sourceRoot":"","sources":["../../src/services/CommandServiceProxy.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CommandServiceProxy.test.js","sourceRoot":"","sources":["../../src/services/CommandServiceProxy.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,10 +7,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
8
|
});
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const BaseServiceProxy_1 = require("./BaseServiceProxy");
|
|
14
|
-
class EntitlementServiceProxy extends BaseServiceProxy_1.BaseServiceProxy {
|
|
10
|
+
import { BaseServiceProxy } from './BaseServiceProxy';
|
|
11
|
+
export class EntitlementServiceProxy extends BaseServiceProxy {
|
|
15
12
|
check(entitlement) {
|
|
16
13
|
return __awaiter(this, void 0, void 0, function* () {
|
|
17
14
|
return this.broker.invoke('entitlements:check', { entitlement });
|
|
@@ -23,5 +20,4 @@ class EntitlementServiceProxy extends BaseServiceProxy_1.BaseServiceProxy {
|
|
|
23
20
|
});
|
|
24
21
|
}
|
|
25
22
|
}
|
|
26
|
-
exports.EntitlementServiceProxy = EntitlementServiceProxy;
|
|
27
23
|
//# sourceMappingURL=EntitlementServiceProxy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntitlementServiceProxy.js","sourceRoot":"","sources":["../../src/services/EntitlementServiceProxy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EntitlementServiceProxy.js","sourceRoot":"","sources":["../../src/services/EntitlementServiceProxy.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,OAAO,uBAAwB,SAAQ,gBAAgB;IACrD,KAAK,CAAC,WAAmB;;YAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAU,oBAAoB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAC5E,CAAC;KAAA;IAEK,MAAM;;YACV,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAW,qBAAqB,CAAC,CAAC;QAC7D,CAAC;KAAA;CACF"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,36 +7,35 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
8
|
});
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
messageBroker: { invoke: vitest_1.vi.fn(), on: vitest_1.vi.fn(), off: vitest_1.vi.fn() },
|
|
10
|
+
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
11
|
+
import { EntitlementServiceProxy } from './EntitlementServiceProxy';
|
|
12
|
+
import { messageBroker } from '../ipc/MessageBroker';
|
|
13
|
+
vi.mock('../ipc/MessageBroker', () => ({
|
|
14
|
+
messageBroker: { invoke: vi.fn(), on: vi.fn(), off: vi.fn() },
|
|
17
15
|
}));
|
|
18
16
|
function makeProxy() {
|
|
19
|
-
const mockInvoke =
|
|
20
|
-
Object.assign(
|
|
21
|
-
invoke: mockInvoke, on:
|
|
17
|
+
const mockInvoke = vi.fn().mockResolvedValue(undefined);
|
|
18
|
+
Object.assign(messageBroker, {
|
|
19
|
+
invoke: mockInvoke, on: vi.fn(), off: vi.fn(),
|
|
22
20
|
});
|
|
23
|
-
const proxy = new
|
|
21
|
+
const proxy = new EntitlementServiceProxy();
|
|
24
22
|
proxy.setExtensionId('ext.test');
|
|
25
23
|
return { proxy, mockInvoke };
|
|
26
24
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
describe('EntitlementServiceProxy', () => {
|
|
26
|
+
beforeEach(() => vi.clearAllMocks());
|
|
27
|
+
it('check → "entitlements:check"', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
30
28
|
const { proxy, mockInvoke } = makeProxy();
|
|
31
29
|
mockInvoke.mockResolvedValue(true);
|
|
32
30
|
yield proxy.check('pro');
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
expect(mockInvoke.mock.calls[0][0]).toBe('entitlements:check');
|
|
32
|
+
expect(mockInvoke.mock.calls[0][1]).toMatchObject({ entitlement: 'pro' });
|
|
35
33
|
}));
|
|
36
|
-
|
|
34
|
+
it('getAll → "entitlements:getAll"', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
37
35
|
const { proxy, mockInvoke } = makeProxy();
|
|
38
36
|
mockInvoke.mockResolvedValue([]);
|
|
39
37
|
yield proxy.getAll();
|
|
40
|
-
|
|
38
|
+
expect(mockInvoke.mock.calls[0][0]).toBe('entitlements:getAll');
|
|
41
39
|
}));
|
|
42
40
|
});
|
|
43
41
|
//# sourceMappingURL=EntitlementServiceProxy.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntitlementServiceProxy.test.js","sourceRoot":"","sources":["../../src/services/EntitlementServiceProxy.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EntitlementServiceProxy.test.js","sourceRoot":"","sources":["../../src/services/EntitlementServiceProxy.test.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;CAC9D,CAAC,CAAC,CAAC;AAEJ,SAAS,SAAS;IAChB,MAAM,UAAU,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE;QAC3B,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;KAC9C,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,IAAI,uBAAuB,EAAE,CAAC;IAC5C,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACjC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC/B,CAAC;AAED,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;IAErC,EAAE,CAAC,8BAA8B,EAAE,GAAS,EAAE;QAC5C,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,EAAE,CAAC;QAC1C,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC/D,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAA,CAAC,CAAC;IACH,EAAE,CAAC,gCAAgC,EAAE,GAAS,EAAE;QAC9C,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,SAAS,EAAE,CAAC;QAC1C,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACjC,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClE,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.ExtensionManagerProxy = void 0;
|
|
4
|
-
const BaseServiceProxy_1 = require("./BaseServiceProxy");
|
|
5
|
-
class ExtensionManagerProxy extends BaseServiceProxy_1.BaseServiceProxy {
|
|
1
|
+
import { BaseServiceProxy } from "./BaseServiceProxy";
|
|
2
|
+
export class ExtensionManagerProxy extends BaseServiceProxy {
|
|
6
3
|
constructor() {
|
|
7
4
|
super(...arguments);
|
|
8
5
|
this._currentExtension = null;
|
|
@@ -64,5 +61,4 @@ class ExtensionManagerProxy extends BaseServiceProxy_1.BaseServiceProxy {
|
|
|
64
61
|
this.broker.invoke('extensions:setActiveViewSubtitle', { subtitle }).catch(err => console.warn('[ExtensionManagerProxy] setActiveViewSubtitle failed:', err));
|
|
65
62
|
}
|
|
66
63
|
}
|
|
67
|
-
exports.ExtensionManagerProxy = ExtensionManagerProxy;
|
|
68
64
|
//# sourceMappingURL=ExtensionManagerProxy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtensionManagerProxy.js","sourceRoot":"","sources":["../../src/services/ExtensionManagerProxy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ExtensionManagerProxy.js","sourceRoot":"","sources":["../../src/services/ExtensionManagerProxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,121 +7,120 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
8
|
});
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
messageBroker: { invoke: vitest_1.vi.fn(), on: vitest_1.vi.fn(), off: vitest_1.vi.fn() },
|
|
10
|
+
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
11
|
+
vi.mock('../ipc/MessageBroker', () => ({
|
|
12
|
+
messageBroker: { invoke: vi.fn(), on: vi.fn(), off: vi.fn() },
|
|
15
13
|
}));
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
import { ExtensionManagerProxy } from './ExtensionManagerProxy';
|
|
15
|
+
import { messageBroker } from '../ipc/MessageBroker';
|
|
18
16
|
function makeProxy() {
|
|
19
|
-
const mockInvoke =
|
|
20
|
-
Object.assign(
|
|
17
|
+
const mockInvoke = vi.fn().mockResolvedValue(undefined);
|
|
18
|
+
Object.assign(messageBroker, {
|
|
21
19
|
invoke: mockInvoke,
|
|
22
|
-
on:
|
|
23
|
-
off:
|
|
20
|
+
on: vi.fn(),
|
|
21
|
+
off: vi.fn(),
|
|
24
22
|
});
|
|
25
|
-
const proxy = new
|
|
23
|
+
const proxy = new ExtensionManagerProxy();
|
|
26
24
|
proxy.setExtensionId('ext.test');
|
|
27
25
|
return { proxy, mockInvoke };
|
|
28
26
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
describe('ExtensionManagerProxy', () => {
|
|
28
|
+
beforeEach(() => vi.clearAllMocks());
|
|
29
|
+
it('init → "extensions:init"', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
32
30
|
const { proxy, mockInvoke } = makeProxy();
|
|
33
31
|
mockInvoke.mockResolvedValue(true);
|
|
34
32
|
yield proxy.init();
|
|
35
33
|
const call = mockInvoke.mock.calls.find(c => c[0] === 'extensions:init');
|
|
36
|
-
|
|
34
|
+
expect(call).toBeDefined();
|
|
37
35
|
}));
|
|
38
|
-
|
|
36
|
+
it('loadExtensions → "extensions:loadExtensions"', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
39
37
|
const { proxy, mockInvoke } = makeProxy();
|
|
40
38
|
yield proxy.loadExtensions();
|
|
41
39
|
const call = mockInvoke.mock.calls.find(c => c[0] === 'extensions:loadExtensions');
|
|
42
|
-
|
|
40
|
+
expect(call).toBeDefined();
|
|
43
41
|
}));
|
|
44
|
-
|
|
42
|
+
it('reloadExtensions → "extensions:reloadExtensions"', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
45
43
|
const { proxy, mockInvoke } = makeProxy();
|
|
46
44
|
yield proxy.reloadExtensions();
|
|
47
45
|
const call = mockInvoke.mock.calls.find(c => c[0] === 'extensions:reloadExtensions');
|
|
48
|
-
|
|
46
|
+
expect(call).toBeDefined();
|
|
49
47
|
}));
|
|
50
|
-
|
|
48
|
+
it('toggleExtensionState → "extensions:toggleExtensionState"', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
51
49
|
const { proxy, mockInvoke } = makeProxy();
|
|
52
50
|
mockInvoke.mockResolvedValue(true);
|
|
53
51
|
yield proxy.toggleExtensionState('ext.a', true);
|
|
54
52
|
const call = mockInvoke.mock.calls.find(c => c[0] === 'extensions:toggleExtensionState');
|
|
55
|
-
|
|
53
|
+
expect(call).toBeDefined();
|
|
56
54
|
}));
|
|
57
|
-
|
|
55
|
+
it('getAllExtensionsWithState → "extensions:getAllExtensionsWithState"', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
58
56
|
const { proxy, mockInvoke } = makeProxy();
|
|
59
57
|
mockInvoke.mockResolvedValue([]);
|
|
60
58
|
yield proxy.getAllExtensionsWithState();
|
|
61
59
|
const call = mockInvoke.mock.calls.find(c => c[0] === 'extensions:getAllExtensionsWithState');
|
|
62
|
-
|
|
60
|
+
expect(call).toBeDefined();
|
|
63
61
|
}));
|
|
64
|
-
|
|
62
|
+
it('searchAll → "extensions:searchAll"', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
65
63
|
const { proxy, mockInvoke } = makeProxy();
|
|
66
64
|
mockInvoke.mockResolvedValue([]);
|
|
67
65
|
yield proxy.searchAll('q');
|
|
68
66
|
const call = mockInvoke.mock.calls.find(c => c[0] === 'extensions:searchAll');
|
|
69
|
-
|
|
67
|
+
expect(call).toBeDefined();
|
|
70
68
|
}));
|
|
71
|
-
|
|
69
|
+
it('handleViewSearch → "extensions:handleViewSearch"', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
72
70
|
const { proxy, mockInvoke } = makeProxy();
|
|
73
71
|
yield proxy.handleViewSearch('q');
|
|
74
72
|
const call = mockInvoke.mock.calls.find(c => c[0] === 'extensions:handleViewSearch');
|
|
75
|
-
|
|
73
|
+
expect(call).toBeDefined();
|
|
76
74
|
}));
|
|
77
|
-
|
|
75
|
+
it('handleViewSubmit → "extensions:handleViewSubmit"', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
78
76
|
const { proxy, mockInvoke } = makeProxy();
|
|
79
77
|
yield proxy.handleViewSubmit('q');
|
|
80
78
|
const call = mockInvoke.mock.calls.find(c => c[0] === 'extensions:handleViewSubmit');
|
|
81
|
-
|
|
79
|
+
expect(call).toBeDefined();
|
|
82
80
|
}));
|
|
83
|
-
|
|
81
|
+
it('navigateToView → "extensions:navigateToView"', () => {
|
|
84
82
|
const { proxy, mockInvoke } = makeProxy();
|
|
85
83
|
proxy.navigateToView('ext/Default');
|
|
86
84
|
const call = mockInvoke.mock.calls.find(c => c[0] === 'extensions:navigateToView');
|
|
87
|
-
|
|
85
|
+
expect(call).toBeDefined();
|
|
88
86
|
});
|
|
89
|
-
|
|
87
|
+
it('goBack → "extensions:goBack"', () => {
|
|
90
88
|
const { proxy, mockInvoke } = makeProxy();
|
|
91
89
|
proxy.goBack();
|
|
92
90
|
const call = mockInvoke.mock.calls.find(c => c[0] === 'extensions:goBack');
|
|
93
|
-
|
|
91
|
+
expect(call).toBeDefined();
|
|
94
92
|
});
|
|
95
|
-
|
|
93
|
+
it('forwardKeyToActiveView → "extensions:forwardKeyToActiveView"', () => {
|
|
96
94
|
const { proxy, mockInvoke } = makeProxy();
|
|
97
95
|
proxy.forwardKeyToActiveView({ key: 'Enter', shiftKey: false, ctrlKey: false, metaKey: false, altKey: false });
|
|
98
96
|
const call = mockInvoke.mock.calls.find(c => c[0] === 'extensions:forwardKeyToActiveView');
|
|
99
|
-
|
|
97
|
+
expect(call).toBeDefined();
|
|
100
98
|
});
|
|
101
|
-
|
|
99
|
+
it('getAllExtensions → "extensions:getAllExtensions"', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
102
100
|
const { proxy, mockInvoke } = makeProxy();
|
|
103
101
|
mockInvoke.mockResolvedValue([]);
|
|
104
102
|
yield proxy.getAllExtensions();
|
|
105
103
|
const call = mockInvoke.mock.calls.find(c => c[0] === 'extensions:getAllExtensions');
|
|
106
|
-
|
|
104
|
+
expect(call).toBeDefined();
|
|
107
105
|
}));
|
|
108
|
-
|
|
106
|
+
it('uninstallExtension → "extensions:uninstallExtension"', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
109
107
|
const { proxy, mockInvoke } = makeProxy();
|
|
110
108
|
mockInvoke.mockResolvedValue(true);
|
|
111
109
|
yield proxy.uninstallExtension('ext.a', 'Ext A');
|
|
112
110
|
const call = mockInvoke.mock.calls.find(c => c[0] === 'extensions:uninstallExtension');
|
|
113
|
-
|
|
111
|
+
expect(call).toBeDefined();
|
|
114
112
|
}));
|
|
115
|
-
|
|
113
|
+
it('setActiveViewActionLabel → "extensions:setActiveViewActionLabel"', () => {
|
|
116
114
|
const { proxy, mockInvoke } = makeProxy();
|
|
117
115
|
proxy.setActiveViewActionLabel('Go');
|
|
118
116
|
const call = mockInvoke.mock.calls.find(c => c[0] === 'extensions:setActiveViewActionLabel');
|
|
119
|
-
|
|
117
|
+
expect(call).toBeDefined();
|
|
120
118
|
});
|
|
121
|
-
|
|
119
|
+
it('setActiveViewSubtitle → "extensions:setActiveViewSubtitle"', () => {
|
|
122
120
|
const { proxy, mockInvoke } = makeProxy();
|
|
123
121
|
proxy.setActiveViewSubtitle('Subtitle');
|
|
124
122
|
const call = mockInvoke.mock.calls.find(c => c[0] === 'extensions:setActiveViewSubtitle');
|
|
125
|
-
|
|
123
|
+
expect(call).toBeDefined();
|
|
126
124
|
});
|
|
127
125
|
});
|
|
128
126
|
//# sourceMappingURL=ExtensionManagerProxy.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtensionManagerProxy.test.js","sourceRoot":"","sources":["../../src/services/ExtensionManagerProxy.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ExtensionManagerProxy.test.js","sourceRoot":"","sources":["../../src/services/ExtensionManagerProxy.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { BaseServiceProxy } from './BaseServiceProxy';
|
|
2
|
+
/**
|
|
3
|
+
* View → worker RPC primitive.
|
|
4
|
+
*
|
|
5
|
+
* The view issues `request(id, payload, { timeoutMs })` and awaits a reply
|
|
6
|
+
* matched by correlation id. The launcher relays the request via the worker
|
|
7
|
+
* mailbox (so it survives Dormant/Mounting) and the reply via a broadcast
|
|
8
|
+
* `asyar:event:state:rpc-reply:push`.
|
|
9
|
+
*
|
|
10
|
+
* The worker registers `onRequest(id, handler)`; the SDK inspects every
|
|
11
|
+
* incoming action payload for the `__rpc__` discriminator and routes:
|
|
12
|
+
* - `__rpc__: "request"` → invoke handler, forward result/error via
|
|
13
|
+
* `state:rpcReply`.
|
|
14
|
+
* - `__rpc__: "abort"` → fire the in-flight handler's AbortSignal.
|
|
15
|
+
*
|
|
16
|
+
* Handlers that ignore the signal still produce a detectable leak: the
|
|
17
|
+
* reply arrives after the view has settled (timeout/unmount), view-side
|
|
18
|
+
* drops it silently at `debug` log level. Document this in handler JSDoc so
|
|
19
|
+
* extension authors know the invariant.
|
|
20
|
+
*/
|
|
21
|
+
type AnyPayload = unknown;
|
|
22
|
+
type ViewRequestHandler = (payload: AnyPayload, signal: AbortSignal) => Promise<AnyPayload>;
|
|
23
|
+
export declare class ExtensionRpc extends BaseServiceProxy {
|
|
24
|
+
private pending;
|
|
25
|
+
private viewListenerInstalled;
|
|
26
|
+
private pagehideInstalled;
|
|
27
|
+
private handlers;
|
|
28
|
+
private inFlight;
|
|
29
|
+
/**
|
|
30
|
+
* Send a request to this extension's worker. Resolves with the worker's
|
|
31
|
+
* return value; rejects on worker-side throw, on host RPC error, or on
|
|
32
|
+
* timeout (default 5000 ms, overridable via `opts.timeoutMs`).
|
|
33
|
+
*
|
|
34
|
+
* Generates a correlation id, enqueues via `state:rpcRequest`, stores a
|
|
35
|
+
* pending-reply entry keyed by the id, starts a timer. Reply arrival
|
|
36
|
+
* (via `asyar:event:state:rpc-reply:push`) resolves/rejects the entry
|
|
37
|
+
* and cancels the timer. Timeout rejects, fires `state:rpcAbort` so the
|
|
38
|
+
* worker handler's AbortSignal trips, and removes the entry so a stale
|
|
39
|
+
* reply is silently dropped.
|
|
40
|
+
*/
|
|
41
|
+
request(id: string, payload: AnyPayload, opts?: {
|
|
42
|
+
timeoutMs?: number;
|
|
43
|
+
}): Promise<AnyPayload>;
|
|
44
|
+
/**
|
|
45
|
+
* Install the view-side `asyar:event:state:rpc-reply:push` listener.
|
|
46
|
+
* Idempotent. Callers: the view-entry factory.
|
|
47
|
+
*/
|
|
48
|
+
installViewMessageListener(): void;
|
|
49
|
+
/**
|
|
50
|
+
* Install a `pagehide` listener that drops every pending reply so the
|
|
51
|
+
* next view mount sees no zombie state. Stale replies arriving post-
|
|
52
|
+
* pagehide are dropped silently.
|
|
53
|
+
*/
|
|
54
|
+
installViewAutoCleanup(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Clear every pending-reply entry. Exposed (not private) so tests can
|
|
57
|
+
* trigger the same cleanup pagehide would run.
|
|
58
|
+
*/
|
|
59
|
+
disposeAllPending(): void;
|
|
60
|
+
private ensureViewListener;
|
|
61
|
+
private generateCorrelationId;
|
|
62
|
+
/**
|
|
63
|
+
* Register a handler for `id`. Overwrites any previous handler for the
|
|
64
|
+
* same id; extensions that need fan-out can branch inside the handler.
|
|
65
|
+
*/
|
|
66
|
+
onRequest(id: string, handler: ViewRequestHandler): () => void;
|
|
67
|
+
/**
|
|
68
|
+
* Install the worker-side delivery shim. This method exists so tests can
|
|
69
|
+
* trigger the listener installation explicitly; the worker entry-point
|
|
70
|
+
* factory calls it once at bootstrap.
|
|
71
|
+
*
|
|
72
|
+
* The SDK inspects every `asyar:action:execute` message for a top-level
|
|
73
|
+
* `__rpc__` discriminator and routes RPC envelopes here. The glue lives
|
|
74
|
+
* in the worker entry factory (it has the `window` handle). This class
|
|
75
|
+
* only exposes [`deliverActionPayload`] so the factory can feed one
|
|
76
|
+
* payload at a time.
|
|
77
|
+
*/
|
|
78
|
+
installWorkerMessageListener(): void;
|
|
79
|
+
/**
|
|
80
|
+
* Test + factory entry: hand one `asyar:action:execute` payload to the
|
|
81
|
+
* RPC dispatcher. Non-RPC payloads are ignored (the factory should not
|
|
82
|
+
* call this for those; tests do).
|
|
83
|
+
*/
|
|
84
|
+
deliverActionPayload(payload: unknown): void;
|
|
85
|
+
private dispatchRequest;
|
|
86
|
+
private dispatchAbort;
|
|
87
|
+
}
|
|
88
|
+
export declare const extensionRpc: ExtensionRpc;
|
|
89
|
+
export {};
|
|
90
|
+
//# sourceMappingURL=ExtensionRpc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtensionRpc.d.ts","sourceRoot":"","sources":["../../src/services/ExtensionRpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;;;;;;;;;;;;;;;;;GAkBG;AAEH,KAAK,UAAU,GAAG,OAAO,CAAC;AAE1B,KAAK,kBAAkB,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAoB5F,qBAAa,YAAa,SAAQ,gBAAgB;IAEhD,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,iBAAiB,CAAS;IAGlC,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,QAAQ,CAAsC;IAItD;;;;;;;;;;;OAWG;IACG,OAAO,CACX,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,UAAU,EACnB,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5B,OAAO,CAAC,UAAU,CAAC;IAwEtB;;;OAGG;IACH,0BAA0B,IAAI,IAAI;IAIlC;;;;OAIG;IACH,sBAAsB,IAAI,IAAI;IAO9B;;;OAGG;IACH,iBAAiB,IAAI,IAAI;IAQzB,OAAO,CAAC,kBAAkB;IA2C1B,OAAO,CAAC,qBAAqB;IAY7B;;;OAGG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAO9D;;;;;;;;;;OAUG;IACH,4BAA4B,IAAI,IAAI;IAMpC;;;;OAIG;IACH,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAiB5C,OAAO,CAAC,eAAe;IA+BvB,OAAO,CAAC,aAAa;CAMtB;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
|