@netless/window-manager 0.4.57 → 0.4.59

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netless/window-manager",
3
- "version": "0.4.57",
3
+ "version": "0.4.59",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -8,6 +8,11 @@
8
8
  "repository": "netless-io/window-manager",
9
9
  "author": "l1shen <lishen1635@gmail.com> (https://github.com/l1shen)",
10
10
  "license": "MIT",
11
+ "files": [
12
+ "src",
13
+ "dist",
14
+ "docs"
15
+ ],
11
16
  "peerDependencies": {
12
17
  "jspdf": "2.5.1",
13
18
  "white-web-sdk": "^2.16.0"
@@ -28,7 +33,7 @@
28
33
  "video.js": ">=7"
29
34
  },
30
35
  "devDependencies": {
31
- "@netless/app-docs-viewer": "^0.2.12",
36
+ "@netless/app-docs-viewer": "^0.2.14",
32
37
  "@netless/app-media-player": "0.1.0-beta.5",
33
38
  "@rollup/plugin-commonjs": "^20.0.0",
34
39
  "@rollup/plugin-node-resolve": "^13.0.4",
@@ -58,7 +63,7 @@
58
63
  "typescript": "^4.5.5",
59
64
  "vite": "^2.5.3",
60
65
  "vitest": "^0.14.1",
61
- "white-web-sdk": "2.16.33"
66
+ "white-web-sdk": "2.16.42"
62
67
  },
63
68
  "scripts": {
64
69
  "prettier": "prettier --write .",
@@ -29,7 +29,7 @@ import type {
29
29
  } from "./MagixEvent";
30
30
  import type { AddPageParams, PageController, PageState } from "../Page";
31
31
 
32
- export class AppContext<TAttributes = any, TMagixEventPayloads = any, TAppOptions = any>
32
+ export class AppContext<TAttributes extends {} = any, TMagixEventPayloads = any, TAppOptions = any>
33
33
  implements PageController
34
34
  {
35
35
  public readonly emitter: Emittery<AppEmitterEvent<TAttributes>>;
@@ -158,7 +158,7 @@ export class AppContext<TAttributes = any, TMagixEventPayloads = any, TAppOption
158
158
  * @param defaultState Default state for initial storage creation.
159
159
  * @returns
160
160
  */
161
- public createStorage = <TState>(storeId: string, defaultState?: TState): Storage<TState> => {
161
+ public createStorage = <TState extends {}>(storeId: string, defaultState?: TState): Storage<TState> => {
162
162
  const storage = new Storage(this, storeId, defaultState);
163
163
  this.emitter.on("destroy", () => {
164
164
  storage.destroy();
@@ -105,6 +105,11 @@ export const entireScenes = (displayer: Displayer) => {
105
105
  };
106
106
 
107
107
  export const putScenes = (room: Room | undefined, path: string, scenes: SceneDefinition[], index?: number) => {
108
+ for (let i = 0; i < scenes.length; ++i) {
109
+ if (scenes[i].name?.includes('/')) {
110
+ throw new Error("scenes name can not have '/'");
111
+ }
112
+ }
108
113
  return room?.putScenes(path, scenes, index);
109
114
  }
110
115
 
package/src/index.ts CHANGED
@@ -218,7 +218,8 @@ export class WindowManager extends InvisiblePlugin<WindowMangerAttributes, any>
218
218
  throw new Error();
219
219
  }
220
220
  },
221
- { retries: 10 } as any,
221
+ // 1s, 2s, 4s, 5s, 5s, 5s, 5s, 5s, 5s
222
+ { retries: 10, maxTimeout: 5000 } as any
222
223
  );
223
224
  }
224
225
 
package/.prettierignore DELETED
@@ -1,7 +0,0 @@
1
- yarn.lock
2
- node_modules/
3
- dist/
4
- test/
5
- tsconfig.json
6
- vite.config.js
7
- .vscode/
package/.prettierrc.json DELETED
@@ -1,9 +0,0 @@
1
- {
2
- "trailingComma": "es5",
3
- "tabWidth": 4,
4
- "semi": true,
5
- "singleQuote": false,
6
- "endOfLine": "auto",
7
- "arrowParens": "avoid",
8
- "printWidth": 100
9
- }
package/CHANGELOG.md DELETED
@@ -1,304 +0,0 @@
1
- ## 0.4.57 (2023-05-30)
2
-
3
- - 升级 @netless/app-docs-viewer@0.2.12
4
-
5
- ## 0.4.56 (2023-05-10)
6
-
7
- - 修复: 第一个用户的光标消失的问题
8
-
9
- ## 0.4.55 (2022-12-07)
10
-
11
- - 修改导出文件名为 .mjs 和 .js
12
-
13
- Webpack 用户可能会因此报错,解决方法详见 [fastboard#20](https://github.com/netless-io/fastboard/issues/20)
14
-
15
- ## 0.4.54 (2022-11-30)
16
-
17
- - 增强: 默认选择最新 session 作为当前用户
18
-
19
- ## 0.4.53 (2022-11-30)
20
-
21
- - 修复: 本地 pencilEraser 光标没有正确消失
22
-
23
- ## 0.4.52 (2022-11-30)
24
-
25
- - 增强: 触摸输入 pencilEraser 时显示本地光标
26
-
27
- ## 0.4.51 (2022-11-18)
28
-
29
- - 增强: 导出 PDF 现在需要额外安装 jspdf 才能使用(优化打包体积)
30
-
31
- ## 0.4.50 (2022-11-16)
32
-
33
- - 修复: 重连后 `pageStage.length` 没有刷新的问题
34
- - 新增: docs viewer 增加导出 pdf 功能
35
-
36
- ## 0.4.49 (2022-10-13)
37
-
38
- - 增强: 切换 `viewMode` 为 `follower` 总是同步远端的 `camera`
39
-
40
- ## 0.4.48 (2022-10-13)
41
-
42
- - 修复: 切换 `viewMode` 为 `freedom` 后再切换回 `follower` 没有跟随的问题
43
-
44
- ## 0.4.47 (2022-10-13)
45
-
46
- - 增强: 禁用光标功能时, 不再发送光标移动事件
47
-
48
- ## 0.4.46 (2022-10-11)
49
-
50
- - 修复: `rectangle` `ellipse` `straight` 等教具 icon 同步显示错误的问题
51
-
52
- ## 0.4.45 (2022-09-19)
53
-
54
- - 功能: 添加 `focusApp` 方法
55
-
56
- ## 0.4.44 (2022-09-15)
57
-
58
- - 功能: 添加 `follower` 视角模式
59
- - 功能: 添加 `pencilEraser` 同步光标
60
-
61
- ## 0.4.43 (2022-08-24)
62
-
63
- - 修复: 当注册的 `app` 为 `esm` 时没有 `__esModule` 字段的问题
64
-
65
- ## 0.4.42 (2022-08-19)
66
-
67
- - 修复: 修改 `containerSizeRatio` 后 `app` 的窗口没有更新
68
-
69
- ## 0.4.41 (2022-08-18)
70
-
71
- - 修复: 升级 `@netless/telebox-insider@0.2.27` 修复 ppt 最大化时最小化重新进入再恢复的显示问题
72
-
73
- ## 0.4.40 (2022-08-12)
74
-
75
- - 修复: 适配 `white-web-sdk@2.16.33` 的 `InvisiblePlugin` 类型
76
- - 修复: 修复加载 `url` 的问题
77
-
78
- ## 0.4.39 (2022-08-11)
79
-
80
- - 类型: `Register` 支持 `dynamic import`
81
-
82
- ## 0.4.38 (2022-08-11)
83
-
84
- - 修复: `setContainerSizeRatio` 动态修改比例重复调用会缩小 `camera` 的问题
85
-
86
- ## 0.4.37 (2022-07-29)
87
-
88
- - 修复: 只读用户 Slide 最小化状态下重新进入房间恢复正常无法恢复到正确的大小
89
-
90
- ## 0.4.36 (2022-07-29)
91
-
92
- - 修复: Slide 最小化状态下重新进入房间恢复正常无法恢复到正确的大小
93
-
94
- ## 0.4.35 (2022-07-06)
95
-
96
- - 优化: 降低发送鼠标移动事件的频率
97
- - 修复: 在 `writable` 进行切换的时候 `mainView` 的 `disableCameraTransform` 丢失
98
-
99
- ## 0.4.34 (2022-06-29)
100
-
101
- - 修复: 重连之后 `app` 没有正确创建的问题
102
- - 修复: `app` 创建之后初始化宽高没有同步的问题
103
-
104
- ## 0.4.33 (2022-06-29)
105
-
106
- - 修复: 多人同时调用 `WindowManager.mount` 有概率出现错误的问题
107
- - 修复: 只读用户的重连刷新问题
108
-
109
- ## 0.4.32 (2022-06-10)
110
-
111
- - 功能: `WindowManager.mount` 添加 `applianceIcons` 选项配置光标使用的图片
112
-
113
- ## 0.4.31 (2022-06-09)
114
-
115
- - 修复: `bindContainer` 在回放模式下直接抛出错误的问题
116
-
117
- ## 0.4.30 (2022-06-08)
118
-
119
- - 重构: removePage 在 resolve 之后可以立即查询到正确的状态
120
- - 修复: 重连后 app 创建错误
121
-
122
- ## 0.4.28-0.4.29 (2022-06-08)
123
-
124
- - 修复: `removePage` 可以删除最后一页的问题
125
- - 重构: `removePage` `index` 参数变为可选,默认删除当前页
126
-
127
- ## 0.4.27 (2022-06-07)
128
-
129
- - 添加 `removePage` API
130
- - `storage` 仅在第一次时设置默认状态
131
- - `bindContainer` 在 `room` 非 `Connected` 状态下调用会直接抛出错误
132
-
133
- ## 0.4.26
134
-
135
- 1. 修复 `app` 中 `pageStateChange` 事件被多次触发的问题
136
- 2. 修复重连之后 `mainView` 显示错误的内容的问题
137
-
138
- ## 0.4.25
139
-
140
- 1. 添加 `setContainerSizeRatio` 方法, 用于初始化后更新 `containerSizeRatio`
141
-
142
- ## 0.4.24
143
-
144
- 1. `package.json` `main` 指定为 `cjs` 格式
145
-
146
- ## 0.4.23
147
-
148
- 1. 修复可写进入立即切换成只读造成初始化 camera 失败的问题
149
-
150
- ## 0.4.22
151
-
152
- 1. 修复只读端先加入时视角跟随失败的问题
153
-
154
- ## 0.4.21
155
-
156
- 1. 添加 `manager.refresh()` 方法用于从其他房间 `copy` `attributes`
157
- ## 0.4.20
158
-
159
- 1. 导出 Page 相关类型
160
-
161
- ## 0.4.19
162
-
163
- 1. 升级 @netless/app-docs-viewer@0.2.9
164
-
165
- ## 0.4.18
166
-
167
- 1. 修复设置 viewMode freedom 时, 不能 focus 到主白板的问题
168
-
169
- ## 0.4.17
170
-
171
- 1. 修复 safari 浏览器下 removeScenes 为 "/" 没有清理完成完成时可以 addApp
172
-
173
- ## 0.4.16
174
-
175
- 1. 修复 removeScenes 为 "/" 没有清理完成完成时 addApp 造成的状态错误
176
-
177
- ## 0.4.15
178
-
179
- 1. 修复 removeScenes 为 "/" 时, 切换主白板和 app focus 失效的问题
180
-
181
- ## 0.4.14
182
-
183
- 1. 修复 removeScenes 为 "/" 时, 同步端笔迹依旧存在的问题
184
-
185
- ## 0.4.13
186
-
187
- 1. 在只读状态时可以切换 `viewMode`
188
-
189
- ## 0.4.12
190
-
191
- 1. 升级 `@netless/telebox-insider` 到 `0.2.26`
192
- 2. 修复回放时 `seek` app 状态错误的问题
193
-
194
- ## 0.4.11
195
-
196
- 1. 升级 `@netless/app-docs-viewer` 到 `0.2.8`
197
- 2. 同步注册的 url 的 src 到远端
198
- 3. 添加 `pageState` 和 `pageStateChange` 事件
199
- 4. 修复 manager 设置初始化 scenePath 错误的问题
200
- 5. 添加 `containerSizeRatio` 到 `manager` 实例
201
-
202
- ## 0.3.27
203
-
204
- 1. 修复在同时调用多次 `addApp` 时, 先添加的课件不显示的问题
205
-
206
- ## 0.4.10
207
-
208
- 1. 修复 `PublicEvent` 类型没有导出的问题
209
-
210
- ## 0.3.26
211
-
212
- 1. 修复多次调用 `setWritable` 和 `setReadonly` 导致的状态错误
213
-
214
- ## 0.4.9
215
-
216
- 1. 添加 `sceneState` 属性和 `sceneStateChange` 事件
217
- 2. 修复刷新后 `dynamic DocsViewer` 页数会切换错误的问题
218
-
219
- ## 0.4.8
220
-
221
- 1. 升级 `@netless/telebox-insider` 至 `0.2.25`
222
- 2. 修复关闭 app 时可能因为 app 报错导致关闭失败的问题
223
-
224
- ## 0.4.7
225
-
226
- 1. 修改 `addPage` 接口
227
-
228
- ## 0.4.6
229
-
230
- 1. 升级 `@netless/telebox-insider` 至 `0.2.24`
231
- 2. 内置 `video.js` 的 css, 使用视频插件时不再需要手动引入
232
- 3. 添加 `addPage` `nextPage` `prevPage`
233
-
234
- ## 0.4.5
235
- 1. 修复 manager 的 `insertText` `insertImage` `completeImageUpload` `lockImage` `lockImages` 没有代理到 `room` 的问题
236
- 2. 升级 `@netless/telebox-insider` 至 `0.2.23`
237
- 3. 优化双指缩放时光标的位置
238
-
239
- ## 0.4.4
240
-
241
- 1. 代理 `room` 的 `insertText` `insertImage` `completeImageUpload` `lockImage` `lockImages` 方法
242
- 2. 修复回放时 view didRelease 的报错问题
243
-
244
- ## 0.4.3
245
-
246
- 1. 代理 `room` 的 `delete` `copy` `paste` `duplicate` 方法
247
-
248
- ## 0.4.1
249
-
250
- 1. 添加 `loadApp` 事件
251
-
252
- ## 0.4.0
253
-
254
- ### 功能
255
- 1. 在不同窗口中书写不再需要点击窗口进行切换
256
- 2. 实现了激光笔教具
257
- 3. 添加 `bindContainer` 接口,`mount` 时 `container` 参数不再是必选
258
- 4. 添加 `bindCollector` 接口
259
- 5. 关闭 `App` 会移除相关的 `Scenes`
260
- 6. 添加 `ScenePath` 相同的 `App` 会把这个 `App` 置为最上层
261
- 7. `manager.moveCamera` 和 `manager.moveCameraToContain` 会同步到所有端
262
- 8. 代理 `room.redo()` `room.undo()` `room.canRedoSteps` `room.canUndoSteps` 以及添加 `canRedoStepsChange` `canUndoStepsChange` 事件
263
- 9. 添加 `mainViewScenesLength` 属性和 `mainViewScenesLengthChange` 事件
264
- 10. 添加 `manager.cleanCurrentScene()` 方法自动清除当前 `focus` 白板的笔迹
265
-
266
- ### BreakChange
267
- 1. 移除 `WindowManager.mount` 的多参数类型
268
-
269
-
270
- ## 0.3.25
271
-
272
- 1. 修复创建 APP 之后没有设置默认 `zIndex` 的问题
273
-
274
- ## 0.3.24
275
-
276
- 1. 修复重连之后光标不见的问题(注意: 新的光标同步方式会跟 0.3.24 之前的版本不兼容)
277
- 2. 修改打包方式, 内部依赖会默认打包
278
- 3. 确保重复 mount 之后 `WindowManger` 内部状态正确
279
-
280
- ## 0.3.23
281
-
282
- 1. 修复 ios 上 `boxState` 没有正确回调的问题
283
- 2. 添加了 `setBoxState` `setMaximized` `setMinimized` 接口
284
-
285
- ## 0.3.22
286
-
287
- 1. 升级 `@netless/app-docs-viewer` 优化移动端显存占用
288
- 2. 升级 `@netless/telebox-insider` 优化移动端显存占用
289
-
290
- ## 0.3.19-0.3.21
291
-
292
- 1. 更新 `@netless/app-docs-viewer`
293
- 2. 修复 box `zIndex` 同步的问题
294
-
295
- ## 0.3.18
296
-
297
- 1. 修复最小化时刷新页面 box 位置错误的问题
298
-
299
- ## 0.3.17
300
-
301
- 1. 同步 box 的 `z-index` 以保持顺序
302
- 2. 更新 `telebox-insider` 使用新的 `focus` 和 `blur` api 以保持状态的正确
303
- 3. 更新 `@netless/app-docs-viewer@0.1.26` 减少滚动同步频率
304
- 4. 修复最小化时没有清理 `focus` 状态的问题
@@ -1,41 +0,0 @@
1
- import { vi } from "vitest";
2
-
3
- class InvisiblePlugin {
4
- attributes: any = {};
5
- setAttributes (attrs: any) {
6
- this.attributes = { ...this.attributes, ...attrs };
7
- }
8
- }
9
-
10
- const UpdateEventKind = {
11
- Inserted: 0,
12
- Updated: 1,
13
- Removed: 2,
14
- }
15
-
16
- enum ApplianceNames {
17
- selector = "selector",
18
- clicker = "clicker",
19
- laserPointer = "laserPointer",
20
- pencil = "pencil",
21
- rectangle = "rectangle",
22
- ellipse = "ellipse",
23
- shape = "shape",
24
- eraser = "eraser",
25
- text = "text",
26
- straight = "straight",
27
- arrow = "arrow",
28
- hand = "hand",
29
- }
30
-
31
- enum ViewMode {
32
- Freedom = "freedom",
33
- Follower = "follower",
34
- Broadcaster = "broadcaster",
35
- }
36
-
37
- const isPlayer = vi.fn(() => false);
38
-
39
- export {
40
- InvisiblePlugin, UpdateEventKind, ApplianceNames, ViewMode, isPlayer
41
- }
package/jest.config.js DELETED
@@ -1,27 +0,0 @@
1
- /* eslint-env node */
2
-
3
- /** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
4
- module.exports = {
5
- preset: "ts-jest",
6
- testEnvironment: "jsdom",
7
- globals: {
8
- "ts-jest": {
9
- tsconfig: "./test/tsconfig.json",
10
- },
11
- },
12
- testMatch: ["<rootDir>/test/*.ts", "**/test/**/*.test.ts", "test/**.test.ts"],
13
- setupFiles: ["jest-canvas-mock", "jest-fetch-mock"],
14
- transform: {
15
- '^.+\\.svelte$': [
16
- 'svelte-jester',
17
- {
18
- "preprocess": true
19
- }
20
- ],
21
- ".+\\.(css|svg|styl|less|sass|scss|png|jpg|ttf|woff|woff2|inline)$": "jest-transform-stub",
22
-
23
- },
24
- moduleNameMapper: {
25
- "^.+.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2|inline)$": "jest-transform-stub"
26
- },
27
- };
package/vite.config.js DELETED
@@ -1,54 +0,0 @@
1
- import path from "path";
2
- import { defineConfig } from 'vitest/config'
3
- import { svelte } from "@sveltejs/vite-plugin-svelte";
4
- import { dependencies, peerDependencies, version, devDependencies } from "./package.json"
5
- import { omit } from "lodash";
6
-
7
- export default defineConfig(({ mode }) => {
8
- const isProd = mode === "production";
9
-
10
- return {
11
- test: {
12
- environment: "jsdom",
13
- deps: {
14
- inline: [
15
- "@juggle/resize-observer"
16
- ]
17
- }
18
- },
19
- define: {
20
- __APP_VERSION__: JSON.stringify(version),
21
- __APP_DEPENDENCIES__: JSON.stringify({
22
- dependencies, peerDependencies, devDependencies
23
- }),
24
- },
25
- plugins: [
26
- svelte({
27
- emitCss: false,
28
- experimental: {
29
- useVitePreprocess: true,
30
- },
31
- })
32
- ],
33
- build: {
34
- lib: {
35
- // eslint-disable-next-line no-undef
36
- entry: path.resolve(__dirname, "src/index.ts"),
37
- formats: ["es", "umd", "cjs"],
38
- name: "WindowManager",
39
- fileName: (moduleType) => {
40
- return moduleType === "es" ? "index.mjs" : "index.js";
41
- }
42
- },
43
- outDir: "dist",
44
- sourcemap: true,
45
- rollupOptions: {
46
- external: Object.keys({
47
- ...omit(dependencies, ["@netless/telebox-insider"]),
48
- ...peerDependencies,
49
- }),
50
- },
51
- minify: isProd,
52
- },
53
- };
54
- });