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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconRenderer.js","sourceRoot":"","sources":["../../src/icons/IconRenderer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IconRenderer.js","sourceRoot":"","sources":["../../src/icons/IconRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAQnD,kGAAkG;AAClG,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,OAAqB;;IAC5D,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,IAAI,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,mCAAI,EAAE,CAAC;IACjC,MAAM,WAAW,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCAAI,GAAG,CAAC;IAChD,MAAM,SAAS,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,EAAC,CAAC,CAAC,WAAW,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpE,OAAO,kDAAkD,IAAI,aAAa,IAAI,yEAAyE,WAAW,mDAAmD,SAAS,IAAI,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC5P,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,SAAS;IACvB,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,IAAI,IAAI,SAAS,CAAC;AAC3B,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -1,87 +1,85 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
(
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
(0, vitest_1.expect)(svg).toContain('stroke="currentColor"');
|
|
13
|
-
(0, vitest_1.expect)(svg).toContain('</svg>');
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { renderIcon, listIcons, hasIcon, getIconData } from './IconRenderer';
|
|
3
|
+
import { ICON_DATA, ICON_NAMES } from './iconData';
|
|
4
|
+
describe('IconRenderer', () => {
|
|
5
|
+
describe('renderIcon', () => {
|
|
6
|
+
it('returns SVG string for valid icon name', () => {
|
|
7
|
+
const svg = renderIcon('calculator');
|
|
8
|
+
expect(svg).toContain('<svg');
|
|
9
|
+
expect(svg).toContain('viewBox="0 0 24 24"');
|
|
10
|
+
expect(svg).toContain('stroke="currentColor"');
|
|
11
|
+
expect(svg).toContain('</svg>');
|
|
14
12
|
});
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
it('returns empty string for unknown icon name', () => {
|
|
14
|
+
expect(renderIcon('nonexistent-icon')).toBe('');
|
|
17
15
|
});
|
|
18
|
-
|
|
19
|
-
const svg =
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
it('applies custom size', () => {
|
|
17
|
+
const svg = renderIcon('calculator', { size: 16 });
|
|
18
|
+
expect(svg).toContain('width="16"');
|
|
19
|
+
expect(svg).toContain('height="16"');
|
|
22
20
|
});
|
|
23
|
-
|
|
24
|
-
const svg =
|
|
25
|
-
|
|
21
|
+
it('applies custom strokeWidth', () => {
|
|
22
|
+
const svg = renderIcon('calculator', { strokeWidth: 2 });
|
|
23
|
+
expect(svg).toContain('stroke-width="2"');
|
|
26
24
|
});
|
|
27
|
-
|
|
28
|
-
const svg =
|
|
29
|
-
|
|
25
|
+
it('applies custom class', () => {
|
|
26
|
+
const svg = renderIcon('calculator', { class: 'my-icon' });
|
|
27
|
+
expect(svg).toContain('class="my-icon"');
|
|
30
28
|
});
|
|
31
|
-
|
|
32
|
-
const svg =
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
29
|
+
it('uses default size 20 and strokeWidth 1.5', () => {
|
|
30
|
+
const svg = renderIcon('calculator');
|
|
31
|
+
expect(svg).toContain('width="20"');
|
|
32
|
+
expect(svg).toContain('height="20"');
|
|
33
|
+
expect(svg).toContain('stroke-width="1.5"');
|
|
36
34
|
});
|
|
37
|
-
|
|
38
|
-
const svg =
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
35
|
+
it('includes fill="none" and round line caps', () => {
|
|
36
|
+
const svg = renderIcon('calculator');
|
|
37
|
+
expect(svg).toContain('fill="none"');
|
|
38
|
+
expect(svg).toContain('stroke-linecap="round"');
|
|
39
|
+
expect(svg).toContain('stroke-linejoin="round"');
|
|
42
40
|
});
|
|
43
|
-
|
|
44
|
-
const svg =
|
|
45
|
-
|
|
41
|
+
it('omits class attribute when not provided', () => {
|
|
42
|
+
const svg = renderIcon('calculator');
|
|
43
|
+
expect(svg).not.toContain('class=');
|
|
46
44
|
});
|
|
47
45
|
});
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
const names =
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
46
|
+
describe('listIcons', () => {
|
|
47
|
+
it('returns an array of icon names', () => {
|
|
48
|
+
const names = listIcons();
|
|
49
|
+
expect(names.length).toBeGreaterThan(20);
|
|
50
|
+
expect(names).toContain('calculator');
|
|
51
|
+
expect(names).toContain('settings');
|
|
54
52
|
});
|
|
55
53
|
});
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
describe('hasIcon', () => {
|
|
55
|
+
it('returns true for existing icon', () => {
|
|
56
|
+
expect(hasIcon('calculator')).toBe(true);
|
|
59
57
|
});
|
|
60
|
-
|
|
61
|
-
|
|
58
|
+
it('returns false for nonexistent icon', () => {
|
|
59
|
+
expect(hasIcon('nonexistent')).toBe(false);
|
|
62
60
|
});
|
|
63
61
|
});
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const data =
|
|
67
|
-
|
|
68
|
-
|
|
62
|
+
describe('getIconData', () => {
|
|
63
|
+
it('returns SVG content for existing icon', () => {
|
|
64
|
+
const data = getIconData('calculator');
|
|
65
|
+
expect(data).toBeDefined();
|
|
66
|
+
expect(data).toContain('<rect');
|
|
69
67
|
});
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
it('returns undefined for nonexistent icon', () => {
|
|
69
|
+
expect(getIconData('nonexistent')).toBeUndefined();
|
|
72
70
|
});
|
|
73
71
|
});
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
72
|
+
describe('ICON_DATA', () => {
|
|
73
|
+
it('contains all expected icons', () => {
|
|
74
|
+
expect(ICON_DATA).toHaveProperty('calculator');
|
|
75
|
+
expect(ICON_DATA).toHaveProperty('ai-chat');
|
|
76
|
+
expect(ICON_DATA).toHaveProperty('settings');
|
|
77
|
+
expect(ICON_DATA).toHaveProperty('store');
|
|
80
78
|
});
|
|
81
79
|
});
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
80
|
+
describe('ICON_NAMES', () => {
|
|
81
|
+
it('matches keys of ICON_DATA', () => {
|
|
82
|
+
expect([...ICON_NAMES].sort()).toEqual(Object.keys(ICON_DATA).sort());
|
|
85
83
|
});
|
|
86
84
|
});
|
|
87
85
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconRenderer.test.js","sourceRoot":"","sources":["../../src/icons/IconRenderer.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IconRenderer.test.js","sourceRoot":"","sources":["../../src/icons/IconRenderer.test.ts"],"names":[],"mappings":"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"}
|
package/dist/icons/iconData.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ICON_NAMES = exports.ICON_DATA = void 0;
|
|
4
|
-
exports.ICON_DATA = {
|
|
1
|
+
export const ICON_DATA = {
|
|
5
2
|
calculator: `
|
|
6
3
|
<rect x="4" y="3" width="16" height="18" rx="2" />
|
|
7
4
|
<line x1="8" y1="10" x2="16" y2="10" />
|
|
@@ -178,5 +175,5 @@ exports.ICON_DATA = {
|
|
|
178
175
|
<path d="M12 8h.01" />
|
|
179
176
|
`,
|
|
180
177
|
};
|
|
181
|
-
|
|
178
|
+
export const ICON_NAMES = Object.keys(ICON_DATA);
|
|
182
179
|
//# sourceMappingURL=iconData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iconData.js","sourceRoot":"","sources":["../../src/icons/iconData.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"iconData.js","sourceRoot":"","sources":["../../src/icons/iconData.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAA2B;IAC/C,UAAU,EAAE;;;;;;GAMX;IACD,SAAS,EAAE;;;;;GAKV;IACD,QAAQ,EAAE;;;GAGT;IACD,QAAQ,EAAE;;;;;;;;;;GAUT;IACD,WAAW,EAAE;;GAEZ;IACD,SAAS,EAAE;;;;;GAKV;IACD,QAAQ,EAAE;;;;GAIT;IACD,KAAK,EAAE;;;;;GAKN;IACD,eAAe,EAAE;;;;;GAKhB;IACD,YAAY,EAAE;;;;;;GAMb;IACD,WAAW,EAAE;;;;;GAKZ;IACD,WAAW,EAAE;;;;;GAKZ;IACD,KAAK,EAAE;;;;GAIN;IACD,IAAI,EAAE;;;GAGL;IACD,KAAK,EAAE;;;;;;GAMN;IACD,OAAO,EAAE;;;GAGR;IACD,IAAI,EAAE;;GAEL;IACD,GAAG,EAAE;;;GAGJ;IACD,MAAM,EAAE;;GAEP;IACD,QAAQ,EAAE;;;;;;GAMT;IACD,MAAM,EAAE;;GAEP;IACD,IAAI,EAAE;;;GAGL;IACD,MAAM,EAAE;;;;GAIP;IACD,IAAI,EAAE;;;;GAIL;IACD,KAAK,EAAE;;;;GAIN;IACD,WAAW,EAAE;;;;;GAKZ;IACD,IAAI,EAAE;;;;GAIL;IACD,GAAG,EAAE;;;GAGJ;IACD,KAAK,EAAE;;;GAGN;IACD,OAAO,EAAE;;;;;;GAMR;IACD,MAAM,EAAE;;GAEP;IACD,cAAc,EAAE;;;;GAIf;IACD,IAAI,EAAE;;;GAGL;IACD,IAAI,EAAE;;;;GAIL;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAsB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC"}
|
package/dist/icons/index.js
CHANGED
|
@@ -1,15 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var iconData_1 = require("./iconData");
|
|
5
|
-
Object.defineProperty(exports, "ICON_DATA", { enumerable: true, get: function () { return iconData_1.ICON_DATA; } });
|
|
6
|
-
Object.defineProperty(exports, "ICON_NAMES", { enumerable: true, get: function () { return iconData_1.ICON_NAMES; } });
|
|
7
|
-
var IconRenderer_1 = require("./IconRenderer");
|
|
8
|
-
Object.defineProperty(exports, "renderIcon", { enumerable: true, get: function () { return IconRenderer_1.renderIcon; } });
|
|
9
|
-
Object.defineProperty(exports, "listIcons", { enumerable: true, get: function () { return IconRenderer_1.listIcons; } });
|
|
10
|
-
Object.defineProperty(exports, "hasIcon", { enumerable: true, get: function () { return IconRenderer_1.hasIcon; } });
|
|
11
|
-
Object.defineProperty(exports, "getIconData", { enumerable: true, get: function () { return IconRenderer_1.getIconData; } });
|
|
12
|
-
var AsyarIconElement_1 = require("./AsyarIconElement");
|
|
13
|
-
Object.defineProperty(exports, "AsyarIconElement", { enumerable: true, get: function () { return AsyarIconElement_1.AsyarIconElement; } });
|
|
14
|
-
Object.defineProperty(exports, "registerIconElement", { enumerable: true, get: function () { return AsyarIconElement_1.registerIconElement; } });
|
|
1
|
+
export { ICON_DATA, ICON_NAMES } from './iconData';
|
|
2
|
+
export { renderIcon, listIcons, hasIcon, getIconData } from './IconRenderer';
|
|
3
|
+
export { AsyarIconElement, registerIconElement } from './AsyarIconElement';
|
|
15
4
|
//# sourceMappingURL=index.js.map
|
package/dist/icons/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/icons/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/icons/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7E,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageBroker.d.ts","sourceRoot":"","sources":["../../src/ipc/MessageBroker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"MessageBroker.d.ts","sourceRoot":"","sources":["../../src/ipc/MessageBroker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,cAAc,GAAG,CAC3B,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,EACxD,WAAW,EAAE,MAAM,GAAG,SAAS,KAC5B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhC,qBAAa,aAAa;IACxB,OAAO,CAAC,eAAe,CAOR;IACf,OAAO,CAAC,cAAc,CAA2D;IACjF,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,cAAc,CAA+B;;IAO9C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIvC;;;OAGG;IACI,iBAAiB,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI;IAIjE,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,aAAa;IA2CrB,OAAO,CAAC,UAAU;IAIX,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,GAAE,MAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAuD3I,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI;IAY7C,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAO7D,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;CAMtE;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.messageBroker = exports.MessageBroker = void 0;
|
|
4
|
-
class MessageBroker {
|
|
1
|
+
import { emitIpcLog } from './devInspectorBridge';
|
|
2
|
+
export class MessageBroker {
|
|
5
3
|
constructor() {
|
|
6
4
|
this.pendingRequests = new Map();
|
|
7
5
|
this.eventListeners = new Map();
|
|
@@ -56,6 +54,16 @@ class MessageBroker {
|
|
|
56
54
|
const pending = this.pendingRequests.get(response.messageId);
|
|
57
55
|
if (pending) {
|
|
58
56
|
clearTimeout(pending.timer);
|
|
57
|
+
emitIpcLog({
|
|
58
|
+
phase: 'response',
|
|
59
|
+
command: pending.command,
|
|
60
|
+
result: response.error ? undefined : response.result,
|
|
61
|
+
error: response.error,
|
|
62
|
+
messageId: response.messageId,
|
|
63
|
+
elapsedMs: Date.now() - pending.startedAt,
|
|
64
|
+
timestamp: Date.now(),
|
|
65
|
+
extensionId: this.extensionId,
|
|
66
|
+
});
|
|
59
67
|
if (response.error) {
|
|
60
68
|
pending.reject(new Error(response.error));
|
|
61
69
|
}
|
|
@@ -97,16 +105,36 @@ class MessageBroker {
|
|
|
97
105
|
}
|
|
98
106
|
return new Promise((resolve, reject) => {
|
|
99
107
|
const messageId = this.generateId();
|
|
108
|
+
const startedAt = Date.now();
|
|
100
109
|
const timer = setTimeout(() => {
|
|
101
110
|
this.pendingRequests.delete(messageId);
|
|
111
|
+
emitIpcLog({
|
|
112
|
+
phase: 'response',
|
|
113
|
+
command,
|
|
114
|
+
error: `IPC timeout after ${timeoutMs}ms`,
|
|
115
|
+
messageId,
|
|
116
|
+
elapsedMs: timeoutMs,
|
|
117
|
+
timestamp: Date.now(),
|
|
118
|
+
extensionId: extensionId !== null && extensionId !== void 0 ? extensionId : this.extensionId,
|
|
119
|
+
});
|
|
102
120
|
reject(new Error(`IPC timeout after ${timeoutMs}ms for command: ${command}`));
|
|
103
121
|
}, timeoutMs);
|
|
104
122
|
this.pendingRequests.set(messageId, {
|
|
105
123
|
resolve: resolve,
|
|
106
124
|
reject,
|
|
107
125
|
timer,
|
|
126
|
+
startedAt,
|
|
127
|
+
command,
|
|
108
128
|
});
|
|
109
129
|
const message = Object.assign({ type: `asyar:api:${command}`, payload: payload || {}, messageId }, (extensionId ? { extensionId } : {}));
|
|
130
|
+
emitIpcLog({
|
|
131
|
+
phase: 'invoke',
|
|
132
|
+
command,
|
|
133
|
+
payload,
|
|
134
|
+
messageId,
|
|
135
|
+
timestamp: startedAt,
|
|
136
|
+
extensionId: extensionId !== null && extensionId !== void 0 ? extensionId : this.extensionId,
|
|
137
|
+
});
|
|
110
138
|
this.send(message);
|
|
111
139
|
});
|
|
112
140
|
}
|
|
@@ -136,6 +164,5 @@ class MessageBroker {
|
|
|
136
164
|
}
|
|
137
165
|
}
|
|
138
166
|
}
|
|
139
|
-
|
|
140
|
-
exports.messageBroker = new MessageBroker();
|
|
167
|
+
export const messageBroker = new MessageBroker();
|
|
141
168
|
//# sourceMappingURL=MessageBroker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageBroker.js","sourceRoot":"","sources":["../../src/ipc/MessageBroker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MessageBroker.js","sourceRoot":"","sources":["../../src/ipc/MessageBroker.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,66 +7,65 @@ 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 MessageBroker_1 = require("./MessageBroker");
|
|
10
|
+
import { describe, it, expect, vi, afterEach } from 'vitest';
|
|
11
|
+
import { MessageBroker } from './MessageBroker';
|
|
14
12
|
function freshBroker() {
|
|
15
|
-
return new
|
|
13
|
+
return new MessageBroker();
|
|
16
14
|
}
|
|
17
|
-
|
|
15
|
+
describe('MessageBroker.invoke — host dispatcher fast path', () => {
|
|
18
16
|
const originalParentDescriptor = Object.getOwnPropertyDescriptor(window, 'parent');
|
|
19
|
-
|
|
17
|
+
afterEach(() => {
|
|
20
18
|
if (originalParentDescriptor)
|
|
21
19
|
Object.defineProperty(window, 'parent', originalParentDescriptor);
|
|
22
20
|
});
|
|
23
|
-
|
|
21
|
+
it('runs the dispatcher synchronously when in host realm', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
24
22
|
const broker = freshBroker();
|
|
25
23
|
let ran = false;
|
|
26
24
|
broker.setHostDispatcher(() => { ran = true; return 'ok'; });
|
|
27
25
|
const promise = broker.invoke('extensions:navigateToView', { viewPath: 'calc/Default' });
|
|
28
|
-
|
|
29
|
-
yield
|
|
26
|
+
expect(ran).toBe(true);
|
|
27
|
+
yield expect(promise).resolves.toBe('ok');
|
|
30
28
|
}));
|
|
31
|
-
|
|
29
|
+
it('forwards command, payload and extensionId to the dispatcher', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
32
30
|
const broker = freshBroker();
|
|
33
|
-
const dispatcher =
|
|
31
|
+
const dispatcher = vi.fn(() => undefined);
|
|
34
32
|
broker.setHostDispatcher(dispatcher);
|
|
35
33
|
yield broker.invoke('storage:get', { key: 'x' }, 'com.test.ext');
|
|
36
|
-
|
|
34
|
+
expect(dispatcher).toHaveBeenCalledWith('storage:get', { key: 'x' }, 'com.test.ext');
|
|
37
35
|
}));
|
|
38
|
-
|
|
36
|
+
it('awaits async dispatcher results', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
39
37
|
const broker = freshBroker();
|
|
40
38
|
broker.setHostDispatcher(() => Promise.resolve({ ok: true }));
|
|
41
|
-
yield
|
|
39
|
+
yield expect(broker.invoke('extensions:searchAll', { query: 'q' })).resolves.toEqual({ ok: true });
|
|
42
40
|
}));
|
|
43
|
-
|
|
41
|
+
it('rejects when the dispatcher throws', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
44
42
|
const broker = freshBroker();
|
|
45
43
|
broker.setHostDispatcher(() => { throw new Error('boom'); });
|
|
46
|
-
yield
|
|
44
|
+
yield expect(broker.invoke('extensions:navigateToView', { viewPath: 'x/V' })).rejects.toThrow('boom');
|
|
47
45
|
}));
|
|
48
|
-
|
|
46
|
+
it('rejects when the dispatcher returns a rejected promise', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
49
47
|
const broker = freshBroker();
|
|
50
48
|
broker.setHostDispatcher(() => Promise.reject(new Error('boom')));
|
|
51
|
-
yield
|
|
49
|
+
yield expect(broker.invoke('extensions:navigateToView', { viewPath: 'x/V' })).rejects.toThrow('boom');
|
|
52
50
|
}));
|
|
53
|
-
|
|
54
|
-
const fakeParent = { postMessage:
|
|
51
|
+
it('falls back to postMessage from an iframe context', () => {
|
|
52
|
+
const fakeParent = { postMessage: vi.fn() };
|
|
55
53
|
Object.defineProperty(window, 'parent', { configurable: true, get: () => fakeParent });
|
|
56
54
|
const broker = freshBroker();
|
|
57
|
-
broker.setHostDispatcher(
|
|
55
|
+
broker.setHostDispatcher(vi.fn());
|
|
58
56
|
void broker.invoke('extensions:navigateToView', { viewPath: 'x/V' });
|
|
59
|
-
|
|
57
|
+
expect(fakeParent.postMessage).toHaveBeenCalledOnce();
|
|
60
58
|
const [message] = fakeParent.postMessage.mock.calls[0];
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
expect(message.type).toBe('asyar:api:extensions:navigateToView');
|
|
60
|
+
expect(message.payload).toEqual({ viewPath: 'x/V' });
|
|
63
61
|
});
|
|
64
|
-
|
|
62
|
+
it('setHostDispatcher(null) disables the fast path', () => {
|
|
65
63
|
const broker = freshBroker();
|
|
66
|
-
const dispatcher =
|
|
64
|
+
const dispatcher = vi.fn();
|
|
67
65
|
broker.setHostDispatcher(dispatcher);
|
|
68
66
|
broker.setHostDispatcher(null);
|
|
69
67
|
void broker.invoke('extensions:navigateToView', { viewPath: 'x/V' });
|
|
70
|
-
|
|
68
|
+
expect(dispatcher).not.toHaveBeenCalled();
|
|
71
69
|
});
|
|
72
70
|
});
|
|
73
71
|
//# sourceMappingURL=MessageBroker.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageBroker.test.js","sourceRoot":"","sources":["../../src/ipc/MessageBroker.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MessageBroker.test.js","sourceRoot":"","sources":["../../src/ipc/MessageBroker.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dev-only diagnostic bridge. Emits `asyar:dev:rpc-log` and
|
|
3
|
+
* `asyar:dev:ipc-log` postMessages to `window.parent` when the launcher
|
|
4
|
+
* has set `window.__ASYAR_DEV_INSPECTOR_ACTIVE__ = true` on the iframe.
|
|
5
|
+
*
|
|
6
|
+
* Production launcher builds never set the flag, so every call here is a
|
|
7
|
+
* single boolean guard then returns — no references held, no behaviour
|
|
8
|
+
* change. Extensions that run outside an iframe (e.g. the CLI / tests)
|
|
9
|
+
* are also silent: the `window`/`window.parent` guards bail.
|
|
10
|
+
*
|
|
11
|
+
* Fire-and-forget by design: postMessage errors are swallowed. The
|
|
12
|
+
* inspector is an observational tool; it cannot be allowed to perturb the
|
|
13
|
+
* SDK's actual RPC / IPC behaviour.
|
|
14
|
+
*/
|
|
15
|
+
export type RpcLogPhase = 'request' | 'resolved' | 'rejected' | 'timeout';
|
|
16
|
+
export type IpcLogPhase = 'invoke' | 'response';
|
|
17
|
+
export interface RpcLogPayload {
|
|
18
|
+
phase: RpcLogPhase;
|
|
19
|
+
id?: string;
|
|
20
|
+
correlationId: string;
|
|
21
|
+
payload?: unknown;
|
|
22
|
+
result?: unknown;
|
|
23
|
+
error?: string;
|
|
24
|
+
timeoutMs?: number;
|
|
25
|
+
elapsedMs?: number;
|
|
26
|
+
timestamp: number;
|
|
27
|
+
extensionId?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface IpcLogPayload {
|
|
30
|
+
phase: IpcLogPhase;
|
|
31
|
+
command?: string;
|
|
32
|
+
payload?: unknown;
|
|
33
|
+
result?: unknown;
|
|
34
|
+
error?: string;
|
|
35
|
+
messageId: string;
|
|
36
|
+
elapsedMs?: number;
|
|
37
|
+
timestamp: number;
|
|
38
|
+
extensionId?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Check whether the inspector is active. Exported so tests and callers
|
|
42
|
+
* can short-circuit expensive payload serialisation before calling the
|
|
43
|
+
* emitters. Never throws.
|
|
44
|
+
*/
|
|
45
|
+
export declare function isInspectorActive(): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Fire the RPC diagnostic observation. Returns immediately when the
|
|
48
|
+
* inspector flag is absent — no allocation, no stringify, no postMessage.
|
|
49
|
+
*/
|
|
50
|
+
export declare function emitRpcLog(payload: RpcLogPayload): void;
|
|
51
|
+
/**
|
|
52
|
+
* Fire the IPC diagnostic observation. See [`emitRpcLog`] for the
|
|
53
|
+
* build-time dead-code gate and the runtime no-op guarantee when the flag
|
|
54
|
+
* is absent.
|
|
55
|
+
*/
|
|
56
|
+
export declare function emitIpcLog(payload: IpcLogPayload): void;
|
|
57
|
+
//# sourceMappingURL=devInspectorBridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devInspectorBridge.d.ts","sourceRoot":"","sources":["../../src/ipc/devInspectorBridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAC1E,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAI3C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAUvD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAIvD"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dev-only diagnostic bridge. Emits `asyar:dev:rpc-log` and
|
|
3
|
+
* `asyar:dev:ipc-log` postMessages to `window.parent` when the launcher
|
|
4
|
+
* has set `window.__ASYAR_DEV_INSPECTOR_ACTIVE__ = true` on the iframe.
|
|
5
|
+
*
|
|
6
|
+
* Production launcher builds never set the flag, so every call here is a
|
|
7
|
+
* single boolean guard then returns — no references held, no behaviour
|
|
8
|
+
* change. Extensions that run outside an iframe (e.g. the CLI / tests)
|
|
9
|
+
* are also silent: the `window`/`window.parent` guards bail.
|
|
10
|
+
*
|
|
11
|
+
* Fire-and-forget by design: postMessage errors are swallowed. The
|
|
12
|
+
* inspector is an observational tool; it cannot be allowed to perturb the
|
|
13
|
+
* SDK's actual RPC / IPC behaviour.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Check whether the inspector is active. Exported so tests and callers
|
|
17
|
+
* can short-circuit expensive payload serialisation before calling the
|
|
18
|
+
* emitters. Never throws.
|
|
19
|
+
*/
|
|
20
|
+
export function isInspectorActive() {
|
|
21
|
+
if (typeof window === 'undefined')
|
|
22
|
+
return false;
|
|
23
|
+
return window
|
|
24
|
+
.__ASYAR_DEV_INSPECTOR_ACTIVE__ === true;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Fire the RPC diagnostic observation. Returns immediately when the
|
|
28
|
+
* inspector flag is absent — no allocation, no stringify, no postMessage.
|
|
29
|
+
*/
|
|
30
|
+
export function emitRpcLog(payload) {
|
|
31
|
+
var _a;
|
|
32
|
+
// Build-time dead-code gate: Vite replaces `import.meta.env.DEV` with a
|
|
33
|
+
// literal at bundle time. In a production launcher build `!true` is
|
|
34
|
+
// `false`, tree-shaking the rest of this function *and* the string
|
|
35
|
+
// constants below. In npm consumers that don't define `import.meta.env`,
|
|
36
|
+
// the optional chain evaluates to undefined → `!undefined` is `true` →
|
|
37
|
+
// the emitter also bails.
|
|
38
|
+
if (!((_a = import.meta.env) === null || _a === void 0 ? void 0 : _a.DEV))
|
|
39
|
+
return;
|
|
40
|
+
if (!isInspectorActive())
|
|
41
|
+
return;
|
|
42
|
+
postToParent('asyar:dev:rpc-log', payload);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Fire the IPC diagnostic observation. See [`emitRpcLog`] for the
|
|
46
|
+
* build-time dead-code gate and the runtime no-op guarantee when the flag
|
|
47
|
+
* is absent.
|
|
48
|
+
*/
|
|
49
|
+
export function emitIpcLog(payload) {
|
|
50
|
+
var _a;
|
|
51
|
+
if (!((_a = import.meta.env) === null || _a === void 0 ? void 0 : _a.DEV))
|
|
52
|
+
return;
|
|
53
|
+
if (!isInspectorActive())
|
|
54
|
+
return;
|
|
55
|
+
postToParent('asyar:dev:ipc-log', payload);
|
|
56
|
+
}
|
|
57
|
+
function postToParent(type, payload) {
|
|
58
|
+
try {
|
|
59
|
+
if (typeof window === 'undefined')
|
|
60
|
+
return;
|
|
61
|
+
const parent = window.parent;
|
|
62
|
+
if (!parent || parent === window)
|
|
63
|
+
return;
|
|
64
|
+
parent.postMessage({ type, payload }, '*');
|
|
65
|
+
}
|
|
66
|
+
catch (_a) {
|
|
67
|
+
// Fire-and-forget — swallow cross-origin or parent-access errors.
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=devInspectorBridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devInspectorBridge.js","sourceRoot":"","sources":["../../src/ipc/devInspectorBridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA8BH;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IAChD,OAAQ,MAAkE;SACvE,8BAA8B,KAAK,IAAI,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,OAAsB;;IAC/C,wEAAwE;IACxE,oEAAoE;IACpE,mEAAmE;IACnE,yEAAyE;IACzE,uEAAuE;IACvE,0BAA0B;IAC1B,IAAI,CAAC,CAAC,MAAC,MAAM,CAAC,IAA+C,CAAC,GAAG,0CAAE,GAAG,CAAC;QAAE,OAAO;IAChF,IAAI,CAAC,iBAAiB,EAAE;QAAE,OAAO;IACjC,YAAY,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,OAAsB;;IAC/C,IAAI,CAAC,CAAC,MAAC,MAAM,CAAC,IAA+C,CAAC,GAAG,0CAAE,GAAG,CAAC;QAAE,OAAO;IAChF,IAAI,CAAC,iBAAiB,EAAE;QAAE,OAAO;IACjC,YAAY,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,OAAgB;IAClD,IAAI,CAAC;QACH,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO;QACzC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAAC,WAAM,CAAC;QACP,kEAAkE;IACpE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devInspectorBridge.test.d.ts","sourceRoot":"","sources":["../../src/ipc/devInspectorBridge.test.ts"],"names":[],"mappings":""}
|