@netless/appliance-plugin 1.1.42-beta.3 → 1.1.43-beta.0

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.
Files changed (112) hide show
  1. package/READMA.zh-CN.md +23 -1
  2. package/README.md +24 -1
  3. package/dist/appliance-plugin.js +1 -1
  4. package/dist/appliance-plugin.mjs +33 -30
  5. package/dist/{bridge-8P473Gy8.js → bridge-D68E09T9.js} +1 -1
  6. package/dist/{bridge-DKyR7grt.mjs → bridge-DcVN05tP.mjs} +1 -1
  7. package/dist/bridge.js +1 -1
  8. package/dist/bridge.mjs +1 -1
  9. package/dist/collector/collector.d.ts +50 -2
  10. package/dist/collector/types.d.ts +6 -0
  11. package/dist/component/svg/manager.d.ts +1 -0
  12. package/dist/component/svg/snapshot.d.ts +4 -1
  13. package/dist/component/textEditor/manager.d.ts +3 -0
  14. package/dist/core/backGroundThread/index.d.ts +6 -1
  15. package/dist/core/cameraTask.d.ts +45 -0
  16. package/dist/core/const.d.ts +4 -0
  17. package/dist/core/enum.d.ts +5 -1
  18. package/dist/core/error.d.ts +1 -0
  19. package/dist/core/fontFace.d.ts +5 -3
  20. package/dist/core/mainEngine.d.ts +230 -31
  21. package/dist/core/mainThread/base.d.ts +23 -2
  22. package/dist/core/mainThread/canvas2DReadback.d.ts +27 -0
  23. package/dist/core/mainThread/index.d.ts +12 -1
  24. package/dist/core/mainThread/snapshotThread.d.ts +11 -2
  25. package/dist/core/mainThread/subLocalThread.d.ts +12 -6
  26. package/dist/core/mainThread/subServiceThread.d.ts +5 -3
  27. package/dist/core/msgEvent/base.d.ts +4 -1
  28. package/dist/core/msgEvent/baseForWorker.d.ts +1 -1
  29. package/dist/core/msgEvent/copyNode/forWorker.d.ts +1 -1
  30. package/dist/core/msgEvent/forWorker.d.ts +1 -1
  31. package/dist/core/msgEvent/index.d.ts +5 -3
  32. package/dist/core/msgEvent/rotateNode/forMain.d.ts +1 -0
  33. package/dist/core/msgEvent/rotateNode/forWorker.d.ts +1 -1
  34. package/dist/core/msgEvent/scaleNode/forMain.d.ts +1 -0
  35. package/dist/core/msgEvent/scaleNode/forWorker.d.ts +1 -1
  36. package/dist/core/msgEvent/setColor/forMain.d.ts +1 -0
  37. package/dist/core/msgEvent/setColor/forWorker.d.ts +1 -1
  38. package/dist/core/msgEvent/setFont/forWorker.d.ts +1 -1
  39. package/dist/core/msgEvent/setLock/forWorker.d.ts +1 -1
  40. package/dist/core/msgEvent/setPoint/forWorker.d.ts +1 -1
  41. package/dist/core/msgEvent/setShape/forWorker.d.ts +1 -1
  42. package/dist/core/msgEvent/setZIndex/forWorker.d.ts +1 -1
  43. package/dist/core/msgEvent/translateNode/forMain.d.ts +1 -0
  44. package/dist/core/msgEvent/translateNode/forWorker.d.ts +1 -1
  45. package/dist/core/renderRuntimeFallback.d.ts +2 -0
  46. package/dist/core/rendererBusinessTask.d.ts +30 -0
  47. package/dist/core/serviceRenderScheduler.d.ts +33 -0
  48. package/dist/core/tools/base.d.ts +1 -1
  49. package/dist/core/tools/bitmapEraserFastPath.d.ts +8 -0
  50. package/dist/core/tools/eraserFaces.d.ts +24 -9
  51. package/dist/core/tools/image.d.ts +1 -0
  52. package/dist/core/tools/pencilEraserBitMap.d.ts +62 -14
  53. package/dist/core/tools/text.d.ts +2 -1
  54. package/dist/core/types.d.ts +64 -1
  55. package/dist/core/utils/indexDB.d.ts +3 -3
  56. package/dist/core/vNodeManager.d.ts +7 -0
  57. package/dist/core/worker/base.d.ts +52 -7
  58. package/dist/core/worker/fullWorkerLocal.d.ts +8 -2
  59. package/dist/core/worker/fullWorkerService.d.ts +7 -3
  60. package/dist/core/worker/renderCapabilityProbe.d.ts +54 -0
  61. package/dist/core/worker/simpleWorker.d.ts +2 -2
  62. package/dist/core/worker/snapshotWork.d.ts +1 -0
  63. package/dist/core/worker/workerManager.d.ts +17 -4
  64. package/dist/displayer/floatBar/selectorGesture.d.ts +2 -0
  65. package/dist/fullWorker.js +138 -139
  66. package/dist/index-BNHPCii1.mjs +4089 -0
  67. package/dist/index-B_vZ9d3x.mjs +55912 -0
  68. package/dist/index-C2AHqjj8.js +570 -0
  69. package/dist/index-CV8YaU3F.mjs +931 -0
  70. package/dist/index-CWDWQZBs.mjs +4088 -0
  71. package/dist/index-DChI1--R.js +1 -0
  72. package/dist/index-DFo0Gmfx.js +570 -0
  73. package/dist/index-DiLPVPwQ.js +1 -0
  74. package/dist/index-GBYM7kT5.js +1 -0
  75. package/dist/index-GZUDLXJC.js +1 -0
  76. package/dist/{index-C9wx0zmg.mjs → index-K_0NX6pD.mjs} +401 -263
  77. package/dist/index-NG5kKK1W.mjs +55920 -0
  78. package/dist/plugin/applianceMultiPlugin.d.ts +18 -3
  79. package/dist/plugin/applianceSinglePlugin.d.ts +18 -4
  80. package/dist/plugin/baseApplianceManager.d.ts +138 -12
  81. package/dist/plugin/baseViewContainerManager.d.ts +40 -3
  82. package/dist/plugin/bitmapEraserOptions.d.ts +9 -0
  83. package/dist/plugin/const.d.ts +4 -0
  84. package/dist/plugin/displayerView.d.ts +7 -7
  85. package/dist/plugin/initLogAggregator.d.ts +45 -0
  86. package/dist/plugin/multi/applianceMultiManager.d.ts +1 -0
  87. package/dist/plugin/multi/containerManager.d.ts +19 -1
  88. package/dist/plugin/pluginInstanceOwner.d.ts +1 -0
  89. package/dist/plugin/renderImageBitmapRetirement.d.ts +100 -0
  90. package/dist/plugin/renderRuntimeCache.d.ts +18 -0
  91. package/dist/plugin/renderSurface.d.ts +15 -0
  92. package/dist/plugin/renderingCompatibility.d.ts +21 -5
  93. package/dist/plugin/roomLifecycle.d.ts +12 -0
  94. package/dist/plugin/selectorApi.d.ts +8 -0
  95. package/dist/plugin/single/applianceSingleManager.d.ts +4 -0
  96. package/dist/plugin/types.d.ts +11 -14
  97. package/dist/plugin/utils.d.ts +8 -0
  98. package/dist/subWorker.js +136 -137
  99. package/dist/undo/index.d.ts +12 -3
  100. package/dist/undo/timing.d.ts +9 -4
  101. package/package.json +23 -8
  102. package/dist/index-BCvU2uMB.js +0 -570
  103. package/dist/index-BXnpbc6O.mjs +0 -48995
  104. package/dist/index-BrWufZZe.js +0 -1
  105. package/dist/index-BubEu09-.js +0 -1
  106. package/dist/index-C1ph7d6H.mjs +0 -789
  107. package/dist/index-CAXJpQEp.js +0 -570
  108. package/dist/index-D0bfakdd.js +0 -1
  109. package/dist/index-DcS9JJvi.mjs +0 -3266
  110. package/dist/index-Zu5juuhI.js +0 -1
  111. package/dist/index-k0AjJn1s.mjs +0 -48987
  112. package/dist/index-vWLQ-o4q.mjs +0 -3267
@@ -0,0 +1,100 @@
1
+ export declare const RenderImageBitmapRetireTimeoutMs = 5000;
2
+ export declare const RenderImageBitmapMemoryPressureBytes: number;
3
+ export declare const RenderImageBitmapMemoryPressureCount = 128;
4
+ export declare const RenderImageBitmapMemoryPressureReportIntervalMs = 5000;
5
+ type TimerHandle = ReturnType<typeof setTimeout>;
6
+ export type RenderImageBitmapRetirementScheduler = {
7
+ requestFrame: (callback: FrameRequestCallback) => number;
8
+ cancelFrame: (handle: number) => void;
9
+ setTimer: (callback: () => void, timeoutMs: number) => TimerHandle;
10
+ clearTimer: (handle: TimerHandle) => void;
11
+ now: () => number;
12
+ };
13
+ export type RenderImageBitmapRetirementOptions = {
14
+ timeoutMs?: number;
15
+ memoryPressureBytes?: number;
16
+ memoryPressureCount?: number;
17
+ memoryPressureReportIntervalMs?: number;
18
+ scheduler?: Partial<RenderImageBitmapRetirementScheduler>;
19
+ onCloseError?: (viewId: string, error: unknown, snapshot: RenderImageBitmapMemorySnapshot) => void;
20
+ onScheduleError?: (stage: "request-frame" | "set-watchdog", error: unknown, snapshot: RenderImageBitmapMemorySnapshot) => void;
21
+ onTimeout?: (event: RenderImageBitmapTimeoutEvent) => void;
22
+ onMemoryPressure?: (snapshot: RenderImageBitmapMemorySnapshot) => void;
23
+ };
24
+ export type RenderImageBitmapMemoryViewSnapshot = Readonly<{
25
+ viewId: string;
26
+ activeCount: number;
27
+ estimatedBytes: number;
28
+ oldestAgeMs: number;
29
+ }>;
30
+ /**
31
+ * Tracks ImageBitmap ownership, not browser heap or exact GPU allocation.
32
+ * estimatedBytes uses width * height * 4 as a stable pressure signal.
33
+ */
34
+ export type RenderImageBitmapMemorySnapshot = Readonly<{
35
+ activeCount: number;
36
+ estimatedBytes: number;
37
+ peakActiveCount: number;
38
+ peakEstimatedBytes: number;
39
+ totalRetiredCount: number;
40
+ totalReleasedCount: number;
41
+ watchdogReleasedCount: number;
42
+ closeErrorCount: number;
43
+ oldestAgeMs: number;
44
+ activeViews: ReadonlyArray<RenderImageBitmapMemoryViewSnapshot>;
45
+ destroyed: boolean;
46
+ }>;
47
+ export type RenderImageBitmapTimeoutEvent = Readonly<{
48
+ viewIds: ReadonlySet<string>;
49
+ releasedCount: number;
50
+ releasedEstimatedBytes: number;
51
+ oldestAgeMs: number;
52
+ snapshot: RenderImageBitmapMemorySnapshot;
53
+ }>;
54
+ export declare function getRenderImageBitmapDestroyLogLevel(beforeDestroy: RenderImageBitmapMemorySnapshot, afterDestroy: RenderImageBitmapMemorySnapshot): "error" | "info" | undefined;
55
+ /**
56
+ * Keeps transferred render bitmaps alive across one browser paint opportunity.
57
+ * The first RAF promotes a bitmap to awaitingPaint; the second RAF releases it.
58
+ */
59
+ export declare class RenderImageBitmapRetirementQueue {
60
+ private pending;
61
+ private awaitingPaint;
62
+ private readonly entries;
63
+ private readonly timeoutMs;
64
+ private readonly memoryPressureBytes;
65
+ private readonly memoryPressureCount;
66
+ private readonly memoryPressureReportIntervalMs;
67
+ private readonly scheduler;
68
+ private readonly onCloseError?;
69
+ private readonly onScheduleError?;
70
+ private readonly onTimeout?;
71
+ private readonly onMemoryPressure?;
72
+ private activeEstimatedBytes;
73
+ private peakActiveCount;
74
+ private peakEstimatedBytes;
75
+ private totalRetiredCount;
76
+ private totalReleasedCount;
77
+ private watchdogReleasedCount;
78
+ private closeErrorCount;
79
+ private lastMemoryPressureReportAt;
80
+ private frameHandle?;
81
+ private watchdogHandle?;
82
+ private destroyed;
83
+ constructor(options?: RenderImageBitmapRetirementOptions);
84
+ retire(viewId: string, bitmap: ImageBitmap): void;
85
+ getMemorySnapshot(): RenderImageBitmapMemorySnapshot;
86
+ closeNow(viewId: string, bitmap: ImageBitmap): void;
87
+ releaseView(viewId: string): void;
88
+ destroy(): RenderImageBitmapMemorySnapshot;
89
+ private ensureFrame;
90
+ private readonly onFrame;
91
+ private ensureWatchdog;
92
+ private readonly onWatchdog;
93
+ private releaseEntry;
94
+ private closeBitmap;
95
+ private estimateBitmapBytes;
96
+ private reportMemoryPressure;
97
+ private stopSchedulersWhenEmpty;
98
+ private cancelSchedulers;
99
+ }
100
+ export {};
@@ -0,0 +1,18 @@
1
+ import { type CompactRenderModel } from "./renderingCompatibility";
2
+ export declare const RenderModeCacheDatabaseName = "__APPLIANCE_PLUGIN_RENDER_MODE_DB";
3
+ export declare const RenderModeCacheStoreName = "renderModes";
4
+ export type CachedRenderRuntimeReadResult = {
5
+ renderModel?: CompactRenderModel;
6
+ readFailed?: boolean;
7
+ reason?: string;
8
+ };
9
+ type IDBFactoryLike = Pick<IDBFactory, "open"> & Partial<Pick<IDBFactory, "deleteDatabase">>;
10
+ export type RenderRuntimeCacheDeadlineOptions = {
11
+ timeoutMs?: number;
12
+ };
13
+ export declare function createRenderRuntimeCacheKey(userAgent: string): string;
14
+ export declare function readCachedRenderRuntimeDecisionWithStatus(key: string, factory?: IDBFactoryLike | undefined, options?: RenderRuntimeCacheDeadlineOptions): Promise<CachedRenderRuntimeReadResult>;
15
+ export declare function readCachedRenderRuntimeDecision(key: string, factory?: IDBFactoryLike | undefined, options?: RenderRuntimeCacheDeadlineOptions): Promise<CompactRenderModel | undefined>;
16
+ export declare function writeCachedRenderRuntimeDecision(key: string, renderModel: CompactRenderModel, factory?: IDBFactoryLike | undefined, options?: RenderRuntimeCacheDeadlineOptions): Promise<boolean>;
17
+ export declare function deleteCachedRenderRuntimeDecision(key: string, factory?: IDBFactoryLike | undefined, options?: RenderRuntimeCacheDeadlineOptions): Promise<boolean>;
18
+ export {};
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+ export interface RenderSurfaceRefs {
3
+ canvasContainerRef: React.RefObject<HTMLDivElement>;
4
+ subLocalCanvasContainerRef?: React.RefObject<HTMLDivElement>;
5
+ canvasServiceFloatRef: React.RefObject<HTMLCanvasElement>;
6
+ canvasFloatRef: React.RefObject<HTMLCanvasElement>;
7
+ canvasBgRef: React.RefObject<HTMLCanvasElement>;
8
+ canvasTopRef?: React.RefObject<HTMLCanvasElement>;
9
+ }
10
+ export declare const RenderSurface: (props: {
11
+ hasOffscreenCanvas: boolean;
12
+ isUseSimple: boolean;
13
+ generation: number;
14
+ refs: RenderSurfaceRefs;
15
+ }) => React.JSX.Element;
@@ -1,6 +1,15 @@
1
1
  import type { ECanvasContextType } from "../core/enum";
2
- import { VersionWorkerBlacklist, WorkerBlacklistByRuntime, WorkerCanvasContextBlacklistLevel, WorkerImageBitmapFeatureBlacklistLevel, WorkerMaskTextureFormatBlacklistLevel, WorkerMaskTextureUploadBlacklistLevel, WorkerRenderModeBlacklistLevel } from "./types";
2
+ import { VersionWorkerBlacklist, WorkerBlacklistByRuntime, WorkerCanvasContextBlacklistLevel, WorkerMaskTextureFormatBlacklistLevel, WorkerMaskTextureUploadBlacklistLevel, WorkerRenderModeBlacklistLevel } from "./types";
3
3
  export type RenderMode = "worker-offscreen-transfer" | "worker-image-bitmap" | "main-thread";
4
+ export type MainThreadRenderMode = "normal" | "readback";
5
+ export declare const RenderCompatibilityPolicyVersion = "xiaomi-android-webview-offscreen-v1";
6
+ export type CompactRenderModel = "offscreenTransfer+webgl2" | "offscreenTransfer+webgl" | "offscreenTransfer+canvas2d" | "imageBitmap+webgl2" | "imageBitmap+webgl" | "imageBitmap+canvas2d" | "mainThread+canvas2d";
7
+ export declare function isCompactRenderModel(value: unknown): value is CompactRenderModel;
8
+ export declare function parseRenderRuntimeModel(value: CompactRenderModel): {
9
+ renderMode: RenderMode;
10
+ contextType: ECanvasContextType;
11
+ };
12
+ export declare function formatRenderRuntimeModel(renderMode: RenderMode, contextType: ECanvasContextType): CompactRenderModel;
4
13
  export type RenderingRuntime = {
5
14
  kind: "androidWebView" | "iosWebView" | "harmonyArkWeb";
6
15
  version: string;
@@ -18,9 +27,14 @@ export type RenderCapabilities = {
18
27
  webgl2: boolean;
19
28
  webgl: boolean;
20
29
  };
21
- export type RenderingCompatibilityReason = "use-worker-main-thread" | "worker-capability-missing" | "use-simple-false" | "render-mode-blacklist" | "image-bitmap-unavailable" | "default-offscreen-transfer";
30
+ export declare function hasRequiredWorkerUrls(cdn: {
31
+ fullWorkerUrl?: string;
32
+ subWorkerUrl?: string;
33
+ }, useSimple: boolean): boolean;
34
+ export type RenderingCompatibilityReason = "use-worker-main-thread" | "worker-capability-missing" | "use-simple-false" | "render-mode-blacklist" | "image-bitmap-unavailable" | "default-offscreen-transfer" | "worker-program-probe-failed" | "render-probe-passed" | "runtime-webgl-program-failure" | "cached-render-runtime-decision";
22
35
  export type RenderingCompatibilityDecision = {
23
36
  renderMode: RenderMode;
37
+ mainThreadRenderMode: MainThreadRenderMode;
24
38
  contextType: ECanvasContextType;
25
39
  reason: RenderingCompatibilityReason;
26
40
  capabilities: RenderCapabilities;
@@ -29,13 +43,16 @@ export type RenderingCompatibilityDecision = {
29
43
  effectiveContextLevel?: WorkerCanvasContextBlacklistLevel;
30
44
  effectiveMaskTextureFormatLevel?: WorkerMaskTextureFormatBlacklistLevel;
31
45
  effectiveMaskTextureUploadLevel?: WorkerMaskTextureUploadBlacklistLevel;
32
- effectiveImageBitmapFeatureLevel?: WorkerImageBitmapFeatureBlacklistLevel;
33
46
  issues: string[];
47
+ /** Set when an auto decision was restored from the per-UA IndexedDB cache. */
48
+ renderRuntimeCacheState?: "hit";
49
+ renderRuntimeSource?: "config" | "cache" | "probe" | "fallback";
34
50
  };
35
- type BlacklistKind = "renderMode" | "canvasContext" | "maskTextureFormat" | "maskTextureUpload" | "imageBitmapFeature" | "fontFaceFallback";
51
+ type BlacklistKind = "renderMode" | "canvasContext" | "maskTextureFormat" | "maskTextureUpload" | "fontFaceFallback";
36
52
  export declare function normalizeVersion(value: string): string | undefined;
37
53
  export declare function compareVersions(left: string, right: string): number;
38
54
  export declare function detectRenderingRuntime(userAgent?: string): RenderingRuntime | undefined;
55
+ export declare function isKnownOffscreenTransferCompositionRisk(userAgent: string, runtime?: RenderingRuntime | undefined): boolean;
39
56
  export declare function resolveVersionBlacklistLevel(currentVersion: string, rules: VersionWorkerBlacklist | undefined, kind: BlacklistKind, issues?: string[]): number | undefined;
40
57
  export declare function mergeWorkerBlacklists(builtin: WorkerBlacklistByRuntime | undefined, injected: WorkerBlacklistByRuntime | undefined, kind: BlacklistKind): WorkerBlacklistByRuntime;
41
58
  export declare function isFontFaceFallbackBlacklisted(blacklist: WorkerBlacklistByRuntime | undefined, userAgent?: string): boolean;
@@ -48,7 +65,6 @@ export declare function resolveRenderingCompatibility(input: {
48
65
  workerCanvasContextBlacklist?: WorkerBlacklistByRuntime;
49
66
  workerMaskTextureFormatBlacklist?: WorkerBlacklistByRuntime;
50
67
  workerMaskTextureUploadBlacklist?: WorkerBlacklistByRuntime;
51
- workerImageBitmapFeatureBlacklist?: WorkerBlacklistByRuntime;
52
68
  userAgent?: string;
53
69
  capabilities?: RenderCapabilities;
54
70
  workerUrl?: boolean;
@@ -0,0 +1,12 @@
1
+ import type { Room } from "./types";
2
+ import type { BaseApplianceManager } from "./baseApplianceManager";
3
+ type LifecycleLogger = Pick<BaseApplianceManager["logger"], "error">;
4
+ /**
5
+ * Transitional Room lifecycle interception. It keeps the SDK methods' Promise
6
+ * contract while ensuring Appliance work reaches Done before write access or
7
+ * the connection is relinquished.
8
+ */
9
+ export declare function installRoomLifecycleInterceptors(room: Room, getManager: () => BaseApplianceManager | undefined, logger: LifecycleLogger): () => void;
10
+ /** Remove this plugin's wrapper without clobbering a newer host wrapper. */
11
+ export declare function uninstallRoomLifecycleInterceptors(room: Room): void;
12
+ export {};
@@ -31,6 +31,12 @@ export declare class SelectorApiManager {
31
31
  /** 同一次属性更新导致的几何变化做尾部合并,只派发最后一次 */
32
32
  private pendingPropertyGeometryByKey;
33
33
  constructor(control: BaseApplianceManager);
34
+ /**
35
+ * Keep SelectorApi usable with older host/test control objects that predate
36
+ * the local-mutation admission hook. Production managers always provide the
37
+ * method; an absent hook preserves the previous API behavior.
38
+ */
39
+ private canAcceptLocalMutation;
34
40
  private formatFieldsFromChanges;
35
41
  private hasShapeChanges;
36
42
  private resolveShapeDispatchToolsTypes;
@@ -38,6 +44,8 @@ export declare class SelectorApiManager {
38
44
  private resolveCancelableUndoTickerId;
39
45
  private captureUndoTickerDuringDispatch;
40
46
  destroy(): void;
47
+ /** Dispose only one View's selector requests and timers. */
48
+ disposeView(viewId: string): void;
41
49
  /** 解析 viewId:未传时取 focuedView / mainView */
42
50
  resolveViewId(viewId?: string): string | undefined;
43
51
  /** 当前 selector 选中态快照 */
@@ -4,8 +4,12 @@ import { ViewContainerSingleManager } from "./containerManager";
4
4
  export declare class ApplianceSingleManager extends BaseApplianceManager {
5
5
  viewContainerManager: ViewContainerSingleManager;
6
6
  divMainView?: HTMLDivElement;
7
+ private readonly bindMainViewListener;
7
8
  constructor(params: BaseApplianceManagerProps);
8
9
  init(): void;
10
+ destroy(options?: {
11
+ preserveStorage?: boolean;
12
+ }): Promise<void>;
9
13
  activePlugin(): void;
10
14
  activeWorker(): Promise<void>;
11
15
  onCameraChange: import("lodash").DebouncedFunc<(cameraState: CameraState) => void>;
@@ -244,7 +244,7 @@ export interface AppliancePluginInstance {
244
244
  cleanCurrentScene(retainPpt?: boolean): void;
245
245
  /** 把指定的方法注入到指定对象上 */
246
246
  /** 销毁 */
247
- destroy(): void;
247
+ destroy(): Promise<void>;
248
248
  /** 设置当前用户的读写权限 */
249
249
  setWritable(writable: boolean): Promise<void>;
250
250
  /** setMemberState */
@@ -412,7 +412,8 @@ export type Logger = {
412
412
  };
413
413
  export declare enum WorkerRenderModeBlacklistLevel {
414
414
  OffscreenTransfer = 1,
415
- ImageBitmap = 2
415
+ ImageBitmap = 2,
416
+ MainThread = 3
416
417
  }
417
418
  export declare enum WorkerCanvasContextBlacklistLevel {
418
419
  WebGL = 1
@@ -423,9 +424,6 @@ export declare enum WorkerMaskTextureFormatBlacklistLevel {
423
424
  export declare enum WorkerMaskTextureUploadBlacklistLevel {
424
425
  TextureSubImage2D = 1
425
426
  }
426
- export declare enum WorkerImageBitmapFeatureBlacklistLevel {
427
- DirtyRect = 1
428
- }
429
427
  export declare enum FontFaceFallbackBlacklistLevel {
430
428
  RefreshTextRender = 1
431
429
  }
@@ -457,8 +455,6 @@ export type ExtrasOptions = {
457
455
  workerMaskTextureFormatBlacklist?: WorkerBlacklistByRuntime;
458
456
  /** API 可用但局部纹理上传行为异常的运行时版本 */
459
457
  workerMaskTextureUploadBlacklist?: WorkerBlacklistByRuntime;
460
- /** API 可用但 ImageBitmap crop 行为异常的运行时版本 */
461
- workerImageBitmapFeatureBlacklist?: WorkerBlacklistByRuntime;
462
458
  /** 按运行时版本启用字体加载失败后的文本补绘兜底 */
463
459
  fontFaceFallbackBlacklist?: WorkerBlacklistByRuntime;
464
460
  /** 是否使用背景Svg功能, 默认值为 ``false`` */
@@ -516,12 +512,8 @@ export type UndoRedoOpt = {
516
512
  maxStackLength?: number;
517
513
  /** 是否启用 undo 时序补丁, 默认值为 true */
518
514
  timingFix?: boolean;
519
- /** 首个 ack 到达后的兜底超时时间,单位:毫秒,默认值为 5000 */
515
+ /** finalizeRequested 后等待渲染与存储确认的超时时间,单位:毫秒,默认值为 5000 */
520
516
  ackTimeout?: number;
521
- /** 新 ticker 抢占旧 ticker 时的宽限超时时间,单位:毫秒,默认值为 3000 */
522
- gracePeriodTimeout?: number;
523
- /** Doing 链路无 ack 时的兜底超时时间,单位:毫秒,默认值为 30000 */
524
- doingFallbackTimeout?: number;
525
517
  };
526
518
  export type SyncLoggerOpt = {
527
519
  /** 同步日志批量输出窗口,单位:毫秒,默认值为 4000 */
@@ -572,7 +564,6 @@ export type RequiredExtrasOptions = {
572
564
  workerCanvasContextBlacklist: WorkerBlacklistByRuntime;
573
565
  workerMaskTextureFormatBlacklist: WorkerBlacklistByRuntime;
574
566
  workerMaskTextureUploadBlacklist: WorkerBlacklistByRuntime;
575
- workerImageBitmapFeatureBlacklist: WorkerBlacklistByRuntime;
576
567
  fontFaceFallbackBlacklist: WorkerBlacklistByRuntime;
577
568
  useBackgroundThread: Required<boolean>;
578
569
  syncOpt: Required<SyncOpt>;
@@ -745,6 +736,10 @@ export type BezierOpt = {
745
736
  export type PencilEraserOpt = {
746
737
  /** 是否使用位图方式局部橡皮擦 */
747
738
  useBitMap: boolean;
739
+ /** @deprecated Bitmap Eraser 始终使用事务级 FullLayer 透明 Doing Mask;该字段仅保留配置兼容。 */
740
+ fullLayerDoingMask?: boolean;
741
+ /** Bitmap Eraser 单个事务最多接收的逻辑输入点数,默认值为 ``500`` */
742
+ fullLayerDoingMaskMaxInputPoints?: number;
748
743
  /** BitMapEraser 完成擦除时是否删除已完全透明的对象,默认值为 ``true`` */
749
744
  removeOnDone?: boolean;
750
745
  /** 最大图片宽度 */
@@ -850,7 +845,9 @@ export type _ObjectTrue = true | {
850
845
  export type _ArrayTrue = true | Uid[];
851
846
  export declare enum EForceStopReason {
852
847
  /** 画笔过长 */
853
- longPencil = "longPencil"
848
+ longPencil = "longPencil",
849
+ /** FullLayer 位图橡皮擦单次输入点数达到上限 */
850
+ longBitmapEraser = "longBitmapEraser"
854
851
  }
855
852
  export type AutoShapeDebugInfo = {
856
853
  workId: string;
@@ -1,4 +1,5 @@
1
1
  import { Logger } from "./types";
2
+ import { type InitLogCompletion, type InitLogProgressEvent } from "./initLogAggregator";
2
3
  export declare function isTouchEvent(event: any): any;
3
4
  export declare function isOnlyOneTouch(event: any): any;
4
5
  export declare function getPosition(event: any): {
@@ -11,6 +12,7 @@ export declare function getClientPosition(event: any): {
11
12
  };
12
13
  export declare class LoggerUtils implements Logger {
13
14
  private _logger?;
15
+ private readonly initLogAggregator;
14
16
  private pendingArgsByChannel;
15
17
  private flushTimerByChannel;
16
18
  constructor(_logger?: Logger);
@@ -23,5 +25,11 @@ export declare class LoggerUtils implements Logger {
23
25
  errorDebounced(channel: string, ...args: any[]): void;
24
26
  infoDebounced(channel: string, ...args: any[]): void;
25
27
  warnDebounced(channel: string, ...args: any[]): void;
28
+ recordInitLogProgress(event: InitLogProgressEvent): void;
29
+ completeInitViewLogs(completion: InitLogCompletion): void;
30
+ cancelInitViewLogs(viewId: string): void;
26
31
  destroy(): void;
27
32
  }
33
+ export declare function logInitProgress(logger: Logger, event: InitLogProgressEvent): void;
34
+ export declare function completeInitViewLogs(logger: Logger, completion: InitLogCompletion): void;
35
+ export declare function cancelInitViewLogs(logger: Logger | undefined, viewId: string): void;