lazycodex-ai 5.0.0-beta.9 → 5.0.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 (869) hide show
  1. package/README.ja.md +64 -69
  2. package/README.ko.md +65 -70
  3. package/README.md +108 -182
  4. package/README.ru.md +60 -68
  5. package/README.zh-cn.md +60 -69
  6. package/dist/cli/config-manager/parse-opencode-config-file.d.ts +2 -1
  7. package/dist/cli/config-manager/refresh-opencode-plugin-sandbox.d.ts +31 -0
  8. package/dist/cli/doctor/checks/browser-provider.d.ts +2 -0
  9. package/dist/cli/doctor/checks/index.d.ts +2 -0
  10. package/dist/cli/doctor/checks/latest-version.d.ts +11 -0
  11. package/dist/cli/doctor/checks/system-plugin.d.ts +4 -3
  12. package/dist/cli/doctor/checks/tui-plugin-config.d.ts +11 -0
  13. package/dist/cli/doctor/framework/constants.d.ts +5 -0
  14. package/dist/cli/doctor/framework/types.d.ts +2 -0
  15. package/dist/cli/fallback-lane-policy.d.ts +1 -0
  16. package/dist/cli/index.js +60340 -63161
  17. package/dist/cli/install-codex/install-codex-test-fixtures.d.ts +1 -1
  18. package/dist/cli/install-native/index.d.ts +12 -0
  19. package/dist/cli/install-native/legacy-omo-bin.d.ts +27 -0
  20. package/dist/cli/install-native/offer-native-setup.d.ts +31 -0
  21. package/dist/cli/install-native/omo-bin-test-fixtures.d.ts +35 -0
  22. package/dist/cli/install-native/plan.d.ts +21 -0
  23. package/dist/cli/install-native/repair-legacy-omo-bin.d.ts +26 -0
  24. package/dist/cli/install-native/run-native-install.d.ts +33 -0
  25. package/dist/cli/install-native/verify-omo-command.d.ts +22 -0
  26. package/dist/cli/install-native-dev/index.d.ts +4 -0
  27. package/dist/cli/native-dev-platform-flag.d.ts +5 -0
  28. package/dist/cli/native-edition-hint.d.ts +10 -0
  29. package/dist/cli/runtime-commands.d.ts +1 -1
  30. package/dist/cli/types.d.ts +3 -2
  31. package/dist/cli/worktree-sweep/classify.d.ts +16 -0
  32. package/dist/cli/worktree-sweep/format.d.ts +8 -0
  33. package/dist/cli/worktree-sweep/git.d.ts +19 -0
  34. package/dist/cli/worktree-sweep/index.d.ts +7 -0
  35. package/dist/cli/worktree-sweep/options.d.ts +2 -0
  36. package/dist/cli/worktree-sweep/parse-worktree-list.d.ts +8 -0
  37. package/dist/cli/worktree-sweep/sweep.d.ts +2 -0
  38. package/dist/cli/worktree-sweep/types.d.ts +65 -0
  39. package/dist/cli/worktree-sweep/worktree-sweep.d.ts +2 -0
  40. package/dist/cli-node/index.js +61667 -64465
  41. package/package.json +15 -14
  42. package/packages/git-bash-mcp/dist/cli.js +6 -1
  43. package/packages/lsp-daemon/dist/cli.js +1421 -960
  44. package/packages/lsp-daemon/dist/client.d.ts +10 -0
  45. package/packages/lsp-daemon/dist/client.js +956 -498
  46. package/packages/lsp-daemon/dist/daemon-client.d.ts +3 -0
  47. package/packages/lsp-daemon/dist/daemon-client.js +23 -3
  48. package/packages/lsp-daemon/dist/ensure-daemon.d.ts +6 -1
  49. package/packages/lsp-daemon/dist/ensure-daemon.js +27 -5
  50. package/packages/lsp-daemon/dist/index.js +860 -407
  51. package/packages/lsp-daemon/dist/ownership.js +2 -2
  52. package/packages/lsp-daemon/dist/proxy.js +3 -0
  53. package/packages/lsp-daemon/dist/version-reap.js +1 -1
  54. package/packages/lsp-daemon/package.json +5 -4
  55. package/packages/lsp-tools-mcp/dist/cli.js +764 -341
  56. package/packages/lsp-tools-mcp/dist/lsp/manager.js +274 -138
  57. package/packages/lsp-tools-mcp/dist/mcp.js +789 -368
  58. package/packages/lsp-tools-mcp/dist/request-context.js +12 -13
  59. package/packages/lsp-tools-mcp/dist/tools.js +719 -302
  60. package/packages/lsp-tools-mcp/package.json +5 -4
  61. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +4 -6
  62. package/packages/omo-codex/plugin/.mcp.json +0 -6
  63. package/packages/omo-codex/plugin/AGENTS.md +47 -0
  64. package/packages/omo-codex/plugin/README.md +6 -2
  65. package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +8504 -408
  66. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  67. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  68. package/packages/omo-codex/plugin/components/bootstrap/src/hook.ts +1 -0
  69. package/packages/omo-codex/plugin/components/bootstrap/src/setup.ts +7 -1
  70. package/packages/omo-codex/plugin/components/comment-checker/AGENTS.md +9 -0
  71. package/packages/omo-codex/plugin/components/comment-checker/biome.json +2 -2
  72. package/packages/omo-codex/plugin/components/comment-checker/dist/cli.js +2 -1
  73. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  74. package/packages/omo-codex/plugin/components/comment-checker/package.json +6 -5
  75. package/packages/omo-codex/plugin/components/comment-checker/src/apply-patch.ts +2 -8
  76. package/packages/omo-codex/plugin/components/comment-checker/src/core.ts +1 -2
  77. package/packages/omo-codex/plugin/components/comment-checker/src/request-extractor.ts +1 -1
  78. package/packages/omo-codex/plugin/components/comment-checker/src/runner.ts +1 -0
  79. package/packages/omo-codex/plugin/components/git-bash/AGENTS.md +1 -1
  80. package/packages/omo-codex/plugin/components/git-bash/dist/cli.js +1 -1
  81. package/packages/omo-codex/plugin/components/git-bash/dist/codex-hook.js +2 -1
  82. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  83. package/packages/omo-codex/plugin/components/git-bash/package.json +3 -4
  84. package/packages/omo-codex/plugin/components/git-bash/src/codex-hook.ts +2 -1
  85. package/packages/omo-codex/plugin/components/git-bash/test/codex-hook.test.ts +6 -7
  86. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/AGENTS.md +2 -2
  87. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/biome.json +2 -2
  88. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/directive.md +2 -0
  89. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/cli.js +36 -29
  90. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/codex-hook.js +32 -26
  91. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/types.d.ts +3 -0
  92. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  93. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +6 -5
  94. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/src/codex-hook.ts +32 -28
  95. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/src/types.ts +3 -0
  96. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/cli.test.ts +1 -1
  97. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/codex-hook.test.ts +134 -11
  98. package/packages/omo-codex/plugin/components/lcx/skills/lcx-contribute-bug-fix/SKILL.md +1 -1
  99. package/packages/omo-codex/plugin/components/lcx/skills/lcx-doctor/SKILL.md +7 -5
  100. package/packages/omo-codex/plugin/components/lcx/skills/lcx-report-bug/SKILL.md +5 -5
  101. package/packages/omo-codex/plugin/components/lsp/AGENTS.md +30 -15
  102. package/packages/omo-codex/plugin/components/lsp/biome.json +2 -2
  103. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +4 -4
  104. package/packages/omo-codex/plugin/components/lsp/dist/cli.js +977 -545
  105. package/packages/omo-codex/plugin/components/lsp/dist/daemon-cli-path.js +1 -1
  106. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  107. package/packages/omo-codex/plugin/components/lsp/package.json +6 -5
  108. package/packages/omo-codex/plugin/components/lsp/src/cli.ts +1 -1
  109. package/packages/omo-codex/plugin/components/lsp/src/codex-hook.ts +1 -1
  110. package/packages/omo-codex/plugin/components/lsp/src/daemon-cli-path.ts +1 -5
  111. package/packages/omo-codex/plugin/components/lsp/test/codex-hook-unavailable.test.ts +6 -7
  112. package/packages/omo-codex/plugin/components/lsp/test/codex-hook.test.ts +1 -2
  113. package/packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts +11 -1
  114. package/packages/omo-codex/plugin/components/rules/AGENTS.md +12 -0
  115. package/packages/omo-codex/plugin/components/rules/README.md +2 -0
  116. package/packages/omo-codex/plugin/components/rules/biome.json +2 -2
  117. package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-5.6.md +5 -1
  118. package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-6.md +127 -0
  119. package/packages/omo-codex/plugin/components/rules/dist/cli.js +103 -68
  120. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  121. package/packages/omo-codex/plugin/components/rules/package.json +8 -7
  122. package/packages/omo-codex/plugin/components/rules/src/config.ts +1 -2
  123. package/packages/omo-codex/plugin/components/rules/src/persistent-cache.ts +1 -2
  124. package/packages/omo-codex/plugin/components/rules/src/post-compact-budget.ts +27 -5
  125. package/packages/omo-codex/plugin/components/rules/src/rules-engine-factory.ts +1 -4
  126. package/packages/omo-codex/plugin/components/rules/src/static-injection.ts +4 -9
  127. package/packages/omo-codex/plugin/components/rules/test/bundled-rules.test.ts +1 -2
  128. package/packages/omo-codex/plugin/components/rules/test/dynamic-target-fingerprints.test.ts +1 -2
  129. package/packages/omo-codex/plugin/components/rules/test/engine.test.ts +7 -4
  130. package/packages/omo-codex/plugin/components/rules/test/finder.test.ts +2 -3
  131. package/packages/omo-codex/plugin/components/rules/test/formatter.test.ts +2 -3
  132. package/packages/omo-codex/plugin/components/rules/test/hephaestus-model-variant.test.ts +38 -3
  133. package/packages/omo-codex/plugin/components/rules/test/matcher.test.ts +2 -3
  134. package/packages/omo-codex/plugin/components/rules/test/package-smoke.test.ts +1 -1
  135. package/packages/omo-codex/plugin/components/rules/test/parser.test.ts +1 -2
  136. package/packages/omo-codex/plugin/components/rules/test/post-compact-budget.test.ts +29 -6
  137. package/packages/omo-codex/plugin/components/rules/test/rules-engine-consumption.test.ts +3 -6
  138. package/packages/omo-codex/plugin/components/rules/test/scanner.test.ts +1 -2
  139. package/packages/omo-codex/plugin/components/rules/test/sources.test.ts +2 -5
  140. package/packages/omo-codex/plugin/components/rules/test/windows-git-bash-bundled-rule.test.ts +1 -2
  141. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  142. package/packages/omo-codex/plugin/components/teammode/package.json +6 -5
  143. package/packages/omo-codex/plugin/components/teammode/test/thread-title-hook.test.ts +1 -1
  144. package/packages/omo-codex/plugin/components/telemetry/AGENTS.md +8 -0
  145. package/packages/omo-codex/plugin/components/telemetry/biome.json +2 -2
  146. package/packages/omo-codex/plugin/components/telemetry/dist/cli.js +5328 -1382
  147. package/packages/omo-codex/plugin/components/telemetry/dist/posthog.js +5524 -1579
  148. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  149. package/packages/omo-codex/plugin/components/telemetry/package.json +6 -5
  150. package/packages/omo-codex/plugin/components/telemetry/src/codex-hook.ts +1 -4
  151. package/packages/omo-codex/plugin/components/telemetry/src/posthog.ts +4 -14
  152. package/packages/omo-codex/plugin/components/telemetry/src/product-identity.ts +1 -1
  153. package/packages/omo-codex/plugin/components/telemetry/test/diagnostics.test.ts +2 -5
  154. package/packages/omo-codex/plugin/components/ultrawork/AGENTS.md +10 -4
  155. package/packages/omo-codex/plugin/components/ultrawork/README.md +3 -1
  156. package/packages/omo-codex/plugin/components/ultrawork/agents/explorer.toml +1 -1
  157. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-clone-fidelity-reviewer.toml +1 -1
  158. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-code-reviewer.toml +1 -1
  159. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-gate-reviewer.toml +1 -1
  160. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-qa-executor.toml +1 -1
  161. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-high.toml +1 -1
  162. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-low.toml +1 -1
  163. package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-medium.toml +1 -1
  164. package/packages/omo-codex/plugin/components/ultrawork/agents/librarian.toml +1 -1
  165. package/packages/omo-codex/plugin/components/ultrawork/agents/metis.toml +1 -1
  166. package/packages/omo-codex/plugin/components/ultrawork/agents/momus.toml +1 -1
  167. package/packages/omo-codex/plugin/components/ultrawork/agents/plan.toml +20 -7
  168. package/packages/omo-codex/plugin/components/ultrawork/biome.json +2 -2
  169. package/packages/omo-codex/plugin/components/ultrawork/dist/cli.js +478 -4
  170. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  171. package/packages/omo-codex/plugin/components/ultrawork/package.json +6 -6
  172. package/packages/omo-codex/plugin/components/ultrawork/scripts/sync-directive.mjs +30 -14
  173. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +9 -10
  174. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +17 -13
  175. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-clear.md +5 -6
  176. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-unclear.md +4 -4
  177. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/scripts/plan-templates.mjs +180 -0
  178. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/scripts/scaffold-plan.mjs +3 -153
  179. package/packages/omo-codex/plugin/components/ultrawork/src/directive-content.ts +4 -0
  180. package/packages/omo-codex/plugin/components/ultrawork/src/directive.ts +5 -2
  181. package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook-trigger-policy.test.ts +9 -1
  182. package/packages/omo-codex/plugin/components/ultrawork/test/directive-source.test.ts +14 -8
  183. package/packages/omo-codex/plugin/components/ultrawork/test/package-smoke.test.ts +12 -1
  184. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/AGENTS.md +4 -4
  185. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/NOTICE +1 -1
  186. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/README.md +6 -6
  187. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/biome.json +2 -2
  188. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/directive.md +13 -13
  189. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/dist/cli.js +16 -16
  190. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +16 -0
  191. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/package.json +13 -12
  192. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/boulder-reader.ts +1 -1
  193. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/cli.ts +1 -1
  194. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/codex-hook.ts +4 -4
  195. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/directive.ts +1 -1
  196. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/index.ts +1 -1
  197. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/types.ts +1 -1
  198. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/boulder-reader.test.ts +3 -3
  199. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/cli.test.ts +4 -8
  200. package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/codex-hook.test.ts +22 -6
  201. package/packages/omo-codex/plugin/components/ulw-loop/AGENTS.md +19 -0
  202. package/packages/omo-codex/plugin/components/ulw-loop/CHANGELOG.md +17 -1
  203. package/packages/omo-codex/plugin/components/ulw-loop/README.md +12 -1
  204. package/packages/omo-codex/plugin/components/ulw-loop/biome.json +2 -2
  205. package/packages/omo-codex/plugin/components/ulw-loop/directive.md +102 -107
  206. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-codex-validation.d.ts +18 -0
  207. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-codex-validation.js +30 -0
  208. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-continuation.js +10 -4
  209. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-reconciliation.d.ts +2 -5
  210. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-reconciliation.js +5 -78
  211. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-template.d.ts +12 -0
  212. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint-template.js +114 -0
  213. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint.d.ts +7 -1
  214. package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint.js +57 -46
  215. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-arg-parser.js +2 -2
  216. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-commands.js +21 -8
  217. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.d.ts +2 -1
  218. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-output.js +12 -1
  219. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-subcommands.d.ts +1 -1
  220. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-subcommands.js +40 -37
  221. package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +2205 -737
  222. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.d.ts +2 -0
  223. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.js +28 -8
  224. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-snapshot.d.ts +8 -5
  225. package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-snapshot.js +35 -23
  226. package/packages/omo-codex/plugin/components/ulw-loop/dist/constants.d.ts +1 -0
  227. package/packages/omo-codex/plugin/components/ulw-loop/dist/constants.js +1 -0
  228. package/packages/omo-codex/plugin/components/ulw-loop/dist/domain-types.d.ts +25 -9
  229. package/packages/omo-codex/plugin/components/ulw-loop/dist/driver-objective-ack.d.ts +4 -0
  230. package/packages/omo-codex/plugin/components/ulw-loop/dist/driver-objective-ack.js +18 -0
  231. package/packages/omo-codex/plugin/components/ulw-loop/dist/evidence-artifacts.d.ts +1 -0
  232. package/packages/omo-codex/plugin/components/ulw-loop/dist/evidence-artifacts.js +37 -0
  233. package/packages/omo-codex/plugin/components/ulw-loop/dist/evidence.d.ts +1 -0
  234. package/packages/omo-codex/plugin/components/ulw-loop/dist/evidence.js +24 -12
  235. package/packages/omo-codex/plugin/components/ulw-loop/dist/ledger.d.ts +4 -0
  236. package/packages/omo-codex/plugin/components/ulw-loop/dist/ledger.js +39 -0
  237. package/packages/omo-codex/plugin/components/ulw-loop/dist/paths.d.ts +2 -0
  238. package/packages/omo-codex/plugin/components/ulw-loop/dist/paths.js +19 -4
  239. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-commit.d.ts +19 -0
  240. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-commit.js +108 -0
  241. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-crud.d.ts +6 -2
  242. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-crud.js +54 -25
  243. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-goal-factory.d.ts +10 -3
  244. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-goal-factory.js +38 -31
  245. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-io.d.ts +10 -7
  246. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-io.js +121 -100
  247. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-log.d.ts +16 -0
  248. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-log.js +115 -0
  249. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-missing-recovery.d.ts +18 -0
  250. package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-missing-recovery.js +41 -0
  251. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-aggregate.d.ts +7 -0
  252. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-aggregate.js +9 -0
  253. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-artifacts.d.ts +12 -0
  254. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-artifacts.js +104 -0
  255. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-fields.d.ts +13 -1
  256. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-fields.js +65 -9
  257. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-verdicts.js +5 -1
  258. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate.d.ts +4 -2
  259. package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate.js +72 -117
  260. package/packages/omo-codex/plugin/components/ulw-loop/dist/review-blockers.d.ts +2 -0
  261. package/packages/omo-codex/plugin/components/ulw-loop/dist/review-blockers.js +25 -13
  262. package/packages/omo-codex/plugin/components/ulw-loop/dist/sdk/factory.d.ts +2 -0
  263. package/packages/omo-codex/plugin/components/ulw-loop/dist/sdk/factory.js +157 -0
  264. package/packages/omo-codex/plugin/components/ulw-loop/dist/sdk/manifest.d.ts +381 -0
  265. package/packages/omo-codex/plugin/components/ulw-loop/dist/sdk/manifest.js +127 -0
  266. package/packages/omo-codex/plugin/components/ulw-loop/dist/sdk/types.d.ts +130 -0
  267. package/packages/omo-codex/plugin/components/ulw-loop/dist/sdk/types.js +1 -0
  268. package/packages/omo-codex/plugin/components/ulw-loop/dist/sdk.d.ts +3 -0
  269. package/packages/omo-codex/plugin/components/ulw-loop/dist/sdk.js +3 -0
  270. package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-budget-io.d.ts +5 -0
  271. package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-budget-io.js +67 -0
  272. package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-guard.d.ts +7 -1
  273. package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-guard.js +190 -59
  274. package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-role-guard.d.ts +2 -0
  275. package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-role-guard.js +22 -0
  276. package/packages/omo-codex/plugin/components/ulw-loop/dist/state-lock.d.ts +19 -0
  277. package/packages/omo-codex/plugin/components/ulw-loop/dist/state-lock.js +259 -0
  278. package/packages/omo-codex/plugin/components/ulw-loop/dist/status-next-actions.d.ts +7 -0
  279. package/packages/omo-codex/plugin/components/ulw-loop/dist/status-next-actions.js +41 -0
  280. package/packages/omo-codex/plugin/components/ulw-loop/dist/steering-batch.js +4 -4
  281. package/packages/omo-codex/plugin/components/ulw-loop/dist/steering-mutations.d.ts +3 -2
  282. package/packages/omo-codex/plugin/components/ulw-loop/dist/steering-mutations.js +4 -4
  283. package/packages/omo-codex/plugin/components/ulw-loop/dist/steering-types.d.ts +9 -1
  284. package/packages/omo-codex/plugin/components/ulw-loop/dist/steering.d.ts +3 -2
  285. package/packages/omo-codex/plugin/components/ulw-loop/dist/steering.js +11 -11
  286. package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.js +28 -23
  287. package/packages/omo-codex/plugin/components/ulw-loop/dist/success-criteria-input.d.ts +9 -0
  288. package/packages/omo-codex/plugin/components/ulw-loop/dist/success-criteria-input.js +41 -0
  289. package/packages/omo-codex/plugin/components/ulw-loop/dist/surface.d.ts +21 -0
  290. package/packages/omo-codex/plugin/components/ulw-loop/dist/surface.js +100 -0
  291. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +18 -5
  292. package/packages/omo-codex/plugin/components/ulw-loop/package.json +7 -6
  293. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +7 -2
  294. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/define-goal.md +2 -3
  295. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +34 -11
  296. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-codex-validation.ts +52 -0
  297. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-continuation.ts +8 -6
  298. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-reconciliation.ts +5 -98
  299. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint-template.ts +134 -0
  300. package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint.ts +59 -77
  301. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-arg-parser.ts +10 -4
  302. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-commands.ts +24 -8
  303. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-output.ts +14 -1
  304. package/packages/omo-codex/plugin/components/ulw-loop/src/cli-subcommands.ts +52 -46
  305. package/packages/omo-codex/plugin/components/ulw-loop/src/cli.ts +8 -6
  306. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-instruction.ts +35 -7
  307. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-snapshot.ts +51 -33
  308. package/packages/omo-codex/plugin/components/ulw-loop/src/codex-hook.ts +3 -1
  309. package/packages/omo-codex/plugin/components/ulw-loop/src/constants.ts +1 -0
  310. package/packages/omo-codex/plugin/components/ulw-loop/src/domain-types.ts +27 -9
  311. package/packages/omo-codex/plugin/components/ulw-loop/src/driver-objective-ack.ts +20 -0
  312. package/packages/omo-codex/plugin/components/ulw-loop/src/evidence-artifacts.ts +45 -0
  313. package/packages/omo-codex/plugin/components/ulw-loop/src/evidence.ts +23 -16
  314. package/packages/omo-codex/plugin/components/ulw-loop/src/ledger.ts +38 -0
  315. package/packages/omo-codex/plugin/components/ulw-loop/src/paths.ts +32 -4
  316. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-commit.ts +132 -0
  317. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-crud.ts +67 -54
  318. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-goal-factory.ts +63 -31
  319. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-io.ts +140 -119
  320. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-log.ts +112 -0
  321. package/packages/omo-codex/plugin/components/ulw-loop/src/plan-missing-recovery.ts +61 -0
  322. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate-aggregate.ts +11 -0
  323. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate-artifacts.ts +123 -0
  324. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate-fields.ts +71 -15
  325. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate-verdicts.ts +6 -1
  326. package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate.ts +92 -136
  327. package/packages/omo-codex/plugin/components/ulw-loop/src/review-blockers.ts +38 -13
  328. package/packages/omo-codex/plugin/components/ulw-loop/src/sdk/factory.ts +218 -0
  329. package/packages/omo-codex/plugin/components/ulw-loop/src/sdk/manifest.ts +156 -0
  330. package/packages/omo-codex/plugin/components/ulw-loop/src/sdk/types.ts +143 -0
  331. package/packages/omo-codex/plugin/components/ulw-loop/src/sdk.ts +3 -0
  332. package/packages/omo-codex/plugin/components/ulw-loop/src/spawn-budget-io.ts +59 -0
  333. package/packages/omo-codex/plugin/components/ulw-loop/src/spawn-guard.ts +201 -52
  334. package/packages/omo-codex/plugin/components/ulw-loop/src/spawn-role-guard.ts +22 -0
  335. package/packages/omo-codex/plugin/components/ulw-loop/src/state-lock.ts +257 -0
  336. package/packages/omo-codex/plugin/components/ulw-loop/src/status-next-actions.ts +45 -0
  337. package/packages/omo-codex/plugin/components/ulw-loop/src/steering-batch.ts +4 -4
  338. package/packages/omo-codex/plugin/components/ulw-loop/src/steering-mutations.ts +5 -4
  339. package/packages/omo-codex/plugin/components/ulw-loop/src/steering-types.ts +13 -1
  340. package/packages/omo-codex/plugin/components/ulw-loop/src/steering.ts +12 -10
  341. package/packages/omo-codex/plugin/components/ulw-loop/src/stop-resume-hook.ts +27 -22
  342. package/packages/omo-codex/plugin/components/ulw-loop/src/success-criteria-input.ts +56 -0
  343. package/packages/omo-codex/plugin/components/ulw-loop/src/surface.ts +133 -0
  344. package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-final.test.ts +131 -82
  345. package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint-template.test.ts +147 -0
  346. package/packages/omo-codex/plugin/components/ulw-loop/test/checkpoint.test.ts +16 -22
  347. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-checkpoint-continuation.test.ts +4 -2
  348. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-checkpoint.test.ts +31 -2
  349. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-commands.test.ts +2 -0
  350. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-complete-goals.test.ts +3 -1
  351. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-create-goals.test.ts +35 -8
  352. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-entrypoint.test.ts +38 -4
  353. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-json-errors.test.ts +27 -0
  354. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-scope-required.test.ts +144 -0
  355. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-status-next-actions.test.ts +185 -0
  356. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-steering-batch.test.ts +8 -3
  357. package/packages/omo-codex/plugin/components/ulw-loop/test/cli-validation-batch.test.ts +6 -0
  358. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-instruction.test.ts +35 -0
  359. package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-snapshot.test.ts +88 -11
  360. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/barrier.ts +13 -0
  361. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/cli-session.ts +4 -0
  362. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/commit-child.ts +65 -0
  363. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/commit-cli-qa.mjs +76 -0
  364. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/commit-crash.ts +23 -0
  365. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/commit-mutations.mjs +58 -0
  366. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/commit-writer.ts +65 -0
  367. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/lease-clock.ts +23 -0
  368. package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/quality-gate-builder.ts +9 -4
  369. package/packages/omo-codex/plugin/components/ulw-loop/test/guided-recovery.test.ts +67 -0
  370. package/packages/omo-codex/plugin/components/ulw-loop/test/package-smoke.test.ts +3 -2
  371. package/packages/omo-codex/plugin/components/ulw-loop/test/paths.test.ts +9 -0
  372. package/packages/omo-codex/plugin/components/ulw-loop/test/plan-commit-log.test.ts +252 -0
  373. package/packages/omo-codex/plugin/components/ulw-loop/test/plan-commit-recovery.test.ts +190 -0
  374. package/packages/omo-codex/plugin/components/ulw-loop/test/plan-io-cross-process.test.ts +106 -0
  375. package/packages/omo-codex/plugin/components/ulw-loop/test/plan-io.test.ts +74 -25
  376. package/packages/omo-codex/plugin/components/ulw-loop/test/plan-log-legacy-projection.test.ts +228 -0
  377. package/packages/omo-codex/plugin/components/ulw-loop/test/plan-log-newest.test.ts +72 -0
  378. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-aggregate-basics.test.ts +258 -0
  379. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-cap-and-dedupe.test.ts +22 -0
  380. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-fields-messages.test.ts +98 -0
  381. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-lazycodex-surface.test.ts +93 -0
  382. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-poisoning-cascades.test.ts +97 -0
  383. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-roles.test.ts +51 -2
  384. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-senpi-surface.test.ts +131 -0
  385. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate-single-report.test.ts +241 -0
  386. package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate.test.ts +58 -3
  387. package/packages/omo-codex/plugin/components/ulw-loop/test/review-blockers.test.ts +9 -7
  388. package/packages/omo-codex/plugin/components/ulw-loop/test/sdk-completed-plan.test.ts +43 -0
  389. package/packages/omo-codex/plugin/components/ulw-loop/test/sdk-contract.test.ts +137 -0
  390. package/packages/omo-codex/plugin/components/ulw-loop/test/sdk-driver-states.test.ts +174 -0
  391. package/packages/omo-codex/plugin/components/ulw-loop/test/sdk-dx.test.ts +219 -0
  392. package/packages/omo-codex/plugin/components/ulw-loop/test/sdk-session-context.test.ts +169 -0
  393. package/packages/omo-codex/plugin/components/ulw-loop/test/spawn-guard-native-reviewer.test.ts +207 -0
  394. package/packages/omo-codex/plugin/components/ulw-loop/test/spawn-guard.test.ts +452 -7
  395. package/packages/omo-codex/plugin/components/ulw-loop/test/spawn-role-matrix.test.ts +113 -0
  396. package/packages/omo-codex/plugin/components/ulw-loop/test/state-lock.test.ts +310 -0
  397. package/packages/omo-codex/plugin/components/ulw-loop/test/status-next-actions-surface.test.ts +133 -0
  398. package/packages/omo-codex/plugin/components/ulw-loop/test/steering-batch.test.ts +12 -12
  399. package/packages/omo-codex/plugin/components/ulw-loop/test/steering.test.ts +12 -6
  400. package/packages/omo-codex/plugin/components/ulw-loop/test/stop-resume-hook.test.ts +1 -1
  401. package/packages/omo-codex/plugin/components/ulw-loop/test/surface.test.ts +113 -0
  402. package/packages/omo-codex/plugin/components/ulw-loop/test/ultrawork-directive.test.ts +9 -3
  403. package/packages/omo-codex/plugin/components/ulw-loop/vitest.config.ts +1 -0
  404. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  405. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  406. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  407. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  408. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  409. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  410. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  411. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +18 -0
  412. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  413. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  414. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  415. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  416. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  417. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  418. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  419. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +17 -0
  420. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  421. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  422. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  423. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  424. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  425. package/packages/omo-codex/plugin/model-catalog.json +16 -7
  426. package/packages/omo-codex/plugin/package-lock.json +992 -681
  427. package/packages/omo-codex/plugin/package.json +6 -3
  428. package/packages/omo-codex/plugin/scripts/AGENTS.md +39 -0
  429. package/packages/omo-codex/plugin/scripts/auto-update-plan.mjs +1 -2
  430. package/packages/omo-codex/plugin/scripts/auto-update.mjs +0 -9
  431. package/packages/omo-codex/plugin/scripts/canonical-ultrawork-directive.mjs +17 -0
  432. package/packages/omo-codex/plugin/scripts/hook-status-message.mjs +0 -1
  433. package/packages/omo-codex/plugin/scripts/materialize-shared-upstreams.mjs +8 -2
  434. package/packages/omo-codex/plugin/scripts/migrate-codex-config/catalog.mjs +16 -7
  435. package/packages/omo-codex/plugin/scripts/migrate-codex-config/multi-agent-v2-guard.mjs +8 -4
  436. package/packages/omo-codex/plugin/scripts/migrate-codex-config/subagent-limit-guard.mjs +19 -90
  437. package/packages/omo-codex/plugin/scripts/migrate-codex-config/toml-section-editor.mjs +1 -1
  438. package/packages/omo-codex/plugin/scripts/sync-skills.d.mts +4 -0
  439. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +114 -67
  440. package/packages/omo-codex/plugin/shared/package.json +3 -4
  441. package/packages/omo-codex/plugin/shared/src/config-loader.ts +2 -102
  442. package/packages/omo-codex/plugin/shared/src/config-migration.ts +0 -1
  443. package/packages/omo-codex/plugin/shared/test/config-loader.test.ts +41 -130
  444. package/packages/omo-codex/plugin/skills/ast-grep/AGENTS.md +51 -0
  445. package/packages/omo-codex/plugin/skills/ast-grep/SKILL.md +13 -1
  446. package/packages/omo-codex/plugin/skills/browser/ATTRIBUTION.md +37 -0
  447. package/packages/omo-codex/plugin/skills/browser/SKILL.md +109 -0
  448. package/packages/omo-codex/plugin/skills/browser/agents/openai.yaml +2 -0
  449. package/packages/omo-codex/plugin/skills/browser/references/commands.md +105 -0
  450. package/packages/omo-codex/plugin/skills/browser/references/install.md +97 -0
  451. package/packages/omo-codex/plugin/skills/browser/references/owned-engine/README.md +62 -0
  452. package/packages/omo-codex/plugin/skills/browser/references/owned-engine/frames-and-humans.md +52 -0
  453. package/packages/omo-codex/plugin/skills/browser/references/owned-engine/ladder.md +61 -0
  454. package/packages/omo-codex/plugin/skills/browser/references/owned-engine/network.md +62 -0
  455. package/packages/omo-codex/plugin/skills/browser/references/recipes/1password.md +61 -0
  456. package/packages/omo-codex/plugin/skills/browser/references/remote.md +25 -0
  457. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/index.js +1534 -0
  458. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +9 -0
  459. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/page-bundle.js +1395 -0
  460. package/packages/omo-codex/plugin/skills/browser/scripts/browser-doctor.mjs +57 -0
  461. package/packages/omo-codex/plugin/skills/browser/scripts/browser-install.mjs +50 -0
  462. package/packages/omo-codex/plugin/skills/browser/scripts/omowright.mjs +25 -0
  463. package/packages/omo-codex/plugin/skills/coding-agent-sessions/AGENTS.md +62 -0
  464. package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +1 -1
  465. package/packages/omo-codex/plugin/skills/data-scientist/SKILL.md +99 -239
  466. package/packages/omo-codex/plugin/skills/data-scientist/references/execution-surfaces.md +91 -0
  467. package/packages/omo-codex/plugin/skills/data-scientist/references/placement.md +74 -0
  468. package/packages/omo-codex/plugin/skills/data-scientist/references/polars-lane.md +95 -0
  469. package/packages/omo-codex/plugin/skills/data-scientist/references/uv-setup.md +1 -1
  470. package/packages/omo-codex/plugin/skills/data-scientist/references/visualization.md +64 -0
  471. package/packages/omo-codex/plugin/skills/data-scientist/scripts/ensure-js-deps.sh +28 -0
  472. package/packages/omo-codex/plugin/skills/data-scientist/scripts/ensure-py-deps.sh +37 -0
  473. package/packages/omo-codex/plugin/skills/debugging/SKILL.md +5 -3
  474. package/packages/omo-codex/plugin/skills/debugging/references/methodology/00-setup.md +12 -0
  475. package/packages/omo-codex/plugin/skills/debugging/references/methodology/02-investigate.md +26 -5
  476. package/packages/omo-codex/plugin/skills/debugging/references/methodology/06-fix.md +3 -3
  477. package/packages/omo-codex/plugin/skills/debugging/references/methodology/08-qa.md +1 -1
  478. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/go.md +15 -1
  479. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/native-binary.md +38 -0
  480. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/node.md +25 -0
  481. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/python.md +13 -0
  482. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/rust.md +41 -0
  483. package/packages/omo-codex/plugin/skills/debugging/references/scripts/dap.mjs +267 -0
  484. package/packages/omo-codex/plugin/skills/debugging/references/scripts/fixture-adapter.mjs +59 -0
  485. package/packages/omo-codex/plugin/skills/debugging/references/tools/browser-qa.md +104 -0
  486. package/packages/omo-codex/plugin/skills/debugging/references/tools/dap.md +103 -0
  487. package/packages/omo-codex/plugin/skills/debugging/references/tools/frida.md +193 -0
  488. package/packages/omo-codex/plugin/skills/frontend/ATTRIBUTION.md +10 -0
  489. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +8 -3
  490. package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +13 -4
  491. package/packages/omo-codex/plugin/skills/frontend/references/design/_INDEX.md +1 -0
  492. package/packages/omo-codex/plugin/skills/frontend/references/design/ambience-skill.md +146 -0
  493. package/packages/omo-codex/plugin/skills/frontend/references/design/aside.md +1 -1
  494. package/packages/omo-codex/plugin/skills/frontend/references/design/clone-from-url.md +1 -1
  495. package/packages/omo-codex/plugin/skills/frontend/references/design/design-system-architecture.md +30 -6
  496. package/packages/omo-codex/plugin/skills/frontend/references/design/interaction-skill.md +19 -5
  497. package/packages/omo-codex/plugin/skills/frontend/references/design/print-paged-media.md +76 -0
  498. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/README.md +1 -1
  499. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-a-direction.md +1 -1
  500. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-b-execution.md +11 -11
  501. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-d-memory.md +3 -3
  502. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/orchestration.md +1 -1
  503. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/routing.md +5 -5
  504. package/packages/omo-codex/plugin/skills/frontend/references/perfection/README.md +1 -0
  505. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/lighthouse-audit.py +2 -2
  506. package/packages/omo-codex/plugin/skills/git-master/SKILL.md +1 -1
  507. package/packages/omo-codex/plugin/skills/init-deep/SKILL.md +20 -18
  508. package/packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/SKILL.md +1 -1
  509. package/packages/omo-codex/plugin/skills/lcx-doctor/SKILL.md +7 -5
  510. package/packages/omo-codex/plugin/skills/lcx-report-bug/SKILL.md +5 -5
  511. package/packages/omo-codex/plugin/skills/lsp-setup/SKILL.md +1 -1
  512. package/packages/omo-codex/plugin/skills/programming/SKILL.md +12 -18
  513. package/packages/omo-codex/plugin/skills/programming/references/rust/README.md +43 -15
  514. package/packages/omo-codex/plugin/skills/programming/references/rust/api-design.md +81 -0
  515. package/packages/omo-codex/plugin/skills/programming/references/rust/async-tokio.md +60 -28
  516. package/packages/omo-codex/plugin/skills/programming/references/rust/axum-stack.md +1 -13
  517. package/packages/omo-codex/plugin/skills/programming/references/rust/cargo-strict.md +44 -8
  518. package/packages/omo-codex/plugin/skills/programming/references/rust/clap-stack.md +8 -3
  519. package/packages/omo-codex/plugin/skills/programming/references/rust/concurrency.md +66 -52
  520. package/packages/omo-codex/plugin/skills/programming/references/rust/libraries.md +35 -25
  521. package/packages/omo-codex/plugin/skills/programming/references/rust/macros.md +63 -0
  522. package/packages/omo-codex/plugin/skills/programming/references/rust/one-liners.md +5 -3
  523. package/packages/omo-codex/plugin/skills/programming/references/rust/proptest-insta.md +8 -0
  524. package/packages/omo-codex/plugin/skills/programming/references/rust/type-state.md +50 -12
  525. package/packages/omo-codex/plugin/skills/programming/references/rust/unsafe-discipline.md +34 -6
  526. package/packages/omo-codex/plugin/skills/programming/references/rust/zero-cost-safety.md +62 -52
  527. package/packages/omo-codex/plugin/skills/programming/references/rust-ub/miri-sanitizers-loom.md +1 -1
  528. package/packages/omo-codex/plugin/skills/programming/references/rust-ub/ub-taxonomy.md +6 -3
  529. package/packages/omo-codex/plugin/skills/programming/scripts/rust/check-no-excuse-rules.sh +86 -75
  530. package/packages/omo-codex/plugin/skills/programming/scripts/rust/new-project.py +31 -28
  531. package/packages/omo-codex/plugin/skills/refactor/SKILL.md +11 -9
  532. package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +11 -9
  533. package/packages/omo-codex/plugin/skills/review-work/SKILL.md +116 -424
  534. package/packages/omo-codex/plugin/skills/ultimate-browsing/ATTRIBUTION.md +1 -82
  535. package/packages/omo-codex/plugin/skills/ultimate-browsing/SKILL.md +40 -28
  536. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/AGENTS.md +2 -1
  537. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/templates/package.json +2 -2
  538. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/templates/playwright_mobile_chrome.js +5 -2
  539. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/templates/playwright_real_chrome.js +8 -6
  540. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/test_playwright_stealth.py +86 -0
  541. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/tests/test_playwright_templates.py +4 -7
  542. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +34 -111
  543. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/README.md +14 -7
  544. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/playwright.md +22 -36
  545. package/packages/omo-codex/plugin/skills/ultimate-browsing/scripts/extract_cookies.py +3 -3
  546. package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +102 -107
  547. package/packages/omo-codex/plugin/skills/{start-work → ulw-execute}/SKILL.md +38 -39
  548. package/packages/omo-codex/plugin/skills/ulw-execute/agents/openai.yaml +2 -0
  549. package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +31 -2
  550. package/packages/omo-codex/plugin/skills/ulw-loop/references/define-goal.md +2 -3
  551. package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +34 -11
  552. package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +9 -10
  553. package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +17 -13
  554. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-clear.md +5 -6
  555. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-unclear.md +4 -4
  556. package/packages/omo-codex/plugin/skills/ulw-plan/scripts/plan-templates.mjs +180 -0
  557. package/packages/omo-codex/plugin/skills/ulw-plan/scripts/scaffold-plan.mjs +3 -153
  558. package/packages/omo-codex/plugin/skills/ulw-research/AGENTS.md +63 -0
  559. package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +52 -33
  560. package/packages/omo-codex/plugin/skills/ulw-research/references/deliverable-phase.md +187 -0
  561. package/packages/omo-codex/plugin/skills/ulw-research/references/report-gates.md +66 -0
  562. package/packages/omo-codex/plugin/skills/ulw-research/scripts/cli-support.mjs +102 -0
  563. package/packages/omo-codex/plugin/skills/ulw-research/scripts/contracts.mjs +162 -0
  564. package/packages/omo-codex/plugin/skills/ulw-research/scripts/css-lite.mjs +204 -0
  565. package/packages/omo-codex/plugin/skills/ulw-research/scripts/design-spec.mjs +161 -0
  566. package/packages/omo-codex/plugin/skills/ulw-research/scripts/entities.mjs +39 -0
  567. package/packages/omo-codex/plugin/skills/ulw-research/scripts/entry-guard.mjs +21 -0
  568. package/packages/omo-codex/plugin/skills/ulw-research/scripts/format-extract-css.mjs +122 -0
  569. package/packages/omo-codex/plugin/skills/ulw-research/scripts/format-extract.mjs +229 -0
  570. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-figures.mjs +173 -0
  571. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-layout.mjs +146 -0
  572. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-static.mjs +167 -0
  573. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-structure.mjs +118 -0
  574. package/packages/omo-codex/plugin/skills/ulw-research/scripts/gates-text.mjs +190 -0
  575. package/packages/omo-codex/plugin/skills/ulw-research/scripts/html-lite.mjs +239 -0
  576. package/packages/omo-codex/plugin/skills/ulw-research/scripts/layout-probe.mjs +83 -0
  577. package/packages/omo-codex/plugin/skills/ulw-research/scripts/outcome.mjs +250 -0
  578. package/packages/omo-codex/plugin/skills/ulw-research/scripts/repair-tracker.mjs +171 -0
  579. package/packages/omo-codex/plugin/skills/ulw-research/scripts/report-tools-commands.mjs +214 -0
  580. package/packages/omo-codex/plugin/skills/ulw-research/scripts/report-tools.mjs +61 -0
  581. package/packages/omo-codex/plugin/skills/visual-qa/AGENTS.md +58 -0
  582. package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +10 -7
  583. package/packages/omo-codex/plugin/skills/visual-qa/references/browser-setup.md +77 -0
  584. package/packages/omo-codex/plugin/test/AGENTS.md +47 -0
  585. package/packages/omo-codex/plugin/test/aggregate-agents.test.mjs +12 -12
  586. package/packages/omo-codex/plugin/test/aggregate-hooks.test.mjs +13 -28
  587. package/packages/omo-codex/plugin/test/aggregate-manifest.test.mjs +2 -3
  588. package/packages/omo-codex/plugin/test/aggregate-mcp.test.mjs +2 -7
  589. package/packages/omo-codex/plugin/test/aggregate-model-catalog.test.mjs +14 -4
  590. package/packages/omo-codex/plugin/test/auto-update.test.mjs +4 -29
  591. package/packages/omo-codex/plugin/test/bootstrap-default-role.test.mjs +66 -0
  592. package/packages/omo-codex/plugin/test/bootstrap-setup.test.mjs +0 -31
  593. package/packages/omo-codex/plugin/test/canonical-ultrawork-directive.test.mjs +53 -0
  594. package/packages/omo-codex/plugin/test/component-bin-names.test.mjs +2 -2
  595. package/packages/omo-codex/plugin/test/component-bundled-cli.test.mjs +1 -51
  596. package/packages/omo-codex/plugin/test/component-hook-contract-cases.mjs +100 -2
  597. package/packages/omo-codex/plugin/test/hook-status-message.test.mjs +5 -6
  598. package/packages/omo-codex/plugin/test/mcp-research-servers.test.mjs +1 -3
  599. package/packages/omo-codex/plugin/test/migrate-codex-config.test.mjs +35 -35
  600. package/packages/omo-codex/plugin/test/multi-agent-v2-regression.test.mjs +1 -1
  601. package/packages/omo-codex/plugin/test/subagent-limit-migration.test.mjs +107 -15
  602. package/packages/omo-codex/plugin/test/sync-skills-codex-compatibility.test.mjs +81 -3
  603. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +57 -26
  604. package/packages/omo-codex/plugin/test/sync-skills.test.mjs +37 -0
  605. package/packages/omo-codex/plugin/test/ultrawork-skill-pointer.test.mjs +5 -2
  606. package/packages/omo-codex/scripts/install-dist/install-local.mjs +16238 -4291
  607. package/packages/{omo-codex/plugin/components/ultrawork/directive.md → prompts-core/prompts/ultrawork/codex.md} +102 -107
  608. package/packages/shared-skills/package.json +7 -1
  609. package/packages/shared-skills/skill-source-filter.d.ts +16 -0
  610. package/packages/shared-skills/skill-source-filter.mjs +44 -0
  611. package/packages/shared-skills/skills/ast-grep/AGENTS.md +51 -0
  612. package/packages/shared-skills/skills/ast-grep/SKILL.md +13 -1
  613. package/packages/shared-skills/skills/browser/ATTRIBUTION.md +37 -0
  614. package/packages/shared-skills/skills/browser/SKILL.md +109 -0
  615. package/packages/shared-skills/skills/browser/references/commands.md +105 -0
  616. package/packages/shared-skills/skills/browser/references/install.md +97 -0
  617. package/packages/shared-skills/skills/browser/references/owned-engine/README.md +62 -0
  618. package/packages/shared-skills/skills/browser/references/owned-engine/frames-and-humans.md +52 -0
  619. package/packages/shared-skills/skills/browser/references/owned-engine/ladder.md +61 -0
  620. package/packages/shared-skills/skills/browser/references/owned-engine/network.md +62 -0
  621. package/packages/shared-skills/skills/browser/references/recipes/1password.md +61 -0
  622. package/packages/shared-skills/skills/browser/references/remote.md +25 -0
  623. package/packages/shared-skills/skills/browser/runtime/omowright/index.js +1534 -0
  624. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +9 -0
  625. package/packages/shared-skills/skills/browser/runtime/omowright/page-bundle.js +1395 -0
  626. package/packages/shared-skills/skills/browser/scripts/browser-doctor.mjs +57 -0
  627. package/packages/shared-skills/skills/browser/scripts/browser-install.mjs +50 -0
  628. package/packages/shared-skills/skills/browser/scripts/omowright.mjs +25 -0
  629. package/packages/shared-skills/skills/coding-agent-sessions/AGENTS.md +62 -0
  630. package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +1 -1
  631. package/packages/shared-skills/skills/data-scientist/SKILL.md +99 -239
  632. package/packages/shared-skills/skills/data-scientist/references/execution-surfaces.md +91 -0
  633. package/packages/shared-skills/skills/data-scientist/references/placement.md +74 -0
  634. package/packages/shared-skills/skills/data-scientist/references/polars-lane.md +95 -0
  635. package/packages/shared-skills/skills/data-scientist/references/uv-setup.md +1 -1
  636. package/packages/shared-skills/skills/data-scientist/references/visualization.md +64 -0
  637. package/packages/shared-skills/skills/data-scientist/scripts/ensure-js-deps.sh +28 -0
  638. package/packages/shared-skills/skills/data-scientist/scripts/ensure-py-deps.sh +37 -0
  639. package/packages/shared-skills/skills/debugging/SKILL.md +5 -3
  640. package/packages/shared-skills/skills/debugging/references/methodology/00-setup.md +12 -0
  641. package/packages/shared-skills/skills/debugging/references/methodology/02-investigate.md +26 -5
  642. package/packages/shared-skills/skills/debugging/references/methodology/06-fix.md +3 -3
  643. package/packages/shared-skills/skills/debugging/references/methodology/08-qa.md +1 -1
  644. package/packages/shared-skills/skills/debugging/references/runtimes/go.md +15 -1
  645. package/packages/shared-skills/skills/debugging/references/runtimes/native-binary.md +38 -0
  646. package/packages/shared-skills/skills/debugging/references/runtimes/node.md +25 -0
  647. package/packages/shared-skills/skills/debugging/references/runtimes/python.md +13 -0
  648. package/packages/shared-skills/skills/debugging/references/runtimes/rust.md +41 -0
  649. package/packages/shared-skills/skills/debugging/references/scripts/dap.mjs +267 -0
  650. package/packages/shared-skills/skills/debugging/references/scripts/dap.test.ts +86 -0
  651. package/packages/shared-skills/skills/debugging/references/scripts/fixture-adapter.mjs +59 -0
  652. package/packages/shared-skills/skills/debugging/references/tools/browser-qa.md +104 -0
  653. package/packages/shared-skills/skills/debugging/references/tools/dap.md +103 -0
  654. package/packages/shared-skills/skills/debugging/references/tools/frida.md +193 -0
  655. package/packages/shared-skills/skills/frontend/ATTRIBUTION.md +10 -0
  656. package/packages/shared-skills/skills/frontend/SKILL.md +8 -3
  657. package/packages/shared-skills/skills/frontend/references/design/README.md +13 -4
  658. package/packages/shared-skills/skills/frontend/references/design/_INDEX.md +1 -0
  659. package/packages/shared-skills/skills/frontend/references/design/ambience-skill.md +146 -0
  660. package/packages/shared-skills/skills/frontend/references/design/aside.md +1 -1
  661. package/packages/shared-skills/skills/frontend/references/design/clone-from-url.md +1 -1
  662. package/packages/shared-skills/skills/frontend/references/design/design-system-architecture.md +30 -6
  663. package/packages/shared-skills/skills/frontend/references/design/interaction-skill.md +19 -5
  664. package/packages/shared-skills/skills/frontend/references/design/print-paged-media.md +76 -0
  665. package/packages/shared-skills/skills/frontend/references/designpowers/README.md +1 -1
  666. package/packages/shared-skills/skills/frontend/references/designpowers/lane-a-direction.md +1 -1
  667. package/packages/shared-skills/skills/frontend/references/designpowers/lane-b-execution.md +11 -11
  668. package/packages/shared-skills/skills/frontend/references/designpowers/lane-d-memory.md +3 -3
  669. package/packages/shared-skills/skills/frontend/references/designpowers/orchestration.md +1 -1
  670. package/packages/shared-skills/skills/frontend/references/designpowers/routing.md +5 -5
  671. package/packages/shared-skills/skills/frontend/references/perfection/README.md +1 -0
  672. package/packages/shared-skills/skills/frontend/scripts/perfection/lighthouse-audit.py +2 -2
  673. package/packages/shared-skills/skills/git-master/SKILL.md +1 -1
  674. package/packages/shared-skills/skills/init-deep/SKILL.md +14 -14
  675. package/packages/shared-skills/skills/lsp-setup/SKILL.md +1 -1
  676. package/packages/shared-skills/skills/programming/SKILL.md +12 -18
  677. package/packages/shared-skills/skills/programming/references/rust/README.md +43 -15
  678. package/packages/shared-skills/skills/programming/references/rust/api-design.md +81 -0
  679. package/packages/shared-skills/skills/programming/references/rust/async-tokio.md +60 -28
  680. package/packages/shared-skills/skills/programming/references/rust/axum-stack.md +1 -13
  681. package/packages/shared-skills/skills/programming/references/rust/cargo-strict.md +44 -8
  682. package/packages/shared-skills/skills/programming/references/rust/clap-stack.md +8 -3
  683. package/packages/shared-skills/skills/programming/references/rust/concurrency.md +66 -52
  684. package/packages/shared-skills/skills/programming/references/rust/libraries.md +35 -25
  685. package/packages/shared-skills/skills/programming/references/rust/macros.md +63 -0
  686. package/packages/shared-skills/skills/programming/references/rust/one-liners.md +5 -3
  687. package/packages/shared-skills/skills/programming/references/rust/proptest-insta.md +8 -0
  688. package/packages/shared-skills/skills/programming/references/rust/type-state.md +50 -12
  689. package/packages/shared-skills/skills/programming/references/rust/unsafe-discipline.md +34 -6
  690. package/packages/shared-skills/skills/programming/references/rust/zero-cost-safety.md +62 -52
  691. package/packages/shared-skills/skills/programming/references/rust-ub/miri-sanitizers-loom.md +1 -1
  692. package/packages/shared-skills/skills/programming/references/rust-ub/ub-taxonomy.md +6 -3
  693. package/packages/shared-skills/skills/programming/scripts/rust/check-no-excuse-rules.sh +86 -75
  694. package/packages/shared-skills/skills/programming/scripts/rust/check-no-excuse-rules.test.ts +83 -0
  695. package/packages/shared-skills/skills/programming/scripts/rust/new-project.py +31 -28
  696. package/packages/shared-skills/skills/refactor/SKILL.md +5 -5
  697. package/packages/shared-skills/skills/remove-ai-slops/SKILL.md +5 -5
  698. package/packages/shared-skills/skills/review-work/SKILL.md +101 -419
  699. package/packages/shared-skills/skills/ultimate-browsing/ATTRIBUTION.md +1 -82
  700. package/packages/shared-skills/skills/ultimate-browsing/SKILL.md +40 -28
  701. package/packages/shared-skills/skills/ultimate-browsing/engine/AGENTS.md +2 -1
  702. package/packages/shared-skills/skills/ultimate-browsing/engine/templates/package.json +2 -2
  703. package/packages/shared-skills/skills/ultimate-browsing/engine/templates/playwright_mobile_chrome.js +5 -2
  704. package/packages/shared-skills/skills/ultimate-browsing/engine/templates/playwright_real_chrome.js +8 -6
  705. package/packages/shared-skills/skills/ultimate-browsing/engine/tests/test_playwright_stealth.py +86 -0
  706. package/packages/shared-skills/skills/ultimate-browsing/engine/tests/test_playwright_templates.py +4 -7
  707. package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +34 -111
  708. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/README.md +14 -7
  709. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/playwright.md +22 -36
  710. package/packages/shared-skills/skills/ultimate-browsing/scripts/extract_cookies.py +3 -3
  711. package/packages/shared-skills/skills/{start-work → ulw-execute}/SKILL.md +27 -25
  712. package/packages/shared-skills/skills/ulw-plan/SKILL.md +10 -11
  713. package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +18 -13
  714. package/packages/shared-skills/skills/ulw-plan/references/intent-clear.md +5 -6
  715. package/packages/shared-skills/skills/ulw-plan/references/intent-unclear.md +4 -4
  716. package/packages/shared-skills/skills/ulw-plan/scripts/plan-templates.mjs +180 -0
  717. package/packages/shared-skills/skills/ulw-plan/scripts/scaffold-plan.mjs +3 -153
  718. package/packages/shared-skills/skills/ulw-research/AGENTS.md +63 -0
  719. package/packages/shared-skills/skills/ulw-research/SKILL.md +47 -30
  720. package/packages/shared-skills/skills/ulw-research/references/deliverable-phase.md +187 -0
  721. package/packages/shared-skills/skills/ulw-research/references/report-gates.md +66 -0
  722. package/packages/shared-skills/skills/ulw-research/scripts/cli-support.mjs +102 -0
  723. package/packages/shared-skills/skills/ulw-research/scripts/cli-support.test.ts +88 -0
  724. package/packages/shared-skills/skills/ulw-research/scripts/contracts.mjs +162 -0
  725. package/packages/shared-skills/skills/ulw-research/scripts/contracts.test.ts +177 -0
  726. package/packages/shared-skills/skills/ulw-research/scripts/css-lite.mjs +204 -0
  727. package/packages/shared-skills/skills/ulw-research/scripts/css-lite.test.ts +159 -0
  728. package/packages/shared-skills/skills/ulw-research/scripts/design-spec.mjs +161 -0
  729. package/packages/shared-skills/skills/ulw-research/scripts/design-spec.test.ts +162 -0
  730. package/packages/shared-skills/skills/ulw-research/scripts/entities.mjs +39 -0
  731. package/packages/shared-skills/skills/ulw-research/scripts/entry-guard.mjs +21 -0
  732. package/packages/shared-skills/skills/ulw-research/scripts/format-extract-css.mjs +122 -0
  733. package/packages/shared-skills/skills/ulw-research/scripts/format-extract.mjs +229 -0
  734. package/packages/shared-skills/skills/ulw-research/scripts/format-extract.test.ts +243 -0
  735. package/packages/shared-skills/skills/ulw-research/scripts/gates-figures.mjs +173 -0
  736. package/packages/shared-skills/skills/ulw-research/scripts/gates-layout.mjs +146 -0
  737. package/packages/shared-skills/skills/ulw-research/scripts/gates-layout.test.ts +236 -0
  738. package/packages/shared-skills/skills/ulw-research/scripts/gates-static.mjs +167 -0
  739. package/packages/shared-skills/skills/ulw-research/scripts/gates-static.test.ts +265 -0
  740. package/packages/shared-skills/skills/ulw-research/scripts/gates-structure.mjs +118 -0
  741. package/packages/shared-skills/skills/ulw-research/scripts/gates-text.mjs +190 -0
  742. package/packages/shared-skills/skills/ulw-research/scripts/glossary-vocabulary.test.ts +43 -0
  743. package/packages/shared-skills/skills/ulw-research/scripts/html-lite.mjs +239 -0
  744. package/packages/shared-skills/skills/ulw-research/scripts/html-lite.test.ts +191 -0
  745. package/packages/shared-skills/skills/ulw-research/scripts/layout-probe.mjs +83 -0
  746. package/packages/shared-skills/skills/ulw-research/scripts/layout-probe.test.ts +89 -0
  747. package/packages/shared-skills/skills/ulw-research/scripts/outcome.mjs +250 -0
  748. package/packages/shared-skills/skills/ulw-research/scripts/outcome.test.ts +281 -0
  749. package/packages/shared-skills/skills/ulw-research/scripts/repair-tracker.mjs +171 -0
  750. package/packages/shared-skills/skills/ulw-research/scripts/repair-tracker.test.ts +246 -0
  751. package/packages/shared-skills/skills/ulw-research/scripts/report-tools-commands.mjs +214 -0
  752. package/packages/shared-skills/skills/ulw-research/scripts/report-tools.mjs +61 -0
  753. package/packages/shared-skills/skills/ulw-research/scripts/report-tools.test.ts +213 -0
  754. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/assets/figure-1.svg +1 -0
  755. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/bad-report.html +44 -0
  756. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/boxes.json +90 -0
  757. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/design-spec.md +29 -0
  758. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/good-report.html +57 -0
  759. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/reference-report.html +86 -0
  760. package/packages/shared-skills/skills/ulw-research/scripts/tests/fixtures/reference.md +23 -0
  761. package/packages/shared-skills/skills/visual-qa/AGENTS.md +58 -0
  762. package/packages/shared-skills/skills/visual-qa/SKILL.md +4 -3
  763. package/packages/shared-skills/skills/visual-qa/references/browser-setup.md +77 -0
  764. package/script/qa/web-terminal-visual-qa.mjs +2 -0
  765. package/script/qa/xterm-live-terminal.mjs +18 -2
  766. package/dist/cli/install-senpi/index.d.ts +0 -1
  767. package/dist/cli/senpi-platform-flag.d.ts +0 -4
  768. package/packages/lsp-tools-mcp/dist/lsp/cleanup-errors.d.ts +0 -1
  769. package/packages/lsp-tools-mcp/dist/lsp/constants.d.ts +0 -1
  770. package/packages/lsp-tools-mcp/dist/lsp/language-mappings.d.ts +0 -1
  771. package/packages/lsp-tools-mcp/dist/lsp/process-signal-cleanup.d.ts +0 -1
  772. package/packages/lsp-tools-mcp/dist/missing-dependency-result.d.ts +0 -1
  773. package/packages/omo-codex/plugin/components/codegraph/AGENTS.md +0 -58
  774. package/packages/omo-codex/plugin/components/codegraph/NODE-RUNTIME-LICENSES.md +0 -2951
  775. package/packages/omo-codex/plugin/components/codegraph/NOTICE +0 -16
  776. package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +0 -12244
  777. package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +0 -9842
  778. package/packages/omo-codex/plugin/components/codegraph/package.json +0 -33
  779. package/packages/omo-codex/plugin/components/codegraph/src/cache-gc.ts +0 -29
  780. package/packages/omo-codex/plugin/components/codegraph/src/cli.ts +0 -79
  781. package/packages/omo-codex/plugin/components/codegraph/src/hook-input.ts +0 -33
  782. package/packages/omo-codex/plugin/components/codegraph/src/hook-sweep.ts +0 -25
  783. package/packages/omo-codex/plugin/components/codegraph/src/hook-types.ts +0 -131
  784. package/packages/omo-codex/plugin/components/codegraph/src/hook.ts +0 -258
  785. package/packages/omo-codex/plugin/components/codegraph/src/mcp-bridge.ts +0 -309
  786. package/packages/omo-codex/plugin/components/codegraph/src/mcp-unavailable.ts +0 -80
  787. package/packages/omo-codex/plugin/components/codegraph/src/post-tool-use-hook.ts +0 -34
  788. package/packages/omo-codex/plugin/components/codegraph/src/serve-invocation.ts +0 -29
  789. package/packages/omo-codex/plugin/components/codegraph/src/serve.ts +0 -263
  790. package/packages/omo-codex/plugin/components/codegraph/src/session-start-command.ts +0 -106
  791. package/packages/omo-codex/plugin/components/codegraph/src/session-start-cooldown.ts +0 -145
  792. package/packages/omo-codex/plugin/components/codegraph/src/session-start-hook-runtime.ts +0 -21
  793. package/packages/omo-codex/plugin/components/codegraph/src/session-start-lock.ts +0 -139
  794. package/packages/omo-codex/plugin/components/codegraph/src/session-start-outcome.ts +0 -15
  795. package/packages/omo-codex/plugin/components/codegraph/src/session-start-paths.ts +0 -32
  796. package/packages/omo-codex/plugin/components/codegraph/src/session-start-project.ts +0 -109
  797. package/packages/omo-codex/plugin/components/codegraph/src/session-start-worker-result.ts +0 -148
  798. package/packages/omo-codex/plugin/components/codegraph/src/session-start-worker.ts +0 -175
  799. package/packages/omo-codex/plugin/components/codegraph/src/sweep-cli.ts +0 -81
  800. package/packages/omo-codex/plugin/components/codegraph/test/cache-gc.test.ts +0 -34
  801. package/packages/omo-codex/plugin/components/codegraph/test/hook-exclusion.test.ts +0 -112
  802. package/packages/omo-codex/plugin/components/codegraph/test/hook-registration.test.ts +0 -26
  803. package/packages/omo-codex/plugin/components/codegraph/test/hook-session-start-guard.test.ts +0 -160
  804. package/packages/omo-codex/plugin/components/codegraph/test/hook-store-upgrade.test.ts +0 -50
  805. package/packages/omo-codex/plugin/components/codegraph/test/hook-sweep.test.ts +0 -29
  806. package/packages/omo-codex/plugin/components/codegraph/test/hook.test.ts +0 -320
  807. package/packages/omo-codex/plugin/components/codegraph/test/mcp-bridge-fixtures.ts +0 -172
  808. package/packages/omo-codex/plugin/components/codegraph/test/package-runtime.test.ts +0 -91
  809. package/packages/omo-codex/plugin/components/codegraph/test/provisioned-node-guard.test.ts +0 -100
  810. package/packages/omo-codex/plugin/components/codegraph/test/serve-built-wrapper.test.ts +0 -76
  811. package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge-lifecycle.test.ts +0 -133
  812. package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge.test.ts +0 -245
  813. package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-facade.test.ts +0 -69
  814. package/packages/omo-codex/plugin/components/codegraph/test/serve-node-support.test.ts +0 -43
  815. package/packages/omo-codex/plugin/components/codegraph/test/serve-provision.test.ts +0 -147
  816. package/packages/omo-codex/plugin/components/codegraph/test/serve-unavailable.test.ts +0 -175
  817. package/packages/omo-codex/plugin/components/codegraph/test/serve.test.ts +0 -385
  818. package/packages/omo-codex/plugin/components/codegraph/test/session-start-node-support.test.ts +0 -206
  819. package/packages/omo-codex/plugin/components/codegraph/test/session-start-project.test.ts +0 -58
  820. package/packages/omo-codex/plugin/components/codegraph/test/session-start-state.test.ts +0 -104
  821. package/packages/omo-codex/plugin/components/codegraph/test/session-start-trust-boundary.test.ts +0 -65
  822. package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-availability.test.ts +0 -106
  823. package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-cooldown.test.ts +0 -116
  824. package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-flow.test.ts +0 -258
  825. package/packages/omo-codex/plugin/components/codegraph/test/sweep-cli.test.ts +0 -56
  826. package/packages/omo-codex/plugin/components/codegraph/tsconfig.build.json +0 -13
  827. package/packages/omo-codex/plugin/components/codegraph/tsconfig.json +0 -25
  828. package/packages/omo-codex/plugin/components/start-work-continuation/LICENSE +0 -21
  829. package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +0 -28
  830. package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +0 -484
  831. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +0 -18
  832. package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +0 -17
  833. package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +0 -17
  834. package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +0 -17
  835. package/packages/omo-codex/plugin/scripts/migrate-omo-sot/editor.mjs +0 -125
  836. package/packages/omo-codex/plugin/scripts/migrate-omo-sot/jsonc.mjs +0 -43
  837. package/packages/omo-codex/plugin/scripts/migrate-omo-sot/scaffold.mjs +0 -29
  838. package/packages/omo-codex/plugin/scripts/migrate-omo-sot.mjs +0 -121
  839. package/packages/omo-codex/plugin/skills/data-scientist/references/common-scenarios.md +0 -176
  840. package/packages/omo-codex/plugin/skills/data-scientist/references/execution-templates.md +0 -197
  841. package/packages/omo-codex/plugin/skills/data-scientist/references/integration-patterns.md +0 -153
  842. package/packages/omo-codex/plugin/skills/data-scientist/references/performance-benchmarks.md +0 -37
  843. package/packages/omo-codex/plugin/skills/debugging/references/tools/playwright-cli.md +0 -194
  844. package/packages/omo-codex/plugin/skills/programming/scripts/rust/check-no-excuse-rules.py +0 -296
  845. package/packages/omo-codex/plugin/skills/start-work/agents/openai.yaml +0 -2
  846. package/packages/omo-codex/plugin/skills/visual-qa/references/agent-browser-setup.md +0 -45
  847. package/packages/omo-codex/plugin/test/component-codegraph-mcp-smoke.test.mjs +0 -76
  848. package/packages/omo-codex/plugin/test/migrate-omo-sot.test.mjs +0 -179
  849. package/packages/shared-skills/skills/data-scientist/references/common-scenarios.md +0 -176
  850. package/packages/shared-skills/skills/data-scientist/references/execution-templates.md +0 -197
  851. package/packages/shared-skills/skills/data-scientist/references/integration-patterns.md +0 -153
  852. package/packages/shared-skills/skills/data-scientist/references/performance-benchmarks.md +0 -37
  853. package/packages/shared-skills/skills/debugging/references/tools/playwright-cli.md +0 -194
  854. package/packages/shared-skills/skills/programming/scripts/rust/check-no-excuse-rules.py +0 -296
  855. package/packages/shared-skills/skills/visual-qa/references/agent-browser-setup.md +0 -45
  856. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/.gitattributes +0 -0
  857. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/CHANGELOG.md +0 -0
  858. /package/packages/omo-codex/plugin/components/{codegraph → ulw-execute-continuation}/LICENSE +0 -0
  859. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/src/plan-checklist.ts +0 -0
  860. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/boulder-completed.json +0 -0
  861. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/boulder-mixed-platforms.json +0 -0
  862. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/boulder-single-codex-work.json +0 -0
  863. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-all-done.md +0 -0
  864. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-scaffold.md +0 -0
  865. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-with-nested-checkboxes.md +0 -0
  866. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/test/fixtures/plan-with-unchecked.md +0 -0
  867. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/tsconfig.build.json +0 -0
  868. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/tsconfig.json +0 -0
  869. /package/packages/omo-codex/plugin/components/{start-work-continuation → ulw-execute-continuation}/vitest.config.ts +0 -0
@@ -0,0 +1,1534 @@
1
+ import{createRequire}from"node:module";var __create=Object.create;var __getProtoOf=Object.getPrototypeOf;var __defProp=Object.defineProperty;var __getOwnPropNames=Object.getOwnPropertyNames;var __hasOwnProp=Object.prototype.hasOwnProperty;function __accessProp(key){return this[key]}var __toESMCache_node;var __toESMCache_esm;var __toESM=(mod,isNodeMode,target)=>{var canCache=mod!=null&&typeof mod==="object";if(canCache){var cache=isNodeMode?__toESMCache_node??=new WeakMap:__toESMCache_esm??=new WeakMap;var cached=cache.get(mod);if(cached)return cached}target=mod!=null?__create(__getProtoOf(mod)):{};const to=isNodeMode||!mod||!mod.__esModule||!__hasOwnProp.call(mod,"default")?__defProp(target,"default",{value:mod,enumerable:true}):target;if(mod&&typeof mod==="object"||typeof mod==="function"){for(let key of __getOwnPropNames(mod))if(!__hasOwnProp.call(to,key))__defProp(to,key,{get:__accessProp.bind(mod,key),enumerable:true})}if(canCache)cache.set(mod,to);return to};var __commonJS=(cb,mod)=>()=>(mod||cb((mod={exports:{}}).exports,mod),mod.exports);var __returnValue=(v)=>v;function __exportSetter(name,newValue){this[name]=__returnValue.bind(null,newValue)}var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:true,configurable:true,set:__exportSetter.bind(all,name)})};var __esm=(fn,res,err)=>()=>{if(fn)try{res=fn(fn=0)}catch(e){err=[e]}if(err)throw err[0];return res};var __require=createRequire(import.meta.url);var require_constants=__commonJS(function(exports,module){var BINARY_TYPES=["nodebuffer","arraybuffer","fragments"];var hasBlob=typeof Blob!=="undefined";if(hasBlob)BINARY_TYPES.push("blob");module.exports={BINARY_TYPES,CLOSE_TIMEOUT:30000,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var require_buffer_util=__commonJS(function(exports,module){var{EMPTY_BUFFER}=require_constants();var FastBuffer=Buffer[Symbol.species];function concat(list,totalLength){if(list.length===0)return EMPTY_BUFFER;if(list.length===1)return list[0];const target=Buffer.allocUnsafe(totalLength);let offset=0;for(let i=0;i<list.length;i++){const buf=list[i];target.set(buf,offset);offset+=buf.length}if(offset<totalLength){return new FastBuffer(target.buffer,target.byteOffset,offset)}return target}function _mask(source,mask,output,offset,length){for(let i=0;i<length;i++){output[offset+i]=source[i]^mask[i&3]}}function _unmask(buffer,mask){for(let i=0;i<buffer.length;i++){buffer[i]^=mask[i&3]}}function toArrayBuffer(buf){if(buf.length===buf.buffer.byteLength){return buf.buffer}return buf.buffer.slice(buf.byteOffset,buf.byteOffset+buf.length)}function toBuffer(data){toBuffer.readOnly=true;if(Buffer.isBuffer(data))return data;let buf;if(data instanceof ArrayBuffer){buf=new FastBuffer(data)}else if(ArrayBuffer.isView(data)){buf=new FastBuffer(data.buffer,data.byteOffset,data.byteLength)}else{buf=Buffer.from(data);toBuffer.readOnly=false}return buf}module.exports={concat,mask:_mask,toArrayBuffer,toBuffer,unmask:_unmask};if(!process.env.WS_NO_BUFFER_UTIL){try{const bufferUtil=(()=>{throw new Error("Cannot require module "+"bufferutil");})();module.exports.mask=function(source,mask2,output,offset,length){if(length<48)_mask(source,mask2,output,offset,length);else bufferUtil.mask(source,mask2,output,offset,length)};module.exports.unmask=function(buffer,mask){if(buffer.length<32)_unmask(buffer,mask);else bufferUtil.unmask(buffer,mask)}}catch(e){}}});var require_limiter=__commonJS(function(exports,module){var kDone=Symbol("kDone");var kRun=Symbol("kRun");class Limiter{constructor(concurrency){this[kDone]=()=>{this.pending--;this[kRun]()};this.concurrency=concurrency||Infinity;this.jobs=[];this.pending=0}add(job){this.jobs.push(job);this[kRun]()}[kRun](){if(this.pending===this.concurrency)return;if(this.jobs.length){const job=this.jobs.shift();this.pending++;job(this[kDone])}}}module.exports=Limiter});var require_permessage_deflate=__commonJS(function(exports,module){var zlib=__require("zlib");var bufferUtil=require_buffer_util();var Limiter=require_limiter();var{kStatusCode}=require_constants();var FastBuffer=Buffer[Symbol.species];var TRAILER=Buffer.from([0,0,255,255]);var kPerMessageDeflate=Symbol("permessage-deflate");var kTotalLength=Symbol("total-length");var kCallback=Symbol("callback");var kBuffers=Symbol("buffers");var kError=Symbol("error");var zlibLimiter;class PerMessageDeflate{constructor(options){this._options=options||{};this._threshold=this._options.threshold!==undefined?this._options.threshold:1024;this._maxPayload=this._options.maxPayload|0;this._isServer=!!this._options.isServer;this._deflate=null;this._inflate=null;this.params=null;if(!zlibLimiter){const concurrency=this._options.concurrencyLimit!==undefined?this._options.concurrencyLimit:10;zlibLimiter=new Limiter(concurrency)}}static get extensionName(){return"permessage-deflate"}offer(){const params={};if(this._options.serverNoContextTakeover){params.server_no_context_takeover=true}if(this._options.clientNoContextTakeover){params.client_no_context_takeover=true}if(this._options.serverMaxWindowBits){params.server_max_window_bits=this._options.serverMaxWindowBits}if(this._options.clientMaxWindowBits){params.client_max_window_bits=this._options.clientMaxWindowBits}else if(this._options.clientMaxWindowBits==null){params.client_max_window_bits=true}return params}accept(configurations){configurations=this.normalizeParams(configurations);this.params=this._isServer?this.acceptAsServer(configurations):this.acceptAsClient(configurations);return this.params}cleanup(){if(this._inflate){this._inflate.close();this._inflate=null}if(this._deflate){const callback=this._deflate[kCallback];this._deflate.close();this._deflate=null;if(callback){callback(new Error("The deflate stream was closed while data was being processed"))}}}acceptAsServer(offers){const opts=this._options;const accepted=offers.find((params)=>{if(opts.serverNoContextTakeover===false&&params.server_no_context_takeover||params.server_max_window_bits&&(opts.serverMaxWindowBits===false||typeof opts.serverMaxWindowBits==="number"&&opts.serverMaxWindowBits>params.server_max_window_bits)||typeof opts.clientMaxWindowBits==="number"&&(typeof params.client_max_window_bits==="number"?opts.clientMaxWindowBits>params.client_max_window_bits:!params.client_max_window_bits)){return false}return true});if(!accepted){throw new Error("None of the extension offers can be accepted")}if(opts.serverNoContextTakeover){accepted.server_no_context_takeover=true}if(opts.clientNoContextTakeover){accepted.client_no_context_takeover=true}if(typeof opts.serverMaxWindowBits==="number"){accepted.server_max_window_bits=opts.serverMaxWindowBits}if(typeof opts.clientMaxWindowBits==="number"){accepted.client_max_window_bits=opts.clientMaxWindowBits}else if(accepted.client_max_window_bits===true||opts.clientMaxWindowBits===false){delete accepted.client_max_window_bits}return accepted}acceptAsClient(response){const params=response[0];if(this._options.clientNoContextTakeover===false&&params.client_no_context_takeover){throw new Error('Unexpected parameter "client_no_context_takeover"')}if(!params.client_max_window_bits){if(typeof this._options.clientMaxWindowBits==="number"){params.client_max_window_bits=this._options.clientMaxWindowBits}}else if(this._options.clientMaxWindowBits===false||typeof this._options.clientMaxWindowBits==="number"&&params.client_max_window_bits>this._options.clientMaxWindowBits){throw new Error('Unexpected or invalid parameter "client_max_window_bits"')}return params}normalizeParams(configurations){configurations.forEach((params)=>{Object.keys(params).forEach((key)=>{let value=params[key];if(value.length>1){throw new Error(`Parameter "${key}" must have only a single value`)}value=value[0];if(key==="client_max_window_bits"){if(value!==true){const num=+value;if(!Number.isInteger(num)||num<8||num>15){throw new TypeError(`Invalid value for parameter "${key}": ${value}`)}value=num}else if(!this._isServer){throw new TypeError(`Invalid value for parameter "${key}": ${value}`)}}else if(key==="server_max_window_bits"){const num=+value;if(!Number.isInteger(num)||num<8||num>15){throw new TypeError(`Invalid value for parameter "${key}": ${value}`)}value=num}else if(key==="client_no_context_takeover"||key==="server_no_context_takeover"){if(value!==true){throw new TypeError(`Invalid value for parameter "${key}": ${value}`)}}else{throw new Error(`Unknown parameter "${key}"`)}params[key]=value})});return configurations}decompress(data,fin,callback){zlibLimiter.add((done)=>{this._decompress(data,fin,(err,result)=>{done();callback(err,result)})})}compress(data,fin,callback){zlibLimiter.add((done)=>{this._compress(data,fin,(err,result)=>{done();callback(err,result)})})}_decompress(data,fin,callback){const endpoint=this._isServer?"client":"server";if(!this._inflate){const key=`${endpoint}_max_window_bits`;const windowBits=typeof this.params[key]!=="number"?zlib.Z_DEFAULT_WINDOWBITS:this.params[key];this._inflate=zlib.createInflateRaw({...this._options.zlibInflateOptions,windowBits});this._inflate[kPerMessageDeflate]=this;this._inflate[kTotalLength]=0;this._inflate[kBuffers]=[];this._inflate.on("error",inflateOnError);this._inflate.on("data",inflateOnData)}this._inflate[kCallback]=callback;this._inflate.write(data);if(fin)this._inflate.write(TRAILER);this._inflate.flush(()=>{const err=this._inflate[kError];if(err){this._inflate.close();this._inflate=null;callback(err);return}const data=bufferUtil.concat(this._inflate[kBuffers],this._inflate[kTotalLength]);if(this._inflate._readableState.endEmitted){this._inflate.close();this._inflate=null}else{this._inflate[kTotalLength]=0;this._inflate[kBuffers]=[];if(fin&&this.params[`${endpoint}_no_context_takeover`]){this._inflate.reset()}}callback(null,data)})}_compress(data,fin,callback){const endpoint=this._isServer?"server":"client";if(!this._deflate){const key=`${endpoint}_max_window_bits`;const windowBits=typeof this.params[key]!=="number"?zlib.Z_DEFAULT_WINDOWBITS:this.params[key];this._deflate=zlib.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits});this._deflate[kTotalLength]=0;this._deflate[kBuffers]=[];this._deflate.on("data",deflateOnData)}this._deflate[kCallback]=callback;this._deflate.write(data);this._deflate.flush(zlib.Z_SYNC_FLUSH,()=>{if(!this._deflate){return}let data=bufferUtil.concat(this._deflate[kBuffers],this._deflate[kTotalLength]);if(fin){data=new FastBuffer(data.buffer,data.byteOffset,data.length-4)}this._deflate[kCallback]=null;this._deflate[kTotalLength]=0;this._deflate[kBuffers]=[];if(fin&&this.params[`${endpoint}_no_context_takeover`]){this._deflate.reset()}callback(null,data)})}}module.exports=PerMessageDeflate;function deflateOnData(chunk){this[kBuffers].push(chunk);this[kTotalLength]+=chunk.length}function inflateOnData(chunk){this[kTotalLength]+=chunk.length;if(this[kPerMessageDeflate]._maxPayload<1||this[kTotalLength]<=this[kPerMessageDeflate]._maxPayload){this[kBuffers].push(chunk);return}this[kError]=new RangeError("Max payload size exceeded");this[kError].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH";this[kError][kStatusCode]=1009;this.removeListener("data",inflateOnData);this.reset()}function inflateOnError(err){this[kPerMessageDeflate]._inflate=null;if(this[kError]){this[kCallback](this[kError]);return}err[kStatusCode]=1007;this[kCallback](err)}});var require_validation=__commonJS(function(exports,module){var{isUtf8}=__require("buffer");var{hasBlob}=require_constants();var tokenChars=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function isValidStatusCode(code){return code>=1000&&code<=1014&&code!==1004&&code!==1005&&code!==1006||code>=3000&&code<=4999}function _isValidUTF8(buf){const len=buf.length;let i=0;while(i<len){if((buf[i]&128)===0){i++}else if((buf[i]&224)===192){if(i+1===len||(buf[i+1]&192)!==128||(buf[i]&254)===192){return false}i+=2}else if((buf[i]&240)===224){if(i+2>=len||(buf[i+1]&192)!==128||(buf[i+2]&192)!==128||buf[i]===224&&(buf[i+1]&224)===128||buf[i]===237&&(buf[i+1]&224)===160){return false}i+=3}else if((buf[i]&248)===240){if(i+3>=len||(buf[i+1]&192)!==128||(buf[i+2]&192)!==128||(buf[i+3]&192)!==128||buf[i]===240&&(buf[i+1]&240)===128||buf[i]===244&&buf[i+1]>143||buf[i]>244){return false}i+=4}else{return false}}return true}function isBlob(value){return hasBlob&&typeof value==="object"&&typeof value.arrayBuffer==="function"&&typeof value.type==="string"&&typeof value.stream==="function"&&(value[Symbol.toStringTag]==="Blob"||value[Symbol.toStringTag]==="File")}module.exports={isBlob,isValidStatusCode,isValidUTF8:_isValidUTF8,tokenChars};if(isUtf8){module.exports.isValidUTF8=function(buf){return buf.length<24?_isValidUTF8(buf):isUtf8(buf)}}else if(!process.env.WS_NO_UTF_8_VALIDATE){try{const isValidUTF8=(()=>{throw new Error("Cannot require module "+"utf-8-validate");})();module.exports.isValidUTF8=function(buf){return buf.length<32?_isValidUTF8(buf):isValidUTF8(buf)}}catch(e){}}});var require_receiver=__commonJS(function(exports,module){var{Writable}=__require("stream");var PerMessageDeflate=require_permessage_deflate();var{BINARY_TYPES,EMPTY_BUFFER,kStatusCode,kWebSocket}=require_constants();var{concat,toArrayBuffer,unmask}=require_buffer_util();var{isValidStatusCode,isValidUTF8}=require_validation();var FastBuffer=Buffer[Symbol.species];var GET_INFO=0;var GET_PAYLOAD_LENGTH_16=1;var GET_PAYLOAD_LENGTH_64=2;var GET_MASK=3;var GET_DATA=4;var INFLATING=5;var DEFER_EVENT=6;class Receiver extends Writable{constructor(options={}){super();this._allowSynchronousEvents=options.allowSynchronousEvents!==undefined?options.allowSynchronousEvents:true;this._binaryType=options.binaryType||BINARY_TYPES[0];this._extensions=options.extensions||{};this._isServer=!!options.isServer;this._maxBufferedChunks=options.maxBufferedChunks|0;this._maxFragments=options.maxFragments|0;this._maxPayload=options.maxPayload|0;this._skipUTF8Validation=!!options.skipUTF8Validation;this[kWebSocket]=undefined;this._bufferedBytes=0;this._buffers=[];this._compressed=false;this._payloadLength=0;this._mask=undefined;this._fragmented=0;this._masked=false;this._fin=false;this._opcode=0;this._totalPayloadLength=0;this._messageLength=0;this._numFragments=0;this._fragments=[];this._errored=false;this._loop=false;this._state=GET_INFO}_write(chunk,encoding,cb){if(this._opcode===8&&this._state==GET_INFO)return cb();if(this._maxBufferedChunks>0&&this._buffers.length>=this._maxBufferedChunks){cb(this.createError(RangeError,"Too many buffered chunks",false,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS"));return}this._bufferedBytes+=chunk.length;this._buffers.push(chunk);this.startLoop(cb)}consume(n){this._bufferedBytes-=n;if(n===this._buffers[0].length)return this._buffers.shift();if(n<this._buffers[0].length){const buf=this._buffers[0];this._buffers[0]=new FastBuffer(buf.buffer,buf.byteOffset+n,buf.length-n);return new FastBuffer(buf.buffer,buf.byteOffset,n)}const dst=Buffer.allocUnsafe(n);do{const buf=this._buffers[0];const offset=dst.length-n;if(n>=buf.length){dst.set(this._buffers.shift(),offset)}else{dst.set(new Uint8Array(buf.buffer,buf.byteOffset,n),offset);this._buffers[0]=new FastBuffer(buf.buffer,buf.byteOffset+n,buf.length-n)}n-=buf.length}while(n>0);return dst}startLoop(cb){this._loop=true;do{switch(this._state){case GET_INFO:this.getInfo(cb);break;case GET_PAYLOAD_LENGTH_16:this.getPayloadLength16(cb);break;case GET_PAYLOAD_LENGTH_64:this.getPayloadLength64(cb);break;case GET_MASK:this.getMask();break;case GET_DATA:this.getData(cb);break;case INFLATING:case DEFER_EVENT:this._loop=false;return}}while(this._loop);if(!this._errored)cb()}getInfo(cb){if(this._bufferedBytes<2){this._loop=false;return}const buf=this.consume(2);if((buf[0]&48)!==0){const error=this.createError(RangeError,"RSV2 and RSV3 must be clear",true,1002,"WS_ERR_UNEXPECTED_RSV_2_3");cb(error);return}const compressed=(buf[0]&64)===64;if(compressed&&!this._extensions[PerMessageDeflate.extensionName]){const error=this.createError(RangeError,"RSV1 must be clear",true,1002,"WS_ERR_UNEXPECTED_RSV_1");cb(error);return}this._fin=(buf[0]&128)===128;this._opcode=buf[0]&15;this._payloadLength=buf[1]&127;if(this._opcode===0){if(compressed){const error=this.createError(RangeError,"RSV1 must be clear",true,1002,"WS_ERR_UNEXPECTED_RSV_1");cb(error);return}if(!this._fragmented){const error=this.createError(RangeError,"invalid opcode 0",true,1002,"WS_ERR_INVALID_OPCODE");cb(error);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){const error=this.createError(RangeError,`invalid opcode ${this._opcode}`,true,1002,"WS_ERR_INVALID_OPCODE");cb(error);return}this._compressed=compressed}else if(this._opcode>7&&this._opcode<11){if(!this._fin){const error=this.createError(RangeError,"FIN must be set",true,1002,"WS_ERR_EXPECTED_FIN");cb(error);return}if(compressed){const error=this.createError(RangeError,"RSV1 must be clear",true,1002,"WS_ERR_UNEXPECTED_RSV_1");cb(error);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){const error=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,true,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");cb(error);return}}else{const error=this.createError(RangeError,`invalid opcode ${this._opcode}`,true,1002,"WS_ERR_INVALID_OPCODE");cb(error);return}if(!this._fin&&!this._fragmented)this._fragmented=this._opcode;this._masked=(buf[1]&128)===128;if(this._isServer){if(!this._masked){const error=this.createError(RangeError,"MASK must be set",true,1002,"WS_ERR_EXPECTED_MASK");cb(error);return}}else if(this._masked){const error=this.createError(RangeError,"MASK must be clear",true,1002,"WS_ERR_UNEXPECTED_MASK");cb(error);return}if(this._payloadLength===126)this._state=GET_PAYLOAD_LENGTH_16;else if(this._payloadLength===127)this._state=GET_PAYLOAD_LENGTH_64;else this.haveLength(cb)}getPayloadLength16(cb){if(this._bufferedBytes<2){this._loop=false;return}this._payloadLength=this.consume(2).readUInt16BE(0);this.haveLength(cb)}getPayloadLength64(cb){if(this._bufferedBytes<8){this._loop=false;return}const buf=this.consume(8);const num=buf.readUInt32BE(0);if(num>Math.pow(2,53-32)-1){const error=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",false,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");cb(error);return}this._payloadLength=num*Math.pow(2,32)+buf.readUInt32BE(4);this.haveLength(cb)}haveLength(cb){if(this._payloadLength&&this._opcode<8){this._totalPayloadLength+=this._payloadLength;if(this._totalPayloadLength>this._maxPayload&&this._maxPayload>0){const error=this.createError(RangeError,"Max payload size exceeded",false,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");cb(error);return}}if(this._masked)this._state=GET_MASK;else this._state=GET_DATA}getMask(){if(this._bufferedBytes<4){this._loop=false;return}this._mask=this.consume(4);this._state=GET_DATA}getData(cb){let data=EMPTY_BUFFER;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=false;return}data=this.consume(this._payloadLength);if(this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0){unmask(data,this._mask)}}if(this._opcode>7){this.controlMessage(data,cb);return}if(this._maxFragments>0&&++this._numFragments>this._maxFragments){const error=this.createError(RangeError,"Too many message fragments",false,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS");cb(error);return}if(this._compressed){this._state=INFLATING;this.decompress(data,cb);return}if(data.length){this._messageLength=this._totalPayloadLength;this._fragments.push(data)}this.dataMessage(cb)}decompress(data,cb){const perMessageDeflate=this._extensions[PerMessageDeflate.extensionName];perMessageDeflate.decompress(data,this._fin,(err,buf)=>{if(err)return cb(err);if(buf.length){this._messageLength+=buf.length;if(this._messageLength>this._maxPayload&&this._maxPayload>0){const error=this.createError(RangeError,"Max payload size exceeded",false,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");cb(error);return}this._fragments.push(buf)}this.dataMessage(cb);if(this._state===GET_INFO)this.startLoop(cb)})}dataMessage(cb){if(!this._fin){this._state=GET_INFO;return}const messageLength=this._messageLength;const fragments=this._fragments;this._totalPayloadLength=0;this._messageLength=0;this._fragmented=0;this._numFragments=0;this._fragments=[];if(this._opcode===2){let data;if(this._binaryType==="nodebuffer"){data=concat(fragments,messageLength)}else if(this._binaryType==="arraybuffer"){data=toArrayBuffer(concat(fragments,messageLength))}else if(this._binaryType==="blob"){data=new Blob(fragments)}else{data=fragments}if(this._allowSynchronousEvents){this.emit("message",data,true);this._state=GET_INFO}else{this._state=DEFER_EVENT;setImmediate(()=>{this.emit("message",data,true);this._state=GET_INFO;this.startLoop(cb)})}}else{const buf=concat(fragments,messageLength);if(!this._skipUTF8Validation&&!isValidUTF8(buf)){const error=this.createError(Error,"invalid UTF-8 sequence",true,1007,"WS_ERR_INVALID_UTF8");cb(error);return}if(this._state===INFLATING||this._allowSynchronousEvents){this.emit("message",buf,false);this._state=GET_INFO}else{this._state=DEFER_EVENT;setImmediate(()=>{this.emit("message",buf,false);this._state=GET_INFO;this.startLoop(cb)})}}}controlMessage(data,cb){if(this._opcode===8){if(data.length===0){this._loop=false;this.emit("conclude",1005,EMPTY_BUFFER);this.end()}else{const code=data.readUInt16BE(0);if(!isValidStatusCode(code)){const error=this.createError(RangeError,`invalid status code ${code}`,true,1002,"WS_ERR_INVALID_CLOSE_CODE");cb(error);return}const buf=new FastBuffer(data.buffer,data.byteOffset+2,data.length-2);if(!this._skipUTF8Validation&&!isValidUTF8(buf)){const error=this.createError(Error,"invalid UTF-8 sequence",true,1007,"WS_ERR_INVALID_UTF8");cb(error);return}this._loop=false;this.emit("conclude",code,buf);this.end()}this._state=GET_INFO;return}if(this._allowSynchronousEvents){this.emit(this._opcode===9?"ping":"pong",data);this._state=GET_INFO}else{this._state=DEFER_EVENT;setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",data);this._state=GET_INFO;this.startLoop(cb)})}}createError(ErrorCtor,message,prefix,statusCode,errorCode){this._loop=false;this._errored=true;const err=new ErrorCtor(prefix?`Invalid WebSocket frame: ${message}`:message);Error.captureStackTrace(err,this.createError);err.code=errorCode;err[kStatusCode]=statusCode;return err}}module.exports=Receiver});var require_sender=__commonJS(function(exports,module){var{Duplex}=__require("stream");var{randomFillSync}=__require("crypto");var{types:{isUint8Array}}=__require("util");var PerMessageDeflate=require_permessage_deflate();var{EMPTY_BUFFER,kWebSocket,NOOP}=require_constants();var{isBlob,isValidStatusCode}=require_validation();var{mask:applyMask,toBuffer}=require_buffer_util();var kByteLength=Symbol("kByteLength");var maskBuffer=Buffer.alloc(4);var RANDOM_POOL_SIZE=8*1024;var randomPool;var randomPoolPointer=RANDOM_POOL_SIZE;var DEFAULT=0;var DEFLATING=1;var GET_BLOB_DATA=2;class Sender{constructor(socket,extensions,generateMask){this._extensions=extensions||{};if(generateMask){this._generateMask=generateMask;this._maskBuffer=Buffer.alloc(4)}this._socket=socket;this._firstFragment=true;this._compress=false;this._bufferedBytes=0;this._queue=[];this._state=DEFAULT;this.onerror=NOOP;this[kWebSocket]=undefined}static frame(data,options){let mask;let merge=false;let offset=2;let skipMasking=false;if(options.mask){mask=options.maskBuffer||maskBuffer;if(options.generateMask){options.generateMask(mask)}else{if(randomPoolPointer===RANDOM_POOL_SIZE){if(randomPool===undefined){randomPool=Buffer.alloc(RANDOM_POOL_SIZE)}randomFillSync(randomPool,0,RANDOM_POOL_SIZE);randomPoolPointer=0}mask[0]=randomPool[randomPoolPointer++];mask[1]=randomPool[randomPoolPointer++];mask[2]=randomPool[randomPoolPointer++];mask[3]=randomPool[randomPoolPointer++]}skipMasking=(mask[0]|mask[1]|mask[2]|mask[3])===0;offset=6}let dataLength;if(typeof data==="string"){if((!options.mask||skipMasking)&&options[kByteLength]!==undefined){dataLength=options[kByteLength]}else{data=Buffer.from(data);dataLength=data.length}}else{dataLength=data.length;merge=options.mask&&options.readOnly&&!skipMasking}let payloadLength=dataLength;if(dataLength>=65536){offset+=8;payloadLength=127}else if(dataLength>125){offset+=2;payloadLength=126}const target=Buffer.allocUnsafe(merge?dataLength+offset:offset);target[0]=options.fin?options.opcode|128:options.opcode;if(options.rsv1)target[0]|=64;target[1]=payloadLength;if(payloadLength===126){target.writeUInt16BE(dataLength,2)}else if(payloadLength===127){target[2]=target[3]=0;target.writeUIntBE(dataLength,4,6)}if(!options.mask)return[target,data];target[1]|=128;target[offset-4]=mask[0];target[offset-3]=mask[1];target[offset-2]=mask[2];target[offset-1]=mask[3];if(skipMasking)return[target,data];if(merge){applyMask(data,mask,target,offset,dataLength);return[target]}applyMask(data,mask,data,0,dataLength);return[target,data]}close(code,data,mask,cb){let buf;if(code===undefined){buf=EMPTY_BUFFER}else if(typeof code!=="number"||!isValidStatusCode(code)){throw new TypeError("First argument must be a valid error code number")}else if(data===undefined||!data.length){buf=Buffer.allocUnsafe(2);buf.writeUInt16BE(code,0)}else{const length=Buffer.byteLength(data);if(length>123){throw new RangeError("The message must not be greater than 123 bytes")}buf=Buffer.allocUnsafe(2+length);buf.writeUInt16BE(code,0);if(typeof data==="string"){buf.write(data,2)}else if(isUint8Array(data)){buf.set(data,2)}else{throw new TypeError("Second argument must be a string or a Uint8Array")}}const options={[kByteLength]:buf.length,fin:true,generateMask:this._generateMask,mask,maskBuffer:this._maskBuffer,opcode:8,readOnly:false,rsv1:false};if(this._state!==DEFAULT){this.enqueue([this.dispatch,buf,false,options,cb])}else{this.sendFrame(Sender.frame(buf,options),cb)}}ping(data,mask,cb){let byteLength;let readOnly;if(typeof data==="string"){byteLength=Buffer.byteLength(data);readOnly=false}else if(isBlob(data)){byteLength=data.size;readOnly=false}else{data=toBuffer(data);byteLength=data.length;readOnly=toBuffer.readOnly}if(byteLength>125){throw new RangeError("The data size must not be greater than 125 bytes")}const options={[kByteLength]:byteLength,fin:true,generateMask:this._generateMask,mask,maskBuffer:this._maskBuffer,opcode:9,readOnly,rsv1:false};if(isBlob(data)){if(this._state!==DEFAULT){this.enqueue([this.getBlobData,data,false,options,cb])}else{this.getBlobData(data,false,options,cb)}}else if(this._state!==DEFAULT){this.enqueue([this.dispatch,data,false,options,cb])}else{this.sendFrame(Sender.frame(data,options),cb)}}pong(data,mask,cb){let byteLength;let readOnly;if(typeof data==="string"){byteLength=Buffer.byteLength(data);readOnly=false}else if(isBlob(data)){byteLength=data.size;readOnly=false}else{data=toBuffer(data);byteLength=data.length;readOnly=toBuffer.readOnly}if(byteLength>125){throw new RangeError("The data size must not be greater than 125 bytes")}const options={[kByteLength]:byteLength,fin:true,generateMask:this._generateMask,mask,maskBuffer:this._maskBuffer,opcode:10,readOnly,rsv1:false};if(isBlob(data)){if(this._state!==DEFAULT){this.enqueue([this.getBlobData,data,false,options,cb])}else{this.getBlobData(data,false,options,cb)}}else if(this._state!==DEFAULT){this.enqueue([this.dispatch,data,false,options,cb])}else{this.sendFrame(Sender.frame(data,options),cb)}}send(data,options,cb){const perMessageDeflate=this._extensions[PerMessageDeflate.extensionName];let opcode=options.binary?2:1;let rsv1=options.compress;let byteLength;let readOnly;if(typeof data==="string"){byteLength=Buffer.byteLength(data);readOnly=false}else if(isBlob(data)){byteLength=data.size;readOnly=false}else{data=toBuffer(data);byteLength=data.length;readOnly=toBuffer.readOnly}if(this._firstFragment){this._firstFragment=false;if(rsv1&&perMessageDeflate&&perMessageDeflate.params[perMessageDeflate._isServer?"server_no_context_takeover":"client_no_context_takeover"]){rsv1=byteLength>=perMessageDeflate._threshold}this._compress=rsv1}else{rsv1=false;opcode=0}if(options.fin)this._firstFragment=true;const opts={[kByteLength]:byteLength,fin:options.fin,generateMask:this._generateMask,mask:options.mask,maskBuffer:this._maskBuffer,opcode,readOnly,rsv1};if(isBlob(data)){if(this._state!==DEFAULT){this.enqueue([this.getBlobData,data,this._compress,opts,cb])}else{this.getBlobData(data,this._compress,opts,cb)}}else if(this._state!==DEFAULT){this.enqueue([this.dispatch,data,this._compress,opts,cb])}else{this.dispatch(data,this._compress,opts,cb)}}getBlobData(blob,compress,options,cb){this._bufferedBytes+=options[kByteLength];this._state=GET_BLOB_DATA;blob.arrayBuffer().then((arrayBuffer)=>{if(this._socket.destroyed){const err=new Error("The socket was closed while the blob was being read");process.nextTick(callCallbacks,this,err,cb);return}this._bufferedBytes-=options[kByteLength];const data=toBuffer(arrayBuffer);if(!compress){this._state=DEFAULT;this.sendFrame(Sender.frame(data,options),cb);this.dequeue()}else{this.dispatch(data,compress,options,cb)}}).catch((err)=>{process.nextTick(onError,this,err,cb)})}dispatch(data,compress,options,cb){if(!compress){this.sendFrame(Sender.frame(data,options),cb);return}const perMessageDeflate=this._extensions[PerMessageDeflate.extensionName];this._bufferedBytes+=options[kByteLength];this._state=DEFLATING;perMessageDeflate.compress(data,options.fin,(_,buf)=>{if(this._socket.destroyed){const err=new Error("The socket was closed while data was being compressed");callCallbacks(this,err,cb);return}this._bufferedBytes-=options[kByteLength];this._state=DEFAULT;options.readOnly=false;this.sendFrame(Sender.frame(buf,options),cb);this.dequeue()})}dequeue(){while(this._state===DEFAULT&&this._queue.length){const params=this._queue.shift();this._bufferedBytes-=params[3][kByteLength];Reflect.apply(params[0],this,params.slice(1))}}enqueue(params){this._bufferedBytes+=params[3][kByteLength];this._queue.push(params)}sendFrame(list,cb){if(list.length===2){this._socket.cork();this._socket.write(list[0]);this._socket.write(list[1],cb);this._socket.uncork()}else{this._socket.write(list[0],cb)}}}module.exports=Sender;function callCallbacks(sender,err,cb){if(typeof cb==="function")cb(err);for(let i=0;i<sender._queue.length;i++){const params=sender._queue[i];const callback=params[params.length-1];if(typeof callback==="function")callback(err)}}function onError(sender,err,cb){callCallbacks(sender,err,cb);sender.onerror(err)}});var require_event_target=__commonJS(function(exports,module){var{kForOnEventAttribute,kListener}=require_constants();var kCode=Symbol("kCode");var kData=Symbol("kData");var kError=Symbol("kError");var kMessage=Symbol("kMessage");var kReason=Symbol("kReason");var kTarget=Symbol("kTarget");var kType=Symbol("kType");var kWasClean=Symbol("kWasClean");class Event{constructor(type){this[kTarget]=null;this[kType]=type}get target(){return this[kTarget]}get type(){return this[kType]}}Object.defineProperty(Event.prototype,"target",{enumerable:true});Object.defineProperty(Event.prototype,"type",{enumerable:true});class CloseEvent extends Event{constructor(type,options={}){super(type);this[kCode]=options.code===undefined?0:options.code;this[kReason]=options.reason===undefined?"":options.reason;this[kWasClean]=options.wasClean===undefined?false:options.wasClean}get code(){return this[kCode]}get reason(){return this[kReason]}get wasClean(){return this[kWasClean]}}Object.defineProperty(CloseEvent.prototype,"code",{enumerable:true});Object.defineProperty(CloseEvent.prototype,"reason",{enumerable:true});Object.defineProperty(CloseEvent.prototype,"wasClean",{enumerable:true});class ErrorEvent extends Event{constructor(type,options={}){super(type);this[kError]=options.error===undefined?null:options.error;this[kMessage]=options.message===undefined?"":options.message}get error(){return this[kError]}get message(){return this[kMessage]}}Object.defineProperty(ErrorEvent.prototype,"error",{enumerable:true});Object.defineProperty(ErrorEvent.prototype,"message",{enumerable:true});class MessageEvent extends Event{constructor(type,options={}){super(type);this[kData]=options.data===undefined?null:options.data}get data(){return this[kData]}}Object.defineProperty(MessageEvent.prototype,"data",{enumerable:true});var EventTarget={addEventListener(type,handler,options={}){for(const listener of this.listeners(type)){if(!options[kForOnEventAttribute]&&listener[kListener]===handler&&!listener[kForOnEventAttribute]){return}}let wrapper;if(type==="message"){wrapper=function onMessage(data,isBinary){const event=new MessageEvent("message",{data:isBinary?data:data.toString()});event[kTarget]=this;callListener(handler,this,event)}}else if(type==="close"){wrapper=function onClose(code,message){const event=new CloseEvent("close",{code,reason:message.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});event[kTarget]=this;callListener(handler,this,event)}}else if(type==="error"){wrapper=function onError(error){const event=new ErrorEvent("error",{error,message:error.message});event[kTarget]=this;callListener(handler,this,event)}}else if(type==="open"){wrapper=function onOpen(){const event=new Event("open");event[kTarget]=this;callListener(handler,this,event)}}else{return}wrapper[kForOnEventAttribute]=!!options[kForOnEventAttribute];wrapper[kListener]=handler;if(options.once){this.once(type,wrapper)}else{this.on(type,wrapper)}},removeEventListener(type,handler){for(const listener of this.listeners(type)){if(listener[kListener]===handler&&!listener[kForOnEventAttribute]){this.removeListener(type,listener);break}}}};module.exports={CloseEvent,ErrorEvent,Event,EventTarget,MessageEvent};function callListener(listener,thisArg,event){if(typeof listener==="object"&&listener.handleEvent){listener.handleEvent.call(listener,event)}else{listener.call(thisArg,event)}}});var require_extension=__commonJS(function(exports,module){var{tokenChars}=require_validation();function push(dest,name,elem){if(dest[name]===undefined)dest[name]=[elem];else dest[name].push(elem)}function parse(header){const offers=Object.create(null);let params=Object.create(null);let mustUnescape=false;let isEscaping=false;let inQuotes=false;let extensionName;let paramName;let start=-1;let code=-1;let end=-1;let i=0;for(;i<header.length;i++){code=header.charCodeAt(i);if(extensionName===undefined){if(end===-1&&tokenChars[code]===1){if(start===-1)start=i}else if(i!==0&&(code===32||code===9)){if(end===-1&&start!==-1)end=i}else if(code===59||code===44){if(start===-1){throw new SyntaxError(`Unexpected character at index ${i}`)}if(end===-1)end=i;const name=header.slice(start,end);if(code===44){push(offers,name,params);params=Object.create(null)}else{extensionName=name}start=end=-1}else{throw new SyntaxError(`Unexpected character at index ${i}`)}}else if(paramName===undefined){if(end===-1&&tokenChars[code]===1){if(start===-1)start=i}else if(code===32||code===9){if(end===-1&&start!==-1)end=i}else if(code===59||code===44){if(start===-1){throw new SyntaxError(`Unexpected character at index ${i}`)}if(end===-1)end=i;push(params,header.slice(start,end),true);if(code===44){push(offers,extensionName,params);params=Object.create(null);extensionName=undefined}start=end=-1}else if(code===61&&start!==-1&&end===-1){paramName=header.slice(start,i);start=end=-1}else{throw new SyntaxError(`Unexpected character at index ${i}`)}}else{if(isEscaping){if(tokenChars[code]!==1){throw new SyntaxError(`Unexpected character at index ${i}`)}if(start===-1)start=i;else if(!mustUnescape)mustUnescape=true;isEscaping=false}else if(inQuotes){if(tokenChars[code]===1){if(start===-1)start=i}else if(code===34&&start!==-1){inQuotes=false;end=i}else if(code===92){isEscaping=true}else{throw new SyntaxError(`Unexpected character at index ${i}`)}}else if(code===34&&header.charCodeAt(i-1)===61){inQuotes=true}else if(end===-1&&tokenChars[code]===1){if(start===-1)start=i}else if(start!==-1&&(code===32||code===9)){if(end===-1)end=i}else if(code===59||code===44){if(start===-1){throw new SyntaxError(`Unexpected character at index ${i}`)}if(end===-1)end=i;let value=header.slice(start,end);if(mustUnescape){value=value.replace(/\\/g,"");mustUnescape=false}push(params,paramName,value);if(code===44){push(offers,extensionName,params);params=Object.create(null);extensionName=undefined}paramName=undefined;start=end=-1}else{throw new SyntaxError(`Unexpected character at index ${i}`)}}}if(start===-1||inQuotes||code===32||code===9){throw new SyntaxError("Unexpected end of input")}if(end===-1)end=i;const token=header.slice(start,end);if(extensionName===undefined){push(offers,token,params)}else{if(paramName===undefined){push(params,token,true)}else if(mustUnescape){push(params,paramName,token.replace(/\\/g,""))}else{push(params,paramName,token)}push(offers,extensionName,params)}return offers}function format(extensions){return Object.keys(extensions).map((extension)=>{let configurations=extensions[extension];if(!Array.isArray(configurations))configurations=[configurations];return configurations.map((params)=>{return[extension].concat(Object.keys(params).map((k)=>{let values=params[k];if(!Array.isArray(values))values=[values];return values.map((v)=>v===true?k:`${k}=${v}`).join("; ")})).join("; ")}).join(", ")}).join(", ")}module.exports={format,parse}});var require_websocket=__commonJS(function(exports,module){var EventEmitter=__require("events");var https=__require("https");var http=__require("http");var net=__require("net");var tls=__require("tls");var{randomBytes,createHash}=__require("crypto");var{Duplex,Readable}=__require("stream");var{URL:URL2}=__require("url");var PerMessageDeflate=require_permessage_deflate();var Receiver=require_receiver();var Sender=require_sender();var{isBlob}=require_validation();var{BINARY_TYPES,CLOSE_TIMEOUT,EMPTY_BUFFER,GUID,kForOnEventAttribute,kListener,kStatusCode,kWebSocket,NOOP}=require_constants();var{EventTarget:{addEventListener,removeEventListener}}=require_event_target();var{format,parse}=require_extension();var{toBuffer}=require_buffer_util();var kAborted=Symbol("kAborted");var protocolVersions=[8,13];var readyStates=["CONNECTING","OPEN","CLOSING","CLOSED"];var subprotocolRegex=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;class WebSocket extends EventEmitter{constructor(address,protocols,options){super();this._binaryType=BINARY_TYPES[0];this._closeCode=1006;this._closeFrameReceived=false;this._closeFrameSent=false;this._closeMessage=EMPTY_BUFFER;this._closeTimer=null;this._errorEmitted=false;this._extensions={};this._paused=false;this._protocol="";this._readyState=WebSocket.CONNECTING;this._receiver=null;this._sender=null;this._socket=null;if(address!==null){this._bufferedAmount=0;this._isServer=false;this._redirects=0;if(protocols===undefined){protocols=[]}else if(!Array.isArray(protocols)){if(typeof protocols==="object"&&protocols!==null){options=protocols;protocols=[]}else{protocols=[protocols]}}initAsClient(this,address,protocols,options)}else{this._autoPong=options.autoPong;this._closeTimeout=options.closeTimeout;this._isServer=true}}get binaryType(){return this._binaryType}set binaryType(type){if(!BINARY_TYPES.includes(type))return;this._binaryType=type;if(this._receiver)this._receiver._binaryType=type}get bufferedAmount(){if(!this._socket)return this._bufferedAmount;return this._socket._writableState.length+this._sender._bufferedBytes}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(socket,head,options){const receiver=new Receiver({allowSynchronousEvents:options.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxBufferedChunks:options.maxBufferedChunks,maxFragments:options.maxFragments,maxPayload:options.maxPayload,skipUTF8Validation:options.skipUTF8Validation});const sender=new Sender(socket,this._extensions,options.generateMask);this._receiver=receiver;this._sender=sender;this._socket=socket;receiver[kWebSocket]=this;sender[kWebSocket]=this;socket[kWebSocket]=this;receiver.on("conclude",receiverOnConclude);receiver.on("drain",receiverOnDrain);receiver.on("error",receiverOnError);receiver.on("message",receiverOnMessage);receiver.on("ping",receiverOnPing);receiver.on("pong",receiverOnPong);sender.onerror=senderOnError;if(socket.setTimeout)socket.setTimeout(0);if(socket.setNoDelay)socket.setNoDelay();if(head.length>0)socket.unshift(head);socket.on("close",socketOnClose);socket.on("data",socketOnData);socket.on("end",socketOnEnd);socket.on("error",socketOnError);this._readyState=WebSocket.OPEN;this.emit("open")}emitClose(){if(!this._socket){this._readyState=WebSocket.CLOSED;this.emit("close",this._closeCode,this._closeMessage);return}if(this._extensions[PerMessageDeflate.extensionName]){this._extensions[PerMessageDeflate.extensionName].cleanup()}this._receiver.removeAllListeners();this._readyState=WebSocket.CLOSED;this.emit("close",this._closeCode,this._closeMessage)}close(code,data){if(this.readyState===WebSocket.CLOSED)return;if(this.readyState===WebSocket.CONNECTING){const msg="WebSocket was closed before the connection was established";abortHandshake(this,this._req,msg);return}if(this.readyState===WebSocket.CLOSING){if(this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)){this._socket.end()}return}this._readyState=WebSocket.CLOSING;this._sender.close(code,data,!this._isServer,(err)=>{if(err)return;this._closeFrameSent=true;if(this._closeFrameReceived||this._receiver._writableState.errorEmitted){this._socket.end()}});setCloseTimer(this)}pause(){if(this.readyState===WebSocket.CONNECTING||this.readyState===WebSocket.CLOSED){return}this._paused=true;this._socket.pause()}ping(data,mask,cb){if(this.readyState===WebSocket.CONNECTING){throw new Error("WebSocket is not open: readyState 0 (CONNECTING)")}if(typeof data==="function"){cb=data;data=mask=undefined}else if(typeof mask==="function"){cb=mask;mask=undefined}if(typeof data==="number")data=data.toString();if(this.readyState!==WebSocket.OPEN){sendAfterClose(this,data,cb);return}if(mask===undefined)mask=!this._isServer;this._sender.ping(data||EMPTY_BUFFER,mask,cb)}pong(data,mask,cb){if(this.readyState===WebSocket.CONNECTING){throw new Error("WebSocket is not open: readyState 0 (CONNECTING)")}if(typeof data==="function"){cb=data;data=mask=undefined}else if(typeof mask==="function"){cb=mask;mask=undefined}if(typeof data==="number")data=data.toString();if(this.readyState!==WebSocket.OPEN){sendAfterClose(this,data,cb);return}if(mask===undefined)mask=!this._isServer;this._sender.pong(data||EMPTY_BUFFER,mask,cb)}resume(){if(this.readyState===WebSocket.CONNECTING||this.readyState===WebSocket.CLOSED){return}this._paused=false;if(!this._receiver._writableState.needDrain)this._socket.resume()}send(data,options,cb){if(this.readyState===WebSocket.CONNECTING){throw new Error("WebSocket is not open: readyState 0 (CONNECTING)")}if(typeof options==="function"){cb=options;options={}}if(typeof data==="number")data=data.toString();if(this.readyState!==WebSocket.OPEN){sendAfterClose(this,data,cb);return}const opts={binary:typeof data!=="string",mask:!this._isServer,compress:true,fin:true,...options};if(!this._extensions[PerMessageDeflate.extensionName]){opts.compress=false}this._sender.send(data||EMPTY_BUFFER,opts,cb)}terminate(){if(this.readyState===WebSocket.CLOSED)return;if(this.readyState===WebSocket.CONNECTING){const msg="WebSocket was closed before the connection was established";abortHandshake(this,this._req,msg);return}if(this._socket){this._readyState=WebSocket.CLOSING;this._socket.destroy()}}}Object.defineProperty(WebSocket,"CONNECTING",{enumerable:true,value:readyStates.indexOf("CONNECTING")});Object.defineProperty(WebSocket.prototype,"CONNECTING",{enumerable:true,value:readyStates.indexOf("CONNECTING")});Object.defineProperty(WebSocket,"OPEN",{enumerable:true,value:readyStates.indexOf("OPEN")});Object.defineProperty(WebSocket.prototype,"OPEN",{enumerable:true,value:readyStates.indexOf("OPEN")});Object.defineProperty(WebSocket,"CLOSING",{enumerable:true,value:readyStates.indexOf("CLOSING")});Object.defineProperty(WebSocket.prototype,"CLOSING",{enumerable:true,value:readyStates.indexOf("CLOSING")});Object.defineProperty(WebSocket,"CLOSED",{enumerable:true,value:readyStates.indexOf("CLOSED")});Object.defineProperty(WebSocket.prototype,"CLOSED",{enumerable:true,value:readyStates.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach((property)=>{Object.defineProperty(WebSocket.prototype,property,{enumerable:true})});["open","error","close","message"].forEach((method)=>{Object.defineProperty(WebSocket.prototype,`on${method}`,{enumerable:true,get(){for(const listener of this.listeners(method)){if(listener[kForOnEventAttribute])return listener[kListener]}return null},set(handler){for(const listener of this.listeners(method)){if(listener[kForOnEventAttribute]){this.removeListener(method,listener);break}}if(typeof handler!=="function")return;this.addEventListener(method,handler,{[kForOnEventAttribute]:true})}})});WebSocket.prototype.addEventListener=addEventListener;WebSocket.prototype.removeEventListener=removeEventListener;module.exports=WebSocket;function initAsClient(websocket,address,protocols,options){const opts={allowSynchronousEvents:true,autoPong:true,closeTimeout:CLOSE_TIMEOUT,protocolVersion:protocolVersions[1],maxBufferedChunks:256*1024,maxFragments:16*1024,maxPayload:100*1024*1024,skipUTF8Validation:false,perMessageDeflate:true,followRedirects:false,maxRedirects:10,...options,socketPath:undefined,hostname:undefined,protocol:undefined,timeout:undefined,method:"GET",host:undefined,path:undefined,port:undefined};websocket._autoPong=opts.autoPong;websocket._closeTimeout=opts.closeTimeout;if(!protocolVersions.includes(opts.protocolVersion)){throw new RangeError(`Unsupported protocol version: ${opts.protocolVersion} `+`(supported versions: ${protocolVersions.join(", ")})`)}let parsedUrl;if(address instanceof URL2){parsedUrl=address}else{try{parsedUrl=new URL2(address)}catch{throw new SyntaxError(`Invalid URL: ${address}`)}}if(parsedUrl.protocol==="http:"){parsedUrl.protocol="ws:"}else if(parsedUrl.protocol==="https:"){parsedUrl.protocol="wss:"}websocket._url=parsedUrl.href;const isSecure=parsedUrl.protocol==="wss:";const isIpcUrl=parsedUrl.protocol==="ws+unix:";let invalidUrlMessage;if(parsedUrl.protocol!=="ws:"&&!isSecure&&!isIpcUrl){invalidUrlMessage=`The URL's protocol must be one of "ws:", "wss:", `+'"http:", "https:", or "ws+unix:"'}else if(isIpcUrl&&!parsedUrl.pathname){invalidUrlMessage="The URL's pathname is empty"}else if(parsedUrl.hash){invalidUrlMessage="The URL contains a fragment identifier"}if(invalidUrlMessage){const err=new SyntaxError(invalidUrlMessage);if(websocket._redirects===0){throw err}else{emitErrorAndClose(websocket,err);return}}const defaultPort=isSecure?443:80;const key=randomBytes(16).toString("base64");const request3=isSecure?https.request:http.request;const protocolSet=new Set;let perMessageDeflate;opts.createConnection=opts.createConnection||(isSecure?tlsConnect:netConnect);opts.defaultPort=opts.defaultPort||defaultPort;opts.port=parsedUrl.port||defaultPort;opts.host=parsedUrl.hostname.startsWith("[")?parsedUrl.hostname.slice(1,-1):parsedUrl.hostname;opts.headers={...opts.headers,"Sec-WebSocket-Version":opts.protocolVersion,"Sec-WebSocket-Key":key,Connection:"Upgrade",Upgrade:"websocket"};opts.path=parsedUrl.pathname+parsedUrl.search;opts.timeout=opts.handshakeTimeout;if(opts.perMessageDeflate){perMessageDeflate=new PerMessageDeflate({...opts.perMessageDeflate,isServer:false,maxPayload:opts.maxPayload});opts.headers["Sec-WebSocket-Extensions"]=format({[PerMessageDeflate.extensionName]:perMessageDeflate.offer()})}if(protocols.length){for(const protocol of protocols){if(typeof protocol!=="string"||!subprotocolRegex.test(protocol)||protocolSet.has(protocol)){throw new SyntaxError("An invalid or duplicated subprotocol was specified")}protocolSet.add(protocol)}opts.headers["Sec-WebSocket-Protocol"]=protocols.join(",")}if(opts.origin){if(opts.protocolVersion<13){opts.headers["Sec-WebSocket-Origin"]=opts.origin}else{opts.headers.Origin=opts.origin}}if(parsedUrl.username||parsedUrl.password){opts.auth=`${parsedUrl.username}:${parsedUrl.password}`}if(isIpcUrl){const parts=opts.path.split(":");opts.socketPath=parts[0];opts.path=parts[1]}let req;if(opts.followRedirects){if(websocket._redirects===0){websocket._originalIpc=isIpcUrl;websocket._originalSecure=isSecure;websocket._originalHostOrSocketPath=isIpcUrl?opts.socketPath:parsedUrl.host;const headers=options&&options.headers;options={...options,headers:{}};if(headers){for(const[key,value]of Object.entries(headers)){options.headers[key.toLowerCase()]=value}}}else if(websocket.listenerCount("redirect")===0){const isSameHost=isIpcUrl?websocket._originalIpc?opts.socketPath===websocket._originalHostOrSocketPath:false:websocket._originalIpc?false:parsedUrl.host===websocket._originalHostOrSocketPath;if(!isSameHost||websocket._originalSecure&&!isSecure){delete opts.headers.authorization;delete opts.headers.cookie;if(!isSameHost)delete opts.headers.host;opts.auth=undefined}}if(opts.auth&&!options.headers.authorization){options.headers.authorization="Basic "+Buffer.from(opts.auth).toString("base64")}req=websocket._req=request3(opts);if(websocket._redirects){websocket.emit("redirect",websocket.url,req)}}else{req=websocket._req=request3(opts)}if(opts.timeout){req.on("timeout",()=>{abortHandshake(websocket,req,"Opening handshake has timed out")})}req.on("error",(err)=>{if(req===null||req[kAborted])return;req=websocket._req=null;emitErrorAndClose(websocket,err)});req.on("response",(res)=>{const location2=res.headers.location;const statusCode=res.statusCode;if(location2&&opts.followRedirects&&statusCode>=300&&statusCode<400){if(++websocket._redirects>opts.maxRedirects){abortHandshake(websocket,req,"Maximum redirects exceeded");return}req.abort();let addr;try{addr=new URL2(location2,address)}catch(e){const err=new SyntaxError(`Invalid URL: ${location2}`);emitErrorAndClose(websocket,err);return}initAsClient(websocket,addr,protocols,options)}else if(!websocket.emit("unexpected-response",req,res)){abortHandshake(websocket,req,`Unexpected server response: ${res.statusCode}`)}});req.on("upgrade",(res,socket,head)=>{websocket.emit("upgrade",res);if(websocket.readyState!==WebSocket.CONNECTING)return;req=websocket._req=null;const upgrade=res.headers.upgrade;if(upgrade===undefined||upgrade.toLowerCase()!=="websocket"){abortHandshake(websocket,socket,"Invalid Upgrade header");return}const digest=createHash("sha1").update(key+GUID).digest("base64");if(res.headers["sec-websocket-accept"]!==digest){abortHandshake(websocket,socket,"Invalid Sec-WebSocket-Accept header");return}const serverProt=res.headers["sec-websocket-protocol"];let protError;if(serverProt!==undefined){if(!protocolSet.size){protError="Server sent a subprotocol but none was requested"}else if(!protocolSet.has(serverProt)){protError="Server sent an invalid subprotocol"}}else if(protocolSet.size){protError="Server sent no subprotocol"}if(protError){abortHandshake(websocket,socket,protError);return}if(serverProt)websocket._protocol=serverProt;const secWebSocketExtensions=res.headers["sec-websocket-extensions"];if(secWebSocketExtensions!==undefined){if(!perMessageDeflate){const message="Server sent a Sec-WebSocket-Extensions header but no extension "+"was requested";abortHandshake(websocket,socket,message);return}let extensions;try{extensions=parse(secWebSocketExtensions)}catch(err){const message="Invalid Sec-WebSocket-Extensions header";abortHandshake(websocket,socket,message);return}const extensionNames=Object.keys(extensions);if(extensionNames.length!==1||extensionNames[0]!==PerMessageDeflate.extensionName){const message="Server indicated an extension that was not requested";abortHandshake(websocket,socket,message);return}try{perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName])}catch(err){const message="Invalid Sec-WebSocket-Extensions header";abortHandshake(websocket,socket,message);return}websocket._extensions[PerMessageDeflate.extensionName]=perMessageDeflate}websocket.setSocket(socket,head,{allowSynchronousEvents:opts.allowSynchronousEvents,generateMask:opts.generateMask,maxBufferedChunks:opts.maxBufferedChunks,maxFragments:opts.maxFragments,maxPayload:opts.maxPayload,skipUTF8Validation:opts.skipUTF8Validation})});if(opts.finishRequest){opts.finishRequest(req,websocket)}else{req.end()}}function emitErrorAndClose(websocket,err){websocket._readyState=WebSocket.CLOSING;websocket._errorEmitted=true;websocket.emit("error",err);websocket.emitClose()}function netConnect(options){options.path=options.socketPath;return net.connect(options)}function tlsConnect(options){options.path=undefined;if(!options.servername&&options.servername!==""){options.servername=net.isIP(options.host)?"":options.host}return tls.connect(options)}function abortHandshake(websocket,stream,message){websocket._readyState=WebSocket.CLOSING;const err=new Error(message);Error.captureStackTrace(err,abortHandshake);if(stream.setHeader){stream[kAborted]=true;stream.abort();if(stream.socket&&!stream.socket.destroyed){stream.socket.destroy()}process.nextTick(emitErrorAndClose,websocket,err)}else{stream.destroy(err);stream.once("error",websocket.emit.bind(websocket,"error"));stream.once("close",websocket.emitClose.bind(websocket))}}function sendAfterClose(websocket,data,cb){if(data){const length=isBlob(data)?data.size:toBuffer(data).length;if(websocket._socket)websocket._sender._bufferedBytes+=length;else websocket._bufferedAmount+=length}if(cb){const err=new Error(`WebSocket is not open: readyState ${websocket.readyState} `+`(${readyStates[websocket.readyState]})`);process.nextTick(cb,err)}}function receiverOnConclude(code,reason){const websocket=this[kWebSocket];websocket._closeFrameReceived=true;websocket._closeMessage=reason;websocket._closeCode=code;if(websocket._socket[kWebSocket]===undefined)return;websocket._socket.removeListener("data",socketOnData);process.nextTick(resume,websocket._socket);if(code===1005)websocket.close();else websocket.close(code,reason)}function receiverOnDrain(){const websocket=this[kWebSocket];if(!websocket.isPaused)websocket._socket.resume()}function receiverOnError(err){const websocket=this[kWebSocket];if(websocket._socket[kWebSocket]!==undefined){websocket._socket.removeListener("data",socketOnData);process.nextTick(resume,websocket._socket);websocket.close(err[kStatusCode])}if(!websocket._errorEmitted){websocket._errorEmitted=true;websocket.emit("error",err)}}function receiverOnFinish(){this[kWebSocket].emitClose()}function receiverOnMessage(data,isBinary){this[kWebSocket].emit("message",data,isBinary)}function receiverOnPing(data){const websocket=this[kWebSocket];if(websocket._autoPong)websocket.pong(data,!this._isServer,NOOP);websocket.emit("ping",data)}function receiverOnPong(data){this[kWebSocket].emit("pong",data)}function resume(stream){stream.resume()}function senderOnError(err){const websocket=this[kWebSocket];if(websocket.readyState===WebSocket.CLOSED)return;if(websocket.readyState===WebSocket.OPEN){websocket._readyState=WebSocket.CLOSING;setCloseTimer(websocket)}this._socket.end();if(!websocket._errorEmitted){websocket._errorEmitted=true;websocket.emit("error",err)}}function setCloseTimer(websocket){websocket._closeTimer=setTimeout(websocket._socket.destroy.bind(websocket._socket),websocket._closeTimeout)}function socketOnClose(){const websocket=this[kWebSocket];this.removeListener("close",socketOnClose);this.removeListener("data",socketOnData);this.removeListener("end",socketOnEnd);websocket._readyState=WebSocket.CLOSING;if(!this._readableState.endEmitted&&!websocket._closeFrameReceived&&!websocket._receiver._writableState.errorEmitted&&this._readableState.length!==0){const chunk=this.read(this._readableState.length);websocket._receiver.write(chunk)}websocket._receiver.end();this[kWebSocket]=undefined;clearTimeout(websocket._closeTimer);if(websocket._receiver._writableState.finished||websocket._receiver._writableState.errorEmitted){websocket.emitClose()}else{websocket._receiver.on("error",receiverOnFinish);websocket._receiver.on("finish",receiverOnFinish)}}function socketOnData(chunk){if(!this[kWebSocket]._receiver.write(chunk)){this.pause()}}function socketOnEnd(){const websocket=this[kWebSocket];websocket._readyState=WebSocket.CLOSING;websocket._receiver.end();this.end()}function socketOnError(){const websocket=this[kWebSocket];this.removeListener("error",socketOnError);this.on("error",NOOP);if(websocket){websocket._readyState=WebSocket.CLOSING;this.destroy()}}});var require_stream=__commonJS(function(exports,module){var WebSocket=require_websocket();var{Duplex}=__require("stream");function emitClose(stream){stream.emit("close")}function duplexOnEnd(){if(!this.destroyed&&this._writableState.finished){this.destroy()}}function duplexOnError(err){this.removeListener("error",duplexOnError);this.destroy();if(this.listenerCount("error")===0){this.emit("error",err)}}function createWebSocketStream(ws,options){let terminateOnDestroy=true;const duplex=new Duplex({...options,autoDestroy:false,emitClose:false,objectMode:false,writableObjectMode:false});ws.on("message",function message(msg,isBinary){const data=!isBinary&&duplex._readableState.objectMode?msg.toString():msg;if(!duplex.push(data))ws.pause()});ws.once("error",function error(err){if(duplex.destroyed)return;terminateOnDestroy=false;duplex.destroy(err)});ws.once("close",function close(){if(duplex.destroyed)return;duplex.push(null)});duplex._destroy=function(err,callback){if(ws.readyState===ws.CLOSED){callback(err);process.nextTick(emitClose,duplex);return}let called=false;ws.once("error",function error(err){called=true;callback(err)});ws.once("close",function close(){if(!called)callback(err);process.nextTick(emitClose,duplex)});if(terminateOnDestroy)ws.terminate()};duplex._final=function(callback){if(ws.readyState===ws.CONNECTING){ws.once("open",function open(){duplex._final(callback)});return}if(ws._socket===null)return;if(ws._socket._writableState.finished){callback();if(duplex._readableState.endEmitted)duplex.destroy()}else{ws._socket.once("finish",function finish(){callback()});ws.close()}};duplex._read=function(){if(ws.isPaused)ws.resume()};duplex._write=function(chunk,encoding,callback){if(ws.readyState===ws.CONNECTING){ws.once("open",function open(){duplex._write(chunk,encoding,callback)});return}ws.send(chunk,callback)};duplex.on("end",duplexOnEnd);duplex.on("error",duplexOnError);return duplex}module.exports=createWebSocketStream});var require_subprotocol=__commonJS(function(exports,module){var{tokenChars}=require_validation();function parse(header){const protocols=new Set;let start=-1;let end=-1;let i=0;for(i;i<header.length;i++){const code=header.charCodeAt(i);if(end===-1&&tokenChars[code]===1){if(start===-1)start=i}else if(i!==0&&(code===32||code===9)){if(end===-1&&start!==-1)end=i}else if(code===44){if(start===-1){throw new SyntaxError(`Unexpected character at index ${i}`)}if(end===-1)end=i;const protocol=header.slice(start,end);if(protocols.has(protocol)){throw new SyntaxError(`The "${protocol}" subprotocol is duplicated`)}protocols.add(protocol);start=end=-1}else{throw new SyntaxError(`Unexpected character at index ${i}`)}}if(start===-1||end!==-1){throw new SyntaxError("Unexpected end of input")}const protocol=header.slice(start,i);if(protocols.has(protocol)){throw new SyntaxError(`The "${protocol}" subprotocol is duplicated`)}protocols.add(protocol);return protocols}module.exports={parse}});var require_websocket_server=__commonJS(function(exports,module){var EventEmitter=__require("events");var http=__require("http");var{Duplex}=__require("stream");var{createHash}=__require("crypto");var extension=require_extension();var PerMessageDeflate=require_permessage_deflate();var subprotocol=require_subprotocol();var WebSocket=require_websocket();var{CLOSE_TIMEOUT,GUID,kWebSocket}=require_constants();var keyRegex=/^[+/0-9A-Za-z]{22}==$/;var RUNNING=0;var CLOSING=1;var CLOSED=2;class WebSocketServer extends EventEmitter{constructor(options,callback){super();options={allowSynchronousEvents:true,autoPong:true,maxBufferedChunks:256*1024,maxFragments:16*1024,maxPayload:100*1024*1024,skipUTF8Validation:false,perMessageDeflate:false,handleProtocols:null,clientTracking:true,closeTimeout:CLOSE_TIMEOUT,verifyClient:null,noServer:false,backlog:null,server:null,host:null,path:null,port:null,WebSocket,...options};if(options.port==null&&!options.server&&!options.noServer||options.port!=null&&(options.server||options.noServer)||options.server&&options.noServer){throw new TypeError('One and only one of the "port", "server", or "noServer" options '+"must be specified")}if(options.port!=null){this._server=http.createServer((req,res)=>{const body=http.STATUS_CODES[426];res.writeHead(426,{"Content-Length":body.length,"Content-Type":"text/plain"});res.end(body)});this._server.listen(options.port,options.host,options.backlog,callback)}else if(options.server){this._server=options.server}if(this._server){const emitConnection=this.emit.bind(this,"connection");this._removeListeners=addListeners(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(req,socket,head)=>{this.handleUpgrade(req,socket,head,emitConnection)}})}if(options.perMessageDeflate===true)options.perMessageDeflate={};if(options.clientTracking){this.clients=new Set;this._shouldEmitClose=false}this.options=options;this._state=RUNNING}address(){if(this.options.noServer){throw new Error('The server is operating in "noServer" mode')}if(!this._server)return null;return this._server.address()}close(cb){if(this._state===CLOSED){if(cb){this.once("close",()=>{cb(new Error("The server is not running"))})}process.nextTick(emitClose,this);return}if(cb)this.once("close",cb);if(this._state===CLOSING)return;this._state=CLOSING;if(this.options.noServer||this.options.server){if(this._server){this._removeListeners();this._removeListeners=this._server=null}if(this.clients){if(!this.clients.size){process.nextTick(emitClose,this)}else{this._shouldEmitClose=true}}else{process.nextTick(emitClose,this)}}else{const server=this._server;this._removeListeners();this._removeListeners=this._server=null;server.close(()=>{emitClose(this)})}}shouldHandle(req){if(this.options.path){const index=req.url.indexOf("?");const pathname=index!==-1?req.url.slice(0,index):req.url;if(pathname!==this.options.path)return false}return true}handleUpgrade(req,socket,head,cb){socket.on("error",socketOnError);const key=req.headers["sec-websocket-key"];const upgrade=req.headers.upgrade;const version=+req.headers["sec-websocket-version"];if(req.method!=="GET"){const message="Invalid HTTP method";abortHandshakeOrEmitwsClientError(this,req,socket,405,message);return}if(upgrade===undefined||upgrade.toLowerCase()!=="websocket"){const message="Invalid Upgrade header";abortHandshakeOrEmitwsClientError(this,req,socket,400,message);return}if(key===undefined||!keyRegex.test(key)){const message="Missing or invalid Sec-WebSocket-Key header";abortHandshakeOrEmitwsClientError(this,req,socket,400,message);return}if(version!==13&&version!==8){const message="Missing or invalid Sec-WebSocket-Version header";abortHandshakeOrEmitwsClientError(this,req,socket,400,message,{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(req)){abortHandshake(socket,400);return}const secWebSocketProtocol=req.headers["sec-websocket-protocol"];let protocols=new Set;if(secWebSocketProtocol!==undefined){try{protocols=subprotocol.parse(secWebSocketProtocol)}catch(err){const message="Invalid Sec-WebSocket-Protocol header";abortHandshakeOrEmitwsClientError(this,req,socket,400,message);return}}const secWebSocketExtensions=req.headers["sec-websocket-extensions"];const extensions={};if(this.options.perMessageDeflate&&secWebSocketExtensions!==undefined){const perMessageDeflate=new PerMessageDeflate({...this.options.perMessageDeflate,isServer:true,maxPayload:this.options.maxPayload});try{const offers=extension.parse(secWebSocketExtensions);if(offers[PerMessageDeflate.extensionName]){perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]);extensions[PerMessageDeflate.extensionName]=perMessageDeflate}}catch(err){const message="Invalid or unacceptable Sec-WebSocket-Extensions header";abortHandshakeOrEmitwsClientError(this,req,socket,400,message);return}}if(this.options.verifyClient){const info={origin:req.headers[`${version===8?"sec-websocket-origin":"origin"}`],secure:!!(req.socket.authorized||req.socket.encrypted),req};if(this.options.verifyClient.length===2){this.options.verifyClient(info,(verified,code,message,headers)=>{if(!verified){return abortHandshake(socket,code||401,message,headers)}this.completeUpgrade(extensions,key,protocols,req,socket,head,cb)});return}if(!this.options.verifyClient(info))return abortHandshake(socket,401)}this.completeUpgrade(extensions,key,protocols,req,socket,head,cb)}completeUpgrade(extensions,key,protocols,req,socket,head,cb){if(!socket.readable||!socket.writable)return socket.destroy();if(socket[kWebSocket]){throw new Error("server.handleUpgrade() was called more than once with the same "+"socket, possibly due to a misconfiguration")}if(this._state>RUNNING)return abortHandshake(socket,503);const digest=createHash("sha1").update(key+GUID).digest("base64");const headers=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${digest}`];const ws=new this.options.WebSocket(null,undefined,this.options);if(protocols.size){const protocol=this.options.handleProtocols?this.options.handleProtocols(protocols,req):protocols.values().next().value;if(protocol){headers.push(`Sec-WebSocket-Protocol: ${protocol}`);ws._protocol=protocol}}if(extensions[PerMessageDeflate.extensionName]){const params=extensions[PerMessageDeflate.extensionName].params;const value=extension.format({[PerMessageDeflate.extensionName]:[params]});headers.push(`Sec-WebSocket-Extensions: ${value}`);ws._extensions=extensions}this.emit("headers",headers,req);socket.write(headers.concat(`\r
2
+ `).join(`\r
3
+ `));socket.removeListener("error",socketOnError);ws.setSocket(socket,head,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxBufferedChunks:this.options.maxBufferedChunks,maxFragments:this.options.maxFragments,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation});if(this.clients){this.clients.add(ws);ws.on("close",()=>{this.clients.delete(ws);if(this._shouldEmitClose&&!this.clients.size){process.nextTick(emitClose,this)}})}cb(ws,req)}}module.exports=WebSocketServer;function addListeners(server,map){for(const event of Object.keys(map))server.on(event,map[event]);return function removeListeners(){for(const event of Object.keys(map)){server.removeListener(event,map[event])}}}function emitClose(server){server._state=CLOSED;server.emit("close")}function socketOnError(){this.destroy()}function abortHandshake(socket,code,message,headers){message=message||http.STATUS_CODES[code];headers={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(message),...headers};socket.once("finish",socket.destroy);socket.end(`HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\r
4
+ `+Object.keys(headers).map((h)=>`${h}: ${headers[h]}`).join(`\r
5
+ `)+`\r
6
+ \r
7
+ `+message)}function abortHandshakeOrEmitwsClientError(server,req,socket,code,message,headers){if(server.listenerCount("wsClientError")){const err=new Error(message);Error.captureStackTrace(err,abortHandshakeOrEmitwsClientError);server.emit("wsClientError",err,socket,req)}else{abortHandshake(socket,code,message,headers)}}});var targetCreationCapability;var init_internal_capability=__esm(()=>{targetCreationCapability=Symbol("omowright.targetCreationCapability")});function validateViewport(viewport){if(!viewport||!Number.isInteger(viewport.width)||viewport.width<=0||!Number.isInteger(viewport.height)||viewport.height<=0)throw new TypeError("viewport width and height must be positive integers");return{width:viewport.width,height:viewport.height}}async function repinViewport(page,viewport,options={}){const size=validateViewport(viewport);const sessionId=await page.resolveSessionId();await page.cdp.send("Emulation.setDeviceMetricsOverride",{...size,deviceScaleFactor:options.deviceScaleFactor??1,mobile:options.mobile??false},sessionId);page.setCachedViewportSize(size);return{...size}}var DEFAULT_AGENT_VIEWPORT;var init_viewport=__esm(()=>{DEFAULT_AGENT_VIEWPORT=Object.freeze({width:1440,height:900})});function optionsKey(options={}){return JSON.stringify({viewport:{...DEFAULT_AGENT_VIEWPORT,...options.viewport??{}},closeTimeoutMs:options.closeTimeoutMs??5000})}class AgentTabManager{#connection;#owned=new Map;#unsubscribers=[];#disposed=false;#closing=new Map;viewport;closeTimeoutMs;ready;constructor(connection,options={}){if(!connection?.cdp)throw new TypeError("createAgentTabs requires a browser connection");this.#connection=connection;this.viewport=Object.freeze({...DEFAULT_AGENT_VIEWPORT,...options.viewport??{}});this.closeTimeoutMs=options.closeTimeoutMs??5000;this.#unsubscribers.push(connection.cdp.on("Target.targetDestroyed",(info)=>this.#destroyed(info?.targetId)));this.#unsubscribers.push(connection.cdp.on("Target.targetCrashed",(info)=>this.#destroyed(info?.targetId)));this.#unsubscribers.push(connection.cdp.transportEvents?.on?.("disconnected",()=>{for(const id of[...this.#owned.keys()])this.#destroyed(id,Error("Browser transport disconnected"))}));this.ready=Promise.resolve(connection.cdp.ensureConnected?.())}async create(url="about:blank",options={}){if(this.#disposed)throw Error("Agent tab manager is disposed");await this.ready;const viewport={...this.viewport,...options.viewport??{}};const result=await this.#connection.cdp.send("Target.createTarget",{url,background:true},undefined,{capability:CAPABILITY});const targetId=result.targetId;if(await this.#isHeadless())await this.#connection.cdp.send("Target.activateTarget",{targetId});const record={targetId,page:null,viewport:Object.freeze({...viewport}),repinQueue:Promise.resolve()};this.#owned.set(targetId,record);try{record.page=await this.#connection.attachPage(targetId);await repinViewport(record.page,record.viewport);record.navigationOff=record.page.on?.("framenavigated",(event)=>{if(!event.parentFrameId)this.#repin(record)});return this.#public(record)}catch(error){await this.#connection.cdp.send("Target.closeTarget",{targetId}).catch(()=>{});throw error}}#public(record){return Object.freeze({targetId:record.targetId,page:record.page,viewport:{...record.viewport},close:(options)=>this.close(record.targetId,options)})}get(targetId){const record=this.#owned.get(targetId);return record?this.#public(record):null}list(){return[...this.#owned.values()].map((record)=>this.#public(record))}async#isHeadless(){if(typeof this.#connection.cdp.isHeadless==="boolean")return this.#connection.cdp.isHeadless;const version=await this.#connection.cdp.send("Browser.getVersion").catch(()=>null);return/Headless/i.test(version?.product??"")}#queueRepin(record,viewport,reportErrors=false){const size={...viewport};const operation=record.repinQueue.then(async()=>{try{await repinViewport(record.page,size)}catch(error){if(reportErrors)console.warn(`[agent-tabs] viewport repin failed for ${record.targetId}`,error);else throw error}record.viewport=Object.freeze(size);return{...size}});record.repinQueue=operation.catch(()=>{});return operation}async#repin(record){await this.#queueRepin(record,record.viewport,true)}async repin(tabOrTargetId,viewport=this.viewport){const id=typeof tabOrTargetId==="string"?tabOrTargetId:tabOrTargetId?.targetId;const record=this.#owned.get(id);if(!record)throw Error(`Target ${id} is not owned by this manager`);return this.#queueRepin(record,viewport)}async close(tabOrTargetId,options={}){const id=typeof tabOrTargetId==="string"?tabOrTargetId:tabOrTargetId?.targetId;const record=this.#owned.get(id);if(!record)throw Error(`Target ${id} is not owned by this manager`);const existing=this.#closing.get(id);if(existing)return existing.promise;let resolveOperation,rejectOperation;const promise=new Promise((resolve,reject)=>{resolveOperation=resolve;rejectOperation=reject});const entry={promise,reject:rejectOperation};this.#closing.set(id,entry);this.#close(record,options).then(resolveOperation,rejectOperation).finally(()=>{if(this.#closing.get(id)===entry)this.#closing.delete(id)});return promise}async#close(record,options){let resolveDestroy,rejectDestroy;const destroyed=new Promise((resolve,reject)=>{resolveDestroy=resolve;rejectDestroy=reject});const timeout=setTimeout(()=>rejectDestroy(Error(`Timed out waiting for target ${record.targetId} to close`)),options.timeoutMs??this.closeTimeoutMs);const off=this.#connection.cdp.on("Target.targetDestroyed",(info)=>{if(info?.targetId===record.targetId)resolveDestroy()});const offDisconnect=this.#connection.cdp.transportEvents?.on?.("disconnected",()=>rejectDestroy(Error("Browser transport disconnected")));try{if(options.runBeforeUnload&&record.page)await record.page.cdp.send("Page.close",undefined,await record.page.resolveSessionId()).catch(()=>this.#connection.cdp.send("Target.closeTarget",{targetId:record.targetId}));else await this.#connection.cdp.send("Target.closeTarget",{targetId:record.targetId});if(this.#owned.has(record.targetId))await destroyed}finally{clearTimeout(timeout);off();offDisconnect?.();if(!this.#owned.has(record.targetId))record.navigationOff?.()}}#destroyed(id,error){const record=this.#owned.get(id);if(!record)return;record.navigationOff?.();this.#owned.delete(id);if(error)this.#closing.get(id)?.reject(error)}async closeAll(options={}){const results=await Promise.allSettled([...this.#owned.keys()].map((id)=>this.close(id,options)));const failures=results.filter((result)=>result.status==="rejected").map((result)=>result.reason);if(failures.length)throw new AggregateError(failures,"Failed to close one or more agent tabs")}async dispose(options={closeOwned:true}){if(this.#disposed)return;let failure;if(options.closeOwned!==false)try{await this.closeAll(options)}catch(error){failure=error}this.#disposed=true;for(const off of this.#unsubscribers)off();this.#unsubscribers=[];if(failure)throw failure}}function createAgentTabs(connection,options={}){const current=managers.get(connection);if(current){if(current._optionsKey!==optionsKey(options))throw new TypeError("Conflicting AgentTabManager options");return current}const manager=new AgentTabManager(connection,options);Object.defineProperty(manager,"_optionsKey",{value:optionsKey(options)});managers.set(connection,manager);return manager}var managers,CAPABILITY;var init_agent_tabs=__esm(()=>{init_viewport();init_internal_capability();managers=new WeakMap;CAPABILITY=targetCreationCapability});import path2 from"node:path";import{mkdir as mkdir2}from"node:fs/promises";var import_stream=__toESM(require_stream(),1);var import_extension=__toESM(require_extension(),1);var import_permessage_deflate=__toESM(require_permessage_deflate(),1);var import_receiver=__toESM(require_receiver(),1);var import_sender=__toESM(require_sender(),1);var import_subprotocol=__toESM(require_subprotocol(),1);var import_websocket=__toESM(require_websocket(),1);var import_websocket_server=__toESM(require_websocket_server(),1);var wrapper_default=import_websocket.default;var exports_zod={};__export(exports_zod,{$brand:()=>$brand,$input:()=>$input,$output:()=>$output,INVALID:()=>INVALID,NEVER:()=>NEVER,TimePrecision:()=>TimePrecision,ZodAny:()=>ZodAny,ZodArray:()=>ZodArray,ZodBase64:()=>ZodBase64,ZodBase64URL:()=>ZodBase64URL,ZodBigInt:()=>ZodBigInt,ZodBigIntFormat:()=>ZodBigIntFormat,ZodBoolean:()=>ZodBoolean,ZodCIDRv4:()=>ZodCIDRv4,ZodCIDRv6:()=>ZodCIDRv6,ZodCUID:()=>ZodCUID,ZodCUID2:()=>ZodCUID2,ZodCatch:()=>ZodCatch,ZodCodec:()=>ZodCodec,ZodCompileAsyncError:()=>ZodCompileAsyncError,ZodCompileUnsupportedError:()=>ZodCompileUnsupportedError,ZodCreditCard:()=>ZodCreditCard,ZodCustom:()=>ZodCustom,ZodCustomStringFormat:()=>ZodCustomStringFormat,ZodDate:()=>ZodDate,ZodDefault:()=>ZodDefault,ZodDiscriminatedUnion:()=>ZodDiscriminatedUnion,ZodE164:()=>ZodE164,ZodEmail:()=>ZodEmail,ZodEmoji:()=>ZodEmoji,ZodEnum:()=>ZodEnum,ZodError:()=>ZodError,ZodExactOptional:()=>ZodExactOptional,ZodFile:()=>ZodFile,ZodFirstPartyTypeKind:()=>ZodFirstPartyTypeKind,ZodFunction:()=>ZodFunction,ZodGUID:()=>ZodGUID,ZodIBAN:()=>ZodIBAN,ZodIPv4:()=>ZodIPv4,ZodIPv6:()=>ZodIPv6,ZodISODate:()=>ZodISODate,ZodISODateTime:()=>ZodISODateTime,ZodISODuration:()=>ZodISODuration,ZodISOTime:()=>ZodISOTime,ZodInstanceOf:()=>ZodInstanceOf,ZodIntersection:()=>ZodIntersection,ZodIssueCode:()=>ZodIssueCode,ZodJWT:()=>ZodJWT,ZodKSUID:()=>ZodKSUID,ZodLazy:()=>ZodLazy,ZodLiteral:()=>ZodLiteral,ZodMAC:()=>ZodMAC,ZodMap:()=>ZodMap,ZodNaN:()=>ZodNaN,ZodNanoID:()=>ZodNanoID,ZodNever:()=>ZodNever,ZodNonOptional:()=>ZodNonOptional,ZodNull:()=>ZodNull,ZodNullable:()=>ZodNullable,ZodNumber:()=>ZodNumber,ZodNumberFormat:()=>ZodNumberFormat,ZodObject:()=>ZodObject,ZodOptional:()=>ZodOptional,ZodPipe:()=>ZodPipe,ZodPrefault:()=>ZodPrefault,ZodPreprocess:()=>ZodPreprocess,ZodPromise:()=>ZodPromise,ZodReadonly:()=>ZodReadonly,ZodRealError:()=>ZodRealError,ZodRecord:()=>ZodRecord,ZodSet:()=>ZodSet,ZodString:()=>ZodString,ZodStringFormat:()=>ZodStringFormat,ZodSuccess:()=>ZodSuccess,ZodSymbol:()=>ZodSymbol,ZodTemplateLiteral:()=>ZodTemplateLiteral,ZodTransform:()=>ZodTransform,ZodTuple:()=>ZodTuple,ZodType:()=>ZodType,ZodULID:()=>ZodULID,ZodURL:()=>ZodURL,ZodUUID:()=>ZodUUID,ZodUndefined:()=>ZodUndefined,ZodUnion:()=>ZodUnion,ZodUnknown:()=>ZodUnknown,ZodVoid:()=>ZodVoid,ZodXID:()=>ZodXID,ZodXor:()=>ZodXor,_ZodString:()=>_ZodString,_default:()=>_default2,_function:()=>_function,any:()=>any,array:()=>array,base64:()=>base642,base64url:()=>base64url2,bigint:()=>bigint2,boolean:()=>boolean2,catch:()=>_catch2,check:()=>check,cidrv4:()=>cidrv42,cidrv6:()=>cidrv62,clone:()=>clone,codec:()=>codec,coerce:()=>exports_coerce,compile:()=>compile,config:()=>config,core:()=>exports_core2,creditCard:()=>creditCard2,cuid:()=>cuid3,cuid2:()=>cuid22,currencyCode:()=>currencyCode2,custom:()=>custom,date:()=>date2,decode:()=>decode2,decodeAsync:()=>decodeAsync2,deepPartial:()=>deepPartial,default:()=>exports_external,describe:()=>describe2,discriminatedUnion:()=>discriminatedUnion,e164:()=>e1642,email:()=>email2,emoji:()=>emoji2,encode:()=>encode2,encodeAsync:()=>encodeAsync2,endsWith:()=>_endsWith,enum:()=>_enum2,exactOptional:()=>exactOptional,file:()=>file,flattenError:()=>flattenError,float32:()=>float32,float64:()=>float64,formatError:()=>formatError,fromJSONSchema:()=>fromJSONSchema,function:()=>_function,getDiscriminatedOption:()=>getDiscriminatedOption,getErrorMap:()=>getErrorMap,globalRegistry:()=>globalRegistry,gt:()=>_gt,gte:()=>_gte,guid:()=>guid2,hash:()=>hash,hex:()=>hex2,hostname:()=>hostname2,httpUrl:()=>httpUrl,iban:()=>iban2,includes:()=>_includes,input:()=>input,instanceof:()=>_instanceof,int:()=>int,int32:()=>int32,int64:()=>int64,intersection:()=>intersection,invertCodec:()=>invertCodec,ipv4:()=>ipv42,ipv6:()=>ipv62,iso:()=>exports_iso,json:()=>json,jwt:()=>jwt,keyof:()=>keyof,ksuid:()=>ksuid2,lazy:()=>lazy,length:()=>_length,literal:()=>literal,locales:()=>exports_locales,looseObject:()=>looseObject,looseRecord:()=>looseRecord,lowercase:()=>_lowercase,lt:()=>_lt,lte:()=>_lte,mac:()=>mac2,map:()=>map,maxLength:()=>_maxLength,maxSize:()=>_maxSize,memoizer:()=>memoizer,meta:()=>meta2,mime:()=>_mime,minLength:()=>_minLength,minSize:()=>_minSize,multipleOf:()=>_multipleOf,nan:()=>nan,nanoid:()=>nanoid2,nativeEnum:()=>nativeEnum,negative:()=>_negative,never:()=>never,nonnegative:()=>_nonnegative,nonoptional:()=>nonoptional,nonpositive:()=>_nonpositive,normalize:()=>_normalize,null:()=>_null3,nullable:()=>nullable,nullish:()=>nullish2,number:()=>number2,object:()=>object,optional:()=>optional,output:()=>output,overwrite:()=>_overwrite,parse:()=>parse3,parseAsync:()=>parseAsync2,partialRecord:()=>partialRecord,pipe:()=>pipe,positive:()=>_positive,prefault:()=>prefault,preprocess:()=>preprocess,prettifyError:()=>prettifyError,promise:()=>promise,properties:()=>_properties,property:()=>_property,readonly:()=>readonly,record:()=>record,refine:()=>refine,regex:()=>_regex,regexes:()=>exports_regexes,registry:()=>registry,safeDecode:()=>safeDecode2,safeDecodeAsync:()=>safeDecodeAsync2,safeEncode:()=>safeEncode2,safeEncodeAsync:()=>safeEncodeAsync2,safeParse:()=>safeParse2,safeParseAsync:()=>safeParseAsync2,set:()=>set,setErrorMap:()=>setErrorMap,size:()=>_size,slugify:()=>_slugify,startsWith:()=>_startsWith,strictObject:()=>strictObject,string:()=>string2,stringFormat:()=>stringFormat,stringbool:()=>stringbool,success:()=>success,superRefine:()=>superRefine,symbol:()=>symbol,templateLiteral:()=>templateLiteral,toJSONSchema:()=>toJSONSchema,toLowerCase:()=>_toLowerCase,toUpperCase:()=>_toUpperCase,toZod:()=>toZod,transform:()=>transform,treeifyError:()=>treeifyError,trim:()=>_trim,tuple:()=>tuple,uint32:()=>uint32,uint64:()=>uint64,ulid:()=>ulid2,undefined:()=>_undefined3,union:()=>union,unknown:()=>unknown,uppercase:()=>_uppercase,url:()=>url,util:()=>exports_util,uuid:()=>uuid2,uuidv4:()=>uuidv4,uuidv6:()=>uuidv6,uuidv7:()=>uuidv7,validate:()=>validate,validateAsync:()=>validateAsync,void:()=>_void2,withParser:()=>withParser,xid:()=>xid2,xor:()=>xor,z:()=>exports_external});var exports_external={};__export(exports_external,{$brand:()=>$brand,$input:()=>$input,$output:()=>$output,INVALID:()=>INVALID,NEVER:()=>NEVER,TimePrecision:()=>TimePrecision,ZodAny:()=>ZodAny,ZodArray:()=>ZodArray,ZodBase64:()=>ZodBase64,ZodBase64URL:()=>ZodBase64URL,ZodBigInt:()=>ZodBigInt,ZodBigIntFormat:()=>ZodBigIntFormat,ZodBoolean:()=>ZodBoolean,ZodCIDRv4:()=>ZodCIDRv4,ZodCIDRv6:()=>ZodCIDRv6,ZodCUID:()=>ZodCUID,ZodCUID2:()=>ZodCUID2,ZodCatch:()=>ZodCatch,ZodCodec:()=>ZodCodec,ZodCompileAsyncError:()=>ZodCompileAsyncError,ZodCompileUnsupportedError:()=>ZodCompileUnsupportedError,ZodCreditCard:()=>ZodCreditCard,ZodCustom:()=>ZodCustom,ZodCustomStringFormat:()=>ZodCustomStringFormat,ZodDate:()=>ZodDate,ZodDefault:()=>ZodDefault,ZodDiscriminatedUnion:()=>ZodDiscriminatedUnion,ZodE164:()=>ZodE164,ZodEmail:()=>ZodEmail,ZodEmoji:()=>ZodEmoji,ZodEnum:()=>ZodEnum,ZodError:()=>ZodError,ZodExactOptional:()=>ZodExactOptional,ZodFile:()=>ZodFile,ZodFirstPartyTypeKind:()=>ZodFirstPartyTypeKind,ZodFunction:()=>ZodFunction,ZodGUID:()=>ZodGUID,ZodIBAN:()=>ZodIBAN,ZodIPv4:()=>ZodIPv4,ZodIPv6:()=>ZodIPv6,ZodISODate:()=>ZodISODate,ZodISODateTime:()=>ZodISODateTime,ZodISODuration:()=>ZodISODuration,ZodISOTime:()=>ZodISOTime,ZodInstanceOf:()=>ZodInstanceOf,ZodIntersection:()=>ZodIntersection,ZodIssueCode:()=>ZodIssueCode,ZodJWT:()=>ZodJWT,ZodKSUID:()=>ZodKSUID,ZodLazy:()=>ZodLazy,ZodLiteral:()=>ZodLiteral,ZodMAC:()=>ZodMAC,ZodMap:()=>ZodMap,ZodNaN:()=>ZodNaN,ZodNanoID:()=>ZodNanoID,ZodNever:()=>ZodNever,ZodNonOptional:()=>ZodNonOptional,ZodNull:()=>ZodNull,ZodNullable:()=>ZodNullable,ZodNumber:()=>ZodNumber,ZodNumberFormat:()=>ZodNumberFormat,ZodObject:()=>ZodObject,ZodOptional:()=>ZodOptional,ZodPipe:()=>ZodPipe,ZodPrefault:()=>ZodPrefault,ZodPreprocess:()=>ZodPreprocess,ZodPromise:()=>ZodPromise,ZodReadonly:()=>ZodReadonly,ZodRealError:()=>ZodRealError,ZodRecord:()=>ZodRecord,ZodSet:()=>ZodSet,ZodString:()=>ZodString,ZodStringFormat:()=>ZodStringFormat,ZodSuccess:()=>ZodSuccess,ZodSymbol:()=>ZodSymbol,ZodTemplateLiteral:()=>ZodTemplateLiteral,ZodTransform:()=>ZodTransform,ZodTuple:()=>ZodTuple,ZodType:()=>ZodType,ZodULID:()=>ZodULID,ZodURL:()=>ZodURL,ZodUUID:()=>ZodUUID,ZodUndefined:()=>ZodUndefined,ZodUnion:()=>ZodUnion,ZodUnknown:()=>ZodUnknown,ZodVoid:()=>ZodVoid,ZodXID:()=>ZodXID,ZodXor:()=>ZodXor,_ZodString:()=>_ZodString,_default:()=>_default2,_function:()=>_function,any:()=>any,array:()=>array,base64:()=>base642,base64url:()=>base64url2,bigint:()=>bigint2,boolean:()=>boolean2,catch:()=>_catch2,check:()=>check,cidrv4:()=>cidrv42,cidrv6:()=>cidrv62,clone:()=>clone,codec:()=>codec,coerce:()=>exports_coerce,compile:()=>compile,config:()=>config,core:()=>exports_core2,creditCard:()=>creditCard2,cuid:()=>cuid3,cuid2:()=>cuid22,currencyCode:()=>currencyCode2,custom:()=>custom,date:()=>date2,decode:()=>decode2,decodeAsync:()=>decodeAsync2,deepPartial:()=>deepPartial,describe:()=>describe2,discriminatedUnion:()=>discriminatedUnion,e164:()=>e1642,email:()=>email2,emoji:()=>emoji2,encode:()=>encode2,encodeAsync:()=>encodeAsync2,endsWith:()=>_endsWith,enum:()=>_enum2,exactOptional:()=>exactOptional,file:()=>file,flattenError:()=>flattenError,float32:()=>float32,float64:()=>float64,formatError:()=>formatError,fromJSONSchema:()=>fromJSONSchema,function:()=>_function,getDiscriminatedOption:()=>getDiscriminatedOption,getErrorMap:()=>getErrorMap,globalRegistry:()=>globalRegistry,gt:()=>_gt,gte:()=>_gte,guid:()=>guid2,hash:()=>hash,hex:()=>hex2,hostname:()=>hostname2,httpUrl:()=>httpUrl,iban:()=>iban2,includes:()=>_includes,input:()=>input,instanceof:()=>_instanceof,int:()=>int,int32:()=>int32,int64:()=>int64,intersection:()=>intersection,invertCodec:()=>invertCodec,ipv4:()=>ipv42,ipv6:()=>ipv62,iso:()=>exports_iso,json:()=>json,jwt:()=>jwt,keyof:()=>keyof,ksuid:()=>ksuid2,lazy:()=>lazy,length:()=>_length,literal:()=>literal,locales:()=>exports_locales,looseObject:()=>looseObject,looseRecord:()=>looseRecord,lowercase:()=>_lowercase,lt:()=>_lt,lte:()=>_lte,mac:()=>mac2,map:()=>map,maxLength:()=>_maxLength,maxSize:()=>_maxSize,memoizer:()=>memoizer,meta:()=>meta2,mime:()=>_mime,minLength:()=>_minLength,minSize:()=>_minSize,multipleOf:()=>_multipleOf,nan:()=>nan,nanoid:()=>nanoid2,nativeEnum:()=>nativeEnum,negative:()=>_negative,never:()=>never,nonnegative:()=>_nonnegative,nonoptional:()=>nonoptional,nonpositive:()=>_nonpositive,normalize:()=>_normalize,null:()=>_null3,nullable:()=>nullable,nullish:()=>nullish2,number:()=>number2,object:()=>object,optional:()=>optional,output:()=>output,overwrite:()=>_overwrite,parse:()=>parse3,parseAsync:()=>parseAsync2,partialRecord:()=>partialRecord,pipe:()=>pipe,positive:()=>_positive,prefault:()=>prefault,preprocess:()=>preprocess,prettifyError:()=>prettifyError,promise:()=>promise,properties:()=>_properties,property:()=>_property,readonly:()=>readonly,record:()=>record,refine:()=>refine,regex:()=>_regex,regexes:()=>exports_regexes,registry:()=>registry,safeDecode:()=>safeDecode2,safeDecodeAsync:()=>safeDecodeAsync2,safeEncode:()=>safeEncode2,safeEncodeAsync:()=>safeEncodeAsync2,safeParse:()=>safeParse2,safeParseAsync:()=>safeParseAsync2,set:()=>set,setErrorMap:()=>setErrorMap,size:()=>_size,slugify:()=>_slugify,startsWith:()=>_startsWith,strictObject:()=>strictObject,string:()=>string2,stringFormat:()=>stringFormat,stringbool:()=>stringbool,success:()=>success,superRefine:()=>superRefine,symbol:()=>symbol,templateLiteral:()=>templateLiteral,toJSONSchema:()=>toJSONSchema,toLowerCase:()=>_toLowerCase,toUpperCase:()=>_toUpperCase,toZod:()=>toZod,transform:()=>transform,treeifyError:()=>treeifyError,trim:()=>_trim,tuple:()=>tuple,uint32:()=>uint32,uint64:()=>uint64,ulid:()=>ulid2,undefined:()=>_undefined3,union:()=>union,unknown:()=>unknown,uppercase:()=>_uppercase,url:()=>url,util:()=>exports_util,uuid:()=>uuid2,uuidv4:()=>uuidv4,uuidv6:()=>uuidv6,uuidv7:()=>uuidv7,validate:()=>validate,validateAsync:()=>validateAsync,void:()=>_void2,withParser:()=>withParser,xid:()=>xid2,xor:()=>xor});var exports_core2={};__export(exports_core2,{$ZodAny:()=>$ZodAny,$ZodArray:()=>$ZodArray,$ZodAsyncError:()=>$ZodAsyncError,$ZodBase64:()=>$ZodBase64,$ZodBase64URL:()=>$ZodBase64URL,$ZodBigInt:()=>$ZodBigInt,$ZodBigIntFormat:()=>$ZodBigIntFormat,$ZodBoolean:()=>$ZodBoolean,$ZodCIDRv4:()=>$ZodCIDRv4,$ZodCIDRv6:()=>$ZodCIDRv6,$ZodCUID:()=>$ZodCUID,$ZodCUID2:()=>$ZodCUID2,$ZodCatch:()=>$ZodCatch,$ZodCheck:()=>$ZodCheck,$ZodCheckBigIntFormat:()=>$ZodCheckBigIntFormat,$ZodCheckEndsWith:()=>$ZodCheckEndsWith,$ZodCheckGreaterThan:()=>$ZodCheckGreaterThan,$ZodCheckIncludes:()=>$ZodCheckIncludes,$ZodCheckLengthEquals:()=>$ZodCheckLengthEquals,$ZodCheckLessThan:()=>$ZodCheckLessThan,$ZodCheckLowerCase:()=>$ZodCheckLowerCase,$ZodCheckMaxLength:()=>$ZodCheckMaxLength,$ZodCheckMaxSize:()=>$ZodCheckMaxSize,$ZodCheckMimeType:()=>$ZodCheckMimeType,$ZodCheckMinLength:()=>$ZodCheckMinLength,$ZodCheckMinSize:()=>$ZodCheckMinSize,$ZodCheckMultipleOf:()=>$ZodCheckMultipleOf,$ZodCheckNumberFormat:()=>$ZodCheckNumberFormat,$ZodCheckOverwrite:()=>$ZodCheckOverwrite,$ZodCheckProperties:()=>$ZodCheckProperties,$ZodCheckProperty:()=>$ZodCheckProperty,$ZodCheckRegex:()=>$ZodCheckRegex,$ZodCheckSizeEquals:()=>$ZodCheckSizeEquals,$ZodCheckStartsWith:()=>$ZodCheckStartsWith,$ZodCheckStringFormat:()=>$ZodCheckStringFormat,$ZodCheckUpperCase:()=>$ZodCheckUpperCase,$ZodCodec:()=>$ZodCodec,$ZodCreditCard:()=>$ZodCreditCard,$ZodCustom:()=>$ZodCustom,$ZodCustomStringFormat:()=>$ZodCustomStringFormat,$ZodCyclicError:()=>$ZodCyclicError,$ZodDate:()=>$ZodDate,$ZodDefault:()=>$ZodDefault,$ZodDiscriminatedUnion:()=>$ZodDiscriminatedUnion,$ZodE164:()=>$ZodE164,$ZodEmail:()=>$ZodEmail,$ZodEmoji:()=>$ZodEmoji,$ZodEncodeError:()=>$ZodEncodeError,$ZodEnum:()=>$ZodEnum,$ZodError:()=>$ZodError,$ZodExactOptional:()=>$ZodExactOptional,$ZodFile:()=>$ZodFile,$ZodFunction:()=>$ZodFunction,$ZodGUID:()=>$ZodGUID,$ZodIBAN:()=>$ZodIBAN,$ZodIPv4:()=>$ZodIPv4,$ZodIPv6:()=>$ZodIPv6,$ZodISODate:()=>$ZodISODate,$ZodISODateTime:()=>$ZodISODateTime,$ZodISODuration:()=>$ZodISODuration,$ZodISOTime:()=>$ZodISOTime,$ZodIntersection:()=>$ZodIntersection,$ZodJWT:()=>$ZodJWT,$ZodKSUID:()=>$ZodKSUID,$ZodLazy:()=>$ZodLazy,$ZodLiteral:()=>$ZodLiteral,$ZodMAC:()=>$ZodMAC,$ZodMap:()=>$ZodMap,$ZodNaN:()=>$ZodNaN,$ZodNanoID:()=>$ZodNanoID,$ZodNever:()=>$ZodNever,$ZodNonOptional:()=>$ZodNonOptional,$ZodNull:()=>$ZodNull,$ZodNullable:()=>$ZodNullable,$ZodNumber:()=>$ZodNumber,$ZodNumberFormat:()=>$ZodNumberFormat,$ZodObject:()=>$ZodObject,$ZodObjectJIT:()=>$ZodObjectJIT,$ZodOptional:()=>$ZodOptional,$ZodPipe:()=>$ZodPipe,$ZodPrefault:()=>$ZodPrefault,$ZodPreprocess:()=>$ZodPreprocess,$ZodPromise:()=>$ZodPromise,$ZodReadonly:()=>$ZodReadonly,$ZodRealError:()=>$ZodRealError,$ZodRecord:()=>$ZodRecord,$ZodRegistry:()=>$ZodRegistry,$ZodSet:()=>$ZodSet,$ZodString:()=>$ZodString,$ZodStringFormat:()=>$ZodStringFormat,$ZodSuccess:()=>$ZodSuccess,$ZodSymbol:()=>$ZodSymbol,$ZodTemplateLiteral:()=>$ZodTemplateLiteral,$ZodTransform:()=>$ZodTransform,$ZodTuple:()=>$ZodTuple,$ZodType:()=>$ZodType,$ZodULID:()=>$ZodULID,$ZodURL:()=>$ZodURL,$ZodUUID:()=>$ZodUUID,$ZodUndefined:()=>$ZodUndefined,$ZodUnion:()=>$ZodUnion,$ZodUnknown:()=>$ZodUnknown,$ZodVoid:()=>$ZodVoid,$ZodXID:()=>$ZodXID,$ZodXor:()=>$ZodXor,$brand:()=>$brand,$constructor:()=>$constructor,$input:()=>$input,$output:()=>$output,Doc:()=>Doc,INVALID:()=>INVALID,JSONSchema:()=>exports_json_schema,JSONSchemaGenerator:()=>JSONSchemaGenerator,NEVER:()=>NEVER,TimePrecision:()=>TimePrecision,URL_BAD_FORMAT:()=>URL_BAD_FORMAT,URL_UNPARSEABLE:()=>URL_UNPARSEABLE,ZodCompileAsyncError:()=>ZodCompileAsyncError,ZodCompileUnsupportedError:()=>ZodCompileUnsupportedError,_any:()=>_any,_array:()=>_array,_base64:()=>_base64,_base64url:()=>_base64url,_bigint:()=>_bigint,_boolean:()=>_boolean,_catch:()=>_catch,_check:()=>_check,_cidrv4:()=>_cidrv4,_cidrv6:()=>_cidrv6,_coercedBigint:()=>_coercedBigint,_coercedBoolean:()=>_coercedBoolean,_coercedDate:()=>_coercedDate,_coercedNumber:()=>_coercedNumber,_coercedString:()=>_coercedString,_creditCard:()=>_creditCard,_cuid:()=>_cuid,_cuid2:()=>_cuid2,_custom:()=>_custom,_date:()=>_date,_decode:()=>_decode,_decodeAsync:()=>_decodeAsync,_default:()=>_default,_discriminatedUnion:()=>_discriminatedUnion,_e164:()=>_e164,_email:()=>_email,_emoji:()=>_emoji2,_encode:()=>_encode,_encodeAsync:()=>_encodeAsync,_endsWith:()=>_endsWith,_enum:()=>_enum,_file:()=>_file,_float32:()=>_float32,_float64:()=>_float64,_gt:()=>_gt,_gte:()=>_gte,_guid:()=>_guid,_iban:()=>_iban,_includes:()=>_includes,_int:()=>_int,_int32:()=>_int32,_int64:()=>_int64,_intersection:()=>_intersection,_ipv4:()=>_ipv4,_ipv6:()=>_ipv6,_isoDate:()=>_isoDate,_isoDateTime:()=>_isoDateTime,_isoDuration:()=>_isoDuration,_isoTime:()=>_isoTime,_jwt:()=>_jwt,_ksuid:()=>_ksuid,_lazy:()=>_lazy,_length:()=>_length,_literal:()=>_literal,_lowercase:()=>_lowercase,_lt:()=>_lt,_lte:()=>_lte,_mac:()=>_mac,_map:()=>_map,_max:()=>_lte,_maxLength:()=>_maxLength,_maxSize:()=>_maxSize,_mime:()=>_mime,_min:()=>_gte,_minLength:()=>_minLength,_minSize:()=>_minSize,_multipleOf:()=>_multipleOf,_nan:()=>_nan,_nanoid:()=>_nanoid,_nativeEnum:()=>_nativeEnum,_negative:()=>_negative,_never:()=>_never,_nonnegative:()=>_nonnegative,_nonoptional:()=>_nonoptional,_nonpositive:()=>_nonpositive,_normalize:()=>_normalize,_null:()=>_null2,_nullable:()=>_nullable,_number:()=>_number,_optional:()=>_optional,_overwrite:()=>_overwrite,_parse:()=>_parse,_parseAsync:()=>_parseAsync,_pipe:()=>_pipe,_positive:()=>_positive,_promise:()=>_promise,_properties:()=>_properties,_property:()=>_property,_readonly:()=>_readonly,_record:()=>_record,_refine:()=>_refine,_regex:()=>_regex,_safeDecode:()=>_safeDecode,_safeDecodeAsync:()=>_safeDecodeAsync,_safeEncode:()=>_safeEncode,_safeEncodeAsync:()=>_safeEncodeAsync,_safeParse:()=>_safeParse,_safeParseAsync:()=>_safeParseAsync,_set:()=>_set,_size:()=>_size,_slugify:()=>_slugify,_startsWith:()=>_startsWith,_string:()=>_string,_stringFormat:()=>_stringFormat,_stringbool:()=>_stringbool,_success:()=>_success,_superRefine:()=>_superRefine,_symbol:()=>_symbol,_templateLiteral:()=>_templateLiteral,_toLowerCase:()=>_toLowerCase,_toUpperCase:()=>_toUpperCase,_transform:()=>_transform,_trim:()=>_trim,_tuple:()=>_tuple,_uint32:()=>_uint32,_uint64:()=>_uint64,_ulid:()=>_ulid,_undefined:()=>_undefined2,_union:()=>_union,_unknown:()=>_unknown,_uppercase:()=>_uppercase,_url:()=>_url,_uuid:()=>_uuid,_uuidv4:()=>_uuidv4,_uuidv6:()=>_uuidv6,_uuidv7:()=>_uuidv7,_void:()=>_void,_xid:()=>_xid,_xor:()=>_xor,base64Charset:()=>base64Charset,base64urlCharset:()=>base64urlCharset,canParseURL:()=>canParseURL,clone:()=>clone,compile:()=>compile,compileFn:()=>compileFn,config:()=>config,createStandardJSONSchemaMethod:()=>createStandardJSONSchemaMethod,createToJSONSchemaMethod:()=>createToJSONSchemaMethod,decode:()=>decode,decodeAsync:()=>decodeAsync,describe:()=>describe,encode:()=>encode,encodeAsync:()=>encodeAsync,extractDefs:()=>extractDefs,finalize:()=>finalize,flattenError:()=>flattenError,formatError:()=>formatError,getDiscriminatedOption:()=>getDiscriminatedOption,globalConfig:()=>globalConfig,globalRegistry:()=>globalRegistry,handleUnrepresentable:()=>handleUnrepresentable,initializeContext:()=>initializeContext,isBackEdge:()=>isBackEdge,isRecursiveSchema:()=>isRecursiveSchema,isValidBase64:()=>isValidBase64,isValidBase64URL:()=>isValidBase64URL,isValidCIDRv6:()=>isValidCIDRv6,isValidCreditCard:()=>isValidCreditCard,isValidIBAN:()=>isValidIBAN,isValidIPv6:()=>isValidIPv6,isValidJWT:()=>isValidJWT,locales:()=>exports_locales,memoizer:()=>memoizer,mergeValues:()=>mergeValues,meta:()=>meta,parse:()=>parse,parseAsync:()=>parseAsync,parseURLObject:()=>parseURLObject,prettifyError:()=>prettifyError,process:()=>processSchema,processSchema:()=>processSchema,regexes:()=>exports_regexes,registry:()=>registry,safeDecode:()=>safeDecode,safeDecodeAsync:()=>safeDecodeAsync,safeEncode:()=>safeEncode,safeEncodeAsync:()=>safeEncodeAsync,safeParse:()=>safeParse,safeParseAsync:()=>safeParseAsync,standardProps:()=>standardProps,stripTabAndNewline:()=>stripTabAndNewline,toDotPath:()=>toDotPath,toJSONSchema:()=>toJSONSchema,toZod:()=>toZod,treeifyError:()=>treeifyError,urlHostnameOk:()=>urlHostnameOk,urlProtocolOk:()=>urlProtocolOk,util:()=>exports_util,validate:()=>validate,validateAsync:()=>validateAsync,validateURL:()=>validateURL,version:()=>version,withParser:()=>withParser});var exports_util={};__export(exports_util,{BIGINT_FORMAT_RANGES:()=>BIGINT_FORMAT_RANGES,CONSTANT_CATCH:()=>CONSTANT_CATCH,Class:()=>Class,NUMBER_FORMAT_RANGES:()=>NUMBER_FORMAT_RANGES,aborted:()=>aborted,allowsEval:()=>allowsEval,assert:()=>assert,assertEqual:()=>assertEqual,assertIs:()=>assertIs,assertNever:()=>assertNever,assertNotEqual:()=>assertNotEqual,assignProp:()=>assignProp,attachSchema:()=>attachSchema,base64ToUint8Array:()=>base64ToUint8Array,base64urlToUint8Array:()=>base64urlToUint8Array,cached:()=>cached,captureStackTrace:()=>captureStackTrace,cleanEnum:()=>cleanEnum,cleanRegex:()=>cleanRegex,clone:()=>clone,cloneDef:()=>cloneDef,codePointLength:()=>codePointLength,constantCatch:()=>constantCatch,createTransparentProxy:()=>createTransparentProxy,defineLazy:()=>defineLazy,defineLazyInternal:()=>defineLazyInternal,derived:()=>derived,esc:()=>esc,escapeRegex:()=>escapeRegex,explicitlyAborted:()=>explicitlyAborted,extend:()=>extend,finalizeIssue:()=>finalizeIssue,floatSafeRemainder:()=>floatSafeRemainder,getElementAtPath:()=>getElementAtPath,getEnumValues:()=>getEnumValues,getLengthableOrigin:()=>getLengthableOrigin,getParsedType:()=>getParsedType,getSizableOrigin:()=>getSizableOrigin,hexToUint8Array:()=>hexToUint8Array,hide:()=>hide,installLazyProp:()=>installLazyProp,isObject:()=>isObject,isPlainObject:()=>isPlainObject,issue:()=>issue,joinValues:()=>joinValues,jsonStringifyReplacer:()=>jsonStringifyReplacer,members:()=>members,merge:()=>merge,mergeDefs:()=>mergeDefs,normalizeParams:()=>normalizeParams,nullish:()=>nullish,numKeys:()=>numKeys,objectClone:()=>objectClone,omit:()=>omit,optionalKeys:()=>optionalKeys,own:()=>own,parsedType:()=>parsedType,partial:()=>partial,pick:()=>pick,prefixIssues:()=>prefixIssues,primitiveTypes:()=>primitiveTypes,promiseAllObject:()=>promiseAllObject,propertyKeyTypes:()=>propertyKeyTypes,randomString:()=>randomString,rawShape:()=>rawShape,required:()=>required,safeExtend:()=>safeExtend,shallowClone:()=>shallowClone,slugify:()=>slugify,stringifyPrimitive:()=>stringifyPrimitive,toZod:()=>toZod,uint8ArrayToBase64:()=>uint8ArrayToBase64,uint8ArrayToBase64url:()=>uint8ArrayToBase64url,uint8ArrayToHex:()=>uint8ArrayToHex,unwrapMessage:()=>unwrapMessage});function assertEqual(val){return val}function assertNotEqual(val){return val}function toZod(){return(schema)=>schema}function assertIs(_arg){}function assertNever(_x){throw new Error("Unexpected value in exhaustive check")}function assert(_){}function getEnumValues(entries){const numericValues=Object.values(entries).filter((v)=>typeof v==="number");const values=Object.entries(entries).filter(([k,_])=>numericValues.indexOf(+k)===-1).map(([_,v])=>v);return values}function joinValues(array,separator="|"){return array.map((val)=>stringifyPrimitive(val)).join(separator)}function jsonStringifyReplacer(_,value){if(typeof value==="bigint")return value.toString();return value}class Cached{constructor(getter){this._getter=getter;this._value=undefined}get value(){const getter=this._getter;if(getter!==undefined){this._value=getter();this._getter=undefined}return this._value}}function cached(getter){return new Cached(getter)}function nullish(input){return input===null||input===undefined}function cleanRegex(source){const start=source.startsWith("^")?1:0;const end=source.endsWith("$")?source.length-1:source.length;return source.slice(start,end)}function floatSafeRemainder(val,step){const ratio=val/step;const roundedRatio=Math.round(ratio);const tolerance=4*Number.EPSILON*Math.max(Math.abs(ratio),1);if(Math.abs(ratio-roundedRatio)<tolerance)return 0;return ratio-roundedRatio}var EVALUATING=Symbol("evaluating");function defineLazy(object,key,getter){let value=undefined;Object.defineProperty(object,key,{get(){if(value===EVALUATING){return}if(value===undefined){value=EVALUATING;value=getter()}return value},set(v){Object.defineProperty(object,key,{value:v})},configurable:true})}function objectClone(obj){return Object.create(Object.getPrototypeOf(obj),Object.getOwnPropertyDescriptors(obj))}function assignProp(target,prop,value){Object.defineProperty(target,prop,{value,writable:true,enumerable:true,configurable:true})}function rawShape(def){const desc=Object.getOwnPropertyDescriptor(def,"shape");return desc?.get?desc.get.raw:desc?.value}function sourceShape(schema){return rawShape(schema._zod.def)??schema._zod.def.shape}function deferProp(target,key,getter){Object.defineProperty(target,key,{get(){const value=getter();assignProp(this,key,value);return value},enumerable:true,configurable:true})}function putProp(target,key,value){if(key in target)assignProp(target,key,value);else target[key]=value}function mirrorShape(target,source,keys,wrap){const raw=sourceShape(source);for(const key of keys){const desc=Object.getOwnPropertyDescriptor(raw,key);if(!desc.enumerable)continue;if(desc.get){deferProp(target,key,()=>{const value=source._zod.def.shape[key];return wrap?wrap(value,key):value})}else putProp(target,key,wrap?wrap(desc.value,key):desc.value)}}function mirrorProps(target,source){for(const key of Reflect.ownKeys(source)){const desc=Object.getOwnPropertyDescriptor(source,key);if(!desc.enumerable)continue;if(desc.get)deferProp(target,key,()=>source[key]);else putProp(target,key,desc.value)}}function mergeDefs(...defs){const mergedDescriptors={};for(const def of defs){const descriptors=Object.getOwnPropertyDescriptors(def);Object.assign(mergedDescriptors,descriptors)}return Object.defineProperties({},mergedDescriptors)}function cloneDef(schema){return mergeDefs(schema._zod.def)}function getElementAtPath(obj,path){if(!path)return obj;return path.reduce((acc,key)=>acc?.[key],obj)}function promiseAllObject(promisesObj){const keys=Object.keys(promisesObj);const promises2=keys.map((key)=>promisesObj[key]);return Promise.all(promises2).then((results)=>{const resolvedObj={};for(let i=0;i<keys.length;i++){resolvedObj[keys[i]]=results[i]}return resolvedObj})}function randomString(length=10){const chars="abcdefghijklmnopqrstuvwxyz";let str="";for(let i=0;i<length;i++){str+=chars[Math.floor(Math.random()*chars.length)]}return str}function esc(str){return JSON.stringify(str)}function slugify(input){return input.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var captureStackTrace="captureStackTrace"in Error?Error.captureStackTrace:(..._args)=>{};function isObject(data){return typeof data==="object"&&data!==null&&!Array.isArray(data)}var allowsEval=cached(()=>{if(globalConfig.jitless){return false}if(typeof navigator!=="undefined"&&navigator?.userAgent?.includes("Cloudflare")){return false}try{const F=Function;new F("");return true}catch(_){return false}});function isPlainObject(o){if(isObject(o)===false)return false;const ctor=o.constructor;if(ctor===undefined)return true;if(typeof ctor!=="function")return true;const prot=ctor.prototype;if(isObject(prot)===false)return false;if(Object.prototype.hasOwnProperty.call(prot,"isPrototypeOf")===false){return false}return true}function shallowClone(o){if(isPlainObject(o))return{...o};if(Array.isArray(o))return[...o];if(o instanceof Map)return new Map(o);if(o instanceof Set)return new Set(o);return o}function numKeys(data){let keyCount=0;for(const key in data){if(Object.prototype.hasOwnProperty.call(data,key)){keyCount++}}return keyCount}var getParsedType=(data)=>{const t=typeof data;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(data)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":if(Array.isArray(data)){return"array"}if(data===null){return"null"}if(data.then&&typeof data.then==="function"&&data.catch&&typeof data.catch==="function"){return"promise"}if(typeof Map!=="undefined"&&data instanceof Map){return"map"}if(typeof Set!=="undefined"&&data instanceof Set){return"set"}if(typeof Date!=="undefined"&&data instanceof Date){return"date"}if(typeof File!=="undefined"&&data instanceof File){return"file"}return"object";default:throw new Error(`Unknown data type: ${t}`)}};var propertyKeyTypes=new Set(["string","number","symbol"]);var primitiveTypes=new Set(["string","number","bigint","boolean","symbol","undefined"]);function escapeRegex(str){return str.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function clone(inst,def,params){const cl=new inst._zod.constr(def??inst._zod.def);if(!def||params?.parent)cl._zod.parent=inst;return cl}function normalizeParams(_params){const params=_params;if(!params)return{};if(typeof params==="string")return{error:()=>params};if(params?.message!==undefined){if(params?.error!==undefined)throw new Error("Cannot specify both `message` and `error` params");params.error=params.message}delete params.message;if(typeof params.error==="string")return{...params,error:()=>params.error};return params}function createTransparentProxy(getter){let target;return new Proxy({},{get(_,prop,receiver){target??(target=getter());return Reflect.get(target,prop,receiver)},set(_,prop,value,receiver){target??(target=getter());return Reflect.set(target,prop,value,receiver)},has(_,prop){target??(target=getter());return Reflect.has(target,prop)},deleteProperty(_,prop){target??(target=getter());return Reflect.deleteProperty(target,prop)},ownKeys(_){target??(target=getter());return Reflect.ownKeys(target)},getOwnPropertyDescriptor(_,prop){target??(target=getter());return Reflect.getOwnPropertyDescriptor(target,prop)},defineProperty(_,prop,descriptor){target??(target=getter());return Reflect.defineProperty(target,prop,descriptor)}})}function stringifyPrimitive(value){if(typeof value==="bigint")return value.toString()+"n";if(typeof value==="string")return`"${value}"`;return`${value}`}function optionalKeys(shape){return Object.keys(shape).filter((k)=>{return shape[k]._zod.optin!==undefined&&shape[k]._zod.optout==="optional"})}var NUMBER_FORMAT_RANGES=(()=>({safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]}))();var BIGINT_FORMAT_RANGES={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function pick(schema,mask){const currDef=schema._zod.def;const checks=currDef.checks;const hasChecks=checks&&checks.length>0;if(hasChecks){throw new Error(".pick() cannot be used on object schemas containing refinements")}const newShape={};mirrorShape(newShape,schema,maskedKeys(schema,mask));return clone(schema,mergeDefs(currDef,{shape:newShape,checks:[]}))}function maskedKeys(schema,mask){const raw=sourceShape(schema);const keys=[];for(const key of Reflect.ownKeys(mask)){if(!Object.getOwnPropertyDescriptor(raw,key)?.enumerable){throw new Error(`Unrecognized key: "${String(key)}"`)}if(mask[key])keys.push(key)}return keys}function omit(schema,mask){const currDef=schema._zod.def;const checks=currDef.checks;const hasChecks=checks&&checks.length>0;if(hasChecks){throw new Error(".omit() cannot be used on object schemas containing refinements")}const omitted=new Set(maskedKeys(schema,mask));const newShape={};mirrorShape(newShape,schema,Reflect.ownKeys(sourceShape(schema)).filter((key)=>!omitted.has(key)));return clone(schema,mergeDefs(currDef,{shape:newShape,checks:[]}))}function extend(schema,shape){if(!isPlainObject(shape)){throw new Error("Invalid input to extend: expected a plain object")}const checks=schema._zod.def.checks;const hasChecks=checks&&checks.length>0;if(hasChecks){const existingShape=sourceShape(schema);for(const key of Reflect.ownKeys(shape)){if(Object.getOwnPropertyDescriptor(existingShape,key)!==undefined){throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}}}return clone(schema,mergeDefs(schema._zod.def,{shape:extended(schema,shape)}))}function extended(schema,shape){const newShape={};mirrorShape(newShape,schema,Reflect.ownKeys(sourceShape(schema)));mirrorProps(newShape,shape);return newShape}function safeExtend(schema,shape){if(!isPlainObject(shape)){throw new Error("Invalid input to safeExtend: expected a plain object")}return clone(schema,mergeDefs(schema._zod.def,{shape:extended(schema,shape)}))}function merge(a,b){if(!b?._zod?.def){throw new Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.")}if(a._zod.def.checks?.length){throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.")}const newShape={};mirrorShape(newShape,a,Reflect.ownKeys(sourceShape(a)));mirrorShape(newShape,b,Reflect.ownKeys(sourceShape(b)));const def=mergeDefs(a._zod.def,{shape:newShape,get catchall(){return b._zod.def.catchall},checks:b._zod.def.checks??[]});return clone(a,def)}function partial(Class2,schema,mask,name="partial"){const currDef=schema._zod.def;const checks=currDef.checks;const hasChecks=checks&&checks.length>0;if(hasChecks){throw new Error(`.${name}() cannot be used on object schemas containing refinements`)}const selected=mask?new Set(maskedKeys(schema,mask)):undefined;const newShape={};mirrorShape(newShape,schema,Reflect.ownKeys(sourceShape(schema)),Class2&&((value,key)=>selected&&!selected.has(key)?value:new Class2({type:"optional",innerType:value})));return clone(schema,mergeDefs(schema._zod.def,{shape:newShape,checks:[]}))}function required(Class2,schema,mask){const selected=mask?new Set(maskedKeys(schema,mask)):undefined;const newShape={};mirrorShape(newShape,schema,Reflect.ownKeys(sourceShape(schema)),(value,key)=>selected&&!selected.has(key)?value:new Class2({type:"nonoptional",innerType:value}));return clone(schema,mergeDefs(schema._zod.def,{shape:newShape}))}function aborted(x,startIndex=0){if(x.aborted===true)return true;for(let i=startIndex;i<x.issues.length;i++){if(x.issues[i]?.continue!==true){return true}}return false}function explicitlyAborted(x,startIndex=0){if(x.aborted===true)return true;for(let i=startIndex;i<x.issues.length;i++){if(x.issues[i]?.continue===false){return true}}return false}function prefixIssues(path,issues){return issues.map((iss)=>{var _a;(_a=iss).path??(_a.path=[]);iss.path.unshift(path);return iss})}function unwrapMessage(message){return typeof message==="string"?message:message?.message}function attachSchema(issues,start,inst){var _a;for(let i=start;i<issues.length;i++){(_a=issues[i]).schema??(_a.schema=inst)}}function finalizeIssue(iss,ctx,config){var _a;const traits=iss.inst?._zod?.traits;if(traits?.has("$ZodType")){if(traits.has("$ZodCheck"))(_a=iss).schema??(_a.schema=iss.inst);else iss.schema=iss.inst}const schemaError=iss.schema!==iss.inst?iss.schema?._zod.def?.error:undefined;const message=iss.message?iss.message:unwrapMessage(iss.inst?._zod.def?.error?.(iss))??unwrapMessage(schemaError?.(iss))??unwrapMessage(ctx?.error?.(iss))??unwrapMessage(config.customError?.(iss))??unwrapMessage(config.localeError?.(iss))??"Invalid input";const full={};for(const k of Object.keys(iss)){if(k==="inst"||k==="schema"||k==="continue"||k==="input"||k==="__proto__")continue;full[k]=iss[k]}full.path??(full.path=[]);full.message=message;if(ctx?.reportInput){full.input=iss.input}return full}function getSizableOrigin(input){if(input instanceof Set)return"set";if(input instanceof Map)return"map";if(input instanceof File)return"file";return"unknown"}var highSurrogate=/[\uD800-\uDBFF]/;function codePointLength(str){const units=str.length;if(!highSurrogate.test(str))return units;let count=units;for(let i=0;i<units-1;i++){if((str.charCodeAt(i)&64512)===55296&&(str.charCodeAt(i+1)&64512)===56320){count--;i++}}return count}function getLengthableOrigin(input){if(Array.isArray(input))return"array";if(typeof input==="string")return"string";return"unknown"}function parsedType(data){const t=typeof data;switch(t){case"number":{return Number.isNaN(data)?"nan":"number"}case"object":{if(data===null){return"null"}if(Array.isArray(data)){return"array"}const obj=data;if(obj&&Object.getPrototypeOf(obj)!==Object.prototype&&"constructor"in obj&&obj.constructor){return obj.constructor.name}}}return t}function issue(...args){const[iss,input,inst]=args;if(typeof iss==="string"){return{message:iss,code:"custom",input,inst}}return{...iss}}function cleanEnum(obj){return Object.entries(obj).filter(([k,_])=>{return Number.isNaN(Number.parseInt(k,10))}).map((el)=>el[1])}function base64ToUint8Array(base64){const binaryString=atob(base64);const bytes=new Uint8Array(binaryString.length);for(let i=0;i<binaryString.length;i++){bytes[i]=binaryString.charCodeAt(i)}return bytes}function uint8ArrayToBase64(bytes){let binaryString="";for(let i=0;i<bytes.length;i++){binaryString+=String.fromCharCode(bytes[i])}return btoa(binaryString)}function base64urlToUint8Array(base64url){const base64=base64url.replace(/-/g,"+").replace(/_/g,"/");const padding="=".repeat((4-base64.length%4)%4);return base64ToUint8Array(base64+padding)}function uint8ArrayToBase64url(bytes){return uint8ArrayToBase64(bytes).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function hexToUint8Array(hex){const cleanHex=hex.replace(/^0x/,"");if(cleanHex.length%2!==0){throw new Error("Invalid hex string length")}const bytes=new Uint8Array(cleanHex.length/2);for(let i=0;i<cleanHex.length;i+=2){bytes[i/2]=Number.parseInt(cleanHex.slice(i,i+2),16)}return bytes}function uint8ArrayToHex(bytes){return Array.from(bytes).map((b)=>b.toString(16).padStart(2,"0")).join("")}class Class{constructor(..._args){}}function members(proto,table){for(const key in table){const desc=Object.getOwnPropertyDescriptor(table,key);if(desc.get)Object.defineProperty(proto,key,{...desc,enumerable:false});else defineBound(proto,key,desc.value)}}function own(inst,key,value,enumerable=true){Object.defineProperty(inst,key,{configurable:true,writable:true,enumerable,value});return value}function hide(inst,key,value){return own(inst,key,value,false)}function derived(computes,table){for(const key in computes){const compute=computes[key];Object.defineProperty(table,key,{configurable:true,enumerable:true,get(){return own(this,key,compute(this))},set(value){own(this,key,value)}})}return table}function defineBound(proto,key,fn){Object.defineProperty(proto,key,{configurable:true,get(){return this==null?fn:own(this,key,fn.bind(this))},set(value){own(this,key,value)}})}function claim(inst,sentinel){const proto=Object.getPrototypeOf(inst);return sentinel in proto?undefined:proto}var installing;var broke=false;var breaker={configurable:true,get(){broke=true;return}};function defineLazyInternal(inst,key,compute){const proto=Object.getPrototypeOf(inst._zod);if(key in proto&&installing!==inst._zod){installing=undefined;return}installing=inst._zod;Object.defineProperty(proto,key,{configurable:true,get(){Object.defineProperty(this,key,breaker);const outer=broke;broke=false;try{const value=compute(this);if(broke)delete this[key];else Object.defineProperty(this,key,{configurable:true,writable:true,value});broke=broke||outer;return value}catch(err){delete this[key];broke=broke||outer;throw err}},set(value){Object.defineProperty(this,key,{configurable:true,writable:true,value})}})}function installLazyProp(inst,key,make,enumerable){const proto=claim(inst,key);if(!proto)return;Object.defineProperty(proto,key,{configurable:true,get(){const desc={configurable:true,writable:true,enumerable,value:undefined};Object.defineProperty(this,key,desc);desc.value=make(this);Object.defineProperty(this,key,desc);return desc.value},set(value){Object.defineProperty(this,key,{configurable:true,writable:true,enumerable,value})}})}var CONSTANT_CATCH="~constantCatch";function constantCatch(value){const fn=()=>value;fn[CONSTANT_CATCH]=true;return fn}var _a;var NEVER=Object.freeze({status:"aborted"});var _zodDesc={value:undefined,enumerable:false};var _E="captureStackTrace"in Error?Error:null;function newError(Definition){const E=_E;if(E){const saved=E.stackTraceLimit;if(typeof saved==="number"){try{E.stackTraceLimit=0}catch{_E=null;return new Definition}try{return new Definition}finally{E.stackTraceLimit=saved}}}return new Definition}function $constructor(name,initializer,proto,params){const zodProto={};function Internals(def){this.def=def;this.constr=_;this.traits=new Set}Internals.prototype=zodProto;const protoMembers=proto;const initialized=protoMembers&&new WeakSet;function init(inst,def){if(!inst._zod){_zodDesc.value=new Internals(def);try{Object.defineProperty(inst,"_zod",_zodDesc)}finally{_zodDesc.value=undefined}}else if(inst._zod.traits.has(name)){return}inst._zod.traits.add(name);initializer(inst,def);if(initialized){const own=Object.getPrototypeOf(inst);const ctorProto=inst._zod.constr.prototype;let up=own;while(up&&up!==ctorProto)up=Object.getPrototypeOf(up);const target=up??own;if(!initialized.has(target)){initialized.add(target);members(target,protoMembers)}}const proto=_.prototype;for(const k in proto){if(!Object.prototype.hasOwnProperty.call(proto,k))continue;if(!(k in inst)){inst[k]=proto[k].bind(inst)}}}const Parent=params?.Parent??Object;class Definition extends Parent{}Object.defineProperty(Definition,"name",{value:name});function _(def){const inst=params?.Parent?newError(Definition):this;init(inst,def);const deferred=inst._zod.deferred;if(deferred){for(const fn of deferred){fn()}inst._zod.deferred=undefined}const pp=globalThis.__zod_globalConfig?.postProcessor;if(pp)pp(inst);return inst}Object.defineProperty(_,"init",{value:init});Object.defineProperty(_,Symbol.hasInstance,{value:(inst)=>{if(params?.Parent&&inst instanceof params.Parent)return true;return inst?._zod?.traits?.has(name)}});Object.defineProperty(_,"name",{value:name});return _}var $brand=Symbol("zod_brand");class $ZodAsyncError extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}}class $ZodEncodeError extends Error{constructor(name){super(`Encountered unidirectional transform during encode: ${name}`);this.name="ZodEncodeError"}}(_a=globalThis).__zod_globalConfig??(_a.__zod_globalConfig={});var globalConfig=globalThis.__zod_globalConfig;function config(newConfig){if(newConfig)Object.assign(globalConfig,newConfig);return globalConfig}function _getMessage(){const internals=this._zod;internals.message??(internals.message=JSON.stringify(internals.def,jsonStringifyReplacer,2));return internals.message}function _setMessage(value){this._zod.message=value}var _messageDesc={get:_getMessage,set:_setMessage,enumerable:true,configurable:true};var _issuesDesc={value:undefined,enumerable:false};var _installedToString=new WeakSet([Object.prototype,Error.prototype]);var initializer=(inst,def)=>{inst.name="$ZodError";_issuesDesc.value=def;Object.defineProperty(inst,"issues",_issuesDesc);_issuesDesc.value=undefined;Object.defineProperty(inst,"message",_messageDesc);const proto=Object.getPrototypeOf(inst);if(!_installedToString.has(proto)){_installedToString.add(proto);Object.defineProperty(proto,"toString",{configurable:true,enumerable:false,get(){const value=()=>this.message;Object.defineProperty(this,"toString",{value,configurable:true,writable:true});return value},set(value){Object.defineProperty(this,"toString",{value,configurable:true,writable:true})}})}};var $ZodError=$constructor("$ZodError",initializer);var $ZodRealError=$constructor("$ZodError",initializer,undefined,{Parent:Error});function node(obj,key,make){if(!Object.prototype.hasOwnProperty.call(obj,key)){if(key==="__proto__"){Object.defineProperty(obj,key,{value:make(),writable:true,enumerable:true,configurable:true})}else{obj[key]=make()}}return obj[key]}function flattenError(error,mapper=(issue)=>issue.message){const fieldErrors={};const formErrors=[];for(const sub of error.issues){if(sub.path.length>0){node(fieldErrors,sub.path[0],()=>[]).push(mapper(sub))}else{formErrors.push(mapper(sub))}}return{formErrors,fieldErrors}}function formatError(error,mapper=(issue)=>issue.message){const fieldErrors={_errors:[]};const processError=(error,path=[])=>{for(const issue of error.issues){if(issue.code==="invalid_union"&&issue.errors.length){issue.errors.map((issues)=>processError({issues},[...path,...issue.path]))}else if(issue.code==="invalid_key"){processError({issues:issue.issues},[...path,...issue.path])}else if(issue.code==="invalid_element"){processError({issues:issue.issues},[...path,...issue.path])}else{const fullpath=[...path,...issue.path];if(fullpath.length===0){fieldErrors._errors.push(mapper(issue))}else{let curr=fieldErrors;let i=0;while(i<fullpath.length){const el=fullpath[i];const terminal=i===fullpath.length-1;if(el==="_errors"){if(terminal)curr._errors.push(mapper(issue));i++;continue}if(!Object.prototype.hasOwnProperty.call(curr,el)){Object.defineProperty(curr,el,{value:{_errors:[]},enumerable:true,writable:true,configurable:true})}const node=curr[el];if(terminal){node._errors.push(mapper(issue))}curr=node;i++}}}}};processError(error);return fieldErrors}function treeifyError(error,mapper=(issue)=>issue.message){const result={errors:[]};const processError=(error,path=[])=>{var _a;for(const issue of error.issues){if(issue.code==="invalid_union"&&issue.errors.length){issue.errors.map((issues)=>processError({issues},[...path,...issue.path]))}else if(issue.code==="invalid_key"){processError({issues:issue.issues},[...path,...issue.path])}else if(issue.code==="invalid_element"){processError({issues:issue.issues},[...path,...issue.path])}else{const fullpath=[...path,...issue.path];if(fullpath.length===0){result.errors.push(mapper(issue));continue}let curr=result;let i=0;while(i<fullpath.length){const el=fullpath[i];const terminal=i===fullpath.length-1;if(typeof el==="string"){curr.properties??(curr.properties={});if(!Object.prototype.hasOwnProperty.call(curr.properties,el)){Object.defineProperty(curr.properties,el,{value:{errors:[]},enumerable:true,writable:true,configurable:true})}curr=curr.properties[el]}else{curr.items??(curr.items=[]);(_a=curr.items)[el]??(_a[el]={errors:[]});curr=curr.items[el]}if(terminal){curr.errors.push(mapper(issue))}i++}}}};processError(error);return result}function toDotPath(_path){const segs=[];const path=_path.map((seg)=>typeof seg==="object"?seg.key:seg);for(const seg of path){if(typeof seg==="number")segs.push(`[${seg}]`);else if(typeof seg==="symbol")segs.push(`[${JSON.stringify(String(seg))}]`);else if(/[^\w$]/.test(seg))segs.push(`[${JSON.stringify(seg)}]`);else{if(segs.length)segs.push(".");segs.push(seg)}}return segs.join("")}function prettifyError(error){const lines=[];const issues=[...error.issues].sort((a,b)=>(a.path??[]).length-(b.path??[]).length);for(const issue of issues){lines.push(`✖ ${issue.message}`);if(issue.path?.length)lines.push(` → at ${toDotPath(issue.path)}`)}return lines.join(`
8
+ `)}function finalizeParams(callee,params){return{callee:params?.callee??callee,Err:params?.Err}}var _parse=(_Err)=>{const fn=(schema,value,_ctx,_params)=>{const ctx=_ctx?{..._ctx,async:false}:{async:false};const result=schema._zod.run({value,issues:[]},ctx);if(result instanceof Promise){throw new $ZodAsyncError}if(result.issues.length){const e=new(_params?.Err??_Err)(result.issues.map((iss)=>finalizeIssue(iss,ctx,config())));captureStackTrace(e,_params?.callee??fn);throw e}return result.value};return fn};var parse=_parse($ZodRealError);var _parseAsync=(_Err)=>{const fn=async(schema,value,_ctx,params)=>{const ctx=_ctx?{..._ctx,async:true}:{async:true};let result=schema._zod.run({value,issues:[]},ctx);if(result instanceof Promise)result=await result;if(result.issues.length){const e=new(params?.Err??_Err)(result.issues.map((iss)=>finalizeIssue(iss,ctx,config())));captureStackTrace(e,params?.callee??fn);throw e}return result.value};return fn};var parseAsync=_parseAsync($ZodRealError);var _safeParse=(_Err)=>(schema,value,_ctx)=>{const ctx=_ctx?{..._ctx,async:false}:{async:false};const result=schema._zod.run({value,issues:[]},ctx);if(result instanceof Promise){throw new $ZodAsyncError}return result.issues.length?failure(_Err,result.issues,ctx):{success:true,data:result.value}};var safeParse=_safeParse($ZodRealError);function failure(Err,issues,ctx){let error;return{success:false,get error(){if(!error){error=new Err(issues.map((iss)=>finalizeIssue(iss,ctx,config())));issues=undefined;ctx=undefined}return error},set error(e){error=e;issues=undefined;ctx=undefined}}}var _safeParseAsync=(_Err)=>async(schema,value,_ctx)=>{const ctx=_ctx?{..._ctx,async:true}:{async:true};let result=schema._zod.run({value,issues:[]},ctx);if(result instanceof Promise)result=await result;return result.issues.length?failure(_Err,result.issues,ctx):{success:true,data:result.value}};var safeParseAsync=_safeParseAsync($ZodRealError);var COMPILE_INVALID=Symbol.for("zod.compile.invalid");var COMPILE_FALLBACK=Symbol.for("zod.compile.fallback");var validate=(schema,value,_ctx)=>{const validator=schema._zod.bag.validator;if(validator!==undefined){if(validator(value)!==COMPILE_INVALID)return true;if(validator.definite===true&&_ctx===undefined)return false}return validateFallback(schema,value,_ctx)};function validateFallback(schema,value,_ctx){const ctx=_ctx?{..._ctx,async:false,abortEarly:true}:{async:false,abortEarly:true};const fallbackRun=schema._zod.bag.fallbackRun;let result;if(fallbackRun){ctx[COMPILE_FALLBACK]=true;result=fallbackRun({value,issues:[]},ctx)}else{result=schema._zod.run({value,issues:[]},ctx)}if(result instanceof Promise){throw new $ZodAsyncError}return result.issues.length===0}var validateAsync=async(schema,value,_ctx)=>{const ctx=_ctx?{..._ctx,async:true,abortEarly:true}:{async:true,abortEarly:true};let result=schema._zod.run({value,issues:[]},ctx);if(result instanceof Promise)result=await result;return result.issues.length===0};var _encode=(_Err)=>{const parse=_parse(_Err);const fn=(schema,value,_ctx,_params)=>{const ctx=_ctx?{..._ctx,direction:"backward"}:{direction:"backward"};return parse(schema,value,ctx,finalizeParams(fn,_params))};return fn};var encode=_encode($ZodRealError);var _decode=(_Err)=>{const parse=_parse(_Err);const fn=(schema,value,_ctx,_params)=>{return parse(schema,value,_ctx,finalizeParams(fn,_params))};return fn};var decode=_decode($ZodRealError);var _encodeAsync=(_Err)=>{const parseAsync=_parseAsync(_Err);const fn=async(schema,value,_ctx,_params)=>{const ctx=_ctx?{..._ctx,direction:"backward"}:{direction:"backward"};return await parseAsync(schema,value,ctx,finalizeParams(fn,_params))};return fn};var encodeAsync=_encodeAsync($ZodRealError);var _decodeAsync=(_Err)=>{const parseAsync=_parseAsync(_Err);const fn=async(schema,value,_ctx,_params)=>{return await parseAsync(schema,value,_ctx,finalizeParams(fn,_params))};return fn};var decodeAsync=_decodeAsync($ZodRealError);var _safeEncode=(_Err)=>(schema,value,_ctx)=>{const ctx=_ctx?{..._ctx,direction:"backward"}:{direction:"backward"};return _safeParse(_Err)(schema,value,ctx)};var safeEncode=_safeEncode($ZodRealError);var _safeDecode=(_Err)=>(schema,value,_ctx)=>{return _safeParse(_Err)(schema,value,_ctx)};var safeDecode=_safeDecode($ZodRealError);var _safeEncodeAsync=(_Err)=>async(schema,value,_ctx)=>{const ctx=_ctx?{..._ctx,direction:"backward"}:{direction:"backward"};return _safeParseAsync(_Err)(schema,value,ctx)};var safeEncodeAsync=_safeEncodeAsync($ZodRealError);var _safeDecodeAsync=(_Err)=>async(schema,value,_ctx)=>{return _safeParseAsync(_Err)(schema,value,_ctx)};var safeDecodeAsync=_safeDecodeAsync($ZodRealError);var exports_regexes={};__export(exports_regexes,{anyString:()=>anyString,base64:()=>base64,base64url:()=>base64url,bigint:()=>bigint,boolean:()=>boolean,browserEmail:()=>browserEmail,cidrv4:()=>cidrv4,cidrv6:()=>cidrv6,creditCard:()=>creditCard,cuid:()=>cuid,cuid2:()=>cuid2,currencyCode:()=>currencyCode,date:()=>date,datetime:()=>datetime,domain:()=>domain,duration:()=>duration,e164:()=>e164,email:()=>email,emoji:()=>emoji,extendedDuration:()=>extendedDuration,guid:()=>guid,hex:()=>hex,hostname:()=>hostname,html5Email:()=>html5Email,httpProtocol:()=>httpProtocol,iban:()=>iban,idnEmail:()=>idnEmail,integer:()=>integer,ipv4:()=>ipv4,ipv6:()=>ipv6,ksuid:()=>ksuid,lowercase:()=>lowercase,mac:()=>mac,md5_base64:()=>md5_base64,md5_base64url:()=>md5_base64url,md5_hex:()=>md5_hex,nanoid:()=>nanoid,nanoidOfLength:()=>nanoidOfLength,null:()=>_null,number:()=>number,rfc5322Email:()=>rfc5322Email,sha1_base64:()=>sha1_base64,sha1_base64url:()=>sha1_base64url,sha1_hex:()=>sha1_hex,sha256_base64:()=>sha256_base64,sha256_base64url:()=>sha256_base64url,sha256_hex:()=>sha256_hex,sha384_base64:()=>sha384_base64,sha384_base64url:()=>sha384_base64url,sha384_hex:()=>sha384_hex,sha512_base64:()=>sha512_base64,sha512_base64url:()=>sha512_base64url,sha512_hex:()=>sha512_hex,string:()=>string,time:()=>time,ulid:()=>ulid,undefined:()=>_undefined,unicodeEmail:()=>unicodeEmail,uppercase:()=>uppercase,uuid:()=>uuid,uuid4:()=>uuid4,uuid6:()=>uuid6,uuid7:()=>uuid7,xid:()=>xid});var cuid=/^[cC][0-9a-z]{6,}$/;var cuid2=/^[0-9a-z]+$/;var ulid=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/;var xid=/^[0-9a-vA-V]{20}$/;var ksuid=/^[A-Za-z0-9]{27}$/;var nanoid=/^[a-zA-Z0-9_-]{21}$/;function nanoidOfLength(length){return new RegExp(`^[a-zA-Z0-9_-]{${length}}$`)}var duration=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var extendedDuration=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/;var guid=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;var uuid=(version)=>{if(!version)return/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`)};var uuid4=uuid(4);var uuid6=uuid(6);var uuid7=uuid(7);var email=/^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var html5Email=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;var rfc5322Email=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;var unicodeEmail=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u;var idnEmail=unicodeEmail;var browserEmail=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;var _emoji=`^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$`;function emoji(){return new RegExp(_emoji,"u")}var ipv4=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;var ipv6=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;var mac=(delimiter)=>{const escapedDelim=escapeRegex(delimiter??":");return new RegExp(`^(?:[0-9A-F]{2}${escapedDelim}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${escapedDelim}){5}[0-9a-f]{2}$`)};var cidrv4=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/;var cidrv6=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;var base64=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;var base64url=/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/;var hostname=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/;var domain=/^(?=.{1,253}$)([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,63}$/;var httpProtocol=/^https?$/;var e164=/^\+[1-9]\d{6,14}$/;var creditCard=/^\d(?:[ -]?\d){11,18}$/;var currencyCode=/^(?:AED|AFN|ALL|AMD|AOA|ARS|AUD|AWG|AZN|BAM|BBD|BDT|BHD|BIF|BMD|BND|BOB|BOV|BRL|BSD|BTN|BWP|BYN|BZD|CAD|CDF|CHE|CHF|CHW|CLF|CLP|CNY|COP|COU|CRC|CUP|CVE|CZK|DJF|DKK|DOP|DZD|EGP|ERN|ETB|EUR|FJD|FKP|GBP|GEL|GHS|GIP|GMD|GNF|GTQ|GYD|HKD|HNL|HTG|HUF|IDR|ILS|INR|IQD|IRR|ISK|JMD|JOD|JPY|KES|KGS|KHR|KMF|KPW|KRW|KWD|KYD|KZT|LAK|LBP|LKR|LRD|LSL|LYD|MAD|MDL|MGA|MKD|MMK|MNT|MOP|MRU|MUR|MVR|MWK|MXN|MXV|MYR|MZN|NAD|NGN|NIO|NOK|NPR|NZD|OMR|PAB|PEN|PGK|PHP|PKR|PLN|PYG|QAR|RON|RSD|RUB|RWF|SAR|SBD|SCR|SDG|SEK|SGD|SHP|SLE|SOS|SRD|SSP|STN|SVC|SYP|SZL|THB|TJS|TMT|TND|TOP|TRY|TTD|TWD|TZS|UAH|UGX|USD|USN|UYI|UYU|UYW|UZS|VED|VES|VND|VUV|WST|XAD|XAF|XAG|XAU|XBA|XBB|XBC|XBD|XCD|XCG|XDR|XOF|XPD|XPF|XPT|XSU|XTS|XUA|XXX|YER|ZAR|ZMW|ZWG)$/;var iban=/^[A-Z]{2}(?!00|01|99)\d{2}[A-Z0-9]{11,30}$/;var dateSource=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`;function anchor(source){return new RegExp(`^${source}$`)}var date=anchor(dateSource);function timeSource(args){const hhmm=`(?:[01]\\d|2[0-3]):[0-5]\\d`;const regex=typeof args.precision==="number"?args.precision===-1?`${hhmm}`:args.precision===0?`${hhmm}:[0-5]\\d`:`${hhmm}:[0-5]\\d\\.\\d{${args.precision}}`:args.seconds?`${hhmm}:[0-5]\\d(?:\\.\\d+)?`:`${hhmm}(?::[0-5]\\d(?:\\.\\d+)?)?`;return regex}function time(args){return new RegExp(`^${timeSource(args)}$`)}function datetime(args){const opts=["Z"];if(args.offset)opts.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);const qualified=`${timeSource({precision:args.precision,seconds:true})}(?:${opts.join("|")})`;const timeRegex=args.local?`${qualified}|${timeSource({precision:args.precision})}`:qualified;return new RegExp(`^${dateSource}T(?:${timeRegex})$`)}var anyString=/^[\s\S]{0,}$/;var string=(params)=>{const regex=params?`[\\s\\S]{${params?.minimum??0},${params?.maximum??""}}`:`[\\s\\S]*`;return new RegExp(`^${regex}$`)};var bigint=/^-?\d+n?$/;var integer=/^-?\d+$/;var number=/^-?\d+(?:\.\d+)?$/;var boolean=/^(?:true|false)$/i;var _null=/^null$/i;var _undefined=/^undefined$/i;var lowercase=/^[^A-Z]*$/;var uppercase=/^[^a-z]*$/;var hex=/^[0-9a-fA-F]*$/;function fixedBase64(bodyLength,padding){return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`)}function fixedBase64url(length){return new RegExp(`^[A-Za-z0-9_-]{${length}}$`)}var md5_hex=/^[0-9a-fA-F]{32}$/;var md5_base64=fixedBase64(22,"==");var md5_base64url=fixedBase64url(22);var sha1_hex=/^[0-9a-fA-F]{40}$/;var sha1_base64=fixedBase64(27,"=");var sha1_base64url=fixedBase64url(27);var sha256_hex=/^[0-9a-fA-F]{64}$/;var sha256_base64=fixedBase64(43,"=");var sha256_base64url=fixedBase64url(43);var sha384_hex=/^[0-9a-fA-F]{96}$/;var sha384_base64=fixedBase64(64,"");var sha384_base64url=fixedBase64url(64);var sha512_hex=/^[0-9a-fA-F]{128}$/;var sha512_base64=fixedBase64(86,"==");var sha512_base64url=fixedBase64url(86);var $ZodCheck=$constructor("$ZodCheck",(inst,def)=>{var _a;inst._zod??(inst._zod={});inst._zod.def=def;(_a=inst._zod).onattach??(_a.onattach=[])});var _whenHasSize=(payload)=>{const val=payload.value;return!nullish(val)&&val.size!==undefined};var _whenHasLength=(payload)=>{const val=payload.value;return!nullish(val)&&val.length!==undefined};var numericOriginMap={number:"number",bigint:"bigint",object:"date"};var $ZodCheckLessThan=$constructor("$ZodCheckLessThan",(inst,def)=>{$ZodCheck.init(inst,def);const origin=numericOriginMap[typeof def.value];inst._zod.check=(payload)=>{if(def.inclusive?payload.value<=def.value:payload.value<def.value){return}payload.issues.push({origin:numericOriginMap[typeof payload.value]??origin,code:"too_big",maximum:typeof def.value==="object"?def.value.getTime():def.value,input:payload.value,inclusive:def.inclusive,inst,continue:!def.abort})}});var $ZodCheckGreaterThan=$constructor("$ZodCheckGreaterThan",(inst,def)=>{$ZodCheck.init(inst,def);const origin=numericOriginMap[typeof def.value];inst._zod.check=(payload)=>{if(def.inclusive?payload.value>=def.value:payload.value>def.value){return}payload.issues.push({origin:numericOriginMap[typeof payload.value]??origin,code:"too_small",minimum:typeof def.value==="object"?def.value.getTime():def.value,input:payload.value,inclusive:def.inclusive,inst,continue:!def.abort})}});var $ZodCheckMultipleOf=$constructor("$ZodCheckMultipleOf",(inst,def)=>{$ZodCheck.init(inst,def);inst._zod.check=(payload)=>{if(typeof payload.value!==typeof def.value)throw new Error("Cannot mix number and bigint in multiple_of check.");const isMultiple=typeof payload.value==="bigint"?def.value!==BigInt(0)&&payload.value%def.value===BigInt(0):floatSafeRemainder(payload.value,def.value)===0;if(isMultiple)return;payload.issues.push({origin:typeof payload.value,code:"not_multiple_of",divisor:def.value,input:payload.value,inst,continue:!def.abort})}});var $ZodCheckNumberFormat=$constructor("$ZodCheckNumberFormat",(inst,def)=>{$ZodCheck.init(inst,def);def.format=def.format||"float64";const isInt=def.format?.includes("int");const origin=isInt?"int":"number";const[minimum,maximum]=NUMBER_FORMAT_RANGES[def.format];inst._zod.check=(payload)=>{const input=payload.value;if(isInt){if(!Number.isInteger(input)){payload.issues.push({expected:origin,format:def.format,code:"invalid_type",continue:false,input,inst});return}if(!Number.isSafeInteger(input)){if(input>0){payload.issues.push({input,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst,origin,inclusive:true,continue:!def.abort})}else{payload.issues.push({input,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst,origin,inclusive:true,continue:!def.abort})}return}}if(input<minimum){payload.issues.push({origin:"number",input,code:"too_small",minimum,inclusive:true,inst,continue:!def.abort})}if(input>maximum){payload.issues.push({origin:"number",input,code:"too_big",maximum,inclusive:true,inst,continue:!def.abort})}}});var $ZodCheckBigIntFormat=$constructor("$ZodCheckBigIntFormat",(inst,def)=>{$ZodCheck.init(inst,def);const[minimum,maximum]=BIGINT_FORMAT_RANGES[def.format];inst._zod.check=(payload)=>{const input=payload.value;if(input<minimum){payload.issues.push({origin:"bigint",input,code:"too_small",minimum,inclusive:true,inst,continue:!def.abort})}if(input>maximum){payload.issues.push({origin:"bigint",input,code:"too_big",maximum,inclusive:true,inst,continue:!def.abort})}}});var $ZodCheckMaxSize=$constructor("$ZodCheckMaxSize",(inst,def)=>{var _a;$ZodCheck.init(inst,def);(_a=inst._zod.def).when??(_a.when=_whenHasSize);inst._zod.check=(payload)=>{const input=payload.value;const size=input.size;if(size<=def.maximum)return;payload.issues.push({origin:getSizableOrigin(input),code:"too_big",maximum:def.maximum,inclusive:true,input,inst,continue:!def.abort})}});var $ZodCheckMinSize=$constructor("$ZodCheckMinSize",(inst,def)=>{var _a;$ZodCheck.init(inst,def);(_a=inst._zod.def).when??(_a.when=_whenHasSize);inst._zod.check=(payload)=>{const input=payload.value;const size=input.size;if(size>=def.minimum)return;payload.issues.push({origin:getSizableOrigin(input),code:"too_small",minimum:def.minimum,inclusive:true,input,inst,continue:!def.abort})}});var $ZodCheckSizeEquals=$constructor("$ZodCheckSizeEquals",(inst,def)=>{var _a;$ZodCheck.init(inst,def);(_a=inst._zod.def).when??(_a.when=_whenHasSize);inst._zod.check=(payload)=>{const input=payload.value;const size=input.size;if(size===def.size)return;const tooBig=size>def.size;payload.issues.push({origin:getSizableOrigin(input),...tooBig?{code:"too_big",maximum:def.size}:{code:"too_small",minimum:def.size},inclusive:true,exact:true,input:payload.value,inst,continue:!def.abort})}});var $ZodCheckMaxLength=$constructor("$ZodCheckMaxLength",(inst,def)=>{var _a;$ZodCheck.init(inst,def);(_a=inst._zod.def).when??(_a.when=_whenHasLength);inst._zod.check=(payload)=>{const input=payload.value;const units=input.length;const length=typeof input==="string"&&units>def.maximum?codePointLength(input):units;if(length<=def.maximum)return;const origin=getLengthableOrigin(input);payload.issues.push({origin,code:"too_big",maximum:def.maximum,inclusive:true,input,inst,continue:!def.abort})}});var $ZodCheckMinLength=$constructor("$ZodCheckMinLength",(inst,def)=>{var _a;$ZodCheck.init(inst,def);(_a=inst._zod.def).when??(_a.when=_whenHasLength);inst._zod.check=(payload)=>{const input=payload.value;const units=input.length;const length=typeof input==="string"&&units>=def.minimum&&units<def.minimum*2?codePointLength(input):units;if(length>=def.minimum)return;const origin=getLengthableOrigin(input);payload.issues.push({origin,code:"too_small",minimum:def.minimum,inclusive:true,input,inst,continue:!def.abort})}});var $ZodCheckLengthEquals=$constructor("$ZodCheckLengthEquals",(inst,def)=>{var _a;$ZodCheck.init(inst,def);(_a=inst._zod.def).when??(_a.when=_whenHasLength);inst._zod.check=(payload)=>{const input=payload.value;const units=input.length;const length=typeof input==="string"&&units>=def.length&&units<=def.length*2?codePointLength(input):units;if(length===def.length)return;const origin=getLengthableOrigin(input);const tooBig=length>def.length;payload.issues.push({origin,...tooBig?{code:"too_big",maximum:def.length}:{code:"too_small",minimum:def.length},inclusive:true,exact:true,input:payload.value,inst,continue:!def.abort})}});var $ZodCheckStringFormat=$constructor("$ZodCheckStringFormat",(inst,def)=>{var _a,_b;$ZodCheck.init(inst,def);if(def.pattern)(_a=inst._zod).check??(_a.check=(payload)=>{def.pattern.lastIndex=0;if(def.pattern.test(payload.value))return;payload.issues.push({origin:"string",code:"invalid_format",format:def.format,input:payload.value,...def.pattern?{pattern:def.pattern.toString()}:{},inst,continue:!def.abort})});else(_b=inst._zod).check??(_b.check=()=>{})});var $ZodCheckRegex=$constructor("$ZodCheckRegex",(inst,def)=>{$ZodCheckStringFormat.init(inst,def);inst._zod.check=(payload)=>{def.pattern.lastIndex=0;if(def.pattern.test(payload.value))return;payload.issues.push({origin:"string",code:"invalid_format",format:"regex",input:payload.value,pattern:def.pattern.toString(),inst,continue:!def.abort})}});var $ZodCheckLowerCase=$constructor("$ZodCheckLowerCase",(inst,def)=>{def.pattern??(def.pattern=lowercase);$ZodCheckStringFormat.init(inst,def)});var $ZodCheckUpperCase=$constructor("$ZodCheckUpperCase",(inst,def)=>{def.pattern??(def.pattern=uppercase);$ZodCheckStringFormat.init(inst,def)});var $ZodCheckIncludes=$constructor("$ZodCheckIncludes",(inst,def)=>{$ZodCheck.init(inst,def);const escapedRegex=escapeRegex(def.includes);const pattern=new RegExp(typeof def.position==="number"?`^.{${def.position},}${escapedRegex}`:escapedRegex);def.pattern=pattern;inst._zod.check=(payload)=>{if(payload.value.includes(def.includes,def.position))return;payload.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:def.includes,input:payload.value,inst,continue:!def.abort})}});var $ZodCheckStartsWith=$constructor("$ZodCheckStartsWith",(inst,def)=>{$ZodCheck.init(inst,def);const pattern=new RegExp(`^${escapeRegex(def.prefix)}.*`);def.pattern??(def.pattern=pattern);inst._zod.check=(payload)=>{if(payload.value.startsWith(def.prefix))return;payload.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:def.prefix,input:payload.value,inst,continue:!def.abort})}});var $ZodCheckEndsWith=$constructor("$ZodCheckEndsWith",(inst,def)=>{$ZodCheck.init(inst,def);const pattern=new RegExp(`.*${escapeRegex(def.suffix)}$`);def.pattern??(def.pattern=pattern);inst._zod.check=(payload)=>{if(payload.value.endsWith(def.suffix))return;payload.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:def.suffix,input:payload.value,inst,continue:!def.abort})}});function handleCheckPropertyResult(result,payload,property){if(result.issues.length){payload.issues.push(...prefixIssues(property,result.issues))}}var $ZodCheckProperty=$constructor("$ZodCheckProperty",(inst,def)=>{$ZodCheck.init(inst,def);inst._zod.check=(payload)=>{const result=def.schema._zod.run({value:payload.value[def.property],issues:[]},{});if(result instanceof Promise){return result.then((result)=>handleCheckPropertyResult(result,payload,def.property))}handleCheckPropertyResult(result,payload,def.property);return}});var $ZodCheckProperties=$constructor("$ZodCheckProperties",(inst,def)=>{$ZodCheck.init(inst,def);hide(inst,Symbol.iterator,function*(){yield inst});let entries;inst._zod.check=(payload)=>{if(payload.value==null){payload.issues.push({expected:"object",code:"invalid_type",input:payload.value,inst});return}entries??(entries=Reflect.ownKeys(def.shape).map((key)=>[key,def.shape[key]]));const input=payload.value;let proms;for(const[key,schema]of entries){const result=schema._zod.run({value:input[key],issues:[]},{});if(result instanceof Promise){proms??(proms=[]);proms.push(result.then((result)=>handleCheckPropertyResult(result,payload,key)))}else{handleCheckPropertyResult(result,payload,key)}}if(proms)return Promise.all(proms).then(()=>{return});return}});var $ZodCheckMimeType=$constructor("$ZodCheckMimeType",(inst,def)=>{$ZodCheck.init(inst,def);const mimeSet=new Set(def.mime);inst._zod.check=(payload)=>{if(mimeSet.has(payload.value.type))return;payload.issues.push({code:"invalid_value",values:def.mime,input:payload.value.type,inst,continue:!def.abort})}});var $ZodCheckOverwrite=$constructor("$ZodCheckOverwrite",(inst,def)=>{$ZodCheck.init(inst,def);inst._zod.check=(payload)=>{payload.value=def.tx(payload.value)}});class Doc{constructor(args=[],closed={}){this.content=[];this.indent=0;this.args=args;this.closed=closed}indented(fn){this.indent+=1;try{fn(this)}finally{this.indent-=1}}write(arg){if(typeof arg==="function"){arg(this,{execution:"sync"});arg(this,{execution:"async"});return}const content=arg;const lines=content.split(`
9
+ `).filter((x)=>x);const minIndent=Math.min(...lines.map((x)=>x.length-x.trimStart().length));const dedented=lines.map((x)=>x.slice(minIndent)).map((x)=>" ".repeat(this.indent*2)+x);for(const line of dedented){this.content.push(line)}}compile(){const F=Function;const content=this?.content??[``];const factory=new F(...Object.keys(this.closed),`return function (${this.args.join(", ")}) {
10
+ ${content.join(`
11
+ `)}
12
+ };`);return factory(...Object.values(this.closed))}}var version={major:4,minor:6,patch:5};var $ZodType=$constructor("$ZodType",(inst,def)=>{var _a;inst??(inst={});inst._zod.def=def;inst._zod.bag=inst._zod.bag||{};inst._zod.version=version;const defChecks=inst._zod.def.checks;const checks=inst._zod.traits.has("$ZodCheck")?[inst,...defChecks??[]]:defChecks?.length?[...defChecks]:[];for(const ch of checks){for(const fn of ch._zod.onattach){fn(inst)}}if(checks.length===0){(_a=inst._zod).deferred??(_a.deferred=[]);inst._zod.deferred?.push(()=>{inst._zod.run=inst._zod.parse})}else{const runChecks=(payload,checks,ctx)=>{if(payload.memo)return payload;let isAborted=aborted(payload);let asyncResult;for(const ch of checks){if(ch._zod.def.when){if(explicitlyAborted(payload))continue;const shouldRun=ch._zod.def.when(payload);if(!shouldRun)continue}else if(isAborted){continue}const currLen=payload.issues.length;const _=ch._zod.check(payload);if(_ instanceof Promise&&ctx?.async===false){throw new $ZodAsyncError}if(asyncResult||_ instanceof Promise){asyncResult=(asyncResult??Promise.resolve()).then(async()=>{await _;const nextLen=payload.issues.length;if(nextLen===currLen)return;attachSchema(payload.issues,currLen,inst);if(!isAborted)isAborted=aborted(payload,currLen)})}else{const nextLen=payload.issues.length;if(nextLen===currLen)continue;attachSchema(payload.issues,currLen,inst);if(!isAborted)isAborted=aborted(payload,currLen)}}if(asyncResult){return asyncResult.then(()=>{return payload})}return payload};const handleCanaryResult=(canary,payload,ctx)=>{if(aborted(canary)){canary.aborted=true;return canary}const checkResult=runChecks(payload,checks,ctx);if(checkResult instanceof Promise){if(ctx.async===false)throw new $ZodAsyncError;return checkResult.then((checkResult)=>inst._zod.parse(checkResult,ctx))}return inst._zod.parse(checkResult,ctx)};inst._zod.run=(payload,ctx)=>{if(ctx.skipChecks){return inst._zod.parse(payload,ctx)}if(ctx.direction==="backward"){const canary=inst._zod.parse({value:payload.value,issues:[]},{...ctx,skipChecks:true});if(canary instanceof Promise){return canary.then((canary)=>{return handleCanaryResult(canary,payload,ctx)})}return handleCanaryResult(canary,payload,ctx)}const result=inst._zod.parse(payload,ctx);if(result instanceof Promise){if(ctx.async===false)throw new $ZodAsyncError;return result.then((result)=>runChecks(result,checks,ctx))}return runChecks(result,checks,ctx)}}},{get "~standard"(){return hide(this,"~standard",standardProps(this))},set "~standard"(value){own(this,"~standard",value)}});var toStandardResult=(r,ctx)=>r.issues.length?{issues:r.issues.map((iss)=>finalizeIssue(iss,ctx,config()))}:{value:r.value};async function validateAsync2(inst,value){const ctx={async:true};return toStandardResult(await inst._zod.run({value,issues:[]},ctx),ctx)}function standardProps(inst){return{validate:(value)=>{const ctx={async:false};try{const r=inst._zod.run({value,issues:[]},ctx);if(!(r instanceof Promise))return toStandardResult(r,ctx)}catch(_){}return validateAsync2(inst,value)},vendor:"zod",version:1}}var $ZodString=$constructor("$ZodString",(inst,def)=>{$ZodType.init(inst,def);inst._zod.pattern=def.pattern??anyString;inst._zod.parse=(payload,_)=>{if(def.coerce)try{payload.value=String(payload.value)}catch(_){}if(typeof payload.value==="string")return payload;payload.issues.push({expected:"string",code:"invalid_type",input:payload.value,inst});return payload}});var $ZodStringFormat=$constructor("$ZodStringFormat",(inst,def)=>{$ZodCheckStringFormat.init(inst,def);$ZodString.init(inst,def)});var $ZodGUID=$constructor("$ZodGUID",(inst,def)=>{def.pattern??(def.pattern=guid);$ZodStringFormat.init(inst,def)});var $ZodUUID=$constructor("$ZodUUID",(inst,def)=>{if(def.version){const versionMap={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8};const v=versionMap[def.version];if(v===undefined)throw new Error(`Invalid UUID version: "${def.version}"`);def.pattern??(def.pattern=uuid(v))}else def.pattern??(def.pattern=uuid());$ZodStringFormat.init(inst,def)});var $ZodEmail=$constructor("$ZodEmail",(inst,def)=>{def.pattern??(def.pattern=email);$ZodStringFormat.init(inst,def)});var URL_BAD_FORMAT=1;var URL_UNPARSEABLE=2;function canParseURL(input){try{if(typeof URL!=="undefined"&&typeof URL.canParse==="function")return URL.canParse(input);new URL(input);return true}catch{return false}}function validateURL(trimmed,def){if(!("normalize"in def)&&!("hostname"in def)&&!("protocol"in def)){return canParseURL(trimmed)||URL_UNPARSEABLE}return parseURLObject(trimmed,def)}function parseURLObject(trimmed,def){if(!def.normalize&&def.protocol?.source===httpProtocol.source&&!/^https?:\/\//i.test(trimmed)){return URL_BAD_FORMAT}try{if(typeof URL!=="undefined"){const URLStatic=URL;if(typeof URLStatic.parse==="function")return URLStatic.parse(trimmed)??URL_UNPARSEABLE}return new URL(trimmed)}catch{return URL_UNPARSEABLE}}var asciiTabOrNewline=/[\t\n\r]/g;function stripTabAndNewline(value){return value.replace(asciiTabOrNewline,"")}function urlHostnameOk(url,hostname){hostname.lastIndex=0;return hostname.test(url.hostname)}function urlProtocolOk(url,protocol){protocol.lastIndex=0;return protocol.test(url.protocol.endsWith(":")?url.protocol.slice(0,-1):url.protocol)}var $ZodURL=$constructor("$ZodURL",(inst,def)=>{$ZodStringFormat.init(inst,def);inst._zod.check=(payload)=>{try{const trimmed=payload.value.trim();const url=validateURL(trimmed,def);if(url===URL_BAD_FORMAT){payload.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:payload.value,inst,continue:!def.abort});return}if(url===URL_UNPARSEABLE){payload.issues.push({code:"invalid_format",format:"url",input:payload.value,inst,continue:!def.abort});return}if(url===true){payload.value=stripTabAndNewline(trimmed);return}if(def.hostname&&!urlHostnameOk(url,def.hostname)){payload.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:def.hostname.source,input:payload.value,inst,continue:!def.abort})}if(def.protocol&&!urlProtocolOk(url,def.protocol)){payload.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:def.protocol.source,input:payload.value,inst,continue:!def.abort})}payload.value=def.normalize?url.href:stripTabAndNewline(trimmed);return}catch(_){payload.issues.push({code:"invalid_format",format:"url",input:payload.value,inst,continue:!def.abort})}}});var $ZodEmoji=$constructor("$ZodEmoji",(inst,def)=>{def.pattern??(def.pattern=emoji());$ZodStringFormat.init(inst,def)});var $ZodNanoID=$constructor("$ZodNanoID",(inst,def)=>{if(def.length!==undefined&&(!Number.isInteger(def.length)||def.length<1))throw new Error(`Invalid nanoid length: ${def.length}`);def.pattern??(def.pattern=def.length===undefined?nanoid:nanoidOfLength(def.length));$ZodStringFormat.init(inst,def)});var $ZodCUID=$constructor("$ZodCUID",(inst,def)=>{def.pattern??(def.pattern=cuid);$ZodStringFormat.init(inst,def)});var $ZodCUID2=$constructor("$ZodCUID2",(inst,def)=>{def.pattern??(def.pattern=cuid2);$ZodStringFormat.init(inst,def)});var $ZodULID=$constructor("$ZodULID",(inst,def)=>{def.pattern??(def.pattern=ulid);$ZodStringFormat.init(inst,def)});var $ZodXID=$constructor("$ZodXID",(inst,def)=>{def.pattern??(def.pattern=xid);$ZodStringFormat.init(inst,def)});var $ZodKSUID=$constructor("$ZodKSUID",(inst,def)=>{def.pattern??(def.pattern=ksuid);$ZodStringFormat.init(inst,def)});var $ZodISODateTime=$constructor("$ZodISODateTime",(inst,def)=>{def.pattern??(def.pattern=datetime(def));$ZodStringFormat.init(inst,def)});var $ZodISODate=$constructor("$ZodISODate",(inst,def)=>{def.pattern??(def.pattern=date);$ZodStringFormat.init(inst,def)});var $ZodISOTime=$constructor("$ZodISOTime",(inst,def)=>{def.pattern??(def.pattern=time(def));$ZodStringFormat.init(inst,def)});var $ZodISODuration=$constructor("$ZodISODuration",(inst,def)=>{def.pattern??(def.pattern=duration);$ZodStringFormat.init(inst,def)});var $ZodIPv4=$constructor("$ZodIPv4",(inst,def)=>{def.pattern??(def.pattern=ipv4);$ZodStringFormat.init(inst,def)});var ipv6Alphabet=/^[0-9a-fA-F:.]+$/;function isValidIPv6(value){if(!ipv6Alphabet.test(value))return false;return canParseURL(`http://[${value}]`)}var $ZodIPv6=$constructor("$ZodIPv6",(inst,def)=>{def.pattern??(def.pattern=ipv6);$ZodStringFormat.init(inst,def);inst._zod.check=(payload)=>{if(!isValidIPv6(payload.value)){payload.issues.push({code:"invalid_format",format:"ipv6",input:payload.value,inst,continue:!def.abort})}}});var $ZodMAC=$constructor("$ZodMAC",(inst,def)=>{def.pattern??(def.pattern=mac(def.delimiter));$ZodStringFormat.init(inst,def)});var $ZodCIDRv4=$constructor("$ZodCIDRv4",(inst,def)=>{def.pattern??(def.pattern=cidrv4);$ZodStringFormat.init(inst,def)});function isValidCIDRv6(value){const parts=value.split("/");if(parts.length!==2)return false;const[address,prefix]=parts;if(!prefix)return false;const prefixNum=Number(prefix);if(`${prefixNum}`!==prefix)return false;if(prefixNum<0||prefixNum>128)return false;return isValidIPv6(address)}var $ZodCIDRv6=$constructor("$ZodCIDRv6",(inst,def)=>{def.pattern??(def.pattern=cidrv6);$ZodStringFormat.init(inst,def);inst._zod.check=(payload)=>{if(!isValidCIDRv6(payload.value)){payload.issues.push({code:"invalid_format",format:"cidrv6",input:payload.value,inst,continue:!def.abort})}}});function isValidBase64(data){if(data==="")return true;if(/\s/.test(data))return false;if(data.length%4!==0)return false;try{atob(data);return true}catch{return false}}var base64Charset=/^[0-9a-zA-Z+/]*={0,2}$/;var $ZodBase64=$constructor("$ZodBase64",(inst,def)=>{def.pattern??(def.pattern=base64Charset);$ZodStringFormat.init(inst,def);inst._zod.check=(payload)=>{if(isValidBase64(payload.value))return;payload.issues.push({code:"invalid_format",format:"base64",input:payload.value,inst,continue:!def.abort})}});var base64urlCharset=/^[A-Za-z0-9_-]*$/;function isValidBase64URL(data){if(!base64urlCharset.test(data))return false;const base64=data.replace(/[-_]/g,(c)=>c==="-"?"+":"/");const padded=base64.padEnd(Math.ceil(base64.length/4)*4,"=");return isValidBase64(padded)}var $ZodBase64URL=$constructor("$ZodBase64URL",(inst,def)=>{def.pattern??(def.pattern=base64urlCharset);$ZodStringFormat.init(inst,def);inst._zod.check=(payload)=>{if(isValidBase64URL(payload.value))return;payload.issues.push({code:"invalid_format",format:"base64url",input:payload.value,inst,continue:!def.abort})}});var $ZodE164=$constructor("$ZodE164",(inst,def)=>{def.pattern??(def.pattern=e164);$ZodStringFormat.init(inst,def)});var CC_SANITIZE=/[- ]/g;function isLuhnAlgo(digits){let length=digits.length;let bit=1;let sum=0;while(length){const value=digits.charCodeAt(--length)-48;bit^=1;sum+=bit?[0,2,4,6,8,1,3,5,7,9][value]:value}return sum%10===0}function isValidCreditCard(input){if(!creditCard.test(input))return false;return isLuhnAlgo(input.replace(CC_SANITIZE,""))}var $ZodCreditCard=$constructor("$ZodCreditCard",(inst,def)=>{def.pattern??(def.pattern=creditCard);$ZodStringFormat.init(inst,def);inst._zod.check=(payload)=>{if(isValidCreditCard(payload.value))return;payload.issues.push({code:"invalid_format",format:"credit_card",input:payload.value,inst,continue:!def.abort})}});function isIso7064Mod97(iban2){let remainder=0;const len=iban2.length;for(let i=4;i<len;i++){const code=iban2.charCodeAt(i);remainder=(code>=65?remainder*100+(code-55):remainder*10+(code-48))%97}for(let i=0;i<4;i++){const code=iban2.charCodeAt(i);remainder=(code>=65?remainder*100+(code-55):remainder*10+(code-48))%97}return remainder===1}function isValidIBAN(input){if(!iban.test(input))return false;return isIso7064Mod97(input)}var $ZodIBAN=$constructor("$ZodIBAN",(inst,def)=>{def.pattern??(def.pattern=iban);$ZodStringFormat.init(inst,def);inst._zod.check=(payload)=>{if(isValidIBAN(payload.value))return;payload.issues.push({code:"invalid_format",format:"iban",input:payload.value,inst,continue:!def.abort})}});function isValidJWT(token,algorithm=null){try{const tokensParts=token.split(".");if(tokensParts.length!==3)return false;const[header]=tokensParts;if(!header)return false;const parsedHeader=JSON.parse(atob(header));if("typ"in parsedHeader&&parsedHeader?.typ!=="JWT")return false;if(!parsedHeader.alg)return false;if(algorithm&&(!("alg"in parsedHeader)||parsedHeader.alg!==algorithm))return false;return true}catch{return false}}var $ZodJWT=$constructor("$ZodJWT",(inst,def)=>{$ZodStringFormat.init(inst,def);inst._zod.check=(payload)=>{if(isValidJWT(payload.value,def.alg))return;payload.issues.push({code:"invalid_format",format:"jwt",input:payload.value,inst,continue:!def.abort})}});var $ZodCustomStringFormat=$constructor("$ZodCustomStringFormat",(inst,def)=>{$ZodStringFormat.init(inst,def);inst._zod.check=(payload)=>{if(def.fn(payload.value))return;payload.issues.push({code:"invalid_format",format:def.format,input:payload.value,inst,continue:!def.abort})}});var $ZodNumber=$constructor("$ZodNumber",(inst,def)=>{$ZodType.init(inst,def);inst._zod.pattern=number;inst._zod.parse=(payload,_ctx)=>{if(def.coerce)try{payload.value=Number(payload.value)}catch(_){}const input=payload.value;if(typeof input==="number"&&!Number.isNaN(input)&&Number.isFinite(input)){return payload}const received=typeof input==="number"?Number.isNaN(input)?"NaN":!Number.isFinite(input)?String(input):undefined:undefined;payload.issues.push({expected:"number",code:"invalid_type",input,inst,...received?{received}:{}});return payload}});var $ZodNumberFormat=$constructor("$ZodNumberFormat",(inst,def)=>{$ZodCheckNumberFormat.init(inst,def);$ZodNumber.init(inst,def)});var $ZodBoolean=$constructor("$ZodBoolean",(inst,def)=>{$ZodType.init(inst,def);inst._zod.pattern=boolean;inst._zod.parse=(payload,_ctx)=>{if(def.coerce)try{payload.value=Boolean(payload.value)}catch(_){}const input=payload.value;if(typeof input==="boolean")return payload;payload.issues.push({expected:"boolean",code:"invalid_type",input,inst});return payload}});var $ZodBigInt=$constructor("$ZodBigInt",(inst,def)=>{$ZodType.init(inst,def);inst._zod.pattern=bigint;inst._zod.parse=(payload,_ctx)=>{if(def.coerce)try{payload.value=BigInt(payload.value)}catch(_){}if(typeof payload.value==="bigint")return payload;payload.issues.push({expected:"bigint",code:"invalid_type",input:payload.value,inst});return payload}});var $ZodBigIntFormat=$constructor("$ZodBigIntFormat",(inst,def)=>{$ZodCheckBigIntFormat.init(inst,def);$ZodBigInt.init(inst,def)});var $ZodSymbol=$constructor("$ZodSymbol",(inst,def)=>{$ZodType.init(inst,def);inst._zod.parse=(payload,_ctx)=>{const input=payload.value;if(typeof input==="symbol")return payload;payload.issues.push({expected:"symbol",code:"invalid_type",input,inst});return payload}});var $ZodUndefined=$constructor("$ZodUndefined",(inst,def)=>{$ZodType.init(inst,def);inst._zod.pattern=_undefined;inst._zod.values=new Set([undefined]);inst._zod.parse=(payload,_ctx)=>{const input=payload.value;if(typeof input==="undefined")return payload;payload.issues.push({expected:"undefined",code:"invalid_type",input,inst});return payload}});var $ZodNull=$constructor("$ZodNull",(inst,def)=>{$ZodType.init(inst,def);inst._zod.pattern=_null;inst._zod.values=new Set([null]);inst._zod.parse=(payload,_ctx)=>{const input=payload.value;if(input===null)return payload;payload.issues.push({expected:"null",code:"invalid_type",input,inst});return payload}});var $ZodAny=$constructor("$ZodAny",(inst,def)=>{$ZodType.init(inst,def);inst._zod.parse=(payload)=>payload});var $ZodUnknown=$constructor("$ZodUnknown",(inst,def)=>{$ZodType.init(inst,def);inst._zod.parse=(payload)=>payload});var $ZodNever=$constructor("$ZodNever",(inst,def)=>{$ZodType.init(inst,def);inst._zod.parse=(payload,_ctx)=>{payload.issues.push({expected:"never",code:"invalid_type",input:payload.value,inst});return payload}});var $ZodVoid=$constructor("$ZodVoid",(inst,def)=>{$ZodType.init(inst,def);inst._zod.parse=(payload,_ctx)=>{const input=payload.value;if(typeof input==="undefined")return payload;payload.issues.push({expected:"void",code:"invalid_type",input,inst});return payload}});var $ZodDate=$constructor("$ZodDate",(inst,def)=>{$ZodType.init(inst,def);inst._zod.parse=(payload,_ctx)=>{if(def.coerce){try{payload.value=new Date(payload.value)}catch(_err){}}const input=payload.value;const isDate=input instanceof Date;const isValidDate=isDate&&!Number.isNaN(input.getTime());if(isValidDate)return payload;payload.issues.push({expected:"date",code:"invalid_type",input,...isDate?{received:"Invalid Date"}:{},inst});return payload}});function handleArrayResult(result,final,index){if(result.issues.length){final.issues.push(...prefixIssues(index,result.issues))}final.value[index]=result.value}var $ZodArray=$constructor("$ZodArray",(inst,def)=>{$ZodType.init(inst,def);const memo=globalConfig.memoizer;memo?.attach(inst);inst._zod.parse=(payload,ctx)=>{const input=payload.value;if(!Array.isArray(input)){payload.issues.push({expected:"array",code:"invalid_type",input,inst});return payload}payload.value=memo?memo.alloc(inst,payload,Array(input.length),ctx):Array(input.length);const proms=[];const abortEarly=ctx?.abortEarly;for(let i=0;i<input.length;i++){const item=input[i];const result=def.element._zod.run({value:item,issues:[]},ctx);if(result instanceof Promise){proms.push(result.then((result)=>handleArrayResult(result,payload,i)))}else{handleArrayResult(result,payload,i);if(abortEarly&&result.issues.length!==0&&aborted(result))break}}if(proms.length){return Promise.all(proms).then(()=>payload)}return payload}});function handlePropertyResult(result,final,key,input,optin,optout){const isPresent=key in input;const isOptionalOut=optout==="optional";if(!isPresent&&isOptionalOut&&optin==="optional"){return}if(result.issues.length){if(optin!==undefined&&isOptionalOut&&!isPresent){return}final.issues.push(...prefixIssues(key,result.issues))}if(!isPresent&&optin===undefined){if(!result.issues.length){final.issues.push({code:"invalid_type",expected:"nonoptional",input:undefined,path:[key]})}return}if(result.value===undefined){if(isPresent||optin==="defaulted"&&!isOptionalOut){final.value[key]=undefined}}else{final.value[key]=result.value}}var NO_SYMBOL_KEYS=[];function normalizeDef(def){const keys=Object.keys(def.shape);const ownSymbols=Object.getOwnPropertySymbols(def.shape);const symbolKeys=ownSymbols.length?ownSymbols:NO_SYMBOL_KEYS;const allKeys=symbolKeys.length?[...keys,...symbolKeys]:keys;for(const k of allKeys){if(!def.shape?.[k]?._zod?.traits?.has("$ZodType")){throw new Error(`Invalid element at key "${String(k)}": expected a Zod schema`)}}const okeys=optionalKeys(def.shape);return{...def,allKeys,symbolKeys,keySet:new Set(keys),numKeys:keys.length,optionalKeys:new Set(okeys)}}function handleCatchall(proms,input,payload,ctx,def,inst,abortEarly){const unrecognized=[];const keySet=def.keySet;const _catchall=def.catchall._zod;const t=_catchall.def.type;const optin=_catchall.optin;const optout=_catchall.optout;let seen=0;for(const key in input){if(abortEarly&&payload.issues.length!==seen){if(aborted(payload,seen))break;seen=payload.issues.length}if(keySet.has(key))continue;if(key==="__proto__"){if(t==="never")unrecognized.push(key);continue}if(t==="never"){unrecognized.push(key);continue}const r=_catchall.run({value:input[key],issues:[]},ctx);if(r instanceof Promise){proms.push(r.then((r)=>handlePropertyResult(r,payload,key,input,optin,optout)))}else{handlePropertyResult(r,payload,key,input,optin,optout)}}if(unrecognized.length){payload.issues.push({code:"unrecognized_keys",keys:unrecognized,input,inst,continue:true})}if(!proms.length)return payload;return Promise.all(proms).then(()=>{return payload})}var $ZodObject=$constructor("$ZodObject",(inst,def)=>{$ZodType.init(inst,def);const desc=Object.getOwnPropertyDescriptor(def,"shape");const sh=desc?.get?desc.get.raw:def.shape??{};if(sh){const get=()=>{const newSh={...sh};Object.defineProperty(def,"shape",{value:newSh});get.raw=newSh;return newSh};get.raw=sh;Object.defineProperty(def,"shape",{get})}const _normalized=cached(()=>normalizeDef(def));defineLazyInternal(inst,"propValues",(zod)=>{const shape=zod.def.shape;const propValues={};for(const key in shape){const field=shape[key]._zod;if(field.values){if(!Object.prototype.hasOwnProperty.call(propValues,key)){assignProp(propValues,key,new Set)}for(const v of field.values)propValues[key].add(v);if(field.optin!==undefined)propValues[key].add(undefined)}}return propValues});const isObject2=isObject;const catchall=def.catchall;let value;const memo=globalConfig.memoizer;memo?.attach(inst);inst._zod.parse=(payload,ctx)=>{value??(value=_normalized.value);const input=payload.value;if(!isObject2(input)){payload.issues.push({expected:"object",code:"invalid_type",input,inst});return payload}payload.value=memo?memo.alloc(inst,payload,{},ctx):{};const proms=[];const shape=value.shape;const abortEarly=ctx?.abortEarly;let seen=payload.issues.length;for(const key of value.allKeys){if(abortEarly&&payload.issues.length!==seen){if(aborted(payload,seen))break;seen=payload.issues.length}if(key==="__proto__")continue;const el=shape[key];const optin=el._zod.optin;const optout=el._zod.optout;const r=el._zod.run({value:input[key],issues:[]},ctx);if(r instanceof Promise){proms.push(r.then((r)=>handlePropertyResult(r,payload,key,input,optin,optout)))}else{handlePropertyResult(r,payload,key,input,optin,optout)}}if(!catchall){return proms.length?Promise.all(proms).then(()=>payload):payload}return handleCatchall(proms,input,payload,ctx,_normalized.value,inst,abortEarly===true)}});var $ZodObjectJIT=$constructor("$ZodObjectJIT",(inst,def)=>{$ZodObject.init(inst,def);const superParse=inst._zod.parse;const _normalized=cached(()=>normalizeDef(def));const memo=globalConfig.memoizer;const generateFastpass=(shape)=>{const normalized=_normalized.value;const syms=normalized.symbolKeys;const doc=new Doc(["payload","ctx"],{shape,inst,memo,syms});const parseStr=(k)=>`shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;const prefixStr=(id,k)=>`
13
+ let ${id}_ab = false;
14
+ for (let i = 0; i < ${id}.issues.length; i++) {
15
+ const iss = ${id}.issues[i];
16
+ iss.path = iss.path ? [${k}, ...iss.path] : [${k}];
17
+ payload.issues.push(iss);
18
+ if (iss.continue !== true) ${id}_ab = true;
19
+ }
20
+ if (${id}_ab && ctx && ctx.abortEarly) {
21
+ payload.value = newResult;
22
+ return payload;
23
+ }`;doc.write(`const input = payload.value;`);const ids=Object.create(null);let counter=0;for(const key of normalized.allKeys){ids[key]=`key_${counter++}`}doc.write(memo?`const newResult = memo.alloc(inst, payload, {}, ctx);`:`const newResult = {};`);for(const key of normalized.allKeys){if(key==="__proto__")continue;const id=ids[key];const k=typeof key==="symbol"?`syms[${syms.indexOf(key)}]`:esc(key);const isPresent=`${k} in input`;const schema=shape[key];const optin=schema?._zod?.optin;const isOptionalIn=optin!==undefined;const isOptionalOut=schema?._zod?.optout==="optional";doc.write(`const ${id} = ${parseStr(k)};`);if(isOptionalIn&&isOptionalOut){const assign=optin==="optional"?`${id}_present`:`${id}.value !== undefined || ${id}_present`;doc.write(`
24
+ const ${id}_present = ${isPresent};
25
+ if (!${id}.issues.length || ${id}_present) {
26
+ if (${id}.issues.length) {${prefixStr(id,k)}
27
+ }
28
+
29
+ if (${assign}) {
30
+ newResult[${k}] = ${id}.value;
31
+ }
32
+ }
33
+
34
+ `)}else if(!isOptionalIn){doc.write(`
35
+ const ${id}_present = ${isPresent};
36
+ if (${id}.issues.length) {${prefixStr(id,k)}
37
+ }
38
+ if (!${id}_present && !${id}.issues.length) {
39
+ payload.issues.push({
40
+ code: "invalid_type",
41
+ expected: "nonoptional",
42
+ input: undefined,
43
+ path: [${k}]
44
+ });
45
+ if (ctx && ctx.abortEarly) {
46
+ payload.value = newResult;
47
+ return payload;
48
+ }
49
+ }
50
+
51
+ if (${id}_present) {
52
+ newResult[${k}] = ${id}.value;
53
+ }
54
+
55
+ `)}else{doc.write(`
56
+ if (${id}.issues.length) {${prefixStr(id,k)}
57
+ }
58
+ `);if(optin==="defaulted"){doc.write(`newResult[${k}] = ${id}.value;`)}else{doc.write(`
59
+ if (${id}.value !== undefined || ${isPresent}) {
60
+ newResult[${k}] = ${id}.value;
61
+ }
62
+ `)}}}doc.write(`payload.value = newResult;`);doc.write(`return payload;`);return doc.compile()};let fastpass;const isObject2=isObject;const jit=!globalConfig.jitless;const allowsEval2=allowsEval;const fastEnabled=jit&&allowsEval2.value;const catchall=def.catchall;let value;inst._zod.parse=(payload,ctx)=>{value??(value=_normalized.value);const input=payload.value;if(!isObject2(input)){payload.issues.push({expected:"object",code:"invalid_type",input,inst});return payload}if(jit&&fastEnabled&&ctx?.async===false&&ctx.jitless!==true){if(!fastpass)fastpass=generateFastpass(def.shape);payload=fastpass(payload,ctx);if(!catchall)return payload;return handleCatchall([],input,payload,ctx,value,inst,ctx?.abortEarly===true)}return superParse(payload,ctx)}});function handleUnionResults(results,final,inst,ctx){for(const result of results){if(result.issues.length===0){final.value=result.value;return final}}const nonaborted=results.filter((r)=>!aborted(r));if(nonaborted.length===1){final.value=nonaborted[0].value;return nonaborted[0]}final.issues.push({code:"invalid_union",input:final.value,inst,errors:results.map((result)=>result.issues.map((iss)=>finalizeIssue(iss,ctx,config())))});return final}var $ZodUnion=$constructor("$ZodUnion",(inst,def)=>{$ZodType.init(inst,def);defineLazyInternal(inst,"optin",(zod)=>zod.def.options.some((o)=>o._zod.optin==="defaulted")?"defaulted":zod.def.options.some((o)=>o._zod.optin!==undefined)?"optional":undefined);defineLazyInternal(inst,"optout",(zod)=>zod.def.options.some((o)=>o._zod.optout==="optional")?"optional":undefined);defineLazyInternal(inst,"values",(zod)=>{if(zod.def.options.every((o)=>o._zod.values)){return new Set(zod.def.options.flatMap((option)=>Array.from(option._zod.values)))}return});defineLazyInternal(inst,"pattern",(zod)=>{if(zod.def.options.every((o)=>o._zod.pattern)){const patterns=zod.def.options.map((o)=>o._zod.pattern);return new RegExp(`^(${patterns.map((p)=>cleanRegex(p.source)).join("|")})$`)}return});const first=def.options.length===1?def.options[0]._zod.run:null;inst._zod.parse=(payload,ctx)=>{if(first){return first(payload,ctx)}let async=false;const results=[];for(const option of def.options){const result=option._zod.run({value:payload.value,issues:[]},ctx);if(result instanceof Promise){results.push(result);async=true}else{if(result.issues.length===0)return result;results.push(result)}}if(!async)return handleUnionResults(results,payload,inst,ctx);return Promise.all(results).then((results)=>{return handleUnionResults(results,payload,inst,ctx)})}});function handleExclusiveUnionResults(results,final,inst,ctx){const matches=[];for(let i=0;i<results.length;i++){if(results[i].issues.length===0)matches.push(i)}if(matches.length===1){final.value=results[matches[0]].value;return final}if(matches.length===0){final.issues.push({code:"invalid_union",input:final.value,inst,errors:results.map((result)=>result.issues.map((iss)=>finalizeIssue(iss,ctx,config())))})}else{final.issues.push({code:"invalid_union",input:final.value,inst,errors:[],inclusive:false,matches})}return final}var $ZodXor=$constructor("$ZodXor",(inst,def)=>{$ZodUnion.init(inst,def);def.inclusive=false;const first=def.options.length===1?def.options[0]._zod.run:null;inst._zod.parse=(payload,ctx)=>{if(first){return first(payload,ctx)}let async=false;const results=[];for(const option of def.options){const result=option._zod.run({value:payload.value,issues:[]},ctx);if(result instanceof Promise){results.push(result);async=true}else{results.push(result)}}if(!async)return handleExclusiveUnionResults(results,payload,inst,ctx);return Promise.all(results).then((results)=>{return handleExclusiveUnionResults(results,payload,inst,ctx)})}});function getDiscriminatedOption(union,value){const internals=union._zod;let map=internals.bag.optionsMap;if(!map){map=discriminatorMap(internals.def);internals.bag.optionsMap=map}const option=map.get(value);if(option===null)throw new Error(`Ambiguous discriminator value "${String(value)}"`);return option}function discriminatorMap(def){const map=new Map;for(const option of def.options){const values=option._zod.propValues?.[def.discriminator];if(!values||values.size===0)throw new Error(`Invalid discriminated union option at index "${def.options.indexOf(option)}"`);for(const value of values){if(map.has(value)){if(value!==undefined)throw new Error(`Duplicate discriminator value "${String(value)}"`);map.set(value,null)}else{map.set(value,option)}}}return map}var $ZodDiscriminatedUnion=$constructor("$ZodDiscriminatedUnion",(inst,def)=>{def.inclusive=false;$ZodUnion.init(inst,def);const _super=inst._zod.parse;defineLazyInternal(inst,"propValues",(zod)=>{const propValues={};let undefinedCount=0;for(const option of zod.def.options){const pv=option._zod.propValues;if(!pv||Object.keys(pv).length===0)throw new Error(`Invalid discriminated union option at index "${zod.def.options.indexOf(option)}"`);if(pv[zod.def.discriminator]?.has(undefined))undefinedCount++;for(const[k,v]of Object.entries(pv)){if(!Object.prototype.hasOwnProperty.call(propValues,k)){assignProp(propValues,k,new Set)}for(const val of v){propValues[k].add(val)}}}if(!zod.def.unionFallback&&undefinedCount>1)propValues[zod.def.discriminator]?.delete(undefined);return propValues});def.options.forEach((option,i)=>{const propShape=rawShape(option._zod.def);if(propShape&&!Object.prototype.hasOwnProperty.call(propShape,def.discriminator)){throw new Error(`Invalid discriminated union option at index "${i}"`)}});const disc=cached(()=>discriminatorMap(def));inst._zod.parse=(payload,ctx)=>{const input=payload.value;if(!isObject(input)){payload.issues.push({code:"invalid_type",expected:"object",input,inst});return payload}const value=input?.[def.discriminator];const opt=disc.value.get(value);if(opt&&(value!==undefined||ctx.direction!=="backward")){return opt._zod.run(payload,ctx)}if(def.unionFallback||ctx.direction==="backward"){return _super(payload,ctx)}payload.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:def.discriminator,options:Array.from(disc.value.keys()).filter((value)=>disc.value.get(value)!==null),input,path:[def.discriminator],inst});return payload}});var $ZodIntersection=$constructor("$ZodIntersection",(inst,def)=>{$ZodType.init(inst,def);inst._zod.parse=(payload,ctx)=>{const input=payload.value;const left=def.left._zod.run({value:input,issues:[]},ctx);const right=def.right._zod.run({value:input,issues:[]},ctx);const async=left instanceof Promise||right instanceof Promise;if(async){return Promise.all([left,right]).then(([left,right])=>{return handleIntersectionResults(payload,left,right)})}return handleIntersectionResults(payload,left,right)}});function mergeValues(a,b){if(a===b){return{valid:true,data:a}}if(a instanceof Date&&b instanceof Date&&+a===+b){return{valid:true,data:a}}if(isPlainObject(a)&&isPlainObject(b)){const bKeys=Object.keys(b);const sharedKeys=Object.keys(a).filter((key)=>bKeys.indexOf(key)!==-1);const newObj={...a,...b};if(Object.prototype.hasOwnProperty.call(newObj,"__proto__"))delete newObj.__proto__;for(const key of sharedKeys){if(key==="__proto__")continue;const sharedValue=mergeValues(a[key],b[key]);if(!sharedValue.valid){return{valid:false,mergeErrorPath:[key,...sharedValue.mergeErrorPath]}}newObj[key]=sharedValue.data}return{valid:true,data:newObj}}if(Array.isArray(a)&&Array.isArray(b)){if(a.length!==b.length){return{valid:false,mergeErrorPath:[]}}const newArray=[];for(let index=0;index<a.length;index++){const itemA=a[index];const itemB=b[index];const sharedValue=mergeValues(itemA,itemB);if(!sharedValue.valid){return{valid:false,mergeErrorPath:[index,...sharedValue.mergeErrorPath]}}newArray.push(sharedValue.data)}return{valid:true,data:newArray}}return{valid:false,mergeErrorPath:[]}}function handleIntersectionResults(result,left,right){const unrecKeys=new Map;let unrecIssue;const keyIssues=new Map;const collect=(iss,side)=>{let keys;if(iss.code==="unrecognized_keys"&&!iss.path?.length){unrecIssue??(unrecIssue=iss);keys=iss.keys}else if(iss.code==="invalid_key"&&iss.origin==="record"&&iss.path?.length===1){const k=String(iss.path[0]);if(!keyIssues.has(k))keyIssues.set(k,iss);keys=[k]}else{return false}for(const k of keys){if(!unrecKeys.has(k))unrecKeys.set(k,{});unrecKeys.get(k)[side]=true}return true};for(const iss of left.issues){if(!collect(iss,"l"))result.issues.push(iss)}for(const iss of right.issues){if(!collect(iss,"r"))result.issues.push(iss)}const bothKeys=[...unrecKeys].filter(([,f])=>f.l&&f.r).map(([k])=>k);if(bothKeys.length){const aggregated=unrecIssue?bothKeys.filter((k)=>unrecIssue.keys.includes(k)):[];if(aggregated.length)result.issues.push({...unrecIssue,keys:aggregated});for(const k of bothKeys){if(!aggregated.includes(k)&&keyIssues.has(k))result.issues.push(keyIssues.get(k))}}const merged=mergeValues(left.value,right.value);if(!merged.valid){if(aborted(result))return result;throw new Error(`Unmergable intersection. Error path: `+`${JSON.stringify(merged.mergeErrorPath)}`)}result.value=merged.data;return result}var $ZodTuple=$constructor("$ZodTuple",(inst,def)=>{$ZodType.init(inst,def);const items=def.items;const memo=globalConfig.memoizer;memo?.attach(inst);inst._zod.parse=(payload,ctx)=>{const input=payload.value;if(!Array.isArray(input)){payload.issues.push({input,inst,expected:"tuple",code:"invalid_type"});return payload}payload.value=memo?memo.alloc(inst,payload,[],ctx):[];const proms=[];const optinStart=getTupleOptStart(items,"optin");const optoutStart=getTupleOptStart(items,"optout");if(!def.rest){if(input.length<optinStart){payload.issues.push({code:"too_small",minimum:optinStart,inclusive:true,input,inst,origin:"array"});return payload}if(input.length>items.length){payload.issues.push({code:"too_big",maximum:items.length,inclusive:true,input,inst,origin:"array"})}}const itemResults=new Array(items.length);const abortEarly=def.rest?ctx?.abortEarly:undefined;let itemAborted=false;for(let i=0;i<items.length;i++){const r=items[i]._zod.run({value:input[i],issues:[]},ctx);if(r instanceof Promise){proms.push(r.then((rr)=>{itemResults[i]=rr}))}else{itemResults[i]=r;if(abortEarly&&!itemAborted&&r.issues.length)itemAborted=aborted(r)}}if(def.rest&&!itemAborted){let i=items.length-1;const rest=input.slice(items.length);let seen=payload.issues.length;for(const el of rest){if(abortEarly&&payload.issues.length!==seen){if(aborted(payload,seen))break;seen=payload.issues.length}i++;const result=def.rest._zod.run({value:el,issues:[]},ctx);if(result instanceof Promise){proms.push(result.then((r)=>handleTupleResult(r,payload,i)))}else{handleTupleResult(result,payload,i)}}}if(proms.length){return Promise.all(proms).then(()=>handleTupleResults(itemResults,payload,items,input,optoutStart))}return handleTupleResults(itemResults,payload,items,input,optoutStart)}});function getTupleOptStart(items,key){for(let i=items.length-1;i>=0;i--){const omittable=key==="optin"?items[i]._zod.optin!==undefined:items[i]._zod.optout==="optional";if(!omittable)return i+1}return 0}function handleTupleResult(result,final,index){if(result.issues.length){final.issues.push(...prefixIssues(index,result.issues))}final.value[index]=result.value}function handleTupleResults(itemResults,final,items,input,optoutStart){for(let i=0;i<items.length;i++){const r=itemResults[i];const isPresent=i<input.length;if(!isPresent&&i>=optoutStart&&items[i]._zod.optin==="optional"){final.value.length=i;break}if(r.issues.length){if(!isPresent&&i>=optoutStart){final.value.length=i;break}final.issues.push(...prefixIssues(i,r.issues))}final.value[i]=r.value}for(let i=final.value.length-1;i>=input.length;i--){if(items[i]._zod.optout==="optional"&&final.value[i]===undefined){final.value.length=i}else{break}}return final}var $ZodRecord=$constructor("$ZodRecord",(inst,def)=>{$ZodType.init(inst,def);const memo=globalConfig.memoizer;memo?.attach(inst);inst._zod.parse=(payload,ctx)=>{const input=payload.value;if(!isPlainObject(input)){payload.issues.push({expected:"record",code:"invalid_type",input,inst});return payload}const proms=[];const values=def.keyType._zod.values;if(values&&!def.partial){payload.value=memo?memo.alloc(inst,payload,{},ctx):{};const recordKeys=new Set;for(const key of values){if(typeof key==="string"||typeof key==="number"||typeof key==="symbol"){recordKeys.add(typeof key==="number"?key.toString():key);if(key==="__proto__")continue;const keyResult=def.keyType._zod.run({value:key,issues:[]},ctx);if(keyResult instanceof Promise){throw new Error("Async schemas not supported in object keys currently")}if(keyResult.issues.length){payload.issues.push({code:"invalid_key",origin:"record",issues:keyResult.issues.map((iss)=>finalizeIssue(iss,ctx,config())),input:key,path:[key],inst});continue}const outKey=keyResult.value;if(outKey==="__proto__")continue;const result=def.valueType._zod.run({value:input[key],issues:[]},ctx);if(result instanceof Promise){proms.push(result.then((result)=>{if(result.issues.length){payload.issues.push(...prefixIssues(key,result.issues))}payload.value[outKey]=result.value}))}else{if(result.issues.length){payload.issues.push(...prefixIssues(key,result.issues))}payload.value[outKey]=result.value}}}let unrecognized;for(const key in input){if(!recordKeys.has(key)){if(def.mode==="loose"){if(key==="__proto__")continue;payload.value[key]=input[key]}else{unrecognized=unrecognized??[];unrecognized.push(key)}}}if(unrecognized&&unrecognized.length>0){payload.issues.push({code:"unrecognized_keys",input,inst,keys:unrecognized,continue:true})}}else{payload.value=memo?memo.alloc(inst,payload,{},ctx):{};let unrecognized;for(const key of Reflect.ownKeys(input)){if(key==="__proto__")continue;if(!Object.prototype.propertyIsEnumerable.call(input,key))continue;let keyResult=def.keyType._zod.run({value:key,issues:[]},ctx);if(keyResult instanceof Promise){throw new Error("Async schemas not supported in object keys currently")}const checkNumericKey=typeof key==="string"&&number.test(key)&&keyResult.issues.length;if(checkNumericKey){const retryResult=def.keyType._zod.run({value:Number(key),issues:[]},ctx);if(retryResult instanceof Promise){throw new Error("Async schemas not supported in object keys currently")}if(retryResult.issues.length===0){keyResult=retryResult}}if(keyResult.issues.length){if(def.mode==="loose"){payload.value[key]=input[key]}else if(values){unrecognized=unrecognized??[];unrecognized.push(key)}else{payload.issues.push({code:"invalid_key",origin:"record",issues:keyResult.issues.map((iss)=>finalizeIssue(iss,ctx,config())),input:key,path:[key],inst})}continue}const outKey=keyResult.value;if(outKey==="__proto__")continue;const result=def.valueType._zod.run({value:input[key],issues:[]},ctx);if(result instanceof Promise){proms.push(result.then((result)=>{if(result.issues.length){payload.issues.push(...prefixIssues(key,result.issues))}payload.value[outKey]=result.value}))}else{if(result.issues.length){payload.issues.push(...prefixIssues(key,result.issues))}payload.value[outKey]=result.value}}if(unrecognized&&unrecognized.length>0){payload.issues.push({code:"unrecognized_keys",input,inst,keys:unrecognized,continue:true})}}if(proms.length){return Promise.all(proms).then(()=>payload)}return payload}});var $ZodMap=$constructor("$ZodMap",(inst,def)=>{$ZodType.init(inst,def);const memo=globalConfig.memoizer;memo?.attach(inst);inst._zod.parse=(payload,ctx)=>{const input=payload.value;if(!(input instanceof Map)){payload.issues.push({expected:"map",code:"invalid_type",input,inst});return payload}const proms=[];payload.value=memo?memo.alloc(inst,payload,new Map,ctx):new Map;const abortEarly=ctx?.abortEarly;let seen=payload.issues.length;for(const[key,value]of input){if(abortEarly&&payload.issues.length!==seen){if(aborted(payload,seen))break;seen=payload.issues.length}const keyResult=def.keyType._zod.run({value:key,issues:[]},ctx);const valueResult=def.valueType._zod.run({value,issues:[]},ctx);if(keyResult instanceof Promise||valueResult instanceof Promise){proms.push(Promise.all([keyResult,valueResult]).then(([keyResult,valueResult])=>{handleMapResult(keyResult,valueResult,payload,key,input,inst,ctx)}))}else{handleMapResult(keyResult,valueResult,payload,key,input,inst,ctx)}}if(proms.length)return Promise.all(proms).then(()=>payload);return payload}});function handleMapResult(keyResult,valueResult,final,key,input,inst,ctx){if(keyResult.issues.length){if(propertyKeyTypes.has(typeof key)){final.issues.push(...prefixIssues(key,keyResult.issues))}else{final.issues.push({code:"invalid_key",origin:"map",input,inst,issues:keyResult.issues.map((iss)=>finalizeIssue(iss,ctx,config()))})}}if(valueResult.issues.length){if(propertyKeyTypes.has(typeof key)){final.issues.push(...prefixIssues(key,valueResult.issues))}else{final.issues.push({origin:"map",code:"invalid_element",input,inst,key,issues:valueResult.issues.map((iss)=>finalizeIssue(iss,ctx,config()))})}}final.value.set(keyResult.value,valueResult.value)}var $ZodSet=$constructor("$ZodSet",(inst,def)=>{$ZodType.init(inst,def);const memo=globalConfig.memoizer;memo?.attach(inst);inst._zod.parse=(payload,ctx)=>{const input=payload.value;if(!(input instanceof Set)){payload.issues.push({input,inst,expected:"set",code:"invalid_type"});return payload}const proms=[];payload.value=memo?memo.alloc(inst,payload,new Set,ctx):new Set;const abortEarly=ctx?.abortEarly;let seen=payload.issues.length;for(const item of input){if(abortEarly&&payload.issues.length!==seen){if(aborted(payload,seen))break;seen=payload.issues.length}const result=def.valueType._zod.run({value:item,issues:[]},ctx);if(result instanceof Promise){proms.push(result.then((result)=>handleSetResult(result,payload)))}else handleSetResult(result,payload)}if(proms.length)return Promise.all(proms).then(()=>payload);return payload}});function handleSetResult(result,final){if(result.issues.length){final.issues.push(...result.issues)}final.value.add(result.value)}var $ZodEnum=$constructor("$ZodEnum",(inst,def)=>{$ZodType.init(inst,def);const values=getEnumValues(def.entries);const valuesSet=new Set(values);inst._zod.values=valuesSet;defineLazyInternal(inst,"pattern",(zod)=>{const patternValues=getEnumValues(zod.def.entries).filter((k)=>propertyKeyTypes.has(typeof k));return new RegExp(patternValues.length?`^(${patternValues.map((o)=>escapeRegex(o.toString())).join("|")})$`:"^[^\\s\\S]$")});inst._zod.parse=(payload,_ctx)=>{const input=payload.value;if(valuesSet.has(input)){return payload}payload.issues.push({code:"invalid_value",values,input,inst});return payload}});var $ZodLiteral=$constructor("$ZodLiteral",(inst,def)=>{$ZodType.init(inst,def);const values=new Set(def.values);inst._zod.values=values;defineLazyInternal(inst,"pattern",(zod)=>{const vals=zod.def.values;return new RegExp(vals.length?`^(${vals.map((o)=>typeof o==="string"?escapeRegex(o):o?escapeRegex(o.toString()):String(o)).join("|")})$`:"^[^\\s\\S]$")});inst._zod.parse=(payload,_ctx)=>{const input=payload.value;if(values.has(input)){return payload}payload.issues.push({code:"invalid_value",values:def.values,input,inst});return payload}});var $ZodFile=$constructor("$ZodFile",(inst,def)=>{$ZodType.init(inst,def);inst._zod.parse=(payload,_ctx)=>{const input=payload.value;if(input instanceof File)return payload;payload.issues.push({expected:"file",code:"invalid_type",input,inst});return payload}});var $ZodTransform=$constructor("$ZodTransform",(inst,def)=>{$ZodType.init(inst,def);inst._zod.optin="optional";globalConfig.memoizer?.guard(inst);inst._zod.parse=(payload,ctx)=>{if(ctx.direction==="backward"){throw new $ZodEncodeError(inst.constructor.name)}const _out=def.transform(payload.value,payload);if(ctx.async){const output=_out instanceof Promise?_out:Promise.resolve(_out);return output.then((output)=>{payload.value=output;return payload})}if(_out instanceof Promise){throw new $ZodAsyncError}payload.value=_out;return payload}});function handleOptionalResult(payload,result){payload.value=result.issues.length?undefined:result.value;return payload}var $ZodOptional=$constructor("$ZodOptional",(inst,def)=>{$ZodType.init(inst,def);defineLazyInternal(inst,"optin",(zod)=>zod.def.innerType._zod.optin==="defaulted"?"defaulted":"optional");inst._zod.optout="optional";defineLazyInternal(inst,"values",(zod)=>{const values=zod.def.innerType._zod.values;return values?new Set([...values,undefined]):undefined});defineLazyInternal(inst,"pattern",(zod)=>{const pattern=zod.def.innerType._zod.pattern;return pattern?new RegExp(`^(${cleanRegex(pattern.source)})?$`):undefined});inst._zod.parse=(payload,ctx)=>{if(payload.value===undefined){if(def.innerType._zod.optin!=="defaulted")return payload;const result=def.innerType._zod.run({value:payload.value,issues:[]},ctx);if(result instanceof Promise)return result.then((result)=>handleOptionalResult(payload,result));return handleOptionalResult(payload,result)}return def.innerType._zod.run(payload,ctx)}});var $ZodExactOptional=$constructor("$ZodExactOptional",(inst,def)=>{$ZodOptional.init(inst,def);defineLazyInternal(inst,"values",(zod)=>zod.def.innerType._zod.values);defineLazyInternal(inst,"pattern",(zod)=>zod.def.innerType._zod.pattern);inst._zod.parse=(payload,ctx)=>{return def.innerType._zod.run(payload,ctx)}});var $ZodNullable=$constructor("$ZodNullable",(inst,def)=>{$ZodType.init(inst,def);defineLazyInternal(inst,"optin",(zod)=>zod.def.innerType._zod.optin);defineLazyInternal(inst,"optout",(zod)=>zod.def.innerType._zod.optout);defineLazyInternal(inst,"pattern",(zod)=>{const pattern=zod.def.innerType._zod.pattern;return pattern?new RegExp(`^(${cleanRegex(pattern.source)}|null)$`):undefined});defineLazyInternal(inst,"values",(zod)=>{return zod.def.innerType._zod.values?new Set([...zod.def.innerType._zod.values,null]):undefined});inst._zod.parse=(payload,ctx)=>{if(payload.value===null)return payload;return def.innerType._zod.run(payload,ctx)}});var $ZodDefault=$constructor("$ZodDefault",(inst,def)=>{$ZodType.init(inst,def);inst._zod.optin="defaulted";defineLazyInternal(inst,"values",(zod)=>zod.def.innerType._zod.values);inst._zod.parse=(payload,ctx)=>{if(ctx.direction==="backward"){return def.innerType._zod.run(payload,ctx)}if(payload.value===undefined){payload.value=def.defaultValue;return payload}const result=def.innerType._zod.run(payload,ctx);if(result instanceof Promise){return result.then((result)=>handleDefaultResult(result,def))}return handleDefaultResult(result,def)}});function handleDefaultResult(payload,def){if(payload.value===undefined){payload.value=def.defaultValue}return payload}var $ZodPrefault=$constructor("$ZodPrefault",(inst,def)=>{$ZodType.init(inst,def);inst._zod.optin="defaulted";defineLazyInternal(inst,"values",(zod)=>zod.def.innerType._zod.values);inst._zod.parse=(payload,ctx)=>{if(ctx.direction==="backward"){return def.innerType._zod.run(payload,ctx)}if(payload.value===undefined){payload.value=def.defaultValue}return def.innerType._zod.run(payload,ctx)}});var $ZodNonOptional=$constructor("$ZodNonOptional",(inst,def)=>{$ZodType.init(inst,def);defineLazyInternal(inst,"values",(zod)=>{const v=zod.def.innerType._zod.values;return v?new Set([...v].filter((x)=>x!==undefined)):undefined});inst._zod.parse=(payload,ctx)=>{const result=def.innerType._zod.run(payload,ctx);if(result instanceof Promise){return result.then((result)=>handleNonOptionalResult(result,inst))}return handleNonOptionalResult(result,inst)}});function handleNonOptionalResult(payload,inst){if(!payload.issues.length&&payload.value===undefined){payload.issues.push({code:"invalid_type",expected:"nonoptional",input:payload.value,inst})}return payload}var $ZodSuccess=$constructor("$ZodSuccess",(inst,def)=>{$ZodType.init(inst,def);inst._zod.parse=(payload,ctx)=>{if(ctx.direction==="backward"){throw new $ZodEncodeError("ZodSuccess")}const result=def.innerType._zod.run(payload,ctx);if(result instanceof Promise){return result.then((result)=>{payload.value=result.issues.length===0;return payload})}payload.value=result.issues.length===0;return payload}});function handleCatchResult(payload,result,def,ctx){if(!result.issues.length){payload.value=result.value;if(result.memo)payload.memo=true;return payload}payload.value=def.catchValue({...result,value:payload.value,error:{issues:result.issues.map((iss)=>finalizeIssue(iss,ctx,config()))},input:payload.value});return payload}var $ZodCatch=$constructor("$ZodCatch",(inst,def)=>{$ZodType.init(inst,def);defineLazyInternal(inst,"optin",(zod)=>zod.def.innerType._zod.optin==="defaulted"?"defaulted":"optional");defineLazyInternal(inst,"optout",(zod)=>zod.def.innerType._zod.optout);defineLazyInternal(inst,"values",(zod)=>zod.def.innerType._zod.values);inst._zod.parse=(payload,ctx)=>{if(ctx.direction==="backward"){return def.innerType._zod.run(payload,ctx)}const result=def.innerType._zod.run({value:payload.value,issues:[]},ctx);if(result instanceof Promise){return result.then((result)=>handleCatchResult(payload,result,def,ctx))}return handleCatchResult(payload,result,def,ctx)}});var $ZodNaN=$constructor("$ZodNaN",(inst,def)=>{$ZodType.init(inst,def);inst._zod.parse=(payload,_ctx)=>{if(typeof payload.value!=="number"||!Number.isNaN(payload.value)){payload.issues.push({input:payload.value,inst,expected:"nan",code:"invalid_type"});return payload}return payload}});var $ZodPipe=$constructor("$ZodPipe",(inst,def)=>{$ZodType.init(inst,def);defineLazyInternal(inst,"values",(zod)=>zod.def.in._zod.values);defineLazyInternal(inst,"optin",(zod)=>zod.def.in._zod.optin);defineLazyInternal(inst,"optout",(zod)=>zod.def.out._zod.optout);defineLazyInternal(inst,"propValues",(zod)=>zod.def.in._zod.propValues);inst._zod.parse=(payload,ctx)=>{if(ctx.direction==="backward"){const right=def.out._zod.run(payload,ctx);if(right instanceof Promise){return right.then((right)=>handlePipeResult(right,def.in,ctx))}return handlePipeResult(right,def.in,ctx)}const left=def.in._zod.run(payload,ctx);if(left instanceof Promise){return left.then((left)=>handlePipeResult(left,def.out,ctx))}return handlePipeResult(left,def.out,ctx)}});function handlePipeResult(left,next,ctx){if(left.issues.some((iss)=>iss.code!=="unrecognized_keys")){left.aborted=true;return left}return next._zod.run({value:left.value,issues:left.issues},ctx)}var $ZodCodec=$constructor("$ZodCodec",(inst,def)=>{$ZodType.init(inst,def);defineLazyInternal(inst,"values",(zod)=>zod.def.in._zod.values);defineLazyInternal(inst,"optin",(zod)=>zod.def.in._zod.optin);defineLazyInternal(inst,"optout",(zod)=>zod.def.out._zod.optout);defineLazyInternal(inst,"propValues",(zod)=>zod.def.in._zod.propValues);inst._zod.parse=(payload,ctx)=>{const direction=ctx.direction||"forward";if(direction==="forward"){const left=def.in._zod.run(payload,ctx);if(left instanceof Promise){return left.then((left)=>handleCodecAResult(left,def,ctx))}return handleCodecAResult(left,def,ctx)}else{const right=def.out._zod.run(payload,ctx);if(right instanceof Promise){return right.then((right)=>handleCodecAResult(right,def,ctx))}return handleCodecAResult(right,def,ctx)}}});function handleCodecAResult(result,def,ctx){if(result.issues.length){result.aborted=true;return result}const direction=ctx.direction||"forward";if(direction==="forward"){const transformed=def.transform(result.value,result);if(transformed instanceof Promise){return transformed.then((value)=>handleCodecTxResult(result,value,def.out,ctx))}return handleCodecTxResult(result,transformed,def.out,ctx)}else{const transformed=def.reverseTransform(result.value,result);if(transformed instanceof Promise){return transformed.then((value)=>handleCodecTxResult(result,value,def.in,ctx))}return handleCodecTxResult(result,transformed,def.in,ctx)}}function handleCodecTxResult(left,value,nextSchema,ctx){if(left.issues.length){left.aborted=true;return left}return nextSchema._zod.run({value,issues:left.issues},ctx)}var $ZodPreprocess=$constructor("$ZodPreprocess",(inst,def)=>{$ZodPipe.init(inst,def)});var $ZodReadonly=$constructor("$ZodReadonly",(inst,def)=>{$ZodType.init(inst,def);defineLazyInternal(inst,"propValues",(zod)=>zod.def.innerType._zod.propValues);defineLazyInternal(inst,"values",(zod)=>zod.def.innerType._zod.values);defineLazyInternal(inst,"optin",(zod)=>zod.def.innerType?._zod?.optin);defineLazyInternal(inst,"optout",(zod)=>zod.def.innerType?._zod?.optout);inst._zod.parse=(payload,ctx)=>{if(ctx.direction==="backward"){return def.innerType._zod.run(payload,ctx)}const result=def.innerType._zod.run(payload,ctx);if(result instanceof Promise){return result.then(handleReadonlyResult)}return handleReadonlyResult(result)}});function handleReadonlyResult(payload){if(!payload.memo)payload.value=Object.freeze(payload.value);return payload}function leafPattern(schema){const def=schema._zod.def;let pattern=def.pattern;let isInt=!!def.format?.includes("int");let minimum;let maximum;for(const ch of def.checks??[]){const d=ch._zod.def;if(d.pattern)pattern=d.pattern;isInt||(isInt=!!d.format?.includes("int"));const lo=d.minimum??d.length;const hi=d.maximum??d.length;if(lo!==undefined&&(minimum===undefined||lo>minimum))minimum=lo;if(hi!==undefined&&(maximum===undefined||hi<maximum))maximum=hi}if(pattern)return pattern.source;if(minimum!==undefined&&maximum!==undefined&&minimum>maximum)return"(?!)";if(minimum!==undefined||maximum!==undefined)return string({minimum,maximum}).source;const own=schema._zod.pattern;return(isInt&&own===number?integer:own)?.source}function partPattern(schema){const def=schema._zod.def;const own=schema._zod.pattern?.source;const inner=def.innerType??schema._zod.innerType;if(inner){const before=inner._zod.pattern?.source;const after=partPattern(inner);if(own&&before&&after&&after!==before){return own.replace(cleanRegex(before),()=>cleanRegex(after))}return own}if(def.options){const sources=def.options.map(partPattern);if(sources.every(Boolean))return`^(${sources.map((s)=>cleanRegex(s)).join("|")})$`}return leafPattern(schema)}var $ZodTemplateLiteral=$constructor("$ZodTemplateLiteral",(inst,def)=>{$ZodType.init(inst,def);const regexParts=[];for(const part of def.parts){if(typeof part==="object"&&part!==null){const source=partPattern(part);if(!source){throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`)}regexParts.push(cleanRegex(source))}else if(part===null||primitiveTypes.has(typeof part)){regexParts.push(escapeRegex(`${part}`))}else{throw new Error(`Invalid template literal part: ${part}`)}}inst._zod.pattern=new RegExp(`^${regexParts.join("")}$`);inst._zod.parse=(payload,_ctx)=>{if(typeof payload.value!=="string"){payload.issues.push({input:payload.value,inst,expected:"string",code:"invalid_type"});return payload}inst._zod.pattern.lastIndex=0;if(!inst._zod.pattern.test(payload.value)){payload.issues.push({input:payload.value,inst,code:"invalid_format",format:def.format??"template_literal",pattern:inst._zod.pattern.source});return payload}return payload}});var $ZodFunction=$constructor("$ZodFunction",(inst,def)=>{$ZodType.init(inst,def);Object.defineProperty(inst,"_def",{value:def});inst._zod.def=def;inst.implement=(func)=>{if(typeof func!=="function"){throw new Error("implement() must be called with a function")}return Object.defineProperty(function(...args){const parsedArgs=inst._def.input?parse(inst._def.input,args):args;const result=Reflect.apply(func,this,parsedArgs);if(inst._def.output){return parse(inst._def.output,result)}return result},"_zod",{value:inst._zod,enumerable:false})};inst.implementAsync=(func)=>{if(typeof func!=="function"){throw new Error("implementAsync() must be called with a function")}return Object.defineProperty(async function(...args){const parsedArgs=inst._def.input?await parseAsync(inst._def.input,args):args;const result=await Reflect.apply(func,this,parsedArgs);if(inst._def.output){return await parseAsync(inst._def.output,result)}return result},"_zod",{value:inst._zod,enumerable:false})};inst._zod.parse=(payload,_ctx)=>{if(typeof payload.value!=="function"){payload.issues.push({code:"invalid_type",expected:"function",input:payload.value,inst});return payload}const hasPromiseOutput=inst._def.output&&inst._def.output._zod.def.type==="promise";if(hasPromiseOutput){payload.value=inst.implementAsync(payload.value)}else{payload.value=inst.implement(payload.value)}return payload};inst.input=(...args)=>{const F=inst.constructor;if(Array.isArray(args[0])){return new F({type:"function",input:new $ZodTuple({type:"tuple",items:args[0],rest:args[1]}),output:inst._def.output})}return new F({type:"function",input:args[0],output:inst._def.output})};inst.output=(output)=>{const F=inst.constructor;return new F({type:"function",input:inst._def.input,output})};return inst});var $ZodPromise=$constructor("$ZodPromise",(inst,def)=>{$ZodType.init(inst,def);inst._zod.parse=(payload,ctx)=>{return Promise.resolve(payload.value).then((inner)=>def.innerType._zod.run({value:inner,issues:[]},ctx))}});var $ZodLazy=$constructor("$ZodLazy",(inst,def)=>{$ZodType.init(inst,def);defineLazy(inst._zod,"innerType",()=>{const d=def;if(!d._cachedInner)d._cachedInner=def.getter();return d._cachedInner});defineLazyInternal(inst,"pattern",(zod)=>zod.innerType?._zod?.pattern);defineLazyInternal(inst,"propValues",(zod)=>zod.innerType?._zod?.propValues);defineLazyInternal(inst,"optin",(zod)=>zod.innerType?._zod?.optin??undefined);defineLazyInternal(inst,"optout",(zod)=>zod.innerType?._zod?.optout??undefined);inst._zod.parse=(payload,ctx)=>{const inner=inst._zod.innerType;return inner._zod.run(payload,ctx)}});var $ZodCustom=$constructor("$ZodCustom",(inst,def)=>{$ZodCheck.init(inst,def);$ZodType.init(inst,def);inst._zod.parse=(payload,_)=>{return payload};inst._zod.check=(payload)=>{const input=payload.value;const r=def.fn(input);if(r instanceof Promise){return r.then((r)=>handleRefineResult(r,payload,input,inst))}handleRefineResult(r,payload,input,inst);return}});function handleRefineResult(result,payload,input,inst){if(!result){const _iss={code:"custom",input,inst,path:[...inst._zod.def.path??[]],continue:!inst._zod.def.abort};if(inst._zod.def.params)_iss.params=inst._zod.def.params;payload.issues.push(issue(_iss))}}class $ZodCyclicError extends Error{constructor(){super(`Cannot parse a reference cycle that closes through a transform`);this.name="ZodCyclicError"}}var STATE="~memo";var NO_ISSUES=[];function isRef(value){return value!==null&&typeof value==="object"}function cloneIssues(issues){return issues.map((iss)=>iss.path?{...iss,path:iss.path.slice()}:{...iss})}var recursive=new WeakMap;var NONE=0;var ASSUMED=1;var PROVEN=2;function isRecursive(inst,stack,resolve){const cached=recursive.get(inst);if(cached!==undefined)return cached?PROVEN:NONE;if(stack.has(inst))return PROVEN;stack.add(inst);let result=NONE;const check=(child)=>{if(result!==PROVEN&&child?._zod){const answer=isRecursive(child,stack,resolve);if(answer>result)result=answer}};const shape=(sh,spread)=>{let answer=NONE;for(const key of Reflect.ownKeys(sh)){const desc=Object.getOwnPropertyDescriptor(sh,key);if(spread&&!desc.enumerable)continue;const child=desc.get?ASSUMED:desc.value?._zod?isRecursive(desc.value,stack,resolve):NONE;if(child>answer)answer=child}return answer};const merge=(answer)=>{if(answer>result)result=answer};const def=inst._zod.def;const kind=def.type;switch(kind){case"object":{const raw=rawShape(def);merge(raw?shape(raw,true):ASSUMED);check(def.catchall);break}case"array":check(def.element);break;case"tuple":for(const el of def.items)check(el);check(def.rest);break;case"record":case"map":check(def.keyType);check(def.valueType);break;case"set":check(def.valueType);break;case"union":for(const el of def.options)check(el);break;case"intersection":check(def.left);check(def.right);break;case"optional":case"nullable":case"default":case"prefault":case"catch":case"readonly":case"nonoptional":case"promise":case"success":check(def.innerType);break;case"pipe":check(def.in);check(def.out);break;case"function":check(def.input);check(def.output);break;case"lazy":{const inner=def._cachedInner??(resolve?inst._zod.innerType:undefined);merge(inner?isRecursive(inner,stack,false):ASSUMED);break}case"template_literal":case"string":case"number":case"int":case"boolean":case"bigint":case"symbol":case"undefined":case"null":case"void":case"never":case"any":case"unknown":case"date":case"nan":case"enum":case"literal":case"file":case"transform":case"custom":break;default:{for(const key in def){const desc=Object.getOwnPropertyDescriptor(def,key);if(!desc||desc.get)continue;const value=desc.value;if(!value||typeof value!=="object")continue;if(value._zod)check(value);else if(Array.isArray(value))for(const el of value)check(el)}}}stack.delete(inst);return settle(inst,result)}function settle(inst,answer){if(answer!==ASSUMED)recursive.set(inst,answer===PROVEN);return answer}function isRecursiveSchema(inst){return isRecursive(inst,new Set,true)!==NONE}function bucketFor(state,inst){let bucket=state.buckets.get(inst);if(!bucket){bucket=new WeakMap;state.buckets.set(inst,bucket)}return bucket}var handoff;var open=[];var memo={alloc(_inst,payload,empty){const bucket=handoff;if(!bucket)return empty;handoff=undefined;const entry={value:empty,issues:null};bucket.set(payload.value,entry);open.push(entry);return empty},guard(inst){var _a;(_a=inst._zod).deferred??(_a.deferred=[]);inst._zod.deferred.push(()=>{const base=inst._zod.parse;const wrapped=(payload,ctx)=>{if(ctx.direction!=="backward"&&isBackEdge(ctx,payload.value))throw new $ZodCyclicError;return base(payload,ctx)};inst._zod.parse=wrapped;if(inst._zod.run===base)inst._zod.run=wrapped})},attach(inst){var _a;let isRecursiveInst;let rechecked=false;let lastCtx;let lastBucket;(_a=inst._zod).deferred??(_a.deferred=[]);inst._zod.deferred.push(()=>{const base=inst._zod.parse;const wrapped=(payload,ctx)=>{if(isRecursiveInst===undefined){const walked=isRecursive(inst,new Set,false);if(walked===NONE){inst._zod.parse=base;if(inst._zod.run===wrapped)inst._zod.run=base;return base(payload,ctx)}if(walked===PROVEN||rechecked)isRecursiveInst=true;else rechecked=true}const input=payload.value;if(!isRef(input))return base(payload,ctx);let state=ctx[STATE];if(!state){state={buckets:new WeakMap,backEdges:undefined};ctx[STATE]=state}let bucket;if(lastCtx===ctx){bucket=lastBucket}else{bucket=bucketFor(state,inst);lastCtx=ctx;lastBucket=bucket}const hit=bucket.get(input);if(hit){payload.value=hit.value;if(hit.issues){if(hit.issues.length)payload.issues.push(...cloneIssues(hit.issues))}else{payload.memo=true;state.backEdges??(state.backEdges=new WeakSet);state.backEdges.add(hit.value)}return payload}handoff=bucket;const depth=open.length;const result=base(payload,ctx);handoff=undefined;const entry=open.length>depth?open.pop():undefined;if(result instanceof Promise){return result.then((r)=>{if(entry)entry.issues=r.issues.length?cloneIssues(r.issues):NO_ISSUES;return r})}if(entry)entry.issues=result.issues.length?cloneIssues(result.issues):NO_ISSUES;return result};inst._zod.parse=wrapped;if(inst._zod.run===base)inst._zod.run=wrapped})}};function memoizer(){return memo}function isBackEdge(ctx,value){const backEdges=ctx[STATE]?.backEdges;return backEdges!==undefined&&isRef(value)&&backEdges.has(value)}var exports_locales={};__export(exports_locales,{ar:()=>ar_default,az:()=>az_default,be:()=>be_default,bg:()=>bg_default,bn:()=>bn_default,ca:()=>ca_default,ckb:()=>ckb_default,cs:()=>cs_default,da:()=>da_default,de:()=>de_default,el:()=>el_default,en:()=>en_default,eo:()=>eo_default,es:()=>es_default,fa:()=>fa_default,fi:()=>fi_default,fr:()=>fr_default,frCA:()=>fr_CA_default,gu:()=>gu_default,he:()=>he_default,hi:()=>hi_default,hr:()=>hr_default,hu:()=>hu_default,hy:()=>hy_default,id:()=>id_default,is:()=>is_default,it:()=>it_default,ja:()=>ja_default,ka:()=>ka_default,kh:()=>kh_default,km:()=>km_default,kn:()=>kn_default,ko:()=>ko_default,lt:()=>lt_default,mk:()=>mk_default,ms:()=>ms_default,ne:()=>ne_default,nl:()=>nl_default,nn:()=>nn_default,no:()=>no_default,ota:()=>ota_default,pl:()=>pl_default,ps:()=>ps_default,pt:()=>pt_default,ptBR:()=>pt_BR_default,ro:()=>ro_default,ru:()=>ru_default,sk:()=>sk_default,sl:()=>sl_default,sv:()=>sv_default,ta:()=>ta_default,tg:()=>tg_default,th:()=>th_default,tk:()=>tk_default,tr:()=>tr_default,ua:()=>ua_default,uk:()=>uk_default,ur:()=>ur_default,uz:()=>uz_default,vi:()=>vi_default,yo:()=>yo_default,zhCN:()=>zh_CN_default,zhTW:()=>zh_TW_default});var error=()=>{const Sizable={string:{unit:"حرف",verb:"أن يحوي"},file:{unit:"بايت",verb:"أن يحوي"},array:{unit:"عنصر",verb:"أن يحوي"},set:{unit:"عنصر",verb:"أن يحوي"},map:{unit:"عنصر",verb:"أن يحوي"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"مدخل",email:"بريد إلكتروني",url:"رابط",emoji:"إيموجي",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"تاريخ ووقت بمعيار ISO",date:"تاريخ بمعيار ISO",time:"وقت بمعيار ISO",duration:"مدة بمعيار ISO",ipv4:"عنوان IPv4",ipv6:"عنوان IPv6",mac:"عنوان MAC",cidrv4:"مدى عناوين بصيغة IPv4",cidrv6:"مدى عناوين بصيغة IPv6",base64:"نَص بترميز base64-encoded",base64url:"نَص بترميز base64url-encoded",json_string:"نَص على هيئة JSON",e164:"رقم هاتف بمعيار E.164",credit_card:"رقم بطاقة الائتمان",currency_code:"رمز العملة",iban:"IBAN",jwt:"JWT",template_literal:"مدخل"};const TypeDictionary={nan:"NaN"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`مدخلات غير مقبولة: يفترض إدخال instanceof ${issue.expected}، ولكن تم إدخال ${received}`}return`مدخلات غير مقبولة: يفترض إدخال ${expected}، ولكن تم إدخال ${received}`}case"invalid_value":if(issue.values.length===1)return`مدخلات غير مقبولة: يفترض إدخال ${stringifyPrimitive(issue.values[0])}`;return`اختيار غير مقبول: يتوقع انتقاء أحد هذه الخيارات: ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return` أكبر من اللازم: يفترض أن تكون ${issue.origin??"القيمة"} ${adj} ${issue.maximum.toString()} ${sizing.unit??"عنصر"}`;return`أكبر من اللازم: يفترض أن تكون ${issue.origin??"القيمة"} ${adj} ${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`أصغر من اللازم: يفترض لـ ${issue.origin} أن يكون ${adj} ${issue.minimum.toString()} ${sizing.unit}`}return`أصغر من اللازم: يفترض لـ ${issue.origin} أن يكون ${adj} ${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`نَص غير مقبول: يجب أن يبدأ بـ "${issue.prefix}"`;if(_issue.format==="ends_with")return`نَص غير مقبول: يجب أن ينتهي بـ "${_issue.suffix}"`;if(_issue.format==="includes")return`نَص غير مقبول: يجب أن يتضمَّن "${_issue.includes}"`;if(_issue.format==="regex")return`نَص غير مقبول: يجب أن يطابق النمط ${_issue.pattern}`;return`${FormatDictionary[_issue.format]??issue.format} غير مقبول`}case"not_multiple_of":return`رقم غير مقبول: يجب أن يكون من مضاعفات ${issue.divisor}`;case"unrecognized_keys":return`معرف${issue.keys.length>1?"ات":""} غريب${issue.keys.length>1?"ة":""}: ${joinValues(issue.keys,"، ")}`;case"invalid_key":return`معرف غير مقبول في ${issue.origin}`;case"invalid_union":return"مدخل غير مقبول";case"invalid_element":return`مدخل غير مقبول في ${issue.origin}`;default:return"مدخل غير مقبول"}}};function ar_default(){return{localeError:error()}}var error2=()=>{const Sizable={string:{unit:"simvol",verb:"olmalıdır"},file:{unit:"bayt",verb:"olmalıdır"},array:{unit:"element",verb:"olmalıdır"},set:{unit:"element",verb:"olmalıdır"},map:{unit:"element",verb:"olmalıdır"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",credit_card:"kredit kartı nömrəsi",currency_code:"valyuta kodu",iban:"IBAN",jwt:"JWT",template_literal:"input"};const TypeDictionary={nan:"NaN"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Yanlış dəyər: gözlənilən instanceof ${issue.expected}, daxil olan ${received}`}return`Yanlış dəyər: gözlənilən ${expected}, daxil olan ${received}`}case"invalid_value":if(issue.values.length===1)return`Yanlış dəyər: gözlənilən ${stringifyPrimitive(issue.values[0])}`;return`Yanlış seçim: aşağıdakılardan biri olmalıdır: ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Çox böyük: gözlənilən ${issue.origin??"dəyər"} ${adj}${issue.maximum.toString()} ${sizing.unit??"element"}`;return`Çox böyük: gözlənilən ${issue.origin??"dəyər"} ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing)return`Çox kiçik: gözlənilən ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;return`Çox kiçik: gözlənilən ${issue.origin} ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Yanlış mətn: "${_issue.prefix}" ilə başlamalıdır`;if(_issue.format==="ends_with")return`Yanlış mətn: "${_issue.suffix}" ilə bitməlidir`;if(_issue.format==="includes")return`Yanlış mətn: "${_issue.includes}" daxil olmalıdır`;if(_issue.format==="regex")return`Yanlış mətn: ${_issue.pattern} şablonuna uyğun olmalıdır`;return`Yanlış ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Yanlış ədəd: ${issue.divisor} ilə bölünə bilən olmalıdır`;case"unrecognized_keys":return`Tanınmayan açar${issue.keys.length>1?"lar":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`${issue.origin} daxilində yanlış açar`;case"invalid_union":return"Yanlış dəyər";case"invalid_element":return`${issue.origin} daxilində yanlış dəyər`;default:return`Yanlış dəyər`}}};function az_default(){return{localeError:error2()}}function getBelarusianPlural(count,one,few,many){const absCount=Math.abs(count);const lastDigit=absCount%10;const lastTwoDigits=absCount%100;if(lastTwoDigits>=11&&lastTwoDigits<=19){return many}if(lastDigit===1){return one}if(lastDigit>=2&&lastDigit<=4){return few}return many}var error3=()=>{const Sizable={string:{unit:{one:"сімвал",few:"сімвалы",many:"сімвалаў"},verb:"мець"},array:{unit:{one:"элемент",few:"элементы",many:"элементаў"},verb:"мець"},set:{unit:{one:"элемент",few:"элементы",many:"элементаў"},verb:"мець"},map:{unit:{one:"элемент",few:"элементы",many:"элементаў"},verb:"мець"},file:{unit:{one:"байт",few:"байты",many:"байтаў"},verb:"мець"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"увод",email:"email адрас",url:"URL",emoji:"эмодзі",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO дата і час",date:"ISO дата",time:"ISO час",duration:"ISO працягласць",ipv4:"IPv4 адрас",ipv6:"IPv6 адрас",mac:"MAC адрас",cidrv4:"IPv4 дыяпазон",cidrv6:"IPv6 дыяпазон",base64:"радок у фармаце base64",base64url:"радок у фармаце base64url",json_string:"JSON радок",e164:"нумар E.164",credit_card:"нумар крэдытнай карты",currency_code:"код валюты",iban:"IBAN",jwt:"JWT",template_literal:"увод"};const TypeDictionary={nan:"NaN",number:"лік",array:"масіў"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Няправільны ўвод: чакаўся instanceof ${issue.expected}, атрымана ${received}`}return`Няправільны ўвод: чакаўся ${expected}, атрымана ${received}`}case"invalid_value":if(issue.values.length===1)return`Няправільны ўвод: чакалася ${stringifyPrimitive(issue.values[0])}`;return`Няправільны варыянт: чакаўся адзін з ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing){const maxValue=Number(issue.maximum);const unit=getBelarusianPlural(maxValue,sizing.unit.one,sizing.unit.few,sizing.unit.many);return`Занадта вялікі: чакалася, што ${issue.origin??"значэнне"} павінна ${sizing.verb} ${adj}${issue.maximum.toString()} ${unit}`}return`Занадта вялікі: чакалася, што ${issue.origin??"значэнне"} павінна быць ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){const minValue=Number(issue.minimum);const unit=getBelarusianPlural(minValue,sizing.unit.one,sizing.unit.few,sizing.unit.many);return`Занадта малы: чакалася, што ${issue.origin} павінна ${sizing.verb} ${adj}${issue.minimum.toString()} ${unit}`}return`Занадта малы: чакалася, што ${issue.origin} павінна быць ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Няправільны радок: павінен пачынацца з "${_issue.prefix}"`;if(_issue.format==="ends_with")return`Няправільны радок: павінен заканчвацца на "${_issue.suffix}"`;if(_issue.format==="includes")return`Няправільны радок: павінен змяшчаць "${_issue.includes}"`;if(_issue.format==="regex")return`Няправільны радок: павінен адпавядаць шаблону ${_issue.pattern}`;return`Няправільны ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Няправільны лік: павінен быць кратным ${issue.divisor}`;case"unrecognized_keys":return`Нераспазнаны ${issue.keys.length>1?"ключы":"ключ"}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Няправільны ключ у ${issue.origin}`;case"invalid_union":return"Няправільны ўвод";case"invalid_element":return`Няправільнае значэнне ў ${issue.origin}`;default:return`Няправільны ўвод`}}};function be_default(){return{localeError:error3()}}var error4=()=>{const Sizable={string:{unit:"символа",verb:"да съдържа"},file:{unit:"байта",verb:"да съдържа"},array:{unit:"елемента",verb:"да съдържа"},set:{unit:"елемента",verb:"да съдържа"},map:{unit:"елемента",verb:"да съдържа"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"вход",email:"имейл адрес",url:"URL",emoji:"емоджи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO време",date:"ISO дата",time:"ISO време",duration:"ISO продължителност",ipv4:"IPv4 адрес",ipv6:"IPv6 адрес",mac:"MAC адрес",cidrv4:"IPv4 диапазон",cidrv6:"IPv6 диапазон",base64:"base64-кодиран низ",base64url:"base64url-кодиран низ",json_string:"JSON низ",e164:"E.164 номер",credit_card:"номер на кредитна карта",currency_code:"код на валута",iban:"IBAN",jwt:"JWT",template_literal:"вход"};const TypeDictionary={nan:"NaN",number:"число",array:"масив"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Невалиден вход: очакван instanceof ${issue.expected}, получен ${received}`}return`Невалиден вход: очакван ${expected}, получен ${received}`}case"invalid_value":if(issue.values.length===1)return`Невалиден вход: очакван ${stringifyPrimitive(issue.values[0])}`;return`Невалидна опция: очаквано едно от ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Твърде голямо: очаква се ${issue.origin??"стойност"} да съдържа ${adj}${issue.maximum.toString()} ${sizing.unit??"елемента"}`;return`Твърде голямо: очаква се ${issue.origin??"стойност"} да бъде ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Твърде малко: очаква се ${issue.origin} да съдържа ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`Твърде малко: очаква се ${issue.origin} да бъде ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`Невалиден низ: трябва да започва с "${_issue.prefix}"`}if(_issue.format==="ends_with")return`Невалиден низ: трябва да завършва с "${_issue.suffix}"`;if(_issue.format==="includes")return`Невалиден низ: трябва да включва "${_issue.includes}"`;if(_issue.format==="regex")return`Невалиден низ: трябва да съвпада с ${_issue.pattern}`;let invalid_adj="Невалиден";if(_issue.format==="emoji")invalid_adj="Невалидно";if(_issue.format==="datetime")invalid_adj="Невалидно";if(_issue.format==="date")invalid_adj="Невалидна";if(_issue.format==="time")invalid_adj="Невалидно";if(_issue.format==="duration")invalid_adj="Невалидна";return`${invalid_adj} ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Невалидно число: трябва да бъде кратно на ${issue.divisor}`;case"unrecognized_keys":return`Неразпознат${issue.keys.length>1?"и":""} ключ${issue.keys.length>1?"ове":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Невалиден ключ в ${issue.origin}`;case"invalid_union":return"Невалиден вход";case"invalid_element":return`Невалидна стойност в ${issue.origin}`;default:return`Невалиден вход`}}};function bg_default(){return{localeError:error4()}}var error5=()=>{const Sizable={string:{unit:"অক্ষর",verb:"থাকতে হবে"},file:{unit:"বাইট",verb:"থাকতে হবে"},array:{unit:"আইটেম",verb:"থাকতে হবে"},set:{unit:"আইটেম",verb:"থাকতে হবে"},map:{unit:"এন্ট্রি",verb:"থাকতে হবে"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"ইনপুট",email:"ইমেইল ঠিকানা",url:"URL",emoji:"ইমোজি",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO তারিখ ও সময়",date:"ISO তারিখ",time:"ISO সময়",duration:"ISO সময়কাল",ipv4:"IPv4 ঠিকানা",ipv6:"IPv6 ঠিকানা",mac:"MAC ঠিকানা",cidrv4:"IPv4 রেঞ্জ",cidrv6:"IPv6 রেঞ্জ",base64:"base64-এনকোডেড স্ট্রিং",base64url:"base64url-এনকোডেড স্ট্রিং",json_string:"JSON স্ট্রিং",e164:"E.164 নম্বর",credit_card:"ক্রেডিট কার্ড নম্বর",currency_code:"মুদ্রা কোড",iban:"IBAN",jwt:"JWT",template_literal:"ইনপুট"};const TypeDictionary={nan:"NaN"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;return`অবৈধ ইনপুট: প্রত্যাশিত ${expected}, প্রাপ্ত ${received}`}case"invalid_value":if(issue.values.length===1)return`অবৈধ ইনপুট: প্রত্যাশিত ${stringifyPrimitive(issue.values[0])}`;return`অবৈধ অপশন: ${joinValues(issue.values," | ")} এর মধ্যে একটি প্রত্যাশিত`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`অনেক বড়: ${issue.origin??"মান"} ${adj}${issue.maximum.toString()} ${sizing.unit??"এলিমেন্ট"} হতে হবে`;return`অনেক বড়: ${issue.origin??"মান"} ${adj}${issue.maximum.toString()} হতে হবে`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`অনেক ছোট: ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} হতে হবে`}return`অনেক ছোট: ${issue.origin} ${adj}${issue.minimum.toString()} হতে হবে`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`অবৈধ স্ট্রিং: "${_issue.prefix}" দিয়ে শুরু হতে হবে`}if(_issue.format==="ends_with")return`অবৈধ স্ট্রিং: "${_issue.suffix}" দিয়ে শেষ হতে হবে`;if(_issue.format==="includes")return`অবৈধ স্ট্রিং: "${_issue.includes}" অন্তর্ভুক্ত থাকতে হবে`;if(_issue.format==="regex")return`অবৈধ স্ট্রিং: ${_issue.pattern} প্যাটার্ন মিলতে হবে`;return`অবৈধ ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`অবৈধ নম্বর: ${issue.divisor} এর গুণিতক হতে হবে`;case"unrecognized_keys":return`অচেনা কী${issue.keys.length>1?"গুলো":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`${issue.origin} এ অবৈধ কী`;case"invalid_union":if(issue.options&&Array.isArray(issue.options)&&issue.options.length>0){const opts=issue.options.map((o)=>`'${o}'`).join(" | ");return`অবৈধ ডিসক্রিমিনেটর মান। প্রত্যাশিত ${opts}`}return"অবৈধ ইনপুট";case"invalid_element":return`${issue.origin} এ অবৈধ মান`;default:return"অবৈধ ইনপুট"}}};function bn_default(){return{localeError:error5()}}var error6=()=>{const Sizable={string:{unit:"caràcters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"},map:{unit:"elements",verb:"contenir"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"entrada",email:"adreça electrònica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adreça IPv4",ipv6:"adreça IPv6",mac:"adreça MAC",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"número E.164",credit_card:"número de targeta de crèdit",currency_code:"codi de moneda",iban:"IBAN",jwt:"JWT",template_literal:"entrada"};const TypeDictionary={nan:"NaN"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Tipus invàlid: s'esperava instanceof ${issue.expected}, s'ha rebut ${received}`}return`Tipus invàlid: s'esperava ${expected}, s'ha rebut ${received}`}case"invalid_value":if(issue.values.length===1)return`Valor invàlid: s'esperava ${stringifyPrimitive(issue.values[0])}`;return`Opció invàlida: s'esperava una de ${joinValues(issue.values," o ")}`;case"too_big":{const adj=issue.inclusive?"com a màxim":"menys de";const sizing=getSizing(issue.origin);if(sizing)return`Massa gran: s'esperava que ${issue.origin??"el valor"} contingués ${adj} ${issue.maximum.toString()} ${sizing.unit??"elements"}`;return`Massa gran: s'esperava que ${issue.origin??"el valor"} fos ${adj} ${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?"com a mínim":"més de";const sizing=getSizing(issue.origin);if(sizing){return`Massa petit: s'esperava que ${issue.origin} contingués ${adj} ${issue.minimum.toString()} ${sizing.unit}`}return`Massa petit: s'esperava que ${issue.origin} fos ${adj} ${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`Format invàlid: ha de començar amb "${_issue.prefix}"`}if(_issue.format==="ends_with")return`Format invàlid: ha d'acabar amb "${_issue.suffix}"`;if(_issue.format==="includes")return`Format invàlid: ha d'incloure "${_issue.includes}"`;if(_issue.format==="regex")return`Format invàlid: ha de coincidir amb el patró ${_issue.pattern}`;return`Format invàlid per a ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Número invàlid: ha de ser múltiple de ${issue.divisor}`;case"unrecognized_keys":return`Clau${issue.keys.length>1?"s":""} no reconeguda${issue.keys.length>1?"s":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Clau invàlida a ${issue.origin}`;case"invalid_union":return"Entrada invàlida";case"invalid_element":return`Element invàlid a ${issue.origin}`;default:return`Entrada invàlida`}}};function ca_default(){return{localeError:error6()}}var error7=()=>{const Sizable={string:{unit:"پیت",verb:"بێت"},file:{unit:"بایت",verb:"بێت"},array:{unit:"دانە",verb:"بێت"},set:{unit:"دانە",verb:"بێت"},map:{unit:"دانە",verb:"بێت"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"regex",email:"ئیمەیڵ",url:"بەستەر (URL)",emoji:"ئیمۆجی",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ڕێکەوت و کات",date:"ڕێکەوت",time:"کات",duration:"ماوە",ipv4:"ناونیشانی IPv4",ipv6:"ناونیشانی IPv6",mac:"ناونیشانی MAC",cidrv4:"مەودای IPv4",cidrv6:"مەودای IPv6",base64:"دەقی base64",base64url:"دەقی base64url",json_string:"دەقی JSON",e164:"ژمارەی E.164",credit_card:"ژمارەی کارتی کرێدیت",currency_code:"کۆدی دراو",iban:"IBAN",jwt:"JWT",template_literal:"تێکردە"};const TypeDictionary={nan:"NaN",string:"نووسین",number:"ژمارە",boolean:"boolean",array:"array",object:"object",date:"ڕێکەوت",integer:"ژمارە",float:"ژمارە",null:"null",undefined:"undefined",function:"function",symbol:"symbol",unknown:"unknown",promise:"promise",void:"void",never:"never",map:"map",set:"set"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;const postfix=["ا","و","ۆ","وو","ە","ی","ێ"].some((p)=>received.endsWith(p))?"یە":"ە";const isEnglish=/^[a-zA-Z]+$/.test(received);if(receivedType==="null"||receivedType==="undefined")return`داواکراوە`;return`چاوەڕوانکراوە ${expected} بێت، بەڵام ${received}${isEnglish?"":postfix}`}case"invalid_value":if(issue.values.length===1)return`بەهاکە نادرووستە: چاوەڕوانکراوە ${stringifyPrimitive(issue.values[0])} بێت`;return`هەڵبژاردەی نادروست: چاوەڕوانکراوە یەکێک بێت لە ${joinValues(issue.values,"|")}`;case"too_big":{const sizing=getSizing(issue.origin);if(sizing)return`پێویستە بە لایەنی زۆرەوە ${issue.maximum.toString()} ${sizing.unit} ${sizing.verb}`;return`پێویستە بە لایەنی زۆرەوە ${issue.maximum.toString()} بێت`}case"too_small":{const sizing=getSizing(issue.origin);if(sizing)return`پێویستە بە لایەنی کەمەوە ${issue.minimum.toString()} ${sizing.unit} ${sizing.verb}`;return`پێویستە بە لایەنی کەمەوە ${issue.minimum.toString()} بێت`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`دەقی نادروست: پێویستە دەستپێبکات بە "${_issue.prefix}"`}if(_issue.format==="ends_with")return`دەقی نادروست: پێویستە کۆتاییبێت بە "${_issue.suffix}"`;if(_issue.format==="includes")return`دەقی نادروست: پێویستە "${_issue.includes}" لەخۆبگرێت`;if(_issue.format==="regex")return`دەقی نادروست: پێویستە لەگەڵ پاتێرنی ${_issue.pattern} بگونجێت`;return`بەهای ${FormatDictionary[_issue.format]??issue.format} نادروستە`}case"not_multiple_of":return`ژمارەی نادروست: دەبێت چەند هێندە بێت بۆ ${issue.divisor}`;case"unrecognized_keys":return`کلیلی نەناسراو: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`کلیلی نادروست لە ${issue.origin}`;case"invalid_union":if(issue.options&&Array.isArray(issue.options)&&issue.options.length>0){const opts=issue.options.map((o)=>`'${o}'`).join(" | ");return`بەهای نەناسراو هەیە. بەهای چاوەڕوانکراو: ${opts}`}return"یەکگرتنی نادروست";case"invalid_element":return`${issue.origin} بەهاکە نادروستە`;default:return`تێکردەی نادروست`}}};function ckb_default(){return{localeError:error7()}}var error8=()=>{const Sizable={string:{unit:"znaků",verb:"mít"},file:{unit:"bajtů",verb:"mít"},array:{unit:"prvků",verb:"mít"},set:{unit:"prvků",verb:"mít"},map:{unit:"prvků",verb:"mít"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"regulární výraz",email:"e-mailová adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a čas ve formátu ISO",date:"datum ve formátu ISO",time:"čas ve formátu ISO",duration:"doba trvání ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",mac:"MAC adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"řetězec zakódovaný ve formátu base64",base64url:"řetězec zakódovaný ve formátu base64url",json_string:"řetězec ve formátu JSON",e164:"číslo E.164",credit_card:"číslo kreditní karty",currency_code:"kód měny",iban:"IBAN",jwt:"JWT",template_literal:"vstup"};const TypeDictionary={nan:"NaN",number:"číslo",string:"řetězec",function:"funkce",array:"pole"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Neplatný vstup: očekáváno instanceof ${issue.expected}, obdrženo ${received}`}return`Neplatný vstup: očekáváno ${expected}, obdrženo ${received}`}case"invalid_value":if(issue.values.length===1)return`Neplatný vstup: očekáváno ${stringifyPrimitive(issue.values[0])}`;return`Neplatná možnost: očekávána jedna z hodnot ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing){return`Hodnota je příliš velká: ${issue.origin??"hodnota"} musí mít ${adj}${issue.maximum.toString()} ${sizing.unit??"prvků"}`}return`Hodnota je příliš velká: ${issue.origin??"hodnota"} musí být ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Hodnota je příliš malá: ${issue.origin??"hodnota"} musí mít ${adj}${issue.minimum.toString()} ${sizing.unit??"prvků"}`}return`Hodnota je příliš malá: ${issue.origin??"hodnota"} musí být ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Neplatný řetězec: musí začínat na "${_issue.prefix}"`;if(_issue.format==="ends_with")return`Neplatný řetězec: musí končit na "${_issue.suffix}"`;if(_issue.format==="includes")return`Neplatný řetězec: musí obsahovat "${_issue.includes}"`;if(_issue.format==="regex")return`Neplatný řetězec: musí odpovídat vzoru ${_issue.pattern}`;return`Neplatný formát ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Neplatné číslo: musí být násobkem ${issue.divisor}`;case"unrecognized_keys":return`Neznámé klíče: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Neplatný klíč v ${issue.origin}`;case"invalid_union":return"Neplatný vstup";case"invalid_element":return`Neplatná hodnota v ${issue.origin}`;default:return`Neplatný vstup`}}};function cs_default(){return{localeError:error8()}}var error9=()=>{const Sizable={string:{unit:"tegn",verb:"havde"},file:{unit:"bytes",verb:"havde"},array:{unit:"elementer",verb:"indeholdt"},set:{unit:"elementer",verb:"indeholdt"},map:{unit:"elementer",verb:"indeholdt"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"input",email:"e-mailadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslæt",date:"ISO-dato",time:"ISO-klokkeslæt",duration:"ISO-varighed",ipv4:"IPv4-adresse",ipv6:"IPv6-adresse",mac:"MAC-adresse",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodet streng",base64url:"base64url-kodet streng",json_string:"JSON-streng",e164:"E.164-nummer",credit_card:"kreditkortnummer",currency_code:"valutakode",iban:"IBAN",jwt:"JWT",template_literal:"input"};const TypeDictionary={nan:"NaN",string:"streng",number:"tal",boolean:"boolean",array:"liste",object:"objekt",set:"sæt",file:"fil"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Ugyldigt input: forventede instanceof ${issue.expected}, fik ${received}`}return`Ugyldigt input: forventede ${expected}, fik ${received}`}case"invalid_value":if(issue.values.length===1)return`Ugyldig værdi: forventede ${stringifyPrimitive(issue.values[0])}`;return`Ugyldigt valg: forventede en af følgende ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);const origin=TypeDictionary[issue.origin]??issue.origin;if(sizing)return`For stor: forventede ${origin??"value"} ${sizing.verb} ${adj} ${issue.maximum.toString()} ${sizing.unit??"elementer"}`;return`For stor: forventede ${origin??"value"} havde ${adj} ${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);const origin=TypeDictionary[issue.origin]??issue.origin;if(sizing){return`For lille: forventede ${origin} ${sizing.verb} ${adj} ${issue.minimum.toString()} ${sizing.unit}`}return`For lille: forventede ${origin} havde ${adj} ${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Ugyldig streng: skal starte med "${_issue.prefix}"`;if(_issue.format==="ends_with")return`Ugyldig streng: skal ende med "${_issue.suffix}"`;if(_issue.format==="includes")return`Ugyldig streng: skal indeholde "${_issue.includes}"`;if(_issue.format==="regex")return`Ugyldig streng: skal matche mønsteret ${_issue.pattern}`;return`Ugyldig ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Ugyldigt tal: skal være deleligt med ${issue.divisor}`;case"unrecognized_keys":return`${issue.keys.length>1?"Ukendte nøgler":"Ukendt nøgle"}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Ugyldig nøgle i ${issue.origin}`;case"invalid_union":return"Ugyldigt input: matcher ingen af de tilladte typer";case"invalid_element":return`Ugyldig værdi i ${issue.origin}`;default:return`Ugyldigt input`}}};function da_default(){return{localeError:error9()}}var error10=()=>{const Sizable={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"},map:{unit:"Elemente",verb:"zu haben"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",mac:"MAC-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",credit_card:"Kreditkartennummer",currency_code:"Währungscode",iban:"IBAN",jwt:"JWT",template_literal:"Eingabe"};const TypeDictionary={nan:"NaN",number:"Zahl",array:"Array"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Ungültige Eingabe: erwartet instanceof ${issue.expected}, erhalten ${received}`}return`Ungültige Eingabe: erwartet ${expected}, erhalten ${received}`}case"invalid_value":if(issue.values.length===1)return`Ungültige Eingabe: erwartet ${stringifyPrimitive(issue.values[0])}`;return`Ungültige Option: erwartet eine von ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Zu groß: erwartet, dass ${issue.origin??"Wert"} ${adj}${issue.maximum.toString()} ${sizing.unit??"Elemente"} hat`;return`Zu groß: erwartet, dass ${issue.origin??"Wert"} ${adj}${issue.maximum.toString()} ist`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} hat`}return`Zu klein: erwartet, dass ${issue.origin} ${adj}${issue.minimum.toString()} ist`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Ungültiger String: muss mit "${_issue.prefix}" beginnen`;if(_issue.format==="ends_with")return`Ungültiger String: muss mit "${_issue.suffix}" enden`;if(_issue.format==="includes")return`Ungültiger String: muss "${_issue.includes}" enthalten`;if(_issue.format==="regex")return`Ungültiger String: muss dem Muster ${_issue.pattern} entsprechen`;return`Ungültig: ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Ungültige Zahl: muss ein Vielfaches von ${issue.divisor} sein`;case"unrecognized_keys":return`${issue.keys.length>1?"Unbekannte Schlüssel":"Unbekannter Schlüssel"}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Ungültiger Schlüssel in ${issue.origin}`;case"invalid_union":return"Ungültige Eingabe";case"invalid_element":return`Ungültiger Wert in ${issue.origin}`;default:return`Ungültige Eingabe`}}};function de_default(){return{localeError:error10()}}var error11=()=>{const Sizable={string:{unit:"χαρακτήρες",verb:"να έχει"},file:{unit:"bytes",verb:"να έχει"},array:{unit:"στοιχεία",verb:"να έχει"},set:{unit:"στοιχεία",verb:"να έχει"},map:{unit:"καταχωρήσεις",verb:"να έχει"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"είσοδος",email:"διεύθυνση email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO ημερομηνία και ώρα",date:"ISO ημερομηνία",time:"ISO ώρα",duration:"ISO διάρκεια",ipv4:"διεύθυνση IPv4",ipv6:"διεύθυνση IPv6",mac:"διεύθυνση MAC",cidrv4:"εύρος IPv4",cidrv6:"εύρος IPv6",base64:"συμβολοσειρά κωδικοποιημένη σε base64",base64url:"συμβολοσειρά κωδικοποιημένη σε base64url",json_string:"συμβολοσειρά JSON",e164:"αριθμός E.164",credit_card:"αριθμός πιστωτικής κάρτας",currency_code:"κωδικός νομίσματος",iban:"IBAN",jwt:"JWT",template_literal:"είσοδος"};const TypeDictionary={nan:"NaN"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(typeof issue.expected==="string"&&/^[A-Z]/.test(issue.expected)){return`Μη έγκυρη είσοδος: αναμενόταν instanceof ${issue.expected}, λήφθηκε ${received}`}return`Μη έγκυρη είσοδος: αναμενόταν ${expected}, λήφθηκε ${received}`}case"invalid_value":if(issue.values.length===1)return`Μη έγκυρη είσοδος: αναμενόταν ${stringifyPrimitive(issue.values[0])}`;return`Μη έγκυρη επιλογή: αναμενόταν ένα από ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Πολύ μεγάλο: αναμενόταν ${issue.origin??"τιμή"} να έχει ${adj}${issue.maximum.toString()} ${sizing.unit??"στοιχεία"}`;return`Πολύ μεγάλο: αναμενόταν ${issue.origin??"τιμή"} να είναι ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Πολύ μικρό: αναμενόταν ${issue.origin} να έχει ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`Πολύ μικρό: αναμενόταν ${issue.origin} να είναι ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`Μη έγκυρη συμβολοσειρά: πρέπει να ξεκινά με "${_issue.prefix}"`}if(_issue.format==="ends_with")return`Μη έγκυρη συμβολοσειρά: πρέπει να τελειώνει με "${_issue.suffix}"`;if(_issue.format==="includes")return`Μη έγκυρη συμβολοσειρά: πρέπει να περιέχει "${_issue.includes}"`;if(_issue.format==="regex")return`Μη έγκυρη συμβολοσειρά: πρέπει να ταιριάζει με το μοτίβο ${_issue.pattern}`;return`Μη έγκυρο: ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Μη έγκυρος αριθμός: πρέπει να είναι πολλαπλάσιο του ${issue.divisor}`;case"unrecognized_keys":return`Άγνωστ${issue.keys.length>1?"α":"ο"} κλειδ${issue.keys.length>1?"ιά":"ί"}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Μη έγκυρο κλειδί στο ${issue.origin}`;case"invalid_union":return"Μη έγκυρη είσοδος";case"invalid_element":return`Μη έγκυρη τιμή στο ${issue.origin}`;default:return`Μη έγκυρη είσοδος`}}};function el_default(){return{localeError:error11()}}var error12=()=>{const Sizable={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",currency_code:"currency code",credit_card:"credit card number",iban:"IBAN",jwt:"JWT",template_literal:"input"};const TypeDictionary={nan:"NaN"};function getTypeName(type,input){if(type==="number"&&typeof input==="number"&&!Number.isFinite(input)){return String(input)}return TypeDictionary[type]??type}return(issue)=>{switch(issue.code){case"invalid_type":{const expected=getTypeName(issue.expected);const receivedType=parsedType(issue.input);const received=getTypeName(receivedType,issue.input);return`Invalid input: expected ${expected}, received ${received}`}case"invalid_value":if(issue.values.length===1)return`Invalid input: expected ${stringifyPrimitive(issue.values[0])}`;return`Invalid option: expected one of ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.exact?"exactly ":issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Too big: expected ${issue.origin??"value"} to have ${adj}${issue.maximum.toString()} ${sizing.unit??"elements"}`;return`Too big: expected ${issue.origin??"value"} to be ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.exact?"exactly ":issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Too small: expected ${issue.origin} to have ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`Too small: expected ${issue.origin} to be ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`Invalid string: must start with "${_issue.prefix}"`}if(_issue.format==="ends_with")return`Invalid string: must end with "${_issue.suffix}"`;if(_issue.format==="includes")return`Invalid string: must include "${_issue.includes}"`;if(_issue.format==="regex")return`Invalid string: must match pattern ${_issue.pattern}`;return`Invalid ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${issue.divisor}`;case"unrecognized_keys":return`Unrecognized key${issue.keys.length>1?"s":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Invalid key in ${issue.origin}`;case"invalid_union":if(issue.options&&Array.isArray(issue.options)&&issue.options.length>0){const opts=issue.options.map((o)=>`'${o}'`).join(" | ");return`Invalid discriminator value. Expected ${opts}`}if(issue.inclusive===false){return"Invalid input: more than one option matched"}return"Invalid input";case"invalid_element":return`Invalid value in ${issue.origin}`;default:return`Invalid input`}}};function en_default(){return{localeError:error12()}}var error13=()=>{const Sizable={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"},map:{unit:"elementojn",verb:"havi"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"enigo",email:"retadreso",url:"URL",emoji:"emoĝio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-daŭro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",mac:"MAC-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",credit_card:"kreditkarta numero",currency_code:"valuta kodo",iban:"IBAN",jwt:"JWT",template_literal:"enigo"};const TypeDictionary={nan:"NaN",number:"nombro",array:"tabelo",null:"senvalora"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Nevalida enigo: atendiĝis instanceof ${issue.expected}, riceviĝis ${received}`}return`Nevalida enigo: atendiĝis ${expected}, riceviĝis ${received}`}case"invalid_value":if(issue.values.length===1)return`Nevalida enigo: atendiĝis ${stringifyPrimitive(issue.values[0])}`;return`Nevalida opcio: atendiĝis unu el ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Tro granda: atendiĝis ke ${issue.origin??"valoro"} havu ${adj}${issue.maximum.toString()} ${sizing.unit??"elementojn"}`;return`Tro granda: atendiĝis ke ${issue.origin??"valoro"} havu ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Tro malgranda: atendiĝis ke ${issue.origin} havu ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`Tro malgranda: atendiĝis ke ${issue.origin} estu ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Nevalida karaktraro: devas komenciĝi per "${_issue.prefix}"`;if(_issue.format==="ends_with")return`Nevalida karaktraro: devas finiĝi per "${_issue.suffix}"`;if(_issue.format==="includes")return`Nevalida karaktraro: devas inkluzivi "${_issue.includes}"`;if(_issue.format==="regex")return`Nevalida karaktraro: devas kongrui kun la modelo ${_issue.pattern}`;return`Nevalida ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${issue.divisor}`;case"unrecognized_keys":return`Nekonata${issue.keys.length>1?"j":""} ŝlosilo${issue.keys.length>1?"j":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Nevalida ŝlosilo en ${issue.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${issue.origin}`;default:return`Nevalida enigo`}}};function eo_default(){return{localeError:error13()}}var error14=()=>{const Sizable={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"entrada",email:"dirección de correo electrónico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duración ISO",ipv4:"dirección IPv4",ipv6:"dirección IPv6",mac:"dirección MAC",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"número E.164",credit_card:"número de tarjeta de crédito",currency_code:"código de moneda",iban:"IBAN",jwt:"JWT",template_literal:"entrada"};const TypeDictionary={nan:"NaN",string:"texto",number:"número",boolean:"booleano",array:"arreglo",object:"objeto",set:"conjunto",file:"archivo",date:"fecha",bigint:"número grande",symbol:"símbolo",undefined:"indefinido",null:"nulo",function:"función",map:"mapa",record:"registro",tuple:"tupla",enum:"enumeración",union:"unión",literal:"literal",promise:"promesa",void:"vacío",never:"nunca",unknown:"desconocido",any:"cualquiera"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Entrada inválida: se esperaba instanceof ${issue.expected}, recibido ${received}`}return`Entrada inválida: se esperaba ${expected}, recibido ${received}`}case"invalid_value":if(issue.values.length===1)return`Entrada inválida: se esperaba ${stringifyPrimitive(issue.values[0])}`;return`Opción inválida: se esperaba una de ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);const origin=TypeDictionary[issue.origin]??issue.origin;if(sizing)return`Demasiado grande: se esperaba que ${origin??"valor"} tuviera ${adj}${issue.maximum.toString()} ${sizing.unit??"elementos"}`;return`Demasiado grande: se esperaba que ${origin??"valor"} fuera ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);const origin=TypeDictionary[issue.origin]??issue.origin;if(sizing){return`Demasiado pequeño: se esperaba que ${origin} tuviera ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`Demasiado pequeño: se esperaba que ${origin} fuera ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Cadena inválida: debe comenzar con "${_issue.prefix}"`;if(_issue.format==="ends_with")return`Cadena inválida: debe terminar en "${_issue.suffix}"`;if(_issue.format==="includes")return`Cadena inválida: debe incluir "${_issue.includes}"`;if(_issue.format==="regex")return`Cadena inválida: debe coincidir con el patrón ${_issue.pattern}`;return`Inválido ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Número inválido: debe ser múltiplo de ${issue.divisor}`;case"unrecognized_keys":return`Llave${issue.keys.length>1?"s":""} desconocida${issue.keys.length>1?"s":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Llave inválida en ${TypeDictionary[issue.origin]??issue.origin}`;case"invalid_union":return"Entrada inválida";case"invalid_element":return`Valor inválido en ${TypeDictionary[issue.origin]??issue.origin}`;default:return`Entrada inválida`}}};function es_default(){return{localeError:error14()}}var error15=()=>{const Sizable={string:{unit:"کاراکتر",verb:"داشته باشد"},file:{unit:"بایت",verb:"داشته باشد"},array:{unit:"آیتم",verb:"داشته باشد"},set:{unit:"آیتم",verb:"داشته باشد"},map:{unit:"آیتم",verb:"داشته باشد"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"ورودی",email:"آدرس ایمیل",url:"URL",emoji:"ایموجی",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"تاریخ و زمان ایزو",date:"تاریخ ایزو",time:"زمان ایزو",duration:"مدت زمان ایزو",ipv4:"IPv4 آدرس",ipv6:"IPv6 آدرس",mac:"MAC آدرس",cidrv4:"IPv4 دامنه",cidrv6:"IPv6 دامنه",base64:"base64-encoded رشته",base64url:"base64url-encoded رشته",json_string:"JSON رشته",e164:"E.164 عدد",credit_card:"شماره کارت اعتباری",currency_code:"کد ارز",iban:"IBAN",jwt:"JWT",template_literal:"ورودی"};const TypeDictionary={nan:"NaN",number:"عدد",array:"آرایه"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`ورودی نامعتبر: می‌بایست instanceof ${issue.expected} می‌بود، ${received} دریافت شد`}return`ورودی نامعتبر: می‌بایست ${expected} می‌بود، ${received} دریافت شد`}case"invalid_value":if(issue.values.length===1){return`ورودی نامعتبر: می‌بایست ${stringifyPrimitive(issue.values[0])} می‌بود`}return`گزینه نامعتبر: می‌بایست یکی از ${joinValues(issue.values,"|")} می‌بود`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing){return`خیلی بزرگ: ${issue.origin??"مقدار"} باید ${adj}${issue.maximum.toString()} ${sizing.unit??"عنصر"} باشد`}return`خیلی بزرگ: ${issue.origin??"مقدار"} باید ${adj}${issue.maximum.toString()} باشد`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`خیلی کوچک: ${issue.origin} باید ${adj}${issue.minimum.toString()} ${sizing.unit} باشد`}return`خیلی کوچک: ${issue.origin} باید ${adj}${issue.minimum.toString()} باشد`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`رشته نامعتبر: باید با "${_issue.prefix}" شروع شود`}if(_issue.format==="ends_with"){return`رشته نامعتبر: باید با "${_issue.suffix}" تمام شود`}if(_issue.format==="includes"){return`رشته نامعتبر: باید شامل "${_issue.includes}" باشد`}if(_issue.format==="regex"){return`رشته نامعتبر: باید با الگوی ${_issue.pattern} مطابقت داشته باشد`}return`${FormatDictionary[_issue.format]??issue.format} نامعتبر`}case"not_multiple_of":return`عدد نامعتبر: باید مضرب ${issue.divisor} باشد`;case"unrecognized_keys":return`کلید${issue.keys.length>1?"های":""} ناشناس: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`کلید ناشناس در ${issue.origin}`;case"invalid_union":return`ورودی نامعتبر`;case"invalid_element":return`مقدار نامعتبر در ${issue.origin}`;default:return`ورودی نامعتبر`}}};function fa_default(){return{localeError:error15()}}var error16=()=>{const Sizable={string:{unit:"merkkiä",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},map:{unit:"alkiota",subject:"kuvauksen"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"päivämäärän"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"säännöllinen lauseke",email:"sähköpostiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-päivämäärä",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",mac:"MAC-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",credit_card:"luottokortin numero",currency_code:"valuuttakoodi",iban:"IBAN",jwt:"JWT",template_literal:"templaattimerkkijono"};const TypeDictionary={nan:"NaN"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Virheellinen tyyppi: odotettiin instanceof ${issue.expected}, oli ${received}`}return`Virheellinen tyyppi: odotettiin ${expected}, oli ${received}`}case"invalid_value":if(issue.values.length===1)return`Virheellinen syöte: täytyy olla ${stringifyPrimitive(issue.values[0])}`;return`Virheellinen valinta: täytyy olla yksi seuraavista: ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing){return`Liian suuri: ${sizing.subject} täytyy olla ${adj}${issue.maximum.toString()} ${sizing.unit}`.trim()}return`Liian suuri: arvon täytyy olla ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Liian pieni: ${sizing.subject} täytyy olla ${adj}${issue.minimum.toString()} ${sizing.unit}`.trim()}return`Liian pieni: arvon täytyy olla ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Virheellinen syöte: täytyy alkaa "${_issue.prefix}"`;if(_issue.format==="ends_with")return`Virheellinen syöte: täytyy loppua "${_issue.suffix}"`;if(_issue.format==="includes")return`Virheellinen syöte: täytyy sisältää "${_issue.includes}"`;if(_issue.format==="regex"){return`Virheellinen syöte: täytyy vastata säännöllistä lauseketta ${_issue.pattern}`}return`Virheellinen ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Virheellinen luku: täytyy olla luvun ${issue.divisor} monikerta`;case"unrecognized_keys":return`${issue.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return`Virheellinen syöte`}}};function fi_default(){return{localeError:error16()}}var error17=()=>{const Sizable={string:{unit:"caractères",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"éléments",verb:"avoir"},set:{unit:"éléments",verb:"avoir"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"expression régulière",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"durée ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",mac:"adresse MAC",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"chaîne de caractères encodée en base64",base64url:"chaîne de caractères encodée en base64url",json_string:"chaîne de caractères JSON",e164:"numéro au format E.164",credit_card:"numéro de carte de crédit",currency_code:"code de devise",iban:"IBAN",jwt:"JWT",template_literal:"entrée"};const TypeDictionary={string:"chaîne de caractères",number:"nombre",int:"entier",boolean:"booléen",bigint:"grand entier",symbol:"symbole",undefined:"indéfini",null:"null",never:"jamais",void:"vide",date:"date",array:"tableau",object:"objet",tuple:"tuple",record:"record",map:"map",set:"ensemble",file:"fichier",nonoptional:"non optionnel",nan:"NaN",function:"fonction"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Entrée invalide : instance de ${issue.expected} attendu, ${received} reçu`}return`Entrée invalide : ${expected} attendu, ${received} reçu`}case"invalid_value":if(issue.values.length===1)return`Entrée invalide : ${stringifyPrimitive(issue.values[0])} attendu`;return`Option invalide : une valeur parmi ${joinValues(issue.values,"|")} attendue`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Trop grand : ${TypeDictionary[issue.origin]??"valeur"} doit ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit??"élément(s)"}`;return`Trop grand : ${TypeDictionary[issue.origin]??"valeur"} doit être ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing)return`Trop petit : ${TypeDictionary[issue.origin]??"valeur"} doit ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`;return`Trop petit : ${TypeDictionary[issue.origin]??"valeur"} doit être ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Chaîne de caractères invalide : doit commencer par "${_issue.prefix}"`;if(_issue.format==="ends_with")return`Chaîne de caractères invalide : doit se terminer par "${_issue.suffix}"`;if(_issue.format==="includes")return`Chaîne de caractères invalide : doit inclure "${_issue.includes}"`;if(_issue.format==="regex")return`Chaîne de caractères invalide : doit correspondre au motif ${_issue.pattern}`;return`${FormatDictionary[_issue.format]??issue.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit être un multiple de ${issue.divisor}`;case"unrecognized_keys":return`Clé${issue.keys.length>1?"s":""} non reconnue${issue.keys.length>1?"s":""} : ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Clé invalide dans ${issue.origin}`;case"invalid_union":return"Entrée invalide";case"invalid_element":return`Valeur invalide dans ${issue.origin}`;default:return`Entrée invalide`}}};function fr_default(){return{localeError:error17()}}var error18=()=>{const Sizable={string:{unit:"caractères",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"éléments",verb:"avoir"},set:{unit:"éléments",verb:"avoir"},map:{unit:"éléments",verb:"avoir"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"entrée",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"durée ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",mac:"adresse MAC",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"chaîne encodée en base64",base64url:"chaîne encodée en base64url",json_string:"chaîne JSON",e164:"numéro E.164",credit_card:"numéro de carte de crédit",currency_code:"code de devise",iban:"IBAN",jwt:"JWT",template_literal:"entrée"};const TypeDictionary={nan:"NaN"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Entrée invalide : attendu instanceof ${issue.expected}, reçu ${received}`}return`Entrée invalide : attendu ${expected}, reçu ${received}`}case"invalid_value":if(issue.values.length===1)return`Entrée invalide : attendu ${stringifyPrimitive(issue.values[0])}`;return`Option invalide : attendu l'une des valeurs suivantes ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"≤":"<";const sizing=getSizing(issue.origin);if(sizing)return`Trop grand : attendu que ${issue.origin??"la valeur"} ait ${adj}${issue.maximum.toString()} ${sizing.unit}`;return`Trop grand : attendu que ${issue.origin??"la valeur"} soit ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?"≥":">";const sizing=getSizing(issue.origin);if(sizing){return`Trop petit : attendu que ${issue.origin} ait ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`Trop petit : attendu que ${issue.origin} soit ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`Chaîne invalide : doit commencer par "${_issue.prefix}"`}if(_issue.format==="ends_with")return`Chaîne invalide : doit se terminer par "${_issue.suffix}"`;if(_issue.format==="includes")return`Chaîne invalide : doit inclure "${_issue.includes}"`;if(_issue.format==="regex")return`Chaîne invalide : doit correspondre au motif ${_issue.pattern}`;return`${FormatDictionary[_issue.format]??issue.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit être un multiple de ${issue.divisor}`;case"unrecognized_keys":return`Clé${issue.keys.length>1?"s":""} non reconnue${issue.keys.length>1?"s":""} : ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Clé invalide dans ${issue.origin}`;case"invalid_union":return"Entrée invalide";case"invalid_element":return`Valeur invalide dans ${issue.origin}`;default:return`Entrée invalide`}}};function fr_CA_default(){return{localeError:error18()}}var error19=()=>{const Sizable={string:{unit:"અક્ષર",verb:"હોવા જોઈએ"},file:{unit:"બાયટ",verb:"હોવા જોઈએ"},array:{unit:"આઇટમ",verb:"હોવા જોઈએ"},set:{unit:"આઇટમ",verb:"હોવા જોઈએ"},map:{unit:"એન્ટ્રી",verb:"હોવા જોઈએ"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"ઇનપુટ",email:"ઈમેઇલ એડ્રેસ",url:"URL",emoji:"ઇમોજી",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO તારીખ અને સમય",date:"ISO તારીખ",time:"ISO સમય",duration:"ISO અવધિ",ipv4:"IPv4 એડ્રેસ",ipv6:"IPv6 એડ્રેસ",mac:"MAC એડ્રેસ",cidrv4:"IPv4 શ્રેણી",cidrv6:"IPv6 શ્રેણી",base64:"base64-એન્કોડેડ સ્ટ્રિંગ",base64url:"base64url-એન્કોડેડ સ્ટ્રિંગ",json_string:"JSON સ્ટ્રિંગ",e164:"E.164 નંબર",credit_card:"ક્રેડિટ કાર્ડ નંબર",currency_code:"ચલણ કોડ",iban:"IBAN",jwt:"JWT",template_literal:"ઇનપુટ"};const TypeDictionary={nan:"NaN"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;return`અમાન્ય ઇનપુટ: અપેક્ષિત ${expected}, પ્રાપ્ત ${received}`}case"invalid_value":if(issue.values.length===1)return`અમાન્ય ઇનપુટ: અપેક્ષિત ${stringifyPrimitive(issue.values[0])}`;return`અમાન્ય વિકલ્પ: ${joinValues(issue.values," | ")} માધ્યમથી એક અપેક્ષિત`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`ખૂબ મોટું: ${issue.origin??"મૂલ્ય"} ${adj}${issue.maximum.toString()} ${sizing.unit??"એલિમેન્ટ"} હોવા જોઈએ`;return`ખૂબ મોટું: ${issue.origin??"મૂલ્ય"} ${adj}${issue.maximum.toString()} હોવું જોઈએ`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`ખૂબ નાનું: ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} હોવા જોઈએ`}return`ખૂબ નાનું: ${issue.origin} ${adj}${issue.minimum.toString()} હોવું જોઈએ`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`અમાન્ય સ્ટ્રિંગ: "${_issue.prefix}" થી શરૂ થવું જોઈએ`}if(_issue.format==="ends_with")return`અમાન્ય સ્ટ્રિંગ: "${_issue.suffix}" પર સમાપ્ત થવું જોઈએ`;if(_issue.format==="includes")return`અમાન્ય સ્ટ્રિંગ: "${_issue.includes}" શામેલ હોવું જોઈએ`;if(_issue.format==="regex")return`અમાન્ય સ્ટ્રિંગ: પેટર્ન ${_issue.pattern} સાથે મેળ ખાવું જોઈએ`;return`અમાન્ય ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`અમાન્ય નંબર: ${issue.divisor} નો ગુણાંક હોવો જોઈએ`;case"unrecognized_keys":return`ઓળખી શકાતા નહીં તે કી${issue.keys.length>1?"ઓ":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`${issue.origin} માં અમાન્ય કી`;case"invalid_union":if(issue.options&&Array.isArray(issue.options)&&issue.options.length>0){const opts=issue.options.map((o)=>`'${o}'`).join(" | ");return`અમાન્ય ડિસ્ક્રિમિનેટર મૂલ્ય. અપેક્ષિત ${opts}`}return"અમાન્ય ઇનપુટ";case"invalid_element":return`${issue.origin} માં અમાન્ય મૂલ્ય`;default:return"અમાન્ય ઇનપુટ"}}};function gu_default(){return{localeError:error19()}}var error20=()=>{const TypeNames={string:{label:"מחרוזת",gender:"f"},number:{label:"מספר",gender:"m"},boolean:{label:"ערך בוליאני",gender:"m"},bigint:{label:"BigInt",gender:"m"},date:{label:"תאריך",gender:"m"},array:{label:"מערך",gender:"m"},object:{label:"אובייקט",gender:"m"},null:{label:"ערך ריק (null)",gender:"m"},undefined:{label:"ערך לא מוגדר (undefined)",gender:"m"},symbol:{label:"סימבול (Symbol)",gender:"m"},function:{label:"פונקציה",gender:"f"},map:{label:"מפה (Map)",gender:"f"},set:{label:"קבוצה (Set)",gender:"f"},file:{label:"קובץ",gender:"m"},promise:{label:"Promise",gender:"m"},NaN:{label:"NaN",gender:"m"},unknown:{label:"ערך לא ידוע",gender:"m"},value:{label:"ערך",gender:"m"}};const Sizable={string:{unit:"תווים",shortLabel:"קצר",longLabel:"ארוך"},file:{unit:"בייטים",shortLabel:"קטן",longLabel:"גדול"},array:{unit:"פריטים",shortLabel:"קטן",longLabel:"גדול"},set:{unit:"פריטים",shortLabel:"קטן",longLabel:"גדול"},number:{unit:"",shortLabel:"קטן",longLabel:"גדול"}};const typeEntry=(t)=>t?TypeNames[t]:undefined;const typeLabel=(t)=>{const e=typeEntry(t);if(e)return e.label;return t??TypeNames.unknown.label};const withDefinite=(t)=>`ה${typeLabel(t)}`;const verbFor=(t)=>{const e=typeEntry(t);const gender=e?.gender??"m";return gender==="f"?"צריכה להיות":"צריך להיות"};const getSizing=(origin)=>{if(!origin)return null;return Sizable[origin]??null};const FormatDictionary={regex:{label:"קלט",gender:"m"},email:{label:"כתובת אימייל",gender:"f"},url:{label:"כתובת רשת",gender:"f"},emoji:{label:"אימוג'י",gender:"m"},uuid:{label:"UUID",gender:"m"},uuidv4:{label:"UUIDv4",gender:"m"},uuidv6:{label:"UUIDv6",gender:"m"},nanoid:{label:"nanoid",gender:"m"},guid:{label:"GUID",gender:"m"},cuid:{label:"cuid",gender:"m"},cuid2:{label:"cuid2",gender:"m"},ulid:{label:"ULID",gender:"m"},xid:{label:"XID",gender:"m"},ksuid:{label:"KSUID",gender:"m"},datetime:{label:"תאריך וזמן ISO",gender:"m"},date:{label:"תאריך ISO",gender:"m"},time:{label:"זמן ISO",gender:"m"},duration:{label:"משך זמן ISO",gender:"m"},ipv4:{label:"כתובת IPv4",gender:"f"},ipv6:{label:"כתובת IPv6",gender:"f"},mac:{label:"כתובת MAC",gender:"f"},cidrv4:{label:"טווח IPv4",gender:"m"},cidrv6:{label:"טווח IPv6",gender:"m"},base64:{label:"מחרוזת בבסיס 64",gender:"f"},base64url:{label:"מחרוזת בבסיס 64 לכתובות רשת",gender:"f"},json_string:{label:"מחרוזת JSON",gender:"f"},e164:{label:"מספר E.164",gender:"m"},credit_card:{label:"מספר כרטיס אשראי",gender:"m"},currency_code:{label:"קוד מטבע",gender:"m"},iban:{label:"IBAN",gender:"m"},jwt:{label:"JWT",gender:"m"},template_literal:{label:"קלט",gender:"m"},ends_with:{label:"קלט",gender:"m"},includes:{label:"קלט",gender:"m"},lowercase:{label:"קלט",gender:"m"},starts_with:{label:"קלט",gender:"m"},uppercase:{label:"קלט",gender:"m"}};const TypeDictionary={nan:"NaN"};return(issue)=>{switch(issue.code){case"invalid_type":{const expectedKey=issue.expected;const expected=TypeDictionary[expectedKey??""]??typeLabel(expectedKey);const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??TypeNames[receivedType]?.label??receivedType;if(/^[A-Z]/.test(issue.expected)){return`קלט לא תקין: צריך להיות instanceof ${issue.expected}, התקבל ${received}`}return`קלט לא תקין: צריך להיות ${expected}, התקבל ${received}`}case"invalid_value":{if(issue.values.length===1){return`ערך לא תקין: הערך חייב להיות ${stringifyPrimitive(issue.values[0])}`}const stringified=issue.values.map((v)=>stringifyPrimitive(v));if(issue.values.length===2){return`ערך לא תקין: האפשרויות המתאימות הן ${stringified[0]} או ${stringified[1]}`}const lastValue=stringified[stringified.length-1];const restValues=stringified.slice(0,-1).join(", ");return`ערך לא תקין: האפשרויות המתאימות הן ${restValues} או ${lastValue}`}case"too_big":{const sizing=getSizing(issue.origin);const subject=withDefinite(issue.origin??"value");if(issue.origin==="string"){return`${sizing?.longLabel??"ארוך"} מדי: ${subject} צריכה להכיל ${issue.maximum.toString()} ${sizing?.unit??""} ${issue.inclusive?"או פחות":"לכל היותר"}`.trim()}if(issue.origin==="number"){const comparison=issue.inclusive?`קטן או שווה ל-${issue.maximum}`:`קטן מ-${issue.maximum}`;return`גדול מדי: ${subject} צריך להיות ${comparison}`}if(issue.origin==="array"||issue.origin==="set"){const verb=issue.origin==="set"?"צריכה":"צריך";const comparison=issue.inclusive?`${issue.maximum} ${sizing?.unit??""} או פחות`:`פחות מ-${issue.maximum} ${sizing?.unit??""}`;return`גדול מדי: ${subject} ${verb} להכיל ${comparison}`.trim()}const adj=issue.inclusive?"<=":"<";const be=verbFor(issue.origin??"value");if(sizing?.unit){return`${sizing.longLabel} מדי: ${subject} ${be} ${adj}${issue.maximum.toString()} ${sizing.unit}`}return`${sizing?.longLabel??"גדול"} מדי: ${subject} ${be} ${adj}${issue.maximum.toString()}`}case"too_small":{const sizing=getSizing(issue.origin);const subject=withDefinite(issue.origin??"value");if(issue.origin==="string"){return`${sizing?.shortLabel??"קצר"} מדי: ${subject} צריכה להכיל ${issue.minimum.toString()} ${sizing?.unit??""} ${issue.inclusive?"או יותר":"לפחות"}`.trim()}if(issue.origin==="number"){const comparison=issue.inclusive?`גדול או שווה ל-${issue.minimum}`:`גדול מ-${issue.minimum}`;return`קטן מדי: ${subject} צריך להיות ${comparison}`}if(issue.origin==="array"||issue.origin==="set"){const verb=issue.origin==="set"?"צריכה":"צריך";if(issue.minimum===1&&issue.inclusive){const singularPhrase=issue.origin==="set"?"לפחות פריט אחד":"לפחות פריט אחד";return`קטן מדי: ${subject} ${verb} להכיל ${singularPhrase}`}const comparison=issue.inclusive?`${issue.minimum} ${sizing?.unit??""} או יותר`:`יותר מ-${issue.minimum} ${sizing?.unit??""}`;return`קטן מדי: ${subject} ${verb} להכיל ${comparison}`.trim()}const adj=issue.inclusive?">=":">";const be=verbFor(issue.origin??"value");if(sizing?.unit){return`${sizing.shortLabel} מדי: ${subject} ${be} ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`${sizing?.shortLabel??"קטן"} מדי: ${subject} ${be} ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`המחרוזת חייבת להתחיל ב "${_issue.prefix}"`;if(_issue.format==="ends_with")return`המחרוזת חייבת להסתיים ב "${_issue.suffix}"`;if(_issue.format==="includes")return`המחרוזת חייבת לכלול "${_issue.includes}"`;if(_issue.format==="regex")return`המחרוזת חייבת להתאים לתבנית ${_issue.pattern}`;const nounEntry=FormatDictionary[_issue.format];const noun=nounEntry?.label??_issue.format;const gender=nounEntry?.gender??"m";const adjective=gender==="f"?"תקינה":"תקין";return`${noun} לא ${adjective}`}case"not_multiple_of":return`מספר לא תקין: חייב להיות מכפלה של ${issue.divisor}`;case"unrecognized_keys":return`מפתח${issue.keys.length>1?"ות":""} לא מזוה${issue.keys.length>1?"ים":"ה"}: ${joinValues(issue.keys,", ")}`;case"invalid_key":{return`שדה לא תקין באובייקט`}case"invalid_union":return"קלט לא תקין";case"invalid_element":{const place=withDefinite(issue.origin??"array");return`ערך לא תקין ב${place}`}default:return`קלט לא תקין`}}};function he_default(){return{localeError:error20()}}var error21=()=>{const Sizable={string:{unit:"अक्षर",verb:"रखने के लिए"},file:{unit:"बाइट्स",verb:"रखने के लिए"},array:{unit:"तत्व",verb:"रखने के लिए"},set:{unit:"तत्व",verb:"रखने के लिए"},map:{unit:"प्रविष्टियाँ",verb:"रखने के लिए"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"इनपुट",email:"ईमेल पता",url:"URL",emoji:"इमोजी",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO तिथि और समय",date:"ISO तिथि",time:"ISO समय",duration:"ISO अवधि",ipv4:"IPv4 पता",ipv6:"IPv6 पता",mac:"MAC पता",cidrv4:"IPv4 श्रेणी",cidrv6:"IPv6 श्रेणी",base64:"Base64-एन्कोडेड स्ट्रिंग",base64url:"Base64URL-एन्कोडेड स्ट्रिंग",json_string:"JSON स्ट्रिंग",e164:"E.164 संख्या",credit_card:"क्रेडिट कार्ड संख्या",currency_code:"मुद्रा कोड",iban:"IBAN",jwt:"JWT",template_literal:"इनपुट"};const TypeDictionary={nan:"NaN"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;return`अमान्य इनपुट: अपेक्षित ${expected}, प्राप्त ${received}`}case"invalid_value":if(issue.values.length===1)return`अमान्य इनपुट: अपेक्षित ${stringifyPrimitive(issue.values[0])}`;return`अमान्य विकल्प: अपेक्षित मानों में से एक ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`बहुत बड़ा: अपेक्षित था कि ${issue.origin??"मान"} में ${adj}${issue.maximum} ${sizing.unit} हों`;return`बहुत बड़ा: अपेक्षित था कि ${issue.origin??"मान"} ${adj}${issue.maximum} हो`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing)return`बहुत छोटा: अपेक्षित था कि ${issue.origin} में ${adj}${issue.minimum} ${sizing.unit} हों`;return`बहुत छोटा: अपेक्षित था कि ${issue.origin} ${adj}${issue.minimum} हो`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`अमान्य स्ट्रिंग: "${_issue.prefix}" से शुरू होना चाहिए`;if(_issue.format==="ends_with")return`अमान्य स्ट्रिंग: "${_issue.suffix}" पर समाप्त होना चाहिए`;if(_issue.format==="includes")return`अमान्य स्ट्रिंग: इसमें "${_issue.includes}" शामिल होना चाहिए`;if(_issue.format==="regex")return`अमान्य स्ट्रिंग: पैटर्न ${_issue.pattern} से मेल खाना चाहिए`;return`अमान्य ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`अमान्य संख्या: यह ${issue.divisor} का गुणज होना चाहिए`;case"unrecognized_keys":return`अपरिचित कुंजी${issue.keys.length>1?"याँ":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`अमान्य कुंजी: ${issue.origin} में`;case"invalid_union":if(issue.options&&Array.isArray(issue.options)&&issue.options.length>0){const opts=issue.options.map((o)=>`'${o}'`).join(" | ");return`अमान्य डिस्क्रिमिनेटर मान: अपेक्षित ${opts}`}return"अमान्य इनपुट";case"invalid_element":return`अमान्य मान: ${issue.origin} में`;default:return`अमान्य इनपुट`}}};function hi_default(){return{localeError:error21()}}var error22=()=>{const Sizable={string:{unit:"znakova",verb:"imati"},file:{unit:"bajtova",verb:"imati"},array:{unit:"stavki",verb:"imati"},set:{unit:"stavki",verb:"imati"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"unos",email:"email adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum i vrijeme",date:"ISO datum",time:"ISO vrijeme",duration:"ISO trajanje",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",mac:"MAC adresa",cidrv4:"IPv4 raspon",cidrv6:"IPv6 raspon",base64:"base64 kodirani tekst",base64url:"base64url kodirani tekst",json_string:"JSON tekst",e164:"E.164 broj",credit_card:"broj kreditne kartice",currency_code:"kod valute",iban:"IBAN",jwt:"JWT",template_literal:"unos"};const TypeDictionary={nan:"NaN",string:"tekst",number:"broj",boolean:"boolean",array:"niz",object:"objekt",set:"skup",file:"datoteka",date:"datum",bigint:"bigint",symbol:"simbol",undefined:"undefined",null:"null",function:"funkcija",map:"mapa"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Neispravan unos: očekuje se instanceof ${issue.expected}, a primljeno je ${received}`}return`Neispravan unos: očekuje se ${expected}, a primljeno je ${received}`}case"invalid_value":if(issue.values.length===1)return`Neispravna vrijednost: očekivano ${stringifyPrimitive(issue.values[0])}`;return`Neispravna opcija: očekivano jedno od ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);const origin=TypeDictionary[issue.origin]??issue.origin;if(sizing)return`Preveliko: očekivano da ${origin??"vrijednost"} ima ${adj}${issue.maximum.toString()} ${sizing.unit??"elemenata"}`;return`Preveliko: očekivano da ${origin??"vrijednost"} bude ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);const origin=TypeDictionary[issue.origin]??issue.origin;if(sizing){return`Premalo: očekivano da ${origin} ima ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`Premalo: očekivano da ${origin} bude ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Neispravan tekst: mora započinjati s "${_issue.prefix}"`;if(_issue.format==="ends_with")return`Neispravan tekst: mora završavati s "${_issue.suffix}"`;if(_issue.format==="includes")return`Neispravan tekst: mora sadržavati "${_issue.includes}"`;if(_issue.format==="regex")return`Neispravan tekst: mora odgovarati uzorku ${_issue.pattern}`;return`Neispravna ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Neispravan broj: mora biti višekratnik od ${issue.divisor}`;case"unrecognized_keys":return`Neprepoznat${issue.keys.length>1?"i ključevi":" ključ"}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Neispravan ključ u ${TypeDictionary[issue.origin]??issue.origin}`;case"invalid_union":return"Neispravan unos";case"invalid_element":return`Neispravna vrijednost u ${TypeDictionary[issue.origin]??issue.origin}`;default:return`Neispravan unos`}}};function hr_default(){return{localeError:error22()}}var error23=()=>{const Sizable={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"},map:{unit:"elem",verb:"legyen"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"bemenet",email:"email cím",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO időbélyeg",date:"ISO dátum",time:"ISO idő",duration:"ISO időintervallum",ipv4:"IPv4 cím",ipv6:"IPv6 cím",mac:"MAC cím",cidrv4:"IPv4 tartomány",cidrv6:"IPv6 tartomány",base64:"base64-kódolt string",base64url:"base64url-kódolt string",json_string:"JSON string",e164:"E.164 szám",credit_card:"hitelkártyaszám",currency_code:"pénznemkód",iban:"IBAN",jwt:"JWT",template_literal:"bemenet"};const TypeDictionary={nan:"NaN",number:"szám",array:"tömb"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Érvénytelen bemenet: a várt érték instanceof ${issue.expected}, a kapott érték ${received}`}return`Érvénytelen bemenet: a várt érték ${expected}, a kapott érték ${received}`}case"invalid_value":if(issue.values.length===1)return`Érvénytelen bemenet: a várt érték ${stringifyPrimitive(issue.values[0])}`;return`Érvénytelen opció: valamelyik érték várt ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Túl nagy: ${issue.origin??"érték"} mérete túl nagy ${adj}${issue.maximum.toString()} ${sizing.unit??"elem"}`;return`Túl nagy: a bemeneti érték ${issue.origin??"érték"} túl nagy: ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Túl kicsi: a bemeneti érték ${issue.origin} mérete túl kicsi ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`Túl kicsi: a bemeneti érték ${issue.origin} túl kicsi ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Érvénytelen string: "${_issue.prefix}" értékkel kell kezdődnie`;if(_issue.format==="ends_with")return`Érvénytelen string: "${_issue.suffix}" értékkel kell végződnie`;if(_issue.format==="includes")return`Érvénytelen string: "${_issue.includes}" értéket kell tartalmaznia`;if(_issue.format==="regex")return`Érvénytelen string: ${_issue.pattern} mintának kell megfelelnie`;return`Érvénytelen ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Érvénytelen szám: ${issue.divisor} többszörösének kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${issue.keys.length>1?"s":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Érvénytelen kulcs ${issue.origin}`;case"invalid_union":return"Érvénytelen bemenet";case"invalid_element":return`Érvénytelen érték: ${issue.origin}`;default:return`Érvénytelen bemenet`}}};function hu_default(){return{localeError:error23()}}function getArmenianPlural(count,one,many){return Math.abs(count)===1?one:many}function withDefiniteArticle(word){if(!word)return"";const vowels=["ա","ե","ը","ի","ո","ու","օ"];const lastChar=word[word.length-1];return word+(vowels.includes(lastChar)?"ն":"ը")}var error24=()=>{const Sizable={string:{unit:{one:"նշան",many:"նշաններ"},verb:"ունենալ"},file:{unit:{one:"բայթ",many:"բայթեր"},verb:"ունենալ"},array:{unit:{one:"տարր",many:"տարրեր"},verb:"ունենալ"},set:{unit:{one:"տարր",many:"տարրեր"},verb:"ունենալ"},map:{unit:{one:"տարր",many:"տարրեր"},verb:"ունենալ"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"մուտք",email:"էլ. հասցե",url:"URL",emoji:"էմոջի",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO ամսաթիվ և ժամ",date:"ISO ամսաթիվ",time:"ISO ժամ",duration:"ISO տևողություն",ipv4:"IPv4 հասցե",ipv6:"IPv6 հասցե",mac:"MAC հասցե",cidrv4:"IPv4 միջակայք",cidrv6:"IPv6 միջակայք",base64:"base64 ձևաչափով տող",base64url:"base64url ձևաչափով տող",json_string:"JSON տող",e164:"E.164 համար",credit_card:"կրեդիտ քարտի համար",currency_code:"արժույթի կոդ",iban:"IBAN",jwt:"JWT",template_literal:"մուտք"};const TypeDictionary={nan:"NaN",number:"թիվ",array:"զանգված"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Սխալ մուտքագրում․ սպասվում էր instanceof ${issue.expected}, ստացվել է ${received}`}return`Սխալ մուտքագրում․ սպասվում էր ${expected}, ստացվել է ${received}`}case"invalid_value":if(issue.values.length===1)return`Սխալ մուտքագրում․ սպասվում էր ${stringifyPrimitive(issue.values[1])}`;return`Սխալ տարբերակ․ սպասվում էր հետևյալներից մեկը՝ ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing){const maxValue=Number(issue.maximum);const unit=getArmenianPlural(maxValue,sizing.unit.one,sizing.unit.many);return`Չափազանց մեծ արժեք․ սպասվում է, որ ${withDefiniteArticle(issue.origin??"արժեք")} կունենա ${adj}${issue.maximum.toString()} ${unit}`}return`Չափազանց մեծ արժեք․ սպասվում է, որ ${withDefiniteArticle(issue.origin??"արժեք")} լինի ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){const minValue=Number(issue.minimum);const unit=getArmenianPlural(minValue,sizing.unit.one,sizing.unit.many);return`Չափազանց փոքր արժեք․ սպասվում է, որ ${withDefiniteArticle(issue.origin)} կունենա ${adj}${issue.minimum.toString()} ${unit}`}return`Չափազանց փոքր արժեք․ սպասվում է, որ ${withDefiniteArticle(issue.origin)} լինի ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Սխալ տող․ պետք է սկսվի "${_issue.prefix}"-ով`;if(_issue.format==="ends_with")return`Սխալ տող․ պետք է ավարտվի "${_issue.suffix}"-ով`;if(_issue.format==="includes")return`Սխալ տող․ պետք է պարունակի "${_issue.includes}"`;if(_issue.format==="regex")return`Սխալ տող․ պետք է համապատասխանի ${_issue.pattern} ձևաչափին`;return`Սխալ ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Սխալ թիվ․ պետք է բազմապատիկ լինի ${issue.divisor}-ի`;case"unrecognized_keys":return`Չճանաչված բանալի${issue.keys.length>1?"ներ":""}. ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Սխալ բանալի ${withDefiniteArticle(issue.origin)}-ում`;case"invalid_union":return"Սխալ մուտքագրում";case"invalid_element":return`Սխալ արժեք ${withDefiniteArticle(issue.origin)}-ում`;default:return`Սխալ մուտքագրում`}}};function hy_default(){return{localeError:error24()}}var error25=()=>{const Sizable={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"},map:{unit:"item",verb:"memiliki"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",mac:"alamat MAC",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",credit_card:"nomor kartu kredit",currency_code:"kode mata uang",iban:"IBAN",jwt:"JWT",template_literal:"input"};const TypeDictionary={nan:"NaN"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Input tidak valid: diharapkan instanceof ${issue.expected}, diterima ${received}`}return`Input tidak valid: diharapkan ${expected}, diterima ${received}`}case"invalid_value":if(issue.values.length===1)return`Input tidak valid: diharapkan ${stringifyPrimitive(issue.values[0])}`;return`Pilihan tidak valid: diharapkan salah satu dari ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Terlalu besar: diharapkan ${issue.origin??"value"} memiliki ${adj}${issue.maximum.toString()} ${sizing.unit??"elemen"}`;return`Terlalu besar: diharapkan ${issue.origin??"value"} menjadi ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Terlalu kecil: diharapkan ${issue.origin} memiliki ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`Terlalu kecil: diharapkan ${issue.origin} menjadi ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`String tidak valid: harus dimulai dengan "${_issue.prefix}"`;if(_issue.format==="ends_with")return`String tidak valid: harus berakhir dengan "${_issue.suffix}"`;if(_issue.format==="includes")return`String tidak valid: harus menyertakan "${_issue.includes}"`;if(_issue.format==="regex")return`String tidak valid: harus sesuai pola ${_issue.pattern}`;return`${FormatDictionary[_issue.format]??issue.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${issue.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${issue.keys.length>1?"s":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${issue.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${issue.origin}`;default:return`Input tidak valid`}}};function id_default(){return{localeError:error25()}}var error26=()=>{const Sizable={string:{unit:"stafi",verb:"að hafa"},file:{unit:"bæti",verb:"að hafa"},array:{unit:"hluti",verb:"að hafa"},set:{unit:"hluti",verb:"að hafa"},map:{unit:"hluti",verb:"að hafa"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"gildi",email:"netfang",url:"vefslóð",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dagsetning og tími",date:"ISO dagsetning",time:"ISO tími",duration:"ISO tímalengd",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded strengur",base64url:"base64url-encoded strengur",json_string:"JSON strengur",e164:"E.164 tölugildi",credit_card:"kreditkortanúmer",currency_code:"gjaldmiðilskóði",iban:"IBAN",jwt:"JWT",template_literal:"gildi"};const TypeDictionary={nan:"NaN",number:"númer",array:"fylki"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Rangt gildi: Þú slóst inn ${received} þar sem á að vera instanceof ${issue.expected}`}return`Rangt gildi: Þú slóst inn ${received} þar sem á að vera ${expected}`}case"invalid_value":if(issue.values.length===1)return`Rangt gildi: gert ráð fyrir ${stringifyPrimitive(issue.values[0])}`;return`Ógilt val: má vera eitt af eftirfarandi ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Of stórt: gert er ráð fyrir að ${issue.origin??"gildi"} hafi ${adj}${issue.maximum.toString()} ${sizing.unit??"hluti"}`;return`Of stórt: gert er ráð fyrir að ${issue.origin??"gildi"} sé ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Of lítið: gert er ráð fyrir að ${issue.origin} hafi ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`Of lítið: gert er ráð fyrir að ${issue.origin} sé ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`Ógildur strengur: verður að byrja á "${_issue.prefix}"`}if(_issue.format==="ends_with")return`Ógildur strengur: verður að enda á "${_issue.suffix}"`;if(_issue.format==="includes")return`Ógildur strengur: verður að innihalda "${_issue.includes}"`;if(_issue.format==="regex")return`Ógildur strengur: verður að fylgja mynstri ${_issue.pattern}`;return`Rangt ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Röng tala: verður að vera margfeldi af ${issue.divisor}`;case"unrecognized_keys":return`Óþekkt ${issue.keys.length>1?"ir lyklar":"ur lykill"}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Rangur lykill í ${issue.origin}`;case"invalid_union":return"Rangt gildi";case"invalid_element":return`Rangt gildi í ${issue.origin}`;default:return`Rangt gildi`}}};function is_default(){return{localeError:error26()}}var error27=()=>{const Sizable={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"},map:{unit:"elementi",verb:"avere"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",mac:"indirizzo MAC",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",credit_card:"numero di carta di credito",currency_code:"codice valuta",iban:"IBAN",jwt:"JWT",template_literal:"input"};const TypeDictionary={nan:"NaN",number:"numero",array:"vettore"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Input non valido: atteso instanceof ${issue.expected}, ricevuto ${received}`}return`Input non valido: atteso ${expected}, ricevuto ${received}`}case"invalid_value":if(issue.values.length===1)return`Input non valido: atteso ${stringifyPrimitive(issue.values[0])}`;return`Opzione non valida: atteso uno tra ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Troppo grande: ${issue.origin??"valore"} deve avere ${adj}${issue.maximum.toString()} ${sizing.unit??"elementi"}`;return`Troppo grande: ${issue.origin??"valore"} deve essere ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Troppo piccolo: ${issue.origin} deve avere ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`Troppo piccolo: ${issue.origin} deve essere ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Stringa non valida: deve iniziare con "${_issue.prefix}"`;if(_issue.format==="ends_with")return`Stringa non valida: deve terminare con "${_issue.suffix}"`;if(_issue.format==="includes")return`Stringa non valida: deve includere "${_issue.includes}"`;if(_issue.format==="regex")return`Stringa non valida: deve corrispondere al pattern ${_issue.pattern}`;return`Input non valido: ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${issue.divisor}`;case"unrecognized_keys":return`Chiav${issue.keys.length>1?"i":"e"} non riconosciut${issue.keys.length>1?"e":"a"}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${issue.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${issue.origin}`;default:return`Input non valido`}}};function it_default(){return{localeError:error27()}}var error28=()=>{const Sizable={string:{unit:"文字",verb:"である"},file:{unit:"バイト",verb:"である"},array:{unit:"要素",verb:"である"},set:{unit:"要素",verb:"である"},map:{unit:"要素",verb:"である"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"入力値",email:"メールアドレス",url:"URL",emoji:"絵文字",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO日時",date:"ISO日付",time:"ISO時刻",duration:"ISO期間",ipv4:"IPv4アドレス",ipv6:"IPv6アドレス",mac:"MACアドレス",cidrv4:"IPv4範囲",cidrv6:"IPv6範囲",base64:"base64エンコード文字列",base64url:"base64urlエンコード文字列",json_string:"JSON文字列",e164:"E.164番号",credit_card:"クレジットカード番号",currency_code:"通貨コード",iban:"IBAN",jwt:"JWT",template_literal:"入力値"};const TypeDictionary={nan:"NaN",number:"数値",array:"配列"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`無効な入力: instanceof ${issue.expected}が期待されましたが、${received}が入力されました`}return`無効な入力: ${expected}が期待されましたが、${received}が入力されました`}case"invalid_value":if(issue.values.length===1)return`無効な入力: ${stringifyPrimitive(issue.values[0])}が期待されました`;return`無効な選択: ${joinValues(issue.values,"、")}のいずれかである必要があります`;case"too_big":{const adj=issue.inclusive?"以下である":"より小さい";const sizing=getSizing(issue.origin);if(sizing)return`大きすぎる値: ${issue.origin??"値"}は${issue.maximum.toString()}${sizing.unit??"要素"}${adj}必要があります`;return`大きすぎる値: ${issue.origin??"値"}は${issue.maximum.toString()}${adj}必要があります`}case"too_small":{const adj=issue.inclusive?"以上である":"より大きい";const sizing=getSizing(issue.origin);if(sizing)return`小さすぎる値: ${issue.origin}は${issue.minimum.toString()}${sizing.unit}${adj}必要があります`;return`小さすぎる値: ${issue.origin}は${issue.minimum.toString()}${adj}必要があります`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`無効な文字列: "${_issue.prefix}"で始まる必要があります`;if(_issue.format==="ends_with")return`無効な文字列: "${_issue.suffix}"で終わる必要があります`;if(_issue.format==="includes")return`無効な文字列: "${_issue.includes}"を含む必要があります`;if(_issue.format==="regex")return`無効な文字列: パターン${_issue.pattern}に一致する必要があります`;return`無効な${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`無効な数値: ${issue.divisor}の倍数である必要があります`;case"unrecognized_keys":return`認識されていないキー${issue.keys.length>1?"群":""}: ${joinValues(issue.keys,"、")}`;case"invalid_key":return`${issue.origin}内の無効なキー`;case"invalid_union":return"無効な入力";case"invalid_element":return`${issue.origin}内の無効な値`;default:return`無効な入力`}}};function ja_default(){return{localeError:error28()}}var error29=()=>{const Sizable={string:{unit:"სიმბოლო",verb:"უნდა შეიცავდეს"},file:{unit:"ბაიტი",verb:"უნდა შეიცავდეს"},array:{unit:"ელემენტი",verb:"უნდა შეიცავდეს"},set:{unit:"ელემენტი",verb:"უნდა შეიცავდეს"},map:{unit:"ელემენტი",verb:"უნდა შეიცავდეს"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"შეყვანა",email:"ელ-ფოსტის მისამართი",url:"URL",emoji:"ემოჯი",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"თარიღი-დრო",date:"თარიღი",time:"დრო",duration:"ხანგრძლივობა",ipv4:"IPv4 მისამართი",ipv6:"IPv6 მისამართი",mac:"MAC მისამართი",cidrv4:"IPv4 დიაპაზონი",cidrv6:"IPv6 დიაპაზონი",base64:"base64-კოდირებული ველი",base64url:"base64url-კოდირებული ველი",json_string:"JSON ველი",e164:"E.164 ნომერი",credit_card:"საკრედიტო ბარათის ნომერი",currency_code:"ვალუტის კოდი",iban:"IBAN",jwt:"JWT",template_literal:"შეყვანა"};const TypeDictionary={nan:"NaN",number:"რიცხვი",string:"ველი",boolean:"ბულეანი",function:"ფუნქცია",array:"მასივი"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`არასწორი შეყვანა: მოსალოდნელი instanceof ${issue.expected}, მიღებული ${received}`}return`არასწორი შეყვანა: მოსალოდნელი ${expected}, მიღებული ${received}`}case"invalid_value":if(issue.values.length===1)return`არასწორი შეყვანა: მოსალოდნელი ${stringifyPrimitive(issue.values[0])}`;return`არასწორი ვარიანტი: მოსალოდნელია ერთ-ერთი ${joinValues(issue.values,"|")}-დან`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`ზედმეტად დიდი: მოსალოდნელი ${issue.origin??"მნიშვნელობა"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit}`;return`ზედმეტად დიდი: მოსალოდნელი ${issue.origin??"მნიშვნელობა"} იყოს ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`ზედმეტად პატარა: მოსალოდნელი ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`ზედმეტად პატარა: მოსალოდნელი ${issue.origin} იყოს ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`არასწორი ველი: უნდა იწყებოდეს "${_issue.prefix}"-ით`}if(_issue.format==="ends_with")return`არასწორი ველი: უნდა მთავრდებოდეს "${_issue.suffix}"-ით`;if(_issue.format==="includes")return`არასწორი ველი: უნდა შეიცავდეს "${_issue.includes}"-ს`;if(_issue.format==="regex")return`არასწორი ველი: უნდა შეესაბამებოდეს შაბლონს ${_issue.pattern}`;return`არასწორი ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`არასწორი რიცხვი: უნდა იყოს ${issue.divisor}-ის ჯერადი`;case"unrecognized_keys":return`უცნობი გასაღებ${issue.keys.length>1?"ები":"ი"}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`არასწორი გასაღები ${issue.origin}-ში`;case"invalid_union":return"არასწორი შეყვანა";case"invalid_element":return`არასწორი მნიშვნელობა ${issue.origin}-ში`;default:return`არასწორი შეყვანა`}}};function ka_default(){return{localeError:error29()}}var error30=()=>{const Sizable={string:{unit:"តួអក្សរ",verb:"គួរមាន"},file:{unit:"បៃ",verb:"គួរមាន"},array:{unit:"ធាតុ",verb:"គួរមាន"},set:{unit:"ធាតុ",verb:"គួរមាន"},map:{unit:"ធាតុ",verb:"គួរមាន"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"ទិន្នន័យបញ្ចូល",email:"អាសយដ្ឋានអ៊ីមែល",url:"URL",emoji:"សញ្ញាអារម្មណ៍",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"កាលបរិច្ឆេទ និងម៉ោង ISO",date:"កាលបរិច្ឆេទ ISO",time:"ម៉ោង ISO",duration:"រយៈពេល ISO",ipv4:"អាសយដ្ឋាន IPv4",ipv6:"អាសយដ្ឋាន IPv6",mac:"អាសយដ្ឋាន MAC",cidrv4:"ដែនអាសយដ្ឋាន IPv4",cidrv6:"ដែនអាសយដ្ឋាន IPv6",base64:"ខ្សែអក្សរអ៊ិកូដ base64",base64url:"ខ្សែអក្សរអ៊ិកូដ base64url",json_string:"ខ្សែអក្សរ JSON",e164:"លេខ E.164",credit_card:"លេខប័ណ្ណឥណទាន",currency_code:"កូដរូបិយប័ណ្ណ",iban:"IBAN",jwt:"JWT",template_literal:"ទិន្នន័យបញ្ចូល"};const TypeDictionary={nan:"NaN",number:"លេខ",array:"អារេ (Array)",null:"គ្មានតម្លៃ (null)"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ instanceof ${issue.expected} ប៉ុន្តែទទួលបាន ${received}`}return`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${expected} ប៉ុន្តែទទួលបាន ${received}`}case"invalid_value":if(issue.values.length===1)return`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${stringifyPrimitive(issue.values[0])}`;return`ជម្រើសមិនត្រឹមត្រូវ៖ ត្រូវជាមួយក្នុងចំណោម ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`ធំពេក៖ ត្រូវការ ${issue.origin??"តម្លៃ"} ${adj} ${issue.maximum.toString()} ${sizing.unit??"ធាតុ"}`;return`ធំពេក៖ ត្រូវការ ${issue.origin??"តម្លៃ"} ${adj} ${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`តូចពេក៖ ត្រូវការ ${issue.origin} ${adj} ${issue.minimum.toString()} ${sizing.unit}`}return`តូចពេក៖ ត្រូវការ ${issue.origin} ${adj} ${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវចាប់ផ្តើមដោយ "${_issue.prefix}"`}if(_issue.format==="ends_with")return`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវបញ្ចប់ដោយ "${_issue.suffix}"`;if(_issue.format==="includes")return`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវមាន "${_issue.includes}"`;if(_issue.format==="regex")return`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវតែផ្គូផ្គងនឹងទម្រង់ដែលបានកំណត់ ${_issue.pattern}`;return`មិនត្រឹមត្រូវ៖ ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`លេខមិនត្រឹមត្រូវ៖ ត្រូវតែជាពហុគុណនៃ ${issue.divisor}`;case"unrecognized_keys":return`រកឃើញសោមិនស្គាល់៖ ${joinValues(issue.keys,", ")}`;case"invalid_key":return`សោមិនត្រឹមត្រូវនៅក្នុង ${issue.origin}`;case"invalid_union":return`ទិន្នន័យមិនត្រឹមត្រូវ`;case"invalid_element":return`ទិន្នន័យមិនត្រឹមត្រូវនៅក្នុង ${issue.origin}`;default:return`ទិន្នន័យមិនត្រឹមត្រូវ`}}};function km_default(){return{localeError:error30()}}function kh_default(){return km_default()}var error31=()=>{const Sizable={string:{unit:"ಅಕ್ಷರಗಳು",verb:"ಹೊಂದಲು"},file:{unit:"ಬೈಟ್‌ಗಳು",verb:"ಹೊಂದಲು"},array:{unit:"ವಸ್ತುಗಳು",verb:"ಹೊಂದಲು"},set:{unit:"ವಸ್ತುಗಳು",verb:"ಹೊಂದಲು"},map:{unit:"entries",verb:"ಹೊಂದಲು"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"ಇನ್ಪುಟ್",email:"email ವಿಳಾಸ",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO ದಿನಾಂಕದ ಸಮಯ",date:"ISO ದಿನಾಂಕ",time:"ISO ಸಮಯ",duration:"ISO ಅವಧಿ",ipv4:"IPv4 ವಿಳಾಸ",ipv6:"IPv6 ವಿಳಾಸ",mac:"MAC ವಿಳಾಸ",cidrv4:"IPv4 ವ್ಯಾಪ್ತಿಯ",cidrv6:"IPv6 ವ್ಯಾಪ್ತಿಯ",base64:"base64-encodedಸ್ಟ್ರಿಂಗ್",base64url:"base64url-encodedಸ್ಟ್ರಿಂಗ್",json_string:"JSONಸ್ಟ್ರಿಂಗ್",e164:"E.164 ಸಂಖ್ಯೆ",credit_card:"ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ ಸಂಖ್ಯೆ",currency_code:"ಕರೆನ್ಸಿ ಕೋಡ್",iban:"IBAN",jwt:"JWT",template_literal:"ಇನ್ಪುಟ್"};const TypeDictionary={nan:"NaN"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;return`ಅಮಾನ್ಯ ಇನ್‌ಪುಟ್: ನಿರೀಕ್ಷಿಸಲಾಗಿದೆ ${expected}, ಸ್ವೀಕರಿಸಿದನು ${received}`}case"invalid_value":if(issue.values.length===1)return`ಅಮಾನ್ಯ ಇನ್‌ಪುಟ್: ನಿರೀಕ್ಷಿಸಲಾಗಿದೆ ${stringifyPrimitive(issue.values[0])}`;return`ಅಮಾನ್ಯ ಆಯ್ಕೆ: ಇವುಗಳಲ್ಲಿ ಒಂದನ್ನು ನಿರೀಕ್ಷಿಸಲಾಗಿದೆ ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`ತುಂಬಾ ದೊಡ್ಡದು: ನಿರೀಕ್ಷಿಸಲಾಗಿದೆ ${issue.origin??"value"} ಹೊಂದಲು ${adj}${issue.maximum.toString()} ${sizing.unit??"ಅಂಶಗಳು"}`;return`ತುಂಬಾ ದೊಡ್ಡದು: ನಿರೀಕ್ಷಿಸಲಾಗಿದೆ ${issue.origin??"value"} ಎಂದು ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`ತುಂಬಾ ಚಿಕ್ಕದು: ನಿರೀಕ್ಷಿಸಲಾಗಿದೆ ${issue.origin} ಹೊಂದಲು ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`ತುಂಬಾ ಚಿಕ್ಕದು: ನಿರೀಕ್ಷಿಸಲಾಗಿದೆ ${issue.origin} ಎಂದು ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`ಅಮಾನ್ಯವಾದ ಸ್ಟ್ರಿಂಗ್: ಇದರೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಬೇಕು "${_issue.prefix}"`}if(_issue.format==="ends_with")return`ಅಮಾನ್ಯವಾದ ಸ್ಟ್ರಿಂಗ್: ಇದರೊಂದಿಗೆ ಕೊನೆಗೊಳ್ಳಬೇಕು "${_issue.suffix}"`;if(_issue.format==="includes")return`ಅಮಾನ್ಯ ಸ್ಟ್ರಿಂಗ್: ಒಳಗೊಂಡಿರಬೇಕು "${_issue.includes}"`;if(_issue.format==="regex")return`ಅಮಾನ್ಯವಾದ ಸ್ಟ್ರಿಂಗ್: ಮಾದರಿಗೆ ಹೊಂದಿಕೆಯಾಗಬೇಕು ${_issue.pattern}`;return`ಅಮಾನ್ಯ ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`ಅಮಾನ್ಯ ಸಂಖ್ಯೆ: ಬಹುಸಂಖ್ಯೆಯಾಗಿರಬೇಕು ${issue.divisor}`;case"unrecognized_keys":return`ಗುರುತಿಸಲಾಗದ ಕೀ ${issue.keys.length>1?"s":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`ಅಮಾನ್ಯವಾದ ಕೀ ಇನ್ ${issue.origin}`;case"invalid_union":if(issue.options&&Array.isArray(issue.options)&&issue.options.length>0){const opts=issue.options.map((o)=>`'${o}'`).join(" | ");return`ಅಮಾನ್ಯ ತಾರತಮ್ಯ ಮೌಲ್ಯ. ನಿರೀಕ್ಷಿಸಲಾಗಿದೆ ${opts}`}return"ಅಮಾನ್ಯ ಇನ್‌ಪುಟ್";case"invalid_element":return`ರಲ್ಲಿ ಅಮಾನ್ಯ ಮೌಲ್ಯ ${issue.origin}`;default:return`ಅಮಾನ್ಯ ಇನ್‌ಪುಟ್`}}};function kn_default(){return{localeError:error31()}}var error32=()=>{const Sizable={string:{unit:"문자",verb:"to have"},file:{unit:"바이트",verb:"to have"},array:{unit:"개",verb:"to have"},set:{unit:"개",verb:"to have"},map:{unit:"개",verb:"to have"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"입력",email:"이메일 주소",url:"URL",emoji:"이모지",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO 날짜시간",date:"ISO 날짜",time:"ISO 시간",duration:"ISO 기간",ipv4:"IPv4 주소",ipv6:"IPv6 주소",mac:"MAC 주소",cidrv4:"IPv4 범위",cidrv6:"IPv6 범위",base64:"base64 인코딩 문자열",base64url:"base64url 인코딩 문자열",json_string:"JSON 문자열",e164:"E.164 번호",credit_card:"신용카드 번호",currency_code:"통화 코드",iban:"IBAN",jwt:"JWT",template_literal:"입력"};const TypeDictionary={nan:"NaN"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`잘못된 입력: 예상 타입은 instanceof ${issue.expected}, 받은 타입은 ${received}입니다`}return`잘못된 입력: 예상 타입은 ${expected}, 받은 타입은 ${received}입니다`}case"invalid_value":if(issue.values.length===1)return`잘못된 입력: 값은 ${stringifyPrimitive(issue.values[0])} 이어야 합니다`;return`잘못된 옵션: ${joinValues(issue.values,"또는 ")} 중 하나여야 합니다`;case"too_big":{const adj=issue.inclusive?"이하":"미만";const suffix=adj==="미만"?"이어야 합니다":"여야 합니다";const sizing=getSizing(issue.origin);const unit=sizing?.unit??"요소";if(sizing)return`${issue.origin??"값"}이 너무 큽니다: ${issue.maximum.toString()}${unit} ${adj}${suffix}`;return`${issue.origin??"값"}이 너무 큽니다: ${issue.maximum.toString()} ${adj}${suffix}`}case"too_small":{const adj=issue.inclusive?"이상":"초과";const suffix=adj==="이상"?"이어야 합니다":"여야 합니다";const sizing=getSizing(issue.origin);const unit=sizing?.unit??"요소";if(sizing){return`${issue.origin??"값"}이 너무 작습니다: ${issue.minimum.toString()}${unit} ${adj}${suffix}`}return`${issue.origin??"값"}이 너무 작습니다: ${issue.minimum.toString()} ${adj}${suffix}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`잘못된 문자열: "${_issue.prefix}"(으)로 시작해야 합니다`}if(_issue.format==="ends_with")return`잘못된 문자열: "${_issue.suffix}"(으)로 끝나야 합니다`;if(_issue.format==="includes")return`잘못된 문자열: "${_issue.includes}"을(를) 포함해야 합니다`;if(_issue.format==="regex")return`잘못된 문자열: 정규식 ${_issue.pattern} 패턴과 일치해야 합니다`;return`잘못된 ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`잘못된 숫자: ${issue.divisor}의 배수여야 합니다`;case"unrecognized_keys":return`인식할 수 없는 키: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`잘못된 키: ${issue.origin}`;case"invalid_union":return`잘못된 입력`;case"invalid_element":return`잘못된 값: ${issue.origin}`;default:return`잘못된 입력`}}};function ko_default(){return{localeError:error32()}}var capitalizeFirstCharacter=(text)=>{return text.charAt(0).toUpperCase()+text.slice(1)};function getUnitTypeFromNumber(number){const abs=Math.abs(number);const last=abs%10;const last2=abs%100;if(last2>=11&&last2<=19||last===0)return"many";if(last===1)return"one";return"few"}var error33=()=>{const Sizable={string:{unit:{one:"simbolis",few:"simboliai",many:"simbolių"},verb:{smaller:{inclusive:"turi būti ne ilgesnė kaip",notInclusive:"turi būti trumpesnė kaip"},bigger:{inclusive:"turi būti ne trumpesnė kaip",notInclusive:"turi būti ilgesnė kaip"}}},file:{unit:{one:"baitas",few:"baitai",many:"baitų"},verb:{smaller:{inclusive:"turi būti ne didesnis kaip",notInclusive:"turi būti mažesnis kaip"},bigger:{inclusive:"turi būti ne mažesnis kaip",notInclusive:"turi būti didesnis kaip"}}},array:{unit:{one:"elementą",few:"elementus",many:"elementų"},verb:{smaller:{inclusive:"turi turėti ne daugiau kaip",notInclusive:"turi turėti mažiau kaip"},bigger:{inclusive:"turi turėti ne mažiau kaip",notInclusive:"turi turėti daugiau kaip"}}},set:{unit:{one:"elementą",few:"elementus",many:"elementų"},verb:{smaller:{inclusive:"turi turėti ne daugiau kaip",notInclusive:"turi turėti mažiau kaip"},bigger:{inclusive:"turi turėti ne mažiau kaip",notInclusive:"turi turėti daugiau kaip"}}}};function getSizing(origin,unitType,inclusive,targetShouldBe){const result=Sizable[origin]??null;if(result===null)return result;return{unit:result.unit[unitType],verb:result.verb[targetShouldBe][inclusive?"inclusive":"notInclusive"]}}const FormatDictionary={regex:"įvestis",email:"el. pašto adresas",url:"URL",emoji:"jaustukas",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO data ir laikas",date:"ISO data",time:"ISO laikas",duration:"ISO trukmė",ipv4:"IPv4 adresas",ipv6:"IPv6 adresas",mac:"MAC adresas",cidrv4:"IPv4 tinklo prefiksas (CIDR)",cidrv6:"IPv6 tinklo prefiksas (CIDR)",base64:"base64 užkoduota eilutė",base64url:"base64url užkoduota eilutė",json_string:"JSON eilutė",e164:"E.164 numeris",credit_card:"kredito kortelės numeris",currency_code:"valiutos kodas",iban:"IBAN",jwt:"JWT",template_literal:"įvestis"};const TypeDictionary={nan:"NaN",number:"skaičius",bigint:"sveikasis skaičius",string:"eilutė",boolean:"loginė reikšmė",undefined:"neapibrėžta reikšmė",function:"funkcija",symbol:"simbolis",array:"masyvas",object:"objektas",null:"nulinė reikšmė"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Gautas tipas ${received}, o tikėtasi - instanceof ${issue.expected}`}return`Gautas tipas ${received}, o tikėtasi - ${expected}`}case"invalid_value":if(issue.values.length===1)return`Privalo būti ${stringifyPrimitive(issue.values[0])}`;return`Privalo būti vienas iš ${joinValues(issue.values,"|")} pasirinkimų`;case"too_big":{const origin=TypeDictionary[issue.origin]??issue.origin;const sizing=getSizing(issue.origin,getUnitTypeFromNumber(Number(issue.maximum)),issue.inclusive??false,"smaller");if(sizing?.verb)return`${capitalizeFirstCharacter(origin??issue.origin??"reikšmė")} ${sizing.verb} ${issue.maximum.toString()} ${sizing.unit??"elementų"}`;const adj=issue.inclusive?"ne didesnis kaip":"mažesnis kaip";return`${capitalizeFirstCharacter(origin??issue.origin??"reikšmė")} turi būti ${adj} ${issue.maximum.toString()} ${sizing?.unit}`}case"too_small":{const origin=TypeDictionary[issue.origin]??issue.origin;const sizing=getSizing(issue.origin,getUnitTypeFromNumber(Number(issue.minimum)),issue.inclusive??false,"bigger");if(sizing?.verb)return`${capitalizeFirstCharacter(origin??issue.origin??"reikšmė")} ${sizing.verb} ${issue.minimum.toString()} ${sizing.unit??"elementų"}`;const adj=issue.inclusive?"ne mažesnis kaip":"didesnis kaip";return`${capitalizeFirstCharacter(origin??issue.origin??"reikšmė")} turi būti ${adj} ${issue.minimum.toString()} ${sizing?.unit}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`Eilutė privalo prasidėti "${_issue.prefix}"`}if(_issue.format==="ends_with")return`Eilutė privalo pasibaigti "${_issue.suffix}"`;if(_issue.format==="includes")return`Eilutė privalo įtraukti "${_issue.includes}"`;if(_issue.format==="regex")return`Eilutė privalo atitikti ${_issue.pattern}`;return`Neteisingas ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Skaičius privalo būti ${issue.divisor} kartotinis.`;case"unrecognized_keys":return`Neatpažint${issue.keys.length>1?"i":"as"} rakt${issue.keys.length>1?"ai":"as"}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return"Rastas klaidingas raktas";case"invalid_union":return"Klaidinga įvestis";case"invalid_element":{const origin=TypeDictionary[issue.origin]??issue.origin;return`${capitalizeFirstCharacter(origin??issue.origin??"reikšmė")} turi klaidingą įvestį`}default:return"Klaidinga įvestis"}}};function lt_default(){return{localeError:error33()}}var error34=()=>{const Sizable={string:{unit:"знаци",verb:"да имаат"},file:{unit:"бајти",verb:"да имаат"},array:{unit:"ставки",verb:"да имаат"},set:{unit:"ставки",verb:"да имаат"},map:{unit:"ставки",verb:"да имаат"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"внес",email:"адреса на е-пошта",url:"URL",emoji:"емоџи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO датум и време",date:"ISO датум",time:"ISO време",duration:"ISO времетраење",ipv4:"IPv4 адреса",ipv6:"IPv6 адреса",mac:"MAC адреса",cidrv4:"IPv4 опсег",cidrv6:"IPv6 опсег",base64:"base64-енкодирана низа",base64url:"base64url-енкодирана низа",json_string:"JSON низа",e164:"E.164 број",credit_card:"број на кредитна картичка",currency_code:"код на валута",iban:"IBAN",jwt:"JWT",template_literal:"внес"};const TypeDictionary={nan:"NaN",number:"број",array:"низа"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Грешен внес: се очекува instanceof ${issue.expected}, примено ${received}`}return`Грешен внес: се очекува ${expected}, примено ${received}`}case"invalid_value":if(issue.values.length===1)return`Invalid input: expected ${stringifyPrimitive(issue.values[0])}`;return`Грешана опција: се очекува една ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Премногу голем: се очекува ${issue.origin??"вредноста"} да има ${adj}${issue.maximum.toString()} ${sizing.unit??"елементи"}`;return`Премногу голем: се очекува ${issue.origin??"вредноста"} да биде ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Премногу мал: се очекува ${issue.origin} да има ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`Премногу мал: се очекува ${issue.origin} да биде ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`Неважечка низа: мора да започнува со "${_issue.prefix}"`}if(_issue.format==="ends_with")return`Неважечка низа: мора да завршува со "${_issue.suffix}"`;if(_issue.format==="includes")return`Неважечка низа: мора да вклучува "${_issue.includes}"`;if(_issue.format==="regex")return`Неважечка низа: мора да одгоара на патернот ${_issue.pattern}`;return`Invalid ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Грешен број: мора да биде делив со ${issue.divisor}`;case"unrecognized_keys":return`${issue.keys.length>1?"Непрепознаени клучеви":"Непрепознаен клуч"}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Грешен клуч во ${issue.origin}`;case"invalid_union":return"Грешен внес";case"invalid_element":return`Грешна вредност во ${issue.origin}`;default:return`Грешен внес`}}};function mk_default(){return{localeError:error34()}}var error35=()=>{const Sizable={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"},map:{unit:"elemen",verb:"mempunyai"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",mac:"alamat MAC",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",credit_card:"nombor kad kredit",currency_code:"kod mata wang",iban:"IBAN",jwt:"JWT",template_literal:"input"};const TypeDictionary={nan:"NaN",number:"nombor"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Input tidak sah: dijangka instanceof ${issue.expected}, diterima ${received}`}return`Input tidak sah: dijangka ${expected}, diterima ${received}`}case"invalid_value":if(issue.values.length===1)return`Input tidak sah: dijangka ${stringifyPrimitive(issue.values[0])}`;return`Pilihan tidak sah: dijangka salah satu daripada ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Terlalu besar: dijangka ${issue.origin??"nilai"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit??"elemen"}`;return`Terlalu besar: dijangka ${issue.origin??"nilai"} adalah ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Terlalu kecil: dijangka ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`Terlalu kecil: dijangka ${issue.origin} adalah ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`String tidak sah: mesti bermula dengan "${_issue.prefix}"`;if(_issue.format==="ends_with")return`String tidak sah: mesti berakhir dengan "${_issue.suffix}"`;if(_issue.format==="includes")return`String tidak sah: mesti mengandungi "${_issue.includes}"`;if(_issue.format==="regex")return`String tidak sah: mesti sepadan dengan corak ${_issue.pattern}`;return`${FormatDictionary[_issue.format]??issue.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${issue.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${issue.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${issue.origin}`;default:return`Input tidak sah`}}};function ms_default(){return{localeError:error35()}}var error36=()=>{const Sizable={string:{unit:"अक्षर",verb:"हुनुपर्छ"},file:{unit:"बाइट",verb:"हुनुपर्छ"},array:{unit:"तत्व",verb:"हुनुपर्छ"},set:{unit:"तत्व",verb:"हुनुपर्छ"},map:{unit:"प्रविष्टि",verb:"हुनुपर्छ"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"इनपुट",email:"इमेल ठेगाना",url:"URL",emoji:"इमोजी",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO मिति र समय",date:"ISO मिति",time:"ISO समय",duration:"ISO अवधि",ipv4:"IPv4 ठेगाना",ipv6:"IPv6 ठेगाना",mac:"MAC ठेगाना",cidrv4:"IPv4 दायरा",cidrv6:"IPv6 दायरा",base64:"base64-इन्कोड गरिएको स्ट्रिङ",base64url:"base64url-इन्कोड गरिएको स्ट्रिङ",json_string:"JSON स्ट्रिङ",e164:"E.164 नम्बर",credit_card:"क्रेडिट कार्ड नम्बर",currency_code:"मुद्रा कोड",iban:"IBAN",jwt:"JWT",template_literal:"इनपुट"};const TypeDictionary={nan:"NaN"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;return`अमान्य इनपुट: अपेक्षित ${expected}, प्राप्त ${received}`}case"invalid_value":if(issue.values.length===1)return`अमान्य इनपुट: अपेक्षित ${stringifyPrimitive(issue.values[0])}`;return`अमान्य विकल्प: अपेक्षित मानहरू मध्ये एक ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`धेरै ठूलो: ${issue.origin??"मान"} मा ${adj}${issue.maximum.toString()} ${sizing.unit} ${sizing.verb}`;return`धेरै ठूलो: ${issue.origin??"मान"} ${adj}${issue.maximum.toString()} हुनुपर्छ`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing)return`धेरै सानो: ${issue.origin} मा ${adj}${issue.minimum.toString()} ${sizing.unit} ${sizing.verb}`;return`धेरै सानो: ${issue.origin} ${adj}${issue.minimum.toString()} हुनुपर्छ`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`अमान्य स्ट्रिङ: "${_issue.prefix}" बाट सुरु हुनुपर्छ`;if(_issue.format==="ends_with")return`अमान्य स्ट्रिङ: "${_issue.suffix}" मा समाप्त हुनुपर्छ`;if(_issue.format==="includes")return`अमान्य स्ट्रिङ: "${_issue.includes}" समावेश हुनुपर्छ`;if(_issue.format==="regex")return`अमान्य स्ट्रिङ: ढाँचा ${_issue.pattern} सँग मेल खानुपर्छ`;return`अमान्य ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`अमान्य संख्या: ${issue.divisor} को गुणज हुनुपर्छ`;case"unrecognized_keys":return`अपरिचित कुञ्जी${issue.keys.length>1?"हरू":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`अमान्य कुञ्जी: ${issue.origin} मा`;case"invalid_union":if(issue.options&&Array.isArray(issue.options)&&issue.options.length>0){const opts=issue.options.map((o)=>`'${o}'`).join(" | ");return`अमान्य डिस्क्रिमिनेटर मान: अपेक्षित ${opts}`}return"अमान्य इनपुट";case"invalid_element":return`अमान्य मान: ${issue.origin} मा`;default:return`अमान्य इनपुट`}}};function ne_default(){return{localeError:error36()}}var error37=()=>{const Sizable={string:{unit:"tekens",verb:"heeft"},file:{unit:"bytes",verb:"heeft"},array:{unit:"elementen",verb:"heeft"},set:{unit:"elementen",verb:"heeft"},map:{unit:"elementen",verb:"heeft"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",mac:"MAC-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",credit_card:"creditcardnummer",currency_code:"valutacode",iban:"IBAN",jwt:"JWT",template_literal:"invoer"};const TypeDictionary={nan:"NaN",number:"getal"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Ongeldige invoer: verwacht instanceof ${issue.expected}, ontving ${received}`}return`Ongeldige invoer: verwacht ${expected}, ontving ${received}`}case"invalid_value":if(issue.values.length===1)return`Ongeldige invoer: verwacht ${stringifyPrimitive(issue.values[0])}`;return`Ongeldige optie: verwacht één van ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);const longName=issue.origin==="date"?"laat":issue.origin==="string"?"lang":"groot";if(sizing)return`Te ${longName}: verwacht dat ${issue.origin??"waarde"} ${adj}${issue.maximum.toString()} ${sizing.unit??"elementen"} ${sizing.verb}`;return`Te ${longName}: verwacht dat ${issue.origin??"waarde"} ${adj}${issue.maximum.toString()} is`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);const shortName=issue.origin==="date"?"vroeg":issue.origin==="string"?"kort":"klein";if(sizing){return`Te ${shortName}: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ${sizing.verb}`}return`Te ${shortName}: verwacht dat ${issue.origin} ${adj}${issue.minimum.toString()} is`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`Ongeldige tekst: moet met "${_issue.prefix}" beginnen`}if(_issue.format==="ends_with")return`Ongeldige tekst: moet op "${_issue.suffix}" eindigen`;if(_issue.format==="includes")return`Ongeldige tekst: moet "${_issue.includes}" bevatten`;if(_issue.format==="regex")return`Ongeldige tekst: moet overeenkomen met patroon ${_issue.pattern}`;return`Ongeldig: ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${issue.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${issue.keys.length>1?"s":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${issue.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${issue.origin}`;default:return`Ongeldige invoer`}}};function nl_default(){return{localeError:error37()}}var error38=()=>{const Sizable={string:{unit:"teikn",verb:"å ha"},file:{unit:"bytes",verb:"å ha"},array:{unit:"element",verb:"å innehalde"},set:{unit:"element",verb:"å innehalde"},map:{unit:"element",verb:"å innehalde"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varigheit",ipv4:"IPv4-adresse",ipv6:"IPv6-adresse",mac:"MAC-adresse",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkoda streng",base64url:"base64url-enkoda streng",json_string:"JSON-streng",e164:"E.164-nummer",credit_card:"kredittkortnummer",currency_code:"valutakode",iban:"IBAN",jwt:"JWT",template_literal:"input"};const TypeDictionary={nan:"NaN",number:"tal",array:"liste"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Ugyldig input: forventa instanceof ${issue.expected}, fekk ${received}`}return`Ugyldig input: forventa ${expected}, fekk ${received}`}case"invalid_value":if(issue.values.length===1)return`Ugyldig verdi: forventa ${stringifyPrimitive(issue.values[0])}`;return`Ugyldig val: forventa eitt av ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`For stor(t): forventa ${issue.origin??"value"} til å ha ${adj}${issue.maximum.toString()} ${sizing.unit??"element"}`;return`For stor(t): forventa ${issue.origin??"value"} til å ha ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`For lite(n): forventa ${issue.origin} til å ha ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`For lite(n): forventa ${issue.origin} til å ha ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Ugyldig streng: må starte med "${_issue.prefix}"`;if(_issue.format==="ends_with")return`Ugyldig streng: må slutte med "${_issue.suffix}"`;if(_issue.format==="includes")return`Ugyldig streng: må innehalde "${_issue.includes}"`;if(_issue.format==="regex")return`Ugyldig streng: må matche mønsteret ${_issue.pattern}`;return`Ugyldig ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Ugyldig tal: må vere eit multiplum av ${issue.divisor}`;case"unrecognized_keys":return`${issue.keys.length>1?"Ukjende nøklar":"Ukjend nøkkel"}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Ugyldig nøkkel i ${issue.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${issue.origin}`;default:return`Ugyldig input`}}};function nn_default(){return{localeError:error38()}}var error39=()=>{const Sizable={string:{unit:"tegn",verb:"å ha"},file:{unit:"bytes",verb:"å ha"},array:{unit:"elementer",verb:"å inneholde"},set:{unit:"elementer",verb:"å inneholde"},map:{unit:"elementer",verb:"å inneholde"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-adresse",ipv6:"IPv6-adresse",mac:"MAC-adresse",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",credit_card:"kredittkortnummer",currency_code:"valutakode",iban:"IBAN",jwt:"JWT",template_literal:"input"};const TypeDictionary={nan:"NaN",number:"tall",array:"liste"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Ugyldig input: forventet instanceof ${issue.expected}, fikk ${received}`}return`Ugyldig input: forventet ${expected}, fikk ${received}`}case"invalid_value":if(issue.values.length===1)return`Ugyldig verdi: forventet ${stringifyPrimitive(issue.values[0])}`;return`Ugyldig valg: forventet en av ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`For stor(t): forventet ${issue.origin??"value"} til å ha ${adj}${issue.maximum.toString()} ${sizing.unit??"elementer"}`;return`For stor(t): forventet ${issue.origin??"value"} til å ha ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`For lite(n): forventet ${issue.origin} til å ha ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`For lite(n): forventet ${issue.origin} til å ha ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Ugyldig streng: må starte med "${_issue.prefix}"`;if(_issue.format==="ends_with")return`Ugyldig streng: må ende med "${_issue.suffix}"`;if(_issue.format==="includes")return`Ugyldig streng: må inneholde "${_issue.includes}"`;if(_issue.format==="regex")return`Ugyldig streng: må matche mønsteret ${_issue.pattern}`;return`Ugyldig ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Ugyldig tall: må være et multiplum av ${issue.divisor}`;case"unrecognized_keys":return`${issue.keys.length>1?"Ukjente nøkler":"Ukjent nøkkel"}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Ugyldig nøkkel i ${issue.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${issue.origin}`;default:return`Ugyldig input`}}};function no_default(){return{localeError:error39()}}var error40=()=>{const Sizable={string:{unit:"harf",verb:"olmalıdır"},file:{unit:"bayt",verb:"olmalıdır"},array:{unit:"unsur",verb:"olmalıdır"},set:{unit:"unsur",verb:"olmalıdır"},map:{unit:"unsur",verb:"olmalıdır"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"giren",email:"epostagâh",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO hengâmı",date:"ISO tarihi",time:"ISO zamanı",duration:"ISO müddeti",ipv4:"IPv4 nişânı",ipv6:"IPv6 nişânı",mac:"MAC nişânı",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-şifreli metin",base64url:"base64url-şifreli metin",json_string:"JSON metin",e164:"E.164 sayısı",credit_card:"i'tibâr kartı numarası",currency_code:"para birimi kodu",iban:"IBAN",jwt:"JWT",template_literal:"giren"};const TypeDictionary={nan:"NaN",number:"numara",array:"saf",null:"gayb"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Fâsit giren: umulan instanceof ${issue.expected}, alınan ${received}`}return`Fâsit giren: umulan ${expected}, alınan ${received}`}case"invalid_value":if(issue.values.length===1)return`Fâsit giren: umulan ${stringifyPrimitive(issue.values[0])}`;return`Fâsit tercih: mûteberler ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Fazla büyük: ${issue.origin??"value"}, ${adj}${issue.maximum.toString()} ${sizing.unit??"elements"} sahip olmalıydı.`;return`Fazla büyük: ${issue.origin??"value"}, ${adj}${issue.maximum.toString()} olmalıydı.`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Fazla küçük: ${issue.origin}, ${adj}${issue.minimum.toString()} ${sizing.unit} sahip olmalıydı.`}return`Fazla küçük: ${issue.origin}, ${adj}${issue.minimum.toString()} olmalıydı.`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Fâsit metin: "${_issue.prefix}" ile başlamalı.`;if(_issue.format==="ends_with")return`Fâsit metin: "${_issue.suffix}" ile bitmeli.`;if(_issue.format==="includes")return`Fâsit metin: "${_issue.includes}" ihtivâ etmeli.`;if(_issue.format==="regex")return`Fâsit metin: ${_issue.pattern} nakşına uymalı.`;return`Fâsit ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Fâsit sayı: ${issue.divisor} katı olmalıydı.`;case"unrecognized_keys":return`Tanınmayan anahtar ${issue.keys.length>1?"s":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`${issue.origin} için tanınmayan anahtar var.`;case"invalid_union":return"Giren tanınamadı.";case"invalid_element":return`${issue.origin} için tanınmayan kıymet var.`;default:return`Kıymet tanınamadı.`}}};function ota_default(){return{localeError:error40()}}var error41=()=>{const Sizable={string:{unit:"توکي",verb:"ولري"},file:{unit:"بایټس",verb:"ولري"},array:{unit:"توکي",verb:"ولري"},set:{unit:"توکي",verb:"ولري"},map:{unit:"توکي",verb:"ولري"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"ورودي",email:"بریښنالیک",url:"یو آر ال",emoji:"ایموجي",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"نیټه او وخت",date:"نېټه",time:"وخت",duration:"موده",ipv4:"د IPv4 پته",ipv6:"د IPv6 پته",mac:"د MAC پته",cidrv4:"د IPv4 ساحه",cidrv6:"د IPv6 ساحه",base64:"base64-encoded متن",base64url:"base64url-encoded متن",json_string:"JSON متن",e164:"د E.164 شمېره",credit_card:"د کریډیټ کارت شمیره",currency_code:"د اسعارو کوډ",iban:"IBAN",jwt:"JWT",template_literal:"ورودي"};const TypeDictionary={nan:"NaN",number:"عدد",array:"ارې"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`ناسم ورودي: باید instanceof ${issue.expected} وای, مګر ${received} ترلاسه شو`}return`ناسم ورودي: باید ${expected} وای, مګر ${received} ترلاسه شو`}case"invalid_value":if(issue.values.length===1){return`ناسم ورودي: باید ${stringifyPrimitive(issue.values[0])} وای`}return`ناسم انتخاب: باید یو له ${joinValues(issue.values,"|")} څخه وای`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing){return`ډیر لوی: ${issue.origin??"ارزښت"} باید ${adj}${issue.maximum.toString()} ${sizing.unit??"عنصرونه"} ولري`}return`ډیر لوی: ${issue.origin??"ارزښت"} باید ${adj}${issue.maximum.toString()} وي`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`ډیر کوچنی: ${issue.origin} باید ${adj}${issue.minimum.toString()} ${sizing.unit} ولري`}return`ډیر کوچنی: ${issue.origin} باید ${adj}${issue.minimum.toString()} وي`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`ناسم متن: باید د "${_issue.prefix}" سره پیل شي`}if(_issue.format==="ends_with"){return`ناسم متن: باید د "${_issue.suffix}" سره پای ته ورسيږي`}if(_issue.format==="includes"){return`ناسم متن: باید "${_issue.includes}" ولري`}if(_issue.format==="regex"){return`ناسم متن: باید د ${_issue.pattern} سره مطابقت ولري`}return`${FormatDictionary[_issue.format]??issue.format} ناسم دی`}case"not_multiple_of":return`ناسم عدد: باید د ${issue.divisor} مضرب وي`;case"unrecognized_keys":return`ناسم ${issue.keys.length>1?"کلیډونه":"کلیډ"}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`ناسم کلیډ په ${issue.origin} کې`;case"invalid_union":return`ناسمه ورودي`;case"invalid_element":return`ناسم عنصر په ${issue.origin} کې`;default:return`ناسمه ورودي`}}};function ps_default(){return{localeError:error41()}}var error42=()=>{const Sizable={string:{unit:"znaków",verb:"mieć"},file:{unit:"bajtów",verb:"mieć"},array:{unit:"elementów",verb:"mieć"},set:{unit:"elementów",verb:"mieć"},map:{unit:"elementów",verb:"mieć"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"wyrażenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",mac:"adres MAC",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ciąg znaków zakodowany w formacie base64",base64url:"ciąg znaków zakodowany w formacie base64url",json_string:"ciąg znaków w formacie JSON",e164:"liczba E.164",credit_card:"numer karty kredytowej",currency_code:"kod waluty",iban:"IBAN",jwt:"JWT",template_literal:"wejście"};const TypeDictionary={nan:"NaN",number:"liczba",array:"tablica"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Nieprawidłowe dane wejściowe: oczekiwano instanceof ${issue.expected}, otrzymano ${received}`}return`Nieprawidłowe dane wejściowe: oczekiwano ${expected}, otrzymano ${received}`}case"invalid_value":if(issue.values.length===1)return`Nieprawidłowe dane wejściowe: oczekiwano ${stringifyPrimitive(issue.values[0])}`;return`Nieprawidłowa opcja: oczekiwano jednej z wartości ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing){return`Za duża wartość: oczekiwano, że ${issue.origin??"wartość"} będzie mieć ${adj}${issue.maximum.toString()} ${sizing.unit??"elementów"}`}return`Zbyt duż(y/a/e): oczekiwano, że ${issue.origin??"wartość"} będzie wynosić ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Za mała wartość: oczekiwano, że ${issue.origin??"wartość"} będzie mieć ${adj}${issue.minimum.toString()} ${sizing.unit??"elementów"}`}return`Zbyt mał(y/a/e): oczekiwano, że ${issue.origin??"wartość"} będzie wynosić ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Nieprawidłowy ciąg znaków: musi zaczynać się od "${_issue.prefix}"`;if(_issue.format==="ends_with")return`Nieprawidłowy ciąg znaków: musi kończyć się na "${_issue.suffix}"`;if(_issue.format==="includes")return`Nieprawidłowy ciąg znaków: musi zawierać "${_issue.includes}"`;if(_issue.format==="regex")return`Nieprawidłowy ciąg znaków: musi odpowiadać wzorcowi ${_issue.pattern}`;return`Nieprawidłow(y/a/e) ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Nieprawidłowa liczba: musi być wielokrotnością ${issue.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${issue.keys.length>1?"s":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Nieprawidłowy klucz w ${issue.origin}`;case"invalid_union":return"Nieprawidłowe dane wejściowe";case"invalid_element":return`Nieprawidłowa wartość w ${issue.origin}`;default:return`Nieprawidłowe dane wejściowe`}}};function pl_default(){return{localeError:error42()}}var error43=()=>{const Sizable={string:{unit:"caracteres"},file:{unit:"bytes"},array:{unit:"elementos"},set:{unit:"elementos"},map:{unit:"entradas"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"a entrada",email:"o endereço de e-mail",url:"o URL",emoji:"o emoji",uuid:"o UUID",uuidv4:"o UUIDv4",uuidv6:"o UUIDv6",nanoid:"o nanoid",guid:"o GUID",cuid:"o cuid",cuid2:"o cuid2",ulid:"o ULID",xid:"o XID",ksuid:"o KSUID",datetime:"a data e hora ISO",date:"a data ISO",time:"a hora ISO",duration:"a duração ISO",ipv4:"o endereço IPv4",ipv6:"o endereço IPv6",mac:"o endereço MAC",cidrv4:"o intervalo de endereços IPv4",cidrv6:"o intervalo de endereços IPv6",base64:"o texto codificado em base64",base64url:"o texto codificado em base64url",json_string:"o texto JSON",e164:"o número E.164",credit_card:"o número de cartão de crédito",currency_code:"o código de moeda",iban:"o IBAN",jwt:"o JWT",template_literal:"a entrada"};const Gender={masculine:{definite:"o",indefinite:"um"},feminine:{definite:"a",indefinite:"uma"}};const TypeDictionary={string:{name:"texto",articles:Gender.masculine},number:{name:"número",articles:Gender.masculine},int:{name:"número inteiro",articles:Gender.masculine},boolean:{name:"valor booleano",articles:Gender.masculine},bigint:{name:"número bigint",articles:Gender.masculine},symbol:{name:"símbolo",articles:Gender.masculine},undefined:{name:'valor "undefined"',articles:Gender.masculine},null:{name:'valor "nulo"',articles:Gender.masculine},never:{name:'valor "never"',articles:Gender.masculine},void:{name:'valor "void"',articles:Gender.masculine},date:{name:"data",articles:Gender.feminine},array:{name:"vetor",articles:Gender.masculine},object:{name:"objeto",articles:Gender.masculine},tuple:{name:"tuplo",articles:Gender.masculine},record:{name:"registo",articles:Gender.masculine},map:{name:"mapa",articles:Gender.masculine},set:{name:"conjunto",articles:Gender.masculine},file:{name:"ficheiro",articles:Gender.masculine},nonoptional:{name:"valor não opcional",articles:Gender.masculine},nan:{name:'valor "NaN"',articles:Gender.masculine},function:{name:"função",articles:Gender.feminine}};function translateOriginWithArticle(type,articleType){const translatedValue=TypeDictionary[type]??{name:`valor "${type}"`,articles:Gender.masculine};return`${translatedValue.articles[articleType]} ${translatedValue.name}`}return(issue)=>{switch(issue.code){case"invalid_type":{const expected=translateOriginWithArticle(issue.expected,"indefinite");const receivedType=parsedType(issue.input);const received=translateOriginWithArticle(receivedType,"indefinite");return`Entrada inválida: esperava ${expected}, recebeu ${received}`}case"invalid_value":if(issue.values.length===1)return`Entrada inválida: esperava ${stringifyPrimitive(issue.values[0])}`;return`Opção inválida: esperava uma das seguintes opções: ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Demasiado grande: esperava que ${translateOriginWithArticle(issue.origin,"definite")} tivesse ${adj} ${issue.maximum.toString()} ${sizing.unit??"elementos"}`;return`Demasiado grande: esperava que ${translateOriginWithArticle(issue.origin,"definite")} fosse ${adj} ${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Demasiado pequeno: esperava que ${translateOriginWithArticle(issue.origin,"definite")} tivesse ${adj} ${issue.minimum.toString()} ${sizing.unit??"elementos"}`}return`Demasiado pequeno: esperava que ${translateOriginWithArticle(issue.origin,"definite")} fosse ${adj} ${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Texto inválido: deve começar por "${_issue.prefix}"`;if(_issue.format==="ends_with")return`Texto inválido: deve terminar em "${_issue.suffix}"`;if(_issue.format==="includes")return`Texto inválido: deve incluir "${_issue.includes}"`;if(_issue.format==="regex")return`Texto inválido: deve corresponder ao padrão ${_issue.pattern}`;return`Formato d${FormatDictionary[_issue.format]??issue.format} inválido`}case"not_multiple_of":return`Número inválido: deve ser múltiplo de ${issue.divisor}`;case"unrecognized_keys":{const plural=issue.keys.length>1?"s":"";return`Chave${plural} inválida${plural}: ${joinValues(issue.keys,", ")}`}case"invalid_key":return`Entrada inválida n${translateOriginWithArticle(issue.origin,"definite")}`;case"invalid_union":if(issue.options&&Array.isArray(issue.options)&&issue.options.length>0){const opts=issue.options.map((o)=>`'${o}'`).join(" | ");return`Valor de discriminação inválido. Esperava ${opts}`}return"Entrada inválida";case"invalid_element":return`Entrada inválida n${translateOriginWithArticle(issue.origin,"definite")}`;default:return`Entrada inválida`}}};function pt_default(){return{localeError:error43()}}var error44=()=>{const Sizable={string:{unit:"caracteres"},file:{unit:"bytes"},array:{unit:"elementos"},set:{unit:"elementos"},map:{unit:"entradas"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"a entrada",email:"o endereço de e-mail",url:"o URL",emoji:"o emoji",uuid:"o UUID",uuidv4:"o UUIDv4",uuidv6:"o UUIDv6",nanoid:"o nanoid",guid:"o GUID",cuid:"o cuid",cuid2:"o cuid2",ulid:"o ULID",xid:"o XID",ksuid:"o KSUID",datetime:"a data e hora ISO",date:"a data ISO",time:"a hora ISO",duration:"a duração ISO",ipv4:"o endereço IPv4",ipv6:"o endereço IPv6",mac:"o endereço MAC",cidrv4:"a faixa de endereços IPv4",cidrv6:"a faixa de endereços IPv6",base64:"o texto codificado em base64",base64url:"o texto codificado em base64url",json_string:"o texto JSON",e164:"o número E.164",credit_card:"o número de cartão de crédito",currency_code:"o código de moeda",iban:"o IBAN",jwt:"o JWT",template_literal:"a entrada"};const Gender={masculine:{definite:"o",indefinite:"um"},feminine:{definite:"a",indefinite:"uma"}};const TypeDictionary={string:{name:"texto",articles:Gender.masculine},number:{name:"número",articles:Gender.masculine},int:{name:"número inteiro",articles:Gender.masculine},boolean:{name:"valor booleano",articles:Gender.masculine},bigint:{name:"número bigint",articles:Gender.masculine},symbol:{name:"símbolo",articles:Gender.masculine},undefined:{name:'valor "undefined"',articles:Gender.masculine},null:{name:'valor "nulo"',articles:Gender.masculine},never:{name:'valor "never"',articles:Gender.masculine},void:{name:'valor "void"',articles:Gender.masculine},date:{name:"data",articles:Gender.feminine},array:{name:"vetor",articles:Gender.masculine},object:{name:"objeto",articles:Gender.masculine},tuple:{name:"tupla",articles:Gender.feminine},record:{name:"registro",articles:Gender.masculine},map:{name:"mapa",articles:Gender.masculine},set:{name:"conjunto",articles:Gender.masculine},file:{name:"arquivo",articles:Gender.masculine},nonoptional:{name:"valor não opcional",articles:Gender.masculine},nan:{name:'valor "NaN"',articles:Gender.masculine},function:{name:"função",articles:Gender.feminine}};function translateOriginWithArticle(type,articleType){const translatedValue=TypeDictionary[type]??{name:`valor "${type}"`,articles:Gender.masculine};return`${translatedValue.articles[articleType]} ${translatedValue.name}`}return(issue)=>{switch(issue.code){case"invalid_type":{const expected=translateOriginWithArticle(issue.expected,"indefinite");const receivedType=parsedType(issue.input);const received=translateOriginWithArticle(receivedType,"indefinite");return`Entrada inválida: esperava ${expected}, recebeu ${received}`}case"invalid_value":if(issue.values.length===1)return`Entrada inválida: esperava ${stringifyPrimitive(issue.values[0])}`;return`Opção inválida: esperava uma das seguintes opções: ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Grande demais: esperava que ${translateOriginWithArticle(issue.origin,"definite")} tivesse ${adj} ${issue.maximum.toString()} ${sizing.unit??"elementos"}`;return`Grande demais: esperava que ${translateOriginWithArticle(issue.origin,"definite")} fosse ${adj} ${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Pequeno demais: esperava que ${translateOriginWithArticle(issue.origin,"definite")} tivesse ${adj} ${issue.minimum.toString()} ${sizing.unit??"elementos"}`}return`Pequeno demais: esperava que ${translateOriginWithArticle(issue.origin,"definite")} fosse ${adj} ${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`Texto inválido: deve começar com "${_issue.prefix}"`}if(_issue.format==="ends_with")return`Texto inválido: deve terminar com "${_issue.suffix}"`;if(_issue.format==="includes")return`Texto inválido: deve incluir "${_issue.includes}"`;if(_issue.format==="regex")return`Texto inválido: deve corresponder ao padrão ${_issue.pattern}`;return`Formato d${FormatDictionary[_issue.format]??issue.format} inválido`}case"not_multiple_of":return`Número inválido: deve ser múltiplo de ${issue.divisor}`;case"unrecognized_keys":{const plural=issue.keys.length>1?"s":"";return`Chave${plural} inválida${plural}: ${joinValues(issue.keys,", ")}`}case"invalid_key":return`Entrada inválida n${translateOriginWithArticle(issue.origin,"definite")}`;case"invalid_union":if(issue.options&&Array.isArray(issue.options)&&issue.options.length>0){const opts=issue.options.map((o)=>`'${o}'`).join(" | ");return`Valor de discriminação inválido. Esperava ${opts}`}return"Entrada inválida";case"invalid_element":return`Entrada inválida n${translateOriginWithArticle(issue.origin,"definite")}`;default:return`Entrada inválida`}}};function pt_BR_default(){return{localeError:error44()}}var error45=()=>{const Sizable={string:{unit:"caractere",verb:"să aibă"},file:{unit:"octeți",verb:"să aibă"},array:{unit:"elemente",verb:"să aibă"},set:{unit:"elemente",verb:"să aibă"},map:{unit:"intrări",verb:"să aibă"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"intrare",email:"adresă de email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"dată și oră ISO",date:"dată ISO",time:"oră ISO",duration:"durată ISO",ipv4:"adresă IPv4",ipv6:"adresă IPv6",mac:"adresă MAC",cidrv4:"interval IPv4",cidrv6:"interval IPv6",base64:"șir codat base64",base64url:"șir codat base64url",json_string:"șir JSON",e164:"număr E.164",credit_card:"număr de card de credit",currency_code:"cod valutar",iban:"IBAN",jwt:"JWT",template_literal:"intrare"};const TypeDictionary={nan:"NaN",string:"șir",number:"număr",boolean:"boolean",function:"funcție",array:"matrice",object:"obiect",undefined:"nedefinit",symbol:"simbol",bigint:"număr mare",void:"void",never:"never",map:"hartă",set:"set"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;return`Intrare invalidă: așteptat ${expected}, primit ${received}`}case"invalid_value":if(issue.values.length===1)return`Intrare invalidă: așteptat ${stringifyPrimitive(issue.values[0])}`;return`Opțiune invalidă: așteptat una dintre ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Prea mare: așteptat ca ${issue.origin??"valoarea"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit??"elemente"}`;return`Prea mare: așteptat ca ${issue.origin??"valoarea"} să fie ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Prea mic: așteptat ca ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`Prea mic: așteptat ca ${issue.origin} să fie ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`Șir invalid: trebuie să înceapă cu "${_issue.prefix}"`}if(_issue.format==="ends_with")return`Șir invalid: trebuie să se termine cu "${_issue.suffix}"`;if(_issue.format==="includes")return`Șir invalid: trebuie să includă "${_issue.includes}"`;if(_issue.format==="regex")return`Șir invalid: trebuie să se potrivească cu modelul ${_issue.pattern}`;return`Format invalid: ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Număr invalid: trebuie să fie multiplu de ${issue.divisor}`;case"unrecognized_keys":return`Chei nerecunoscute: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Cheie invalidă în ${issue.origin}`;case"invalid_union":return"Intrare invalidă";case"invalid_element":return`Valoare invalidă în ${issue.origin}`;default:return`Intrare invalidă`}}};function ro_default(){return{localeError:error45()}}function getRussianPlural(count,one,few,many){const absCount=Math.abs(count);const lastDigit=absCount%10;const lastTwoDigits=absCount%100;if(lastTwoDigits>=11&&lastTwoDigits<=19){return many}if(lastDigit===1){return one}if(lastDigit>=2&&lastDigit<=4){return few}return many}var error46=()=>{const Sizable={string:{unit:{one:"символ",few:"символа",many:"символов"},verb:"иметь"},file:{unit:{one:"байт",few:"байта",many:"байт"},verb:"иметь"},array:{unit:{one:"элемент",few:"элемента",many:"элементов"},verb:"иметь"},set:{unit:{one:"элемент",few:"элемента",many:"элементов"},verb:"иметь"},map:{unit:{one:"элемент",few:"элемента",many:"элементов"},verb:"иметь"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"ввод",email:"email адрес",url:"URL",emoji:"эмодзи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO дата и время",date:"ISO дата",time:"ISO время",duration:"ISO длительность",ipv4:"IPv4 адрес",ipv6:"IPv6 адрес",mac:"MAC адрес",cidrv4:"IPv4 диапазон",cidrv6:"IPv6 диапазон",base64:"строка в формате base64",base64url:"строка в формате base64url",json_string:"JSON строка",e164:"номер E.164",credit_card:"номер кредитной карты",currency_code:"код валюты",iban:"IBAN",jwt:"JWT",template_literal:"ввод"};const TypeDictionary={nan:"NaN",number:"число",array:"массив"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Неверный ввод: ожидалось instanceof ${issue.expected}, получено ${received}`}return`Неверный ввод: ожидалось ${expected}, получено ${received}`}case"invalid_value":if(issue.values.length===1)return`Неверный ввод: ожидалось ${stringifyPrimitive(issue.values[0])}`;return`Неверный вариант: ожидалось одно из ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing){const maxValue=Number(issue.maximum);const unit=getRussianPlural(maxValue,sizing.unit.one,sizing.unit.few,sizing.unit.many);return`Слишком большое значение: ожидалось, что ${issue.origin??"значение"} будет иметь ${adj}${issue.maximum.toString()} ${unit}`}return`Слишком большое значение: ожидалось, что ${issue.origin??"значение"} будет ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){const minValue=Number(issue.minimum);const unit=getRussianPlural(minValue,sizing.unit.one,sizing.unit.few,sizing.unit.many);return`Слишком маленькое значение: ожидалось, что ${issue.origin} будет иметь ${adj}${issue.minimum.toString()} ${unit}`}return`Слишком маленькое значение: ожидалось, что ${issue.origin} будет ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Неверная строка: должна начинаться с "${_issue.prefix}"`;if(_issue.format==="ends_with")return`Неверная строка: должна заканчиваться на "${_issue.suffix}"`;if(_issue.format==="includes")return`Неверная строка: должна содержать "${_issue.includes}"`;if(_issue.format==="regex")return`Неверная строка: должна соответствовать шаблону ${_issue.pattern}`;return`Неверный ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Неверное число: должно быть кратным ${issue.divisor}`;case"unrecognized_keys":return`Нераспознанн${issue.keys.length>1?"ые":"ый"} ключ${issue.keys.length>1?"и":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Неверный ключ в ${issue.origin}`;case"invalid_union":return"Неверные входные данные";case"invalid_element":return`Неверное значение в ${issue.origin}`;default:return`Неверные входные данные`}}};function ru_default(){return{localeError:error46()}}var error47=()=>{const Sizable={string:{unit:"znakov",verb:"mať"},file:{unit:"bajtov",verb:"mať"},array:{unit:"prvkov",verb:"mať"},set:{unit:"prvkov",verb:"mať"},map:{unit:"položiek",verb:"mať"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"regulárny výraz",email:"e-mailová adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"dátum a čas vo formáte ISO",date:"dátum vo formáte ISO",time:"čas vo formáte ISO",duration:"doba trvania ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",mac:"MAC adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"reťazec zakódovaný vo formáte base64",base64url:"reťazec zakódovaný vo formáte base64url",json_string:"reťazec vo formáte JSON",e164:"číslo E.164",credit_card:"číslo kreditnej karty",currency_code:"kód meny",iban:"IBAN",jwt:"JWT",template_literal:"vstup"};const TypeDictionary={nan:"NaN",number:"číslo",string:"reťazec",function:"funkcia",array:"pole"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Neplatný vstup: očakávané instanceof ${issue.expected}, obdržané ${received}`}return`Neplatný vstup: očakávané ${expected}, obdržané ${received}`}case"invalid_value":if(issue.values.length===1)return`Neplatný vstup: očakávané ${stringifyPrimitive(issue.values[0])}`;return`Neplatný vstup: očakávaná jedna z hodnôt ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing){return`Hodnota je príliš veľká: ${issue.origin??"hodnota"} musí mať ${adj}${issue.maximum.toString()} ${sizing.unit??"prvkov"}`}return`Hodnota je príliš veľká: ${issue.origin??"hodnota"} musí byť ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Hodnota je príliš malá: ${issue.origin??"hodnota"} musí mať ${adj}${issue.minimum.toString()} ${sizing.unit??"prvkov"}`}return`Hodnota je príliš malá: ${issue.origin??"hodnota"} musí byť ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Neplatný reťazec: musí začínať na "${_issue.prefix}"`;if(_issue.format==="ends_with")return`Neplatný reťazec: musí končiť na "${_issue.suffix}"`;if(_issue.format==="includes")return`Neplatný reťazec: musí obsahovať "${_issue.includes}"`;if(_issue.format==="regex")return`Neplatný reťazec: musí zodpovedať vzoru ${_issue.pattern}`;return`Neplatný formát ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Neplatné číslo: musí byť násobkom ${issue.divisor}`;case"unrecognized_keys":return`Neznáme klúče: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Neplatný klúč v ${issue.origin}`;case"invalid_union":return"Neplatný vstup";case"invalid_element":return`Neplatná hodnota v ${issue.origin}`;default:return`Neplatný vstup`}}};function sk_default(){return{localeError:error47()}}var error48=()=>{const Sizable={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"},map:{unit:"elementov",verb:"imeti"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"vnos",email:"e-poštni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in čas",date:"ISO datum",time:"ISO čas",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",mac:"MAC naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 številka",credit_card:"številka kreditne kartice",currency_code:"koda valute",iban:"IBAN",jwt:"JWT",template_literal:"vnos"};const TypeDictionary={nan:"NaN",number:"število",array:"tabela"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Neveljaven vnos: pričakovano instanceof ${issue.expected}, prejeto ${received}`}return`Neveljaven vnos: pričakovano ${expected}, prejeto ${received}`}case"invalid_value":if(issue.values.length===1)return`Neveljaven vnos: pričakovano ${stringifyPrimitive(issue.values[0])}`;return`Neveljavna možnost: pričakovano eno izmed ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Preveliko: pričakovano, da bo ${issue.origin??"vrednost"} imelo ${adj}${issue.maximum.toString()} ${sizing.unit??"elementov"}`;return`Preveliko: pričakovano, da bo ${issue.origin??"vrednost"} ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Premajhno: pričakovano, da bo ${issue.origin} imelo ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`Premajhno: pričakovano, da bo ${issue.origin} ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`Neveljaven niz: mora se začeti z "${_issue.prefix}"`}if(_issue.format==="ends_with")return`Neveljaven niz: mora se končati z "${_issue.suffix}"`;if(_issue.format==="includes")return`Neveljaven niz: mora vsebovati "${_issue.includes}"`;if(_issue.format==="regex")return`Neveljaven niz: mora ustrezati vzorcu ${_issue.pattern}`;return`Neveljaven ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Neveljavno število: mora biti večkratnik ${issue.divisor}`;case"unrecognized_keys":return`Neprepoznan${issue.keys.length>1?"i ključi":" ključ"}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Neveljaven ključ v ${issue.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${issue.origin}`;default:return"Neveljaven vnos"}}};function sl_default(){return{localeError:error48()}}var error49=()=>{const Sizable={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att innehålla"},set:{unit:"objekt",verb:"att innehålla"},map:{unit:"objekt",verb:"att innehålla"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"reguljärt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-adress",ipv6:"IPv6-adress",mac:"MAC-adress",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad sträng",base64url:"base64url-kodad sträng",json_string:"JSON-sträng",e164:"E.164-nummer",credit_card:"kreditkortsnummer",currency_code:"valutakod",iban:"IBAN",jwt:"JWT",template_literal:"mall-literal"};const TypeDictionary={nan:"NaN",number:"antal",array:"lista"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Ogiltig inmatning: förväntat instanceof ${issue.expected}, fick ${received}`}return`Ogiltig inmatning: förväntat ${expected}, fick ${received}`}case"invalid_value":if(issue.values.length===1)return`Ogiltig inmatning: förväntat ${stringifyPrimitive(issue.values[0])}`;return`Ogiltigt val: förväntade en av ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing){return`För stor(t): förväntade ${issue.origin??"värdet"} att ha ${adj}${issue.maximum.toString()} ${sizing.unit??"element"}`}return`För stor(t): förväntat ${issue.origin??"värdet"} att ha ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`För lite(t): förväntade ${issue.origin??"värdet"} att ha ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`För lite(t): förväntade ${issue.origin??"värdet"} att ha ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`Ogiltig sträng: måste börja med "${_issue.prefix}"`}if(_issue.format==="ends_with")return`Ogiltig sträng: måste sluta med "${_issue.suffix}"`;if(_issue.format==="includes")return`Ogiltig sträng: måste innehålla "${_issue.includes}"`;if(_issue.format==="regex")return`Ogiltig sträng: måste matcha mönstret "${_issue.pattern}"`;return`Ogiltig(t) ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Ogiltigt tal: måste vara en multipel av ${issue.divisor}`;case"unrecognized_keys":return`${issue.keys.length>1?"Okända nycklar":"Okänd nyckel"}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${issue.origin??"värdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt värde i ${issue.origin??"värdet"}`;default:return`Ogiltig input`}}};function sv_default(){return{localeError:error49()}}var error50=()=>{const Sizable={string:{unit:"எழுத்துக்கள்",verb:"கொண்டிருக்க வேண்டும்"},file:{unit:"பைட்டுகள்",verb:"கொண்டிருக்க வேண்டும்"},array:{unit:"உறுப்புகள்",verb:"கொண்டிருக்க வேண்டும்"},set:{unit:"உறுப்புகள்",verb:"கொண்டிருக்க வேண்டும்"},map:{unit:"உறுப்புகள்",verb:"கொண்டிருக்க வேண்டும்"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"உள்ளீடு",email:"மின்னஞ்சல் முகவரி",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO தேதி நேரம்",date:"ISO தேதி",time:"ISO நேரம்",duration:"ISO கால அளவு",ipv4:"IPv4 முகவரி",ipv6:"IPv6 முகவரி",mac:"MAC முகவரி",cidrv4:"IPv4 வரம்பு",cidrv6:"IPv6 வரம்பு",base64:"base64-encoded சரம்",base64url:"base64url-encoded சரம்",json_string:"JSON சரம்",e164:"E.164 எண்",credit_card:"கடன் அட்டை எண்",currency_code:"நாணயக் குறியீடு",iban:"IBAN",jwt:"JWT",template_literal:"input"};const TypeDictionary={nan:"NaN",number:"எண்",array:"அணி",null:"வெறுமை"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது instanceof ${issue.expected}, பெறப்பட்டது ${received}`}return`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${expected}, பெறப்பட்டது ${received}`}case"invalid_value":if(issue.values.length===1)return`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${stringifyPrimitive(issue.values[0])}`;return`தவறான விருப்பம்: எதிர்பார்க்கப்பட்டது ${joinValues(issue.values,"|")} இல் ஒன்று`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing){return`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${issue.origin??"மதிப்பு"} ${adj}${issue.maximum.toString()} ${sizing.unit??"உறுப்புகள்"} ஆக இருக்க வேண்டும்`}return`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${issue.origin??"மதிப்பு"} ${adj}${issue.maximum.toString()} ஆக இருக்க வேண்டும்`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ஆக இருக்க வேண்டும்`}return`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${issue.origin} ${adj}${issue.minimum.toString()} ஆக இருக்க வேண்டும்`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`தவறான சரம்: "${_issue.prefix}" இல் தொடங்க வேண்டும்`;if(_issue.format==="ends_with")return`தவறான சரம்: "${_issue.suffix}" இல் முடிவடைய வேண்டும்`;if(_issue.format==="includes")return`தவறான சரம்: "${_issue.includes}" ஐ உள்ளடக்க வேண்டும்`;if(_issue.format==="regex")return`தவறான சரம்: ${_issue.pattern} முறைபாட்டுடன் பொருந்த வேண்டும்`;return`தவறான ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`தவறான எண்: ${issue.divisor} இன் பலமாக இருக்க வேண்டும்`;case"unrecognized_keys":return`அடையாளம் தெரியாத விசை${issue.keys.length>1?"கள்":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`${issue.origin} இல் தவறான விசை`;case"invalid_union":return"தவறான உள்ளீடு";case"invalid_element":return`${issue.origin} இல் தவறான மதிப்பு`;default:return`தவறான உள்ளீடு`}}};function ta_default(){return{localeError:error50()}}var error51=()=>{const Sizable={string:{unit:"аломат",verb:"дошта бошад"},file:{unit:"байт",verb:"дошта бошад"},array:{unit:"унсур",verb:"дошта бошад"},set:{unit:"унсур",verb:"дошта бошад"},map:{unit:"сабт",verb:"дошта бошад"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"вуруд",email:"суроғаи email",url:"URL",emoji:"эмоҷи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"санаву вақти ISO",date:"санаи ISO",time:"вақти ISO",duration:"давомнокии ISO",ipv4:"суроғаи IPv4",ipv6:"суроғаи IPv6",mac:"суроғаи MAC",cidrv4:"маҳдудаи IPv4",cidrv6:"маҳдудаи IPv6",base64:"сатри дар формати base64",base64url:"сатри дар формати base64url",json_string:"сатри JSON",e164:"рақами E.164",credit_card:"рақами корти кредитӣ",currency_code:"рамзи асъор",iban:"IBAN",jwt:"JWT",template_literal:"вуруд"};const TypeDictionary={nan:"NaN",number:"рақам",string:"сатр",array:"массив",object:"объект",date:"сана"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;return`Вуруди нодуруст: ${expected} интизор мерафт, ${received} гирифта шуд`}case"invalid_value":if(issue.values.length===1)return`Вуруди нодуруст: ${stringifyPrimitive(issue.values[0])} интизор мерафт`;return`Интихоби нодуруст: яке аз ${joinValues(issue.values,"|")} интизор мерафт`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Хеле калон: ${issue.origin??"қимат"} бояд ${adj}${issue.maximum.toString()} ${sizing.unit} ${sizing.verb}`;return`Хеле калон: ${issue.origin??"қимат"} бояд ${adj}${issue.maximum.toString()} бошад`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing)return`Хеле хурд: ${issue.origin} бояд ${adj}${issue.minimum.toString()} ${sizing.unit} ${sizing.verb}`;return`Хеле хурд: ${issue.origin} бояд ${adj}${issue.minimum.toString()} бошад`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Сатри нодуруст: бояд бо "${_issue.prefix}" оғоз шавад`;if(_issue.format==="ends_with")return`Сатри нодуруст: бояд бо "${_issue.suffix}" анҷом ёбад`;if(_issue.format==="includes")return`Сатри нодуруст: бояд "${_issue.includes}"-ро дар бар гирад`;if(_issue.format==="regex")return`Сатри нодуруст: бояд ба намунаи ${_issue.pattern} мувофиқат кунад`;return`${FormatDictionary[_issue.format]??issue.format}-и нодуруст`}case"not_multiple_of":return`Рақами нодуруст: бояд ба ${issue.divisor} бе бақия тақсим шавад`;case"unrecognized_keys":return`Калид${issue.keys.length>1?"ҳои":"и"} номаълум: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Калиди нодуруст дар ${issue.origin}`;case"invalid_union":if(issue.options&&Array.isArray(issue.options)&&issue.options.length>0){const opts=issue.options.map((o)=>`'${o}'`).join(" | ");return`Қимати нодурусти дискриминатор: ${opts} интизор мерафт`}return"Вуруди нодуруст";case"invalid_element":return`Қимати нодуруст дар ${issue.origin}`;default:return`Вуруди нодуруст`}}};function tg_default(){return{localeError:error51()}}var error52=()=>{const Sizable={string:{unit:"ตัวอักษร",verb:"ควรมี"},file:{unit:"ไบต์",verb:"ควรมี"},array:{unit:"รายการ",verb:"ควรมี"},set:{unit:"รายการ",verb:"ควรมี"},map:{unit:"รายการ",verb:"ควรมี"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"ข้อมูลที่ป้อน",email:"ที่อยู่อีเมล",url:"URL",emoji:"อิโมจิ",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"วันที่เวลาแบบ ISO",date:"วันที่แบบ ISO",time:"เวลาแบบ ISO",duration:"ช่วงเวลาแบบ ISO",ipv4:"ที่อยู่ IPv4",ipv6:"ที่อยู่ IPv6",mac:"ที่อยู่ MAC",cidrv4:"ช่วง IP แบบ IPv4",cidrv6:"ช่วง IP แบบ IPv6",base64:"ข้อความแบบ Base64",base64url:"ข้อความแบบ Base64 สำหรับ URL",json_string:"ข้อความแบบ JSON",e164:"เบอร์โทรศัพท์ระหว่างประเทศ (E.164)",credit_card:"หมายเลขบัตรเครดิต",currency_code:"รหัสสกุลเงิน",iban:"IBAN",jwt:"โทเคน JWT",template_literal:"ข้อมูลที่ป้อน"};const TypeDictionary={nan:"NaN",number:"ตัวเลข",array:"อาร์เรย์ (Array)",null:"ไม่มีค่า (null)"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น instanceof ${issue.expected} แต่ได้รับ ${received}`}return`ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น ${expected} แต่ได้รับ ${received}`}case"invalid_value":if(issue.values.length===1)return`ค่าไม่ถูกต้อง: ควรเป็น ${stringifyPrimitive(issue.values[0])}`;return`ตัวเลือกไม่ถูกต้อง: ควรเป็นหนึ่งใน ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"ไม่เกิน":"น้อยกว่า";const sizing=getSizing(issue.origin);if(sizing)return`เกินกำหนด: ${issue.origin??"ค่า"} ควรมี${adj} ${issue.maximum.toString()} ${sizing.unit??"รายการ"}`;return`เกินกำหนด: ${issue.origin??"ค่า"} ควรมี${adj} ${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?"อย่างน้อย":"มากกว่า";const sizing=getSizing(issue.origin);if(sizing){return`น้อยกว่ากำหนด: ${issue.origin} ควรมี${adj} ${issue.minimum.toString()} ${sizing.unit}`}return`น้อยกว่ากำหนด: ${issue.origin} ควรมี${adj} ${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`รูปแบบไม่ถูกต้อง: ข้อความต้องขึ้นต้นด้วย "${_issue.prefix}"`}if(_issue.format==="ends_with")return`รูปแบบไม่ถูกต้อง: ข้อความต้องลงท้ายด้วย "${_issue.suffix}"`;if(_issue.format==="includes")return`รูปแบบไม่ถูกต้อง: ข้อความต้องมี "${_issue.includes}" อยู่ในข้อความ`;if(_issue.format==="regex")return`รูปแบบไม่ถูกต้อง: ต้องตรงกับรูปแบบที่กำหนด ${_issue.pattern}`;return`รูปแบบไม่ถูกต้อง: ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`ตัวเลขไม่ถูกต้อง: ต้องเป็นจำนวนที่หารด้วย ${issue.divisor} ได้ลงตัว`;case"unrecognized_keys":return`พบคีย์ที่ไม่รู้จัก: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`คีย์ไม่ถูกต้องใน ${issue.origin}`;case"invalid_union":return"ข้อมูลไม่ถูกต้อง: ไม่ตรงกับรูปแบบยูเนียนที่กำหนดไว้";case"invalid_element":return`ข้อมูลไม่ถูกต้องใน ${issue.origin}`;default:return`ข้อมูลไม่ถูกต้อง`}}};function th_default(){return{localeError:error52()}}var error53=()=>{const Sizable={string:{unit:"simwol",verb:"bolmaly"},file:{unit:"baýt",verb:"bolmaly"},array:{unit:"elementler",verb:"bolmaly"},set:{unit:"elementler",verb:"bolmaly"},map:{unit:"elementler",verb:"bolmaly"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"giriş",email:"e-poçta salgysy",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO sene we wagt",date:"ISO sene",time:"ISO wagt",duration:"ISO wagt aralygy",ipv4:"IPv4 salgysy",ipv6:"IPv6 salgysy",mac:"MAC salgysy",cidrv4:"IPv4 aralygy",cidrv6:"IPv6 aralygy",base64:"base64 bilen şifrlenen setir",base64url:"base64url bilen şifrlenen setir",json_string:"JSON setiri",e164:"E.164 nomeri",credit_card:"kredit kartynyň nomeri",currency_code:"walýuta kody",iban:"IBAN",jwt:"JWT",template_literal:"şablon"};const TypeDictionary={nan:"NaN"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;return`Nädogry baha: garaşylan ${expected} ýerine ${received} alyndy`}case"invalid_value":if(issue.values.length===1)return`Nädogry baha: ${stringifyPrimitive(issue.values[0])} bolmaly`;return`Nädogry saýlaw: aşakdakylardan biri bolmaly: ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Has uly: garaşylýan ${issue.origin??"baha"} ${adj} ${issue.maximum.toString()} ${sizing.unit??"element"}`;return`Has uly: garaşylýan ${issue.origin??"baha"} ${adj} ${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing)return`Has kiçi: garaşylýan ${issue.origin} ${adj} ${issue.minimum.toString()} ${sizing.unit}`;return`Has kiçi: garaşylýan ${issue.origin} ${adj} ${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Nädogry setir: "${_issue.prefix}" bilen başlamaly`;if(_issue.format==="ends_with")return`Nädogry setir: "${_issue.suffix}" bilen gutarmaly`;if(_issue.format==="includes")return`Nädogry setir: "${_issue.includes}" saklamaly`;if(_issue.format==="regex")return`Nädogry setir: ${_issue.pattern} nusga laýyk bolmaly`;return`Nädogry ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Nädogry san: ${issue.divisor} bilen galyndysyz bölünmeli`;case"unrecognized_keys":return`Tanalmaýan açar${issue.keys.length>1?"lar":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`${issue.origin} içinde nädogry açar`;case"invalid_union":return"Nädogry baha";case"invalid_element":return`${issue.origin} içinde nädogry baha`;default:return`Nädogry baha`}}};function tk_default(){return{localeError:error53()}}var error54=()=>{const Sizable={string:{unit:"karakter",verb:"olmalı"},file:{unit:"bayt",verb:"olmalı"},array:{unit:"öğe",verb:"olmalı"},set:{unit:"öğe",verb:"olmalı"},map:{unit:"öğe",verb:"olmalı"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO süre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",mac:"MAC adresi",cidrv4:"IPv4 aralığı",cidrv6:"IPv6 aralığı",base64:"base64 ile şifrelenmiş metin",base64url:"base64url ile şifrelenmiş metin",json_string:"JSON dizesi",e164:"E.164 sayısı",credit_card:"kredi kartı numarası",currency_code:"para birimi kodu",iban:"IBAN",jwt:"JWT",template_literal:"Şablon dizesi"};const TypeDictionary={nan:"NaN"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Geçersiz değer: beklenen instanceof ${issue.expected}, alınan ${received}`}return`Geçersiz değer: beklenen ${expected}, alınan ${received}`}case"invalid_value":if(issue.values.length===1)return`Geçersiz değer: beklenen ${stringifyPrimitive(issue.values[0])}`;return`Geçersiz seçenek: aşağıdakilerden biri olmalı: ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Çok büyük: beklenen ${issue.origin??"değer"} ${adj}${issue.maximum.toString()} ${sizing.unit??"öğe"}`;return`Çok büyük: beklenen ${issue.origin??"değer"} ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing)return`Çok küçük: beklenen ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`;return`Çok küçük: beklenen ${issue.origin} ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Geçersiz metin: "${_issue.prefix}" ile başlamalı`;if(_issue.format==="ends_with")return`Geçersiz metin: "${_issue.suffix}" ile bitmeli`;if(_issue.format==="includes")return`Geçersiz metin: "${_issue.includes}" içermeli`;if(_issue.format==="regex")return`Geçersiz metin: ${_issue.pattern} desenine uymalı`;return`Geçersiz ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Geçersiz sayı: ${issue.divisor} ile tam bölünebilmeli`;case"unrecognized_keys":return`Tanınmayan anahtar${issue.keys.length>1?"lar":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`${issue.origin} içinde geçersiz anahtar`;case"invalid_union":return"Geçersiz değer";case"invalid_element":return`${issue.origin} içinde geçersiz değer`;default:return`Geçersiz değer`}}};function tr_default(){return{localeError:error54()}}var error55=()=>{const Sizable={string:{unit:"символів",verb:"матиме"},file:{unit:"байтів",verb:"матиме"},array:{unit:"елементів",verb:"матиме"},set:{unit:"елементів",verb:"матиме"},map:{unit:"елементів",verb:"матиме"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"вхідні дані",email:"адреса електронної пошти",url:"URL",emoji:"емодзі",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"дата та час ISO",date:"дата ISO",time:"час ISO",duration:"тривалість ISO",ipv4:"адреса IPv4",ipv6:"адреса IPv6",mac:"адреса MAC",cidrv4:"діапазон IPv4",cidrv6:"діапазон IPv6",base64:"рядок у кодуванні base64",base64url:"рядок у кодуванні base64url",json_string:"рядок JSON",e164:"номер E.164",credit_card:"номер кредитної картки",currency_code:"код валюти",iban:"IBAN",jwt:"JWT",template_literal:"вхідні дані"};const TypeDictionary={nan:"NaN",number:"число",array:"масив"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Неправильні вхідні дані: очікується instanceof ${issue.expected}, отримано ${received}`}return`Неправильні вхідні дані: очікується ${expected}, отримано ${received}`}case"invalid_value":if(issue.values.length===1)return`Неправильні вхідні дані: очікується ${stringifyPrimitive(issue.values[0])}`;return`Неправильна опція: очікується одне з ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Занадто велике: очікується, що ${issue.origin??"значення"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit??"елементів"}`;return`Занадто велике: очікується, що ${issue.origin??"значення"} буде ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Занадто мале: очікується, що ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`Занадто мале: очікується, що ${issue.origin} буде ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Неправильний рядок: повинен починатися з "${_issue.prefix}"`;if(_issue.format==="ends_with")return`Неправильний рядок: повинен закінчуватися на "${_issue.suffix}"`;if(_issue.format==="includes")return`Неправильний рядок: повинен містити "${_issue.includes}"`;if(_issue.format==="regex")return`Неправильний рядок: повинен відповідати шаблону ${_issue.pattern}`;return`Неправильний ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Неправильне число: повинно бути кратним ${issue.divisor}`;case"unrecognized_keys":return`Нерозпізнаний ключ${issue.keys.length>1?"і":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Неправильний ключ у ${issue.origin}`;case"invalid_union":return"Неправильні вхідні дані";case"invalid_element":return`Неправильне значення у ${issue.origin}`;default:return`Неправильні вхідні дані`}}};function uk_default(){return{localeError:error55()}}function ua_default(){return uk_default()}var error56=()=>{const Sizable={string:{unit:"حروف",verb:"ہونا"},file:{unit:"بائٹس",verb:"ہونا"},array:{unit:"آئٹمز",verb:"ہونا"},set:{unit:"آئٹمز",verb:"ہونا"},map:{unit:"آئٹمز",verb:"ہونا"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"ان پٹ",email:"ای میل ایڈریس",url:"یو آر ایل",emoji:"ایموجی",uuid:"یو یو آئی ڈی",uuidv4:"یو یو آئی ڈی وی 4",uuidv6:"یو یو آئی ڈی وی 6",nanoid:"نینو آئی ڈی",guid:"جی یو آئی ڈی",cuid:"سی یو آئی ڈی",cuid2:"سی یو آئی ڈی 2",ulid:"یو ایل آئی ڈی",xid:"ایکس آئی ڈی",ksuid:"کے ایس یو آئی ڈی",datetime:"آئی ایس او ڈیٹ ٹائم",date:"آئی ایس او تاریخ",time:"آئی ایس او وقت",duration:"آئی ایس او مدت",ipv4:"آئی پی وی 4 ایڈریس",ipv6:"آئی پی وی 6 ایڈریس",mac:"ایم اے سی ایڈریس",cidrv4:"آئی پی وی 4 رینج",cidrv6:"آئی پی وی 6 رینج",base64:"بیس 64 ان کوڈڈ سٹرنگ",base64url:"بیس 64 یو آر ایل ان کوڈڈ سٹرنگ",json_string:"جے ایس او این سٹرنگ",e164:"ای 164 نمبر",credit_card:"کریڈٹ کارڈ نمبر",currency_code:"کرنسی کوڈ",iban:"IBAN",jwt:"جے ڈبلیو ٹی",template_literal:"ان پٹ"};const TypeDictionary={nan:"NaN",number:"نمبر",array:"آرے",null:"نل"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`غلط ان پٹ: instanceof ${issue.expected} متوقع تھا، ${received} موصول ہوا`}return`غلط ان پٹ: ${expected} متوقع تھا، ${received} موصول ہوا`}case"invalid_value":if(issue.values.length===1)return`غلط ان پٹ: ${stringifyPrimitive(issue.values[0])} متوقع تھا`;return`غلط آپشن: ${joinValues(issue.values,"|")} میں سے ایک متوقع تھا`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`بہت بڑا: ${issue.origin??"ویلیو"} کے ${adj}${issue.maximum.toString()} ${sizing.unit??"عناصر"} ہونے متوقع تھے`;return`بہت بڑا: ${issue.origin??"ویلیو"} کا ${adj}${issue.maximum.toString()} ہونا متوقع تھا`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`بہت چھوٹا: ${issue.origin} کے ${adj}${issue.minimum.toString()} ${sizing.unit} ہونے متوقع تھے`}return`بہت چھوٹا: ${issue.origin} کا ${adj}${issue.minimum.toString()} ہونا متوقع تھا`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`غلط سٹرنگ: "${_issue.prefix}" سے شروع ہونا چاہیے`}if(_issue.format==="ends_with")return`غلط سٹرنگ: "${_issue.suffix}" پر ختم ہونا چاہیے`;if(_issue.format==="includes")return`غلط سٹرنگ: "${_issue.includes}" شامل ہونا چاہیے`;if(_issue.format==="regex")return`غلط سٹرنگ: پیٹرن ${_issue.pattern} سے میچ ہونا چاہیے`;return`غلط ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`غلط نمبر: ${issue.divisor} کا مضاعف ہونا چاہیے`;case"unrecognized_keys":return`غیر تسلیم شدہ کی${issue.keys.length>1?"ز":""}: ${joinValues(issue.keys,"، ")}`;case"invalid_key":return`${issue.origin} میں غلط کی`;case"invalid_union":return"غلط ان پٹ";case"invalid_element":return`${issue.origin} میں غلط ویلیو`;default:return`غلط ان پٹ`}}};function ur_default(){return{localeError:error56()}}var error57=()=>{const Sizable={string:{unit:"belgi",verb:"bo‘lishi kerak"},file:{unit:"bayt",verb:"bo‘lishi kerak"},array:{unit:"element",verb:"bo‘lishi kerak"},set:{unit:"element",verb:"bo‘lishi kerak"},map:{unit:"yozuv",verb:"bo‘lishi kerak"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"kirish",email:"elektron pochta manzili",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO sana va vaqti",date:"ISO sana",time:"ISO vaqt",duration:"ISO davomiylik",ipv4:"IPv4 manzil",ipv6:"IPv6 manzil",mac:"MAC manzil",cidrv4:"IPv4 diapazon",cidrv6:"IPv6 diapazon",base64:"base64 kodlangan satr",base64url:"base64url kodlangan satr",json_string:"JSON satr",e164:"E.164 raqam",credit_card:"kredit karta raqami",currency_code:"valyuta kodi",iban:"IBAN",jwt:"JWT",template_literal:"kirish"};const TypeDictionary={nan:"NaN",number:"raqam",array:"massiv"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Noto‘g‘ri kirish: kutilgan instanceof ${issue.expected}, qabul qilingan ${received}`}return`Noto‘g‘ri kirish: kutilgan ${expected}, qabul qilingan ${received}`}case"invalid_value":if(issue.values.length===1)return`Noto‘g‘ri kirish: kutilgan ${stringifyPrimitive(issue.values[0])}`;return`Noto‘g‘ri variant: quyidagilardan biri kutilgan ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Juda katta: kutilgan ${issue.origin??"qiymat"} ${adj}${issue.maximum.toString()} ${sizing.unit} ${sizing.verb}`;return`Juda katta: kutilgan ${issue.origin??"qiymat"} ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Juda kichik: kutilgan ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit} ${sizing.verb}`}return`Juda kichik: kutilgan ${issue.origin} ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Noto‘g‘ri satr: "${_issue.prefix}" bilan boshlanishi kerak`;if(_issue.format==="ends_with")return`Noto‘g‘ri satr: "${_issue.suffix}" bilan tugashi kerak`;if(_issue.format==="includes")return`Noto‘g‘ri satr: "${_issue.includes}" ni o‘z ichiga olishi kerak`;if(_issue.format==="regex")return`Noto‘g‘ri satr: ${_issue.pattern} shabloniga mos kelishi kerak`;return`Noto‘g‘ri ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Noto‘g‘ri raqam: ${issue.divisor} ning karralisi bo‘lishi kerak`;case"unrecognized_keys":return`Noma’lum kalit${issue.keys.length>1?"lar":""}: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`${issue.origin} dagi kalit noto‘g‘ri`;case"invalid_union":return"Noto‘g‘ri kirish";case"invalid_element":return`${issue.origin} da noto‘g‘ri qiymat`;default:return`Noto‘g‘ri kirish`}}};function uz_default(){return{localeError:error57()}}var error58=()=>{const Sizable={string:{unit:"ký tự",verb:"có"},file:{unit:"byte",verb:"có"},array:{unit:"phần tử",verb:"có"},set:{unit:"phần tử",verb:"có"},map:{unit:"phần tử",verb:"có"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"đầu vào",email:"địa chỉ email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ngày giờ ISO",date:"ngày ISO",time:"giờ ISO",duration:"khoảng thời gian ISO",ipv4:"địa chỉ IPv4",ipv6:"địa chỉ IPv6",mac:"địa chỉ MAC",cidrv4:"dải IPv4",cidrv6:"dải IPv6",base64:"chuỗi mã hóa base64",base64url:"chuỗi mã hóa base64url",json_string:"chuỗi JSON",e164:"số E.164",credit_card:"số thẻ tín dụng",currency_code:"mã tiền tệ",iban:"IBAN",jwt:"JWT",template_literal:"đầu vào"};const TypeDictionary={nan:"NaN",number:"số",array:"mảng"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Đầu vào không hợp lệ: mong đợi instanceof ${issue.expected}, nhận được ${received}`}return`Đầu vào không hợp lệ: mong đợi ${expected}, nhận được ${received}`}case"invalid_value":if(issue.values.length===1)return`Đầu vào không hợp lệ: mong đợi ${stringifyPrimitive(issue.values[0])}`;return`Tùy chọn không hợp lệ: mong đợi một trong các giá trị ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Quá lớn: mong đợi ${issue.origin??"giá trị"} ${sizing.verb} ${adj}${issue.maximum.toString()} ${sizing.unit??"phần tử"}`;return`Quá lớn: mong đợi ${issue.origin??"giá trị"} ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`Quá nhỏ: mong đợi ${issue.origin} ${sizing.verb} ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`Quá nhỏ: mong đợi ${issue.origin} ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Chuỗi không hợp lệ: phải bắt đầu bằng "${_issue.prefix}"`;if(_issue.format==="ends_with")return`Chuỗi không hợp lệ: phải kết thúc bằng "${_issue.suffix}"`;if(_issue.format==="includes")return`Chuỗi không hợp lệ: phải bao gồm "${_issue.includes}"`;if(_issue.format==="regex")return`Chuỗi không hợp lệ: phải khớp với mẫu ${_issue.pattern}`;return`${FormatDictionary[_issue.format]??issue.format} không hợp lệ`}case"not_multiple_of":return`Số không hợp lệ: phải là bội số của ${issue.divisor}`;case"unrecognized_keys":return`Khóa không được nhận dạng: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Khóa không hợp lệ trong ${issue.origin}`;case"invalid_union":return"Đầu vào không hợp lệ";case"invalid_element":return`Giá trị không hợp lệ trong ${issue.origin}`;default:return`Đầu vào không hợp lệ`}}};function vi_default(){return{localeError:error58()}}var error59=()=>{const Sizable={string:{unit:"字符",verb:"包含"},file:{unit:"字节",verb:"包含"},array:{unit:"项",verb:"包含"},set:{unit:"项",verb:"包含"},map:{unit:"项",verb:"包含"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"输入",email:"电子邮件",url:"URL",emoji:"表情符号",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO日期时间",date:"ISO日期",time:"ISO时间",duration:"ISO时长",ipv4:"IPv4地址",ipv6:"IPv6地址",mac:"MAC地址",cidrv4:"IPv4网段",cidrv6:"IPv6网段",base64:"base64编码字符串",base64url:"base64url编码字符串",json_string:"JSON字符串",e164:"E.164号码",credit_card:"信用卡号",currency_code:"货币代码",iban:"IBAN",jwt:"JWT",template_literal:"输入"};const TypeDictionary={nan:"NaN",number:"数字",array:"数组",null:"空值(null)"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`无效输入:期望 instanceof ${issue.expected},实际接收 ${received}`}return`无效输入:期望 ${expected},实际接收 ${received}`}case"invalid_value":if(issue.values.length===1)return`无效输入:期望 ${stringifyPrimitive(issue.values[0])}`;return`无效选项:期望以下之一 ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`数值过大:期望 ${issue.origin??"值"} ${adj}${issue.maximum.toString()} ${sizing.unit??"个元素"}`;return`数值过大:期望 ${issue.origin??"值"} ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`数值过小:期望 ${issue.origin} ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`数值过小:期望 ${issue.origin} ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`无效字符串:必须以 "${_issue.prefix}" 开头`;if(_issue.format==="ends_with")return`无效字符串:必须以 "${_issue.suffix}" 结尾`;if(_issue.format==="includes")return`无效字符串:必须包含 "${_issue.includes}"`;if(_issue.format==="regex")return`无效字符串:必须满足正则表达式 ${_issue.pattern}`;return`无效${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`无效数字:必须是 ${issue.divisor} 的倍数`;case"unrecognized_keys":return`出现未知的键(key): ${joinValues(issue.keys,", ")}`;case"invalid_key":return`${issue.origin} 中的键(key)无效`;case"invalid_union":return"无效输入";case"invalid_element":return`${issue.origin} 中包含无效值(value)`;default:return`无效输入`}}};function zh_CN_default(){return{localeError:error59()}}var error60=()=>{const Sizable={string:{unit:"字元",verb:"擁有"},file:{unit:"位元組",verb:"擁有"},array:{unit:"項目",verb:"擁有"},set:{unit:"項目",verb:"擁有"},map:{unit:"項目",verb:"擁有"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"輸入",email:"郵件地址",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO 日期時間",date:"ISO 日期",time:"ISO 時間",duration:"ISO 期間",ipv4:"IPv4 位址",ipv6:"IPv6 位址",mac:"MAC 位址",cidrv4:"IPv4 範圍",cidrv6:"IPv6 範圍",base64:"base64 編碼字串",base64url:"base64url 編碼字串",json_string:"JSON 字串",e164:"E.164 數值",credit_card:"信用卡號",currency_code:"貨幣代碼",iban:"IBAN",jwt:"JWT",template_literal:"輸入"};const TypeDictionary={nan:"NaN"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`無效的輸入值:預期為 instanceof ${issue.expected},但收到 ${received}`}return`無效的輸入值:預期為 ${expected},但收到 ${received}`}case"invalid_value":if(issue.values.length===1)return`無效的輸入值:預期為 ${stringifyPrimitive(issue.values[0])}`;return`無效的選項:預期為以下其中之一 ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`數值過大:預期 ${issue.origin??"值"} 應為 ${adj}${issue.maximum.toString()} ${sizing.unit??"個元素"}`;return`數值過大:預期 ${issue.origin??"值"} 應為 ${adj}${issue.maximum.toString()}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing){return`數值過小:預期 ${issue.origin} 應為 ${adj}${issue.minimum.toString()} ${sizing.unit}`}return`數值過小:預期 ${issue.origin} 應為 ${adj}${issue.minimum.toString()}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with"){return`無效的字串:必須以 "${_issue.prefix}" 開頭`}if(_issue.format==="ends_with")return`無效的字串:必須以 "${_issue.suffix}" 結尾`;if(_issue.format==="includes")return`無效的字串:必須包含 "${_issue.includes}"`;if(_issue.format==="regex")return`無效的字串:必須符合格式 ${_issue.pattern}`;return`無效的 ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`無效的數字:必須為 ${issue.divisor} 的倍數`;case"unrecognized_keys":return`無法識別的鍵值${issue.keys.length>1?"們":""}:${joinValues(issue.keys,"、")}`;case"invalid_key":return`${issue.origin} 中有無效的鍵值`;case"invalid_union":return"無效的輸入值";case"invalid_element":return`${issue.origin} 中有無效的值`;default:return`無效的輸入值`}}};function zh_TW_default(){return{localeError:error60()}}var error61=()=>{const Sizable={string:{unit:"àmi",verb:"ní"},file:{unit:"bytes",verb:"ní"},array:{unit:"nkan",verb:"ní"},set:{unit:"nkan",verb:"ní"},map:{unit:"nkan",verb:"ní"}};function getSizing(origin){return Sizable[origin]??null}const FormatDictionary={regex:"ẹ̀rọ ìbáwọlé",email:"àdírẹ́sì ìmẹ́lì",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"àkókò ISO",date:"ọjọ́ ISO",time:"àkókò ISO",duration:"àkókò tó pé ISO",ipv4:"àdírẹ́sì IPv4",ipv6:"àdírẹ́sì IPv6",mac:"àdírẹ́sì MAC",cidrv4:"àgbègbè IPv4",cidrv6:"àgbègbè IPv6",base64:"ọ̀rọ̀ tí a kọ́ ní base64",base64url:"ọ̀rọ̀ base64url",json_string:"ọ̀rọ̀ JSON",e164:"nọ́mbà E.164",credit_card:"nọmba kaadi gbese",currency_code:"koodu owó",iban:"IBAN",jwt:"JWT",template_literal:"ẹ̀rọ ìbáwọlé"};const TypeDictionary={nan:"NaN",number:"nọ́mbà",array:"akopọ"};return(issue)=>{switch(issue.code){case"invalid_type":{const expected=TypeDictionary[issue.expected]??issue.expected;const receivedType=parsedType(issue.input);const received=TypeDictionary[receivedType]??receivedType;if(/^[A-Z]/.test(issue.expected)){return`Ìbáwọlé aṣìṣe: a ní láti fi instanceof ${issue.expected}, àmọ̀ a rí ${received}`}return`Ìbáwọlé aṣìṣe: a ní láti fi ${expected}, àmọ̀ a rí ${received}`}case"invalid_value":if(issue.values.length===1)return`Ìbáwọlé aṣìṣe: a ní láti fi ${stringifyPrimitive(issue.values[0])}`;return`Àṣàyàn aṣìṣe: yan ọ̀kan lára ${joinValues(issue.values,"|")}`;case"too_big":{const adj=issue.inclusive?"<=":"<";const sizing=getSizing(issue.origin);if(sizing)return`Tó pọ̀ jù: a ní láti jẹ́ pé ${issue.origin??"iye"} ${sizing.verb} ${adj}${issue.maximum} ${sizing.unit}`;return`Tó pọ̀ jù: a ní láti jẹ́ ${adj}${issue.maximum}`}case"too_small":{const adj=issue.inclusive?">=":">";const sizing=getSizing(issue.origin);if(sizing)return`Kéré ju: a ní láti jẹ́ pé ${issue.origin} ${sizing.verb} ${adj}${issue.minimum} ${sizing.unit}`;return`Kéré ju: a ní láti jẹ́ ${adj}${issue.minimum}`}case"invalid_format":{const _issue=issue;if(_issue.format==="starts_with")return`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bẹ̀rẹ̀ pẹ̀lú "${_issue.prefix}"`;if(_issue.format==="ends_with")return`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ parí pẹ̀lú "${_issue.suffix}"`;if(_issue.format==="includes")return`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ ní "${_issue.includes}"`;if(_issue.format==="regex")return`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bá àpẹẹrẹ mu ${_issue.pattern}`;return`Aṣìṣe: ${FormatDictionary[_issue.format]??issue.format}`}case"not_multiple_of":return`Nọ́mbà aṣìṣe: gbọ́dọ̀ jẹ́ èyà pípín ti ${issue.divisor}`;case"unrecognized_keys":return`Bọtìnì àìmọ̀: ${joinValues(issue.keys,", ")}`;case"invalid_key":return`Bọtìnì aṣìṣe nínú ${issue.origin}`;case"invalid_union":return"Ìbáwọlé aṣìṣe";case"invalid_element":return`Iye aṣìṣe nínú ${issue.origin}`;default:return"Ìbáwọlé aṣìṣe"}}};function yo_default(){return{localeError:error61()}}var _a2;var $output=Symbol("ZodOutput");var $input=Symbol("ZodInput");class $ZodRegistry{constructor(){this._map=new WeakMap;this._idmap=new Map}add(schema,..._meta){const meta=_meta[0];this._map.set(schema,meta);if(meta&&typeof meta==="object"&&"id"in meta){this._idmap.set(meta.id,schema)}return this}clear(){this._map=new WeakMap;this._idmap=new Map;return this}remove(schema){const meta=this._map.get(schema);if(meta&&typeof meta==="object"&&"id"in meta){this._idmap.delete(meta.id)}this._map.delete(schema);return this}get(schema){const p=schema._zod.parent;if(p){const pm={...this.get(p)??{}};delete pm.id;const f={...pm,...this._map.get(schema)};return Object.keys(f).length?f:undefined}return this._map.get(schema)}has(schema){return this._map.has(schema)}}function registry(){return new $ZodRegistry}(_a2=globalThis).__zod_globalRegistry??(_a2.__zod_globalRegistry=registry());var globalRegistry=globalThis.__zod_globalRegistry;var INVALID=Symbol.for("zod.compile.invalid");var FALLBACK_FLAG=Symbol.for("zod.compile.fallback");class ZodCompileAsyncError extends Error{constructor(message="z.compile does not support async refinements, transforms, or checks"){super(message);this.name="ZodCompileAsyncError"}}class ZodCompileUnsupportedError extends Error{constructor(feature,islandable=true){super(`z.compile does not support ${feature}; this schema must use the runtime parser`);this.name="ZodCompileUnsupportedError";this.islandable=islandable}}function compileValidator(schema,parser){try{return compileFn(schema,{assertOnly:true})}catch{return parser}}function compile(schema,options){try{const parser=compileFn(schema);const clone=withParser(schema,parser);clone._zod.bag.validator=compileValidator(schema,parser);return clone}catch(err){if(options?.strict)throw err;return schema}}function withParser(schema,parser){if(isRecursiveSchema(schema)){throw new ZodCompileUnsupportedError("a schema whose subtree contains a reference cycle")}const clone2=clone(schema);const liveRun=schema._zod.run;const originalRun=liveRun.__originalRun??liveRun;const wrapped=(payload,ctx)=>{if(ctx?.async||ctx?.direction==="backward"||ctx?.skipChecks||ctx?.[FALLBACK_FLAG]){return originalRun(payload,ctx)}if(ctx&&isBackEdge(ctx,payload.value)){return originalRun(payload,ctx)}const out=parser(payload.value);if(out!==INVALID){payload.value=out;return payload}if(ctx)ctx[FALLBACK_FLAG]=true;return originalRun(payload,ctx)};wrapped.__originalRun=originalRun;clone2._zod.bag.fallbackRun=originalRun;clone2._zod.bag.validator=parser;clone2._zod.run=wrapped;if(!liveRun.__originalRun)installCompiledUserMethods(clone2,schema,parser);return clone2}function installCompiledUserMethods(target,source,parser){const targetAny=target;const sourceAny=source;if(typeof sourceAny.safeParse==="function"){const originalSafeParse=sourceAny.safeParse;targetAny.safeParse=(data,params)=>{const out=parser(data);if(out!==INVALID){return{success:true,data:out}}return originalSafeParse(data,params)}}if(typeof sourceAny.parse==="function"){const originalParse=sourceAny.parse;targetAny.parse=(data,params)=>{const out=parser(data);if(out!==INVALID){return out}return originalParse(data,params)}}}function compileFn(schema,options){let recursive=true;try{recursive=isRecursiveSchema(schema)}catch{}if(recursive){throw new ZodCompileUnsupportedError("a schema whose subtree contains a reference cycle")}const ctx={constants:new Map,constantCounter:0,varCounter:0,definite:true};const doc=new Doc(["input"]);const outputAccessor=generateCheck(doc,ctx,schema,"input",!options?.assertOnly);doc.write(outputAccessor===null?`return true;`:`return ${outputAccessor};`);const constantNames=["INVALID",...ctx.constants.keys()];const constantValues=[INVALID,...ctx.constants.values()];const code=doc.content.join(`
63
+ `);const fullCode=options?.debug?constantNames.length>0?`// Constants: ${constantNames.join(", ")}
64
+ ${code}`:code:"";const F=Function;const factoryCode=`return (input) => {
65
+ ${code}
66
+ }`;let fn;try{const factory=new F(...constantNames,factoryCode);fn=factory(...constantValues)}catch(err){throw new ZodCompileUnsupportedError(`this schema (generated code failed to evaluate: ${err.message})`)}if(options?.debug){fn.code=fullCode}fn.definite=ctx.definite;return fn}function addConstant(ctx,value){for(const[name,v]of ctx.constants){if(v===value)return name}const name=`c${ctx.constantCounter++}`;ctx.constants.set(name,value);return name}function addUserConstant(ctx,fn){ctx.definite=false;return addConstant(ctx,fn)}function newVar(ctx){return`v${ctx.varCounter++}`}function runtimeRun(schema,value){const result=schema._zod.run({value,issues:[]},{});if(result&&typeof result.then==="function")return INVALID;const r=result;return r.issues.length===0?r.value:INVALID}function compileChild(doc,ctx,schema,accessor,needsValue=true){const contentLen=doc.content.length;const constantCount=ctx.constants.size;const constantCounter=ctx.constantCounter;const varCounter=ctx.varCounter;try{return generateCheck(doc,ctx,schema,accessor,needsValue)}catch(err){if(!(err instanceof ZodCompileUnsupportedError)||!err.islandable)throw err;doc.content.length=contentLen;if(ctx.constants.size>constantCount){const trailing=Array.from(ctx.constants.keys()).slice(constantCount);for(const k of trailing)ctx.constants.delete(k)}ctx.constantCounter=constantCounter;ctx.varCounter=varCounter;return emitRuntimeIsland(doc,ctx,schema,accessor)}}function emitRuntimeIsland(doc,ctx,schema,accessor){ctx.definite=false;const schemaConst=addConstant(ctx,schema);const runConst=addConstant(ctx,runtimeRun);const outVar=newVar(ctx);doc.write(`const ${outVar} = ${runConst}(${schemaConst}, ${accessor});`);doc.write(`if (${outVar} === INVALID) return INVALID;`);return outVar}var WHEN_DEFAULTED_CHECKS=new Set(["max_size","min_size","size_equals","max_length","min_length","length_equals"]);function generateChecks(doc,ctx,schema,accessor){const schemaChecks=schema._zod.def.checks;if(!schemaChecks||schemaChecks.length===0)return accessor;let currentAccessor=accessor;for(const check of schemaChecks){const def=check._zod.def;if(def.when&&!WHEN_DEFAULTED_CHECKS.has(def.check)){throw new ZodCompileUnsupportedError(`check with a custom "when" condition`)}switch(def.check){case"greater_than":generateGreaterThanCheck(doc,ctx,def,currentAccessor);break;case"less_than":generateLessThanCheck(doc,ctx,def,currentAccessor);break;case"multiple_of":generateMultipleOfCheck(doc,ctx,def,currentAccessor);break;case"number_format":generateNumberFormatCheck(doc,def,currentAccessor);break;case"min_length":{const min=numericOperand(def.minimum,"min_length");const len=codePointLengthVar(doc,ctx,currentAccessor,`${currentAccessor}.length >= ${min} && ${currentAccessor}.length < ${def.minimum*2}`);doc.write(`if (${len} < ${min}) return INVALID;`);break}case"max_length":{const max=numericOperand(def.maximum,"max_length");const len=codePointLengthVar(doc,ctx,currentAccessor,`${currentAccessor}.length > ${max}`);doc.write(`if (${len} > ${max}) return INVALID;`);break}case"length_equals":{const exact=numericOperand(def.length,"length_equals");const len=codePointLengthVar(doc,ctx,currentAccessor,`${currentAccessor}.length >= ${exact} && ${currentAccessor}.length <= ${def.length*2}`);doc.write(`if (${len} !== ${exact}) return INVALID;`);break}case"min_size":doc.write(`if (${currentAccessor}.size < ${numericOperand(def.minimum,"min_size")}) return INVALID;`);break;case"max_size":doc.write(`if (${currentAccessor}.size > ${numericOperand(def.maximum,"max_size")}) return INVALID;`);break;case"size_equals":doc.write(`if (${currentAccessor}.size !== ${numericOperand(def.size,"size_equals")}) return INVALID;`);break;case"string_format":currentAccessor=generateStringFormatCheck(doc,ctx,def,currentAccessor);break;case"custom":currentAccessor=generateCustomRefineCheck(doc,ctx,check,currentAccessor);break;case"bigint_format":generateBigIntFormatCheck(doc,def,currentAccessor);break;case"mime_type":generateMimeTypeCheck(doc,ctx,def,currentAccessor);break;case"property":generatePropertyCheck(doc,ctx,def,currentAccessor);break;case"properties":generatePropertiesChecks(doc,ctx,def,currentAccessor);break;case"overwrite":{const newAccessor=newVar(ctx);generateOverwriteCheck(doc,ctx,check,currentAccessor,newAccessor);currentAccessor=newAccessor;break}default:{throw new ZodCompileUnsupportedError(`check type ${def.check}`)}}}return currentAccessor}function codePointLengthVar(doc,ctx,accessor,inDoubt){const cpLen=addConstant(ctx,codePointLength);const v=newVar(ctx);doc.write(`const ${v} = typeof ${accessor} === "string" && ${inDoubt} ? ${cpLen}(${accessor}) : ${accessor}.length;`);return v}function numericOperand(value,label){if(typeof value!=="number"||!Number.isFinite(value)){throw new ZodCompileUnsupportedError(`${label} bound of type ${typeof value}`)}return`${value}`}function comparisonOperand(ctx,value){if(typeof value==="bigint")return`${value}n`;if(typeof value==="number"){if(Number.isNaN(value))throw new ZodCompileUnsupportedError("comparison check with NaN bound");return`${value}`}if(value instanceof Date){if(Number.isNaN(value.getTime())){throw new ZodCompileUnsupportedError("comparison check with Invalid Date bound")}return addConstant(ctx,value)}throw new ZodCompileUnsupportedError(`comparison check bound of type ${typeof value}`)}function generateGreaterThanCheck(doc,ctx,def,accessor){const op=def.inclusive?"<":"<=";doc.write(`if (${accessor} ${op} ${comparisonOperand(ctx,def.value)}) return INVALID;`)}function generateLessThanCheck(doc,ctx,def,accessor){const op=def.inclusive?">":">=";doc.write(`if (${accessor} ${op} ${comparisonOperand(ctx,def.value)}) return INVALID;`)}function generateMultipleOfCheck(doc,ctx,def,accessor){if(typeof def.value==="bigint"){if(def.value===BigInt(0))throw new ZodCompileUnsupportedError("multiple_of check with a zero divisor");doc.write(`if (${accessor} % ${def.value}n !== 0n) return INVALID;`)}else{const remainder=addConstant(ctx,floatSafeRemainder);doc.write(`if (${remainder}(${accessor}, ${numericOperand(def.value,"multiple_of")}) !== 0) return INVALID;`)}}function generateNumberFormatCheck(doc,def,accessor){const format=def.format;switch(format){case"safeint":doc.write(`if (!Number.isSafeInteger(${accessor})) return INVALID;`);break;case"int32":doc.write(`if (!Number.isInteger(${accessor}) || ${accessor} < -2147483648 || ${accessor} > 2147483647) return INVALID;`);break;case"uint32":doc.write(`if (!Number.isInteger(${accessor}) || ${accessor} < 0 || ${accessor} > 4294967295) return INVALID;`);break;case"float32":doc.write(`if (!Number.isFinite(${accessor}) || ${accessor} < -3.4028234663852886e38 || ${accessor} > 3.4028234663852886e38) return INVALID;`);break;case"float64":doc.write(`if (!Number.isFinite(${accessor})) return INVALID;`);break;default:{throw new ZodCompileUnsupportedError(`number format ${format}`)}}}function generateBigIntFormatCheck(doc,def,accessor){const format=def.format;if(!format)return;switch(format){case"int64":doc.write(`if (${accessor} < -9223372036854775808n || ${accessor} > 9223372036854775807n) return INVALID;`);break;case"uint64":doc.write(`if (${accessor} < 0n || ${accessor} > 18446744073709551615n) return INVALID;`);break;default:{throw new ZodCompileUnsupportedError(`bigint format ${format}`)}}}function generateMimeTypeCheck(doc,ctx,def,accessor){const mimeTypes=def.mime;if(mimeTypes&&mimeTypes.length>0){const mimeSet=addConstant(ctx,new Set(mimeTypes));doc.write(`if (!${mimeSet}.has(${accessor}.type)) return INVALID;`)}}function generatePropertiesChecks(doc,ctx,def,accessor){if(def.when){throw new ZodCompileUnsupportedError(`check with a custom "when" condition`)}doc.write(`if (${accessor} == null) return INVALID;`);const shape=def.shape;for(const key of Reflect.ownKeys(shape)){const keyExpr=typeof key==="symbol"?addConstant(ctx,key):esc(key);const inputVar=newVar(ctx);doc.write(`const ${inputVar} = ${accessor}[${keyExpr}];`);compileChild(doc,ctx,shape[key],inputVar,false)}}function generatePropertyCheck(doc,ctx,def,accessor){const propAccessor=`${accessor}[${JSON.stringify(def.property)}]`;generateCheck(doc,ctx,def.schema,propAccessor)}function generateOverwriteCheck(doc,ctx,check,currentAccessor,newAccessor){const tx=check._zod.def.tx;if(!tx){throw new ZodCompileUnsupportedError("overwrite check without a transform function")}if(isAsyncFunction(tx)){throw new ZodCompileAsyncError("z.compile: async overwrite transforms are not supported")}const txConst=addConstant(ctx,tx);doc.write(`const ${newAccessor} = ${txConst}(${currentAccessor});`)}function throwAsync(){throw new $ZodAsyncError}function pushIssue(issue){this.issues.push(issue)}function generateCustomRefineCheck(doc,ctx,check,accessor){const def=check._zod.def;if(def.fn){if(isAsyncFunction(def.fn)){throw new ZodCompileAsyncError("z.compile: async .refine() predicates are not supported")}const fnConst=addUserConstant(ctx,def.fn);const throwAsyncConst=addConstant(ctx,throwAsync);const resVar=newVar(ctx);doc.write(`const ${resVar} = ${fnConst}(${accessor});`);doc.write(`if (${resVar} instanceof Promise) ${throwAsyncConst}();`);doc.write(`if (!${resVar}) return INVALID;`);return accessor}if(check._zod.check){if(isAsyncFunction(check._zod.check)){throw new ZodCompileAsyncError("z.compile: async .superRefine() / check functions are not supported")}const checkFn=check._zod.check;const helperFn=(value)=>{const fakePayload={value,issues:[],addIssue:pushIssue};const result=checkFn(fakePayload);if(result instanceof Promise)throwAsync();return fakePayload.issues.length===0?fakePayload.value:INVALID};const helperConst=addUserConstant(ctx,helperFn);const outVar=newVar(ctx);doc.write(`const ${outVar} = ${helperConst}(${accessor});`);doc.write(`if (${outVar} === INVALID) return INVALID;`);return outVar}throw new ZodCompileUnsupportedError("custom check without a predicate or check function")}var PATTERN_IS_COMPLETE=new Set(["cidrv4","cuid","cuid2","date","datetime","duration","e164","email","emoji","ends_with","guid","includes","ipv4","ksuid","lowercase","mac","nanoid","regex","starts_with","time","ulid","uppercase","uuid","xid"]);function generateStringFormatCheck(doc,ctx,def,accessor,needsValue=true){const fmt=def.format;if(fmt==="base64"){const validator=addConstant(ctx,isValidBase64);doc.write(`if (!${validator}(${accessor})) return INVALID;`);return accessor}if(fmt==="base64url"){const validator=addConstant(ctx,isValidBase64URL);doc.write(`if (!${validator}(${accessor})) return INVALID;`);return accessor}if(fmt==="jwt"){const validator=addConstant(ctx,isValidJWT);const alg=addConstant(ctx,def.alg??null);doc.write(`if (!${validator}(${accessor}, ${alg})) return INVALID;`);return accessor}if(fmt==="ipv6"){const validator=addConstant(ctx,isValidIPv6);doc.write(`if (!${validator}(${accessor})) return INVALID;`);return accessor}if(fmt==="cidrv6"){const validator=addConstant(ctx,isValidCIDRv6);doc.write(`if (!${validator}(${accessor})) return INVALID;`);return accessor}if(fmt==="credit_card"){const validator=addConstant(ctx,isValidCreditCard);doc.write(`if (!${validator}(${accessor})) return INVALID;`);return accessor}if(fmt==="iban"){const validator=addConstant(ctx,isValidIBAN);doc.write(`if (!${validator}(${accessor})) return INVALID;`);return accessor}const formatDef=def;if(fmt==="url"||fmt==="httpurl"||formatDef.normalize||formatDef.hostname!==undefined||formatDef.protocol!==undefined){const parseConst=addConstant(ctx,validateURL);const defConst=addConstant(ctx,def);const trimVar=newVar(ctx);const urlVar=newVar(ctx);doc.write(`const ${trimVar} = ${accessor}.trim();`);doc.write(`const ${urlVar} = ${parseConst}(${trimVar}, ${defConst});`);doc.write(`if (typeof ${urlVar} === "number") return INVALID;`);if(formatDef.hostname!==undefined){const hostnameConst=addConstant(ctx,urlHostnameOk);doc.write(`if (!${hostnameConst}(${urlVar}, ${defConst}.hostname)) return INVALID;`)}if(formatDef.protocol!==undefined){const protocolConst=addConstant(ctx,urlProtocolOk);doc.write(`if (!${protocolConst}(${urlVar}, ${defConst}.protocol)) return INVALID;`)}if(!needsValue)return null;const outputVar=newVar(ctx);const outputExpr=formatDef.normalize?`${urlVar}.href`:`${addConstant(ctx,stripTabAndNewline)}(${trimVar})`;doc.write(`const ${outputVar} = ${outputExpr};`);return outputVar}const customFn=def.fn;if(customFn){if(isAsyncFunction(customFn))throw new ZodCompileUnsupportedError(`async string format ${fmt}`);const fnConst=addConstant(ctx,customFn);doc.write(`if (!${fnConst}(${accessor})) return INVALID;`);return accessor}if(PATTERN_IS_COMPLETE.has(fmt)&&def.pattern){const patternConst=addConstant(ctx,def.pattern);doc.write(`${patternConst}.lastIndex = 0;`);doc.write(`if (!${patternConst}.test(${accessor})) return INVALID;`);return accessor}const format=def.format;switch(format){case"regex":throw new ZodCompileUnsupportedError("regex format without a pattern");case"lowercase":doc.write(`if (${accessor} !== ${accessor}.toLowerCase()) return INVALID;`);break;case"uppercase":doc.write(`if (${accessor} !== ${accessor}.toUpperCase()) return INVALID;`);break;case"includes":doc.write(`if (!${accessor}.includes(${esc(def.includes)})) return INVALID;`);break;case"starts_with":{const prefix=def.prefix;doc.write(`if (${accessor}.slice(0, ${prefix.length}) !== ${esc(prefix)}) return INVALID;`);break}case"ends_with":{const suffix=def.suffix;doc.write(`if (${accessor}.slice(-${suffix.length}) !== ${esc(suffix)}) return INVALID;`);break}default:{throw new ZodCompileUnsupportedError(`string format ${format}`)}}return accessor}function generateCheck(doc,ctx,schema,accessor,needsValue=true){const def=schema._zod.def;const type=def.type;if(def.coerce){throw new ZodCompileUnsupportedError(`coercion (z.coerce.${type}())`)}const buildsValue=needsValue||!!def.checks?.length;let typeAccessor;switch(type){case"string":typeAccessor=generateStringCheck(doc,ctx,schema,accessor,buildsValue);break;case"number":typeAccessor=generateNumberCheck(doc,schema,accessor);break;case"boolean":typeAccessor=generateBooleanCheck(doc,accessor);break;case"bigint":typeAccessor=generateBigIntCheck(doc,schema,accessor);break;case"symbol":typeAccessor=generateSymbolCheck(doc,accessor);break;case"undefined":typeAccessor=generateUndefinedCheck(doc,accessor);break;case"null":typeAccessor=generateNullCheck(doc,accessor);break;case"any":case"unknown":typeAccessor=accessor;break;case"never":doc.write("return INVALID;");typeAccessor=accessor;break;case"void":typeAccessor=generateVoidCheck(doc,accessor);break;case"nan":typeAccessor=generateNaNCheck(doc,accessor);break;case"date":typeAccessor=generateDateCheck(doc,accessor);break;case"object":typeAccessor=generateObjectCheck(doc,ctx,schema,accessor,buildsValue);break;case"optional":typeAccessor=generateOptionalCheck(doc,ctx,schema,accessor,buildsValue);break;case"nullable":typeAccessor=generateNullableCheck(doc,ctx,schema,accessor,buildsValue);break;case"array":typeAccessor=generateArrayCheck(doc,ctx,schema,accessor,buildsValue);break;case"literal":typeAccessor=generateLiteralCheck(doc,ctx,schema,accessor);break;case"enum":typeAccessor=generateEnumCheck(doc,ctx,schema,accessor);break;case"readonly":{const innerOut=generateWrapperCheck(doc,ctx,schema,accessor);const frozenVar=newVar(ctx);doc.write(`const ${frozenVar} = Object.freeze(${innerOut});`);typeAccessor=frozenVar;break}case"success":generateWrapperCheck(doc,ctx,schema,accessor);typeAccessor="true";break;case"default":case"prefault":typeAccessor=generateDefaultCheck(doc,ctx,schema,accessor);break;case"nonoptional":typeAccessor=generateNonOptionalCheck(doc,ctx,schema,accessor);break;case"tuple":typeAccessor=generateTupleCheck(doc,ctx,schema,accessor);break;case"union":typeAccessor=generateUnionCheck(doc,ctx,schema,accessor);break;case"intersection":typeAccessor=generateIntersectionCheck(doc,ctx,schema,accessor);break;case"record":typeAccessor=generateRecordCheck(doc,ctx,schema,accessor);break;case"map":typeAccessor=generateMapCheck(doc,ctx,schema,accessor);break;case"set":typeAccessor=generateSetCheck(doc,ctx,schema,accessor);break;case"file":typeAccessor=generateFileCheck(doc,accessor);break;case"template_literal":typeAccessor=generateTemplateLiteralCheck(doc,ctx,schema,accessor);break;case"lazy":typeAccessor=generateLazyCheck(doc,ctx,schema,accessor);break;case"pipe":typeAccessor=generatePipeCheck(doc,ctx,schema,accessor);break;case"custom":typeAccessor=generateCustomCheck(doc,ctx,schema,accessor);break;case"transform":typeAccessor=generateTransformCheck(doc,ctx,schema,accessor);break;case"catch":typeAccessor=generateCatchCheck(doc,ctx,schema,accessor);break;default:{throw new ZodCompileUnsupportedError(`schema type ${type}`)}}if(typeAccessor===null)return null;return generateChecks(doc,ctx,schema,typeAccessor)}function generateStringCheck(doc,ctx,schema,accessor,needsValue=true){doc.write(`if (typeof ${accessor} !== "string") return INVALID;`);const def=schema._zod.def;if(def.format===undefined)return accessor;return generateStringFormatCheck(doc,ctx,def,accessor,needsValue)}function generateNumberCheck(doc,schema,accessor){doc.write(`if (typeof ${accessor} !== "number" || !Number.isFinite(${accessor})) return INVALID;`);const def=schema._zod.def;if(def.check==="number_format"&&def.format){generateNumberFormatCheck(doc,{format:def.format},accessor)}return accessor}function generateBooleanCheck(doc,accessor){doc.write(`if (typeof ${accessor} !== "boolean") return INVALID;`);return accessor}function generateBigIntCheck(doc,schema,accessor){doc.write(`if (typeof ${accessor} !== "bigint") return INVALID;`);const def=schema._zod.def;if(def.format){switch(def.format){case"int64":doc.write(`if (${accessor} < -9223372036854775808n || ${accessor} > 9223372036854775807n) return INVALID;`);break;case"uint64":doc.write(`if (${accessor} < 0n || ${accessor} > 18446744073709551615n) return INVALID;`);break}}return accessor}function generateSymbolCheck(doc,accessor){doc.write(`if (typeof ${accessor} !== "symbol") return INVALID;`);return accessor}function generateUndefinedCheck(doc,accessor){doc.write(`if (${accessor} !== undefined) return INVALID;`);return accessor}function generateNullCheck(doc,accessor){doc.write(`if (${accessor} !== null) return INVALID;`);return accessor}function generateVoidCheck(doc,accessor){doc.write(`if (${accessor} !== undefined) return INVALID;`);return accessor}function generateNaNCheck(doc,accessor){doc.write(`if (typeof ${accessor} !== "number" || !Number.isNaN(${accessor})) return INVALID;`);return accessor}function generateDateCheck(doc,accessor){doc.write(`if (!(${accessor} instanceof Date) || Number.isNaN(${accessor}.getTime())) return INVALID;`);return accessor}function generateObjectCheck(doc,ctx,schema,accessor,buildsValue=true){const def=schema._zod.def;doc.write(`if (typeof ${accessor} !== "object" || ${accessor} === null || Array.isArray(${accessor})) return INVALID;`);const shape=def.shape;const keys=Object.keys(shape);const symbolKeys=Object.getOwnPropertySymbols(shape);const allKeys=symbolKeys.length?[...keys,...symbolKeys]:keys;const keyExpr=(k)=>typeof k==="symbol"?addConstant(ctx,k):esc(k);const propKey=(k)=>typeof k==="symbol"?`[${keyExpr(k)}]`:esc(k);const propShape=shape;if(keys.includes("__proto__")){throw new ZodCompileUnsupportedError('object shape key "__proto__"')}const propOutputs=new Map;for(const key of allKeys){const propSchema=propShape[key];const kx=keyExpr(key);const inputVar=newVar(ctx);doc.write(`const ${inputVar} = ${accessor}[${kx}];`);if(propSchema._zod.optin!==undefined){const outputVar=newVar(ctx);doc.write(`let ${outputVar} = (() => {`);doc.indented((d)=>{const outputAccessor=compileChild(d,ctx,propSchema,inputVar);d.write(`return ${outputAccessor};`)});doc.write(`})();`);if(propSchema._zod.optout==="optional"){doc.write(`if (${outputVar} === INVALID) {`);doc.indented((d)=>{d.write(`if (${kx} in ${accessor}) return INVALID;`);d.write(`${outputVar} = undefined;`)});doc.write(`}`)}else{doc.write(`if (${outputVar} === INVALID) return INVALID;`)}propOutputs.set(key,outputVar)}else{if(requiresPresenceCheck(propSchema)){doc.write(`if (!(${kx} in ${accessor})) return INVALID;`)}const outputAccessor=compileChild(doc,ctx,propSchema,inputVar,buildsValue);if(outputAccessor!==null)propOutputs.set(key,outputAccessor)}}const catchall=def.catchall;let unknownKeysMode="none";if(catchall){const catchallType=catchall._zod.def.type;if(catchallType==="never"){const condition=keys.map((k)=>`k !== ${esc(k)}`).join(" && ")||"true";doc.write(`for (const k in ${accessor}) {`);doc.indented((d)=>{d.write(`if (${condition}) return INVALID;`)});doc.write(`}`)}else if((catchallType==="unknown"||catchallType==="any")&&!catchall._zod.def.checks?.length){unknownKeysMode="passthrough"}else{unknownKeysMode="schema"}}const outputVar=newVar(ctx);const hasConditionalKeys=allKeys.some((k)=>mayOmitUndefined(propShape[k])||dropsWhenAbsent(propShape[k]));if(!buildsValue){if(unknownKeysMode==="schema"){const knownSet=keys.length>0?addConstant(ctx,new Set(keys)):null;doc.write(`for (const k in ${accessor}) {`);doc.indented((d)=>{d.write(`if (k === "__proto__") continue;`);if(knownSet)d.write(`if (${knownSet}.has(k)) continue;`);const valVar=newVar(ctx);d.write(`const ${valVar} = ${accessor}[k];`);compileChild(d,ctx,catchall,valVar,false)});doc.write(`}`)}return null}if(!hasConditionalKeys){const propLiterals=allKeys.map((k)=>`${propKey(k)}: ${propOutputs.get(k)}`).join(", ");doc.write(`const ${outputVar} = { ${propLiterals} };`)}else{doc.write(`const ${outputVar} = {};`);for(const k of allKeys){const kx=keyExpr(k);const out=propOutputs.get(k);if(dropsWhenAbsent(propShape[k])){doc.write(`if (${kx} in ${accessor}) ${outputVar}[${kx}] = ${out};`)}else if(mayOmitUndefined(propShape[k])){doc.write(`if (${out} !== undefined || ${kx} in ${accessor}) ${outputVar}[${kx}] = ${out};`)}else{doc.write(`${outputVar}[${kx}] = ${out};`)}}}if(unknownKeysMode!=="none"){const knownSet=keys.length>0?addConstant(ctx,new Set(keys)):null;doc.write(`for (const k in ${accessor}) {`);doc.indented((d)=>{d.write(`if (k === "__proto__") continue;`);if(knownSet)d.write(`if (${knownSet}.has(k)) continue;`);if(unknownKeysMode==="passthrough"){d.write(`${outputVar}[k] = ${accessor}[k];`)}else{const valVar=newVar(ctx);d.write(`const ${valVar} = ${accessor}[k];`);const catchallOut=compileChild(d,ctx,catchall,valVar);d.write(`${outputVar}[k] = ${catchallOut};`)}});doc.write(`}`)}return outputVar}function generateOptionalCheck(doc,ctx,schema,accessor,buildsValue=true){const def=schema._zod.def;if(isExactOptional(schema)){return generateCheck(doc,ctx,def.innerType,accessor,buildsValue)}if(def.innerType._zod.optin==="defaulted"){const outputVar=newVar(ctx);const branchVar=newVar(ctx);doc.write(`let ${outputVar};`);doc.write(`if (${accessor} === undefined) {`);doc.indented((d)=>{d.write(`const ${branchVar} = (() => {`);d.indented((d2)=>{const innerOutput=generateCheck(d2,ctx,def.innerType,accessor);d2.write(`return ${innerOutput};`)});d.write(`})();`);d.write(`if (${branchVar} !== INVALID) ${outputVar} = ${branchVar};`)});doc.write(`} else {`);doc.indented((d)=>{const innerOutput=generateCheck(d,ctx,def.innerType,accessor);d.write(`${outputVar} = ${innerOutput};`)});doc.write(`}`);return outputVar}const outputVar=buildsValue?newVar(ctx):null;if(outputVar)doc.write(`let ${outputVar};`);doc.write(`if (${accessor} !== undefined) {`);doc.indented((d)=>{const innerOutput=generateCheck(d,ctx,def.innerType,accessor,buildsValue);if(outputVar&&innerOutput!==null)d.write(`${outputVar} = ${innerOutput};`)});doc.write(`}`);return outputVar}function isExactOptional(schema){return schema._zod.traits?.has("$ZodExactOptional")===true}function requiresPresenceCheck(schema){return schema._zod.optin===undefined&&fastPathAcceptsAbsence(schema)}function fastPathAcceptsAbsence(schema){if(schema._zod.def.coerce)return true;const def=schema._zod.def;switch(def.type){case"any":case"unknown":case"undefined":case"void":case"default":case"prefault":case"transform":case"custom":case"lazy":return true;case"string":case"number":case"boolean":case"bigint":case"symbol":case"null":case"never":case"nan":case"date":case"object":case"array":case"tuple":case"record":case"map":case"set":case"file":case"template_literal":return false;case"nonoptional":return def.innerType?fastPathAcceptsAbsence(def.innerType):false;case"literal":return!!def.values?.includes(undefined);case"enum":return!!schema._zod.values?.has(undefined);case"optional":case"nullable":case"readonly":case"success":return def.innerType?fastPathAcceptsAbsence(def.innerType):true;case"catch":return true;case"union":return def.options?def.options.some(fastPathAcceptsAbsence):true;case"intersection":if(!def.left||!def.right)return true;return fastPathAcceptsAbsence(def.left)&&fastPathAcceptsAbsence(def.right);case"pipe":return def.in?fastPathAcceptsAbsence(def.in):true;default:return true}}function dropsWhenAbsent(schema){return schema._zod.optin==="optional"&&schema._zod.optout==="optional"}function mayOmitUndefined(schema){return(schema._zod.optin!=="defaulted"||schema._zod.optout==="optional")&&mayOutputUndefined(schema)}function mayOutputUndefined(schema){const def=schema._zod.def;switch(def.type){case"string":case"number":case"boolean":case"bigint":case"symbol":case"null":case"nan":case"date":case"object":case"array":case"tuple":case"record":case"map":case"set":case"file":case"template_literal":case"never":case"success":return false;case"literal":return!!def.values?.includes(undefined);case"enum":return!!schema._zod.values?.has(undefined);case"optional":return true;case"nullable":case"readonly":case"nonoptional":return def.innerType?mayOutputUndefined(def.innerType):true;case"union":return def.options?def.options.some(mayOutputUndefined):true;case"intersection":return!def.left||!def.right||mayOutputUndefined(def.left)||mayOutputUndefined(def.right);case"pipe":return def.out?mayOutputUndefined(def.out):true;default:return true}}function generateNullableCheck(doc,ctx,schema,accessor,buildsValue=true){const def=schema._zod.def;const outputVar=buildsValue?newVar(ctx):null;if(outputVar)doc.write(`let ${outputVar} = null;`);doc.write(`if (${accessor} !== null) {`);doc.indented((d)=>{const innerOutput=generateCheck(d,ctx,def.innerType,accessor,buildsValue);if(outputVar&&innerOutput!==null)d.write(`${outputVar} = ${innerOutput};`)});doc.write(`}`);return outputVar}function generateArrayCheck(doc,ctx,schema,accessor,buildsValue=true){const def=schema._zod.def;doc.write(`if (!Array.isArray(${accessor})) return INVALID;`);const outputVar=buildsValue?newVar(ctx):null;const iVar=newVar(ctx);const elemVar=newVar(ctx);if(outputVar)doc.write(`const ${outputVar} = new Array(${accessor}.length);`);doc.write(`for (let ${iVar} = 0; ${iVar} < ${accessor}.length; ${iVar}++) {`);doc.indented((d)=>{d.write(`const ${elemVar} = ${accessor}[${iVar}];`);const elemOutput=compileChild(d,ctx,def.element,elemVar,buildsValue);if(outputVar&&elemOutput!==null)d.write(`${outputVar}[${iVar}] = ${elemOutput};`)});doc.write(`}`);return outputVar}function generateLiteralCheck(doc,ctx,schema,accessor){const def=schema._zod.def;const values=def.values;if(values.length!==1){const literalSet=addConstant(ctx,new Set(values));doc.write(`if (!${literalSet}.has(${accessor})) return INVALID;`);return accessor}const value=values[0];if(typeof value==="number"&&Number.isNaN(value)){const literalSet=addConstant(ctx,new Set(values));doc.write(`if (!${literalSet}.has(${accessor})) return INVALID;`);return accessor}if(typeof value==="string"){doc.write(`if (${accessor} !== ${esc(value)}) return INVALID;`)}else if(typeof value==="number"||typeof value==="boolean"){doc.write(`if (${accessor} !== ${value}) return INVALID;`)}else if(value===null){doc.write(`if (${accessor} !== null) return INVALID;`)}else if(value===undefined){doc.write(`if (${accessor} !== undefined) return INVALID;`)}else if(typeof value==="bigint"){doc.write(`if (${accessor} !== ${value}n) return INVALID;`)}else{throw new ZodCompileUnsupportedError(`literal type ${typeof value}`)}return accessor}function generateEnumCheck(doc,ctx,schema,accessor){const values=schema._zod.values;if(!values){throw new ZodCompileUnsupportedError("enum schema without enumerated values")}const enumSet=addConstant(ctx,values);doc.write(`if (!${enumSet}.has(${accessor})) return INVALID;`);return accessor}function generateWrapperCheck(doc,ctx,schema,accessor){const def=schema._zod.def;return generateCheck(doc,ctx,def.innerType,accessor)}function generateDefaultCheck(doc,ctx,schema,accessor){const def=schema._zod.def;const descriptor=Object.getOwnPropertyDescriptor(schema._zod.def,"defaultValue");const defaultGetter=descriptor?()=>schema._zod.def.defaultValue:undefined;if(schema._zod.def.type==="prefault"){if(!defaultGetter){return generateCheck(doc,ctx,def.innerType,accessor)}const defaultFn=addConstant(ctx,defaultGetter);const inputVar=newVar(ctx);doc.write(`let ${inputVar} = ${accessor};`);doc.write(`if (${accessor} === undefined) ${inputVar} = ${defaultFn}();`);return generateCheck(doc,ctx,def.innerType,inputVar)}const outputVar=newVar(ctx);if(defaultGetter){const defaultFn=addConstant(ctx,defaultGetter);const cloneFn=addConstant(ctx,shallowClone);doc.write(`let ${outputVar};`);doc.write(`if (${accessor} === undefined) {`);doc.indented((d)=>{d.write(`${outputVar} = ${cloneFn}(${defaultFn}());`)});doc.write(`} else {`);doc.indented((d)=>{const innerOutput=generateCheck(d,ctx,def.innerType,accessor);d.write(`${outputVar} = ${innerOutput} === undefined ? ${cloneFn}(${defaultFn}()) : ${innerOutput};`)});doc.write(`}`)}else{doc.write(`let ${outputVar};`);doc.write(`if (${accessor} !== undefined) {`);doc.indented((d)=>{const innerOutput=generateCheck(d,ctx,def.innerType,accessor);d.write(`${outputVar} = ${innerOutput};`)});doc.write(`}`)}return outputVar}function generateNonOptionalCheck(doc,ctx,schema,accessor){const def=schema._zod.def;const innerOutput=generateCheck(doc,ctx,def.innerType,accessor);const outputVar=newVar(ctx);doc.write(`const ${outputVar} = ${innerOutput};`);doc.write(`if (${outputVar} === undefined) return INVALID;`);return outputVar}function generateTupleCheck(doc,ctx,schema,accessor){const def=schema._zod.def;const items=def.items;const rest=def.rest;doc.write(`if (!Array.isArray(${accessor})) return INVALID;`);const optinStart=getTupleOptStart2(items,"optin");const optoutStart=getTupleOptStart2(items,"optout");if(rest){doc.write(`if (${accessor}.length < ${optinStart}) return INVALID;`)}else{doc.write(`if (${accessor}.length < ${optinStart} || ${accessor}.length > ${items.length}) return INVALID;`)}const outputVar=newVar(ctx);doc.write(`const ${outputVar} = [];`);for(let i=0;i<items.length;i++){const itemSchema=items[i];if(i>=optoutStart){doc.write(`if (${outputVar}.length === ${i}) {`);doc.indented((d)=>{d.write(`if (${i} < ${accessor}.length) {`);d.indented((d2)=>{const elemVar=newVar(ctx);d2.write(`const ${elemVar} = ${accessor}[${i}];`);const elemOutput=compileChild(d2,ctx,itemSchema,elemVar);d2.write(`${outputVar}[${i}] = ${elemOutput};`)});d.write(`} else {`);d.indented((d2)=>{if(dropsWhenAbsent(itemSchema)){d2.write(`${outputVar}.length = ${i};`);return}const elemVar=newVar(ctx);const branchVar=newVar(ctx);d2.write(`const ${elemVar} = undefined;`);d2.write(`const ${branchVar} = (() => {`);d2.indented((d3)=>{const elemOutput=compileChild(d3,ctx,itemSchema,elemVar);d3.write(`return ${elemOutput};`)});d2.write(`})();`);d2.write(`if (${branchVar} === INVALID || ${branchVar} === undefined) ${outputVar}.length = ${i};`);d2.write(`else ${outputVar}[${i}] = ${branchVar};`)});d.write(`}`)});doc.write(`}`)}else{const elemVar=newVar(ctx);doc.write(`const ${elemVar} = ${accessor}[${i}];`);const elemOutput=compileChild(doc,ctx,itemSchema,elemVar);doc.write(`${outputVar}[${i}] = ${elemOutput};`)}}if(rest){const iVar=newVar(ctx);const elemVar=newVar(ctx);doc.write(`for (let ${iVar} = ${items.length}; ${iVar} < ${accessor}.length; ${iVar}++) {`);doc.indented((d)=>{d.write(`const ${elemVar} = ${accessor}[${iVar}];`);const elemOutput=compileChild(d,ctx,rest,elemVar);d.write(`${outputVar}[${iVar}] = ${elemOutput};`)});doc.write(`}`)}return outputVar}function getTupleOptStart2(items,key){for(let i=items.length-1;i>=0;i--){const omittable=key==="optin"?items[i]._zod.optin!==undefined:items[i]._zod.optout==="optional";if(!omittable)return i+1}return 0}function generateUnionCheck(doc,ctx,schema,accessor){const def=schema._zod.def;const options=def.options;if(def.discriminator){return generateDiscriminatedUnionCheck(doc,ctx,def,accessor)}if(def.inclusive===false){throw new ZodCompileUnsupportedError("exclusive unions (z.xor)")}if(options.length===0){doc.write("return INVALID;");return accessor}if(options.length===1){return generateCheck(doc,ctx,options[0],accessor)}const allLiterals=options.every((opt)=>opt._zod.def.type==="literal"&&!opt._zod.def.checks?.length);if(allLiterals){const values=new Set(options.flatMap((opt)=>opt._zod.def.values));const valuesConst=addConstant(ctx,values);doc.write(`if (!${valuesConst}.has(${accessor})) return INVALID;`);return accessor}const outputVar=newVar(ctx);doc.write(`let ${outputVar};`);for(let i=0;i<options.length;i++){const opt=options[i];if(i===0){doc.write(`${outputVar} = (() => {`)}else{doc.write(`if (${outputVar} === INVALID) ${outputVar} = (() => {`)}doc.indented((d)=>{const branchOutput=generateCheck(d,ctx,opt,accessor);d.write(`return ${branchOutput};`)});doc.write(`})();`)}doc.write(`if (${outputVar} === INVALID) return INVALID;`);return outputVar}function generateDiscriminatedUnionCheck(doc,ctx,def,accessor){if(def.unionFallback){throw new ZodCompileUnsupportedError("discriminated union with unionFallback")}if(def.options.length===0){doc.write("return INVALID;");return accessor}const discVar=newVar(ctx);const outputVar=newVar(ctx);doc.write(`const ${discVar} = ${accessor}?.[${esc(def.discriminator)}];`);doc.write(`let ${outputVar};`);let firstBranch=true;const claimed=new Set;for(const option of def.options){const values=option._zod.propValues?.[def.discriminator];if(!values||values.size===0){throw new ZodCompileUnsupportedError("discriminated union option without static discriminator values")}for(const value of values){if(claimed.has(value)){throw new ZodCompileUnsupportedError(`duplicate discriminator value ${String(value)}`)}claimed.add(value)}const conditions=Array.from(values,(value)=>literalEquality(ctx,discVar,value));const prefix=firstBranch?"if":"else if";doc.write(`${prefix} (${conditions.join(" || ")}) {`);doc.indented((d)=>{const branchOutput=generateCheck(d,ctx,option,accessor);d.write(`${outputVar} = ${branchOutput};`)});doc.write(`}`);firstBranch=false}doc.write(`else { return INVALID; }`);return outputVar}function literalEquality(ctx,accessor,value){if(typeof value==="string")return`${accessor} === ${esc(value)}`;if(typeof value==="number"){if(Number.isNaN(value))return`Number.isNaN(${accessor})`;return`${accessor} === ${value}`}if(typeof value==="boolean")return`${accessor} === ${value}`;if(value===null)return`${accessor} === null`;if(value===undefined)return`${accessor} === undefined`;if(typeof value==="bigint")return`${accessor} === ${value}n`;if(typeof value==="symbol"){const symbolConst=addConstant(ctx,value);return`${accessor} === ${symbolConst}`}throw new ZodCompileUnsupportedError(`literal discriminator value ${String(value)}`)}function generateIntersectionCheck(doc,ctx,schema,accessor){const def=schema._zod.def;ctx.definite=false;const leftOutput=compileChild(doc,ctx,def.left,accessor);const rightOutput=compileChild(doc,ctx,def.right,accessor);const mergeConst=addConstant(ctx,mergeValues);const mergedVar=newVar(ctx);doc.write(`const ${mergedVar} = ${mergeConst}(${leftOutput}, ${rightOutput});`);doc.write(`if (!${mergedVar}.valid) return INVALID;`);return`${mergedVar}.data`}function generateRecordCheck(doc,ctx,schema,accessor){const def=schema._zod.def;const isPlainObjectConst=addConstant(ctx,isPlainObject);doc.write(`if (!${isPlainObjectConst}(${accessor})) return INVALID;`);const outputVar=newVar(ctx);const kVar=newVar(ctx);const valVar=newVar(ctx);doc.write(`const ${outputVar} = {};`);const recordDef=def;const keyValues=recordDef.partial?undefined:def.keyType._zod.values;if(keyValues){const inputKeys=[];for(const key of keyValues){if(!(typeof key==="string"||typeof key==="number"||typeof key==="symbol")){throw new ZodCompileUnsupportedError(`record key value ${String(key)}`)}const inputKey=typeof key==="number"?key.toString():key;if(inputKey==="__proto__"){throw new ZodCompileUnsupportedError('record key "__proto__"')}inputKeys.push(inputKey);const keyConst=addConstant(ctx,key);const outKey=generateCheck(doc,ctx,def.keyType,keyConst);const valueVar=newVar(ctx);doc.write(`const ${valueVar} = ${accessor}[${literalPropertyKey(ctx,inputKey)}];`);const valOutput=compileChild(doc,ctx,def.valueType,valueVar);doc.write(`${outputVar}[${outKey}] = ${valOutput};`)}const knownKeysConst=addConstant(ctx,new Set(inputKeys));doc.write(`for (const ${kVar} in ${accessor}) {`);doc.indented((d)=>{d.write(`if (${knownKeysConst}.has(${kVar})) continue;`);if(recordDef.mode==="loose"){d.write(`if (${kVar} !== "__proto__") ${outputVar}[${kVar}] = ${accessor}[${kVar}];`)}else{d.write(`return INVALID;`)}});doc.write(`}`);return outputVar}const keyDef=def.keyType._zod.def;const keyIsBareString=keyDef.type==="string"&&keyDef.format===undefined&&!keyDef.coerce&&(keyDef.checks?.length??0)===0;if(!keyIsBareString){const isLoose=def.mode==="loose";const keyFn=compileFn(def.keyType);if(keyFn.definite===false)ctx.definite=false;const keyFast=addConstant(ctx,keyFn);const numericConst=addConstant(ctx,number);const outKeyVar=newVar(ctx);emitOwnKeys(doc,ctx,accessor,kVar,(d)=>{d.write(`let ${outKeyVar} = ${keyFast}(${kVar});`);d.write(`if (${outKeyVar} === INVALID && typeof ${kVar} === "string" && ${numericConst}.test(${kVar})) ${outKeyVar} = ${keyFast}(Number(${kVar}));`);if(isLoose){d.write(`if (${outKeyVar} === INVALID) { ${outputVar}[${kVar}] = ${accessor}[${kVar}]; continue; }`)}else{d.write(`if (${outKeyVar} === INVALID) return INVALID;`)}d.write(`if (${outKeyVar} === "__proto__") continue;`);const valueVar=newVar(ctx);d.write(`const ${valueVar} = ${accessor}[${kVar}];`);const valOutput=compileChild(d,ctx,def.valueType,valueVar);d.write(`${outputVar}[${outKeyVar}] = ${valOutput};`)});return outputVar}emitOwnKeys(doc,ctx,accessor,kVar,(d)=>{d.write(`const ${valVar} = ${accessor}[${kVar}];`);const valOutput=compileChild(d,ctx,def.valueType,valVar);d.write(`${outputVar}[${kVar}] = ${valOutput};`)},`return INVALID;`);return outputVar}function emitOwnKeys(doc,ctx,accessor,kVar,body,onSymbol){const propIsEnumerableConst=addConstant(ctx,Object.prototype.propertyIsEnumerable);const symsVar=newVar(ctx);const keysVar=newVar(ctx);const iVar=newVar(ctx);doc.write(`const ${symsVar} = Object.getOwnPropertySymbols(${accessor});`);doc.write(`const ${keysVar} = Object.getOwnPropertyNames(${accessor});`);doc.write(`for (let ${iVar} = 0; ${iVar} < ${keysVar}.length; ${iVar}++) {`);doc.indented((d)=>{d.write(`const ${kVar} = ${keysVar}[${iVar}];`);d.write(`if (${kVar} === "__proto__" || !${propIsEnumerableConst}.call(${accessor}, ${kVar})) continue;`);body(d)});doc.write(`}`);doc.write(`for (let ${iVar} = 0; ${iVar} < ${symsVar}.length; ${iVar}++) {`);doc.indented((d)=>{d.write(`const ${kVar} = ${symsVar}[${iVar}];`);d.write(`if (!${propIsEnumerableConst}.call(${accessor}, ${kVar})) continue;`);if(onSymbol)d.write(onSymbol);else body(d)});doc.write(`}`)}function literalPropertyKey(ctx,key){if(typeof key==="string")return esc(key);return addConstant(ctx,key)}function generateMapCheck(doc,ctx,schema,accessor){const def=schema._zod.def;doc.write(`if (!(${accessor} instanceof Map)) return INVALID;`);const outputVar=newVar(ctx);const kVar=newVar(ctx);const valVar=newVar(ctx);doc.write(`const ${outputVar} = new Map();`);doc.write(`for (const [${kVar}, ${valVar}] of ${accessor}) {`);doc.indented((d)=>{const keyOutput=generateCheck(d,ctx,def.keyType,kVar);const valOutput=generateCheck(d,ctx,def.valueType,valVar);d.write(`${outputVar}.set(${keyOutput}, ${valOutput});`)});doc.write(`}`);return outputVar}function generateSetCheck(doc,ctx,schema,accessor){const def=schema._zod.def;doc.write(`if (!(${accessor} instanceof Set)) return INVALID;`);const outputVar=newVar(ctx);const valVar=newVar(ctx);doc.write(`const ${outputVar} = new Set();`);doc.write(`for (const ${valVar} of ${accessor}) {`);doc.indented((d)=>{const valOutput=generateCheck(d,ctx,def.valueType,valVar);d.write(`${outputVar}.add(${valOutput});`)});doc.write(`}`);return outputVar}function generateFileCheck(doc,accessor){doc.write(`if (!(${accessor} instanceof File)) return INVALID;`);return accessor}function generateTemplateLiteralCheck(doc,ctx,schema,accessor){doc.write(`if (typeof ${accessor} !== "string") return INVALID;`);const pattern=schema._zod.pattern;if(pattern){const patternConst=addConstant(ctx,pattern);doc.write(`${patternConst}.lastIndex = 0;`);doc.write(`if (!${patternConst}.test(${accessor})) return INVALID;`)}return accessor}function generateLazyCheck(doc,ctx,schema,accessor){const def=schema._zod.def;const getterConst=addUserConstant(ctx,def.getter);const cacheConst=addConstant(ctx,{parser:null});doc.write(`if (!${cacheConst}.parser) {`);doc.indented((d)=>{d.write(`const inner = ${getterConst}();`);d.write(`${cacheConst}.parser = function(input) {`);d.indented((d2)=>{d2.write(`const result = inner._zod.run({ value: input, issues: [] }, {});`);d2.write(`return result.issues.length === 0 ? result.value : INVALID;`)});d.write(`};`)});doc.write(`}`);const outputVar=newVar(ctx);doc.write(`const ${outputVar} = ${cacheConst}.parser(${accessor});`);doc.write(`if (${outputVar} === INVALID) return INVALID;`);return outputVar}function generatePipeCheck(doc,ctx,schema,accessor){const def=schema._zod.def;const inputOutput=generateCheck(doc,ctx,def.in,accessor);if(def.transform){if(isAsyncFunction(def.transform)){throw new ZodCompileAsyncError("z.compile: async transforms in pipes are not supported")}const transformFn=def.transform;const helperFn=(value)=>{const fakePayload={value,issues:[],addIssue:pushIssue};const result=transformFn(value,fakePayload);if(result instanceof Promise)return INVALID;return fakePayload.issues.length===0?result:INVALID};const helperConst=addUserConstant(ctx,helperFn);const transformedVar=newVar(ctx);doc.write(`const ${transformedVar} = ${helperConst}(${inputOutput});`);doc.write(`if (${transformedVar} === INVALID) return INVALID;`);return generateCheck(doc,ctx,def.out,transformedVar)}else{return generateCheck(doc,ctx,def.out,inputOutput)}}function isAsyncFunction(fn){return typeof fn==="function"&&(fn.constructor.name==="AsyncFunction"||fn[Symbol.toStringTag]==="AsyncFunction")}function generateCustomCheck(doc,ctx,schema,accessor){const def=schema._zod.def;if(def.fn){if(isAsyncFunction(def.fn)){throw new ZodCompileAsyncError("z.compile: async custom predicates are not supported")}const fnConst=addUserConstant(ctx,def.fn);const throwAsyncConst=addConstant(ctx,throwAsync);const resVar=newVar(ctx);doc.write(`const ${resVar} = ${fnConst}(${accessor});`);doc.write(`if (${resVar} instanceof Promise) ${throwAsyncConst}();`);doc.write(`if (!${resVar}) return INVALID;`)}else{throw new ZodCompileUnsupportedError("custom schema without a predicate function")}return accessor}function runtimeCatch(innerSchema,catchValue,value){const result=innerSchema._zod.run({value,issues:[]},{});if(result&&typeof result.then==="function")return INVALID;const r=result;if(r.issues.length===0)return r.value;return catchValue()}function generateCatchCheck(doc,ctx,schema,accessor){const def=schema._zod.def;if(!def.catchValue[CONSTANT_CATCH]){throw new ZodCompileUnsupportedError("catch with a callback (only a constant catch value compiles)",false)}const outputVar=newVar(ctx);doc.write(`let ${outputVar} = (() => {`);doc.indented((d)=>{const innerOut=compileChild(d,ctx,def.innerType,accessor);d.write(`return ${innerOut};`)});doc.write(`})();`);const innerConst=addConstant(ctx,def.innerType);const catchConst=addUserConstant(ctx,def.catchValue);const catchHelperConst=addConstant(ctx,runtimeCatch);doc.write(`if (${outputVar} === INVALID) {`);doc.indented((d)=>{d.write(`${outputVar} = ${catchHelperConst}(${innerConst}, ${catchConst}, ${accessor});`);d.write(`if (${outputVar} === INVALID) return INVALID;`)});doc.write(`}`);return outputVar}function generateTransformCheck(doc,ctx,schema,accessor){const def=schema._zod.def;if(def.transform){if(isAsyncFunction(def.transform)){throw new ZodCompileAsyncError("z.compile: async transforms are not supported")}const transformFn=def.transform;const helperFn=(value)=>{const fakePayload={value,issues:[],addIssue:pushIssue};const result=transformFn(value,fakePayload);if(result instanceof Promise)return INVALID;return fakePayload.issues.length===0?result:INVALID};const helperConst=addUserConstant(ctx,helperFn);const outputVar=newVar(ctx);doc.write(`const ${outputVar} = ${helperConst}(${accessor});`);doc.write(`if (${outputVar} === INVALID) return INVALID;`);return outputVar}return accessor}function snapshotChecks(def){if(def.checks)def.checks=[...def.checks];return def}function _string(Class,params){return new Class(snapshotChecks({type:"string",...normalizeParams(params)}))}function _coercedString(Class,params){return new Class(snapshotChecks({type:"string",coerce:true,...normalizeParams(params)}))}function _email(Class,params){return new Class({type:"string",format:"email",check:"string_format",abort:false,...normalizeParams(params)})}function _guid(Class,params){return new Class({type:"string",format:"guid",check:"string_format",abort:false,...normalizeParams(params)})}function _uuid(Class,params){return new Class({type:"string",format:"uuid",check:"string_format",abort:false,...normalizeParams(params)})}function _uuidv4(Class,params){return new Class({type:"string",format:"uuid",check:"string_format",abort:false,version:"v4",...normalizeParams(params)})}function _uuidv6(Class,params){return new Class({type:"string",format:"uuid",check:"string_format",abort:false,version:"v6",...normalizeParams(params)})}function _uuidv7(Class,params){return new Class({type:"string",format:"uuid",check:"string_format",abort:false,version:"v7",...normalizeParams(params)})}function _url(Class,params){return new Class({type:"string",format:"url",check:"string_format",abort:false,...normalizeParams(params)})}function _emoji2(Class,params){return new Class({type:"string",format:"emoji",check:"string_format",abort:false,...normalizeParams(params)})}function _nanoid(Class,params){return new Class({type:"string",format:"nanoid",check:"string_format",abort:false,...normalizeParams(params)})}function _cuid(Class,params){return new Class({type:"string",format:"cuid",check:"string_format",abort:false,...normalizeParams(params)})}function _cuid2(Class,params){return new Class({type:"string",format:"cuid2",check:"string_format",abort:false,...normalizeParams(params)})}function _ulid(Class,params){return new Class({type:"string",format:"ulid",check:"string_format",abort:false,...normalizeParams(params)})}function _xid(Class,params){return new Class({type:"string",format:"xid",check:"string_format",abort:false,...normalizeParams(params)})}function _ksuid(Class,params){return new Class({type:"string",format:"ksuid",check:"string_format",abort:false,...normalizeParams(params)})}function _ipv4(Class,params){return new Class({type:"string",format:"ipv4",check:"string_format",abort:false,...normalizeParams(params)})}function _ipv6(Class,params){return new Class({type:"string",format:"ipv6",check:"string_format",abort:false,...normalizeParams(params)})}function _mac(Class,params){return new Class({type:"string",format:"mac",check:"string_format",abort:false,...normalizeParams(params)})}function _cidrv4(Class,params){return new Class({type:"string",format:"cidrv4",check:"string_format",abort:false,...normalizeParams(params)})}function _cidrv6(Class,params){return new Class({type:"string",format:"cidrv6",check:"string_format",abort:false,...normalizeParams(params)})}function _base64(Class,params){return new Class({type:"string",format:"base64",check:"string_format",abort:false,...normalizeParams(params)})}function _base64url(Class,params){return new Class({type:"string",format:"base64url",check:"string_format",abort:false,...normalizeParams(params)})}function _e164(Class,params){return new Class({type:"string",format:"e164",check:"string_format",abort:false,...normalizeParams(params)})}function _creditCard(Class,params){return new Class({type:"string",format:"credit_card",check:"string_format",abort:false,...normalizeParams(params)})}function _iban(Class,params){return new Class({type:"string",format:"iban",check:"string_format",abort:false,...normalizeParams(params)})}function _jwt(Class,params){return new Class({type:"string",format:"jwt",check:"string_format",abort:false,...normalizeParams(params)})}var TimePrecision={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function _isoDateTime(Class,params){return new Class({type:"string",format:"datetime",check:"string_format",offset:false,local:false,precision:null,...normalizeParams(params)})}function _isoDate(Class,params){return new Class({type:"string",format:"date",check:"string_format",...normalizeParams(params)})}function _isoTime(Class,params){return new Class({type:"string",format:"time",check:"string_format",precision:null,...normalizeParams(params)})}function _isoDuration(Class,params){return new Class({type:"string",format:"duration",check:"string_format",...normalizeParams(params)})}function _number(Class,params){return new Class(snapshotChecks({type:"number",checks:[],...normalizeParams(params)}))}function _coercedNumber(Class,params){return new Class(snapshotChecks({type:"number",coerce:true,checks:[],...normalizeParams(params)}))}function _int(Class,params){return new Class({type:"number",check:"number_format",abort:false,format:"safeint",...normalizeParams(params)})}function _float32(Class,params){return new Class({type:"number",check:"number_format",abort:false,format:"float32",...normalizeParams(params)})}function _float64(Class,params){return new Class({type:"number",check:"number_format",abort:false,format:"float64",...normalizeParams(params)})}function _int32(Class,params){return new Class({type:"number",check:"number_format",abort:false,format:"int32",...normalizeParams(params)})}function _uint32(Class,params){return new Class({type:"number",check:"number_format",abort:false,format:"uint32",...normalizeParams(params)})}function _boolean(Class,params){return new Class({type:"boolean",...normalizeParams(params)})}function _coercedBoolean(Class,params){return new Class({type:"boolean",coerce:true,...normalizeParams(params)})}function _bigint(Class,params){return new Class({type:"bigint",...normalizeParams(params)})}function _coercedBigint(Class,params){return new Class({type:"bigint",coerce:true,...normalizeParams(params)})}function _int64(Class,params){return new Class({type:"bigint",check:"bigint_format",abort:false,format:"int64",...normalizeParams(params)})}function _uint64(Class,params){return new Class({type:"bigint",check:"bigint_format",abort:false,format:"uint64",...normalizeParams(params)})}function _symbol(Class,params){return new Class({type:"symbol",...normalizeParams(params)})}function _undefined2(Class,params){return new Class({type:"undefined",...normalizeParams(params)})}function _null2(Class,params){return new Class({type:"null",...normalizeParams(params)})}function _any(Class){return new Class({type:"any"})}function _unknown(Class){return new Class({type:"unknown"})}function _never(Class,params){return new Class({type:"never",...normalizeParams(params)})}function _void(Class,params){return new Class({type:"void",...normalizeParams(params)})}function _date(Class,params){return new Class({type:"date",...normalizeParams(params)})}function _coercedDate(Class,params){return new Class({type:"date",coerce:true,...normalizeParams(params)})}function _nan(Class,params){return new Class({type:"nan",...normalizeParams(params)})}function _lt(value,params){return new $ZodCheckLessThan({check:"less_than",...normalizeParams(params),value,inclusive:false})}function _lte(value,params){return new $ZodCheckLessThan({check:"less_than",...normalizeParams(params),value,inclusive:true})}function _gt(value,params){return new $ZodCheckGreaterThan({check:"greater_than",...normalizeParams(params),value,inclusive:false})}function _gte(value,params){return new $ZodCheckGreaterThan({check:"greater_than",...normalizeParams(params),value,inclusive:true})}function _positive(params){return _gt(0,params)}function _negative(params){return _lt(0,params)}function _nonpositive(params){return _lte(0,params)}function _nonnegative(params){return _gte(0,params)}function _multipleOf(value,params){return new $ZodCheckMultipleOf({check:"multiple_of",...normalizeParams(params),value})}function _maxSize(maximum,params){return new $ZodCheckMaxSize({check:"max_size",...normalizeParams(params),maximum})}function _minSize(minimum,params){return new $ZodCheckMinSize({check:"min_size",...normalizeParams(params),minimum})}function _size(size,params){return new $ZodCheckSizeEquals({check:"size_equals",...normalizeParams(params),size})}function _maxLength(maximum,params){const ch=new $ZodCheckMaxLength({check:"max_length",...normalizeParams(params),maximum});return ch}function _minLength(minimum,params){return new $ZodCheckMinLength({check:"min_length",...normalizeParams(params),minimum})}function _length(length,params){return new $ZodCheckLengthEquals({check:"length_equals",...normalizeParams(params),length})}function _regex(pattern,params){return new $ZodCheckRegex({check:"string_format",format:"regex",...normalizeParams(params),pattern})}function _lowercase(params){return new $ZodCheckLowerCase({check:"string_format",format:"lowercase",...normalizeParams(params)})}function _uppercase(params){return new $ZodCheckUpperCase({check:"string_format",format:"uppercase",...normalizeParams(params)})}function _includes(includes,params){return new $ZodCheckIncludes({check:"string_format",format:"includes",...normalizeParams(params),includes})}function _startsWith(prefix,params){return new $ZodCheckStartsWith({check:"string_format",format:"starts_with",...normalizeParams(params),prefix})}function _endsWith(suffix,params){return new $ZodCheckEndsWith({check:"string_format",format:"ends_with",...normalizeParams(params),suffix})}function _property(property,schema,params){return new $ZodCheckProperty({check:"property",property,schema,...normalizeParams(params)})}function _properties(shape,params){return new $ZodCheckProperties({check:"properties",shape,...normalizeParams(params)})}function _mime(types,params){return new $ZodCheckMimeType({check:"mime_type",mime:types,...normalizeParams(params)})}function _overwrite(tx){return new $ZodCheckOverwrite({check:"overwrite",tx})}function _normalize(form){return _overwrite((input)=>input.normalize(form))}function _trim(){return _overwrite((input)=>input.trim())}function _toLowerCase(){return _overwrite((input)=>input.toLowerCase())}function _toUpperCase(){return _overwrite((input)=>input.toUpperCase())}function _slugify(){return _overwrite((input)=>slugify(input))}function _array(Class,element,params){return new Class({type:"array",element,...normalizeParams(params)})}function _union(Class,options,params){return new Class({type:"union",options,...normalizeParams(params)})}function _xor(Class,options,params){return new Class({type:"union",options,inclusive:false,...normalizeParams(params)})}function _discriminatedUnion(Class,discriminator,options,params){return new Class({type:"union",options,discriminator,...normalizeParams(params)})}function _intersection(Class,left,right){return new Class({type:"intersection",left,right})}function _tuple(Class,items,_paramsOrRest,_params){const hasRest=_paramsOrRest instanceof $ZodType;const params=hasRest?_params:_paramsOrRest;const rest=hasRest?_paramsOrRest:null;return new Class({type:"tuple",items,rest,...normalizeParams(params)})}function _record(Class,keyType,valueType,params){return new Class({type:"record",keyType,valueType,...normalizeParams(params)})}function _map(Class,keyType,valueType,params){return new Class({type:"map",keyType,valueType,...normalizeParams(params)})}function _set(Class,valueType,params){return new Class({type:"set",valueType,...normalizeParams(params)})}function _enum(Class,values,params){const entries=Array.isArray(values)?Object.fromEntries(values.map((v)=>[v,v])):values;return new Class({type:"enum",entries,...normalizeParams(params)})}function _nativeEnum(Class,entries,params){return new Class({type:"enum",entries,...normalizeParams(params)})}function _literal(Class,value,params){return new Class({type:"literal",values:Array.isArray(value)?value:[value],...normalizeParams(params)})}function _file(Class,params){return new Class({type:"file",...normalizeParams(params)})}function _transform(Class,fn){return new Class({type:"transform",transform:fn})}function _optional(Class,innerType){return new Class({type:"optional",innerType})}function _nullable(Class,innerType){return new Class({type:"nullable",innerType})}function _default(Class,innerType,defaultValue){return new Class({type:"default",innerType,get defaultValue(){return typeof defaultValue==="function"?defaultValue():shallowClone(defaultValue)}})}function _nonoptional(Class,innerType,params){return new Class({type:"nonoptional",innerType,...normalizeParams(params)})}function _success(Class,innerType){return new Class({type:"success",innerType})}function _catch(Class,innerType,catchValue){return new Class({type:"catch",innerType,catchValue:typeof catchValue==="function"?catchValue:constantCatch(catchValue)})}function _pipe(Class,in_,out){return new Class({type:"pipe",in:in_,out})}function _readonly(Class,innerType){return new Class({type:"readonly",innerType})}function _templateLiteral(Class,parts,params){return new Class({type:"template_literal",parts,...normalizeParams(params)})}function _lazy(Class,getter){return new Class({type:"lazy",getter})}function _promise(Class,innerType){return new Class({type:"promise",innerType})}function _custom(Class,fn,_params){const norm=normalizeParams(_params);norm.abort??(norm.abort=true);const schema=new Class({type:"custom",check:"custom",fn,...norm});return schema}function _refine(Class,fn,_params){const schema=new Class({type:"custom",check:"custom",fn,...normalizeParams(_params)});return schema}function _superRefine(fn,params){const ch=_check((payload)=>{payload.addIssue=(issue2)=>{if(typeof issue2==="string"){payload.issues.push(issue(issue2,payload.value,ch._zod.def))}else{const _issue=issue2;if(_issue.fatal)_issue.continue=false;_issue.code??(_issue.code="custom");if(!("input"in _issue))_issue.input=payload.value;_issue.inst??(_issue.inst=ch);_issue.continue??(_issue.continue=!ch._zod.def.abort);payload.issues.push(issue(_issue))}};return fn(payload.value,payload)},params);return ch}function _check(fn,params){const ch=new $ZodCheck({check:"custom",...normalizeParams(params)});ch._zod.check=fn;return ch}function describe(description){const ch=new $ZodCheck({check:"describe"});ch._zod.onattach=[(inst)=>{const existing=globalRegistry.get(inst)??{};globalRegistry.add(inst,{...existing,description})}];ch._zod.check=()=>{};return ch}function meta(metadata){const ch=new $ZodCheck({check:"meta"});ch._zod.onattach=[(inst)=>{const existing=globalRegistry.get(inst)??{};globalRegistry.add(inst,{...existing,...metadata})}];ch._zod.check=()=>{};return ch}function _stringbool(Classes,_params){const params=normalizeParams(_params);let truthyArray=params.truthy??["true","1","yes","on","y","enabled"];let falsyArray=params.falsy??["false","0","no","off","n","disabled"];if(params.case!=="sensitive"){truthyArray=truthyArray.map((v)=>typeof v==="string"?v.toLowerCase():v);falsyArray=falsyArray.map((v)=>typeof v==="string"?v.toLowerCase():v)}const truthySet=new Set(truthyArray);const falsySet=new Set(falsyArray);const _Codec=Classes.Codec??$ZodCodec;const _Boolean=Classes.Boolean??$ZodBoolean;const _String=Classes.String??$ZodString;const stringSchema=new _String({type:"string",error:params.error});const booleanSchema=new _Boolean({type:"boolean",error:params.error});const codec=new _Codec({type:"pipe",in:stringSchema,out:booleanSchema,transform:(input,payload)=>{let data=input;if(params.case!=="sensitive")data=data.toLowerCase();if(truthySet.has(data)){return true}else if(falsySet.has(data)){return false}else{payload.issues.push({code:"invalid_value",expected:"stringbool",values:[...truthySet,...falsySet],input:payload.value,inst:codec,continue:false});return{}}},reverseTransform:(input,_payload)=>{if(input===true){return truthyArray[0]||"true"}else{return falsyArray[0]||"false"}},error:params.error});codec._zod.bag.truthy=truthyArray;codec._zod.bag.falsy=falsyArray;codec._zod.bag.case=params.case??"insensitive";return codec}function _stringFormat(Class,format,fnOrRegex,_params={}){const params=normalizeParams(_params);const def={check:"string_format",type:"string",format,fn:typeof fnOrRegex==="function"?fnOrRegex:(val)=>fnOrRegex.test(val),...params};if(fnOrRegex instanceof RegExp){def.pattern=fnOrRegex}const inst=new Class(def);return inst}function assignProps(target,...sources){for(const source of sources){for(const key of Reflect.ownKeys(source)){if(Object.prototype.propertyIsEnumerable.call(source,key)){assignProp(target,key,source[key])}}}return target}function initializeContext(params){let target=params?.target??"draft-2020-12";if(target==="draft-4")target="draft-04";if(target==="draft-7")target="draft-07";return{processors:params.processors??{},metadataRegistry:params?.metadata??globalRegistry,target,unrepresentable:params?.unrepresentable??"throw",override:params?.override??(()=>{}),io:params?.io??"output",counter:0,seen:new Map,sharedDefsExtractedFor:undefined,sharedEmitDoneFor:undefined,cycles:params?.cycles??"ref",reused:params?.reused??"inline",intersections:[],deferred:[],external:params?.external??undefined}}function handleUnrepresentable(schema,ctx,json,params,message){const result=typeof ctx.unrepresentable==="function"?ctx.unrepresentable({zodSchema:schema,path:params.path,message}):ctx.unrepresentable;if(result==="any")return false;if(result===undefined||result==="throw")throw new Error(message);Object.assign(json,result);return true}function processSchema(schema,ctx,_params={path:[],schemaPath:[]}){var _a;const def=schema._zod.def;const seen=ctx.seen.get(schema);if(seen){seen.count++;const isCycle=_params.schemaPath.includes(schema);if(isCycle){seen.cycle=_params.path}return seen.schema}const result={schema:{},count:1,cycle:undefined,path:_params.path};ctx.seen.set(schema,result);ctx.sharedDefsExtractedFor=undefined;ctx.sharedEmitDoneFor=undefined;const overrideSchema=schema._zod.toJSONSchema?.();if(overrideSchema){result.schema=overrideSchema}else{const params={..._params,schemaPath:[..._params.schemaPath,schema],path:_params.path};if(schema._zod.processJSONSchema){schema._zod.processJSONSchema(ctx,result.schema,params)}else{const _json=result.schema;const processor=ctx.processors[def.type];if(!processor){throw new Error(`[toJSONSchema]: Non-representable type encountered: ${def.type}`)}processor(schema,ctx,_json,params)}const parent=schema._zod.parent;if(parent){if(!result.ref)result.ref=parent;processSchema(parent,ctx,params);ctx.seen.get(parent).isParent=true}}const meta=ctx.metadataRegistry.get(schema);if(meta)assignProps(result.schema,meta);if(ctx.io==="input"&&isTransforming(schema)){delete result.schema.examples;delete result.schema.default}if(ctx.io==="input"&&"_prefault"in result.schema)(_a=result.schema).default??(_a.default=result.schema._prefault);delete result.schema._prefault;const _result=ctx.seen.get(schema);return _result.schema}function encodeJSONPointerSegment(segment){return segment.replace(/~/g,"~0").replace(/\//g,"~1")}function extractDefs(ctx,schema){const root=ctx.seen.get(schema);if(!root)throw new Error("Unprocessed schema. This is a bug in Zod.");if(ctx.external&&ctx.sharedDefsExtractedFor===ctx.external)return;const idToSchema=new Map;for(const entry of ctx.seen.entries()){const id=ctx.metadataRegistry.get(entry[0])?.id;if(id){const existing=idToSchema.get(id);if(existing&&existing!==entry[0]){throw new Error(`Duplicate schema id "${id}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`)}idToSchema.set(id,entry[0])}}const makeURI=(entry)=>{const defsSegment=ctx.target==="draft-2020-12"?"$defs":"definitions";if(ctx.external){const externalId=ctx.external.registry.get(entry[0])?.id;const uriGenerator=ctx.external.uri??((id)=>id);if(externalId){return{ref:uriGenerator(externalId)}}const id=entry[1].defId??entry[1].schema.id??`schema${ctx.counter++}`;entry[1].defId=id;return{defId:id,ref:`${uriGenerator("__shared")}#/${defsSegment}/${encodeJSONPointerSegment(id)}`}}const uriPrefix=`#`;const defUriPrefix=`${uriPrefix}/${defsSegment}/`;if(entry[1]===root&&!entry[1].schema.id){return{ref:uriPrefix}}const defId=entry[1].schema.id??`__schema${ctx.counter++}`;return{defId,ref:defUriPrefix+encodeJSONPointerSegment(defId)}};const extractToDef=(entry)=>{if(entry[1].schema.$ref){return}const seen=entry[1];const{ref,defId}=makeURI(entry);seen.def={...seen.schema};if(defId)seen.defId=defId;const schema=seen.schema;for(const key in schema){delete schema[key]}schema.$ref=ref};if(ctx.cycles==="throw"){for(const entry of ctx.seen.entries()){const seen=entry[1];if(seen.cycle){throw new Error("Cycle detected: "+`#/${seen.cycle?.join("/")}/<root>`+'\n\nSet the `cycles` parameter to `"ref"` to resolve cyclical schemas with defs.')}}}for(const entry of ctx.seen.entries()){const seen=entry[1];if(schema===entry[0]){extractToDef(entry);continue}if(ctx.external){const ext=ctx.external.registry.get(entry[0])?.id;if(schema!==entry[0]&&ext){extractToDef(entry);continue}}const id=ctx.metadataRegistry.get(entry[0])?.id;if(id){extractToDef(entry);continue}if(seen.cycle){extractToDef(entry);continue}if(seen.count>1){if(ctx.reused==="ref"){extractToDef(entry)}}}if(ctx.external)ctx.sharedDefsExtractedFor=ctx.external}function compactTypeUnion(schema){const options=schema.anyOf;if(!Array.isArray(options)||options.length===0||schema.type!==undefined)return;const types=[];for(const option of options){if(!option||typeof option!=="object")return;compactTypeUnion(option);const keys=Object.keys(option);if(keys.length!==1||keys[0]!=="type")return;const type=option.type;for(const member of Array.isArray(type)?type:[type]){if(typeof member!=="string")return;if(!types.includes(member))types.push(member)}}delete schema.anyOf;schema.type=types.length===1?types[0]:types}var FOLDABLE_KEYS=new Set(["type","properties","required","additionalProperties"]);var UNION_KEYS=["oneOf","anyOf"];function undeclaredConstraint(member){const extra=member.additionalProperties;if(extra===undefined||extra===false||typeof extra!=="object"||extra===null)return null;return Object.keys(extra).length?extra:null}function foldObjects(members){const objects=[];for(const member of members){if(typeof member!=="object"||member.type!=="object")return null;for(const key in member){if(!FOLDABLE_KEYS.has(key))return null}objects.push(member)}const properties={};const required=new Set;for(const object of objects){for(const key in object.properties){if(Object.prototype.hasOwnProperty.call(properties,key))continue;const parts=[];for(const other of objects){const part=other.properties?.[key]??undeclaredConstraint(other);if(part===null||part===undefined)continue;if(!parts.some((seen)=>JSON.stringify(seen)===JSON.stringify(part)))parts.push(part)}const merged=parts.length===1?parts[0]:foldObjects(parts)??{allOf:parts};assignProp(properties,key,merged)}for(const key of object.required??[])required.add(key)}const folded={type:"object",properties};if(required.size)folded.required=[...required];if(objects.every((object)=>object.additionalProperties===false)){folded.additionalProperties=false}else{const constraints=[];for(const object of objects){const constraint=undeclaredConstraint(object);if(constraint&&!constraints.some((seen)=>JSON.stringify(seen)===JSON.stringify(constraint)))constraints.push(constraint)}if(constraints.length===1)folded.additionalProperties=constraints[0];else if(constraints.length>1)folded.additionalProperties={allOf:constraints}}return folded}function foldIntersection(json){const allOf=json.allOf;if(!Array.isArray(allOf)||allOf.length<2)return;for(const key of FOLDABLE_KEYS)if(key in json)return;const unions=allOf.filter((m)=>UNION_KEYS.some((k)=>Array.isArray(m[k])));let folded=null;if(!unions.length){folded=foldObjects(allOf)}else{const union=unions[0];const keyword=UNION_KEYS.find((k)=>Array.isArray(union[k]));if(Object.keys(union).length!==1)return;const rest=allOf.filter((m)=>m!==union);const branches=union[keyword].map((branch)=>foldObjects([...rest,branch]));if(branches.some((b)=>!b))return;folded={[keyword]:branches}}if(!folded)return;delete json.allOf;assignProps(json,folded)}function finalize(ctx,schema){const root=ctx.seen.get(schema);if(!root)throw new Error("Unprocessed schema. This is a bug in Zod.");const flattenRef=(zodSchema)=>{const seen=ctx.seen.get(zodSchema);if(seen.ref===null)return;const schema=seen.def??seen.schema;const _cached={...schema};const ref=seen.ref;seen.ref=null;if(ref){flattenRef(ref);const refSeen=ctx.seen.get(ref);const refSchema=refSeen.schema;if(refSchema.$ref&&(ctx.target==="draft-07"||ctx.target==="draft-04"||ctx.target==="openapi-3.0")){schema.allOf=schema.allOf??[];schema.allOf.push(refSchema)}else{assignProps(schema,refSchema)}assignProps(schema,_cached);const isParentRef=zodSchema._zod.parent===ref;if(isParentRef){for(const key in schema){if(key==="$ref"||key==="allOf")continue;if(!(key in _cached)){delete schema[key]}}}if(refSchema.$ref&&refSeen.def){for(const key in schema){if(key==="$ref"||key==="allOf")continue;if(key in refSeen.def&&JSON.stringify(schema[key])===JSON.stringify(refSeen.def[key])){delete schema[key]}}}}const parent=zodSchema._zod.parent;if(parent&&parent!==ref){flattenRef(parent);const parentSeen=ctx.seen.get(parent);if(parentSeen?.schema.$ref){schema.$ref=parentSeen.schema.$ref;if(parentSeen.def){for(const key in schema){if(key==="$ref"||key==="allOf")continue;if(key in parentSeen.def&&JSON.stringify(schema[key])===JSON.stringify(parentSeen.def[key])){delete schema[key]}}}}}ctx.override({zodSchema,jsonSchema:schema,path:seen.path??[]})};if(!ctx.external||ctx.sharedEmitDoneFor!==ctx.external){for(const entry of[...ctx.seen.entries()].reverse()){flattenRef(entry[0])}if(ctx.target!=="openapi-3.0"){for(const entry of ctx.seen.entries()){compactTypeUnion(entry[1].def??entry[1].schema)}}for(const rewrite of ctx.deferred)rewrite();if(ctx.intersections.length){const carriers=new Map;for(const seen of ctx.seen.values()){for(const json of[seen.schema,seen.def]){const allOf=json?.allOf;if(!Array.isArray(allOf))continue;const existing=carriers.get(allOf);if(existing)existing.push(json);else carriers.set(allOf,[json])}}for(const allOf of ctx.intersections){for(const json of carriers.get(allOf)??[])foldIntersection(json)}}}const result={};if(ctx.target==="draft-2020-12"){result.$schema="https://json-schema.org/draft/2020-12/schema"}else if(ctx.target==="draft-07"){result.$schema="http://json-schema.org/draft-07/schema#"}else if(ctx.target==="draft-04"){result.$schema="http://json-schema.org/draft-04/schema#"}else if(ctx.target==="openapi-3.0"){}if(ctx.external?.uri){const id=ctx.external.registry.get(schema)?.id;if(!id)throw new Error("Schema is missing an `id` property");result.$id=ctx.external.uri(id)}assignProps(result,root.defId?root.schema:root.def??root.schema);const rootMetaId=ctx.metadataRegistry.get(schema)?.id;if(rootMetaId!==undefined&&result.id===rootMetaId)delete result.id;const defs=ctx.external?.defs??{};if(!ctx.external||ctx.sharedEmitDoneFor!==ctx.external){for(const entry of ctx.seen.entries()){const seen=entry[1];if(seen.def&&seen.defId){if(seen.def.id===seen.defId)delete seen.def.id;assignProp(defs,seen.defId,seen.def)}}}if(ctx.external)ctx.sharedEmitDoneFor=ctx.external;if(ctx.external){}else{if(Object.keys(defs).length>0){if(ctx.target==="draft-2020-12"){result.$defs=defs}else{result.definitions=defs}}}try{const finalized=JSON.parse(JSON.stringify(result));Object.defineProperty(finalized,"~standard",{value:{...schema["~standard"],jsonSchema:{input:createStandardJSONSchemaMethod(schema,"input",ctx.processors),output:createStandardJSONSchemaMethod(schema,"output",ctx.processors)}},enumerable:false,writable:false});return finalized}catch(_err){throw new Error("Error converting schema to JSON.")}}function isTransforming(_schema,_ctx){const ctx=_ctx??{seen:new Set};if(ctx.seen.has(_schema))return false;ctx.seen.add(_schema);const def=_schema._zod.def;if(def.type==="transform")return true;if(def.type==="array")return isTransforming(def.element,ctx);if(def.type==="set")return isTransforming(def.valueType,ctx);if(def.type==="lazy")return isTransforming(def.getter(),ctx);if(def.type==="promise"||def.type==="optional"||def.type==="nonoptional"||def.type==="nullable"||def.type==="readonly"||def.type==="default"||def.type==="prefault"||def.type==="catch"){return isTransforming(def.innerType,ctx)}if(def.type==="intersection"){return isTransforming(def.left,ctx)||isTransforming(def.right,ctx)}if(def.type==="record"||def.type==="map"){return isTransforming(def.keyType,ctx)||isTransforming(def.valueType,ctx)}if(def.type==="pipe"){if(_schema._zod.traits.has("$ZodCodec"))return true;return isTransforming(def.in,ctx)||isTransforming(def.out,ctx)}if(def.type==="object"){for(const key in def.shape){if(isTransforming(def.shape[key],ctx))return true}return false}if(def.type==="union"){for(const option of def.options){if(isTransforming(option,ctx))return true}return false}if(def.type==="tuple"){for(const item of def.items){if(isTransforming(item,ctx))return true}if(def.rest&&isTransforming(def.rest,ctx))return true;return false}return false}var createToJSONSchemaMethod=(schema,processors={})=>(params)=>{const ctx=initializeContext({...params,processors});processSchema(schema,ctx);extractDefs(ctx,schema);return finalize(ctx,schema)};var createStandardJSONSchemaMethod=(schema,io,processors={})=>(params)=>{const{libraryOptions,target}=params??{};const ctx=initializeContext({...libraryOptions??{},target,io,processors});processSchema(schema,ctx);extractDefs(ctx,schema);return finalize(ctx,schema)};var narrowMin=(agg,key,value)=>{if(agg[key]===undefined||value>agg[key])agg[key]=value};var narrowMax=(agg,key,value)=>{if(agg[key]===undefined||value<agg[key])agg[key]=value};var narrowBoth=(agg,value)=>{narrowMin(agg,"minimum",value);narrowMax(agg,"maximum",value)};var addDivisor=(agg,value)=>{agg.multipleOf??(agg.multipleOf=[]);if(!agg.multipleOf.includes(value))agg.multipleOf.push(value)};var addPattern=(agg,pattern)=>{agg.patterns??(agg.patterns=new Set);agg.patterns.add(pattern)};var intersectMime=(agg,mime)=>{agg.mime=agg.mime?agg.mime.filter((m)=>mime.includes(m)):[...mime]};var setFormat=(agg,format)=>{agg.format=format;if(format.includes("int"))agg.isInt=true};var minContributor=(agg,def)=>narrowMin(agg,"minimum",def.minimum);var maxContributor=(agg,def)=>narrowMax(agg,"maximum",def.maximum);var formatContributor=(ranges)=>(agg,def)=>{setFormat(agg,def.format);const[minimum,maximum]=ranges[def.format];narrowMin(agg,"minimum",minimum);narrowMax(agg,"maximum",maximum)};var contributors={greater_than:(agg,def)=>narrowMin(agg,def.inclusive?"minimum":"exclusiveMinimum",def.value),less_than:(agg,def)=>narrowMax(agg,def.inclusive?"maximum":"exclusiveMaximum",def.value),multiple_of:(agg,def)=>addDivisor(agg,def.value),number_format:formatContributor(NUMBER_FORMAT_RANGES),bigint_format:formatContributor(BIGINT_FORMAT_RANGES),min_length:minContributor,max_length:maxContributor,length_equals:(agg,def)=>narrowBoth(agg,def.length),min_size:minContributor,max_size:maxContributor,size_equals:(agg,def)=>narrowBoth(agg,def.size),string_format:(agg,def)=>{setFormat(agg,def.format);if(def.pattern)addPattern(agg,def.pattern);if(def.format==="base64"||def.format==="base64url")agg.contentEncoding=def.format;if(def.local||def.precision===-1)agg.laxFormat=true},mime_type:(agg,def)=>intersectMime(agg,def.mime)};function aggregateChecks(schema){const agg={};const def=schema._zod.def;const list=schema._zod.traits.has("$ZodCheck")?[schema,...def.checks??[]]:def.checks??[];for(const ch of list)contributors[ch._zod.def.check]?.(agg,ch._zod.def);const bag=schema._zod.bag;if(bag.minimum!==undefined)narrowMin(agg,"minimum",bag.minimum);if(bag.exclusiveMinimum!==undefined)narrowMin(agg,"exclusiveMinimum",bag.exclusiveMinimum);if(bag.maximum!==undefined)narrowMax(agg,"maximum",bag.maximum);if(bag.exclusiveMaximum!==undefined)narrowMax(agg,"exclusiveMaximum",bag.exclusiveMaximum);if(bag.multipleOf!==undefined)addDivisor(agg,bag.multipleOf);if(bag.format!==undefined){agg.format??(agg.format=bag.format);if(bag.format.includes("int"))agg.isInt=true}if(bag.mime)intersectMime(agg,bag.mime);for(const pattern of bag.patterns??[])addPattern(agg,pattern);return agg}var formatMap={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""};var exactPatterns=new Map([[base64Charset,base64],[base64urlCharset,base64url]]);var exactPattern=(p)=>exactPatterns.get(p)??p;var stringProcessor=(schema,ctx,_json,_params)=>{const json=_json;json.type="string";const{minimum,maximum,format,patterns,contentEncoding,laxFormat}=aggregateChecks(schema);if(typeof minimum==="number")json.minLength=minimum;if(typeof maximum==="number")json.maxLength=maximum;if(format){json.format=formatMap[format]??format;if(json.format==="")delete json.format;if(format==="time"||laxFormat){delete json.format}}if(contentEncoding)json.contentEncoding=contentEncoding;if(patterns&&patterns.size>0){const patternList=[...patterns].map(exactPattern);if(patternList.length===1)json.pattern=patternList[0].source;else if(patternList.length>1){json.allOf=[...patternList.map((regex)=>({...ctx.target==="draft-07"||ctx.target==="draft-04"||ctx.target==="openapi-3.0"?{type:"string"}:{},pattern:regex.source}))]}}};var numberProcessor=(schema,ctx,_json,params)=>{const json=_json;const{minimum,maximum,multipleOf,exclusiveMaximum,exclusiveMinimum,isInt}=aggregateChecks(schema);json.type=isInt?"integer":"number";const exMin=typeof exclusiveMinimum==="number"&&exclusiveMinimum>=(minimum??Number.NEGATIVE_INFINITY);const exMax=typeof exclusiveMaximum==="number"&&exclusiveMaximum<=(maximum??Number.POSITIVE_INFINITY);const legacy=ctx.target==="draft-04"||ctx.target==="openapi-3.0";if(exMin){if(legacy){json.minimum=exclusiveMinimum;json.exclusiveMinimum=true}else{json.exclusiveMinimum=exclusiveMinimum}}else if(typeof minimum==="number"){json.minimum=minimum}if(exMax){if(legacy){json.maximum=exclusiveMaximum;json.exclusiveMaximum=true}else{json.exclusiveMaximum=exclusiveMaximum}}else if(typeof maximum==="number"){json.maximum=maximum}if(multipleOf){const divisors=new Set;for(const divisor of multipleOf){if(Number.isFinite(divisor)&&divisor!==0)divisors.add(Math.abs(divisor));else handleUnrepresentable(schema,ctx,json,params,`A multipleOf divisor of ${divisor} cannot be represented in JSON Schema`)}const[first,...rest]=divisors;if(first!==undefined)json.multipleOf=first;if(rest.length)json.allOf=[...json.allOf??[],...rest.map((m)=>({multipleOf:m}))]}};var booleanProcessor=(_schema,_ctx,json,_params)=>{json.type="boolean"};var bigintProcessor=(schema,ctx,json,params)=>{handleUnrepresentable(schema,ctx,json,params,"BigInt cannot be represented in JSON Schema")};var symbolProcessor=(schema,ctx,json,params)=>{handleUnrepresentable(schema,ctx,json,params,"Symbols cannot be represented in JSON Schema")};var nullProcessor=(_schema,ctx,json,_params)=>{if(ctx.target==="openapi-3.0"){json.type="string";json.nullable=true;json.enum=[null]}else{json.type="null"}};var undefinedProcessor=(schema,ctx,json,params)=>{handleUnrepresentable(schema,ctx,json,params,"Undefined cannot be represented in JSON Schema")};var voidProcessor=(schema,ctx,json,params)=>{handleUnrepresentable(schema,ctx,json,params,"Void cannot be represented in JSON Schema")};var neverProcessor=(_schema,_ctx,json,_params)=>{json.not={}};var anyProcessor=(_schema,_ctx,_json,_params)=>{};var unknownProcessor=(_schema,_ctx,_json,_params)=>{};var dateProcessor=(schema,ctx,json,params)=>{handleUnrepresentable(schema,ctx,json,params,"Date cannot be represented in JSON Schema")};var enumProcessor=(schema,_ctx,json,_params)=>{const def=schema._zod.def;const values=getEnumValues(def.entries);if(values.length===0){json.not={};return}if(values.every((v)=>typeof v==="number"))json.type="number";if(values.every((v)=>typeof v==="string"))json.type="string";json.enum=values};var literalProcessor=(schema,ctx,json,params)=>{const def=schema._zod.def;if(def.values.length===0){json.not={};return}const vals=[];for(const val of def.values){if(val===undefined){if(handleUnrepresentable(schema,ctx,json,params,"Literal `undefined` cannot be represented in JSON Schema"))return}else if(typeof val==="bigint"){if(handleUnrepresentable(schema,ctx,json,params,"BigInt literals cannot be represented in JSON Schema"))return;vals.push(Number(val))}else{vals.push(val)}}if(vals.length===0){}else if(vals.length===1){const val=vals[0];json.type=val===null?"null":typeof val;if(ctx.target==="draft-04"||ctx.target==="openapi-3.0"){json.enum=[val]}else{json.const=val}}else{if(vals.every((v)=>typeof v==="number"))json.type="number";if(vals.every((v)=>typeof v==="string"))json.type="string";if(vals.every((v)=>typeof v==="boolean"))json.type="boolean";if(vals.every((v)=>v===null))json.type="null";json.enum=vals}};var nanProcessor=(schema,ctx,json,params)=>{handleUnrepresentable(schema,ctx,json,params,"NaN cannot be represented in JSON Schema")};var templateLiteralProcessor=(schema,_ctx,json,_params)=>{const _json=json;const pattern=schema._zod.pattern;if(!pattern)throw new Error("Pattern not found in template literal");_json.type="string";_json.pattern=pattern.source};var fileProcessor=(schema,_ctx,json,_params)=>{const _json=json;_json.type="string";_json.format="binary";_json.contentEncoding="binary";const{minimum,maximum,mime}=aggregateChecks(schema);if(minimum!==undefined)_json.minLength=minimum;if(maximum!==undefined)_json.maxLength=maximum;if(!mime)return;if(mime.length===0)_json.not={};else if(mime.length===1)_json.contentMediaType=mime[0];else _json.anyOf=mime.map((m)=>({contentMediaType:m}))};var successProcessor=(_schema,_ctx,json,_params)=>{json.type="boolean"};var customProcessor=(schema,ctx,json,params)=>{handleUnrepresentable(schema,ctx,json,params,"Custom types cannot be represented in JSON Schema")};var functionProcessor=(schema,ctx,json,params)=>{handleUnrepresentable(schema,ctx,json,params,"Function types cannot be represented in JSON Schema")};var transformProcessor=(schema,ctx,json,params)=>{handleUnrepresentable(schema,ctx,json,params,"Transforms cannot be represented in JSON Schema")};var mapProcessor=(schema,ctx,json,params)=>{handleUnrepresentable(schema,ctx,json,params,"Map cannot be represented in JSON Schema")};var setProcessor=(schema,ctx,json,params)=>{handleUnrepresentable(schema,ctx,json,params,"Set cannot be represented in JSON Schema")};var arrayProcessor=(schema,ctx,_json,params)=>{const json=_json;const def=schema._zod.def;const{minimum,maximum}=aggregateChecks(schema);if(typeof minimum==="number")json.minItems=minimum;if(typeof maximum==="number")json.maxItems=maximum;json.type="array";json.items=processSchema(def.element,ctx,{...params,path:[...params.path,"items"]})};function inputOptin(schema){const def=schema._zod.def;if(def.type==="pipe"&&def.in._zod.traits.has("$ZodTransform")){return inputOptin(def.out)}if(def.type==="catch"){return inputOptin(def.innerType)}return schema._zod.optin}var objectProcessor=(schema,ctx,_json,params)=>{const json=_json;const def=schema._zod.def;const shape=def.shape;const symbolKeys=Object.getOwnPropertySymbols(shape);if(symbolKeys.length&&handleUnrepresentable(schema,ctx,json,params,"Symbol keys cannot be represented in JSON Schema")){return}json.type="object";json.properties={};for(const key in shape){assignProp(json.properties,key,processSchema(shape[key],ctx,{...params,path:[...params.path,"properties",key]}))}const requiredKeys=[];for(const key of Object.keys(shape)){const field=def.shape[key];if(ctx.io==="input"?inputOptin(field)===undefined:field._zod.optout===undefined){requiredKeys.push(key)}}if(requiredKeys.length>0){json.required=requiredKeys}if(def.catchall?._zod.def.type==="never"){json.additionalProperties=false}else if(!def.catchall){if(ctx.io==="output")json.additionalProperties=false}else if(def.catchall){json.additionalProperties=processSchema(def.catchall,ctx,{...params,path:[...params.path,"additionalProperties"]})}};var unionProcessor=(schema,ctx,json,params)=>{const def=schema._zod.def;const isExclusive=def.inclusive===false;const options=def.options.map((x,i)=>processSchema(x,ctx,{...params,path:[...params.path,isExclusive?"oneOf":"anyOf",i]}));if(isExclusive){json.oneOf=options}else{json.anyOf=options}};var intersectionProcessor=(schema,ctx,json,params)=>{const def=schema._zod.def;const a=processSchema(def.left,ctx,{...params,path:[...params.path,"allOf",0]});const b=processSchema(def.right,ctx,{...params,path:[...params.path,"allOf",1]});const isSimpleIntersection=(val)=>("allOf"in val)&&Object.keys(val).length===1;const allOf=[...isSimpleIntersection(a)?a.allOf:[a],...isSimpleIntersection(b)?b.allOf:[b]];json.allOf=allOf;ctx.intersections.push(allOf)};var tupleProcessor=(schema,ctx,_json,params)=>{const json=_json;const def=schema._zod.def;json.type="array";const prefixPath=ctx.target==="draft-2020-12"?"prefixItems":"items";const restPath=ctx.target==="draft-2020-12"?"items":ctx.target==="openapi-3.0"?"items":"additionalItems";const prefixItems=def.items.map((x,i)=>processSchema(x,ctx,{...params,path:[...params.path,prefixPath,i]}));const rest=def.rest?processSchema(def.rest,ctx,{...params,path:[...params.path,restPath,...ctx.target==="openapi-3.0"?[def.items.length]:[]]}):null;let minItems=def.items.length;while(minItems>0){const item=def.items[minItems-1];const optional=ctx.io==="input"?inputOptin(item)!==undefined:item._zod.optout==="optional";if(!optional)break;minItems--}const maxItems=def.items.length;const isClosed=!def.rest;if(ctx.target==="draft-2020-12"){json.prefixItems=prefixItems;if(isClosed){json.items=false}else if(rest){json.items=rest}if(minItems>0)json.minItems=minItems;if(isClosed)json.maxItems=maxItems}else if(ctx.target==="openapi-3.0"){json.items={anyOf:prefixItems};if(rest){json.items.anyOf.push(rest)}if(minItems>0)json.minItems=minItems;if(isClosed)json.maxItems=maxItems}else{json.items=prefixItems;if(isClosed){json.additionalItems=false}else if(rest){json.additionalItems=rest}if(minItems>0)json.minItems=minItems;if(isClosed)json.maxItems=maxItems}const{minimum,maximum}=aggregateChecks(schema);if(typeof minimum==="number")json.minItems=minimum;if(typeof maximum==="number")json.maxItems=maximum};function stringifyKeyNames(bySchema,json,visited){if(json.$ref){if(visited.has(json))return json;visited.add(json);const def=bySchema.get(json)?.def;if(!def)return json;const inlined=stringifyKeyNames(bySchema,def,visited);return inlined===def?json:inlined}for(const keyword of["anyOf","oneOf"]){const branches=json[keyword];if(!Array.isArray(branches))continue;const mapped=branches.map((branch)=>stringifyKeyNames(bySchema,branch,visited));if(mapped.some((branch,i)=>branch!==branches[i]))json={...json,[keyword]:mapped}}const types=Array.isArray(json.type)?json.type:[json.type];const numericType=!types.includes("string")&&types.some((t)=>t==="number"||t==="integer");const values=json.enum??(json.const!==undefined?[json.const]:undefined);if(!numericType&&!values?.some((v)=>typeof v==="number"))return json;const{minimum,maximum,exclusiveMinimum,exclusiveMaximum,multipleOf,format,id,...rest}=json;if(rest.enum)rest.enum=rest.enum.map((v)=>typeof v==="number"?String(v):v);else if(typeof rest.const==="number")rest.const=String(rest.const);if(!numericType)return rest;rest.type="string";if(!values)rest.pattern=(types.includes("number")?number:integer).source;return rest}var pendingRecords=new WeakMap;function rewriteKeyNames(ctx){const bySchema=new Map;for(const entry of ctx.seen.values()){if(entry.def&&!bySchema.has(entry.schema))bySchema.set(entry.schema,entry)}const rewrites=new Map;for(const record of pendingRecords.get(ctx)??[]){const seen=ctx.seen.get(record);const names=(seen?.def??seen?.schema)?.propertyNames;if(!names||names===true||rewrites.has(names))continue;const rewritten=stringifyKeyNames(bySchema,names,new Set);if(rewritten!==names)rewrites.set(names,rewritten)}if(!rewrites.size)return;for(const entry of ctx.seen.values()){for(const carrier of[entry.schema,entry.def]){const rewritten=carrier&&rewrites.get(carrier.propertyNames);if(rewritten)carrier.propertyNames=rewritten}}}var recordProcessor=(schema,ctx,_json,params)=>{const json=_json;const def=schema._zod.def;json.type="object";const keyType=def.keyType;const patterns=aggregateChecks(keyType).patterns;if(def.mode==="loose"&&patterns&&patterns.size>0){const valueSchema=processSchema(def.valueType,ctx,{...params,path:[...params.path,"patternProperties","*"]});json.patternProperties={};for(const pattern of patterns){assignProp(json.patternProperties,exactPattern(pattern).source,valueSchema)}}else{if(ctx.target==="draft-07"||ctx.target==="draft-2020-12"){json.propertyNames=processSchema(def.keyType,ctx,{...params,path:[...params.path,"propertyNames"]});let pending=pendingRecords.get(ctx);if(!pending){pending=[];pendingRecords.set(ctx,pending);ctx.deferred.push(()=>rewriteKeyNames(ctx))}pending.push(schema)}json.additionalProperties=processSchema(def.valueType,ctx,{...params,path:[...params.path,"additionalProperties"]})}const keyValues=keyType._zod.values;const omittableOnInput=ctx.io==="input"&&inputOptin(def.valueType)!==undefined;if(keyValues&&!def.partial&&!omittableOnInput){const validKeyValues=[...keyValues].filter((v)=>typeof v==="string"||typeof v==="number");if(validKeyValues.length>0){json.required=validKeyValues.map(String)}}};var nullableProcessor=(schema,ctx,json,params)=>{const def=schema._zod.def;const inner=processSchema(def.innerType,ctx,params);const seen=ctx.seen.get(schema);if(ctx.target==="openapi-3.0"){seen.ref=def.innerType;json.nullable=true}else{json.anyOf=[inner,{type:"null"}]}};var nonoptionalProcessor=(schema,ctx,_json,params)=>{const def=schema._zod.def;processSchema(def.innerType,ctx,params);const seen=ctx.seen.get(schema);seen.ref=def.innerType};var UNREPRESENTABLE_DEFAULT=Symbol();function serializeDefaultValue(value,schema,ctx,json,params){let unrepresentable=false;const serialized=JSON.stringify(value,(_,val)=>{if(typeof val!=="bigint")return val;unrepresentable=true;return null});if(!unrepresentable)return JSON.parse(serialized);handleUnrepresentable(schema,ctx,json,params,"BigInt defaults cannot be represented in JSON Schema");return UNREPRESENTABLE_DEFAULT}var defaultProcessor=(schema,ctx,json,params)=>{const def=schema._zod.def;processSchema(def.innerType,ctx,params);const seen=ctx.seen.get(schema);seen.ref=def.innerType;const value=serializeDefaultValue(def.defaultValue,schema,ctx,json,params);if(value!==UNREPRESENTABLE_DEFAULT)json.default=value};var prefaultProcessor=(schema,ctx,json,params)=>{const def=schema._zod.def;processSchema(def.innerType,ctx,params);const seen=ctx.seen.get(schema);seen.ref=def.innerType;if(ctx.io!=="input")return;const value=serializeDefaultValue(def.defaultValue,schema,ctx,json,params);if(value!==UNREPRESENTABLE_DEFAULT)json._prefault=value};var catchProcessor=(schema,ctx,json,params)=>{const def=schema._zod.def;processSchema(def.innerType,ctx,params);const seen=ctx.seen.get(schema);seen.ref=def.innerType;let catchValue;try{catchValue=def.catchValue(undefined)}catch{handleUnrepresentable(schema,ctx,json,params,"Dynamic catch values are not supported in JSON Schema");return}json.default=catchValue};var pipeProcessor=(schema,ctx,_json,params)=>{const def=schema._zod.def;const inIsTransform=def.in._zod.traits.has("$ZodTransform");const innerType=ctx.io==="input"?inIsTransform?def.out:def.in:def.out;processSchema(innerType,ctx,params);const seen=ctx.seen.get(schema);seen.ref=innerType};var readonlyProcessor=(schema,ctx,json,params)=>{const def=schema._zod.def;processSchema(def.innerType,ctx,params);const seen=ctx.seen.get(schema);seen.ref=def.innerType;json.readOnly=true};var promiseProcessor=(schema,ctx,_json,params)=>{const def=schema._zod.def;processSchema(def.innerType,ctx,params);const seen=ctx.seen.get(schema);seen.ref=def.innerType};var optionalProcessor=(schema,ctx,_json,params)=>{const def=schema._zod.def;processSchema(def.innerType,ctx,params);const seen=ctx.seen.get(schema);seen.ref=def.innerType};var lazyProcessor=(schema,ctx,_json,params)=>{const innerType=schema._zod.innerType;processSchema(innerType,ctx,params);const seen=ctx.seen.get(schema);seen.ref=innerType};var allProcessors={string:stringProcessor,number:numberProcessor,boolean:booleanProcessor,bigint:bigintProcessor,symbol:symbolProcessor,null:nullProcessor,undefined:undefinedProcessor,void:voidProcessor,never:neverProcessor,any:anyProcessor,unknown:unknownProcessor,date:dateProcessor,enum:enumProcessor,literal:literalProcessor,nan:nanProcessor,template_literal:templateLiteralProcessor,file:fileProcessor,success:successProcessor,custom:customProcessor,function:functionProcessor,transform:transformProcessor,map:mapProcessor,set:setProcessor,array:arrayProcessor,object:objectProcessor,union:unionProcessor,intersection:intersectionProcessor,tuple:tupleProcessor,record:recordProcessor,nullable:nullableProcessor,nonoptional:nonoptionalProcessor,default:defaultProcessor,prefault:prefaultProcessor,catch:catchProcessor,pipe:pipeProcessor,readonly:readonlyProcessor,promise:promiseProcessor,optional:optionalProcessor,lazy:lazyProcessor};function toJSONSchema(input,params){if("_idmap"in input){const registry=input;const ctx=initializeContext({...params,processors:allProcessors});const defs={};for(const entry of registry._idmap.entries()){const[_,schema]=entry;processSchema(schema,ctx)}const schemas={};const external={registry,uri:params?.uri,defs};ctx.external=external;for(const entry of registry._idmap.entries()){const[key,schema]=entry;extractDefs(ctx,schema);assignProp(schemas,key,finalize(ctx,schema))}if(Object.keys(defs).length>0){const defsSegment=ctx.target==="draft-2020-12"?"$defs":"definitions";schemas.__shared={[defsSegment]:defs}}return{schemas}}const ctx=initializeContext({...params,processors:allProcessors});processSchema(input,ctx);extractDefs(ctx,input);return finalize(ctx,input)}class JSONSchemaGenerator{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(value){this.ctx.counter=value}get seen(){return this.ctx.seen}constructor(params){let normalizedTarget=params?.target??"draft-2020-12";if(normalizedTarget==="draft-4")normalizedTarget="draft-04";if(normalizedTarget==="draft-7")normalizedTarget="draft-07";this.ctx=initializeContext({processors:allProcessors,target:normalizedTarget,...params?.metadata&&{metadata:params.metadata},...params?.unrepresentable&&{unrepresentable:params.unrepresentable},...params?.override&&{override:params.override},...params?.io&&{io:params.io}})}process(schema,_params={path:[],schemaPath:[]}){return processSchema(schema,this.ctx,_params)}emit(schema,_params){if(_params){if(_params.cycles)this.ctx.cycles=_params.cycles;if(_params.reused)this.ctx.reused=_params.reused;if(_params.external)this.ctx.external=_params.external}this.ctx.sharedDefsExtractedFor=undefined;this.ctx.sharedEmitDoneFor=undefined;extractDefs(this.ctx,schema);const result=finalize(this.ctx,schema);const{"~standard":_,...plainResult}=result;return plainResult}}var exports_json_schema={};var exports_schemas2={};__export(exports_schemas2,{ZodAny:()=>ZodAny,ZodArray:()=>ZodArray,ZodBase64:()=>ZodBase64,ZodBase64URL:()=>ZodBase64URL,ZodBigInt:()=>ZodBigInt,ZodBigIntFormat:()=>ZodBigIntFormat,ZodBoolean:()=>ZodBoolean,ZodCIDRv4:()=>ZodCIDRv4,ZodCIDRv6:()=>ZodCIDRv6,ZodCUID:()=>ZodCUID,ZodCUID2:()=>ZodCUID2,ZodCatch:()=>ZodCatch,ZodCodec:()=>ZodCodec,ZodCreditCard:()=>ZodCreditCard,ZodCustom:()=>ZodCustom,ZodCustomStringFormat:()=>ZodCustomStringFormat,ZodDate:()=>ZodDate,ZodDefault:()=>ZodDefault,ZodDiscriminatedUnion:()=>ZodDiscriminatedUnion,ZodE164:()=>ZodE164,ZodEmail:()=>ZodEmail,ZodEmoji:()=>ZodEmoji,ZodEnum:()=>ZodEnum,ZodExactOptional:()=>ZodExactOptional,ZodFile:()=>ZodFile,ZodFunction:()=>ZodFunction,ZodGUID:()=>ZodGUID,ZodIBAN:()=>ZodIBAN,ZodIPv4:()=>ZodIPv4,ZodIPv6:()=>ZodIPv6,ZodISODate:()=>ZodISODate,ZodISODateTime:()=>ZodISODateTime,ZodISODuration:()=>ZodISODuration,ZodISOTime:()=>ZodISOTime,ZodInstanceOf:()=>ZodInstanceOf,ZodIntersection:()=>ZodIntersection,ZodJWT:()=>ZodJWT,ZodKSUID:()=>ZodKSUID,ZodLazy:()=>ZodLazy,ZodLiteral:()=>ZodLiteral,ZodMAC:()=>ZodMAC,ZodMap:()=>ZodMap,ZodNaN:()=>ZodNaN,ZodNanoID:()=>ZodNanoID,ZodNever:()=>ZodNever,ZodNonOptional:()=>ZodNonOptional,ZodNull:()=>ZodNull,ZodNullable:()=>ZodNullable,ZodNumber:()=>ZodNumber,ZodNumberFormat:()=>ZodNumberFormat,ZodObject:()=>ZodObject,ZodOptional:()=>ZodOptional,ZodPipe:()=>ZodPipe,ZodPrefault:()=>ZodPrefault,ZodPreprocess:()=>ZodPreprocess,ZodPromise:()=>ZodPromise,ZodReadonly:()=>ZodReadonly,ZodRecord:()=>ZodRecord,ZodSet:()=>ZodSet,ZodString:()=>ZodString,ZodStringFormat:()=>ZodStringFormat,ZodSuccess:()=>ZodSuccess,ZodSymbol:()=>ZodSymbol,ZodTemplateLiteral:()=>ZodTemplateLiteral,ZodTransform:()=>ZodTransform,ZodTuple:()=>ZodTuple,ZodType:()=>ZodType,ZodULID:()=>ZodULID,ZodURL:()=>ZodURL,ZodUUID:()=>ZodUUID,ZodUndefined:()=>ZodUndefined,ZodUnion:()=>ZodUnion,ZodUnknown:()=>ZodUnknown,ZodVoid:()=>ZodVoid,ZodXID:()=>ZodXID,ZodXor:()=>ZodXor,_ZodString:()=>_ZodString,_default:()=>_default2,_function:()=>_function,any:()=>any,array:()=>array,base64:()=>base642,base64url:()=>base64url2,bigint:()=>bigint2,boolean:()=>boolean2,catch:()=>_catch2,check:()=>check,cidrv4:()=>cidrv42,cidrv6:()=>cidrv62,codec:()=>codec,creditCard:()=>creditCard2,cuid:()=>cuid3,cuid2:()=>cuid22,currencyCode:()=>currencyCode2,custom:()=>custom,date:()=>date2,describe:()=>describe2,discriminatedUnion:()=>discriminatedUnion,e164:()=>e1642,email:()=>email2,emoji:()=>emoji2,enum:()=>_enum2,exactOptional:()=>exactOptional,file:()=>file,float32:()=>float32,float64:()=>float64,function:()=>_function,guid:()=>guid2,hash:()=>hash,hex:()=>hex2,hostname:()=>hostname2,httpUrl:()=>httpUrl,iban:()=>iban2,instanceof:()=>_instanceof,int:()=>int,int32:()=>int32,int64:()=>int64,intersection:()=>intersection,invertCodec:()=>invertCodec,ipv4:()=>ipv42,ipv6:()=>ipv62,json:()=>json,jwt:()=>jwt,keyof:()=>keyof,ksuid:()=>ksuid2,lazy:()=>lazy,literal:()=>literal,looseObject:()=>looseObject,looseRecord:()=>looseRecord,mac:()=>mac2,map:()=>map,meta:()=>meta2,nan:()=>nan,nanoid:()=>nanoid2,nativeEnum:()=>nativeEnum,never:()=>never,nonoptional:()=>nonoptional,null:()=>_null3,nullable:()=>nullable,nullish:()=>nullish2,number:()=>number2,object:()=>object,optional:()=>optional,partialRecord:()=>partialRecord,pipe:()=>pipe,prefault:()=>prefault,preprocess:()=>preprocess,promise:()=>promise,readonly:()=>readonly,record:()=>record,refine:()=>refine,set:()=>set,strictObject:()=>strictObject,string:()=>string2,stringFormat:()=>stringFormat,stringbool:()=>stringbool,success:()=>success,superRefine:()=>superRefine,symbol:()=>symbol,templateLiteral:()=>templateLiteral,transform:()=>transform,tuple:()=>tuple,uint32:()=>uint32,uint64:()=>uint64,ulid:()=>ulid2,undefined:()=>_undefined3,union:()=>union,unknown:()=>unknown,url:()=>url,uuid:()=>uuid2,uuidv4:()=>uuidv4,uuidv6:()=>uuidv6,uuidv7:()=>uuidv7,void:()=>_void2,xid:()=>xid2,xor:()=>xor});var exports_checks2={};__export(exports_checks2,{endsWith:()=>_endsWith,gt:()=>_gt,gte:()=>_gte,includes:()=>_includes,length:()=>_length,lowercase:()=>_lowercase,lt:()=>_lt,lte:()=>_lte,maxLength:()=>_maxLength,maxSize:()=>_maxSize,mime:()=>_mime,minLength:()=>_minLength,minSize:()=>_minSize,multipleOf:()=>_multipleOf,negative:()=>_negative,nonnegative:()=>_nonnegative,nonpositive:()=>_nonpositive,normalize:()=>_normalize,overwrite:()=>_overwrite,positive:()=>_positive,properties:()=>_properties,property:()=>_property,regex:()=>_regex,size:()=>_size,slugify:()=>_slugify,startsWith:()=>_startsWith,toLowerCase:()=>_toLowerCase,toUpperCase:()=>_toUpperCase,trim:()=>_trim,uppercase:()=>_uppercase});var _installedErrorProtos=new WeakSet([Object.prototype,Error.prototype]);function _lazyMethod(proto,key,make){Object.defineProperty(proto,key,{configurable:true,enumerable:false,get(){const value=make(this);Object.defineProperty(this,key,{value,configurable:true,writable:true});return value},set(value){Object.defineProperty(this,key,{value,configurable:true,writable:true})}})}var initializer2=(inst,issues)=>{$ZodError.init(inst,issues);inst.name="ZodError";const proto=Object.getPrototypeOf(inst);if(_installedErrorProtos.has(proto))return;_installedErrorProtos.add(proto);_lazyMethod(proto,"format",(self)=>(mapper)=>formatError(self,mapper));_lazyMethod(proto,"flatten",(self)=>(mapper)=>flattenError(self,mapper));_lazyMethod(proto,"addIssue",(self)=>(issue)=>{self.issues.push(issue);self.message=JSON.stringify(self.issues,jsonStringifyReplacer,2)});_lazyMethod(proto,"addIssues",(self)=>(issues)=>{self.issues.push(...issues);self.message=JSON.stringify(self.issues,jsonStringifyReplacer,2)});Object.defineProperty(proto,"isEmpty",{configurable:true,enumerable:false,get(){return this.issues.length===0}})};var ZodError=$constructor("ZodError",initializer2);var ZodRealError=$constructor("ZodError",initializer2,undefined,{Parent:Error});var parse3=_parse(ZodRealError);var parseAsync2=_parseAsync(ZodRealError);var safeParse2=_safeParse(ZodRealError);var safeParseAsync2=_safeParseAsync(ZodRealError);var encode2=_encode(ZodRealError);var decode2=_decode(ZodRealError);var encodeAsync2=_encodeAsync(ZodRealError);var decodeAsync2=_decodeAsync(ZodRealError);var safeEncode2=_safeEncode(ZodRealError);var safeDecode2=_safeDecode(ZodRealError);var safeEncodeAsync2=_safeEncodeAsync(ZodRealError);var safeDecodeAsync2=_safeDecodeAsync(ZodRealError);function _ensureDefaultLocale(){if(!globalConfig.localeError)config(en_default())}function _ensureDefaultMemoizer(){if(!globalConfig.memoizer)config({memoizer:memoizer()})}var ZodType=$constructor("ZodType",(inst,def)=>{_ensureDefaultLocale();$ZodType.init(inst,def);inst.def=def;inst.type=def.type;return inst},{check(...chks){const def=this.def;return this.clone(mergeDefs(def,{checks:[...def.checks??[],...chks.map((ch)=>typeof ch==="function"?{_zod:{check:ch,def:{check:"custom"},onattach:[]}}:ch)]}),{parent:true})},with(...chks){return this.check(...chks)},clone(def,params){return clone(this,def,params)},brand(){return this},register(reg,meta){reg.add(this,meta);return this},refine(check2,params){return this.check(refine(check2,params))},superRefine(refinement,params){return this.check(superRefine(refinement,params))},overwrite(fn){return this.check(_overwrite(fn))},optional(){return optional(this)},exactOptional(){return exactOptional(this)},nullable(){return nullable(this)},nullish(){return optional(nullable(this))},nonoptional(params){return nonoptional(this,params)},array(){return array(this)},or(arg){return union([this,arg])},and(arg){return intersection(this,arg)},transform(tx){return pipe(this,transform(tx))},default(d){return _default2(this,d)},prefault(d){return prefault(this,d)},catch(params){return _catch2(this,params)},pipe(target){return pipe(this,target)},readonly(){return readonly(this)},describe(description){const cl=this.clone();globalRegistry.add(cl,{description});return cl},meta(...args){if(args.length===0)return globalRegistry.get(this);const cl=this.clone();globalRegistry.add(cl,args[0]);return cl},isOptional(){return this.safeParse(undefined).success},isNullable(){return this.safeParse(null).success},apply(fn,...args){return args.length===0?fn(this):fn(this,...args)},get "~standard"(){return hide(this,"~standard",{...standardProps(this),jsonSchema:{input:createStandardJSONSchemaMethod(this,"input"),output:createStandardJSONSchemaMethod(this,"output")}})},set "~standard"(value){own(this,"~standard",value)},parse:function _parse(data,params){return parse3(this,data,params,{callee:_parse})},parseAsync:async function _parseAsync(data,params){return await parseAsync2(this,data,params,{callee:_parseAsync})},safeParse(data,params){return safeParse2(this,data,params)},async safeParseAsync(data,params){return safeParseAsync2(this,data,params)},get spa(){return this?.safeParseAsync},set spa(value){own(this,"spa",value)},validate(data,params){return validate(this,data,params)},validateAsync(data,params){return validateAsync(this,data,params)},encode:function _encode(data,params){return encode2(this,data,params,{callee:_encode})},decode:function _decode(data,params){return decode2(this,data,params,{callee:_decode})},encodeAsync:async function _encodeAsync(data,params){return await encodeAsync2(this,data,params,{callee:_encodeAsync})},decodeAsync:async function _decodeAsync(data,params){return await decodeAsync2(this,data,params,{callee:_decodeAsync})},safeEncode(data,params){return safeEncode2(this,data,params)},safeDecode(data,params){return safeDecode2(this,data,params)},async safeEncodeAsync(data,params){return safeEncodeAsync2(this,data,params)},async safeDecodeAsync(data,params){return safeDecodeAsync2(this,data,params)},toJSONSchema(params){return createToJSONSchemaMethod(this,{})(params)},get description(){return globalRegistry.get(this)?.description},get _def(){return this._zod.def}});var _ZodString=$constructor("_ZodString",(inst,def)=>{$ZodString.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>stringProcessor(inst,ctx,json2,params)},derived({format:(inst)=>aggregateChecks(inst).format??null,minLength:(inst)=>aggregateChecks(inst).minimum??null,maxLength:(inst)=>aggregateChecks(inst).maximum??null},{regex(...args){return this.check(_regex(...args))},includes(...args){return this.check(_includes(...args))},startsWith(...args){return this.check(_startsWith(...args))},endsWith(...args){return this.check(_endsWith(...args))},min(...args){return this.check(_minLength(...args))},max(...args){return this.check(_maxLength(...args))},length(...args){return this.check(_length(...args))},nonempty(...args){return this.check(_minLength(1,...args))},lowercase(params){return this.check(_lowercase(params))},uppercase(params){return this.check(_uppercase(params))},trim(){return this.check(_trim())},normalize(...args){return this.check(_normalize(...args))},toLowerCase(){return this.check(_toLowerCase())},toUpperCase(){return this.check(_toUpperCase())},slugify(){return this.check(_slugify())}}));var ZodString=$constructor("ZodString",(inst,def)=>{$ZodString.init(inst,def);_ZodString.init(inst,def)},{email(params){return this.check(_email(ZodEmail,params))},url(params){return this.check(_url(ZodURL,params))},jwt(params){return this.check(_jwt(ZodJWT,params))},emoji(params){return this.check(_emoji2(ZodEmoji,params))},guid(params){return this.check(_guid(ZodGUID,params))},uuid(params){return this.check(_uuid(ZodUUID,params))},uuidv4(params){return this.check(_uuidv4(ZodUUID,params))},uuidv6(params){return this.check(_uuidv6(ZodUUID,params))},uuidv7(params){return this.check(_uuidv7(ZodUUID,params))},nanoid(params){return this.check(_nanoid(ZodNanoID,params))},cuid(params){return this.check(_cuid(ZodCUID,params))},cuid2(params){return this.check(_cuid2(ZodCUID2,params))},ulid(params){return this.check(_ulid(ZodULID,params))},base64(params){return this.check(_base64(ZodBase64,params))},base64url(params){return this.check(_base64url(ZodBase64URL,params))},xid(params){return this.check(_xid(ZodXID,params))},ksuid(params){return this.check(_ksuid(ZodKSUID,params))},ipv4(params){return this.check(_ipv4(ZodIPv4,params))},ipv6(params){return this.check(_ipv6(ZodIPv6,params))},cidrv4(params){return this.check(_cidrv4(ZodCIDRv4,params))},cidrv6(params){return this.check(_cidrv6(ZodCIDRv6,params))},e164(params){return this.check(_e164(ZodE164,params))},datetime(params){return this.check(_isoDateTime(ZodISODateTime,params))},date(params){return this.check(_isoDate(ZodISODate,params))},time(params){return this.check(_isoTime(ZodISOTime,params))},duration(params){return this.check(_isoDuration(ZodISODuration,params))}});function string2(params){return _string(ZodString,params)}var ZodStringFormat=$constructor("ZodStringFormat",(inst,def)=>{$ZodStringFormat.init(inst,def);_ZodString.init(inst,def)});var ZodISODateTime=$constructor("ZodISODateTime",(inst,def)=>{$ZodISODateTime.init(inst,def);ZodStringFormat.init(inst,def)});var ZodISODate=$constructor("ZodISODate",(inst,def)=>{$ZodISODate.init(inst,def);ZodStringFormat.init(inst,def)});var ZodISOTime=$constructor("ZodISOTime",(inst,def)=>{$ZodISOTime.init(inst,def);ZodStringFormat.init(inst,def)});var ZodISODuration=$constructor("ZodISODuration",(inst,def)=>{$ZodISODuration.init(inst,def);ZodStringFormat.init(inst,def)});var ZodEmail=$constructor("ZodEmail",(inst,def)=>{$ZodEmail.init(inst,def);ZodStringFormat.init(inst,def)});function email2(params){return _email(ZodEmail,params)}var ZodGUID=$constructor("ZodGUID",(inst,def)=>{$ZodGUID.init(inst,def);ZodStringFormat.init(inst,def)});function guid2(params){return _guid(ZodGUID,params)}var ZodUUID=$constructor("ZodUUID",(inst,def)=>{$ZodUUID.init(inst,def);ZodStringFormat.init(inst,def)});function uuid2(params){return _uuid(ZodUUID,params)}function uuidv4(params){return _uuidv4(ZodUUID,params)}function uuidv6(params){return _uuidv6(ZodUUID,params)}function uuidv7(params){return _uuidv7(ZodUUID,params)}var ZodURL=$constructor("ZodURL",(inst,def)=>{$ZodURL.init(inst,def);ZodStringFormat.init(inst,def)});function url(params){return _url(ZodURL,params)}function httpUrl(params){return _url(ZodURL,{protocol:httpProtocol,hostname:domain,...normalizeParams(params)})}var ZodEmoji=$constructor("ZodEmoji",(inst,def)=>{$ZodEmoji.init(inst,def);ZodStringFormat.init(inst,def)});function emoji2(params){return _emoji2(ZodEmoji,params)}var ZodNanoID=$constructor("ZodNanoID",(inst,def)=>{$ZodNanoID.init(inst,def);ZodStringFormat.init(inst,def)});function nanoid2(params){return _nanoid(ZodNanoID,params)}var ZodCUID=$constructor("ZodCUID",(inst,def)=>{$ZodCUID.init(inst,def);ZodStringFormat.init(inst,def)});function cuid3(params){return _cuid(ZodCUID,params)}var ZodCUID2=$constructor("ZodCUID2",(inst,def)=>{$ZodCUID2.init(inst,def);ZodStringFormat.init(inst,def)});function cuid22(params){return _cuid2(ZodCUID2,params)}var ZodULID=$constructor("ZodULID",(inst,def)=>{$ZodULID.init(inst,def);ZodStringFormat.init(inst,def)});function ulid2(params){return _ulid(ZodULID,params)}var ZodXID=$constructor("ZodXID",(inst,def)=>{$ZodXID.init(inst,def);ZodStringFormat.init(inst,def)});function xid2(params){return _xid(ZodXID,params)}var ZodKSUID=$constructor("ZodKSUID",(inst,def)=>{$ZodKSUID.init(inst,def);ZodStringFormat.init(inst,def)});function ksuid2(params){return _ksuid(ZodKSUID,params)}var ZodIPv4=$constructor("ZodIPv4",(inst,def)=>{$ZodIPv4.init(inst,def);ZodStringFormat.init(inst,def)});function ipv42(params){return _ipv4(ZodIPv4,params)}var ZodMAC=$constructor("ZodMAC",(inst,def)=>{$ZodMAC.init(inst,def);ZodStringFormat.init(inst,def)});function mac2(params){return _mac(ZodMAC,params)}var ZodIPv6=$constructor("ZodIPv6",(inst,def)=>{$ZodIPv6.init(inst,def);ZodStringFormat.init(inst,def)});function ipv62(params){return _ipv6(ZodIPv6,params)}var ZodCIDRv4=$constructor("ZodCIDRv4",(inst,def)=>{$ZodCIDRv4.init(inst,def);ZodStringFormat.init(inst,def)});function cidrv42(params){return _cidrv4(ZodCIDRv4,params)}var ZodCIDRv6=$constructor("ZodCIDRv6",(inst,def)=>{$ZodCIDRv6.init(inst,def);ZodStringFormat.init(inst,def)});function cidrv62(params){return _cidrv6(ZodCIDRv6,params)}var ZodBase64=$constructor("ZodBase64",(inst,def)=>{$ZodBase64.init(inst,def);ZodStringFormat.init(inst,def)});function base642(params){return _base64(ZodBase64,params)}var ZodBase64URL=$constructor("ZodBase64URL",(inst,def)=>{$ZodBase64URL.init(inst,def);ZodStringFormat.init(inst,def)});function base64url2(params){return _base64url(ZodBase64URL,params)}var ZodE164=$constructor("ZodE164",(inst,def)=>{$ZodE164.init(inst,def);ZodStringFormat.init(inst,def)});function e1642(params){return _e164(ZodE164,params)}var ZodCreditCard=$constructor("ZodCreditCard",(inst,def)=>{$ZodCreditCard.init(inst,def);ZodStringFormat.init(inst,def)});function creditCard2(params){return _creditCard(ZodCreditCard,params)}var ZodIBAN=$constructor("ZodIBAN",(inst,def)=>{$ZodIBAN.init(inst,def);ZodStringFormat.init(inst,def)});function iban2(params){return _iban(ZodIBAN,params)}var ZodJWT=$constructor("ZodJWT",(inst,def)=>{$ZodJWT.init(inst,def);ZodStringFormat.init(inst,def)});function jwt(params){return _jwt(ZodJWT,params)}var ZodCustomStringFormat=$constructor("ZodCustomStringFormat",(inst,def)=>{$ZodCustomStringFormat.init(inst,def);ZodStringFormat.init(inst,def)});function stringFormat(format,fnOrRegex,_params={}){return _stringFormat(ZodCustomStringFormat,format,fnOrRegex,_params)}function hostname2(_params){return _stringFormat(ZodCustomStringFormat,"hostname",hostname,_params)}function hex2(_params){return _stringFormat(ZodCustomStringFormat,"hex",hex,_params)}function currencyCode2(_params){return _stringFormat(ZodCustomStringFormat,"currency_code",currencyCode,_params)}function hash(alg,params){const enc=params?.enc??"hex";const format=`${alg}_${enc}`;const regex=exports_regexes[format];if(!regex)throw new Error(`Unrecognized hash format: ${format}`);return _stringFormat(ZodCustomStringFormat,format,regex,params)}var ZodNumber=$constructor("ZodNumber",(inst,def)=>{$ZodNumber.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>numberProcessor(inst,ctx,json2,params);inst.isFinite=true},derived({minValue:(inst)=>{const{minimum,exclusiveMinimum}=aggregateChecks(inst);return Math.max(minimum??Number.NEGATIVE_INFINITY,exclusiveMinimum??Number.NEGATIVE_INFINITY)},maxValue:(inst)=>{const{maximum,exclusiveMaximum}=aggregateChecks(inst);return Math.min(maximum??Number.POSITIVE_INFINITY,exclusiveMaximum??Number.POSITIVE_INFINITY)},isInt:(inst)=>{const{isInt,multipleOf}=aggregateChecks(inst);return!!isInt||!!multipleOf?.some(Number.isSafeInteger)},format:(inst)=>aggregateChecks(inst).format??null},{gt(value,params){return this.check(_gt(value,params))},gte(value,params){return this.check(_gte(value,params))},min(value,params){return this.check(_gte(value,params))},lt(value,params){return this.check(_lt(value,params))},lte(value,params){return this.check(_lte(value,params))},max(value,params){return this.check(_lte(value,params))},int(params){return this.check(int(params))},safe(params){return this.check(int(params))},positive(params){return this.check(_gt(0,params))},nonnegative(params){return this.check(_gte(0,params))},negative(params){return this.check(_lt(0,params))},nonpositive(params){return this.check(_lte(0,params))},multipleOf(value,params){return this.check(_multipleOf(value,params))},step(value,params){return this.check(_multipleOf(value,params))},finite(){return this}}));function number2(params){return _number(ZodNumber,params)}var ZodNumberFormat=$constructor("ZodNumberFormat",(inst,def)=>{$ZodNumberFormat.init(inst,def);ZodNumber.init(inst,def)});function int(params){return _int(ZodNumberFormat,params)}function float32(params){return _float32(ZodNumberFormat,params)}function float64(params){return _float64(ZodNumberFormat,params)}function int32(params){return _int32(ZodNumberFormat,params)}function uint32(params){return _uint32(ZodNumberFormat,params)}var ZodBoolean=$constructor("ZodBoolean",(inst,def)=>{$ZodBoolean.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>booleanProcessor(inst,ctx,json2,params)});function boolean2(params){return _boolean(ZodBoolean,params)}var ZodBigInt=$constructor("ZodBigInt",(inst,def)=>{$ZodBigInt.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>bigintProcessor(inst,ctx,json2,params)},derived({minValue:(inst)=>aggregateChecks(inst).minimum??null,maxValue:(inst)=>aggregateChecks(inst).maximum??null,format:(inst)=>aggregateChecks(inst).format??null},{gte(value,params){return this.check(_gte(value,params))},min(value,params){return this.check(_gte(value,params))},gt(value,params){return this.check(_gt(value,params))},lt(value,params){return this.check(_lt(value,params))},lte(value,params){return this.check(_lte(value,params))},max(value,params){return this.check(_lte(value,params))},positive(params){return this.check(_gt(BigInt(0),params))},negative(params){return this.check(_lt(BigInt(0),params))},nonpositive(params){return this.check(_lte(BigInt(0),params))},nonnegative(params){return this.check(_gte(BigInt(0),params))},multipleOf(value,params){return this.check(_multipleOf(value,params))}}));function bigint2(params){return _bigint(ZodBigInt,params)}var ZodBigIntFormat=$constructor("ZodBigIntFormat",(inst,def)=>{$ZodBigIntFormat.init(inst,def);ZodBigInt.init(inst,def)});function int64(params){return _int64(ZodBigIntFormat,params)}function uint64(params){return _uint64(ZodBigIntFormat,params)}var ZodSymbol=$constructor("ZodSymbol",(inst,def)=>{$ZodSymbol.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>symbolProcessor(inst,ctx,json2,params)});function symbol(params){return _symbol(ZodSymbol,params)}var ZodUndefined=$constructor("ZodUndefined",(inst,def)=>{$ZodUndefined.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>undefinedProcessor(inst,ctx,json2,params)});function _undefined3(params){return _undefined2(ZodUndefined,params)}var ZodNull=$constructor("ZodNull",(inst,def)=>{$ZodNull.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>nullProcessor(inst,ctx,json2,params)});function _null3(params){return _null2(ZodNull,params)}var ZodAny=$constructor("ZodAny",(inst,def)=>{$ZodAny.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>anyProcessor(inst,ctx,json2,params)});function any(){return _any(ZodAny)}var ZodUnknown=$constructor("ZodUnknown",(inst,def)=>{$ZodUnknown.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>unknownProcessor(inst,ctx,json2,params)});function unknown(){return _unknown(ZodUnknown)}var ZodNever=$constructor("ZodNever",(inst,def)=>{$ZodNever.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>neverProcessor(inst,ctx,json2,params)});function never(params){return _never(ZodNever,params)}var ZodVoid=$constructor("ZodVoid",(inst,def)=>{$ZodVoid.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>voidProcessor(inst,ctx,json2,params)});function _void2(params){return _void(ZodVoid,params)}var ZodDate=$constructor("ZodDate",(inst,def)=>{$ZodDate.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>dateProcessor(inst,ctx,json2,params);inst.min=(value,params)=>inst.check(_gte(value,params));inst.max=(value,params)=>inst.check(_lte(value,params))},derived({minDate:(inst)=>{const{minimum}=aggregateChecks(inst);return minimum?new Date(minimum):null},maxDate:(inst)=>{const{maximum}=aggregateChecks(inst);return maximum?new Date(maximum):null}},{}));function date2(params){return _date(ZodDate,params)}var ZodArray=$constructor("ZodArray",(inst,def)=>{_ensureDefaultMemoizer();$ZodArray.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>arrayProcessor(inst,ctx,json2,params);inst.element=def.element},{min(n,params){return this.check(_minLength(n,params))},nonempty(params){return this.check(_minLength(1,params))},max(n,params){return this.check(_maxLength(n,params))},length(n,params){return this.check(_length(n,params))},unwrap(){return this.element}});function array(element,params){return _array(ZodArray,element,params)}function keyof(schema){const shape=schema._zod.def.shape;return _enum2(Object.keys(shape))}var ZodObject=$constructor("ZodObject",(inst,def)=>{_ensureDefaultMemoizer();$ZodObjectJIT.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>objectProcessor(inst,ctx,json2,params);installLazyProp(inst,"shape",(self)=>self._zod.def.shape,false)},{keyof(){return _enum2(Object.keys(this._zod.def.shape))},catchall(catchall){return this.clone(mergeDefs(this._zod.def,{catchall}))},passthrough(){return this.clone(mergeDefs(this._zod.def,{catchall:unknown()}))},loose(){return this.clone(mergeDefs(this._zod.def,{catchall:unknown()}))},strict(){return this.clone(mergeDefs(this._zod.def,{catchall:never()}))},strip(){return this.clone(mergeDefs(this._zod.def,{catchall:undefined}))},extend(incoming){return extend(this,incoming)},safeExtend(incoming){return safeExtend(this,incoming)},merge(other){return merge(this,other)},pick(mask){return pick(this,mask)},omit(mask){return omit(this,mask)},partial(...args){return partial(ZodOptional,this,args[0])},exactPartial(...args){return partial(ZodExactOptional,this,args[0],"exactPartial")},required(...args){return required(ZodNonOptional,this,args[0])}});function object(shape,params){const def={type:"object",shape:shape??{},...normalizeParams(params)};return new ZodObject(def)}function strictObject(shape,params){return new ZodObject({type:"object",shape,catchall:never(),...normalizeParams(params)})}function looseObject(shape,params){return new ZodObject({type:"object",shape,catchall:unknown(),...normalizeParams(params)})}var ZodUnion=$constructor("ZodUnion",(inst,def)=>{$ZodUnion.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>unionProcessor(inst,ctx,json2,params);inst.options=def.options});function union(options,params){return new ZodUnion({type:"union",options,...normalizeParams(params)})}var ZodXor=$constructor("ZodXor",(inst,def)=>{ZodUnion.init(inst,def);$ZodXor.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>unionProcessor(inst,ctx,json2,params);inst.options=def.options});function xor(options,params){return new ZodXor({type:"union",options,inclusive:false,...normalizeParams(params)})}var ZodDiscriminatedUnion=$constructor("ZodDiscriminatedUnion",(inst,def)=>{ZodUnion.init(inst,def);$ZodDiscriminatedUnion.init(inst,def)});function discriminatedUnion(discriminator,options,params){return new ZodDiscriminatedUnion({type:"union",options,discriminator,...normalizeParams(params)})}var ZodIntersection=$constructor("ZodIntersection",(inst,def)=>{$ZodIntersection.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>intersectionProcessor(inst,ctx,json2,params)});function intersection(left,right){return new ZodIntersection({type:"intersection",left,right})}var ZodTuple=$constructor("ZodTuple",(inst,def)=>{_ensureDefaultMemoizer();$ZodTuple.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>tupleProcessor(inst,ctx,json2,params)},{rest(rest){return this.clone({...this._zod.def,rest})},partial(){const def=this._zod.def;if(def.checks?.length)throw new Error(".partial() cannot be used on tuple schemas containing refinements");return this.clone({...def,items:def.items.map((item)=>new ZodOptional({type:"optional",innerType:item}))})}});function tuple(items,_paramsOrRest,_params){const hasRest=_paramsOrRest instanceof $ZodType;const params=hasRest?_params:_paramsOrRest;const rest=hasRest?_paramsOrRest:null;return new ZodTuple({type:"tuple",items,rest,...normalizeParams(params)})}var ZodRecord=$constructor("ZodRecord",(inst,def)=>{_ensureDefaultMemoizer();$ZodRecord.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>recordProcessor(inst,ctx,json2,params);inst.keyType=def.keyType;inst.valueType=def.valueType});function record(keyType,valueType,params){if(!valueType||!valueType._zod){return new ZodRecord({type:"record",keyType:string2(),valueType:keyType,...normalizeParams(valueType)})}return new ZodRecord({type:"record",keyType,valueType,...normalizeParams(params)})}function partialRecord(keyType,valueType,params){return new ZodRecord({type:"record",keyType,valueType,...normalizeParams(params),partial:true})}function looseRecord(keyType,valueType,params){return new ZodRecord({type:"record",keyType,valueType,mode:"loose",...normalizeParams(params)})}var ZodMap=$constructor("ZodMap",(inst,def)=>{_ensureDefaultMemoizer();$ZodMap.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>mapProcessor(inst,ctx,json2,params);inst.keyType=def.keyType;inst.valueType=def.valueType;inst.min=(...args)=>inst.check(_minSize(...args));inst.nonempty=(params)=>inst.check(_minSize(1,params));inst.max=(...args)=>inst.check(_maxSize(...args));inst.size=(...args)=>inst.check(_size(...args))});function map(keyType,valueType,params){return new ZodMap({type:"map",keyType,valueType,...normalizeParams(params)})}var ZodSet=$constructor("ZodSet",(inst,def)=>{_ensureDefaultMemoizer();$ZodSet.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>setProcessor(inst,ctx,json2,params);inst.min=(...args)=>inst.check(_minSize(...args));inst.nonempty=(params)=>inst.check(_minSize(1,params));inst.max=(...args)=>inst.check(_maxSize(...args));inst.size=(...args)=>inst.check(_size(...args))});function set(valueType,params){return new ZodSet({type:"set",valueType,...normalizeParams(params)})}var ZodEnum=$constructor("ZodEnum",(inst,def)=>{$ZodEnum.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>enumProcessor(inst,ctx,json2,params);inst.enum=def.entries;inst.options=[...inst._zod.values];const keys=new Set(Object.keys(def.entries));inst.extract=(values,params)=>{const newEntries={};for(const value of values){if(keys.has(value)){newEntries[value]=def.entries[value]}else throw new Error(`Key ${value} not found in enum`)}return new ZodEnum({...def,checks:[],...normalizeParams(params),entries:newEntries})};inst.exclude=(values,params)=>{const newEntries={...def.entries};for(const value of values){if(keys.has(value)){delete newEntries[value]}else throw new Error(`Key ${value} not found in enum`)}return new ZodEnum({...def,checks:[],...normalizeParams(params),entries:newEntries})}});function _enum2(values,params){const entries=Array.isArray(values)?Object.fromEntries(values.map((v)=>[v,v])):values;return new ZodEnum({type:"enum",entries,...normalizeParams(params)})}function nativeEnum(entries,params){return new ZodEnum({type:"enum",entries,...normalizeParams(params)})}var ZodLiteral=$constructor("ZodLiteral",(inst,def)=>{$ZodLiteral.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>literalProcessor(inst,ctx,json2,params);inst.values=new Set(def.values);Object.defineProperty(inst,"value",{get(){if(def.values.length>1){throw new Error("This schema contains multiple valid literal values. Use `.values` instead.")}return def.values[0]}})});function literal(value,params){return new ZodLiteral({type:"literal",values:Array.isArray(value)?value:[value],...normalizeParams(params)})}var ZodFile=$constructor("ZodFile",(inst,def)=>{$ZodFile.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>fileProcessor(inst,ctx,json2,params);inst.min=(size,params)=>inst.check(_minSize(size,params));inst.max=(size,params)=>inst.check(_maxSize(size,params));inst.mime=(types,params)=>inst.check(_mime(Array.isArray(types)?types:[types],params))});function file(params){return _file(ZodFile,params)}var ZodTransform=$constructor("ZodTransform",(inst,def)=>{_ensureDefaultMemoizer();$ZodTransform.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>transformProcessor(inst,ctx,json2,params);inst._zod.parse=(payload,_ctx)=>{if(_ctx.direction==="backward"){throw new $ZodEncodeError(inst.constructor.name)}payload.addIssue=(issue2)=>{if(typeof issue2==="string"){payload.issues.push(issue(issue2,payload.value,def))}else{const _issue=issue2;if(_issue.fatal)_issue.continue=false;_issue.code??(_issue.code="custom");if(!("input"in _issue))_issue.input=payload.value;_issue.inst??(_issue.inst=inst);payload.issues.push(issue(_issue))}};const output=def.transform(payload.value,payload);if(output instanceof Promise){return output.then((output)=>{payload.value=output;return payload})}payload.value=output;return payload}});function transform(fn){return new ZodTransform({type:"transform",transform:fn})}var ZodOptional=$constructor("ZodOptional",(inst,def)=>{$ZodOptional.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>optionalProcessor(inst,ctx,json2,params);inst.unwrap=()=>inst._zod.def.innerType});function optional(innerType){return new ZodOptional({type:"optional",innerType})}var ZodExactOptional=$constructor("ZodExactOptional",(inst,def)=>{$ZodExactOptional.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>optionalProcessor(inst,ctx,json2,params);inst.unwrap=()=>inst._zod.def.innerType});function exactOptional(innerType){return new ZodExactOptional({type:"optional",innerType})}var ZodNullable=$constructor("ZodNullable",(inst,def)=>{$ZodNullable.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>nullableProcessor(inst,ctx,json2,params);inst.unwrap=()=>inst._zod.def.innerType});function nullable(innerType){return new ZodNullable({type:"nullable",innerType})}function nullish2(innerType){return optional(nullable(innerType))}var ZodDefault=$constructor("ZodDefault",(inst,def)=>{$ZodDefault.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>defaultProcessor(inst,ctx,json2,params);inst.unwrap=()=>inst._zod.def.innerType;inst.removeDefault=inst.unwrap});function _default2(innerType,defaultValue){return new ZodDefault({type:"default",innerType,get defaultValue(){return typeof defaultValue==="function"?defaultValue():shallowClone(defaultValue)}})}var ZodPrefault=$constructor("ZodPrefault",(inst,def)=>{$ZodPrefault.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>prefaultProcessor(inst,ctx,json2,params);inst.unwrap=()=>inst._zod.def.innerType});function prefault(innerType,defaultValue){return new ZodPrefault({type:"prefault",innerType,get defaultValue(){return typeof defaultValue==="function"?defaultValue():shallowClone(defaultValue)}})}var ZodNonOptional=$constructor("ZodNonOptional",(inst,def)=>{$ZodNonOptional.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>nonoptionalProcessor(inst,ctx,json2,params);inst.unwrap=()=>inst._zod.def.innerType});function nonoptional(innerType,params){return new ZodNonOptional({type:"nonoptional",innerType,...normalizeParams(params)})}var ZodSuccess=$constructor("ZodSuccess",(inst,def)=>{$ZodSuccess.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>successProcessor(inst,ctx,json2,params);inst.unwrap=()=>inst._zod.def.innerType});function success(innerType){return new ZodSuccess({type:"success",innerType})}var ZodCatch=$constructor("ZodCatch",(inst,def)=>{$ZodCatch.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>catchProcessor(inst,ctx,json2,params);inst.unwrap=()=>inst._zod.def.innerType;inst.removeCatch=inst.unwrap});function _catch2(innerType,catchValue){return new ZodCatch({type:"catch",innerType,catchValue:typeof catchValue==="function"?catchValue:constantCatch(catchValue)})}var ZodNaN=$constructor("ZodNaN",(inst,def)=>{$ZodNaN.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>nanProcessor(inst,ctx,json2,params)});function nan(params){return _nan(ZodNaN,params)}var ZodPipe=$constructor("ZodPipe",(inst,def)=>{$ZodPipe.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>pipeProcessor(inst,ctx,json2,params);inst.in=def.in;inst.out=def.out});function pipe(in_,out){return new ZodPipe({type:"pipe",in:in_,out})}var ZodCodec=$constructor("ZodCodec",(inst,def)=>{ZodPipe.init(inst,def);$ZodCodec.init(inst,def)});function codec(in_,out,params){return new ZodCodec({type:"pipe",in:in_,out,transform:params.decode,reverseTransform:params.encode})}function invertCodec(codec2){const def=codec2._zod.def;return new ZodCodec({type:"pipe",in:def.out,out:def.in,transform:def.reverseTransform,reverseTransform:def.transform})}var ZodPreprocess=$constructor("ZodPreprocess",(inst,def)=>{ZodPipe.init(inst,def);$ZodPreprocess.init(inst,def)});var ZodReadonly=$constructor("ZodReadonly",(inst,def)=>{$ZodReadonly.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>readonlyProcessor(inst,ctx,json2,params);inst.unwrap=()=>inst._zod.def.innerType});function readonly(innerType){return new ZodReadonly({type:"readonly",innerType})}var ZodTemplateLiteral=$constructor("ZodTemplateLiteral",(inst,def)=>{$ZodTemplateLiteral.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>templateLiteralProcessor(inst,ctx,json2,params)});function templateLiteral(parts,params){return new ZodTemplateLiteral({type:"template_literal",parts,...normalizeParams(params)})}var ZodLazy=$constructor("ZodLazy",(inst,def)=>{$ZodLazy.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>lazyProcessor(inst,ctx,json2,params);inst.unwrap=()=>inst._zod.def.getter()});function lazy(getter){return new ZodLazy({type:"lazy",getter})}var ZodPromise=$constructor("ZodPromise",(inst,def)=>{$ZodPromise.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>promiseProcessor(inst,ctx,json2,params);inst.unwrap=()=>inst._zod.def.innerType});function promise(innerType){return new ZodPromise({type:"promise",innerType})}var ZodFunction=$constructor("ZodFunction",(inst,def)=>{$ZodFunction.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>functionProcessor(inst,ctx,json2,params)});function _function(params){return new ZodFunction({type:"function",input:Array.isArray(params?.input)?tuple(params?.input):params?.input??array(unknown()),output:params?.output??unknown()})}var ZodCustom=$constructor("ZodCustom",(inst,def)=>{$ZodCustom.init(inst,def);ZodType.init(inst,def);inst._zod.processJSONSchema=(ctx,json2,params)=>customProcessor(inst,ctx,json2,params)});function check(fn){const ch=new $ZodCheck({check:"custom"});ch._zod.check=fn;return ch}function custom(fn,_params){return _custom(ZodCustom,fn??(()=>true),_params)}function refine(fn,_params={}){return _refine(ZodCustom,fn,_params)}function superRefine(fn,params){return _superRefine(fn,params)}var describe2=describe;var meta2=meta;var ZodInstanceOf=$constructor("ZodInstanceOf",(inst,def)=>{ZodCustom.init(inst,def)},{properties(shape,params){return this.check(_properties(shape,params))}});function _instanceof(cls,params={}){const inst=new ZodInstanceOf({type:"custom",check:"custom",fn:(data)=>data instanceof cls,abort:true,...normalizeParams(params)});inst._zod.bag.Class=cls;inst._zod.check=(payload)=>{if(!(payload.value instanceof cls)){payload.issues.push({code:"invalid_type",expected:cls.name,input:payload.value,inst,path:[...inst._zod.def.path??[]]})}};return inst}var stringbool=(...args)=>_stringbool({Codec:ZodCodec,Boolean:ZodBoolean,String:ZodString},...args);function json(params){const jsonSchema=lazy(()=>{return union([string2(params),number2(),boolean2(),_null3(),array(jsonSchema),record(string2(),jsonSchema)])});return jsonSchema}function preprocess(fn,schema){return new ZodPreprocess({type:"pipe",in:transform(fn),out:schema})}var ZodIssueCode={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function setErrorMap(map){config({customError:map})}function getErrorMap(){return config().customError}var ZodFirstPartyTypeKind;(function(ZodFirstPartyTypeKind){})(ZodFirstPartyTypeKind||(ZodFirstPartyTypeKind={}));var exports_iso={};__export(exports_iso,{ZodISODate:()=>ZodISODate,ZodISODateTime:()=>ZodISODateTime,ZodISODuration:()=>ZodISODuration,ZodISOTime:()=>ZodISOTime,date:()=>date3,datetime:()=>datetime2,duration:()=>duration2,time:()=>time2});function datetime2(params){return _isoDateTime(ZodISODateTime,params)}function date3(params){return _isoDate(ZodISODate,params)}function time2(params){return _isoTime(ZodISOTime,params)}function duration2(params){return _isoDuration(ZodISODuration,params)}var z={...exports_schemas2,...exports_checks2,iso:exports_iso};var RECOGNIZED_KEYS=new Set(["$schema","$ref","$defs","definitions","$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor","type","enum","const","anyOf","oneOf","allOf","not","properties","required","additionalProperties","patternProperties","propertyNames","minProperties","maxProperties","items","prefixItems","additionalItems","minItems","maxItems","uniqueItems","contains","minContains","maxContains","minLength","maxLength","pattern","format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","description","default","contentEncoding","contentMediaType","contentSchema","unevaluatedItems","unevaluatedProperties","if","then","else","dependentSchemas","dependentRequired","nullable","readOnly"]);function detectVersion(schema,defaultTarget){const $schema=schema.$schema;if($schema==="https://json-schema.org/draft/2020-12/schema"){return"draft-2020-12"}if($schema==="http://json-schema.org/draft-07/schema#"){return"draft-7"}if($schema==="http://json-schema.org/draft-04/schema#"){return"draft-4"}return defaultTarget??"draft-2020-12"}function applyMinItems(items,minItems){return items.map((item,index)=>index<minItems?item:item.optional())}function decodeJSONPointerSegment(segment){return segment.replace(/~1/g,"/").replace(/~0/g,"~")}function resolveRef(ref,ctx){if(!ref.startsWith("#")){throw new Error("External $ref is not supported, only local refs (#/...) are allowed")}const path=ref.slice(1).split("/").filter(Boolean);if(path.length===0){return ctx.rootSchema}const defsKey=ctx.version==="draft-2020-12"?"$defs":"definitions";if(path[0]===defsKey){const key=path[1]===undefined?undefined:decodeJSONPointerSegment(path[1]);if(!key||!ctx.defs[key]){throw new Error(`Reference not found: ${ref}`)}return ctx.defs[key]}throw new Error(`Reference not found: ${ref}`)}function checkObjectGuards(objectSchema,guards){const guard=z.transform((value)=>value).check((payload)=>{const value=payload.value;if(typeof value!=="object"||value===null||Array.isArray(value))return;const keys=Object.getOwnPropertyNames(value);if(guards.minProperties!==undefined&&keys.length<guards.minProperties){payload.issues.push({origin:"object",code:"too_small",minimum:guards.minProperties,inclusive:true,message:`Too small: expected object to have >=${guards.minProperties} properties`,input:value,inst:objectSchema,continue:true})}if(guards.maxProperties!==undefined&&keys.length>guards.maxProperties){payload.issues.push({origin:"object",code:"too_big",maximum:guards.maxProperties,inclusive:true,message:`Too big: expected object to have <=${guards.maxProperties} properties`,input:value,inst:objectSchema,continue:true})}if(guards.keySchema){for(const key of keys){const result=guards.keySchema.safeParse(key);if(result.success)continue;payload.issues.push({code:"invalid_key",origin:"record",issues:result.error.issues,input:key,path:[key],continue:true})}}});return guard.pipe(objectSchema)}function canonicalKey(value,seen){if(value===null)return"z";const type=typeof value;if(type!=="object"){if(type==="number"&&Number.isNaN(value))return null;const raw=String(value);return`${type[0]}${raw.length}:${raw}`}if(seen.has(value))return null;seen.add(value);try{if(Array.isArray(value)){const parts=[];for(const item of value){const key=canonicalKey(item,seen);if(key===null)return null;parts.push(key)}return`a${parts.length}:[${parts.join(",")}]`}const keys=Object.keys(value).sort();const parts=[];for(const k of keys){const key=canonicalKey(value[k],seen);if(key===null)return null;parts.push(`${k.length}:${k}=${key}`)}return`o${parts.length}:{${parts.join(",")}}`}finally{seen.delete(value)}}var SCHEMA_KEYWORDS=new Set(["items","prefixItems","additionalItems","additionalProperties","contains","propertyNames","not","if","then","else","allOf","anyOf","oneOf","unevaluatedItems","unevaluatedProperties","contentSchema"]);var SCHEMA_MAP_KEYWORDS=new Set(["properties","patternProperties","dependentSchemas","dependencies","$defs","definitions"]);function containsRef(value){if(typeof value!=="object"||value===null)return false;if(Array.isArray(value))return value.some(containsRef);if(typeof value.$ref==="string")return true;return Object.entries(value).some(([key,sub])=>{if(SCHEMA_KEYWORDS.has(key))return containsRef(sub);if(!SCHEMA_MAP_KEYWORDS.has(key)||typeof sub!=="object"||sub===null)return false;return Object.values(sub).some(containsRef)})}function plural(n){return n===1?"element":"elements"}function checkArrayGuards(arraySchema,guards){const guard=z.transform((value)=>value).check((payload)=>{const items=payload.value;if(!Array.isArray(items))return;if(guards.uniqueItems===true){const firstSeen=new Map;for(let i=0;i<items.length;i++){const key=canonicalKey(items[i],new Set);if(key===null)continue;const first=firstSeen.get(key);if(first===undefined){firstSeen.set(key,i);continue}payload.issues.push({code:"custom",message:`Array items must be unique: element at index ${i} duplicates the one at index ${first}`,input:items,path:[i],continue:true})}}if(guards.containsSchema){const minContains=guards.minContains??1;const ceiling=guards.maxContains!==undefined?guards.maxContains+1:Number.POSITIVE_INFINITY;let matches=0;for(const item of items){if(guards.containsSchema.safeParse(item).success&&++matches>=ceiling)break}if(matches<minContains){payload.issues.push({code:"custom",message:`Array must contain at least ${minContains} matching ${plural(minContains)}; found ${matches}`,input:items,continue:true})}if(guards.maxContains!==undefined&&matches>guards.maxContains){payload.issues.push({code:"custom",message:`Array must contain at most ${guards.maxContains} matching ${plural(guards.maxContains)}`,input:items,continue:true})}}});return guard.pipe(arraySchema)}function getTupleRest(restSchema,ctx){if(restSchema===false){return}if(restSchema===undefined||restSchema===true){return z.any()}return convertSchema(restSchema,ctx)}var fullTime=/^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/;function convertBaseSchema(schema,ctx){if(schema.not!==undefined){if(typeof schema.not==="object"&&Object.keys(schema.not).length===0){return z.never()}throw new Error("not is not supported in Zod (except { not: {} } for never)")}if(schema.unevaluatedItems!==undefined){throw new Error("unevaluatedItems is not supported")}if(schema.unevaluatedProperties!==undefined){throw new Error("unevaluatedProperties is not supported")}if(schema.if!==undefined||schema.then!==undefined||schema.else!==undefined){throw new Error("Conditional schemas (if/then/else) are not supported")}if(schema.dependentSchemas!==undefined||schema.dependentRequired!==undefined){throw new Error("dependentSchemas and dependentRequired are not supported")}if(schema.$ref){const refPath=schema.$ref;if(ctx.refs.has(refPath)){return ctx.refs.get(refPath)}if(ctx.processing.has(refPath)){return z.lazy(()=>{if(!ctx.refs.has(refPath)){throw new Error(`Circular reference not resolved: ${refPath}`)}return ctx.refs.get(refPath)})}ctx.processing.add(refPath);const resolved=resolveRef(refPath,ctx);const zodSchema=convertSchema(resolved,ctx);ctx.refs.set(refPath,zodSchema);ctx.processing.delete(refPath);return zodSchema}if(schema.enum!==undefined){const enumValues=schema.enum;if(ctx.version==="openapi-3.0"&&schema.nullable===true&&enumValues.length===1&&enumValues[0]===null){return z.null()}if(enumValues.length===0){return z.never()}if(enumValues.length===1){return z.literal(enumValues[0])}if(enumValues.every((v)=>typeof v==="string")){return z.enum(enumValues)}const literalSchemas=enumValues.map((v)=>z.literal(v));if(literalSchemas.length<2){return literalSchemas[0]}return z.union([literalSchemas[0],literalSchemas[1],...literalSchemas.slice(2)])}if(schema.const!==undefined){return z.literal(schema.const)}const type=schema.type;if(Array.isArray(type)){const typeSchemas=type.map((t)=>{const typeSchema={...schema,type:t};return convertBaseSchema(typeSchema,ctx)});if(typeSchemas.length===0){return z.never()}if(typeSchemas.length===1){return typeSchemas[0]}return z.union(typeSchemas)}if(!type){return z.any()}let zodSchema;switch(type){case"string":{let stringSchema=z.string();if(schema.format){const format=schema.format;if(format==="email"){stringSchema=stringSchema.check(z.email())}else if(format==="uri"||format==="uri-reference"){stringSchema=stringSchema.check(z.url())}else if(format==="uuid"||format==="guid"){stringSchema=stringSchema.check(z.uuid())}else if(format==="date-time"){stringSchema=stringSchema.check(z.iso.datetime({offset:true}))}else if(format==="date"){stringSchema=stringSchema.check(z.iso.date())}else if(format==="time"){stringSchema=stringSchema.check(z.regex(fullTime))}else if(format==="duration"){stringSchema=stringSchema.check(z.iso.duration())}else if(format==="hostname"){stringSchema=stringSchema.check(z.hostname())}else if(format==="ipv4"){stringSchema=stringSchema.check(z.ipv4())}else if(format==="ipv6"){stringSchema=stringSchema.check(z.ipv6())}else if(format==="mac"){stringSchema=stringSchema.check(z.mac())}else if(format==="cidr"){stringSchema=stringSchema.check(z.cidrv4())}else if(format==="cidr-v6"){stringSchema=stringSchema.check(z.cidrv6())}else if(format==="base64"){stringSchema=stringSchema.check(z.base64())}else if(format==="base64url"){stringSchema=stringSchema.check(z.base64url())}else if(format==="e164"){stringSchema=stringSchema.check(z.e164())}else if(format==="credit_card"){stringSchema=stringSchema.check(z.creditCard())}else if(format==="iban"){stringSchema=stringSchema.check(z.iban())}else if(format==="jwt"){stringSchema=stringSchema.check(z.jwt())}else if(format==="emoji"){stringSchema=stringSchema.check(z.emoji())}else if(format==="nanoid"){stringSchema=stringSchema.check(z.nanoid())}else if(format==="cuid"){stringSchema=stringSchema.check(z.cuid())}else if(format==="cuid2"){stringSchema=stringSchema.check(z.cuid2())}else if(format==="ulid"){stringSchema=stringSchema.check(z.ulid())}else if(format==="xid"){stringSchema=stringSchema.check(z.xid())}else if(format==="ksuid"){stringSchema=stringSchema.check(z.ksuid())}}if(typeof schema.minLength==="number"){stringSchema=stringSchema.min(schema.minLength)}if(typeof schema.maxLength==="number"){stringSchema=stringSchema.max(schema.maxLength)}if(schema.pattern){stringSchema=stringSchema.regex(new RegExp(schema.pattern))}zodSchema=stringSchema;break}case"number":case"integer":{let numberSchema=type==="integer"?z.number().int():z.number();if(typeof schema.minimum==="number"&&schema.exclusiveMinimum!==true){numberSchema=numberSchema.min(schema.minimum)}if(typeof schema.maximum==="number"&&schema.exclusiveMaximum!==true){numberSchema=numberSchema.max(schema.maximum)}if(typeof schema.exclusiveMinimum==="number"){numberSchema=numberSchema.gt(schema.exclusiveMinimum)}else if(schema.exclusiveMinimum===true&&typeof schema.minimum==="number"){numberSchema=numberSchema.gt(schema.minimum)}if(typeof schema.exclusiveMaximum==="number"){numberSchema=numberSchema.lt(schema.exclusiveMaximum)}else if(schema.exclusiveMaximum===true&&typeof schema.maximum==="number"){numberSchema=numberSchema.lt(schema.maximum)}if(typeof schema.multipleOf==="number"){numberSchema=numberSchema.multipleOf(schema.multipleOf)}zodSchema=numberSchema;break}case"boolean":{zodSchema=z.boolean();break}case"null":{zodSchema=z.null();break}case"object":{const shape={};const properties=schema.properties||{};const requiredSet=new Set(schema.required||[]);const additionalSchema=typeof schema.additionalProperties==="object"?convertSchema(schema.additionalProperties,ctx):undefined;for(const[key,propSchema]of Object.entries(properties)){const propZodSchema=convertSchema(propSchema,ctx);assignProp(shape,key,requiredSet.has(key)?propZodSchema:propZodSchema.optional())}if(schema.patternProperties){const patternProps=schema.patternProperties;const patternKeys=Object.keys(patternProps);const looseRecords=[];for(const pattern of patternKeys){const patternValue=convertSchema(patternProps[pattern],ctx);const keySchema=z.string().regex(new RegExp(pattern));looseRecords.push(z.looseRecord(keySchema,patternValue))}const schemasToIntersect=[];if(Object.keys(shape).length>0){schemasToIntersect.push(z.object(shape).passthrough())}schemasToIntersect.push(...looseRecords);if(schemasToIntersect.length===0){zodSchema=z.object({}).passthrough()}else if(schemasToIntersect.length===1){zodSchema=schemasToIntersect[0]}else{let result=z.intersection(schemasToIntersect[0],schemasToIntersect[1]);for(let i=2;i<schemasToIntersect.length;i++){result=z.intersection(result,schemasToIntersect[i])}zodSchema=result}if(schema.additionalProperties===false){const propertyKeys=Object.keys(shape);const patterns=patternKeys.map((p)=>new RegExp(p));const basePatternSchema=zodSchema;zodSchema=zodSchema.check((payload)=>{if(!isPlainObject(payload.value))return;const unrecognized=[];for(const key of Object.keys(payload.value)){if(propertyKeys.includes(key))continue;if(patterns.some((regex)=>regex.test(key)))continue;unrecognized.push(key)}if(unrecognized.length){payload.issues.push({code:"unrecognized_keys",keys:unrecognized,input:payload.value,inst:basePatternSchema})}})}}else{const objectSchema=z.object(shape);if(schema.additionalProperties===false){zodSchema=objectSchema.strict()}else if(additionalSchema){zodSchema=objectSchema.catchall(additionalSchema)}else{zodSchema=objectSchema.passthrough()}}const hasKeyGuard=schema.propertyNames!==undefined&&schema.propertyNames!==true;const minProperties=typeof schema.minProperties==="number"?schema.minProperties:undefined;const maxProperties=typeof schema.maxProperties==="number"?schema.maxProperties:undefined;if(hasKeyGuard||minProperties!==undefined||maxProperties!==undefined){let keySchema;if(hasKeyGuard){const keyJSONSchema=typeof schema.propertyNames==="object"&&schema.propertyNames.type===undefined?{type:"string",...schema.propertyNames}:schema.propertyNames;keySchema=convertSchema(keyJSONSchema,ctx)}zodSchema=checkObjectGuards(zodSchema,{keySchema,minProperties,maxProperties})}break}case"array":{const prefixItems=schema.prefixItems;const items=schema.items;if(prefixItems&&Array.isArray(prefixItems)){const minItems=typeof schema.minItems==="number"?schema.minItems:0;const tupleItems=prefixItems.map((item)=>convertSchema(item,ctx));const positionalItems=applyMinItems(tupleItems,minItems);const rest=!Array.isArray(items)?getTupleRest(items,ctx):undefined;const tupleSchema=z.tuple(positionalItems);zodSchema=rest?tupleSchema.rest(rest):tupleSchema;if(typeof schema.minItems==="number"){zodSchema=zodSchema.check(z.minLength(schema.minItems))}if(typeof schema.maxItems==="number"){zodSchema=zodSchema.check(z.maxLength(schema.maxItems))}}else if(Array.isArray(items)){const minItems=typeof schema.minItems==="number"?schema.minItems:0;const tupleItems=items.map((item)=>convertSchema(item,ctx));const positionalItems=applyMinItems(tupleItems,minItems);const rest=getTupleRest(schema.additionalItems,ctx);const tupleSchema=z.tuple(positionalItems);zodSchema=rest?tupleSchema.rest(rest):tupleSchema;if(typeof schema.minItems==="number"){zodSchema=zodSchema.check(z.minLength(schema.minItems))}if(typeof schema.maxItems==="number"){zodSchema=zodSchema.check(z.maxLength(schema.maxItems))}}else if(items!==undefined){const element=convertSchema(items,ctx);let arraySchema=z.array(element);if(typeof schema.minItems==="number"){arraySchema=arraySchema.min(schema.minItems)}if(typeof schema.maxItems==="number"){arraySchema=arraySchema.max(schema.maxItems)}zodSchema=arraySchema}else{zodSchema=z.array(z.any())}if(schema.uniqueItems===true||schema.contains!==undefined){zodSchema=checkArrayGuards(zodSchema,{uniqueItems:schema.uniqueItems===true,containsSchema:schema.contains!==undefined?convertSchema(schema.contains,ctx):undefined,minContains:typeof schema.minContains==="number"?schema.minContains:undefined,maxContains:typeof schema.maxContains==="number"?schema.maxContains:undefined})}break}default:throw new Error(`Unsupported type: ${type}`)}return zodSchema}function convertSchema(schema,ctx){if(typeof schema==="boolean"){return schema?z.any():z.never()}let baseSchema=convertBaseSchema(schema,ctx);const hasExplicitType=schema.type||schema.enum!==undefined||schema.const!==undefined;if(schema.anyOf&&Array.isArray(schema.anyOf)){const options=schema.anyOf.map((s)=>convertSchema(s,ctx));const anyOfUnion=z.union(options);baseSchema=hasExplicitType?z.intersection(baseSchema,anyOfUnion):anyOfUnion}if(schema.oneOf&&Array.isArray(schema.oneOf)){const options=schema.oneOf.map((s)=>convertSchema(s,ctx));const oneOfUnion=z.xor(options);baseSchema=hasExplicitType?z.intersection(baseSchema,oneOfUnion):oneOfUnion}if(schema.allOf&&Array.isArray(schema.allOf)){if(schema.allOf.length===0){baseSchema=hasExplicitType?baseSchema:z.any()}else{let result=hasExplicitType?baseSchema:convertSchema(schema.allOf[0],ctx);const startIdx=hasExplicitType?0:1;for(let i=startIdx;i<schema.allOf.length;i++){result=z.intersection(result,convertSchema(schema.allOf[i],ctx))}baseSchema=result}}if(schema.nullable===true&&ctx.version==="openapi-3.0"){baseSchema=z.nullable(baseSchema)}if(schema.readOnly===true){baseSchema=z.readonly(baseSchema)}if(schema.default!==undefined){baseSchema=baseSchema.default(schema.default)}const extraMeta={};const coreMetadataKeys=["$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor"];for(const key of coreMetadataKeys){if(key in schema){extraMeta[key]=schema[key]}}const contentMetadataKeys=["contentEncoding","contentMediaType","contentSchema"];for(const key of contentMetadataKeys){if(key in schema){extraMeta[key]=schema[key]}}if(schema.type==="object"&&schema.$ref===undefined){if(schema.propertyNames!==undefined&&!containsRef(schema.propertyNames)){extraMeta.propertyNames=schema.propertyNames}for(const key of["minProperties","maxProperties"]){if(schema[key]!==undefined)extraMeta[key]=schema[key]}}if(schema.type==="array"&&schema.$ref===undefined){if(schema.contains!==undefined&&!containsRef(schema.contains)){extraMeta.contains=schema.contains}for(const key of["uniqueItems","minContains","maxContains"]){if(schema[key]!==undefined)extraMeta[key]=schema[key]}}for(const key of Object.keys(schema)){if(!RECOGNIZED_KEYS.has(key)){assignProp(extraMeta,key,schema[key])}}if(Object.keys(extraMeta).length>0){ctx.registry.add(baseSchema,extraMeta)}if(schema.description){baseSchema=baseSchema.describe(schema.description)}return baseSchema}function fromJSONSchema(schema,params){if(typeof schema==="boolean"){return schema?z.any():z.never()}let normalized;try{normalized=JSON.parse(JSON.stringify(schema))}catch{throw new Error("fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas")}const version=detectVersion(normalized,params?.defaultTarget);const defs=normalized.$defs||normalized.definitions||{};const ctx={version,defs,refs:new Map,processing:new Set,rootSchema:normalized,registry:params?.registry??globalRegistry};return convertSchema(normalized,ctx)}var RESOLVING=Symbol("z.visit/resolving");function visit(schema,fnOrHandlers){const fn=typeof fnOrHandlers==="function"?fnOrHandlers:(node,rewritten)=>{const h=fnOrHandlers[node._zod.def.type];return h?h(node,rewritten):node};const cache=new Map;function run(s){const cached=cache.get(s);if(cached===RESOLVING){return new $ZodLazy({type:"lazy",getter:()=>cache.get(s)})}if(cached!==undefined)return cached;cache.set(s,RESOLVING);const inner=mapInner(s);const mapped=fn(inner,inner!==s);cache.set(s,mapped);return mapped}function mapInner(s){const def=s._zod.def;const kind=def.type;switch(kind){case"object":{const oldShape=def.shape;const keys=Object.keys(oldShape);let changed=false;const newShape={};for(const k of keys){const mapped=run(oldShape[k]);if(mapped!==oldShape[k])changed=true;newShape[k]=mapped}let newCatchall=def.catchall;if(def.catchall){newCatchall=run(def.catchall);if(newCatchall!==def.catchall)changed=true}return changed?clone(s,{...def,shape:newShape,catchall:newCatchall}):s}case"array":{const mapped=run(def.element);return mapped===def.element?s:clone(s,{...def,element:mapped})}case"tuple":{const oldItems=def.items;let changed=false;const newItems=[];for(const item of oldItems){const mapped=run(item);if(mapped!==item)changed=true;newItems.push(mapped)}let newRest=def.rest;if(def.rest){newRest=run(def.rest);if(newRest!==def.rest)changed=true}return changed?clone(s,{...def,items:newItems,rest:newRest}):s}case"record":case"map":{const newKey=run(def.keyType);const newVal=run(def.valueType);return newKey===def.keyType&&newVal===def.valueType?s:clone(s,{...def,keyType:newKey,valueType:newVal})}case"set":{const newVal=run(def.valueType);return newVal===def.valueType?s:clone(s,{...def,valueType:newVal})}case"union":{const oldOptions=def.options;let changed=false;const newOptions=[];for(const opt of oldOptions){const mapped=run(opt);if(mapped!==opt)changed=true;newOptions.push(mapped)}return changed?clone(s,{...def,options:newOptions}):s}case"intersection":{const newLeft=run(def.left);const newRight=run(def.right);return newLeft===def.left&&newRight===def.right?s:clone(s,{...def,left:newLeft,right:newRight})}case"optional":case"nullable":case"default":case"prefault":case"catch":case"readonly":case"nonoptional":case"promise":case"success":{const newInner=run(def.innerType);return newInner===def.innerType?s:clone(s,{...def,innerType:newInner})}case"pipe":{const newIn=run(def.in);const newOut=run(def.out);return newIn===def.in&&newOut===def.out?s:clone(s,{...def,in:newIn,out:newOut})}case"function":{const newInput=run(def.input);const newOutput=run(def.output);return newInput===def.input&&newOutput===def.output?s:clone(s,{...def,input:newInput,output:newOutput})}case"lazy":{const original=def.getter;const{_cachedInner,...rest}=def;return clone(s,{...rest,getter:()=>run(original())})}case"template_literal":case"string":case"number":case"int":case"boolean":case"bigint":case"symbol":case"undefined":case"null":case"void":case"never":case"any":case"unknown":case"date":case"nan":case"enum":case"literal":case"file":case"transform":case"custom":return s;default:{return s}}}return run(schema)}function deepPartial(schema){return visit(schema,{object:(s)=>s.partial(),union:(s)=>{const def=s._zod.def;return def.discriminator===undefined?s:union(def.options)}})}function withChecks(side,checks){if(!checks?.length)return side;const def=side._zod.def;return clone(side,mergeDefs(def,{checks:[...def.checks??[],...checks]}),{parent:true})}function outSide(def){return withChecks(def.out,def.checks)}function inSide(def){return def.in._zod.traits.has("$ZodTransform")?outSide(def):def.in}function input(schema){return visit(schema,{pipe:(s)=>inSide(s._zod.def),default:(s,rewritten)=>rewritten?optional(s._zod.def.innerType):s,catch:(s,rewritten)=>rewritten?s._zod.def.innerType:s})}function output(schema){return visit(schema,{pipe:(s)=>outSide(s._zod.def),prefault:(s,rewritten)=>rewritten?s._zod.def.innerType:s})}var exports_coerce={};__export(exports_coerce,{bigint:()=>bigint3,boolean:()=>boolean3,date:()=>date4,number:()=>number3,string:()=>string3});function string3(params){return _coercedString(ZodString,params)}function number3(params){return _coercedNumber(ZodNumber,params)}function boolean3(params){return _coercedBoolean(ZodBoolean,params)}function bigint3(params){return _coercedBigint(ZodBigInt,params)}function date4(params){return _coercedDate(ZodDate,params)}import path from"node:path";import{mkdir,writeFile}from"node:fs/promises";import{createReadStream}from"node:fs";import{tmpdir}from"node:os";import{readFileSync}from"node:fs";var pageBundle=readFileSync(new URL("./page-bundle.js",import.meta.url),"utf8");init_internal_capability();var __defProp2=Object.defineProperty;var __exportAll=(definitions,namespace)=>{const exports={};for(const name in definitions)__defProp2(exports,name,{get:definitions[name],enumerable:true});if(!namespace)__defProp2(exports,Symbol.toStringTag,{value:"Module"});return exports};var __esmMin=(factory,value,error)=>()=>{if(error)throw error[0];try{return factory&&(value=factory(factory=0)),value}catch(caught){error=[caught];throw caught}};if(!Promise.withResolvers){Promise.withResolvers=()=>{let resolve,reject;const promise=new Promise((res,rej)=>{resolve=res;reject=rej});return{promise,resolve,reject}}}class Emittery{#listeners=new Map;on(name,listener){const listeners=this.#listeners.get(name)??new Set;listeners.add(listener);this.#listeners.set(name,listeners);return()=>{listeners.delete(listener)}}async emit(name,data){const event={data,eventName:name};await Promise.all([...this.#listeners.get(name)??[]].map((listener)=>listener(event)))}clearListeners(){this.#listeners.clear()}}var{object:object2,string:string$2,number:number$2,array:array2,union:union$1,unknown:unknown$1,null:_null4}=exports_zod;var OMOWRIGHT_BROWSER_CDP_HOST="127.0.0.1:9222";var SESSION_ARTIFACTS_DIR=path.join(tmpdir(),"omowright-artifacts");var noop=()=>{};var init_emittery=noop;var init_zod=noop;var init_context=noop;var init_utils$13=noop;var init_config=noop;var init_extension_bridge=noop;var init_commands$1=noop;var init_directory=noop;var init_process=noop;var init_event_bus=noop;var init_state_db=noop;var init_schema=noop;var init_store$1=noop;var init_drizzle_orm=noop;var init_types$8=noop;var init_agent_session_server=noop;var init_nanoid=noop;function sleep$12(ms,signal){return new Promise((resolve,reject)=>{if(signal?.aborted)return reject(signal.reason??Error("Aborted"));const onAbort=()=>{clearTimeout(timer);reject(signal.reason??Error("Aborted"))};const timer=setTimeout(()=>{signal?.removeEventListener("abort",onAbort);resolve()},ms);signal?.addEventListener("abort",onAbort,{once:true})})}function getCurrentReplAbortSignal(){return}function getCurrentReplToolCallId(){return}function hasActiveReplContext(){return false}function withCurrentReplAbort(fn){return fn()}function withoutReplContext(fn){return fn()}function replPrint(...values){console.warn(...values)}async function sendCommandToExtension(command){throw new UnsupportedOperationError(`Extension command is unavailable: ${command.method}`)}class UnsupportedOperationError extends Error{constructor(message){super(message);this.name="UnsupportedOperationError"}}function nanoid3(){return crypto.randomUUID()}var EventBus={emit:async()=>{}};var SessionStore={get:()=>{return},update:()=>{return}};var stateDb=()=>{throw new UnsupportedOperationError("Daemon persistence is unavailable")};var NotificationGrantTable={};function resolveSessionPath(_session,value){return path.resolve(String(value))}function getSessionStorageDir(){return process.cwd()}function getSharedSessionStorageDir(){return process.cwd()}function spawnCommand(){throw new UnsupportedOperationError("Video recording is unavailable")}async function waitForExitCode(){return 1}function isWebSocketUrl(xn){return xn.startsWith(`ws://`)||xn.startsWith(`wss://`)}function isAuthorizationError(xn){let jn=xn instanceof Error?xn.message:String(xn),Vn=xn;return jn.includes(`401`)||jn.includes(`403`)||jn.includes(`Missing or invalid Authorization header.`)||jn.includes(`Unauthorized`)||jn.includes(`Forbidden`)||typeof Vn.status==`number`&&(Vn.status===401||Vn.status===403)||typeof Vn.response?.status==`number`&&(Vn.response.status===401||Vn.response.status===403)||typeof Vn.error?.status==`number`&&(Vn.error.status===401||Vn.error.status===403)||typeof Vn.cause?.status==`number`&&(Vn.cause.status===401||Vn.cause.status===403)||String(Vn.error?.message??``).includes(`Missing or invalid Authorization header.`)||String(Vn.cause?.message??``).includes(`Missing or invalid Authorization header.`)}function normalizeBaseUrl(xn){return xn.replace(/\/$/,``)}function createAbortError$1(){let xn=Error(`Operation aborted`);return xn.name=`AbortError`,xn}var DEFAULT_COMMAND_TIMEOUT_MS;var DEFAULT_RECONNECT_DELAYS_MS;var jsonVersionSchema;var jsonTargetSchema;var cdpWireMessageSchema;var BrowserCdpCommandError;var CdpClient;var init_client$6=__esmMin(()=>{init_emittery(),init_zod(),init_context(),init_utils$13(),init_config(),init_extension_bridge(),init_commands$1(),DEFAULT_COMMAND_TIMEOUT_MS=30000,DEFAULT_RECONNECT_DELAYS_MS=[0,250,750,1500,3000],jsonVersionSchema=object2({Browser:string$2().optional(),"Protocol-Version":string$2().optional(),"User-Agent":string$2().optional(),"V8-Version":string$2().optional(),"WebKit-Version":string$2().optional(),webSocketDebuggerUrl:string$2()}).loose(),jsonTargetSchema=object2({description:string$2().optional(),devtoolsFrontendUrl:string$2().optional(),faviconUrl:string$2().optional(),id:string$2(),parentId:string$2().optional(),title:string$2().default(``),type:string$2(),url:string$2().default(``),webSocketDebuggerUrl:string$2().optional()}).loose(),cdpWireMessageSchema=union$1([object2({id:number$2(),sessionId:string$2().optional(),error:object2({code:number$2().optional(),data:unknown$1().optional(),message:string$2()}).loose().optional(),result:unknown$1().optional()}).loose(),object2({method:string$2(),params:unknown$1().optional(),sessionId:string$2().optional()}).loose(),_null4()]),BrowserCdpCommandError=class extends Error{method;code;data;constructor(xn,jn,Vn,qn){super(qn??`CDP command failed: ${xn}`),this.method=xn,this.code=jn,this.data=Vn}},CdpClient=class{cdpUrl;logId;#e;#t;#n;#r=null;#i=null;#a=null;#o=false;#s=1;#c=new Map;#l=new Emittery;#u=false;transportEvents=new Emittery;constructor(xn={}){this.cdpUrl=normalizeBaseUrl(xn.cdpUrl??`http://${OMOWRIGHT_BROWSER_CDP_HOST}`),this.logId=xn.logId??`cdp-${Date.now()}`,this.#e=xn.authorizer,this.#t=xn.commandTimeoutMs??DEFAULT_COMMAND_TIMEOUT_MS,this.#n=xn.reconnectDelaysMs??DEFAULT_RECONNECT_DELAYS_MS}get isConnected(){return this.#r?.readyState===wrapper_default.OPEN}start(){this.#o||(this.#o=true,this.ensureConnected().catch((xn)=>{console.warn(`[${this.logId}] Initial CDP connect failed`,xn),this.#b()}))}async discoverVersion(xn={}){return await this.#f(this.#d(`/json/version`),jsonVersionSchema,xn)}async discoverTargets(xn={}){return await this.#f(this.#d(`/json/list`),array2(jsonTargetSchema),xn)}async ensureConnected(){if(this.#o=true,this.isConnected)return;if(this.#i){await this.#i;return}let xn=this.#g();this.#i=xn;try{await xn}finally{this.#i===xn&&(this.#i=null)}}async send(xn,jn,Vn,qn={}){if(xn===`Target.createTarget`&&qn.capability!==targetCreationCapability)throw Error(`Target.createTarget is reserved for createAgentTabs`);let Jn=getCurrentReplAbortSignal();if(Jn?.aborted)throw createAbortError$1();if(xn.startsWith(`OmO.`)){let Vn=await sendCommandToExtension({method:xn,params:jn},{...qn.extensionBridge,signal:Jn});if(Jn?.aborted)throw createAbortError$1();return Vn}await this.ensureConnected();let Yn=this.#r;if(!Yn||Yn.readyState!==wrapper_default.OPEN)throw Error(`CDP websocket is not connected`);let Zn=this.#s++,Qn={id:Zn,method:xn};jn!==undefined&&(Qn.params=jn),Vn&&(Qn.sessionId=Vn);let{promise:ei,reject:ti,resolve:ni}=Promise.withResolvers(),ri=qn.timeoutMs??this.#t,ii=ri>0?setTimeout(()=>{this.#c.delete(Zn),ti(Error(`CDP command timeout: ${String(xn)}`))},ri):undefined,ai=Jn?()=>{ii&&clearTimeout(ii),this.#c.delete(Zn),ti(createAbortError$1())}:undefined;if(this.#c.set(Zn,{method:String(xn),reject:ti,resolve:ni,timeout:ii}),Jn?.addEventListener(`abort`,ai,{once:true}),Jn?.aborted)return ai?.(),await ei;try{Yn.send(JSON.stringify(Qn))}catch(xn){throw ii&&clearTimeout(ii),this.#c.delete(Zn),ai&&Jn?.removeEventListener(`abort`,ai),xn instanceof Error?xn:Error(String(xn))}try{return await ei}finally{ai&&Jn?.removeEventListener(`abort`,ai)}}on(xn,jn){return this.#l.on(xn,({data:xn})=>jn(xn.payload,xn.meta))}async close(){this.#o=false,this.#a&&=(clearTimeout(this.#a),null);let xn=this.#r;if(this.#r=null,this.#x(Error(`CDP client closed`)),xn&&xn.readyState<=wrapper_default.OPEN)try{xn.close(1000,`client closing`)}catch{}}#d(xn){let jn=new URL(this.cdpUrl);return isWebSocketUrl(this.cdpUrl)?(jn.protocol=jn.protocol===`wss:`?`https:`:`http:`,jn.pathname=xn,jn.search=``,jn.toString()):(jn.pathname=xn,jn.search=``,jn.toString())}async#f(xn,jn,Vn={}){let qn=await this.#p(Vn),Jn=await fetch(xn,{headers:qn});if((Jn.status===401||Jn.status===403)&&this.#e&&!Vn.forceRefresh)return await this.#f(xn,jn,{forceRefresh:true});if(!Jn.ok)throw Error(`CDP discovery request failed (${Jn.status} ${Jn.statusText})`);return jn.parse(await Jn.json())}async#p(xn={}){return this.#e?{Authorization:await this.#e.resolveAuthorization(xn)}:{}}async#m(xn={}){let jn=await this.#p(xn);return isWebSocketUrl(this.cdpUrl)?{headers:jn,wsUrl:this.cdpUrl}:{headers:jn,wsUrl:(await this.discoverVersion(xn)).webSocketDebuggerUrl}}#h(){return this.cdpUrl!==`http://${OMOWRIGHT_BROWSER_CDP_HOST}`}async#g(){let xn=null,jn=false;for(let Vn of this.#n){Vn>0&&await sleep$12(Vn);try{await this.#_({forceRefresh:jn});return}catch(Vn){let qn=Vn??Error(`Unknown error`);xn=qn,isAuthorizationError(qn)&&(jn=true)}}throw xn instanceof Error?xn:Error(String(xn??`Failed to connect CDP websocket`))}async#_(xn={}){let{headers:jn,wsUrl:Vn}=await this.#m(xn);await new Promise((xn,qn)=>{let Jn=new wrapper_default(Vn,{headers:jn}),Yn=false,Zn=(xn)=>{Yn||(Yn=true,qn(xn))};Jn.addEventListener(`open`,()=>{Yn||(Yn=true,this.#v(Jn),xn())}),Jn.addEventListener(`message`,(xn)=>{this.#r===Jn&&this.#S(xn.data).catch(()=>{})}),Jn.addEventListener(`close`,(xn)=>{this.#r===Jn&&this.#y(Jn),Yn||Zn(Error(`CDP websocket closed during connect (${xn.code} ${xn.reason||`no reason`})`))}),Jn.addEventListener(`error`,()=>{Zn(Error(`Failed to connect CDP websocket: ${Vn}`))})})}#v(xn){this.#a&&=(clearTimeout(this.#a),null);let jn=this.#r;if(this.#r=xn,this.send(`Target.setDiscoverTargets`,{discover:true}).catch(()=>{}),this.transportEvents.emit(this.#u?`reconnected`:`connected`).catch((xn)=>{console.warn(`[${this.logId}] CDP transport listener failed`,xn)}),this.#u=true,jn&&jn!==xn&&jn.readyState<=wrapper_default.OPEN)try{jn.close(1000,`replaced`)}catch{}}#y(xn){this.#r===xn&&(this.#r=null,this.#x(Error(`CDP websocket disconnected`)),this.transportEvents.emit(`disconnected`).catch((xn)=>{console.warn(`[${this.logId}] CDP disconnect listener failed`,xn)}),this.#o&&this.ensureConnected().catch((xn)=>{console.warn(`[${this.logId}] CDP reconnect failed`,xn),this.#b()}))}#b(){if(!this.#o||this.isConnected||this.#i||this.#a)return;let xn=this.#n[this.#n.length-1]??3000;this.#a=setTimeout(()=>{this.#a=null,this.ensureConnected().catch((xn)=>{console.warn(`[${this.logId}] Scheduled CDP reconnect failed`,xn),this.#b()})},xn)}#x(xn){for(let jn of this.#c.values())jn.timeout&&clearTimeout(jn.timeout),jn.reject(xn);this.#c.clear()}async#S(xn){let jn=typeof xn==`string`?xn:xn instanceof Blob?await xn.text():new TextDecoder().decode(xn),{data:Vn}=cdpWireMessageSchema.safeParse(JSON.parse(jn));if(Vn){if(typeof Vn.id==`number`){let xn=this.#c.get(Vn.id);if(!xn)return;if(this.#c.delete(Vn.id),xn.timeout&&clearTimeout(xn.timeout),Vn.error){let jn=Vn.error;xn.reject(new BrowserCdpCommandError(xn.method,jn.code,jn.data,jn.message??`CDP command failed: ${xn.method}`));return}xn.resolve(Vn.result);return}if(typeof Vn.method==`string`){let xn=Vn.method;if(xn===`Page.javascriptDialogOpening`&&Vn.sessionId){let xn=this.#r;xn?.readyState===wrapper_default.OPEN&&xn.send(JSON.stringify({id:this.#s++,method:`Page.handleJavaScriptDialog`,params:{accept:true},sessionId:Vn.sessionId}))}let jn={payload:Vn.params,meta:{sessionId:Vn.sessionId}};this.#l.emit(xn,jn).catch((jn)=>{console.warn(`[${this.logId}] CDP event listener failed for ${xn}`,jn)})}}}}});var SessionManager;var init_session_manager=__esmMin(()=>{init_client$6(),SessionManager=class{#e;#t=new Map;#n=new Map;#r=new Map;#i=new Set;#a;constructor(xn){this.#e=xn,this.#a=[this.#e.on(`Target.attachedToTarget`,(xn)=>{let jn=xn.targetInfo.targetId;jn&&this.#s(jn,xn.sessionId)}),this.#e.on(`Target.detachedFromTarget`,(xn)=>{let jn=xn.targetId??this.#n.get(xn.sessionId);this.#n.delete(xn.sessionId),jn&&this.#t.get(jn)===xn.sessionId&&this.#t.delete(jn)})]}clear(){this.#t.clear(),this.#n.clear(),this.#r.clear()}async dispose(){for(let xn of this.#a)xn();await Promise.allSettled([...this.#i].map((xn)=>this.#e.send(`Target.detachFromTarget`,{sessionId:xn}).catch(()=>{}))),this.#i.clear(),this.clear()}async discoverTargets(){return await this.#e.discoverTargets()}async getPageTarget(xn){return(await this.discoverTargets()).find((jn)=>jn.id===xn&&jn.type===`page`)??null}hasTargetSession(xn,jn){return this.#t.get(xn)===jn}getTargetSession(xn){return this.#t.get(xn)}async resolvePageSession(xn,jn){if(jn&&this.hasTargetSession(xn,jn))return jn;let Vn=this.#t.get(xn);if(Vn)return Vn;let qn=this.#r.get(xn);if(qn)return await qn;let Jn=this.#o(xn).finally(()=>{this.#r.delete(xn)});return this.#r.set(xn,Jn),await Jn}async#o(xn){if(!await this.getPageTarget(xn))throw Error(`Tab ${xn} is no longer available.`);let jn=await this.#e.send(`Target.attachToTarget`,{targetId:xn,flatten:true});return this.#i.add(jn.sessionId),this.#s(xn,jn.sessionId),jn.sessionId}#s(xn,jn){this.#t.set(xn,jn),this.#n.set(jn,xn)}}});var globalCdpClient;var init_cdp=__esmMin(()=>{init_client$6(),init_session_manager(),globalCdpClient=new CdpClient});var BUNDLE$1;var init_omowright_world_bundle=__esmMin(()=>{BUNDLE$1=pageBundle});var MAX_BUFFER_SIZE;var CONSOLE_INTERCEPTOR_SCRIPT;var PageConsole;var init_console_capture=__esmMin(()=>{MAX_BUFFER_SIZE=1000,CONSOLE_INTERCEPTOR_SCRIPT=`(function(){
67
+ if(window.__omowrightConsole)return;
68
+ var logs=[];
69
+ var orig={log:console.log,info:console.info,warn:console.warn,error:console.error,debug:console.debug};
70
+ function ser(a){
71
+ var r=[];
72
+ for(var i=0;i<a.length;i++){
73
+ var v=a[i];
74
+ try{
75
+ if(v===null){r.push('null');continue}
76
+ if(v===void 0){r.push('undefined');continue}
77
+ if(typeof v==='string'){r.push(v);continue}
78
+ if(v instanceof Error){r.push(v.name+': '+v.message);continue}
79
+ r.push(JSON.stringify(v));
80
+ }catch(e){r.push(String(v))}
81
+ }
82
+ return r.join(' ');
83
+ }
84
+ function cap(level,args){
85
+ if(logs.length>=${MAX_BUFFER_SIZE})logs.shift();
86
+ logs.push({level:level,message:ser(args),timestamp:new Date().toISOString()});
87
+ }
88
+ ['log','info','warn','error','debug'].forEach(function(l){
89
+ console[l]=function(){cap(l,arguments);return orig[l].apply(console,arguments)};
90
+ });
91
+ window.__omowrightConsole={
92
+ logs:logs,
93
+ drain:function(o){
94
+ o=o||{};
95
+ var r=logs;
96
+ if(o.levels&&o.levels.length)r=r.filter(function(e){return o.levels.indexOf(e.level)>=0});
97
+ if(o.filter)r=r.filter(function(e){return e.message.indexOf(o.filter)>=0});
98
+ if(o.limit)r=r.slice(-o.limit);
99
+ return r;
100
+ },
101
+ clear:function(){logs.length=0}
102
+ };
103
+ })();`,PageConsole=class{#e;constructor(xn){this.#e=xn}async logs(xn={}){return await this.#e.evaluate((xn)=>window.__omowrightConsole?.drain(xn)??[],xn)}async clear(){await this.#e.evaluate(`(window).__omowrightConsole?.clear()`)}}});function isContextDestroyedError(xn){let jn=xn instanceof Error?xn.message:String(xn);return jn.includes(`Cannot find context with specified id`)||jn.includes(`Execution context was destroyed`)}var ISOLATED_WORLD_NAME;var FrameManager;var init_frame_manager=__esmMin(()=>{init_client$6(),init_omowright_world_bundle(),init_console_capture(),ISOLATED_WORLD_NAME=`__omowright_utility`,FrameManager=class{cdp;targetId;frames=new Map;#e=new Set;#t=new Set;#n=new Map;#r=null;#i=null;#a;#o=null;#s=null;#c=[];onSessionInitialized;constructor(xn,jn,Vn){this.cdp=xn,this.targetId=jn,this.#a=Vn}#l(xn,jn){return this.cdp.on(xn,(xn,Vn)=>{this.#v(Vn.sessionId)&&jn(xn)})}async initialize(){this.#c.push(this.#l(`Target.attachedToTarget`,(xn)=>{if(xn.targetInfo.type!==`iframe`)return;let jn=xn.targetInfo.targetId,Vn=this.frames.get(jn)??{frameId:jn,parentFrameId:xn.targetInfo.parentFrameId??null,url:xn.targetInfo.url??``,name:xn.targetInfo.title??``,sessionId:xn.sessionId};this.frames.set(jn,Vn),Vn.sessionId=xn.sessionId,this.#p(xn.sessionId).then(async()=>{this.onSessionInitialized?.(xn.sessionId);let jn=await this.#m(xn.sessionId,Vn.parentFrameId??xn.targetInfo.parentFrameId??null);await this.ensureInjected(jn)}).catch(()=>{})}));await this.#p(this.#a);let{identifier:xn}=await this.#f(`Page.addScriptToEvaluateOnNewDocument`,{source:BUNDLE$1,worldName:ISOLATED_WORLD_NAME,runImmediately:true});this.#o=xn;let{identifier:jn}=await this.#f(`Page.addScriptToEvaluateOnNewDocument`,{source:CONSOLE_INTERCEPTOR_SCRIPT,runImmediately:true});this.#s=jn,this.#c.push(this.#l(`Page.frameAttached`,(xn)=>{let jn=this.frames.get(xn.frameId);this.frames.set(xn.frameId,{frameId:xn.frameId,parentFrameId:xn.parentFrameId,url:jn?.url??``,name:jn?.name??``,sessionId:jn?.sessionId??this.#a,isolatedContextId:jn?.isolatedContextId})})),this.#c.push(this.#l(`Page.frameNavigated`,(xn)=>{let jn=xn.frame,Vn=this.frames.get(jn.id);Vn?.isolatedContextId&&this.#e.delete(Vn.isolatedContextId),this.#n.delete(jn.id),this.frames.set(jn.id,{frameId:jn.id,parentFrameId:jn.parentId??null,url:jn.url,name:jn.name??``,sessionId:Vn?.sessionId??this.#a,isolatedContextId:undefined}),jn.parentId||(this.#i=jn.id),this.ensureInjected(jn.id)})),this.#c.push(this.#l(`Page.frameDetached`,(xn)=>{let jn=this.frames.get(xn.frameId);if(jn?.isolatedContextId&&this.#e.delete(jn.isolatedContextId),this.#n.delete(xn.frameId),xn.reason===`swap`){jn&&delete jn.isolatedContextId;return}jn?.sessionId&&this.#t.delete(jn.sessionId),this.frames.delete(xn.frameId),this.#i===xn.frameId&&(this.#i=null)}));let{frameTree:Vn}=await this.#f(`Page.getFrameTree`);this.#d(Vn,null),await this.#u()}async#u(){await Promise.all([...this.frames.keys()].map((xn)=>this.ensureInjected(xn)))}get mainFrameId(){return this.#i}getFrame(xn){return this.frames.get(xn)??null}hasSession(xn){if(this.#a===xn)return true;for(let jn of this.frames.values())if(jn.sessionId===xn)return true;return false}async ensureInjected(xn){let jn=this.frames.get(xn);if(!jn)return null;if(jn.isolatedContextId&&this.#e.has(jn.isolatedContextId))return jn.isolatedContextId;let Vn=this.#n.get(xn);if(Vn)return await Vn;let qn=this.#h(xn);this.#n.set(xn,qn);try{return await qn}finally{this.#n.get(xn)===qn&&this.#n.delete(xn)}}collectDescendantFrames(xn){if(!this.frames.has(xn))return[];let jn=new Map;for(let xn of this.frames.values()){if(!xn.parentFrameId)continue;let Vn=jn.get(xn.parentFrameId)??[];Vn.push(xn.frameId),jn.set(xn.parentFrameId,Vn)}let Vn=[],qn=[{frameId:xn,parentFrameId:this.frames.get(xn)?.parentFrameId??null,depth:0}],Jn=new Set;for(;qn.length>0;){let xn=qn.shift();if(Jn.has(xn.frameId))continue;Jn.add(xn.frameId),Vn.push(xn);let Yn=jn.get(xn.frameId)??[];for(let jn of Yn)qn.push({frameId:jn,parentFrameId:xn.frameId,depth:xn.depth+1})}return Vn}resolveFrameIdForSnapshotPrefix(xn){if(this.#r){let jn=this.#r.get(xn);if(jn&&this.frames.has(jn))return jn;if(xn)return null}return!xn&&this.#i&&this.frames.has(this.#i)?this.#i:null}setSnapshotFramePrefixMap(xn){this.#r=xn}invalidateContext(xn){let jn=this.frames.get(xn);jn&&this.#_(jn)}async dispose(){for(let xn of this.#c)xn();this.#c=[];for(let xn of[this.#o,this.#s])xn&&await this.cdp.send(`Page.removeScriptToEvaluateOnNewDocument`,{identifier:xn},this.#a).catch(()=>{});this.#o=null,this.#s=null}async reconnect(xn){await this.dispose(),this.frames.clear(),this.#e.clear(),this.#t.clear(),this.#n.clear(),this.#r=null,this.#i=null,this.#a=xn,await this.initialize()}#d(xn,jn){let{frame:Vn}=xn,qn=this.frames.get(Vn.id);this.frames.set(Vn.id,{frameId:Vn.id,parentFrameId:jn,url:Vn.url,name:Vn.name??``,sessionId:qn?.sessionId??this.#a,isolatedContextId:qn?.isolatedContextId}),jn||(this.#i=Vn.id);for(let jn of xn.childFrames??[])this.#d(jn,Vn.id)}async#f(xn,jn){return await this.cdp.send(xn,jn,this.#a)}async#p(xn){this.#t.has(xn)||(await this.cdp.send(`Page.enable`,undefined,xn),await this.cdp.send(`DOM.enable`,undefined,xn),await this.cdp.send(`Network.enable`,undefined,xn),await this.cdp.send(`Inspector.enable`,undefined,xn).catch(()=>{}),await this.cdp.send(`Page.setWebLifecycleState`,{state:`active`},xn).catch(()=>{}),await this.cdp.send(`Emulation.setFocusEmulationEnabled`,{enabled:true},xn).catch(()=>{}),await this.cdp.send(`Target.setAutoAttach`,{autoAttach:true,waitForDebuggerOnStart:false,flatten:true},xn),this.#t.add(xn))}async#m(xn,jn){let{frameTree:Vn}=await this.cdp.send(`Page.getFrameTree`,undefined,xn),qn=Vn.frame.parentId??jn??null;return this.#d(Vn,qn),Vn.frame.id}async#h(xn){let jn=this.frames.get(xn);if(!jn)return null;if(jn.isolatedContextId){if(await this.#g(jn))return this.#e.add(jn.isolatedContextId),jn.isolatedContextId;this.#_(jn)}try{let{executionContextId:Vn}=await this.cdp.send(`Page.createIsolatedWorld`,{frameId:xn,worldName:ISOLATED_WORLD_NAME},jn.sessionId||this.#a);jn.isolatedContextId=Vn}catch{return null}try{await this.cdp.send(`Runtime.evaluate`,{expression:BUNDLE$1,contextId:jn.isolatedContextId},jn.sessionId||this.#a)}catch(xn){if(isContextDestroyedError(xn))return this.#_(jn),null}return await this.#g(jn)?(this.#e.add(jn.isolatedContextId),jn.isolatedContextId):(this.#_(jn),null)}async#g(xn){if(!xn.isolatedContextId)return false;let{result:jn}=await this.cdp.send(`Runtime.callFunctionOn`,{functionDeclaration:`function() { return typeof globalThis.__omowright; }`,executionContextId:xn.isolatedContextId,returnByValue:true},xn.sessionId||this.#a).catch(()=>({result:{value:`error`}}));return jn.value===`object`}#_(xn){xn.isolatedContextId&&(this.#e.delete(xn.isolatedContextId),delete xn.isolatedContextId)}#v(xn){if(!xn)return false;if(xn===this.#a)return true;for(let jn of this.frames.values())if(jn.sessionId===xn)return true;return false}}});function upsertNotificationGrant(xn){let jn=xn.grantedAt??new Date().toISOString(),Vn=xn.preserveAttribution?getNotificationGrantRecord(xn.accountId,xn.origin):undefined,qn=xn.preserveAttribution?Vn?.grantedBySessionId??xn.grantedBySessionId??null:xn.grantedBySessionId??null;return stateDb(xn.accountId).insert(NotificationGrantTable).values({origin:xn.origin,grantedAt:jn,grantedBySessionId:qn,revokedAt:null}).onConflictDoUpdate({target:NotificationGrantTable.origin,set:{grantedAt:jn,grantedBySessionId:qn,revokedAt:null}}).run(),getNotificationGrant(xn.accountId,xn.origin)}function getNotificationGrantRecord(xn,jn){return stateDb(xn).select().from(NotificationGrantTable).where(eq(NotificationGrantTable.origin,jn)).get()}function getNotificationGrant(xn,jn){return stateDb(xn).select().from(NotificationGrantTable).where(and(eq(NotificationGrantTable.origin,jn),isNull(NotificationGrantTable.revokedAt))).get()}var omowrightNotificationPermissionValues;var init_notification_grants=__esmMin(()=>{init_drizzle_orm(),init_schema(),init_state_db(),omowrightNotificationPermissionValues=[`allow_for_ai`,`allow`,`deny`,`default`]});function formatCallFrame(xn){let jn=xn.url?`${xn.url}:${(xn.lineNumber??0)+1}:${(xn.columnNumber??0)+1}`:null;if(!jn)return null;let Vn=xn.functionName?.trim();return Vn?`at ${Vn} (${jn})`:`at ${jn}`}function formatRuntimeException(xn,jn){if(!xn)return jn;let Vn=typeof xn.exception?.description==`string`&&xn.exception.description.trim()||typeof xn.exception?.value==`string`&&xn.exception.value.trim()||typeof xn.text==`string`&&xn.text.trim()||jn,qn=xn.stackTrace?.callFrames?.map(formatCallFrame).filter((xn)=>!!xn)??[],Jn=qn.some((xn)=>Vn.includes(xn));return qn.length>0&&!Jn?`${Vn}
104
+ ${qn.join(`
105
+ `)}`:Vn}var init_errors$3=__esmMin(()=>{});var TRACKING_PARAMS;var init_tracking_params=__esmMin(()=>{TRACKING_PARAMS=new Set([`utm_source`,`utm_medium`,`utm_campaign`,`utm_term`,`utm_content`,`gclid`,`gclsrc`,`fbclid`,`mc_cid`,`mc_eid`,`msclkid`,`twclid`,`li_fat_id`,`_ga`,`_gl`,`_t`,`_ts`,`_nc`])});function truncateUrlForLLM(xn,jn){let Vn=jn?.maxLength??128,qn;try{qn=new URL(xn)}catch{return xn.length>Vn?xn.slice(0,Vn)+`…`:xn}for(let xn of qn.searchParams.keys())TRACKING_PARAMS.has(xn.toLowerCase())&&qn.searchParams.delete(xn);if(jn?.currentOrigin)try{let xn=new URL(jn.currentOrigin);if(qn.origin===xn.origin){let xn=qn.pathname+qn.search+qn.hash;return xn.length>Vn?truncateQuery(xn,Vn):xn}}catch{}let Jn=qn.toString();return Jn.length<=Vn?Jn:truncateQuery(Jn,Vn)}function truncateQuery(xn,jn){let Vn=xn.indexOf(`?`);return Vn===-1||Vn>=jn?xn.length>jn?xn.slice(0,jn)+`…`:xn:xn.slice(0,jn)+`…`}var init_utils$4=__esmMin(()=>{init_tracking_params()});async function ensureDirForFile$1(xn){await promises.mkdir(path.dirname(xn),{recursive:true})}var OmODownload;var init_download=__esmMin(()=>{init_directory(),OmODownload=class{#e;#t;#n;#r;#i;#a=null;#o=false;constructor(xn,jn){this.#e=xn,this.#t=jn.guid,this.#n=jn.startedAfterMs,this.#r=jn.suggestedFilename,this.#i=jn.url,this.#a=jn.sourcePath?Promise.resolve(jn.sourcePath):null}page(){return this.#e}suggestedFilename(){return this.#r}url(){return this.#i}async path(){return this.#c(),await this.#s()}async saveAs(xn){this.#c();let jn=await this.#s(),Vn=path.isAbsolute(xn)?xn:path.join(SESSION_ARTIFACTS_DIR,xn),qn=await this.#e.browser.ensurePath(Vn,`write`,`download.saveAs`);path.resolve(jn)!==path.resolve(qn)&&(await ensureDirForFile$1(qn),await promises.copyFile(jn,qn))}async createReadStream(){return this.#c(),createReadStream(await this.#s())}async failure(){try{return await this.#s(),null}catch(xn){return xn instanceof Error?xn.message:String(xn)}}async cancel(){}async delete(){this.#c(),this.#o=true}async#s(){return this.#a||=this.#e.cdp.send(`OmO.waitForDownload`,{startedAfterMs:this.#n,expectedFilename:this.#r,referrerUrl:this.#e.url()},undefined,{extensionBridge:this.#e.browser.extensionBridgeRoute}).then((xn)=>xn.absolutePath),this.#e.browser.registerReadableDownloadPath(await this.#a)}#c(){if(this.#o)throw Error(`Download has been deleted.`)}get guid(){return this.#t}}});var RefStaleError;var init_types$4=__esmMin(()=>{RefStaleError=class extends Error{constructor(xn){super(`Ref "${xn}" is stale — the element was removed or the page changed. Take a new snapshot and retry.`),this.name=`RefStaleError`}}});function resolveSmartModifierString(xn){if(xn.length===1)return xn;let jn=xn.trim();return jn.toLowerCase()===`controlormeta`?process.platform===`darwin`?`Meta`:`Control`:jn}function setKey(xn,jn){KEYBOARD_LAYOUT[xn]=jn}function addKey(xn,jn=[]){setKey(xn.key,xn),xn.code!==xn.key&&setKey(xn.code,xn);for(let Vn of jn)setKey(Vn,xn)}function addCodeOnlyKey(xn,jn=[]){setKey(xn.code,xn);for(let Vn of jn)setKey(Vn,xn)}function linkShifted(xn,jn){let Vn={...xn,key:jn,text:jn};return{...xn,shifted:Vn}}function keyCommands(xn,jn){if(process.platform!==`darwin`)return[];let Vn=[...[`Shift`,`Control`,`Alt`,`Meta`].filter((xn)=>jn.includes(xn)),xn].join(`+`),qn=MAC_EDITING_COMMANDS.get(Vn);return(Array.isArray(qn)?qn:qn?[qn]:[]).filter((xn)=>!xn.startsWith(`insert`)).map((xn)=>xn.replace(/:$/,``))}function lookupKeyDescriptor(xn){let jn=resolveSmartModifierString(xn);return KEYBOARD_LAYOUT[jn]??KEYBOARD_LAYOUT[jn.toLowerCase()]??KEYBOARD_LAYOUT[jn.toUpperCase()]}function resolveKeyDescriptor(xn,jn={}){let Vn=lookupKeyDescriptor(xn);if(!Vn)throw Error(`Unknown key: ${xn}`);let qn=new Set([...jn.modifiers??[]].map((xn)=>resolveSmartModifierString(xn)).filter((xn)=>MODIFIER_KEYS.has(xn))),Jn=qn.has(`Shift`)&&Vn.shifted?Vn.shifted:Vn;return Jn.text.length===0||qn.size===0||qn.size===1&&qn.has(`Shift`)?Jn:{...Jn,text:``}}function splitKeyCombo(xn){if(xn.length===1&&KEYBOARD_LAYOUT[xn])return[xn];let jn=xn.trim();if(!jn)return[];let Vn=[],qn=``;for(let xn of jn){if(xn!==`+`){qn+=xn;continue}if(qn.trim()){Vn.push(qn.trim()),qn=``;continue}Vn.push(`+`)}return qn.trim()&&Vn.push(qn.trim()),Vn}async function shouldUseDomInputFallback(xn){return await xn.evaluate(()=>document.visibilityState!==`visible`||!document.hasFocus())}var KEYBOARD_LAYOUT;var MODIFIER_KEYS;var BUTTON_MASKS;var MAC_EDITING_COMMANDS;var shiftedDigits;var ModifierState;var OmOKeyboard;var init_keyboard=__esmMin(()=>{init_utils$13(),KEYBOARD_LAYOUT={},MODIFIER_KEYS=new Set([`Alt`,`Control`,`Meta`,`Shift`]),BUTTON_MASKS=new Map([[`left`,1],[`right`,2],[`middle`,4],[`back`,8],[`forward`,16]]),MAC_EDITING_COMMANDS=new Map([[`Meta+KeyA`,`selectAll:`],[`Meta+KeyC`,`copy:`],[`Meta+KeyV`,`paste:`],[`Meta+KeyX`,`cut:`],[`Meta+KeyZ`,`undo:`],[`Shift+Meta+KeyZ`,`redo:`]]);for(let xn=0;xn<26;xn+=1){let jn=String.fromCharCode(97+xn),Vn=jn.toUpperCase(),qn=65+xn,Jn=linkShifted({key:jn,code:`Key${Vn}`,keyCode:qn,keyCodeWithoutLocation:qn,text:jn,location:0},Vn);addKey(Jn),setKey(Vn,Jn.shifted)}shiftedDigits=[` )`,`!`,`@`,`#`,`$`,`%`,`^`,`&`,`*`,`(`].map((xn)=>xn.trimStart());for(let xn=0;xn<10;xn+=1){let jn=String(xn),Vn=48+xn,qn=linkShifted({key:jn,code:`Digit${jn}`,keyCode:Vn,keyCodeWithoutLocation:Vn,text:jn,location:0},shiftedDigits[xn]);addKey(qn),setKey(qn.shifted.key,qn.shifted)}for(let{key:xn,shifted:jn,code:Vn,keyCode:qn}of[{key:"`",shifted:`~`,code:`Backquote`,keyCode:192},{key:`-`,shifted:`_`,code:`Minus`,keyCode:189},{key:`=`,shifted:`+`,code:`Equal`,keyCode:187},{key:`[`,shifted:`{`,code:`BracketLeft`,keyCode:219},{key:`]`,shifted:`}`,code:`BracketRight`,keyCode:221},{key:`\\`,shifted:`|`,code:`Backslash`,keyCode:220},{key:`;`,shifted:`:`,code:`Semicolon`,keyCode:186},{key:`'`,shifted:`"`,code:`Quote`,keyCode:222},{key:`,`,shifted:`<`,code:`Comma`,keyCode:188},{key:`.`,shifted:`>`,code:`Period`,keyCode:190},{key:`/`,shifted:`?`,code:`Slash`,keyCode:191}]){let Jn=linkShifted({key:xn,code:Vn,keyCode:qn,keyCodeWithoutLocation:qn,text:xn,location:0},jn);addKey(Jn),setKey(jn,Jn.shifted)}for(let[xn,jn]of[[{key:`Backspace`,code:`Backspace`,keyCode:8,keyCodeWithoutLocation:8,text:``,location:0}],[{key:`Tab`,code:`Tab`,keyCode:9,keyCodeWithoutLocation:9,text:` `,location:0},[` `]],[{key:`Enter`,code:`Enter`,keyCode:13,keyCodeWithoutLocation:13,text:`\r`,location:0},[`Return`,`
106
+ `,`\r`]],[{key:`Escape`,code:`Escape`,keyCode:27,keyCodeWithoutLocation:27,text:``,location:0},[`Esc`]],[{key:`Delete`,code:`Delete`,keyCode:46,keyCodeWithoutLocation:46,text:``,location:0},[`Del`]],[{key:`Insert`,code:`Insert`,keyCode:45,keyCodeWithoutLocation:45,text:``,location:0},[`Ins`]],[{key:`Home`,code:`Home`,keyCode:36,keyCodeWithoutLocation:36,text:``,location:0}],[{key:`End`,code:`End`,keyCode:35,keyCodeWithoutLocation:35,text:``,location:0}],[{key:`PageUp`,code:`PageUp`,keyCode:33,keyCodeWithoutLocation:33,text:``,location:0}],[{key:`PageDown`,code:`PageDown`,keyCode:34,keyCodeWithoutLocation:34,text:``,location:0}],[{key:`ArrowUp`,code:`ArrowUp`,keyCode:38,keyCodeWithoutLocation:38,text:``,location:0},[`Up`]],[{key:`ArrowDown`,code:`ArrowDown`,keyCode:40,keyCodeWithoutLocation:40,text:``,location:0},[`Down`]],[{key:`ArrowLeft`,code:`ArrowLeft`,keyCode:37,keyCodeWithoutLocation:37,text:``,location:0},[`Left`]],[{key:`ArrowRight`,code:`ArrowRight`,keyCode:39,keyCodeWithoutLocation:39,text:``,location:0},[`Right`]],[{key:`Shift`,code:`ShiftLeft`,keyCode:16,keyCodeWithoutLocation:16,text:``,location:1}],[{key:`Control`,code:`ControlLeft`,keyCode:17,keyCodeWithoutLocation:17,text:``,location:1},[`Ctrl`]],[{key:`Alt`,code:`AltLeft`,keyCode:18,keyCodeWithoutLocation:18,text:``,location:1},[`Option`]],[{key:`Meta`,code:`MetaLeft`,keyCode:91,keyCodeWithoutLocation:91,text:``,location:1},[`Command`,`Cmd`,`OS`]],[{key:`ContextMenu`,code:`ContextMenu`,keyCode:93,keyCodeWithoutLocation:93,text:``,location:0}],[{key:`CapsLock`,code:`CapsLock`,keyCode:20,keyCodeWithoutLocation:20,text:``,location:0}],[{key:`NumLock`,code:`NumLock`,keyCode:144,keyCodeWithoutLocation:144,text:``,location:0}],[{key:`ScrollLock`,code:`ScrollLock`,keyCode:145,keyCodeWithoutLocation:145,text:``,location:0}],[{key:`Pause`,code:`Pause`,keyCode:19,keyCodeWithoutLocation:19,text:``,location:0}],[{key:`PrintScreen`,code:`PrintScreen`,keyCode:44,keyCodeWithoutLocation:44,text:``,location:0}],[{key:`Space`,code:`Space`,keyCode:32,keyCodeWithoutLocation:32,text:` `,location:0},[` `]]])addKey(xn,jn);for(let xn=1;xn<=12;xn+=1){let jn=`F${xn}`;addKey({key:jn,code:jn,keyCode:111+xn,keyCodeWithoutLocation:111+xn,text:``,location:0})}for(let xn=0;xn<=9;xn+=1)addCodeOnlyKey({key:String(xn),code:`Numpad${xn}`,keyCode:96+xn,keyCodeWithoutLocation:48+xn,text:String(xn),location:3});for(let[xn,jn,Vn,qn]of[[`NumpadMultiply`,106,56,`*`],[`NumpadAdd`,107,187,`+`],[`NumpadSubtract`,109,189,`-`],[`NumpadDecimal`,110,190,`.`],[`NumpadDivide`,111,191,`/`],[`NumpadEnter`,13,13,`\r`]])addCodeOnlyKey({key:qn||xn,code:xn,keyCode:jn,keyCodeWithoutLocation:Vn,text:qn,location:3});ModifierState=class{#e=new Set;#t=new Set;down(xn){MODIFIER_KEYS.has(xn)&&this.#e.add(xn)}up(xn){this.#e.delete(xn)}has(xn){return this.#e.has(xn)}modifiers(){return[...this.#e]}mouseDown(xn){this.#t.add(xn)}mouseUp(xn){this.#t.delete(xn)}toModifiersMask(){let xn=0;return this.#e.has(`Alt`)&&(xn|=1),this.#e.has(`Control`)&&(xn|=2),this.#e.has(`Meta`)&&(xn|=4),this.#e.has(`Shift`)&&(xn|=8),xn}toButtonsMask(){let xn=0;for(let jn of this.#t)xn|=BUTTON_MASKS.get(jn)??0;return xn}},OmOKeyboard=class{context;modifierState;#e=new Set;constructor(xn,jn){this.context=xn,this.modifierState=jn}async down(xn){await this.#n(xn)}async up(xn){await this.#r(xn)}async insertText(xn){await this.#t(xn)}async press(xn,jn={},Vn){let qn=splitKeyCombo(xn);if(qn.length===0)throw Error(`Key combo is empty`);let Jn=qn.slice(0,-1),Yn=qn[qn.length-1],Zn=[],Qn;try{for(let xn of Jn)await this.#n(xn,Vn),Zn.push(xn);await this.#n(Yn,Vn),(jn.delay??0)>0&&await sleep$12(jn.delay),await this.#r(Yn,Vn)}catch(xn){Qn=xn}let ei;for(let xn=Zn.length-1;xn>=0;--xn)try{await this.#r(Zn[xn],Vn)}catch(xn){ei??=xn}if(Qn)throw Qn;if(ei)throw ei}async type(xn,jn,Vn){let qn=jn?.delay??0;for(let jn of xn){if(jn===`
107
+ `||jn===`\r`||!lookupKeyDescriptor(jn)){qn>0&&await sleep$12(qn),await this.#t(jn,Vn);continue}await this.#a(jn,qn,Vn)}}async#t(xn,jn){await this.context._sendToTarget(`Input.insertText`,{text:xn},this.#i(jn))}async#n(xn,jn){let Vn=resolveKeyDescriptor(xn,{modifiers:this.modifierState.modifiers()}),qn=this.#e.has(Vn.code),Jn=this.modifierState.has(Vn.key);this.#e.add(Vn.code),this.modifierState.down(Vn.key);let Yn=keyCommands(Vn.code,this.modifierState.modifiers());try{await this.context._sendToTarget(`Input.dispatchKeyEvent`,{type:Vn.text?`keyDown`:`rawKeyDown`,key:Vn.key,code:Vn.code,commands:Yn,text:Vn.text,unmodifiedText:Vn.text,windowsVirtualKeyCode:Vn.keyCodeWithoutLocation,autoRepeat:qn,location:Vn.location,isKeypad:Vn.location===3,modifiers:this.modifierState.toModifiersMask()},this.#i(jn))}catch(xn){throw qn||this.#e.delete(Vn.code),Jn||this.modifierState.up(Vn.key),xn}return Vn}async#r(xn,jn){let Vn=resolveKeyDescriptor(xn,{modifiers:this.modifierState.modifiers()}),qn=this.#e.has(Vn.code),Jn=this.modifierState.has(Vn.key);this.#e.delete(Vn.code),this.modifierState.up(Vn.key);try{await this.context._sendToTarget(`Input.dispatchKeyEvent`,{type:`keyUp`,key:Vn.key,code:Vn.code,windowsVirtualKeyCode:Vn.keyCodeWithoutLocation,location:Vn.location,modifiers:this.modifierState.toModifiersMask()},this.#i(jn))}catch(xn){throw qn&&this.#e.add(Vn.code),Jn&&this.modifierState.down(Vn.key),xn}}#i(xn){return xn===undefined?undefined:{preferredSessionId:xn}}async#a(xn,jn,Vn){await this.#n(xn,Vn),jn>0&&await sleep$12(jn),await this.#r(xn,Vn)}}});function isTransientEvaluationError(xn){if(!(xn instanceof Error))return false;let jn=xn.message.toLowerCase();return jn.includes(`execution context was destroyed`)||jn.includes(`cannot find context with specified id`)||jn.includes(`cannot find object with given id`)||jn.includes(`most likely because of a navigation`)||jn.includes(`inspected target navigated or closed`)||jn.includes(`target page, context or browser has been closed`)}function isDomReadyTimeoutError(xn){return xn instanceof Error&&xn.message.includes(`Timed out waiting for document readiness`)}function isPdfViewerUrl(xn){return xn.startsWith(PDF_VIEWER_EXTENSION_PREFIX)||xn.endsWith(`.pdf`)}function getProbeState(xn){return xn.bodyExists?xn.interactiveCount>0||xn.landmarkCount>0||xn.textChars>=MIN_PROBE_TEXT_CHARS?`ready`:`sparse`:`missing-body`}function getNaiveRegistrableDomain(xn){try{let jn=new URL(xn).hostname.toLowerCase(),Vn=jn.split(`.`).filter(Boolean);return Vn.length<=2?jn:Vn.slice(-2).join(`.`)}catch{return``}}function isSameSite(xn,jn){return jn?xn===jn||xn.endsWith(`.${jn}`):false}async function waitForDomReady(xn,jn=DOM_READY_TIMEOUT_MS){let Vn=Date.now()+jn;for(;Date.now()<Vn;){try{if(await xn.evaluate(`document.readyState`)!==`loading`)return}catch(xn){if(!isTransientEvaluationError(xn))throw xn}await sleep$12(50)}throw Error(`Timed out waiting for document readiness after ${jn}ms`)}async function takePageProbe(xn){let jn=await xn.evaluate(`(() => {
108
+ const isVisibleElement = (element) => {
109
+ const style = window.getComputedStyle(element);
110
+ if (
111
+ style.display === 'none' ||
112
+ style.visibility === 'hidden' ||
113
+ style.visibility === 'collapse' ||
114
+ Number.parseFloat(style.opacity || '1') === 0
115
+ ) {
116
+ return false;
117
+ }
118
+
119
+ const rect = element.getBoundingClientRect();
120
+ return rect.width > 0 && rect.height > 0;
121
+ }
122
+
123
+ const body = document.body;
124
+ if (!body) {
125
+ return {
126
+ bodyExists: false,
127
+ interactiveCount: 0,
128
+ landmarkCount: 0,
129
+ textChars: 0,
130
+ };
131
+ }
132
+
133
+ const interactiveSelector = [
134
+ 'a[href]',
135
+ 'button',
136
+ 'input:not([type="hidden"])',
137
+ 'textarea',
138
+ 'select',
139
+ 'summary',
140
+ '[role="button"]',
141
+ '[role="link"]',
142
+ '[role="menuitem"]',
143
+ '[role="option"]',
144
+ '[tabindex]:not([tabindex="-1"])',
145
+ '[contenteditable="true"]',
146
+ ].join(',');
147
+ const landmarkSelector = [
148
+ 'main',
149
+ 'nav',
150
+ 'header',
151
+ 'footer',
152
+ 'aside',
153
+ 'form',
154
+ '[role="main"]',
155
+ '[role="navigation"]',
156
+ '[role="banner"]',
157
+ '[role="contentinfo"]',
158
+ '[role="complementary"]',
159
+ '[role="form"]',
160
+ ].join(',');
161
+
162
+ return {
163
+ bodyExists: true,
164
+ interactiveCount: Array.from(document.querySelectorAll(interactiveSelector))
165
+ .filter((element) => isVisibleElement(element))
166
+ .slice(0, 25).length,
167
+ landmarkCount: Array.from(document.querySelectorAll(landmarkSelector))
168
+ .filter((element) => isVisibleElement(element))
169
+ .slice(0, 10).length,
170
+ textChars: body.innerText.replace(/\\s+/g, ' ').trim().length,
171
+ };
172
+ })()`);return{...jn,state:getProbeState(jn)}}async function ensureDomMonitor(xn){await xn.evaluate(`(() => {
173
+ const key = ${JSON.stringify(DOM_MONITOR_KEY)};
174
+ const target = globalThis;
175
+ if (target[key]) {
176
+ return;
177
+ }
178
+
179
+ let mutationCount = 0;
180
+ const observer = new MutationObserver((mutations) => {
181
+ mutationCount += mutations.length;
182
+ });
183
+
184
+ observer.observe(document, {
185
+ subtree: true,
186
+ childList: true,
187
+ attributes: true,
188
+ });
189
+
190
+ target[key] = {
191
+ observer,
192
+ takeSnapshot() {
193
+ const snapshot = {
194
+ mutationCount,
195
+ totalNodes: Math.max(document.getElementsByTagName('*').length, 1),
196
+ };
197
+ mutationCount = 0;
198
+ return snapshot;
199
+ },
200
+ };
201
+ })()`)}async function readDomMonitor(xn){return await xn.evaluate(`(() => {
202
+ const key = ${JSON.stringify(DOM_MONITOR_KEY)};
203
+ const target = globalThis;
204
+ const monitor = target[key];
205
+
206
+ if (!monitor?.takeSnapshot) {
207
+ return {
208
+ mutationCount: 0,
209
+ totalNodes: Math.max(document.getElementsByTagName('*').length, 1),
210
+ };
211
+ }
212
+
213
+ return monitor.takeSnapshot();
214
+ })()`)}function collectTrackedSessionIds(xn,jn){let Vn=new Set;jn&&Vn.add(jn);for(let jn of xn.frameManager.frames.values())Vn.add(jn.sessionId);return Vn}async function waitForNavigationReadiness(xn,jn=`interactive`,Vn=ACTION_MAX_WAIT_MS){return await Promise.race([waitForNavigationReadinessInner(xn,jn,Vn),sleep$12(Vn+1000).then(()=>{throw new NavigationReadinessTimeoutError(jn,Vn)})])}async function waitForNavigationReadinessInner(xn,jn,Vn){if(isPdfViewerUrl(xn.url()))return await waitForDomReady(xn,Math.min(DOM_READY_TIMEOUT_MS,Vn)).catch(()=>{}),{bodyExists:true,interactiveCount:0,landmarkCount:0,textChars:0,state:`ready`};let qn=Date.now()+Vn,Jn=0,Yn=collectTrackedSessionIds(xn,await xn.resolveSessionId().catch(()=>{return})),Zn=new NetworkTracker(xn.cdp,Yn),Qn=null,ei=false,ti=null,ni=null;try{for(await waitForDomReady(xn,Math.min(DOM_READY_TIMEOUT_MS,Vn)).catch(()=>{}),jn===`stable`&&await ensureDomMonitor(xn).catch(()=>{}),ni=xn.cdp.on(`Page.frameNavigated`,(xn,jn)=>{!jn.sessionId||!Yn.has(jn.sessionId)||xn.frame.parentId||(ei=true)});Date.now()<qn;){await sleep$12(PROBE_INTERVAL_MS);try{if(ei){ei=false,Jn=0,Qn=null,ti=null,await waitForDomReady(xn,Math.min(DOM_READY_TIMEOUT_MS,Math.max(qn-Date.now(),0))).catch(()=>{}),jn===`stable`&&await ensureDomMonitor(xn).catch(()=>{});continue}let Vn=await takePageProbe(xn);if(Vn.state!==`ready`){Jn=0,Qn=null,ti=null;continue}if(Zn.captureTrackedRequests(xn.url()).size>0&&(Qn||=Date.now(),Date.now()-Qn<NAVIGATION_NETWORK_BUDGET_MS)){Jn=0;continue}if(Vn.interactiveCount===0&&(ti||=Date.now(),Date.now()-ti<REDIRECT_GUARD_MS))continue;if(jn===`interactive`)return Vn;let Yn=await readDomMonitor(xn);if(Jn=Yn.mutationCount/Yn.totalNodes<=QUIET_MUTATION_RATIO?Jn+1:0,Jn>=QUIET_SAMPLE_COUNT)return Vn}catch(jn){if(!isTransientEvaluationError(jn))throw jn;Jn=0,Qn=null,ti=null;let Vn=Math.max(qn-Date.now(),0);await waitForDomReady(xn,Math.min(DOM_READY_TIMEOUT_MS,Vn))}}throw new NavigationReadinessTimeoutError(jn,Vn)}finally{ni?.(),Zn.dispose()}}async function waitForDomQuiet(xn,jn={}){let Vn=jn.budgetMs??QUIET_WINDOW_MS,qn=jn.sampleIntervalMs??QUIET_SAMPLE_INTERVAL_MS,Jn=jn.quietMutationRatio??QUIET_MUTATION_RATIO,Yn=jn.quietSampleCount??QUIET_SAMPLE_COUNT,Zn=Date.now()+Vn,Qn=0;try{for(await waitForDomReady(xn,Math.min(DOM_READY_TIMEOUT_MS,Vn)).catch(()=>{}),await ensureDomMonitor(xn).catch(()=>{});Date.now()<Zn;){await sleep$12(qn);let jn=await readDomMonitor(xn);if(Qn=jn.mutationCount/jn.totalNodes<=Jn?Qn+1:0,Qn>=Yn)return true}}catch(xn){if(!isTransientEvaluationError(xn))throw xn}return false}async function performActionAndWait(xn,jn,Vn={}){let qn=Vn.timeoutMs??ACTION_MAX_WAIT_MS,Jn=Date.now()+qn,Yn=collectTrackedSessionIds(xn,Vn.frameSessionId?await xn.resolveSessionId(Vn.frameSessionId):await xn.resolveSessionId()),Zn=new NetworkTracker(xn.cdp,Yn),Qn=false,ei,ti=await xn.evaluate(()=>location.href).catch(()=>xn.url()),ni=xn.cdp.on(`Page.frameNavigated`,(xn,jn)=>{!jn.sessionId||!Yn.has(jn.sessionId)||xn.frame.parentId||(Qn=true)});try{ei=await jn();try{let jn=Math.max(Jn-Date.now(),0);await waitForDomReady(xn,Math.min(DOM_READY_TIMEOUT_MS,jn))}catch(xn){if(!isTransientEvaluationError(xn)&&!isDomReadyTimeoutError(xn))throw xn}await sleep$12(Vn.hookWindowMs??ACTION_HOOK_WINDOW_MS);let qn=Zn.captureTrackedRequests(xn.url()),Yn=Math.min(Date.now()+(Vn.requestTrackingBudgetMs??ACTION_REQUEST_TRACKING_BUDGET_MS),Jn);for(;qn.size>0&&Date.now()<Yn&&!Qn;){for(let xn of qn)Zn.isFinished(xn)&&qn.delete(xn);qn.size>0&&await sleep$12(NETWORK_TRACK_POLL_MS)}if(Qn)return await waitForNavigationReadiness(xn,`interactive`,Math.max(Jn-Date.now(),DOM_READY_TIMEOUT_MS)),ei;let ni=await xn.evaluate(()=>location.href).catch(()=>xn.url())!==ti,ri=Math.min(Vn.postSettleMs??(ni?SPA_URL_CHANGE_POST_SETTLE_MS:ACTION_POST_SETTLE_MS),Math.max(Jn-Date.now(),0));if(ri>0){let jn=ni?Math.min(SPA_URL_CHANGE_MIN_DWELL_MS,ri):0;ni&&await sleep$12(jn);let Vn=Math.max(ri-jn,0);await waitForDomQuiet(xn,{budgetMs:Vn,sampleIntervalMs:50,quietSampleCount:1}).catch(()=>false)||await sleep$12(Vn)}return ei}finally{ni(),Zn.dispose()}}var DOM_READY_TIMEOUT_MS;var PROBE_INTERVAL_MS;var QUIET_MUTATION_RATIO;var QUIET_WINDOW_MS;var QUIET_SAMPLE_INTERVAL_MS;var QUIET_SAMPLE_COUNT;var MIN_PROBE_TEXT_CHARS;var ACTION_HOOK_WINDOW_MS;var ACTION_REQUEST_TRACKING_BUDGET_MS;var ACTION_POST_SETTLE_MS;var SPA_URL_CHANGE_MIN_DWELL_MS;var SPA_URL_CHANGE_POST_SETTLE_MS;var ACTION_MAX_WAIT_MS;var NETWORK_TRACK_POLL_MS;var NAVIGATION_NETWORK_BUDGET_MS;var REDIRECT_GUARD_MS;var DOM_MONITOR_KEY;var REQUEST_SKIP_TYPES;var NavigationReadinessTimeoutError;var PDF_VIEWER_EXTENSION_PREFIX;var NetworkTracker;var init_wait=__esmMin(()=>{init_utils$13(),DOM_READY_TIMEOUT_MS=2000,PROBE_INTERVAL_MS=100,QUIET_MUTATION_RATIO=0.01,QUIET_WINDOW_MS=350,QUIET_SAMPLE_INTERVAL_MS=100,QUIET_SAMPLE_COUNT=2,MIN_PROBE_TEXT_CHARS=20,ACTION_HOOK_WINDOW_MS=150,ACTION_REQUEST_TRACKING_BUDGET_MS=1200,ACTION_POST_SETTLE_MS=300,SPA_URL_CHANGE_MIN_DWELL_MS=500,SPA_URL_CHANGE_POST_SETTLE_MS=750,ACTION_MAX_WAIT_MS=8000,NETWORK_TRACK_POLL_MS=50,NAVIGATION_NETWORK_BUDGET_MS=1500,REDIRECT_GUARD_MS=1000,DOM_MONITOR_KEY=`__omowrightWaitDomMonitor`,REQUEST_SKIP_TYPES=new Set([`WebSocket`,`EventSource`,`Ping`,`Prefetch`,`CSPViolationReport`]),NavigationReadinessTimeoutError=class extends Error{mode;timeoutMs;constructor(xn,jn){super(`Timed out waiting for ${xn} page after ${jn}ms`),this.name=`NavigationReadinessTimeoutError`,this.mode=xn,this.timeoutMs=jn}},PDF_VIEWER_EXTENSION_PREFIX=`chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai`,NetworkTracker=class{#e=new Map;#t=[];#n;constructor(xn,jn){this.#n=new Set(jn),this.#t.push(xn.on(`Network.requestWillBeSent`,(xn,jn)=>{if(!jn.sessionId||!this.#n.has(jn.sessionId))return;let Vn=``;try{Vn=new URL(xn.request.url).hostname.toLowerCase()}catch{return}this.#e.set(xn.requestId,{hostname:Vn,resourceType:xn.type??`Other`,finished:false,startedAt:Date.now()})}));let Vn=(xn)=>{let jn=this.#e.get(xn);jn&&(jn.finished=true)};this.#t.push(xn.on(`Network.loadingFinished`,(xn,jn)=>{jn.sessionId&&this.#n.has(jn.sessionId)&&Vn(xn.requestId)})),this.#t.push(xn.on(`Network.loadingFailed`,(xn,jn)=>{jn.sessionId&&this.#n.has(jn.sessionId)&&Vn(xn.requestId)}))}captureTrackedRequests(xn){let jn=new Set,Vn=getNaiveRegistrableDomain(xn);for(let[xn,qn]of this.#e)qn.finished||isSameSite(qn.hostname,Vn)&&(REQUEST_SKIP_TYPES.has(qn.resourceType)||jn.add(xn));return jn}isFinished(xn){return this.#e.get(xn)?.finished??true}dispose(){for(let xn of this.#t)xn();this.#t.length=0}}});function contentEditableValueMatches(xn,jn){if(xn===jn)return true;let Vn=(xn)=>xn.replace(/\u00a0/g,` `).replace(/\r\n/g,`
215
+ `).replace(/\n+$/g,``);return Vn(xn)===Vn(jn)}function isStaleObjectError(xn){let jn=xn instanceof Error?xn.message:String(xn);return jn.includes(`Cannot find object with given id`)||jn.includes(`Cannot find context with specified id`)||jn.includes(`Object reference chain is too long`)}function quadArea(xn){if(xn.length!==8)return 0;let jn=[{x:xn[0],y:xn[1]},{x:xn[2],y:xn[3]},{x:xn[4],y:xn[5]},{x:xn[6],y:xn[7]}],Vn=0;for(let xn=0;xn<jn.length;xn+=1){let qn=jn[xn],Jn=jn[(xn+1)%jn.length];Vn+=qn.x*Jn.y-Jn.x*qn.y}return Math.abs(Vn/2)}function quadCenter(xn){return{x:(xn[0]+xn[2]+xn[4]+xn[6])/4,y:(xn[1]+xn[3]+xn[5]+xn[7])/4}}async function resolveActionSessionId(xn,jn){return await xn.resolveSessionId(jn?.frameSessionId)}async function callOnElement(xn,jn,Vn,...qn){try{let Jn=qn.map((xn)=>({value:xn})),Yn=await resolveActionSessionId(xn,jn),{result:Zn,exceptionDetails:Qn}=await xn.cdp.send(`Runtime.callFunctionOn`,{objectId:jn.objectId,functionDeclaration:Vn,arguments:Jn,returnByValue:true,awaitPromise:true,userGesture:true},Yn);if(Qn)throw Error(formatRuntimeException(Qn,`Runtime.callFunctionOn failed`));return Zn.value}catch(xn){throw isStaleObjectError(xn)?new RefStaleError(jn.objectId):xn}}async function callOnElementSync(xn,jn,Vn,...qn){try{let Jn=qn.map((xn)=>({value:xn})),Yn=await resolveActionSessionId(xn,jn),{result:Zn,exceptionDetails:Qn}=await xn.cdp.send(`Runtime.callFunctionOn`,{objectId:jn.objectId,functionDeclaration:Vn,arguments:Jn,returnByValue:true,awaitPromise:false,userGesture:true},Yn);if(Qn)throw Error(formatRuntimeException(Qn,`Runtime.callFunctionOn failed`));return Zn.value}catch(xn){throw isStaleObjectError(xn)?new RefStaleError(jn.objectId):xn}}async function callOnElementHandle(xn,jn,Vn,...qn){try{let Jn=qn.map((xn)=>({value:xn})),Yn=await resolveActionSessionId(xn,jn),{result:Zn,exceptionDetails:Qn}=await xn.cdp.send(`Runtime.callFunctionOn`,{objectId:jn.objectId,functionDeclaration:Vn,arguments:Jn,returnByValue:false,awaitPromise:true,userGesture:true},Yn);if(Qn)throw Error(formatRuntimeException(Qn,`Runtime.callFunctionOn failed`));if(!Zn.objectId)throw Error(`Runtime.callFunctionOn did not return an object handle`);return{objectId:Zn.objectId,frameId:jn.frameId,frameSessionId:jn.frameSessionId,contextId:jn.contextId}}catch(xn){throw isStaleObjectError(xn)?new RefStaleError(jn.objectId):xn}}async function resolveClickTarget(xn,jn){return await callOnElementHandle(xn,jn,`function() {
216
+ const root = globalThis.__omowright?.retarget(this, 'none') || this;
217
+
218
+ // Some sites expose refs that point at semantic wrappers while the actual hit
219
+ // target lives on an inner combobox-like trigger. Resolve that trigger once here so the click path stays generic.
220
+ const triggerSelector = '[role="combobox"], [aria-haspopup="listbox"], summary';
221
+ if (root.matches?.(triggerSelector)) {
222
+ return root;
223
+ }
224
+
225
+ const nestedTrigger = root.querySelector?.(triggerSelector);
226
+ if (nestedTrigger) {
227
+ return nestedTrigger;
228
+ }
229
+
230
+ return globalThis.__omowright?.resolvePointerTarget?.(root) || root;
231
+ }`)}async function readClickTargetState(xn,jn){return await callOnElementSync(xn,jn,`function() {
232
+ const isComboboxLike = !!this.matches?.('[role="combobox"], [aria-haspopup="listbox"], summary');
233
+ const isLink = this.tagName?.toUpperCase() === 'A';
234
+ const href = isLink ? (this.getAttribute?.('href') || '') : '';
235
+ const absoluteHref = isLink ? this.href : '';
236
+ const role = String(this.getAttribute?.('role') || '').toLowerCase();
237
+ const nativeCheckable = this instanceof HTMLInputElement
238
+ ? this
239
+ : this instanceof HTMLLabelElement
240
+ ? this.control
241
+ : null;
242
+ const nativeType = nativeCheckable instanceof HTMLInputElement ? String(nativeCheckable.type || '').toLowerCase() : '';
243
+ const isNativeCheckable = nativeType === 'checkbox' || nativeType === 'radio';
244
+ const ariaChecked = this.getAttribute?.('aria-checked');
245
+ const checked = isNativeCheckable
246
+ ? !!nativeCheckable.checked
247
+ : ariaChecked === 'true'
248
+ ? true
249
+ : ariaChecked === 'false'
250
+ ? false
251
+ : null;
252
+ // Use JS .click() for <a> links with real hrefs — coordinate-based CDP
253
+ // dispatch can miss the link when a child element (icon span, image) at
254
+ // the click point absorbs the event without triggering default navigation.
255
+ const prefersDomActivation =
256
+ (isLink && !!href && !href.startsWith('#') && !href.startsWith('javascript:')) ||
257
+ // Native checkbox/radio filters frequently hide the real state carrier
258
+ // behind labels or framework wrappers. DOM activation plus post-check
259
+ // verification is more reliable than CDP coordinates for these controls.
260
+ isNativeCheckable;
261
+ return {
262
+ checked,
263
+ isComboboxLike,
264
+ isCheckable: isNativeCheckable || checked !== null,
265
+ isRadio: nativeType === 'radio' || role === 'radio',
266
+ popupUrl: prefersDomActivation && this.target === '_blank' ? absoluteHref : null,
267
+ prefersDomActivation,
268
+ expanded: isComboboxLike ? this.getAttribute?.('aria-expanded') ?? null : null,
269
+ };
270
+ }`)}async function domClickTarget(xn,jn){await callOnElementSync(xn,jn,`function() {
271
+ if (typeof this.click === 'function') {
272
+ this.click();
273
+ }
274
+ }`)}async function ensurePointerActionable(xn,jn){for(let Vn of ACTIONABILITY_RETRY_DELAYS_MS){Vn>0&&await sleep$12(Vn);let qn=await callOnElement(xn,jn,`function(checks) {
275
+ return globalThis.__omowright.waitForReady(this, checks);
276
+ }`,[`attached`,`visible`,`stable`,`enabled`]);if(!qn.ok){if((qn.error?.includes(`moving`)||qn.error?.includes(`obscured`))&&Vn!==ACTIONABILITY_RETRY_DELAYS_MS[ACTIONABILITY_RETRY_DELAYS_MS.length-1])continue;throw Error(qn.error||`Element is not ready for click`)}let Jn=await getLocalClickPoint(xn,jn),Yn=await callOnElementSync(xn,jn,`function(clickPoint) {
277
+ return globalThis.__omowright.checkHitTarget(this, clickPoint);
278
+ }`,Jn);if(Yn.ok)return await resolvePointerDispatchTarget(xn,jn,Jn);if(!(Yn.error?.includes(`obscured`)&&Vn!==ACTIONABILITY_RETRY_DELAYS_MS[ACTIONABILITY_RETRY_DELAYS_MS.length-1]))throw Error(Yn.error||`Element is not receiving pointer events`)}throw Error(`Element did not become clickable in time`)}async function resolvePointerDispatchTarget(xn,jn,Vn){let qn=await findFrameOwnerContentOffset(xn,jn.frameId);return qn?{point:{x:Vn.x+qn.x,y:Vn.y+qn.y},sessionId:await xn.resolveSessionId()}:{point:Vn,sessionId:await resolveActionSessionId(xn,jn)}}async function findFrameOwnerContentOffset(xn,jn){let Vn=await xn.resolveSessionId(),{root:qn}=await xn.cdp.send(`DOM.getDocument`,{depth:-1,pierce:true},Vn),{nodeIds:Jn}=await xn.cdp.send(`DOM.querySelectorAll`,{nodeId:qn.nodeId,selector:`iframe,frame`},Vn);for(let qn of Jn){let{node:Jn}=await xn.cdp.send(`DOM.describeNode`,{nodeId:qn},Vn);if(Jn.frameId!==jn)continue;let{object:Yn}=await xn.cdp.send(`DOM.resolveNode`,{nodeId:qn},Vn);if(Yn.objectId)try{let{result:jn,exceptionDetails:qn}=await xn.cdp.send(`Runtime.callFunctionOn`,{objectId:Yn.objectId,functionDeclaration:`function() {
279
+ const rect = this.getBoundingClientRect();
280
+ return { x: rect.left, y: rect.top };
281
+ }`,returnByValue:true,awaitPromise:true,userGesture:false},Vn);if(qn)throw Error(formatRuntimeException(qn,`Unable to read frame owner rect`));let Jn=jn.value;if(Number.isFinite(Jn.x)&&Number.isFinite(Jn.y))return{x:Jn.x,y:Jn.y}}finally{await xn.cdp.send(`Runtime.releaseObject`,{objectId:Yn.objectId},Vn).catch(()=>{})}}return null}async function getLocalClickPoint(xn,jn){let Vn=await resolveActionSessionId(xn,jn);try{await xn.cdp.send(`DOM.scrollIntoViewIfNeeded`,{objectId:jn.objectId},Vn)}catch{await callOnElementSync(xn,jn,`function() {
282
+ if (this && this.scrollIntoView) {
283
+ this.scrollIntoView({ block: 'center', inline: 'center', behavior: 'instant' });
284
+ }
285
+ }`).catch(()=>{})}let qn=await callOnElementSync(xn,jn,`function() {
286
+ const rect = this.getBoundingClientRect();
287
+ const ok = rect.width > 0 && rect.height > 0;
288
+ return {
289
+ ok,
290
+ x: rect.left + rect.width / 2,
291
+ y: rect.top + rect.height / 2,
292
+ };
293
+ }`);if(qn.ok)return{x:qn.x,y:qn.y};let{quads:Jn}=await xn.cdp.send(`DOM.getContentQuads`,{objectId:jn.objectId},Vn);for(let xn of Jn??[])if(!(quadArea(xn)<0.99))return quadCenter(xn);throw Error(`No valid clickable point found for element`)}async function getPointerDispatchTarget(xn,jn){return await resolvePointerDispatchTarget(xn,jn,await getLocalClickPoint(xn,jn))}async function keyDown(xn,jn,Vn,qn){let Jn=resolveKeyDescriptor(Vn,{modifiers:qn.modifiers()}),Yn=qn.has(Jn.key);qn.down(Jn.key);try{await xn.cdp.send(`Input.dispatchKeyEvent`,{type:Jn.text?`keyDown`:`rawKeyDown`,key:Jn.key,code:Jn.code,commands:keyCommands(Jn.code,qn.modifiers()),text:Jn.text,unmodifiedText:Jn.text,windowsVirtualKeyCode:Jn.keyCodeWithoutLocation,location:Jn.location,isKeypad:Jn.location===3,modifiers:qn.toModifiersMask()},jn)}catch(xn){throw Yn||qn.up(Jn.key),xn}}async function keyUp(xn,jn,Vn,qn){let Jn=resolveKeyDescriptor(Vn,{modifiers:qn.modifiers()}),Yn=qn.has(Jn.key);qn.up(Jn.key);try{await xn.cdp.send(`Input.dispatchKeyEvent`,{type:`keyUp`,key:Jn.key,code:Jn.code,windowsVirtualKeyCode:Jn.keyCodeWithoutLocation,location:Jn.location,modifiers:qn.toModifiersMask()},jn)}catch(xn){throw Yn&&qn.down(Jn.key),xn}}async function focusElement(xn,jn,Vn=false){await callOnElementSync(xn,jn,`function(resetSelection) {
294
+ const target = globalThis.__omowright?.retarget(this, 'follow-label') || this;
295
+ const wasFocused = target?.ownerDocument?.activeElement === target;
296
+ if (target && 'focus' in target && typeof target.focus === 'function') {
297
+ target.focus();
298
+ }
299
+ // Playwright resets a newly-focused input so sequential typing starts at the beginning.
300
+ if (resetSelection && !wasFocused && target?.tagName === 'INPUT') {
301
+ try {
302
+ target.setSelectionRange(0, 0);
303
+ } catch {
304
+ // Some input types do not support text selection.
305
+ }
306
+ }
307
+ }`,Vn)}async function blurElement(xn,jn){await callOnElementSync(xn,jn,`function() {
308
+ const target = globalThis.__omowright?.retarget(this, 'follow-label') || this;
309
+ if (target && 'blur' in target && typeof target.blur === 'function') {
310
+ target.blur();
311
+ }
312
+ }`)}async function readComboboxState(xn,jn){let Vn=await readClickTargetState(xn,jn);return{hasComboboxTarget:Vn.isComboboxLike,expanded:Vn.expanded}}async function clickComboboxFallback(xn,jn){await domClickTarget(xn,jn)}async function clickElement(xn,jn,Vn={},qn=defaultModifierState){let Jn=await resolveClickTarget(xn,jn),Yn=Vn.modifiers??[],Zn=[],Qn=await xn.resolveSessionId(),ei=await readComboboxState(xn,Jn).catch(()=>({hasComboboxTarget:false,expanded:null})),ti=await readClickTargetState(xn,Jn).catch(()=>({expanded:null,checked:null,isComboboxLike:false,isCheckable:false,isRadio:false,popupUrl:null,prefersDomActivation:false}));try{let jn=async()=>{let jn=async()=>!ti.isCheckable||ti.checked===null||ti.isRadio&&ti.checked?true:(await readClickTargetState(xn,Jn).catch(()=>null))?.checked!==ti.checked,ni=async()=>{if(ti.popupUrl&&xn.openPopupUrl){await xn.openPopupUrl(ti.popupUrl);return}await domClickTarget(xn,Jn)};if(ti.prefersDomActivation){if(await ni(),!await jn())throw Error(`Checkbox click did not change checked state`);return}let ri;try{let jn=Vn.force?await getPointerDispatchTarget(xn,Jn):await ensurePointerActionable(xn,Jn);ri=jn.point,Qn=jn.sessionId}catch(qn){let Yn=qn instanceof Error?qn.message:String(qn);if(ti.isCheckable&&(await jn()||(await ni(),await jn())))return;if(!Vn.force&&Yn.includes(`obscured`)){await domClickTarget(xn,Jn);return}throw qn}let{x:ii,y:ai}=ri;try{for(let jn of Yn)await keyDown(xn,Qn,jn,qn),Zn.push(jn);Vn.moveBeforeClick!==false&&await xn.cdp.send(`Input.dispatchMouseEvent`,{type:`mouseMoved`,x:ii,y:ai,button:`none`,modifiers:qn.toModifiersMask()},Qn);let jn=Vn.dblClick?2:1;await xn.prepareForPotentialFileChooser?.();for(let Vn=1;Vn<=jn;Vn+=1)await xn.cdp.send(`Input.dispatchMouseEvent`,{type:`mousePressed`,x:ii,y:ai,button:`left`,buttons:1,clickCount:Vn,modifiers:qn.toModifiersMask()},Qn),await xn.cdp.send(`Input.dispatchMouseEvent`,{type:`mouseReleased`,x:ii,y:ai,button:`left`,buttons:0,clickCount:Vn,modifiers:qn.toModifiersMask()},Qn)}catch(xn){if(ti.isCheckable&&(await jn()||(await ni(),await jn())))return;throw xn}ei.hasComboboxTarget&&ei.expanded===`false`&&await sleep$12(80);let oi=await readComboboxState(xn,Jn).catch(()=>({hasComboboxTarget:false,expanded:null}));if(ei.hasComboboxTarget&&ei.expanded===`false`&&oi.expanded===`false`&&await clickComboboxFallback(xn,Jn),!await jn()&&(await ni(),!await jn()))throw Error(`Checkbox click did not change checked state`)};if(Vn.waitAfter===false)await jn();else try{await performActionAndWait(xn,jn,{frameSessionId:Jn.frameSessionId})}catch(xn){if(xn instanceof NavigationReadinessTimeoutError&&xn.mode===`interactive`){replPrint(`[warning] Waited ${xn.timeoutMs}ms for the page to become ready after the click.`);return}throw xn}}finally{for(let jn=Zn.length-1;jn>=0;--jn)await keyUp(xn,Qn,Zn[jn],qn).catch(()=>{})}}async function fillElement(xn,jn,Vn){let qn=await resolveActionSessionId(xn,jn),Jn=await callOnElementSync(xn,jn,`function(nextValue, setValueTypes, typeIntoTypes) {
313
+ const target = globalThis.__omowright?.retarget(this, 'follow-label');
314
+ if (!target) {
315
+ return { mode: 'needsinput', kind: 'input', expectedValue: '', error: 'Unable to retarget element' };
316
+ }
317
+
318
+ const editable = globalThis.__omowright?.checkEditable(target);
319
+ if (!editable?.ok) {
320
+ return {
321
+ mode: 'needsinput',
322
+ kind: 'input',
323
+ expectedValue: '',
324
+ error: editable?.error || 'Element is not editable',
325
+ };
326
+ }
327
+
328
+ const tagName = target.tagName.toUpperCase();
329
+ if (tagName === 'INPUT') {
330
+ const inputType = String(target.type || '').toLowerCase();
331
+ if (!setValueTypes.includes(inputType) && !typeIntoTypes.includes(inputType)) {
332
+ return {
333
+ mode: 'needsinput',
334
+ kind: 'input',
335
+ expectedValue: '',
336
+ error: 'Input of type "' + inputType + '" cannot be filled',
337
+ };
338
+ }
339
+
340
+ let expectedValue = String(nextValue ?? '');
341
+ if (inputType === 'number') {
342
+ expectedValue = expectedValue.trim();
343
+ if (Number.isNaN(Number(expectedValue))) {
344
+ return {
345
+ mode: 'needsinput',
346
+ kind: 'input',
347
+ expectedValue,
348
+ error: 'Cannot type text into input[type=number]',
349
+ };
350
+ }
351
+ }
352
+ if (inputType === 'color') expectedValue = expectedValue.toLowerCase();
353
+
354
+ if (setValueTypes.includes(inputType)) {
355
+ expectedValue = expectedValue.trim();
356
+ target.focus();
357
+ target.value = expectedValue;
358
+ if (target.value !== expectedValue) {
359
+ return { mode: 'setvalue', kind: 'input', expectedValue, error: 'Malformed value' };
360
+ }
361
+ target.dispatchEvent(new Event('input', { bubbles: true, composed: true }));
362
+ target.dispatchEvent(new Event('change', { bubbles: true }));
363
+ return { mode: 'setvalue', kind: 'input', expectedValue };
364
+ }
365
+
366
+ target.select();
367
+ target.focus();
368
+ return { mode: 'needsinput', kind: 'input', expectedValue };
369
+ }
370
+
371
+ if (tagName === 'TEXTAREA') {
372
+ target.selectionStart = 0;
373
+ target.selectionEnd = target.value.length;
374
+ target.focus();
375
+ return { mode: 'needsinput', kind: 'textarea', expectedValue: String(nextValue ?? '') };
376
+ }
377
+
378
+ if (target.isContentEditable) {
379
+ target.focus();
380
+ const selection = target.ownerDocument.getSelection();
381
+ if (selection) {
382
+ const range = target.ownerDocument.createRange();
383
+ range.selectNodeContents(target);
384
+ selection.removeAllRanges();
385
+ selection.addRange(range);
386
+ }
387
+ return { mode: 'needsinput', kind: 'contenteditable', expectedValue: String(nextValue ?? '') };
388
+ }
389
+
390
+ return {
391
+ mode: 'needsinput',
392
+ kind: 'input',
393
+ expectedValue: '',
394
+ error: 'Element is not an <input>, <textarea> or [contenteditable] element',
395
+ };
396
+ }`,Vn,kSetValueInputTypes,kTypeIntoInputTypes);if(Jn.error)throw Error(Jn.error);if(Jn.mode===`setvalue`)return;Jn.expectedValue?await xn.cdp.send(`Input.insertText`,{text:Jn.expectedValue},qn):(await keyDown(xn,qn,`Delete`,defaultModifierState),await keyUp(xn,qn,`Delete`,defaultModifierState));let Yn=async()=>await callOnElementSync(xn,jn,`function(kind) {
397
+ const target = globalThis.__omowright?.retarget(this, 'follow-label') || this;
398
+ if (kind === 'contenteditable') return target.innerText || '';
399
+ return typeof target.value === 'string' ? target.value : '';
400
+ }`,Jn.kind),Zn=await Yn();if(Zn!==Jn.expectedValue&&!(Jn.kind===`contenteditable`&&contentEditableValueMatches(Zn,Jn.expectedValue))){if(Jn.kind===`contenteditable`)throw Error(`Fill did not set the expected contenteditable value`);if(!await callOnElementSync(xn,jn,`function(nextValue) {
401
+ const target = globalThis.__omowright?.retarget(this, 'follow-label') || this;
402
+ const tagName = target.tagName ? target.tagName.toUpperCase() : '';
403
+ if (tagName !== 'INPUT' && tagName !== 'TEXTAREA') return false;
404
+
405
+ const previousValue = target.value;
406
+ let prototype = Object.getPrototypeOf(target);
407
+ let descriptor;
408
+ while (prototype && !descriptor) {
409
+ descriptor = Object.getOwnPropertyDescriptor(prototype, 'value');
410
+ prototype = Object.getPrototypeOf(prototype);
411
+ }
412
+ if (!descriptor || typeof descriptor.set !== 'function') return false;
413
+
414
+ descriptor.set.call(target, String(nextValue ?? ''));
415
+ const tracker = target._valueTracker;
416
+ if (tracker && typeof tracker.setValue === 'function') tracker.setValue(String(previousValue));
417
+ target.dispatchEvent(new Event('input', { bubbles: true, composed: true }));
418
+ return true;
419
+ }`,Jn.expectedValue))throw Error(`Fill fallback could not update the target`);if(await Yn()!==Jn.expectedValue)throw Error(`Fill did not set the expected value`)}}async function selectOptionElement(xn,jn,Vn){return await performActionAndWait(xn,async()=>await callOnElementSync(xn,jn,`function(requested) {
420
+ const target = globalThis.__omowright?.retarget(this, 'follow-label') || this;
421
+ if (!target || !target.tagName || target.tagName.toUpperCase() !== 'SELECT') {
422
+ throw new Error('Element is not a <select>');
423
+ }
424
+
425
+ const select = target;
426
+ const wanted = Array.isArray(requested) ? requested : [requested];
427
+ const matched = new Set();
428
+
429
+ for (let index = 0; index < select.options.length; index += 1) {
430
+ const option = select.options[index];
431
+ const matches = wanted.some((token) => {
432
+ if (token && typeof token === 'object') {
433
+ if (typeof token.value === 'string' && token.value === option.value) return true;
434
+ if (typeof token.label === 'string' && token.label === option.label) return true;
435
+ if (typeof token.index === 'number' && token.index === index) return true;
436
+ return false;
437
+ }
438
+ const candidate = String(token);
439
+ return candidate === option.value || candidate === option.label || candidate === String(index);
440
+ });
441
+ if (matches) {
442
+ matched.add(option.value);
443
+ }
444
+ option.selected = matches;
445
+ }
446
+
447
+ if (!select.multiple && matched.size > 1) {
448
+ const first = Array.from(select.options).find((option) => matched.has(option.value));
449
+ for (const option of select.options) {
450
+ option.selected = option === first;
451
+ }
452
+ }
453
+
454
+ select.dispatchEvent(new Event('input', { bubbles: true }));
455
+ select.dispatchEvent(new Event('change', { bubbles: true }));
456
+ return Array.from(select.selectedOptions).map((option) => option.value);
457
+ }`,Vn),{frameSessionId:jn.frameSessionId})}async function checkElement(xn,jn,Vn=true){let qn=await callOnElementSync(xn,jn,`function() {
458
+ const target = globalThis.__omowright?.retarget(this, 'follow-label') || this;
459
+ const role = String(target.getAttribute?.('role') || '').toLowerCase();
460
+ const isNativeInput = target.tagName?.toUpperCase() === 'INPUT';
461
+ const type = String(target.type || '').toLowerCase();
462
+ const prefersLabelClick = isNativeInput &&
463
+ (type === 'checkbox' || type === 'radio') &&
464
+ Array.from(target.labels ?? []).some((label) => {
465
+ const style = label.ownerDocument?.defaultView?.getComputedStyle?.(label);
466
+ if (style && (style.display === 'none' || style.visibility === 'hidden')) {
467
+ return false;
468
+ }
469
+ const rect = label.getBoundingClientRect();
470
+ return rect.width > 0 && rect.height > 0;
471
+ });
472
+
473
+ const nativeChecked = isNativeInput && (type === 'checkbox' || type === 'radio')
474
+ ? !!target.checked
475
+ : null;
476
+ const ariaChecked = target.getAttribute?.('aria-checked');
477
+
478
+ if (nativeChecked !== null) {
479
+ return { checked: nativeChecked, isRadio: type === 'radio', prefersLabelClick };
480
+ }
481
+ if (ariaChecked === 'true') {
482
+ return { checked: true, isRadio: role === 'radio', prefersLabelClick };
483
+ }
484
+ if (ariaChecked === 'false') {
485
+ return { checked: false, isRadio: role === 'radio', prefersLabelClick };
486
+ }
487
+ return { checked: null, isRadio: role === 'radio', prefersLabelClick };
488
+ }`);if(qn.checked!==Vn){if(qn.isRadio&&Vn===false)throw Error(`Radio buttons cannot be unchecked directly`);try{await clickElement(xn,jn)}catch(Vn){if(!qn.prefersLabelClick||!await callOnElementSync(xn,jn,`function() {
489
+ const target = globalThis.__omowright?.retarget(this, 'follow-label') || this;
490
+ if (!(target instanceof HTMLInputElement) || (target.type !== 'checkbox' && target.type !== 'radio')) {
491
+ return false;
492
+ }
493
+
494
+ const label = Array.from(target.labels ?? []).find((candidate) => {
495
+ const style = candidate.ownerDocument?.defaultView?.getComputedStyle?.(candidate);
496
+ if (style && (style.display === 'none' || style.visibility === 'hidden')) {
497
+ return false;
498
+ }
499
+ const rect = candidate.getBoundingClientRect();
500
+ return rect.width > 0 && rect.height > 0;
501
+ });
502
+
503
+ if (!label) {
504
+ return false;
505
+ }
506
+
507
+ label.click();
508
+ return true;
509
+ }`))throw Vn}try{if(await callOnElementSync(xn,jn,`function() {
510
+ const target = globalThis.__omowright?.retarget(this, 'follow-label') || this;
511
+ if (target.tagName?.toUpperCase() === 'INPUT') {
512
+ const type = String(target.type || '').toLowerCase();
513
+ if (type === 'checkbox' || type === 'radio') {
514
+ return !!target.checked;
515
+ }
516
+ }
517
+ const ariaChecked = target.getAttribute?.('aria-checked');
518
+ if (ariaChecked === 'true') return true;
519
+ if (ariaChecked === 'false') return false;
520
+ return null;
521
+ }`)!==Vn)throw Error(`Element checked state did not change to ${Vn}`)}catch(xn){if(xn instanceof RefStaleError)return;throw xn}}}function requireResolvedFrameSession(xn,jn){if(!jn.frameSessionId||!xn.frameManager.hasSession(jn.frameSessionId))throw Error(`Frame is stale or detached: CDP session ${jn.frameSessionId??`missing`} is unavailable`);return jn.frameSessionId}async function pressElement(xn,jn,Vn,qn){let Jn=requireResolvedFrameSession(xn,jn);await focusElement(xn,jn,true),await qn.press(Vn,{},Jn)}async function focusResolvedElement(xn,jn){await focusElement(xn,jn)}async function blurResolvedElement(xn,jn){await blurElement(xn,jn)}async function pressSequentiallyElement(xn,jn,Vn,qn,Jn){let Yn=requireResolvedFrameSession(xn,jn);await focusElement(xn,jn,true),await Jn.type(Vn,{delay:qn},Yn)}async function hoverElement(xn,jn){let Vn=await callOnElement(xn,jn,`function() {
522
+ return globalThis.__omowright.waitForReady(this, ['visible']);
523
+ }`);if(!Vn.ok)throw Error(Vn.error||`Element is not visible`);let qn=await getPointerDispatchTarget(xn,jn),{x:Jn,y:Yn}=qn.point;await xn.cdp.send(`Input.dispatchMouseEvent`,{type:`mouseMoved`,x:Jn,y:Yn,button:`none`,modifiers:defaultModifierState.toModifiersMask()},qn.sessionId)}async function tapElement(xn,jn){await clickElement(xn,jn)}async function scrollIntoViewElement(xn,jn){let Vn=await resolveActionSessionId(xn,jn);try{await xn.cdp.send(`DOM.scrollIntoViewIfNeeded`,{objectId:jn.objectId},Vn)}catch{await callOnElementSync(xn,jn,`function() {
524
+ if (this && this.scrollIntoView) {
525
+ this.scrollIntoView({ block: 'center', inline: 'center', behavior: 'instant' });
526
+ }
527
+ }`)}}async function evaluateOnElement(xn,jn,Vn,qn){let Jn=`function(...__args) { return (${Vn}).call(this, this, ...__args); }`;return qn===undefined?await callOnElementSync(xn,jn,Jn):await callOnElementSync(xn,jn,Jn,qn)}async function boundingBoxElement(xn,jn){try{let Vn=await callOnElementSync(xn,jn,`function() {
528
+ const rect = this.getBoundingClientRect();
529
+ if (rect.width <= 0 || rect.height <= 0) {
530
+ return null;
531
+ }
532
+ return {
533
+ x: rect.left,
534
+ y: rect.top,
535
+ width: rect.width,
536
+ height: rect.height,
537
+ };
538
+ }`);if(Vn)return Vn;let qn=await resolveActionSessionId(xn,jn),{model:Jn}=await xn.cdp.send(`DOM.getBoxModel`,{objectId:jn.objectId},qn),Yn=Jn.border;if(!Yn||Yn.length!==8)return null;let Zn=[Yn[0],Yn[2],Yn[4],Yn[6]],Qn=[Yn[1],Yn[3],Yn[5],Yn[7]],ei=Math.min(...Zn),ti=Math.max(...Zn),ni=Math.min(...Qn),ri=Math.max(...Qn);return{x:ei,y:ni,width:ti-ei,height:ri-ni}}catch{return null}}async function isCheckedElement(xn,jn){return await evaluateOnElement(xn,jn,`function() {
539
+ return !!this.checked;
540
+ }`)}async function inputValueElement(xn,jn){return await evaluateOnElement(xn,jn,`function() {
541
+ return this.value || '';
542
+ }`)}async function innerHTMLElement(xn,jn){return await evaluateOnElement(xn,jn,`function() {
543
+ return this.innerHTML;
544
+ }`)}async function innerTextElement(xn,jn){return await evaluateOnElement(xn,jn,`function() {
545
+ if (typeof this.innerText === 'string') {
546
+ return this.innerText;
547
+ }
548
+ return this.textContent || '';
549
+ }`)}async function textContentElement(xn,jn){return await evaluateOnElement(xn,jn,`function() {
550
+ return this.textContent ?? null;
551
+ }`)}async function getAttributeElement(xn,jn,Vn){return await evaluateOnElement(xn,jn,`function(_, attributeName) {
552
+ return this.getAttribute(attributeName);
553
+ }`,Vn)}async function isDisabledElement(xn,jn){return await evaluateOnElement(xn,jn,`function() {
554
+ const formControls = ['BUTTON', 'INPUT', 'SELECT', 'TEXTAREA', 'OPTION', 'OPTGROUP'];
555
+ if (formControls.includes(this.tagName)) {
556
+ if (this.disabled) return true;
557
+ const fieldset = this.closest?.('fieldset:disabled');
558
+ if (fieldset) {
559
+ const legend = fieldset.querySelector?.(':scope > legend');
560
+ if (!legend || !legend.contains(this)) return true;
561
+ }
562
+ }
563
+
564
+ let current = this;
565
+ while (current) {
566
+ if (current.getAttribute?.('aria-disabled') === 'true') return true;
567
+ current = current.parentElement;
568
+ }
569
+ return false;
570
+ }`)}async function isEnabledElement(xn,jn){return!await isDisabledElement(xn,jn)}async function isVisibleElement(xn,jn){return await evaluateOnElement(xn,jn,`function() {
571
+ if (!this.isConnected) return false;
572
+ const rect = this.getBoundingClientRect();
573
+ return (
574
+ this.checkVisibility?.({ checkOpacity: false, checkVisibilityCSS: true }) !== false &&
575
+ rect.width > 0 &&
576
+ rect.height > 0
577
+ );
578
+ }`)}async function isHiddenElement(xn,jn){return!await isVisibleElement(xn,jn)}async function isEditableElement(xn,jn){return await evaluateOnElement(xn,jn,`function() {
579
+ const target = globalThis.__omowright?.retarget(this, 'follow-label') || this;
580
+ return globalThis.__omowright?.checkEditable(target).ok === true;
581
+ }`)}async function dispatchEventElement(xn,jn,Vn,qn){await callOnElementSync(xn,jn,`function(eventType, init) {
582
+ const name = String(eventType || '').toLowerCase();
583
+ const constructors = {
584
+ click: 'MouseEvent',
585
+ dblclick: 'MouseEvent',
586
+ mousedown: 'MouseEvent',
587
+ mouseup: 'MouseEvent',
588
+ mousemove: 'MouseEvent',
589
+ mouseenter: 'MouseEvent',
590
+ mouseleave: 'MouseEvent',
591
+ mouseover: 'MouseEvent',
592
+ mouseout: 'MouseEvent',
593
+ contextmenu: 'MouseEvent',
594
+ auxclick: 'MouseEvent',
595
+ keydown: 'KeyboardEvent',
596
+ keyup: 'KeyboardEvent',
597
+ keypress: 'KeyboardEvent',
598
+ focus: 'FocusEvent',
599
+ blur: 'FocusEvent',
600
+ focusin: 'FocusEvent',
601
+ focusout: 'FocusEvent',
602
+ input: 'InputEvent',
603
+ beforeinput: 'InputEvent',
604
+ pointerdown: 'PointerEvent',
605
+ pointerup: 'PointerEvent',
606
+ pointermove: 'PointerEvent',
607
+ pointerenter: 'PointerEvent',
608
+ pointerleave: 'PointerEvent',
609
+ pointerover: 'PointerEvent',
610
+ pointerout: 'PointerEvent',
611
+ pointercancel: 'PointerEvent',
612
+ wheel: 'WheelEvent',
613
+ drag: 'DragEvent',
614
+ dragstart: 'DragEvent',
615
+ dragend: 'DragEvent',
616
+ dragenter: 'DragEvent',
617
+ dragexit: 'DragEvent',
618
+ dragleave: 'DragEvent',
619
+ dragover: 'DragEvent',
620
+ drop: 'DragEvent',
621
+ touchstart: 'TouchEvent',
622
+ touchmove: 'TouchEvent',
623
+ touchend: 'TouchEvent',
624
+ touchcancel: 'TouchEvent',
625
+ };
626
+ const constructorName = constructors[name] || 'Event';
627
+ const Constructor = globalThis[constructorName] || Event;
628
+ const event = new Constructor(eventType, init || undefined);
629
+ this.dispatchEvent(event);
630
+ }`,Vn,qn)}async function setInputFilesElement(xn,jn,Vn){let qn=await callOnElementHandle(xn,jn,`function() {
631
+ const target = globalThis.__omowright?.retarget(this, 'follow-label') || this;
632
+ if (target?.tagName?.toUpperCase() === 'INPUT' && String(target.type || '').toLowerCase() === 'file') {
633
+ return target;
634
+ }
635
+ const label = this.closest('label');
636
+ const nearby = label?.querySelector('input[type=file]')
637
+ || this.parentElement?.querySelector('input[type=file]')
638
+ || this.closest('[role=dialog], [role=region], section, form, main')?.querySelector('input[type=file]');
639
+ if (nearby) return nearby;
640
+ throw new Error('Element is not an <input type="file">');
641
+ }`);try{if(Vn.length===0||typeof Vn[0]==`string`){let jn=await resolveActionSessionId(xn,qn);await xn.cdp.send(`DOM.setFileInputFiles`,{objectId:qn.objectId,files:Vn},jn);return}await callOnElementSync(xn,qn,`function(payloads) {
642
+ const input = this;
643
+ const transfer = new DataTransfer();
644
+ for (const payload of payloads) {
645
+ const binary = atob(payload.base64);
646
+ const bytes = new Uint8Array(binary.length);
647
+ for (let index = 0; index < binary.length; index += 1) {
648
+ bytes[index] = binary.charCodeAt(index);
649
+ }
650
+ transfer.items.add(new File([bytes], payload.name, { type: payload.mimeType || '' }));
651
+ }
652
+ input.files = transfer.files;
653
+ input.dispatchEvent(new Event('input', { bubbles: true }));
654
+ input.dispatchEvent(new Event('change', { bubbles: true }));
655
+ }`,Vn)}finally{let jn=await resolveActionSessionId(xn,qn).catch(()=>null);jn&&await xn.cdp.send(`Runtime.releaseObject`,{objectId:qn.objectId},jn).catch(()=>{})}}async function dragToElement(xn,jn,Vn,qn={}){let Jn=qn.force?await getPointerDispatchTarget(xn,jn):await ensurePointerActionable(xn,jn),Yn=qn.force?await getPointerDispatchTarget(xn,Vn):await ensurePointerActionable(xn,Vn),Zn=Jn.sessionId===Yn.sessionId?Jn.sessionId:await xn.resolveSessionId(),Qn=Jn.point,ei=Yn.point,ti=qn.sourcePosition?{x:Qn.x+qn.sourcePosition.x,y:Qn.y+qn.sourcePosition.y}:Qn,ni=qn.targetPosition?{x:ei.x+qn.targetPosition.x,y:ei.y+qn.targetPosition.y}:ei;if(qn.trial)return;let ri=Math.max(qn.steps??1,1);await xn.cdp.send(`Input.dispatchMouseEvent`,{type:`mouseMoved`,x:ti.x,y:ti.y,button:`none`,buttons:0,modifiers:defaultModifierState.toModifiersMask()},Zn),await xn.cdp.send(`Input.dispatchMouseEvent`,{type:`mousePressed`,x:ti.x,y:ti.y,button:`left`,buttons:1,clickCount:1,modifiers:defaultModifierState.toModifiersMask()},Zn);for(let jn=1;jn<=ri;jn+=1){let Vn=jn/ri;await xn.cdp.send(`Input.dispatchMouseEvent`,{type:`mouseMoved`,x:ti.x+(ni.x-ti.x)*Vn,y:ti.y+(ni.y-ti.y)*Vn,button:`left`,buttons:1,modifiers:defaultModifierState.toModifiersMask()},Zn)}await xn.cdp.send(`Input.dispatchMouseEvent`,{type:`mouseReleased`,x:ni.x,y:ni.y,button:`left`,buttons:0,clickCount:1,modifiers:defaultModifierState.toModifiersMask()},Zn),jn.frameSessionId===Vn.frameSessionId&&(await callOnElementSync(xn,jn,`function() {
656
+ const dataTransfer = new DataTransfer();
657
+ globalThis.__omowrightDragDataTransfer = dataTransfer;
658
+ this.dispatchEvent(new DragEvent('dragstart', { bubbles: true, cancelable: true, dataTransfer }));
659
+ this.dispatchEvent(new DragEvent('drag', { bubbles: true, cancelable: true, dataTransfer }));
660
+ }`).catch(()=>{}),await callOnElementSync(xn,Vn,`function() {
661
+ const dataTransfer = globalThis.__omowrightDragDataTransfer;
662
+ if (!dataTransfer) {
663
+ return;
664
+ }
665
+ this.dispatchEvent(new DragEvent('dragenter', { bubbles: true, cancelable: true, dataTransfer }));
666
+ this.dispatchEvent(new DragEvent('dragover', { bubbles: true, cancelable: true, dataTransfer }));
667
+ this.dispatchEvent(new DragEvent('drop', { bubbles: true, cancelable: true, dataTransfer }));
668
+ }`).catch(()=>{}),await callOnElementSync(xn,jn,`function() {
669
+ const dataTransfer = globalThis.__omowrightDragDataTransfer;
670
+ if (!dataTransfer) {
671
+ return;
672
+ }
673
+ this.dispatchEvent(new DragEvent('dragend', { bubbles: true, cancelable: true, dataTransfer }));
674
+ delete globalThis.__omowrightDragDataTransfer;
675
+ }`).catch(()=>{}))}var defaultModifierState;var kSetValueInputTypes;var kTypeIntoInputTypes;var ACTIONABILITY_RETRY_DELAYS_MS;var init_actions=__esmMin(()=>{init_context(),init_utils$13(),init_errors$3(),init_types$4(),init_keyboard(),init_wait(),defaultModifierState=new ModifierState,kSetValueInputTypes=[`color`,`date`,`datetime-local`,`month`,`range`,`time`,`week`],kTypeIntoInputTypes=[``,`email`,`number`,`password`,`search`,`tel`,`text`,`url`],ACTIONABILITY_RETRY_DELAYS_MS=[0,100,200]});var frame_exports=__exportAll({OmOFrame:()=>OmOFrame,FrameLocator:()=>FrameLocator});var OmOFrame;var FrameLocator;var init_frame=__esmMin(()=>{init_locator(),OmOFrame=class xn{#e;frameId;constructor(xn,jn){this.#e=xn,this.frameId=jn}async resolveFrameId(){return this.frameId}label(){let xn=this.#t();return`frame ${xn.name||xn.url||xn.frameId}`}locator(xn,jn={}){return new Locator(this.#e,xn,this).filter(jn)}getByRole(xn,jn={}){return this.locator(Locator.createRoleSelector(xn,jn))}getByLabel(xn,jn={}){if(xn instanceof RegExp)return this.locator(`internal:label=/${xn.source}/${xn.flags}`);let Vn=JSON.stringify(xn);return this.locator(jn.exact?`internal:label:exact:${Vn}`:`internal:label:${Vn}`)}getByText(xn,jn={}){if(xn instanceof RegExp)return this.locator(`text:/${xn.source}/${xn.flags}`);let Vn=JSON.stringify(xn);return this.locator(jn.exact?`text:exact:${Vn}`:`text:${Vn}`)}frameLocator(xn){return new FrameLocator(this.#e,this,xn)}async evaluate(xn,jn){return await this.#e.evaluateInFrame(this.frameId,xn,jn)}async $$eval(xn,jn,Vn){return await this.locator(xn).evaluateAll(jn,Vn)}url(){return this.#t().url}name(){return this.#t().name}parentFrame(){let jn=this.#t().parentFrameId;return jn?new xn(this.#e,jn):null}#t(){let xn=this.#e.frameManager.getFrame(this.frameId);if(!xn)throw Error(`Frame is no longer available: ${this.frameId}`);return xn}},FrameLocator=class xn{#e;#t;#n;constructor(xn,jn,Vn){this.#e=xn,this.#t=jn,this.#n=Vn}async resolveFrameId(){let xn=await this.#t.resolveFrameId(),jn=await new OmOFrame(this.#e,xn).locator(this.#n).elementHandle().then((xn)=>xn.contentFrame());if(!jn)throw Error(`Frame locator "${this.#n}" did not resolve to an iframe`);return jn.frameId}label(){return`frameLocator(${this.#n})`}locator(xn,jn={}){return new Locator(this.#e,xn,this).filter(jn)}getByRole(xn,jn={}){return this.locator(Locator.createRoleSelector(xn,jn))}getByLabel(xn,jn={}){if(xn instanceof RegExp)return this.locator(`internal:label=/${xn.source}/${xn.flags}`);let Vn=JSON.stringify(xn);return this.locator(jn.exact?`internal:label:exact:${Vn}`:`internal:label:${Vn}`)}getByText(xn,jn={}){if(xn instanceof RegExp)return this.locator(`text:/${xn.source}/${xn.flags}`);let Vn=JSON.stringify(xn);return this.locator(jn.exact?`text:exact:${Vn}`:`text:${Vn}`)}frameLocator(jn){return new xn(this.#e,this,jn)}owner(){return new Locator(this.#e,this.#n,this.#t)}first(){return this.nth(0)}nth(jn){return new xn(this.#e,this.#t,`${this.#n}:nth(${jn})`)}last(){return new xn(this.#e,this.#t,`${this.#n}:nth(last)`)}}});function parseBackendNodeSelector(xn){if(!xn.startsWith(BACKEND_NODE_SELECTOR_PREFIX))return null;let jn=xn.slice(25),Vn=jn.indexOf(`:`);if(Vn<=0)throw Error(`Invalid backend node selector: ${xn}`);let qn=jn.slice(0,Vn),Jn=Number(jn.slice(Vn+1));if(!Number.isInteger(Jn)||Jn<=0)throw Error(`Invalid backend node selector: ${xn}`);return{frameId:qn,backendNodeId:Jn}}function createBackendNodeLocatorSelector(xn,jn){return`${BACKEND_NODE_SELECTOR_PREFIX}${xn}:${jn}`}function isLocatorResolutionMiss(xn){return xn instanceof RefStaleError?true:xn instanceof Error?xn.message.startsWith(`Selector "`)||xn.message.startsWith(`Role selector not found: `):false}var REF_PATTERN;var REF_SELECTOR_ALIAS_PATTERN;var BACKEND_NODE_SELECTOR_PREFIX;var DEFAULT_SCREENSHOT_MARGIN;var DEFAULT_LOCATOR_WAIT_TIMEOUT_MS;var LOCATOR_WAIT_POLL_INTERVALS;var LOCATOR_WAIT_STATES;var NTH_SELECTOR_PATTERN;var isRef2;var isRoleSelector;var isTextSelector;var Locator;var ElementHandle;var init_locator=__esmMin(()=>{init_utils$13(),init_errors$3(),init_types$4(),init_actions(),REF_PATTERN=/^(f\d+)?e\d+$/,REF_SELECTOR_ALIAS_PATTERN=/^\[ref=((?:f\d+)?e\d+)\]$/,BACKEND_NODE_SELECTOR_PREFIX=`internal:backend-node-id:`,DEFAULT_SCREENSHOT_MARGIN=8,DEFAULT_LOCATOR_WAIT_TIMEOUT_MS=3000,LOCATOR_WAIT_POLL_INTERVALS=[0,20,50,100,100,500],LOCATOR_WAIT_STATES=[`attached`,`detached`,`visible`,`hidden`],NTH_SELECTOR_PATTERN=/:nth\((\d+|last)\)$/,isRef2=(xn)=>/^(f\d+)?e\d+$/.test(xn),isRoleSelector=(xn)=>xn.startsWith(`role:`),isTextSelector=(xn)=>xn.startsWith(`text:`),Locator=class xn{#e;#t;#n;constructor(xn,jn,Vn){if(typeof jn!=`string`||jn.trim().length===0)throw Error(`Locator selector must be a non-empty string. Take a fresh snapshot and verify the ref exists.`);this.#e=xn,this.#n=Vn;let qn=jn.trim();this.#t=qn.replace(REF_SELECTOR_ALIAS_PATTERN,`$1`)}static createRoleSelector(xn,jn={}){let Vn=`role:${xn}`,qn=(xn,jn)=>{Vn+=`[${xn}=${jn}]`};if(jn.checked!==undefined&&qn(`checked`,String(jn.checked)),jn.disabled!==undefined&&qn(`disabled`,String(jn.disabled)),jn.expanded!==undefined&&qn(`expanded`,String(jn.expanded)),jn.includeHidden!==undefined&&qn(`include-hidden`,String(jn.includeHidden)),jn.level!==undefined&&qn(`level`,String(jn.level)),jn.pressed!==undefined&&qn(`pressed`,String(jn.pressed)),jn.selected!==undefined&&qn(`selected`,String(jn.selected)),jn.name!==undefined){let xn=jn.name;if(Object.prototype.toString.call(xn)===`[object RegExp]`){let jn=xn;qn(`name-regex`,encodeURIComponent(jn.source)),jn.flags&&qn(`name-regex-flags`,encodeURIComponent(jn.flags))}else qn(jn.exact?`name`:`name*`,encodeURIComponent(String(xn)))}return Vn}async#r(){let xn=parseBackendNodeSelector(this.#t);return xn?await this.#o(xn):isRef2(this.#t)?await this.#a(this.#t):isRoleSelector(this.#t)?await this.#l(this.#t):await this.#c(this.#t)}async#i(xn){try{let jn=await this.#r();if(xn===`attached`)return true;if(xn===`detached`)return false;let Vn=await isVisibleElement(this.#e,jn);return xn===`visible`?Vn:!Vn}catch(jn){if(!isLocatorResolutionMiss(jn))throw jn;return xn===`detached`||xn===`hidden`}}async click(xn){let jn=await this.#r();await clickElement(this.#e,jn,xn,this.#e.modifierState)}async fill(xn){let jn=await this.#r();await fillElement(this.#e,jn,xn)}async selectOption(xn){let jn=await this.#r();return await selectOptionElement(this.#e,jn,xn)}async check(xn){let jn=await this.#r();await checkElement(this.#e,jn,xn?.checked)}async scrollIntoViewIfNeeded(){let xn=await this.#r();await scrollIntoViewElement(this.#e,xn)}async press(xn){let jn=await this.#r();await pressElement(this.#e,jn,xn,this.#e.keyboard)}async pressSequentially(xn,jn={}){let Vn=await this.#r();await pressSequentiallyElement(this.#e,Vn,xn,jn.delay,this.#e.keyboard)}async hover(){let xn=await this.#r();await hoverElement(this.#e,xn)}async dblclick(xn){let jn=await this.#r();await clickElement(this.#e,jn,{...xn,dblClick:true},this.#e.modifierState)}async focus(){let xn=await this.#r();await focusResolvedElement(this.#e,xn)}async blur(){let xn=await this.#r();await blurResolvedElement(this.#e,xn)}async tap(){let xn=await this.#r();await tapElement(this.#e,xn)}async clear(){await this.fill(``)}async type(xn,jn={}){await this.pressSequentially(xn,jn)}async uncheck(){let xn=await this.#r();await checkElement(this.#e,xn,false)}async setChecked(xn){if(xn){await this.check();return}await this.uncheck()}async setInputFiles(xn){let jn=await this.#r();if(xn===null){await setInputFilesElement(this.#e,jn,[]);return}if(typeof xn==`string`){let Vn=await this.#e.browser.ensurePath(xn,`read`,`locator.setInputFiles`);await setInputFilesElement(this.#e,jn,[Vn]);return}if(xn.length===0){await setInputFilesElement(this.#e,jn,[]);return}if(typeof xn[0]==`string`){let Vn=await Promise.all(xn.map((xn)=>this.#e.browser.ensurePath(xn,`read`,`locator.setInputFiles`)));await setInputFilesElement(this.#e,jn,Vn);return}await setInputFilesElement(this.#e,jn,xn.map((xn)=>({name:xn.name,mimeType:xn.mimeType,base64:Buffer.from(xn.buffer).toString(`base64`)})))}async dragTo(xn,jn={}){let Vn=await this.#r(),qn=await xn.#r();await dragToElement(this.#e,Vn,qn,jn)}async evaluate(xn,jn){let Vn=await this.#r(),qn=typeof xn==`function`?xn.toString():xn;return await evaluateOnElement(this.#e,Vn,qn,jn)}async evaluateAll(xn,jn){if(isRoleSelector(this.#t))throw Error(`locator.evaluateAll() does not support role selectors yet; use a CSS selector.`);let Vn=isRef2(this.#t)||parseBackendNodeSelector(this.#t)?[this]:await this.all(),qn=await Promise.all(Vn.map((xn)=>xn.#r())),Jn=qn[0]??await this.#s();if(qn.some((xn)=>xn.contextId!==Jn.contextId))throw Error(`locator.evaluateAll() cannot pass elements from multiple frames to one page function.`);let Yn=typeof xn==`function`?xn.toString():xn,Zn=[{value:jn},...qn.map((xn)=>({objectId:xn.objectId}))],{result:Qn,exceptionDetails:ei}=await this.#e.cdp.send(`Runtime.callFunctionOn`,{functionDeclaration:`async function(arg, ...elements) {
676
+ var __name = (target) => target;
677
+ const pageFunction = (${Yn});
678
+ if (typeof pageFunction !== 'function') {
679
+ throw new Error('$$eval pageFunction must evaluate to a function');
680
+ }
681
+ return await pageFunction(elements, arg);
682
+ }`,arguments:Zn,executionContextId:Jn.contextId,returnByValue:true,awaitPromise:true,userGesture:false},await this.#e.resolveSessionId(Jn.frameSessionId));if(ei)throw Error(formatRuntimeException(ei,`$$eval failed`));return Qn.value}async boundingBox(){let xn=await this.#r();return await boundingBoxElement(this.#e,xn)}async screenshot(xn={}){let jn=xn.margin??DEFAULT_SCREENSHOT_MARGIN;if(!Number.isFinite(jn)||jn<0)throw Error(`locator.screenshot: margin must be a non-negative number`);let Vn=await this.#r(),qn=await evaluateOnElement(this.#e,Vn,`function(margin) {
683
+ const rect = this.getBoundingClientRect();
684
+ if (rect.width <= 0 || rect.height <= 0) {
685
+ return null;
686
+ }
687
+
688
+ const left = Math.max(0, rect.left - margin);
689
+ const top = Math.max(0, rect.top - margin);
690
+ const right = Math.min(window.innerWidth, rect.right + margin);
691
+ const bottom = Math.min(window.innerHeight, rect.bottom + margin);
692
+ const width = right - left;
693
+ const height = bottom - top;
694
+ if (width <= 0 || height <= 0) {
695
+ return null;
696
+ }
697
+
698
+ return {
699
+ x: left,
700
+ y: top,
701
+ width,
702
+ height,
703
+ };
704
+ }`,jn);if(!qn)throw Error(`locator.screenshot: element is not visible in the viewport`);let{path:Jn,quality:Yn,timeout:Zn,type:Qn=`webp`}=xn;return await this.#e.screenshot({path:Jn,quality:Yn,timeout:Zn,type:Qn,clip:qn})}async isChecked(){let xn=await this.#r();return await isCheckedElement(this.#e,xn)}async inputValue(){let xn=await this.#r();return await inputValueElement(this.#e,xn)}async innerHTML(){let xn=await this.#r();return await innerHTMLElement(this.#e,xn)}async innerText(){let xn=await this.#r();return await innerTextElement(this.#e,xn)}async textContent(){let xn=await this.#r();return await textContentElement(this.#e,xn)}async elementHandle(){return new ElementHandle(this.#e,await this.#r())}async count(){if(isRef2(this.#t))try{return await this.#a(this.#t),1}catch(xn){if(xn instanceof RefStaleError)return 0;throw xn}if(isRoleSelector(this.#t)){let xn=NTH_SELECTOR_PATTERN.test(this.#t),{nth:jn,...Vn}=this.#p(this.#t),qn=await this.#d(),Jn=0;for(let{frameId:xn}of qn){let jn=this.#e.frameManager.getFrame(xn);jn?.isolatedContextId&&(Jn+=await this.#m(await this.#e.resolveSessionId(jn.sessionId),jn.isolatedContextId,Vn))}return xn?+(Jn>0&&(jn===`last`||jn<Jn)):Jn}let xn=NTH_SELECTOR_PATTERN.test(this.#t),jn=this.#f(this.#t),Vn=await this.#u();return await this.#e.evaluateInFrame(Vn,`function(query) {
705
+ const normalizeText = (value) => String(value ?? '').replace(/\\s+/g, ' ').trim();
706
+ const parseTextMatcher = (raw) => {
707
+ if (!raw) return null;
708
+ if (raw.startsWith('/') && raw.lastIndexOf('/') > 0) {
709
+ const lastSlash = raw.lastIndexOf('/');
710
+ return new RegExp(raw.slice(1, lastSlash), raw.slice(lastSlash + 1));
711
+ }
712
+ const parseLiteral = (value) => {
713
+ try {
714
+ return JSON.parse(value);
715
+ } catch {
716
+ return value;
717
+ }
718
+ };
719
+ if (raw.startsWith('exact:')) {
720
+ return { exact: parseLiteral(raw.slice(6)) };
721
+ }
722
+ return { contains: parseLiteral(raw) };
723
+ };
724
+ const matchesText = (node, matcher) => {
725
+ const text = normalizeText(node.textContent);
726
+ if (matcher instanceof RegExp) return matcher.test(text);
727
+ if ('exact' in matcher) return text === matcher.exact;
728
+ return text.includes(matcher.contains);
729
+ };
730
+ const splitSteps = (value) => value.split(/\\s*>>\\s*/).map((step) => step.trim()).filter(Boolean);
731
+ const parseStep = (rawStep) => {
732
+ const nthMatch = rawStep.match(/^(.*):nth\\((\\d+|last)\\)$/s);
733
+ const rawBase = nthMatch ? (nthMatch[1] || '').trim() || '*' : rawStep;
734
+ const nth = nthMatch ? nthMatch[2] === 'last' ? 'last' : Number.parseInt(nthMatch[2], 10) : null;
735
+ const hasTextMatch = rawBase.match(/^(.*):has-text\\((.*)\\)$/s);
736
+ const base = hasTextMatch ? (hasTextMatch[1] || '').trim() || '*' : rawBase;
737
+ const hasText = hasTextMatch ? parseTextMatcher((hasTextMatch[2] || '').trim()) : null;
738
+ if (base.startsWith('text:')) {
739
+ return {
740
+ kind: 'text',
741
+ matcher: parseTextMatcher(base.slice(5)),
742
+ hasText,
743
+ nth,
744
+ };
745
+ }
746
+ if (base.startsWith('internal:label:')) {
747
+ return {
748
+ kind: 'label',
749
+ matcher: parseTextMatcher(base.slice(15)),
750
+ hasText,
751
+ nth,
752
+ };
753
+ }
754
+ return {
755
+ kind: 'css',
756
+ selector: base,
757
+ hasText,
758
+ nth,
759
+ };
760
+ };
761
+ const descendants = (root) => Array.from((root instanceof Document ? root : root).querySelectorAll('*'));
762
+ const textMatches = (root, matcher) => {
763
+ const matches = descendants(root).filter((node) => matcher && matchesText(node, matcher));
764
+ return matches.filter((node) => !Array.from(node.children).some((child) => matchesText(child, matcher)));
765
+ };
766
+ // Some sites duplicate the same visible label onto hidden or zero-sized inputs.
767
+ // Prefer the actionable associated control so getByLabel() doesn't latch onto
768
+ // an inert duplicate and fail later in the actionability pipeline.
769
+ const labelMatches = (root, matcher) => {
770
+ const labels = Array.from((root instanceof Document ? root : root).querySelectorAll('label'))
771
+ .filter((label) => matcher && matchesText(label, matcher));
772
+ const controlSelector = 'input:not([type="hidden"]), textarea, select';
773
+ const seen = new Set();
774
+ const controls = [];
775
+ for (const label of labels) {
776
+ const explicitControl = label.control || (label.htmlFor ? document.getElementById(label.htmlFor) : null);
777
+ // Virginia DMV's Bootstrap form uses a label with no htmlFor, followed
778
+ // immediately by its input in the same row.
779
+ const siblingControl = label.nextElementSibling?.matches?.(controlSelector) ? label.nextElementSibling : null;
780
+ const control = explicitControl || siblingControl;
781
+ if (!control || seen.has(control)) continue;
782
+ seen.add(control);
783
+ controls.push(control);
784
+ }
785
+ controls.sort((a, b) => {
786
+ const rank = (node) => {
787
+ let score = 0;
788
+ if (node.isConnected) score += 100;
789
+ const style = node.ownerDocument?.defaultView?.getComputedStyle?.(node);
790
+ if (style && style.display !== 'none' && style.visibility !== 'hidden') {
791
+ score += 10;
792
+ }
793
+ const rect = typeof node.getBoundingClientRect === 'function' ? node.getBoundingClientRect() : null;
794
+ if (rect && rect.width > 0 && rect.height > 0) {
795
+ score += 1;
796
+ }
797
+ return score;
798
+ };
799
+ return rank(b) - rank(a);
800
+ });
801
+ return controls;
802
+ };
803
+ const queryAll = (value) => {
804
+ const steps = splitSteps(value);
805
+ let roots = [document];
806
+ for (const rawStep of steps) {
807
+ const step = parseStep(rawStep);
808
+ const next = [];
809
+ const seen = new Set();
810
+ for (const root of roots) {
811
+ let matches = step.kind === 'text'
812
+ ? textMatches(root, step.matcher)
813
+ : step.kind === 'label'
814
+ ? labelMatches(root, step.matcher)
815
+ : Array.from((root instanceof Document ? root : root).querySelectorAll(step.selector));
816
+ if (step.hasText) {
817
+ matches = matches.filter((node) => matchesText(node, step.hasText));
818
+ }
819
+ if (step.nth !== null) {
820
+ const index = step.nth === 'last' ? matches.length - 1 : step.nth;
821
+ matches = matches[index] ? [matches[index]] : [];
822
+ }
823
+ for (const node of matches) {
824
+ if (seen.has(node)) continue;
825
+ seen.add(node);
826
+ next.push(node);
827
+ }
828
+ }
829
+ roots = next;
830
+ }
831
+ return roots;
832
+ };
833
+ const nodes = queryAll(query.selector);
834
+ const index = query.nth === 'last' ? nodes.length - 1 : query.nth;
835
+ return query.hasNth ? (nodes[index] ? 1 : 0) : nodes.length;
836
+ }`,{selector:jn.selector,nth:jn.nth,hasNth:xn})}async getAttribute(xn){let jn=await this.#r();return await getAttributeElement(this.#e,jn,xn)}async isDisabled(){let xn=await this.#r();return await isDisabledElement(this.#e,xn)}async isEditable(){let xn=await this.#r();return await isEditableElement(this.#e,xn)}async isEnabled(){let xn=await this.#r();return await isEnabledElement(this.#e,xn)}async isHidden(){let xn=await this.#r();return await isHiddenElement(this.#e,xn)}async isVisible(){let xn=await this.#r();return await isVisibleElement(this.#e,xn)}async dispatchEvent(xn,jn){let Vn=await this.#r();await dispatchEventElement(this.#e,Vn,xn,jn)}async waitFor(xn={}){let jn=xn.state??`visible`;if(!LOCATOR_WAIT_STATES.includes(jn))throw Error(`locator.waitFor: invalid state "${jn}"`);let Vn=xn.timeout??DEFAULT_LOCATOR_WAIT_TIMEOUT_MS;if(!Number.isFinite(Vn)||Vn<0)throw Error(`locator.waitFor: timeout must be a non-negative number`);let qn=Date.now(),Jn=0;for(;;){if(await this.#i(jn))return;if(Date.now()-qn>=Vn)throw Error(`locator.waitFor: timed out after ${Vn}ms waiting for ${this} to be ${jn}`);await sleep$12(LOCATOR_WAIT_POLL_INTERVALS[Math.min(Jn++,LOCATOR_WAIT_POLL_INTERVALS.length-1)])}}first(){return new xn(this.#e,`${this.#t}:nth(0)`,this.#n)}nth(jn){return new xn(this.#e,`${this.#t}:nth(${jn})`,this.#n)}last(){return isRef2(this.#t)||parseBackendNodeSelector(this.#t)?new xn(this.#e,this.#t,this.#n):new xn(this.#e,`${this.#t}:nth(last)`,this.#n)}locator(jn,Vn={}){return new xn(this.#e,`${this.#t} >> ${jn}`,this.#n).filter(Vn)}filter(jn){let Vn=this.#t;if(jn.hasText!==undefined){let xn=Object.prototype.toString.call(jn.hasText)===`[object RegExp]`?`/${jn.hasText.source}/${jn.hasText.flags}`:JSON.stringify(jn.hasText);Vn+=`:has-text(${xn})`}return new xn(this.#e,Vn,this.#n)}async all(){if(isRef2(this.#t)||isRoleSelector(this.#t)||isTextSelector(this.#t)||parseBackendNodeSelector(this.#t))return[this];let xn=await this.#u(),jn=await this.#e.evaluateInFrame(xn,`function(selector) {
837
+ const normalizeText = (value) => String(value ?? '').replace(/\\s+/g, ' ').trim();
838
+ const parseTextMatcher = (raw) => {
839
+ if (!raw) return null;
840
+ if (raw.startsWith('/') && raw.lastIndexOf('/') > 0) {
841
+ const lastSlash = raw.lastIndexOf('/');
842
+ return new RegExp(raw.slice(1, lastSlash), raw.slice(lastSlash + 1));
843
+ }
844
+ const parseLiteral = (value) => {
845
+ try {
846
+ return JSON.parse(value);
847
+ } catch {
848
+ return value;
849
+ }
850
+ };
851
+ if (raw.startsWith('exact:')) {
852
+ return { exact: parseLiteral(raw.slice(6)) };
853
+ }
854
+ return { contains: parseLiteral(raw) };
855
+ };
856
+ const matchesText = (node, matcher) => {
857
+ const text = normalizeText(node.textContent);
858
+ if (matcher instanceof RegExp) return matcher.test(text);
859
+ if ('exact' in matcher) return text === matcher.exact;
860
+ return text.includes(matcher.contains);
861
+ };
862
+ const splitSteps = (value) => value.split(/\\s*>>\\s*/).map((step) => step.trim()).filter(Boolean);
863
+ const parseStep = (rawStep) => {
864
+ const nthMatch = rawStep.match(/^(.*):nth\\((\\d+|last)\\)$/s);
865
+ const rawBase = nthMatch ? (nthMatch[1] || '').trim() || '*' : rawStep;
866
+ const nth = nthMatch ? nthMatch[2] === 'last' ? 'last' : Number.parseInt(nthMatch[2], 10) : null;
867
+ const hasTextMatch = rawBase.match(/^(.*):has-text\\((.*)\\)$/s);
868
+ const base = hasTextMatch ? (hasTextMatch[1] || '').trim() || '*' : rawBase;
869
+ const hasText = hasTextMatch ? parseTextMatcher((hasTextMatch[2] || '').trim()) : null;
870
+ if (base.startsWith('text:')) {
871
+ return {
872
+ kind: 'text',
873
+ matcher: parseTextMatcher(base.slice(5)),
874
+ hasText,
875
+ nth,
876
+ };
877
+ }
878
+ if (base.startsWith('internal:label:')) {
879
+ return {
880
+ kind: 'label',
881
+ matcher: parseTextMatcher(base.slice(15)),
882
+ hasText,
883
+ nth,
884
+ };
885
+ }
886
+ return {
887
+ kind: 'css',
888
+ selector: base,
889
+ hasText,
890
+ nth,
891
+ };
892
+ };
893
+ const descendants = (root) => Array.from((root instanceof Document ? root : root).querySelectorAll('*'));
894
+ const textMatches = (root, matcher) => {
895
+ const matches = descendants(root).filter((node) => matcher && matchesText(node, matcher));
896
+ return matches.filter((node) => !Array.from(node.children).some((child) => matchesText(child, matcher)));
897
+ };
898
+ // Keep label-based locators resilient when one label name points at both
899
+ // hidden template inputs and the visible live control.
900
+ const labelMatches = (root, matcher) => {
901
+ const labels = Array.from((root instanceof Document ? root : root).querySelectorAll('label'))
902
+ .filter((label) => matcher && matchesText(label, matcher));
903
+ const controlSelector = 'input:not([type="hidden"]), textarea, select';
904
+ const seen = new Set();
905
+ const controls = [];
906
+ for (const label of labels) {
907
+ const explicitControl = label.control || (label.htmlFor ? document.getElementById(label.htmlFor) : null);
908
+ // Virginia DMV's Bootstrap form uses a label with no htmlFor, followed
909
+ // immediately by its input in the same row.
910
+ const siblingControl = label.nextElementSibling?.matches?.(controlSelector) ? label.nextElementSibling : null;
911
+ const control = explicitControl || siblingControl;
912
+ if (!control || seen.has(control)) continue;
913
+ seen.add(control);
914
+ controls.push(control);
915
+ }
916
+ controls.sort((a, b) => {
917
+ const rank = (node) => {
918
+ let score = 0;
919
+ if (node.isConnected) score += 100;
920
+ const style = node.ownerDocument?.defaultView?.getComputedStyle?.(node);
921
+ if (style && style.display !== 'none' && style.visibility !== 'hidden') {
922
+ score += 10;
923
+ }
924
+ const rect = typeof node.getBoundingClientRect === 'function' ? node.getBoundingClientRect() : null;
925
+ if (rect && rect.width > 0 && rect.height > 0) {
926
+ score += 1;
927
+ }
928
+ return score;
929
+ };
930
+ return rank(b) - rank(a);
931
+ });
932
+ return controls;
933
+ };
934
+ const queryAll = (value) => {
935
+ const steps = splitSteps(value);
936
+ let roots = [document];
937
+ for (const rawStep of steps) {
938
+ const step = parseStep(rawStep);
939
+ const next = [];
940
+ const seen = new Set();
941
+ for (const root of roots) {
942
+ let matches = step.kind === 'text'
943
+ ? textMatches(root, step.matcher)
944
+ : step.kind === 'label'
945
+ ? labelMatches(root, step.matcher)
946
+ : Array.from((root instanceof Document ? root : root).querySelectorAll(step.selector));
947
+ if (step.hasText) {
948
+ matches = matches.filter((node) => matchesText(node, step.hasText));
949
+ }
950
+ if (step.nth !== null) {
951
+ const index = step.nth === 'last' ? matches.length - 1 : step.nth;
952
+ matches = matches[index] ? [matches[index]] : [];
953
+ }
954
+ for (const node of matches) {
955
+ if (seen.has(node)) continue;
956
+ seen.add(node);
957
+ next.push(node);
958
+ }
959
+ }
960
+ roots = next;
961
+ }
962
+ return roots;
963
+ };
964
+ return queryAll(selector).length;
965
+ }`,this.#t);return Array.from({length:jn},(xn,jn)=>this.nth(jn))}toString(){return`Locator@${this.#t}`}async#a(xn){if(this.#n)throw Error(`Snapshot refs already include frame identity; use page.locator(ref) instead of frame.locator(ref).`);let jn=xn.match(REF_PATTERN);if(!jn)throw Error(`Invalid ref format: ${xn}`);let Vn=jn[1]??``,qn=this.#e.frameManager.resolveFrameIdForSnapshotPrefix(Vn);if(!qn)throw new RefStaleError(xn);let Jn=Vn?3:1;for(let jn=0;jn<Jn;jn++){jn>0&&await new Promise((xn)=>setTimeout(xn,50*jn));let Vn=this.#e.frameManager.getFrame(qn);if(!Vn||!Vn.isolatedContextId&&(await this.#e.frameManager.ensureInjected(qn),!Vn.isolatedContextId))throw new RefStaleError(xn);try{let{result:jn}=await this.#e.cdp.send(`Runtime.callFunctionOn`,{functionDeclaration:`function(refId) { return globalThis.__omowright?.deref(refId) ?? null; }`,arguments:[{value:xn}],executionContextId:Vn.isolatedContextId,returnByValue:false,awaitPromise:false,userGesture:false},await this.#e.resolveSessionId(Vn.sessionId));if(jn.objectId)return{objectId:jn.objectId,frameId:qn,frameSessionId:Vn.sessionId,contextId:Vn.isolatedContextId}}catch{this.#e.frameManager.invalidateContext(qn)}}throw new RefStaleError(xn)}async#o(xn){let jn=this.#e.frameManager.getFrame(xn.frameId),Vn=await this.#e.frameManager.ensureInjected(xn.frameId);if(!jn||!Vn)throw Error(`File chooser element is no longer available`);let qn=await this.#e.resolveSessionId(jn.sessionId),{object:Jn}=await this.#e.cdp.send(`DOM.resolveNode`,{backendNodeId:xn.backendNodeId,executionContextId:Vn},qn);if(!Jn.objectId)throw Error(`File chooser element is no longer available`);return{objectId:Jn.objectId,frameId:xn.frameId,frameSessionId:jn.sessionId,contextId:Vn}}async#s(){let xn=await this.#u(),jn=this.#e.frameManager.getFrame(xn),Vn=await this.#e.frameManager.ensureInjected(xn);if(!jn||!Vn)throw Error(`${this.#n?.label()??`Main frame`} isolated world is not ready`);return{contextId:Vn,frameSessionId:jn.sessionId}}async#c(xn){let jn=await this.#u(),Vn=this.#e.frameManager.getFrame(jn),qn=await this.#e.frameManager.ensureInjected(jn);if(!Vn||!qn)throw Error(`${this.#n?.label()??`Main frame`} isolated world is not ready`);let Jn=this.#f(xn),{result:Yn}=await this.#e.cdp.send(`Runtime.callFunctionOn`,{functionDeclaration:`function(query) {
966
+ const normalizeText = (value) => String(value ?? '').replace(/\\s+/g, ' ').trim();
967
+ const parseTextMatcher = (raw) => {
968
+ if (!raw) return null;
969
+ if (raw.startsWith('/') && raw.lastIndexOf('/') > 0) {
970
+ const lastSlash = raw.lastIndexOf('/');
971
+ return new RegExp(raw.slice(1, lastSlash), raw.slice(lastSlash + 1));
972
+ }
973
+ const parseLiteral = (value) => {
974
+ try {
975
+ return JSON.parse(value);
976
+ } catch {
977
+ return value;
978
+ }
979
+ };
980
+ if (raw.startsWith('exact:')) {
981
+ return { exact: parseLiteral(raw.slice(6)) };
982
+ }
983
+ return { contains: parseLiteral(raw) };
984
+ };
985
+ const matchesText = (node, matcher, useInnerText = false) => {
986
+ const text = normalizeText(useInnerText ? node.innerText : node.textContent);
987
+ if (matcher instanceof RegExp) return matcher.test(text);
988
+ if ('exact' in matcher) return text === matcher.exact;
989
+ return text.includes(matcher.contains);
990
+ };
991
+ const splitSteps = (selector) => selector.split(/\\s*>>\\s*/).map((step) => step.trim()).filter(Boolean);
992
+ const parseStep = (rawStep) => {
993
+ const nthMatch = rawStep.match(/^(.*):nth\\((\\d+|last)\\)$/s);
994
+ const rawBase = nthMatch ? (nthMatch[1] || '').trim() || '*' : rawStep;
995
+ const nth = nthMatch ? nthMatch[2] === 'last' ? 'last' : Number.parseInt(nthMatch[2], 10) : null;
996
+ const hasTextMatch = rawBase.match(/^(.*):has-text\\((.*)\\)$/s);
997
+ const base = hasTextMatch ? (hasTextMatch[1] || '').trim() || '*' : rawBase;
998
+ const hasText = hasTextMatch ? parseTextMatcher((hasTextMatch[2] || '').trim()) : null;
999
+ if (base.startsWith('text:')) {
1000
+ return {
1001
+ kind: 'text',
1002
+ matcher: parseTextMatcher(base.slice(5)),
1003
+ hasText,
1004
+ nth,
1005
+ };
1006
+ }
1007
+ if (base.startsWith('internal:label:')) {
1008
+ return {
1009
+ kind: 'label',
1010
+ matcher: parseTextMatcher(base.slice(15)),
1011
+ hasText,
1012
+ nth,
1013
+ };
1014
+ }
1015
+ return {
1016
+ kind: 'css',
1017
+ selector: base,
1018
+ hasText,
1019
+ nth,
1020
+ };
1021
+ };
1022
+ const descendants = (root) => Array.from((root instanceof Document ? root : root).querySelectorAll('*'));
1023
+ const textMatches = (root, matcher) => {
1024
+ const matches = descendants(root).filter((node) => matcher && matchesText(node, matcher));
1025
+ // Text selectors should resolve to the innermost visible text element,
1026
+ // not broad ancestors like <body>; click actionability depends on that.
1027
+ return matches.filter((node) => !Array.from(node.children).some((child) => matchesText(child, matcher)));
1028
+ };
1029
+ // Keep label selectors aligned with what a human can actually click when
1030
+ // pages duplicate label text across hidden template controls.
1031
+ const labelMatches = (root, matcher) => {
1032
+ const labels = Array.from((root instanceof Document ? root : root).querySelectorAll('label'))
1033
+ .filter((label) => matcher && matchesText(label, matcher));
1034
+ const controlSelector = 'input:not([type="hidden"]), textarea, select';
1035
+ const seen = new Set();
1036
+ const controls = [];
1037
+ for (const label of labels) {
1038
+ const explicitControl = label.control || (label.htmlFor ? document.getElementById(label.htmlFor) : null);
1039
+ // Virginia DMV's Bootstrap form uses a label with no htmlFor, followed
1040
+ // immediately by its input in the same row.
1041
+ const siblingControl = label.nextElementSibling?.matches?.(controlSelector) ? label.nextElementSibling : null;
1042
+ const control = explicitControl || siblingControl;
1043
+ if (!control || seen.has(control)) continue;
1044
+ seen.add(control);
1045
+ controls.push(control);
1046
+ }
1047
+ controls.sort((a, b) => {
1048
+ const rank = (node) => {
1049
+ let score = 0;
1050
+ if (node.isConnected) score += 100;
1051
+ const style = node.ownerDocument?.defaultView?.getComputedStyle?.(node);
1052
+ if (style && style.display !== 'none' && style.visibility !== 'hidden') {
1053
+ score += 10;
1054
+ }
1055
+ const rect = typeof node.getBoundingClientRect === 'function' ? node.getBoundingClientRect() : null;
1056
+ if (rect && rect.width > 0 && rect.height > 0) {
1057
+ score += 1;
1058
+ }
1059
+ return score;
1060
+ };
1061
+ return rank(b) - rank(a);
1062
+ });
1063
+ return controls;
1064
+ };
1065
+ const queryAll = (selector) => {
1066
+ const steps = splitSteps(selector);
1067
+ let roots = [document];
1068
+ for (const rawStep of steps) {
1069
+ const step = parseStep(rawStep);
1070
+ const next = [];
1071
+ const seen = new Set();
1072
+ for (const root of roots) {
1073
+ let matches = step.kind === 'text'
1074
+ ? textMatches(root, step.matcher)
1075
+ : step.kind === 'label'
1076
+ ? labelMatches(root, step.matcher)
1077
+ : Array.from((root instanceof Document ? root : root).querySelectorAll(step.selector));
1078
+ if (step.hasText) {
1079
+ matches = matches.filter((node) => matchesText(node, step.hasText));
1080
+ }
1081
+ if (step.nth !== null) {
1082
+ const index = step.nth === 'last' ? matches.length - 1 : step.nth;
1083
+ matches = matches[index] ? [matches[index]] : [];
1084
+ }
1085
+ for (const node of matches) {
1086
+ if (seen.has(node)) continue;
1087
+ seen.add(node);
1088
+ next.push(node);
1089
+ }
1090
+ }
1091
+ roots = next;
1092
+ }
1093
+ return roots;
1094
+ };
1095
+ const nodes = queryAll(query.selector);
1096
+ const index = query.nth === 'last' ? nodes.length - 1 : query.nth;
1097
+ return nodes[index] ?? null;
1098
+ }`,arguments:[{value:Jn}],executionContextId:qn,returnByValue:false,awaitPromise:false,userGesture:false},await this.#e.resolveSessionId(Vn.sessionId));if(!Yn.objectId)throw Error(`Selector "${xn}" not found`);return{objectId:Yn.objectId,frameId:jn,frameSessionId:Vn.sessionId,contextId:qn}}async#l(xn){let jn=this.#p(xn),Vn=await this.#d(),{nth:qn,...Jn}=jn,Yn;if(qn===`last`){Yn=0;for(let{frameId:xn}of Vn){let jn=this.#e.frameManager.getFrame(xn);jn?.isolatedContextId&&(Yn+=await this.#m(await this.#e.resolveSessionId(jn.sessionId),jn.isolatedContextId,Jn))}--Yn}else Yn=qn;if(Yn<0)throw Error(`Role selector not found: ${xn}`);for(let{frameId:xn}of Vn){let Vn=this.#e.frameManager.getFrame(xn);if(!Vn?.isolatedContextId)continue;let qn=await this.#e.resolveSessionId(Vn.sessionId),Zn=await this.#m(qn,Vn.isolatedContextId,Jn);if(Zn<=0)continue;if(Yn>=Zn){Yn-=Zn;continue}let{result:Qn}=await this.#e.cdp.send(`Runtime.callFunctionOn`,{functionDeclaration:`function(query) {
1099
+ const normalizeText = (value) => String(value || '').replace(/\\s+/g, ' ').trim();
1100
+ const getRole = (node) => {
1101
+ const explicit = node.getAttribute?.('role');
1102
+ if (explicit) {
1103
+ return explicit.split(/\\s+/)[0] || 'generic';
1104
+ }
1105
+
1106
+ const tag = String(node.tagName || '').toLowerCase();
1107
+ if (tag === 'input') {
1108
+ const type = String(node.getAttribute?.('type') || '').toLowerCase();
1109
+ if (type === 'checkbox') return 'checkbox';
1110
+ if (type === 'radio') return 'radio';
1111
+ if (type === 'range') return 'slider';
1112
+ if (type === 'button' || type === 'submit' || type === 'reset') return 'button';
1113
+ return 'textbox';
1114
+ }
1115
+ if (tag === 'button') return 'button';
1116
+ if (tag === 'a' && node.hasAttribute?.('href')) return 'link';
1117
+ if (tag === 'select') return node.multiple || node.size > 1 ? 'listbox' : 'combobox';
1118
+ if (tag === 'textarea') return 'textbox';
1119
+ if (tag === 'img') return 'img';
1120
+ if (tag === 'option') return 'option';
1121
+ if (tag === 'summary') return 'button';
1122
+ return 'generic';
1123
+ };
1124
+
1125
+ const getAccessibleName = (node) => {
1126
+ const ariaLabel = normalizeText(node.getAttribute?.('aria-label'));
1127
+ if (ariaLabel) return ariaLabel;
1128
+
1129
+ const labelledBy = normalizeText(node.getAttribute?.('aria-labelledby'));
1130
+ if (labelledBy) {
1131
+ const labelText = labelledBy
1132
+ .split(/\\s+/)
1133
+ .map((id) => normalizeText(node.ownerDocument?.getElementById(id)?.textContent))
1134
+ .filter(Boolean)
1135
+ .join(' ');
1136
+ if (labelText) return labelText;
1137
+ }
1138
+
1139
+ if (typeof node.labels?.length === 'number' && node.labels.length > 0) {
1140
+ const labelText = Array.from(node.labels)
1141
+ .map((label) => normalizeText(label.textContent))
1142
+ .filter(Boolean)
1143
+ .join(' ');
1144
+ if (labelText) return labelText;
1145
+ }
1146
+
1147
+ const title = normalizeText(node.getAttribute?.('title'));
1148
+ if (title) return title;
1149
+
1150
+ const alt = normalizeText(node.getAttribute?.('alt'));
1151
+ if (alt) return alt;
1152
+
1153
+ const placeholder = normalizeText(node.getAttribute?.('placeholder'));
1154
+ if (placeholder) return placeholder;
1155
+
1156
+ const value = normalizeText(node.value);
1157
+ if (value) return value;
1158
+
1159
+ return normalizeText(node.textContent).slice(0, 100);
1160
+ };
1161
+
1162
+ const isHidden = (node) => {
1163
+ if (!node.isConnected) return true;
1164
+ if (node.getAttribute?.('hidden') !== null) return true;
1165
+ if (node.getAttribute?.('aria-hidden') === 'true') return true;
1166
+ const style = node.ownerDocument?.defaultView?.getComputedStyle?.(node);
1167
+ if (!style) return false;
1168
+ return style.display === 'none' || style.visibility === 'hidden';
1169
+ };
1170
+
1171
+ const getAriaBoolean = (value) => {
1172
+ if (value === 'true') return true;
1173
+ if (value === 'false') return false;
1174
+ return null;
1175
+ };
1176
+
1177
+ const getDisabled = (node) => {
1178
+ if ('disabled' in node && typeof node.disabled === 'boolean') {
1179
+ return node.disabled;
1180
+ }
1181
+ let current = node;
1182
+ while (current) {
1183
+ if (current.getAttribute?.('aria-disabled') === 'true') {
1184
+ return true;
1185
+ }
1186
+ current = current.parentElement;
1187
+ }
1188
+ return false;
1189
+ };
1190
+
1191
+ const getChecked = (node) => {
1192
+ const tag = String(node.tagName || '').toLowerCase();
1193
+ if (tag === 'input') {
1194
+ const type = String(node.getAttribute?.('type') || '').toLowerCase();
1195
+ if (type === 'checkbox' || type === 'radio') {
1196
+ return !!node.checked;
1197
+ }
1198
+ }
1199
+ return getAriaBoolean(node.getAttribute?.('aria-checked'));
1200
+ };
1201
+
1202
+ const getExpanded = (node) => getAriaBoolean(node.getAttribute?.('aria-expanded'));
1203
+ const getPressed = (node) => getAriaBoolean(node.getAttribute?.('aria-pressed'));
1204
+ const getSelected = (node) => {
1205
+ const tag = String(node.tagName || '').toLowerCase();
1206
+ if (tag === 'option') {
1207
+ return !!node.selected;
1208
+ }
1209
+ return getAriaBoolean(node.getAttribute?.('aria-selected'));
1210
+ };
1211
+
1212
+ const getLevel = (node) => {
1213
+ const ariaLevel = Number.parseInt(String(node.getAttribute?.('aria-level') || ''), 10);
1214
+ if (!Number.isNaN(ariaLevel)) {
1215
+ return ariaLevel;
1216
+ }
1217
+ const tag = String(node.tagName || '').toLowerCase();
1218
+ const headingMatch = tag.match(/^h([1-6])$/);
1219
+ return headingMatch ? Number.parseInt(headingMatch[1], 10) : null;
1220
+ };
1221
+
1222
+ const nameMatches = (name) => {
1223
+ if (query.regexSource) {
1224
+ const re = new RegExp(query.regexSource, query.regexFlags ?? '');
1225
+ return re.test(name);
1226
+ }
1227
+ if (query.name === undefined) {
1228
+ return true;
1229
+ }
1230
+ return query.exact ? name === query.name : name.includes(query.name);
1231
+ };
1232
+
1233
+ const matchesState = (node) => {
1234
+ if (query.includeHidden !== true && isHidden(node)) {
1235
+ return false;
1236
+ }
1237
+ if (query.checked !== undefined && getChecked(node) !== query.checked) {
1238
+ return false;
1239
+ }
1240
+ if (query.disabled !== undefined && getDisabled(node) !== query.disabled) {
1241
+ return false;
1242
+ }
1243
+ if (query.expanded !== undefined && getExpanded(node) !== query.expanded) {
1244
+ return false;
1245
+ }
1246
+ if (query.level !== undefined && getLevel(node) !== query.level) {
1247
+ return false;
1248
+ }
1249
+ if (query.pressed !== undefined && getPressed(node) !== query.pressed) {
1250
+ return false;
1251
+ }
1252
+ if (query.selected !== undefined && getSelected(node) !== query.selected) {
1253
+ return false;
1254
+ }
1255
+ return true;
1256
+ };
1257
+
1258
+ const root = document.documentElement || document.body;
1259
+ if (!root) {
1260
+ return null;
1261
+ }
1262
+
1263
+ const matches = [];
1264
+ const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT);
1265
+ let current = root;
1266
+ while (current) {
1267
+ if (matchesState(current) && getRole(current) === query.role) {
1268
+ const name = getAccessibleName(current);
1269
+ if (nameMatches(name)) {
1270
+ matches.push(current);
1271
+ }
1272
+ }
1273
+ current = walker.nextNode();
1274
+ }
1275
+
1276
+ return matches[query.nth] ?? null;
1277
+ }`,arguments:[{value:{...jn,nth:Yn}}],executionContextId:Vn.isolatedContextId,returnByValue:false,awaitPromise:false,userGesture:false},qn);if(Qn.objectId)return{objectId:Qn.objectId,frameId:xn,frameSessionId:Vn.sessionId,contextId:Vn.isolatedContextId}}throw Error(`Role selector not found: ${xn}`)}async#u(){return this.#n?await this.#n.resolveFrameId():this.#e.frameManager.mainFrameId}async#d(){if(this.#n){let xn=await this.#n.resolveFrameId(),jn=this.#e.frameManager.getFrame(xn);return jn?[{frameId:xn,parentFrameId:jn.parentFrameId,depth:0}]:[]}return this.#e.frameManager.collectDescendantFrames(this.#e.frameManager.mainFrameId)}#f(xn){let jn=xn.match(/^(.*):nth\((\d+|last)\)$/);if(!jn)return{selector:xn,nth:0};let Vn=jn[2];return{selector:jn[1].trim(),nth:Vn===`last`?`last`:Number.parseInt(Vn,10)}}#p(xn){let jn=xn.match(NTH_SELECTOR_PATTERN),Vn=jn?.[1],qn=Vn===`last`?`last`:Vn?Number.parseInt(Vn,10):0,Jn=jn?xn.slice(0,jn.index):xn,Yn=Jn.match(/^role:([^[]+)/);if(!Yn)throw Error(`Invalid role selector: ${xn}`);let Zn={role:Yn[1].trim(),nth:qn},Qn=Jn.slice(Yn[0].length),ei=/\[([a-z-]+)(\*?)=(.*?)\]/g,ti;for(;ti=ei.exec(Qn);){let[,xn,jn,Vn]=ti,qn=xn,Jn=Vn.trim();if(qn===`name-regex`){Zn.regexSource=decodeURIComponent(Jn);continue}if(qn===`name-regex-flags`){Zn.regexFlags=decodeURIComponent(Jn);continue}if(qn===`name`){Zn.name=decodeURIComponent(Jn),Zn.exact=jn!==`*`;continue}qn===`checked`&&(Zn.checked=Jn===`true`),qn===`disabled`&&(Zn.disabled=Jn===`true`),qn===`expanded`&&(Zn.expanded=Jn===`true`),qn===`include-hidden`&&(Zn.includeHidden=Jn===`true`),qn===`level`&&(Zn.level=Number.parseInt(Jn,10)),qn===`pressed`&&(Zn.pressed=Jn===`true`),qn===`selected`&&(Zn.selected=Jn===`true`)}return Zn}async#m(xn,jn,Vn){let{result:qn,exceptionDetails:Jn}=await this.#e.cdp.send(`Runtime.callFunctionOn`,{functionDeclaration:`function(query) {
1278
+ const normalizeText = (value) => String(value || '').replace(/\\s+/g, ' ').trim();
1279
+ const getRole = (node) => {
1280
+ const explicit = node.getAttribute?.('role');
1281
+ if (explicit) {
1282
+ return explicit.split(/\\s+/)[0] || 'generic';
1283
+ }
1284
+
1285
+ const tag = String(node.tagName || '').toLowerCase();
1286
+ if (tag === 'input') {
1287
+ const type = String(node.getAttribute?.('type') || '').toLowerCase();
1288
+ if (type === 'checkbox') return 'checkbox';
1289
+ if (type === 'radio') return 'radio';
1290
+ if (type === 'range') return 'slider';
1291
+ if (type === 'button' || type === 'submit' || type === 'reset') return 'button';
1292
+ return 'textbox';
1293
+ }
1294
+ if (tag === 'button') return 'button';
1295
+ if (tag === 'a' && node.hasAttribute?.('href')) return 'link';
1296
+ if (tag === 'select') return node.multiple || node.size > 1 ? 'listbox' : 'combobox';
1297
+ if (tag === 'textarea') return 'textbox';
1298
+ if (tag === 'img') return 'img';
1299
+ if (tag === 'option') return 'option';
1300
+ if (tag === 'summary') return 'button';
1301
+ return 'generic';
1302
+ };
1303
+
1304
+ const getAccessibleName = (node) => {
1305
+ const ariaLabel = normalizeText(node.getAttribute?.('aria-label'));
1306
+ if (ariaLabel) return ariaLabel;
1307
+
1308
+ const labelledBy = normalizeText(node.getAttribute?.('aria-labelledby'));
1309
+ if (labelledBy) {
1310
+ const labelText = labelledBy
1311
+ .split(/\\s+/)
1312
+ .map((id) => normalizeText(node.ownerDocument?.getElementById(id)?.textContent))
1313
+ .filter(Boolean)
1314
+ .join(' ');
1315
+ if (labelText) return labelText;
1316
+ }
1317
+
1318
+ if (typeof node.labels?.length === 'number' && node.labels.length > 0) {
1319
+ const labelText = Array.from(node.labels)
1320
+ .map((label) => normalizeText(label.textContent))
1321
+ .filter(Boolean)
1322
+ .join(' ');
1323
+ if (labelText) return labelText;
1324
+ }
1325
+
1326
+ const title = normalizeText(node.getAttribute?.('title'));
1327
+ if (title) return title;
1328
+
1329
+ const alt = normalizeText(node.getAttribute?.('alt'));
1330
+ if (alt) return alt;
1331
+
1332
+ const placeholder = normalizeText(node.getAttribute?.('placeholder'));
1333
+ if (placeholder) return placeholder;
1334
+
1335
+ const value = normalizeText(node.value);
1336
+ if (value) return value;
1337
+
1338
+ return normalizeText(node.textContent).slice(0, 100);
1339
+ };
1340
+
1341
+ const isHidden = (node) => {
1342
+ if (!node.isConnected) return true;
1343
+ if (node.getAttribute?.('hidden') !== null) return true;
1344
+ if (node.getAttribute?.('aria-hidden') === 'true') return true;
1345
+ const style = node.ownerDocument?.defaultView?.getComputedStyle?.(node);
1346
+ if (!style) return false;
1347
+ return style.display === 'none' || style.visibility === 'hidden';
1348
+ };
1349
+
1350
+ const getAriaBoolean = (value) => {
1351
+ if (value === 'true') return true;
1352
+ if (value === 'false') return false;
1353
+ return null;
1354
+ };
1355
+
1356
+ const getDisabled = (node) => {
1357
+ if ('disabled' in node && typeof node.disabled === 'boolean') {
1358
+ return node.disabled;
1359
+ }
1360
+ let current = node;
1361
+ while (current) {
1362
+ if (current.getAttribute?.('aria-disabled') === 'true') {
1363
+ return true;
1364
+ }
1365
+ current = current.parentElement;
1366
+ }
1367
+ return false;
1368
+ };
1369
+
1370
+ const getChecked = (node) => {
1371
+ const tag = String(node.tagName || '').toLowerCase();
1372
+ if (tag === 'input') {
1373
+ const type = String(node.getAttribute?.('type') || '').toLowerCase();
1374
+ if (type === 'checkbox' || type === 'radio') {
1375
+ return !!node.checked;
1376
+ }
1377
+ }
1378
+ return getAriaBoolean(node.getAttribute?.('aria-checked'));
1379
+ };
1380
+
1381
+ const getExpanded = (node) => getAriaBoolean(node.getAttribute?.('aria-expanded'));
1382
+ const getPressed = (node) => getAriaBoolean(node.getAttribute?.('aria-pressed'));
1383
+ const getSelected = (node) => {
1384
+ const tag = String(node.tagName || '').toLowerCase();
1385
+ if (tag === 'option') {
1386
+ return !!node.selected;
1387
+ }
1388
+ return getAriaBoolean(node.getAttribute?.('aria-selected'));
1389
+ };
1390
+
1391
+ const getLevel = (node) => {
1392
+ const ariaLevel = Number.parseInt(String(node.getAttribute?.('aria-level') || ''), 10);
1393
+ if (!Number.isNaN(ariaLevel)) {
1394
+ return ariaLevel;
1395
+ }
1396
+ const tag = String(node.tagName || '').toLowerCase();
1397
+ const headingMatch = tag.match(/^h([1-6])$/);
1398
+ return headingMatch ? Number.parseInt(headingMatch[1], 10) : null;
1399
+ };
1400
+
1401
+ const nameMatches = (name) => {
1402
+ if (query.regexSource) {
1403
+ const re = new RegExp(query.regexSource, query.regexFlags ?? '');
1404
+ return re.test(name);
1405
+ }
1406
+ if (query.name === undefined) {
1407
+ return true;
1408
+ }
1409
+ return query.exact ? name === query.name : name.includes(query.name);
1410
+ };
1411
+
1412
+ const matchesState = (node) => {
1413
+ if (query.includeHidden !== true && isHidden(node)) {
1414
+ return false;
1415
+ }
1416
+ if (query.checked !== undefined && getChecked(node) !== query.checked) {
1417
+ return false;
1418
+ }
1419
+ if (query.disabled !== undefined && getDisabled(node) !== query.disabled) {
1420
+ return false;
1421
+ }
1422
+ if (query.expanded !== undefined && getExpanded(node) !== query.expanded) {
1423
+ return false;
1424
+ }
1425
+ if (query.level !== undefined && getLevel(node) !== query.level) {
1426
+ return false;
1427
+ }
1428
+ if (query.pressed !== undefined && getPressed(node) !== query.pressed) {
1429
+ return false;
1430
+ }
1431
+ if (query.selected !== undefined && getSelected(node) !== query.selected) {
1432
+ return false;
1433
+ }
1434
+ return true;
1435
+ };
1436
+
1437
+ const root = document.documentElement || document.body;
1438
+ if (!root) {
1439
+ return 0;
1440
+ }
1441
+
1442
+ let count = 0;
1443
+ const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT);
1444
+ let current = root;
1445
+ while (current) {
1446
+ if (matchesState(current) && getRole(current) === query.role) {
1447
+ const name = getAccessibleName(current);
1448
+ if (nameMatches(name)) {
1449
+ count += 1;
1450
+ }
1451
+ }
1452
+ current = walker.nextNode();
1453
+ }
1454
+
1455
+ return count;
1456
+ }`,arguments:[{value:Vn}],executionContextId:jn,returnByValue:true,awaitPromise:false,userGesture:false},xn);if(Jn)throw Error(Jn.text??`Role selector count failed`);return Number(qn.value??0)}},ElementHandle=class{#e;#t;constructor(xn,jn){this.#e=xn,this.#t=jn}async contentFrame(){let{node:xn}=await this.#e.cdp.send(`DOM.describeNode`,{objectId:this.#t.objectId,depth:0},await this.#e.resolveSessionId(this.#t.frameSessionId));if(!xn.frameId||!this.#e.frameManager.getFrame(xn.frameId))return null;let{OmOFrame:jn}=await Promise.resolve().then(()=>(init_frame(),frame_exports));return new jn(this.#e,xn.frameId)}}});var FileChooser;var init_file_chooser=__esmMin(()=>{init_locator(),FileChooser=class{page;#e;#t;#n;#r=null;constructor(xn,jn,Vn,qn){this.page=xn,this.#e=jn,this.#t=Vn,this.#n=qn}element(){return this.#r??=new Locator(this.page,createBackendNodeLocatorSelector(this.#e,this.#t)),this.#r}isMultiple(){return this.#n}async setFiles(xn){await this.element().setInputFiles(Array.isArray(xn)||typeof xn==`string`?xn:[xn])}}});var OmOMouse;var init_mouse=__esmMin(()=>{init_utils$13(),init_keyboard(),OmOMouse=class{context;modifierState;#e=0;#t=0;#n=`none`;constructor(xn,jn){this.context=xn,this.modifierState=jn}async move(xn,jn,Vn={}){let qn=this.#e,Jn=this.#t,Yn=Math.max(Vn.steps??1,1),Zn=this.modifierState.toButtonsMask(),Qn=await shouldUseDomInputFallback(this.context);for(let Vn=1;Vn<=Yn;Vn+=1){let ei=qn+(xn-qn)*(Vn/Yn),ti=Jn+(jn-Jn)*(Vn/Yn);if(Qn){await this.#i(`move`,{x:ei,y:ti,button:this.#n,buttons:Zn});continue}await this.#r(`mouseMoved`,{x:ei,y:ti,button:this.#n,buttons:Zn,modifiers:this.modifierState.toModifiersMask(),force:Zn>0?0.5:0})}this.#e=xn,this.#t=jn}async down(xn={}){let jn=xn.button??`left`,Vn=xn.clickCount??1;if(this.#n=jn,this.modifierState.mouseDown(jn),await shouldUseDomInputFallback(this.context)){await this.#i(`down`,{x:this.#e,y:this.#t,button:jn,buttons:this.modifierState.toButtonsMask(),clickCount:Vn});return}await this.#r(`mousePressed`,{button:jn,buttons:this.modifierState.toButtonsMask(),clickCount:Vn,modifiers:this.modifierState.toModifiersMask(),force:this.modifierState.toButtonsMask()>0?0.5:0})}async up(xn={}){let jn=xn.button??`left`,Vn=xn.clickCount??1;if(this.#n=`none`,this.modifierState.mouseUp(jn),await shouldUseDomInputFallback(this.context)){await this.#i(`up`,{x:this.#e,y:this.#t,button:jn,buttons:this.modifierState.toButtonsMask(),clickCount:Vn});return}await this.#r(`mouseReleased`,{button:jn,buttons:this.modifierState.toButtonsMask(),clickCount:Vn,modifiers:this.modifierState.toModifiersMask()})}async click(xn,jn,Vn={}){let qn=Vn.button??`left`,Jn=Vn.clickCount??1,Yn=Vn.delay??0;await this.move(xn,jn,{steps:Vn.steps}),await this.context.prepareForPotentialFileChooser?.();for(let xn=1;xn<=Jn;xn+=1)await this.down({button:qn,clickCount:xn}),Yn>0&&await sleep$12(Yn),await this.up({button:qn,clickCount:xn}),Yn>0&&xn<Jn&&await sleep$12(Yn)}async dblclick(xn,jn,Vn={}){await this.click(xn,jn,{button:Vn.button??`left`,clickCount:2,delay:Vn.delay??0,steps:Vn.steps})}async wheel(xn,jn){if(await shouldUseDomInputFallback(this.context)){await this.#i(`wheel`,{x:this.#e,y:this.#t,deltaX:xn,deltaY:jn});return}await this.#r(`mouseWheel`,{deltaX:xn,deltaY:jn,modifiers:this.modifierState.toModifiersMask()})}async#r(xn,jn){await this.context._sendToTarget(`Input.dispatchMouseEvent`,{type:xn,x:Math.floor(jn.x??this.#e),y:Math.floor(jn.y??this.#t),button:jn.button,buttons:jn.buttons,clickCount:jn.clickCount,deltaX:jn.deltaX,deltaY:jn.deltaY,force:jn.force,modifiers:jn.modifiers??this.modifierState.toModifiersMask()})}async#i(xn,jn){await this.context.evaluate((xn)=>{let{eventType:jn,x:Vn,y:qn,button:Jn,buttons:Yn,clickCount:Zn,deltaX:Qn,deltaY:ei}=xn,ti=document.elementFromPoint(Vn,qn)??document.scrollingElement??document.documentElement??document.body,ni=Jn===`right`?2:+(Jn===`middle`);if(jn===`wheel`){ti.dispatchEvent(new WheelEvent(`wheel`,{clientX:Vn,clientY:qn,deltaX:Qn??0,deltaY:ei??0,bubbles:true,cancelable:true,composed:true})),window.scrollBy(Qn??0,ei??0);return}let ri=jn===`move`?`mousemove`:jn===`down`?`mousedown`:`mouseup`;ti.dispatchEvent(new MouseEvent(ri,{clientX:Vn,clientY:qn,button:ni,buttons:Yn??0,detail:Zn??0,bubbles:true,cancelable:true,composed:true,view:window})),jn===`up`&&(ti.dispatchEvent(new MouseEvent(`click`,{clientX:Vn,clientY:qn,button:ni,buttons:Yn??0,detail:Zn??1,bubbles:true,cancelable:true,composed:true,view:window})),(Zn??0)===2&&ti.dispatchEvent(new MouseEvent(`dblclick`,{clientX:Vn,clientY:qn,button:ni,buttons:Yn??0,detail:2,bubbles:true,cancelable:true,composed:true,view:window})))},{eventType:xn,...jn})}}});var AGENT_MANAGER_EXTENSION_ID;var PASSWORD_MANAGER_EXTENSION_ID;var AGENT_MANAGER_EXTENSION_ORIGIN;var PASSWORD_MANAGER_EXTENSION_ORIGIN;var init_extension_ids=__esmMin(()=>{AGENT_MANAGER_EXTENSION_ID=`fjdhphbdlfjogobdofoaagnlnkoibdge`,PASSWORD_MANAGER_EXTENSION_ID=`clcdgiameigmljcbkkcbjiljinmfkncl`,AGENT_MANAGER_EXTENSION_ORIGIN=`chrome-extension://${AGENT_MANAGER_EXTENSION_ID}`,PASSWORD_MANAGER_EXTENSION_ORIGIN=`chrome-extension://${PASSWORD_MANAGER_EXTENSION_ID}`});function getKnownIframeOriginLabel(xn){return KNOWN_IFRAME_ORIGINS.find(({urlPrefix:jn})=>xn.startsWith(jn))?.label??null}function formatIframeOriginLabel(xn){return xn?` [origin="${xn.replace(/"/g,`\\"`)}"]`:``}function tagIframeLine(xn,jn,Vn){return xn.split(`
1457
+ `).map((xn)=>{let qn=xn.match(/^(\s*)- iframe(?:.*? )?\[ref=([^\]]*)\]/);return!qn||qn[2]!==jn||xn.includes(` [origin=`)?xn:xn.replace(/^(\s*)- iframe/,`$1- iframe${formatIframeOriginLabel(Vn)}`)}).join(`
1458
+ `)}function getCdpNodeAttribute(xn,jn){if(!xn)return null;for(let Vn=0;Vn<xn.length;Vn+=2)if(xn[Vn]===jn)return xn[Vn+1]??``;return null}function inlineChildTree(xn,jn,Vn){return xn.split(`
1459
+ `).flatMap((xn)=>{let qn=xn.match(/^(\s*)- iframe(?:.*? )?\[ref=([^\]]*)\]/);if(!qn||qn[2]!==jn)return[xn];let Jn=qn[1]??``,Yn=Vn.split(`
1460
+ `).map((xn)=>`${Jn} ${xn}`);return[Vn.length>0?`${xn}:`:xn,...Yn]}).join(`
1461
+ `)}function appendOrphanChildTree(xn,jn,Vn){if(!jn)return xn;let qn=jn.split(`
1462
+ `).map((xn)=>` ${xn}`);return`${xn}
1463
+ - iframe${formatIframeOriginLabel(Vn)}:
1464
+ ${qn.join(`
1465
+ `)}`}function getRefPrefix(xn){return xn.match(/^(f\d+)?e\d+$/)?.[1]??``}async function takeSnapshot(xn,jn,Vn={}){let qn=jn.mainFrameId,Jn=jn.collectDescendantFrames(qn),Yn=new Map,Zn=new Map,Qn=1;for(let xn of Jn){let jn=xn.frameId===qn?``:`f${Qn++}`;Yn.set(xn.frameId,jn),Zn.set(jn,xn.frameId)}jn.setSnapshotFramePrefixMap(Zn);let ei=(()=>{if(!Vn.ref)return qn;let xn=getRefPrefix(Vn.ref);return Jn.find(({frameId:jn})=>(Yn.get(jn)??``)===xn)?.frameId??null})();if(!ei)throw Error(`Ref "${Vn.ref}" points to a frame that is no longer available. Take a new snapshot.`);let ti=jn.collectDescendantFrames(ei),ni=new Map,ri;await Promise.all(ti.map(async({frameId:qn})=>{let Jn=qn===ei,Zn=Jn?SNAPSHOT_MAX_RETRIES:1,Qn;for(let ti=0;ti<Zn;ti++){ti>0&&await sleep$12(SNAPSHOT_RETRY_DELAY_MS);let ii=await jn.ensureInjected(qn).catch((xn)=>(Qn=xn,null));if(!ii){if(Jn&&ti<Zn-1)continue;Jn&&(ri=Qn);return}let ai={interactive:Vn.interactive,maxDepth:Vn.maxDepth,maxChars:Vn.maxChars,refId:qn===ei?Vn.ref:undefined,selector:qn===ei?Vn.selector:undefined,showHidden:Vn.showHidden,refPrefix:Yn.get(qn)??``};try{let{result:Vn}=await xn.send(`Runtime.callFunctionOn`,{functionDeclaration:`function(opts) {
1466
+ return globalThis.__omowright.takeSnapshot(opts);
1467
+ }`,arguments:[{value:ai}],executionContextId:ii,returnByValue:true,awaitPromise:false,userGesture:false},jn.getFrame(qn)?.sessionId),Yn=Vn.value;if(Yn){if(Yn.error){Jn&&(ri=Yn.error);return}ni.set(qn,Yn);return}}catch(xn){Qn=xn,isContextDestroyedError(xn)&&jn.invalidateContext(qn)}Jn&&Zn-1}Jn&&(ri=Qn)}));let ii=ni.get(ei);if(!ii){let xn=ri;throw xn instanceof Error?xn:typeof xn==`string`&&xn.length>0?Error(xn):Error(ei===qn?`Main frame snapshot failed`:`Ref subtree snapshot failed`)}let ai=new Map,oi=new Map;await Promise.all(ti.map(async({frameId:Vn})=>{let qn=ni.get(Vn),Jn=jn.getFrame(Vn);if(!qn||!Jn?.isolatedContextId)return;let Yn=Object.entries(qn.refs).filter(([,xn])=>xn.tagName.toLowerCase()===`iframe`).map(([xn])=>xn);if(Yn.length===0)return;let Zn=await Promise.all(Yn.map(async(qn)=>{let{result:Yn}=await xn.send(`Runtime.callFunctionOn`,{functionDeclaration:`function(ref) {
1468
+ return globalThis.__omowright.elementRegistry.get(ref);
1469
+ }`,arguments:[{value:qn}],executionContextId:Jn.isolatedContextId,returnByValue:false},Jn.sessionId).catch((xn)=>(isContextDestroyedError(xn)&&jn.invalidateContext(Vn),{result:{}})),Zn=typeof Yn==`object`&&Yn&&`objectId`in Yn?Yn.objectId:undefined;if(!Zn)return null;try{let{node:Vn}=await xn.send(`DOM.describeNode`,{objectId:Zn},Jn.sessionId),Yn=Vn.frameId?jn.getFrame(Vn.frameId)?.url:null,Qn=getCdpNodeAttribute(Vn.attributes,`src`),ei=getKnownIframeOriginLabel(Yn??``)??getKnownIframeOriginLabel(Qn??``);return{childFrameId:Vn.frameId,iframeRef:qn,originLabel:ei}}catch{return null}finally{await xn.send(`Runtime.releaseObject`,{objectId:Zn},Jn.sessionId).catch(()=>{})}})),Qn=new Map,ei=new Map;for(let xn of Zn)xn&&(xn.childFrameId&&Qn.set(xn.childFrameId,xn.iframeRef),xn.originLabel&&ei.set(xn.iframeRef,xn.originLabel));ai.set(Vn,Qn),ei.size>0&&oi.set(Vn,ei)}));let si=[...ti].sort((xn,jn)=>jn.depth-xn.depth),ci={};for(let xn of ni.values())Object.assign(ci,xn.refs);for(let[xn,jn]of oi){let Vn=ni.get(xn);if(Vn)for(let[xn,qn]of jn)Vn.tree=tagIframeLine(Vn.tree,xn,qn)}for(let xn of si){if(xn.frameId===qn||!xn.parentFrameId)continue;let Vn=ni.get(xn.frameId),Jn=ni.get(xn.parentFrameId);if(!Vn||!Jn||!Vn.tree)continue;let Yn=ai.get(xn.parentFrameId)?.get(xn.frameId),Zn=getKnownIframeOriginLabel(jn.getFrame(xn.frameId)?.url??``);Jn.tree=Yn?inlineChildTree(Jn.tree,Yn,Vn.tree):appendOrphanChildTree(Jn.tree,Vn.tree,Zn)}return{tree:ii.tree,refs:ci}}var KNOWN_IFRAME_ORIGINS;var SNAPSHOT_RETRY_DELAY_MS;var SNAPSHOT_MAX_RETRIES;var init_snapshot=__esmMin(()=>{init_extension_ids(),init_utils$13(),init_client$6(),init_frame_manager(),KNOWN_IFRAME_ORIGINS=[{urlPrefix:`chrome-extension://aeblfdkhhhdcdjpifhhbdiojplfjncoa/`,label:`1Password`},{urlPrefix:`chrome-extension://nngceckbapebfimnlniiiahkandclblb/`,label:`Bitwarden`},{urlPrefix:`chrome-extension://fdjamakpfbbddfjaooikfcpapjohcfmg/`,label:`Dashlane`},{urlPrefix:`chrome-extension://hdokiejnpimakedhajhdlcegeplioahd/`,label:`LastPass`},{urlPrefix:`${PASSWORD_MANAGER_EXTENSION_ORIGIN}/`,label:`OmO Password Manager`}],SNAPSHOT_RETRY_DELAY_MS=300,SNAPSHOT_MAX_RETRIES=3});function diffLines(xn,jn){let Vn=xn.length,qn=jn.length,Jn=Vn+qn;if(Jn===0)return[];if(Vn===qn&&xn.every((xn,Vn)=>xn===jn[Vn]))return xn.map((xn)=>({type:`equal`,line:xn}));let Yn=Jn,Zn=new Int32Array(2*Jn+1);Zn.fill(-1),Zn[Yn+1]=0;let Qn=[];for(let ei=0;ei<=Jn;ei+=1){Qn.push(new Int32Array(Zn));for(let Jn=-ei;Jn<=ei;Jn+=2){let ti=Jn+Yn,ni=Jn===-ei||Jn!==ei&&Zn[ti-1]<Zn[ti+1]?Zn[ti+1]:Zn[ti-1]+1,ri=ni-Jn;for(;ni<Vn&&ri<qn&&xn[ni]===jn[ri];)ni+=1,ri+=1;if(Zn[ti]=ni,ni>=Vn&&ri>=qn)return buildEditScript(Qn,xn,jn,Yn)}}return buildEditScript(Qn,xn,jn,Yn)}function buildEditScript(xn,jn,Vn,qn){let Jn=[],Yn=jn.length,Zn=Vn.length;for(let Qn=xn.length-1;Qn>0;--Qn){let ei=xn[Qn],ti=Yn-Zn,ni=ti+qn,ri=ti===-Qn||ti!==Qn&&ei[ni-1]<ei[ni+1]?ti+1:ti-1,ii=ei[ri+qn],ai=ii-ri;for(;Yn>ii&&Zn>ai;)--Yn,--Zn,Jn.push({type:`equal`,line:jn[Yn]});if(Yn===ii){--Zn,Jn.push({type:`insert`,line:Vn[Zn]});continue}--Yn,Jn.push({type:`delete`,line:jn[Yn]})}for(;Yn>0&&Zn>0;)--Yn,--Zn,Jn.push({type:`equal`,line:jn[Yn]});return Jn.reverse()}function toUnifiedDiffHunks(xn){let jn=[],Vn=null,qn=1,Jn=1,Yn=()=>{Vn&&=(jn.push(Vn),null)};for(let jn of xn){if(jn.type===`equal`){Yn(),qn+=1,Jn+=1;continue}if(Vn||={oldStart:qn,oldCount:0,newStart:Jn,newCount:0,lines:[]},jn.type===`delete`){Vn.oldCount+=1,Vn.lines.push(`-${jn.line}`),qn+=1;continue}Vn.newCount+=1,Vn.lines.push(`+${jn.line}`),Jn+=1}return Yn(),jn}function diff(xn,jn){let Vn=toUnifiedDiffHunks(diffLines(xn.trim().split(`
1470
+ `),jn.trim().split(`
1471
+ `)));return Vn.length===0?`No changes detected
1472
+ `:`${Vn.map((xn)=>[`@@ -${formatRange(xn.oldStart,xn.oldCount)} +${formatRange(xn.newStart,xn.newCount)} @@`,...xn.lines].join(`
1473
+ `)).join(`
1474
+ `)}
1475
+ `}var formatRange;var init_diff=__esmMin(()=>{formatRange=(xn,jn)=>jn===1?String(xn):`${xn},${jn}`});function toSessionTab(xn){return nullToUndefined(xn)}function emitSessionTabsUpdated(xn,jn){EventBus.emit(`session:tabs-updated`,{sessionId:jn});let Vn=SessionStore.get(xn,jn)?.parentId;Vn&&EventBus.emit(`session:tabs-updated`,{sessionId:Vn})}function getSessionTab(xn,jn){let Vn=stateDb(xn).select().from(SessionTabTable).where(eq(SessionTabTable.id,jn)).get();return Vn?toSessionTab(Vn):null}function listSessionTabs(xn,jn,Vn={}){let qn=stateDb(xn);if(!Vn.includeChildSessions)return qn.select().from(SessionTabTable).where(eq(SessionTabTable.sessionId,jn)).all().map(toSessionTab);let Jn=qn.select({id:SessionTable.id}).from(SessionTable).where(eq(SessionTable.parentId,jn)).all().map((xn)=>xn.id);return qn.select().from(SessionTabTable).where(inArray(SessionTabTable.sessionId,[jn,...Jn])).all().map(toSessionTab)}function insertSessionTab(xn,jn){let Vn=nanoid3(),qn=new Date;return stateDb(xn).insert(SessionTabTable).values({...jn,id:Vn,createdAt:qn,updatedAt:qn}).run(),SessionStore.touch(xn,jn.sessionId),emitSessionTabsUpdated(xn,jn.sessionId),getSessionTab(xn,Vn)}function updateSessionTab(xn,jn,Vn){let qn=getSessionTab(xn,jn);return qn?(stateDb(xn).update(SessionTabTable).set({...Vn,updatedAt:new Date}).where(eq(SessionTabTable.id,jn)).run(),SessionStore.touch(xn,qn.sessionId),emitSessionTabsUpdated(xn,qn.sessionId),getSessionTab(xn,jn)):null}function removeSessionTab(xn,jn){let Vn=getSessionTab(xn,jn);stateDb(xn).delete(SessionTabTable).where(eq(SessionTabTable.id,jn)).run(),Vn&&(SessionStore.get(xn,Vn.sessionId)?.activeTabTargetId===Vn.targetId&&SessionStore.update(xn,Vn.sessionId,{activeTabTargetId:null}),SessionStore.touch(xn,Vn.sessionId),emitSessionTabsUpdated(xn,Vn.sessionId))}function getSessionTabByTargetId(xn,jn,Vn){let qn=stateDb(xn).select().from(SessionTabTable).where(and(eq(SessionTabTable.sessionId,jn),eq(SessionTabTable.targetId,Vn))).get();return qn?toSessionTab(qn):null}var init_session_tab_queries=__esmMin(()=>{init_drizzle_orm(),init_event_bus(),init_extension_bridge(),init_schema(),init_state_db(),init_nanoid(),init_utils$13(),init_store$1()});async function injectAnnotationOverlay(xn,jn){return await xn(({refIds:xn,overlayId:jn})=>{let Vn=document.getElementById(jn);Vn&&Vn.remove();let qn=[];for(let jn of xn){let xn=jn.match(/^(?:.*?)e(\d+)$/);if(!xn)continue;let Vn=parseInt(xn[1],10),Jn=globalThis.__omowright?.deref(jn)??null;if(!Jn)continue;let Yn=Jn.getBoundingClientRect();Yn.width<=0||Yn.height<=0||qn.push({number:Vn,x:Math.round(Yn.x),y:Math.round(Yn.y),width:Math.round(Yn.width),height:Math.round(Yn.height)})}if(qn.length===0)return 0;qn.sort((xn,jn)=>xn.number-jn.number);let Jn=window.scrollX||0,Yn=window.scrollY||0,Zn=document.createElement(`div`);Zn.id=jn,Zn.style.cssText=`position:absolute;top:0;left:0;width:0;height:0;pointer-events:none;z-index:2147483647;`;for(let xn of qn){let jn=xn.x+Jn,Vn=xn.y+Yn,qn=document.createElement(`div`);qn.style.cssText=`position:absolute;left:${jn}px;top:${Vn}px;width:${xn.width}px;height:${xn.height}px;border:2px solid rgba(255,0,0,0.8);box-sizing:border-box;pointer-events:none;`;let Qn=document.createElement(`div`);Qn.textContent=String(xn.number);let ei=Vn<14?`2px`:`-14px`;Qn.style.cssText=`position:absolute;top:${ei};left:-2px;background:rgba(255,0,0,0.9);color:#fff;font:bold 11px/14px monospace;padding:0 4px;border-radius:2px;white-space:nowrap;`,qn.appendChild(Qn),Zn.appendChild(qn)}return document.documentElement.appendChild(Zn),qn.length},{refIds:jn,overlayId:ANNOTATION_OVERLAY_ID})}async function removeAnnotationOverlay(xn){await xn((xn)=>{let jn=document.getElementById(xn);jn&&jn.remove()},ANNOTATION_OVERLAY_ID)}var ANNOTATION_OVERLAY_ID;var init_annotate_screenshot=__esmMin(()=>{ANNOTATION_OVERLAY_ID=`__omowright_annotations__`});function isStableAiTabViewport(xn){return!!xn&&xn.width>=MIN_STABLE_AI_TAB_VIEWPORT.width&&xn.height>=MIN_STABLE_AI_TAB_VIEWPORT.height}function normalizeOpenUrl(xn){return/^[a-zA-Z][a-zA-Z\d+.-]*:/.test(xn)?xn:`https://${xn}`}function urlsMatchPopupTarget(xn,jn){if(!xn||!jn||jn===`about:blank`)return false;try{return new URL(xn).href===new URL(jn).href}catch{return xn===jn}}function isPlaceholderPopupUrl(xn){return xn===`:`||xn===`about:blank`||xn.trim()===``}function isTransientPageScriptError(xn){let jn=(xn instanceof Error?xn.message:String(xn)).toLowerCase();return jn.includes(`execution context was destroyed`)||jn.includes(`cannot find context with specified id`)||jn.includes(`frame was detached`)||jn.includes(`frame has been detached`)||jn.includes(`navigating frame was detached`)||jn.includes(`most likely because of a navigation`)||jn.includes(`target page, context or browser has been closed`)||jn.includes(`target closed`)}var PAGE_SCRIPT_RETRY_COUNT;var PAGE_SCRIPT_RETRY_DELAY_MS;var OPEN_TAB_WARNING_THRESHOLD;var DEFAULT_BROWSER_FETCH_USER_AGENT;var AI_TAB_STABLE_VIEWPORT;var MIN_STABLE_AI_TAB_VIEWPORT;var OmOBrowser;var init_browser=__esmMin(()=>{init_context(),init_cdp(),init_directory(),init_event_bus(),init_extension_bridge(),init_diff(),init_utils$13(),init_session_tab_queries(),init_store$1(),init_types$8(),init_utils$4(),init_annotate_screenshot(),init_frame_manager(),init_page(),init_snapshot(),PAGE_SCRIPT_RETRY_COUNT=10,PAGE_SCRIPT_RETRY_DELAY_MS=200,OPEN_TAB_WARNING_THRESHOLD=5,DEFAULT_BROWSER_FETCH_USER_AGENT=`Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36`,AI_TAB_STABLE_VIEWPORT={width:1440,height:900},MIN_STABLE_AI_TAB_VIEWPORT={width:960,height:540},OmOBrowser=class{#e;#t;#n;#r;#i;#a=new Map;#o=new WeakMap;#s=[];#c=[];#l=new Map;#u=[];#d=[];#f=null;#p=[];#m=null;#h=null;#g;#_=new Set;#v=false;constructor(xn,jn,Vn,qn){this.#e=xn,this.#t=new SessionManager(xn),this.#n=jn,this.#r=Vn,this.#i=qn,this.#s.push(this.#e.transportEvents.on(`reconnected`,()=>{this.#g=undefined,this.#E()}),this.#e.on(`Target.targetInfoChanged`,(xn)=>{this.#y(xn.targetInfo),withoutReplContext(()=>this.#b(xn.targetInfo,{notifyRepl:false})).catch(()=>{})}),this.#e.on(`Target.targetCreated`,(xn)=>{withoutReplContext(()=>this.#b(xn.targetInfo,{notifyRepl:false})).catch(()=>{})}),this.#e.on(`Target.targetDestroyed`,(xn)=>{this.#R(xn.targetId).catch(()=>{})}))}get state(){if(!this.#m){let xn=this.#r.id,jn=SessionStore.get(this.#n,xn),Vn=listSessionTabs(this.#n,xn).map((xn)=>({sessionTabId:xn.id,targetId:xn.targetId,url:xn.url,ownership:xn.ownership,source:xn.source,...xn.data}));this.#m={activePage:Vn.find((xn)=>xn.targetId===jn?.activeTabTargetId),tabs:Vn},jn?.activeTabTargetId&&!this.#m.activePage&&console.warn(`[OmOBrowser.state] Stale activeTabTargetId ${jn.activeTabTargetId} for session ${xn}`)}return this.#m}setActiveTab(xn){SessionStore.update(this.#n,this.#r.id,{activeTabTargetId:xn}),this.#m=null}addNewTabState(xn){let jn=this.#r.id;if(!SessionStore.get(this.#n,jn))throw Error(`Cannot create session tab: parent session ${jn} no longer exists`);if(xn.targetId){let Vn=getSessionTabByTargetId(this.#n,jn,xn.targetId);if(Vn)return this.#m=null,Vn}let Vn=insertSessionTab(this.#n,{sessionId:jn,targetId:xn.targetId,url:xn.url,ownership:xn.ownership,source:xn.source,data:{title:xn.title??``,viewport:xn.viewport??AI_TAB_STABLE_VIEWPORT,...xn.iconUrl===undefined?{}:{iconUrl:xn.iconUrl}}});return this.#m=null,Vn}#y(xn){if(xn.type!==`page`||!xn.targetId)return;let jn=getSessionTabByTargetId(this.#n,this.#r.id,xn.targetId);if(!jn)return;let Vn=xn.url?.trim()||jn.url,qn=Vn!==jn.url,Jn=xn.title?.trim()||(qn?``:jn.data.title),Yn=xn.faviconUrl?.trim(),Zn=xn.faviconUrl!==undefined||qn,Qn=Zn?{...jn.data}:jn.data;Zn&&(delete Qn.iconUrl,Yn&&(Qn.iconUrl=Yn)),!(jn.url===Vn&&jn.data.title===Jn&&jn.data.iconUrl===Qn.iconUrl)&&(qn&&delete Qn.snapshot,updateSessionTab(this.#n,jn.id,{url:Vn,data:{...Qn,title:Jn}}),qn&&this.setActiveTab(jn.targetId),this.#m=null)}async#b(xn,jn={}){let Vn=xn.targetId;if(xn.type!==`page`||!Vn||this.#B(Vn))return;let qn=xn.openerId,Jn=this.#S({openerFrameId:xn.openerFrameId,openerTargetId:qn});if(Jn){await this.#L(Vn,Jn,jn);return}let Yn=this.#z(xn.url??``);Yn&&await this.#L(Vn,Yn.openerTargetId,jn)}async#x(xn={}){let{targetInfos:jn}=await this.#e.send(`Target.getTargets`).catch(()=>({targetInfos:[]}));await Promise.all(jn.map((jn)=>this.#b(jn,xn)))}#S({openerFrameId:xn,openerTargetId:jn}){if(jn){if(this.#a.has(jn)||this.state.tabs.some((xn)=>xn.targetId===jn))return jn;for(let[xn,Vn]of this.#a)if(Vn.frameManager.getFrame(jn))return xn}if(!xn)return null;for(let[jn,Vn]of this.#a)if(Vn.frameManager.getFrame(xn))return jn;return null}async updateTabState(xn,jn={}){if(!this.#a.has(xn.targetId))return null;let[Vn,qn]=await Promise.all([xn.title().catch(()=>``),this.#O(xn)]);xn.setCachedViewportSize(qn);let Jn=this.#B(xn.targetId);if(!Jn)return null;let Yn=getSessionTab(this.#n,Jn);if(!Yn)return null;let Zn=updateSessionTab(this.#n,Jn,{targetId:xn.targetId,url:jn.url??xn.url(),data:{...Yn.data,title:jn.title??Vn,viewport:jn.viewport??qn,...jn.iconUrl===undefined?{}:{iconUrl:jn.iconUrl},...jn.latestScreenshotPath===undefined?{}:{latestScreenshotPath:jn.latestScreenshotPath},...jn.snapshot===undefined?{}:{snapshot:jn.snapshot}}});return this.#m=null,Zn}removeTab(xn,jn){let Vn=getSessionTab(this.#n,xn);if(!Vn)return;let qn=SessionStore.get(this.#n,Vn.sessionId);removeSessionTab(this.#n,xn),qn?.activeTabTargetId===Vn.targetId&&(this.setActiveTab(null),!jn?.agentInitiated&&qn.status===`running`&&Promise.resolve().then(()=>(init_agent_session_server(),agent_session_server_exports)).then(({GlobalAgentSessionServer:xn})=>xn.sendSystemMessage(this.#n,Vn.sessionId,`The active browser tab for this session just closed.
1476
+ Closed tab: ${Vn.data.title??`Unknown`} (${Vn.url})`,{kind:`tab_lifecycle`,mode:`steer`})).catch((xn)=>{console.warn(`[OmOBrowser] Failed to send tab lifecycle system message`,xn)})),this.#m=null}get page(){return this.#f}set page(xn){if(xn!==null&&!(xn instanceof OmOPage))throw Error(`page must be set to null or an OmOPage instance`);this.#f=xn,this.setActiveTab(xn?.targetId??null)}get tabs(){return this.#p}get extensionBridgeRoute(){return this.#j()}refreshBrowserBinding(xn){this.#r.browserBinding=xn,this.#g=undefined}async resolvePageSession(xn,jn){return await this.#t.resolvePageSession(xn,jn)}async ensurePage(xn){let jn=this.#a.get(xn);if(jn)return jn.page;if(this.#v)throw Error(`Browser is disposed`);if(!await this.#t.getPageTarget(xn))throw Error(`Tab ${xn} is no longer available.`);await this.#F(xn);let Vn=await this.resolvePageSession(xn),qn=new FrameManager(this.#e,xn,Vn);await qn.initialize();let Jn=new OmOPage(this.#e,qn,xn,Vn,this),Yn={frameManager:qn,page:Jn,unsubscribers:this.#V(Jn,Vn)};return this.#a.set(xn,Yn),Jn}async syncVmContext(xn,jn={}){for(let xn of this.#d.splice(0))replPrint(xn);if(await this.#x({notifyRepl:jn.notifyRecoveredPopups}),jn.notifyRecoveredPopups)for(let xn of this.#u.splice(0))replPrint(xn);this.#m=null;let Vn=this.state.tabs.map((xn)=>xn.targetId).filter((xn)=>!!xn),qn=(await Promise.all(Vn.map((xn)=>this.ensurePage(xn).catch(()=>null)))).filter((xn)=>xn!==null);this.#p=qn,xn.tabs=qn;let Jn=this.#f&&qn.some((xn)=>xn.targetId===this.#f.targetId),Yn=qn.find((xn)=>xn.targetId===this.state.activePage?.targetId)??null,Zn=Jn?this.#f:Yn;xn.page=Zn,this.#f=Zn}#C(){let{tabs:xn,activePage:jn}=this.state;if(xn.length===0){this.#T(`[system] no current open tabs in this session.`);return}this.#T(`[system] current open tabs in this session (${xn.length}):
1477
+ `+xn.map(({title:xn,url:Vn,targetId:qn},Jn)=>` - \`tabs[${Jn}]\`: ${qn===jn?.targetId?`(active) `:``}${xn} (${truncateUrlForLLM(Vn)})`).join(`
1478
+ `))}async openTab(xn){if(this.#v)throw Error(`Browser is disposed`);let jn=this.state.activePage?.targetId??this.#f?.targetId??this.#r.browserBinding?.anchorTargetId,{targetId:Vn}=await sendCommandToExtension({method:`OmO.createAgentTab`,params:{url:normalizeOpenUrl(xn),...jn?{anchorTargetId:jn}:{}}},this.#j());try{let jn=await this.ensurePage(Vn),qn=await this.#O(jn),Jn=this.addNewTabState({targetId:jn.targetId,url:xn,viewport:qn,ownership:`owned`,source:`open_tab`});this.setActiveTab(Jn.targetId),this.#p=[...this.#p.filter((xn)=>xn.targetId!==Vn),jn],await jn.waitForLoadState(`stable`,5000).catch((jn)=>{console.warn(`[browser] openTab: waitForLoadState failed`,{targetId:Vn,url:xn,error:jn instanceof Error?jn.message:String(jn)})});let Yn=await this.updateTabState(jn);await this.#w(Vn,xn,`openTab`),this.page=jn;let Zn=this.#p.length-1;return this.#T(`✔︎ Opened a new tab and set it active: tabs[${Zn}], page → ${Yn?.data?.title??`(no title)`} (${jn.url({truncate:true})})`),this.#p.length>=OPEN_TAB_WARNING_THRESHOLD&&this.#T(`[warning] ${this.#p.length} tabs are open. Close tabs you do not need as you work.`),jn}catch(jn){throw await this.#A(Vn),sendCommandToExtension({method:`OmO.controlTab`,params:{action:`close`,targetId:Vn,url:xn}},this.#j()).catch(()=>{}),jn}}async openPopupTab(xn,jn){if(this.#v)throw Error(`Browser is disposed`);let Vn=normalizeOpenUrl(xn);await this.#F(jn);let{targetId:qn}=await sendCommandToExtension({method:`OmO.createAgentTab`,params:{url:Vn,anchorTargetId:jn}},this.#j());try{await this.#L(qn,jn)}catch(xn){throw await this.#A(qn),sendCommandToExtension({method:`OmO.controlTab`,params:{action:`close`,targetId:qn,url:Vn}},this.#j()).catch(()=>{}),xn}}async closeTab(xn,jn={}){let Vn=xn.targetId,qn=this.state.tabs.find((xn)=>xn.targetId===Vn);if(!qn)throw Error(`Tab ${Vn} is not tracked in this session.`);if(qn.ownership!==`owned`){let xn=this.#B(Vn);xn&&this.removeTab(xn,{agentInitiated:true}),await this.#R(Vn);return}let Jn=this.#B(Vn);Jn&&this.removeTab(Jn,{agentInitiated:true});let Yn=false,Zn=false,Qn=this.#e.on(`Target.targetDestroyed`,(xn)=>{xn.targetId===Vn&&(Yn=true)});try{let qn=sendCommandToExtension({method:`OmO.controlTab`,params:{action:`close`,targetId:Vn,url:xn.url()}},this.#j()).catch(async(xn)=>{if(!Yn&&await this.#t.getPageTarget(Vn).catch(()=>null))throw xn}).finally(()=>{Zn=true});if(jn.runBeforeUnload)await qn;else{for(;!Yn&&!Zn&&await this.#t.getPageTarget(Vn).catch(()=>null);)await sleep$12(50);await Promise.race([qn,sleep$12(Yn?250:0)]),Yn||await qn}}finally{Qn()}await this.#R(Vn)}async closeOwnedTabs(){let xn=this.state.tabs.filter((xn)=>xn.ownership===`owned`&&xn.targetId);await Promise.allSettled(xn.map(async(xn)=>{let jn=xn.targetId;await this.#A(jn),await sendCommandToExtension({method:`OmO.controlTab`,params:{action:`close`,targetId:jn,url:xn.url,skipIfActive:true}},this.#j()).catch(()=>{})})),this.#m=null}async dispose(xn={}){let{closeOwnedTabs:jn=true}=xn;if(!this.#v){this.#v=true,this.#h=null;for(let xn of this.#s)xn();this.#s.length=0,jn&&await this.closeOwnedTabs().catch(()=>{});for(let xn of this.#a.keys())await this.#A(xn);await this.#t.dispose(),this.#p=[],this.#f=null}}async installPageScript(xn,jn,Vn){let qn;for(let Jn=0;Jn<PAGE_SCRIPT_RETRY_COUNT;Jn+=1)try{let qn=this.#o.get(xn)??new Map,Jn=qn.get(jn);if(Jn){await Jn;return}let Yn=xn.evaluate(Vn).then(()=>{});qn.set(jn,Yn),this.#o.set(xn,qn),await Yn;return}catch(Vn){if(qn=Vn,this.#o.get(xn)?.delete(jn),Jn===PAGE_SCRIPT_RETRY_COUNT-1||!isTransientPageScriptError(Vn))throw Vn;await sleep$12(PAGE_SCRIPT_RETRY_DELAY_MS)}if(qn)throw qn}async snapshot(xn,jn={}){if(jn.selector&&!await xn.evaluate((xn)=>!!document.querySelector(xn),jn.selector))throw Error(`Selector "${jn.selector}" matched no elements on page.`);let Vn=xn.targetId,qn=xn.url();this.#r.runtimeConfig.takeScreenshotOnEverySnapshot&&withoutReplContext(async()=>{let jn=`./tmp/screenshot-${Date.now()}.webp`;await mkdir(path.dirname(this.resolvePath(jn)),{recursive:true});let Vn=await this.#O(xn);await xn.screenshot({type:`webp`,path:jn,clip:{x:0,y:0,width:Vn.width,height:Vn.height}}),await this.updateTabState(xn,{latestScreenshotPath:jn})}).catch((xn)=>{console.warn(`[OmOBrowser] Failed to capture automatic snapshot screenshot`,xn)});let[Jn,Yn]=await Promise.all([takeSnapshot(this.#e,xn.frameManager,jn),xn.title().catch(()=>``)]),Zn=this.state.tabs.find((xn)=>xn.targetId===Vn)?.snapshot?.tree??``;await this.updateTabState(xn,{snapshot:Jn}),this.emitBrowserEvent(`browser:snapshot`,{targetId:Vn,url:qn,options:jn,snapshot:Jn});let Qn=[jn.interactive&&`# note: interactive (clickable / focusable) elements only.`,jn.showHidden&&`# note: hidden elements are shown.`,`- title: "${Yn}" [url=${truncateUrlForLLM(qn)}]`,Jn.tree].filter((xn)=>!!xn).join(`
1479
+ `),ei=diff(Zn,Jn.tree);return{tree:Qn,refs:Jn.refs,diff:ei.length>Qn.length?Qn:ei}}async annotatedScreenshot(xn){let jn=await xn.snapshot({interactive:true}),Vn=await xn.frameManager.ensureInjected(xn.frameManager.mainFrameId),qn=async(jn,qn)=>{let{result:Jn,exceptionDetails:Yn}=await xn._sendToTarget(`Runtime.callFunctionOn`,{functionDeclaration:`function(arg) { return (${jn.toString()})(arg); }`,arguments:[{value:qn}],executionContextId:Vn,returnByValue:true,awaitPromise:true});if(Yn)throw Error(Yn.text??`Annotation overlay failed`);return Jn.value},Jn=false;try{return Jn=await injectAnnotationOverlay(qn,Object.keys(jn.refs))>0,{base64Image:(await xn.screenshot({type:`png`})).toString(`base64`)}}finally{Jn&&await removeAnnotationOverlay(qn).catch(()=>{})}}async getUserAgent(){return(await this.#e.send(`Browser.getVersion`,undefined).catch(()=>null))?.userAgent}async fetch(xn,jn={}){let Vn=xn.toString(),[qn,Jn]=await Promise.all([this.getCookiesForUrl(Vn),this.getUserAgent()]),Yn=new Headers(jn.headers);return qn&&!Yn.has(`Cookie`)&&Yn.set(`Cookie`,qn),Yn.has(`User-Agent`)||Yn.set(`User-Agent`,Jn??DEFAULT_BROWSER_FETCH_USER_AGENT),fetch(Vn,{...jn,headers:Yn})}async getCookiesForUrl(xn){let jn=this.#f?.targetId??this.state.activePage?.targetId??this.#r.browserBinding?.anchorTargetId;if(!jn)return;let Vn=await(this.#a.get(jn)?.page??await this.ensurePage(jn))._sendToTarget(`Network.getCookies`,{urls:[xn]});if(Vn.cookies.length)return Vn.cookies.map((xn)=>`${xn.name}=${xn.value}`).join(`; `).trim()||undefined}getPageSnapshot(xn){let jn=`targetId`in xn?xn.targetId:xn.page?.targetId;if(jn)return this.state.tabs.find((xn)=>xn.targetId===jn)?.snapshot}resolvePath(xn){return resolveSessionPath(getSessionStorageDir(this.#r,this.#n),xn,getSharedSessionStorageDir(this.#r,this.#n))}registerReadableDownloadPath(xn){let jn=path.resolve(xn);return this.#_.add(jn),jn}isReadableDownloadPath(xn){return this.#_.has(path.resolve(xn))}async ensurePath(xn,jn,Vn){let qn=this.resolvePath(xn),Jn=getCurrentReplToolCallId();if(!this.#i||!Jn)return qn;let Yn={toolCallId:Jn,path:qn,mode:jn,source:Vn};return await this.#i.trigger(`file.access`,Yn,Yn),qn}get daemonSession(){return{accountId:this.#n,id:this.#r.id,projectId:this.#r.projectId}}async#w(xn,jn,Vn){try{await sendCommandToExtension({method:`OmO.ensureTabInAiTabsGroup`,params:{targetId:xn}},this.#j())}catch(qn){let Jn=qn instanceof Error?qn.message:String(qn);console.warn(`[browser] ${Vn}: failed to move tab into Agent Tabs group`,{targetId:xn,url:jn,error:Jn}),this.#T(`[warning] Failed to move tab into Agent Tabs group: ${Jn}`)}}#T(xn){hasActiveReplContext()?replPrint(xn):this.#d.push(xn)}emitBrowserEvent(xn,jn){EventBus.emit(xn,[jn,{session:this.#r}]).catch((jn)=>{console.warn(`[omowright-browser] Failed to emit ${xn}`,jn)})}#E(){this.#v||this.#h||(this.#h=this.#D().finally(()=>{this.#h=null}))}async#D(){if(!this.#v){this.#t.clear();for(let[xn,jn]of this.#a)try{if(!await this.#t.getPageTarget(xn)){await this.#I(xn);continue}let Vn=await this.resolvePageSession(xn);for(let xn of jn.unsubscribers)xn();jn.unsubscribers=this.#V(jn.page,Vn),await jn.frameManager.reconnect(Vn),jn.page.reconnect(Vn),await this.updateTabState(jn.page).catch(()=>{})}catch{await this.#I(xn)}this.#p=this.#p.filter((xn)=>this.#a.has(xn.targetId)),this.#f&&!this.#a.has(this.#f.targetId)&&(this.#f=null)}}async#O(xn){let jn=this.#k(xn),Vn=await xn.refreshViewportSize().catch(()=>jn);return isStableAiTabViewport(Vn)?Vn:(xn.setCachedViewportSize(jn),jn)}#k(xn){let jn=xn.viewportSize();if(isStableAiTabViewport(jn))return jn;let Vn=getSessionTabByTargetId(this.#n,this.#r.id,xn.targetId)?.data.viewport;return isStableAiTabViewport(Vn)?Vn:AI_TAB_STABLE_VIEWPORT}async#A(xn){let jn=this.#a.get(xn),Vn=this.#t.getTargetSession(xn);if(Vn&&await this.#e.send(`Target.detachFromTarget`,{sessionId:Vn}).catch(()=>{}),jn){this.#a.delete(xn);for(let xn of jn.unsubscribers)xn();await jn.page.dispose().catch(()=>{}),await jn.frameManager.dispose().catch(()=>{})}}#j(){let xn=this.#r.browserBinding;if(!xn)throw Error(BROWSER_BINDING_REQUIRED_MESSAGE);return{accountId:this.#n,profileId:xn.profileId,windowId:xn.windowId}}async#M(xn){return(await this.#e.send(`Target.getTargetInfo`,{targetId:xn}).catch(()=>null))?.targetInfo.browserContextId}async#N(xn){let{owned:jn}=await sendCommandToExtension({method:`OmO.ownsTarget`,params:{targetId:xn}},this.#j());return jn}async#P(){if(this.#g)return this.#g;let xn=this.#r.browserBinding,jn=new Set([this.#r.activeTabTargetId,xn?.anchorTargetId].filter((xn)=>!!xn));for(let xn of jn){if(!await this.#N(xn))continue;let jn=await this.#M(xn);if(jn)return this.#g=jn,jn}}async#F(xn){if(!await this.#N(xn))throw Error(`Tab ${xn} belongs to a different browser profile.`);let jn=await this.#M(xn);if(!jn)throw Error(`Unable to verify the browser profile for tab ${xn}.`);let Vn=await this.#P();if(Vn&&jn!==Vn)throw Error(`Tab ${xn} belongs to a different browser profile.`);this.#g??=jn}async#I(xn){await this.#A(xn),this.#p=this.#p.filter((jn)=>jn.targetId!==xn),this.#f?.targetId===xn&&(this.#f=null)}async#L(xn,jn,Vn={}){let qn=this.#l.get(xn);if(qn){await qn;return}if(this.#B(xn))return;let Jn=(async()=>{this.#m=null;let qn=await this.ensurePage(xn);await this.#w(xn,qn.url(),`trackPopupTarget`),await qn.waitForLoadState(`stable`,5000).catch(()=>{});let[Jn,Yn]=await Promise.all([qn.title().catch(()=>``),this.#O(qn)]),Zn=qn.url();if(isPlaceholderPopupUrl(Zn)){await this.#A(xn),sendCommandToExtension({method:`OmO.controlTab`,params:{action:`close`,targetId:xn,url:Zn}},this.#j()).catch(()=>{});return}qn.setCachedViewportSize(Yn),this.addNewTabState({targetId:xn,url:Zn,title:Jn,viewport:Yn,ownership:`owned`,source:`popup`}),this.#p=[...this.#p.filter((jn)=>jn.targetId!==xn),qn];let Qn=this.#p.length-1,ei=`[system] popup opened: ${Jn??`(no title)`} (${truncateUrlForLLM(Zn)})
1480
+ to use, explicitly access it via \`tabs[${Qn}]\` or switch it with \`page = tabs[${Qn}];\``;Vn.notifyRepl??true?this.#T(ei):this.#u.push(ei),this.emitBrowserEvent(`browser:popup`,{targetId:xn,openerTargetId:jn,url:Zn})})().finally(()=>{this.#l.delete(xn)});this.#l.set(xn,Jn),await Jn}async#R(xn){if(!this.#p.find((jn)=>jn.targetId===xn)&&!this.#a.has(xn))return;let jn=this.#B(xn),Vn=this.#f?.targetId===xn;if(await this.#A(xn),jn&&(this.removeTab(jn),this.#m=null),this.#p=this.#p.filter((jn)=>jn.targetId!==xn),Vn){let xn=(this.#p.length>0?this.#p[this.#p.length-1]:null)??null;this.#f=xn,xn?(this.setActiveTab(xn.targetId),this.#T(`[system] tab closed. \`page\` is changed to the last tab: ${xn.url({truncate:true})}`)):this.#T("[system] last tab closed. `page` is now null. call openTab(url) to open a new one."),this.#C()}else{let xn=this.state.activePage?.targetId;this.#f=xn?this.#p.find((jn)=>jn.targetId===xn)??null:null}}#z(xn){let jn=Date.now();for(;this.#c.length>0&&jn-this.#c[0].timestamp>1e4;)this.#c.shift();if(this.#c.length===1&&(!xn||xn===`about:blank`))return this.#c.shift()??null;let Vn=this.#c.findIndex((jn)=>urlsMatchPopupTarget(jn.url,xn));if(Vn===-1)return null;let[qn]=this.#c.splice(Vn,1);return qn??null}#B(xn){return xn?getSessionTabByTargetId(this.#n,this.#r.id,xn)?.id??null:null}#V(xn,jn){return[xn.on(`framenavigated`,(jn)=>{(!xn.frameManager.mainFrameId||jn.frameId===xn.frameManager.mainFrameId)&&this.updateTabState(xn).then(async(jn)=>{if(!jn)return;let Vn=xn.url(),qn=this.#i?await this.#i.trigger(`browser.navigation`,{page:xn,url:Vn},{url:Vn}):{url:Vn},Jn=this.#p.findIndex((jn)=>jn.targetId===xn.targetId),Yn=this.#f?.targetId===xn.targetId?`page`:`tabs[${Jn}]`;this.#T(`[system] \`${Yn}\` navigated to: [${jn.data.title}](${truncateUrlForLLM(Vn)}) `),this.emitBrowserEvent(`browser:navigation`,{targetId:xn.targetId,url:qn.url})}).catch(()=>{})}),this.#e.on(`Page.javascriptDialogOpening`,(jn,Vn)=>{if(!Vn.sessionId||!xn.frameManager.hasSession(Vn.sessionId))return;let qn={targetId:xn.targetId,url:jn.url,type:jn.type,message:jn.message,defaultPrompt:jn.defaultPrompt??``};this.emitBrowserEvent(`browser:alert`,qn);let Jn=this.#p.findIndex((jn)=>jn.targetId===xn.targetId),Yn=this.#f?.targetId===xn.targetId?`page`:`tabs[${Jn}]`,Zn=qn.type===`prompt`?`[system] \`${Yn}\` showed a prompt dialog: "${qn.message}" (default: "${qn.defaultPrompt}"). options: [OK (text input)] [Cancel]. auto-accepted with default value.`:qn.type===`confirm`?`[system] \`${Yn}\` showed a confirm dialog: "${qn.message}". options: [OK] [Cancel]. auto-accepted (OK).`:`[system] \`${Yn}\` showed an alert: "${qn.message}". auto-accepted.`;this.#T(Zn),this.updateTabState(xn,{url:jn.url}).catch(()=>{})}),xn.on(`popup`,(jn)=>{this.#c.push({openerTargetId:xn.targetId,url:jn.url,timestamp:Date.now()})}),xn.on(`download`,async(jn)=>{let Vn=await withoutReplContext(()=>jn.path()).catch((xn)=>{let Vn=xn instanceof Error?xn.message:String(xn);try{this.#T(`[system] download started: ${jn.suggestedFilename()} (${Vn})`)}catch{}return null});if(!Vn)return;let qn=jn.url();this.#i&&await this.#i.trigger(`browser.download`,{page:xn,url:qn,path:Vn},{path:Vn}),this.#T(`[system] downloading file: ${jn.suggestedFilename()} to ${Vn}`),this.emitBrowserEvent(`browser:download`,{targetId:xn.targetId,url:qn,path:Vn,suggestedFilename:jn.suggestedFilename()})})]}}});function defaultVideoSize(xn){let jn=Math.min(1,DEFAULT_VIDEO_MAX_EDGE/xn.width,DEFAULT_VIDEO_MAX_EDGE/xn.height),Vn=Math.max(2,Math.round(xn.width*jn)),qn=Math.max(2,Math.round(xn.height*jn));return{height:qn%2==0?qn:qn+1,width:Vn%2==0?Vn:Vn+1}}function inferVideoFormat(xn){return xn.format?xn.format:xn.path?.toLowerCase().endsWith(`.mp4`)?`mp4`:DEFAULT_VIDEO_FORMAT}async function ensureDirForFile(xn){await fs$16.mkdir(path.dirname(xn),{recursive:true})}async function readProcessStderr(xn){return await readProcessStream(xn.stderr).catch(()=>``)}var DEFAULT_VIDEO_FORMAT;var DEFAULT_VIDEO_FRAMERATE;var DEFAULT_VIDEO_JPEG_QUALITY;var DEFAULT_VIDEO_MAX_EDGE;var FfmpegVideoRecorder;var OmOVideo;var init_video=__esmMin(()=>{init_context(),init_process(),init_browser(),DEFAULT_VIDEO_FORMAT=`webm`,DEFAULT_VIDEO_FRAMERATE=25,DEFAULT_VIDEO_JPEG_QUALITY=90,DEFAULT_VIDEO_MAX_EDGE=800,FfmpegVideoRecorder=class{#e;#t;#n=0;#r=false;#i=null;#a=Promise.resolve();#o=0;#s=[];constructor(xn,jn,Vn,qn){this.#e=Vn;let Jn=qn===`mp4`?[`-c:v`,`libx264`,`-movflags`,`+faststart`]:[`-c:v`,`libvpx`,`-qmin`,`0`,`-qmax`,`50`,`-crf`,`8`,`-deadline`,`realtime`,`-speed`,`8`,`-b:v`,`1M`];this.#t=spawnCommand([`ffmpeg`,`-loglevel`,`error`,`-f`,`image2pipe`,`-avioflags`,`direct`,`-fpsprobesize`,`0`,`-probesize`,`32`,`-analyzeduration`,`0`,`-c:v`,`mjpeg`,`-i`,`pipe:0`,`-y`,`-an`,`-r`,String(Vn),...Jn,`-threads`,`1`,`-vf`,`scale=${jn.width}:${jn.height}:force_original_aspect_ratio=decrease,pad=${jn.width}:${jn.height}:(ow-iw)/2:(oh-ih)/2:gray`,`-pix_fmt`,`yuv420p`,xn],{stdio:[`pipe`,`ignore`,`pipe`]})}writeFrame(xn,jn){if(this.#r)return;this.#n||=jn;let Vn=Math.floor((jn-this.#n)*this.#e);if(this.#i){let xn=Vn-this.#i.frameNumber;for(let jn=0;jn<xn;jn+=1)this.#s.push(this.#i.buffer);this.#a=this.#a.then(()=>this.#c())}this.#i={buffer:xn,frameNumber:Vn,timestamp:jn},this.#o=Date.now()}async stop(xn){if(this.#r)return;if(!this.#i){if(!xn)throw Error(`Video recorder did not capture any frames.`);this.writeFrame(xn,Date.now()/1000)}let jn=this.#i;if(!jn)throw Error(`Video recorder did not capture any frames.`);let Vn=Math.max((Date.now()-this.#o)/1000,1);if(this.writeFrame(Buffer.from([]),jn.timestamp+Vn),this.#r=true,await withCurrentReplAbort(async()=>await this.#a),!this.#t.stdin)throw Error(`ffmpeg stdin is unavailable.`);let qn=this.#t.stdin;await withCurrentReplAbort(async()=>await endProcessInput(qn));let Jn=await withCurrentReplAbort(async()=>await waitForExitCode(this.#t));if(Jn!==0){let xn=await readProcessStderr(this.#t);throw Error(xn.trim()||`ffmpeg exited with code ${Jn}`)}}async#c(){if(!this.#t.stdin)throw Error(`ffmpeg stdin is unavailable.`);let xn=this.#t.stdin;for(;this.#s.length>0;){let jn=this.#s.shift();if(!(!jn||jn.length===0))try{await withCurrentReplAbort(async()=>await writeProcessChunk(xn,jn))}catch(xn){let jn=(await readProcessStderr(this.#t)).trim();throw Error(jn.length>0?`ffmpeg rejected video frame input: ${jn}`:xn instanceof Error?xn.message:String(xn))}}}},OmOVideo=class{#e;#t=null;#n=null;constructor(xn){this.#e=xn}async start(xn={}){return await withCurrentReplAbort(async()=>{if(this.#t)throw Error(`Video recording is already active.`);let jn=await this.#e.resolveSessionId(),Vn=this.#e.viewportSize()??await this.#e.refreshViewportSize().catch(()=>null)??AI_TAB_STABLE_VIEWPORT,qn=inferVideoFormat(xn),Jn=xn.size??defaultVideoSize(Vn),Yn=await this.#e.browser.ensurePath(xn.path??`video-${Date.now()}.${qn}`,`write`,`page.video.start`),Zn=xn.quality??DEFAULT_VIDEO_JPEG_QUALITY,Qn=xn.framerate??DEFAULT_VIDEO_FRAMERATE;await ensureDirForFile(Yn);let ei=new FfmpegVideoRecorder(Yn,Jn,Qn,qn),{promise:ti,resolve:ni,reject:ri}=Promise.withResolvers(),ii=this.#e.cdp.on(`Page.screencastFrame`,(xn,Vn)=>{if(Vn.sessionId!==jn)return;let qn=Buffer.from(xn.data,`base64`),Jn=xn.metadata?.timestamp??Date.now()/1000;ei.writeFrame(qn,Jn),this.#e.cdp.send(`Page.screencastFrameAck`,{sessionId:xn.sessionId},jn).catch(()=>{})});this.#t={completion:ti,format:qn,outputPath:Yn,pendingCopies:new Set,recorder:ei,rejectCompletion:ri,resolveCompletion:ni,sessionId:jn,unsubscribe:ii},this.#n=Yn;try{await this.#e.cdp.send(`Page.startScreencast`,{everyNthFrame:1,format:`jpeg`,maxHeight:Jn.height,maxWidth:Jn.width,quality:Zn},jn)}catch(xn){throw ii(),this.#t=null,this.#n=null,ri(xn),xn}})}async stop(xn={}){return await withCurrentReplAbort(async()=>{let jn=this.#t;if(!jn)throw Error(`Video recording has not been started.`);this.#t=null,jn.unsubscribe(),await this.#e.cdp.send(`Page.stopScreencast`,undefined,jn.sessionId).catch(()=>{});try{let Vn=await this.#e.screenshot({type:`jpeg`}).catch(()=>{return}),qn=xn.path?await this.#e.browser.ensurePath(xn.path,`write`,`page.video.stop`):jn.outputPath;await jn.recorder.stop(Vn),qn!==jn.outputPath&&(await ensureDirForFile(qn),await fs$16.copyFile(jn.outputPath,qn)),this.#n=qn;for(let xn of jn.pendingCopies){let jn=await this.#e.browser.ensurePath(xn,`write`,`page.video.saveAs`);jn!==qn&&(await ensureDirForFile(jn),await fs$16.copyFile(qn,jn))}jn.resolveCompletion(qn)}catch(xn){throw jn.rejectCompletion(xn),xn}})}async path(){if(this.#t)return this.#t.outputPath;if(this.#n)return this.#n;throw Error(`Video recording has not been started.`)}async saveAs(xn){return await withCurrentReplAbort(async()=>{let jn=await this.#e.browser.ensurePath(xn,`write`,`page.video.saveAs`);if(this.#t){this.#t.pendingCopies.add(xn),await this.#t.completion;return}if(!this.#n)throw Error(`Video recording has not been started.`);await ensureDirForFile(jn),await fs$16.copyFile(this.#n,jn)})}async delete(){return await withCurrentReplAbort(async()=>{if(this.#t&&await this.stop(),!this.#n)throw Error(`Video recording has not been started.`);let xn=this.#n;this.#n=null,await fs$16.unlink(xn).catch(()=>{})})}}});function isOmOEvaluateOptions(xn){if(typeof xn!=`object`||!xn||Array.isArray(xn))return false;let jn=Object.keys(xn);return jn.length===1&&jn[0]===`userGesture`}function resolveEvaluateCall(xn,jn,Vn){if(Vn!==undefined&&!isOmOEvaluateOptions(Vn))throw Error(`page.evaluate() accepts a single optional argument. Pass multiple values as one object or array, e.g. page.evaluate(fn, [a, b]).`);return typeof xn==`string`&&isOmOEvaluateOptions(jn)?{actualArg:undefined,evaluateOptions:jn}:{actualArg:jn,evaluateOptions:Vn??{}}}function clampScreenshotClipToTextureLimit(xn,jn){let Vn=Math.max(1,Math.floor(MAX_SCREENSHOT_TEXTURE_SIZE/(Number.isFinite(jn)&&jn>0?jn:1)));return{...xn,width:Math.max(1,Math.min(xn.width,Vn)),height:Math.max(1,Math.min(xn.height,Vn))}}function normalizeScreenshotTimeout(xn){if(xn!==undefined){if(!Number.isFinite(xn)||xn<0)throw Error(`page.screenshot: timeout must be a non-negative number`);return xn}}function screenshotCaptureLabel(xn){return xn.clip?`clipped screenshot`:xn.fullPage?`full-page screenshot`:`viewport screenshot`}function formatScreenshotError(xn){return xn instanceof Error?xn.message:String(xn)}function rewriteCaptureScreenshotError(xn,jn,Vn){let qn=formatScreenshotError(xn);if(qn!==`CDP command timeout: Page.captureScreenshot`)return xn instanceof Error?xn:Error(qn);let Jn=jn===undefined?`the default screenshot timeout`:jn===0?`a disabled page.screenshot timeout`:`the requested ${jn}ms page.screenshot timeout`;return Error(`page.screenshot: browser CDP command timed out while capturing ${Vn} before ${Jn} completed`)}function isCaptureScreenshotTimeout(xn){let jn=formatScreenshotError(xn);return jn===`CDP command timeout: Page.captureScreenshot`||jn.startsWith(`page.screenshot: browser CDP command timed out while capturing `)}function formatPdfLength(xn){if(xn!==undefined)return typeof xn==`number`?`${xn}px`:xn}var DEFAULT_WAIT_TIMEOUT_MS;var NETWORK_IDLE_MS;var MAX_SCREENSHOT_TEXTURE_SIZE;var FILECHOOSER_OOPIF_FALLBACK_MS;var OmOPage;var init_page=__esmMin(()=>{init_emittery(),init_context(),init_extension_bridge(),init_notification_grants(),init_utils$13(),init_client$6(),init_errors$3(),init_utils$4(),init_console_capture(),init_download(),init_file_chooser(),init_frame(),init_frame_manager(),init_keyboard(),init_locator(),init_mouse(),init_snapshot(),init_video(),init_wait(),DEFAULT_WAIT_TIMEOUT_MS=30000,NETWORK_IDLE_MS=500,MAX_SCREENSHOT_TEXTURE_SIZE=16384,FILECHOOSER_OOPIF_FALLBACK_MS=2000,OmOPage=class{cdp;frameManager;targetId;modifierState;mouse;keyboard;events=new Emittery;browser;#e=new Map;#t=null;#n;#r=``;#i=null;#a=[];#o=null;#s=false;#c=0;constructor(xn,jn,Vn,qn,Jn){this.cdp=xn,this.frameManager=jn,this.targetId=Vn,this.modifierState=new ModifierState,this.mouse=new OmOMouse(this,this.modifierState),this.keyboard=new OmOKeyboard(this,this.modifierState),this.browser=Jn,this.#n=qn,this.#r=this.frameManager.getFrame(this.frameManager.mainFrameId)?.url??``,this.#l()}#l(){let xn=new Set,jn=(xn)=>{replPrint(`[error] page event listener threw: ${xn instanceof Error?xn.message:xn}`)};this.#u(`Page.frameNavigated`,(xn)=>{xn.frame.parentId||(this.#r=xn.frame.url)}),this.#u(`Page.loadEventFired`,()=>{this.events.emit(`load`).catch(jn)}),this.#u(`Page.domContentEventFired`,()=>{this.events.emit(`domcontentloaded`).catch(jn)}),this.#u(`Page.javascriptDialogOpening`,(xn)=>{this.events.emit(`dialog`,{type:xn.type,message:xn.message,defaultPrompt:xn.defaultPrompt??``,url:xn.url}).catch(jn)}),this.#a.push(this.cdp.on(`Page.fileChooserOpened`,(xn,Vn)=>{!Vn.sessionId||!xn.backendNodeId||this.events.emit(`filechooser`,new FileChooser(this,xn.frameId,xn.backendNodeId,xn.mode===`selectMultiple`)).catch(jn)})),this.#u(`Page.frameAttached`,(xn)=>{this.events.emit(`frameattached`,{frameId:xn.frameId,parentFrameId:xn.parentFrameId}).catch(jn)}),this.#u(`Page.frameDetached`,(xn)=>{this.events.emit(`framedetached`,{frameId:xn.frameId}).catch(jn)}),this.#u(`Page.frameNavigated`,(xn)=>{this.events.emit(`framenavigated`,{frameId:xn.frame.id,url:xn.frame.url,name:xn.frame.name??``}).catch(jn)});let Vn=(Vn)=>{xn.has(Vn.guid)||this.frameManager.getFrame(Vn.frameId)&&(xn.add(Vn.guid),this.events.emit(`download`,new OmODownload(this,{guid:Vn.guid,startedAfterMs:Date.now(),suggestedFilename:Vn.suggestedFilename,url:Vn.url})).catch(jn))};this.#a.push(this.cdp.on(`Browser.downloadWillBegin`,(xn)=>Vn(xn))),this.#u(`Page.downloadWillBegin`,(xn)=>{Vn(xn)}),this.#a.push(this.cdp.on(`Page.windowOpen`,(xn,Vn)=>{!Vn.sessionId||!this.frameManager.hasSession(Vn.sessionId)||this.events.emit(`popup`,{url:xn.url,windowName:xn.windowName}).catch(jn)})),this.#u(`Inspector.targetCrashed`,()=>{this.events.emit(`crash`).catch(jn)}),this.frameManager.onSessionInitialized=(xn)=>{this.#c>0&&this.#p(true,[xn])}}#u(xn,jn){this.#a.push(this.cdp.on(xn,(xn,Vn)=>{Vn.sessionId===this.#n&&jn(xn)}))}on(xn,jn){let Vn=this.#e.get(xn)??new WeakMap,qn=this.events.on(xn,({data:xn})=>jn(xn));return Vn.set(jn,qn),this.#e.set(xn,Vn),xn===`filechooser`&&this.#m(),()=>{qn(),Vn.delete(jn),xn===`filechooser`&&this.#h()}}off(xn,jn){let Vn=this.#e.get(xn),qn=Vn?.get(jn);qn?.(),Vn?.delete(jn),qn&&xn===`filechooser`&&this.#h()}async waitForEvent(xn,jn={}){let Vn=jn.timeout??DEFAULT_WAIT_TIMEOUT_MS;if(xn===`download`){let qn=Date.now();return await new Promise((Jn,Yn)=>{let Zn=false,Qn=()=>{ri(),clearTimeout(ni)},ei=(xn)=>{Zn||(Zn=true,Qn(),xn())},ti=(xn)=>{(async()=>{try{if(jn.predicate&&!await jn.predicate(xn))return;ei(()=>Jn(xn))}catch(xn){ei(()=>Yn(xn instanceof Error?xn:Error(String(xn))))}})()},ni=setTimeout(()=>{ei(()=>Yn(Error(`Timed out waiting for page event "${String(xn)}"`)))},Vn),ri=this.on(`download`,ti);this.cdp.send(`OmO.waitForDownload`,{startedAfterMs:qn,timeoutMs:Vn},undefined,{extensionBridge:this.browser.extensionBridgeRoute}).then((xn)=>{ti(new OmODownload(this,{guid:String(xn.downloadId),sourcePath:xn.absolutePath,startedAfterMs:qn,suggestedFilename:path.basename(xn.absolutePath),url:this.url()}))}).catch(()=>{})})}return await new Promise((qn,Jn)=>{let Yn=false,Zn=null,Qn=()=>{ni(),clearTimeout(ti),Zn&&clearTimeout(Zn)},ei=(xn)=>{Yn||(Yn=true,Qn(),xn())},ti=setTimeout(()=>{ei(()=>Jn(Error(`Timed out waiting for page event "${String(xn)}"`)))},Vn);xn===`filechooser`&&Vn>FILECHOOSER_OOPIF_FALLBACK_MS&&(Zn=setTimeout(()=>{Yn||this.#g().then((xn)=>{xn&&!Yn&&ei(()=>qn(xn))})},FILECHOOSER_OOPIF_FALLBACK_MS));let ni=this.on(xn,(xn)=>{(async()=>{try{if(jn.predicate&&!await jn.predicate(xn))return;ei(()=>qn(xn))}catch(xn){ei(()=>Jn(xn instanceof Error?xn:Error(String(xn))))}})()})})}#d(){for(let xn of this.#a)xn();this.#a=[]}async dispose(){this.#s||(this.#s=true,await this.#o?.stop().catch(()=>{}),this.#d(),this.#c=0,await this.events.emit(`close`),this.events.clearListeners(),this.#e.clear())}reconnect(xn){this.#n=xn,this.#s=false,this.#d(),this.#l(),this.#r=this.frameManager.getFrame(this.frameManager.mainFrameId)?.url??this.#r,this.#c>0&&this.#p(true)}#f(){return[...new Set([this.#n,...[...this.frameManager.frames.values()].map((xn)=>xn.sessionId)])]}async prepareForPotentialFileChooser(){this.#c!==0&&await this.#p(true)}#p(xn,jn=this.#f()){return withoutReplContext(async()=>{await Promise.allSettled(jn.map((jn)=>this.cdp.send(`Page.setInterceptFileChooserDialog`,{enabled:xn},jn)))})}#m(){this.#c+=1,this.#c===1&&this.#p(true)}#h(){this.#c!==0&&(--this.#c,this.#c===0&&this.#p(false))}async#g(){for(let xn of this.frameManager.frames.values())if(xn.sessionId!==this.#n)try{let{root:jn}=await this.cdp.send(`DOM.getDocument`,{depth:0},xn.sessionId),{nodeIds:Vn}=await this.cdp.send(`DOM.querySelectorAll`,{nodeId:jn.nodeId,selector:`input[type=file]`},xn.sessionId);if(Vn.length===0)continue;let qn=Vn[Vn.length-1],{node:Jn}=await this.cdp.send(`DOM.describeNode`,{nodeId:qn},xn.sessionId),Yn=(Jn.attributes??[]).includes(`multiple`);return new FileChooser(this,xn.frameId,Jn.backendNodeId,Yn)}catch{}return null}async resolveSessionId(xn){if(xn&&this.frameManager.hasSession(xn))return xn;let jn=await this.browser.resolvePageSession(this.targetId,this.#n);return jn!==this.#n&&(this.#n=jn),jn}async goto(xn,jn={}){let Vn=jn.waitUntil??`interactive`,qn=await this.resolveSessionId(this.#n),Jn=()=>{},Yn=Vn===`commit`?null:Vn===`interactive`||Vn===`stable`?waitForNavigationReadiness(this,Vn,DEFAULT_WAIT_TIMEOUT_MS).then(()=>{}):Vn===`networkidle`?this.#S(DEFAULT_WAIT_TIMEOUT_MS):new Promise((xn,jn)=>{let Yn=false,Zn,Qn=()=>{},ei=(xn)=>{Yn||(Yn=true,clearTimeout(Zn),Qn(),xn())};Zn=setTimeout(()=>{ei(()=>jn(Error(`Timed out waiting for "${Vn}" after goto`)))},DEFAULT_WAIT_TIMEOUT_MS);let ti=Vn===`load`?`Page.loadEventFired`:`Page.domContentEventFired`;Qn=this.cdp.on(ti,(jn,Vn)=>{Vn.sessionId===qn&&ei(xn)}),Jn=()=>ei(xn)}),Zn=await this.cdp.send(`Page.navigate`,{url:xn},qn);if(Zn.errorText)throw Error(Zn.errorText);if(this.#r=xn,Vn===`domcontentloaded`&&Yn){if(!Zn.loaderId){Jn(),await this.#v(`Timed out waiting for "${Vn}" after goto`);return}try{await Yn}catch(xn){if(await this.#_())return;throw xn}return}Yn&&await Yn}async goBack(){let xn=await this._sendToTarget(`Page.getNavigationHistory`),jn=xn.currentIndex-1;if(jn<0)return;let Vn=xn.entries[jn];if(!Vn)return;let qn=this.#C();await this._sendToTarget(`Page.navigateToHistoryEntry`,{entryId:Vn.id}),await qn}async goForward(){let xn=await this._sendToTarget(`Page.getNavigationHistory`),jn=xn.currentIndex+1;if(jn>=xn.entries.length)return;let Vn=xn.entries[jn];if(!Vn)return;let qn=this.#C();await this._sendToTarget(`Page.navigateToHistoryEntry`,{entryId:Vn.id}),await qn}async reload(){let xn=this.#C();await this._sendToTarget(`Page.reload`),await xn}async waitForLoadState(xn=`interactive`,jn=DEFAULT_WAIT_TIMEOUT_MS){if(xn===`interactive`||xn===`stable`){await waitForNavigationReadiness(this,xn,jn);return}if(xn===`networkidle`||xn===`load`){replPrint(`[system] this is redundant wait; openTab() already waits for the page to become usable. Falling back to 'stable' with 5s timeout.`),await waitForNavigationReadiness(this,`stable`,5000).catch(()=>{});return}if(await this.#_())return;let Vn=`Page.domContentEventFired`,qn=await this.resolveSessionId(this.#n);await new Promise((jn,Vn)=>{let Jn=setTimeout(()=>{Yn(),Vn(Error(`Timed out waiting for load state "${xn}"`))},DEFAULT_WAIT_TIMEOUT_MS),Yn=this.cdp.on(`Page.domContentEventFired`,(xn,Vn)=>{Vn.sessionId===qn&&(clearTimeout(Jn),Yn(),jn())})})}async#_(){return await this.evaluate(`document.readyState`).catch(()=>`loading`)!==`loading`}async#v(xn,jn=DEFAULT_WAIT_TIMEOUT_MS){let Vn=Date.now();for(;Date.now()-Vn<jn;){if(await this.#_())return;await sleep$12(50)}throw Error(xn)}async waitForURL(xn,jn={}){let Vn=jn.timeout??DEFAULT_WAIT_TIMEOUT_MS,qn=Date.now();for(;Date.now()-qn<Vn;){let jn=this.url();if(typeof xn==`string`?jn===xn:xn.test(jn))return;await sleep$12(100)}throw Error(`Timed out waiting for URL match: ${String(xn)}`)}async waitForSelector(xn,jn={}){let Vn=jn.state??`visible`,qn=jn.timeout??3000,Jn=[0,20,50,100,100,500],Yn=Date.now(),Zn=0;for(;;){if(Date.now()-Yn>=qn)throw Error(`waitForSelector: timed out after ${qn}ms waiting for "${xn}" to be ${Vn}`);let jn=await this.evaluate((xn)=>{let jn=document.querySelector(xn);if(!jn)return{attached:false,visible:false};let Vn=jn.getBoundingClientRect(),qn=window.getComputedStyle(jn);return{attached:true,visible:qn.visibility!==`hidden`&&qn.display!==`none`&&parseFloat(qn.opacity)!==0&&Vn.width>0&&Vn.height>0}},xn);if(Vn===`attached`?jn.attached:Vn===`detached`?!jn.attached:Vn===`visible`?jn.visible:!jn.visible)return;let Qn=Jn[Math.min(Zn++,Jn.length-1)];await sleep$12(Qn)}}locator(xn,jn={}){return new Locator(this,xn).filter(jn)}async click(xn,jn){await this.locator(xn).click(jn)}async fill(xn,jn){await this.locator(xn).fill(jn)}async $(xn){return replPrint(`warn`,`page.$() is deprecated in OmOWright — use page.locator(selector).first() instead`),this.locator(xn).first()}async $$(xn){return replPrint(`warn`,`page.$$() is deprecated in OmOWright — use page.locator(selector).all() instead`),await this.locator(xn).all()}async $$eval(xn,jn,Vn){return await this.locator(xn).evaluateAll(jn,Vn)}getByRole(xn,jn={}){return new Locator(this,Locator.createRoleSelector(xn,jn))}getByLabel(xn,jn={}){if(xn instanceof RegExp)return new Locator(this,`internal:label=/${xn.source}/${xn.flags}`);let Vn=JSON.stringify(xn);return new Locator(this,jn.exact?`internal:label:exact:${Vn}`:`internal:label:${Vn}`)}getByText(xn,jn={}){if(xn instanceof RegExp)return new Locator(this,`text:/${xn.source}/${xn.flags}`);let Vn=JSON.stringify(xn);return new Locator(this,jn.exact?`text:exact:${Vn}`:`text:${Vn}`)}frameLocator(xn){return new FrameLocator(this,this.mainFrame(),xn)}async evaluate(xn,jn,Vn){let{actualArg:qn,evaluateOptions:Jn}=resolveEvaluateCall(xn,jn,Vn);if(typeof xn==`string`&&qn===undefined){let{result:jn,exceptionDetails:Vn}=await this._sendToTarget(`Runtime.evaluate`,{expression:xn,returnByValue:true,awaitPromise:true,userGesture:Jn.userGesture});if(Vn)throw Error(formatRuntimeException(Vn,`Evaluation failed`));return jn.value}let Yn=typeof xn==`function`?xn.toString():xn,Zn=await this.#x();try{let{result:xn,exceptionDetails:jn}=await this._sendToTarget(`Runtime.callFunctionOn`,{objectId:Zn,functionDeclaration:`function(arg) { var __name = (t) => t; return (${Yn})(arg); }`,arguments:[{value:qn}],returnByValue:true,awaitPromise:true,userGesture:Jn.userGesture});if(jn)throw Error(formatRuntimeException(jn,`Evaluation failed`));return xn.value}finally{await this._sendToTarget(`Runtime.releaseObject`,{objectId:Zn}).catch(()=>{})}}async evaluateInFrame(xn,jn,Vn,qn){let Jn=this.frameManager.getFrame(xn);if(!Jn)throw Error(`Frame is not available: ${xn}`);let{actualArg:Yn,evaluateOptions:Zn}=resolveEvaluateCall(jn,Vn,qn),Qn=await this.resolveSessionId(Jn.sessionId);if(typeof jn==`string`&&Yn===undefined){let Vn=await this.frameManager.ensureInjected(xn);if(!Vn)throw Error(`Frame isolated world is not ready: ${xn}`);let{result:qn,exceptionDetails:Jn}=await this.cdp.send(`Runtime.evaluate`,{expression:jn,contextId:Vn,returnByValue:true,awaitPromise:true,userGesture:Zn.userGesture},Qn);if(Jn)throw Error(formatRuntimeException(Jn,`Evaluation failed`));return qn.value}let ei=typeof jn==`function`?jn.toString():jn,ti=await this.frameManager.ensureInjected(xn);if(!ti)throw Error(`Frame isolated world is not ready: ${xn}`);let{result:ni,exceptionDetails:ri}=await this.cdp.send(`Runtime.callFunctionOn`,{functionDeclaration:`function(arg) { var __name = (t) => t; return (${ei})(arg); }`,arguments:[{value:Yn}],executionContextId:ti,returnByValue:true,awaitPromise:true,userGesture:Zn.userGesture},Qn);if(ri)throw Error(formatRuntimeException(ri,`Evaluation failed`));return ni.value}async grantNotificationPermission(){await sendCommandToExtension({method:`OmO.grantNotificationPermission`,params:{targetId:this.targetId}},this.browser.extensionBridgeRoute);let xn=new URL(this.#r).origin,jn=this.browser.daemonSession;upsertNotificationGrant({accountId:jn.accountId,origin:xn,grantedBySessionId:jn.id})}url({truncate:xn=false}={}){return xn?truncateUrlForLLM(this.#r):this.#r}async title(){return await this.evaluate(`document.title`).catch(()=>``)}async content(){return await this.evaluate(`document.documentElement.outerHTML`)}async screenshot(xn={}){let jn=normalizeScreenshotTimeout(xn.timeout),Vn=jn&&jn>0?Date.now()+jn:undefined,qn;if(xn.clip)qn={x:xn.clip.x,y:xn.clip.y,width:xn.clip.width,height:xn.clip.height,scale:1};else if(xn.fullPage){let xn=await this._sendToTarget(`Page.getLayoutMetrics`),jn=xn.cssContentSize??xn.contentSize;qn={x:0,y:0,width:jn.width,height:jn.height,scale:1}}qn&&=clampScreenshotClipToTextureLimit(qn,await this.#y());let Jn={format:xn.type??`png`,captureBeyondViewport:!!xn.fullPage,quality:xn.quality,...qn?{clip:qn}:{}},Yn;try{({data:Yn}=await this.#b(Jn,jn,screenshotCaptureLabel(xn)))}catch(jn){if(!xn.fullPage||xn.clip||!isCaptureScreenshotTimeout(jn))throw jn;let qn=Vn?Math.max(0,Vn-Date.now()):undefined;if(qn===0)throw jn;let Jn={format:xn.type??`png`,captureBeyondViewport:false,quality:xn.quality};try{({data:Yn}=await this.#b(Jn,qn,`viewport fallback screenshot`)),replPrint(`[system] full-page screenshot failed; returned viewport fallback. ${formatScreenshotError(jn)}`)}catch(xn){throw Error(`${formatScreenshotError(jn)}
1481
+ Viewport fallback also failed: ${formatScreenshotError(xn)}`)}}let Zn=Buffer.from(Yn,`base64`);if(xn.path)if(xn.path.startsWith(`/tmp`)){let jn=this.browser.resolvePath(`tmp`),Vn=path.join(jn,path.basename(xn.path));await mkdir(path.dirname(Vn),{recursive:true}),await writeFile(Vn,Zn),replPrint(`[WARN] Use ${jn} instead of /tmp. Saved it to ${Vn}`)}else{let jn=this.browser.resolvePath(xn.path);await mkdir(path.dirname(jn),{recursive:true}),await writeFile(jn,Zn)}return Zn}async#y(){return await this.evaluate(`window.devicePixelRatio`).catch(()=>1)}async#b(xn,jn,Vn){try{return await this._sendToTarget(`Page.captureScreenshot`,xn,{timeoutMs:jn})}catch(xn){throw rewriteCaptureScreenshotError(xn,jn,Vn)}}async snapshot(xn={}){return await takeSnapshot(this.cdp,this.frameManager,xn)}frames(){return this.frameManager.collectDescendantFrames(this.frameManager.mainFrameId).map(({frameId:xn})=>new OmOFrame(this,xn))}mainFrame(){let xn=this.frameManager.getFrame(this.frameManager.mainFrameId);if(!xn)throw Error(`Main frame is not available`);return new OmOFrame(this,xn.frameId)}async bringToFront(){this.browser.page=this,replPrint(`page is now [${await this.title().catch(()=>``)}](${this.url()})`)}async openPopupUrl(xn){await this.browser.openPopupTab(xn,this.targetId)}get console(){return this.#t??=new PageConsole(this)}video(){return this.#w()}viewportSize(){return this.#i?{...this.#i}:null}async refreshViewportSize(){let xn=await this.evaluate(()=>({width:Math.round(globalThis.visualViewport?.width??globalThis.innerWidth??0),height:Math.round(globalThis.visualViewport?.height??globalThis.innerHeight??0)}));if(xn.width<=0||xn.height<=0)throw Error(`Measured viewport size is invalid: ${JSON.stringify(xn)}`);return this.#i=xn,xn}setCachedViewportSize(xn){this.#i=xn?{...xn}:null}async pdf(xn={}){let jn=xn.path?await this.browser.ensurePath(xn.path,`write`,`page.pdf`):undefined,Vn={...xn,height:formatPdfLength(xn.height),margin:xn.margin?{bottom:formatPdfLength(xn.margin.bottom),left:formatPdfLength(xn.margin.left),right:formatPdfLength(xn.margin.right),top:formatPdfLength(xn.margin.top)}:undefined,printBackground:xn.printBackground??true,transferMode:`ReturnAsBase64`,width:formatPdfLength(xn.width)},{data:qn}=await this._sendToTarget(`Page.printToPDF`,Vn),Jn=Buffer.from(qn,`base64`);return jn&&(await mkdir(path.dirname(jn),{recursive:true}).catch(()=>{}),await writeFile(jn,Jn)),Jn}async close(xn={}){if(await this.#w().stop().catch(()=>{}),xn.runBeforeUnload){let jn=await this.resolveSessionId(this.#n);await this.cdp.send(`Page.close`,undefined,jn).catch(async()=>{await this.browser.closeTab(this,xn)});return}await this.browser.closeTab(this,xn)}async#x(){let{result:xn,exceptionDetails:jn}=await this._sendToTarget(`Runtime.evaluate`,{expression:`globalThis`,serializationOptions:{serialization:`idOnly`}});if(jn)throw Error(formatRuntimeException(jn,`Failed to resolve main world`));if(!xn.objectId)throw Error(`Main world object is not available`);return xn.objectId}async#S(xn){await this._sendToTarget(`Network.enable`).catch(()=>{});let jn=await this.resolveSessionId(this.#n);await new Promise((Vn,qn)=>{let Jn=new Set,Yn=null,Zn=null,Qn=()=>{ti(),ri(),ii(),Yn&&=(clearTimeout(Yn),null),Zn&&=(clearTimeout(Zn),null)},ei=()=>{Yn&&clearTimeout(Yn),Jn.size===0&&(Yn=setTimeout(()=>{Qn(),Vn()},NETWORK_IDLE_MS))},ti=this.cdp.on(`Network.requestWillBeSent`,(xn,Vn)=>{Vn.sessionId===jn&&(xn.request.url.startsWith(`data:`)||Jn.add(xn.requestId))}),ni=(xn)=>{Jn.delete(xn),ei()},ri=this.cdp.on(`Network.loadingFinished`,(xn,Vn)=>{Vn.sessionId===jn&&ni(xn.requestId)}),ii=this.cdp.on(`Network.loadingFailed`,(xn,Vn)=>{Vn.sessionId===jn&&ni(xn.requestId)});Zn=setTimeout(()=>{Qn(),qn(Error(`Timed out waiting for load state "networkidle"`))},xn),ei()})}async#C(){let xn=await this.resolveSessionId(this.#n);await new Promise((jn,Vn)=>{let qn=setTimeout(()=>{Jn(),Vn(Error(`Timed out waiting for navigation`))},DEFAULT_WAIT_TIMEOUT_MS),Jn=this.cdp.on(`Page.frameNavigated`,(Vn,Yn)=>{Yn.sessionId===xn&&(Vn.frame.parentId||(clearTimeout(qn),Jn(),jn()))})})}async _sendToTarget(xn,jn,Vn={}){if(this.#s)throw Error(`Page ${this.targetId} is disposed`);let{preferredSessionId:qn,...Jn}=Vn;if(qn!==undefined){if(!this.frameManager.hasSession(qn))throw Error(`Frame is stale or detached: CDP session ${qn} is unavailable`);return await this.cdp.send(xn,jn,qn,Jn)}let Yn=await this.resolveSessionId(this.#n);return await this.cdp.send(xn,jn,Yn,Jn)}#w(){return this.#o??=new OmOVideo(this),this.#o}}});init_client$6();init_session_manager();init_frame_manager();init_page();class TabRepository{#client;constructor(client){this.#client=client}async listTargets(){return this.#client.discoverTargets()}}class BrowserConnection{#client;#sessions;#pages=new Map;#storageRoot;constructor(client,options={}){this.#client=client;this.#sessions=new SessionManager(client);this.tabs=new TabRepository(client);this.#storageRoot=path2.resolve(options.storageRoot??process.cwd())}async initialize(){await this.#client.ensureConnected();return this}get cdp(){return this.#client}setDialogPolicy(policy){if(typeof this.#client.setDialogPolicy!=="function"){throw new Error("dialog policy is not supported by this transport")}this.#client.setDialogPolicy(policy)}async listTargets(){return this.tabs.listTargets()}async attachPage(targetId){if(this.#pages.has(targetId))return this.#pages.get(targetId).page;const sessionId=await this.#sessions.resolvePageSession(targetId);const frames=new FrameManager(this.#client,targetId,sessionId);await frames.initialize();const entry={frames,page:null};const host=this.#createPageHost(targetId,entry);const page=new OmOPage(this.#client,frames,targetId,sessionId,host);entry.page=page;this.#pages.set(targetId,entry);return page}#createPageHost(targetId,entry){return{daemonSession:{accountId:0,id:"standalone"},extensionBridgeRoute:{},page:null,resolvePageSession:(id,preferred)=>this.#sessions.resolvePageSession(id,preferred),resolvePath:(value)=>path2.resolve(this.#storageRoot,value),ensurePath:async(value)=>{const resolved=path2.resolve(this.#storageRoot,value);await mkdir2(path2.dirname(resolved),{recursive:true});return resolved},registerReadableDownload:(value)=>value,isReadableDownload:()=>false,openPopupTab:async()=>{throw Error("Popup tab control requires the extension bridge")},closeTab:async(_page,options={})=>{if(options.runBeforeUnload){await this.#client.send("Page.close",undefined,await this.#sessions.resolvePageSession(targetId))}else{await this.#client.send("Target.closeTarget",{targetId})}await entry.page?.dispose();await entry.frames.dispose();this.#pages.delete(targetId)}}}async close(){for(const[targetId,entry]of[...this.#pages]){await entry.page.dispose().catch(()=>{});await entry.frames.dispose().catch(()=>{});this.#pages.delete(targetId)}await this.#sessions.dispose();await this.#client.close()}}async function connect(cdpHttpUrl,options={}){if(typeof cdpHttpUrl!=="string"||cdpHttpUrl.length===0){throw new TypeError("connect(cdpHttpUrl) requires a Chromium CDP HTTP URL")}const client=new CdpClient({cdpUrl:cdpHttpUrl,...options.client});return new BrowserConnection(client,options).initialize()}import{spawn}from"node:child_process";function normalizeDialogPolicy(policy){return policy??{accept:true}}function dialogFromOpening(params={}){return{type:params.type,message:params.message,defaultPrompt:params.defaultPrompt??"",url:params.url}}function decisionFromResult(result){if(typeof result==="boolean")return{accept:result};if(result&&typeof result==="object"){const decision={accept:result.accept!==false};if(result.promptText!==undefined)decision.promptText=result.promptText;return decision}return{accept:true}}async function resolveDialogAction(policy,params={}){try{const result=typeof policy==="function"?await policy(dialogFromOpening(params)):policy;return decisionFromResult(result)}catch{return{accept:true}}}init_internal_capability();class Emittery2{#listeners=new Map;on(event,fn){const list=this.#listeners.get(event)??[];list.push(fn);this.#listeners.set(event,list);return()=>{const cur=this.#listeners.get(event)??[];this.#listeners.set(event,cur.filter((f)=>f!==fn))}}async emit(event,data){for(const fn of this.#listeners.get(event)??[])await fn(data)}}var DEFAULT_COMMAND_TIMEOUT_MS2=30000;var DEFAULT_READINESS_TIMEOUT_MS=1e4;var GRACEFUL_CLOSE_TIMEOUT_MS=2000;var STDIO_TAIL_LIMIT=16384;class PipeCdpClient{#child;#writeStream;#readStream;#buffer=Buffer.alloc(0);#seq=1;#pending=new Map;#events=new Emittery2;#connected=false;#commandTimeoutMs;#readinessTimeoutMs;#browserPath;#browserArgs;#spawnOptions;#stdioTail="";#dialogPolicy;transportEvents=new Emittery2;logId;constructor({browserPath,browserArgs=[],spawnOptions={},commandTimeoutMs,readinessTimeoutMs,logId,dialogPolicy}){if(!browserPath)throw new TypeError("PipeCdpClient requires browserPath");this.#browserPath=browserPath;this.#browserArgs=browserArgs;this.#spawnOptions=spawnOptions;this.#commandTimeoutMs=commandTimeoutMs??DEFAULT_COMMAND_TIMEOUT_MS2;this.#readinessTimeoutMs=readinessTimeoutMs??DEFAULT_READINESS_TIMEOUT_MS;this.logId=logId??`cdp-pipe-${Date.now()}`;this.#dialogPolicy=normalizeDialogPolicy(dialogPolicy)}get isConnected(){return this.#connected}get isHeadless(){return this.#browserArgs.some((arg)=>/^--headless(?:=|$)/.test(arg))}get childProcess(){return this.#child}get dialogPolicy(){return this.#dialogPolicy}setDialogPolicy(policy){this.#dialogPolicy=normalizeDialogPolicy(policy)}async ensureConnected(){if(this.#connected)return;const stdio=["ignore","pipe","pipe","pipe","pipe"];this.#child=spawn(this.#browserPath,[...this.#browserArgs,"--remote-debugging-pipe"],{...this.#spawnOptions,stdio});this.#stdioTail="";for(const stream of[this.#child.stdout,this.#child.stderr]){if(!stream)continue;stream.setEncoding("utf8");stream.on("data",(chunk)=>{this.#stdioTail=(this.#stdioTail+chunk).slice(-STDIO_TAIL_LIMIT)});stream.on("error",()=>{})}this.#writeStream=this.#child.stdio[3];this.#readStream=this.#child.stdio[4];this.#readStream.on("data",(chunk)=>this.#onData(chunk));for(const stream of[this.#writeStream,this.#readStream]){stream.on("error",(error)=>this.#failAll(Error(`CDP pipe error: ${error.code??error.message}`)))}this.#child.on("exit",()=>{this.#connected=false;this.#failAll(Error("CDP pipe browser exited"));this.transportEvents.emit("disconnected").catch(()=>{})});this.#connected=true;await this.#awaitReady();await this.send("Target.setDiscoverTargets",{discover:true}).catch(()=>{});await this.transportEvents.emit("connected")}async#awaitReady(){const deadline=Date.now()+this.#readinessTimeoutMs;let lastError;while(Date.now()<deadline){try{await this.send("Browser.getVersion",undefined,undefined,{timeoutMs:1000});return}catch(error){lastError=error;await new Promise((resolve)=>setTimeout(resolve,100))}}const reason=lastError?String(lastError.message??lastError):"no response";const tail=this.#stdioTail.trim();throw Error(`Browser did not become ready over the CDP pipe (${reason})`+(tail?`
1482
+ Browser stdio tail:
1483
+ ${tail}`:""))}async send(method,params,sessionId,opts={}){if(method==="Target.createTarget"&&opts.capability!==targetCreationCapability)throw Error("Target.createTarget is reserved for createAgentTabs");if(String(method).startsWith("OmO.")){throw Error(`Extension commands are unavailable over pipe transport: ${method}`)}await this.ensureConnected();const id=this.#seq++;const msg={id,method};if(params!==undefined)msg.params=params;if(sessionId)msg.sessionId=sessionId;const{promise,resolve,reject}=Promise.withResolvers();const timeoutMs=opts.timeoutMs??this.#commandTimeoutMs;const timeout=timeoutMs>0?setTimeout(()=>{this.#pending.delete(id);reject(Error(`CDP command timeout: ${method}`))},timeoutMs):undefined;this.#pending.set(id,{method,resolve,reject,timeout});this.#writeStream.write(JSON.stringify(msg)+"\x00");return promise}on(method,fn){return this.#events.on(method,({data})=>fn(data.payload,data.meta))}async discoverTargets(){const{targetInfos}=await this.send("Target.getTargets");return targetInfos.map((t)=>({id:t.targetId,type:t.type,url:t.url??"",title:t.title??"",description:t.description,faviconUrl:t.faviconUrl,parentId:t.openerId}))}async close(){const child=this.#child;this.#child=undefined;if(child&&child.exitCode===null){const exited=new Promise((resolve)=>child.once("exit",resolve));if(this.#connected){await Promise.race([this.send("Browser.close",undefined,undefined,{timeoutMs:GRACEFUL_CLOSE_TIMEOUT_MS}).catch(()=>{}),exited])}this.#connected=false;this.#failAll(Error("CDP pipe client closed"));if(child.exitCode===null){await Promise.race([exited,new Promise((resolve)=>setTimeout(resolve,GRACEFUL_CLOSE_TIMEOUT_MS))])}if(child.exitCode===null){try{child.kill("SIGKILL")}catch{}await exited}return}this.#connected=false;this.#failAll(Error("CDP pipe client closed"))}#onData(chunk){this.#buffer=Buffer.concat([this.#buffer,chunk]);let idx;while((idx=this.#buffer.indexOf(0))!==-1){const raw=this.#buffer.subarray(0,idx).toString("utf8");this.#buffer=this.#buffer.subarray(idx+1);if(raw.length===0)continue;let msg;try{msg=JSON.parse(raw)}catch{continue}this._handleTransportMessage(msg)}}_handleTransportMessage(msg){if(typeof msg.id==="number"){const entry=this.#pending.get(msg.id);if(!entry)return;this.#pending.delete(msg.id);if(entry.timeout)clearTimeout(entry.timeout);if(msg.error){const err=Error(msg.error.message??`CDP command failed: ${entry.method}`);err.code=msg.error.code;err.data=msg.error.data;entry.reject(err)}else{entry.resolve(msg.result)}return}if(typeof msg.method==="string"){const handled=msg.method==="Page.javascriptDialogOpening"&&msg.sessionId?this.#handleJavaScriptDialog(msg).catch(()=>{}):undefined;this.#events.emit(msg.method,{data:{payload:msg.params,meta:{sessionId:msg.sessionId}}}).catch(()=>{});return handled}}async#handleJavaScriptDialog(msg){const params=await resolveDialogAction(this.#dialogPolicy,msg.params);await this.send("Page.handleJavaScriptDialog",params,msg.sessionId)}#failAll(err){for(const entry of this.#pending.values()){if(entry.timeout)clearTimeout(entry.timeout);entry.reject(err)}this.#pending.clear()}}async function connectPipe({browserPath,browserArgs=[],spawnOptions,storageRoot,commandTimeoutMs,readinessTimeoutMs,logId,dialogPolicy}={}){const client=new PipeCdpClient({browserPath,browserArgs,spawnOptions,commandTimeoutMs,readinessTimeoutMs,logId,dialogPolicy});await client.ensureConnected();const connection=new BrowserConnection(client,{storageRoot});await connection.initialize();connection.browserProcess=client.childProcess;connection.newTab=async(url="about:blank")=>{await Promise.resolve().then(() => init_agent_tabs());return(await createAgentTabs(connection).create(url)).page};return connection}import{randomInt}from"node:crypto";import{chmod,mkdir as mkdir3,open as open2,readFile}from"node:fs/promises";import{globSync}from"node:fs";import os from"node:os";import path3 from"node:path";var MIN_FINGERPRINT_SEED=1e4;var MAX_FINGERPRINT_SEED=99999;var METADATA_FILE=".omowright-cloak.json";var DEFAULT_PROFILE_DIR=path3.join(os.homedir(),".local","share","omowright-cloak");function normalizeFingerprintSeed(value){const seed=typeof value==="string"&&value.trim()!==""?Number(value):value;if(!Number.isInteger(seed)||seed<MIN_FINGERPRINT_SEED||seed>MAX_FINGERPRINT_SEED){throw new RangeError(`fingerprint seed must be an integer from ${MIN_FINGERPRINT_SEED} to ${MAX_FINGERPRINT_SEED}`)}return seed}function platformFingerprint(){return process.platform==="darwin"?"macos":"windows"}function identityFlag(value){return/^(--user-data-dir|--fingerprint|--fingerprint-platform)(?:=|$)/.test(value)}function buildCloakBrowserArgs({profileDir,fingerprintSeed,extraArgs=[]}={}){const profile=path3.resolve(profileDir??DEFAULT_PROFILE_DIR);const seed=normalizeFingerprintSeed(fingerprintSeed);const conflicting=extraArgs.filter(identityFlag);if(conflicting.length>0){throw new Error(`extraArgs cannot override fixed profile identity: ${conflicting.join(", ")}`)}return["--no-first-run","--no-default-browser-check","--disable-session-crashed-bubble",`--user-data-dir=${profile}`,`--fingerprint=${seed}`,`--fingerprint-platform=${platformFingerprint()}`,...extraArgs]}async function readMetadata(metadataPath){try{const parsed=JSON.parse(await readFile(metadataPath,"utf8"));return normalizeFingerprintSeed(parsed.fingerprintSeed)}catch(error){if(error?.code==="ENOENT")return null;if(error instanceof SyntaxError){throw new Error(`invalid CloakBrowser profile metadata: ${metadataPath}`)}throw error}}async function writeMetadata(metadataPath,fingerprintSeed){const handle=await open2(metadataPath,"wx",384);try{await handle.writeFile(`${JSON.stringify({fingerprintSeed},null,2)}
1484
+ `,"utf8")}finally{await handle.close()}await chmod(metadataPath,384)}async function resolveCloakProfile({profileDir=DEFAULT_PROFILE_DIR,fingerprintSeed,randomSeed=()=>randomInt(MIN_FINGERPRINT_SEED,MAX_FINGERPRINT_SEED+1)}={}){const resolvedProfile=path3.resolve(profileDir);const metadataPath=path3.join(resolvedProfile,METADATA_FILE);await mkdir3(resolvedProfile,{recursive:true,mode:448});await chmod(resolvedProfile,448);const requested=fingerprintSeed===undefined?null:normalizeFingerprintSeed(fingerprintSeed);let stored=await readMetadata(metadataPath);if(stored===null){const candidate=requested??normalizeFingerprintSeed(randomSeed());try{await writeMetadata(metadataPath,candidate);stored=candidate}catch(error){if(error?.code!=="EEXIST")throw error;stored=await readMetadata(metadataPath);if(stored===null){throw new Error(`CloakBrowser profile seed metadata disappeared: ${metadataPath}`)}}}if(requested!==null&&requested!==stored){throw new Error(`fingerprint seed mismatch: profile is fixed at ${stored}, requested ${requested}`)}await chmod(metadataPath,384);return{profileDir:resolvedProfile,metadataPath,fingerprintSeed:stored,browserArgs:buildCloakBrowserArgs({profileDir:resolvedProfile,fingerprintSeed:stored})}}function findCloakBrowserPath({browserRoot=path3.join(os.homedir(),".cloakbrowser")}={}){const candidates=globSync(path3.join(path3.resolve(browserRoot),"chromium-*","Chromium.app","Contents","MacOS","Chromium")).sort();const browserPath=candidates.at(-1);if(!browserPath){throw new Error(`CloakBrowser binary not found under ${path3.resolve(browserRoot)}; set CLOAKBROWSER_BIN`)}return browserPath}async function connectCloakProfile({browserPath=process.env.CLOAKBROWSER_BIN??findCloakBrowserPath(),profileDir=process.env.CLOAK_PROFILE_DIR??DEFAULT_PROFILE_DIR,fingerprintSeed=process.env.CLOAK_FINGERPRINT_SEED,browserArgs=[],storageRoot,...options}={}){const profile=await resolveCloakProfile({profileDir,fingerprintSeed});return connectPipe({browserPath,browserArgs:buildCloakBrowserArgs({profileDir:profile.profileDir,fingerprintSeed:profile.fingerprintSeed,extraArgs:browserArgs}),storageRoot:storageRoot??profile.profileDir,...options})}var SNAPSHOT_PARSE_ERROR="compactSnapshot expected a snapshot() result (JSON string or {tree, refs} object)";function compactSnapshot(snapshot){const obj=typeof snapshot==="string"?JSON.parse(snapshot):snapshot;if(!obj||typeof obj.tree!=="string")throw new TypeError(SNAPSHOT_PARSE_ERROR);return obj.tree}function snapshotTokens(snapshot){const text=typeof snapshot==="string"?snapshot:JSON.stringify(snapshot);return{bytes:Buffer.byteLength(text,"utf8"),estTokens:Math.ceil(Buffer.byteLength(text,"utf8")/4)}}var toolSchemas=[{name:"newTab",description:"Open a tab and return its page. Waits for interactivity.",parameters:{type:"object",properties:{url:{type:"string"}},required:["url"]}},{name:"attachPage",description:"Attach to an existing tab by targetId from listTargets().",parameters:{type:"object",properties:{targetId:{type:"string"}},required:["targetId"]}},{name:"page.goto",description:"Navigate the page; resolves when the page looks interactive.",parameters:{type:"object",properties:{url:{type:"string"}},required:["url"]}},{name:"page.snapshot",description:"PRIMARY page read. Returns a compact a11y tree; interactive elements carry [ref=eN] ids for page.locator. Options: maxDepth, maxChars, interactive, showHidden, selector, ref.",parameters:{type:"object",properties:{options:{type:"object"}}}},{name:"page.locator",description:"Resolve a ref id (e.g. 'e1') or CSS selector to a Locator: click, fill, press, hover, check, selectOption, dragTo, setInputFiles, textContent, isVisible, waitFor.",parameters:{type:"object",properties:{selectorOrRef:{type:"string"}},required:["selectorOrRef"]}},{name:"page.evaluate",description:"Run JS in the page and return the result.",parameters:{type:"object",properties:{expression:{type:"string"}},required:["expression"]}},{name:"page.screenshot",description:"Capture page image bytes (path, fullPage, clip, type, quality).",parameters:{type:"object",properties:{options:{type:"object"}}}},{name:"page.pdf",description:"Print the page to PDF bytes (path, format, margin, printBackground).",parameters:{type:"object",properties:{options:{type:"object"}}}},{name:"compactSnapshot",description:"Pass page.snapshot() output through this before reading: returns the raw tree without the refs map (refs resolve in-page; the map is ~54% of bytes on real pages).",parameters:{type:"object",properties:{snapshot:{}},required:["snapshot"]}},{name:"createCua",description:"Coordinate fallback for UI that refs cannot target: click/doubleClick/drag/move/scroll/type/keypress at viewport points, getVisibleScreenshot() as base64 PNG.",parameters:{type:"object",properties:{page:{}},required:["page"]}},{name:"createCaptcha",description:"Captcha helpers: click(bounds) and drag(from,to) return a post-action snapshot tree; readText(bounds?) OCRs a screenshot region (macOS Vision default, custom ocr injectable).",parameters:{type:"object",properties:{page:{},options:{type:"object"}},required:["page"]}},{name:"createChromeApi",description:"Chrome MV3-shaped APIs: tabs.query/get, windows.*, bookmarks/history/topSites (read-only from profile files), downloads.search/download. Writes throw UnsupportedOperationError.",parameters:{type:"object",properties:{connection:{},options:{type:"object"}},required:["connection"]}},{name:"injectCookies",description:"Inject raw cookie exports into a page with CDP sanitization handled (negative expires dropped, __Host- forced secure+root path+url-scoped, SameSite=None dropped when not secure, name+domain deduped).",parameters:{type:"object",properties:{page:{},cookies:{type:"array"}},required:["page","cookies"]}},{name:"createNetworkSnoop",description:"Buffer a page's CDP network traffic and return {pop,peek,popJson,waitFor,summary,dispose}; match is a predicate or {url,method,mimeType,resourceType}.",parameters:{type:"object",properties:{page:{},match:{},bodies:{type:"boolean"},maxEntries:{type:"number"},maxBodyBytes:{type:"number"}},required:["page"]}},{name:"snoop.waitFor",description:"Wait until a finished entry matches a predicate or {url,method,mimeType,resourceType}; timeoutMs defaults to 30000.",parameters:{type:"object",properties:{match:{},timeoutMs:{type:"number"}}}},{name:"snoop.popJson",description:"Drain the buffer and parse JSON bodies; skips non-JSON mime types and payloads that fail to parse.",parameters:{type:"object",properties:{}}},{name:"snoop.summary",description:"Return a compact text view of buffered entries (method, status, mimeType, size, url) capped by {max}.",parameters:{type:"object",properties:{max:{type:"number"}}}},{name:"collectWhileScrolling",description:"Async generator that scrolls the page, drains snoop.popJson(), and yields extracted items until minItems, maxScrolls, or noGrowth.",parameters:{type:"object",properties:{page:{},snoop:{},minItems:{type:"number"},maxScrolls:{type:"number"},extract:{},scroll:{type:"string",enum:["wheel","end"]},settleMs:{type:"number"}},required:["page","snoop"]}},{name:"createTrace",description:"Start a page flight recorder that writes dir/trace.jsonl, dir/trace.har, dir/summary.json and screenshots; never sends Runtime.enable.",parameters:{type:"object",properties:{page:{},dir:{type:"string"},screenshots:{type:"boolean"},network:{type:"boolean"},console:{type:"boolean"},maxBodyBytes:{type:"number"},events:{}},required:["page","dir"]}},{name:"trace.step",description:"Run named fn as a traced step with optional before/after screenshots; records the error and rethrows on failure.",parameters:{type:"object",properties:{name:{type:"string"},fn:{}},required:["name","fn"]}},{name:"trace.stop",description:"Flush listeners, write summary.json and trace.har, dispose the snoop, and return the summary for dir.",parameters:{type:"object",properties:{}}},{name:"reconcileFrames",description:"Adopt OOPIF iframe targets missing from FrameManager so later snapshots include them; returns the frames that were added.",parameters:{type:"object",properties:{page:{}},required:["page"]}},{name:"snapshotWithFrames",description:"Reconcile missing OOPIF frames then snapshot; refs stay page-level: page.locator(ref), never frame.locator.",parameters:{type:"object",properties:{page:{},options:{type:"object"}},required:["page"]}},{name:"connectPipe.dialogPolicy",description:"Wire connectPipe({dialogPolicy}) and client.setDialogPolicy to {accept,promptText} or (dialog)=>boolean|{accept,promptText}; throwing policy accepts. WebSocket connect() keeps auto-accept.",parameters:{type:"object",properties:{accept:{type:"boolean"},promptText:{type:"string"}}}},{name:"requestHuman",description:"Pause for a human: inject a shadow-DOM Done banner, bringToFront first, and remove the banner on every path; until is {url}|{selector}|async predicate.",parameters:{type:"object",properties:{page:{},prompt:{type:"string"},until:{},timeoutMs:{type:"number"},pollMs:{type:"number"},signal:{}},required:["page"]}},{name:"describeLayers",description:"Sample a viewport grid and return {blocking,candidates,viewport} so overlay coverage and selectorHint are visible.",parameters:{type:"object",properties:{page:{},grid:{type:"number"}},required:["page"]}},{name:"snapshotWithLayers",description:"Prepend a @layers header to the snapshot tree and attach a layers field so overlays are visible before the a11y tree.",parameters:{type:"object",properties:{page:{},options:{type:"object"}},required:["page"]}},{name:"emulate",description:"Apply a DEVICE_PRESETS name, a custom metrics object, or null to restore the original UA captured on first call.",parameters:{type:"object",properties:{page:{},preset:{}},required:["page","preset"]}},{name:"createRoutes",description:"Install page request interception; Fetch.enable is sent only on the first route(); interception is fingerprintable, keep it off by default.",parameters:{type:"object",properties:{page:{}},required:["page"]}},{name:"route.continue",description:"Continue an intercepted request, optionally overriding url, method, headers, or postData.",parameters:{type:"object",properties:{url:{type:"string"},method:{type:"string"},headers:{type:"object"},postData:{}}}},{name:"route.fulfill",description:"Fulfill an intercepted request with {status,headers,contentType,body} instead of hitting the network.",parameters:{type:"object",properties:{status:{type:"number"},headers:{type:"object"},contentType:{type:"string"},body:{}}}},{name:"route.abort",description:"Abort an intercepted request with a CDP errorReason (defaults to Failed).",parameters:{type:"object",properties:{reason:{type:"string"}}}}];var MODIFIER_KEYS2=new Set(["Alt","Control","Meta","Shift"]);function splitModifiers(keys=[]){const modifiers=keys.filter((key)=>MODIFIER_KEYS2.has(key)||/^(cmd|command|ctrl|option|controlormeta)$/i.test(key));const rest=keys.filter((key)=>!modifiers.includes(key));return{modifiers,rest}}function createCua(page){async function holdModifiers(keys,fn){const{modifiers}=splitModifiers(keys);for(const key of modifiers)await page.keyboard.down(key);try{return await fn()}finally{for(const key of[...modifiers].reverse())await page.keyboard.up(key)}}return{page,async click({x,y,button="left",keypress}){await holdModifiers(keypress,()=>page.mouse.click(x,y,{button}))},async doubleClick({x,y,keypress}){await holdModifiers(keypress,()=>page.mouse.click(x,y,{clickCount:2}))},async drag({path,keys}){if(!Array.isArray(path)||path.length<2){throw new TypeError("cua.drag requires path with at least two points")}await holdModifiers(keys,async()=>{const[first,...rest]=path;await page.mouse.move(first.x,first.y);await page.mouse.down();try{for(const point of rest)await page.mouse.move(point.x,point.y)}finally{await page.mouse.up()}})},async getVisibleScreenshot(){const buffer=await page.screenshot({type:"png"});return buffer.toString("base64")},async keypress({keys}){if(!Array.isArray(keys)||keys.length===0){throw new TypeError("cua.keypress requires a non-empty keys array")}await page.keyboard.press(keys.join("+"))},async move({x,y,keys}){await holdModifiers(keys,()=>page.mouse.move(x,y))},async scroll({x,y,scrollX,scrollY,keypress}){await holdModifiers(keypress,async()=>{await page.mouse.move(x,y);await page.mouse.wheel(scrollX,scrollY)})},async type({text}){await page.keyboard.type(text)}}}import{spawn as spawn2}from"node:child_process";import{mkdtempSync,writeFileSync,rmSync}from"node:fs";import{tmpdir as tmpdir2}from"node:os";import path4 from"node:path";var DEFAULT_DRAG_STEPS=20;var POST_ACTION_SETTLE_MS=3000;var MACOS_VISION_OCR_SWIFT=`
1485
+ import Vision
1486
+ import AppKit
1487
+ let path = CommandLine.arguments[1]
1488
+ guard let nsImage = NSImage(contentsOfFile: path),
1489
+ let cgImage = nsImage.cgImage(forProposedRect: nil, context: nil, hints: nil) else { exit(2) }
1490
+ let request = VNRecognizeTextRequest()
1491
+ request.recognitionLevel = .accurate
1492
+ request.usesLanguageCorrection = false
1493
+ let handler = VNImageRequestHandler(cgImage: cgImage, options: [:])
1494
+ do { try handler.perform([request]) } catch { exit(3) }
1495
+ let text = (request.results ?? [])
1496
+ .compactMap { $0.topCandidates(1).first?.string }
1497
+ .joined(separator: " ")
1498
+ print(text)
1499
+ `;async function macOSVisionOcr(pngBuffer){if(process.platform!=="darwin"){throw new Error("macOSVisionOcr is only available on macOS; pass a custom ocr(buffer) instead")}const dir=mkdtempSync(path4.join(tmpdir2(),"omowright-ocr-"));try{const imagePath=path4.join(dir,"region.png");const scriptPath=path4.join(dir,"ocr.swift");writeFileSync(imagePath,pngBuffer);writeFileSync(scriptPath,MACOS_VISION_OCR_SWIFT);return await new Promise((resolve,reject)=>{const child=spawn2("swift",[scriptPath,imagePath],{stdio:["ignore","pipe","pipe"]});let stdout="";let stderr="";child.stdout.on("data",(chunk)=>{stdout+=chunk});child.stderr.on("data",(chunk)=>{stderr+=chunk});child.on("error",reject);child.on("close",(code)=>{if(code===0){const text=stdout.trim();resolve(text.length>0?text:null)}else{reject(new Error(`Vision OCR failed (exit ${code}): ${stderr.trim()}`))}})})}finally{rmSync(dir,{recursive:true,force:true})}}function createCaptcha(page,options={}){const ocr=options.ocr??macOSVisionOcr;function centerOf(bounds){return{x:bounds.x+bounds.width/2,y:bounds.y+bounds.height/2}}async function settleAndSnapshot(settleMs){await new Promise((resolve)=>setTimeout(resolve,settleMs));return compactSnapshot(await page.snapshot())}return{page,async click(bounds,opts={}){const point=centerOf(bounds);await page.mouse.click(point.x,point.y);return settleAndSnapshot(opts.settleMs??POST_ACTION_SETTLE_MS)},async drag(from,to,opts={}){const steps=opts.steps??DEFAULT_DRAG_STEPS;await page.mouse.move(from.x,from.y);await page.mouse.down();try{await page.mouse.move(to.x,to.y,{steps})}finally{await page.mouse.up()}return settleAndSnapshot(opts.settleMs??POST_ACTION_SETTLE_MS)},async readText(bounds){const buffer=await page.screenshot(bounds?{type:"png",clip:bounds}:{type:"png"});return ocr(buffer)}}}var EVENT_NAMES=["tabOpened","tabClosed","popupOpened","downloadStarted","downloadProgress","downloadFinished"];var BROWSER_EVENT_NAMES=Object.freeze([...EVENT_NAMES]);var DEFAULT_TIMEOUT=30000;var TERMINAL_LIMIT=4096;function pageTarget(info){return info?.type==="page"&&info?.targetId?info:null}function normalizeTarget(info){return{targetId:String(info.targetId),type:"page",url:info.url??"about:blank",title:info.title??"",openerId:info.openerId??null,openerFrameId:info.openerFrameId??null,browserContextId:info.browserContextId??null,attached:Boolean(info.attached),subtype:info.subtype??null}}function errorValue(value){return value instanceof Error?value:Error(String(value))}class BrowserEventBridge{#cdp;#options;#listeners=new Map;#unsubscribers=[];#targetInfos=new Map;#crashes=new Map;#downloads=new Map;#terminalDownloads=new Map;#terminal=new Set;#frameToTarget=new Map;#sessionToTarget=new Map;#waits=new Set;#disposed=false;#explicitDispose=false;ready;constructor(connection,options){if(!connection?.cdp)throw new TypeError("createEvents requires a browser connection");this.#cdp=connection.cdp;this.#options=this.#validate(options);this.#register();this.ready=this.#initialize()}#validate(options){const behavior=options.downloadBehavior??"default";if(!["default","allow","deny","allowAndName"].includes(behavior))throw new TypeError("Invalid downloadBehavior");if(behavior==="allow"&&!pathIsAbsolute(options.downloadPath))throw new TypeError("downloadPath must be an absolute path for allow");return{...options,downloadBehavior:behavior}}#register(){const on=(method,fn)=>this.#unsubscribers.push(this.#cdp.on(method,fn));on("Target.targetCreated",(info)=>this.#created(info,false));on("Target.targetDestroyed",(info)=>this.#destroyed(info));on("Target.targetInfoChanged",(info)=>{const target=pageTarget(info?.targetInfo);if(target&&this.#targetInfos.has(target.targetId))this.#targetInfos.set(target.targetId,normalizeTarget(target))});on("Target.targetCrashed",(info)=>{if(info?.targetId)this.#crashes.set(info.targetId,{status:info.status??"",errorCode:info.errorCode??0})});on("Target.attachedToTarget",(info,meta)=>{const targetId=info?.targetInfo?.targetId;const sessionId=info?.sessionId??meta?.sessionId;if(targetId&&sessionId){this.#sessionToTarget.set(sessionId,targetId)}});on("Target.detachedFromTarget",(info,meta)=>{const sessionId=info?.sessionId??meta?.sessionId;if(sessionId)this.#sessionToTarget.delete(sessionId)});on("Browser.downloadWillBegin",(info)=>this.#downloadBegin(info));on("Browser.downloadProgress",(info)=>this.#downloadProgress(info));on("Page.frameAttached",(info,meta)=>{const sessionId=info?.sessionId??meta?.sessionId;if(sessionId&&info?.frameId)this.#mapFrame(info.frameId,sessionId)});on("Page.frameNavigated",(info,meta)=>{const sessionId=info?.sessionId??meta?.sessionId;if(sessionId&&info?.frame?.id)this.#mapFrame(info.frame.id,sessionId)});if(this.#cdp.transportEvents?.on){this.#unsubscribers.push(this.#cdp.transportEvents.on("disconnected",()=>{this.#disconnectDownloads();this.#cancelWaits(Error("Browser transport disconnected"))}));this.#unsubscribers.push(this.#cdp.transportEvents.on("reconnected",()=>{this.#reconcile().catch((error)=>console.warn("[events] target reconciliation failed",error));this.#configureDownloads().catch((error)=>console.warn("[events] download reconfiguration failed",error))}))}}async#initialize(){await this.#cdp.ensureConnected();await this.#cdp.send("Target.setDiscoverTargets",{discover:true});const result=await this.#cdp.send("Target.getTargets");await this.#configureDownloads();const targets=(result?.targetInfos??[]).filter((info)=>pageTarget(info));targets.sort((a,b)=>Boolean(a.openerId)-Boolean(b.openerId));for(const info of targets)this.#created(info,true)}async#reconcile(){const result=await this.#cdp.send("Target.getTargets");const current=new Set((result?.targetInfos??[]).filter((info)=>pageTarget(info)).map((info)=>String(info.targetId)));for(const id of[...this.#targetInfos.keys()])if(!current.has(id))this.#destroyed({targetId:id});const targets=(result?.targetInfos??[]).filter((info)=>pageTarget(info));targets.sort((a,b)=>Boolean(a.openerId)-Boolean(b.openerId));for(const info of targets)this.#created(info,true)}async#configureDownloads(){const params={behavior:this.#options.downloadBehavior,eventsEnabled:true};if(this.#options.downloadBehavior==="allow"||this.#options.downloadBehavior==="allowAndName")params.downloadPath=this.#options.downloadPath;await this.#cdp.send("Browser.setDownloadBehavior",params)}#mapFrame(frameId,sessionId){const targetId=this.#sessionToTarget.get(sessionId)??[...this.#targetInfos.values()].find((info)=>info.attached&&info.targetId===sessionId)?.targetId;if(targetId)this.#frameToTarget.set(frameId,targetId)}#created(info,initial){const target=pageTarget(info?.targetInfo??info);if(!target)return;const normalized=normalizeTarget(target);const id=normalized.targetId;if(this.#targetInfos.has(id))return;this.#targetInfos.set(id,normalized);const popup=Boolean(normalized.openerId&&this.#targetInfos.has(normalized.openerId));this.#dispatch("tabOpened",{...normalized,popup,initial:Boolean(initial)});if(popup)this.#dispatch("popupOpened",{targetId:id,openerTargetId:normalized.openerId,openerFrameId:normalized.openerFrameId,url:normalized.url,title:normalized.title,initial:Boolean(initial)})}#destroyed(info){const id=info?.targetId;const last=this.#targetInfos.get(id);if(!last)return;this.#targetInfos.delete(id);const crash=this.#crashes.get(id)??null;this.#crashes.delete(id);for(const[frame,targetId]of this.#frameToTarget)if(targetId===id)this.#frameToTarget.delete(frame);this.#dispatch("tabClosed",{targetId:id,reason:crash?"crashed":"destroyed",lastKnown:last,crash})}#rememberTerminal(guid){this.#terminal.delete(guid);this.#terminal.add(guid);if(this.#terminal.size>TERMINAL_LIMIT){const oldest=this.#terminal.values().next().value;this.#terminal.delete(oldest);this.#terminalDownloads.delete(oldest)}}#downloadBegin(info={}){if(!info.guid||this.#terminal.has(info.guid))return;const record={guid:info.guid,url:info.url??null,suggestedFilename:info.suggestedFilename??"",frameId:info.frameId??null,targetId:this.#frameToTarget.get(info.frameId)??null,totalBytes:0,receivedBytes:0,filePath:null};this.#downloads.set(info.guid,record);this.#dispatch("downloadStarted",{guid:record.guid,url:record.url,suggestedFilename:record.suggestedFilename,frameId:record.frameId,targetId:record.targetId})}#downloadProgress(info={}){if(!info.guid)return;const alreadyTerminal=this.#terminal.has(info.guid);const record=this.#downloads.get(info.guid)??this.#terminalDownloads.get(info.guid);if(!record)return;Object.assign(record,{totalBytes:Number(info.totalBytes??0),receivedBytes:Number(info.receivedBytes??0),filePath:info.filePath??null});this.#dispatch("downloadProgress",{guid:info.guid,totalBytes:record.totalBytes,receivedBytes:record.receivedBytes,state:info.state,filePath:record.filePath,targetId:record.targetId});if((info.state==="completed"||info.state==="canceled")&&!alreadyTerminal){this.#rememberTerminal(info.guid);this.#downloads.delete(info.guid);this.#terminalDownloads.set(info.guid,record);this.#dispatch("downloadFinished",{guid:info.guid,totalBytes:record.totalBytes,receivedBytes:record.receivedBytes,state:info.state,cdpState:info.state,filePath:record.filePath,targetId:record.targetId,error:null})}}#disconnectDownloads(){if(this.#explicitDispose)return;for(const record of this.#downloads.values()){this.#rememberTerminal(record.guid);this.#dispatch("downloadFinished",{guid:record.guid,totalBytes:record.totalBytes,receivedBytes:record.receivedBytes,state:"failed",cdpState:null,filePath:record.filePath,targetId:record.targetId,error:{code:"browserDisconnected",message:"Browser transport disconnected"}})}this.#downloads.clear()}#dispatch(name,payload){const listeners=[...this.#listeners.get(name)??[]];Promise.allSettled(listeners.map((listener)=>Promise.resolve().then(()=>listener(payload)))).then((results)=>results.filter((r)=>r.status==="rejected").forEach((r)=>console.warn(`[events] ${name} listener failed`,r.reason)))}on(name,listener){this.#assertName(name);if(typeof listener!=="function")throw new TypeError("listener must be a function");const set=this.#listeners.get(name)??new Set;set.add(listener);this.#listeners.set(name,set);return()=>this.off(name,listener)}off(name,listener){this.#assertName(name);this.#listeners.get(name)?.delete(listener)}#cancelWaits(error){for(const cancel of this.#waits)cancel(error);this.#waits.clear()}waitForEvent(name,options={}){this.#assertName(name);if(this.#disposed)return Promise.reject(Error("Events bridge is disposed"));const timeout=options.timeout??DEFAULT_TIMEOUT;return new Promise((resolve,reject)=>{let done=false;let timer;const off=this.on(name,async(value)=>{try{if(options.predicate&&!await options.predicate(value))return;if(done)return;done=true;clearTimeout(timer);this.#waits.delete(cancel);off();resolve(value)}catch(error){if(!done){done=true;clearTimeout(timer);this.#waits.delete(cancel);off();reject(errorValue(error))}}});const cancel=(error)=>{if(!done){done=true;clearTimeout(timer);this.#waits.delete(cancel);off();reject(error??Error("Events bridge disposed"))}};this.#waits.add(cancel);timer=setTimeout(()=>cancel(Error(`Timed out waiting for browser event "${name}"`)),timeout)})}#assertName(name){if(!EVENT_NAMES.includes(name))throw new TypeError(`Unknown browser event: ${String(name)}`)}async dispose(){if(this.#disposed)return;this.#disposed=true;this.#explicitDispose=true;this.#cancelWaits();for(const off of this.#unsubscribers)off();this.#unsubscribers=[];this.#listeners.clear();await this.ready.catch(()=>{})}}function pathIsAbsolute(value){return typeof value==="string"&&(value.startsWith("/")||/^[A-Za-z]:[\\/]/.test(value))}function createEvents(connection,options={}){return new BrowserEventBridge(connection,options)}init_agent_tabs();init_viewport();import{randomUUID}from"node:crypto";import path7 from"node:path";import{mkdir as mkdir4,open as open3,readFile as readFile2,rename,lstat,chmod as chmod2}from"node:fs/promises";import{homedir}from"node:os";import{TextDecoder as TextDecoder2}from"node:util";import{mkdirSync}from"node:fs";import path6 from"node:path";import{tmpdir as tmpdir3}from"node:os";import{existsSync,readFileSync as readFileSync2}from"node:fs";import path5 from"node:path";var DatabaseCtor;async function loadSqlite(){if(DatabaseCtor)return DatabaseCtor;try{const mod=await import("node:sqlite");DatabaseCtor=(file)=>new mod.DatabaseSync(file,{readOnly:true,readBigInts:true})}catch{const mod=await import("bun:sqlite");DatabaseCtor=(file)=>new mod.Database(file,{readonly:true})}return DatabaseCtor}var CHROME_EPOCH_OFFSET_MS=11644473600000;var chromeTimeToMs=(time)=>Number(BigInt(time)/1000n)-CHROME_EPOCH_OFFSET_MS;var msToChromeTime=(ms)=>BigInt(Math.floor((ms+CHROME_EPOCH_OFFSET_MS)*1000));var EXTENSION_BRIDGE_REQUIRED="requires the extension bridge in standalone OmOWright";function createProfileApis(profilePath){function profileDir(){if(!profilePath){throw new UnsupportedOperationError("chrome.bookmarks/history/topSites need a profilePath (the browser's user-data-dir); pass it to createChromeApi(connection, { profilePath })")}return path5.join(profilePath,"Default")}async function openDb(fileName){const file=path5.join(profileDir(),fileName);if(!existsSync(file))return null;const ctor=await loadSqlite();return ctor(file)}async function withDb(fileName,fn){const db=await openDb(fileName);if(!db)return[];try{return fn(db)}finally{db.close()}}function bookmarkRoots(){const file=path5.join(profileDir(),"Bookmarks");if(!existsSync(file))return[];const parsed=JSON.parse(readFileSync2(file,"utf8"));return Object.values(parsed.roots??{}).filter((node)=>node&&typeof node==="object"&&node.id)}function walkBookmarks(nodes,visit,acc=[]){for(const node of nodes){visit(node,acc);if(Array.isArray(node.children))walkBookmarks(node.children,visit,acc)}return acc}function findBookmark(id){for(const root of bookmarkRoots()){const found=walkBookmarks([root],(node,acc)=>{if(node.id===String(id))acc.push(node)});if(found.length>0)return found[0]}return null}function toBookmark(node){const out={id:node.id,title:node.name??"",type:node.type};if(node.url)out.url=node.url;if(node.date_added)out.dateAdded=chromeTimeToMs(node.date_added);if(node.children)out.children=node.children.map(toBookmark);return out}const bookmarks={async get(idOrIdList){const ids=Array.isArray(idOrIdList)?idOrIdList:[idOrIdList];return ids.map(findBookmark).filter(Boolean).map(toBookmark)},async getChildren(id){const node=findBookmark(id);return(node?.children??[]).map(toBookmark)},async getRecent(numberOfItems){const urls=walkBookmarks(bookmarkRoots(),(node,acc)=>{if(node.type==="url")acc.push(node)});return urls.sort((a,b)=>Number(b.date_added??0)-Number(a.date_added??0)).slice(0,numberOfItems).map(toBookmark)},async getSubTree(id){const node=findBookmark(id);return node?[toBookmark(node)]:[]},async getTree(){return bookmarkRoots().map(toBookmark)},async search(query){const needle=typeof query==="string"?query.toLowerCase():(query.query??"").toLowerCase();const url=typeof query==="object"?query.url?.toLowerCase():undefined;const title=typeof query==="object"?query.title?.toLowerCase():undefined;return walkBookmarks(bookmarkRoots(),(node,acc)=>{if(node.type!=="url")return;const name=(node.name??"").toLowerCase();const href=(node.url??"").toLowerCase();const ok=needle&&(name.includes(needle)||href.includes(needle))||url&&href.includes(url)||title&&name.includes(title);if(ok)acc.push(node)}).map(toBookmark)},async create(){throw new UnsupportedOperationError(`chrome.bookmarks.create ${EXTENSION_BRIDGE_REQUIRED}`)},async update(){throw new UnsupportedOperationError(`chrome.bookmarks.update ${EXTENSION_BRIDGE_REQUIRED}`)},async move(){throw new UnsupportedOperationError(`chrome.bookmarks.move ${EXTENSION_BRIDGE_REQUIRED}`)},async remove(){throw new UnsupportedOperationError(`chrome.bookmarks.remove ${EXTENSION_BRIDGE_REQUIRED}`)},async removeTree(){throw new UnsupportedOperationError(`chrome.bookmarks.removeTree ${EXTENSION_BRIDGE_REQUIRED}`)}};const history={async search(query){const text=`%${query.text??""}%`;const start=query.startTime!=null?msToChromeTime(query.startTime):0n;const end=query.endTime!=null?msToChromeTime(query.endTime):99999999999999999n;const max=query.maxResults??100;return await withDb("History",(db)=>db.prepare(`SELECT id, url, title, visit_count, last_visit_time FROM urls
1500
+ WHERE (url LIKE ? OR title LIKE ?) AND last_visit_time BETWEEN ? AND ?
1501
+ ORDER BY last_visit_time DESC LIMIT ?`).all(text,text,start,end,max).map((row)=>({id:String(row.id),url:row.url,title:row.title??"",visitCount:Number(row.visit_count),lastVisitTime:chromeTimeToMs(row.last_visit_time)})))},async getVisits(details){return await withDb("History",(db)=>db.prepare(`SELECT v.id, v.visit_time, v.transition FROM visits v
1502
+ JOIN urls u ON u.id = v.url WHERE u.url = ?
1503
+ ORDER BY v.visit_time DESC`).all(details.url).map((row)=>({id:String(row.id),url:details.url,visitTime:chromeTimeToMs(row.visit_time),transition:Number(row.transition)})))},async addUrl(){throw new UnsupportedOperationError(`chrome.history.addUrl ${EXTENSION_BRIDGE_REQUIRED}`)},async deleteUrl(){throw new UnsupportedOperationError(`chrome.history.deleteUrl ${EXTENSION_BRIDGE_REQUIRED}`)},async deleteRange(){throw new UnsupportedOperationError(`chrome.history.deleteRange ${EXTENSION_BRIDGE_REQUIRED}`)}};const topSites={async get(){return(await withDb("Top Sites",(db)=>db.prepare(`SELECT url, title, url_rank FROM top_sites ORDER BY url_rank ASC LIMIT 50`).all())).map((row)=>({url:row.url,title:row.title??""}))}};return{bookmarks,history,topSites,withDb}}var EXTENSION_BRIDGE_REQUIRED2="requires the extension bridge in standalone OmOWright";var DOWNLOAD_TIMEOUT_MS=30000;function matchUrlPattern(url,pattern){const patterns=Array.isArray(pattern)?pattern:[pattern];return patterns.some((item)=>{if(!item.includes("*"))return url.startsWith(item);const regex=new RegExp(`^${item.replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*")}$`);return regex.test(url)})}function createChromeApi(connection,options={}){const profile=createProfileApis(options.profilePath);const cdp=connection.cdp;async function pageTargets(){return(await connection.listTargets()).filter((target)=>target.type==="page")}async function toTab(target){let windowId=0;try{const win=await cdp.send("Browser.getWindowForTarget",{targetId:target.targetId??target.id});windowId=win.windowId}catch{}return{id:target.targetId??target.id,url:target.url??"",title:target.title??"",windowId,active:false,pinned:false,audible:false,discarded:false,groupId:-1,index:-1}}const tabs={async query(queryInfo={}){let targets=await pageTargets();if(queryInfo.url)targets=targets.filter((t)=>matchUrlPattern(t.url??"",queryInfo.url));if(queryInfo.title)targets=targets.filter((t)=>(t.title??"").includes(queryInfo.title));const out=[];for(const target of targets){const tab=await toTab(target);if(queryInfo.windowId!=null&&tab.windowId!==queryInfo.windowId)continue;out.push(tab)}return out},async get(tabId){const targets=await pageTargets();const target=targets.find((t)=>(t.targetId??t.id)===tabId);if(!target)throw new Error(`No tab with id: ${tabId}`);return toTab(target)}};async function collectWindows(queryOptions={}){const byWindow=new Map;for(const target of await pageTargets()){const tab=await toTab(target);const list=byWindow.get(tab.windowId)??[];list.push(tab);byWindow.set(tab.windowId,list)}return[...byWindow.entries()].map(([windowId,windowTabs],index)=>{const win={id:windowId,focused:index===0,type:"normal",state:"normal",alwaysOnTop:false,incognito:false};if(queryOptions.populate)win.tabs=windowTabs;return win})}const windows={async get(windowId,queryOptions={}){const all=await collectWindows(queryOptions);const win=all.find((item)=>item.id===windowId);if(!win)throw new Error(`No window with id: ${windowId}`);return win},async getCurrent(queryOptions={}){const all=await collectWindows(queryOptions);if(all.length===0)throw new Error("No browser window found");return all[0]},async getLastFocused(queryOptions={}){const all=await collectWindows(queryOptions);if(all.length===0)throw new Error("No browser window found");return all[0]},async getAll(queryOptions={}){return collectWindows(queryOptions)}};const downloads={async search(query={}){return profile.withDb("History",(db)=>{const rows=db.prepare(`SELECT d.id, d.target_path, d.start_time, d.received_bytes, d.total_bytes, d.state,
1504
+ (SELECT url FROM downloads_url_chains c WHERE c.id = d.id AND c.chain_index = 0) AS url
1505
+ FROM downloads d ORDER BY d.start_time DESC LIMIT ?`).all(query.limit??100);return rows.map((row)=>({id:Number(row.id),url:row.url??"",filename:row.target_path,startTime:row.start_time?new Date(chromeTimeToMs(row.start_time)).toISOString():null,bytesReceived:Number(row.received_bytes),totalBytes:Number(row.total_bytes),state:Number(row.state)===1?"complete":Number(row.state)===2?"canceled":Number(row.state)===3?"interrupted":"in_progress"})).filter((item)=>!query.url||item.url.includes(query.url)).filter((item)=>!query.filename||item.filename.includes(query.filename))})},async download(downloadOptions){const downloadDir=options.downloadDir??path6.join(tmpdir3(),"omowright-downloads");mkdirSync(downloadDir,{recursive:true});let resolveBegin;let resolveDone;let rejectDone;const began=new Promise((resolve)=>{resolveBegin=resolve});const done=new Promise((resolve,reject)=>{resolveDone=resolve;rejectDone=reject});const offBegin=cdp.on("Browser.downloadWillBegin",(params)=>resolveBegin(params));const offProgress=cdp.on("Browser.downloadProgress",(params)=>{if(params.state==="completed")resolveDone(params);else if(params.state==="canceled")rejectDone(new Error("Download was canceled"))});const timer=setTimeout(()=>rejectDone(new Error(`chrome.downloads.download timed out after ${DOWNLOAD_TIMEOUT_MS}ms`)),DOWNLOAD_TIMEOUT_MS);const page=await connection.newTab("about:blank");try{await cdp.send("Browser.setDownloadBehavior",{behavior:"allow",downloadPath:downloadDir,eventsEnabled:true});await page.evaluate(`(() => {
1506
+ const a = document.createElement("a");
1507
+ a.href = ${JSON.stringify(downloadOptions.url)};
1508
+ document.body.appendChild(a);
1509
+ a.click();
1510
+ })()`);const begin=await Promise.race([began,done.then(()=>null)]);if(!begin)throw new Error("No download started for the given URL");await done;const filename=downloadOptions.filename??begin.suggestedFilename;return{id:begin.guid,url:begin.url??downloadOptions.url,filename:path6.join(downloadDir,filename??"download"),state:"complete"}}finally{clearTimeout(timer);offBegin();offProgress();await page.close().catch(()=>{})}},async pause(){throw new UnsupportedOperationError(`chrome.downloads.pause ${EXTENSION_BRIDGE_REQUIRED2}`)},async resume(){throw new UnsupportedOperationError(`chrome.downloads.resume ${EXTENSION_BRIDGE_REQUIRED2}`)},async cancel(){throw new UnsupportedOperationError(`chrome.downloads.cancel ${EXTENSION_BRIDGE_REQUIRED2}`)},async erase(){throw new UnsupportedOperationError(`chrome.downloads.erase ${EXTENSION_BRIDGE_REQUIRED2}`)}};return{tabs,windows,downloads,bookmarks:profile.bookmarks,history:profile.history,topSites:profile.topSites}}var HOST_NAME="com.omowright.cloakbridge";var PROTOCOL=1;var MAX_MESSAGE_BYTES=1024*1024;var EVENT_NAMES2=Object.freeze(["notifications.shown","notifications.clicked","notifications.closed","tabGroups.created","tabGroups.updated","tabGroups.moved","tabs.activated","windows.focusChanged"]);var COMMAND_NAMES=Object.freeze(["bookmarks.create","bookmarks.move","bookmarks.remove","history.deleteUrl","history.deleteRange","tabGroups.update","debugger.attach","debugger.detach"]);var MUTATING_COMMANDS=new Set(COMMAND_NAMES);var id=string2().min(1).max(128);var uuid3=string2().regex(/^[0-9a-fA-F-]{16,128}$/);var finite=number2().finite();var color=_enum2(["grey","blue","red","yellow","green","pink","purple","cyan","orange"]);var group=object({id:number2().int().min(0),collapsed:boolean2(),color,title:string2().max(1024).nullable().optional(),windowId:number2().int().min(-1)}).strict();var bookmarkNode=lazy(()=>object({id:string2().min(1),parentId:string2().min(1).optional(),index:number2().int().min(0).optional(),title:string2(),url:string2().optional(),dateAdded:finite.min(0).optional(),dateGroupModified:finite.min(0).optional(),dateLastUsed:finite.min(0).optional(),folderType:string2().optional(),syncing:boolean2().optional(),unmodifiable:string2().optional(),type:_enum2(["bookmark","folder","url"]).optional(),children:array(bookmarkNode).optional()}).strict());var empty=object({}).strict();var payloadSchemas={"notifications.shown":object({notificationId:string2().min(1).max(1024)}).strict(),"notifications.clicked":object({notificationId:string2().min(1).max(1024)}).strict(),"notifications.closed":object({notificationId:string2().min(1).max(1024),byUser:boolean2()}).strict(),"tabGroups.created":object({group}).strict(),"tabGroups.updated":object({group}).strict(),"tabGroups.moved":object({group}).strict(),"tabs.activated":object({tabId:number2().int().min(0),windowId:number2().int().min(-1),previousTabId:number2().int().min(0).optional()}).strict(),"windows.focusChanged":object({windowId:number2().int().min(-1)}).strict()};var commandParams={"bookmarks.create":object({details:object({parentId:string2().min(1).optional(),index:number2().int().min(0).optional(),title:string2().max(8192),url:string2().url().max(8192).optional()}).strict()}).strict(),"bookmarks.move":object({details:object({id:string2().min(1),parentId:string2().min(1).optional(),index:number2().int().min(0).optional()}).strict()}).strict(),"bookmarks.remove":object({details:object({id:string2().min(1)}).strict()}).strict(),"history.deleteUrl":object({details:object({url:string2().url().max(8192)}).strict()}).strict(),"history.deleteRange":object({details:object({startTime:finite.min(0),endTime:finite.min(0)}).strict()}).strict().refine((v)=>v.details.startTime<=v.details.endTime,"startTime must not exceed endTime"),"tabGroups.update":object({details:object({groupId:number2().int().min(0),updateProperties:object({collapsed:boolean2().optional(),color:color.optional(),title:string2().max(1024).nullable().optional()}).strict().refine((v)=>Object.keys(v).length>0,"updateProperties must not be empty")}).strict()}).strict(),"debugger.attach":object({details:object({tabId:number2().int().min(0),requiredVersion:string2().regex(/^\d+\.\d+$/)}).strict()}).strict(),"debugger.detach":object({details:object({tabId:number2().int().min(0)}).strict()}).strict()};var resultSchemas={"bookmarks.create":bookmarkNode,"bookmarks.move":bookmarkNode,"bookmarks.remove":empty,"history.deleteUrl":empty,"history.deleteRange":empty,"tabGroups.update":group,"debugger.attach":object({tabId:number2().int().min(0),attached:literal(true),requiredVersion:string2()}).strict(),"debugger.detach":object({tabId:number2().int().min(0),detached:literal(true)}).strict()};var base={protocol:literal(PROTOCOL)};function unique(values,ctx){if(new Set(values).size!==values.length)ctx.addIssue({code:ZodIssueCode.custom,message:"array entries must be unique"})}var names=(allowed)=>array(_enum2([...allowed])).superRefine(unique);var ExtensionHelloSchema=object({...base,type:literal("hello"),role:literal("extension"),connectionId:id,extensionId:string2().regex(/^[a-p]{32}$/),extensionVersion:string2().min(1).max(64),events:names(EVENT_NAMES2),commands:names(COMMAND_NAMES),maxMessageBytes:number2().int().min(1).max(MAX_MESSAGE_BYTES)}).strict();var HostHelloSchema=object({...base,type:literal("hello"),role:literal("host"),connectionId:id,hostName:literal(HOST_NAME),hostVersion:string2().min(1).max(64),events:names(EVENT_NAMES2),commands:names(COMMAND_NAMES),maxMessageBytes:number2().int().min(1).max(MAX_MESSAGE_BYTES)}).strict();var EventSchema=object({...base,type:literal("event"),connectionId:id,seq:number2().int().min(1),occurredAt:number2().int().min(0),name:_enum2(EVENT_NAMES2),payload:record(string2(),unknown())}).strict().superRefine((v,ctx)=>{if(!payloadSchemas[v.name].safeParse(v.payload).success)ctx.addIssue({code:ZodIssueCode.custom,message:"invalid event payload"})});var CommandSchema=object({...base,type:literal("command"),requestId:uuid3,name:_enum2(COMMAND_NAMES),params:record(string2(),unknown()),deadlineAt:number2().int().min(0).optional()}).strict().superRefine((v,ctx)=>{if(!commandParams[v.name].safeParse(v.params).success)ctx.addIssue({code:ZodIssueCode.custom,message:"invalid command parameters"})});var errorSchema=object({code:_enum2(["INVALID_MESSAGE","UNKNOWN_COMMAND","UNSUPPORTED_COMMAND","CHROME_ERROR","DEBUGGER_ERROR","NATIVE_HOST_DISCONNECTED","TIMEOUT","PAYLOAD_TOO_LARGE","INTERNAL_ERROR"]),message:string2().min(1).max(512),details:record(string2(),unknown()).optional()}).strict();var responseNames=[...COMMAND_NAMES,"protocolError"];var ResponseSchema=object({...base,type:literal("response"),requestId:uuid3,name:_enum2(responseNames),ok:boolean2(),result:unknown().optional(),error:errorSchema.optional()}).strict().superRefine((v,ctx)=>{const valid=v.ok?v.result!==undefined&&v.error===undefined&&v.name!=="protocolError":v.error!==undefined&&v.result===undefined;if(!valid)ctx.addIssue({code:ZodIssueCode.custom,message:"response must contain exactly one result or error"});if(v.ok&&resultSchemas[v.name]&&!resultSchemas[v.name].safeParse(v.result).success)ctx.addIssue({code:ZodIssueCode.custom,message:"invalid command result"})});class BridgeUnavailableError extends Error{constructor(message="Cloak bridge is unavailable"){super(message);this.name="BridgeUnavailableError"}}class BridgeProtocolError extends Error{constructor(message){super(message);this.name="BridgeProtocolError"}}var decoder=new TextDecoder2("utf-8",{fatal:true});var checked=(schema,value,message)=>{const result=schema.safeParse(value);if(!result.success)throw new BridgeProtocolError(message);return result.data};function schemaFor(value){if(value.type==="hello")return value.role==="host"?HostHelloSchema:ExtensionHelloSchema;if(value.type==="event")return EventSchema;if(value.type==="command")return CommandSchema;if(value.type==="response")return ResponseSchema;return null}function encodeFrame(value,maxMessageBytes=MAX_MESSAGE_BYTES){const schema=schemaFor(value);if(schema)checked(schema,value,"invalid outbound message");let json;try{json=JSON.stringify(value)}catch{throw new BridgeProtocolError("invalid JSON")}const body=Buffer.from(json,"utf8");if(body.length===0||body.length>maxMessageBytes)throw new BridgeProtocolError("PAYLOAD_TOO_LARGE");const frame=Buffer.allocUnsafe(4+body.length);frame.writeUInt32LE(body.length,0);body.copy(frame,4);return frame}function decodeFrames(buffer,maxMessageBytes=MAX_MESSAGE_BYTES){const frames=[];let offset=0;while(buffer.length-offset>=4){const length=buffer.readUInt32LE(offset);if(!length||length>maxMessageBytes)throw new BridgeProtocolError("PAYLOAD_TOO_LARGE");if(buffer.length-offset<length+4)break;const body=buffer.subarray(offset+4,offset+4+length);let text;try{text=decoder.decode(body)}catch{throw new BridgeProtocolError("invalid UTF-8")}try{frames.push(JSON.parse(text))}catch{throw new BridgeProtocolError("invalid JSON")}offset+=length+4}return{frames,remainder:buffer.subarray(offset)}}function createNativeMessagingHost({stdin=process.stdin,stdout=process.stdout,stderr=process.stderr,extensionId,hostName=HOST_NAME,maxMessageBytes=MAX_MESSAGE_BYTES,commandTimeoutMs=30000,maxPendingWrites=256,onEvent,onDisconnect}={}){if(!/^[a-p]{32}$/.test(extensionId??""))throw new BridgeProtocolError("a valid extensionId is required");if(!/^[a-z0-9]+(?:[.-][a-z0-9]+)*$/.test(hostName)||hostName!==HOST_NAME)throw new BridgeProtocolError("invalid hostName");let buffer=Buffer.alloc(0),closed=false,hello=null,hostConnectionId=null,effectiveMax=maxMessageBytes,lastEventSeq=0,sequence=0,mutationBusy=false;const pending=new Map,listeners=new Map,commandQueue=[],writeQueue=[];let writing=false;const disconnect=(reason)=>{if(closed)return;closed=true;const error=reason instanceof Error?reason:new BridgeUnavailableError(reason??"native host disconnected");for(const item of pending.values()){item.cleanup?.();item.reject(error)}pending.clear();for(const item of commandQueue.splice(0)){item.cleanup?.();item.reject(error)}for(const item of writeQueue.splice(0))item.reject(error);onDisconnect?.(error)};const write=(value)=>{if(closed)return Promise.reject(new BridgeUnavailableError);let frame;try{const schema=schemaFor(value);if(!schema)throw new BridgeProtocolError("invalid outbound message type");checked(schema,value,"invalid outbound message");frame=encodeFrame(value,effectiveMax)}catch(error){return Promise.reject(error)}if(writeQueue.length+(writing?1:0)>=maxPendingWrites)return Promise.reject(new BridgeProtocolError("BOUNDED_TRANSPORT"));return new Promise((resolve,reject)=>{writeQueue.push({frame,resolve,reject});pumpWrites()})};const pumpWrites=()=>{if(writing||closed||!writeQueue.length)return;writing=true;const item=writeQueue.shift();let finished=false;const done=(error)=>{if(finished)return;finished=true;writing=false;if(error){item.reject(error);disconnect(error)}else item.resolve();pumpWrites()};try{const result=stdout.write(item.frame,(error)=>done(error));if(result===false&&stdout.once)stdout.once("error",done)}catch(error){done(error)}};const pumpCommands=()=>{if(closed||mutationBusy||!commandQueue.length)return;const item=commandQueue.shift();item.started=true;mutationBusy=true;pending.set(item.requestId,item);write(item.command).catch((error)=>{if(pending.delete(item.requestId)){item.settled=true;item.cleanup();item.reject(error)}disconnect(error)})};const dispatchEvent=(event)=>{if(!hello||event.connectionId!==hello.connectionId||event.seq<=lastEventSeq||!hello.events.includes(event.name))throw new BridgeProtocolError("invalid event ordering or capability");lastEventSeq=event.seq;try{Promise.resolve(onEvent?.(event)).catch((error)=>stderr.write?.(`bridge listener: ${error.message}
1511
+ `))}catch(error){stderr.write?.(`bridge listener: ${error.message}
1512
+ `)}for(const fn of listeners.get(event.name)??[]){try{Promise.resolve(fn(event.payload)).catch((error)=>stderr.write?.(`bridge listener: ${error.message}
1513
+ `))}catch(error){stderr.write?.(`bridge listener: ${error.message}
1514
+ `)}}};const handle=(raw)=>{if(!hello){const parsed=checked(ExtensionHelloSchema,raw,"extension hello rejected");if(parsed.extensionId!==extensionId)throw new BridgeProtocolError("extension hello rejected");hello=parsed;hostConnectionId=randomUUID();effectiveMax=Math.min(maxMessageBytes,parsed.maxMessageBytes);lastEventSeq=0;return write({protocol:PROTOCOL,type:"hello",role:"host",connectionId:hostConnectionId,hostName,hostVersion:"0.1.0",events:EVENT_NAMES2.filter((x)=>parsed.events.includes(x)),commands:COMMAND_NAMES.filter((x)=>parsed.commands.includes(x)),maxMessageBytes:effectiveMax})}if(raw.type==="event")return dispatchEvent(checked(EventSchema,raw,"invalid event"));if(raw.type==="response"){const parsed=checked(ResponseSchema,raw,"invalid response");if(parsed.name==="protocolError")throw Object.assign(new BridgeProtocolError(parsed.error.message),{code:parsed.error.code,details:parsed.error.details});const item=pending.get(parsed.requestId);if(!item||item.name!==parsed.name)throw new BridgeProtocolError("invalid or unknown response");item.settled=true;pending.delete(parsed.requestId);item.cleanup();mutationBusy=false;if(parsed.ok)item.resolve(parsed.result);else item.reject(Object.assign(new Error(parsed.error.message),{code:parsed.error.code,details:parsed.error.details}));pumpCommands();return}throw new BridgeProtocolError("unexpected message")};const onData=(chunk)=>{try{buffer=Buffer.concat([buffer,Buffer.from(chunk)]);const out=decodeFrames(buffer,effectiveMax);buffer=out.remainder;for(const raw of out.frames)Promise.resolve(handle(raw)).catch((error)=>{stderr.write?.(`bridge: ${error.message}
1515
+ `);disconnect(error)})}catch(error){stderr.write?.(`bridge: ${error.message}
1516
+ `);disconnect(error)}};stdin.on("data",onData);stdin.once?.("end",()=>disconnect());stdin.once?.("error",disconnect);return{get isConnected(){return!closed&&!!hello},get capabilities(){return{commands:new Set(hello?.commands??[]),events:new Set(hello?.events??[])}},send:write,request(name,params,{signal,timeoutMs=commandTimeoutMs}={}){if(!hello||!hello.commands.includes(name))return Promise.reject(new BridgeUnavailableError(`unsupported bridge command: ${name}`));let command;try{command=checked(CommandSchema,{protocol:PROTOCOL,type:"command",requestId:randomUUID(),name,params},"invalid command parameters")}catch(error){return Promise.reject(error)}return new Promise((resolve,reject)=>{if(commandQueue.length+pending.size>=maxPendingWrites){reject(new BridgeProtocolError("BOUNDED_TRANSPORT"));return}const item={requestId:command.requestId,name,command,resolve,reject,timer:null,abortHandler:null,cleanup:null,settled:false};const cleanup=()=>{clearTimeout(item.timer);if(item.abortHandler){signal?.removeEventListener("abort",item.abortHandler);item.abortHandler=null}};item.cleanup=cleanup;const failIndeterminate=(code,reason=null)=>{if(item.settled)return;item.settled=true;cleanup();if(pending.delete(item.requestId)||commandQueue.includes(item)){const i=commandQueue.indexOf(item);if(i>=0)commandQueue.splice(i,1);item.reject(reason??Object.assign(new Error(`bridge command timed out: ${name}`),{code}))}if(item.started)disconnect(Object.assign(new Error("mutation completion is indeterminate"),{code}))};item.timer=setTimeout(()=>failIndeterminate("TIMEOUT"),timeoutMs);if(signal?.aborted){item.settled=true;cleanup();reject(signal.reason??Object.assign(new Error(`bridge command aborted: ${name}`),{code:"ABORT_ERR"}));return}item.abortHandler=()=>failIndeterminate("ABORT_ERR",signal.reason);signal?.addEventListener("abort",item.abortHandler,{once:true});commandQueue.push(item);pumpCommands()})},on(name,listener){if(!EVENT_NAMES2.includes(name))throw new BridgeProtocolError("invalid event name");const set=listeners.get(name)??new Set;set.add(listener);listeners.set(name,set);return()=>{set.delete(listener);if(!set.size)listeners.delete(name)}},emitEvent(name,payload){if(!hello?.events.includes(name))return Promise.reject(new BridgeUnavailableError("unsupported bridge event"));const checkedPayload=payloadSchemas[name].safeParse(payload);if(!checkedPayload.success)return Promise.reject(new BridgeProtocolError("invalid event payload"));sequence+=1;return write({protocol:PROTOCOL,type:"event",connectionId:hostConnectionId,seq:sequence,occurredAt:Date.now(),name,payload:checkedPayload.data})},close(){disconnect("closed");stdin.removeListener?.("data",onData)}}}var NATIVE_HOST_DIRS={darwin:{chrome:["Library","Application Support","Google","Chrome"],chromium:["Library","Application Support","Chromium"]},linux:{chrome:[".config","google-chrome"],chromium:[".config","chromium"]}};function defaultNativeMessagingHostDir(browser="chrome",platform=process.platform){const byBrowser=NATIVE_HOST_DIRS[platform];if(!byBrowser)throw new BridgeProtocolError(`no default nativeMessagingHostDir on ${platform}; pass nativeMessagingHostDir`);const segments=byBrowser[browser];if(!segments)throw new BridgeProtocolError("custom browser requires nativeMessagingHostDir");return path7.join(homedir(),...segments,"NativeMessagingHosts")}async function secureDirectory(dir){const absolute=path7.resolve(dir);const parts=absolute.split(path7.sep).filter(Boolean);let current=path7.parse(absolute).root;let final;for(const[index,part]of parts.entries()){current=path7.join(current,part);let info=await lstat(current).catch(()=>null);if(!info){await mkdir4(current,{mode:448});info=await lstat(current)}if(current!=="/var"&&(info.isSymbolicLink()||!info.isDirectory()))throw new BridgeProtocolError("nativeMessagingHostDir security rejected");if(current!=="/var"&&info.uid!==process.getuid?.()&&info.uid!==0)throw new BridgeProtocolError("nativeMessagingHostDir ownership rejected");const stickyRootAncestor=index<parts.length-1&&info.uid===0&&(info.mode&512)!==0;if(current!=="/var"&&!stickyRootAncestor&&(info.mode&18)!==0)throw new BridgeProtocolError("nativeMessagingHostDir security rejected");final=info}if(!final||final.uid!==process.getuid?.()&&final.uid!==0)throw new BridgeProtocolError("nativeMessagingHostDir ownership rejected");if((final.mode&63)!==0)await chmod2(absolute,448)}async function secureExecutable(hostPath){const info=await lstat(hostPath).catch(()=>null);if(!info?.isFile()||info.isSymbolicLink()||info.uid!==process.getuid?.()||(info.mode&73)===0||(info.mode&18)!==0)throw new BridgeProtocolError("hostPath must be a securely owned executable file")}async function installNativeMessagingHost({hostName=HOST_NAME,hostPath,extensionId,browser="chrome",nativeMessagingHostDir,force=false,endpointPath}={}){if(endpointPath!==undefined)throw new BridgeProtocolError("endpointPath is not supported");if(hostName!==HOST_NAME||!/^[a-z0-9]+(?:[.-][a-z0-9]+)*$/.test(hostName))throw new BridgeProtocolError("invalid hostName");if(!path7.isAbsolute(hostPath??""))throw new BridgeProtocolError("hostPath must be absolute");await secureExecutable(hostPath);if(!/^[a-p]{32}$/.test(extensionId??""))throw new BridgeProtocolError("invalid extensionId");if(!nativeMessagingHostDir&&browser==="cloakbrowser")throw new BridgeProtocolError("CloakBrowser nativeMessagingHostDir must be explicit and verified");const dir=nativeMessagingHostDir??defaultNativeMessagingHostDir(browser);await secureDirectory(dir);const manifest={name:hostName,description:"OmOWright internal CloakBrowser native messaging bridge.",path:hostPath,type:"stdio",allowed_origins:[`chrome-extension://${extensionId}/`]};const file=path7.join(dir,`${hostName}.json`);if(!force&&await lstat(file).catch(()=>null))throw new BridgeProtocolError("registration manifest already exists; use force");const temp=`${file}.${process.pid}.${randomUUID()}.tmp`;const handle=await open3(temp,"wx",384);try{await handle.writeFile(JSON.stringify(manifest,null,2)+`
1517
+ `);await handle.sync()}finally{await handle.close()}await rename(temp,file);const parsed=JSON.parse(await readFile2(file,"utf8"));await chmod2(file,384);return{path:file,manifest:parsed}}function createBridgeClient(options={}){return createNativeMessagingHost(options)}function createChromeApi2(connection,options={}){const chrome=createChromeApi(connection,options);const bridge=options.bridge;const request=(wire,params)=>bridge?.isConnected&&bridge.capabilities?.commands?.has(wire)?bridge.request(wire,params):Promise.reject(new UnsupportedOperationError(`chrome.${wire} requires the extension bridge in standalone OmOWright`));chrome.bookmarks.create=(details)=>request("bookmarks.create",{details});chrome.bookmarks.move=(id,details={})=>request("bookmarks.move",{details:{...details,id:String(id)}});chrome.bookmarks.remove=(id)=>request("bookmarks.remove",{details:{id:String(id)}});chrome.history.deleteUrl=(details)=>request("history.deleteUrl",{details});chrome.history.deleteRange=(details)=>request("history.deleteRange",{details});chrome.tabGroups={update:(groupId,updateProperties)=>request("tabGroups.update",{details:{groupId,updateProperties}})};chrome.debugger={attach:(target,requiredVersion)=>request("debugger.attach",{details:{tabId:target.tabId??target,requiredVersion}}),detach:(target)=>request("debugger.detach",{details:{tabId:target.tabId??target}})};const eventMap={notifications:["onShown","onClicked","onClosed"],tabGroups:["onCreated","onUpdated","onMoved"],tabs:["onActivated"],windows:["onFocusChanged"]};for(const[namespace,events]of Object.entries(eventMap)){chrome[namespace]??={};for(const event of events){const wire=`${namespace}.${event.slice(2,3).toLowerCase()+event.slice(3)}`;const subscriptions=new Map;chrome[namespace][event]={addListener(listener){if(!bridge?.on)return;const unsubscribe=bridge.on(wire,(payload)=>listener(...namespace==="notifications"&&event==="onClosed"?[payload.notificationId,payload.byUser]:namespace==="notifications"?[payload.notificationId]:namespace==="tabGroups"?[payload.group]:namespace==="windows"?[payload.windowId]:[payload]));subscriptions.set(listener,unsubscribe);return unsubscribe},removeListener(listener){const unsubscribe=subscriptions.get(listener);if(unsubscribe){unsubscribe();subscriptions.delete(listener)}}}}}return chrome}function sanitizeCookies(cookies){const byKey=new Map;for(const cookie of cookies){const out={name:cookie.name,value:cookie.value,path:cookie.path||"/",secure:Boolean(cookie.secure),httpOnly:Boolean(cookie.httpOnly)};if(cookie.name.startsWith("__Host-")){out.secure=true;out.path="/";out.url=`https://${cookie.domain.replace(/^\./,"")}`}else{out.domain=cookie.domain}if(cookie.expires&&cookie.expires>0)out.expires=cookie.expires;if(cookie.sameSite&&(cookie.sameSite!=="None"||out.secure))out.sameSite=cookie.sameSite;const key=`${out.name}|${out.domain??out.url}`;const prev=byKey.get(key);if(!prev||(out.expires??0)>(prev.expires??0))byKey.set(key,out)}return[...byKey.values()]}async function injectCookies(page,cookies){await page._sendToTarget("Network.setCookies",{cookies:sanitizeCookies(cookies)})}var DEVICE_PRESETS=Object.freeze({"iphone-14":{width:390,height:844,deviceScaleFactor:3,mobile:true,hasTouch:true,userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 16_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Mobile/15E148 Safari/604.1",platform:"iPhone"},"pixel-7":{width:412,height:915,deviceScaleFactor:2.625,mobile:true,hasTouch:true,userAgent:"Mozilla/5.0 (Linux; Android 13; Pixel 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Mobile Safari/537.36",platform:"Linux armv8l"},"ipad-air":{width:820,height:1180,deviceScaleFactor:2,mobile:true,hasTouch:true,userAgent:"Mozilla/5.0 (iPad; CPU OS 16_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Mobile/15E148 Safari/604.1",platform:"MacIntel"},"desktop-1440":{width:1440,height:900,deviceScaleFactor:1,mobile:false,hasTouch:false,userAgent:undefined,platform:undefined}});var originalUAs=new WeakMap;async function emulate(page,presetNameOrObject){let preset;if(presetNameOrObject===null){preset=null}else if(typeof presetNameOrObject==="string"){if(!DEVICE_PRESETS[presetNameOrObject]){throw new Error(`unknown device preset: ${presetNameOrObject}`)}preset=DEVICE_PRESETS[presetNameOrObject]}else{preset=presetNameOrObject}const sessionId=await page.resolveSessionId();if(preset===null){await page.cdp.send("Emulation.clearDeviceMetricsOverride",{},sessionId);await page.cdp.send("Emulation.setTouchEmulationEnabled",{enabled:false},sessionId);const originalUA=originalUAs.get(page);if(originalUA){await page.cdp.send("Emulation.setUserAgentOverride",{userAgent:originalUA},sessionId)}}else{if(!originalUAs.has(page)){const ua=await page.evaluate(()=>navigator.userAgent);originalUAs.set(page,ua)}await page.cdp.send("Emulation.setDeviceMetricsOverride",{width:preset.width,height:preset.height,deviceScaleFactor:preset.deviceScaleFactor,mobile:preset.mobile,screenWidth:preset.width,screenHeight:preset.height},sessionId);await page.cdp.send("Emulation.setTouchEmulationEnabled",{enabled:preset.hasTouch,maxTouchPoints:preset.hasTouch?5:1},sessionId);if(preset.userAgent!==undefined){await page.cdp.send("Emulation.setUserAgentOverride",{userAgent:preset.userAgent,platform:preset.platform},sessionId)}}if(page.refreshViewportSize){await page.refreshViewportSize()}return preset}var AUTO_ATTACH={autoAttach:true,waitForDebuggerOnStart:false,flatten:true};var REF_PATTERN2=/^(f\d+)?e\d+$/;function detach(page,sessionId){return page.cdp.send("Target.detachFromTarget",{sessionId}).catch(()=>{})}async function iframeTargets(page){const{targetInfo}=await page.cdp.send("Target.getTargetInfo",{targetId:page.targetId});const browserContextId=targetInfo?.browserContextId;const{targetInfos}=await page.cdp.send("Target.getTargets",{filter:[{type:"iframe"}]});return targetInfos.filter((info)=>info.type==="iframe"&&(!browserContextId||!info.browserContextId||info.browserContextId===browserContextId))}function isAttributed(fm,frameId){const seen=new Set;let frame=fm.frames.get(frameId);while(frame&&!seen.has(frame.frameId)){if(frame.frameId===fm.mainFrameId)return true;seen.add(frame.frameId);frame=frame.parentFrameId?fm.frames.get(frame.parentFrameId):null}return false}async function describeTarget(page,targetId){const{sessionId}=await page.cdp.send("Target.attachToTarget",{targetId,flatten:true});try{await page.cdp.send("Page.enable",undefined,sessionId);const{frameTree}=await page.cdp.send("Page.getFrameTree",undefined,sessionId);return{sessionId,frame:frameTree.frame}}catch(error){await detach(page,sessionId);throw error}}async function adopt(page,sessionId,frame,parentFrameId){await page.cdp.send("DOM.enable",undefined,sessionId);await page.cdp.send("Target.setAutoAttach",AUTO_ATTACH,sessionId).catch(()=>{});page.frameManager.frames.set(frame.id,{frameId:frame.id,parentFrameId,url:frame.url??"",name:frame.name??"",sessionId});const isolatedContextId=await page.frameManager.ensureInjected(frame.id);return{frameId:frame.id,parentFrameId,url:frame.url??"",sessionId,isolatedContextId}}async function reconcileFrames(page){const fm=page.frameManager;const added=[];let pending=(await iframeTargets(page)).filter((info)=>!isAttributed(fm,info.targetId));let progress=true;while(progress&&pending.length>0){progress=false;const retry=[];for(const target of pending){if(isAttributed(fm,target.targetId))continue;const{sessionId,frame}=await describeTarget(page,target.targetId);const parentFrameId=frame.parentId??null;if(!parentFrameId||!isAttributed(fm,parentFrameId)){await detach(page,sessionId);if(parentFrameId)retry.push(target);continue}added.push(await adopt(page,sessionId,frame,parentFrameId));progress=true}pending=retry}return added}function framePrefixes(fm){let counter=1;return fm.collectDescendantFrames(fm.mainFrameId).map(({frameId})=>({frameId,prefix:frameId===fm.mainFrameId?"":`f${counter++}`}))}function collectMissingFrames(page,refs){const seen=new Set(Object.keys(refs??{}).map((ref)=>ref.match(REF_PATTERN2)?.[1]??""));const missing=[];for(const{frameId,prefix}of framePrefixes(page.frameManager)){if(prefix===""||seen.has(prefix))continue;const frame=page.frameManager.getFrame(frameId);if(frame?.isolatedContextId)continue;missing.push({frameId,url:frame?.url??"",injected:false})}return missing}async function snapshotWithFrames(page,opts={}){await reconcileFrames(page);const result=await page.snapshot(opts);const missingFrames=collectMissingFrames(page,result.refs);return missingFrames.length>0?{...result,missingFrames}:result}var HTTP_VERSION="HTTP/1.1";var CREATOR=Object.freeze({name:"omowright",version:"0.0.1"});function headerList(headers){return Object.entries(headers??{}).map(([name,value])=>({name,value:String(value)}))}function headerValue(headers,name){for(const[key,value]of Object.entries(headers??{})){if(key.toLowerCase()===name)return String(value)}return null}function queryString(url){try{return[...new URL(String(url)).searchParams].map(([name,value])=>({name,value}))}catch{return[]}}function elapsed(entry){const started=Number(entry.startedAt);const finished=Number(entry.finishedAt);if(!Number.isFinite(started)||!Number.isFinite(finished))return 0;return Math.max(0,finished-started)}function requestOf(entry){const postData=entry.postData??null;const request={method:entry.method??"GET",url:entry.url??"",httpVersion:HTTP_VERSION,cookies:[],headers:headerList(entry.requestHeaders),queryString:queryString(entry.url),headersSize:-1,bodySize:postData===null?0:Buffer.byteLength(postData)};if(postData!==null){request.postData={mimeType:headerValue(entry.requestHeaders,"content-type")??"",text:postData}}return request}function contentOf(entry){const content={size:Number(entry.encodedDataLength??0),mimeType:entry.mimeType??""};if(typeof entry.body==="string")content.text=entry.body;if(entry.base64Encoded)content.encoding="base64";return content}function responseOf(entry){return{status:entry.failed?0:Number(entry.status??0),statusText:entry.statusText??"",httpVersion:HTTP_VERSION,cookies:[],headers:headerList(entry.responseHeaders),content:contentOf(entry),redirectURL:headerValue(entry.responseHeaders,"location")??"",headersSize:-1,bodySize:Number(entry.encodedDataLength??0)}}function toHar(entries,{creator=CREATOR,pages=[]}={}){const log={version:"1.2",creator,pages,entries:[...entries??[]].map((entry)=>{const time=elapsed(entry);const har={startedDateTime:new Date(Number(entry.startedAt)||0).toISOString(),time,request:requestOf(entry),response:responseOf(entry),cache:{},timings:{send:0,wait:time,receive:0}};if(entry.failed)har._errorText=entry.errorText??"";return har})};return{log}}function injectHumanBanner(prompt){if(document.querySelector('[data-omowright-human="1"]'))return true;const host=document.createElement("div");host.setAttribute("data-omowright-human","1");host.style.cssText="position:fixed;top:0;left:0;right:0;z-index:2147483647;display:block;visibility:visible;opacity:1;pointer-events:auto;";const root=host.attachShadow({mode:"open"});const bar=document.createElement("div");bar.setAttribute("style","display:flex;align-items:center;gap:12px;padding:10px 16px;background:#111;color:#fff;font:14px/1.4 system-ui,sans-serif;");const message=document.createElement("span");message.textContent=prompt==null?"":String(prompt);const button=document.createElement("button");button.textContent="Done";button.addEventListener("click",()=>{window.__omowrightHumanDone=true});bar.append(message,button);root.append(bar);(document.documentElement??document.body).appendChild(host);return true}function humanBannerPresent(){return document.querySelector('[data-omowright-human="1"]')!==null}function humanDoneFlag(){return window.__omowrightHumanDone===true}function querySelectorExists(selector){return document.querySelector(selector)!==null}function removeHumanBanner(){document.querySelectorAll('[data-omowright-human="1"]').forEach((node)=>node.remove());try{delete window.__omowrightHumanDone}catch{window.__omowrightHumanDone=undefined}}function sleep(ms,signal){return new Promise((resolve)=>{if(signal?.aborted){resolve();return}const timer=setTimeout(()=>{signal?.removeEventListener("abort",onAbort);resolve()},ms);function onAbort(){clearTimeout(timer);resolve()}signal?.addEventListener("abort",onAbort,{once:true})})}async function ensureBanner(page,prompt){try{if(await page.evaluate(humanBannerPresent))return;await page.evaluate(injectHumanBanner,prompt??"")}catch{}}async function matchesUntil(page,until){if(until==null)return false;if(typeof until==="function")return Boolean(await until(page));if(typeof until==="object"){if(Object.prototype.hasOwnProperty.call(until,"url")){const current=page.url();const expected=until.url;if(expected instanceof RegExp)return expected.test(current);return String(current).includes(String(expected))}if(typeof until.selector==="string"){try{return Boolean(await page.evaluate(querySelectorExists,until.selector))}catch{return false}}}return false}async function isDone(page){try{return await page.evaluate(humanDoneFlag)===true}catch{return false}}async function requestHuman(page,{prompt,until,timeoutMs=300000,pollMs=500,signal}={}){const started=Date.now();const finish=(outcome,reason)=>({outcome,elapsedMs:Date.now()-started,reason});try{await page.bringToFront().catch(()=>{});await ensureBanner(page,prompt);for(;;){if(signal?.aborted)return finish("cancelled","signal");if(Date.now()-started>=timeoutMs)return finish("timed_out","timed_out");if(await matchesUntil(page,until))return finish("continued","until");if(await isDone(page))return finish("continued","done-button");await ensureBanner(page,prompt);const remaining=timeoutMs-(Date.now()-started);if(remaining<=0)return finish("timed_out","timed_out");await sleep(Math.min(pollMs,remaining),signal)}}finally{await page.evaluate(removeHumanBanner).catch(()=>{})}}async function describeLayers(page,{grid=5}={}){return page.evaluate((gridSize)=>{const width=Math.round(globalThis.visualViewport?.width??globalThis.innerWidth??0);const height=Math.round(globalThis.visualViewport?.height??globalThis.innerHeight??0);const viewport={width,height};const total=gridSize*gridSize;const hits=new Map;function pierceTopmost(x,y){const stack=document.elementsFromPoint(x,y);let el=stack[0]??null;const seen=new Set;while(el?.shadowRoot&&typeof el.shadowRoot.elementsFromPoint==="function"){if(seen.has(el))break;seen.add(el);const inner=el.shadowRoot.elementsFromPoint(x,y)??[];const next=inner.find((node)=>node&&node!==el);if(!next)break;el=next}return el}function parentOf(node){if(!node)return null;if(node.parentElement)return node.parentElement;const root=node.getRootNode?.();return root?.host??null}function promote(el){const minArea=0.5*width*height;let node=el;while(node&&node.nodeType===1){const position=getComputedStyle(node).position;if(position==="fixed"||position==="sticky"||position==="absolute"){const rect=node.getBoundingClientRect();if(rect.width*rect.height>=minArea)return node}node=parentOf(node)}return el}function labelledByText(el){const ids=(el.getAttribute("aria-labelledby")||"").trim();if(!ids)return"";return ids.split(/\s+/).map((id)=>document.getElementById(id)?.textContent?.trim()??"").filter(Boolean).join(" ")}function elementName(el){const ariaLabel=el.getAttribute("aria-label");if(ariaLabel)return ariaLabel;const labelled=labelledByText(el);if(labelled)return labelled;const heading=el.querySelector("h1,h2,h3,h4,h5,h6")?.textContent?.trim();if(heading)return heading;return(el.innerText||el.textContent||"").trim().replace(/\s+/g," ").slice(0,80)}function selectorHint(el){if(el.id)return`#${el.id}`;const classes=[...el.classList].join(".");return classes?`${el.tagName.toLowerCase()}.${classes}`:el.tagName.toLowerCase()}function describe(el,coverage){return{tagName:el.tagName,role:el.getAttribute("role")||"",name:elementName(el),coverage,position:getComputedStyle(el).position,selectorHint:selectorHint(el),ariaModal:el.getAttribute("aria-modal")==="true"}}function isMainContent(el){if(el===document.documentElement||el===document.body)return true;if(el.tagName==="MAIN")return true;return(el.getAttribute("role")||"").toLowerCase()==="main"}function isBlocking(el,info){if(info.coverage<0.6)return false;if(getComputedStyle(el).pointerEvents==="none")return false;const role=(info.role||"").toLowerCase();if(role==="dialog"||role==="alertdialog")return true;if(info.ariaModal)return true;if(isMainContent(el))return false;return info.position==="fixed"||info.position==="absolute"}const insetX=width*0.05;const insetY=height*0.05;const spanX=width*0.9;const spanY=height*0.9;for(let row=0;row<gridSize;row++){for(let col=0;col<gridSize;col++){const x=insetX+(col+0.5)*spanX/gridSize;const y=insetY+(row+0.5)*spanY/gridSize;const top=pierceTopmost(x,y);if(!top)continue;const candidate=promote(top);hits.set(candidate,(hits.get(candidate)??0)+1)}}const candidates=[...hits.entries()].map(([el,count])=>{const info=describe(el,total>0?count/total:0);return{el,info}}).sort((a,b)=>b.info.coverage-a.info.coverage);const blockingEntry=candidates.find((entry)=>isBlocking(entry.el,entry.info));return{blocking:blockingEntry?blockingEntry.info:null,candidates:candidates.map((entry)=>entry.info),viewport}},grid)}function layersHeader(result){const blocking=result?.blocking;if(!blocking)return"@layers none";const who=blocking.role||blocking.tagName;const pct=Math.round(blocking.coverage*100);return`@layers blocking=${who} "${blocking.name}" coverage=${pct}% hint=${blocking.selectorHint}`}async function snapshotWithLayers(page,snapshotOptions){const snapshot=await page.snapshot(snapshotOptions);const layers=await describeLayers(page);return{...snapshot,layers,tree:`${layersHeader(layers)}
1518
+ ${snapshot.tree}`}}var DEFAULT_TIMEOUT_MS=30000;var JSON_MIME=/^application\/json\s*(;|$)|\+json\s*(;|$)/i;function matchesText(value,pattern){if(pattern===undefined)return true;if(value===null||value===undefined)return false;if(pattern instanceof RegExp)return pattern.test(String(value));return String(value).includes(String(pattern))}function matchesToken(value,expected){if(expected===undefined)return true;if(value===null||value===undefined)return false;return String(value).toLowerCase()===String(expected).toLowerCase()}function toPredicate(match){if(match===undefined||match===null)return()=>true;if(typeof match==="function")return match;if(typeof match!=="object")throw new TypeError("match must be a predicate function or a descriptor object");return(entry)=>matchesText(entry.url,match.url)&&matchesToken(entry.method,match.method)&&matchesText(entry.mimeType,match.mimeType)&&matchesToken(entry.resourceType,match.resourceType)}function startedAtOf(params){const wallTime=Number(params?.wallTime);return Number.isFinite(wallTime)&&wallTime>0?Math.round(wallTime*1000):Date.now()}function decodeBody(entry){if(typeof entry.body!=="string")return null;return entry.base64Encoded?Buffer.from(entry.body,"base64").toString("utf8"):entry.body}function createNetworkSnoop(page,options={}){if(!page?.cdp||typeof page.resolveSessionId!=="function"){throw new TypeError("createNetworkSnoop requires a page with cdp and resolveSessionId")}const{match,bodies=true,maxEntries=500,maxBodyBytes=5000000}=options;const wanted=toPredicate(match);const inflight=new Map;const buffer=[];const waiters=new Set;const unsubscribers=[];let sessionId=null;let disposed=false;let queue=Promise.resolve();const ready=Promise.resolve(page.resolveSessionId()).then((id)=>{sessionId=id});ready.catch((error)=>console.warn("[network-snoop] failed to resolve the page session",error));function subscribe(method,handler){unsubscribers.push(page.cdp.on(method,(params,meta)=>{if(disposed)return;if(sessionId===null){ready.then(()=>{if(!disposed&&meta?.sessionId===sessionId)handler(params)}).catch(()=>{});return}if(meta?.sessionId!==sessionId)return;handler(params)}))}function enqueue(task){queue=queue.then(task).catch((error)=>console.warn("[network-snoop] entry processing failed",error))}async function loadBody(entry){if(entry.encodedDataLength>maxBodyBytes){entry.bodySkipped=true;return}try{const result=await page.cdp.send("Network.getResponseBody",{requestId:entry.requestId},sessionId);entry.body=result?.body??null;entry.base64Encoded=Boolean(result?.base64Encoded)}catch{entry.body=null}}function commit(entry){buffer.push(entry);while(buffer.length>maxEntries)buffer.shift();for(const waiter of[...waiters])if(waiter.test(entry))waiter.resolve(entry)}subscribe("Network.requestWillBeSent",(params)=>{const requestId=params?.requestId;if(!requestId)return;inflight.set(requestId,{requestId,url:params.request?.url??params.documentURL??"",method:params.request?.method??"GET",resourceType:params.type??null,status:null,statusText:null,mimeType:null,requestHeaders:params.request?.headers??{},responseHeaders:null,remoteIPAddress:null,postData:params.request?.postData??null,encodedDataLength:0,body:null,base64Encoded:false,bodySkipped:false,failed:false,errorText:null,startedAt:startedAtOf(params),finishedAt:null})});subscribe("Network.responseReceived",(params)=>{const entry=inflight.get(params?.requestId);if(!entry)return;const response=params.response??{};entry.status=response.status??null;entry.statusText=response.statusText??"";entry.mimeType=response.mimeType??null;entry.responseHeaders=response.headers??{};entry.remoteIPAddress=response.remoteIPAddress??null;if(params.type)entry.resourceType=params.type});subscribe("Network.loadingFinished",(params)=>{const entry=inflight.get(params?.requestId);if(!entry)return;inflight.delete(entry.requestId);entry.encodedDataLength=Number(params.encodedDataLength??0);entry.finishedAt=Date.now();enqueue(async()=>{if(!wanted(entry))return;if(bodies)await loadBody(entry);commit(entry)})});subscribe("Network.loadingFailed",(params)=>{const entry=inflight.get(params?.requestId);if(!entry)return;inflight.delete(entry.requestId);entry.failed=true;entry.errorText=params.errorText??"";entry.encodedDataLength=Number(params.encodedDataLength??entry.encodedDataLength);entry.finishedAt=Date.now();enqueue(async()=>{if(wanted(entry))commit(entry)})});function pop(){return buffer.splice(0,buffer.length)}function peek(){return[...buffer]}function popJson(){const values=[];for(const entry of pop()){if(!JSON_MIME.test(String(entry.mimeType??"")))continue;const text=decodeBody(entry);if(text===null)continue;try{values.push(JSON.parse(text))}catch{}}return values}function waitFor(match,{timeoutMs=DEFAULT_TIMEOUT_MS}={}){if(disposed)return Promise.reject(Error("Network snoop is disposed"));const predicate=toPredicate(match);return new Promise((resolve,reject)=>{let settled=false;const waiter={};const finish=(callback)=>(value)=>{if(settled)return;settled=true;clearTimeout(timer);waiters.delete(waiter);callback(value)};waiter.resolve=finish(resolve);waiter.reject=finish(reject);waiter.test=(entry)=>{try{return Boolean(predicate(entry))}catch(error){waiter.reject(error instanceof Error?error:Error(String(error)));return false}};const timer=setTimeout(()=>waiter.reject(Error(`Timed out waiting for network response after ${timeoutMs}ms`)),timeoutMs);waiters.add(waiter)})}function summary({max=50}={}){const shown=buffer.slice(0,max);const lines=shown.map((entry)=>[entry.method,entry.status??(entry.failed?"FAILED":"-"),entry.mimeType??"-",`${entry.encodedDataLength}B`,entry.url].join(" "));const hidden=buffer.length-shown.length;if(hidden>0)lines.push(`... +${hidden} more`);return lines.join(`
1519
+ `)}function dispose(){if(disposed)return;disposed=true;for(const off of unsubscribers.splice(0,unsubscribers.length))off();for(const waiter of[...waiters])waiter.reject(Error("Network snoop disposed"));waiters.clear();inflight.clear()}return{pop,peek,popJson,waitFor,summary,dispose}}function globToRegExp(glob){let source="";for(const char of glob){if(char==="*")source+=".*";else if(char==="?")source+=".";else if("\\^$+{}[]()|.".includes(char))source+=`\\${char}`;else source+=char}return new RegExp(`^${source}$`)}function hasGlobChars(value){return value.includes("*")||value.includes("?")}function matches(match,request){if(typeof match==="function"){return Boolean(match({url:request.url,method:request.method,resourceType:request.resourceType,headers:request.headers}))}if(match instanceof RegExp)return match.test(request.url);if(typeof match==="string"){if(hasGlobChars(match))return globToRegExp(match).test(request.url);return request.url.includes(match)}return false}function sameMatch(left,right){if(left===right)return true;if(left instanceof RegExp&&right instanceof RegExp)return left.source===right.source&&left.flags===right.flags;return false}function toHeaderEntries(headers){if(!headers)return[];if(Array.isArray(headers)){return headers.map((header)=>({name:String(header.name),value:String(header.value??"")}))}return Object.entries(headers).map(([name,value])=>({name,value:String(value??"")}))}function encodeBody(body){if(body==null)return"";if(Buffer.isBuffer(body))return body.toString("base64");if(body instanceof Uint8Array)return Buffer.from(body).toString("base64");return Buffer.from(String(body)).toString("base64")}function buildContinue(requestId,{url,method,headers,postData}={}){const params={requestId};if(url!==undefined)params.url=url;if(method!==undefined)params.method=method;if(headers!==undefined)params.headers=toHeaderEntries(headers);if(postData!==undefined)params.postData=encodeBody(postData);return params}function buildFulfill(requestId,{status=200,headers={},contentType,body=""}={}){const responseHeaders=toHeaderEntries(headers);if(contentType!=null&&String(contentType).length>0){const hasType=responseHeaders.some((header)=>header.name.toLowerCase()==="content-type");if(!hasType)responseHeaders.push({name:"content-type",value:String(contentType)})}return{requestId,responseCode:status,responseHeaders,body:encodeBody(body)}}function createRoutes(page){if(!page?.cdp)throw new TypeError("createRoutes requires a page with cdp");const entries=[];const warned=new WeakSet;const settledIds=new Set;let enabled=false;let sessionId;let unsubscribe=null;let enablePromise=null;function warnOnce(handler,error){if(typeof handler==="function"){if(warned.has(handler))return;warned.add(handler)}if(error)console.warn("[routes] route handler failed; continuing request",error);else console.warn("[routes] route handler did not settle the request; continuing")}function findHandler(request){for(const entry of entries){if(matches(entry.match,request))return entry.handler}return}async function handlePaused(params,meta){if(!sessionId||meta?.sessionId!==sessionId)return;const requestId=params?.requestId;if(!requestId||settledIds.has(requestId))return;const request={url:params.request?.url??"",method:params.request?.method??"GET",headers:params.request?.headers??{},postData:params.request?.postData,resourceType:params.resourceType};let settled=false;const settle=(method,cdpParams)=>{if(settled)return Promise.resolve();settled=true;settledIds.add(requestId);return page.cdp.send(method,cdpParams,sessionId)};const route={request,continue(overrides={}){return settle("Fetch.continueRequest",buildContinue(requestId,overrides))},fulfill(options={}){return settle("Fetch.fulfillRequest",buildFulfill(requestId,options))},abort(errorReason="Failed"){return settle("Fetch.failRequest",{requestId,errorReason})}};const handler=findHandler(request);if(!handler){await settle("Fetch.continueRequest",{requestId});return}try{await handler(route)}catch(error){warnOnce(handler,error)}if(!settled){warnOnce(handler);await settle("Fetch.continueRequest",{requestId})}}function onPaused(params,meta){handlePaused(params,meta).catch((error)=>{console.warn("[routes] requestPaused handling failed",error)})}async function ensureEnabled(){if(enabled)return;if(!enablePromise){enablePromise=(async()=>{sessionId=await page.resolveSessionId();if(!unsubscribe)unsubscribe=page.cdp.on("Fetch.requestPaused",onPaused);await page.cdp.send("Fetch.enable",{patterns:[{urlPattern:"*",requestStage:"Request"}]},sessionId);enabled=true})()}try{await enablePromise}catch(error){enablePromise=null;throw error}}async function disableFetch(){const pending=enablePromise;enablePromise=null;if(pending)await pending.catch(()=>{});if(unsubscribe){unsubscribe();unsubscribe=null}if(!enabled)return;enabled=false;await page.cdp.send("Fetch.disable",{},sessionId)}async function route(match,handler){if(typeof handler!=="function")throw new TypeError("handler must be a function");entries.push({match,handler});await ensureEnabled()}async function unroute(match){if(match===undefined)entries.length=0;else{for(let index=entries.length-1;index>=0;index-=1){if(sameMatch(entries[index].match,match))entries.splice(index,1)}}if(entries.length===0)await disableFetch()}async function dispose(){entries.length=0;await disableFetch()}return{route,unroute,dispose,get enabled(){return enabled}}}async function viewportOf(page){return page.viewportSize()??await page.evaluate(()=>({width:innerWidth,height:innerHeight}))}async function scrollOnce(page,mode){if(mode==="end"){await page.evaluate(()=>scrollTo(0,document.scrollingElement.scrollHeight));return}const viewport=await viewportOf(page);await page.mouse.move(Math.floor(viewport.width/2),Math.floor(viewport.height/2));await page.mouse.wheel(0,Math.floor(viewport.height*0.9))}async function*collectWhileScrolling(page,snoop,options={}){const{minItems=Infinity,maxScrolls=10,extract=(json)=>Array.isArray(json)?json:[],scroll="wheel",settleMs=800}=options;if(scroll!=="wheel"&&scroll!=="end")throw new TypeError(`Unknown scroll mode: ${String(scroll)}`);let rounds=0;let total=0;let lastHeight=null;let unchanged=0;let stoppedBecause="maxScrolls";for(;;){for(const json of snoop.popJson()){for(const item of extract(json)){total+=1;yield item}}if(total>=minItems){stoppedBecause="minItems";break}if(rounds>=maxScrolls){stoppedBecause="maxScrolls";break}const height=await page.evaluate(()=>document.scrollingElement.scrollHeight);if(lastHeight!==null&&height===lastHeight){unchanged+=1;if(unchanged>=2){stoppedBecause="noGrowth";break}}else{unchanged=0}lastHeight=height;await scrollOnce(page,scroll);rounds+=1;await new Promise((resolve)=>setTimeout(resolve,settleMs))}return{rounds,total,stoppedBecause}}import{mkdir as mkdir5,writeFile as writeFile2}from"node:fs/promises";import path8 from"node:path";var SLUG_MAX=48;var SNOOP_MAX_ENTRIES=5000;function slug(name){const value=String(name??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"");return(value||"step").slice(0,SLUG_MAX)}function messageOf(error){return error instanceof Error?error.message:String(error)}async function readConsole(page){const api=page.console;const entries=typeof api==="function"?await api.call(page):await api?.logs?.();return Array.isArray(entries)?entries:[]}function createTrace(page,options={}){if(!page?.cdp||typeof page.resolveSessionId!=="function"){throw new TypeError("createTrace requires a page with cdp and resolveSessionId")}const{dir,screenshots=true,network=true,console:consoleLogs=true,maxBodyBytes=1e6,events}=options;if(typeof dir!=="string"||dir.length===0)throw new TypeError("createTrace requires a dir");const shotDir=path8.join(dir,"screenshots");const ready=mkdir5(shotDir,{recursive:true});const startedAt=Date.now();const records=[];const netEntries=[];const unsubscribers=[];const snoop=network?createNetworkSnoop(page,{bodies:true,maxBodyBytes,maxEntries:SNOOP_MAX_ENTRIES}):null;let seq=0;let consoleSeen=0;let sessionId=null;let stopped=false;let stopping=null;function record(event){const entry={...event,ts:Date.now(),seq:seq++};records.push(entry);return entry}const sessionReady=Promise.resolve(page.resolveSessionId()).then((id)=>{sessionId=id});sessionReady.catch((error)=>record({kind:"warning",scope:"session",message:messageOf(error)}));unsubscribers.push(page.cdp.on("Page.frameNavigated",(params,meta)=>{if(stopped||params?.frame?.parentId)return;const add=()=>record({kind:"navigation",url:params?.frame?.url??"",frameId:params?.frame?.id??null});if(sessionId===null){sessionReady.then(()=>{if(!stopped&&meta?.sessionId===sessionId)add()}).catch(()=>{});return}if(meta?.sessionId===sessionId)add()}));unsubscribers.push(page.on("dialog",(dialog)=>record({kind:"dialog",type:dialog?.type??null,message:dialog?.message??"",defaultPrompt:dialog?.defaultPrompt??"",url:dialog?.url??null})));if(events){unsubscribers.push(events.on("downloadStarted",(payload)=>record({kind:"download",phase:"started",...payload})));unsubscribers.push(events.on("downloadFinished",(payload)=>record({kind:"download",phase:"finished",...payload})))}async function capture(step,phase){const file=path8.join(shotDir,`${step.seq}-${slug(step.name)}-${phase}.png`);try{await writeFile2(file,await page.screenshot({type:"png"}));step.screenshots[phase]=file}catch(error){record({kind:"warning",scope:`screenshot:${phase}`,step:step.seq,message:messageOf(error)})}}function drainNetwork(){for(const entry of snoop?.pop()??[]){if(typeof entry.body==="string"&&Buffer.byteLength(entry.body)>maxBodyBytes){entry.body=null;entry.bodySkipped=true}netEntries.push(entry);record({kind:"network",...entry})}}async function drainConsole(){if(!consoleLogs)return;let entries;try{entries=await readConsole(page)}catch{return}if(entries.length<consoleSeen)consoleSeen=0;for(const entry of entries.slice(consoleSeen))record({kind:"console",...entry});consoleSeen=entries.length}async function drain(){drainNetwork();await drainConsole()}async function step(name,fn){if(typeof fn!=="function")throw new TypeError("trace.step requires a function");await ready;const entry=record({kind:"step",name:String(name),startedAt:Date.now(),screenshots:{}});if(screenshots)await capture(entry,"before");try{return await fn()}catch(error){entry.error=messageOf(error);throw error}finally{entry.endedAt=Date.now();entry.durationMs=entry.endedAt-entry.startedAt;if(screenshots)await capture(entry,"after");await drain()}}function mark(name,data){return record({kind:"mark",name:String(name),data:data??null})}async function finish(){await ready;await drain();stopped=true;for(const off of unsubscribers.splice(0,unsubscribers.length))off();snoop?.dispose();const ordered=[...records].sort((a,b)=>a.seq-b.seq);const summary={steps:ordered.filter((entry)=>entry.kind==="step").length,events:ordered.length,network:netEntries.length,startedAt,endedAt:Date.now(),url:page.url()};await writeFile2(path8.join(dir,"trace.jsonl"),ordered.map((entry)=>`${JSON.stringify(entry)}
1520
+ `).join(""));await writeFile2(path8.join(dir,"trace.har"),`${JSON.stringify(toHar(netEntries),null,2)}
1521
+ `);await writeFile2(path8.join(dir,"summary.json"),`${JSON.stringify(summary,null,2)}
1522
+ `);return summary}function stop(){return stopping??=finish()}return{step,mark,stop,get dir(){return dir}}}import{connect as connect2}from"node:net";import{randomBytes}from"node:crypto";import{existsSync as existsSync2,readFileSync as readFileSync3}from"node:fs";import{homedir as homedir2}from"node:os";import path9 from"node:path";import{spawn as spawn3}from"node:child_process";function resolveBskHome(env=process.env){const override=env.BSK_HOME;if(typeof override==="string"&&override.length>0)return override;const home=env.HOME&&env.HOME.length>0?env.HOME:homedir2();return path9.join(home,".bsk")}function daemonInfoPath(home){return path9.join(home,"daemon.json")}function readDaemonInfo(home){let raw;try{raw=readFileSync3(daemonInfoPath(home),"utf8")}catch{return null}let info;try{info=JSON.parse(raw)}catch{return null}if(!info||typeof info.sock_path!=="string"||info.sock_path.length===0)return null;return info}function findBskBinary(env=process.env){const home=env.HOME&&env.HOME.length>0?env.HOME:homedir2();const candidates=[env.BSK_BIN,path9.join(home,".local","bin",process.platform==="win32"?"bsk.exe":"bsk")].filter(Boolean);for(const candidate of candidates)if(existsSync2(candidate))return candidate;return"bsk"}function startDaemonWithCli({home,env=process.env,bskBin=findBskBinary(env),timeoutMs=20000}={}){return new Promise((resolve,reject)=>{const child=spawn3(bskBin,["status","--json"],{env:{...env,BSK_HOME:home},stdio:["ignore","pipe","pipe"],windowsHide:true});let stderr="";child.stderr.on("data",(chunk)=>{stderr=(stderr+chunk).slice(-4096)});child.stdout.on("data",()=>{});const timer=setTimeout(()=>{child.kill("SIGKILL");reject(new Error(`bsk status did not return within ${timeoutMs}ms`))},timeoutMs);child.on("error",(error)=>{clearTimeout(timer);reject(new Error(`could not run ${bskBin}: ${error.message}`))});child.on("exit",(code)=>{clearTimeout(timer);if(code===0)resolve();else reject(new Error(`bsk status exited with ${code}${stderr?`: ${stderr.trim()}`:""}`))})})}var DEFAULT_TIMEOUT_MS2=35000;var DISCOVERY_RETRY_MS=250;var DISCOVERY_BUDGET_MS=15000;class BskRpcError extends Error{constructor(code,message,data){super(message);this.name="BskRpcError";this.code=code;this.data=data}}function shortId(){return randomBytes(6).toString("hex")}function sleep2(ms){return new Promise((resolve)=>setTimeout(resolve,ms))}class BskIpcClient{#home;#sockPath;#autoStart;#startDaemon;#timeoutMs;#starting=null;constructor({home,env=process.env,sockPath,autoStart,startDaemon,timeoutMs=DEFAULT_TIMEOUT_MS2,bskBin}={}){this.#home=home??resolveBskHome(env);this.#sockPath=sockPath??null;this.#autoStart=autoStart??env.BSK_AUTO_START!=="0";this.#startDaemon=startDaemon??(()=>startDaemonWithCli({home:this.#home,env,bskBin}));this.#timeoutMs=timeoutMs}get home(){return this.#home}async resolveSocket({isAborted=()=>false}={}){if(this.#sockPath)return this.#sockPath;if(process.platform==="win32"){throw new BskRpcError("unsupported","Windows named-pipe discovery is not implemented; pass { sockPath: '\\\\\\\\.\\\\pipe\\\\...' } explicitly")}const found=readDaemonInfo(this.#home);if(found)return found.sock_path;if(!this.#autoStart){throw new BskRpcError("no_daemon",`no BrowserSkill daemon published at ${this.#home}/daemon.json and automatic start is disabled (BSK_AUTO_START=0); run \`bsk daemon start\` in the environment that owns it`)}if(!this.#starting)this.#starting=this.#startDaemon().finally(()=>{this.#starting=null});await this.#starting;const deadline=Date.now()+DISCOVERY_BUDGET_MS;while(Date.now()<deadline&&!isAborted()){const info=readDaemonInfo(this.#home);if(info)return info.sock_path;await sleep2(DISCOVERY_RETRY_MS)}if(isAborted())throw new BskRpcError("cancelled","cancelled while waiting for the daemon to publish daemon.json");throw new BskRpcError("no_daemon",`daemon start was requested but ${this.#home}/daemon.json never appeared`)}call(method,params,options={}){return this.callWithHandle(method,params,options).promise}callWithHandle(method,params,{idPrefix=method.replace(/[^a-z0-9]+/gi,"-"),timeoutMs=this.#timeoutMs}={}){const rpcId=`${idPrefix}-${shortId()}`;const frame={id:rpcId,method};if(params!==undefined)frame.params=params;let aborted=false;let abortSocket=()=>{};const promise=(async()=>{const sockPath=await this.resolveSocket({isAborted:()=>aborted});if(aborted)throw new BskRpcError("cancelled",`${method} cancelled by caller`);return new Promise((resolve,reject)=>{const socket=connect2(sockPath);let buffer="";let settled=false;const finish=(fn,value)=>{if(settled)return;settled=true;clearTimeout(timer);socket.destroy();fn(value)};const timer=setTimeout(()=>finish(reject,new BskRpcError("timeout",`${method} did not answer within ${timeoutMs}ms`)),timeoutMs);abortSocket=()=>finish(reject,new BskRpcError("cancelled",`${method} cancelled by caller`));socket.on("error",(error)=>finish(reject,new BskRpcError("no_daemon",`IPC socket ${sockPath}: ${error.code??error.message}`)));socket.on("connect",()=>socket.write(JSON.stringify(frame)+`
1523
+ `));socket.on("data",(chunk)=>{buffer+=chunk.toString("utf8");const idx=buffer.indexOf(`
1524
+ `);if(idx===-1)return;try{finish(resolve,decodeResponse(buffer.slice(0,idx),rpcId,method))}catch(error){finish(reject,error)}});socket.on("close",()=>finish(reject,new BskRpcError("protocol_error",`${method}: daemon closed the connection without a reply`)))})})();return{rpcId,promise,abort:()=>{aborted=true;abortSocket()}}}async cancel(rpcId){return this.call("cancel",{rpc_id:rpcId},{idPrefix:"cancel",timeoutMs:2000})}}function decodeResponse(line,rpcId,method){let reply;try{reply=JSON.parse(line)}catch{throw new BskRpcError("protocol_error",`${method}: daemon reply is not JSON: ${line.slice(0,120)}`)}const undecodableFrame=reply.id==="0"&&reply.error;if(reply.id!==rpcId&&!undecodableFrame){throw new BskRpcError("protocol_error",`${method}: reply id ${reply.id} does not match request ${rpcId}`)}if(reply.error){const{code="protocol_error",message="daemon error",data}=reply.error;throw new BskRpcError(code,message,data)}return reply.result}var REF_SHAPE=/^@?e\d+$/;function resolveTarget(target){if(typeof target==="string"){return REF_SHAPE.test(target)?{ref:target}:{selector:target}}if(target&&typeof target==="object"){if(typeof target.ref==="string")return{ref:target.ref};if(typeof target.selector==="string")return{selector:target.selector};if(typeof target.captureId==="string"){return{capture_id:target.captureId,image_x:target.x,image_y:target.y}}}throw new TypeError("target must be a ref ('e3' / '@e3'), a CSS selector, or {captureId, x, y}")}function optionalTarget(target){return target===undefined?{}:resolveTarget(target)}function compact(params){const out={};for(const[key,value]of Object.entries(params))if(value!==undefined)out[key]=value;return out}async function captureScreenshot(session,{ref,tabId,fullPage=false,scope,timeoutMs}={}){if(!fullPage){const result=await session.tool("screenshot",{ref,tab_id:tabId});return{buffer:Buffer.from(result.image_base64,"base64"),width:result.width,height:result.height,format:result.format,captureId:result.capture_id??null,captureUnavailable:result.capture_unavailable??null,tabId:result.tab_id,dialogs:result.dialogs??[]}}const started=await session.tool("screenshot_full_page",{scope,tab_id:tabId,timeout_ms:timeoutMs});const buffer=await readCapture(session,started.capture_id,started.byte_size);return{buffer,width:started.width,height:started.height,format:started.format,captureId:started.capture_id,scope:started.scope??scope??null,tabId:started.tab_id,dialogs:started.dialogs??[]}}async function readCapture(session,captureId,byteSize){const chunks=[];let offset=0;try{for(;;){const chunk=await session.tool("screenshot_read",{capture_id:captureId,offset});const bytes=Buffer.from(chunk.data_base64??"","base64");chunks.push(bytes);if(chunk.eof||bytes.length===0)break;if(chunk.next_offset<=offset)throw new Error(`screenshot_read did not advance past offset ${offset}`);offset=chunk.next_offset}}finally{await session.tool("screenshot_release",{capture_id:captureId}).catch(()=>{})}const buffer=Buffer.concat(chunks);if(typeof byteSize==="number"&&buffer.length!==byteSize){throw new Error(`screenshot capture ${captureId}: expected ${byteSize} bytes, assembled ${buffer.length}`)}return buffer}var SESSION_STOP_TIMEOUT_MS=3600000;class BskSession{#client;#stopped=false;constructor(client,{sessionId,browserInstanceId=null,agentWindowId=null,interaction=null}={}){if(typeof sessionId!=="string"||sessionId.length===0)throw new TypeError("BskSession requires a sessionId");this.#client=client;this.sessionId=sessionId;this.browserInstanceId=browserInstanceId;this.agentWindowId=agentWindowId;this.interaction=interaction}get client(){return this.#client}get stopped(){return this.#stopped}tool(name,params={}){if(this.#stopped)return Promise.reject(new Error(`BrowserSkill session ${this.sessionId} is stopped`));return this.#client.call(`tool.${name}`,compact({session_id:this.sessionId,...params}),{idPrefix:name.replace(/_/g,"-")})}navigate(url,{tabId,waitUntil,timeoutMs}={}){return this.tool("navigate",{url,tab_id:tabId,wait_until:waitUntil,timeout_ms:timeoutMs})}back({tabId,waitUntil,timeoutMs}={}){return this.tool("navigate_back",{tab_id:tabId,wait_until:waitUntil,timeout_ms:timeoutMs})}forward({tabId,waitUntil,timeoutMs}={}){return this.tool("navigate_forward",{tab_id:tabId,wait_until:waitUntil,timeout_ms:timeoutMs})}reload({tabId,waitUntil,timeoutMs,hard}={}){return this.tool("reload",{tab_id:tabId,wait_until:waitUntil,timeout_ms:timeoutMs,hard})}observe({cursor,tabId,maxDepth,maxTokens,debugSurfaces,probeHover}={}){return this.tool("observe",{cursor,tab_id:tabId,max_depth:maxDepth,max_tokens:maxTokens,debug_surfaces:debugSurfaces,probe_hover:probeHover})}snapshot({tabId,maxDepth,maxTokens}={}){return this.tool("snapshot",{tab_id:tabId,max_depth:maxDepth,max_tokens:maxTokens})}getHtml({ref,tabId,maxBytes}={}){return this.tool("get_html",{ref,tab_id:tabId,max_bytes:maxBytes})}screenshot(options){return captureScreenshot(this,options)}click(target,{button,clickCount,modifiers,tabId,timeoutMs}={}){return this.tool("click",{...resolveTarget(target),button,click_count:clickCount,modifiers,tab_id:tabId,timeout_ms:timeoutMs})}hover(target,{modifiers,settleMs,tabId,timeoutMs}={}){return this.tool("hover",{...resolveTarget(target),modifiers,settle_ms:settleMs,tab_id:tabId,timeout_ms:timeoutMs})}focus(target,{tabId,timeoutMs}={}){return this.tool("focus",{...resolveTarget(target),tab_id:tabId,timeout_ms:timeoutMs})}blur(target,{tabId,timeoutMs}={}){return this.tool("blur",{...resolveTarget(target),tab_id:tabId,timeout_ms:timeoutMs})}fill(target,value,{clearBefore,tabId,timeoutMs}={}){return this.tool("fill",{...resolveTarget(target),value,clear_before:clearBefore,tab_id:tabId,timeout_ms:timeoutMs})}press(key,{target,modifiers,holdMs,tabId,timeoutMs}={}){return this.tool("press",{key,...optionalTarget(target),modifiers,hold_ms:holdMs,tab_id:tabId,timeout_ms:timeoutMs})}select(target,values,{tabId,timeoutMs}={}){return this.tool("select",{...resolveTarget(target),values:Array.isArray(values)?values:[values],tab_id:tabId,timeout_ms:timeoutMs})}scrollTo(target,{tabId,timeoutMs}={}){return this.tool("scroll_to",{...resolveTarget(target),tab_id:tabId,timeout_ms:timeoutMs})}wheel({deltaX=0,deltaY=0,target,modifiers,tabId,timeoutMs}={}){return this.tool("wheel",{...optionalTarget(target),delta_x:deltaX,delta_y:deltaY,modifiers,tab_id:tabId,timeout_ms:timeoutMs})}evaluate(expression,{tabId,awaitPromise,returnByValue,timeoutMs}={}){return this.tool("evaluate",{expression,tab_id:tabId,await_promise:awaitPromise,return_by_value:returnByValue,timeout_ms:timeoutMs})}tabList({scope}={}){return this.tool("tab_list",{scope})}tabCreate({url,active,index}={}){return this.tool("tab_create",{url,active,index})}tabClose(tabId){return this.tool("tab_close",{tab_id:tabId})}tabSelect(tabId){return this.tool("tab_select",{tab_id:tabId})}tabBorrow(tabId,{confirmationTimeoutMs}={}){return this.tool("tab_borrow",{tab_id:tabId,confirmation_timeout_ms:confirmationTimeoutMs})}tabReturn(tabId){return this.tool("tab_return",{tab_id:tabId})}waitForNavigation({tabId,waitUntil,timeoutMs}={}){return this.tool("wait_for_navigation",{tab_id:tabId,wait_until:waitUntil,timeout_ms:timeoutMs})}requestHelp({prompt,title,targets,completionCriteria,tabId,timeoutMs}={}){return this.tool("request_help",{prompt,title,tab_id:tabId,timeout_ms:timeoutMs,targets:targets?.map((t)=>resolveTarget(t)),completion_criteria:completionCriteria})}console({tabId,since,limit,maxTextChars,includeStack}={}){return this.tool("console",{tab_id:tabId,since,limit,max_text_chars:maxTextChars,include_stack:includeStack})}network({tabId,since,limit,maxTextChars}={}){return this.tool("network",{tab_id:tabId,since,limit,max_text_chars:maxTextChars})}resize(width,height){return this.tool("window_resize",{width,height})}emulate({tabId,off,overrides}={}){return this.tool("emulate",{tab_id:tabId,off,overrides})}async stop(){if(this.#stopped)return null;this.#stopped=true;return this.#client.call("session.stop",{session_id:this.sessionId},{idPrefix:"session-stop",timeoutMs:SESSION_STOP_TIMEOUT_MS})}}var DEFAULT_WAIT_FOR_BROWSER_MS=15000;async function listBrowsers(client,{waitForBrowserMs}={}){const status=await client.call("system.status",compact({wait_for_browser_ms:waitForBrowserMs}),{idPrefix:"status"});return status.browsers??[]}async function connectBrowserSkill({client,home,env,sockPath,autoStart,timeoutMs,bskBin,name,browser,width,height,focused=false,waitForBrowserMs=DEFAULT_WAIT_FOR_BROWSER_MS}={}){const ipc=client??new BskIpcClient({home,env,sockPath,autoStart,timeoutMs,bskBin});const browsers=await listBrowsers(ipc,{waitForBrowserMs});if(browsers.length===0){throw new BskRpcError("no_browser_connected","the BrowserSkill daemon is up but no browser extension is connected; open the browser that has the BrowserSkill extension enabled (bskDoctor() explains the remaining step) instead of falling back to a headless browser")}const started=await ipc.call("session.start",compact({task_name:name,browser_instance_id:browser,width,height,focused}),{idPrefix:"session-start"});return new BskSession(ipc,{sessionId:started.session_id,browserInstanceId:started.browser_instance_id??null,agentWindowId:started.agent_window_id??null,interaction:started.interaction??null})}var CSS_PATH_FN=String(function cssPath(el){if(!(el instanceof Element))return null;if(el.getRootNode()!==document)return null;const parts=[];let node=el;while(node&&node.nodeType===1&&node!==document.documentElement){let part=node.localName;if(node.id&&/^[A-Za-z_][\w-]*$/.test(node.id)&&document.querySelectorAll("#"+node.id).length===1){parts.unshift("#"+node.id);return parts.join(" > ")}const parent=node.parentElement;if(parent){const same=Array.from(parent.children).filter((c)=>c.localName===node.localName);if(same.length>1)part+=`:nth-of-type(${same.indexOf(node)+1})`}parts.unshift(part);node=parent}parts.unshift("html");return parts.join(" > ")});function buildSnapshotExpression(options={}){return`(function () {
1525
+ const globalThis = {};
1526
+ ${pageBundle}
1527
+ const api = globalThis.__omowright;
1528
+ const result = api.takeSnapshot(${JSON.stringify(options)});
1529
+ const cssPath = ${CSS_PATH_FN};
1530
+ const css = {};
1531
+ for (const ref of Object.keys(result.refs || {})) css[ref] = cssPath(api.elementRegistry.get(ref));
1532
+ return { tree: result.tree, refs: result.refs || {}, css, error: result.error };
1533
+ })()`}async function bskSnapshot(session,{tabId,timeoutMs,...snapshotOptions}={}){const reply=await session.evaluate(buildSnapshotExpression(snapshotOptions),{tabId,timeoutMs,awaitPromise:false,returnByValue:true});if(!reply||reply.ok===false){const text=reply?.error?.text??"unknown error";throw new Error(`bskSnapshot failed inside the page: ${text}`)}const value=reply.value;if(!value||typeof value.tree!=="string")throw new Error("bskSnapshot: page returned no tree");if(value.error)throw new Error(`bskSnapshot: ${value.error}`);return{tree:value.tree,refs:value.refs,css:value.css}}import{existsSync as existsSync4,mkdirSync as mkdirSync2,readFileSync as readFileSync4,rmSync as rmSync2,writeFileSync as writeFileSync2}from"node:fs";import{spawn as spawn4}from"node:child_process";import path11 from"node:path";import{existsSync as existsSync3}from"node:fs";import{homedir as homedir3}from"node:os";import path10 from"node:path";var BROWSERSKILL_EXTENSION_IDS=Object.freeze({chrome:"hhcmgoofomhgciiibhipgmgkgnoenaoi",edge:"emacgiaaaiojkkpkddmmdfhmokgmnikg"});var STORE_UPDATE_URLS=Object.freeze({chrome:"https://clients2.google.com/service/update2/crx",edge:"https://edge.microsoft.com/extensionwebstorebase/v1/crx"});var STORE_PAGE_URLS=Object.freeze({chrome:`https://chromewebstore.google.com/detail/${BROWSERSKILL_EXTENSION_IDS.chrome}`,edge:`https://microsoftedge.microsoft.com/addons/detail/browserskill/${BROWSERSKILL_EXTENSION_IDS.edge}`});var NON_CHROMIUM_DEFAULTS=Object.freeze([{id:"safari",label:"Safari",match:["com.apple.safari","safarihtml"]},{id:"firefox",label:"Firefox",match:["org.mozilla.firefox","firefox.desktop","firefoxurl","firefoxhtml"]},{id:"zen",label:"Zen",match:["app.zen-browser.zen","zen.desktop","zenhtml"]},{id:"orion",label:"Orion",match:["com.kagi.kagimacos"]}]);var MAC=[{id:"chrome",label:"Google Chrome",store:"chrome",userData:"Library/Application Support/Google/Chrome",app:"Google Chrome",bundleId:"com.google.Chrome"},{id:"edge",label:"Microsoft Edge",store:"edge",userData:"Library/Application Support/Microsoft Edge",app:"Microsoft Edge",bundleId:"com.microsoft.edgemac"},{id:"brave",label:"Brave",store:"chrome",userData:"Library/Application Support/BraveSoftware/Brave-Browser",app:"Brave Browser",bundleId:"com.brave.Browser"},{id:"chromium",label:"Chromium",store:"chrome",userData:"Library/Application Support/Chromium",app:"Chromium",bundleId:"org.chromium.Chromium"},{id:"arc",label:"Arc",store:"chrome",userData:"Library/Application Support/Arc/User Data",app:"Arc",bundleId:"company.thebrowser.Browser"},{id:"dia",label:"Dia",store:"chrome",userData:"Library/Application Support/Dia/User Data",app:"Dia",bundleId:"company.thebrowser.dia"},{id:"vivaldi",label:"Vivaldi",store:"chrome",userData:"Library/Application Support/Vivaldi",app:"Vivaldi",bundleId:"com.vivaldi.Vivaldi"},{id:"opera",label:"Opera",store:"chrome",userData:"Library/Application Support/com.operasoftware.Opera",app:"Opera",bundleId:"com.operasoftware.Opera",externalExtensions:false},{id:"comet",label:"Comet",store:"chrome",userData:"Library/Application Support/Comet",app:"Comet",bundleId:"ai.perplexity.comet"},{id:"aside",label:"Aside",store:"chrome",userData:"Library/Application Support/Aside",app:"Aside",bundleId:"at.studio.AsideBrowser"},{id:"whale",label:"Naver Whale",store:"chrome",userData:"Library/Application Support/Naver/Whale",app:"Naver Whale",bundleId:"com.naver.Whale"}];var LINUX=[{id:"chrome",label:"Google Chrome",store:"chrome",userData:".config/google-chrome",binaries:["/usr/bin/google-chrome","/usr/bin/google-chrome-stable","/opt/google/chrome/chrome"],externalDir:"/opt/google/chrome/extensions",userExternalDir:false,desktopIds:["google-chrome.desktop","google-chrome-stable.desktop","com.google.Chrome.desktop"],processNames:["chrome","google-chrome"]},{id:"chromium",label:"Chromium",store:"chrome",userData:".config/chromium",binaries:["/usr/bin/chromium","/usr/bin/chromium-browser","/snap/bin/chromium"],externalDir:"/usr/share/chromium/extensions",userExternalDir:true,desktopIds:["chromium.desktop","chromium-browser.desktop","chromium_chromium.desktop","org.chromium.Chromium.desktop"],processNames:["chromium","chromium-browse"]},{id:"edge",label:"Microsoft Edge",store:"edge",userData:".config/microsoft-edge",binaries:["/usr/bin/microsoft-edge","/opt/microsoft/msedge/msedge"],externalDir:"/usr/share/microsoft-edge/extensions",userExternalDir:false,desktopIds:["microsoft-edge.desktop","microsoft-edge-stable.desktop","com.microsoft.Edge.desktop"],processNames:["msedge"]},{id:"brave",label:"Brave",store:"chrome",userData:".config/BraveSoftware/Brave-Browser",binaries:["/usr/bin/brave-browser","/opt/brave.com/brave/brave"],externalDir:"/usr/share/brave/extensions",userExternalDir:false,desktopIds:["brave-browser.desktop","com.brave.Browser.desktop"],processNames:["brave"]},{id:"vivaldi",label:"Vivaldi",store:"chrome",userData:".config/vivaldi",binaries:["/usr/bin/vivaldi","/opt/vivaldi/vivaldi"],externalDir:null,userExternalDir:false,externalExtensions:false,desktopIds:["vivaldi-stable.desktop","vivaldi.desktop"],processNames:["vivaldi-bin"]},{id:"opera",label:"Opera",store:"chrome",userData:".config/opera",binaries:["/usr/bin/opera"],externalDir:null,userExternalDir:false,externalExtensions:false,desktopIds:["opera.desktop"],processNames:["opera"]}];var WINDOWS=[{id:"chrome",label:"Google Chrome",store:"chrome",userData:"Google/Chrome/User Data",registryKey:"HKCU\\Software\\Google\\Chrome\\Extensions",binaryRel:"Google/Chrome/Application/chrome.exe",progIds:["chromehtml"],processNames:["chrome.exe"]},{id:"edge",label:"Microsoft Edge",store:"edge",userData:"Microsoft/Edge/User Data",registryKey:"HKCU\\Software\\Microsoft\\Edge\\Extensions",binaryRel:"Microsoft/Edge/Application/msedge.exe",progIds:["msedgehtm"],processNames:["msedge.exe"]},{id:"brave",label:"Brave",store:"chrome",userData:"BraveSoftware/Brave-Browser/User Data",registryKey:"HKCU\\Software\\BraveSoftware\\Brave-Browser\\Extensions",binaryRel:"BraveSoftware/Brave-Browser/Application/brave.exe",progIds:["bravehtml"],processNames:["brave.exe"]},{id:"chromium",label:"Chromium",store:"chrome",userData:"Chromium/User Data",registryKey:"HKCU\\Software\\Chromium\\Extensions",binaryRel:"Chromium/Application/chrome.exe",progIds:["chromiumhtm"],processNames:[]},{id:"vivaldi",label:"Vivaldi",store:"chrome",userData:"Vivaldi/User Data",registryKey:null,externalExtensions:false,binaryRel:"Vivaldi/Application/vivaldi.exe",progIds:["vivaldihtm"],processNames:["vivaldi.exe"]},{id:"whale",label:"Naver Whale",store:"chrome",userData:"Naver/Naver Whale/User Data",registryKey:null,externalExtensions:false,binaryRel:"Naver/Naver Whale/Application/whale.exe",progIds:["whalehtml"],processNames:["whale.exe"]}];var BROWSER_IDS=Object.freeze([...new Set([...MAC,...LINUX,...WINDOWS].map((b)=>b.id))]);function macRow(b,home,exists){const apps=[path10.join("/Applications",`${b.app}.app`),path10.join(home,"Applications",`${b.app}.app`)];const appPath=apps.find((p)=>exists(p))??null;const userDataDir=path10.join(home,b.userData);return{id:b.id,label:b.label,store:b.store,userDataDir,binary:path10.join(appPath??apps[0],"Contents","MacOS",b.app),bundleId:b.bundleId,processNames:apps.map((a)=>path10.join(a,"Contents","MacOS",b.app)),defaultIds:[b.bundleId.toLowerCase()],externalExtensions:b.externalExtensions!==false,installed:appPath!==null||exists(userDataDir),hasProfile:exists(userDataDir)}}function linuxRow(b,home,exists){const userDataDir=path10.join(home,b.userData);const binary=b.binaries.find((p)=>exists(p))??null;return{id:b.id,label:b.label,store:b.store,userDataDir,binary,externalDir:b.externalDir,userExternalDir:b.userExternalDir,processNames:b.processNames,defaultIds:b.desktopIds.map((d)=>d.toLowerCase()),externalExtensions:b.externalExtensions!==false,installed:binary!==null||exists(userDataDir),hasProfile:exists(userDataDir)}}function windowsRow(b,env,home,exists){const localAppData=env.LOCALAPPDATA??path10.join(home,"AppData","Local");const programFiles=[localAppData,env.PROGRAMFILES,env["PROGRAMFILES(X86)"],"C:\\Program Files","C:\\Program Files (x86)"].filter(Boolean);const userDataDir=path10.join(localAppData,b.userData);const binary=programFiles.map((root)=>path10.join(root,b.binaryRel)).find((p)=>exists(p))??null;return{id:b.id,label:b.label,store:b.store,userDataDir,registryKey:b.registryKey,binary,processNames:b.processNames,defaultIds:b.progIds,externalExtensions:b.externalExtensions!==false,installed:binary!==null||exists(userDataDir),hasProfile:exists(userDataDir)}}function catalogBrowsers({platform=process.platform,home=homedir3(),env=process.env,exists=existsSync3}={}){if(platform==="darwin")return MAC.map((b)=>macRow(b,home,exists));if(platform==="linux")return LINUX.map((b)=>linuxRow(b,home,exists));if(platform==="win32")return WINDOWS.map((b)=>windowsRow(b,env,home,exists));return[]}function detectBrowsers(options={}){return catalogBrowsers(options).filter((b)=>b.installed)}var ENABLE_STEP=(browser)=>`Quit ${browser} completely and open it again; a dialog offers to enable "BrowserSkill" — click Enable.`;var BADGE_STEP=(browser)=>`In ${browser}, open the menu (the badge on the toolbar) and enable "BrowserSkill" when prompted; no restart is needed.`;var storeStep=(browser,label)=>`Open ${STORE_PAGE_URLS[browser.store]} in ${label} and click the "Add" button.`;function externalExtensionEntry({platform=process.platform,browser}){const id=BROWSERSKILL_EXTENSION_IDS[browser.store];const updateUrl=STORE_UPDATE_URLS[browser.store];const label=browser.label??browser.id.charAt(0).toUpperCase()+browser.id.slice(1);if(browser.externalExtensions===false){return{kind:"store",needsRestart:false,storeUrl:STORE_PAGE_URLS[browser.store],humanStep:storeStep(browser,label)}}if(platform==="win32"){const key=`${browser.registryKey}\\${id}`;return{kind:"registry",key,needsRestart:false,storeUrl:STORE_PAGE_URLS[browser.store],regAddArgs:["add",key,"/v","update_url","/t","REG_SZ","/d",updateUrl,"/f"],regDeleteArgs:["delete",key,"/f"],humanStep:BADGE_STEP(label)}}const content=JSON.stringify({external_update_url:updateUrl},null,2)+`
1534
+ `;if(platform==="linux"&&!browser.userExternalDir){return{kind:"file",path:path11.join(browser.externalDir,`${id}.json`),content,needsRestart:true,storeUrl:STORE_PAGE_URLS[browser.store],humanStep:`Quit ${label} completely and open it again; the extension installs without a prompt.`}}return{kind:"file",path:path11.join(browser.userDataDir,"External Extensions",`${id}.json`),content,needsRestart:true,storeUrl:STORE_PAGE_URLS[browser.store],humanStep:platform==="linux"?`Quit ${label} completely and open it again; the extension installs without a prompt.`:ENABLE_STEP(label)}}function isBlocklisted(browser,id,{readFile=readFileSync4}={}){if(!browser.userDataDir)return false;for(const profile of["Default","Profile 1","Profile 2","Profile 3"]){const file=path11.join(browser.userDataDir,profile,"Preferences");let prefs;try{prefs=JSON.parse(readFile(file,"utf8"))}catch{continue}if(Array.isArray(prefs?.extensions?.external_uninstalls)&&prefs.extensions.external_uninstalls.includes(id))return true}return false}function runRegDefault(args){return new Promise((resolve)=>{const child=spawn4("reg",args,{stdio:["ignore","ignore","pipe"],windowsHide:true});let stderr="";child.stderr.on("data",(c)=>{stderr+=c});child.on("error",(error)=>resolve({code:-1,stderr:error.message}));child.on("exit",(code)=>resolve({code,stderr}))})}async function registerExternalExtension({platform=process.platform,browser,writeFile=writeFileSync2,readFile=readFileSync4,runReg=runRegDefault}={}){const entry=externalExtensionEntry({platform,browser});const id=BROWSERSKILL_EXTENSION_IDS[browser.store];const label=browser.label??browser.id;const storeStep=`Open ${entry.storeUrl} in ${label} and click the "Add" button.`;if(entry.kind==="store")return{...entry,registered:false,alreadyPresent:false,reason:"store_only"};if(isBlocklisted(browser,id,{readFile})){return{...entry,registered:false,alreadyPresent:false,reason:"blocklisted",humanStep:`The extension was removed from ${label} before, so external registration is ignored. ${storeStep}`}}if(entry.kind==="registry"){const result=await runReg(entry.regAddArgs);if(result.code!==0)return{...entry,registered:false,alreadyPresent:false,reason:"reg_failed",detail:result.stderr,humanStep:storeStep};return{...entry,registered:true,alreadyPresent:false}}let alreadyPresent=false;try{alreadyPresent=readFile(entry.path,"utf8")===entry.content}catch{}if(alreadyPresent)return{...entry,registered:true,alreadyPresent:true};try{mkdirSync2(path11.dirname(entry.path),{recursive:true});writeFile(entry.path,entry.content)}catch(error){if(error.code==="EACCES"||error.code==="EPERM"||error.code==="EROFS"){return{...entry,registered:false,alreadyPresent:false,reason:"not_writable",humanStep:`${entry.path} is not writable without administrator rights. ${storeStep}`}}throw error}return{...entry,registered:true,alreadyPresent:false}}async function unregisterExternalExtension({platform=process.platform,browser,runReg=runRegDefault}={}){const entry=externalExtensionEntry({platform,browser});if(entry.kind==="store")return{...entry,removed:false};if(entry.kind==="registry"){const result=await runReg(entry.regDeleteArgs);return{...entry,removed:result.code===0,detail:result.stderr}}const present=existsSync4(entry.path);if(present)rmSync2(entry.path,{force:true});return{...entry,removed:present}}import{execFile}from"node:child_process";import{statSync}from"node:fs";import{homedir as homedir4}from"node:os";import path12 from"node:path";var PROBE_TIMEOUT_MS=3000;function runDefault(command,args){return new Promise((resolve)=>{execFile(command,args,{timeout:PROBE_TIMEOUT_MS,windowsHide:true,maxBuffer:8*1024*1024},(error,stdout)=>{resolve(error?null:String(stdout))})})}function parseMacDefaultBrowser(plistJson){let handlers;try{handlers=JSON.parse(plistJson)?.LSHandlers}catch{return null}if(!Array.isArray(handlers))return null;const pick=(scheme)=>handlers.find((h)=>h?.LSHandlerURLScheme===scheme&&typeof h.LSHandlerRoleAll==="string");const handler=pick("https")??pick("http");return handler?handler.LSHandlerRoleAll.toLowerCase():"com.apple.safari"}function parseWindowsProgId(regOutput){const match=/ProgId\s+REG_SZ\s+(\S+)/i.exec(regOutput??"");return match?match[1].toLowerCase():null}function parseProcessNames(platform,output){const names=new Set;for(const raw of String(output??"").split(/\r?\n/)){const line=raw.trim();if(!line)continue;if(platform==="win32"){const image=/^"([^"]+)"/.exec(line)?.[1];if(image)names.add(image.toLowerCase())}else if(platform==="darwin"){if(/\.app\/Contents\/MacOS\/[^/]+$/.test(line))names.add(line)}else{names.add(path12.basename(line))}}return[...names]}async function probeDefault({platform,home,run}){if(platform==="darwin"){const plist=path12.join(home,"Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist");const json=await run("plutil",["-convert","json","-o","-",plist]);return json===null?null:parseMacDefaultBrowser(json)}if(platform==="linux"){const out=await run("xdg-settings",["get","default-web-browser"]);return out?.trim()?out.trim().toLowerCase():null}if(platform==="win32"){const key="HKCU\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\https\\UserChoice";return parseWindowsProgId(await run("reg",["query",key,"/v","ProgId"]))}return null}async function probeRunning({platform,run}){const out=platform==="win32"?await run("tasklist",["/fo","csv","/nh"]):await run("ps",platform==="darwin"?["-axo","comm="]:["-eo","comm="]);return out===null?null:parseProcessNames(platform,out)}function lastUsedAt(browser,stat){let latest=null;for(const rel of["Local State",path12.join("Default","History"),path12.join("Default","Preferences")]){try{const mtime=stat(path12.join(browser.userDataDir,rel)).mtimeMs;if(latest===null||mtime>latest)latest=mtime}catch{}}return latest}async function probeBrowserSignals({platform=process.platform,home=homedir4(),browsers=[],run=runDefault,stat=statSync}={}){const[defaultBrowser,running]=await Promise.all([probeDefault({platform,home,run}),probeRunning({platform,run})]);const lastUsed=Object.fromEntries(browsers.map((b)=>[b.id,lastUsedAt(b,stat)]));return{defaultBrowser,running,lastUsed}}var RECENT_USE_MS=7*24*60*60*1000;function matchesDefault(browser,defaultId){if(!defaultId)return false;return browser.defaultIds.some((id)=>defaultId===id||defaultId.startsWith(id))}function describeDefault(defaultId,catalog){if(defaultId===null||defaultId===undefined)return{raw:null,id:null,label:null,supported:null};const hit=catalog.find((b)=>matchesDefault(b,defaultId));if(hit)return{raw:defaultId,id:hit.id,label:hit.label,supported:true};const other=NON_CHROMIUM_DEFAULTS.find((b)=>b.match.some((m)=>defaultId===m||defaultId.startsWith(m)));return other?{raw:defaultId,id:other.id,label:other.label,supported:false}:{raw:defaultId,id:null,label:defaultId,supported:false}}function candidateRow(browser,{defaultBrowser,running,lastUsed},now){const isDefault=defaultBrowser.id===browser.id;const isRunning=Array.isArray(running)?browser.processNames.some((n)=>running.includes(n)||running.includes(n.toLowerCase())):null;const last=lastUsed?.[browser.id]??null;const recentlyUsed=last!==null&&now-last<=RECENT_USE_MS;const signals=[isDefault&&"default browser",isRunning&&"running now",recentlyUsed&&"used in the last 7 days"].filter(Boolean);return{id:browser.id,label:browser.label,installed:browser.installed,isDefault,running:isRunning,lastUsedAt:last===null?null:new Date(last).toISOString(),recentlyUsed,signals,browser}}function choose(candidates,primary,confidence,reason,defaultBrowser){return{primary:primary.browser,primaryId:primary.id,confidence,needsChoice:false,reason,defaultBrowser,candidates:candidates.map(({browser,...row})=>row)}}function ask(candidates,reason,defaultBrowser,suggested=null){return{primary:null,primaryId:null,confidence:null,needsChoice:true,reason,suggested,defaultBrowser,candidates:candidates.map(({browser,...row})=>row)}}function identifyBrowser({catalog,signals={},explicit=null,now=Date.now()}){const defaultBrowser=describeDefault(signals.defaultBrowser??null,catalog);const installed=catalog.filter((b)=>b.installed||b.id===explicit);const candidates=installed.map((b)=>candidateRow(b,{defaultBrowser,running:signals.running??null,lastUsed:signals.lastUsed},now));if(explicit){const hit=candidates.find((c)=>c.id===explicit);if(hit)return choose(candidates,hit,"explicit",`${hit.label} was chosen explicitly`,defaultBrowser);return ask(candidates,`"${explicit}" is not a Chromium-family browser this library knows; pick one of the candidates`,defaultBrowser)}if(candidates.length===0)return ask(candidates,"no Chromium-family browser is installed",defaultBrowser);const inUse=candidates.filter((c)=>c.running||c.recentlyUsed);const def=candidates.find((c)=>c.isDefault);if(def&&(def.running||def.recentlyUsed))return choose(candidates,def,"default-and-in-use",`${def.label} is the default browser and ${def.signals.slice(1).join(", ")}`,defaultBrowser);if(def&&inUse.length===0)return choose(candidates,def,"default",`${def.label} is the default browser`,defaultBrowser);if(def)return ask(candidates,`${def.label} is the default browser, but ${inUse.map((c)=>c.label).join(" and ")} ${inUse.length===1?"is":"are"} the one in use`,defaultBrowser);if(defaultBrowser.supported===false){const suggested=inUse.length===1?inUse[0].id:null;return ask(candidates,`the default browser is ${defaultBrowser.label}, which BrowserSkill cannot drive; the user has to name the Chromium browser to use`,defaultBrowser,suggested)}const runningNow=inUse.filter((c)=>c.running);if(inUse.length===1)return choose(candidates,inUse[0],"only-in-use",`${inUse[0].label} is the only browser ${inUse[0].signals.join(", ")}`,defaultBrowser);if(runningNow.length===1)return choose(candidates,runningNow[0],"only-running",`${runningNow[0].label} is the only browser running now`,defaultBrowser);if(inUse.length===0&&candidates.length===1)return choose(candidates,candidates[0],"only-installed",`${candidates[0].label} is the only Chromium-family browser installed`,defaultBrowser);return ask(candidates,inUse.length>1?`several browsers are in use (${inUse.map((c)=>c.label).join(", ")})`:"no browser shows recent use",defaultBrowser)}import{existsSync as existsSync5,readFileSync as readFileSync5,rmSync as rmSync3,writeFileSync as writeFileSync3}from"node:fs";import{homedir as homedir5}from"node:os";import path13 from"node:path";import{spawn as spawn5}from"node:child_process";var INSTALL_SH="https://raw.githubusercontent.com/Tencent/BrowserSkill/main/install.sh";var INSTALL_PS1="https://raw.githubusercontent.com/Tencent/BrowserSkill/main/install.ps1";var RC_FILES=[".zshrc",".bashrc",".profile"];function cliInstallCommand({platform=process.platform,installDir,version}={}){const env={BSK_INSTALL_DIR:installDir};if(version)env.BSK_VERSION=version;if(platform==="win32"){return{command:"powershell",args:["-NoProfile","-ExecutionPolicy","Bypass","-Command",`irm ${INSTALL_PS1} | iex`],env}}return{command:"sh",args:["-c",`curl -fsSL ${INSTALL_SH} | sh`],env}}function runDefault2(command,args,env){return new Promise((resolve)=>{const child=spawn5(command,args,{env:{...process.env,...env},stdio:["ignore","pipe","pipe"],windowsHide:true});let stdout="",stderr="";child.stdout.on("data",(c)=>{stdout=(stdout+c).slice(-8192)});child.stderr.on("data",(c)=>{stderr=(stderr+c).slice(-8192)});child.on("error",(error)=>resolve({code:-1,stdout,stderr:error.message}));child.on("exit",(code)=>resolve({code,stdout,stderr}))})}function snapshotRcFiles(home){const snapshot=new Map;for(const name of RC_FILES){const file=path13.join(home,name);snapshot.set(file,existsSync5(file)?readFileSync5(file):null)}return snapshot}function restoreRcFiles(snapshot){const restored=[];for(const[file,before]of snapshot){const after=existsSync5(file)?readFileSync5(file):null;if(before===null&&after===null)continue;if(before!==null&&after!==null&&before.equals(after))continue;if(before===null)rmSync3(file,{force:true});else writeFileSync3(file,before);restored.push(file)}return restored}async function installBskCli({platform=process.platform,home=homedir5(),installDir=path13.join(home,".local","bin"),version,run=runDefault2}={}){const spec=cliInstallCommand({platform,installDir,version});const rcBefore=platform==="win32"?new Map:snapshotRcFiles(home);const result=await run(spec.command,spec.args,spec.env);const restoredRcFiles=restoreRcFiles(rcBefore);const bskBin=path13.join(installDir,platform==="win32"?"bsk.exe":"bsk");const installed=result.code===0&&existsSync5(bskBin);return{installed,bskBin:installed?bskBin:null,code:result.code,stdout:result.stdout,stderr:result.stderr,restoredRcFiles}}function cliVersionDefault(bskBin){return new Promise((resolve)=>{const child=spawn5(bskBin,["--version"],{stdio:["ignore","pipe","ignore"],windowsHide:true});let out="";child.stdout.on("data",(c)=>{out+=c});child.on("error",()=>resolve(null));child.on("exit",(code)=>resolve(code===0?out.trim():null))})}import{homedir as homedir6}from"node:os";import{existsSync as existsSync6,readFileSync as readFileSync6}from"node:fs";var DEFAULT_WAIT_TOTAL_MS=180000;function resolveBskBin(bskBin,env){if(bskBin===null)return null;return bskBin??findBskBinary(env)}async function cliReport({bskBin,env,cliVersion}){const bin=resolveBskBin(bskBin,env);if(!bin)return{installed:false,bskBin:null,version:null};const raw=await cliVersion(bin);return raw?{installed:true,bskBin:bin,version:raw.replace(/^bsk\s+/,"")}:{installed:false,bskBin:bin,version:null}}async function daemonReport(client,waitForBrowserMs){try{const status=await client.call("system.status",waitForBrowserMs>0?{wait_for_browser_ms:waitForBrowserMs}:{},{idPrefix:"status"});return{running:true,version:status.daemon_version,protocolVersion:status.protocol_version,browsers:status.browsers??[],sessions:status.sessions??[]}}catch(error){return{running:false,error:error.message,code:error.code,browsers:[],sessions:[]}}}var NO_BROWSER_STEP=`No Chromium-family browser was found. Install one (Chrome, Edge, Brave, Arc, ...), then add the extension from ${STORE_PAGE_URLS.chrome}.`;function withRegistration(platform,browser){const entry=externalExtensionEntry({platform,browser});const extensionRegistered=entry.kind==="file"&&existsSync6(entry.path)&&readFileSync6(entry.path,"utf8")===entry.content;return{...browser,registration:entry,extensionRegistered}}async function identify({platform,home,env,exists,browser,signals,probeSignals,now}){const catalog=catalogBrowsers({platform,home,env,exists}).map((b)=>withRegistration(platform,b));const observed=signals??await probeSignals({platform,home,browsers:catalog.filter((b)=>b.hasProfile)});const explicit=browser??env.OMOWRIGHT_BROWSER??null;const{primary,...identification}=identifyBrowser({catalog,signals:observed,explicit:explicit||null,now});const browsers=catalog.filter((b)=>b.installed);const registeredElsewhere=browsers.filter((b)=>b.extensionRegistered&&b.id!==identification.primaryId).map((b)=>b.id);return{browsers,identification:{...identification,registeredElsewhere},primary}}function choiceStep(identification){const listed=identification.candidates.map((c)=>`${c.label} [${c.id}]${c.signals.length?` — ${c.signals.join(", ")}`:""}`).join("; ");const hint=identification.suggested?` Likely ${identification.suggested}, but confirm first.`:"";return`Ask the user which browser they actually use (${identification.reason}). Candidates: ${listed}.${hint} Then re-run with browser: "<id>"; register nothing until they answer.`}function nextStepFor({cli,daemon,browsers,browsersConnected,identification,primary}){if(browsersConnected.length>0)return null;if(!cli.installed)return"Install the bsk CLI (bskOnboard() runs the official installer).";if(!daemon.running)return"Start the BrowserSkill daemon: run `bsk status` once, or `bsk daemon start` in the environment that owns it.";if(browsers.length===0&&!primary)return NO_BROWSER_STEP;if(identification.needsChoice)return choiceStep(identification);if(!primary.extensionRegistered&&primary.registration.kind!=="store")return`Register the BrowserSkill extension for ${primary.label} (bskOnboard() does this), then let the user enable it.`;return primary.registration.humanStep}async function bskDoctor({platform=process.platform,home=homedir6(),env=process.env,client,bskBin,cliVersion=cliVersionDefault,waitForBrowserMs=0,exists=existsSync6,browser,signals,probeSignals=probeBrowserSignals,now=Date.now()}={}){const cli=await cliReport({bskBin,env,cliVersion});const ipc=client??new BskIpcClient({env,bskBin:cli.bskBin??undefined,autoStart:false});const daemon=await daemonReport(ipc,waitForBrowserMs);const{browsers,identification,primary}=await identify({platform,home,env,exists,browser,signals,probeSignals,now});const browsersConnected=daemon.browsers;const report={cli,daemon,browsers,primary:primary??null,identification,browsersConnected,ready:browsersConnected.length>0};report.nextStep=nextStepFor(report);return report}async function bskOnboard({platform=process.platform,home=homedir6(),env=process.env,client,bskBin,installDir,installCli=installBskCli,cliVersion=cliVersionDefault,onHumanStep=()=>{},waitForBrowserMs=15000,waitTotalMs=DEFAULT_WAIT_TOTAL_MS,exists=existsSync6,browser,signals,probeSignals=probeBrowserSignals,now=Date.now()}={}){let cli=await cliReport({bskBin,env,cliVersion});let install=null;if(!cli.installed){install=await installCli({platform,home,installDir});cli=install.installed?await cliReport({bskBin:install.bskBin,env,cliVersion}):cli}const ipc=client??new BskIpcClient({env,bskBin:cli.bskBin??undefined,autoStart:true});let daemon=await daemonReport(ipc,0);const{browsers,identification,primary}=await identify({platform,home,env,exists,browser,signals,probeSignals,now});const registrations=[];let humanStep=null;let needsChoice=false;if(daemon.browsers.length===0){if(browsers.length===0&&!primary){humanStep=NO_BROWSER_STEP}else if(identification.needsChoice){needsChoice=true;humanStep=choiceStep(identification)}else{const registration=await registerExternalExtension({platform,browser:primary});registrations.push({browser:primary.id,...registration});humanStep=registration.humanStep;onHumanStep({browser:primary.id,step:registration.humanStep,registered:registration.registered,needsRestart:registration.needsRestart})}}const deadline=Date.now()+waitTotalMs;let browsersConnected=daemon.browsers;while(!needsChoice&&browsersConnected.length===0&&daemon.running&&Date.now()<deadline){browsersConnected=await listBrowsers(ipc,{waitForBrowserMs});if(waitForBrowserMs===0)break}daemon={...daemon,browsers:browsersConnected};const ready=browsersConnected.length>0;return{cli,install,daemon,browsers,primary:primary??null,identification,needsChoice,registrations,humanStep:ready?null:humanStep,browsersConnected,ready}}export{AgentTabManager,BROWSERSKILL_EXTENSION_IDS,BROWSER_EVENT_NAMES,BridgeProtocolError,BridgeUnavailableError,BrowserCdpCommandError,BrowserConnection,BskIpcClient,BskRpcError,BskSession,CdpClient,CommandSchema,DEFAULT_AGENT_VIEWPORT,DEVICE_PRESETS,ElementHandle,EventSchema,ExtensionHelloSchema,FrameLocator,FrameManager,HostHelloSchema,Locator,ModifierState,OmOKeyboard,OmOMouse,OmOPage,PipeCdpClient,ResponseSchema,STORE_PAGE_URLS,SessionManager,TabRepository,UnsupportedOperationError,bskDoctor,bskOnboard,bskSnapshot,buildCloakBrowserArgs,buildSnapshotExpression,catalogBrowsers,collectWhileScrolling,compactSnapshot,connect,connectBrowserSkill,connectCloakProfile,connectPipe,createAgentTabs,createBridgeClient,createCaptcha,createChromeApi2 as createChromeApi,createCua,createEvents,createNativeMessagingHost,createNetworkSnoop,createRoutes,createTrace,decodeFrames,describeLayers,detectBrowsers,emulate,encodeFrame,externalExtensionEntry,findCloakBrowserPath,identifyBrowser,injectCookies,installBskCli,installNativeMessagingHost,layersHeader,listBrowsers,macOSVisionOcr,normalizeDialogPolicy,pageBundle,probeBrowserSignals,readDaemonInfo,reconcileFrames,registerExternalExtension,repinViewport,requestHuman,resolveBskHome,resolveCloakProfile,resolveDialogAction,sanitizeCookies,snapshotTokens,snapshotWithFrames,snapshotWithLayers,takeSnapshot,toHar,toolSchemas,unregisterExternalExtension};