web3dlink 2.1.17 → 2.1.18

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.
@@ -1,105 +0,0 @@
1
- import { a as e, n as t, o as n, s as r, t as i } from "./createGameSession-Ce1m5HFi.js";
2
- import { LarkSR as a } from "larksr_websdk";
3
- //#region linkFlowLarkSR.js
4
- function o(e) {
5
- return typeof e == "string" ? e : e && typeof e.data == "string" ? e.data : null;
6
- }
7
- var s = [
8
- ["error", "onError"],
9
- ["info", "onInfo"],
10
- ["taskcreatesuccess", "onTaskcreatesuccess"],
11
- ["taskcreatefailed", "onTaskcreatefailed"],
12
- ["resourcenotenough", "onResourcenotenough"],
13
- ["connect", "onConnect"],
14
- ["loginsuccess", "onLoginsuccess"],
15
- ["operatetimeout", "onOperatetimeout"],
16
- ["close", "onClose"],
17
- ["appclose", "onAppclose"],
18
- ["gotremotestream", "onGotremotestream"],
19
- ["gotremoteaudiostream", "onGotremoteaudiostream"],
20
- ["meidaloaded", "onMeidaloaded"],
21
- ["mediaplaysuccess", "onMediaplaysuccess"],
22
- ["mediaplayfailed", "onMediaplayfailed"],
23
- ["meidaplaymute", "onMeidaplaymute"],
24
- ["appstatechange", "onAppstatechange"],
25
- ["appresize", "onAppresize"],
26
- ["appmousemode", "onAppmousemode"],
27
- ["appcursormode", "onAppcursormode"],
28
- ["playerlist", "onPlayerlist"],
29
- ["peerstatusreport", "onPeerstatusreport"],
30
- ["apprequestinput", "onApprequestinput"],
31
- ["apprequestgamepadoutput", "onApprequestgamepadoutput"],
32
- ["captureframe", "onCaptureframe"],
33
- ["datachannelclose", "onDatachannelclose"],
34
- ["datachannelbinary", "onDatachannelbinary"],
35
- ["larkevent", "onLarkevent"],
36
- ["aivoicestatus", "onAivoicestatus"],
37
- ["aivoiceasrresult", "onAivoiceasrresult"],
38
- ["aivoicedmresult", "onAivoicedmresult"],
39
- ["aivoiceerror", "onAivoiceerror"],
40
- ["touchctrmapping", "onTouchctrmapping"],
41
- ["rtmpstreamstate", "onRtmpstreamstate"],
42
- ["rtmpstreamerror", "onRtmpstreamerror"],
43
- ["datachannelopen", "onDataChannelOpen"]
44
- ], c = class {
45
- constructor() {
46
- this._gameApi = null, this._larksr = null, this._session = null, this._bindings = [];
47
- }
48
- static async createAndInitLarkSR(t, n = {}) {
49
- if (typeof a != "function") throw Error("LarkSR 构造函数未找到,请确保已正确引入 larksr_websdk");
50
- r(t?.UELogLevel ?? !0);
51
- let i = l;
52
- await i.close();
53
- let o = new a(t);
54
- return i._larksr = o, i._bindings = [], s.forEach(([t, r]) => {
55
- let a = null;
56
- n[r] ? a = n[r] : t === "datachannelopen" && (a = (t) => {
57
- e("数据通道已连通", t);
58
- }), a && (o.on(t, a), i._bindings.push({
59
- target: o,
60
- event: t,
61
- handler: a
62
- }));
63
- }), await o.connect({ appliId: t.appliId }), n.onConnected && n.onConnected(o), i.init(o, n), o.audioElement && (o.audioElement.volume = 0), i._gameApi;
64
- }
65
- init(t, r = {}) {
66
- try {
67
- let n = r.onSceneInitialized || r.onSceneInit, a = i({
68
- sendText: (e) => t.sendTextToDataChannel(e),
69
- commandTimeout: r.commandTimeout ?? 3e3,
70
- onSceneInit: n ? (e) => n(e) : void 0
71
- }), s = (t) => {
72
- let n = o(t);
73
- a.handleIncoming(n, t), r.onDatachanneltext ? r.onDatachanneltext(t) : n && e("接收数据", t);
74
- };
75
- return t.on("datachanneltext", s), this._bindings.push({
76
- target: t,
77
- event: "datachanneltext",
78
- handler: s
79
- }), this._session = a, this._gameApi = a.gameAPI, this._gameApi;
80
- } catch (e) {
81
- throw n("插件初始化失败", e), e;
82
- }
83
- }
84
- async close() {
85
- if (t(this._bindings), this._bindings = [], this._session?.destroy(), this._session = null, this._gameApi = null, this._larksr && typeof this._larksr.close == "function") try {
86
- await this._larksr.close(), e("连接关闭成功");
87
- } catch (e) {
88
- n("连接关闭失败:", e);
89
- }
90
- this._larksr = null;
91
- }
92
- getLarkSR() {
93
- return this._larksr;
94
- }
95
- }, l = new c(), u = c.createAndInitLarkSR.bind(c);
96
- function d() {
97
- return l.close();
98
- }
99
- function f() {
100
- return l.getLarkSR();
101
- }
102
- //#endregion
103
- export { u as n, f as r, d as t };
104
-
105
- //# sourceMappingURL=linkFlowLarkSR-fa6gb2wM.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"linkFlowLarkSR-fa6gb2wM.js","names":[],"sources":["../linkFlowLarkSR.js"],"sourcesContent":["// GameApi 插件 - 前端只需要引入这一个文件\nimport { LarkSR } from 'larksr_websdk';\nimport { log, logError, setUELogEnabled } from './baseConfig/logger.js';\nimport { createGameSession, unbindAll } from './createGameSession.js';\n\nfunction extractDataChannelText(e) {\n if (typeof e === 'string') return e;\n if (e && typeof e.data === 'string') return e.data;\n return null;\n}\n\nconst OPTIONAL_EVENTS = [\n ['error', 'onError'],\n ['info', 'onInfo'],\n ['taskcreatesuccess', 'onTaskcreatesuccess'],\n ['taskcreatefailed', 'onTaskcreatefailed'],\n ['resourcenotenough', 'onResourcenotenough'],\n ['connect', 'onConnect'],\n ['loginsuccess', 'onLoginsuccess'],\n ['operatetimeout', 'onOperatetimeout'],\n ['close', 'onClose'],\n ['appclose', 'onAppclose'],\n ['gotremotestream', 'onGotremotestream'],\n ['gotremoteaudiostream', 'onGotremoteaudiostream'],\n ['meidaloaded', 'onMeidaloaded'],\n ['mediaplaysuccess', 'onMediaplaysuccess'],\n ['mediaplayfailed', 'onMediaplayfailed'],\n ['meidaplaymute', 'onMeidaplaymute'],\n ['appstatechange', 'onAppstatechange'],\n ['appresize', 'onAppresize'],\n ['appmousemode', 'onAppmousemode'],\n ['appcursormode', 'onAppcursormode'],\n ['playerlist', 'onPlayerlist'],\n ['peerstatusreport', 'onPeerstatusreport'],\n ['apprequestinput', 'onApprequestinput'],\n ['apprequestgamepadoutput', 'onApprequestgamepadoutput'],\n ['captureframe', 'onCaptureframe'],\n ['datachannelclose', 'onDatachannelclose'],\n ['datachannelbinary', 'onDatachannelbinary'],\n ['larkevent', 'onLarkevent'],\n ['aivoicestatus', 'onAivoicestatus'],\n ['aivoiceasrresult', 'onAivoiceasrresult'],\n ['aivoicedmresult', 'onAivoicedmresult'],\n ['aivoiceerror', 'onAivoiceerror'],\n ['touchctrmapping', 'onTouchctrmapping'],\n ['rtmpstreamstate', 'onRtmpstreamstate'],\n ['rtmpstreamerror', 'onRtmpstreamerror'],\n ['datachannelopen', 'onDataChannelOpen']\n];\n\nclass LoadStream {\n constructor() {\n this._gameApi = null;\n this._larksr = null;\n this._session = null;\n this._bindings = [];\n }\n\n /**\n * 自动创建并初始化 LarkSR 实例,连接后自动初始化 gameAPI。\n * @param {Object} config LarkSR 构造参数和 connect 参数\n * @param {Object} callbacks 可选事件回调\n * @returns {Promise<GameAPI>} 连接成功后返回 gameAPI 实例\n */\n static async createAndInitLarkSR(config, callbacks = {}) {\n if (typeof LarkSR !== 'function') {\n throw new Error('LarkSR 构造函数未找到,请确保已正确引入 larksr_websdk');\n }\n setUELogEnabled(config?.UELogLevel ?? true);\n const plugin = loadStream;\n\n // 重连前先清理旧连接与回调,避免泄漏\n await plugin.close();\n\n const larksr = new LarkSR(config);\n plugin._larksr = larksr;\n plugin._bindings = [];\n\n OPTIONAL_EVENTS.forEach(([event, callbackKey]) => {\n let handler = null;\n if (callbacks[callbackKey]) {\n handler = callbacks[callbackKey];\n } else if (event === 'datachannelopen') {\n handler = (e) => { log('数据通道已连通', e); };\n }\n if (!handler) return;\n larksr.on(event, handler);\n plugin._bindings.push({ target: larksr, event, handler });\n });\n\n await larksr.connect({ appliId: config.appliId });\n if (callbacks.onConnected) callbacks.onConnected(larksr);\n\n plugin.init(larksr, callbacks);\n\n if (larksr.audioElement) larksr.audioElement.volume = 0;\n return plugin._gameApi;\n }\n\n /**\n * 初始化插件:只绑一次 datachanneltext,同时分发给 CommandManager / 场景初始化 / 业务回调\n */\n init(larksr, callbacks = {}) {\n try {\n // 对外正式回调名:onSceneInitialized(兼容 onSceneInit)\n const onSceneInitialized =\n callbacks.onSceneInitialized || callbacks.onSceneInit;\n const session = createGameSession({\n sendText: (text) => larksr.sendTextToDataChannel(text),\n commandTimeout: callbacks.commandTimeout ?? 3000,\n onSceneInit: onSceneInitialized\n ? (payload) => onSceneInitialized(payload)\n : undefined\n });\n\n const onDatachanneltext = (e) => {\n const raw = extractDataChannelText(e);\n session.handleIncoming(raw, e);\n\n if (callbacks.onDatachanneltext) {\n callbacks.onDatachanneltext(e);\n } else if (raw) {\n log('接收数据', e);\n }\n };\n\n larksr.on('datachanneltext', onDatachanneltext);\n this._bindings.push({ target: larksr, event: 'datachanneltext', handler: onDatachanneltext });\n\n this._session = session;\n this._gameApi = session.gameAPI;\n return this._gameApi;\n } catch (error) {\n logError('插件初始化失败', error);\n throw error;\n }\n }\n\n /**\n * 关闭当前 LarkSR 连接并清理资源\n */\n async close() {\n unbindAll(this._bindings);\n this._bindings = [];\n\n this._session?.destroy();\n this._session = null;\n this._gameApi = null;\n\n if (this._larksr && typeof this._larksr.close === 'function') {\n try {\n await this._larksr.close();\n log('连接关闭成功');\n } catch (error) {\n logError('连接关闭失败:', error);\n }\n }\n\n this._larksr = null;\n }\n\n /**\n * 获取当前 LarkSR 实例\n */\n getLarkSR() {\n return this._larksr;\n }\n}\n\nconst loadStream = new LoadStream();\n\n/** 创建并初始化 LarkSR(对外 API) */\nexport const createAndInitLarkSR = LoadStream.createAndInitLarkSR.bind(LoadStream);\n\n/** 关闭当前 LarkSR 连接 */\nexport function closeGameApi() {\n return loadStream.close();\n}\n\n/** 获取当前 LarkSR 实例 */\nexport function getLarkSR() {\n return loadStream.getLarkSR();\n}\n\nexport { loadStream };\nexport default loadStream;\n"],"mappings":"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"}