@plasosdk/plaso-electron-sdk 1.3.17-beta.1 → 1.3.17

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/js/macro.js CHANGED
@@ -1,103 +1,103 @@
1
- const ERROR_CODE = {
2
- /** 非 electron 环境 */
3
- NO_ELECTRON_ENVIRONMENT: -1,
4
- /** 获取remote 失败 */
5
- GET_REMOTE_FAIL: -2,
6
- /** 获取 屏幕信息 失败 */
7
- GET_DISPLAY_INFO_FAIL: -3,
8
- /** 课堂窗口同时仅能存在一个 */
9
- CLASS_WINODW_GREATER_THAN_ONE: -4,
10
- /** 未知的异常错误 */
11
- COMMOM_ERROR: -99,
12
- };
13
-
14
- const LESSON_TYPE = {
15
- /** 课堂 */
16
- LIVECLASS: 'liveClass',
17
- /** 备课 */
18
- PREPARE_LESSONS: 'prepareLesson',
19
- };
20
-
21
- /** 课堂窗口与外部窗口通讯的消息 */
22
- const CLASS_WINDOW_MESG_TYPE = {
23
- // <<<<<<< 接收的消息 <<<<<<<
24
- /** 初始化 globalAppInfo */
25
- INIT_GLOBAL_APPINFO: 'init_global_appinfo',
26
- /** 课堂dom渲染成功后告知外部应用窗口,传参用户信息 */
27
- LIVE_WINDOW_READY: 'liveWindowReady',
28
- /** 课堂结束 */
29
- ON_CLASS_FINISHED: 'onClassFinished',
30
- /** 保存白板文件 */
31
- SAVE_BOARD: 'save_board',
32
- /** 打开资料中心 */
33
- OPEN_RESOURCE_CENTER: 'open_resource_center',
34
- /** 通知外部调用getExtFileName */
35
- GET_EXT_FILE_NAME: 'getExtFileName',
36
- /** 通知外部调用getPreParseFileName */
37
- GET_PRE_PARSE_FILE_NAME: 'getPreParseFileName',
38
- /** 上报问题 */
39
- REPORT_ISSUES: 'reportIssues',
40
- /** 浏览器-获取收藏列表 */
41
- FETCH_FAVORITES: 'fetchFavorites',
42
- /** 浏览器-获取分类列表 */
43
- FETCH_CATEGORIES: 'fetchCategories',
44
- /** 浏览器-添加收藏 */
45
- ADD_FAVORITE: 'addFavorite',
46
- /** 浏览器-删除收藏 */
47
- REMOVE_FAVORITE: 'removeFavorite',
48
-
49
- // >>>>>>> 发送的消息 >>>>>>>
50
- /** html ready */
51
- HTML_READY: 'html_ready',
52
- /** 更新屏蔽词 */
53
- UPDATE_SENSITIVE_WORDS: 'updateSensitiveWords',
54
- /** 响应保存白板文件 */
55
- RESP_SAVE_BOARD: 'resp_save_board',
56
- /** 插入白板文件 */
57
- INSERT_BOARD: 'insert_board',
58
- /** 插入文件 */
59
- INSERT_OBJECT: 'insertObject',
60
- RESP_GET_EXT_FILE_NAME: 'respGetExtFileName',
61
- RESP_GET_PRE_PARSE_FILE_NAME: 'respGetPreParseFileName',
62
- RESP_FETCH_FAVORITES: 'respFetchFavorites',
63
- RESP_FETCH_CATEGORIES: 'respFetchCategories',
64
- RESP_ADD_FAVORITE: 'respAddFavorite',
65
- RESP_REMOVE_FAVORITE: 'respRemoveFavorite',
66
- };
67
-
68
- const LEVEL = {
69
- error: 3,
70
- warn: 2,
71
- info: 1,
72
- debug: 0,
73
- };
74
-
75
- /** 渲染进程——》主进程通讯的消息 */
76
- const RENDER_TO_MAIN_MESG_TYPE = {
77
- /** 初始化dump生成位置 */
78
- PLASO_INIT_LOG_PATH: 'plaso-init-log-path',
79
- };
80
-
81
- /** 插入的文件类型 */
82
- const FILE_TYPE = {
83
- PPT: 1,
84
- IMAGE: 2,
85
- PDF: 3,
86
- WORD: 4,
87
- EXCEL: 5,
88
- AUDIO: 6,
89
- VIDEO: 7,
90
- DOC: 14,
91
- XLS: 15,
92
- ISPRINGPPT: 21,
93
- PREPARE_LESSONS: 22,
94
- };
95
-
96
- module.exports = {
97
- LESSON_TYPE,
98
- ERROR_CODE,
99
- CLASS_WINDOW_MESG_TYPE,
100
- LEVEL,
101
- RENDER_TO_MAIN_MESG_TYPE,
102
- FILE_TYPE,
103
- };
1
+ const ERROR_CODE = {
2
+ /** 非 electron 环境 */
3
+ NO_ELECTRON_ENVIRONMENT: -1,
4
+ /** 获取remote 失败 */
5
+ GET_REMOTE_FAIL: -2,
6
+ /** 获取 屏幕信息 失败 */
7
+ GET_DISPLAY_INFO_FAIL: -3,
8
+ /** 课堂窗口同时仅能存在一个 */
9
+ CLASS_WINODW_GREATER_THAN_ONE: -4,
10
+ /** 未知的异常错误 */
11
+ COMMOM_ERROR: -99,
12
+ };
13
+
14
+ const LESSON_TYPE = {
15
+ /** 课堂 */
16
+ LIVECLASS: 'liveClass',
17
+ /** 备课 */
18
+ PREPARE_LESSONS: 'prepareLesson',
19
+ };
20
+
21
+ /** 课堂窗口与外部窗口通讯的消息 */
22
+ const CLASS_WINDOW_MESG_TYPE = {
23
+ // <<<<<<< 接收的消息 <<<<<<<
24
+ /** 初始化 globalAppInfo */
25
+ INIT_GLOBAL_APPINFO: 'init_global_appinfo',
26
+ /** 课堂dom渲染成功后告知外部应用窗口,传参用户信息 */
27
+ LIVE_WINDOW_READY: 'liveWindowReady',
28
+ /** 课堂结束 */
29
+ ON_CLASS_FINISHED: 'onClassFinished',
30
+ /** 保存白板文件 */
31
+ SAVE_BOARD: 'save_board',
32
+ /** 打开资料中心 */
33
+ OPEN_RESOURCE_CENTER: 'open_resource_center',
34
+ /** 通知外部调用getExtFileName */
35
+ GET_EXT_FILE_NAME: 'getExtFileName',
36
+ /** 通知外部调用getPreParseFileName */
37
+ GET_PRE_PARSE_FILE_NAME: 'getPreParseFileName',
38
+ /** 上报问题 */
39
+ REPORT_ISSUES: 'reportIssues',
40
+ /** 浏览器-获取收藏列表 */
41
+ FETCH_FAVORITES: 'fetchFavorites',
42
+ /** 浏览器-获取分类列表 */
43
+ FETCH_CATEGORIES: 'fetchCategories',
44
+ /** 浏览器-添加收藏 */
45
+ ADD_FAVORITE: 'addFavorite',
46
+ /** 浏览器-删除收藏 */
47
+ REMOVE_FAVORITE: 'removeFavorite',
48
+
49
+ // >>>>>>> 发送的消息 >>>>>>>
50
+ /** html ready */
51
+ HTML_READY: 'html_ready',
52
+ /** 更新屏蔽词 */
53
+ UPDATE_SENSITIVE_WORDS: 'updateSensitiveWords',
54
+ /** 响应保存白板文件 */
55
+ RESP_SAVE_BOARD: 'resp_save_board',
56
+ /** 插入白板文件 */
57
+ INSERT_BOARD: 'insert_board',
58
+ /** 插入文件 */
59
+ INSERT_OBJECT: 'insertObject',
60
+ RESP_GET_EXT_FILE_NAME: 'respGetExtFileName',
61
+ RESP_GET_PRE_PARSE_FILE_NAME: 'respGetPreParseFileName',
62
+ RESP_FETCH_FAVORITES: 'respFetchFavorites',
63
+ RESP_FETCH_CATEGORIES: 'respFetchCategories',
64
+ RESP_ADD_FAVORITE: 'respAddFavorite',
65
+ RESP_REMOVE_FAVORITE: 'respRemoveFavorite',
66
+ };
67
+
68
+ const LEVEL = {
69
+ error: 3,
70
+ warn: 2,
71
+ info: 1,
72
+ debug: 0,
73
+ };
74
+
75
+ /** 渲染进程——》主进程通讯的消息 */
76
+ const RENDER_TO_MAIN_MESG_TYPE = {
77
+ /** 初始化dump生成位置 */
78
+ PLASO_INIT_LOG_PATH: 'plaso-init-log-path',
79
+ };
80
+
81
+ /** 插入的文件类型 */
82
+ const FILE_TYPE = {
83
+ PPT: 1,
84
+ IMAGE: 2,
85
+ PDF: 3,
86
+ WORD: 4,
87
+ EXCEL: 5,
88
+ AUDIO: 6,
89
+ VIDEO: 7,
90
+ DOC: 14,
91
+ XLS: 15,
92
+ ISPRINGPPT: 21,
93
+ PREPARE_LESSONS: 22,
94
+ };
95
+
96
+ module.exports = {
97
+ LESSON_TYPE,
98
+ ERROR_CODE,
99
+ CLASS_WINDOW_MESG_TYPE,
100
+ LEVEL,
101
+ RENDER_TO_MAIN_MESG_TYPE,
102
+ FILE_TYPE,
103
+ };
package/js/main.js CHANGED
@@ -1,34 +1,34 @@
1
- const isElectron = !!process.versions['electron'];
2
- if (isElectron) {
3
- try {
4
- require('@plasosdk/winproxy');
5
- require('@plasosdk/screenshot');
6
- } catch (error) {
7
- console.error(error);
8
- }
9
- try {
10
- const { RENDER_TO_MAIN_MESG_TYPE } = require('./macro');
11
-
12
- const { app, ipcMain, crashReporter } = require('electron');
13
-
14
- // 首次添加此开关是为了解决一些GPU导致的渲染问题的,比如进课堂白屏,历史课堂播放进度条不动。
15
- // 支持虚拟声卡需要添加此开关
16
- app.commandLine.appendSwitch('--no-sandbox');
17
-
18
- ipcMain.on(RENDER_TO_MAIN_MESG_TYPE.PLASO_INIT_LOG_PATH, function (e, logFilePath) {
19
- app.setPath('crashDumps', logFilePath);
20
- crashReporter.start({ submitURL: '', uploadToServer: false });
21
- });
22
- } catch (e) {
23
- console.error(e);
24
- }
25
- }
26
-
27
- function initRemoteMain(remoteMain) {
28
- const { initRemoteMain } = require('@plasosdk/winproxy');
29
- if (remoteMain) initRemoteMain(remoteMain);
30
- }
31
-
32
- module.exports = {
33
- initRemoteMain: initRemoteMain,
34
- };
1
+ const isElectron = !!process.versions['electron'];
2
+ if (isElectron) {
3
+ try {
4
+ require('@plasosdk/winproxy');
5
+ require('@plasosdk/screenshot');
6
+ } catch (error) {
7
+ console.error(error);
8
+ }
9
+ try {
10
+ const { RENDER_TO_MAIN_MESG_TYPE } = require('./macro');
11
+
12
+ const { app, ipcMain, crashReporter } = require('electron');
13
+
14
+ // 首次添加此开关是为了解决一些GPU导致的渲染问题的,比如进课堂白屏,历史课堂播放进度条不动。
15
+ // 支持虚拟声卡需要添加此开关
16
+ app.commandLine.appendSwitch('--no-sandbox');
17
+
18
+ ipcMain.on(RENDER_TO_MAIN_MESG_TYPE.PLASO_INIT_LOG_PATH, function (e, logFilePath) {
19
+ app.setPath('crashDumps', logFilePath);
20
+ crashReporter.start({ submitURL: '', uploadToServer: false });
21
+ });
22
+ } catch (e) {
23
+ console.error(e);
24
+ }
25
+ }
26
+
27
+ function initRemoteMain(remoteMain) {
28
+ const { initRemoteMain } = require('@plasosdk/winproxy');
29
+ if (remoteMain) initRemoteMain(remoteMain);
30
+ }
31
+
32
+ module.exports = {
33
+ initRemoteMain: initRemoteMain,
34
+ };
package/js/render.d.ts CHANGED
@@ -1,98 +1,100 @@
1
- export interface ClassOptionsType {
2
- /** 是否开启课堂窗口debug模式 */
3
- debug?: boolean;
4
- /** 进课堂的必备query */
5
- query: string;
6
- /** 格式参考:1.53.901 */
7
- version?: string;
8
- env?: string;
9
- appType?: string;
10
- classType?: string;
11
- topic?: string;
12
- loginName?: string;
13
- memoryConfigKey?: string;
14
- /** 是否启用浏览器工具 */
15
- enableBrowser?: boolean;
16
- [key: string]: any;
17
- }
18
-
19
- export interface FileParams {
20
- /** 备课文件本地地址 */
21
- filePath: string[];
22
- fileType: 'png' | 'pb' | string;
23
- }
24
-
25
- export interface ClassWindowType {
26
- classOptions: ClassOptionsType;
27
- /** 自定义electron的窗口参数 */
28
- electronWinOptions?: object;
29
- /** 课堂窗口打开渲染成功后的回调 */
30
- onClassWindowReadyFn?: (winId: number) => void;
31
- /** 课堂窗口关闭后的回调 */
32
- onClassWindowLeaveFn?: (winId: number) => void;
33
- /** 课堂结束后的回调 */
34
- onClassFinishedFn?: (meetingId: string) => void;
35
- /**
36
- * 保存板书,具体的保存逻辑由外部实现。
37
- * 取消保存板书时,callback 传 false,否则传 true
38
- */
39
- onSaveBoardFn?: (params: { fileInfo: FileParams[]; fileName?: string }, callback: (result: boolean) => void) => void;
40
- /** 通知外部用户打开自己的资料中心 */
41
- onOpenResourceCenterFn?: () => void;
42
- /** 通过 insertObject 插入的文件时,从 info 中获取文件可访问地址 */
43
- onGetExtFileNameFn?: (info: any, option: any) => Promise<string>;
44
- /** 类似 onGetExtFileNameFn,获取的是预解析文件地址 */
45
- onGetPreParseFileNameFn?: (info: any, option: { suffix: string }) => Promise<string>;
46
- /** 上报问题,具体的上报逻辑由外部实现 */
47
- onReportIssuesFn?: (info: { time: string; id: string; name: string; bugDescription: string }) => void;
48
- /** 浏览器工具相关配置 */
49
- browserOptions?: BrowserOptionsType;
50
- }
51
-
52
- type BrowserOptionsType = {
53
- /** 获取自定义分类 */
54
- onFetchCategoriesFn?: () => Promise<
55
- | { success: true; data: { name: string; bookmarks: { title: string; url: string; icon: string }[] }[] }
56
- | { success: false; message?: string }
57
- >;
58
- // 出于鉴权方面考量,收藏功能暂不对外
59
- /** @deprecated 获取"我的收藏"列表 */
60
- onFetchFavoritesFn?: () => Promise<
61
- { success: true; data: { id: number; title: string; url: string; icon: string }[] } | { success: false; message?: string }
62
- >;
63
- /** @deprecated 添加收藏 */
64
- onAddFavoriteFn?: (value: {
65
- url: string;
66
- title: string;
67
- }) => Promise<
68
- { success: true; data: { id: number; title: string; url: string; icon: string } } | { success: false; message?: string }
69
- >;
70
- /** @deprecated 删除收藏 */
71
- onRemoveFavoriteFn?: (ids: number[]) => Promise<{ success: boolean; message?: string }>;
72
- };
73
-
74
- export interface FileDataObj {
75
- /** 插入文件的格式,内容参考 FILE_TYPE */
76
- type: number;
77
- /** 文件名称,传入后会显示在文件窗口标题栏上,建议带上文件后缀名 */
78
- title?: string;
79
- /** 公开访问权限的文件全地址,建议 https 协议全地址 */
80
- url?: string;
81
- /** 具体的文件信息,除备课外,内容都由用户自己定义 */
82
- info?: any[];
83
- }
84
-
85
- export type BuildReplyingCallback = <TArgs extends any[] = any[], TResult = any>(config: {
86
- requestMsgType: string;
87
- responseMsgType?: string;
88
- /** 返回 false 时跳过后续流程 */
89
- beforeCallback?: (...args: TArgs) => boolean | void;
90
- /** 不传时跳过后续流程 */
91
- callback?: (...args: TArgs) => TResult | Promise<TResult>;
92
- /** 返回 false 时跳过后续流程 */
93
- afterCallback?: (result: TResult) => boolean | void;
94
- }) => {
95
- requestMsgType: string;
96
- responseMsgType: string;
97
- handler: (event: any, requestId: string, ...args: TArgs) => Promise<void>;
98
- };
1
+ export interface ClassOptionsType {
2
+ /** 是否开启课堂窗口debug模式 */
3
+ debug?: boolean;
4
+ /** 进课堂的必备query */
5
+ query: string;
6
+ /** 格式参考:1.53.901 */
7
+ version?: string;
8
+ env?: string;
9
+ appType?: string;
10
+ classType?: string;
11
+ topic?: string;
12
+ loginName?: string;
13
+ memoryConfigKey?: string;
14
+ /** 是否启用浏览器工具 */
15
+ enableBrowser?: boolean;
16
+ /** 是否启用积分排行榜,0 关闭,1 开启 */
17
+ starShow?: number;
18
+ [key: string]: any;
19
+ }
20
+
21
+ export interface FileParams {
22
+ /** 备课文件本地地址 */
23
+ filePath: string[];
24
+ fileType: 'png' | 'pb' | string;
25
+ }
26
+
27
+ export interface ClassWindowType {
28
+ classOptions: ClassOptionsType;
29
+ /** 自定义electron的窗口参数 */
30
+ electronWinOptions?: object;
31
+ /** 课堂窗口打开渲染成功后的回调 */
32
+ onClassWindowReadyFn?: (winId: number) => void;
33
+ /** 课堂窗口关闭后的回调 */
34
+ onClassWindowLeaveFn?: (winId: number) => void;
35
+ /** 课堂结束后的回调 */
36
+ onClassFinishedFn?: (meetingId: string) => void;
37
+ /**
38
+ * 保存板书,具体的保存逻辑由外部实现。
39
+ * 取消保存板书时,callback false,否则传 true
40
+ */
41
+ onSaveBoardFn?: (params: { fileInfo: FileParams[]; fileName?: string }, callback: (result: boolean) => void) => void;
42
+ /** 通知外部用户打开自己的资料中心 */
43
+ onOpenResourceCenterFn?: () => void;
44
+ /** 通过 insertObject 插入的文件时,从 info 中获取文件可访问地址 */
45
+ onGetExtFileNameFn?: (info: any, option: any) => Promise<string>;
46
+ /** 类似 onGetExtFileNameFn,获取的是预解析文件地址 */
47
+ onGetPreParseFileNameFn?: (info: any, option: { suffix: string }) => Promise<string>;
48
+ /** 上报问题,具体的上报逻辑由外部实现 */
49
+ onReportIssuesFn?: (info: { time: string; id: string; name: string; bugDescription: string }) => void;
50
+ /** 浏览器工具相关配置 */
51
+ browserOptions?: BrowserOptionsType;
52
+ }
53
+
54
+ type BrowserOptionsType = {
55
+ /** 获取自定义分类 */
56
+ onFetchCategoriesFn?: () => Promise<
57
+ | { success: true; data: { name: string; bookmarks: { title: string; url: string; icon: string }[] }[] }
58
+ | { success: false; message?: string }
59
+ >;
60
+ // 出于鉴权方面考量,收藏功能暂不对外
61
+ // /** @deprecated 获取"我的收藏"列表 */
62
+ // onFetchFavoritesFn?: () => Promise<
63
+ // { success: true; data: { id: number; title: string; url: string; icon: string }[] } | { success: false; message?: string }
64
+ // >;
65
+ // /** @deprecated 添加收藏 */
66
+ // onAddFavoriteFn?: (value: {
67
+ // url: string;
68
+ // title: string;
69
+ // }) => Promise<
70
+ // { success: true; data: { id: number; title: string; url: string; icon: string } } | { success: false; message?: string }
71
+ // >;
72
+ // /** @deprecated 删除收藏 */
73
+ // onRemoveFavoriteFn?: (ids: number[]) => Promise<{ success: boolean; message?: string }>;
74
+ };
75
+
76
+ export interface FileDataObj {
77
+ /** 插入文件的格式,内容参考 FILE_TYPE */
78
+ type: number;
79
+ /** 文件名称,传入后会显示在文件窗口标题栏上,建议带上文件后缀名 */
80
+ title?: string;
81
+ /** 公开访问权限的文件全地址,建议 https 协议全地址 */
82
+ url?: string;
83
+ /** 具体的文件信息,除备课外,内容都由用户自己定义 */
84
+ info?: any[];
85
+ }
86
+
87
+ export type BuildReplyingCallback = <TArgs extends any[] = any[], TResult = any>(config: {
88
+ requestMsgType: string;
89
+ responseMsgType?: string;
90
+ /** 返回 false 时跳过后续流程 */
91
+ beforeCallback?: (...args: TArgs) => boolean | void;
92
+ /** 不传时跳过后续流程 */
93
+ callback?: (...args: TArgs) => TResult | Promise<TResult>;
94
+ /** 返回 false 时跳过后续流程 */
95
+ afterCallback?: (result: TResult) => boolean | void;
96
+ }) => {
97
+ requestMsgType: string;
98
+ responseMsgType: string;
99
+ handler: (event: any, requestId: string, ...args: TArgs) => Promise<void>;
100
+ };