@lynker-desktop/electron-sdk 0.0.9-alpha.7 → 0.0.9-alpha.72
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 +160 -1
- package/common/index.d.ts +96 -0
- package/common/index.d.ts.map +1 -1
- package/common/index.js.map +1 -1
- package/esm/common/index.d.ts +96 -0
- package/esm/common/index.d.ts.map +1 -1
- package/esm/common/index.js.map +1 -1
- package/esm/main/clipboard.d.ts +32 -0
- package/esm/main/clipboard.d.ts.map +1 -0
- package/esm/main/clipboard.js +1208 -0
- package/esm/main/clipboard.js.map +1 -0
- package/esm/main/downloader.d.ts +212 -0
- package/esm/main/downloader.d.ts.map +1 -0
- package/esm/main/downloader.js +674 -0
- package/esm/main/downloader.js.map +1 -0
- package/esm/main/index.d.ts +20 -67
- package/esm/main/index.d.ts.map +1 -1
- package/esm/main/index.js +51 -202
- package/esm/main/index.js.map +1 -1
- package/esm/main/resource-cache.d.ts +245 -0
- package/esm/main/resource-cache.d.ts.map +1 -0
- package/esm/main/resource-cache.js +857 -0
- package/esm/main/resource-cache.js.map +1 -0
- package/esm/main/shortcut.d.ts +14 -0
- package/esm/main/shortcut.d.ts.map +1 -0
- package/esm/main/shortcut.js +173 -0
- package/esm/main/shortcut.js.map +1 -0
- package/esm/main/store.d.ts +10 -0
- package/esm/main/store.d.ts.map +1 -0
- package/esm/main/store.js +62 -0
- package/esm/main/store.js.map +1 -0
- package/esm/main/video-downloader.d.ts +39 -0
- package/esm/main/video-downloader.d.ts.map +1 -0
- package/esm/main/video-downloader.js +505 -0
- package/esm/main/video-downloader.js.map +1 -0
- package/esm/preload/index.js +19 -1
- package/esm/preload/index.js.map +1 -1
- package/esm/renderer/index.d.ts +8 -0
- package/esm/renderer/index.d.ts.map +1 -1
- package/esm/renderer/index.js +25 -0
- package/esm/renderer/index.js.map +1 -1
- package/main/clipboard.d.ts +32 -0
- package/main/clipboard.d.ts.map +1 -0
- package/main/clipboard.js +1208 -0
- package/main/clipboard.js.map +1 -0
- package/main/downloader.d.ts +212 -0
- package/main/downloader.d.ts.map +1 -0
- package/main/downloader.js +674 -0
- package/main/downloader.js.map +1 -0
- package/main/index.d.ts +20 -67
- package/main/index.d.ts.map +1 -1
- package/main/index.js +54 -205
- package/main/index.js.map +1 -1
- package/main/resource-cache.d.ts +245 -0
- package/main/resource-cache.d.ts.map +1 -0
- package/main/resource-cache.js +857 -0
- package/main/resource-cache.js.map +1 -0
- package/main/shortcut.d.ts +14 -0
- package/main/shortcut.d.ts.map +1 -0
- package/main/shortcut.js +173 -0
- package/main/shortcut.js.map +1 -0
- package/main/store.d.ts +10 -0
- package/main/store.d.ts.map +1 -0
- package/main/store.js +64 -0
- package/main/store.js.map +1 -0
- package/main/video-downloader.d.ts +39 -0
- package/main/video-downloader.d.ts.map +1 -0
- package/main/video-downloader.js +510 -0
- package/main/video-downloader.js.map +1 -0
- package/package.json +9 -5
- package/preload/index.js +19 -1
- package/preload/index.js.map +1 -1
- package/renderer/index.d.ts +8 -0
- package/renderer/index.d.ts.map +1 -1
- package/renderer/index.js +25 -0
- package/renderer/index.js.map +1 -1
package/preload/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/src/preload/index.ts"],"sourcesContent":["import { contextBridge, ipcRenderer, webFrame } from 'electron';\nimport remote from '@electron/remote/renderer';\nimport '@lynker-desktop/electron-ipc/preload';\nimport '@lynker-desktop/electron-logs/preload';\nimport '@lynker-desktop/electron-window-manager/preload';\n\n// @ts-ignore\nif (window.__ELECTRON_SDK__) {\n // eslint-disable-next-line no-console\n console.log('electron-sdk Electron preload has already been run');\n} else {\n try {\n const preload = {\n ipcRenderer: ipcRenderer,\n remote: remote,\n webFrame: webFrame,\n }\n // @ts-ignore\n window.__ELECTRON_SDK__ = preload;\n if (contextBridge) {\n try {\n // This will fail if contextIsolation is not enabled\n contextBridge.exposeInMainWorld('__ELECTRON_SDK__', preload);\n } catch (error) {\n // console.error(error)\n }\n\n }\n }\n catch (e) {\n console.error(e)\n }\n}\n"],"names":["ipcRenderer","webFrame","contextBridge"],"mappings":";;;;;;AAMA;AACA,IAAI,MAAM,CAAC,gBAAgB,EAAE;;AAE3B,IAAA,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;AACpE,CAAC;KAAM;AACL,IAAA,IAAI;AACF,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,WAAW,EAAEA,oBAAW;
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/src/preload/index.ts"],"sourcesContent":["import { contextBridge, ipcRenderer, webFrame } from 'electron';\nimport remote from '@electron/remote/renderer';\nimport '@lynker-desktop/electron-ipc/preload';\nimport '@lynker-desktop/electron-logs/preload';\nimport '@lynker-desktop/electron-window-manager/preload';\n\n// @ts-ignore\nif (window.__ELECTRON_SDK__) {\n // eslint-disable-next-line no-console\n console.log('electron-sdk Electron preload has already been run');\n} else {\n try {\n const preload = {\n ipcRenderer: {\n ...ipcRenderer,\n emit: ipcRenderer.emit.bind(ipcRenderer),\n prependListener: ipcRenderer.prependListener.bind(ipcRenderer),\n prependOnceListener: ipcRenderer.prependOnceListener.bind(ipcRenderer),\n once: ipcRenderer.once.bind(ipcRenderer),\n on: ipcRenderer.on.bind(ipcRenderer),\n off: ipcRenderer.off.bind(ipcRenderer),\n send: ipcRenderer.send.bind(ipcRenderer),\n sendSync: ipcRenderer.sendSync.bind(ipcRenderer),\n sendToHost: ipcRenderer.sendToHost.bind(ipcRenderer),\n invoke: ipcRenderer.invoke.bind(ipcRenderer),\n addListener: ipcRenderer.addListener.bind(ipcRenderer),\n removeAllListeners: ipcRenderer.removeAllListeners.bind(ipcRenderer),\n removeListener: ipcRenderer.removeListener.bind(ipcRenderer),\n },\n remote: remote,\n getRemote:() => {\n return remote;\n },\n webFrame: webFrame,\n }\n // @ts-ignore\n window.__ELECTRON_SDK__ = preload;\n if (contextBridge) {\n try {\n // This will fail if contextIsolation is not enabled\n contextBridge.exposeInMainWorld('__ELECTRON_SDK__', preload);\n } catch (error) {\n // console.error(error)\n }\n\n }\n }\n catch (e) {\n console.error(e)\n }\n}\n"],"names":["ipcRenderer","webFrame","contextBridge"],"mappings":";;;;;;AAMA;AACA,IAAI,MAAM,CAAC,gBAAgB,EAAE;;AAE3B,IAAA,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;AACpE,CAAC;KAAM;AACL,IAAA,IAAI;AACF,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,WAAW,EAAE;AACX,gBAAA,GAAGA,oBAAW;gBACd,IAAI,EAAEA,oBAAW,CAAC,IAAI,CAAC,IAAI,CAACA,oBAAW,CAAC;gBACxC,eAAe,EAAEA,oBAAW,CAAC,eAAe,CAAC,IAAI,CAACA,oBAAW,CAAC;gBAC9D,mBAAmB,EAAEA,oBAAW,CAAC,mBAAmB,CAAC,IAAI,CAACA,oBAAW,CAAC;gBACtE,IAAI,EAAEA,oBAAW,CAAC,IAAI,CAAC,IAAI,CAACA,oBAAW,CAAC;gBACxC,EAAE,EAAEA,oBAAW,CAAC,EAAE,CAAC,IAAI,CAACA,oBAAW,CAAC;gBACpC,GAAG,EAAEA,oBAAW,CAAC,GAAG,CAAC,IAAI,CAACA,oBAAW,CAAC;gBACtC,IAAI,EAAEA,oBAAW,CAAC,IAAI,CAAC,IAAI,CAACA,oBAAW,CAAC;gBACxC,QAAQ,EAAEA,oBAAW,CAAC,QAAQ,CAAC,IAAI,CAACA,oBAAW,CAAC;gBAChD,UAAU,EAAEA,oBAAW,CAAC,UAAU,CAAC,IAAI,CAACA,oBAAW,CAAC;gBACpD,MAAM,EAAEA,oBAAW,CAAC,MAAM,CAAC,IAAI,CAACA,oBAAW,CAAC;gBAC5C,WAAW,EAAEA,oBAAW,CAAC,WAAW,CAAC,IAAI,CAACA,oBAAW,CAAC;gBACtD,kBAAkB,EAAEA,oBAAW,CAAC,kBAAkB,CAAC,IAAI,CAACA,oBAAW,CAAC;gBACpE,cAAc,EAAEA,oBAAW,CAAC,cAAc,CAAC,IAAI,CAACA,oBAAW,CAAC;AAC7D,aAAA;AACD,YAAA,MAAM,EAAE,MAAM;YACd,SAAS,EAAC,MAAK;AACb,gBAAA,OAAO,MAAM,CAAC;aACf;AACD,YAAA,QAAQ,EAAEC,iBAAQ;SACnB,CAAA;;AAED,QAAA,MAAM,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAClC,IAAIC,sBAAa,EAAE;AACjB,YAAA,IAAI;;AAEF,gBAAAA,sBAAa,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;aAC9D;YAAC,OAAO,KAAK,EAAE;;aAEf;SAEF;KACF;IACD,OAAO,CAAC,EAAE;AACR,QAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;KACjB;AACH;;"}
|
package/renderer/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { ProcessMetric } from 'electron';
|
|
|
3
3
|
import EventEmitter from 'events';
|
|
4
4
|
import ipc from '@lynker-desktop/electron-ipc/renderer';
|
|
5
5
|
import windowManager from '@lynker-desktop/electron-window-manager/renderer';
|
|
6
|
+
import { VideoTranscodeChangeCallback, type VideoDownloadOptions } from '../common';
|
|
6
7
|
declare class SDK extends EventEmitter {
|
|
7
8
|
remote: typeof RemoteType;
|
|
8
9
|
ipc: typeof ipc.RendererIPC;
|
|
@@ -41,6 +42,13 @@ declare class SDK extends EventEmitter {
|
|
|
41
42
|
* @returns
|
|
42
43
|
*/
|
|
43
44
|
getAppMetrics: () => Promise<ProcessMetric[]>;
|
|
45
|
+
/**
|
|
46
|
+
* 转码视频
|
|
47
|
+
* @param options
|
|
48
|
+
* @param callbacks
|
|
49
|
+
* @returns
|
|
50
|
+
*/
|
|
51
|
+
transcodeVideo: (options: VideoDownloadOptions, callbacks?: (data: VideoTranscodeChangeCallback) => void) => Promise<string>;
|
|
44
52
|
}
|
|
45
53
|
/** 临时写法,后期用rollup生成umd包 */
|
|
46
54
|
declare const core: SDK;
|
package/renderer/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/renderer/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,YAAY,MAAM,QAAQ,CAAC;AAGlC,OAAO,GAAG,MAAM,uCAAuC,CAAA;AAEvD,OAAO,aAAa,MAAM,kDAAkD,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/renderer/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,YAAY,MAAM,QAAQ,CAAC;AAGlC,OAAO,GAAG,MAAM,uCAAuC,CAAA;AAEvD,OAAO,aAAa,MAAM,kDAAkD,CAAA;AAC5E,OAAO,EAA4C,4BAA4B,EAA2C,KAAK,oBAAoB,EAA8B,MAAM,WAAW,CAAC;AAYnM,cAAM,GAAI,SAAQ,YAAY;IAC5B,MAAM,EAAkB,OAAO,UAAU,CAAC;IAC1C,GAAG,yBAAmB;IACtB,GAAG,wFAAY;IACf,UAAU,wBAAmB;IAC7B,aAAa,uBAAiB;;IAe9B;;OAEG;IACH,gBAAgB,QAAa,OAAO,CAAC,MAAM,CAAC,CAG3C;IAED;;;OAGG;IACH,gBAAgB,QAAa,OAAO,CAAC,MAAM,CAAC,CAG3C;IAED;;;;OAIG;IACH,eAAe,aAAc,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAAG,MAAM,IAAI,CAMlE;IAED;;;;OAIG;IACH,aAAa,CAAC,GAAG,GAAE,MAAwB,GAAG,MAAM;IAmBpD;;;OAGG;IACH,MAAM,kBAAmB,MAAM,UAE9B;IAED;;;OAGG;IACH,aAAa,QAAa,OAAO,CAAC,aAAa,EAAE,CAAC,CAGjD;IAED;;;;;OAKG;IACH,cAAc,YAAmB,oBAAoB,cAAc,CAAC,IAAI,EAAE,4BAA4B,KAAK,IAAI,KAAG,OAAO,CAAC,MAAM,CAAC,CAiBhI;CACF;AACD,2BAA2B;AAE3B,QAAA,MAAM,IAAI,KAA8C,CAAC;AACzD,eAAe,IAAI,CAAC"}
|
package/renderer/index.js
CHANGED
|
@@ -66,6 +66,31 @@ class SDK extends EventEmitter {
|
|
|
66
66
|
const metrics = await this.ipc.invokeMain(index.IPC_GET_APP_METRICS);
|
|
67
67
|
return JSON.parse(metrics);
|
|
68
68
|
};
|
|
69
|
+
/**
|
|
70
|
+
* 转码视频
|
|
71
|
+
* @param options
|
|
72
|
+
* @param callbacks
|
|
73
|
+
* @returns
|
|
74
|
+
*/
|
|
75
|
+
this.transcodeVideo = async (options, callbacks) => {
|
|
76
|
+
return new Promise((resolve, reject) => {
|
|
77
|
+
const md5Options = md5(JSON.stringify(options.url));
|
|
78
|
+
const handle = this.ipc.handleRenderer(`__sdk_transcode_video_callback_${md5Options}__`, async (data) => {
|
|
79
|
+
callbacks && callbacks(data);
|
|
80
|
+
if (data.type === 'complete') {
|
|
81
|
+
if (data.error) {
|
|
82
|
+
reject(data.error);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
resolve(data?.data?.outputPath || '');
|
|
86
|
+
}
|
|
87
|
+
handle.cancel();
|
|
88
|
+
}
|
|
89
|
+
return true;
|
|
90
|
+
});
|
|
91
|
+
this.ipc.invokeMain(`__sdk_transcode_video__`, options);
|
|
92
|
+
});
|
|
93
|
+
};
|
|
69
94
|
try {
|
|
70
95
|
/** 监听桌面端唤起 */
|
|
71
96
|
this.ipc.handleRenderer('__GLOBAL_CHANGE_LAUNCH_OPTIONS__', async (data) => {
|
package/renderer/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/src/renderer/index.ts"],"sourcesContent":["import type RemoteType from '@electron/remote'\nimport type { ProcessMetric } from 'electron'\nimport EventEmitter from 'events';\nimport md5 from 'md5';\nimport { v5 as uuidv5 } from 'uuid';\nimport ipc from '@lynker-desktop/electron-ipc/renderer'\nimport logs from '@lynker-desktop/electron-logs/renderer'\nimport windowManager from '@lynker-desktop/electron-window-manager/renderer'\nimport { IPC_GET_APP_METRICS } from '../common';\n\nfunction getRemote() {\n try {\n // @ts-ignore\n return window?.__ELECTRON_SDK__?.remote || window?.require('@electron/remote')\n } catch (error) {\n console.error('当前非桌面端环境, 请在桌面端中调用');\n return {} as typeof RemoteType;\n }\n}\n\nclass SDK extends EventEmitter {\n remote = getRemote() as typeof RemoteType;\n ipc = ipc.RendererIPC;\n log = logs.log;\n getLogPath = logs.getLogPath;\n windowManager = windowManager;\n\n constructor() {\n super();\n try {\n /** 监听桌面端唤起 */\n this.ipc.handleRenderer('__GLOBAL_CHANGE_LAUNCH_OPTIONS__', async (data) => {\n this.emit('launch-options-change', `${data ?? ''}`);\n return 'OK';\n });\n } catch (error) {\n console.error('当前非桌面端环境, 请在桌面端中调用');\n }\n }\n\n /**\n * 获取启动/唤起参数\n */\n getLaunchOptions = async (): Promise<string> => {\n const options = await this.ipc.invokeMain(`__GLOBAL_GET_LAUNCH_OPTIONS__`);\n return options;\n }\n\n /**\n * 清除启动/唤起参数\n * @returns\n */\n delLaunchOptions = async (): Promise<string> => {\n const options = await this.ipc.invokeMain(`__GLOBAL_DEL_LAUNCH_OPTIONS__`);\n return options;\n }\n\n /**\n * 监听桌面端唤起\n * @param callback\n * @returns\n */\n onLaunchOptions = (callback: (options: string) => void): () => void => {\n const onCallback = (data: string) => {\n callback(data ?? '');\n }\n this.on('launch-options-change', onCallback);\n return () => this.off('launch-options-change', onCallback);\n }\n\n /**\n * 生成随机uuid\n * @param key\n * @returns\n */\n getRandomUUID(key: string = `${Date.now()}`): string {\n let webcrypto!: Crypto;\n let randomValue = Math?.random()?.toString()?.replace('0.', '');\n try {\n if (!webcrypto && !!window && window?.crypto) {\n webcrypto = window.crypto;\n }\n } catch (error) {console.log}\n try {\n const ar = webcrypto.getRandomValues(new Uint8Array(12));\n randomValue = `${md5(ar)}` || randomValue;\n } catch (error) {}\n const uuid = uuidv5(\n `${JSON.stringify(key)}_${Date.now()}_${randomValue}`,\n uuidv5.URL,\n );\n return uuid;\n }\n\n /**\n * 启用webContents\n * @param webContentsId\n */\n enable = (webContentsId: number) => {\n this.ipc.invokeMain(`__sdk_enable_web_contents__`, webContentsId);\n }\n\n /**\n * 获取应用指标\n * @returns\n */\n getAppMetrics = async (): Promise<ProcessMetric[]> => {\n const metrics = await this.ipc.invokeMain(IPC_GET_APP_METRICS);\n return JSON.parse(metrics);\n }\n}\n/** 临时写法,后期用rollup生成umd包 */\n// @ts-ignore\nconst core = window['__ELECTRON_SDK_CORE__'] = new SDK();\nexport default core;\n"],"names":["IPC_GET_APP_METRICS","uuid","uuidv5"],"mappings":";;;;;;;;AAUA,SAAS,SAAS,GAAA;AAChB,IAAA,IAAI;;AAEF,QAAA,OAAO,MAAM,EAAE,gBAAgB,EAAE,MAAM,IAAI,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;KAC/E;IAAC,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;AACpC,QAAA,OAAO,EAAwB,CAAC;KACjC;AACH,CAAC;AAED,MAAM,GAAI,SAAQ,YAAY,CAAA;AAO5B,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;QAPV,IAAM,CAAA,MAAA,GAAG,SAAS,EAAuB,CAAC;AAC1C,QAAA,IAAA,CAAA,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC;AACtB,QAAA,IAAA,CAAA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACf,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7B,IAAa,CAAA,aAAA,GAAG,aAAa,CAAC;AAe9B;;AAEG;QACH,IAAgB,CAAA,gBAAA,GAAG,YAA4B;YAC7C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAA+B,6BAAA,CAAA,CAAC,CAAC;AAC3E,YAAA,OAAO,OAAO,CAAC;AACjB,SAAC,CAAA;AAED;;;AAGG;QACH,IAAgB,CAAA,gBAAA,GAAG,YAA4B;YAC7C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAA+B,6BAAA,CAAA,CAAC,CAAC;AAC3E,YAAA,OAAO,OAAO,CAAC;AACjB,SAAC,CAAA;AAED;;;;AAIG;AACH,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,QAAmC,KAAgB;AACpE,YAAA,MAAM,UAAU,GAAG,CAAC,IAAY,KAAI;AAClC,gBAAA,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AACvB,aAAC,CAAA;AACD,YAAA,IAAI,CAAC,EAAE,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;YAC7C,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;AAC7D,SAAC,CAAA;AA0BD;;;AAGG;AACH,QAAA,IAAA,CAAA,MAAM,GAAG,CAAC,aAAqB,KAAI;YACjC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAA6B,2BAAA,CAAA,EAAE,aAAa,CAAC,CAAC;AACpE,SAAC,CAAA;AAED;;;AAGG;QACH,IAAa,CAAA,aAAA,GAAG,YAAqC;YACnD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAACA,yBAAmB,CAAC,CAAC;AAC/D,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC7B,SAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/src/renderer/index.ts"],"sourcesContent":["import type RemoteType from '@electron/remote'\nimport type { ProcessMetric } from 'electron'\nimport EventEmitter from 'events';\nimport md5 from 'md5';\nimport { v5 as uuidv5 } from 'uuid';\nimport ipc from '@lynker-desktop/electron-ipc/renderer'\nimport logs from '@lynker-desktop/electron-logs/renderer'\nimport windowManager from '@lynker-desktop/electron-window-manager/renderer'\nimport { IPC_GET_APP_METRICS, VideoDownloadResult, VideoTranscodeChangeCallback, VideoTranscodeChangeCallbackForComplete, type VideoDownloadOptions, type VideoProgressCallback } from '../common';\n\nfunction getRemote() {\n try {\n // @ts-ignore\n return window?.__ELECTRON_SDK__?.remote || window?.require('@electron/remote')\n } catch (error) {\n console.error('当前非桌面端环境, 请在桌面端中调用');\n return {} as typeof RemoteType;\n }\n}\n\nclass SDK extends EventEmitter {\n remote = getRemote() as typeof RemoteType;\n ipc = ipc.RendererIPC;\n log = logs.log;\n getLogPath = logs.getLogPath;\n windowManager = windowManager;\n\n constructor() {\n super();\n try {\n /** 监听桌面端唤起 */\n this.ipc.handleRenderer('__GLOBAL_CHANGE_LAUNCH_OPTIONS__', async (data) => {\n this.emit('launch-options-change', `${data ?? ''}`);\n return 'OK';\n });\n } catch (error) {\n console.error('当前非桌面端环境, 请在桌面端中调用');\n }\n }\n\n /**\n * 获取启动/唤起参数\n */\n getLaunchOptions = async (): Promise<string> => {\n const options = await this.ipc.invokeMain(`__GLOBAL_GET_LAUNCH_OPTIONS__`);\n return options;\n }\n\n /**\n * 清除启动/唤起参数\n * @returns\n */\n delLaunchOptions = async (): Promise<string> => {\n const options = await this.ipc.invokeMain(`__GLOBAL_DEL_LAUNCH_OPTIONS__`);\n return options;\n }\n\n /**\n * 监听桌面端唤起\n * @param callback\n * @returns\n */\n onLaunchOptions = (callback: (options: string) => void): () => void => {\n const onCallback = (data: string) => {\n callback(data ?? '');\n }\n this.on('launch-options-change', onCallback);\n return () => this.off('launch-options-change', onCallback);\n }\n\n /**\n * 生成随机uuid\n * @param key\n * @returns\n */\n getRandomUUID(key: string = `${Date.now()}`): string {\n let webcrypto!: Crypto;\n let randomValue = Math?.random()?.toString()?.replace('0.', '');\n try {\n if (!webcrypto && !!window && window?.crypto) {\n webcrypto = window.crypto;\n }\n } catch (error) {console.log}\n try {\n const ar = webcrypto.getRandomValues(new Uint8Array(12));\n randomValue = `${md5(ar)}` || randomValue;\n } catch (error) {}\n const uuid = uuidv5(\n `${JSON.stringify(key)}_${Date.now()}_${randomValue}`,\n uuidv5.URL,\n );\n return uuid;\n }\n\n /**\n * 启用webContents\n * @param webContentsId\n */\n enable = (webContentsId: number) => {\n this.ipc.invokeMain(`__sdk_enable_web_contents__`, webContentsId);\n }\n\n /**\n * 获取应用指标\n * @returns\n */\n getAppMetrics = async (): Promise<ProcessMetric[]> => {\n const metrics = await this.ipc.invokeMain(IPC_GET_APP_METRICS);\n return JSON.parse(metrics);\n }\n\n /**\n * 转码视频\n * @param options\n * @param callbacks\n * @returns\n */\n transcodeVideo = async (options: VideoDownloadOptions, callbacks?: (data: VideoTranscodeChangeCallback) => void): Promise<string> => {\n return new Promise((resolve, reject) => {\n const md5Options = md5(JSON.stringify(options.url));\n const handle = this.ipc.handleRenderer(`__sdk_transcode_video_callback_${md5Options}__`, async (data) => {\n callbacks && callbacks(data);\n if (data.type === 'complete') {\n if (data.error) {\n reject(data.error);\n } else {\n resolve(data?.data?.outputPath || '');\n }\n handle.cancel();\n }\n return true;\n })\n this.ipc.invokeMain(`__sdk_transcode_video__`, options);\n })\n }\n}\n/** 临时写法,后期用rollup生成umd包 */\n// @ts-ignore\nconst core = window['__ELECTRON_SDK_CORE__'] = new SDK();\nexport default core;\n"],"names":["IPC_GET_APP_METRICS","uuid","uuidv5"],"mappings":"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"}
|