@xiuchang-midscene/shared 2.0.2

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 (382) hide show
  1. package/README.md +9 -0
  2. package/dist/es/baseDB.mjs +109 -0
  3. package/dist/es/baseDB.mjs.bak +109 -0
  4. package/dist/es/build/copy-static.mjs +31 -0
  5. package/dist/es/build/copy-static.mjs.bak +31 -0
  6. package/dist/es/build/rspack-config.mjs +4 -0
  7. package/dist/es/build/rspack-config.mjs.bak +4 -0
  8. package/dist/es/cli/cli-runner.mjs +140 -0
  9. package/dist/es/cli/cli-runner.mjs.bak +140 -0
  10. package/dist/es/cli/index.mjs +2 -0
  11. package/dist/es/cli/index.mjs.bak +2 -0
  12. package/dist/es/common.mjs +37 -0
  13. package/dist/es/common.mjs.bak +37 -0
  14. package/dist/es/constants/example-code.mjs +223 -0
  15. package/dist/es/constants/example-code.mjs.bak +223 -0
  16. package/dist/es/constants/index.mjs +23 -0
  17. package/dist/es/constants/index.mjs.bak +23 -0
  18. package/dist/es/env/basic.mjs +6 -0
  19. package/dist/es/env/basic.mjs.bak +6 -0
  20. package/dist/es/env/constants.mjs +70 -0
  21. package/dist/es/env/constants.mjs.bak +70 -0
  22. package/dist/es/env/global-config-manager.mjs +94 -0
  23. package/dist/es/env/global-config-manager.mjs.bak +94 -0
  24. package/dist/es/env/helper.mjs +43 -0
  25. package/dist/es/env/helper.mjs.bak +43 -0
  26. package/dist/es/env/index.mjs +5 -0
  27. package/dist/es/env/index.mjs.bak +5 -0
  28. package/dist/es/env/init-debug.mjs +18 -0
  29. package/dist/es/env/init-debug.mjs.bak +18 -0
  30. package/dist/es/env/model-config-manager.mjs +79 -0
  31. package/dist/es/env/model-config-manager.mjs.bak +79 -0
  32. package/dist/es/env/parse-model-config.mjs +132 -0
  33. package/dist/es/env/parse-model-config.mjs.bak +132 -0
  34. package/dist/es/env/types.mjs +220 -0
  35. package/dist/es/env/types.mjs.bak +220 -0
  36. package/dist/es/env/utils.mjs +26 -0
  37. package/dist/es/env/utils.mjs.bak +26 -0
  38. package/dist/es/extractor/constants.mjs +2 -0
  39. package/dist/es/extractor/constants.mjs.bak +2 -0
  40. package/dist/es/extractor/debug.mjs +6 -0
  41. package/dist/es/extractor/debug.mjs.bak +6 -0
  42. package/dist/es/extractor/dom-util.mjs +92 -0
  43. package/dist/es/extractor/dom-util.mjs.bak +92 -0
  44. package/dist/es/extractor/index.mjs +5 -0
  45. package/dist/es/extractor/index.mjs.bak +5 -0
  46. package/dist/es/extractor/locator.mjs +250 -0
  47. package/dist/es/extractor/locator.mjs.bak +250 -0
  48. package/dist/es/extractor/tree.mjs +78 -0
  49. package/dist/es/extractor/tree.mjs.bak +78 -0
  50. package/dist/es/extractor/util.mjs +245 -0
  51. package/dist/es/extractor/util.mjs.bak +245 -0
  52. package/dist/es/extractor/web-extractor.mjs +303 -0
  53. package/dist/es/extractor/web-extractor.mjs.bak +303 -0
  54. package/dist/es/img/box-select.mjs +824 -0
  55. package/dist/es/img/box-select.mjs.bak +824 -0
  56. package/dist/es/img/canvas-fallback.mjs +238 -0
  57. package/dist/es/img/canvas-fallback.mjs.bak +238 -0
  58. package/dist/es/img/get-photon.mjs +45 -0
  59. package/dist/es/img/get-photon.mjs.bak +45 -0
  60. package/dist/es/img/get-sharp.mjs +11 -0
  61. package/dist/es/img/get-sharp.mjs.bak +11 -0
  62. package/dist/es/img/index.mjs +4 -0
  63. package/dist/es/img/index.mjs.bak +4 -0
  64. package/dist/es/img/info.mjs +29 -0
  65. package/dist/es/img/info.mjs.bak +29 -0
  66. package/dist/es/img/transform.mjs +295 -0
  67. package/dist/es/img/transform.mjs.bak +295 -0
  68. package/dist/es/index.mjs +4 -0
  69. package/dist/es/index.mjs.bak +4 -0
  70. package/dist/es/logger.mjs +64 -0
  71. package/dist/es/logger.mjs.bak +64 -0
  72. package/dist/es/mcp/base-server.mjs +281 -0
  73. package/dist/es/mcp/base-server.mjs.bak +281 -0
  74. package/dist/es/mcp/base-tools.mjs +91 -0
  75. package/dist/es/mcp/base-tools.mjs.bak +91 -0
  76. package/dist/es/mcp/chrome-path.mjs +35 -0
  77. package/dist/es/mcp/chrome-path.mjs.bak +35 -0
  78. package/dist/es/mcp/index.mjs +7 -0
  79. package/dist/es/mcp/index.mjs.bak +7 -0
  80. package/dist/es/mcp/inject-report-html-plugin.mjs +53 -0
  81. package/dist/es/mcp/inject-report-html-plugin.mjs.bak +53 -0
  82. package/dist/es/mcp/launcher-helper.mjs +52 -0
  83. package/dist/es/mcp/launcher-helper.mjs.bak +52 -0
  84. package/dist/es/mcp/tool-generator.mjs +297 -0
  85. package/dist/es/mcp/tool-generator.mjs.bak +297 -0
  86. package/dist/es/mcp/types.mjs +3 -0
  87. package/dist/es/mcp/types.mjs.bak +3 -0
  88. package/dist/es/node/fs.mjs +44 -0
  89. package/dist/es/node/fs.mjs.bak +44 -0
  90. package/dist/es/node/index.mjs +2 -0
  91. package/dist/es/node/index.mjs.bak +2 -0
  92. package/dist/es/node/port.mjs +24 -0
  93. package/dist/es/node/port.mjs.bak +24 -0
  94. package/dist/es/oss/demo.mjs +30 -0
  95. package/dist/es/oss/demo.mjs.bak +30 -0
  96. package/dist/es/oss/index.mjs +90 -0
  97. package/dist/es/oss/index.mjs.bak +90 -0
  98. package/dist/es/polyfills/async-hooks.mjs +2 -0
  99. package/dist/es/polyfills/async-hooks.mjs.bak +2 -0
  100. package/dist/es/polyfills/index.mjs +1 -0
  101. package/dist/es/polyfills/index.mjs.bak +1 -0
  102. package/dist/es/types/index.mjs +3 -0
  103. package/dist/es/types/index.mjs.bak +3 -0
  104. package/dist/es/us-keyboard-layout.mjs +1414 -0
  105. package/dist/es/us-keyboard-layout.mjs.LICENSE.txt +5 -0
  106. package/dist/es/us-keyboard-layout.mjs.bak +1414 -0
  107. package/dist/es/utils.mjs +72 -0
  108. package/dist/es/utils.mjs.bak +72 -0
  109. package/dist/es/zod-schema-utils.mjs +54 -0
  110. package/dist/es/zod-schema-utils.mjs.bak +54 -0
  111. package/dist/lib/baseDB.js +149 -0
  112. package/dist/lib/baseDB.js.bak +149 -0
  113. package/dist/lib/build/copy-static.js +79 -0
  114. package/dist/lib/build/copy-static.js.bak +79 -0
  115. package/dist/lib/build/rspack-config.js +38 -0
  116. package/dist/lib/build/rspack-config.js.bak +38 -0
  117. package/dist/lib/cli/cli-runner.js +196 -0
  118. package/dist/lib/cli/cli-runner.js.bak +196 -0
  119. package/dist/lib/cli/index.js +48 -0
  120. package/dist/lib/cli/index.js.bak +48 -0
  121. package/dist/lib/common.js +93 -0
  122. package/dist/lib/common.js.bak +93 -0
  123. package/dist/lib/constants/example-code.js +260 -0
  124. package/dist/lib/constants/example-code.js.bak +260 -0
  125. package/dist/lib/constants/index.js +96 -0
  126. package/dist/lib/constants/index.js.bak +96 -0
  127. package/dist/lib/env/basic.js +40 -0
  128. package/dist/lib/env/basic.js.bak +40 -0
  129. package/dist/lib/env/constants.js +113 -0
  130. package/dist/lib/env/constants.js.bak +113 -0
  131. package/dist/lib/env/global-config-manager.js +128 -0
  132. package/dist/lib/env/global-config-manager.js.bak +128 -0
  133. package/dist/lib/env/helper.js +80 -0
  134. package/dist/lib/env/helper.js.bak +80 -0
  135. package/dist/lib/env/index.js +90 -0
  136. package/dist/lib/env/index.js.bak +90 -0
  137. package/dist/lib/env/init-debug.js +52 -0
  138. package/dist/lib/env/init-debug.js.bak +52 -0
  139. package/dist/lib/env/model-config-manager.js +113 -0
  140. package/dist/lib/env/model-config-manager.js.bak +113 -0
  141. package/dist/lib/env/parse-model-config.js +178 -0
  142. package/dist/lib/env/parse-model-config.js.bak +178 -0
  143. package/dist/lib/env/types.js +554 -0
  144. package/dist/lib/env/types.js.bak +554 -0
  145. package/dist/lib/env/utils.js +72 -0
  146. package/dist/lib/env/utils.js.bak +72 -0
  147. package/dist/lib/extractor/constants.js +42 -0
  148. package/dist/lib/extractor/constants.js.bak +42 -0
  149. package/dist/lib/extractor/debug.js +12 -0
  150. package/dist/lib/extractor/debug.js.bak +12 -0
  151. package/dist/lib/extractor/dom-util.js +153 -0
  152. package/dist/lib/extractor/dom-util.js.bak +153 -0
  153. package/dist/lib/extractor/index.js +81 -0
  154. package/dist/lib/extractor/index.js.bak +81 -0
  155. package/dist/lib/extractor/locator.js +296 -0
  156. package/dist/lib/extractor/locator.js.bak +296 -0
  157. package/dist/lib/extractor/tree.js +124 -0
  158. package/dist/lib/extractor/tree.js.bak +124 -0
  159. package/dist/lib/extractor/util.js +336 -0
  160. package/dist/lib/extractor/util.js.bak +336 -0
  161. package/dist/lib/extractor/web-extractor.js +349 -0
  162. package/dist/lib/extractor/web-extractor.js.bak +349 -0
  163. package/dist/lib/img/box-select.js +875 -0
  164. package/dist/lib/img/box-select.js.bak +875 -0
  165. package/dist/lib/img/canvas-fallback.js +305 -0
  166. package/dist/lib/img/canvas-fallback.js.bak +305 -0
  167. package/dist/lib/img/get-photon.js +82 -0
  168. package/dist/lib/img/get-photon.js.bak +82 -0
  169. package/dist/lib/img/get-sharp.js +45 -0
  170. package/dist/lib/img/get-sharp.js.bak +45 -0
  171. package/dist/lib/img/index.js +95 -0
  172. package/dist/lib/img/index.js.bak +95 -0
  173. package/dist/lib/img/info.js +83 -0
  174. package/dist/lib/img/info.js.bak +83 -0
  175. package/dist/lib/img/transform.js +387 -0
  176. package/dist/lib/img/transform.js.bak +387 -0
  177. package/dist/lib/index.js +47 -0
  178. package/dist/lib/index.js.bak +47 -0
  179. package/dist/lib/logger.js +114 -0
  180. package/dist/lib/logger.js.bak +114 -0
  181. package/dist/lib/mcp/base-server.js +331 -0
  182. package/dist/lib/mcp/base-server.js.bak +331 -0
  183. package/dist/lib/mcp/base-tools.js +125 -0
  184. package/dist/lib/mcp/base-tools.js.bak +125 -0
  185. package/dist/lib/mcp/chrome-path.js +72 -0
  186. package/dist/lib/mcp/chrome-path.js.bak +72 -0
  187. package/dist/lib/mcp/index.js +100 -0
  188. package/dist/lib/mcp/index.js.bak +100 -0
  189. package/dist/lib/mcp/inject-report-html-plugin.js +98 -0
  190. package/dist/lib/mcp/inject-report-html-plugin.js.bak +98 -0
  191. package/dist/lib/mcp/launcher-helper.js +86 -0
  192. package/dist/lib/mcp/launcher-helper.js.bak +86 -0
  193. package/dist/lib/mcp/tool-generator.js +334 -0
  194. package/dist/lib/mcp/tool-generator.js.bak +334 -0
  195. package/dist/lib/mcp/types.js +40 -0
  196. package/dist/lib/mcp/types.js.bak +40 -0
  197. package/dist/lib/node/fs.js +97 -0
  198. package/dist/lib/node/fs.js.bak +97 -0
  199. package/dist/lib/node/index.js +65 -0
  200. package/dist/lib/node/index.js.bak +65 -0
  201. package/dist/lib/node/port.js +61 -0
  202. package/dist/lib/node/port.js.bak +61 -0
  203. package/dist/lib/oss/demo.js +36 -0
  204. package/dist/lib/oss/demo.js.bak +36 -0
  205. package/dist/lib/oss/index.js +138 -0
  206. package/dist/lib/oss/index.js.bak +138 -0
  207. package/dist/lib/polyfills/async-hooks.js +36 -0
  208. package/dist/lib/polyfills/async-hooks.js.bak +36 -0
  209. package/dist/lib/polyfills/index.js +58 -0
  210. package/dist/lib/polyfills/index.js.bak +58 -0
  211. package/dist/lib/types/index.js +37 -0
  212. package/dist/lib/types/index.js.bak +37 -0
  213. package/dist/lib/us-keyboard-layout.js +1457 -0
  214. package/dist/lib/us-keyboard-layout.js.LICENSE.txt +5 -0
  215. package/dist/lib/us-keyboard-layout.js.bak +1457 -0
  216. package/dist/lib/utils.js +148 -0
  217. package/dist/lib/utils.js.bak +148 -0
  218. package/dist/lib/zod-schema-utils.js +97 -0
  219. package/dist/lib/zod-schema-utils.js.bak +97 -0
  220. package/dist/types/baseDB.d.ts +25 -0
  221. package/dist/types/baseDB.d.ts.bak +25 -0
  222. package/dist/types/build/copy-static.d.ts +31 -0
  223. package/dist/types/build/copy-static.d.ts.bak +31 -0
  224. package/dist/types/build/rspack-config.d.ts +8 -0
  225. package/dist/types/build/rspack-config.d.ts.bak +8 -0
  226. package/dist/types/cli/cli-runner.d.ts +14 -0
  227. package/dist/types/cli/cli-runner.d.ts.bak +14 -0
  228. package/dist/types/cli/index.d.ts +2 -0
  229. package/dist/types/cli/index.d.ts.bak +2 -0
  230. package/dist/types/common.d.ts +12 -0
  231. package/dist/types/common.d.ts.bak +12 -0
  232. package/dist/types/constants/example-code.d.ts +2 -0
  233. package/dist/types/constants/example-code.d.ts.bak +2 -0
  234. package/dist/types/constants/index.d.ts +21 -0
  235. package/dist/types/constants/index.d.ts.bak +21 -0
  236. package/dist/types/env/basic.d.ts +6 -0
  237. package/dist/types/env/basic.d.ts.bak +6 -0
  238. package/dist/types/env/constants.d.ts +40 -0
  239. package/dist/types/env/constants.d.ts.bak +40 -0
  240. package/dist/types/env/global-config-manager.d.ts +32 -0
  241. package/dist/types/env/global-config-manager.d.ts.bak +32 -0
  242. package/dist/types/env/helper.d.ts +4 -0
  243. package/dist/types/env/helper.d.ts.bak +4 -0
  244. package/dist/types/env/index.d.ts +4 -0
  245. package/dist/types/env/index.d.ts.bak +4 -0
  246. package/dist/types/env/init-debug.d.ts +1 -0
  247. package/dist/types/env/init-debug.d.ts.bak +1 -0
  248. package/dist/types/env/model-config-manager.d.ts +25 -0
  249. package/dist/types/env/model-config-manager.d.ts.bak +25 -0
  250. package/dist/types/env/parse-model-config.d.ts +31 -0
  251. package/dist/types/env/parse-model-config.d.ts.bak +31 -0
  252. package/dist/types/env/types.d.ts +318 -0
  253. package/dist/types/env/types.d.ts.bak +318 -0
  254. package/dist/types/env/utils.d.ts +38 -0
  255. package/dist/types/env/utils.d.ts.bak +38 -0
  256. package/dist/types/extractor/constants.d.ts +1 -0
  257. package/dist/types/extractor/constants.d.ts.bak +1 -0
  258. package/dist/types/extractor/debug.d.ts +1 -0
  259. package/dist/types/extractor/debug.d.ts.bak +1 -0
  260. package/dist/types/extractor/dom-util.d.ts +56 -0
  261. package/dist/types/extractor/dom-util.d.ts.bak +56 -0
  262. package/dist/types/extractor/index.d.ts +32 -0
  263. package/dist/types/extractor/index.d.ts.bak +32 -0
  264. package/dist/types/extractor/locator.d.ts +9 -0
  265. package/dist/types/extractor/locator.d.ts.bak +9 -0
  266. package/dist/types/extractor/tree.d.ts +6 -0
  267. package/dist/types/extractor/tree.d.ts.bak +6 -0
  268. package/dist/types/extractor/util.d.ts +47 -0
  269. package/dist/types/extractor/util.d.ts.bak +47 -0
  270. package/dist/types/extractor/web-extractor.d.ts +19 -0
  271. package/dist/types/extractor/web-extractor.d.ts.bak +19 -0
  272. package/dist/types/img/box-select.d.ts +26 -0
  273. package/dist/types/img/box-select.d.ts.bak +26 -0
  274. package/dist/types/img/canvas-fallback.d.ts +105 -0
  275. package/dist/types/img/canvas-fallback.d.ts.bak +105 -0
  276. package/dist/types/img/get-photon.d.ts +19 -0
  277. package/dist/types/img/get-photon.d.ts.bak +19 -0
  278. package/dist/types/img/get-sharp.d.ts +3 -0
  279. package/dist/types/img/get-sharp.d.ts.bak +3 -0
  280. package/dist/types/img/index.d.ts +3 -0
  281. package/dist/types/img/index.d.ts.bak +3 -0
  282. package/dist/types/img/info.d.ts +29 -0
  283. package/dist/types/img/info.d.ts.bak +29 -0
  284. package/dist/types/img/transform.d.ts +107 -0
  285. package/dist/types/img/transform.d.ts.bak +107 -0
  286. package/dist/types/index.d.ts +4 -0
  287. package/dist/types/index.d.ts.bak +4 -0
  288. package/dist/types/logger.d.ts +5 -0
  289. package/dist/types/logger.d.ts.bak +5 -0
  290. package/dist/types/mcp/base-server.d.ts +93 -0
  291. package/dist/types/mcp/base-server.d.ts.bak +93 -0
  292. package/dist/types/mcp/base-tools.d.ts +79 -0
  293. package/dist/types/mcp/base-tools.d.ts.bak +79 -0
  294. package/dist/types/mcp/chrome-path.d.ts +2 -0
  295. package/dist/types/mcp/chrome-path.d.ts.bak +2 -0
  296. package/dist/types/mcp/index.d.ts +7 -0
  297. package/dist/types/mcp/index.d.ts.bak +7 -0
  298. package/dist/types/mcp/inject-report-html-plugin.d.ts +18 -0
  299. package/dist/types/mcp/inject-report-html-plugin.d.ts.bak +18 -0
  300. package/dist/types/mcp/launcher-helper.d.ts +94 -0
  301. package/dist/types/mcp/launcher-helper.d.ts.bak +94 -0
  302. package/dist/types/mcp/tool-generator.d.ts +10 -0
  303. package/dist/types/mcp/tool-generator.d.ts.bak +10 -0
  304. package/dist/types/mcp/types.d.ts +103 -0
  305. package/dist/types/mcp/types.d.ts.bak +103 -0
  306. package/dist/types/node/fs.d.ts +15 -0
  307. package/dist/types/node/fs.d.ts.bak +15 -0
  308. package/dist/types/node/index.d.ts +2 -0
  309. package/dist/types/node/index.d.ts.bak +2 -0
  310. package/dist/types/node/port.d.ts +8 -0
  311. package/dist/types/node/port.d.ts.bak +8 -0
  312. package/dist/types/oss/demo.d.ts +1 -0
  313. package/dist/types/oss/demo.d.ts.bak +1 -0
  314. package/dist/types/oss/index.d.ts +34 -0
  315. package/dist/types/oss/index.d.ts.bak +34 -0
  316. package/dist/types/polyfills/async-hooks.d.ts +6 -0
  317. package/dist/types/polyfills/async-hooks.d.ts.bak +6 -0
  318. package/dist/types/polyfills/index.d.ts +4 -0
  319. package/dist/types/polyfills/index.d.ts.bak +4 -0
  320. package/dist/types/types/index.d.ts +34 -0
  321. package/dist/types/types/index.d.ts.bak +34 -0
  322. package/dist/types/us-keyboard-layout.d.ts +32 -0
  323. package/dist/types/us-keyboard-layout.d.ts.bak +32 -0
  324. package/dist/types/utils.d.ts +34 -0
  325. package/dist/types/utils.d.ts.bak +34 -0
  326. package/dist/types/zod-schema-utils.d.ts +23 -0
  327. package/dist/types/zod-schema-utils.d.ts.bak +23 -0
  328. package/package.json +132 -0
  329. package/src/baseDB.ts +158 -0
  330. package/src/build/copy-static.ts +68 -0
  331. package/src/build/rspack-config.ts +12 -0
  332. package/src/cli/cli-runner.ts +224 -0
  333. package/src/cli/index.ts +8 -0
  334. package/src/common.ts +67 -0
  335. package/src/constants/example-code.ts +223 -0
  336. package/src/constants/index.ts +29 -0
  337. package/src/env/basic.ts +12 -0
  338. package/src/env/constants.ts +234 -0
  339. package/src/env/global-config-manager.ts +191 -0
  340. package/src/env/helper.ts +58 -0
  341. package/src/env/index.ts +4 -0
  342. package/src/env/init-debug.ts +34 -0
  343. package/src/env/model-config-manager.ts +149 -0
  344. package/src/env/parse-model-config.ts +294 -0
  345. package/src/env/types.ts +547 -0
  346. package/src/env/utils.ts +89 -0
  347. package/src/extractor/constants.ts +5 -0
  348. package/src/extractor/debug.ts +10 -0
  349. package/src/extractor/dom-util.ts +226 -0
  350. package/src/extractor/index.ts +48 -0
  351. package/src/extractor/locator.ts +469 -0
  352. package/src/extractor/tree.ts +179 -0
  353. package/src/extractor/util.ts +482 -0
  354. package/src/extractor/web-extractor.ts +481 -0
  355. package/src/img/box-select.ts +588 -0
  356. package/src/img/canvas-fallback.ts +393 -0
  357. package/src/img/get-photon.ts +108 -0
  358. package/src/img/get-sharp.ts +18 -0
  359. package/src/img/index.ts +26 -0
  360. package/src/img/info.ts +75 -0
  361. package/src/img/transform.ts +594 -0
  362. package/src/index.ts +8 -0
  363. package/src/logger.ts +96 -0
  364. package/src/mcp/base-server.ts +502 -0
  365. package/src/mcp/base-tools.ts +185 -0
  366. package/src/mcp/chrome-path.ts +48 -0
  367. package/src/mcp/index.ts +7 -0
  368. package/src/mcp/inject-report-html-plugin.ts +119 -0
  369. package/src/mcp/launcher-helper.ts +200 -0
  370. package/src/mcp/tool-generator.ts +429 -0
  371. package/src/mcp/types.ts +112 -0
  372. package/src/node/fs.ts +84 -0
  373. package/src/node/index.ts +2 -0
  374. package/src/node/port.ts +37 -0
  375. package/src/oss/demo.ts +61 -0
  376. package/src/oss/index.ts +187 -0
  377. package/src/polyfills/async-hooks.ts +6 -0
  378. package/src/polyfills/index.ts +4 -0
  379. package/src/types/index.ts +52 -0
  380. package/src/us-keyboard-layout.ts +723 -0
  381. package/src/utils.ts +149 -0
  382. package/src/zod-schema-utils.ts +133 -0
@@ -0,0 +1,72 @@
1
+ import { sha256 } from "js-sha256";
2
+ import { v4 } from "uuid";
3
+ const ifInBrowser = 'undefined' != typeof window;
4
+ const ifInWorker = 'undefined' != typeof WorkerGlobalScope;
5
+ const ifInNode = 'undefined' != typeof process && process.versions?.node;
6
+ function uuid() {
7
+ return v4();
8
+ }
9
+ const hashMap = {};
10
+ function generateHashId(rect, content = '') {
11
+ const combined = JSON.stringify({
12
+ content,
13
+ rect
14
+ });
15
+ let sliceLength = 5;
16
+ let slicedHash = '';
17
+ const hashHex = sha256.create().update(combined).hex();
18
+ const toLetters = (hex)=>hex.split('').map((char)=>{
19
+ const code = Number.parseInt(char, 16);
20
+ return String.fromCharCode(97 + code % 26);
21
+ }).join('');
22
+ const hashLetters = toLetters(hashHex);
23
+ while(sliceLength < hashLetters.length - 1){
24
+ slicedHash = hashLetters.slice(0, sliceLength);
25
+ if (hashMap[slicedHash] && hashMap[slicedHash] !== combined) {
26
+ sliceLength++;
27
+ continue;
28
+ }
29
+ hashMap[slicedHash] = combined;
30
+ break;
31
+ }
32
+ return slicedHash;
33
+ }
34
+ function assert(condition, message) {
35
+ if (!condition) throw new Error(message || 'Assertion failed');
36
+ }
37
+ let isMcp = false;
38
+ function setIsMcp(value) {
39
+ isMcp = value;
40
+ }
41
+ function logMsg(...message) {
42
+ if (!isMcp) console.log(...message);
43
+ }
44
+ async function repeat(times, fn) {
45
+ for(let i = 0; i < times; i++)await fn(i);
46
+ }
47
+ const utils_REGEXP_LT = /</g;
48
+ const utils_REGEXP_GT = />/g;
49
+ const REGEXP_LT_ESCAPE = '__midscene_lt__';
50
+ const REGEXP_GT_ESCAPE = '__midscene_gt__';
51
+ const escapeScriptTag = (html)=>html.replace(utils_REGEXP_LT, REGEXP_LT_ESCAPE).replace(utils_REGEXP_GT, REGEXP_GT_ESCAPE);
52
+ const antiEscapeScriptTag = (html)=>{
53
+ const REGEXP_LT = new RegExp(REGEXP_LT_ESCAPE, 'g');
54
+ const REGEXP_GT = new RegExp(REGEXP_GT_ESCAPE, 'g');
55
+ return html.replace(REGEXP_LT, '<').replace(REGEXP_GT, '>');
56
+ };
57
+ function replaceIllegalPathCharsAndSpace(str) {
58
+ return str.replace(/[:*?"<>|# ]/g, '-');
59
+ }
60
+ function isPlainObject(value) {
61
+ return 'object' == typeof value && null !== value && !Array.isArray(value);
62
+ }
63
+ function normalizeForComparison(str) {
64
+ return str.toLowerCase().replace(/[\s\-_]+/g, '');
65
+ }
66
+ function mergeAndNormalizeAppNameMapping(defaultMapping, userMapping) {
67
+ const result = {};
68
+ for (const [key, value] of Object.entries(defaultMapping))result[normalizeForComparison(key)] = value;
69
+ if (userMapping) for (const [key, value] of Object.entries(userMapping))result[normalizeForComparison(key)] = value;
70
+ return result;
71
+ }
72
+ export { antiEscapeScriptTag, assert, escapeScriptTag, generateHashId, ifInBrowser, ifInNode, ifInWorker, isPlainObject, logMsg, mergeAndNormalizeAppNameMapping, normalizeForComparison, repeat, replaceIllegalPathCharsAndSpace, setIsMcp, uuid };
@@ -0,0 +1,72 @@
1
+ import { sha256 } from "js-sha256";
2
+ import { v4 } from "uuid";
3
+ const ifInBrowser = 'undefined' != typeof window;
4
+ const ifInWorker = 'undefined' != typeof WorkerGlobalScope;
5
+ const ifInNode = 'undefined' != typeof process && process.versions?.node;
6
+ function uuid() {
7
+ return v4();
8
+ }
9
+ const hashMap = {};
10
+ function generateHashId(rect, content = '') {
11
+ const combined = JSON.stringify({
12
+ content,
13
+ rect
14
+ });
15
+ let sliceLength = 5;
16
+ let slicedHash = '';
17
+ const hashHex = sha256.create().update(combined).hex();
18
+ const toLetters = (hex)=>hex.split('').map((char)=>{
19
+ const code = Number.parseInt(char, 16);
20
+ return String.fromCharCode(97 + code % 26);
21
+ }).join('');
22
+ const hashLetters = toLetters(hashHex);
23
+ while(sliceLength < hashLetters.length - 1){
24
+ slicedHash = hashLetters.slice(0, sliceLength);
25
+ if (hashMap[slicedHash] && hashMap[slicedHash] !== combined) {
26
+ sliceLength++;
27
+ continue;
28
+ }
29
+ hashMap[slicedHash] = combined;
30
+ break;
31
+ }
32
+ return slicedHash;
33
+ }
34
+ function assert(condition, message) {
35
+ if (!condition) throw new Error(message || 'Assertion failed');
36
+ }
37
+ let isMcp = false;
38
+ function setIsMcp(value) {
39
+ isMcp = value;
40
+ }
41
+ function logMsg(...message) {
42
+ if (!isMcp) console.log(...message);
43
+ }
44
+ async function repeat(times, fn) {
45
+ for(let i = 0; i < times; i++)await fn(i);
46
+ }
47
+ const utils_REGEXP_LT = /</g;
48
+ const utils_REGEXP_GT = />/g;
49
+ const REGEXP_LT_ESCAPE = '__midscene_lt__';
50
+ const REGEXP_GT_ESCAPE = '__midscene_gt__';
51
+ const escapeScriptTag = (html)=>html.replace(utils_REGEXP_LT, REGEXP_LT_ESCAPE).replace(utils_REGEXP_GT, REGEXP_GT_ESCAPE);
52
+ const antiEscapeScriptTag = (html)=>{
53
+ const REGEXP_LT = new RegExp(REGEXP_LT_ESCAPE, 'g');
54
+ const REGEXP_GT = new RegExp(REGEXP_GT_ESCAPE, 'g');
55
+ return html.replace(REGEXP_LT, '<').replace(REGEXP_GT, '>');
56
+ };
57
+ function replaceIllegalPathCharsAndSpace(str) {
58
+ return str.replace(/[:*?"<>|# ]/g, '-');
59
+ }
60
+ function isPlainObject(value) {
61
+ return 'object' == typeof value && null !== value && !Array.isArray(value);
62
+ }
63
+ function normalizeForComparison(str) {
64
+ return str.toLowerCase().replace(/[\s\-_]+/g, '');
65
+ }
66
+ function mergeAndNormalizeAppNameMapping(defaultMapping, userMapping) {
67
+ const result = {};
68
+ for (const [key, value] of Object.entries(defaultMapping))result[normalizeForComparison(key)] = value;
69
+ if (userMapping) for (const [key, value] of Object.entries(userMapping))result[normalizeForComparison(key)] = value;
70
+ return result;
71
+ }
72
+ export { antiEscapeScriptTag, assert, escapeScriptTag, generateHashId, ifInBrowser, ifInNode, ifInWorker, isPlainObject, logMsg, mergeAndNormalizeAppNameMapping, normalizeForComparison, repeat, replaceIllegalPathCharsAndSpace, setIsMcp, uuid };
@@ -0,0 +1,54 @@
1
+ function unwrapZodField(field) {
2
+ const f = field;
3
+ if (!f._def) return f;
4
+ const typeName = f._def.typeName;
5
+ if ('ZodOptional' === typeName || 'ZodNullable' === typeName || 'ZodDefault' === typeName) return unwrapZodField(f._def.innerType);
6
+ if ('ZodEffects' === typeName) {
7
+ if (f._def.schema) return unwrapZodField(f._def.schema);
8
+ }
9
+ return f;
10
+ }
11
+ function isMidsceneLocatorField(field) {
12
+ const actualField = unwrapZodField(field);
13
+ if (actualField._def?.typeName === 'ZodObject') {
14
+ const shape = actualField._def.shape?.();
15
+ if (shape) {
16
+ if ('midscene_location_field_flag' in shape) return true;
17
+ if ('prompt' in shape && shape.prompt) return true;
18
+ }
19
+ }
20
+ return false;
21
+ }
22
+ function getZodTypeName(field, locatorTypeDescription) {
23
+ const actualField = unwrapZodField(field);
24
+ const fieldTypeName = actualField._def?.typeName;
25
+ if ('ZodString' === fieldTypeName) return 'string';
26
+ if ('ZodNumber' === fieldTypeName) return 'number';
27
+ if ('ZodBoolean' === fieldTypeName) return 'boolean';
28
+ if ('ZodArray' === fieldTypeName) return 'array';
29
+ if ('ZodObject' === fieldTypeName) {
30
+ if (isMidsceneLocatorField(actualField)) return locatorTypeDescription || 'object';
31
+ return 'object';
32
+ }
33
+ if ('ZodEnum' === fieldTypeName) {
34
+ const values = actualField._def?.values?.map((option)=>String(`'${option}'`)).join(', ') ?? 'enum';
35
+ return `enum(${values})`;
36
+ }
37
+ if ('ZodUnion' === fieldTypeName) {
38
+ const options = actualField._def?.options;
39
+ if (options && options.length > 0) {
40
+ const types = options.map((opt)=>getZodTypeName(opt, locatorTypeDescription));
41
+ return types.join(' | ');
42
+ }
43
+ return 'union';
44
+ }
45
+ return 'unknown';
46
+ }
47
+ function getZodDescription(field) {
48
+ if ("description" in field) return field.description || null;
49
+ const actualField = unwrapZodField(field);
50
+ if ("description" in actualField) return actualField.description || null;
51
+ if (isMidsceneLocatorField(actualField)) return 'Location information for the target element';
52
+ return null;
53
+ }
54
+ export { getZodDescription, getZodTypeName, isMidsceneLocatorField, unwrapZodField };
@@ -0,0 +1,54 @@
1
+ function unwrapZodField(field) {
2
+ const f = field;
3
+ if (!f._def) return f;
4
+ const typeName = f._def.typeName;
5
+ if ('ZodOptional' === typeName || 'ZodNullable' === typeName || 'ZodDefault' === typeName) return unwrapZodField(f._def.innerType);
6
+ if ('ZodEffects' === typeName) {
7
+ if (f._def.schema) return unwrapZodField(f._def.schema);
8
+ }
9
+ return f;
10
+ }
11
+ function isMidsceneLocatorField(field) {
12
+ const actualField = unwrapZodField(field);
13
+ if (actualField._def?.typeName === 'ZodObject') {
14
+ const shape = actualField._def.shape?.();
15
+ if (shape) {
16
+ if ('midscene_location_field_flag' in shape) return true;
17
+ if ('prompt' in shape && shape.prompt) return true;
18
+ }
19
+ }
20
+ return false;
21
+ }
22
+ function getZodTypeName(field, locatorTypeDescription) {
23
+ const actualField = unwrapZodField(field);
24
+ const fieldTypeName = actualField._def?.typeName;
25
+ if ('ZodString' === fieldTypeName) return 'string';
26
+ if ('ZodNumber' === fieldTypeName) return 'number';
27
+ if ('ZodBoolean' === fieldTypeName) return 'boolean';
28
+ if ('ZodArray' === fieldTypeName) return 'array';
29
+ if ('ZodObject' === fieldTypeName) {
30
+ if (isMidsceneLocatorField(actualField)) return locatorTypeDescription || 'object';
31
+ return 'object';
32
+ }
33
+ if ('ZodEnum' === fieldTypeName) {
34
+ const values = actualField._def?.values?.map((option)=>String(`'${option}'`)).join(', ') ?? 'enum';
35
+ return `enum(${values})`;
36
+ }
37
+ if ('ZodUnion' === fieldTypeName) {
38
+ const options = actualField._def?.options;
39
+ if (options && options.length > 0) {
40
+ const types = options.map((opt)=>getZodTypeName(opt, locatorTypeDescription));
41
+ return types.join(' | ');
42
+ }
43
+ return 'union';
44
+ }
45
+ return 'unknown';
46
+ }
47
+ function getZodDescription(field) {
48
+ if ("description" in field) return field.description || null;
49
+ const actualField = unwrapZodField(field);
50
+ if ("description" in actualField) return actualField.description || null;
51
+ if (isMidsceneLocatorField(actualField)) return 'Location information for the target element';
52
+ return null;
53
+ }
54
+ export { getZodDescription, getZodTypeName, isMidsceneLocatorField, unwrapZodField };
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ IndexedDBManager: ()=>IndexedDBManager,
28
+ createCleanupFunction: ()=>createCleanupFunction,
29
+ withErrorHandling: ()=>withErrorHandling
30
+ });
31
+ function _define_property(obj, key, value) {
32
+ if (key in obj) Object.defineProperty(obj, key, {
33
+ value: value,
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true
37
+ });
38
+ else obj[key] = value;
39
+ return obj;
40
+ }
41
+ class IndexedDBManager {
42
+ initDB() {
43
+ return new Promise((resolve, reject)=>{
44
+ const request = indexedDB.open(this.dbName, this.version);
45
+ request.onerror = ()=>reject(request.error);
46
+ request.onsuccess = ()=>resolve(request.result);
47
+ request.onupgradeneeded = (event)=>{
48
+ const db = event.target.result;
49
+ this.storeConfigs.forEach(({ name, keyPath })=>{
50
+ if (!db.objectStoreNames.contains(name)) {
51
+ const store = db.createObjectStore(name, {
52
+ keyPath
53
+ });
54
+ store.createIndex('timestamp', 'timestamp', {
55
+ unique: false
56
+ });
57
+ }
58
+ });
59
+ };
60
+ });
61
+ }
62
+ async withTransaction(storeNames, mode, operation) {
63
+ const db = await this.dbPromise;
64
+ const transaction = db.transaction(storeNames, mode);
65
+ const stores = Array.isArray(storeNames) ? storeNames.map((name)=>transaction.objectStore(name)) : transaction.objectStore(storeNames);
66
+ return operation(stores);
67
+ }
68
+ promisifyRequest(request) {
69
+ return new Promise((resolve, reject)=>{
70
+ request.onsuccess = ()=>resolve(request.result);
71
+ request.onerror = ()=>reject(request.error);
72
+ });
73
+ }
74
+ async put(storeName, data) {
75
+ await this.withTransaction(storeName, 'readwrite', async (store)=>{
76
+ await this.promisifyRequest(store.put(data));
77
+ });
78
+ }
79
+ async get(storeName, key) {
80
+ return this.withTransaction(storeName, 'readonly', async (store)=>this.promisifyRequest(store.get(key)));
81
+ }
82
+ async getAll(storeName, sortByTimestamp = true) {
83
+ return this.withTransaction(storeName, 'readonly', async (store)=>{
84
+ const objectStore = store;
85
+ const results = sortByTimestamp ? await this.promisifyRequest(objectStore.index('timestamp').getAll()) : await this.promisifyRequest(objectStore.getAll());
86
+ return sortByTimestamp ? results.sort((a, b)=>a.timestamp - b.timestamp) : results;
87
+ });
88
+ }
89
+ async clear(storeName) {
90
+ await this.withTransaction(storeName, 'readwrite', async (store)=>{
91
+ await this.promisifyRequest(store.clear());
92
+ });
93
+ }
94
+ async delete(storeName, key) {
95
+ await this.withTransaction(storeName, 'readwrite', async (store)=>{
96
+ await this.promisifyRequest(store.delete(key));
97
+ });
98
+ }
99
+ async count(storeName) {
100
+ return this.withTransaction(storeName, 'readonly', async (store)=>this.promisifyRequest(store.count()));
101
+ }
102
+ getDBPromise() {
103
+ return this.dbPromise;
104
+ }
105
+ constructor(dbName, version, storeConfigs){
106
+ _define_property(this, "dbPromise", void 0);
107
+ _define_property(this, "dbName", void 0);
108
+ _define_property(this, "version", void 0);
109
+ _define_property(this, "storeConfigs", void 0);
110
+ this.dbName = dbName;
111
+ this.version = version;
112
+ this.storeConfigs = storeConfigs;
113
+ this.dbPromise = this.initDB();
114
+ }
115
+ }
116
+ const withErrorHandling = async (operation, errorMessage, defaultValue, onQuotaExceeded)=>{
117
+ try {
118
+ return await operation();
119
+ } catch (e) {
120
+ console.error(errorMessage, e);
121
+ if (e instanceof Error && 'QuotaExceededError' === e.name && onQuotaExceeded) {
122
+ console.log('Storage quota exceeded, running cleanup...');
123
+ await onQuotaExceeded();
124
+ }
125
+ return defaultValue;
126
+ }
127
+ };
128
+ const createCleanupFunction = (dbManager, storeName, maxItems)=>async ()=>{
129
+ try {
130
+ const results = await dbManager.getAll(storeName);
131
+ if (results.length > maxItems) {
132
+ const toDelete = results.sort((a, b)=>a.timestamp - b.timestamp).slice(0, results.length - maxItems);
133
+ await Promise.all(toDelete.map((item)=>dbManager.delete(storeName, item.id)));
134
+ }
135
+ } catch (e) {
136
+ console.error(`Failed to cleanup ${storeName}:`, e);
137
+ }
138
+ };
139
+ exports.IndexedDBManager = __webpack_exports__.IndexedDBManager;
140
+ exports.createCleanupFunction = __webpack_exports__.createCleanupFunction;
141
+ exports.withErrorHandling = __webpack_exports__.withErrorHandling;
142
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
143
+ "IndexedDBManager",
144
+ "createCleanupFunction",
145
+ "withErrorHandling"
146
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
147
+ Object.defineProperty(exports, '__esModule', {
148
+ value: true
149
+ });
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ IndexedDBManager: ()=>IndexedDBManager,
28
+ createCleanupFunction: ()=>createCleanupFunction,
29
+ withErrorHandling: ()=>withErrorHandling
30
+ });
31
+ function _define_property(obj, key, value) {
32
+ if (key in obj) Object.defineProperty(obj, key, {
33
+ value: value,
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true
37
+ });
38
+ else obj[key] = value;
39
+ return obj;
40
+ }
41
+ class IndexedDBManager {
42
+ initDB() {
43
+ return new Promise((resolve, reject)=>{
44
+ const request = indexedDB.open(this.dbName, this.version);
45
+ request.onerror = ()=>reject(request.error);
46
+ request.onsuccess = ()=>resolve(request.result);
47
+ request.onupgradeneeded = (event)=>{
48
+ const db = event.target.result;
49
+ this.storeConfigs.forEach(({ name, keyPath })=>{
50
+ if (!db.objectStoreNames.contains(name)) {
51
+ const store = db.createObjectStore(name, {
52
+ keyPath
53
+ });
54
+ store.createIndex('timestamp', 'timestamp', {
55
+ unique: false
56
+ });
57
+ }
58
+ });
59
+ };
60
+ });
61
+ }
62
+ async withTransaction(storeNames, mode, operation) {
63
+ const db = await this.dbPromise;
64
+ const transaction = db.transaction(storeNames, mode);
65
+ const stores = Array.isArray(storeNames) ? storeNames.map((name)=>transaction.objectStore(name)) : transaction.objectStore(storeNames);
66
+ return operation(stores);
67
+ }
68
+ promisifyRequest(request) {
69
+ return new Promise((resolve, reject)=>{
70
+ request.onsuccess = ()=>resolve(request.result);
71
+ request.onerror = ()=>reject(request.error);
72
+ });
73
+ }
74
+ async put(storeName, data) {
75
+ await this.withTransaction(storeName, 'readwrite', async (store)=>{
76
+ await this.promisifyRequest(store.put(data));
77
+ });
78
+ }
79
+ async get(storeName, key) {
80
+ return this.withTransaction(storeName, 'readonly', async (store)=>this.promisifyRequest(store.get(key)));
81
+ }
82
+ async getAll(storeName, sortByTimestamp = true) {
83
+ return this.withTransaction(storeName, 'readonly', async (store)=>{
84
+ const objectStore = store;
85
+ const results = sortByTimestamp ? await this.promisifyRequest(objectStore.index('timestamp').getAll()) : await this.promisifyRequest(objectStore.getAll());
86
+ return sortByTimestamp ? results.sort((a, b)=>a.timestamp - b.timestamp) : results;
87
+ });
88
+ }
89
+ async clear(storeName) {
90
+ await this.withTransaction(storeName, 'readwrite', async (store)=>{
91
+ await this.promisifyRequest(store.clear());
92
+ });
93
+ }
94
+ async delete(storeName, key) {
95
+ await this.withTransaction(storeName, 'readwrite', async (store)=>{
96
+ await this.promisifyRequest(store.delete(key));
97
+ });
98
+ }
99
+ async count(storeName) {
100
+ return this.withTransaction(storeName, 'readonly', async (store)=>this.promisifyRequest(store.count()));
101
+ }
102
+ getDBPromise() {
103
+ return this.dbPromise;
104
+ }
105
+ constructor(dbName, version, storeConfigs){
106
+ _define_property(this, "dbPromise", void 0);
107
+ _define_property(this, "dbName", void 0);
108
+ _define_property(this, "version", void 0);
109
+ _define_property(this, "storeConfigs", void 0);
110
+ this.dbName = dbName;
111
+ this.version = version;
112
+ this.storeConfigs = storeConfigs;
113
+ this.dbPromise = this.initDB();
114
+ }
115
+ }
116
+ const withErrorHandling = async (operation, errorMessage, defaultValue, onQuotaExceeded)=>{
117
+ try {
118
+ return await operation();
119
+ } catch (e) {
120
+ console.error(errorMessage, e);
121
+ if (e instanceof Error && 'QuotaExceededError' === e.name && onQuotaExceeded) {
122
+ console.log('Storage quota exceeded, running cleanup...');
123
+ await onQuotaExceeded();
124
+ }
125
+ return defaultValue;
126
+ }
127
+ };
128
+ const createCleanupFunction = (dbManager, storeName, maxItems)=>async ()=>{
129
+ try {
130
+ const results = await dbManager.getAll(storeName);
131
+ if (results.length > maxItems) {
132
+ const toDelete = results.sort((a, b)=>a.timestamp - b.timestamp).slice(0, results.length - maxItems);
133
+ await Promise.all(toDelete.map((item)=>dbManager.delete(storeName, item.id)));
134
+ }
135
+ } catch (e) {
136
+ console.error(`Failed to cleanup ${storeName}:`, e);
137
+ }
138
+ };
139
+ exports.IndexedDBManager = __webpack_exports__.IndexedDBManager;
140
+ exports.createCleanupFunction = __webpack_exports__.createCleanupFunction;
141
+ exports.withErrorHandling = __webpack_exports__.withErrorHandling;
142
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
143
+ "IndexedDBManager",
144
+ "createCleanupFunction",
145
+ "withErrorHandling"
146
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
147
+ Object.defineProperty(exports, '__esModule', {
148
+ value: true
149
+ });
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, definition)=>{
14
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
+ enumerable: true,
16
+ get: definition[key]
17
+ });
18
+ };
19
+ })();
20
+ (()=>{
21
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
22
+ })();
23
+ (()=>{
24
+ __webpack_require__.r = (exports1)=>{
25
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
26
+ value: 'Module'
27
+ });
28
+ Object.defineProperty(exports1, '__esModule', {
29
+ value: true
30
+ });
31
+ };
32
+ })();
33
+ var __webpack_exports__ = {};
34
+ __webpack_require__.r(__webpack_exports__);
35
+ __webpack_require__.d(__webpack_exports__, {
36
+ createCopyStaticPlugin: ()=>createCopyStaticPlugin,
37
+ createPlaygroundCopyPlugin: ()=>createPlaygroundCopyPlugin
38
+ });
39
+ const external_node_fs_namespaceObject = require("node:fs");
40
+ var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node_fs_namespaceObject);
41
+ const external_node_path_namespaceObject = require("node:path");
42
+ var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
43
+ const createCopyStaticPlugin = (options)=>({
44
+ name: options.pluginName || 'copy-static',
45
+ setup (api) {
46
+ api.onAfterBuild(async ()=>{
47
+ const { srcDir, destDir, faviconPath } = options;
48
+ const stat = await external_node_fs_default().promises.lstat(destDir).catch(()=>null);
49
+ if (stat?.isSymbolicLink()) await external_node_fs_default().promises.unlink(destDir);
50
+ await external_node_fs_default().promises.mkdir(destDir, {
51
+ recursive: true
52
+ });
53
+ await external_node_fs_default().promises.cp(srcDir, destDir, {
54
+ recursive: true
55
+ });
56
+ console.log(`Copied build artifacts from ${srcDir} to ${destDir}`);
57
+ if (faviconPath) {
58
+ const faviconDest = external_node_path_default().join(destDir, 'favicon.ico');
59
+ await external_node_fs_default().promises.copyFile(faviconPath, faviconDest);
60
+ console.log(`Copied favicon from ${faviconPath} to ${faviconDest}`);
61
+ }
62
+ });
63
+ }
64
+ });
65
+ const createPlaygroundCopyPlugin = (srcDir, destDir, pluginName, faviconSrc)=>createCopyStaticPlugin({
66
+ srcDir,
67
+ destDir,
68
+ faviconPath: faviconSrc,
69
+ pluginName
70
+ });
71
+ exports.createCopyStaticPlugin = __webpack_exports__.createCopyStaticPlugin;
72
+ exports.createPlaygroundCopyPlugin = __webpack_exports__.createPlaygroundCopyPlugin;
73
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
74
+ "createCopyStaticPlugin",
75
+ "createPlaygroundCopyPlugin"
76
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
77
+ Object.defineProperty(exports, '__esModule', {
78
+ value: true
79
+ });