asyar-sdk 1.17.1 → 2.1.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 +82 -205
- 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} +25 -2
- 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 +5 -7
- package/dist/ipc/namespaces.js.map +1 -1
- package/dist/ipc/namespaces.test.js +11 -12
- 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.d.ts +70 -0
- package/dist/services/FileSystemWatcherService.d.ts.map +1 -0
- package/dist/services/FileSystemWatcherService.js +87 -0
- package/dist/services/FileSystemWatcherService.js.map +1 -0
- package/dist/services/FileSystemWatcherService.test.d.ts +2 -0
- package/dist/services/FileSystemWatcherService.test.d.ts.map +1 -0
- package/dist/services/FileSystemWatcherService.test.js +159 -0
- package/dist/services/FileSystemWatcherService.test.js.map +1 -0
- 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.d.ts +2 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +36 -74
- 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 +118 -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 +124 -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 +137 -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 -45
- package/dist/index.js.map +0 -1
|
@@ -1,27 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
1
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
2
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
3
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -31,42 +7,41 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
31
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
8
|
});
|
|
33
9
|
};
|
|
34
|
-
|
|
35
|
-
const vitest_1 = require("vitest");
|
|
10
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
36
11
|
// We need to reset the singleton between tests, so we import the module dynamically
|
|
37
12
|
// after mocking dependencies.
|
|
38
13
|
// Mock the MessageBroker module singleton
|
|
39
|
-
|
|
14
|
+
vi.mock('./ipc/MessageBroker', () => {
|
|
40
15
|
const handlers = new Map();
|
|
41
16
|
return {
|
|
42
17
|
messageBroker: {
|
|
43
18
|
on: (type, handler) => handlers.set(type, handler),
|
|
44
|
-
send:
|
|
19
|
+
send: vi.fn(),
|
|
45
20
|
},
|
|
46
21
|
// Expose for test assertions
|
|
47
22
|
__handlers: handlers,
|
|
48
23
|
};
|
|
49
24
|
});
|
|
50
25
|
// Mock LogServiceProxy as a proper class
|
|
51
|
-
|
|
26
|
+
vi.mock('./services/LogServiceProxy', () => ({
|
|
52
27
|
LogServiceProxy: class {
|
|
53
28
|
constructor() {
|
|
54
|
-
this.debug =
|
|
55
|
-
this.info =
|
|
56
|
-
this.warn =
|
|
57
|
-
this.error =
|
|
29
|
+
this.debug = vi.fn();
|
|
30
|
+
this.info = vi.fn();
|
|
31
|
+
this.warn = vi.fn();
|
|
32
|
+
this.error = vi.fn();
|
|
58
33
|
}
|
|
59
34
|
},
|
|
60
35
|
}));
|
|
61
|
-
|
|
36
|
+
describe('ExtensionBridge search IPC', () => {
|
|
62
37
|
let postMessageSpy;
|
|
63
38
|
let messageHandler;
|
|
64
|
-
|
|
39
|
+
beforeEach(() => {
|
|
65
40
|
// Reset the singleton by clearing the module cache
|
|
66
|
-
|
|
67
|
-
postMessageSpy =
|
|
41
|
+
vi.resetModules();
|
|
42
|
+
postMessageSpy = vi.fn();
|
|
68
43
|
// Capture the message event listener that ExtensionBridge installs
|
|
69
|
-
|
|
44
|
+
vi.spyOn(window, 'addEventListener').mockImplementation((type, handler) => {
|
|
70
45
|
if (type === 'message') {
|
|
71
46
|
messageHandler = handler;
|
|
72
47
|
}
|
|
@@ -78,30 +53,30 @@ vitest_1.vi.mock('./services/LogServiceProxy', () => ({
|
|
|
78
53
|
configurable: true,
|
|
79
54
|
});
|
|
80
55
|
});
|
|
81
|
-
|
|
82
|
-
|
|
56
|
+
afterEach(() => {
|
|
57
|
+
vi.restoreAllMocks();
|
|
83
58
|
messageHandler = undefined;
|
|
84
59
|
});
|
|
85
|
-
|
|
60
|
+
it('responds to asyar:search:request with results from registered extension', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
86
61
|
// Import fresh to trigger singleton creation
|
|
87
|
-
const { extensionBridge: bridge } = yield
|
|
62
|
+
const { extensionBridge: bridge } = yield import('./ExtensionBridge');
|
|
88
63
|
// Register a manifest and extension with a search method
|
|
89
64
|
bridge.registerManifest({
|
|
90
65
|
id: 'test-ext',
|
|
91
66
|
name: 'Test Extension',
|
|
92
67
|
version: '1.0.0',
|
|
93
68
|
description: 'Test',
|
|
94
|
-
type: '
|
|
69
|
+
type: 'extension',
|
|
95
70
|
searchable: true,
|
|
96
71
|
commands: [],
|
|
97
72
|
});
|
|
98
73
|
bridge.registerExtensionImplementation('test-ext', {
|
|
99
|
-
initialize:
|
|
100
|
-
activate:
|
|
101
|
-
deactivate:
|
|
102
|
-
onUnload:
|
|
103
|
-
executeCommand:
|
|
104
|
-
search:
|
|
74
|
+
initialize: vi.fn(),
|
|
75
|
+
activate: vi.fn(),
|
|
76
|
+
deactivate: vi.fn(),
|
|
77
|
+
onUnload: vi.fn(),
|
|
78
|
+
executeCommand: vi.fn(),
|
|
79
|
+
search: vi.fn().mockResolvedValue([
|
|
105
80
|
{
|
|
106
81
|
title: 'Test Result',
|
|
107
82
|
subtitle: 'A test doc',
|
|
@@ -113,7 +88,7 @@ vitest_1.vi.mock('./services/LogServiceProxy', () => ({
|
|
|
113
88
|
},
|
|
114
89
|
]),
|
|
115
90
|
});
|
|
116
|
-
|
|
91
|
+
expect(messageHandler).toBeDefined();
|
|
117
92
|
// Simulate host sending asyar:search:request
|
|
118
93
|
const event = new MessageEvent('message', {
|
|
119
94
|
data: {
|
|
@@ -125,12 +100,12 @@ vitest_1.vi.mock('./services/LogServiceProxy', () => ({
|
|
|
125
100
|
});
|
|
126
101
|
messageHandler(event);
|
|
127
102
|
// Wait for async search to complete
|
|
128
|
-
yield
|
|
129
|
-
|
|
103
|
+
yield vi.waitFor(() => {
|
|
104
|
+
expect(postMessageSpy).toHaveBeenCalledWith(expect.objectContaining({
|
|
130
105
|
type: 'asyar:search:response',
|
|
131
106
|
messageId: 'search_123',
|
|
132
|
-
result:
|
|
133
|
-
|
|
107
|
+
result: expect.arrayContaining([
|
|
108
|
+
expect.objectContaining({
|
|
134
109
|
title: 'Test Result',
|
|
135
110
|
subtitle: 'A test doc',
|
|
136
111
|
score: 0.9,
|
|
@@ -139,25 +114,25 @@ vitest_1.vi.mock('./services/LogServiceProxy', () => ({
|
|
|
139
114
|
}), '*');
|
|
140
115
|
});
|
|
141
116
|
}));
|
|
142
|
-
|
|
143
|
-
const { extensionBridge: bridge } = yield
|
|
117
|
+
it('responds with empty results when no extension implements search', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
118
|
+
const { extensionBridge: bridge } = yield import('./ExtensionBridge');
|
|
144
119
|
// Register extension WITHOUT search method
|
|
145
120
|
bridge.registerManifest({
|
|
146
121
|
id: 'no-search-ext',
|
|
147
122
|
name: 'No Search',
|
|
148
123
|
version: '1.0.0',
|
|
149
124
|
description: 'Test',
|
|
150
|
-
type: '
|
|
125
|
+
type: 'extension',
|
|
151
126
|
commands: [],
|
|
152
127
|
});
|
|
153
128
|
bridge.registerExtensionImplementation('no-search-ext', {
|
|
154
|
-
initialize:
|
|
155
|
-
activate:
|
|
156
|
-
deactivate:
|
|
157
|
-
onUnload:
|
|
158
|
-
executeCommand:
|
|
129
|
+
initialize: vi.fn(),
|
|
130
|
+
activate: vi.fn(),
|
|
131
|
+
deactivate: vi.fn(),
|
|
132
|
+
onUnload: vi.fn(),
|
|
133
|
+
executeCommand: vi.fn(),
|
|
159
134
|
});
|
|
160
|
-
|
|
135
|
+
expect(messageHandler).toBeDefined();
|
|
161
136
|
const event = new MessageEvent('message', {
|
|
162
137
|
data: {
|
|
163
138
|
type: 'asyar:search:request',
|
|
@@ -167,31 +142,31 @@ vitest_1.vi.mock('./services/LogServiceProxy', () => ({
|
|
|
167
142
|
source: window.parent,
|
|
168
143
|
});
|
|
169
144
|
messageHandler(event);
|
|
170
|
-
yield
|
|
171
|
-
|
|
145
|
+
yield vi.waitFor(() => {
|
|
146
|
+
expect(postMessageSpy).toHaveBeenCalledWith(expect.objectContaining({
|
|
172
147
|
type: 'asyar:search:response',
|
|
173
148
|
messageId: 'search_456',
|
|
174
149
|
result: [],
|
|
175
150
|
}), '*');
|
|
176
151
|
});
|
|
177
152
|
}));
|
|
178
|
-
|
|
179
|
-
const { extensionBridge: bridge } = yield
|
|
153
|
+
it('strips action functions from search results (not serializable via postMessage)', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
154
|
+
const { extensionBridge: bridge } = yield import('./ExtensionBridge');
|
|
180
155
|
bridge.registerManifest({
|
|
181
156
|
id: 'strip-ext',
|
|
182
157
|
name: 'Strip Test',
|
|
183
158
|
version: '1.0.0',
|
|
184
159
|
description: 'Test',
|
|
185
|
-
type: '
|
|
160
|
+
type: 'extension',
|
|
186
161
|
commands: [],
|
|
187
162
|
});
|
|
188
163
|
bridge.registerExtensionImplementation('strip-ext', {
|
|
189
|
-
initialize:
|
|
190
|
-
activate:
|
|
191
|
-
deactivate:
|
|
192
|
-
onUnload:
|
|
193
|
-
executeCommand:
|
|
194
|
-
search:
|
|
164
|
+
initialize: vi.fn(),
|
|
165
|
+
activate: vi.fn(),
|
|
166
|
+
deactivate: vi.fn(),
|
|
167
|
+
onUnload: vi.fn(),
|
|
168
|
+
executeCommand: vi.fn(),
|
|
169
|
+
search: vi.fn().mockResolvedValue([
|
|
195
170
|
{
|
|
196
171
|
title: 'Doc',
|
|
197
172
|
score: 0.5,
|
|
@@ -201,7 +176,7 @@ vitest_1.vi.mock('./services/LogServiceProxy', () => ({
|
|
|
201
176
|
},
|
|
202
177
|
]),
|
|
203
178
|
});
|
|
204
|
-
|
|
179
|
+
expect(messageHandler).toBeDefined();
|
|
205
180
|
const event = new MessageEvent('message', {
|
|
206
181
|
data: {
|
|
207
182
|
type: 'asyar:search:request',
|
|
@@ -211,49 +186,49 @@ vitest_1.vi.mock('./services/LogServiceProxy', () => ({
|
|
|
211
186
|
source: window.parent,
|
|
212
187
|
});
|
|
213
188
|
messageHandler(event);
|
|
214
|
-
yield
|
|
215
|
-
|
|
189
|
+
yield vi.waitFor(() => {
|
|
190
|
+
expect(postMessageSpy).toHaveBeenCalled();
|
|
216
191
|
const call = postMessageSpy.mock.calls[0];
|
|
217
192
|
const result = call[0].result[0];
|
|
218
|
-
|
|
193
|
+
expect(result.title).toBe('Doc');
|
|
219
194
|
// action should NOT be present in the serialized result
|
|
220
|
-
|
|
195
|
+
expect(result).not.toHaveProperty('action');
|
|
221
196
|
});
|
|
222
197
|
}));
|
|
223
198
|
});
|
|
224
|
-
|
|
199
|
+
describe('ExtensionBridge registerActionHandler', () => {
|
|
225
200
|
let messageHandler;
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
201
|
+
beforeEach(() => {
|
|
202
|
+
vi.resetModules();
|
|
203
|
+
vi.spyOn(window, 'addEventListener').mockImplementation((type, handler) => {
|
|
229
204
|
if (type === 'message') {
|
|
230
205
|
messageHandler = handler;
|
|
231
206
|
}
|
|
232
207
|
});
|
|
233
208
|
Object.defineProperty(window, 'parent', {
|
|
234
|
-
value: { postMessage:
|
|
209
|
+
value: { postMessage: vi.fn() },
|
|
235
210
|
writable: true,
|
|
236
211
|
configurable: true,
|
|
237
212
|
});
|
|
238
213
|
});
|
|
239
|
-
|
|
240
|
-
|
|
214
|
+
afterEach(() => {
|
|
215
|
+
vi.restoreAllMocks();
|
|
241
216
|
messageHandler = undefined;
|
|
242
217
|
});
|
|
243
|
-
|
|
244
|
-
const { extensionBridge: bridge } = yield
|
|
245
|
-
const handler =
|
|
218
|
+
it('stores handler in actionRegistry with full action ID', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
219
|
+
const { extensionBridge: bridge } = yield import('./ExtensionBridge');
|
|
220
|
+
const handler = vi.fn();
|
|
246
221
|
bridge.registerActionHandler('com.example.github', 'open-browser', handler);
|
|
247
222
|
const actions = bridge.getActions();
|
|
248
223
|
const found = actions.find(a => a.id === 'act_com.example.github_open-browser');
|
|
249
|
-
|
|
250
|
-
|
|
224
|
+
expect(found).toBeDefined();
|
|
225
|
+
expect(found.extensionId).toBe('com.example.github');
|
|
251
226
|
}));
|
|
252
|
-
|
|
253
|
-
const { extensionBridge: bridge } = yield
|
|
254
|
-
const handler =
|
|
227
|
+
it('handler is invoked when asyar:action:execute message arrives', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
228
|
+
const { extensionBridge: bridge } = yield import('./ExtensionBridge');
|
|
229
|
+
const handler = vi.fn();
|
|
255
230
|
bridge.registerActionHandler('com.example.github', 'open-browser', handler);
|
|
256
|
-
|
|
231
|
+
expect(messageHandler).toBeDefined();
|
|
257
232
|
const event = new MessageEvent('message', {
|
|
258
233
|
data: {
|
|
259
234
|
type: 'asyar:action:execute',
|
|
@@ -262,13 +237,13 @@ vitest_1.vi.mock('./services/LogServiceProxy', () => ({
|
|
|
262
237
|
source: window.parent,
|
|
263
238
|
});
|
|
264
239
|
messageHandler(event);
|
|
265
|
-
yield
|
|
266
|
-
|
|
240
|
+
yield vi.waitFor(() => {
|
|
241
|
+
expect(handler).toHaveBeenCalledOnce();
|
|
267
242
|
});
|
|
268
243
|
}));
|
|
269
|
-
|
|
270
|
-
const { extensionBridge: bridge } = yield
|
|
271
|
-
const handler =
|
|
244
|
+
it('does not invoke handler for non-matching action ID', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
245
|
+
const { extensionBridge: bridge } = yield import('./ExtensionBridge');
|
|
246
|
+
const handler = vi.fn();
|
|
272
247
|
bridge.registerActionHandler('com.example.github', 'open-browser', handler);
|
|
273
248
|
const event = new MessageEvent('message', {
|
|
274
249
|
data: {
|
|
@@ -280,7 +255,7 @@ vitest_1.vi.mock('./services/LogServiceProxy', () => ({
|
|
|
280
255
|
messageHandler(event);
|
|
281
256
|
// Give it a tick to process
|
|
282
257
|
yield new Promise(r => setTimeout(r, 10));
|
|
283
|
-
|
|
258
|
+
expect(handler).not.toHaveBeenCalled();
|
|
284
259
|
}));
|
|
285
260
|
});
|
|
286
261
|
//# sourceMappingURL=ExtensionBridge.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtensionBridge.test.js","sourceRoot":"","sources":["../src/ExtensionBridge.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ExtensionBridge.test.js","sourceRoot":"","sources":["../src/ExtensionBridge.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,64 +1,29 @@
|
|
|
1
|
-
import type { ExtensionSyncProvider } from "./types/SyncType";
|
|
2
|
-
import type { ExtensionAction } from "./types/ActionType";
|
|
3
|
-
import type { CommandHandler } from "./types/CommandType";
|
|
4
|
-
import type { Namespace } from "./ipc/namespaces";
|
|
5
|
-
import type { BaseServiceProxy } from "./services/BaseServiceProxy";
|
|
6
|
-
import { PreferencesFacade } from './PreferencesFacade';
|
|
7
1
|
export { PreferencesFacade, type PreferencesSnapshot } from './PreferencesFacade';
|
|
8
2
|
export { injectThemeVariables, injectFontFaceCSS } from './lib/themeInjector';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Replace the preferences snapshot. Called once at extension boot by
|
|
23
|
-
* ExtensionBridge, and again when the user edits preferences in the
|
|
24
|
-
* launcher's Extensions settings tab. The snapshot is frozen at all
|
|
25
|
-
* nesting levels — extensions cannot mutate it.
|
|
26
|
-
*
|
|
27
|
-
* After the snapshot is installed, registered `onPreferencesChanged`
|
|
28
|
-
* listeners fire. They must re-read `context.preferences.values` to
|
|
29
|
-
* pick up the new values.
|
|
30
|
-
*/
|
|
31
|
-
setPreferences(bundle: {
|
|
32
|
-
extension: Record<string, unknown>;
|
|
33
|
-
commands: Record<string, Record<string, unknown>>;
|
|
34
|
-
}): void;
|
|
35
|
-
/**
|
|
36
|
-
* Subscribe to preference change notifications. Returns an unsubscribe
|
|
37
|
-
* function. The callback fires *after* `context.preferences` has been
|
|
38
|
-
* replaced with a new frozen snapshot — re-read values inside the
|
|
39
|
-
* callback, do not capture them from the enclosing scope.
|
|
40
|
-
*
|
|
41
|
-
* Typical use: an extension that caches a preference value at
|
|
42
|
-
* `initialize()` time (e.g. to feed a timer engine's internal state)
|
|
43
|
-
* uses this to recompute when the user edits the setting.
|
|
44
|
-
*/
|
|
45
|
-
onPreferencesChanged(callback: () => void): () => void;
|
|
46
|
-
readonly proxies: Partial<Record<Namespace, BaseServiceProxy>>;
|
|
3
|
+
import { ExtensionContextCore } from './ExtensionContextCore';
|
|
4
|
+
export { ExtensionContextCore } from './ExtensionContextCore';
|
|
5
|
+
export type { ExtensionContextRole } from './ExtensionContextCore';
|
|
6
|
+
/**
|
|
7
|
+
* Full-surface ExtensionContext. Backs:
|
|
8
|
+
* - Tier 1 launcher built-in features (type-only reference).
|
|
9
|
+
* - `asyar-sdk/view` entry point (UI-capable extensions).
|
|
10
|
+
*
|
|
11
|
+
* For worker-context extensions, see `asyar-sdk/worker` — it exports a
|
|
12
|
+
* narrower ExtensionContext without DOM-dependent proxies.
|
|
13
|
+
*/
|
|
14
|
+
export declare class ExtensionContext extends ExtensionContextCore {
|
|
47
15
|
constructor();
|
|
48
|
-
getService<T>(namespace: Namespace): T;
|
|
49
|
-
setExtensionId(id: string): void;
|
|
50
|
-
registerAction(action: ExtensionAction): void;
|
|
51
|
-
unregisterAction(actionId: string): void;
|
|
52
|
-
registerCommand(commandId: string, handler: CommandHandler): void;
|
|
53
|
-
unregisterCommand(commandId: string): void;
|
|
54
16
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* generated documents, or pass it to other apps.
|
|
17
|
+
* View-side RPC entry. Sends a request into this extension's worker and
|
|
18
|
+
* awaits the worker handler's reply. Default 5s timeout, overridable via
|
|
19
|
+
* `opts.timeoutMs`. See `ExtensionRpc.request` for the AbortSignal +
|
|
20
|
+
* stale-reply contract.
|
|
60
21
|
*/
|
|
61
|
-
|
|
62
|
-
|
|
22
|
+
request<TResult = unknown>(id: string, payload?: unknown, opts?: {
|
|
23
|
+
timeoutMs?: number;
|
|
24
|
+
}): Promise<TResult>;
|
|
25
|
+
protected notifyRpcIfAvailable(id: string): void;
|
|
26
|
+
protected notifyBridgeIfAvailable(id: string): void;
|
|
63
27
|
}
|
|
28
|
+
export type { PreferencesSnapshot as _Unused } from './PreferencesFacade';
|
|
64
29
|
//# sourceMappingURL=ExtensionContext.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtensionContext.d.ts","sourceRoot":"","sources":["../src/ExtensionContext.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ExtensionContext.d.ts","sourceRoot":"","sources":["../src/ExtensionContext.ts"],"names":[],"mappings":"AAgCA,OAAO,EAAE,iBAAiB,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAGlF,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAgCnE;;;;;;;GAOG;AACH,qBAAa,gBAAiB,SAAQ,oBAAoB;;IAkBxD;;;;;OAKG;IACH,OAAO,CAAC,OAAO,GAAG,OAAO,EACvB,EAAE,EAAE,MAAM,EACV,OAAO,CAAC,EAAE,OAAO,EACjB,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5B,OAAO,CAAC,OAAO,CAAC;cAIA,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;cAItC,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;CAQ7D;AAED,YAAY,EAAE,mBAAmB,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC"}
|