index.js 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. //#region \0rolldown/runtime.js
  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 __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
  9. var __copyProps = (to, from, except, desc) => {
  10. if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
  11. key = keys[i];
  12. if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
  13. get: ((k) => from[k]).bind(null, key),
  14. enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
  15. });
  16. }
  17. return to;
  18. };
  19. var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
  20. value: mod,
  21. enumerable: true
  22. }) : target, mod));
  23. //#endregion
  24. //#region src/constants.ts
  25. const VIEW_MODE_STORAGE_KEY = "__vue-devtools-view-mode__";
  26. const VITE_PLUGIN_DETECTED_STORAGE_KEY = "__vue-devtools-vite-plugin-detected__";
  27. const VITE_PLUGIN_CLIENT_URL_STORAGE_KEY = "__vue-devtools-vite-plugin-client-url__";
  28. const BROADCAST_CHANNEL_NAME = "__vue-devtools-broadcast-channel__";
  29. //#endregion
  30. //#region src/env.ts
  31. const isBrowser = typeof navigator !== "undefined";
  32. const target = typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : typeof global !== "undefined" ? global : {};
  33. const isInChromePanel = typeof target.chrome !== "undefined" && !!target.chrome.devtools;
  34. const isInIframe = isBrowser && target.self !== target.top;
  35. const isInElectron = typeof navigator !== "undefined" && navigator.userAgent?.toLowerCase().includes("electron");
  36. const isNuxtApp = typeof window !== "undefined" && !!window.__NUXT__;
  37. const isInSeparateWindow = !isInIframe && !isInChromePanel && !isInElectron;
  38. //#endregion
  39. //#region src/general.ts
  40. var import_rfdc = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
  41. module.exports = rfdc;
  42. function copyBuffer(cur) {
  43. if (cur instanceof Buffer) return Buffer.from(cur);
  44. return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length);
  45. }
  46. function rfdc(opts) {
  47. opts = opts || {};
  48. if (opts.circles) return rfdcCircles(opts);
  49. const constructorHandlers = /* @__PURE__ */ new Map();
  50. constructorHandlers.set(Date, (o) => new Date(o));
  51. constructorHandlers.set(Map, (o, fn) => new Map(cloneArray(Array.from(o), fn)));
  52. constructorHandlers.set(Set, (o, fn) => new Set(cloneArray(Array.from(o), fn)));
  53. if (opts.constructorHandlers) for (const handler of opts.constructorHandlers) constructorHandlers.set(handler[0], handler[1]);
  54. let handler = null;
  55. return opts.proto ? cloneProto : clone;
  56. function cloneArray(a, fn) {
  57. const keys = Object.keys(a);
  58. const a2 = new Array(keys.length);
  59. for (let i = 0; i < keys.length; i++) {
  60. const k = keys[i];
  61. const cur = a[k];
  62. if (typeof cur !== "object" || cur === null) a2[k] = cur;
  63. else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) a2[k] = handler(cur, fn);
  64. else if (ArrayBuffer.isView(cur)) a2[k] = copyBuffer(cur);
  65. else a2[k] = fn(cur);
  66. }
  67. return a2;
  68. }
  69. function clone(o) {
  70. if (typeof o !== "object" || o === null) return o;
  71. if (Array.isArray(o)) return cloneArray(o, clone);
  72. if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) return handler(o, clone);
  73. const o2 = {};
  74. for (const k in o) {
  75. if (Object.hasOwnProperty.call(o, k) === false) continue;
  76. const cur = o[k];
  77. if (typeof cur !== "object" || cur === null) o2[k] = cur;
  78. else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) o2[k] = handler(cur, clone);
  79. else if (ArrayBuffer.isView(cur)) o2[k] = copyBuffer(cur);
  80. else o2[k] = clone(cur);
  81. }
  82. return o2;
  83. }
  84. function cloneProto(o) {
  85. if (typeof o !== "object" || o === null) return o;
  86. if (Array.isArray(o)) return cloneArray(o, cloneProto);
  87. if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) return handler(o, cloneProto);
  88. const o2 = {};
  89. for (const k in o) {
  90. const cur = o[k];
  91. if (typeof cur !== "object" || cur === null) o2[k] = cur;
  92. else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) o2[k] = handler(cur, cloneProto);
  93. else if (ArrayBuffer.isView(cur)) o2[k] = copyBuffer(cur);
  94. else o2[k] = cloneProto(cur);
  95. }
  96. return o2;
  97. }
  98. }
  99. function rfdcCircles(opts) {
  100. const refs = [];
  101. const refsNew = [];
  102. const constructorHandlers = /* @__PURE__ */ new Map();
  103. constructorHandlers.set(Date, (o) => new Date(o));
  104. constructorHandlers.set(Map, (o, fn) => new Map(cloneArray(Array.from(o), fn)));
  105. constructorHandlers.set(Set, (o, fn) => new Set(cloneArray(Array.from(o), fn)));
  106. if (opts.constructorHandlers) for (const handler of opts.constructorHandlers) constructorHandlers.set(handler[0], handler[1]);
  107. let handler = null;
  108. return opts.proto ? cloneProto : clone;
  109. function cloneArray(a, fn) {
  110. const keys = Object.keys(a);
  111. const a2 = new Array(keys.length);
  112. for (let i = 0; i < keys.length; i++) {
  113. const k = keys[i];
  114. const cur = a[k];
  115. if (typeof cur !== "object" || cur === null) a2[k] = cur;
  116. else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) a2[k] = handler(cur, fn);
  117. else if (ArrayBuffer.isView(cur)) a2[k] = copyBuffer(cur);
  118. else {
  119. const index = refs.indexOf(cur);
  120. if (index !== -1) a2[k] = refsNew[index];
  121. else a2[k] = fn(cur);
  122. }
  123. }
  124. return a2;
  125. }
  126. function clone(o) {
  127. if (typeof o !== "object" || o === null) return o;
  128. if (Array.isArray(o)) return cloneArray(o, clone);
  129. if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) return handler(o, clone);
  130. const o2 = {};
  131. refs.push(o);
  132. refsNew.push(o2);
  133. for (const k in o) {
  134. if (Object.hasOwnProperty.call(o, k) === false) continue;
  135. const cur = o[k];
  136. if (typeof cur !== "object" || cur === null) o2[k] = cur;
  137. else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) o2[k] = handler(cur, clone);
  138. else if (ArrayBuffer.isView(cur)) o2[k] = copyBuffer(cur);
  139. else {
  140. const i = refs.indexOf(cur);
  141. if (i !== -1) o2[k] = refsNew[i];
  142. else o2[k] = clone(cur);
  143. }
  144. }
  145. refs.pop();
  146. refsNew.pop();
  147. return o2;
  148. }
  149. function cloneProto(o) {
  150. if (typeof o !== "object" || o === null) return o;
  151. if (Array.isArray(o)) return cloneArray(o, cloneProto);
  152. if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) return handler(o, cloneProto);
  153. const o2 = {};
  154. refs.push(o);
  155. refsNew.push(o2);
  156. for (const k in o) {
  157. const cur = o[k];
  158. if (typeof cur !== "object" || cur === null) o2[k] = cur;
  159. else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) o2[k] = handler(cur, cloneProto);
  160. else if (ArrayBuffer.isView(cur)) o2[k] = copyBuffer(cur);
  161. else {
  162. const i = refs.indexOf(cur);
  163. if (i !== -1) o2[k] = refsNew[i];
  164. else o2[k] = cloneProto(cur);
  165. }
  166. }
  167. refs.pop();
  168. refsNew.pop();
  169. return o2;
  170. }
  171. }
  172. })))(), 1);
  173. function NOOP() {}
  174. const isNumeric = (str) => `${+str}` === str;
  175. const isMacOS = () => navigator?.platform ? navigator?.platform.toLowerCase().includes("mac") : /Macintosh/.test(navigator.userAgent);
  176. const classifyRE = /(?:^|[-_/])(\w)/g;
  177. const camelizeRE = /-(\w)/g;
  178. const kebabizeRE = /([a-z0-9])([A-Z])/g;
  179. function toUpper(_, c) {
  180. return c ? c.toUpperCase() : "";
  181. }
  182. function classify(str) {
  183. return str && `${str}`.replace(classifyRE, toUpper);
  184. }
  185. function camelize(str) {
  186. return str && str.replace(camelizeRE, toUpper);
  187. }
  188. function kebabize(str) {
  189. return str && str.replace(kebabizeRE, (_, lowerCaseCharacter, upperCaseLetter) => {
  190. return `${lowerCaseCharacter}-${upperCaseLetter}`;
  191. }).toLowerCase();
  192. }
  193. function basename(filename, ext) {
  194. let normalizedFilename = filename.replace(/^[a-z]:/i, "").replace(/\\/g, "/");
  195. if (normalizedFilename.endsWith(`index${ext}`)) normalizedFilename = normalizedFilename.replace(`/index${ext}`, ext);
  196. const lastSlashIndex = normalizedFilename.lastIndexOf("/");
  197. const baseNameWithExt = normalizedFilename.substring(lastSlashIndex + 1);
  198. if (ext) {
  199. const extIndex = baseNameWithExt.lastIndexOf(ext);
  200. return baseNameWithExt.substring(0, extIndex);
  201. }
  202. return "";
  203. }
  204. function sortByKey(state) {
  205. return state && state.slice().sort((a, b) => {
  206. if (a.key < b.key) return -1;
  207. if (a.key > b.key) return 1;
  208. return 0;
  209. });
  210. }
  211. const HTTP_URL_RE = /^https?:\/\//;
  212. /**
  213. * Check a string is start with `/` or a valid http url
  214. */
  215. function isUrlString(str) {
  216. return str.startsWith("/") || HTTP_URL_RE.test(str);
  217. }
  218. /**
  219. * @copyright [rfdc](https://github.com/davidmarkclements/rfdc)
  220. * @description A really fast deep clone alternative
  221. */
  222. const deepClone = (0, import_rfdc.default)({ circles: true });
  223. function randomStr() {
  224. return Math.random().toString(36).slice(2);
  225. }
  226. function isObject(value) {
  227. return typeof value === "object" && !Array.isArray(value) && value !== null;
  228. }
  229. function isArray(value) {
  230. return Array.isArray(value);
  231. }
  232. function isSet(value) {
  233. return value instanceof Set;
  234. }
  235. function isMap(value) {
  236. return value instanceof Map;
  237. }
  238. //#endregion
  239. export { BROADCAST_CHANNEL_NAME, NOOP, VIEW_MODE_STORAGE_KEY, VITE_PLUGIN_CLIENT_URL_STORAGE_KEY, VITE_PLUGIN_DETECTED_STORAGE_KEY, basename, camelize, classify, deepClone, isArray, isBrowser, isInChromePanel, isInElectron, isInIframe, isInSeparateWindow, isMacOS, isMap, isNumeric, isNuxtApp, isObject, isSet, isUrlString, kebabize, randomStr, sortByKey, target };