市场夺宝奇兵
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

578 lines
19 KiB

  1. //#region rolldown:runtime
  2. var __create = Object.create;
  3. var __defProp = Object.defineProperty;
  4. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  5. var __getOwnPropNames = Object.getOwnPropertyNames;
  6. var __getProtoOf = Object.getPrototypeOf;
  7. var __hasOwnProp = Object.prototype.hasOwnProperty;
  8. var __copyProps = (to, from, except, desc) => {
  9. if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
  10. key = keys[i];
  11. if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
  12. get: ((k) => from[k]).bind(null, key),
  13. enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
  14. });
  15. }
  16. return to;
  17. };
  18. var __toESM = (mod, isNodeMode, target$1) => (target$1 = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target$1, "default", {
  19. value: mod,
  20. enumerable: true
  21. }) : target$1, mod));
  22. //#endregion
  23. let __vue_devtools_shared = require("@vue/devtools-shared");
  24. __vue_devtools_shared = __toESM(__vue_devtools_shared);
  25. let __vue_devtools_kit = require("@vue/devtools-kit");
  26. __vue_devtools_kit = __toESM(__vue_devtools_kit);
  27. let vue = require("vue");
  28. vue = __toESM(vue);
  29. //#region src/client.ts
  30. function setDevToolsClientUrl(url) {
  31. __vue_devtools_shared.target.__VUE_DEVTOOLS_CLIENT_URL__ = url;
  32. }
  33. function getDevToolsClientUrl() {
  34. return __vue_devtools_shared.target.__VUE_DEVTOOLS_CLIENT_URL__ ?? (() => {
  35. if (__vue_devtools_shared.isBrowser) {
  36. const devtoolsMeta = document.querySelector("meta[name=__VUE_DEVTOOLS_CLIENT_URL__]");
  37. if (devtoolsMeta) return devtoolsMeta.getAttribute("content");
  38. }
  39. return "";
  40. })();
  41. }
  42. //#endregion
  43. //#region ../../node_modules/.pnpm/hookable@5.5.3/node_modules/hookable/dist/index.mjs
  44. function flatHooks(configHooks, hooks$2 = {}, parentName) {
  45. for (const key in configHooks) {
  46. const subHook = configHooks[key];
  47. const name = parentName ? `${parentName}:${key}` : key;
  48. if (typeof subHook === "object" && subHook !== null) flatHooks(subHook, hooks$2, name);
  49. else if (typeof subHook === "function") hooks$2[name] = subHook;
  50. }
  51. return hooks$2;
  52. }
  53. const defaultTask = { run: (function_) => function_() };
  54. const _createTask = () => defaultTask;
  55. const createTask = typeof console.createTask !== "undefined" ? console.createTask : _createTask;
  56. function serialTaskCaller(hooks$2, args) {
  57. const name = args.shift();
  58. const task = createTask(name);
  59. return hooks$2.reduce((promise, hookFunction) => promise.then(() => task.run(() => hookFunction(...args))), Promise.resolve());
  60. }
  61. function parallelTaskCaller(hooks$2, args) {
  62. const name = args.shift();
  63. const task = createTask(name);
  64. return Promise.all(hooks$2.map((hook) => task.run(() => hook(...args))));
  65. }
  66. function callEachWith(callbacks, arg0) {
  67. for (const callback of [...callbacks]) callback(arg0);
  68. }
  69. var Hookable = class {
  70. constructor() {
  71. this._hooks = {};
  72. this._before = void 0;
  73. this._after = void 0;
  74. this._deprecatedMessages = void 0;
  75. this._deprecatedHooks = {};
  76. this.hook = this.hook.bind(this);
  77. this.callHook = this.callHook.bind(this);
  78. this.callHookWith = this.callHookWith.bind(this);
  79. }
  80. hook(name, function_, options = {}) {
  81. if (!name || typeof function_ !== "function") return () => {};
  82. const originalName = name;
  83. let dep;
  84. while (this._deprecatedHooks[name]) {
  85. dep = this._deprecatedHooks[name];
  86. name = dep.to;
  87. }
  88. if (dep && !options.allowDeprecated) {
  89. let message = dep.message;
  90. if (!message) message = `${originalName} hook has been deprecated` + (dep.to ? `, please use ${dep.to}` : "");
  91. if (!this._deprecatedMessages) this._deprecatedMessages = /* @__PURE__ */ new Set();
  92. if (!this._deprecatedMessages.has(message)) {
  93. console.warn(message);
  94. this._deprecatedMessages.add(message);
  95. }
  96. }
  97. if (!function_.name) try {
  98. Object.defineProperty(function_, "name", {
  99. get: () => "_" + name.replace(/\W+/g, "_") + "_hook_cb",
  100. configurable: true
  101. });
  102. } catch {}
  103. this._hooks[name] = this._hooks[name] || [];
  104. this._hooks[name].push(function_);
  105. return () => {
  106. if (function_) {
  107. this.removeHook(name, function_);
  108. function_ = void 0;
  109. }
  110. };
  111. }
  112. hookOnce(name, function_) {
  113. let _unreg;
  114. let _function = (...arguments_) => {
  115. if (typeof _unreg === "function") _unreg();
  116. _unreg = void 0;
  117. _function = void 0;
  118. return function_(...arguments_);
  119. };
  120. _unreg = this.hook(name, _function);
  121. return _unreg;
  122. }
  123. removeHook(name, function_) {
  124. if (this._hooks[name]) {
  125. const index = this._hooks[name].indexOf(function_);
  126. if (index !== -1) this._hooks[name].splice(index, 1);
  127. if (this._hooks[name].length === 0) delete this._hooks[name];
  128. }
  129. }
  130. deprecateHook(name, deprecated) {
  131. this._deprecatedHooks[name] = typeof deprecated === "string" ? { to: deprecated } : deprecated;
  132. const _hooks = this._hooks[name] || [];
  133. delete this._hooks[name];
  134. for (const hook of _hooks) this.hook(name, hook);
  135. }
  136. deprecateHooks(deprecatedHooks) {
  137. Object.assign(this._deprecatedHooks, deprecatedHooks);
  138. for (const name in deprecatedHooks) this.deprecateHook(name, deprecatedHooks[name]);
  139. }
  140. addHooks(configHooks) {
  141. const hooks$2 = flatHooks(configHooks);
  142. const removeFns = Object.keys(hooks$2).map((key) => this.hook(key, hooks$2[key]));
  143. return () => {
  144. for (const unreg of removeFns.splice(0, removeFns.length)) unreg();
  145. };
  146. }
  147. removeHooks(configHooks) {
  148. const hooks$2 = flatHooks(configHooks);
  149. for (const key in hooks$2) this.removeHook(key, hooks$2[key]);
  150. }
  151. removeAllHooks() {
  152. for (const key in this._hooks) delete this._hooks[key];
  153. }
  154. callHook(name, ...arguments_) {
  155. arguments_.unshift(name);
  156. return this.callHookWith(serialTaskCaller, name, ...arguments_);
  157. }
  158. callHookParallel(name, ...arguments_) {
  159. arguments_.unshift(name);
  160. return this.callHookWith(parallelTaskCaller, name, ...arguments_);
  161. }
  162. callHookWith(caller, name, ...arguments_) {
  163. const event = this._before || this._after ? {
  164. name,
  165. args: arguments_,
  166. context: {}
  167. } : void 0;
  168. if (this._before) callEachWith(this._before, event);
  169. const result = caller(name in this._hooks ? [...this._hooks[name]] : [], arguments_);
  170. if (result instanceof Promise) return result.finally(() => {
  171. if (this._after && event) callEachWith(this._after, event);
  172. });
  173. if (this._after && event) callEachWith(this._after, event);
  174. return result;
  175. }
  176. beforeEach(function_) {
  177. this._before = this._before || [];
  178. this._before.push(function_);
  179. return () => {
  180. if (this._before !== void 0) {
  181. const index = this._before.indexOf(function_);
  182. if (index !== -1) this._before.splice(index, 1);
  183. }
  184. };
  185. }
  186. afterEach(function_) {
  187. this._after = this._after || [];
  188. this._after.push(function_);
  189. return () => {
  190. if (this._after !== void 0) {
  191. const index = this._after.indexOf(function_);
  192. if (index !== -1) this._after.splice(index, 1);
  193. }
  194. };
  195. }
  196. };
  197. function createHooks() {
  198. return new Hookable();
  199. }
  200. //#endregion
  201. //#region src/rpc/global.ts
  202. const hooks$1 = createHooks();
  203. let DevToolsMessagingEvents = /* @__PURE__ */ function(DevToolsMessagingEvents$1) {
  204. DevToolsMessagingEvents$1["INSPECTOR_TREE_UPDATED"] = "inspector-tree-updated";
  205. DevToolsMessagingEvents$1["INSPECTOR_STATE_UPDATED"] = "inspector-state-updated";
  206. DevToolsMessagingEvents$1["DEVTOOLS_STATE_UPDATED"] = "devtools-state-updated";
  207. DevToolsMessagingEvents$1["ROUTER_INFO_UPDATED"] = "router-info-updated";
  208. DevToolsMessagingEvents$1["TIMELINE_EVENT_UPDATED"] = "timeline-event-updated";
  209. DevToolsMessagingEvents$1["INSPECTOR_UPDATED"] = "inspector-updated";
  210. DevToolsMessagingEvents$1["ACTIVE_APP_UNMOUNTED"] = "active-app-updated";
  211. DevToolsMessagingEvents$1["DESTROY_DEVTOOLS_CLIENT"] = "destroy-devtools-client";
  212. DevToolsMessagingEvents$1["RELOAD_DEVTOOLS_CLIENT"] = "reload-devtools-client";
  213. return DevToolsMessagingEvents$1;
  214. }({});
  215. function getDevToolsState() {
  216. const state = __vue_devtools_kit.devtools.ctx.state;
  217. return {
  218. connected: state.connected,
  219. clientConnected: true,
  220. vueVersion: state?.activeAppRecord?.version || "",
  221. tabs: state.tabs,
  222. commands: state.commands,
  223. vitePluginDetected: state.vitePluginDetected,
  224. appRecords: state.appRecords.map((item) => ({
  225. id: item.id,
  226. name: item.name,
  227. version: item.version,
  228. routerId: item.routerId,
  229. iframe: item.iframe
  230. })),
  231. activeAppRecordId: state.activeAppRecordId,
  232. timelineLayersState: state.timelineLayersState
  233. };
  234. }
  235. const functions = {
  236. on: (event, handler) => {
  237. hooks$1.hook(event, handler);
  238. },
  239. off: (event, handler) => {
  240. hooks$1.removeHook(event, handler);
  241. },
  242. once: (event, handler) => {
  243. hooks$1.hookOnce(event, handler);
  244. },
  245. emit: (event, ...args) => {
  246. hooks$1.callHook(event, ...args);
  247. },
  248. heartbeat: () => {
  249. return true;
  250. },
  251. devtoolsState: () => {
  252. return getDevToolsState();
  253. },
  254. async getInspectorTree(payload) {
  255. const res = await __vue_devtools_kit.devtools.ctx.api.getInspectorTree(payload);
  256. return (0, __vue_devtools_kit.stringify)(res);
  257. },
  258. async getInspectorState(payload) {
  259. const inspector = (0, __vue_devtools_kit.getInspector)(payload.inspectorId);
  260. if (inspector) inspector.selectedNodeId = payload.nodeId;
  261. const res = await __vue_devtools_kit.devtools.ctx.api.getInspectorState(payload);
  262. return (0, __vue_devtools_kit.stringify)(res);
  263. },
  264. async editInspectorState(payload) {
  265. return await __vue_devtools_kit.devtools.ctx.api.editInspectorState(payload);
  266. },
  267. sendInspectorState(id) {
  268. return __vue_devtools_kit.devtools.ctx.api.sendInspectorState(id);
  269. },
  270. inspectComponentInspector() {
  271. return __vue_devtools_kit.devtools.ctx.api.inspectComponentInspector();
  272. },
  273. cancelInspectComponentInspector() {
  274. return __vue_devtools_kit.devtools.ctx.api.cancelInspectComponentInspector();
  275. },
  276. getComponentRenderCode(id) {
  277. return __vue_devtools_kit.devtools.ctx.api.getComponentRenderCode(id);
  278. },
  279. scrollToComponent(id) {
  280. return __vue_devtools_kit.devtools.ctx.api.scrollToComponent(id);
  281. },
  282. inspectDOM(id) {
  283. return __vue_devtools_kit.devtools.ctx.api.inspectDOM(id);
  284. },
  285. getInspectorNodeActions(id) {
  286. return (0, __vue_devtools_kit.getInspectorNodeActions)(id);
  287. },
  288. getInspectorActions(id) {
  289. return (0, __vue_devtools_kit.getInspectorActions)(id);
  290. },
  291. updateTimelineLayersState(state) {
  292. return (0, __vue_devtools_kit.updateTimelineLayersState)(state);
  293. },
  294. callInspectorNodeAction(inspectorId, actionIndex, nodeId) {
  295. const nodeActions = (0, __vue_devtools_kit.getInspectorNodeActions)(inspectorId);
  296. if (nodeActions?.length) nodeActions[actionIndex].action?.(nodeId);
  297. },
  298. callInspectorAction(inspectorId, actionIndex) {
  299. const actions = (0, __vue_devtools_kit.getInspectorActions)(inspectorId);
  300. if (actions?.length) actions[actionIndex].action?.();
  301. },
  302. openInEditor(options) {
  303. return __vue_devtools_kit.devtools.ctx.api.openInEditor(options);
  304. },
  305. async checkVueInspectorDetected() {
  306. return !!await __vue_devtools_kit.devtools.ctx.api.getVueInspector();
  307. },
  308. async enableVueInspector() {
  309. const inspector = await __vue_devtools_kit.devtools?.api?.getVueInspector?.();
  310. if (inspector) await inspector.enable();
  311. },
  312. async toggleApp(id, options) {
  313. return __vue_devtools_kit.devtools.ctx.api.toggleApp(id, options);
  314. },
  315. updatePluginSettings(pluginId, key, value) {
  316. return __vue_devtools_kit.devtools.ctx.api.updatePluginSettings(pluginId, key, value);
  317. },
  318. getPluginSettings(pluginId) {
  319. return __vue_devtools_kit.devtools.ctx.api.getPluginSettings(pluginId);
  320. },
  321. getRouterInfo() {
  322. return __vue_devtools_kit.devtoolsRouterInfo;
  323. },
  324. navigate(path) {
  325. return __vue_devtools_kit.devtoolsRouter.value?.push(path).catch(() => ({}));
  326. },
  327. getMatchedRoutes(path) {
  328. const c = console.warn;
  329. console.warn = () => {};
  330. const matched = __vue_devtools_kit.devtoolsRouter.value?.resolve?.({ path: path || "/" }).matched ?? [];
  331. console.warn = c;
  332. return matched;
  333. },
  334. toggleClientConnected(state) {
  335. (0, __vue_devtools_kit.toggleClientConnected)(state);
  336. },
  337. getCustomInspector() {
  338. return (0, __vue_devtools_kit.getActiveInspectors)();
  339. },
  340. getInspectorInfo(id) {
  341. return (0, __vue_devtools_kit.getInspectorInfo)(id);
  342. },
  343. highlighComponent(uid) {
  344. return __vue_devtools_kit.devtools.ctx.hooks.callHook(__vue_devtools_kit.DevToolsContextHookKeys.COMPONENT_HIGHLIGHT, { uid });
  345. },
  346. unhighlight() {
  347. return __vue_devtools_kit.devtools.ctx.hooks.callHook(__vue_devtools_kit.DevToolsContextHookKeys.COMPONENT_UNHIGHLIGHT);
  348. },
  349. updateDevToolsClientDetected(params) {
  350. (0, __vue_devtools_kit.updateDevToolsClientDetected)(params);
  351. },
  352. initDevToolsServerListener() {
  353. const broadcast = (0, __vue_devtools_kit.getRpcServer)().broadcast;
  354. __vue_devtools_kit.devtools.ctx.hooks.hook(__vue_devtools_kit.DevToolsMessagingHookKeys.SEND_INSPECTOR_TREE_TO_CLIENT, (payload) => {
  355. broadcast.emit(DevToolsMessagingEvents.INSPECTOR_TREE_UPDATED, (0, __vue_devtools_kit.stringify)(payload));
  356. });
  357. __vue_devtools_kit.devtools.ctx.hooks.hook(__vue_devtools_kit.DevToolsMessagingHookKeys.SEND_INSPECTOR_STATE_TO_CLIENT, (payload) => {
  358. broadcast.emit(DevToolsMessagingEvents.INSPECTOR_STATE_UPDATED, (0, __vue_devtools_kit.stringify)(payload));
  359. });
  360. __vue_devtools_kit.devtools.ctx.hooks.hook(__vue_devtools_kit.DevToolsMessagingHookKeys.DEVTOOLS_STATE_UPDATED, () => {
  361. broadcast.emit(DevToolsMessagingEvents.DEVTOOLS_STATE_UPDATED, getDevToolsState());
  362. });
  363. __vue_devtools_kit.devtools.ctx.hooks.hook(__vue_devtools_kit.DevToolsMessagingHookKeys.ROUTER_INFO_UPDATED, ({ state }) => {
  364. broadcast.emit(DevToolsMessagingEvents.ROUTER_INFO_UPDATED, state);
  365. });
  366. __vue_devtools_kit.devtools.ctx.hooks.hook(__vue_devtools_kit.DevToolsMessagingHookKeys.SEND_TIMELINE_EVENT_TO_CLIENT, (payload) => {
  367. broadcast.emit(DevToolsMessagingEvents.TIMELINE_EVENT_UPDATED, (0, __vue_devtools_kit.stringify)(payload));
  368. });
  369. __vue_devtools_kit.devtools.ctx.hooks.hook(__vue_devtools_kit.DevToolsMessagingHookKeys.SEND_INSPECTOR_TO_CLIENT, (payload) => {
  370. broadcast.emit(DevToolsMessagingEvents.INSPECTOR_UPDATED, payload);
  371. });
  372. __vue_devtools_kit.devtools.ctx.hooks.hook(__vue_devtools_kit.DevToolsMessagingHookKeys.SEND_ACTIVE_APP_UNMOUNTED_TO_CLIENT, () => {
  373. broadcast.emit(DevToolsMessagingEvents.ACTIVE_APP_UNMOUNTED);
  374. });
  375. }
  376. };
  377. const rpc = new Proxy({
  378. value: {},
  379. functions: {}
  380. }, { get(target$1, property) {
  381. const _rpc = (0, __vue_devtools_kit.getRpcClient)();
  382. if (property === "value") return _rpc;
  383. else if (property === "functions") return _rpc.$functions;
  384. } });
  385. const rpcServer = new Proxy({
  386. value: {},
  387. functions: {}
  388. }, { get(target$1, property) {
  389. const _rpc = (0, __vue_devtools_kit.getRpcServer)();
  390. if (property === "value") return _rpc;
  391. else if (property === "functions") return _rpc.functions;
  392. } });
  393. function onRpcConnected(callback) {
  394. let timer = null;
  395. let retryCount = 0;
  396. function heartbeat() {
  397. rpc.value?.heartbeat?.().then(() => {
  398. callback();
  399. clearTimeout(timer);
  400. }).catch(() => {});
  401. }
  402. timer = setInterval(() => {
  403. if (retryCount >= 30) clearTimeout(timer);
  404. retryCount++;
  405. heartbeat();
  406. }, retryCount * 200 + 200);
  407. heartbeat();
  408. }
  409. function onRpcSeverReady(callback) {
  410. let timer = null;
  411. const timeout = 120;
  412. function heartbeat() {
  413. if (rpcServer.value.clients.length > 0) {
  414. callback();
  415. clearTimeout(timer);
  416. }
  417. }
  418. timer = setInterval(() => {
  419. heartbeat();
  420. }, timeout);
  421. }
  422. //#endregion
  423. //#region src/rpc/vite.ts
  424. const hooks = createHooks();
  425. const viteRpcFunctions = {
  426. on: (event, handler) => {
  427. hooks.hook(event, handler);
  428. },
  429. off: (event, handler) => {
  430. hooks.removeHook(event, handler);
  431. },
  432. once: (event, handler) => {
  433. hooks.hookOnce(event, handler);
  434. },
  435. emit: (event, ...args) => {
  436. hooks.callHook(event, ...args);
  437. },
  438. heartbeat: () => {
  439. return true;
  440. }
  441. };
  442. const viteRpc = new Proxy({
  443. value: {},
  444. functions: {}
  445. }, { get(target$1, property) {
  446. const _rpc = (0, __vue_devtools_kit.getViteRpcClient)();
  447. if (property === "value") return _rpc;
  448. else if (property === "functions") return _rpc?.$functions;
  449. } });
  450. function onViteRpcConnected(callback) {
  451. let timer = null;
  452. function heartbeat() {
  453. viteRpc.value?.heartbeat?.().then(() => {
  454. clearTimeout(timer);
  455. callback();
  456. }).catch(() => ({}));
  457. timer = setTimeout(() => {
  458. heartbeat();
  459. }, 80);
  460. }
  461. heartbeat();
  462. }
  463. function createViteClientRpc() {
  464. (0, __vue_devtools_kit.createRpcClient)(viteRpcFunctions, { preset: "vite" });
  465. }
  466. function createViteServerRpc(functions$1) {
  467. (0, __vue_devtools_kit.createRpcServer)(functions$1, { preset: "vite" });
  468. }
  469. //#endregion
  470. //#region src/vue-plugin/devtools-state.ts
  471. const VueDevToolsStateSymbol = Symbol.for("__VueDevToolsStateSymbol__");
  472. function VueDevToolsVuePlugin() {
  473. return { install(app) {
  474. const state = createDevToolsStateContext();
  475. state.getDevToolsState();
  476. app.provide(VueDevToolsStateSymbol, state);
  477. app.config.globalProperties.$getDevToolsState = state.getDevToolsState;
  478. app.config.globalProperties.$disconnectDevToolsClient = () => {
  479. state.clientConnected.value = false;
  480. state.connected.value = false;
  481. };
  482. } };
  483. }
  484. function createDevToolsStateContext() {
  485. const connected = (0, vue.ref)(false);
  486. const clientConnected = (0, vue.ref)(false);
  487. const vueVersion = (0, vue.ref)("");
  488. const tabs = (0, vue.ref)([]);
  489. const commands = (0, vue.ref)([]);
  490. const vitePluginDetected = (0, vue.ref)(false);
  491. const appRecords = (0, vue.ref)([]);
  492. const activeAppRecordId = (0, vue.ref)("");
  493. const timelineLayersState = (0, vue.ref)({});
  494. function updateState(data) {
  495. connected.value = data.connected;
  496. clientConnected.value = data.clientConnected;
  497. vueVersion.value = data.vueVersion || "";
  498. tabs.value = data.tabs;
  499. commands.value = data.commands;
  500. vitePluginDetected.value = data.vitePluginDetected;
  501. appRecords.value = data.appRecords;
  502. activeAppRecordId.value = data.activeAppRecordId;
  503. timelineLayersState.value = data.timelineLayersState;
  504. }
  505. function getDevToolsState$1() {
  506. onRpcConnected(() => {
  507. rpc.value.devtoolsState().then((data) => {
  508. updateState(data);
  509. });
  510. rpc.functions.off(DevToolsMessagingEvents.DEVTOOLS_STATE_UPDATED, updateState);
  511. rpc.functions.on(DevToolsMessagingEvents.DEVTOOLS_STATE_UPDATED, updateState);
  512. });
  513. }
  514. return {
  515. getDevToolsState: getDevToolsState$1,
  516. connected,
  517. clientConnected,
  518. vueVersion,
  519. tabs,
  520. commands,
  521. vitePluginDetected,
  522. appRecords,
  523. activeAppRecordId,
  524. timelineLayersState
  525. };
  526. }
  527. function useDevToolsState() {
  528. return (0, vue.inject)(VueDevToolsStateSymbol);
  529. }
  530. const fns = [];
  531. function onDevToolsConnected(fn) {
  532. const { connected, clientConnected } = useDevToolsState();
  533. fns.push(fn);
  534. (0, vue.onUnmounted)(() => {
  535. fns.splice(fns.indexOf(fn), 1);
  536. });
  537. const devtoolsReady = (0, vue.computed)(() => clientConnected.value && connected.value);
  538. if (devtoolsReady.value) fn();
  539. else {
  540. const stop = (0, vue.watch)(devtoolsReady, (v) => {
  541. if (v) {
  542. fn();
  543. stop();
  544. }
  545. });
  546. }
  547. return () => {
  548. fns.splice(fns.indexOf(fn), 1);
  549. };
  550. }
  551. function refreshCurrentPageData() {
  552. fns.forEach((fn) => fn());
  553. }
  554. //#endregion
  555. exports.DevToolsMessagingEvents = DevToolsMessagingEvents;
  556. exports.VueDevToolsVuePlugin = VueDevToolsVuePlugin;
  557. exports.createDevToolsStateContext = createDevToolsStateContext;
  558. exports.createViteClientRpc = createViteClientRpc;
  559. exports.createViteServerRpc = createViteServerRpc;
  560. exports.functions = functions;
  561. exports.getDevToolsClientUrl = getDevToolsClientUrl;
  562. exports.onDevToolsConnected = onDevToolsConnected;
  563. exports.onRpcConnected = onRpcConnected;
  564. exports.onRpcSeverReady = onRpcSeverReady;
  565. exports.onViteRpcConnected = onViteRpcConnected;
  566. exports.refreshCurrentPageData = refreshCurrentPageData;
  567. exports.rpc = rpc;
  568. exports.rpcServer = rpcServer;
  569. exports.setDevToolsClientUrl = setDevToolsClientUrl;
  570. exports.useDevToolsState = useDevToolsState;
  571. exports.viteRpc = viteRpc;
  572. exports.viteRpcFunctions = viteRpcFunctions;