@beekeeperstudio/plugin 1.0.11 → 1.2.1
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 +6 -6
- package/dist/eventForwarder.js +1 -1
- package/dist/eventForwarder.js.map +1 -1
- package/dist/index.d.ts +143 -81
- package/dist/index.js +65 -10
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
# @beekeeperstudio/plugin
|
|
2
2
|
|
|
3
|
-
A
|
|
3
|
+
A tiny wrapper of `window.postMessage` for building Beekeeper Studio plugins with TypeScript support.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
npm install
|
|
8
|
+
npm install @beekeeperstudio/plugin
|
|
9
9
|
# or
|
|
10
|
-
yarn add
|
|
10
|
+
yarn add @beekeeperstudio/plugin
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
## Quick Start
|
|
14
14
|
|
|
15
15
|
```typescript
|
|
16
|
-
import {
|
|
16
|
+
import { getTables, runQuery } from '@beekeeperstudio/plugin';
|
|
17
17
|
|
|
18
18
|
// Get all tables in the current database
|
|
19
|
-
const tables = await
|
|
19
|
+
const tables = await getTables();
|
|
20
20
|
|
|
21
21
|
// Run a SQL query
|
|
22
|
-
const result = await
|
|
22
|
+
const result = await runQuery({ query: 'SELECT * FROM users LIMIT 10' });
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
## Development
|
package/dist/eventForwarder.js
CHANGED
|
@@ -8,7 +8,7 @@ window.addEventListener("message", (event) => {
|
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
if (id && pendingRequests.has(id)) {
|
|
11
|
-
const { resolve, reject,
|
|
11
|
+
const { resolve, reject, payload } = pendingRequests.get(id);
|
|
12
12
|
pendingRequests.delete(id);
|
|
13
13
|
if (error) {
|
|
14
14
|
reject(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventForwarder.js","sources":["../src/comms.ts","../src/eventForwarder.ts"],"sourcesContent":["import type {\n GetTablesRequest,\n GetColumnsRequest,\n RunQueryRequest,\n ExpandTableResultRequest,\n SetTabTitleRequest,\n GetViewStateRequest,\n SetViewStateRequest,\n OpenExternalRequest,\n GetEncryptedDataRequest,\n SetEncryptedDataRequest,\n GetDataRequest,\n SetDataRequest,\n} from \"./requestTypes\";\nimport type {\n GetTablesResponse,\n GetColumnsResponse,\n GetConnectionInfoResponse,\n GetAllTabsResponse,\n RunQueryResponse,\n ExpandTableResultResponse,\n SetTabTitleResponse,\n GetViewStateResponse,\n SetViewStateResponse,\n OpenExternalResponse,\n GetEncryptedDataResponse,\n SetEncryptedDataResponse,\n GetDataResponse,\n SetDataResponse,\n} from \"./responseTypes\";\nimport { generateUUID } from \"./utils\";\n\n// Define a custom import.meta interface for TypeScript\ndeclare global {\n interface ImportMeta {\n env: {\n MODE: string;\n };\n }\n}\n\nconst pendingRequests = new Map<\n string,\n {\n name: string;\n resolve: (value: any) => void;\n reject: (reason?: any) => void;\n }\n>();\n\nlet debugComms = false;\n\nexport function setDebugComms(value: boolean) {\n debugComms = value;\n}\n\nwindow.addEventListener(\"message\", (event) => {\n const { id, name, args, result, error } = event.data || {};\n\n if (name) {\n if (debugComms) {\n const time = new Date().toLocaleTimeString(\"en-GB\");\n console.groupCollapsed(`${time} [NOTIFICATION] ${name}`);\n console.log(\"Args:\", args);\n console.groupEnd();\n }\n\n const handlers = notificationListeners.get(name);\n if (handlers) {\n handlers.forEach((handler) => handler(args));\n }\n }\n\n if (id && pendingRequests.has(id)) {\n const { resolve, reject, name } = pendingRequests.get(id)!;\n pendingRequests.delete(id);\n\n if (debugComms) {\n const time = new Date().toLocaleTimeString(\"en-GB\");\n console.groupCollapsed(`${time} [RESPONSE] ${name}`);\n console.log(\"Result:\", result);\n if (error) console.error(\"Error:\", error);\n console.groupEnd();\n }\n\n if (error) {\n reject(error);\n } else {\n resolve(result);\n }\n }\n});\n\nexport async function request(name: \"getTables\", args?: GetTablesRequest[\"args\"]): Promise<GetTablesResponse>;\nexport async function request(name: \"getColumns\", args: GetColumnsRequest[\"args\"]): Promise<GetColumnsResponse>;\nexport async function request(name: \"getConnectionInfo\"): Promise<GetConnectionInfoResponse>;\nexport async function request(name: \"getAllTabs\"): Promise<GetAllTabsResponse>;\nexport async function request(name: \"runQuery\", args: RunQueryRequest[\"args\"]): Promise<RunQueryResponse>;\nexport async function request(name: \"expandTableResult\", args: ExpandTableResultRequest[\"args\"]): Promise<ExpandTableResultResponse>;\nexport async function request(name: \"setTabTitle\", args: SetTabTitleRequest[\"args\"]): Promise<SetTabTitleResponse>;\nexport async function request<T extends unknown>(name: \"getViewState\", args: GetViewStateRequest[\"args\"]): Promise<GetViewStateResponse<T>>;\nexport async function request<T extends unknown>(name: \"setViewState\", args: SetViewStateRequest<T>[\"args\"]): Promise<SetViewStateResponse>;\nexport async function request<T extends unknown>(name: \"openExternal\", args: OpenExternalRequest[\"args\"]): Promise<OpenExternalResponse>;\nexport async function request<T extends unknown>(name: \"getData\", args: GetDataRequest[\"args\"]): Promise<GetDataResponse<T>>;\nexport async function request<T extends unknown>(name: \"setData\", args: SetDataRequest<T>[\"args\"]): Promise<SetDataResponse>;\nexport async function request<T extends unknown>(name: \"getEncryptedData\", args: GetEncryptedDataRequest[\"args\"]): Promise<GetEncryptedDataResponse<T>>;\nexport async function request<T extends unknown>(name: \"setEncryptedData\", args: SetEncryptedDataRequest<T>[\"args\"]): Promise<SetEncryptedDataResponse>;\nexport async function request(name: unknown, args?: unknown): Promise<unknown> {\n if (debugComms) {\n const time = new Date().toLocaleTimeString(\"en-GB\");\n console.groupCollapsed(`${time} [REQUEST] ${name}`);\n console.log(\"Args:\", args);\n console.groupEnd();\n }\n\n return new Promise<any>((resolve, reject) => {\n try {\n const id = generateUUID();\n const data = { id, name, args };\n pendingRequests.set(id, { name: name as string, resolve, reject });\n window.parent.postMessage(data, \"*\");\n } catch (e) {\n reject(e);\n }\n });\n}\n\nexport function notify(name: string, args: any) {\n if (debugComms) {\n const time = new Date().toLocaleTimeString(\"en-GB\");\n console.groupCollapsed(`${time} [NOTIFICATION] ${name}`);\n console.log(\"Args:\", args);\n console.groupEnd();\n }\n window.parent.postMessage({ name, args }, \"*\");\n}\n\nconst notificationListeners = new Map<string, ((args: any) => void)[]>();\n\nexport async function addNotificationListener(\n name: string,\n handler: (args: any) => void,\n) {\n if (!notificationListeners.get(name)) {\n notificationListeners.set(name, []);\n }\n notificationListeners.get(name)!.push(handler);\n}\n","/** Any events that need to be forwarded to parent/plugin system\n * must go here */\n\n/** FIXME this file must be injected from the plugin system automatically */\n\nimport { notify } from \"./comms\";\nimport { WindowEventInits, WindowEventClass } from \"./commonTypes\";\n\nfunction createEventInit<T>(event: T): {\n eventClass: WindowEventClass;\n eventInitOptions: WindowEventInits;\n} {\n if (event instanceof MouseEvent) {\n const eventInitOptions: MouseEventInit = {\n clientX: event.clientX,\n clientY: event.clientY,\n screenX: event.screenX,\n screenY: event.screenY,\n button: event.button,\n buttons: event.buttons,\n altKey: event.altKey,\n ctrlKey: event.ctrlKey,\n shiftKey: event.shiftKey,\n metaKey: event.metaKey,\n movementX: event.movementX,\n movementY: event.movementY,\n detail: event.detail,\n };\n return {\n eventClass: \"MouseEvent\",\n eventInitOptions,\n };\n }\n\n if (event instanceof PointerEvent) {\n const eventInitOptions: PointerEventInit = {\n clientX: event.clientX,\n clientY: event.clientY,\n screenX: event.screenX,\n screenY: event.screenY,\n button: event.button,\n buttons: event.buttons,\n altKey: event.altKey,\n ctrlKey: event.ctrlKey,\n shiftKey: event.shiftKey,\n metaKey: event.metaKey,\n movementX: event.movementX,\n movementY: event.movementY,\n detail: event.detail,\n pointerId: event.pointerId,\n pointerType: event.pointerType,\n isPrimary: event.isPrimary,\n };\n return {\n eventClass: \"PointerEvent\",\n eventInitOptions,\n };\n }\n\n if (event instanceof KeyboardEvent) {\n const isPasswordField =\n (event.target as HTMLInputElement)?.type === \"password\";\n\n if (isPasswordField) {\n // Avoid logging keystrokes from password fields\n return {\n eventClass: \"KeyboardEvent\",\n eventInitOptions: {},\n };\n }\n\n const eventInitOptions: KeyboardEventInit = {\n key: event.key,\n code: event.code,\n keyCode: event.keyCode,\n location: event.location,\n altKey: event.altKey,\n ctrlKey: event.ctrlKey,\n shiftKey: event.shiftKey,\n metaKey: event.metaKey,\n repeat: event.repeat,\n isComposing: event.isComposing,\n };\n\n return {\n eventClass: \"KeyboardEvent\",\n eventInitOptions,\n };\n }\n\n return {\n eventClass: \"Event\",\n eventInitOptions: {},\n };\n}\n\nconst forwardedEvents = [\n \"contextmenu\",\n \"click\",\n \"dblclick\",\n \"pointercancel\",\n \"pointerdown\",\n \"pointerenter\",\n \"pointerleave\",\n \"pointermove\",\n \"pointerout\",\n \"pointerover\",\n \"pointerup\",\n \"mousedown\",\n \"mouseenter\",\n \"mouseleave\",\n \"mousemove\",\n \"mouseout\",\n \"mouseover\",\n \"mouseup\",\n \"keydown\",\n \"keypress\",\n \"keyup\",\n] as const;\n\nforwardedEvents.forEach((eventType) => {\n document.addEventListener(eventType, (event) => {\n const eventInit = createEventInit(event);\n notify(\"windowEvent\", {\n eventType,\n eventClass: eventInit.eventClass,\n eventInitOptions: eventInit.eventInitOptions,\n });\n });\n});\n"],"names":[],"mappings":"AAyCA,MAAM,eAAe,GAAG,IAAI,GAAG,EAO5B;AAQH,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,KAAI;AAC3C,IAAA,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE;IAE1D,IAAI,IAAI,EAAE;QAQR,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC;QAChD,IAAI,QAAQ,EAAE;AACZ,YAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;;;IAIhD,IAAI,EAAE,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AACjC,QAAA,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,EAAE,CAAE;AAC1D,QAAA,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;QAU1B,IAAI,KAAK,EAAE;YACT,MAAM,CAAC,KAAK,CAAC;;aACR;YACL,OAAO,CAAC,MAAM,CAAC;;;AAGrB,CAAC,CAAC;AAoCc,SAAA,MAAM,CAAC,IAAY,EAAE,IAAS,EAAA;AAO5C,IAAA,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC;AAChD;AAEA,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAmC;;ACzIxE;AACkB;AAElB;AAKA,SAAS,eAAe,CAAI,KAAQ,EAAA;AAIlC,IAAA,IAAI,KAAK,YAAY,UAAU,EAAE;AAC/B,QAAA,MAAM,gBAAgB,GAAmB;YACvC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB;QACD,OAAO;AACL,YAAA,UAAU,EAAE,YAAY;YACxB,gBAAgB;SACjB;;AAGH,IAAA,IAAI,KAAK,YAAY,YAAY,EAAE;AACjC,QAAA,MAAM,gBAAgB,GAAqB;YACzC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B;QACD,OAAO;AACL,YAAA,UAAU,EAAE,cAAc;YAC1B,gBAAgB;SACjB;;AAGH,IAAA,IAAI,KAAK,YAAY,aAAa,EAAE;QAClC,MAAM,eAAe,GAClB,KAAK,CAAC,MAA2B,EAAE,IAAI,KAAK,UAAU;QAEzD,IAAI,eAAe,EAAE;;YAEnB,OAAO;AACL,gBAAA,UAAU,EAAE,eAAe;AAC3B,gBAAA,gBAAgB,EAAE,EAAE;aACrB;;AAGH,QAAA,MAAM,gBAAgB,GAAsB;YAC1C,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B;QAED,OAAO;AACL,YAAA,UAAU,EAAE,eAAe;YAC3B,gBAAgB;SACjB;;IAGH,OAAO;AACL,QAAA,UAAU,EAAE,OAAO;AACnB,QAAA,gBAAgB,EAAE,EAAE;KACrB;AACH;AAEA,MAAM,eAAe,GAAG;IACtB,aAAa;IACb,OAAO;IACP,UAAU;IACV,eAAe;IACf,aAAa;IACb,cAAc;IACd,cAAc;IACd,aAAa;IACb,YAAY;IACZ,aAAa;IACb,WAAW;IACX,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,UAAU;IACV,WAAW;IACX,SAAS;IACT,SAAS;IACT,UAAU;IACV,OAAO;CACC;AAEV,eAAe,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;IACpC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,KAAI;AAC7C,QAAA,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;QACxC,MAAM,CAAC,aAAa,EAAE;YACpB,SAAS;YACT,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;AAC7C,SAAA,CAAC;AACJ,KAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"eventForwarder.js","sources":["../src/comms.ts","../src/eventForwarder.ts"],"sourcesContent":["import type { PluginRequestPayload } from \"./requestTypes\";\nimport { generateUUID } from \"./utils\";\n\n// Define a custom import.meta interface for TypeScript\ndeclare global {\n interface ImportMeta {\n env: {\n MODE: string;\n };\n }\n}\n\nconst pendingRequests = new Map<\n string,\n {\n // The whole payload is kept just in case for debugging\n payload: PluginRequestPayload;\n resolve: (value: any) => void;\n reject: (reason?: any) => void;\n }\n>();\n\nlet debugComms = false;\n\nexport function setDebugComms(value: boolean) {\n debugComms = value;\n}\n\nwindow.addEventListener(\"message\", (event) => {\n const { id, name, args, result, error } = event.data || {};\n\n if (name) {\n if (debugComms) {\n const time = new Date().toLocaleTimeString(\"en-GB\");\n console.groupCollapsed(`${time} [NOTIFICATION] ${name}`);\n console.log(\"Args:\", args);\n console.groupEnd();\n }\n\n const handlers = notificationListeners.get(name);\n if (handlers) {\n handlers.forEach((handler) => handler(args));\n }\n }\n\n if (id && pendingRequests.has(id)) {\n const { resolve, reject, payload } = pendingRequests.get(id)!;\n pendingRequests.delete(id);\n\n if (debugComms) {\n const time = new Date().toLocaleTimeString(\"en-GB\");\n console.groupCollapsed(`${time} [RESPONSE] ${payload.name}`);\n console.log(\"Result:\", result);\n if (error) console.error(\"Error:\", error);\n console.groupEnd();\n }\n\n if (error) {\n reject(error);\n } else {\n resolve(result);\n }\n }\n});\n\nexport async function request(payload: any): Promise<any> {\n const fullPayload = {\n id: generateUUID(),\n ...payload,\n } as PluginRequestPayload;\n\n if (debugComms) {\n const time = new Date().toLocaleTimeString(\"en-GB\");\n console.groupCollapsed(`${time} [REQUEST] ${payload.name}`);\n console.log(\"Args:\", payload.args);\n console.groupEnd();\n }\n\n return new Promise<any>((resolve, reject) => {\n try {\n pendingRequests.set(fullPayload.id, { payload: fullPayload, resolve, reject });\n window.parent.postMessage(payload, \"*\");\n } catch (e) {\n reject(e);\n }\n });\n}\n\nexport function notify(name: string, args: any) {\n if (debugComms) {\n const time = new Date().toLocaleTimeString(\"en-GB\");\n console.groupCollapsed(`${time} [NOTIFICATION] ${name}`);\n console.log(\"Args:\", args);\n console.groupEnd();\n }\n window.parent.postMessage({ name, args }, \"*\");\n}\n\nconst notificationListeners = new Map<string, ((args: any) => void)[]>();\n\nexport async function addNotificationListener(\n name: string,\n handler: (args: any) => void,\n) {\n if (!notificationListeners.get(name)) {\n notificationListeners.set(name, []);\n }\n notificationListeners.get(name)!.push(handler);\n}\n","/** Any events that need to be forwarded to parent/plugin system\n * must go here */\n\n/** FIXME this file must be injected from the plugin system automatically */\n\nimport { notify } from \"./comms\";\nimport { WindowEventInits, WindowEventClass } from \"./commonTypes\";\n\nfunction createEventInit<T>(event: T): {\n eventClass: WindowEventClass;\n eventInitOptions: WindowEventInits;\n} {\n if (event instanceof MouseEvent) {\n const eventInitOptions: MouseEventInit = {\n clientX: event.clientX,\n clientY: event.clientY,\n screenX: event.screenX,\n screenY: event.screenY,\n button: event.button,\n buttons: event.buttons,\n altKey: event.altKey,\n ctrlKey: event.ctrlKey,\n shiftKey: event.shiftKey,\n metaKey: event.metaKey,\n movementX: event.movementX,\n movementY: event.movementY,\n detail: event.detail,\n };\n return {\n eventClass: \"MouseEvent\",\n eventInitOptions,\n };\n }\n\n if (event instanceof PointerEvent) {\n const eventInitOptions: PointerEventInit = {\n clientX: event.clientX,\n clientY: event.clientY,\n screenX: event.screenX,\n screenY: event.screenY,\n button: event.button,\n buttons: event.buttons,\n altKey: event.altKey,\n ctrlKey: event.ctrlKey,\n shiftKey: event.shiftKey,\n metaKey: event.metaKey,\n movementX: event.movementX,\n movementY: event.movementY,\n detail: event.detail,\n pointerId: event.pointerId,\n pointerType: event.pointerType,\n isPrimary: event.isPrimary,\n };\n return {\n eventClass: \"PointerEvent\",\n eventInitOptions,\n };\n }\n\n if (event instanceof KeyboardEvent) {\n const isPasswordField =\n (event.target as HTMLInputElement)?.type === \"password\";\n\n if (isPasswordField) {\n // Avoid logging keystrokes from password fields\n return {\n eventClass: \"KeyboardEvent\",\n eventInitOptions: {},\n };\n }\n\n const eventInitOptions: KeyboardEventInit = {\n key: event.key,\n code: event.code,\n keyCode: event.keyCode,\n location: event.location,\n altKey: event.altKey,\n ctrlKey: event.ctrlKey,\n shiftKey: event.shiftKey,\n metaKey: event.metaKey,\n repeat: event.repeat,\n isComposing: event.isComposing,\n };\n\n return {\n eventClass: \"KeyboardEvent\",\n eventInitOptions,\n };\n }\n\n return {\n eventClass: \"Event\",\n eventInitOptions: {},\n };\n}\n\nconst forwardedEvents = [\n \"contextmenu\",\n \"click\",\n \"dblclick\",\n \"pointercancel\",\n \"pointerdown\",\n \"pointerenter\",\n \"pointerleave\",\n \"pointermove\",\n \"pointerout\",\n \"pointerover\",\n \"pointerup\",\n \"mousedown\",\n \"mouseenter\",\n \"mouseleave\",\n \"mousemove\",\n \"mouseout\",\n \"mouseover\",\n \"mouseup\",\n \"keydown\",\n \"keypress\",\n \"keyup\",\n] as const;\n\nforwardedEvents.forEach((eventType) => {\n document.addEventListener(eventType, (event) => {\n const eventInit = createEventInit(event);\n notify(\"windowEvent\", {\n eventType,\n eventClass: eventInit.eventClass,\n eventInitOptions: eventInit.eventInitOptions,\n });\n });\n});\n"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,6 +10,94 @@ interface QueryResult {
|
|
|
10
10
|
type WindowEventClass = "MouseEvent" | "KeyboardEvent" | "PointerEvent" | "Event";
|
|
11
11
|
type WindowEventInits = MouseEventInit | KeyboardEventInit | PointerEventInit;
|
|
12
12
|
|
|
13
|
+
type TabType = string;
|
|
14
|
+
type TableFilter = any;
|
|
15
|
+
type TableOrView = any;
|
|
16
|
+
interface BaseResponse {
|
|
17
|
+
id: string;
|
|
18
|
+
error?: Error;
|
|
19
|
+
}
|
|
20
|
+
interface GetTablesResponse extends BaseResponse {
|
|
21
|
+
result: {
|
|
22
|
+
name: string;
|
|
23
|
+
schema?: string;
|
|
24
|
+
}[];
|
|
25
|
+
}
|
|
26
|
+
interface GetColumnsResponse extends BaseResponse {
|
|
27
|
+
result: {
|
|
28
|
+
name: string;
|
|
29
|
+
type: string;
|
|
30
|
+
}[];
|
|
31
|
+
}
|
|
32
|
+
interface GetConnectionInfoResponse extends BaseResponse {
|
|
33
|
+
result: {
|
|
34
|
+
connectionType: string;
|
|
35
|
+
databaseName: string;
|
|
36
|
+
defaultSchema?: string;
|
|
37
|
+
readOnlyMode: boolean;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
interface GetAllTabsResponse extends BaseResponse {
|
|
41
|
+
result: Tab[];
|
|
42
|
+
}
|
|
43
|
+
interface RunQueryResponse extends BaseResponse {
|
|
44
|
+
result: {
|
|
45
|
+
results: QueryResult[];
|
|
46
|
+
error?: unknown;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
interface ExpandTableResultResponse extends BaseResponse {
|
|
50
|
+
result: void;
|
|
51
|
+
}
|
|
52
|
+
interface SetTabTitleResponse extends BaseResponse {
|
|
53
|
+
result: void;
|
|
54
|
+
}
|
|
55
|
+
interface GetViewStateResponse<T extends unknown> extends BaseResponse {
|
|
56
|
+
result: T;
|
|
57
|
+
}
|
|
58
|
+
interface SetViewStateResponse extends BaseResponse {
|
|
59
|
+
result: void;
|
|
60
|
+
}
|
|
61
|
+
interface OpenExternalResponse extends BaseResponse {
|
|
62
|
+
result: void;
|
|
63
|
+
}
|
|
64
|
+
interface GetDataResponse<T extends unknown> extends BaseResponse {
|
|
65
|
+
result: T;
|
|
66
|
+
}
|
|
67
|
+
interface SetDataResponse extends BaseResponse {
|
|
68
|
+
result: void;
|
|
69
|
+
}
|
|
70
|
+
interface GetEncryptedDataResponse<T extends unknown> extends BaseResponse {
|
|
71
|
+
result: T;
|
|
72
|
+
}
|
|
73
|
+
interface SetEncryptedDataResponse extends BaseResponse {
|
|
74
|
+
result: void;
|
|
75
|
+
}
|
|
76
|
+
type PluginResponseData = GetTablesResponse | GetColumnsResponse | GetConnectionInfoResponse | GetAllTabsResponse | RunQueryResponse | ExpandTableResultResponse | SetTabTitleResponse | GetViewStateResponse<unknown> | SetViewStateResponse | OpenExternalResponse | GetDataResponse<unknown> | SetDataResponse | GetEncryptedDataResponse<unknown> | SetEncryptedDataResponse;
|
|
77
|
+
type PluginResponsePayload = PluginResponseData;
|
|
78
|
+
type TabResponse = Tab;
|
|
79
|
+
type Tab = BaseTabResponse | QueryTabResponse | TableTabResponse;
|
|
80
|
+
interface BaseTabResponse {
|
|
81
|
+
type: TabType;
|
|
82
|
+
id: number;
|
|
83
|
+
title: string;
|
|
84
|
+
}
|
|
85
|
+
interface QueryTabResponse extends BaseTabResponse {
|
|
86
|
+
type: "query";
|
|
87
|
+
data: {
|
|
88
|
+
query: string;
|
|
89
|
+
result: unknown;
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
interface TableTabResponse extends BaseTabResponse {
|
|
93
|
+
type: "table";
|
|
94
|
+
data: {
|
|
95
|
+
table: TableOrView;
|
|
96
|
+
filters: TableFilter[] | string;
|
|
97
|
+
result: unknown;
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
|
|
13
101
|
interface BaseRequest {
|
|
14
102
|
id: string;
|
|
15
103
|
}
|
|
@@ -70,82 +158,32 @@ interface OpenExternalRequest extends BaseRequest {
|
|
|
70
158
|
}
|
|
71
159
|
interface SetDataRequest<T extends unknown> extends BaseRequest {
|
|
72
160
|
name: "setData";
|
|
73
|
-
args:
|
|
161
|
+
args: {
|
|
162
|
+
key: string;
|
|
163
|
+
value: T;
|
|
164
|
+
};
|
|
74
165
|
}
|
|
75
166
|
interface GetDataRequest extends BaseRequest {
|
|
76
167
|
name: "getData";
|
|
77
|
-
args:
|
|
168
|
+
args: {
|
|
169
|
+
key: string;
|
|
170
|
+
};
|
|
78
171
|
}
|
|
79
172
|
interface GetEncryptedDataRequest extends BaseRequest {
|
|
80
173
|
name: "getEncryptedData";
|
|
81
|
-
args:
|
|
174
|
+
args: {
|
|
175
|
+
key: string;
|
|
176
|
+
};
|
|
82
177
|
}
|
|
83
178
|
interface SetEncryptedDataRequest<T extends unknown> extends BaseRequest {
|
|
84
179
|
name: "setEncryptedData";
|
|
85
|
-
args:
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
type TabType = string;
|
|
90
|
-
type TableFilter = any;
|
|
91
|
-
type TableOrView = any;
|
|
92
|
-
|
|
93
|
-
/** The list of tables */
|
|
94
|
-
type GetTablesResponse = {
|
|
95
|
-
name: string;
|
|
96
|
-
schema?: string;
|
|
97
|
-
}[];
|
|
98
|
-
/** The list of columns */
|
|
99
|
-
type GetColumnsResponse = {
|
|
100
|
-
name: string;
|
|
101
|
-
type: string;
|
|
102
|
-
}[];
|
|
103
|
-
type GetConnectionInfoResponse = {
|
|
104
|
-
connectionType: string;
|
|
105
|
-
databaseName: string;
|
|
106
|
-
defaultSchema?: string;
|
|
107
|
-
readOnlyMode: boolean;
|
|
108
|
-
};
|
|
109
|
-
type TabResponse = BaseTabResponse | QueryTabResponse | TableTabResponse;
|
|
110
|
-
type GetAllTabsResponse = TabResponse[];
|
|
111
|
-
type RunQueryResponse = {
|
|
112
|
-
results: QueryResult[];
|
|
113
|
-
error?: unknown;
|
|
114
|
-
};
|
|
115
|
-
type ExpandTableResultResponse = void;
|
|
116
|
-
type SetTabTitleResponse = void;
|
|
117
|
-
type GetViewStateResponse<T extends unknown> = T;
|
|
118
|
-
type SetViewStateResponse = void;
|
|
119
|
-
type OpenExternalResponse = void;
|
|
120
|
-
type GetDataResponse<T extends unknown> = T;
|
|
121
|
-
type SetDataResponse = void;
|
|
122
|
-
type GetEncryptedDataResponse<T extends unknown> = T;
|
|
123
|
-
type SetEncryptedDataResponse = void;
|
|
124
|
-
interface PluginResponseData {
|
|
125
|
-
id: string;
|
|
126
|
-
result: GetTablesResponse | GetColumnsResponse | GetConnectionInfoResponse | GetAllTabsResponse | RunQueryResponse | ExpandTableResultResponse | SetTabTitleResponse | GetViewStateResponse<unknown> | SetViewStateResponse | OpenExternalResponse | GetDataResponse<unknown> | SetDataResponse | GetEncryptedDataResponse<unknown> | SetEncryptedDataResponse;
|
|
127
|
-
error?: Error;
|
|
128
|
-
}
|
|
129
|
-
interface QueryTabResponse extends BaseTabResponse {
|
|
130
|
-
type: "query";
|
|
131
|
-
data: {
|
|
132
|
-
query: string;
|
|
133
|
-
result: unknown;
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
interface TableTabResponse extends BaseTabResponse {
|
|
137
|
-
type: "table";
|
|
138
|
-
data: {
|
|
139
|
-
table: TableOrView;
|
|
140
|
-
filters: TableFilter[] | string;
|
|
141
|
-
result: unknown;
|
|
180
|
+
args: {
|
|
181
|
+
key: string;
|
|
182
|
+
value: T;
|
|
142
183
|
};
|
|
143
184
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
id: number;
|
|
147
|
-
title: string;
|
|
148
|
-
}
|
|
185
|
+
type PluginRequestData = GetTablesRequest | GetColumnsRequest | GetConnectionInfoRequest | GetAllTabsRequest | RunQueryRequest | ExpandTableResultRequest | SetTabTitleRequest | GetViewStateRequest | SetViewStateRequest<unknown> | OpenExternalRequest | GetDataRequest | SetDataRequest<unknown> | GetEncryptedDataRequest | SetEncryptedDataRequest<unknown>;
|
|
186
|
+
type PluginRequestPayload = PluginRequestData;
|
|
149
187
|
|
|
150
188
|
interface ThemeChangedNotification {
|
|
151
189
|
name: "themeChanged";
|
|
@@ -173,22 +211,46 @@ declare global {
|
|
|
173
211
|
}
|
|
174
212
|
}
|
|
175
213
|
declare function setDebugComms(value: boolean): void;
|
|
176
|
-
declare function request(
|
|
177
|
-
declare function request(name: "getColumns", args: GetColumnsRequest["args"]): Promise<GetColumnsResponse>;
|
|
178
|
-
declare function request(name: "getConnectionInfo"): Promise<GetConnectionInfoResponse>;
|
|
179
|
-
declare function request(name: "getAllTabs"): Promise<GetAllTabsResponse>;
|
|
180
|
-
declare function request(name: "runQuery", args: RunQueryRequest["args"]): Promise<RunQueryResponse>;
|
|
181
|
-
declare function request(name: "expandTableResult", args: ExpandTableResultRequest["args"]): Promise<ExpandTableResultResponse>;
|
|
182
|
-
declare function request(name: "setTabTitle", args: SetTabTitleRequest["args"]): Promise<SetTabTitleResponse>;
|
|
183
|
-
declare function request<T extends unknown>(name: "getViewState", args: GetViewStateRequest["args"]): Promise<GetViewStateResponse<T>>;
|
|
184
|
-
declare function request<T extends unknown>(name: "setViewState", args: SetViewStateRequest<T>["args"]): Promise<SetViewStateResponse>;
|
|
185
|
-
declare function request<T extends unknown>(name: "openExternal", args: OpenExternalRequest["args"]): Promise<OpenExternalResponse>;
|
|
186
|
-
declare function request<T extends unknown>(name: "getData", args: GetDataRequest["args"]): Promise<GetDataResponse<T>>;
|
|
187
|
-
declare function request<T extends unknown>(name: "setData", args: SetDataRequest<T>["args"]): Promise<SetDataResponse>;
|
|
188
|
-
declare function request<T extends unknown>(name: "getEncryptedData", args: GetEncryptedDataRequest["args"]): Promise<GetEncryptedDataResponse<T>>;
|
|
189
|
-
declare function request<T extends unknown>(name: "setEncryptedData", args: SetEncryptedDataRequest<T>["args"]): Promise<SetEncryptedDataResponse>;
|
|
214
|
+
declare function request(payload: any): Promise<any>;
|
|
190
215
|
declare function notify(name: string, args: any): void;
|
|
191
216
|
declare function addNotificationListener(name: string, handler: (args: any) => void): Promise<void>;
|
|
192
217
|
|
|
193
|
-
|
|
194
|
-
|
|
218
|
+
declare function getTables(schema?: string): Promise<GetTablesResponse['result']>;
|
|
219
|
+
declare function getColumns(table: string, schema?: string): Promise<GetColumnsResponse['result']>;
|
|
220
|
+
declare function getConnectionInfo(): Promise<GetConnectionInfoResponse['result']>;
|
|
221
|
+
declare function getAllTabs(): Promise<GetAllTabsResponse['result']>;
|
|
222
|
+
declare function runQuery(query: string): Promise<RunQueryResponse['result']>;
|
|
223
|
+
declare function expandTableResult(results: any[]): Promise<ExpandTableResultResponse['result']>;
|
|
224
|
+
declare function setTabTitle(title: string): Promise<SetTabTitleResponse['result']>;
|
|
225
|
+
declare function getViewState<T>(): Promise<GetViewStateResponse<T>['result']>;
|
|
226
|
+
declare function setViewState<T>(state: T): Promise<SetViewStateResponse['result']>;
|
|
227
|
+
declare function openExternal(link: boolean): Promise<OpenExternalResponse['result']>;
|
|
228
|
+
declare function getData<T>(key?: string): Promise<GetDataResponse<T>['result']>;
|
|
229
|
+
/**
|
|
230
|
+
* Store data that can be retrieved later.
|
|
231
|
+
*
|
|
232
|
+
* @example
|
|
233
|
+
* // Store with custom key
|
|
234
|
+
* await setData("myKey", { name: "John" });
|
|
235
|
+
*
|
|
236
|
+
* // Store with default key (equivalent to setData("default", value))
|
|
237
|
+
* await setData({ name: "John" });
|
|
238
|
+
*/
|
|
239
|
+
declare function setData<T>(key: string, value: T): Promise<SetDataResponse['result']>;
|
|
240
|
+
declare function setData<T>(value: T): Promise<SetDataResponse['result']>;
|
|
241
|
+
declare function getEncryptedData<T>(key: string): Promise<GetEncryptedDataResponse<T>['result']>;
|
|
242
|
+
/**
|
|
243
|
+
* Store encrypted data that can be retrieved later.
|
|
244
|
+
*
|
|
245
|
+
* @example
|
|
246
|
+
* // Store with custom key
|
|
247
|
+
* await setEncryptedData("secretKey", { token: "abc123" });
|
|
248
|
+
*
|
|
249
|
+
* // Store with default key (equivalent to setEncryptedData("default", value))
|
|
250
|
+
* await setEncryptedData({ token: "abc123" });
|
|
251
|
+
*/
|
|
252
|
+
declare function setEncryptedData<T>(key: string, value: T): Promise<SetEncryptedDataResponse['result']>;
|
|
253
|
+
declare function setEncryptedData<T>(value: T): Promise<SetEncryptedDataResponse['result']>;
|
|
254
|
+
|
|
255
|
+
export { addNotificationListener, expandTableResult, getAllTabs, getColumns, getConnectionInfo, getData, getEncryptedData, getTables, getViewState, notify, openExternal, request, runQuery, setData, setDebugComms, setEncryptedData, setTabTitle, setViewState };
|
|
256
|
+
export type { ExpandTableResultRequest, ExpandTableResultResponse, GetAllTabsRequest, GetAllTabsResponse, GetColumnsRequest, GetColumnsResponse, GetConnectionInfoRequest, GetConnectionInfoResponse, GetDataRequest, GetDataResponse, GetEncryptedDataRequest, GetEncryptedDataResponse, GetTablesRequest, GetTablesResponse, GetViewStateRequest, GetViewStateResponse, OpenExternalRequest, OpenExternalResponse, PluginNotificationData, PluginRequestData, PluginRequestPayload, PluginResponseData, PluginResponsePayload, QueryResult, RunQueryRequest, RunQueryResponse, SetDataRequest, SetDataResponse, SetEncryptedDataRequest, SetEncryptedDataResponse, SetTabTitleRequest, SetTabTitleResponse, SetViewStateRequest, SetViewStateResponse, TabResponse, ThemeChangedNotification, ThemeType, WindowEventClass, WindowEventInits, WindowEventNotification };
|
package/dist/index.js
CHANGED
|
@@ -33,11 +33,11 @@ window.addEventListener("message", (event) => {
|
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
if (id && pendingRequests.has(id)) {
|
|
36
|
-
const { resolve, reject,
|
|
36
|
+
const { resolve, reject, payload } = pendingRequests.get(id);
|
|
37
37
|
pendingRequests.delete(id);
|
|
38
38
|
if (debugComms) {
|
|
39
39
|
const time = new Date().toLocaleTimeString("en-GB");
|
|
40
|
-
console.groupCollapsed(`${time} [RESPONSE] ${name}`);
|
|
40
|
+
console.groupCollapsed(`${time} [RESPONSE] ${payload.name}`);
|
|
41
41
|
console.log("Result:", result);
|
|
42
42
|
if (error)
|
|
43
43
|
console.error("Error:", error);
|
|
@@ -51,19 +51,21 @@ window.addEventListener("message", (event) => {
|
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
});
|
|
54
|
-
async function request(
|
|
54
|
+
async function request(payload) {
|
|
55
|
+
const fullPayload = {
|
|
56
|
+
id: generateUUID(),
|
|
57
|
+
...payload,
|
|
58
|
+
};
|
|
55
59
|
if (debugComms) {
|
|
56
60
|
const time = new Date().toLocaleTimeString("en-GB");
|
|
57
|
-
console.groupCollapsed(`${time} [REQUEST] ${name}`);
|
|
58
|
-
console.log("Args:", args);
|
|
61
|
+
console.groupCollapsed(`${time} [REQUEST] ${payload.name}`);
|
|
62
|
+
console.log("Args:", payload.args);
|
|
59
63
|
console.groupEnd();
|
|
60
64
|
}
|
|
61
65
|
return new Promise((resolve, reject) => {
|
|
62
66
|
try {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
pendingRequests.set(id, { name: name, resolve, reject });
|
|
66
|
-
window.parent.postMessage(data, "*");
|
|
67
|
+
pendingRequests.set(fullPayload.id, { payload: fullPayload, resolve, reject });
|
|
68
|
+
window.parent.postMessage(payload, "*");
|
|
67
69
|
}
|
|
68
70
|
catch (e) {
|
|
69
71
|
reject(e);
|
|
@@ -87,5 +89,58 @@ async function addNotificationListener(name, handler) {
|
|
|
87
89
|
notificationListeners.get(name).push(handler);
|
|
88
90
|
}
|
|
89
91
|
|
|
90
|
-
|
|
92
|
+
async function getTables(schema) {
|
|
93
|
+
return await request({ name: "getTables", args: { schema } });
|
|
94
|
+
}
|
|
95
|
+
async function getColumns(table, schema) {
|
|
96
|
+
return await request({ name: "getColumns", args: { table, schema } });
|
|
97
|
+
}
|
|
98
|
+
async function getConnectionInfo() {
|
|
99
|
+
return await request({ name: "getConnectionInfo", args: void 0 });
|
|
100
|
+
}
|
|
101
|
+
async function getAllTabs() {
|
|
102
|
+
return await request({ name: "getAllTabs", args: void 0 });
|
|
103
|
+
}
|
|
104
|
+
async function runQuery(query) {
|
|
105
|
+
return await request({ name: "runQuery", args: { query } });
|
|
106
|
+
}
|
|
107
|
+
async function expandTableResult(results) {
|
|
108
|
+
return await request({ name: "expandTableResult", args: { results } });
|
|
109
|
+
}
|
|
110
|
+
async function setTabTitle(title) {
|
|
111
|
+
return await request({ name: "setTabTitle", args: { title } });
|
|
112
|
+
}
|
|
113
|
+
async function getViewState() {
|
|
114
|
+
return await request({ name: "getViewState", args: void 0 });
|
|
115
|
+
}
|
|
116
|
+
async function setViewState(state) {
|
|
117
|
+
return await request({ name: "setViewState", args: { state } });
|
|
118
|
+
}
|
|
119
|
+
async function openExternal(link) {
|
|
120
|
+
return await request({ name: "openExternal", args: { link } });
|
|
121
|
+
}
|
|
122
|
+
async function getData(key = "default") {
|
|
123
|
+
return await request({ name: "getData", args: { key } });
|
|
124
|
+
}
|
|
125
|
+
async function setData(keyOrValue, value) {
|
|
126
|
+
if (value !== undefined) {
|
|
127
|
+
return await request({ name: "setData", args: { key: keyOrValue, value } });
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
return await request({ name: "setData", args: { key: "default", value: keyOrValue } });
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
async function getEncryptedData(key) {
|
|
134
|
+
return await request({ name: "getEncryptedData", args: { key } });
|
|
135
|
+
}
|
|
136
|
+
async function setEncryptedData(keyOrValue, value) {
|
|
137
|
+
if (value !== undefined) {
|
|
138
|
+
return await request({ name: "setEncryptedData", args: { key: keyOrValue, value } });
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
return await request({ name: "setEncryptedData", args: { key: "default", value: keyOrValue } });
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export { addNotificationListener, expandTableResult, getAllTabs, getColumns, getConnectionInfo, getData, getEncryptedData, getTables, getViewState, notify, openExternal, request, runQuery, setData, setDebugComms, setEncryptedData, setTabTitle, setViewState };
|
|
91
146
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/utils.ts","../src/comms.ts"],"sourcesContent":["export function generateUUID() {\n const buf = new Uint8Array(16);\n crypto.getRandomValues(buf);\n\n buf[6] = (buf[6] & 0x0f) | 0x40; // version 4\n buf[8] = (buf[8] & 0x3f) | 0x80; // variant\n\n const hex = Array.from(buf, (b) => b.toString(16).padStart(2, \"0\")).join(\"\");\n\n return [\n hex.substring(0, 8),\n hex.substring(8, 12),\n hex.substring(12, 16),\n hex.substring(16, 20),\n hex.substring(20),\n ].join(\"-\");\n}\n","import type {\n GetTablesRequest,\n GetColumnsRequest,\n RunQueryRequest,\n ExpandTableResultRequest,\n SetTabTitleRequest,\n GetViewStateRequest,\n SetViewStateRequest,\n OpenExternalRequest,\n GetEncryptedDataRequest,\n SetEncryptedDataRequest,\n GetDataRequest,\n SetDataRequest,\n} from \"./requestTypes\";\nimport type {\n GetTablesResponse,\n GetColumnsResponse,\n GetConnectionInfoResponse,\n GetAllTabsResponse,\n RunQueryResponse,\n ExpandTableResultResponse,\n SetTabTitleResponse,\n GetViewStateResponse,\n SetViewStateResponse,\n OpenExternalResponse,\n GetEncryptedDataResponse,\n SetEncryptedDataResponse,\n GetDataResponse,\n SetDataResponse,\n} from \"./responseTypes\";\nimport { generateUUID } from \"./utils\";\n\n// Define a custom import.meta interface for TypeScript\ndeclare global {\n interface ImportMeta {\n env: {\n MODE: string;\n };\n }\n}\n\nconst pendingRequests = new Map<\n string,\n {\n name: string;\n resolve: (value: any) => void;\n reject: (reason?: any) => void;\n }\n>();\n\nlet debugComms = false;\n\nexport function setDebugComms(value: boolean) {\n debugComms = value;\n}\n\nwindow.addEventListener(\"message\", (event) => {\n const { id, name, args, result, error } = event.data || {};\n\n if (name) {\n if (debugComms) {\n const time = new Date().toLocaleTimeString(\"en-GB\");\n console.groupCollapsed(`${time} [NOTIFICATION] ${name}`);\n console.log(\"Args:\", args);\n console.groupEnd();\n }\n\n const handlers = notificationListeners.get(name);\n if (handlers) {\n handlers.forEach((handler) => handler(args));\n }\n }\n\n if (id && pendingRequests.has(id)) {\n const { resolve, reject, name } = pendingRequests.get(id)!;\n pendingRequests.delete(id);\n\n if (debugComms) {\n const time = new Date().toLocaleTimeString(\"en-GB\");\n console.groupCollapsed(`${time} [RESPONSE] ${name}`);\n console.log(\"Result:\", result);\n if (error) console.error(\"Error:\", error);\n console.groupEnd();\n }\n\n if (error) {\n reject(error);\n } else {\n resolve(result);\n }\n }\n});\n\nexport async function request(name: \"getTables\", args?: GetTablesRequest[\"args\"]): Promise<GetTablesResponse>;\nexport async function request(name: \"getColumns\", args: GetColumnsRequest[\"args\"]): Promise<GetColumnsResponse>;\nexport async function request(name: \"getConnectionInfo\"): Promise<GetConnectionInfoResponse>;\nexport async function request(name: \"getAllTabs\"): Promise<GetAllTabsResponse>;\nexport async function request(name: \"runQuery\", args: RunQueryRequest[\"args\"]): Promise<RunQueryResponse>;\nexport async function request(name: \"expandTableResult\", args: ExpandTableResultRequest[\"args\"]): Promise<ExpandTableResultResponse>;\nexport async function request(name: \"setTabTitle\", args: SetTabTitleRequest[\"args\"]): Promise<SetTabTitleResponse>;\nexport async function request<T extends unknown>(name: \"getViewState\", args: GetViewStateRequest[\"args\"]): Promise<GetViewStateResponse<T>>;\nexport async function request<T extends unknown>(name: \"setViewState\", args: SetViewStateRequest<T>[\"args\"]): Promise<SetViewStateResponse>;\nexport async function request<T extends unknown>(name: \"openExternal\", args: OpenExternalRequest[\"args\"]): Promise<OpenExternalResponse>;\nexport async function request<T extends unknown>(name: \"getData\", args: GetDataRequest[\"args\"]): Promise<GetDataResponse<T>>;\nexport async function request<T extends unknown>(name: \"setData\", args: SetDataRequest<T>[\"args\"]): Promise<SetDataResponse>;\nexport async function request<T extends unknown>(name: \"getEncryptedData\", args: GetEncryptedDataRequest[\"args\"]): Promise<GetEncryptedDataResponse<T>>;\nexport async function request<T extends unknown>(name: \"setEncryptedData\", args: SetEncryptedDataRequest<T>[\"args\"]): Promise<SetEncryptedDataResponse>;\nexport async function request(name: unknown, args?: unknown): Promise<unknown> {\n if (debugComms) {\n const time = new Date().toLocaleTimeString(\"en-GB\");\n console.groupCollapsed(`${time} [REQUEST] ${name}`);\n console.log(\"Args:\", args);\n console.groupEnd();\n }\n\n return new Promise<any>((resolve, reject) => {\n try {\n const id = generateUUID();\n const data = { id, name, args };\n pendingRequests.set(id, { name: name as string, resolve, reject });\n window.parent.postMessage(data, \"*\");\n } catch (e) {\n reject(e);\n }\n });\n}\n\nexport function notify(name: string, args: any) {\n if (debugComms) {\n const time = new Date().toLocaleTimeString(\"en-GB\");\n console.groupCollapsed(`${time} [NOTIFICATION] ${name}`);\n console.log(\"Args:\", args);\n console.groupEnd();\n }\n window.parent.postMessage({ name, args }, \"*\");\n}\n\nconst notificationListeners = new Map<string, ((args: any) => void)[]>();\n\nexport async function addNotificationListener(\n name: string,\n handler: (args: any) => void,\n) {\n if (!notificationListeners.get(name)) {\n notificationListeners.set(name, []);\n }\n notificationListeners.get(name)!.push(handler);\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/utils.ts","../src/comms.ts","../src/index.ts"],"sourcesContent":["export function generateUUID() {\n const buf = new Uint8Array(16);\n crypto.getRandomValues(buf);\n\n buf[6] = (buf[6] & 0x0f) | 0x40; // version 4\n buf[8] = (buf[8] & 0x3f) | 0x80; // variant\n\n const hex = Array.from(buf, (b) => b.toString(16).padStart(2, \"0\")).join(\"\");\n\n return [\n hex.substring(0, 8),\n hex.substring(8, 12),\n hex.substring(12, 16),\n hex.substring(16, 20),\n hex.substring(20),\n ].join(\"-\");\n}\n","import type { PluginRequestPayload } from \"./requestTypes\";\nimport { generateUUID } from \"./utils\";\n\n// Define a custom import.meta interface for TypeScript\ndeclare global {\n interface ImportMeta {\n env: {\n MODE: string;\n };\n }\n}\n\nconst pendingRequests = new Map<\n string,\n {\n // The whole payload is kept just in case for debugging\n payload: PluginRequestPayload;\n resolve: (value: any) => void;\n reject: (reason?: any) => void;\n }\n>();\n\nlet debugComms = false;\n\nexport function setDebugComms(value: boolean) {\n debugComms = value;\n}\n\nwindow.addEventListener(\"message\", (event) => {\n const { id, name, args, result, error } = event.data || {};\n\n if (name) {\n if (debugComms) {\n const time = new Date().toLocaleTimeString(\"en-GB\");\n console.groupCollapsed(`${time} [NOTIFICATION] ${name}`);\n console.log(\"Args:\", args);\n console.groupEnd();\n }\n\n const handlers = notificationListeners.get(name);\n if (handlers) {\n handlers.forEach((handler) => handler(args));\n }\n }\n\n if (id && pendingRequests.has(id)) {\n const { resolve, reject, payload } = pendingRequests.get(id)!;\n pendingRequests.delete(id);\n\n if (debugComms) {\n const time = new Date().toLocaleTimeString(\"en-GB\");\n console.groupCollapsed(`${time} [RESPONSE] ${payload.name}`);\n console.log(\"Result:\", result);\n if (error) console.error(\"Error:\", error);\n console.groupEnd();\n }\n\n if (error) {\n reject(error);\n } else {\n resolve(result);\n }\n }\n});\n\nexport async function request(payload: any): Promise<any> {\n const fullPayload = {\n id: generateUUID(),\n ...payload,\n } as PluginRequestPayload;\n\n if (debugComms) {\n const time = new Date().toLocaleTimeString(\"en-GB\");\n console.groupCollapsed(`${time} [REQUEST] ${payload.name}`);\n console.log(\"Args:\", payload.args);\n console.groupEnd();\n }\n\n return new Promise<any>((resolve, reject) => {\n try {\n pendingRequests.set(fullPayload.id, { payload: fullPayload, resolve, reject });\n window.parent.postMessage(payload, \"*\");\n } catch (e) {\n reject(e);\n }\n });\n}\n\nexport function notify(name: string, args: any) {\n if (debugComms) {\n const time = new Date().toLocaleTimeString(\"en-GB\");\n console.groupCollapsed(`${time} [NOTIFICATION] ${name}`);\n console.log(\"Args:\", args);\n console.groupEnd();\n }\n window.parent.postMessage({ name, args }, \"*\");\n}\n\nconst notificationListeners = new Map<string, ((args: any) => void)[]>();\n\nexport async function addNotificationListener(\n name: string,\n handler: (args: any) => void,\n) {\n if (!notificationListeners.get(name)) {\n notificationListeners.set(name, []);\n }\n notificationListeners.get(name)!.push(handler);\n}\n","import { request } from \"./comms\";\nimport type {\n GetTablesRequest,\n GetColumnsRequest,\n RunQueryRequest,\n ExpandTableResultRequest,\n SetTabTitleRequest,\n SetViewStateRequest,\n OpenExternalRequest,\n SetDataRequest,\n SetEncryptedDataRequest,\n} from \"./requestTypes\";\nimport type {\n GetTablesResponse,\n GetColumnsResponse,\n GetConnectionInfoResponse,\n GetAllTabsResponse,\n RunQueryResponse,\n ExpandTableResultResponse,\n SetTabTitleResponse,\n GetViewStateResponse,\n SetViewStateResponse,\n OpenExternalResponse,\n GetDataResponse,\n SetDataResponse,\n GetEncryptedDataResponse,\n SetEncryptedDataResponse,\n} from \"./responseTypes\";\n\nexport async function getTables(schema?: string): Promise<GetTablesResponse['result']> {\n return await request({ name: \"getTables\", args: { schema } as GetTablesRequest['args'] });\n}\n\nexport async function getColumns(table: string, schema?: string): Promise<GetColumnsResponse['result']> {\n return await request({ name: \"getColumns\", args: { table, schema } as GetColumnsRequest['args'] });\n}\n\nexport async function getConnectionInfo(): Promise<GetConnectionInfoResponse['result']> {\n return await request({ name: \"getConnectionInfo\", args: void 0 });\n}\n\nexport async function getAllTabs(): Promise<GetAllTabsResponse['result']> {\n return await request({ name: \"getAllTabs\", args: void 0 });\n}\n\nexport async function runQuery(query: string): Promise<RunQueryResponse['result']> {\n return await request({ name: \"runQuery\", args: { query } as RunQueryRequest['args'] });\n}\n\nexport async function expandTableResult(results: any[]): Promise<ExpandTableResultResponse['result']> {\n return await request({ name: \"expandTableResult\", args: { results } as ExpandTableResultRequest['args'] });\n}\n\nexport async function setTabTitle(title: string): Promise<SetTabTitleResponse['result']> {\n return await request({ name: \"setTabTitle\", args: { title } as SetTabTitleRequest['args'] });\n}\n\nexport async function getViewState<T>(): Promise<GetViewStateResponse<T>['result']> {\n return await request({ name: \"getViewState\", args: void 0 });\n}\n\nexport async function setViewState<T>(state: T): Promise<SetViewStateResponse['result']> {\n return await request({ name: \"setViewState\", args: { state } as SetViewStateRequest<T>['args'] });\n}\n\nexport async function openExternal(link: boolean): Promise<OpenExternalResponse['result']> {\n return await request({ name: \"openExternal\", args: { link } as OpenExternalRequest['args'] });\n}\n\nexport async function getData<T>(key: string = \"default\"): Promise<GetDataResponse<T>['result']> {\n return await request({ name: \"getData\", args: { key } });\n}\n\n/**\n * Store data that can be retrieved later.\n * \n * @example\n * // Store with custom key\n * await setData(\"myKey\", { name: \"John\" });\n * \n * // Store with default key (equivalent to setData(\"default\", value))\n * await setData({ name: \"John\" });\n */\nexport async function setData<T>(key: string, value: T): Promise<SetDataResponse['result']>;\nexport async function setData<T>(value: T): Promise<SetDataResponse['result']>;\nexport async function setData<T>(keyOrValue: string | T, value?: T): Promise<SetDataResponse['result']> {\n if (value !== undefined) {\n return await request({ name: \"setData\", args: { key: keyOrValue as string, value } as SetDataRequest<T>['args'] });\n } else {\n return await request({ name: \"setData\", args: { key: \"default\", value: keyOrValue as T } as SetDataRequest<T>['args'] });\n }\n}\n\nexport async function getEncryptedData<T>(key: string): Promise<GetEncryptedDataResponse<T>['result']> {\n return await request({ name: \"getEncryptedData\", args: { key } });\n}\n\n/**\n * Store encrypted data that can be retrieved later.\n * \n * @example\n * // Store with custom key\n * await setEncryptedData(\"secretKey\", { token: \"abc123\" });\n * \n * // Store with default key (equivalent to setEncryptedData(\"default\", value))\n * await setEncryptedData({ token: \"abc123\" });\n */\nexport async function setEncryptedData<T>(key: string, value: T): Promise<SetEncryptedDataResponse['result']>;\nexport async function setEncryptedData<T>(value: T): Promise<SetEncryptedDataResponse['result']>;\nexport async function setEncryptedData<T>(keyOrValue: string | T, value?: T): Promise<SetEncryptedDataResponse['result']> {\n if (value !== undefined) {\n return await request({ name: \"setEncryptedData\", args: { key: keyOrValue as string, value } as SetEncryptedDataRequest<T>['args'] });\n } else {\n return await request({ name: \"setEncryptedData\", args: { key: \"default\", value: keyOrValue as T } as SetEncryptedDataRequest<T>['args'] });\n }\n}\n\nexport * from \"./commonTypes\";\nexport * from \"./requestTypes\";\nexport * from \"./responseTypes\";\nexport * from \"./notificationTypes\";\nexport * from \"./comms\";\n\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED