asyar-sdk 1.0.2
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/LICENSE +661 -0
- package/README.md +165 -0
- package/dist/ExtensionBridge.d.ts +34 -0
- package/dist/ExtensionBridge.d.ts.map +1 -0
- package/dist/ExtensionBridge.js +192 -0
- package/dist/ExtensionBridge.js.map +1 -0
- package/dist/ExtensionContext.d.ts +25 -0
- package/dist/ExtensionContext.d.ts.map +1 -0
- package/dist/ExtensionContext.js +128 -0
- package/dist/ExtensionContext.js.map +1 -0
- package/dist/cli/commands/build.d.ts +5 -0
- package/dist/cli/commands/build.d.ts.map +1 -0
- package/dist/cli/commands/build.js +122 -0
- package/dist/cli/commands/build.js.map +1 -0
- package/dist/cli/commands/dev.d.ts +3 -0
- package/dist/cli/commands/dev.d.ts.map +1 -0
- package/dist/cli/commands/dev.js +85 -0
- package/dist/cli/commands/dev.js.map +1 -0
- package/dist/cli/commands/link.d.ts +6 -0
- package/dist/cli/commands/link.d.ts.map +1 -0
- package/dist/cli/commands/link.js +153 -0
- package/dist/cli/commands/link.js.map +1 -0
- package/dist/cli/commands/publish.d.ts +3 -0
- package/dist/cli/commands/publish.d.ts.map +1 -0
- package/dist/cli/commands/publish.js +344 -0
- package/dist/cli/commands/publish.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +3 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +58 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +20 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/lib/auth.d.ts +16 -0
- package/dist/cli/lib/auth.d.ts.map +1 -0
- package/dist/cli/lib/auth.js +225 -0
- package/dist/cli/lib/auth.js.map +1 -0
- package/dist/cli/lib/config.d.ts +11 -0
- package/dist/cli/lib/config.d.ts.map +1 -0
- package/dist/cli/lib/config.js +77 -0
- package/dist/cli/lib/config.js.map +1 -0
- package/dist/cli/lib/github.d.ts +44 -0
- package/dist/cli/lib/github.d.ts.map +1 -0
- package/dist/cli/lib/github.js +106 -0
- package/dist/cli/lib/github.js.map +1 -0
- package/dist/cli/lib/manifest.d.ts +29 -0
- package/dist/cli/lib/manifest.d.ts.map +1 -0
- package/dist/cli/lib/manifest.js +138 -0
- package/dist/cli/lib/manifest.js.map +1 -0
- package/dist/cli/lib/platform.d.ts +2 -0
- package/dist/cli/lib/platform.d.ts.map +1 -0
- package/dist/cli/lib/platform.js +40 -0
- package/dist/cli/lib/platform.js.map +1 -0
- package/dist/cli/lib/store.d.ts +21 -0
- package/dist/cli/lib/store.d.ts.map +1 -0
- package/dist/cli/lib/store.js +81 -0
- package/dist/cli/lib/store.js.map +1 -0
- package/dist/cli/lib/zip.d.ts +7 -0
- package/dist/cli/lib/zip.d.ts.map +1 -0
- package/dist/cli/lib/zip.js +67 -0
- package/dist/cli/lib/zip.js.map +1 -0
- package/dist/components/index.d.ts +8 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +25 -0
- package/dist/components/index.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/dist/ipc/MessageBroker.d.ts +30 -0
- package/dist/ipc/MessageBroker.d.ts.map +1 -0
- package/dist/ipc/MessageBroker.js +118 -0
- package/dist/ipc/MessageBroker.js.map +1 -0
- package/dist/services/ActionServiceProxy.d.ts +17 -0
- package/dist/services/ActionServiceProxy.d.ts.map +1 -0
- package/dist/services/ActionServiceProxy.js +60 -0
- package/dist/services/ActionServiceProxy.js.map +1 -0
- package/dist/services/ClipboardHistoryServiceProxy.d.ts +26 -0
- package/dist/services/ClipboardHistoryServiceProxy.d.ts.map +1 -0
- package/dist/services/ClipboardHistoryServiceProxy.js +74 -0
- package/dist/services/ClipboardHistoryServiceProxy.js.map +1 -0
- package/dist/services/CommandServiceProxy.d.ts +15 -0
- package/dist/services/CommandServiceProxy.d.ts.map +1 -0
- package/dist/services/CommandServiceProxy.js +44 -0
- package/dist/services/CommandServiceProxy.js.map +1 -0
- package/dist/services/ExtensionManagerProxy.d.ts +25 -0
- package/dist/services/ExtensionManagerProxy.d.ts.map +1 -0
- package/dist/services/ExtensionManagerProxy.js +78 -0
- package/dist/services/ExtensionManagerProxy.js.map +1 -0
- package/dist/services/IClipboardHistoryService.d.ts +24 -0
- package/dist/services/IClipboardHistoryService.d.ts.map +1 -0
- package/dist/services/IClipboardHistoryService.js +3 -0
- package/dist/services/IClipboardHistoryService.js.map +1 -0
- package/dist/services/ICommandService.d.ts +10 -0
- package/dist/services/ICommandService.d.ts.map +1 -0
- package/dist/services/ICommandService.js +3 -0
- package/dist/services/ICommandService.js.map +1 -0
- package/dist/services/IExtensionManager.d.ts +26 -0
- package/dist/services/IExtensionManager.d.ts.map +1 -0
- package/dist/services/IExtensionManager.js +3 -0
- package/dist/services/IExtensionManager.js.map +1 -0
- package/dist/services/INotificationService.d.ts +15 -0
- package/dist/services/INotificationService.d.ts.map +1 -0
- package/dist/services/INotificationService.js +3 -0
- package/dist/services/INotificationService.js.map +1 -0
- package/dist/services/IStatusBarService.d.ts +11 -0
- package/dist/services/IStatusBarService.d.ts.map +1 -0
- package/dist/services/IStatusBarService.js +3 -0
- package/dist/services/IStatusBarService.js.map +1 -0
- package/dist/services/LogService.d.ts +8 -0
- package/dist/services/LogService.d.ts.map +1 -0
- package/dist/services/LogService.js +3 -0
- package/dist/services/LogService.js.map +1 -0
- package/dist/services/LogServiceProxy.d.ts +13 -0
- package/dist/services/LogServiceProxy.d.ts.map +1 -0
- package/dist/services/LogServiceProxy.js +33 -0
- package/dist/services/LogServiceProxy.js.map +1 -0
- package/dist/services/NetworkServiceProxy.d.ts +9 -0
- package/dist/services/NetworkServiceProxy.d.ts.map +1 -0
- package/dist/services/NetworkServiceProxy.js +37 -0
- package/dist/services/NetworkServiceProxy.js.map +1 -0
- package/dist/services/NotificationServiceProxy.d.ts +17 -0
- package/dist/services/NotificationServiceProxy.d.ts.map +1 -0
- package/dist/services/NotificationServiceProxy.js +42 -0
- package/dist/services/NotificationServiceProxy.js.map +1 -0
- package/dist/services/StatusBarServiceProxy.d.ts +11 -0
- package/dist/services/StatusBarServiceProxy.d.ts.map +1 -0
- package/dist/services/StatusBarServiceProxy.js +28 -0
- package/dist/services/StatusBarServiceProxy.js.map +1 -0
- package/dist/services/index.d.ts +15 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +35 -0
- package/dist/services/index.js.map +1 -0
- package/dist/types/ActionType.d.ts +64 -0
- package/dist/types/ActionType.d.ts.map +1 -0
- package/dist/types/ActionType.js +47 -0
- package/dist/types/ActionType.js.map +1 -0
- package/dist/types/ClipboardType.d.ts +20 -0
- package/dist/types/ClipboardType.d.ts.map +1 -0
- package/dist/types/ClipboardType.js +13 -0
- package/dist/types/ClipboardType.js.map +1 -0
- package/dist/types/CommandType.d.ts +36 -0
- package/dist/types/CommandType.d.ts.map +1 -0
- package/dist/types/CommandType.js +3 -0
- package/dist/types/CommandType.js.map +1 -0
- package/dist/types/ExtensionType.d.ts +50 -0
- package/dist/types/ExtensionType.d.ts.map +1 -0
- package/dist/types/ExtensionType.js +3 -0
- package/dist/types/ExtensionType.js.map +1 -0
- package/dist/types/NetworkType.d.ts +17 -0
- package/dist/types/NetworkType.d.ts.map +1 -0
- package/dist/types/NetworkType.js +3 -0
- package/dist/types/NetworkType.js.map +1 -0
- package/dist/types/NotificationType.d.ts +48 -0
- package/dist/types/NotificationType.d.ts.map +1 -0
- package/dist/types/NotificationType.js +3 -0
- package/dist/types/NotificationType.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +19 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MessageBroker = void 0;
|
|
4
|
+
class MessageBroker {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.pendingRequests = new Map();
|
|
7
|
+
this.eventListeners = new Map();
|
|
8
|
+
this.isBrowser = typeof window !== 'undefined' && typeof window.parent !== 'undefined';
|
|
9
|
+
this.setupListeners();
|
|
10
|
+
}
|
|
11
|
+
setExtensionId(id) {
|
|
12
|
+
this.extensionId = id;
|
|
13
|
+
}
|
|
14
|
+
static getInstance() {
|
|
15
|
+
if (!MessageBroker.instance) {
|
|
16
|
+
MessageBroker.instance = new MessageBroker();
|
|
17
|
+
}
|
|
18
|
+
return MessageBroker.instance;
|
|
19
|
+
}
|
|
20
|
+
setupListeners() {
|
|
21
|
+
if (this.isBrowser) {
|
|
22
|
+
window.addEventListener('message', this.handleMessage.bind(this));
|
|
23
|
+
}
|
|
24
|
+
else if (typeof process !== 'undefined') {
|
|
25
|
+
if (process.send) {
|
|
26
|
+
process.on('message', this.handleMessage.bind(this));
|
|
27
|
+
}
|
|
28
|
+
else if (process.stdin) {
|
|
29
|
+
process.stdin.on('data', (data) => {
|
|
30
|
+
try {
|
|
31
|
+
const messages = data.toString().split('\n').filter(Boolean);
|
|
32
|
+
for (const msgStr of messages) {
|
|
33
|
+
const msg = JSON.parse(msgStr);
|
|
34
|
+
this.handleMessage(msg);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
console.error('Failed to parse IPC message from stdin', e);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
handleMessage(event) {
|
|
45
|
+
var _a, _b, _c;
|
|
46
|
+
const data = this.isBrowser ? event.data : event;
|
|
47
|
+
if (!data || typeof data !== 'object')
|
|
48
|
+
return;
|
|
49
|
+
if (data.type === 'asyar:response') {
|
|
50
|
+
const response = data;
|
|
51
|
+
const pending = this.pendingRequests.get(response.messageId);
|
|
52
|
+
if (pending) {
|
|
53
|
+
if (response.error) {
|
|
54
|
+
pending.reject(new Error(response.error));
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
pending.resolve(response.result);
|
|
58
|
+
}
|
|
59
|
+
this.pendingRequests.delete(response.messageId);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
else if ((_a = data.type) === null || _a === void 0 ? void 0 : _a.startsWith('asyar:event:')) {
|
|
63
|
+
const listeners = this.eventListeners.get(data.type);
|
|
64
|
+
if (listeners) {
|
|
65
|
+
listeners.forEach(listener => listener(data.payload));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else if ((_b = data.type) === null || _b === void 0 ? void 0 : _b.startsWith('asyar:invoke:')) {
|
|
69
|
+
// Main app calling an extension function
|
|
70
|
+
const listeners = this.eventListeners.get(data.type);
|
|
71
|
+
if (listeners) {
|
|
72
|
+
listeners.forEach(listener => listener(data));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
else if (data.messageId && ((_c = data.type) === null || _c === void 0 ? void 0 : _c.startsWith('asyar:api:'))) {
|
|
76
|
+
// Ignore messages intended for main app if they loop back somehow
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
generateId() {
|
|
81
|
+
return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
|
|
82
|
+
}
|
|
83
|
+
invoke(command, payload, extensionId) {
|
|
84
|
+
return new Promise((resolve, reject) => {
|
|
85
|
+
const messageId = this.generateId();
|
|
86
|
+
this.pendingRequests.set(messageId, { resolve, reject });
|
|
87
|
+
const message = Object.assign({ type: `asyar:api:${command}`, payload: payload || {}, messageId }, (extensionId ? { extensionId } : {}));
|
|
88
|
+
this.send(message);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
send(message) {
|
|
92
|
+
if (this.isBrowser) {
|
|
93
|
+
window.parent.postMessage(message, '*');
|
|
94
|
+
}
|
|
95
|
+
else if (typeof process !== 'undefined') {
|
|
96
|
+
if (process.send) {
|
|
97
|
+
process.send(message);
|
|
98
|
+
}
|
|
99
|
+
else if (process.stdout) {
|
|
100
|
+
process.stdout.write(JSON.stringify(message) + '\n');
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
on(event, listener) {
|
|
105
|
+
if (!this.eventListeners.has(event)) {
|
|
106
|
+
this.eventListeners.set(event, new Set());
|
|
107
|
+
}
|
|
108
|
+
this.eventListeners.get(event).add(listener);
|
|
109
|
+
}
|
|
110
|
+
off(event, listener) {
|
|
111
|
+
const listeners = this.eventListeners.get(event);
|
|
112
|
+
if (listeners) {
|
|
113
|
+
listeners.delete(listener);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.MessageBroker = MessageBroker;
|
|
118
|
+
//# sourceMappingURL=MessageBroker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageBroker.js","sourceRoot":"","sources":["../../src/ipc/MessageBroker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IActionService, ExtensionAction, ActionContext } from "../types";
|
|
2
|
+
export declare class ActionServiceProxy implements IActionService {
|
|
3
|
+
private broker;
|
|
4
|
+
private currentContext;
|
|
5
|
+
private extensionId?;
|
|
6
|
+
constructor();
|
|
7
|
+
setExtensionId(id: string): void;
|
|
8
|
+
registerAction(action: ExtensionAction): void;
|
|
9
|
+
unregisterAction(actionId: string): void;
|
|
10
|
+
getActions(context?: ActionContext): ExtensionAction[];
|
|
11
|
+
executeAction(actionId: string): Promise<void>;
|
|
12
|
+
setContext(context: ActionContext, data?: {
|
|
13
|
+
commandId?: string;
|
|
14
|
+
}): void;
|
|
15
|
+
getContext(): ActionContext;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=ActionServiceProxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionServiceProxy.d.ts","sourceRoot":"","sources":["../../src/services/ActionServiceProxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAI1E,qBAAa,kBAAmB,YAAW,cAAc;IACvD,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,WAAW,CAAC,CAAS;;IAM7B,cAAc,CAAC,EAAE,EAAE,MAAM;IAOzB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAQ7C,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKxC,UAAU,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,eAAe,EAAE;IAStD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAKvE,UAAU,IAAI,aAAa;CAI5B"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.ActionServiceProxy = void 0;
|
|
15
|
+
const types_1 = require("../types");
|
|
16
|
+
const MessageBroker_1 = require("../ipc/MessageBroker");
|
|
17
|
+
const ExtensionBridge_1 = require("../ExtensionBridge");
|
|
18
|
+
class ActionServiceProxy {
|
|
19
|
+
constructor() {
|
|
20
|
+
this.currentContext = types_1.ActionContext.GLOBAL;
|
|
21
|
+
this.broker = MessageBroker_1.MessageBroker.getInstance();
|
|
22
|
+
}
|
|
23
|
+
setExtensionId(id) {
|
|
24
|
+
this.extensionId = id;
|
|
25
|
+
const originalInvoke = this.broker.invoke.bind(this.broker);
|
|
26
|
+
this.broker = Object.create(this.broker);
|
|
27
|
+
this.broker.invoke = (command, payload) => originalInvoke(command, payload, id);
|
|
28
|
+
}
|
|
29
|
+
registerAction(action) {
|
|
30
|
+
ExtensionBridge_1.ExtensionBridge.getInstance().registerAction(action.extensionId, action);
|
|
31
|
+
// We shouldn't serialize the `execute` function for IPC, so we omit it
|
|
32
|
+
const { execute } = action, actionData = __rest(action, ["execute"]);
|
|
33
|
+
this.broker.invoke('action:registerAction', { action: actionData }).catch(console.error);
|
|
34
|
+
}
|
|
35
|
+
unregisterAction(actionId) {
|
|
36
|
+
ExtensionBridge_1.ExtensionBridge.getInstance().unregisterAction(actionId);
|
|
37
|
+
this.broker.invoke('action:unregisterAction', { actionId }).catch(console.error);
|
|
38
|
+
}
|
|
39
|
+
getActions(context) {
|
|
40
|
+
console.warn('getActions called synchronously in proxy.');
|
|
41
|
+
const allActions = ExtensionBridge_1.ExtensionBridge.getInstance().getActions();
|
|
42
|
+
if (context) {
|
|
43
|
+
return allActions.filter(a => a.context === context);
|
|
44
|
+
}
|
|
45
|
+
return allActions;
|
|
46
|
+
}
|
|
47
|
+
executeAction(actionId) {
|
|
48
|
+
return this.broker.invoke('action:executeAction', { actionId });
|
|
49
|
+
}
|
|
50
|
+
setContext(context, data) {
|
|
51
|
+
this.currentContext = context;
|
|
52
|
+
this.broker.invoke('action:setContext', { context, data }).catch(console.error);
|
|
53
|
+
}
|
|
54
|
+
getContext() {
|
|
55
|
+
console.warn('getContext called synchronously in proxy.');
|
|
56
|
+
return this.currentContext;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.ActionServiceProxy = ActionServiceProxy;
|
|
60
|
+
//# sourceMappingURL=ActionServiceProxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionServiceProxy.js","sourceRoot":"","sources":["../../src/services/ActionServiceProxy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,oCAA0E;AAC1E,wDAAqD;AACrD,wDAAqD;AAErD,MAAa,kBAAkB;IAK7B;QAHQ,mBAAc,GAAkB,qBAAa,CAAC,MAAM,CAAC;QAI3D,IAAI,CAAC,MAAM,GAAG,6BAAa,CAAC,WAAW,EAAE,CAAC;IAC5C,CAAC;IAED,cAAc,CAAC,EAAU;QACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAI,OAAe,EAAE,OAAa,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,cAAc,CAAC,MAAuB;QACpC,iCAAe,CAAC,WAAW,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAEzE,uEAAuE;QACvE,MAAM,EAAE,OAAO,KAAoB,MAAM,EAArB,UAAU,UAAK,MAAM,EAAnC,WAA0B,CAAS,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3F,CAAC;IAED,gBAAgB,CAAC,QAAgB;QAC/B,iCAAe,CAAC,WAAW,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACnF,CAAC;IAED,UAAU,CAAC,OAAuB;QAChC,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,iCAAe,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,CAAC;QAC9D,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,aAAa,CAAC,QAAgB;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAO,sBAAsB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,UAAU,CAAC,OAAsB,EAAE,IAA6B;QAC9D,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClF,CAAC;IAED,UAAU;QACR,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;CACF;AAnDD,gDAmDC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { IClipboardHistoryService } from "./IClipboardHistoryService";
|
|
2
|
+
import { ClipboardHistoryItem, ClipboardItemType } from "../types";
|
|
3
|
+
export declare class ClipboardHistoryServiceProxy implements IClipboardHistoryService {
|
|
4
|
+
private broker;
|
|
5
|
+
private extensionId?;
|
|
6
|
+
constructor();
|
|
7
|
+
setExtensionId(id: string): void;
|
|
8
|
+
initialize(): Promise<void>;
|
|
9
|
+
stopMonitoring(): void;
|
|
10
|
+
formatClipboardItem(item: ClipboardHistoryItem): string;
|
|
11
|
+
pasteItem(item: ClipboardHistoryItem): Promise<void>;
|
|
12
|
+
hideWindow(): Promise<void>;
|
|
13
|
+
simulatePaste(): Promise<boolean>;
|
|
14
|
+
writeToClipboard(item: ClipboardHistoryItem): Promise<void>;
|
|
15
|
+
getRecentItems(limit?: number): Promise<ClipboardHistoryItem[]>;
|
|
16
|
+
toggleItemFavorite(itemId: string): Promise<boolean>;
|
|
17
|
+
deleteItem(itemId: string): Promise<boolean>;
|
|
18
|
+
clearNonFavorites(): Promise<boolean>;
|
|
19
|
+
normalizeImageData(content: string): string;
|
|
20
|
+
isValidImageData(content: string): boolean;
|
|
21
|
+
readCurrentClipboard(): Promise<{
|
|
22
|
+
type: ClipboardItemType;
|
|
23
|
+
content: string;
|
|
24
|
+
}>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=ClipboardHistoryServiceProxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClipboardHistoryServiceProxy.d.ts","sourceRoot":"","sources":["../../src/services/ClipboardHistoryServiceProxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEnE,qBAAa,4BAA6B,YAAW,wBAAwB;IAC3E,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,WAAW,CAAC,CAAS;;IAM7B,cAAc,CAAC,EAAE,EAAE,MAAM;IAOzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,cAAc,IAAI,IAAI;IAOtB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;IAWvD,SAAS,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAI/D,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5C,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAM3C,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAK1C,oBAAoB,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,iBAAiB,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAG9E"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClipboardHistoryServiceProxy = void 0;
|
|
4
|
+
const MessageBroker_1 = require("../ipc/MessageBroker");
|
|
5
|
+
const types_1 = require("../types");
|
|
6
|
+
class ClipboardHistoryServiceProxy {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.broker = MessageBroker_1.MessageBroker.getInstance();
|
|
9
|
+
}
|
|
10
|
+
setExtensionId(id) {
|
|
11
|
+
this.extensionId = id;
|
|
12
|
+
const originalInvoke = this.broker.invoke.bind(this.broker);
|
|
13
|
+
this.broker = Object.create(this.broker);
|
|
14
|
+
this.broker.invoke = (command, payload) => originalInvoke(command, payload, id);
|
|
15
|
+
}
|
|
16
|
+
initialize() {
|
|
17
|
+
return this.broker.invoke('clipboard:initialize');
|
|
18
|
+
}
|
|
19
|
+
stopMonitoring() {
|
|
20
|
+
this.broker.invoke('clipboard:stopMonitoring').catch(console.error);
|
|
21
|
+
}
|
|
22
|
+
// Note: formatClipboardItem seems like a synchronous formatting task.
|
|
23
|
+
// It might be better executed directly if it's purely formatting text,
|
|
24
|
+
// but if it relies on backend state, we proxy it. Assuming proxy to be safe.
|
|
25
|
+
formatClipboardItem(item) {
|
|
26
|
+
// If it's a synchronous method in the interface and we must return a string immediately,
|
|
27
|
+
// we can't use an async IPC call easily unless we change the interface.
|
|
28
|
+
// However, looking at the interface: `formatClipboardItem(item: ClipboardHistoryItem): string;`
|
|
29
|
+
// I'll implement a basic formatting here, as making it async breaks the interface.
|
|
30
|
+
if (item.type === types_1.ClipboardItemType.Text || item.type === types_1.ClipboardItemType.Html) {
|
|
31
|
+
return item.content || '';
|
|
32
|
+
}
|
|
33
|
+
return `[${item.type} item]`;
|
|
34
|
+
}
|
|
35
|
+
pasteItem(item) {
|
|
36
|
+
return this.broker.invoke('clipboard:pasteItem', { item });
|
|
37
|
+
}
|
|
38
|
+
hideWindow() {
|
|
39
|
+
return this.broker.invoke('clipboard:hideWindow');
|
|
40
|
+
}
|
|
41
|
+
simulatePaste() {
|
|
42
|
+
return this.broker.invoke('clipboard:simulatePaste');
|
|
43
|
+
}
|
|
44
|
+
writeToClipboard(item) {
|
|
45
|
+
return this.broker.invoke('clipboard:writeToClipboard', { item });
|
|
46
|
+
}
|
|
47
|
+
getRecentItems(limit) {
|
|
48
|
+
return this.broker.invoke('clipboard:getRecentItems', { limit });
|
|
49
|
+
}
|
|
50
|
+
toggleItemFavorite(itemId) {
|
|
51
|
+
return this.broker.invoke('clipboard:toggleItemFavorite', { itemId });
|
|
52
|
+
}
|
|
53
|
+
deleteItem(itemId) {
|
|
54
|
+
return this.broker.invoke('clipboard:deleteItem', { itemId });
|
|
55
|
+
}
|
|
56
|
+
clearNonFavorites() {
|
|
57
|
+
return this.broker.invoke('clipboard:clearNonFavorites');
|
|
58
|
+
}
|
|
59
|
+
normalizeImageData(content) {
|
|
60
|
+
// Synchronous method.
|
|
61
|
+
if (content.startsWith('data:image'))
|
|
62
|
+
return content;
|
|
63
|
+
return `data:image/png;base64,${content}`;
|
|
64
|
+
}
|
|
65
|
+
isValidImageData(content) {
|
|
66
|
+
// Synchronous method.
|
|
67
|
+
return content.startsWith('data:image') || /^[A-Za-z0-9+/=]+$/.test(content);
|
|
68
|
+
}
|
|
69
|
+
readCurrentClipboard() {
|
|
70
|
+
return this.broker.invoke('clipboard:readCurrentClipboard');
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.ClipboardHistoryServiceProxy = ClipboardHistoryServiceProxy;
|
|
74
|
+
//# sourceMappingURL=ClipboardHistoryServiceProxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClipboardHistoryServiceProxy.js","sourceRoot":"","sources":["../../src/services/ClipboardHistoryServiceProxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ICommandService } from "./ICommandService";
|
|
2
|
+
import { CommandHandler, ExtensionAction } from "../types";
|
|
3
|
+
export declare class CommandServiceProxy implements ICommandService {
|
|
4
|
+
private broker;
|
|
5
|
+
private extensionId?;
|
|
6
|
+
constructor();
|
|
7
|
+
setExtensionId(id: string): void;
|
|
8
|
+
registerCommand(commandId: string, handler: CommandHandler, extensionId: string, actions?: Omit<ExtensionAction, 'extensionId'>[]): void;
|
|
9
|
+
unregisterCommand(commandId: string): void;
|
|
10
|
+
executeCommand(commandId: string, args?: Record<string, any>): Promise<any>;
|
|
11
|
+
getCommands(): string[];
|
|
12
|
+
getCommandsForExtension(extensionId: string): string[];
|
|
13
|
+
clearCommandsForExtension(extensionId: string): void;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=CommandServiceProxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandServiceProxy.d.ts","sourceRoot":"","sources":["../../src/services/CommandServiceProxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAI3D,qBAAa,mBAAoB,YAAW,eAAe;IACzD,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,WAAW,CAAC,CAAS;;IAM7B,cAAc,CAAC,EAAE,EAAE,MAAM;IAOzB,eAAe,CACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,EAAE,GAC/C,IAAI;IAQP,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAK1C,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAI3E,WAAW,IAAI,MAAM,EAAE;IAKvB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE;IAKtD,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;CAKrD"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommandServiceProxy = void 0;
|
|
4
|
+
const MessageBroker_1 = require("../ipc/MessageBroker");
|
|
5
|
+
const ExtensionBridge_1 = require("../ExtensionBridge");
|
|
6
|
+
class CommandServiceProxy {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.broker = MessageBroker_1.MessageBroker.getInstance();
|
|
9
|
+
}
|
|
10
|
+
setExtensionId(id) {
|
|
11
|
+
this.extensionId = id;
|
|
12
|
+
const originalInvoke = this.broker.invoke.bind(this.broker);
|
|
13
|
+
this.broker = Object.create(this.broker);
|
|
14
|
+
this.broker.invoke = (command, payload) => originalInvoke(command, payload, id);
|
|
15
|
+
}
|
|
16
|
+
registerCommand(commandId, handler, extensionId, actions) {
|
|
17
|
+
// We register it locally so the extension can handle it when called back.
|
|
18
|
+
ExtensionBridge_1.ExtensionBridge.getInstance().registerCommand(commandId, handler, extensionId);
|
|
19
|
+
// Notify the main app
|
|
20
|
+
this.broker.invoke('command:registerCommand', { commandId, extensionId, actions }).catch(console.error);
|
|
21
|
+
}
|
|
22
|
+
unregisterCommand(commandId) {
|
|
23
|
+
ExtensionBridge_1.ExtensionBridge.getInstance().unregisterCommand(commandId);
|
|
24
|
+
this.broker.invoke('command:unregisterCommand', { commandId }).catch(console.error);
|
|
25
|
+
}
|
|
26
|
+
executeCommand(commandId, args) {
|
|
27
|
+
return this.broker.invoke('command:executeCommand', { commandId, args });
|
|
28
|
+
}
|
|
29
|
+
getCommands() {
|
|
30
|
+
console.warn('getCommands called synchronously in proxy.');
|
|
31
|
+
return ExtensionBridge_1.ExtensionBridge.getInstance().getCommands();
|
|
32
|
+
}
|
|
33
|
+
getCommandsForExtension(extensionId) {
|
|
34
|
+
console.warn('getCommandsForExtension called synchronously in proxy.');
|
|
35
|
+
return ExtensionBridge_1.ExtensionBridge.getInstance().getCommandsForExtension(extensionId);
|
|
36
|
+
}
|
|
37
|
+
clearCommandsForExtension(extensionId) {
|
|
38
|
+
// It's tricky to implement synchronously when the master list is in main.
|
|
39
|
+
// Assuming mostly local clearing is needed inside iframe.
|
|
40
|
+
this.broker.invoke('command:clearCommandsForExtension', { extensionId }).catch(console.error);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.CommandServiceProxy = CommandServiceProxy;
|
|
44
|
+
//# sourceMappingURL=CommandServiceProxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandServiceProxy.js","sourceRoot":"","sources":["../../src/services/CommandServiceProxy.ts"],"names":[],"mappings":";;;AAEA,wDAAqD;AACrD,wDAAqD;AAErD,MAAa,mBAAmB;IAI9B;QACE,IAAI,CAAC,MAAM,GAAG,6BAAa,CAAC,WAAW,EAAE,CAAC;IAC5C,CAAC;IAED,cAAc,CAAC,EAAU;QACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAI,OAAe,EAAE,OAAa,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,eAAe,CACb,SAAiB,EACjB,OAAuB,EACvB,WAAmB,EACnB,OAAgD;QAEhD,0EAA0E;QAC1E,iCAAe,CAAC,WAAW,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAE/E,sBAAsB;QACtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1G,CAAC;IAED,iBAAiB,CAAC,SAAiB;QACjC,iCAAe,CAAC,WAAW,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,2BAA2B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;IAED,cAAc,CAAC,SAAiB,EAAE,IAA0B;QAC1D,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAM,wBAAwB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,WAAW;QACT,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC3D,OAAO,iCAAe,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,CAAC;IACrD,CAAC;IAED,uBAAuB,CAAC,WAAmB;QACzC,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACvE,OAAO,iCAAe,CAAC,WAAW,EAAE,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAC5E,CAAC;IAED,yBAAyB,CAAC,WAAmB;QAC3C,0EAA0E;QAC1E,0DAA0D;QAC1D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mCAAmC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChG,CAAC;CACF;AApDD,kDAoDC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { IExtensionManager } from "./IExtensionManager";
|
|
2
|
+
import { ExtensionResult } from "../types/ExtensionType";
|
|
3
|
+
export declare class ExtensionManagerProxy implements IExtensionManager {
|
|
4
|
+
private broker;
|
|
5
|
+
private _currentExtension;
|
|
6
|
+
private extensionId?;
|
|
7
|
+
constructor();
|
|
8
|
+
setExtensionId(id: string): void;
|
|
9
|
+
get currentExtension(): any;
|
|
10
|
+
set currentExtension(value: any);
|
|
11
|
+
init(): Promise<boolean>;
|
|
12
|
+
loadExtensions(): Promise<void>;
|
|
13
|
+
reloadExtensions(): Promise<void>;
|
|
14
|
+
isExtensionEnabled(extensionName: string): boolean;
|
|
15
|
+
toggleExtensionState(extensionName: string, enabled: boolean): Promise<boolean>;
|
|
16
|
+
getAllExtensionsWithState(): Promise<any[]>;
|
|
17
|
+
searchAll(query: string): Promise<ExtensionResult[]>;
|
|
18
|
+
handleViewSearch(query: string): Promise<void>;
|
|
19
|
+
navigateToView(viewPath: string): void;
|
|
20
|
+
goBack(): void;
|
|
21
|
+
getAllExtensions(): Promise<any[]>;
|
|
22
|
+
uninstallExtension(extensionId: string, extensionName: string): Promise<boolean>;
|
|
23
|
+
setActiveViewActionLabel(label: string | null): void;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=ExtensionManagerProxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtensionManagerProxy.d.ts","sourceRoot":"","sources":["../../src/services/ExtensionManagerProxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,qBAAa,qBAAsB,YAAW,iBAAiB;IAC7D,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,WAAW,CAAC,CAAS;;IAS7B,cAAc,CAAC,EAAE,EAAE,MAAM;IAOzB,IAAI,gBAAgB,IAAI,GAAG,CAE1B;IAED,IAAI,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAE9B;IAED,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAIxB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAKlD,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/E,yBAAyB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAI3C,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAIpD,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAYtC,MAAM,IAAI,IAAI;IAId,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAIlC,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIhF,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;CAGrD"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExtensionManagerProxy = void 0;
|
|
4
|
+
const MessageBroker_1 = require("../ipc/MessageBroker");
|
|
5
|
+
class ExtensionManagerProxy {
|
|
6
|
+
constructor() {
|
|
7
|
+
this._currentExtension = null;
|
|
8
|
+
this.broker = MessageBroker_1.MessageBroker.getInstance();
|
|
9
|
+
// In an iframe context, the current extension ID should ideally be
|
|
10
|
+
// initialized via a message from the host, but we can set up a listener for it
|
|
11
|
+
// if the main process sends the state.
|
|
12
|
+
}
|
|
13
|
+
setExtensionId(id) {
|
|
14
|
+
this.extensionId = id;
|
|
15
|
+
const originalInvoke = this.broker.invoke.bind(this.broker);
|
|
16
|
+
this.broker = Object.create(this.broker);
|
|
17
|
+
this.broker.invoke = (command, payload) => originalInvoke(command, payload, id);
|
|
18
|
+
}
|
|
19
|
+
get currentExtension() {
|
|
20
|
+
return this._currentExtension;
|
|
21
|
+
}
|
|
22
|
+
set currentExtension(value) {
|
|
23
|
+
this._currentExtension = value;
|
|
24
|
+
}
|
|
25
|
+
init() {
|
|
26
|
+
return this.broker.invoke('extension:init');
|
|
27
|
+
}
|
|
28
|
+
loadExtensions() {
|
|
29
|
+
return this.broker.invoke('extension:loadExtensions');
|
|
30
|
+
}
|
|
31
|
+
reloadExtensions() {
|
|
32
|
+
return this.broker.invoke('extension:reloadExtensions');
|
|
33
|
+
}
|
|
34
|
+
// NOTE: isExtensionEnabled is a synchronous method in the interface
|
|
35
|
+
// which might be tricky with IPC. Returning a dummy value for now,
|
|
36
|
+
// though extensions shouldn't usually check this synchronously.
|
|
37
|
+
isExtensionEnabled(extensionName) {
|
|
38
|
+
console.warn('isExtensionEnabled called synchronously in proxy. Returning true as fallback.');
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
toggleExtensionState(extensionName, enabled) {
|
|
42
|
+
return this.broker.invoke('extension:toggleExtensionState', { extensionName, enabled });
|
|
43
|
+
}
|
|
44
|
+
getAllExtensionsWithState() {
|
|
45
|
+
return this.broker.invoke('extension:getAllExtensionsWithState');
|
|
46
|
+
}
|
|
47
|
+
searchAll(query) {
|
|
48
|
+
return this.broker.invoke('extension:searchAll', { query });
|
|
49
|
+
}
|
|
50
|
+
handleViewSearch(query) {
|
|
51
|
+
return this.broker.invoke('extension:handleViewSearch', { query });
|
|
52
|
+
}
|
|
53
|
+
navigateToView(viewPath) {
|
|
54
|
+
// [ARCHITECTURE SAFEGUARD]: IPC PAYLOAD STRUCTURE
|
|
55
|
+
// The Host Window (ExtensionManager.ts) dynamically unpacks IPC method payloads
|
|
56
|
+
// into positional arguments using `Object.values(payload)`.
|
|
57
|
+
// Therefore, EVERY proxy method here MUST send its payload as a named-key object
|
|
58
|
+
// where the keys correspond to the target method's parameter names in order.
|
|
59
|
+
// Example: Sending `{ viewPath }` becomes `navigateToView(viewPath)`.
|
|
60
|
+
// NEVER send raw primitives like `this.broker.invoke('...', viewPath)`, as it
|
|
61
|
+
// will break the Host's generic argument deserializer.
|
|
62
|
+
this.broker.invoke('extension:navigateToView', { viewPath }).catch(console.error);
|
|
63
|
+
}
|
|
64
|
+
goBack() {
|
|
65
|
+
this.broker.invoke('extension:goBack').catch(console.error);
|
|
66
|
+
}
|
|
67
|
+
getAllExtensions() {
|
|
68
|
+
return this.broker.invoke('extension:getAllExtensions');
|
|
69
|
+
}
|
|
70
|
+
uninstallExtension(extensionId, extensionName) {
|
|
71
|
+
return this.broker.invoke('extension:uninstallExtension', { extensionId, extensionName });
|
|
72
|
+
}
|
|
73
|
+
setActiveViewActionLabel(label) {
|
|
74
|
+
this.broker.invoke('extension:setActiveViewActionLabel', { label }).catch(console.error);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.ExtensionManagerProxy = ExtensionManagerProxy;
|
|
78
|
+
//# sourceMappingURL=ExtensionManagerProxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtensionManagerProxy.js","sourceRoot":"","sources":["../../src/services/ExtensionManagerProxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ClipboardHistoryItem, ClipboardItemType } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Interface for Clipboard History Service
|
|
4
|
+
*/
|
|
5
|
+
export interface IClipboardHistoryService {
|
|
6
|
+
initialize(): Promise<void>;
|
|
7
|
+
stopMonitoring(): void;
|
|
8
|
+
formatClipboardItem(item: ClipboardHistoryItem): string;
|
|
9
|
+
pasteItem(item: ClipboardHistoryItem): Promise<void>;
|
|
10
|
+
hideWindow(): Promise<void>;
|
|
11
|
+
simulatePaste(): Promise<boolean>;
|
|
12
|
+
writeToClipboard(item: ClipboardHistoryItem): Promise<void>;
|
|
13
|
+
getRecentItems(limit?: number): Promise<ClipboardHistoryItem[]>;
|
|
14
|
+
toggleItemFavorite(itemId: string): Promise<boolean>;
|
|
15
|
+
deleteItem(itemId: string): Promise<boolean>;
|
|
16
|
+
clearNonFavorites(): Promise<boolean>;
|
|
17
|
+
normalizeImageData(content: string): string;
|
|
18
|
+
isValidImageData(content: string): boolean;
|
|
19
|
+
readCurrentClipboard(): Promise<{
|
|
20
|
+
type: ClipboardItemType;
|
|
21
|
+
content: string;
|
|
22
|
+
}>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=IClipboardHistoryService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IClipboardHistoryService.d.ts","sourceRoot":"","sources":["../../src/services/IClipboardHistoryService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,cAAc,IAAI,IAAI,CAAC;IACvB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,CAAC;IACxD,SAAS,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAChE,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5C,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3C,oBAAoB,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,iBAAiB,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IClipboardHistoryService.js","sourceRoot":"","sources":["../../src/services/IClipboardHistoryService.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CommandHandler, ExtensionAction } from '../types';
|
|
2
|
+
export interface ICommandService {
|
|
3
|
+
registerCommand(commandId: string, handler: CommandHandler, extensionId: string, actions?: Omit<ExtensionAction, 'extensionId'>[]): void;
|
|
4
|
+
unregisterCommand(commandId: string): void;
|
|
5
|
+
executeCommand(commandId: string, args?: Record<string, any>): Promise<any>;
|
|
6
|
+
getCommands(): string[];
|
|
7
|
+
getCommandsForExtension(extensionId: string): string[];
|
|
8
|
+
clearCommandsForExtension(extensionId: string): void;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=ICommandService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ICommandService.d.ts","sourceRoot":"","sources":["../../src/services/ICommandService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3D,MAAM,WAAW,eAAe;IAC9B,eAAe,CACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,EAAE,GAC/C,IAAI,CAAC;IACR,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5E,WAAW,IAAI,MAAM,EAAE,CAAC;IACxB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvD,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACtD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ICommandService.js","sourceRoot":"","sources":["../../src/services/ICommandService.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ExtensionResult } from "../types/ExtensionType";
|
|
2
|
+
/**
|
|
3
|
+
* Interface for Extension Manager
|
|
4
|
+
*/
|
|
5
|
+
export interface IExtensionManager {
|
|
6
|
+
init(): Promise<boolean>;
|
|
7
|
+
loadExtensions(): Promise<void>;
|
|
8
|
+
reloadExtensions(): Promise<void>;
|
|
9
|
+
isExtensionEnabled(extensionName: string): boolean;
|
|
10
|
+
toggleExtensionState(extensionName: string, enabled: boolean): Promise<boolean>;
|
|
11
|
+
getAllExtensionsWithState(): Promise<any[]>;
|
|
12
|
+
searchAll(query: string): Promise<ExtensionResult[]>;
|
|
13
|
+
handleViewSearch(query: string): Promise<void>;
|
|
14
|
+
navigateToView(viewPath: string): void;
|
|
15
|
+
goBack(): void;
|
|
16
|
+
getAllExtensions(): Promise<any[]>;
|
|
17
|
+
uninstallExtension(extensionId: string, extensionName: string): Promise<boolean>;
|
|
18
|
+
currentExtension: any;
|
|
19
|
+
/**
|
|
20
|
+
* Allows an active view extension to suggest a primary action label
|
|
21
|
+
* to be displayed in the UI (e.g., in the bottom action bar).
|
|
22
|
+
* @param label The suggested label (e.g., "Paste", "Save"), or null to clear.
|
|
23
|
+
*/
|
|
24
|
+
setActiveViewActionLabel(label: string | null): void;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=IExtensionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IExtensionManager.d.ts","sourceRoot":"","sources":["../../src/services/IExtensionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACzB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IACnD,oBAAoB,CAClB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,yBAAyB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5C,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IACrD,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,MAAM,IAAI,IAAI,CAAC;IACf,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnC,kBAAkB,CAChB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,gBAAgB,EAAE,GAAG,CAAC;IACtB;;;;OAIG;IACH,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;CACtD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IExtensionManager.js","sourceRoot":"","sources":["../../src/services/IExtensionManager.ts"],"names":[],"mappings":""}
|