@aeolus-fleet/gateway 0.36.1 → 0.36.3

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 (997) hide show
  1. package/README.md +4 -0
  2. package/dist/adapters/fleet/active-ships.d.ts +8 -0
  3. package/dist/adapters/fleet/active-ships.js +22 -0
  4. package/dist/adapters/fleet/active-ships.js.map +1 -0
  5. package/dist/adapters/fleet/actor-door.d.ts +8 -1
  6. package/dist/adapters/fleet/actor-door.js +12 -5
  7. package/dist/adapters/fleet/actor-door.js.map +1 -1
  8. package/dist/adapters/fleet/argo-inbox-door.d.ts +4 -0
  9. package/dist/adapters/fleet/argo-inbox-door.js +81 -0
  10. package/dist/adapters/fleet/argo-inbox-door.js.map +1 -0
  11. package/dist/adapters/fleet/every-listed-ship.d.ts +21 -0
  12. package/dist/adapters/fleet/every-listed-ship.js +28 -0
  13. package/dist/adapters/fleet/every-listed-ship.js.map +1 -0
  14. package/dist/adapters/fleet/fleet-ships.d.ts +1 -3
  15. package/dist/adapters/fleet/fleet-ships.js +5 -22
  16. package/dist/adapters/fleet/fleet-ships.js.map +1 -1
  17. package/dist/adapters/fleet/rest-fleet-door.d.ts +14 -0
  18. package/dist/adapters/fleet/rest-fleet-door.js +50 -6
  19. package/dist/adapters/fleet/rest-fleet-door.js.map +1 -1
  20. package/dist/adapters/http/front-door.js +3 -1
  21. package/dist/adapters/http/front-door.js.map +1 -1
  22. package/dist/adapters/http/live.d.ts +10 -1
  23. package/dist/adapters/http/live.js +10 -1
  24. package/dist/adapters/http/live.js.map +1 -1
  25. package/dist/adapters/http/party-sign-in-routes.d.ts +7 -0
  26. package/dist/adapters/http/party-sign-in-routes.js +18 -0
  27. package/dist/adapters/http/party-sign-in-routes.js.map +1 -1
  28. package/dist/adapters/http/person-tools.js +3 -2
  29. package/dist/adapters/http/person-tools.js.map +1 -1
  30. package/dist/adapters/http/slack-routes.d.ts +2 -0
  31. package/dist/adapters/http/slack-routes.js +12 -4
  32. package/dist/adapters/http/slack-routes.js.map +1 -1
  33. package/dist/adapters/mcp/mcp-servers.d.ts +8 -2
  34. package/dist/adapters/mcp/mcp-servers.js +8 -4
  35. package/dist/adapters/mcp/mcp-servers.js.map +1 -1
  36. package/dist/adapters/pagasae/email-channel.js +5 -3
  37. package/dist/adapters/pagasae/email-channel.js.map +1 -1
  38. package/dist/adapters/pagasae/pagasae-client.js +1 -0
  39. package/dist/adapters/pagasae/pagasae-client.js.map +1 -1
  40. package/dist/adapters/pagasae/shared-sign-in.js +2 -2
  41. package/dist/adapters/pagasae/shared-sign-in.js.map +1 -1
  42. package/dist/adapters/prisma/argo-accounts.d.ts +4 -0
  43. package/dist/adapters/prisma/argo-accounts.js +17 -0
  44. package/dist/adapters/prisma/argo-accounts.js.map +1 -0
  45. package/dist/adapters/prisma/argo-slack-posts.d.ts +4 -0
  46. package/dist/adapters/prisma/argo-slack-posts.js +30 -0
  47. package/dist/adapters/prisma/argo-slack-posts.js.map +1 -0
  48. package/dist/adapters/prisma/argo-wakes.d.ts +4 -0
  49. package/dist/adapters/prisma/argo-wakes.js +54 -0
  50. package/dist/adapters/prisma/argo-wakes.js.map +1 -0
  51. package/dist/adapters/prisma/basket-entries.js +4 -2
  52. package/dist/adapters/prisma/basket-entries.js.map +1 -1
  53. package/dist/adapters/prisma/connected-chats.d.ts +4 -0
  54. package/dist/adapters/prisma/connected-chats.js +21 -0
  55. package/dist/adapters/prisma/connected-chats.js.map +1 -0
  56. package/dist/adapters/prisma/fleet-forgetter.d.ts +1 -1
  57. package/dist/adapters/prisma/fleet-forgetter.js +2 -2
  58. package/dist/adapters/prisma/fleet-forgetter.js.map +1 -1
  59. package/dist/adapters/prisma/generated/browser.d.ts +26 -1
  60. package/dist/adapters/prisma/generated/client.d.ts +26 -1
  61. package/dist/adapters/prisma/generated/internal/class.d.ts +55 -0
  62. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  63. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  64. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +428 -1
  65. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +49 -2
  66. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  67. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +52 -0
  68. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +49 -2
  69. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  70. package/dist/adapters/prisma/generated/models/ArgoAccount.d.ts +946 -0
  71. package/dist/adapters/prisma/generated/models/ArgoAccount.js +2 -0
  72. package/dist/adapters/prisma/generated/models/ArgoAccount.js.map +1 -0
  73. package/dist/adapters/prisma/generated/models/ArgoMessageCovered.d.ts +947 -0
  74. package/dist/adapters/prisma/generated/models/ArgoMessageCovered.js +2 -0
  75. package/dist/adapters/prisma/generated/models/ArgoMessageCovered.js.map +1 -0
  76. package/dist/adapters/prisma/generated/models/ArgoSlackPost.d.ts +1065 -0
  77. package/dist/adapters/prisma/generated/models/ArgoSlackPost.js +2 -0
  78. package/dist/adapters/prisma/generated/models/ArgoSlackPost.js.map +1 -0
  79. package/dist/adapters/prisma/generated/models/ArgoWakeSent.d.ts +975 -0
  80. package/dist/adapters/prisma/generated/models/ArgoWakeSent.js +2 -0
  81. package/dist/adapters/prisma/generated/models/ArgoWakeSent.js.map +1 -0
  82. package/dist/adapters/prisma/generated/models/BasketEntry.d.ts +114 -18
  83. package/dist/adapters/prisma/generated/models/ItemOutcome.d.ts +91 -1
  84. package/dist/adapters/prisma/generated/models/OpenedDelivery.d.ts +95 -2
  85. package/dist/adapters/prisma/generated/models/Party.d.ts +32 -1
  86. package/dist/adapters/prisma/generated/models/SlackLinkStep.d.ts +1005 -0
  87. package/dist/adapters/prisma/generated/models/SlackLinkStep.js +2 -0
  88. package/dist/adapters/prisma/generated/models/SlackLinkStep.js.map +1 -0
  89. package/dist/adapters/prisma/generated/models.d.ts +5 -0
  90. package/dist/adapters/prisma/item-outcomes.d.ts +6 -1
  91. package/dist/adapters/prisma/item-outcomes.js +19 -3
  92. package/dist/adapters/prisma/item-outcomes.js.map +1 -1
  93. package/dist/adapters/prisma/opened-deliveries.js +5 -0
  94. package/dist/adapters/prisma/opened-deliveries.js.map +1 -1
  95. package/dist/adapters/prisma/party-store.js +4 -1
  96. package/dist/adapters/prisma/party-store.js.map +1 -1
  97. package/dist/adapters/prisma/slack-link-steps.d.ts +8 -0
  98. package/dist/adapters/prisma/slack-link-steps.js +28 -0
  99. package/dist/adapters/prisma/slack-link-steps.js.map +1 -0
  100. package/dist/adapters/prisma/slack-posts.js +4 -3
  101. package/dist/adapters/prisma/slack-posts.js.map +1 -1
  102. package/dist/adapters/slack/slack-messages.d.ts +2 -0
  103. package/dist/adapters/slack/slack-messages.js +125 -18
  104. package/dist/adapters/slack/slack-messages.js.map +1 -1
  105. package/dist/adapters/trpc/router.d.ts +78 -2
  106. package/dist/adapters/trpc/router.js +36 -1
  107. package/dist/adapters/trpc/router.js.map +1 -1
  108. package/dist/adapters/web-push/web-push.js +1 -1
  109. package/dist/adapters/web-push/web-push.js.map +1 -1
  110. package/dist/app.js +128 -15
  111. package/dist/app.js.map +1 -1
  112. package/dist/core/account-sign-in/account-of-sign-in.d.ts +7 -2
  113. package/dist/core/account-sign-in/account-of-sign-in.js +9 -3
  114. package/dist/core/account-sign-in/account-of-sign-in.js.map +1 -1
  115. package/dist/core/account-sign-in/ports.d.ts +2 -0
  116. package/dist/core/argo-inbox/argo-inbox.d.ts +31 -0
  117. package/dist/core/argo-inbox/argo-inbox.js +23 -0
  118. package/dist/core/argo-inbox/argo-inbox.js.map +1 -0
  119. package/dist/core/argo-inbox/argo-slack-message.d.ts +17 -0
  120. package/dist/core/argo-inbox/argo-slack-message.js +40 -0
  121. package/dist/core/argo-inbox/argo-slack-message.js.map +1 -0
  122. package/dist/core/argo-inbox/argo-slack-post.d.ts +21 -0
  123. package/dist/core/argo-inbox/argo-slack-post.js +2 -0
  124. package/dist/core/argo-inbox/argo-slack-post.js.map +1 -0
  125. package/dist/core/argo-inbox/follow-argo-inbox.d.ts +33 -0
  126. package/dist/core/argo-inbox/follow-argo-inbox.js +133 -0
  127. package/dist/core/argo-inbox/follow-argo-inbox.js.map +1 -0
  128. package/dist/core/argo-inbox/note-argo-account.d.ts +19 -0
  129. package/dist/core/argo-inbox/note-argo-account.js +18 -0
  130. package/dist/core/argo-inbox/note-argo-account.js.map +1 -0
  131. package/dist/core/argo-inbox/ports.d.ts +123 -0
  132. package/dist/core/argo-inbox/ports.js +2 -0
  133. package/dist/core/argo-inbox/ports.js.map +1 -0
  134. package/dist/core/argo-inbox/read-argo-inbox-notice.d.ts +34 -0
  135. package/dist/core/argo-inbox/read-argo-inbox-notice.js +20 -0
  136. package/dist/core/argo-inbox/read-argo-inbox-notice.js.map +1 -0
  137. package/dist/core/argo-inbox/read-argo-section.d.ts +54 -0
  138. package/dist/core/argo-inbox/read-argo-section.js +67 -0
  139. package/dist/core/argo-inbox/read-argo-section.js.map +1 -0
  140. package/dist/core/argo-inbox/show-argo-inbox-in-slack.d.ts +36 -0
  141. package/dist/core/argo-inbox/show-argo-inbox-in-slack.js +125 -0
  142. package/dist/core/argo-inbox/show-argo-inbox-in-slack.js.map +1 -0
  143. package/dist/core/argo-inbox/wake-for-argo.d.ts +37 -0
  144. package/dist/core/argo-inbox/wake-for-argo.js +139 -0
  145. package/dist/core/argo-inbox/wake-for-argo.js.map +1 -0
  146. package/dist/core/mcp-out/grant-calls.js +1 -1
  147. package/dist/core/mcp-out/grant-calls.js.map +1 -1
  148. package/dist/core/mcp-out/hand-call.js +1 -1
  149. package/dist/core/mcp-out/hand-call.js.map +1 -1
  150. package/dist/core/mcp-out/keep-server-title.d.ts +13 -0
  151. package/dist/core/mcp-out/keep-server-title.js +14 -0
  152. package/dist/core/mcp-out/keep-server-title.js.map +1 -0
  153. package/dist/core/mcp-out/ports.d.ts +10 -0
  154. package/dist/core/oauth/exchange-id-jag.d.ts +4 -1
  155. package/dist/core/oauth/exchange-id-jag.js +5 -2
  156. package/dist/core/oauth/exchange-id-jag.js.map +1 -1
  157. package/dist/core/parties/approve-party.js +1 -1
  158. package/dist/core/parties/approve-party.js.map +1 -1
  159. package/dist/core/parties/party.d.ts +2 -0
  160. package/dist/core/parties/party.js.map +1 -1
  161. package/dist/core/parties/ports.d.ts +5 -0
  162. package/dist/core/party-grants/listing-connection.js +2 -2
  163. package/dist/core/party-grants/listing-connection.js.map +1 -1
  164. package/dist/core/party-grants/tell-sign-in-needed.d.ts +2 -0
  165. package/dist/core/party-grants/tell-sign-in-needed.js +16 -4
  166. package/dist/core/party-grants/tell-sign-in-needed.js.map +1 -1
  167. package/dist/core/people/act-in-place.d.ts +42 -0
  168. package/dist/core/people/act-in-place.js +26 -0
  169. package/dist/core/people/act-in-place.js.map +1 -0
  170. package/dist/core/people/answer-delivery.js +13 -1
  171. package/dist/core/people/answer-delivery.js.map +1 -1
  172. package/dist/core/people/basket.d.ts +32 -10
  173. package/dist/core/people/basket.js +24 -6
  174. package/dist/core/people/basket.js.map +1 -1
  175. package/dist/core/people/count-basket.d.ts +4 -3
  176. package/dist/core/people/count-basket.js +9 -3
  177. package/dist/core/people/count-basket.js.map +1 -1
  178. package/dist/core/people/done-delivery.js +1 -1
  179. package/dist/core/people/done-delivery.js.map +1 -1
  180. package/dist/core/people/finish-own-step.js +2 -2
  181. package/dist/core/people/finish-own-step.js.map +1 -1
  182. package/dist/core/people/inbox-entry.d.ts +17 -1
  183. package/dist/core/people/inbox-entry.js +28 -1
  184. package/dist/core/people/inbox-entry.js.map +1 -1
  185. package/dist/core/people/item-job.d.ts +3 -1
  186. package/dist/core/people/item-job.js +5 -1
  187. package/dist/core/people/item-job.js.map +1 -1
  188. package/dist/core/people/item-outcome.d.ts +21 -2
  189. package/dist/core/people/item-outcome.js.map +1 -1
  190. package/dist/core/people/item-places.d.ts +26 -0
  191. package/dist/core/people/item-places.js +12 -0
  192. package/dist/core/people/item-places.js.map +1 -0
  193. package/dist/core/people/open-delivery.d.ts +6 -6
  194. package/dist/core/people/open-delivery.js +13 -10
  195. package/dist/core/people/open-delivery.js.map +1 -1
  196. package/dist/core/people/opened-of.d.ts +5 -1
  197. package/dist/core/people/opened-of.js +5 -1
  198. package/dist/core/people/opened-of.js.map +1 -1
  199. package/dist/core/people/person-wakes.d.ts +49 -0
  200. package/dist/core/people/person-wakes.js +27 -0
  201. package/dist/core/people/person-wakes.js.map +1 -0
  202. package/dist/core/people/ports.d.ts +46 -5
  203. package/dist/core/people/put-in-basket.d.ts +8 -6
  204. package/dist/core/people/put-in-basket.js +16 -5
  205. package/dist/core/people/put-in-basket.js.map +1 -1
  206. package/dist/core/people/read-basket.d.ts +8 -3
  207. package/dist/core/people/read-basket.js +8 -10
  208. package/dist/core/people/read-basket.js.map +1 -1
  209. package/dist/core/people/read-bridge-home.d.ts +39 -11
  210. package/dist/core/people/read-bridge-home.js +74 -12
  211. package/dist/core/people/read-bridge-home.js.map +1 -1
  212. package/dist/core/people/read-chats.d.ts +21 -0
  213. package/dist/core/people/read-chats.js +20 -0
  214. package/dist/core/people/read-chats.js.map +1 -0
  215. package/dist/core/people/read-inbox.d.ts +19 -9
  216. package/dist/core/people/read-inbox.js +57 -15
  217. package/dist/core/people/read-inbox.js.map +1 -1
  218. package/dist/core/people/read-record.d.ts +37 -11
  219. package/dist/core/people/read-record.js +44 -12
  220. package/dist/core/people/read-record.js.map +1 -1
  221. package/dist/core/people/read-send-to.d.ts +23 -0
  222. package/dist/core/people/read-send-to.js +37 -0
  223. package/dist/core/people/read-send-to.js.map +1 -0
  224. package/dist/core/people/read-your-fleet.d.ts +19 -0
  225. package/dist/core/people/read-your-fleet.js +22 -0
  226. package/dist/core/people/read-your-fleet.js.map +1 -0
  227. package/dist/core/people/remove-from-basket.d.ts +2 -1
  228. package/dist/core/people/remove-from-basket.js +4 -1
  229. package/dist/core/people/remove-from-basket.js.map +1 -1
  230. package/dist/core/people/routing.d.ts +13 -4
  231. package/dist/core/people/routing.js +14 -0
  232. package/dist/core/people/routing.js.map +1 -1
  233. package/dist/core/people/send-basket.d.ts +11 -7
  234. package/dist/core/people/send-basket.js +68 -11
  235. package/dist/core/people/send-basket.js.map +1 -1
  236. package/dist/core/people/send-message.d.ts +3 -1
  237. package/dist/core/people/send-message.js +9 -2
  238. package/dist/core/people/send-message.js.map +1 -1
  239. package/dist/core/people/send-stored-answers.d.ts +4 -3
  240. package/dist/core/people/send-stored-answers.js +62 -12
  241. package/dist/core/people/send-stored-answers.js.map +1 -1
  242. package/dist/core/people/stale-item.d.ts +40 -0
  243. package/dist/core/people/stale-item.js +36 -0
  244. package/dist/core/people/stale-item.js.map +1 -0
  245. package/dist/core/people/wake-person.d.ts +3 -1
  246. package/dist/core/people/wake-person.js +5 -3
  247. package/dist/core/people/wake-person.js.map +1 -1
  248. package/dist/core/people/web-push-channel.js +2 -2
  249. package/dist/core/people/web-push-channel.js.map +1 -1
  250. package/dist/core/people/your-fleet.d.ts +44 -0
  251. package/dist/core/people/your-fleet.js +64 -0
  252. package/dist/core/people/your-fleet.js.map +1 -0
  253. package/dist/core/sign-in/account-token.d.ts +5 -1
  254. package/dist/core/sign-in/account-token.js +8 -2
  255. package/dist/core/sign-in/account-token.js.map +1 -1
  256. package/dist/core/sign-in/complete-sign-in.d.ts +4 -1
  257. package/dist/core/sign-in/complete-sign-in.js +5 -2
  258. package/dist/core/sign-in/complete-sign-in.js.map +1 -1
  259. package/dist/core/sign-in/ports.d.ts +2 -0
  260. package/dist/core/slack/answer-in-slack.d.ts +15 -9
  261. package/dist/core/slack/answer-in-slack.js +43 -18
  262. package/dist/core/slack/answer-in-slack.js.map +1 -1
  263. package/dist/core/slack/ask-to-link-slack.d.ts +28 -0
  264. package/dist/core/slack/ask-to-link-slack.js +31 -0
  265. package/dist/core/slack/ask-to-link-slack.js.map +1 -0
  266. package/dist/core/slack/complete-link.d.ts +6 -1
  267. package/dist/core/slack/complete-link.js +6 -0
  268. package/dist/core/slack/complete-link.js.map +1 -1
  269. package/dist/core/slack/done-in-slack.d.ts +36 -0
  270. package/dist/core/slack/done-in-slack.js +63 -0
  271. package/dist/core/slack/done-in-slack.js.map +1 -0
  272. package/dist/core/slack/edit-slack-posts.d.ts +7 -5
  273. package/dist/core/slack/edit-slack-posts.js +13 -10
  274. package/dist/core/slack/edit-slack-posts.js.map +1 -1
  275. package/dist/core/slack/edited-post-of.d.ts +21 -0
  276. package/dist/core/slack/edited-post-of.js +77 -0
  277. package/dist/core/slack/edited-post-of.js.map +1 -0
  278. package/dist/core/slack/ports.d.ts +70 -10
  279. package/dist/core/slack/pressed-post-of.d.ts +9 -0
  280. package/dist/core/slack/pressed-post-of.js +18 -0
  281. package/dist/core/slack/pressed-post-of.js.map +1 -0
  282. package/dist/core/slack/read-slack-dropped-out.d.ts +23 -0
  283. package/dist/core/slack/read-slack-dropped-out.js +24 -0
  284. package/dist/core/slack/read-slack-dropped-out.js.map +1 -0
  285. package/dist/core/slack/read-slack-link.d.ts +4 -0
  286. package/dist/core/slack/read-slack-link.js +5 -0
  287. package/dist/core/slack/read-slack-link.js.map +1 -1
  288. package/dist/core/slack/show-in-slack.js +8 -7
  289. package/dist/core/slack/show-in-slack.js.map +1 -1
  290. package/dist/core/slack/slack-post-of.d.ts +24 -12
  291. package/dist/core/slack/slack-post-of.js +118 -37
  292. package/dist/core/slack/slack-post-of.js.map +1 -1
  293. package/dist/core/slack/slack-post.d.ts +13 -1
  294. package/dist/core/slack/slack-post.js +16 -1
  295. package/dist/core/slack/slack-post.js.map +1 -1
  296. package/dist/core/slack/slack-press.d.ts +1 -1
  297. package/dist/core/slack/slack-press.js +2 -1
  298. package/dist/core/slack/slack-press.js.map +1 -1
  299. package/package.json +4 -2
  300. package/src/adapters/prisma/migrations/20261104090000_basket_entries_note_alone/migration.sql +2 -0
  301. package/src/adapters/prisma/migrations/20261105090000_slack_link_steps/migration.sql +10 -0
  302. package/src/adapters/prisma/migrations/20261106090000_opened_deliveries_withdrawn_steps/migration.sql +2 -0
  303. package/src/adapters/prisma/migrations/20261107090000_opened_deliveries_step_link/migration.sql +2 -0
  304. package/src/adapters/prisma/migrations/20261107100000_opened_deliveries_opened_in/migration.sql +2 -0
  305. package/src/adapters/prisma/migrations/20261108090000_item_outcomes_note_and_seen/migration.sql +4 -0
  306. package/src/adapters/prisma/migrations/20261108090000_parties_display_name/migration.sql +2 -0
  307. package/src/adapters/prisma/migrations/20261109090000_argo_accounts/migration.sql +8 -0
  308. package/src/adapters/prisma/migrations/20261109090000_basket_entries_option_label/migration.sql +2 -0
  309. package/src/adapters/prisma/migrations/20261109100000_basket_entries_sent/migration.sql +3 -0
  310. package/src/adapters/prisma/migrations/20261110090000_argo_slack_posts/migration.sql +12 -0
  311. package/src/adapters/prisma/migrations/20261110090000_connected_chats_indexes/migration.sql +5 -0
  312. package/src/adapters/prisma/migrations/20261110100000_argo_wakes/migration.sql +18 -0
  313. package/src/adapters/prisma/schema.prisma +88 -6
  314. package/web/.next/BUILD_ID +1 -1
  315. package/web/.next/app-path-routes-manifest.json +10 -8
  316. package/web/.next/build-manifest.json +114 -90
  317. package/web/.next/diagnostics/route-bundle-stats.json +268 -208
  318. package/web/.next/fallback-build-manifest.json +3 -3
  319. package/web/.next/prerender-manifest.json +3 -3
  320. package/web/.next/routes-manifest.json +12 -0
  321. package/web/.next/server/app/(bridge)/bridge/basket/page/app-paths-manifest.json +3 -0
  322. package/web/.next/server/app/{(console) → (bridge)}/bridge/basket/page/build-manifest.json +4 -4
  323. package/web/.next/server/app/{(console) → (bridge)}/bridge/basket/page/next-font-manifest.json +1 -1
  324. package/web/.next/server/app/(bridge)/bridge/basket/page/server-reference-manifest.json +105 -0
  325. package/web/.next/server/app/{(console)/bridge/settings/requests/[requestId] → (bridge)/bridge/basket}/page.js +15 -14
  326. package/web/.next/server/app/(bridge)/bridge/basket/page.js.nft.json +1 -0
  327. package/web/.next/server/app/(bridge)/bridge/basket/page_client-reference-manifest.js +3 -0
  328. package/web/.next/server/app/(bridge)/bridge/changes/route/app-paths-manifest.json +3 -0
  329. package/web/.next/server/app/(bridge)/bridge/changes/route.js +8 -0
  330. package/web/.next/server/app/{(console) → (bridge)}/bridge/changes/route.js.nft.json +1 -1
  331. package/web/.next/server/app/(bridge)/bridge/changes/route_client-reference-manifest.js +3 -0
  332. package/web/.next/server/app/(bridge)/bridge/done/page/app-paths-manifest.json +3 -0
  333. package/web/.next/server/app/{(console) → (bridge)}/bridge/done/page/build-manifest.json +4 -4
  334. package/web/.next/server/app/{(console) → (bridge)}/bridge/done/page/next-font-manifest.json +1 -1
  335. package/web/.next/server/app/(bridge)/bridge/done/page/server-reference-manifest.json +25 -0
  336. package/web/.next/server/app/{(console) → (bridge)}/bridge/done/page.js +16 -15
  337. package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge/done}/page.js.nft.json +1 -1
  338. package/web/.next/server/app/(bridge)/bridge/done/page_client-reference-manifest.js +3 -0
  339. package/web/.next/server/app/(bridge)/bridge/fleet/page/app-paths-manifest.json +3 -0
  340. package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge/fleet}/page/build-manifest.json +4 -4
  341. package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge/fleet}/page/next-font-manifest.json +1 -1
  342. package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge/fleet}/page/server-reference-manifest.json +3 -3
  343. package/web/.next/server/app/(bridge)/bridge/fleet/page.js +24 -0
  344. package/web/.next/server/app/{(console)/bridge/done → (bridge)/bridge/fleet}/page.js.nft.json +1 -1
  345. package/web/.next/server/app/(bridge)/bridge/fleet/page_client-reference-manifest.js +3 -0
  346. package/web/.next/server/app/(bridge)/bridge/focus/route/app-paths-manifest.json +3 -0
  347. package/web/.next/server/app/(bridge)/bridge/focus/route.js +8 -0
  348. package/web/.next/server/app/{(console) → (bridge)}/bridge/focus/route.js.nft.json +1 -1
  349. package/web/.next/server/app/(bridge)/bridge/focus/route_client-reference-manifest.js +3 -0
  350. package/web/.next/server/app/(bridge)/bridge/page/app-paths-manifest.json +3 -0
  351. package/web/.next/server/app/{(console) → (bridge)}/bridge/page/build-manifest.json +4 -4
  352. package/web/.next/server/app/{(console) → (bridge)}/bridge/page/next-font-manifest.json +1 -1
  353. package/web/.next/server/app/(bridge)/bridge/page/server-reference-manifest.json +95 -0
  354. package/web/.next/server/app/{(console) → (bridge)}/bridge/page.js +16 -14
  355. package/web/.next/server/app/{(console) → (bridge)}/bridge/page.js.nft.json +1 -1
  356. package/web/.next/server/app/(bridge)/bridge/page_client-reference-manifest.js +3 -0
  357. package/web/.next/server/app/(bridge)/bridge/settings/page/app-paths-manifest.json +3 -0
  358. package/web/.next/server/app/(bridge)/bridge/settings/page/build-manifest.json +23 -0
  359. package/web/.next/server/app/(bridge)/bridge/settings/page/next-font-manifest.json +11 -0
  360. package/web/.next/server/app/(bridge)/bridge/settings/page/server-reference-manifest.json +15 -0
  361. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/page.js +15 -14
  362. package/web/.next/server/app/{(console)/bridge/basket → (bridge)/bridge/settings}/page.js.nft.json +1 -1
  363. package/web/.next/server/app/(bridge)/bridge/settings/page_client-reference-manifest.js +3 -0
  364. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page/app-paths-manifest.json +3 -0
  365. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page/build-manifest.json +23 -0
  366. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page/next-font-manifest.json +11 -0
  367. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/requests/[requestId]/page/server-reference-manifest.json +6 -6
  368. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page.js +26 -0
  369. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/requests/[requestId]/page.js.nft.json +1 -1
  370. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page_client-reference-manifest.js +3 -0
  371. package/web/.next/server/app/(bridge)/bridge/settings/routing/page/app-paths-manifest.json +3 -0
  372. package/web/.next/server/app/(bridge)/bridge/settings/routing/page/build-manifest.json +23 -0
  373. package/web/.next/server/app/(bridge)/bridge/settings/routing/page/next-font-manifest.json +11 -0
  374. package/web/.next/server/app/(bridge)/bridge/settings/routing/page/react-loadable-manifest.json +1 -0
  375. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/routing/page/server-reference-manifest.json +15 -15
  376. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/routing/page.js +15 -14
  377. package/web/.next/server/app/(bridge)/bridge/settings/routing/page.js.map +5 -0
  378. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/routing/page.js.nft.json +1 -1
  379. package/web/.next/server/app/(bridge)/bridge/settings/routing/page_client-reference-manifest.js +3 -0
  380. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/app-paths-manifest.json +3 -0
  381. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/build-manifest.json +23 -0
  382. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/next-font-manifest.json +11 -0
  383. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/react-loadable-manifest.json +1 -0
  384. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/server-reference-manifest.json +95 -0
  385. package/web/.next/server/app/{(console)/bridge/basket → (bridge)/bridge/stay-aware}/page.js +15 -14
  386. package/web/.next/server/app/(bridge)/bridge/stay-aware/page.js.map +5 -0
  387. package/web/.next/server/app/(bridge)/bridge/stay-aware/page.js.nft.json +1 -0
  388. package/web/.next/server/app/(bridge)/bridge/stay-aware/page_client-reference-manifest.js +3 -0
  389. package/web/.next/server/app/(console)/gateway-off/page/build-manifest.json +4 -4
  390. package/web/.next/server/app/(console)/gateway-off/page/server-reference-manifest.json +1 -1
  391. package/web/.next/server/app/(console)/gateway-off/page.js +2 -2
  392. package/web/.next/server/app/(console)/gateway-off/page.js.nft.json +1 -1
  393. package/web/.next/server/app/(console)/gateway-off/page_client-reference-manifest.js +1 -1
  394. package/web/.next/server/app/(console)/meetings/[meetingId]/page/build-manifest.json +4 -4
  395. package/web/.next/server/app/(console)/meetings/[meetingId]/page/server-reference-manifest.json +3 -3
  396. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js +2 -2
  397. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js.nft.json +1 -1
  398. package/web/.next/server/app/(console)/meetings/[meetingId]/page_client-reference-manifest.js +1 -1
  399. package/web/.next/server/app/(console)/outside-parties/[name]/change/page/build-manifest.json +4 -4
  400. package/web/.next/server/app/(console)/outside-parties/[name]/change/page/server-reference-manifest.json +18 -18
  401. package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js +2 -2
  402. package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js.nft.json +1 -1
  403. package/web/.next/server/app/(console)/outside-parties/[name]/change/page_client-reference-manifest.js +1 -1
  404. package/web/.next/server/app/(console)/outside-parties/[name]/page/build-manifest.json +4 -4
  405. package/web/.next/server/app/(console)/outside-parties/[name]/page/server-reference-manifest.json +8 -8
  406. package/web/.next/server/app/(console)/outside-parties/[name]/page.js +2 -2
  407. package/web/.next/server/app/(console)/outside-parties/[name]/page.js.nft.json +1 -1
  408. package/web/.next/server/app/(console)/outside-parties/[name]/page_client-reference-manifest.js +1 -1
  409. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/build-manifest.json +4 -4
  410. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/server-reference-manifest.json +18 -18
  411. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js +2 -2
  412. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js.nft.json +1 -1
  413. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page_client-reference-manifest.js +1 -1
  414. package/web/.next/server/app/(console)/outside-parties/add/page/build-manifest.json +4 -4
  415. package/web/.next/server/app/(console)/outside-parties/add/page/server-reference-manifest.json +10 -10
  416. package/web/.next/server/app/(console)/outside-parties/add/page.js +2 -2
  417. package/web/.next/server/app/(console)/outside-parties/add/page.js.nft.json +1 -1
  418. package/web/.next/server/app/(console)/outside-parties/add/page_client-reference-manifest.js +1 -1
  419. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/build-manifest.json +4 -4
  420. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/server-reference-manifest.json +2 -2
  421. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js +2 -2
  422. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js.nft.json +1 -1
  423. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page_client-reference-manifest.js +1 -1
  424. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/build-manifest.json +4 -4
  425. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/server-reference-manifest.json +2 -2
  426. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js +2 -2
  427. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js.nft.json +1 -1
  428. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page_client-reference-manifest.js +1 -1
  429. package/web/.next/server/app/(console)/outside-parties/page/build-manifest.json +4 -4
  430. package/web/.next/server/app/(console)/outside-parties/page/server-reference-manifest.json +2 -2
  431. package/web/.next/server/app/(console)/outside-parties/page.js +2 -2
  432. package/web/.next/server/app/(console)/outside-parties/page.js.nft.json +1 -1
  433. package/web/.next/server/app/(console)/outside-parties/page_client-reference-manifest.js +1 -1
  434. package/web/.next/server/app/(console)/parties/page/build-manifest.json +4 -4
  435. package/web/.next/server/app/(console)/parties/page/server-reference-manifest.json +8 -8
  436. package/web/.next/server/app/(console)/parties/page.js +2 -2
  437. package/web/.next/server/app/(console)/parties/page.js.nft.json +1 -1
  438. package/web/.next/server/app/(console)/parties/page_client-reference-manifest.js +1 -1
  439. package/web/.next/server/app/(console)/sign-in/failed/page/build-manifest.json +4 -4
  440. package/web/.next/server/app/(console)/sign-in/failed/page/server-reference-manifest.json +1 -1
  441. package/web/.next/server/app/(console)/sign-in/failed/page.js +2 -2
  442. package/web/.next/server/app/(console)/sign-in/failed/page.js.nft.json +1 -1
  443. package/web/.next/server/app/(console)/sign-in/failed/page_client-reference-manifest.js +1 -1
  444. package/web/.next/server/app/(console)/slack/disconnect/page/build-manifest.json +4 -4
  445. package/web/.next/server/app/(console)/slack/disconnect/page/server-reference-manifest.json +11 -11
  446. package/web/.next/server/app/(console)/slack/disconnect/page.js +2 -2
  447. package/web/.next/server/app/(console)/slack/disconnect/page.js.nft.json +1 -1
  448. package/web/.next/server/app/(console)/slack/disconnect/page_client-reference-manifest.js +1 -1
  449. package/web/.next/server/app/(console)/slack/expose/page/build-manifest.json +4 -4
  450. package/web/.next/server/app/(console)/slack/expose/page/server-reference-manifest.json +11 -11
  451. package/web/.next/server/app/(console)/slack/expose/page.js +2 -2
  452. package/web/.next/server/app/(console)/slack/expose/page.js.nft.json +1 -1
  453. package/web/.next/server/app/(console)/slack/expose/page_client-reference-manifest.js +1 -1
  454. package/web/.next/server/app/(console)/slack/link/route.js.nft.json +1 -1
  455. package/web/.next/server/app/(console)/slack/page/build-manifest.json +4 -4
  456. package/web/.next/server/app/(console)/slack/page/server-reference-manifest.json +11 -11
  457. package/web/.next/server/app/(console)/slack/page.js +2 -2
  458. package/web/.next/server/app/(console)/slack/page.js.nft.json +1 -1
  459. package/web/.next/server/app/(console)/slack/page_client-reference-manifest.js +1 -1
  460. package/web/.next/server/app/(console)/slack/remove/page/build-manifest.json +4 -4
  461. package/web/.next/server/app/(console)/slack/remove/page/server-reference-manifest.json +11 -11
  462. package/web/.next/server/app/(console)/slack/remove/page.js +4 -4
  463. package/web/.next/server/app/(console)/slack/remove/page.js.nft.json +1 -1
  464. package/web/.next/server/app/(console)/slack/remove/page_client-reference-manifest.js +1 -1
  465. package/web/.next/server/app/_global-error/page/build-manifest.json +4 -4
  466. package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  467. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  468. package/web/.next/server/app/_global-error.html +1 -1
  469. package/web/.next/server/app/_global-error.rsc +1 -1
  470. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  471. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  472. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  473. package/web/.next/server/app/_not-found/page/build-manifest.json +4 -4
  474. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  475. package/web/.next/server/app/_not-found/page.js +2 -2
  476. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  477. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  478. package/web/.next/server/app/apple-icon.png/route.js.nft.json +1 -1
  479. package/web/.next/server/app/authorize/failed/page/build-manifest.json +4 -4
  480. package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +1 -1
  481. package/web/.next/server/app/authorize/failed/page.js +3 -3
  482. package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -1
  483. package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +1 -1
  484. package/web/.next/server/app/authorize/pick/page/build-manifest.json +4 -4
  485. package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +1 -1
  486. package/web/.next/server/app/authorize/pick/page.js +7 -6
  487. package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -1
  488. package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +1 -1
  489. package/web/.next/server/app/authorize/waiting/approval/page/build-manifest.json +4 -4
  490. package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +1 -1
  491. package/web/.next/server/app/authorize/waiting/approval/page.js +3 -3
  492. package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -1
  493. package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +1 -1
  494. package/web/.next/server/app/icon.svg/route.js.nft.json +1 -1
  495. package/web/.next/server/app-paths-manifest.json +10 -8
  496. package/web/.next/server/chunks/0b9d__next-internal_server_app_(bridge)_bridge_changes_route_actions_0wd1c_8tnx6-f.js +3 -0
  497. package/web/.next/server/chunks/[root-of-the-server]__1j0sdz18lzulo._.js +2 -2
  498. package/web/.next/server/chunks/[root-of-the-server]__1o2xxi_001xql._.js +2 -2
  499. package/web/.next/server/chunks/_0up_7s_05-7vm._.js +3 -0
  500. package/web/.next/server/chunks/_0up_7s_05-7vm._.js.map +1 -0
  501. package/web/.next/server/chunks/_0xw0b7avhvg75._.js +1 -1
  502. package/web/.next/server/chunks/_1w2t6c0hpdsrn._.js +1 -1
  503. package/web/.next/server/chunks/_1xaed_q500ez6._.js +3 -0
  504. package/web/.next/server/chunks/_1xaed_q500ez6._.js.map +1 -0
  505. package/web/.next/server/chunks/_20ne4s-e_jzxp._.js +1 -1
  506. package/web/.next/server/chunks/_20ne4s-e_jzxp._.js.map +1 -1
  507. package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js +3 -0
  508. package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js.map +1 -0
  509. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js +3 -0
  510. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js.map +1 -0
  511. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js +3 -0
  512. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js.map +1 -0
  513. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js +1 -1
  514. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js.map +1 -1
  515. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js +1 -1
  516. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js.map +1 -1
  517. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js +1 -1
  518. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js.map +1 -1
  519. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js +1 -1
  520. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js.map +1 -1
  521. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js +1 -1
  522. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js.map +1 -1
  523. package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js +1 -1
  524. package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js.map +1 -1
  525. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1yyaeeylnezpi._.js → [root-of-the-server]__04_bc8g0oe4jt._.js} +1 -1
  526. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a6a1yc_ac-qt._.js +1 -1
  527. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a8db18tyk__5._.js +1 -1
  528. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a8db18tyk__5._.js.map +1 -1
  529. package/web/.next/server/chunks/ssr/[root-of-the-server]__0e4l5gt01o04p._.js +3 -0
  530. package/web/.next/server/chunks/ssr/[root-of-the-server]__0e4l5gt01o04p._.js.map +1 -0
  531. package/web/.next/server/chunks/ssr/[root-of-the-server]__0fz0817_b9ljl._.js +1 -1
  532. package/web/.next/server/chunks/ssr/[root-of-the-server]__0gptrhg3mj4hs._.js +57 -0
  533. package/web/.next/server/chunks/ssr/[root-of-the-server]__0gptrhg3mj4hs._.js.map +1 -0
  534. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js +1 -1
  535. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js.map +1 -1
  536. package/web/.next/server/chunks/ssr/[root-of-the-server]__0kjcooo3pi4_k._.js +57 -0
  537. package/web/.next/server/chunks/ssr/[root-of-the-server]__0kjcooo3pi4_k._.js.map +1 -0
  538. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rmg7huc074bf._.js +3 -0
  539. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rmg7huc074bf._.js.map +1 -0
  540. package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js +1 -1
  541. package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js.map +1 -1
  542. package/web/.next/server/chunks/ssr/[root-of-the-server]__13v3maun347sn._.js +3 -0
  543. package/web/.next/server/chunks/ssr/[root-of-the-server]__13v3maun347sn._.js.map +1 -0
  544. package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js +1 -1
  545. package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js.map +1 -1
  546. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0gnfxe62edx95._.js → [root-of-the-server]__179upda-y7uap._.js} +1 -1
  547. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js +1 -1
  548. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js.map +1 -1
  549. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ektgsnjg4btl._.js +3 -0
  550. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ektgsnjg4btl._.js.map +1 -0
  551. package/web/.next/server/chunks/ssr/[root-of-the-server]__1hgu6f5hpnykv._.js +57 -0
  552. package/web/.next/server/chunks/ssr/[root-of-the-server]__1hgu6f5hpnykv._.js.map +1 -0
  553. package/web/.next/server/chunks/ssr/[root-of-the-server]__1nfpyr3ynmwks._.js +3 -0
  554. package/web/.next/server/chunks/ssr/[root-of-the-server]__1nfpyr3ynmwks._.js.map +1 -0
  555. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js +1 -1
  556. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js.map +1 -1
  557. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ul9rrs2g66lm._.js +4 -0
  558. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ul9rrs2g66lm._.js.map +1 -0
  559. package/web/.next/server/chunks/ssr/[root-of-the-server]__20gvfqy33wcds._.js +57 -0
  560. package/web/.next/server/chunks/ssr/[root-of-the-server]__20gvfqy33wcds._.js.map +1 -0
  561. package/web/.next/server/chunks/ssr/_00fvst5icgei4._.js +3 -0
  562. package/web/.next/server/chunks/ssr/_00fvst5icgei4._.js.map +1 -0
  563. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +1 -1
  564. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -1
  565. package/web/.next/server/chunks/ssr/_02mwdj1oj1zgm._.js +3 -0
  566. package/web/.next/server/chunks/ssr/_02mwdj1oj1zgm._.js.map +1 -0
  567. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js +2 -2
  568. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js.map +1 -1
  569. package/web/.next/server/chunks/ssr/_0f7ucdt7bfmun._.js +3 -0
  570. package/web/.next/server/chunks/ssr/_0f7ucdt7bfmun._.js.map +1 -0
  571. package/web/.next/server/chunks/ssr/_0fqd23gyia_8g._.js +3 -0
  572. package/web/.next/server/chunks/ssr/_0fqd23gyia_8g._.js.map +1 -0
  573. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js +1 -1
  574. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js.map +1 -1
  575. package/web/.next/server/chunks/ssr/_0kk7op86em7z2._.js +3 -0
  576. package/web/.next/server/chunks/ssr/_0kk7op86em7z2._.js.map +1 -0
  577. package/web/.next/server/chunks/ssr/_0pirspvjp3ggl._.js +3 -0
  578. package/web/.next/server/chunks/ssr/_0pirspvjp3ggl._.js.map +1 -0
  579. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js +1 -1
  580. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js.map +1 -1
  581. package/web/.next/server/chunks/ssr/_0u0u0owpxx_37._.js +3 -0
  582. package/web/.next/server/chunks/ssr/_0u0u0owpxx_37._.js.map +1 -0
  583. package/web/.next/server/chunks/ssr/_0v_x6k3ztfvx0._.js +3 -0
  584. package/web/.next/server/chunks/ssr/_0v_x6k3ztfvx0._.js.map +1 -0
  585. package/web/.next/server/chunks/ssr/_0x5-_917zcaj9._.js +3 -0
  586. package/web/.next/server/chunks/ssr/_0x5-_917zcaj9._.js.map +1 -0
  587. package/web/.next/server/chunks/ssr/_0xajzaside0sw._.js +3 -0
  588. package/web/.next/server/chunks/ssr/_0xajzaside0sw._.js.map +1 -0
  589. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +1 -1
  590. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -1
  591. package/web/.next/server/chunks/ssr/_0yhvyj-yts7qi._.js +3 -0
  592. package/web/.next/server/chunks/ssr/_0yhvyj-yts7qi._.js.map +1 -0
  593. package/web/.next/server/chunks/ssr/_104ilzyn58zw_._.js +3 -0
  594. package/web/.next/server/chunks/ssr/_104ilzyn58zw_._.js.map +1 -0
  595. package/web/.next/server/chunks/ssr/_13_ady-a4058y._.js +3 -0
  596. package/web/.next/server/chunks/ssr/_13_ady-a4058y._.js.map +1 -0
  597. package/web/.next/server/chunks/ssr/_14k1oldo5chf8._.js +3 -0
  598. package/web/.next/server/chunks/ssr/_14k1oldo5chf8._.js.map +1 -0
  599. package/web/.next/server/chunks/ssr/_15whg3fd67b9x._.js +3 -0
  600. package/web/.next/server/chunks/ssr/_15whg3fd67b9x._.js.map +1 -0
  601. package/web/.next/server/chunks/ssr/_17zzluh48wsdb._.js +3 -0
  602. package/web/.next/server/chunks/ssr/_17zzluh48wsdb._.js.map +1 -0
  603. package/web/.next/server/chunks/ssr/_18xv7kh7i655_._.js +3 -0
  604. package/web/.next/server/chunks/ssr/_18xv7kh7i655_._.js.map +1 -0
  605. package/web/.next/server/chunks/ssr/_1_wav28san6dm._.js +1 -1
  606. package/web/.next/server/chunks/ssr/_1_ym4hwge_4r0._.js +3 -0
  607. package/web/.next/server/chunks/ssr/_1_ym4hwge_4r0._.js.map +1 -0
  608. package/web/.next/server/chunks/ssr/_1cc4ie_s4tycq._.js +3 -0
  609. package/web/.next/server/chunks/ssr/_1cc4ie_s4tycq._.js.map +1 -0
  610. package/web/.next/server/chunks/ssr/_1e2o809f0ekry._.js +1 -1
  611. package/web/.next/server/chunks/ssr/{_0a_nsm-ye2r6v._.js → _1gbkqq8ra1nei._.js} +2 -2
  612. package/web/.next/server/chunks/ssr/_1gbkqq8ra1nei._.js.map +1 -0
  613. package/web/.next/server/chunks/ssr/_1gnk2vqna6c6u._.js +3 -0
  614. package/web/.next/server/chunks/ssr/_1gnk2vqna6c6u._.js.map +1 -0
  615. package/web/.next/server/chunks/ssr/_1i8ofnr1a5yle._.js +3 -0
  616. package/web/.next/server/chunks/ssr/_1i8ofnr1a5yle._.js.map +1 -0
  617. package/web/.next/server/chunks/ssr/_1k2b80m058vgx._.js +3 -0
  618. package/web/.next/server/chunks/ssr/_1k2b80m058vgx._.js.map +1 -0
  619. package/web/.next/server/chunks/ssr/_1mg5oon0wpocg._.js +3 -0
  620. package/web/.next/server/chunks/ssr/_1mg5oon0wpocg._.js.map +1 -0
  621. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +1 -1
  622. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -1
  623. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +1 -1
  624. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -1
  625. package/web/.next/server/chunks/ssr/_1rfpx4ze-3l8z._.js +3 -0
  626. package/web/.next/server/chunks/ssr/{web_features_0mi9a9pdzkdji._.js.map → _1rfpx4ze-3l8z._.js.map} +1 -1
  627. package/web/.next/server/chunks/ssr/_1t74yvog5g6g2._.js +3 -0
  628. package/web/.next/server/chunks/ssr/_1t74yvog5g6g2._.js.map +1 -0
  629. package/web/.next/server/chunks/ssr/_1ve-ao6odintc._.js +3 -0
  630. package/web/.next/server/chunks/ssr/_1ve-ao6odintc._.js.map +1 -0
  631. package/web/.next/server/chunks/ssr/_1xgivp19ts9hn._.js +3 -0
  632. package/web/.next/server/chunks/ssr/_1xgivp19ts9hn._.js.map +1 -0
  633. package/web/.next/server/chunks/ssr/_1zmd3armaxhyu._.js +4 -0
  634. package/web/.next/server/chunks/ssr/_1zmd3armaxhyu._.js.map +1 -0
  635. package/web/.next/server/chunks/ssr/node_modules_0489ke-80obwd._.js +3 -0
  636. package/web/.next/server/chunks/ssr/node_modules_0489ke-80obwd._.js.map +1 -0
  637. package/web/.next/server/chunks/ssr/node_modules_05ni_zu0e0w44._.js +3 -0
  638. package/web/.next/server/chunks/ssr/node_modules_05ni_zu0e0w44._.js.map +1 -0
  639. package/web/.next/server/chunks/ssr/node_modules_07vtvfyfo0a6i._.js +3 -0
  640. package/web/.next/server/chunks/ssr/node_modules_07vtvfyfo0a6i._.js.map +1 -0
  641. package/web/.next/server/chunks/ssr/node_modules_0ettht2so2tkh._.js +1 -1
  642. package/web/.next/server/chunks/ssr/node_modules_0keape0zsobyj._.js +1 -1
  643. package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js +3 -0
  644. package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js.map +1 -0
  645. package/web/.next/server/chunks/ssr/node_modules_12euo0ncdx1pn._.js +3 -0
  646. package/web/.next/server/chunks/ssr/node_modules_12euo0ncdx1pn._.js.map +1 -0
  647. package/web/.next/server/chunks/ssr/node_modules_1722-epjft-rn._.js +3 -0
  648. package/web/.next/server/chunks/ssr/node_modules_1722-epjft-rn._.js.map +1 -0
  649. package/web/.next/server/chunks/ssr/{node_modules_@aeolus-fleet_common_dist_header_1x3s5abk_uj9j._.js → node_modules_@aeolus-fleet_ui_dist_11tn8gozt2_c3._.js} +2 -2
  650. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_ui_dist_11tn8gozt2_c3._.js.map +1 -0
  651. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_ui_dist_16j49enf275ln._.js +3 -0
  652. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_ui_dist_16j49enf275ln._.js.map +1 -0
  653. package/web/.next/server/chunks/ssr/node_modules_@base-ui_0jlwmxa9rk8p_._.js +1 -1
  654. package/web/.next/server/chunks/ssr/node_modules_@base-ui_0jlwmxa9rk8p_._.js.map +1 -1
  655. package/web/.next/server/chunks/ssr/node_modules_@base-ui_19e_nxxf4a88q._.js +1 -1
  656. package/web/.next/server/chunks/ssr/node_modules_@base-ui_19e_nxxf4a88q._.js.map +1 -1
  657. package/web/.next/server/chunks/ssr/node_modules_@base-ui_react_1cvjxnw-b3pnv._.js +3 -0
  658. package/web/.next/server/chunks/ssr/{node_modules_@base-ui_react_1lbvjrzg8s2ox._.js.map → node_modules_@base-ui_react_1cvjxnw-b3pnv._.js.map} +1 -1
  659. package/web/.next/server/chunks/ssr/node_modules_@base-ui_react_toast_index_parts_mjs_20gwon7142aop._.js +3 -0
  660. package/web/.next/server/chunks/ssr/node_modules_@base-ui_react_toast_index_parts_mjs_20gwon7142aop._.js.map +1 -0
  661. package/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_bell_mjs_1sxms6d0wfxa2._.js +3 -0
  662. package/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_bell_mjs_1sxms6d0wfxa2._.js.map +1 -0
  663. package/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_search_mjs_047mxu6_po4kl._.js +3 -0
  664. package/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_search_mjs_047mxu6_po4kl._.js.map +1 -0
  665. package/web/.next/server/chunks/ssr/node_modules_next_08hq6z46rczo0._.js +2 -2
  666. package/web/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js +2 -2
  667. package/web/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js.map +1 -1
  668. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0g15rgn4n-oiz.js +3 -0
  669. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0g15rgn4n-oiz.js.map +1 -0
  670. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hzwtyh-646p2.js +3 -0
  671. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hzwtyh-646p2.js.map +1 -0
  672. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mm8dt8tws1fz.js +3 -0
  673. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mm8dt8tws1fz.js.map +1 -0
  674. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0tcy7phl8a4gj.js +3 -0
  675. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0tcy7phl8a4gj.js.map +1 -0
  676. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ynno0usi0bwx.js +1 -1
  677. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_11x159_oszki3.js +3 -0
  678. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_11x159_oszki3.js.map +1 -0
  679. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_128zox167vtjm.js +1 -1
  680. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_128zox167vtjm.js.map +1 -1
  681. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dltrn6ii5dd6.js +3 -0
  682. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dltrn6ii5dd6.js.map +1 -0
  683. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1hm1iu016c1fy.js +3 -0
  684. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1hm1iu016c1fy.js.map +1 -0
  685. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1zaoeyy4_vir_.js +3 -0
  686. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1zaoeyy4_vir_.js.map +1 -0
  687. package/web/.next/server/chunks/ssr/web_0_peudz6-o69m._.js +3 -0
  688. package/web/.next/server/chunks/ssr/web_0_peudz6-o69m._.js.map +1 -0
  689. package/web/.next/server/chunks/ssr/web_0cxcy088wnfmw._.js +3 -0
  690. package/web/.next/server/chunks/ssr/web_0cxcy088wnfmw._.js.map +1 -0
  691. package/web/.next/server/chunks/ssr/web_0oz8bypfxh82g._.js +3 -0
  692. package/web/.next/server/chunks/ssr/web_0oz8bypfxh82g._.js.map +1 -0
  693. package/web/.next/server/chunks/ssr/web_0pk41f5m34jvi._.js +3 -0
  694. package/web/.next/server/chunks/ssr/web_0pk41f5m34jvi._.js.map +1 -0
  695. package/web/.next/server/chunks/ssr/web_0qgev3ti257yj._.js +1 -1
  696. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js +1 -1
  697. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js.map +1 -1
  698. package/web/.next/server/chunks/ssr/web_1fi1x3y7rg7mf._.js +3 -0
  699. package/web/.next/server/chunks/ssr/web_1fi1x3y7rg7mf._.js.map +1 -0
  700. package/web/.next/server/chunks/ssr/web_1ga4pbv72m0ad._.js +1 -1
  701. package/web/.next/server/chunks/ssr/web_1irsulms62lzf._.js +3 -0
  702. package/web/.next/server/chunks/ssr/web_1irsulms62lzf._.js.map +1 -0
  703. package/web/.next/server/chunks/ssr/web_1k2rrq-kr6f9k._.js +3 -0
  704. package/web/.next/server/chunks/ssr/web_1k2rrq-kr6f9k._.js.map +1 -0
  705. package/web/.next/server/chunks/ssr/web_1qvxzqmq4aw94._.js +3 -0
  706. package/web/.next/server/chunks/ssr/web_1qvxzqmq4aw94._.js.map +1 -0
  707. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js +3 -0
  708. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js.map +1 -0
  709. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js +3 -0
  710. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js.map +1 -0
  711. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js +3 -0
  712. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js.map +1 -0
  713. package/web/.next/server/chunks/ssr/{web_app_(console)_bridge_error_tsx_10gkrn3ey8162._.js → web_app_(bridge)_bridge_error_tsx_0-142o0iqsh3j._.js} +2 -2
  714. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_error_tsx_0-142o0iqsh3j._.js.map +1 -0
  715. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_error_tsx_1m86qyp1bl9pi._.js +3 -0
  716. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_error_tsx_1m86qyp1bl9pi._.js.map +1 -0
  717. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_fleet_page_tsx_0uvtx8hiy8g0n._.js +3 -0
  718. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_fleet_page_tsx_0uvtx8hiy8g0n._.js.map +1 -0
  719. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_settings_page_tsx_1z5yr8ss25q7n._.js +3 -0
  720. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_settings_page_tsx_1z5yr8ss25q7n._.js.map +1 -0
  721. package/web/.next/server/chunks/ssr/web_app_(console)_parties_page_tsx_0pp63ghly3eyp._.js +1 -1
  722. package/web/.next/server/chunks/ssr/web_app_authorize_layout_tsx_0gs61_7wzx68y._.js +1 -1
  723. package/web/.next/server/chunks/ssr/web_app_authorize_layout_tsx_0gs61_7wzx68y._.js.map +1 -1
  724. package/web/.next/server/chunks/ssr/web_features_06f9kfi0c4nf8._.js +3 -0
  725. package/web/.next/server/chunks/ssr/web_features_06f9kfi0c4nf8._.js.map +1 -0
  726. package/web/.next/server/chunks/ssr/{web_features_0d48z2epb6oie._.js → web_features_0f2pobf_t4wjt._.js} +2 -2
  727. package/web/.next/server/chunks/ssr/{web_features_0d48z2epb6oie._.js.map → web_features_0f2pobf_t4wjt._.js.map} +1 -1
  728. package/web/.next/server/chunks/ssr/web_features_0rd6357w-eo50._.js +1 -1
  729. package/web/.next/server/chunks/ssr/web_features_12b-75qfhurxi._.js +3 -0
  730. package/web/.next/server/chunks/ssr/web_features_12b-75qfhurxi._.js.map +1 -0
  731. package/web/.next/server/chunks/ssr/web_features_19r68thirqv1n._.js +1 -1
  732. package/web/.next/server/chunks/ssr/web_features_1m5g9a6mwrsd-._.js +1 -1
  733. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js +1 -1
  734. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js.map +1 -1
  735. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js +1 -1
  736. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js.map +1 -1
  737. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +1 -1
  738. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -1
  739. package/web/.next/server/chunks/ssr/web_features_authorize_137wk0n1nu3cn._.js +1 -1
  740. package/web/.next/server/chunks/ssr/web_features_authorize_137wk0n1nu3cn._.js.map +1 -1
  741. package/web/.next/server/chunks/ssr/web_features_bridge_0msm42qwm0-jq._.js +3 -0
  742. package/web/.next/server/chunks/ssr/web_features_bridge_0msm42qwm0-jq._.js.map +1 -0
  743. package/web/.next/server/chunks/ssr/web_features_bridge_1mi9qlb-z5iwt._.js +1 -1
  744. package/web/.next/server/chunks/ssr/web_features_bridge_1mi9qlb-z5iwt._.js.map +1 -1
  745. package/web/.next/server/chunks/ssr/web_features_bridge_fleet_ui_fleet-numbers_tsx_0_afv4j248_w-._.js +3 -0
  746. package/web/.next/server/chunks/ssr/web_features_bridge_fleet_ui_fleet-numbers_tsx_0_afv4j248_w-._.js.map +1 -0
  747. package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js +1 -1
  748. package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js.map +1 -1
  749. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js +1 -1
  750. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js.map +1 -1
  751. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js +1 -1
  752. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js.map +1 -1
  753. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js +1 -1
  754. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js.map +1 -1
  755. package/web/.next/server/chunks/ssr/web_features_bridge_state_home-panel_tsx_1cc5zdhxogl_2._.js +1 -1
  756. package/web/.next/server/chunks/ssr/web_features_bridge_state_home-panel_tsx_1cc5zdhxogl_2._.js.map +1 -1
  757. package/web/.next/server/chunks/ssr/web_features_bridge_ui_1y4g3fe75nqn5._.js +1 -1
  758. package/web/.next/server/chunks/ssr/web_features_bridge_ui_1y4g3fe75nqn5._.js.map +1 -1
  759. package/web/.next/server/chunks/ssr/web_features_bridge_ui_item-row_tsx_0c_a8wjzwsr7j._.js +3 -0
  760. package/web/.next/server/chunks/ssr/web_features_bridge_ui_item-row_tsx_0c_a8wjzwsr7j._.js.map +1 -0
  761. package/web/.next/server/chunks/ssr/{web_features_0f6r-m-dq36vf._.js → web_features_forms_1u0akr22eh_x_._.js} +2 -2
  762. package/web/.next/server/chunks/ssr/web_features_forms_1u0akr22eh_x_._.js.map +1 -0
  763. package/web/.next/server/chunks/ssr/web_features_frame_01uyck6q56an2._.js +3 -0
  764. package/web/.next/server/chunks/ssr/web_features_frame_01uyck6q56an2._.js.map +1 -0
  765. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js +1 -1
  766. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js.map +1 -1
  767. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js +1 -1
  768. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js.map +1 -1
  769. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +1 -1
  770. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -1
  771. package/web/.next/server/chunks/ssr/web_features_outside-party_1-lre9nfakki7._.js +1 -1
  772. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +1 -1
  773. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +1 -1
  774. package/web/.next/server/chunks/ssr/web_features_slack_actions_ts_1l3yg9vl20_vu._.js +1 -1
  775. package/web/.next/server/chunks/web__next-internal_server_app_(bridge)_bridge_focus_route_actions_0fx2vmqfq23mq.js +3 -0
  776. package/web/.next/server/middleware-build-manifest.js +114 -90
  777. package/web/.next/server/next-font-manifest.js +1 -1
  778. package/web/.next/server/next-font-manifest.json +14 -6
  779. package/web/.next/server/pages/500.html +1 -1
  780. package/web/.next/server/preview-props.json +3 -3
  781. package/web/.next/server/server-reference-manifest.js +1 -1
  782. package/web/.next/server/server-reference-manifest.json +167 -105
  783. package/web/.next/static/chunks/030kay14jcn_y.js +1 -0
  784. package/web/.next/static/chunks/0ben53l12lrh1.js +1 -0
  785. package/web/.next/static/chunks/0d1u4n5okodee.css +3 -0
  786. package/web/.next/static/chunks/0dg4cy4rae-3o.js +1 -0
  787. package/web/.next/static/chunks/0jwils_670syn.js +1 -0
  788. package/web/.next/static/chunks/0lnew3mjkd54b.js +1 -0
  789. package/web/.next/static/chunks/0m95j-t2qmnd_.js +1 -0
  790. package/web/.next/static/chunks/0r5ujkp-5utsu.js +1 -0
  791. package/web/.next/static/chunks/{1166rxt6h6ilq.js → 1c8q9h-van9r6.js} +1 -1
  792. package/web/.next/static/chunks/{3db90zxmny2y-.js → 1jyiwl5szsvgn.js} +1 -1
  793. package/web/.next/static/chunks/{2z2auwx1s2mgl.js → 1lkcm-iwggfae.js} +1 -1
  794. package/web/.next/static/chunks/1ml6wx1ya9wwo.js +1 -0
  795. package/web/.next/static/chunks/1nzfw6ajt5nf9.js +55 -0
  796. package/web/.next/static/chunks/22wtc73dzqm8f.js +1 -0
  797. package/web/.next/static/chunks/2drwxc7-hry0u.js +1 -0
  798. package/web/.next/static/chunks/2ewacyhp73due.js +1 -0
  799. package/web/.next/static/chunks/2fimf0wcjnmpj.js +1 -0
  800. package/web/.next/static/chunks/2fk9ydkphmyna.js +1 -0
  801. package/web/.next/static/chunks/{07j7jnfe13wx6.js → 2ich96rzec753.js} +1 -1
  802. package/web/.next/static/chunks/2khjzepn4_2a-.js +1 -0
  803. package/web/.next/static/chunks/2mpwg-t6pat39.js +1 -0
  804. package/web/.next/static/chunks/2ui6n5-n032a3.js +1 -0
  805. package/web/.next/static/chunks/2wvdu6-tx1h0l.js +1 -0
  806. package/web/.next/static/chunks/33qpc2y76i927.js +1 -0
  807. package/web/.next/static/chunks/39tst46ewpx_k.js +1 -0
  808. package/web/.next/static/chunks/3h8spyc73a438.js +1 -0
  809. package/web/.next/static/chunks/3kenmp9pjwgf2.js +1 -0
  810. package/web/.next/static/chunks/3knqujtrdi225.js +1 -0
  811. package/web/.next/static/chunks/3v8s571padqcz.js +1 -0
  812. package/web/.next/static/chunks/3wg9zn3lyhf-b.js +1 -0
  813. package/web/.next/static/chunks/{0lzisjsmhlhjf.js → 3zhaqdsq15d1e.js} +1 -1
  814. package/web/.next/trace +1 -1
  815. package/web/.next/trace-build +1 -1
  816. package/web/.next/types/routes.d.ts +3 -1
  817. package/web/.next/types/validator.ts +50 -16
  818. package/web/public/argo-wake-icon.svg +1 -0
  819. package/web/public/wake-worker.js +8 -2
  820. package/web/public/wake-worker.test.ts +52 -0
  821. package/dist/core/people/stale-question.d.ts +0 -28
  822. package/dist/core/people/stale-question.js +0 -26
  823. package/dist/core/people/stale-question.js.map +0 -1
  824. package/web/.next/server/app/(console)/bridge/basket/page/app-paths-manifest.json +0 -3
  825. package/web/.next/server/app/(console)/bridge/basket/page/server-reference-manifest.json +0 -75
  826. package/web/.next/server/app/(console)/bridge/basket/page_client-reference-manifest.js +0 -3
  827. package/web/.next/server/app/(console)/bridge/changes/route/app-paths-manifest.json +0 -3
  828. package/web/.next/server/app/(console)/bridge/changes/route.js +0 -8
  829. package/web/.next/server/app/(console)/bridge/changes/route_client-reference-manifest.js +0 -3
  830. package/web/.next/server/app/(console)/bridge/done/page/app-paths-manifest.json +0 -3
  831. package/web/.next/server/app/(console)/bridge/done/page/server-reference-manifest.json +0 -75
  832. package/web/.next/server/app/(console)/bridge/done/page_client-reference-manifest.js +0 -3
  833. package/web/.next/server/app/(console)/bridge/focus/route/app-paths-manifest.json +0 -3
  834. package/web/.next/server/app/(console)/bridge/focus/route.js +0 -8
  835. package/web/.next/server/app/(console)/bridge/focus/route_client-reference-manifest.js +0 -3
  836. package/web/.next/server/app/(console)/bridge/page/app-paths-manifest.json +0 -3
  837. package/web/.next/server/app/(console)/bridge/page/server-reference-manifest.json +0 -65
  838. package/web/.next/server/app/(console)/bridge/page_client-reference-manifest.js +0 -3
  839. package/web/.next/server/app/(console)/bridge/settings/page/app-paths-manifest.json +0 -3
  840. package/web/.next/server/app/(console)/bridge/settings/page_client-reference-manifest.js +0 -3
  841. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/app-paths-manifest.json +0 -3
  842. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/build-manifest.json +0 -23
  843. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/next-font-manifest.json +0 -11
  844. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page_client-reference-manifest.js +0 -3
  845. package/web/.next/server/app/(console)/bridge/settings/routing/page/app-paths-manifest.json +0 -3
  846. package/web/.next/server/app/(console)/bridge/settings/routing/page/build-manifest.json +0 -23
  847. package/web/.next/server/app/(console)/bridge/settings/routing/page/next-font-manifest.json +0 -11
  848. package/web/.next/server/app/(console)/bridge/settings/routing/page_client-reference-manifest.js +0 -3
  849. package/web/.next/server/chunks/0b9d__next-internal_server_app_(console)_bridge_changes_route_actions_0hj8aqohz6bu6.js +0 -3
  850. package/web/.next/server/chunks/_05qgg3__4kdbm._.js +0 -3
  851. package/web/.next/server/chunks/_05qgg3__4kdbm._.js.map +0 -1
  852. package/web/.next/server/chunks/_1uap5tql2vvsb._.js +0 -3
  853. package/web/.next/server/chunks/_1uap5tql2vvsb._.js.map +0 -1
  854. package/web/.next/server/chunks/ssr/01fr_app_(console)_bridge_settings_requests_[requestId]_page_actions_1au-p5lgnv5e-.js +0 -3
  855. package/web/.next/server/chunks/ssr/01fr_app_(console)_bridge_settings_requests_[requestId]_page_actions_1au-p5lgnv5e-.js.map +0 -1
  856. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_bridge_settings_routing_page_actions_136lm_jip4d_x.js +0 -3
  857. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_bridge_settings_routing_page_actions_136lm_jip4d_x.js.map +0 -1
  858. package/web/.next/server/chunks/ssr/[root-of-the-server]__00jy4lqrcvxvc._.js +0 -3
  859. package/web/.next/server/chunks/ssr/[root-of-the-server]__00jy4lqrcvxvc._.js.map +0 -1
  860. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-5_al3xk509._.js +0 -3
  861. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-5_al3xk509._.js.map +0 -1
  862. package/web/.next/server/chunks/ssr/[root-of-the-server]__18v7b5ga58a9n._.js +0 -4
  863. package/web/.next/server/chunks/ssr/[root-of-the-server]__18v7b5ga58a9n._.js.map +0 -1
  864. package/web/.next/server/chunks/ssr/[root-of-the-server]__1nxy_j9eswr3i._.js +0 -3
  865. package/web/.next/server/chunks/ssr/[root-of-the-server]__1nxy_j9eswr3i._.js.map +0 -1
  866. package/web/.next/server/chunks/ssr/[root-of-the-server]__1rf344o33bmi4._.js +0 -3
  867. package/web/.next/server/chunks/ssr/[root-of-the-server]__1rf344o33bmi4._.js.map +0 -1
  868. package/web/.next/server/chunks/ssr/_0a_nsm-ye2r6v._.js.map +0 -1
  869. package/web/.next/server/chunks/ssr/_0h-ua-y4p4u1p._.js +0 -3
  870. package/web/.next/server/chunks/ssr/_0h-ua-y4p4u1p._.js.map +0 -1
  871. package/web/.next/server/chunks/ssr/_10-gn6g9yc63s._.js +0 -3
  872. package/web/.next/server/chunks/ssr/_10-gn6g9yc63s._.js.map +0 -1
  873. package/web/.next/server/chunks/ssr/_12fsn_33ga-n0._.js +0 -3
  874. package/web/.next/server/chunks/ssr/_12fsn_33ga-n0._.js.map +0 -1
  875. package/web/.next/server/chunks/ssr/_177fdczus39s7._.js +0 -3
  876. package/web/.next/server/chunks/ssr/_177fdczus39s7._.js.map +0 -1
  877. package/web/.next/server/chunks/ssr/_1hmjvjuxx92vo._.js +0 -3
  878. package/web/.next/server/chunks/ssr/_1hmjvjuxx92vo._.js.map +0 -1
  879. package/web/.next/server/chunks/ssr/_1jx41z6kmxtt0._.js +0 -3
  880. package/web/.next/server/chunks/ssr/_1jx41z6kmxtt0._.js.map +0 -1
  881. package/web/.next/server/chunks/ssr/_1q2s-hb67yjfb._.js +0 -3
  882. package/web/.next/server/chunks/ssr/_1q2s-hb67yjfb._.js.map +0 -1
  883. package/web/.next/server/chunks/ssr/_1yi3j4a16uet-._.js +0 -3
  884. package/web/.next/server/chunks/ssr/_1yi3j4a16uet-._.js.map +0 -1
  885. package/web/.next/server/chunks/ssr/node_modules_01oyodz1bs245._.js +0 -3
  886. package/web/.next/server/chunks/ssr/node_modules_01oyodz1bs245._.js.map +0 -1
  887. package/web/.next/server/chunks/ssr/node_modules_16d4um5s513wz._.js +0 -3
  888. package/web/.next/server/chunks/ssr/node_modules_16d4um5s513wz._.js.map +0 -1
  889. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_0t_cmi-llaq7g._.js +0 -3
  890. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_0t_cmi-llaq7g._.js.map +0 -1
  891. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_1x3s5abk_uj9j._.js.map +0 -1
  892. package/web/.next/server/chunks/ssr/node_modules_@base-ui_react_1lbvjrzg8s2ox._.js +0 -3
  893. package/web/.next/server/chunks/ssr/node_modules_next_dist_0hkpfqt9ne626._.js +0 -3
  894. package/web/.next/server/chunks/ssr/node_modules_next_dist_0hkpfqt9ne626._.js.map +0 -1
  895. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_031g89sb4kgzn.js +0 -3
  896. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_031g89sb4kgzn.js.map +0 -1
  897. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09rviehv6rh0n.js +0 -3
  898. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09rviehv6rh0n.js.map +0 -1
  899. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ka8v6_fxug8r.js +0 -3
  900. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ka8v6_fxug8r.js.map +0 -1
  901. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1c8zekuy1gkch.js +0 -3
  902. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1c8zekuy1gkch.js.map +0 -1
  903. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dhzng2nnu0m7.js +0 -3
  904. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dhzng2nnu0m7.js.map +0 -1
  905. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1rya2ag3z4vug.js +0 -3
  906. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1rya2ag3z4vug.js.map +0 -1
  907. package/web/.next/server/chunks/ssr/web_0i_1uraygw2ld._.js +0 -3
  908. package/web/.next/server/chunks/ssr/web_0i_1uraygw2ld._.js.map +0 -1
  909. package/web/.next/server/chunks/ssr/web_0wz4onhfbq359._.js +0 -3
  910. package/web/.next/server/chunks/ssr/web_0wz4onhfbq359._.js.map +0 -1
  911. package/web/.next/server/chunks/ssr/web_1-hlf1xzemd3-._.js +0 -3
  912. package/web/.next/server/chunks/ssr/web_1-hlf1xzemd3-._.js.map +0 -1
  913. package/web/.next/server/chunks/ssr/web_107a79_nx4jdd._.js +0 -3
  914. package/web/.next/server/chunks/ssr/web_107a79_nx4jdd._.js.map +0 -1
  915. package/web/.next/server/chunks/ssr/web_127_b93avkwaq._.js +0 -3
  916. package/web/.next/server/chunks/ssr/web_127_b93avkwaq._.js.map +0 -1
  917. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_basket_page_actions_102xk3g8eko_q.js +0 -3
  918. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_basket_page_actions_102xk3g8eko_q.js.map +0 -1
  919. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_done_page_actions_0mm90xd2feta2.js +0 -3
  920. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_done_page_actions_0mm90xd2feta2.js.map +0 -1
  921. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_page_actions_082880qz6xa5k.js +0 -3
  922. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_page_actions_082880qz6xa5k.js.map +0 -1
  923. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_0ty_yk1robyaj._.js +0 -3
  924. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_0ty_yk1robyaj._.js.map +0 -1
  925. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_10gkrn3ey8162._.js.map +0 -1
  926. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_settings_page_tsx_0xzphp7k9ge1u._.js +0 -3
  927. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_settings_page_tsx_0xzphp7k9ge1u._.js.map +0 -1
  928. package/web/.next/server/chunks/ssr/web_features_0f6r-m-dq36vf._.js.map +0 -1
  929. package/web/.next/server/chunks/ssr/web_features_0mi9a9pdzkdji._.js +0 -3
  930. package/web/.next/server/chunks/ssr/web_features_0s8erick0xk77._.js +0 -3
  931. package/web/.next/server/chunks/ssr/web_features_0s8erick0xk77._.js.map +0 -1
  932. package/web/.next/server/chunks/ssr/web_features_0wuo5bgp5tabn._.js +0 -3
  933. package/web/.next/server/chunks/ssr/web_features_0wuo5bgp5tabn._.js.map +0 -1
  934. package/web/.next/server/chunks/ssr/web_features_16cy3vmcijydk._.js +0 -3
  935. package/web/.next/server/chunks/ssr/web_features_16cy3vmcijydk._.js.map +0 -1
  936. package/web/.next/server/chunks/ssr/web_features_1iiqi6dhrst33._.js +0 -3
  937. package/web/.next/server/chunks/ssr/web_features_1iiqi6dhrst33._.js.map +0 -1
  938. package/web/.next/server/chunks/ssr/web_features_1n1hy3nwha2vi._.js +0 -3
  939. package/web/.next/server/chunks/ssr/web_features_1n1hy3nwha2vi._.js.map +0 -1
  940. package/web/.next/server/chunks/ssr/web_features_bridge_0-mhu0jaig2u3._.js +0 -3
  941. package/web/.next/server/chunks/ssr/web_features_bridge_0-mhu0jaig2u3._.js.map +0 -1
  942. package/web/.next/server/chunks/ssr/web_features_bridge_0219fbfmsi68-._.js +0 -3
  943. package/web/.next/server/chunks/ssr/web_features_bridge_0219fbfmsi68-._.js.map +0 -1
  944. package/web/.next/server/chunks/ssr/web_features_bridge_11jndonu4o8fq._.js +0 -3
  945. package/web/.next/server/chunks/ssr/web_features_bridge_11jndonu4o8fq._.js.map +0 -1
  946. package/web/.next/server/chunks/ssr/web_features_bridge_state_0354e3wb0dzx1._.js +0 -3
  947. package/web/.next/server/chunks/ssr/web_features_bridge_state_0354e3wb0dzx1._.js.map +0 -1
  948. package/web/.next/server/chunks/ssr/web_features_bridge_state_live-refresh_tsx_1c1xk-oe0kllv._.js +0 -3
  949. package/web/.next/server/chunks/ssr/web_features_bridge_state_live-refresh_tsx_1c1xk-oe0kllv._.js.map +0 -1
  950. package/web/.next/server/chunks/ssr/web_features_frame_0pe8cwpxe1egb._.js +0 -3
  951. package/web/.next/server/chunks/ssr/web_features_frame_0pe8cwpxe1egb._.js.map +0 -1
  952. package/web/.next/server/chunks/web__next-internal_server_app_(console)_bridge_focus_route_actions_0syd_u8mgzdmi.js +0 -3
  953. package/web/.next/static/chunks/0az9upwm-8_q9.js +0 -1
  954. package/web/.next/static/chunks/0c1tqlbsvq1dj.js +0 -1
  955. package/web/.next/static/chunks/0fh11dkddwf_2.js +0 -1
  956. package/web/.next/static/chunks/0gbozvd_yh421.js +0 -1
  957. package/web/.next/static/chunks/0l9_oie6xi0kd.js +0 -1
  958. package/web/.next/static/chunks/0m512dxdcrv-b.js +0 -1
  959. package/web/.next/static/chunks/0zbcy0_3jemrv.js +0 -1
  960. package/web/.next/static/chunks/1485slb5zus5p.js +0 -1
  961. package/web/.next/static/chunks/180aowme095ds.js +0 -1
  962. package/web/.next/static/chunks/24olc0btcvn7q.js +0 -1
  963. package/web/.next/static/chunks/296w-74ry5lzk.js +0 -1
  964. package/web/.next/static/chunks/2gghdkr64z9f9.js +0 -1
  965. package/web/.next/static/chunks/2hoi73vy1wqpo.js +0 -1
  966. package/web/.next/static/chunks/2mtfca4qk_s34.js +0 -1
  967. package/web/.next/static/chunks/397zvdr6xr5pq.js +0 -1
  968. package/web/.next/static/chunks/3ow9h8hreko-p.css +0 -3
  969. package/web/.next/static/chunks/3pd8pele5x1o9.js +0 -1
  970. package/web/.next/static/chunks/3srfjz42u14tx.js +0 -1
  971. package/web/.next/static/chunks/3x0p-z3zdrk_b.js +0 -1
  972. package/web/.next/static/chunks/3yq9jt4p_0uid.js +0 -1
  973. /package/web/.next/server/app/{(console) → (bridge)}/bridge/basket/page/react-loadable-manifest.json +0 -0
  974. /package/web/.next/server/app/{(console) → (bridge)}/bridge/basket/page.js.map +0 -0
  975. /package/web/.next/server/app/{(console) → (bridge)}/bridge/changes/route/build-manifest.json +0 -0
  976. /package/web/.next/server/app/{(console) → (bridge)}/bridge/changes/route/server-reference-manifest.json +0 -0
  977. /package/web/.next/server/app/{(console) → (bridge)}/bridge/changes/route.js.map +0 -0
  978. /package/web/.next/server/app/{(console) → (bridge)}/bridge/done/page/react-loadable-manifest.json +0 -0
  979. /package/web/.next/server/app/{(console) → (bridge)}/bridge/done/page.js.map +0 -0
  980. /package/web/.next/server/app/{(console)/bridge → (bridge)/bridge/fleet}/page/react-loadable-manifest.json +0 -0
  981. /package/web/.next/server/app/{(console)/bridge → (bridge)/bridge/fleet}/page.js.map +0 -0
  982. /package/web/.next/server/app/{(console) → (bridge)}/bridge/focus/route/build-manifest.json +0 -0
  983. /package/web/.next/server/app/{(console) → (bridge)}/bridge/focus/route/server-reference-manifest.json +0 -0
  984. /package/web/.next/server/app/{(console) → (bridge)}/bridge/focus/route.js.map +0 -0
  985. /package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge}/page/react-loadable-manifest.json +0 -0
  986. /package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge}/page.js.map +0 -0
  987. /package/web/.next/server/app/{(console)/bridge/settings/requests/[requestId] → (bridge)/bridge/settings}/page/react-loadable-manifest.json +0 -0
  988. /package/web/.next/server/app/{(console)/bridge/settings/requests/[requestId] → (bridge)/bridge/settings}/page.js.map +0 -0
  989. /package/web/.next/server/app/{(console)/bridge/settings/routing → (bridge)/bridge/settings/requests/[requestId]}/page/react-loadable-manifest.json +0 -0
  990. /package/web/.next/server/app/{(console)/bridge/settings/routing → (bridge)/bridge/settings/requests/[requestId]}/page.js.map +0 -0
  991. /package/web/.next/server/chunks/{0b9d__next-internal_server_app_(console)_bridge_changes_route_actions_0hj8aqohz6bu6.js.map → 0b9d__next-internal_server_app_(bridge)_bridge_changes_route_actions_0wd1c_8tnx6-f.js.map} +0 -0
  992. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__1yyaeeylnezpi._.js.map → [root-of-the-server]__04_bc8g0oe4jt._.js.map} +0 -0
  993. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__0gnfxe62edx95._.js.map → [root-of-the-server]__179upda-y7uap._.js.map} +0 -0
  994. /package/web/.next/server/chunks/{web__next-internal_server_app_(console)_bridge_focus_route_actions_0syd_u8mgzdmi.js.map → web__next-internal_server_app_(bridge)_bridge_focus_route_actions_0fx2vmqfq23mq.js.map} +0 -0
  995. /package/web/.next/static/{CMppMkysNciqc8k4TWwia → 79SqN0pBIJ0D-DK1jZmK6}/_buildManifest.js +0 -0
  996. /package/web/.next/static/{CMppMkysNciqc8k4TWwia → 79SqN0pBIJ0D-DK1jZmK6}/_clientMiddlewareManifest.js +0 -0
  997. /package/web/.next/static/{CMppMkysNciqc8k4TWwia → 79SqN0pBIJ0D-DK1jZmK6}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../node_modules/extend/index.js","../../../../../node_modules/lucide-react/src/icons/ban.ts","../../../../../node_modules/lucide-react/src/icons/circle-alert.ts","../../../../../node_modules/lucide-react/src/icons/circle-x.ts","../../../../../node_modules/lucide-react/src/icons/external-link.ts","../../../../../node_modules/lucide-react/src/icons/info.ts","../../../../../node_modules/lucide-react/src/icons/eye.ts","../../../../../node_modules/lucide-react/src/icons/replace.ts","../../../../../node_modules/lucide-react/src/icons/shopping-basket.ts","../../../../../node_modules/lucide-react/src/icons/send.ts","../../../../../node_modules/zod/v4/core/registries.js","../../../../../node_modules/zod/v4/core/core.js","../../../../../node_modules/zod/v4/core/doc.js","../../../../../node_modules/zod/v4/core/versions.js","../../../../../node_modules/zod/v4/locales/en.js","../../../../../node_modules/zod/v4/core/memoizer.js","../../../../../node_modules/%40aeolus-fleet/common/src/rules/page-size.ts","../../../../../node_modules/%40aeolus-fleet/common/src/schemas/content-type.ts","../../../../../node_modules/%40aeolus-fleet/common/src/schemas/alert.ts","../../../../../node_modules/%40aeolus-fleet/common/src/schemas/question.ts","../../../../../node_modules/%40aeolus-fleet/common/src/schemas/page.ts","../../../../../node_modules/zod/v4/core/errors.js","../../../../../node_modules/zod/v4/core/to-json-schema.js","../../../../../node_modules/%40aeolus-fleet/common/src/schemas/report.ts","../../../../../node_modules/zod/v4/classic/parse.js","../../../../../node_modules/zod/v4/core/util.js","../../../../../node_modules/zod/v4/classic/errors.js","../../../../../node_modules/zod/v4/core/parse.js","../../../../../node_modules/zod/v4/classic/iso.js","../../../../../node_modules/zod/v4/core/api.js","../../../../../node_modules/zod/v4/core/json-schema-processors.js","../../../../../node_modules/zod/v4/core/checks.js","../../../../../node_modules/%40aeolus-fleet/common/src/rules/payload.ts","../../../../../node_modules/zod/v4/core/regexes.js","../../../../../node_modules/zod/v4/core/schemas.js","../../../../../node_modules/zod/v4/classic/schemas.js","../../../../../node_modules/%40aeolus-fleet/common/src/ids/index.ts","../../../../../web/features/bridge/services/deliveries.ts","../../../../../web/features/bridge/services/items.ts","../../../../../web/features/bridge/services/stay-aware.ts","../../../../../web/features/bridge/state/record-unreadable.tsx","../../../../../node_modules/lucide-react/src/icons/cloud-off.ts","../../../../../node_modules/lucide-react/src/icons/refresh-cw.ts","../../../../../web/features/bridge/ui/unreadable-banner.tsx","../../../../../web/features/bridge/ui/alert-ship.tsx","../../../../../node_modules/lucide-react/src/icons/square-arrow-out-up-right.ts","../../../../../web/features/bridge/ui/delivery-card.tsx","../../../../../web/features/bridge/ui/item-split.tsx","../../../../../web/features/bridge/ui/job-looks.ts","../../../../../node_modules/lucide-react/src/icons/message-square.ts","../../../../../node_modules/lucide-react/src/icons/megaphone.ts","../../../../../node_modules/lucide-react/src/icons/triangle-alert.ts","../../../../../node_modules/estree-util-is-identifier-name/lib/index.js","../../../../../node_modules/hast-util-whitespace/lib/index.js","../../../../../node_modules/property-information/lib/util/types.js","../../../../../node_modules/mdast-util-to-string/lib/index.js","../../../../../node_modules/micromark/lib/preprocess.js","../../../../../node_modules/trim-lines/index.js","../../../../../node_modules/devlop/lib/default.js","../../../../../node_modules/%40ungap/structured-clone/esm/types.js","../../../../../node_modules/unified/lib/callable-instance.js","../../../../../node_modules/is-plain-obj/index.js","../../../../../node_modules/inline-style-parser/index.js","../../../../../node_modules/decode-named-character-reference/index.js","../../../../../node_modules/micromark-util-decode-string/index.js","../../../../../web/features/bridge/ui/markdown.tsx","../../../../../node_modules/property-information/lib/xlink.js","../../../../../node_modules/property-information/lib/xml.js","../../../../../node_modules/property-information/lib/aria.js","../../../../../node_modules/property-information/lib/xmlns.js","../../../../../node_modules/property-information/lib/util/defined-info.js","../../../../../node_modules/property-information/lib/util/schema.js","../../../../../node_modules/character-entities/index.js","../../../../../node_modules/property-information/lib/util/info.js","../../../../../node_modules/%40ungap/structured-clone/esm/serialize.js","../../../../../node_modules/%40ungap/structured-clone/esm/deserialize.js","../../../../../node_modules/bail/index.js","../../../../../node_modules/property-information/lib/find.js","../../../../../node_modules/unist-util-visit-parents/lib/color.node.js","../../../../../node_modules/property-information/lib/util/case-sensitive-transform.js","../../../../../node_modules/micromark/lib/constructs.js","../../../../../node_modules/space-separated-tokens/index.js","../../../../../node_modules/html-url-attributes/lib/index.js","../../../../../node_modules/property-information/lib/normalize.js","../../../../../node_modules/property-information/lib/svg.js","../../../../../node_modules/property-information/lib/util/case-insensitive-transform.js","../../../../../node_modules/micromark-util-combine-extensions/index.js","../../../../../node_modules/property-information/lib/html.js","../../../../../node_modules/property-information/lib/hast-to-react.js","../../../../../node_modules/property-information/index.js","../../../../../node_modules/micromark-core-commonmark/lib/autolink.js","../../../../../node_modules/micromark-core-commonmark/lib/partial-non-lazy-continuation.js","../../../../../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../../../../../node_modules/micromark-core-commonmark/lib/character-escape.js","../../../../../node_modules/micromark-core-commonmark/lib/blank-line.js","../../../../../node_modules/micromark/lib/initialize/text.js","../../../../../node_modules/micromark-core-commonmark/lib/code-indented.js","../../../../../node_modules/micromark-core-commonmark/lib/line-ending.js","../../../../../node_modules/micromark/lib/postprocess.js","../../../../../node_modules/micromark-core-commonmark/lib/character-reference.js","../../../../../node_modules/micromark-core-commonmark/lib/html-text.js","../../../../../node_modules/micromark-core-commonmark/lib/label-start-image.js","../../../../../node_modules/micromark-core-commonmark/lib/label-start-link.js","../../../../../node_modules/micromark/lib/initialize/flow.js","../../../../../node_modules/micromark-core-commonmark/lib/thematic-break.js","../../../../../node_modules/micromark-core-commonmark/lib/block-quote.js","../../../../../node_modules/micromark/lib/initialize/content.js","../../../../../node_modules/property-information/lib/util/merge.js","../../../../../node_modules/micromark-core-commonmark/lib/code-text.js","../../../../../node_modules/micromark-util-decode-numeric-character-reference/index.js","../../../../../node_modules/micromark/lib/parse.js","../../../../../node_modules/vfile/lib/index.js","../../../../../node_modules/micromark-core-commonmark/lib/heading-atx.js","../../../../../node_modules/micromark-util-html-tag-name/index.js","../../../../../node_modules/micromark-core-commonmark/lib/setext-underline.js","../../../../../node_modules/micromark-core-commonmark/lib/code-fenced.js","../../../../../node_modules/%40ungap/structured-clone/esm/index.js","../../../../../node_modules/style-to-object/src/index.ts","../../../../../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/break.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/code.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../../../../../node_modules/mdast-util-to-hast/lib/revert.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/list.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/root.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../../../../../node_modules/micromark-util-resolve-all/index.js","../../../../../node_modules/micromark-core-commonmark/lib/definition.js","../../../../../node_modules/micromark-core-commonmark/lib/html-flow.js","../../../../../node_modules/micromark-core-commonmark/lib/list.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/html.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/link.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../../../../../node_modules/micromark-core-commonmark/lib/content.js","../../../../../node_modules/micromark-core-commonmark/lib/attention.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/image.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/text.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/table.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../../../../../node_modules/micromark-util-subtokenize/index.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../../../../../node_modules/micromark-util-normalize-identifier/index.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../../../../../node_modules/micromark-util-classify-character/index.js","../../../../../node_modules/vfile/lib/minurl.shared.js","../../../../../node_modules/hast-util-to-jsx-runtime/lib/index.js","../../../../../node_modules/micromark-util-character/index.js","../../../../../node_modules/micromark-core-commonmark/lib/label-end.js","../../../../../node_modules/remark-parse/lib/index.js","../../../../../node_modules/comma-separated-tokens/index.js","../../../../../node_modules/micromark-util-chunked/index.js","../../../../../node_modules/micromark/lib/initialize/document.js","../../../../../node_modules/micromark-factory-whitespace/index.js","../../../../../node_modules/micromark-util-sanitize-uri/index.js","../../../../../node_modules/micromark-util-edit-map/index.js","../../../../../node_modules/vfile-message/lib/index.js","../../../../../node_modules/unist-util-position/lib/index.js","../../../../../node_modules/micromark-util-subtokenize/lib/splice-buffer.js","../../../../../node_modules/mdast-util-to-hast/lib/handlers/index.js","../../../../../node_modules/unist-util-stringify-position/lib/index.js","../../../../../node_modules/trough/lib/index.js","../../../../../node_modules/property-information/lib/util/create.js","../../../../../node_modules/micromark-factory-space/index.js","../../../../../node_modules/micromark-factory-label/index.js","../../../../../node_modules/micromark-factory-title/index.js","../../../../../node_modules/micromark-factory-destination/index.js","../../../../../node_modules/mdast-util-from-markdown/lib/index.js","../../../../../node_modules/micromark/lib/create-tokenizer.js","../../../../../node_modules/unist-util-is/lib/index.js","../../../../../node_modules/mdast-util-to-hast/lib/footer.js","../../../../../node_modules/mdast-util-to-hast/lib/index.js","../../../../../node_modules/react-markdown/lib/index.js","../../../../../node_modules/remark-rehype/lib/index.js","../../../../../node_modules/mdast-util-to-hast/lib/state.js","../../../../../node_modules/unist-util-visit/lib/index.js","../../../../../node_modules/unist-util-visit-parents/lib/index.js","../../../../../node_modules/unified/lib/index.js","../../../../../web/features/bridge/ui/stale-icon.tsx"],"sourcesContent":["'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'ban',\n size: 24,\n node: [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M4.929 4.929 19.07 19.071', key: '196cmz' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Ban\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNNC45MjkgNC45MjkgMTkuMDcgMTkuMDcxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ban\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Ban = createLucideIcon(__iconData);\n\nexport default Ban;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'circle-alert',\n size: 24,\n node: [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['line', { x1: '12', x2: '12', y1: '8', y2: '12', key: '1pkeuh' }],\n ['line', { x1: '12', x2: '12.01', y1: '16', y2: '16', key: '4dfq90' }],\n ],\n aliases: ['alert-circle'],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name CircleAlert\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMiIgeTE9IjgiIHkyPSIxMiIgLz4KICA8bGluZSB4MT0iMTIiIHgyPSIxMi4wMSIgeTE9IjE2IiB5Mj0iMTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-alert\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleAlert = createLucideIcon(__iconData);\n\nexport default CircleAlert;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'circle-x',\n size: 24,\n node: [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'm15 9-6 6', key: '1uzhvr' }],\n ['path', { d: 'm9 9 6 6', key: 'z0biqf' }],\n ],\n aliases: ['x-circle'],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name CircleX\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJtMTUgOS02IDYiIC8+CiAgPHBhdGggZD0ibTkgOSA2IDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/circle-x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleX = createLucideIcon(__iconData);\n\nexport default CircleX;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'external-link',\n size: 24,\n node: [\n ['path', { d: 'M15 3h6v6', key: '1q9fwt' }],\n ['path', { d: 'M10 14 21 3', key: 'gplh6r' }],\n ['path', { d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6', key: 'a6xqqp' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name ExternalLink\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgM2g2djYiIC8+CiAgPHBhdGggZD0iTTEwIDE0IDIxIDMiIC8+CiAgPHBhdGggZD0iTTE4IDEzdjZhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yaDYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/external-link\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ExternalLink = createLucideIcon(__iconData);\n\nexport default ExternalLink;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'info',\n size: 24,\n node: [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M12 16v-4', key: '1dtifu' }],\n ['path', { d: 'M12 8h.01', key: 'e9boi3' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Info\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KICA8cGF0aCBkPSJNMTIgMTZ2LTQiIC8+CiAgPHBhdGggZD0iTTEyIDhoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/info\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Info = createLucideIcon(__iconData);\n\nexport default Info;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'eye',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0',\n key: '1nclc0',\n },\n ],\n ['circle', { cx: '12', cy: '12', r: '3', key: '1v7zrd' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Eye\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMi4wNjIgMTIuMzQ4YTEgMSAwIDAgMSAwLS42OTYgMTAuNzUgMTAuNzUgMCAwIDEgMTkuODc2IDAgMSAxIDAgMCAxIDAgLjY5NiAxMC43NSAxMC43NSAwIDAgMS0xOS44NzYgMCIgLz4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/eye\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Eye = createLucideIcon(__iconData);\n\nexport default Eye;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'replace',\n size: 24,\n node: [\n ['path', { d: 'M14 4a1 1 0 0 1 1-1', key: 'dhj8ez' }],\n ['path', { d: 'M15 10a1 1 0 0 1-1-1', key: '1mnyi5' }],\n ['path', { d: 'M21 4a1 1 0 0 0-1-1', key: 'sfs9ap' }],\n ['path', { d: 'M21 9a1 1 0 0 1-1 1', key: 'mp6qeo' }],\n ['path', { d: 'm3 7 3 3 3-3', key: 'x25e72' }],\n ['path', { d: 'M6 10V5a2 2 0 0 1 2-2h2', key: '15xut4' }],\n ['rect', { x: '3', y: '14', width: '7', height: '7', rx: '1', key: '1bkyp8' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Replace\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQgNGExIDEgMCAwIDEgMS0xIiAvPgogIDxwYXRoIGQ9Ik0xNSAxMGExIDEgMCAwIDEtMS0xIiAvPgogIDxwYXRoIGQ9Ik0yMSA0YTEgMSAwIDAgMC0xLTEiIC8+CiAgPHBhdGggZD0iTTIxIDlhMSAxIDAgMCAxLTEgMSIgLz4KICA8cGF0aCBkPSJtMyA3IDMgMyAzLTMiIC8+CiAgPHBhdGggZD0iTTYgMTBWNWEyIDIgMCAwIDEgMi0yaDIiIC8+CiAgPHJlY3QgeD0iMyIgeT0iMTQiIHdpZHRoPSI3IiBoZWlnaHQ9IjciIHJ4PSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/replace\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Replace = createLucideIcon(__iconData);\n\nexport default Replace;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'shopping-basket',\n size: 24,\n node: [\n ['path', { d: 'm15 11-1 9', key: '5wnq3a' }],\n ['path', { d: 'm19 11-4-7', key: 'cnml18' }],\n ['path', { d: 'M2 11h20', key: '3eubbj' }],\n ['path', { d: 'm3.5 11 1.6 7.4a2 2 0 0 0 2 1.6h9.8a2 2 0 0 0 2-1.6l1.7-7.4', key: 'yiazzp' }],\n ['path', { d: 'M4.5 15.5h15', key: '13mye1' }],\n ['path', { d: 'm5 11 4-7', key: '116ra9' }],\n ['path', { d: 'm9 11 1 9', key: '1ojof7' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name ShoppingBasket\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTEtMSA5IiAvPgogIDxwYXRoIGQ9Im0xOSAxMS00LTciIC8+CiAgPHBhdGggZD0iTTIgMTFoMjAiIC8+CiAgPHBhdGggZD0ibTMuNSAxMSAxLjYgNy40YTIgMiAwIDAgMCAyIDEuNmg5LjhhMiAyIDAgMCAwIDItMS42bDEuNy03LjQiIC8+CiAgPHBhdGggZD0iTTQuNSAxNS41aDE1IiAvPgogIDxwYXRoIGQ9Im01IDExIDQtNyIgLz4KICA8cGF0aCBkPSJtOSAxMSAxIDkiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/shopping-basket\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ShoppingBasket = createLucideIcon(__iconData);\n\nexport default ShoppingBasket;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'send',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z',\n key: '1ffxy3',\n },\n ],\n ['path', { d: 'm21.854 2.147-10.94 10.939', key: '12cjpa' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Send\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNTM2IDIxLjY4NmEuNS41IDAgMCAwIC45MzctLjAyNGw2LjUtMTlhLjQ5Ni40OTYgMCAwIDAtLjYzNS0uNjM1bC0xOSA2LjVhLjUuNSAwIDAgMC0uMDI0LjkzN2w3LjkzIDMuMThhMiAyIDAgMCAxIDEuMTEyIDEuMTF6IiAvPgogIDxwYXRoIGQ9Im0yMS44NTQgMi4xNDctMTAuOTQgMTAuOTM5IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/send\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Send = createLucideIcon(__iconData);\n\nexport default Send;\n","var _a;\nexport const $output = /*@__PURE__*/ Symbol(\"ZodOutput\");\nexport const $input = /*@__PURE__*/ Symbol(\"ZodInput\");\nexport class $ZodRegistry {\n constructor() {\n this._map = new WeakMap();\n this._idmap = new Map();\n }\n add(schema, ..._meta) {\n const meta = _meta[0];\n this._map.set(schema, meta);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n this._idmap.set(meta.id, schema);\n }\n return this;\n }\n clear() {\n this._map = new WeakMap();\n this._idmap = new Map();\n return this;\n }\n remove(schema) {\n const meta = this._map.get(schema);\n if (meta && typeof meta === \"object\" && \"id\" in meta) {\n this._idmap.delete(meta.id);\n }\n this._map.delete(schema);\n return this;\n }\n get(schema) {\n // return this._map.get(schema) as any;\n // inherit metadata\n const p = schema._zod.parent;\n if (p) {\n const pm = { ...(this.get(p) ?? {}) };\n delete pm.id; // do not inherit id\n const f = { ...pm, ...this._map.get(schema) };\n return Object.keys(f).length ? f : undefined;\n }\n return this._map.get(schema);\n }\n has(schema) {\n return this._map.has(schema);\n }\n}\n// registries\nexport function registry() {\n return new $ZodRegistry();\n}\n(_a = globalThis).__zod_globalRegistry ?? (_a.__zod_globalRegistry = registry());\nexport const globalRegistry = globalThis.__zod_globalRegistry;\n","var _a;\nimport { members as installMembers } from \"./util.js\";\n/** A special constant with type `never` */\nexport const NEVER = /*@__PURE__*/ Object.freeze({\n status: \"aborted\",\n});\n/* Shared descriptor for installing `_zod`; defineProperty reads it\n * synchronously, so reusing one object avoids a per-instance allocation. */\nconst _zodDesc = { value: undefined, enumerable: false };\n// null where suppressing the capture would be unrecoverable: `parse()` puts the frames back with `captureStackTrace`, so without it the throw would lose its stack. also latched to null once `stackTraceLimit` proves unassignable, which a realm can do at any point by hardening Error\nlet _E = \"captureStackTrace\" in Error ? Error : null;\n// v8 captures a stack trace inside the Error constructor, which dominates a failed parse; costs only the frames, and parse() restores those. the constructor must RUN: Object.create is cheaper and passes instanceof, but Error.isError and util.types.isNativeError check an internal slot\nfunction newError(Definition) {\n const E = _E;\n if (E) {\n const saved = E.stackTraceLimit;\n if (typeof saved === \"number\") {\n try {\n E.stackTraceLimit = 0;\n }\n catch {\n _E = null;\n return new Definition();\n }\n try {\n return new Definition();\n }\n finally {\n E.stackTraceLimit = saved;\n }\n }\n }\n return new Definition();\n}\nexport /*@__NO_SIDE_EFFECTS__*/ function $constructor(name, initializer, \n/** This trait's members, installed once on every prototype that composes it. They cannot be declared in the initializer above: that runs per instance, and the prototype is shared. */\nproto, params) {\n // Prototype for this constructor's `_zod` internals. Lazily-derived fields (`values`, `pattern`, `optin`, …) install here once rather than as an accessor on every instance.\n const zodProto = {};\n // Assigning the fields in the constructor body is what gives instances in-object slots; building the object literally and reparenting it costs a second allocation and a generic property copy.\n function Internals(def) {\n this.def = def;\n this.constr = _;\n this.traits = new Set();\n }\n Internals.prototype = zodProto;\n const protoMembers = proto;\n // One trait's members land on every prototype whose chain composes it, so the answer is per prototype rather than per trait.\n const initialized = protoMembers && new WeakSet();\n function init(inst, def) {\n if (!inst._zod) {\n _zodDesc.value = new Internals(def);\n try {\n Object.defineProperty(inst, \"_zod\", _zodDesc);\n }\n finally {\n // Cleared even on throw, so the shared descriptor never leaks one instance's internals into the next.\n _zodDesc.value = undefined;\n }\n }\n else if (inst._zod.traits.has(name)) {\n return;\n }\n inst._zod.traits.add(name);\n initializer(inst, def);\n if (initialized) {\n // `super(def)` from a user subclass gives `this` a prototype the subclass owns, and installing there would overwrite whatever the subclass declared. `constr` built the instance, so its prototype is the one below the subclass's that should carry the members. A receiver whose chain never reaches that prototype installs on its own, which for a plain object handed straight to `init` means `Object.prototype` — unchanged from before.\n const own = Object.getPrototypeOf(inst);\n const ctorProto = inst._zod.constr.prototype;\n let up = own;\n while (up && up !== ctorProto)\n up = Object.getPrototypeOf(up);\n const target = up ?? own;\n if (!initialized.has(target)) {\n initialized.add(target);\n installMembers(target, protoMembers);\n }\n }\n // support prototype modifications; for-in avoids the array allocation of Object.keys on the (usually empty) prototype\n const proto = _.prototype;\n for (const k in proto) {\n if (!Object.prototype.hasOwnProperty.call(proto, k))\n continue;\n if (!(k in inst)) {\n inst[k] = proto[k].bind(inst);\n }\n }\n }\n // doesn't work if Parent has a constructor with arguments\n const Parent = params?.Parent ?? Object;\n class Definition extends Parent {\n }\n Object.defineProperty(Definition, \"name\", { value: name });\n function _(def) {\n const inst = params?.Parent ? newError(Definition) : this;\n init(inst, def);\n const deferred = inst._zod.deferred;\n if (deferred) {\n for (const fn of deferred) {\n fn();\n }\n // Released: initializers run once, and the list would otherwise be retained for the schema's lifetime.\n inst._zod.deferred = undefined;\n }\n // Global post-processor hook. Internal: installed by `import \"zod/compile\"` to enable AOT compilation for every constructed schema. Runs last, once the instance is fully built, because it hands the instance to compile(). The post-processor is expected to be reentrancy-guarded by its own implementation.\n const pp = globalThis.__zod_globalConfig?.postProcessor;\n if (pp)\n pp(inst);\n return inst;\n }\n Object.defineProperty(_, \"init\", { value: init });\n Object.defineProperty(_, Symbol.hasInstance, {\n value: (inst) => {\n if (params?.Parent && inst instanceof params.Parent)\n return true;\n return inst?._zod?.traits?.has(name);\n },\n });\n Object.defineProperty(_, \"name\", { value: name });\n return _;\n}\n////////////////////////////// UTILITIES ///////////////////////////////////////\nexport const $brand = /*@__PURE__*/ Symbol(\"zod_brand\");\nexport class $ZodAsyncError extends Error {\n constructor() {\n super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`);\n }\n}\nexport class $ZodEncodeError extends Error {\n constructor(name) {\n super(`Encountered unidirectional transform during encode: ${name}`);\n this.name = \"ZodEncodeError\";\n }\n}\n(_a = globalThis).__zod_globalConfig ?? (_a.__zod_globalConfig = {});\nexport const globalConfig = globalThis.__zod_globalConfig;\nexport function config(newConfig) {\n if (newConfig)\n Object.assign(globalConfig, newConfig);\n return globalConfig;\n}\n","export class Doc {\n constructor(args = [], closed = {}) {\n this.content = [];\n this.indent = 0;\n this.args = args;\n this.closed = closed;\n }\n // the compiler catches a child's throw and keeps writing into this doc, so the indent has to unwind with it\n indented(fn) {\n this.indent += 1;\n try {\n fn(this);\n }\n finally {\n this.indent -= 1;\n }\n }\n write(arg) {\n if (typeof arg === \"function\") {\n arg(this, { execution: \"sync\" });\n arg(this, { execution: \"async\" });\n return;\n }\n const content = arg;\n const lines = content.split(\"\\n\").filter((x) => x);\n const minIndent = Math.min(...lines.map((x) => x.length - x.trimStart().length));\n const dedented = lines.map((x) => x.slice(minIndent)).map((x) => \" \".repeat(this.indent * 2) + x);\n for (const line of dedented) {\n this.content.push(line);\n }\n }\n compile() {\n const F = Function;\n const content = this?.content ?? [``];\n const factory = new F(...Object.keys(this.closed), `return function (${this.args.join(\", \")}) {\\n${content.join(\"\\n\")}\\n};`);\n return factory(...Object.values(this.closed));\n }\n}\n","export const version = {\n major: 4,\n minor: 6,\n patch: 7,\n};\n","import * as util from \"../core/util.js\";\nconst error = () => {\n const Sizable = {\n string: { unit: \"characters\", verb: \"to have\" },\n file: { unit: \"bytes\", verb: \"to have\" },\n array: { unit: \"items\", verb: \"to have\" },\n set: { unit: \"items\", verb: \"to have\" },\n map: { unit: \"entries\", verb: \"to have\" },\n };\n function getSizing(origin) {\n return Sizable[origin] ?? null;\n }\n const FormatDictionary = {\n regex: \"input\",\n email: \"email address\",\n url: \"URL\",\n emoji: \"emoji\",\n uuid: \"UUID\",\n uuidv4: \"UUIDv4\",\n uuidv6: \"UUIDv6\",\n nanoid: \"nanoid\",\n guid: \"GUID\",\n cuid: \"cuid\",\n cuid2: \"cuid2\",\n ulid: \"ULID\",\n xid: \"XID\",\n ksuid: \"KSUID\",\n datetime: \"ISO datetime\",\n date: \"ISO date\",\n time: \"ISO time\",\n duration: \"ISO duration\",\n ipv4: \"IPv4 address\",\n ipv6: \"IPv6 address\",\n mac: \"MAC address\",\n cidrv4: \"IPv4 range\",\n cidrv6: \"IPv6 range\",\n base64: \"base64-encoded string\",\n base64url: \"base64url-encoded string\",\n json_string: \"JSON string\",\n e164: \"E.164 number\",\n currency_code: \"currency code\",\n credit_card: \"credit card number\",\n iban: \"IBAN\",\n jwt: \"JWT\",\n template_literal: \"input\",\n };\n // type names: missing keys = do not translate (use raw value via ?? fallback)\n const TypeDictionary = {\n // Compatibility: \"nan\" -> \"NaN\" for display\n nan: \"NaN\",\n // All other type names omitted - they fall back to raw values via ?? operator\n };\n function getTypeName(type, input) {\n if (type === \"number\" && typeof input === \"number\" && !Number.isFinite(input)) {\n return String(input);\n }\n return TypeDictionary[type] ?? type;\n }\n return (issue) => {\n switch (issue.code) {\n case \"invalid_type\": {\n const expected = getTypeName(issue.expected);\n const receivedType = util.parsedType(issue.input);\n const received = getTypeName(receivedType, issue.input);\n return `Invalid input: expected ${expected}, received ${received}`;\n }\n case \"invalid_value\":\n if (issue.values.length === 1)\n return `Invalid input: expected ${util.stringifyPrimitive(issue.values[0])}`;\n return `Invalid option: expected one of ${util.joinValues(issue.values, \"|\")}`;\n case \"too_big\": {\n const adj = issue.exact ? \"exactly \" : issue.inclusive ? \"<=\" : \"<\";\n const sizing = getSizing(issue.origin);\n if (sizing)\n return `Too big: expected ${issue.origin ?? \"value\"} to have ${adj}${issue.maximum.toString()} ${sizing.unit ?? \"elements\"}`;\n return `Too big: expected ${issue.origin ?? \"value\"} to be ${adj}${issue.maximum.toString()}`;\n }\n case \"too_small\": {\n const adj = issue.exact ? \"exactly \" : issue.inclusive ? \">=\" : \">\";\n const sizing = getSizing(issue.origin);\n if (sizing) {\n return `Too small: expected ${issue.origin} to have ${adj}${issue.minimum.toString()} ${sizing.unit}`;\n }\n return `Too small: expected ${issue.origin} to be ${adj}${issue.minimum.toString()}`;\n }\n case \"invalid_format\": {\n const _issue = issue;\n if (_issue.format === \"starts_with\") {\n return `Invalid string: must start with \"${_issue.prefix}\"`;\n }\n if (_issue.format === \"ends_with\")\n return `Invalid string: must end with \"${_issue.suffix}\"`;\n if (_issue.format === \"includes\")\n return `Invalid string: must include \"${_issue.includes}\"`;\n if (_issue.format === \"regex\")\n return `Invalid string: must match pattern ${_issue.pattern}`;\n return `Invalid ${FormatDictionary[_issue.format] ?? issue.format}`;\n }\n case \"not_multiple_of\":\n return `Invalid number: must be a multiple of ${issue.divisor}`;\n case \"unrecognized_keys\":\n return `Unrecognized key${issue.keys.length > 1 ? \"s\" : \"\"}: ${util.joinValues(issue.keys, \", \")}`;\n case \"invalid_key\":\n return `Invalid key in ${issue.origin}`;\n case \"invalid_union\":\n if (issue.options && Array.isArray(issue.options) && issue.options.length > 0) {\n const opts = issue.options.map((o) => `'${o}'`).join(\" | \");\n return `Invalid discriminator value. Expected ${opts}`;\n }\n if (issue.inclusive === false) {\n return \"Invalid input: more than one option matched\";\n }\n return \"Invalid input\";\n case \"invalid_element\":\n return `Invalid value in ${issue.origin}`;\n default:\n return `Invalid input`;\n }\n };\n};\nexport default function () {\n return {\n localeError: error(),\n };\n}\n","import * as util from \"./util.js\";\nexport class $ZodCyclicError extends Error {\n constructor() {\n super(`Cannot parse a reference cycle that closes through a transform`);\n this.name = \"ZodCyclicError\";\n }\n}\n/** Keyed off the context object every schema in one parse call already shares. */\nconst STATE = \"~memo\";\nconst NO_ISSUES = [];\n// a value a cycle can close through\nfunction isRef(value) {\n return value !== null && typeof value === \"object\";\n}\n// Receivers prefix paths in place, so the cache and every hand-out need their own copies.\nfunction cloneIssues(issues) {\n return issues.map((iss) => (iss.path ? { ...iss, path: iss.path.slice() } : { ...iss }));\n}\nconst recursive = /*@__PURE__*/ new WeakMap();\n/** What the walk established, in order of certainty: ordered so the strongest answer among children wins. */\nconst NONE = 0;\nconst ASSUMED = 1;\nconst PROVEN = 2;\n/** Whether this schema's subtree contains a cycle, so one parse can re-enter it. */\nfunction isRecursive(inst, stack, resolve) {\n const cached = recursive.get(inst);\n if (cached !== undefined)\n return cached ? PROVEN : NONE;\n // Relative to the walk in progress, so not cached.\n if (stack.has(inst))\n return PROVEN;\n stack.add(inst);\n let result = NONE;\n const check = (child) => {\n if (result !== PROVEN && child?._zod) {\n const answer = isRecursive(child, stack, resolve);\n if (answer > result)\n result = answer;\n }\n };\n // `Reflect.ownKeys` rather than `Object.keys`, so a cycle through a declared symbol key is still seen\n const shape = (sh, spread) => {\n let answer = NONE;\n for (const key of Reflect.ownKeys(sh)) {\n const desc = Object.getOwnPropertyDescriptor(sh, key);\n // an object resolves its shape by spread, so a key it does not enumerate is never parsed; `z.properties` reads every own key and so keeps them all\n if (spread && !desc.enumerable)\n continue;\n // resolving runs user code, and a factory mints a fresh subtree per read, so an edge the walk can't follow counts as a cycle\n const child = desc.get ? ASSUMED : desc.value?._zod ? isRecursive(desc.value, stack, resolve) : NONE;\n if (child > answer)\n answer = child;\n }\n return answer;\n };\n const merge = (answer) => {\n if (answer > result)\n result = answer;\n };\n const def = inst._zod.def;\n const kind = def.type;\n switch (kind) {\n case \"object\": {\n const raw = util.rawShape(def);\n // a def with no raw shape answers `shape` from an accessor of its own, and running that can mint a whole fresh subtree\n merge(raw ? shape(raw, true) : ASSUMED);\n check(def.catchall);\n break;\n }\n case \"array\":\n check(def.element);\n break;\n case \"tuple\":\n for (const el of def.items)\n check(el);\n check(def.rest);\n break;\n case \"record\":\n case \"map\":\n check(def.keyType);\n check(def.valueType);\n break;\n case \"set\":\n check(def.valueType);\n break;\n case \"union\":\n for (const el of def.options)\n check(el);\n break;\n case \"intersection\":\n check(def.left);\n check(def.right);\n break;\n case \"optional\":\n case \"nullable\":\n case \"default\":\n case \"prefault\":\n case \"catch\":\n case \"readonly\":\n case \"nonoptional\":\n case \"promise\":\n case \"success\":\n check(def.innerType);\n break;\n case \"pipe\":\n check(def.in);\n check(def.out);\n break;\n case \"function\":\n check(def.input);\n check(def.output);\n break;\n // `$ZodLazy` caches its inner on the def, so a resolved edge is followed exactly\n case \"lazy\": {\n const inner = def._cachedInner ?? (resolve ? inst._zod.innerType : undefined);\n // walked with resolution off: one hop sees past the deferral, and a lazy that yields only another unresolved lazy is generative, so it stops there\n merge(inner ? isRecursive(inner, stack, false) : ASSUMED);\n break;\n }\n // a leaf by choice: `parts` are regex fragments, not data positions\n case \"template_literal\":\n // leaves\n case \"string\":\n case \"number\":\n case \"int\":\n case \"boolean\":\n case \"bigint\":\n case \"symbol\":\n case \"undefined\":\n case \"null\":\n case \"void\":\n case \"never\":\n case \"any\":\n case \"unknown\":\n case \"date\":\n case \"nan\":\n case \"enum\":\n case \"literal\":\n case \"file\":\n case \"transform\":\n case \"custom\":\n break;\n default: {\n // a new built-in kind becomes a compile error here\n kind;\n // a user-defined kind can still hold children, and only its author knows where, so fall back to scanning the def — skipping accessors, since reading one can run user code\n for (const key in def) {\n const desc = Object.getOwnPropertyDescriptor(def, key);\n if (!desc || desc.get)\n continue;\n const value = desc.value;\n if (!value || typeof value !== \"object\")\n continue;\n if (value._zod)\n check(value);\n else if (Array.isArray(value))\n for (const el of value)\n check(el);\n }\n }\n }\n stack.delete(inst);\n return settle(inst, result);\n}\n/** An assumed answer must not outlive the resolution that settles it, so only a certain one is cached. */\nfunction settle(inst, answer) {\n if (answer !== ASSUMED)\n recursive.set(inst, answer === PROVEN);\n return answer;\n}\n/**\n * Whether one parse can re-enter this schema, i.e. its subtree contains a cycle.\n * Exported for `z.compile`, which refuses to compile such a schema: cycle\n * breaking is driven from here off state keyed on the parse context, and a\n * generated fast path has no context to key on.\n */\nexport function isRecursiveSchema(inst) {\n // z.compile never parses, so nothing would ever resolve a lazy for it; it runs once and already treats a throw here as recursive\n return isRecursive(inst, new Set(), true) !== NONE;\n}\nfunction bucketFor(state, inst) {\n let bucket = state.buckets.get(inst);\n if (!bucket) {\n bucket = new WeakMap();\n state.buckets.set(inst, bucket);\n }\n return bucket;\n}\n// Set immediately before delegating to core and cleared immediately after, so `alloc` registers only for a visit this module is driving.\nlet handoff;\n// Allocated but unfinished entries. `alloc` and the matching pop both happen in the synchronous part of a parse, so they nest even when children are async, and one stack serves every schema.\nconst open = [];\nconst memo = {\n alloc(_inst, payload, empty) {\n const bucket = handoff;\n if (!bucket)\n return empty;\n handoff = undefined;\n const entry = { value: empty, issues: null };\n bucket.set(payload.value, entry);\n open.push(entry);\n return empty;\n },\n guard(inst) {\n var _a;\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n inst._zod.deferred.push(() => {\n const base = inst._zod.parse;\n const wrapped = (payload, ctx) => {\n // The value is a placeholder a back-edge is still waiting on, so the cycle closes through this transform. Its output can't exist in time to bind.\n if (ctx.direction !== \"backward\" && isBackEdge(ctx, payload.value))\n throw new $ZodCyclicError();\n return base(payload, ctx);\n };\n inst._zod.parse = wrapped;\n if (inst._zod.run === base)\n inst._zod.run = wrapped;\n });\n },\n attach(inst) {\n var _a;\n let isRecursiveInst;\n let rechecked = false;\n // a recursive schema is re-entered many times per parse and its bucket never changes\n let lastCtx;\n let lastBucket;\n // Wraps `parse` in a deferred so it sees the container's final parse. Core's own deferred copies `parse` into `run` when there are no checks, and it ran first, so `run` is patched to match; with checks, `run` reads `parse` dynamically.\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n inst._zod.deferred.push(() => {\n const base = inst._zod.parse;\n const wrapped = (payload, ctx) => {\n if (isRecursiveInst === undefined) {\n const walked = isRecursive(inst, new Set(), false);\n if (walked === NONE) {\n // Nothing here can ever fire, so take it back out.\n inst._zod.parse = base;\n if (inst._zod.run === wrapped)\n inst._zod.run = base;\n return base(payload, ctx);\n }\n // this parse resolves the deferred edges on its own path, so ask once more before latching\n if (walked === PROVEN || rechecked)\n isRecursiveInst = true;\n else\n rechecked = true;\n }\n const input = payload.value;\n if (!isRef(input))\n return base(payload, ctx);\n let state = ctx[STATE];\n if (!state) {\n state = { buckets: new WeakMap(), backEdges: undefined };\n ctx[STATE] = state;\n }\n let bucket;\n if (lastCtx === ctx) {\n bucket = lastBucket;\n }\n else {\n bucket = bucketFor(state, inst);\n lastCtx = ctx;\n lastBucket = bucket;\n }\n const hit = bucket.get(input);\n if (hit) {\n payload.value = hit.value;\n if (hit.issues) {\n if (hit.issues.length)\n payload.issues.push(...cloneIssues(hit.issues));\n }\n else {\n // Still being parsed: its own checks cover it, so skip them here.\n payload.memo = true;\n state.backEdges ?? (state.backEdges = new WeakSet());\n state.backEdges.add(hit.value);\n }\n return payload;\n }\n handoff = bucket;\n const depth = open.length;\n const result = base(payload, ctx);\n handoff = undefined;\n // A container that rejected its input outright allocated nothing.\n const entry = open.length > depth ? open.pop() : undefined;\n // Both paths written out so the sync one allocates no closure. It runs once per node, and capturing here cost more than everything else combined.\n if (result instanceof Promise) {\n return result.then((r) => {\n if (entry)\n entry.issues = r.issues.length ? cloneIssues(r.issues) : NO_ISSUES;\n return r;\n });\n }\n if (entry)\n entry.issues = result.issues.length ? cloneIssues(result.issues) : NO_ISSUES;\n return result;\n };\n inst._zod.parse = wrapped;\n if (inst._zod.run === base)\n inst._zod.run = wrapped;\n });\n },\n};\n/** The memoizer that gives containers cycle support. `zod` installs it by default; `zod/mini` opts in with `config({ memoizer: memoizer() })`. */\nexport function memoizer() {\n return memo;\n}\n/** Whether this value is a node a back-edge resolved to before it finished. */\nexport function isBackEdge(ctx, value) {\n const backEdges = ctx[STATE]?.backEdges;\n return backEdges !== undefined && isRef(value) && backEdges.has(value);\n}\n","unable to read source [project]/node_modules/@aeolus-fleet/common/src/rules/page-size.ts","unable to read source [project]/node_modules/@aeolus-fleet/common/src/schemas/content-type.ts","unable to read source [project]/node_modules/@aeolus-fleet/common/src/schemas/alert.ts","unable to read source [project]/node_modules/@aeolus-fleet/common/src/schemas/question.ts","unable to read source [project]/node_modules/@aeolus-fleet/common/src/schemas/page.ts","import { $constructor } from \"./core.js\";\nimport * as util from \"./util.js\";\n/* Computing the message eagerly is expensive (pretty-printed JSON of all\n * issues), so defer it until first read. The accessor functions and\n * descriptors are shared across instances to keep error construction\n * cheap; the computed message is cached on the internals object. The\n * setter preserves plain assignment semantics for consumers that\n * overwrite `message`. */\nfunction _getMessage() {\n const internals = this._zod;\n internals.message ?? (internals.message = JSON.stringify(internals.def, util.jsonStringifyReplacer, 2));\n return internals.message;\n}\nfunction _setMessage(value) {\n this._zod.message = value;\n}\nconst _messageDesc = {\n get: _getMessage,\n set: _setMessage,\n enumerable: true,\n configurable: true,\n};\nconst _issuesDesc = { value: undefined, enumerable: false };\n/* Prototypes that already carry the lazy `toString`. Seeded with the\n * intrinsics so that `init` on a foreign object — it accepts any object —\n * can never install an accessor onto a prototype we do not own. */\nconst _installedToString = /* @__PURE__ */ new WeakSet([Object.prototype, Error.prototype]);\nconst initializer = (inst, def) => {\n inst.name = \"$ZodError\";\n // `_zod` is already non-enumerable: $constructor's init defined it with this same descriptor\n _issuesDesc.value = def;\n Object.defineProperty(inst, \"issues\", _issuesDesc);\n // Clear the shared slot; a retained `value` pins the last error's issues.\n _issuesDesc.value = undefined;\n Object.defineProperty(inst, \"message\", _messageDesc);\n /* `toString` lives as a non-enumerable lazy getter on the shared\n * prototype; on first access it caches a per-instance closure so\n * detached usage still works. */\n const proto = Object.getPrototypeOf(inst);\n if (!_installedToString.has(proto)) {\n _installedToString.add(proto);\n Object.defineProperty(proto, \"toString\", {\n configurable: true,\n enumerable: false,\n get() {\n const value = () => this.message;\n Object.defineProperty(this, \"toString\", { value, configurable: true, writable: true });\n return value;\n },\n set(value) {\n Object.defineProperty(this, \"toString\", { value, configurable: true, writable: true });\n },\n });\n }\n};\nexport const $ZodError = $constructor(\"$ZodError\", initializer);\nexport const $ZodRealError = $constructor(\"$ZodError\", initializer, undefined, {\n Parent: Error,\n});\n/** Get-or-create `obj[key]` as an own data property. A path segment naming an inherited member\n * (\"toString\", \"constructor\") would otherwise read through to the prototype, and assigning\n * \"__proto__\" would hit the setter instead of creating a key. */\nfunction node(obj, key, make) {\n if (!Object.prototype.hasOwnProperty.call(obj, key)) {\n if (key === \"__proto__\") {\n Object.defineProperty(obj, key, { value: make(), writable: true, enumerable: true, configurable: true });\n }\n else {\n obj[key] = make();\n }\n }\n return obj[key];\n}\nexport function flattenError(error, mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of error.issues) {\n if (sub.path.length > 0) {\n node(fieldErrors, sub.path[0], () => []).push(mapper(sub));\n }\n else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n}\nexport function formatError(error, mapper = (issue) => issue.message) {\n const fieldErrors = { _errors: [] };\n const processError = (error, path = []) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n issue.errors.map((issues) => processError({ issues }, [...path, ...issue.path]));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues }, [...path, ...issue.path]);\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues }, [...path, ...issue.path]);\n }\n else {\n const fullpath = [...path, ...issue.path];\n if (fullpath.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n }\n else {\n let curr = fieldErrors;\n let i = 0;\n while (i < fullpath.length) {\n const el = fullpath[i];\n const terminal = i === fullpath.length - 1;\n // `_errors` is reserved by this legacy format, so merge a matching path segment into the current node instead of treating its array as a child.\n if (el === \"_errors\") {\n if (terminal)\n curr._errors.push(mapper(issue));\n i++;\n continue;\n }\n // A path element may collide with an inherited property name such as\n // \"__proto__\" or \"constructor\". Truthiness checks read the prototype\n // (so no node is created, then ._errors.push throws), and bracket\n // assignment of \"__proto__\" hits the setter instead of creating an\n // own key. Guard the read with hasOwnProperty and create the node\n // with defineProperty so any path element becomes a real own key.\n if (!Object.prototype.hasOwnProperty.call(curr, el)) {\n Object.defineProperty(curr, el, {\n value: { _errors: [] },\n enumerable: true,\n writable: true,\n configurable: true,\n });\n }\n const node = curr[el];\n if (terminal) {\n node._errors.push(mapper(issue));\n }\n curr = node;\n i++;\n }\n }\n }\n }\n };\n processError(error);\n return fieldErrors;\n}\nexport function treeifyError(error, mapper = (issue) => issue.message) {\n const result = { errors: [] };\n const processError = (error, path = []) => {\n var _a;\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\" && issue.errors.length) {\n // regular union error\n issue.errors.map((issues) => processError({ issues }, [...path, ...issue.path]));\n }\n else if (issue.code === \"invalid_key\") {\n processError({ issues: issue.issues }, [...path, ...issue.path]);\n }\n else if (issue.code === \"invalid_element\") {\n processError({ issues: issue.issues }, [...path, ...issue.path]);\n }\n else {\n const fullpath = [...path, ...issue.path];\n if (fullpath.length === 0) {\n result.errors.push(mapper(issue));\n continue;\n }\n let curr = result;\n let i = 0;\n while (i < fullpath.length) {\n const el = fullpath[i];\n const terminal = i === fullpath.length - 1;\n if (typeof el === \"string\") {\n curr.properties ?? (curr.properties = {});\n // el may collide with an inherited property name (\"__proto__\",\n // \"constructor\", ...); ??= reads the prototype so the node is never\n // created and curr.errors.push throws. Guard with hasOwnProperty and\n // create the node with defineProperty so \"__proto__\" becomes a real\n // own key rather than invoking the prototype setter.\n if (!Object.prototype.hasOwnProperty.call(curr.properties, el)) {\n Object.defineProperty(curr.properties, el, {\n value: { errors: [] },\n enumerable: true,\n writable: true,\n configurable: true,\n });\n }\n curr = curr.properties[el];\n }\n else {\n curr.items ?? (curr.items = []);\n (_a = curr.items)[el] ?? (_a[el] = { errors: [] });\n curr = curr.items[el];\n }\n if (terminal) {\n curr.errors.push(mapper(issue));\n }\n i++;\n }\n }\n }\n };\n processError(error);\n return result;\n}\n/** Format a ZodError as a human-readable string in the following form.\n *\n * From\n *\n * ```ts\n * ZodError {\n * issues: [\n * {\n * expected: 'string',\n * code: 'invalid_type',\n * path: [ 'username' ],\n * message: 'Invalid input: expected string'\n * },\n * {\n * expected: 'number',\n * code: 'invalid_type',\n * path: [ 'favoriteNumbers', 1 ],\n * message: 'Invalid input: expected number'\n * }\n * ];\n * }\n * ```\n *\n * to\n *\n * ```\n * username\n * ✖ Expected number, received string at \"username\n * favoriteNumbers[0]\n * ✖ Invalid input: expected number\n * ```\n */\nexport function toDotPath(_path) {\n const segs = [];\n const path = _path.map((seg) => (typeof seg === \"object\" ? seg.key : seg));\n for (const seg of path) {\n if (typeof seg === \"number\")\n segs.push(`[${seg}]`);\n else if (typeof seg === \"symbol\")\n segs.push(`[${JSON.stringify(String(seg))}]`);\n else if (/[^\\w$]/.test(seg))\n segs.push(`[${JSON.stringify(seg)}]`);\n else {\n if (segs.length)\n segs.push(\".\");\n segs.push(seg);\n }\n }\n return segs.join(\"\");\n}\nexport function prettifyError(error) {\n const lines = [];\n // sort by path length\n const issues = [...error.issues].sort((a, b) => (a.path ?? []).length - (b.path ?? []).length);\n // Process each issue\n for (const issue of issues) {\n lines.push(`✖ ${issue.message}`);\n if (issue.path?.length)\n lines.push(` → at ${toDotPath(issue.path)}`);\n }\n // Convert Map to formatted string\n return lines.join(\"\\n\");\n}\n","import { globalRegistry } from \"./registries.js\";\nimport { assignProp } from \"./util.js\";\nfunction assignProps(target, ...sources) {\n for (const source of sources) {\n for (const key of Reflect.ownKeys(source)) {\n if (Object.prototype.propertyIsEnumerable.call(source, key)) {\n assignProp(target, key, source[key]);\n }\n }\n }\n return target;\n}\n// function initializeContext<T extends schemas.$ZodType>(inputs: JSONSchemaGeneratorParams<T>): ToJSONSchemaContext<T> {\n// return {\n// processor: inputs.processor,\n// metadataRegistry: inputs.metadata ?? globalRegistry,\n// target: inputs.target ?? \"draft-2020-12\",\n// unrepresentable: inputs.unrepresentable ?? \"throw\",\n// };\n// }\nexport function initializeContext(params) {\n // Normalize target: convert old non-hyphenated versions to hyphenated versions\n let target = params?.target ?? \"draft-2020-12\";\n if (target === \"draft-4\")\n target = \"draft-04\";\n if (target === \"draft-7\")\n target = \"draft-07\";\n return {\n processors: params.processors ?? {},\n metadataRegistry: params?.metadata ?? globalRegistry,\n target,\n unrepresentable: params?.unrepresentable ?? \"throw\",\n override: params?.override ?? (() => { }),\n io: params?.io ?? \"output\",\n counter: 0,\n seen: new Map(),\n sharedDefsExtractedFor: undefined,\n sharedEmitDoneFor: undefined,\n cycles: params?.cycles ?? \"ref\",\n reused: params?.reused ?? \"inline\",\n intersections: [],\n deferred: [],\n external: params?.external ?? undefined,\n };\n}\n/**\n * Applies the `unrepresentable` setting at a site that has no JSON Schema equivalent. Throws\n * `message` unless the setting (or the handler's return value) says otherwise. Returns `true` if a\n * custom JSON Schema was written into `json`, in which case the caller must not write its own.\n */\nexport function handleUnrepresentable(schema, ctx, json, params, message) {\n const result = typeof ctx.unrepresentable === \"function\"\n ? ctx.unrepresentable({ zodSchema: schema, path: params.path, message })\n : ctx.unrepresentable;\n if (result === \"any\")\n return false;\n if (result === undefined || result === \"throw\")\n throw new Error(message);\n Object.assign(json, result);\n return true;\n}\n// never rename this back to `process`: bundler polyfills inject a top-level `const process` that a lexical declaration of the same name collides with (#6397)\nexport function processSchema(schema, ctx, _params = { path: [], schemaPath: [] }) {\n var _a;\n const def = schema._zod.def;\n // check for schema in seens\n const seen = ctx.seen.get(schema);\n if (seen) {\n seen.count++;\n // check if cycle\n const isCycle = _params.schemaPath.includes(schema);\n if (isCycle) {\n seen.cycle = _params.path;\n }\n return seen.schema;\n }\n // initialize\n const result = { schema: {}, count: 1, cycle: undefined, path: _params.path };\n ctx.seen.set(schema, result);\n ctx.sharedDefsExtractedFor = undefined;\n ctx.sharedEmitDoneFor = undefined;\n // custom method overrides default behavior\n const overrideSchema = schema._zod.toJSONSchema?.();\n if (overrideSchema) {\n result.schema = overrideSchema;\n }\n else {\n const params = {\n ..._params,\n schemaPath: [..._params.schemaPath, schema],\n path: _params.path,\n };\n if (schema._zod.processJSONSchema) {\n schema._zod.processJSONSchema(ctx, result.schema, params);\n }\n else {\n const _json = result.schema;\n const processor = ctx.processors[def.type];\n if (!processor) {\n throw new Error(`[toJSONSchema]: Non-representable type encountered: ${def.type}`);\n }\n processor(schema, ctx, _json, params);\n }\n const parent = schema._zod.parent;\n if (parent) {\n // Also set ref if processor didn't (for inheritance)\n if (!result.ref)\n result.ref = parent;\n processSchema(parent, ctx, params);\n ctx.seen.get(parent).isParent = true;\n }\n }\n // metadata\n const meta = ctx.metadataRegistry.get(schema);\n if (meta)\n assignProps(result.schema, meta);\n if (ctx.io === \"input\" && isTransforming(schema)) {\n // examples/defaults only apply to output type of pipe\n delete result.schema.examples;\n delete result.schema.default;\n }\n // set prefault as default\n if (ctx.io === \"input\" && \"_prefault\" in result.schema)\n (_a = result.schema).default ?? (_a.default = result.schema._prefault);\n delete result.schema._prefault;\n // pulling fresh from ctx.seen in case it was overwritten\n const _result = ctx.seen.get(schema);\n return _result.schema;\n}\n/** @deprecated Renamed to `processSchema`. An export alias declares no binding, so it is safe to keep. */\nexport { processSchema as process };\n// Escape a reference token for use in a JSON Pointer fragment (RFC 6901): `~` becomes `~0` and `/` becomes `~1`. The `~` replacement must run first.\nfunction encodeJSONPointerSegment(segment) {\n return segment.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nexport function extractDefs(ctx, schema\n// params: EmitParams\n) {\n // iterate over seen map;\n const root = ctx.seen.get(schema);\n if (!root)\n throw new Error(\"Unprocessed schema. This is a bug in Zod.\");\n // With `external` set, every registered schema resolves through the external branch of `makeURI`, so the root branch below produces the same ref the external branch would — this pass is identical whichever schema it is called with, and only needs to run once.\n if (ctx.external && ctx.sharedDefsExtractedFor === ctx.external)\n return;\n // Track ids to detect duplicates across different schemas\n const idToSchema = new Map();\n for (const entry of ctx.seen.entries()) {\n const id = ctx.metadataRegistry.get(entry[0])?.id;\n if (id) {\n const existing = idToSchema.get(id);\n if (existing && existing !== entry[0]) {\n throw new Error(`Duplicate schema id \"${id}\" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);\n }\n idToSchema.set(id, entry[0]);\n }\n }\n // returns a ref to the schema defId will be empty if the ref points to an external schema (or #)\n const makeURI = (entry) => {\n // comparing the seen objects because sometimes multiple schemas map to the same seen object. e.g. lazy\n // external is configured\n const defsSegment = ctx.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n if (ctx.external) {\n const externalId = ctx.external.registry.get(entry[0])?.id; // ?? \"__shared\";// `__schema${ctx.counter++}`;\n // check if schema is in the external registry\n const uriGenerator = ctx.external.uri ?? ((id) => id);\n if (externalId) {\n return { ref: uriGenerator(externalId) };\n }\n // otherwise, add to __shared\n const id = entry[1].defId ?? entry[1].schema.id ?? `schema${ctx.counter++}`;\n entry[1].defId = id; // set defId so it will be reused if needed\n return { defId: id, ref: `${uriGenerator(\"__shared\")}#/${defsSegment}/${encodeJSONPointerSegment(id)}` };\n }\n const uriPrefix = `#`;\n const defUriPrefix = `${uriPrefix}/${defsSegment}/`;\n // an id-less root has nowhere to be extracted to, so it stays inline and self-references as `#`\n if (entry[1] === root && !entry[1].schema.id) {\n return { ref: uriPrefix };\n }\n // self-contained schema\n const defId = entry[1].schema.id ?? `__schema${ctx.counter++}`;\n return { defId, ref: defUriPrefix + encodeJSONPointerSegment(defId) };\n };\n // stored cached version in `def` property remove all properties, set $ref\n const extractToDef = (entry) => {\n // if the schema is already a reference, do not extract it\n if (entry[1].schema.$ref) {\n return;\n }\n const seen = entry[1];\n const { ref, defId } = makeURI(entry);\n seen.def = { ...seen.schema };\n // defId won't be set if the schema is a reference to an external schema or if the schema is the root schema\n if (defId)\n seen.defId = defId;\n // wipe away all properties except $ref\n const schema = seen.schema;\n for (const key in schema) {\n delete schema[key];\n }\n schema.$ref = ref;\n };\n // throw on cycles\n // break cycles\n if (ctx.cycles === \"throw\") {\n for (const entry of ctx.seen.entries()) {\n const seen = entry[1];\n if (seen.cycle) {\n throw new Error(\"Cycle detected: \" +\n `#/${seen.cycle?.join(\"/\")}/<root>` +\n '\\n\\nSet the `cycles` parameter to `\"ref\"` to resolve cyclical schemas with defs.');\n }\n }\n }\n // extract schemas into $defs\n for (const entry of ctx.seen.entries()) {\n const seen = entry[1];\n // convert root schema to # $ref\n if (schema === entry[0]) {\n extractToDef(entry); // this has special handling for the root schema\n continue;\n }\n // extract schemas that are in the external registry\n if (ctx.external) {\n const ext = ctx.external.registry.get(entry[0])?.id;\n if (schema !== entry[0] && ext) {\n extractToDef(entry);\n continue;\n }\n }\n // extract schemas with `id` meta\n const id = ctx.metadataRegistry.get(entry[0])?.id;\n if (id) {\n extractToDef(entry);\n continue;\n }\n // break cycles\n if (seen.cycle) {\n // any\n extractToDef(entry);\n continue;\n }\n // extract reused schemas\n if (seen.count > 1) {\n if (ctx.reused === \"ref\") {\n extractToDef(entry);\n }\n }\n }\n if (ctx.external)\n ctx.sharedDefsExtractedFor = ctx.external;\n}\n/** Rewrites `anyOf: [{type: \"a\"}, {type: \"b\"}]` to `type: [\"a\", \"b\"]`, which every JSON Schema draft treats as equivalent and most consumers render far better for the nullable case. Only branches that are a bare type assertion qualify — anything carrying a constraint, `$ref`, `const` or metadata is left alone. Runs after `flattenRef`, so a branch an override decorated or `$defs` extraction turned into a `$ref` is no longer bare and correctly stays in `anyOf`. `oneOf` is excluded: `integer` and `number` overlap, so \"exactly one\" and \"at least one\" are not the same there. OpenAPI 3.0 is excluded: its `type` must be a single string. */\nfunction compactTypeUnion(schema) {\n const options = schema.anyOf;\n if (!Array.isArray(options) || options.length === 0 || schema.type !== undefined)\n return;\n const types = [];\n for (const option of options) {\n if (!option || typeof option !== \"object\")\n return;\n // A branch that is itself a compactible union folds into this one — nested `anyOf` and a flat `type` array say the same thing. Compacting it first also makes the result independent of the order this pass walks the seen map in.\n compactTypeUnion(option);\n const keys = Object.keys(option);\n if (keys.length !== 1 || keys[0] !== \"type\")\n return;\n const type = option.type;\n for (const member of Array.isArray(type) ? type : [type]) {\n if (typeof member !== \"string\")\n return;\n if (!types.includes(member))\n types.push(member);\n }\n }\n delete schema.anyOf;\n // A `type` array must be non-empty and unique (metaschema); a single member is spelled as a bare string.\n schema.type = types.length === 1 ? types[0] : types;\n}\n/** Keywords `foldIntersection` knows how to combine. Anything else — `$ref`, `patternProperties`,\n * an annotation like `description` — makes a member unfoldable, so a constraint this does not\n * understand leaves the `allOf` alone instead of being silently dropped or misattributed. */\nconst FOLDABLE_KEYS = new Set([\"type\", \"properties\", \"required\", \"additionalProperties\"]);\nconst UNION_KEYS = [\"oneOf\", \"anyOf\"];\n/** A member's constraint on a key it does not declare itself. A `catchall` states one; `false`, an absent `additionalProperties`, and the empty schema a loose object emits state nothing. */\nfunction undeclaredConstraint(member) {\n const extra = member.additionalProperties;\n if (extra === undefined || extra === false || typeof extra !== \"object\" || extra === null)\n return null;\n return Object.keys(extra).length ? extra : null;\n}\n/** Combines object members into the single object they describe together, or returns `null` if any of them carries a keyword outside {@link FOLDABLE_KEYS}. */\nfunction foldObjects(members) {\n const objects = [];\n for (const member of members) {\n // A boolean subschema is legal JSON Schema and carries no keywords to fold.\n if (typeof member !== \"object\" || member.type !== \"object\")\n return null;\n for (const key in member) {\n if (!FOLDABLE_KEYS.has(key))\n return null;\n }\n objects.push(member);\n }\n const properties = {};\n const required = new Set();\n for (const object of objects) {\n for (const key in object.properties) {\n // `in` would report a `__proto__` key as already present via the prototype chain and skip it.\n if (Object.prototype.hasOwnProperty.call(properties, key))\n continue;\n // Every member constrains this key: the ones that declare it say how, and a `catchall` member constrains it too even though it does not name it. The key has to satisfy all of them, which is the same intersection one level down.\n const parts = [];\n for (const other of objects) {\n const part = other.properties?.[key] ?? undeclaredConstraint(other);\n if (part === null || part === undefined)\n continue;\n if (!parts.some((seen) => JSON.stringify(seen) === JSON.stringify(part)))\n parts.push(part);\n }\n const merged = parts.length === 1\n ? parts[0]\n : (foldObjects(parts) ?? { allOf: parts });\n assignProp(properties, key, merged);\n }\n for (const key of object.required ?? [])\n required.add(key);\n }\n const folded = { type: \"object\", properties };\n if (required.size)\n folded.required = [...required];\n // A key no member declares is rejected only when every member rejects it, so the fold is closed only when every member is. Otherwise it carries whatever the `catchall` members demand of such a key.\n if (objects.every((object) => object.additionalProperties === false)) {\n folded.additionalProperties = false;\n }\n else {\n const constraints = [];\n for (const object of objects) {\n const constraint = undeclaredConstraint(object);\n if (constraint && !constraints.some((seen) => JSON.stringify(seen) === JSON.stringify(constraint)))\n constraints.push(constraint);\n }\n if (constraints.length === 1)\n folded.additionalProperties = constraints[0];\n else if (constraints.length > 1)\n folded.additionalProperties = { allOf: constraints };\n }\n return folded;\n}\n/** `additionalProperties` in an `allOf` member sees only that member's own `properties`, so two\n * closed object members reject each other's keys and the schema validates nothing. Zod's parser\n * pools the key sets instead — `handleIntersectionResults` reports a key as unrecognized only when\n * *every* side rejects it — so the emitted schema has to pool them too, and folding the members\n * into one object is the encoding that says so on every target.\n *\n * This runs from `finalize`, after `extractDefs`, which is what keeps it clear of the `$ref`\n * machinery: a member extracted into `$defs` is already a `$ref` by now and declines to fold, so it\n * keeps its reference and its own closedness rather than being inlined as a stale copy. */\nfunction foldIntersection(json) {\n const allOf = json.allOf;\n if (!Array.isArray(allOf) || allOf.length < 2)\n return;\n // An `override` runs before this pass and may have written object keywords onto the intersection itself. Those are deliberate, so decline rather than overwrite them.\n for (const key of FOLDABLE_KEYS)\n if (key in json)\n return;\n // An intersection distributes over a union: `A & (X | Y)` is `(A & X) | (A & Y)`. Only the first union is distributed over; a second one stays among the members every branch folds against, where it fails the object check and declines the whole intersection rather than multiplying out.\n const unions = allOf.filter((m) => UNION_KEYS.some((k) => Array.isArray(m[k])));\n let folded = null;\n if (!unions.length) {\n folded = foldObjects(allOf);\n }\n else {\n const union = unions[0];\n const keyword = UNION_KEYS.find((k) => Array.isArray(union[k]));\n if (Object.keys(union).length !== 1)\n return;\n const rest = allOf.filter((m) => m !== union);\n const branches = union[keyword].map((branch) => foldObjects([...rest, branch]));\n if (branches.some((b) => !b))\n return;\n folded = { [keyword]: branches };\n }\n if (!folded)\n return;\n delete json.allOf;\n assignProps(json, folded);\n}\nexport function finalize(ctx, schema) {\n const root = ctx.seen.get(schema);\n if (!root)\n throw new Error(\"Unprocessed schema. This is a bug in Zod.\");\n // flatten refs - inherit properties from parent schemas\n const flattenRef = (zodSchema) => {\n const seen = ctx.seen.get(zodSchema);\n // already processed\n if (seen.ref === null)\n return;\n const schema = seen.def ?? seen.schema;\n const _cached = { ...schema };\n const ref = seen.ref;\n seen.ref = null; // prevent infinite recursion\n if (ref) {\n flattenRef(ref);\n const refSeen = ctx.seen.get(ref);\n const refSchema = refSeen.schema;\n // merge referenced schema into current\n if (refSchema.$ref && (ctx.target === \"draft-07\" || ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\")) {\n // older drafts can't combine $ref with other properties\n schema.allOf = schema.allOf ?? [];\n schema.allOf.push(refSchema);\n }\n else {\n assignProps(schema, refSchema);\n }\n // restore child's own properties (child wins)\n assignProps(schema, _cached);\n const isParentRef = zodSchema._zod.parent === ref;\n // For parent chain, child is a refinement - remove parent-only properties\n if (isParentRef) {\n for (const key in schema) {\n if (key === \"$ref\" || key === \"allOf\")\n continue;\n if (!(key in _cached)) {\n delete schema[key];\n }\n }\n }\n // When ref was extracted to $defs, remove properties that match the definition\n if (refSchema.$ref && refSeen.def) {\n for (const key in schema) {\n if (key === \"$ref\" || key === \"allOf\")\n continue;\n if (key in refSeen.def && JSON.stringify(schema[key]) === JSON.stringify(refSeen.def[key])) {\n delete schema[key];\n }\n }\n }\n }\n // If parent was extracted (has $ref), propagate $ref to this schema. This handles cases like: readonly().meta({id}).describe() where processor sets ref to innerType but parent should be referenced\n const parent = zodSchema._zod.parent;\n if (parent && parent !== ref) {\n // Ensure parent is processed first so its def has inherited properties\n flattenRef(parent);\n const parentSeen = ctx.seen.get(parent);\n if (parentSeen?.schema.$ref) {\n schema.$ref = parentSeen.schema.$ref;\n // De-duplicate with parent's definition\n if (parentSeen.def) {\n for (const key in schema) {\n if (key === \"$ref\" || key === \"allOf\")\n continue;\n if (key in parentSeen.def && JSON.stringify(schema[key]) === JSON.stringify(parentSeen.def[key])) {\n delete schema[key];\n }\n }\n }\n }\n }\n // execute overrides\n ctx.override({\n zodSchema: zodSchema,\n jsonSchema: schema,\n path: seen.path ?? [],\n });\n };\n // Flattening walks the whole map and clears each `ref` as it goes, so a second call over the same map is a no-op scan. Skip it outright once it has run for a registry conversion.\n if (!ctx.external || ctx.sharedEmitDoneFor !== ctx.external) {\n for (const entry of [...ctx.seen.entries()].reverse()) {\n flattenRef(entry[0]);\n }\n if (ctx.target !== \"openapi-3.0\") {\n for (const entry of ctx.seen.entries()) {\n compactTypeUnion(entry[1].def ?? entry[1].schema);\n }\n }\n for (const rewrite of ctx.deferred)\n rewrite();\n // After flattening, every member that was extracted is a `$ref`, so the fold sees the final shape. A schema that inherits an intersection — through `z.lazy`, or any `ref` chain — holds the same `allOf` array, so fold by array identity to catch every copy.\n if (ctx.intersections.length) {\n const carriers = new Map();\n for (const seen of ctx.seen.values()) {\n for (const json of [seen.schema, seen.def]) {\n const allOf = json?.allOf;\n if (!Array.isArray(allOf))\n continue;\n const existing = carriers.get(allOf);\n if (existing)\n existing.push(json);\n else\n carriers.set(allOf, [json]);\n }\n }\n for (const allOf of ctx.intersections) {\n for (const json of carriers.get(allOf) ?? [])\n foldIntersection(json);\n }\n }\n }\n const result = {};\n if (ctx.target === \"draft-2020-12\") {\n result.$schema = \"https://json-schema.org/draft/2020-12/schema\";\n }\n else if (ctx.target === \"draft-07\") {\n result.$schema = \"http://json-schema.org/draft-07/schema#\";\n }\n else if (ctx.target === \"draft-04\") {\n result.$schema = \"http://json-schema.org/draft-04/schema#\";\n }\n else if (ctx.target === \"openapi-3.0\") {\n // OpenAPI 3.0 schema objects should not include a $schema property\n }\n else {\n // Arbitrary string values are allowed but won't have a $schema property set\n }\n if (ctx.external?.uri) {\n const id = ctx.external.registry.get(schema)?.id;\n if (!id)\n throw new Error(\"Schema is missing an `id` property\");\n result.$id = ctx.external.uri(id);\n }\n // when the root was extracted into $defs, `root.schema` is the `$ref` wrapper and `root.def` is the body that now lives under $defs\n assignProps(result, root.defId ? root.schema : (root.def ?? root.schema));\n // The `id` in `.meta()` is a Zod-specific registration tag used to extract schemas into $defs — it is not user-facing JSON Schema metadata. Strip it from the output body where it would otherwise leak. The id is preserved implicitly via the $defs key (and via $ref paths).\n const rootMetaId = ctx.metadataRegistry.get(schema)?.id;\n if (rootMetaId !== undefined && result.id === rootMetaId)\n delete result.id;\n // build defs object. With `external`, `defs` is the shared object every schema writes into, so the same entries are reassigned on every call. Without it, `defs` is fresh per call and must be rebuilt.\n const defs = ctx.external?.defs ?? {};\n if (!ctx.external || ctx.sharedEmitDoneFor !== ctx.external) {\n for (const entry of ctx.seen.entries()) {\n const seen = entry[1];\n if (seen.def && seen.defId) {\n if (seen.def.id === seen.defId)\n delete seen.def.id;\n assignProp(defs, seen.defId, seen.def);\n }\n }\n }\n if (ctx.external)\n ctx.sharedEmitDoneFor = ctx.external;\n // set definitions in result\n if (ctx.external) {\n }\n else {\n if (Object.keys(defs).length > 0) {\n if (ctx.target === \"draft-2020-12\") {\n result.$defs = defs;\n }\n else {\n result.definitions = defs;\n }\n }\n }\n try {\n // this \"finalizes\" this schema and ensures all cycles are removed each call to finalize() is functionally independent though the seen map is shared\n const finalized = JSON.parse(JSON.stringify(result));\n Object.defineProperty(finalized, \"~standard\", {\n value: {\n ...schema[\"~standard\"],\n jsonSchema: {\n input: createStandardJSONSchemaMethod(schema, \"input\", ctx.processors),\n output: createStandardJSONSchemaMethod(schema, \"output\", ctx.processors),\n },\n },\n enumerable: false,\n writable: false,\n });\n return finalized;\n }\n catch (_err) {\n throw new Error(\"Error converting schema to JSON.\");\n }\n}\nfunction isTransforming(_schema, _ctx) {\n const ctx = _ctx ?? { seen: new Set() };\n if (ctx.seen.has(_schema))\n return false;\n ctx.seen.add(_schema);\n const def = _schema._zod.def;\n if (def.type === \"transform\")\n return true;\n if (def.type === \"array\")\n return isTransforming(def.element, ctx);\n if (def.type === \"set\")\n return isTransforming(def.valueType, ctx);\n if (def.type === \"lazy\")\n return isTransforming(def.getter(), ctx);\n if (def.type === \"promise\" ||\n def.type === \"optional\" ||\n def.type === \"nonoptional\" ||\n def.type === \"nullable\" ||\n def.type === \"readonly\" ||\n def.type === \"default\" ||\n def.type === \"prefault\" ||\n def.type === \"catch\") {\n return isTransforming(def.innerType, ctx);\n }\n if (def.type === \"intersection\") {\n return isTransforming(def.left, ctx) || isTransforming(def.right, ctx);\n }\n if (def.type === \"record\" || def.type === \"map\") {\n return isTransforming(def.keyType, ctx) || isTransforming(def.valueType, ctx);\n }\n if (def.type === \"pipe\") {\n if (_schema._zod.traits.has(\"$ZodCodec\"))\n return true;\n return isTransforming(def.in, ctx) || isTransforming(def.out, ctx);\n }\n if (def.type === \"object\") {\n for (const key in def.shape) {\n if (isTransforming(def.shape[key], ctx))\n return true;\n }\n return false;\n }\n if (def.type === \"union\") {\n for (const option of def.options) {\n if (isTransforming(option, ctx))\n return true;\n }\n return false;\n }\n if (def.type === \"tuple\") {\n for (const item of def.items) {\n if (isTransforming(item, ctx))\n return true;\n }\n if (def.rest && isTransforming(def.rest, ctx))\n return true;\n return false;\n }\n return false;\n}\n/**\n * Creates a toJSONSchema method for a schema instance.\n * This encapsulates the logic of initializing context, processing, extracting defs, and finalizing.\n */\nexport const createToJSONSchemaMethod = (schema, processors = {}) => (params) => {\n const ctx = initializeContext({ ...params, processors });\n processSchema(schema, ctx);\n extractDefs(ctx, schema);\n return finalize(ctx, schema);\n};\nexport const createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) => {\n const { libraryOptions, target } = params ?? {};\n const ctx = initializeContext({ ...(libraryOptions ?? {}), target, io, processors });\n processSchema(schema, ctx);\n extractDefs(ctx, schema);\n return finalize(ctx, schema);\n};\n","unable to read source [project]/node_modules/@aeolus-fleet/common/src/schemas/report.ts","import * as core from \"../core/index.js\";\nimport { ZodRealError } from \"./errors.js\";\nexport const parse = /* @__PURE__ */ core._parse(ZodRealError);\nexport const parseAsync = /* @__PURE__ */ core._parseAsync(ZodRealError);\nexport const safeParse = /* @__PURE__ */ core._safeParse(ZodRealError);\nexport const safeParseAsync = /* @__PURE__ */ core._safeParseAsync(ZodRealError);\nexport { validate, validateAsync } from \"../core/index.js\";\n// Codec functions\nexport const encode = /* @__PURE__ */ core._encode(ZodRealError);\nexport const decode = /* @__PURE__ */ core._decode(ZodRealError);\nexport const encodeAsync = /* @__PURE__ */ core._encodeAsync(ZodRealError);\nexport const decodeAsync = /* @__PURE__ */ core._decodeAsync(ZodRealError);\nexport const safeEncode = /* @__PURE__ */ core._safeEncode(ZodRealError);\nexport const safeDecode = /* @__PURE__ */ core._safeDecode(ZodRealError);\nexport const safeEncodeAsync = /* @__PURE__ */ core._safeEncodeAsync(ZodRealError);\nexport const safeDecodeAsync = /* @__PURE__ */ core._safeDecodeAsync(ZodRealError);\n","import { globalConfig } from \"./core.js\";\n// functions\nexport function assertEqual(val) {\n return val;\n}\nexport function assertNotEqual(val) {\n return val;\n}\nexport function toZod() {\n return (schema) => schema;\n}\nexport function assertIs(_arg) { }\nexport function assertNever(_x) {\n throw new Error(\"Unexpected value in exhaustive check\");\n}\nexport function assert(_) { }\nexport function getEnumValues(entries) {\n const numericValues = Object.values(entries).filter((v) => typeof v === \"number\");\n const values = Object.entries(entries)\n .filter(([k, _]) => numericValues.indexOf(+k) === -1)\n .map(([_, v]) => v);\n return values;\n}\nexport function joinValues(array, separator = \"|\") {\n return array.map((val) => stringifyPrimitive(val)).join(separator);\n}\nexport function jsonStringifyReplacer(_, value) {\n if (typeof value === \"bigint\")\n return value.toString();\n return value;\n}\n// the accessor lives on a shared prototype: an own accessor makes every box a dictionary-mode object (~360 B and a slow load per read against ~100 B and an inlined getter here)\nclass Cached {\n constructor(getter) {\n this._getter = getter;\n this._value = undefined;\n }\n get value() {\n const getter = this._getter;\n if (getter !== undefined) {\n this._value = getter();\n this._getter = undefined;\n }\n return this._value;\n }\n}\nexport function cached(getter) {\n return new Cached(getter);\n}\nexport function nullish(input) {\n return input === null || input === undefined;\n}\nexport function cleanRegex(source) {\n const start = source.startsWith(\"^\") ? 1 : 0;\n const end = source.endsWith(\"$\") ? source.length - 1 : source.length;\n return source.slice(start, end);\n}\nexport function floatSafeRemainder(val, step) {\n const ratio = val / step;\n const roundedRatio = Math.round(ratio);\n // `val` and `step` each round to a double before the division rounds again, so a true decimal multiple's quotient can sit up to 1.5 of these scaled epsilons from the integer. A 1x tolerance therefore rejected 2.03 as a multiple of 0.07; 4x covers the worst case with margin.\n const tolerance = 4 * Number.EPSILON * Math.max(Math.abs(ratio), 1);\n if (Math.abs(ratio - roundedRatio) < tolerance)\n return 0;\n return ratio - roundedRatio;\n}\nconst EVALUATING = /* @__PURE__*/ Symbol(\"evaluating\");\nexport function defineLazy(object, key, getter) {\n let value = undefined;\n Object.defineProperty(object, key, {\n get() {\n if (value === EVALUATING) {\n // Circular reference detected, return undefined to break the cycle\n return undefined;\n }\n if (value === undefined) {\n value = EVALUATING;\n value = getter();\n }\n return value;\n },\n set(v) {\n Object.defineProperty(object, key, {\n value: v,\n // configurable: true,\n });\n // object[key] = v;\n },\n configurable: true,\n });\n}\nexport function objectClone(obj) {\n return Object.create(Object.getPrototypeOf(obj), Object.getOwnPropertyDescriptors(obj));\n}\nexport function assignProp(target, prop, value) {\n Object.defineProperty(target, prop, {\n value,\n writable: true,\n enumerable: true,\n configurable: true,\n });\n}\n/**\n * Whichever object a def's `shape` currently answers from: the one the caller passed until the first read, the frozen copy after it.\n *\n * Its keys and descriptors read without invoking anything, which is what lets a discriminated union check its discriminator, and the cycle walk read a shape, without resolving a getter that references the schema being constructed. A def that answers `shape` from an accessor of its own has none.\n */\nexport function rawShape(def) {\n const desc = Object.getOwnPropertyDescriptor(def, \"shape\");\n return desc?.get ? desc.get.raw : desc?.value;\n}\n// where a builder reads its source's keys and descriptors, resolving only a shape a def answers for itself. A shape resolves by object spread, so only its enumerable keys are ever part of it.\nfunction sourceShape(schema) {\n return rawShape(schema._zod.def) ?? schema._zod.def.shape;\n}\n// a key whose value is not settled yet, self-caching so every read after the first gets the same one\nfunction deferProp(target, key, getter) {\n Object.defineProperty(target, key, {\n get() {\n const value = getter();\n assignProp(this, key, value);\n return value;\n },\n enumerable: true,\n configurable: true,\n });\n}\n// Writes a settled key. A plain assignment is much cheaper than `defineProperty` and produces the same descriptor, but it runs whatever setter already answers to the key — an accessor this shape deferred, or an inherited one, which `__proto__` has on every object and prototype pollution can add for any name.\nfunction putProp(target, key, value) {\n if (key in target)\n assignProp(target, key, value);\n else\n target[key] = value;\n}\n/**\n * Copies `keys` of `source`'s shape onto `target`, each value passed through `wrap`.\n *\n * A key the source has resolved is copied through now, so the derived shape states it outright and nothing has to resolve it to learn what it holds. A key the source still defers stays deferred, and reads back through the source's own `shape`, so it resolves once and both shapes get that one schema.\n */\nfunction mirrorShape(target, source, keys, wrap) {\n const raw = sourceShape(source);\n for (const key of keys) {\n const desc = Object.getOwnPropertyDescriptor(raw, key);\n if (!desc.enumerable)\n continue;\n if (desc.get) {\n deferProp(target, key, () => {\n const value = source._zod.def.shape[key];\n return wrap ? wrap(value, key) : value;\n });\n }\n else\n putProp(target, key, wrap ? wrap(desc.value, key) : desc.value);\n }\n}\n// same, for a plain shape a caller passed rather than a schema's\nfunction mirrorProps(target, source) {\n for (const key of Reflect.ownKeys(source)) {\n const desc = Object.getOwnPropertyDescriptor(source, key);\n if (!desc.enumerable)\n continue;\n if (desc.get)\n deferProp(target, key, () => source[key]);\n else\n putProp(target, key, desc.value);\n }\n}\nexport function mergeDefs(...defs) {\n const mergedDescriptors = {};\n for (const def of defs) {\n const descriptors = Object.getOwnPropertyDescriptors(def);\n Object.assign(mergedDescriptors, descriptors);\n }\n return Object.defineProperties({}, mergedDescriptors);\n}\nexport function cloneDef(schema) {\n return mergeDefs(schema._zod.def);\n}\nexport function getElementAtPath(obj, path) {\n if (!path)\n return obj;\n return path.reduce((acc, key) => acc?.[key], obj);\n}\nexport function promiseAllObject(promisesObj) {\n const keys = Object.keys(promisesObj);\n const promises = keys.map((key) => promisesObj[key]);\n return Promise.all(promises).then((results) => {\n const resolvedObj = {};\n for (let i = 0; i < keys.length; i++) {\n resolvedObj[keys[i]] = results[i];\n }\n return resolvedObj;\n });\n}\nexport function randomString(length = 10) {\n const chars = \"abcdefghijklmnopqrstuvwxyz\";\n let str = \"\";\n for (let i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * chars.length)];\n }\n return str;\n}\nexport function esc(str) {\n return JSON.stringify(str);\n}\nexport function slugify(input) {\n return input\n .toLowerCase()\n .trim()\n .replace(/[^\\w\\s-]/g, \"\")\n .replace(/[\\s_-]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\");\n}\nexport const captureStackTrace = (\"captureStackTrace\" in Error ? Error.captureStackTrace : (..._args) => { });\nexport function isObject(data) {\n return typeof data === \"object\" && data !== null && !Array.isArray(data);\n}\nexport const allowsEval = /* @__PURE__*/ cached(() => {\n // Skip the probe under `jitless`: strict CSPs report the caught `new Function` as a `securitypolicyviolation` even though the throw is swallowed.\n if (globalConfig.jitless) {\n return false;\n }\n // @ts-ignore\n if (typeof navigator !== \"undefined\" && navigator?.userAgent?.includes(\"Cloudflare\")) {\n return false;\n }\n try {\n const F = Function;\n new F(\"\");\n return true;\n }\n catch (_) {\n return false;\n }\n});\nexport function isPlainObject(o) {\n if (isObject(o) === false)\n return false;\n // modified constructor\n const ctor = o.constructor;\n if (ctor === undefined)\n return true;\n if (typeof ctor !== \"function\")\n return true;\n // modified prototype\n const prot = ctor.prototype;\n if (isObject(prot) === false)\n return false;\n // ctor doesn't have static `isPrototypeOf`\n if (Object.prototype.hasOwnProperty.call(prot, \"isPrototypeOf\") === false) {\n return false;\n }\n return true;\n}\nexport function shallowClone(o) {\n if (isPlainObject(o))\n return { ...o };\n if (Array.isArray(o))\n return [...o];\n if (o instanceof Map)\n return new Map(o);\n if (o instanceof Set)\n return new Set(o);\n return o;\n}\nexport function numKeys(data) {\n let keyCount = 0;\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n keyCount++;\n }\n }\n return keyCount;\n}\nexport const getParsedType = (data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return \"undefined\";\n case \"string\":\n return \"string\";\n case \"number\":\n return Number.isNaN(data) ? \"nan\" : \"number\";\n case \"boolean\":\n return \"boolean\";\n case \"function\":\n return \"function\";\n case \"bigint\":\n return \"bigint\";\n case \"symbol\":\n return \"symbol\";\n case \"object\":\n if (Array.isArray(data)) {\n return \"array\";\n }\n if (data === null) {\n return \"null\";\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return \"promise\";\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return \"map\";\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return \"set\";\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return \"date\";\n }\n // @ts-ignore\n if (typeof File !== \"undefined\" && data instanceof File) {\n return \"file\";\n }\n return \"object\";\n default:\n throw new Error(`Unknown data type: ${t}`);\n }\n};\nexport const propertyKeyTypes = /* @__PURE__*/ new Set([\"string\", \"number\", \"symbol\"]);\nexport const primitiveTypes = /* @__PURE__*/ new Set([\n \"string\",\n \"number\",\n \"bigint\",\n \"boolean\",\n \"symbol\",\n \"undefined\",\n]);\nexport function escapeRegex(str) {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n// zod-specific utils\nexport function clone(inst, def, params) {\n const cl = new inst._zod.constr(def ?? inst._zod.def);\n if (!def || params?.parent)\n cl._zod.parent = inst;\n return cl;\n}\nexport function normalizeParams(_params) {\n const params = _params;\n if (!params)\n return {};\n if (typeof params === \"string\")\n return { error: () => params };\n if (params?.message !== undefined) {\n if (params?.error !== undefined)\n throw new Error(\"Cannot specify both `message` and `error` params\");\n params.error = params.message;\n }\n delete params.message;\n if (typeof params.error === \"string\")\n return { ...params, error: () => params.error };\n return params;\n}\nexport function createTransparentProxy(getter) {\n let target;\n return new Proxy({}, {\n get(_, prop, receiver) {\n target ?? (target = getter());\n return Reflect.get(target, prop, receiver);\n },\n set(_, prop, value, receiver) {\n target ?? (target = getter());\n return Reflect.set(target, prop, value, receiver);\n },\n has(_, prop) {\n target ?? (target = getter());\n return Reflect.has(target, prop);\n },\n deleteProperty(_, prop) {\n target ?? (target = getter());\n return Reflect.deleteProperty(target, prop);\n },\n ownKeys(_) {\n target ?? (target = getter());\n return Reflect.ownKeys(target);\n },\n getOwnPropertyDescriptor(_, prop) {\n target ?? (target = getter());\n return Reflect.getOwnPropertyDescriptor(target, prop);\n },\n defineProperty(_, prop, descriptor) {\n target ?? (target = getter());\n return Reflect.defineProperty(target, prop, descriptor);\n },\n });\n}\nexport function stringifyPrimitive(value) {\n if (typeof value === \"bigint\")\n return value.toString() + \"n\";\n if (typeof value === \"string\")\n return `\"${value}\"`;\n return `${value}`;\n}\nexport function optionalKeys(shape) {\n return Object.keys(shape).filter((k) => {\n return shape[k]._zod.optin !== undefined && shape[k]._zod.optout === \"optional\";\n });\n}\n// Wrapped in a `@__PURE__` IIFE: esbuild never tree-shakes a top-level initializer that contains a member access on `Number`, so the bare object literal survived into every bundle.\nexport const NUMBER_FORMAT_RANGES = /*@__PURE__*/ (() => ({\n safeint: [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER],\n int32: [-2147483648, 2147483647],\n uint32: [0, 4294967295],\n float32: [-3.4028234663852886e38, 3.4028234663852886e38],\n float64: [-Number.MAX_VALUE, Number.MAX_VALUE],\n}))();\nexport const BIGINT_FORMAT_RANGES = {\n int64: [/* @__PURE__*/ BigInt(\"-9223372036854775808\"), /* @__PURE__*/ BigInt(\"9223372036854775807\")],\n uint64: [/* @__PURE__*/ BigInt(0), /* @__PURE__*/ BigInt(\"18446744073709551615\")],\n};\nexport function pick(schema, mask) {\n const currDef = schema._zod.def;\n const checks = currDef.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n throw new Error(\".pick() cannot be used on object schemas containing refinements\");\n }\n const newShape = {};\n mirrorShape(newShape, schema, maskedKeys(schema, mask));\n return clone(schema, mergeDefs(currDef, { shape: newShape, checks: [] }));\n}\n// the mask keys that select something, checked against the source's shape without resolving it\nfunction maskedKeys(schema, mask) {\n const raw = sourceShape(schema);\n const keys = [];\n // `for...in` skips symbols, so a symbol in the mask would select nothing\n for (const key of Reflect.ownKeys(mask)) {\n if (!Object.getOwnPropertyDescriptor(raw, key)?.enumerable) {\n throw new Error(`Unrecognized key: \"${String(key)}\"`);\n }\n if (mask[key])\n keys.push(key);\n }\n return keys;\n}\nexport function omit(schema, mask) {\n const currDef = schema._zod.def;\n const checks = currDef.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n throw new Error(\".omit() cannot be used on object schemas containing refinements\");\n }\n const omitted = new Set(maskedKeys(schema, mask));\n const newShape = {};\n mirrorShape(newShape, schema, Reflect.ownKeys(sourceShape(schema)).filter((key) => !omitted.has(key)));\n return clone(schema, mergeDefs(currDef, { shape: newShape, checks: [] }));\n}\nexport function extend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to extend: expected a plain object\");\n }\n const checks = schema._zod.def.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n // Only throw if new shape overlaps with existing shape. Use getOwnPropertyDescriptor to check key existence without accessing values\n const existingShape = sourceShape(schema);\n for (const key of Reflect.ownKeys(shape)) {\n if (Object.getOwnPropertyDescriptor(existingShape, key) !== undefined) {\n throw new Error(\"Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.\");\n }\n }\n }\n return clone(schema, mergeDefs(schema._zod.def, { shape: extended(schema, shape) }));\n}\n// the source's keys, then the caller's overlaid on top\nfunction extended(schema, shape) {\n const newShape = {};\n mirrorShape(newShape, schema, Reflect.ownKeys(sourceShape(schema)));\n mirrorProps(newShape, shape);\n return newShape;\n}\nexport function safeExtend(schema, shape) {\n if (!isPlainObject(shape)) {\n throw new Error(\"Invalid input to safeExtend: expected a plain object\");\n }\n return clone(schema, mergeDefs(schema._zod.def, { shape: extended(schema, shape) }));\n}\nexport function merge(a, b) {\n if (!b?._zod?.def) {\n throw new Error(\"Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.\");\n }\n if (a._zod.def.checks?.length) {\n throw new Error(\".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.\");\n }\n const newShape = {};\n mirrorShape(newShape, a, Reflect.ownKeys(sourceShape(a)));\n mirrorShape(newShape, b, Reflect.ownKeys(sourceShape(b)));\n const def = mergeDefs(a._zod.def, {\n shape: newShape,\n get catchall() {\n return b._zod.def.catchall;\n },\n checks: b._zod.def.checks ?? [],\n });\n return clone(a, def);\n}\nexport function partial(Class, schema, mask, name = \"partial\") {\n const currDef = schema._zod.def;\n const checks = currDef.checks;\n const hasChecks = checks && checks.length > 0;\n if (hasChecks) {\n throw new Error(`.${name}() cannot be used on object schemas containing refinements`);\n }\n const selected = mask ? new Set(maskedKeys(schema, mask)) : undefined;\n const newShape = {};\n mirrorShape(newShape, schema, Reflect.ownKeys(sourceShape(schema)), Class &&\n ((value, key) => (selected && !selected.has(key) ? value : new Class({ type: \"optional\", innerType: value }))));\n return clone(schema, mergeDefs(schema._zod.def, { shape: newShape, checks: [] }));\n}\nexport function required(Class, schema, mask) {\n const selected = mask ? new Set(maskedKeys(schema, mask)) : undefined;\n const newShape = {};\n mirrorShape(newShape, schema, Reflect.ownKeys(sourceShape(schema)), (value, key) => \n // overwrite with non-optional\n selected && !selected.has(key) ? value : new Class({ type: \"nonoptional\", innerType: value }));\n return clone(schema, mergeDefs(schema._zod.def, { shape: newShape }));\n}\n// invalid_type | too_big | too_small | invalid_format | not_multiple_of | unrecognized_keys | invalid_union | invalid_key | invalid_element | invalid_value | custom\nexport function aborted(x, startIndex = 0) {\n if (x.aborted === true)\n return true;\n for (let i = startIndex; i < x.issues.length; i++) {\n if (x.issues[i]?.continue !== true) {\n return true;\n }\n }\n return false;\n}\n// Checks for explicit abort (continue === false), as opposed to implicit abort (continue === undefined). Used to respect `abort: true` in .refine() even for checks that have a `when` function.\nexport function explicitlyAborted(x, startIndex = 0) {\n if (x.aborted === true)\n return true;\n for (let i = startIndex; i < x.issues.length; i++) {\n if (x.issues[i]?.continue === false) {\n return true;\n }\n }\n return false;\n}\nexport function prefixIssues(path, issues) {\n return issues.map((iss) => {\n var _a;\n (_a = iss).path ?? (_a.path = []);\n iss.path.unshift(path);\n return iss;\n });\n}\nexport function unwrapMessage(message) {\n return typeof message === \"string\" ? message : message?.message;\n}\n/* A check holds no link back to the schema it is attached to — the same check instance is shared by every clone of that schema — so the owner is stamped onto the issues a check just raised, at the only point where both are in scope. Runs on the failure path only; `start` is the issue count from before the check ran. */\n/** The leading size checks of `defChecks` that set an upper bound, each paired with it. */\nexport function sizeCaps(defChecks) {\n const caps = [];\n for (const ch of defChecks ?? []) {\n const d = ch._zod.def;\n // a later check may rewrite the value\n if (!/_(length|size)$|_equals$/.test(d.check))\n break;\n const max = d.maximum ?? d.length ?? d.size;\n if (max >= 0)\n caps.push([max, ch]);\n }\n return caps;\n}\nexport function attachSchema(issues, start, inst) {\n var _a;\n for (let i = start; i < issues.length; i++) {\n (_a = issues[i]).schema ?? (_a.schema = inst);\n }\n}\nexport function finalizeIssue(iss, ctx, config) {\n var _a;\n // A schema that raised an issue itself owns it outright, and outranks any stamp an enclosing check left in `attachSchema`. String formats and z.custom() are schema and check at once, so when they act as a check they defer to that stamp instead.\n const traits = iss.inst?._zod?.traits;\n if (traits?.has(\"$ZodType\")) {\n if (traits.has(\"$ZodCheck\"))\n (_a = iss).schema ?? (_a.schema = iss.inst);\n else\n iss.schema = iss.inst;\n }\n // Decreasing specificity, first map to return a message wins. `inst` is whatever raised the issue, so a check's own map outranks the owning schema's.\n const schemaError = iss.schema !== iss.inst ? iss.schema?._zod.def?.error : undefined;\n const message = iss.message\n ? iss.message\n : (unwrapMessage(iss.inst?._zod.def?.error?.(iss)) ??\n unwrapMessage(schemaError?.(iss)) ??\n unwrapMessage(ctx?.error?.(iss)) ??\n unwrapMessage(config.customError?.(iss)) ??\n unwrapMessage(config.localeError?.(iss)) ??\n \"Invalid input\");\n // an explicit own-key copy beats object rest with excluded keys, which v8 routes through a generic runtime call; Object.keys rather than for-in so an issue pushed with a prototype does not leak inherited keys, and an own __proto__ key is dropped rather than assigned through the setter\n const full = {};\n for (const k of Object.keys(iss)) {\n if (k === \"inst\" || k === \"schema\" || k === \"continue\" || k === \"input\" || k === \"__proto__\")\n continue;\n full[k] = iss[k];\n }\n full.path ?? (full.path = []);\n full.message = message;\n if (ctx?.reportInput) {\n full.input = iss.input;\n }\n return full;\n}\nexport function getSizableOrigin(input) {\n if (input instanceof Set)\n return \"set\";\n if (input instanceof Map)\n return \"map\";\n // @ts-ignore\n if (input instanceof File)\n return \"file\";\n return \"unknown\";\n}\nconst highSurrogate = /[\\uD800-\\uDBFF]/;\n// Code points in `str`: a surrogate pair counts once, a lone surrogate as itself. Hand-rolled because the string iterator allocates and runs ~250x slower on this path; the regex probe exits ~50x quicker for a string with no astral characters.\nexport function codePointLength(str) {\n const units = str.length;\n if (!highSurrogate.test(str))\n return units;\n let count = units;\n for (let i = 0; i < units - 1; i++) {\n if ((str.charCodeAt(i) & 0xfc00) === 0xd800 && (str.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n count--;\n i++;\n }\n }\n return count;\n}\nexport function getLengthableOrigin(input) {\n if (Array.isArray(input))\n return \"array\";\n if (typeof input === \"string\")\n return \"string\";\n return \"unknown\";\n}\nexport function parsedType(data) {\n const t = typeof data;\n switch (t) {\n case \"number\": {\n return Number.isNaN(data) ? \"nan\" : \"number\";\n }\n case \"object\": {\n if (data === null) {\n return \"null\";\n }\n if (Array.isArray(data)) {\n return \"array\";\n }\n const obj = data;\n if (obj && Object.getPrototypeOf(obj) !== Object.prototype && \"constructor\" in obj && obj.constructor) {\n return obj.constructor.name;\n }\n }\n }\n return t;\n}\nexport function issue(...args) {\n const [iss, input, inst] = args;\n if (typeof iss === \"string\") {\n return {\n message: iss,\n code: \"custom\",\n input,\n inst,\n };\n }\n return { ...iss };\n}\nexport function cleanEnum(obj) {\n return Object.entries(obj)\n .filter(([k, _]) => {\n // return true if NaN, meaning it's not a number, thus a string key\n return Number.isNaN(Number.parseInt(k, 10));\n })\n .map((el) => el[1]);\n}\n// Codec utility functions\nexport function base64ToUint8Array(base64) {\n const binaryString = atob(base64);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes;\n}\nexport function uint8ArrayToBase64(bytes) {\n let binaryString = \"\";\n for (let i = 0; i < bytes.length; i++) {\n binaryString += String.fromCharCode(bytes[i]);\n }\n return btoa(binaryString);\n}\nexport function base64urlToUint8Array(base64url) {\n const base64 = base64url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padding = \"=\".repeat((4 - (base64.length % 4)) % 4);\n return base64ToUint8Array(base64 + padding);\n}\nexport function uint8ArrayToBase64url(bytes) {\n return uint8ArrayToBase64(bytes).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\nexport function hexToUint8Array(hex) {\n const cleanHex = hex.replace(/^0x/, \"\");\n if (cleanHex.length % 2 !== 0) {\n throw new Error(\"Invalid hex string length\");\n }\n const bytes = new Uint8Array(cleanHex.length / 2);\n for (let i = 0; i < cleanHex.length; i += 2) {\n bytes[i / 2] = Number.parseInt(cleanHex.slice(i, i + 2), 16);\n }\n return bytes;\n}\nexport function uint8ArrayToHex(bytes) {\n return Array.from(bytes)\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n// instanceof\nexport class Class {\n constructor(..._args) { }\n}\n////////// PROTOTYPE INSTALLERS //////////\n//\n// Members live on the prototype and materialize per instance on first read, which keeps own-property count under the step where V8 stops using inline slots. Changing anything here means re-measuring runtime, memory and bundle size together — see \"The three axes\" in AGENTS.md.\n/**\n * Installs a trait's members on its prototype. Each value builds that member for the instance on first read; the built value shadows the accessor as an own property, so a detached `const { parse } = schema` keeps working.\n *\n * Call this from a `proto` initializer, which runs once per prototype — never per instance.\n */\nexport function members(proto, table) {\n for (const key in table) {\n const desc = Object.getOwnPropertyDescriptor(table, key);\n // a getter installs as written, so it stays live: `description` reads through to the registry on every access. not enumerable: an object literal's is, and a prototype member never was\n if (desc.get)\n Object.defineProperty(proto, key, { ...desc, enumerable: false });\n // a method materializes bound on first read, which is what keeps a detached member working: `const opt = schema.optional; opt()`\n else\n defineBound(proto, key, desc.value);\n }\n}\n/** Shadows a prototype member with an own value, so a getter that builds from the instance runs once. */\nexport function own(inst, key, value, enumerable = true) {\n Object.defineProperty(inst, key, { configurable: true, writable: true, enumerable, value });\n return value;\n}\n/** Like {@link own}, for a member that was never an own data property and has to stay out of `Object.keys`. */\nexport function hide(inst, key, value) {\n return own(inst, key, value, false);\n}\n/** Adds members a table derives from the instance: each builds on first read and shadows as own data, and assignment shadows the same way, as when these were own properties. */\nexport /*@__NO_SIDE_EFFECTS__*/ function derived(computes, table) {\n for (const key in computes) {\n const compute = computes[key];\n // an object literal's accessor is configurable and enumerable, and `members` copies the descriptor as written\n Object.defineProperty(table, key, {\n configurable: true,\n enumerable: true,\n get() {\n return own(this, key, compute(this));\n },\n set(value) {\n own(this, key, value);\n },\n });\n }\n return table;\n}\nfunction defineBound(proto, key, fn) {\n Object.defineProperty(proto, key, {\n configurable: true,\n get() {\n // vitest's spyOn calls a prototype getter bare to find the function it wraps, so a nullish receiver answers the raw method\n return this == null ? fn : own(this, key, fn.bind(this));\n },\n set(value) {\n own(this, key, value);\n },\n });\n}\n/** Returns the prototype to install on, or `undefined` if this group is already installed on it. */\nfunction claim(inst, sentinel) {\n const proto = Object.getPrototypeOf(inst);\n // Runs on every construction, so `in` rather than the costlier `hasOwnProperty.call`. Sentinels are keys the group itself defines.\n return sentinel in proto ? undefined : proto;\n}\n// The internals whose init chain is installing. A second call for the same one is a derived constructor overriding its base, so it must not construct another schema in between or the override is dropped.\nlet installing;\n// Set while a getter is running, so a value that resolved through a recursion break is not memoized. One shared descriptor shadows the key for the duration, which costs no per-key allocation.\nlet broke = false;\nconst breaker = {\n configurable: true,\n get() {\n broke = true;\n return undefined;\n },\n};\n/**\n * Installs a lazily-derived internal on the `_zod` prototype of `inst`'s\n * constructor, computed from the internals object itself and cached there on\n * first read. One accessor per constructor rather than one per instance.\n */\nexport function defineLazyInternal(inst, key, compute) {\n const proto = Object.getPrototypeOf(inst._zod);\n if (key in proto && installing !== inst._zod) {\n // A repeat construction: everything is installed already. Cleared here so the reference is not held past the first construction of every type.\n installing = undefined;\n return;\n }\n installing = inst._zod;\n Object.defineProperty(proto, key, {\n configurable: true,\n get() {\n // Shadowed before computing so a re-entrant read from a recursive schema resolves to undefined instead of running the getter again.\n Object.defineProperty(this, key, breaker);\n const outer = broke;\n broke = false;\n try {\n const value = compute(this);\n // A result that resolved through a recursion break is recomputed once the graph is complete; everything else memoizes, undefined included.\n if (broke)\n delete this[key];\n else\n Object.defineProperty(this, key, { configurable: true, writable: true, value });\n broke = broke || outer;\n return value;\n }\n catch (err) {\n // A compute that threw memoizes nothing, so a later read runs it again and fails the same way. The shadow goes with it, since leaving it installed would answer undefined for every later read.\n delete this[key];\n broke = broke || outer;\n throw err;\n }\n },\n set(value) {\n Object.defineProperty(this, key, { configurable: true, writable: true, value });\n },\n });\n}\n/**\n * Installs `key` on `inst`'s prototype, computed by `make` on first read and cached there as an own\n * data property. One accessor per constructor rather than one per instance, because an own accessor\n * puts every instance after the first into v8 dictionary mode. The key doubles as the sentinel.\n */\nexport function installLazyProp(inst, key, make, enumerable) {\n const proto = claim(inst, key);\n if (!proto)\n return;\n Object.defineProperty(proto, key, {\n configurable: true,\n get() {\n // Shadowed before computing, so a re-entrant read from a self-referential shape resolves to undefined instead of running the getter again. A data property rather than an accessor: an own accessor is the dictionary-mode transition this exists to avoid.\n const desc = { configurable: true, writable: true, enumerable, value: undefined };\n Object.defineProperty(this, key, desc);\n // a compute that throws leaves the shadow behind, so later reads answer undefined instead of re-throwing; `defineLazy` did the same, and `defineLazyInternal`'s delete-on-catch would cost bytes in every bundle for a case only a throwing user getter reaches\n desc.value = make(this);\n Object.defineProperty(this, key, desc);\n return desc.value;\n },\n set(value) {\n Object.defineProperty(this, key, { configurable: true, writable: true, enumerable, value });\n },\n });\n}\n/** Marks the thunk `_catch` synthesises for a constant catch value. `Function.length` cannot tell that thunk from a user callback — rest and defaulted parameters both report arity 0 — and a user callback reads `ctx.error`, whose issues only finalize correctly against the caller's per-parse error map. Provenance can say what arity cannot. A plain string key rather than `Symbol.for`, whose call at module scope no bundler can prove pure — the same shape that anchored `urlCanParse` into every build. */\nexport const CONSTANT_CATCH = \"~constantCatch\";\n/** Wraps a constant catch value in a thunk tagged with {@link CONSTANT_CATCH}. */\nexport function constantCatch(value) {\n const fn = () => value;\n fn[CONSTANT_CATCH] = true;\n return fn;\n}\n","import * as core from \"../core/index.js\";\nimport { $ZodError } from \"../core/index.js\";\nimport * as util from \"../core/util.js\";\n/* Prototypes that already carry the lazy helper methods. Seeded with the\n * intrinsics so that `init` on a foreign object — it accepts any object —\n * can never install an accessor onto a prototype we do not own. */\nconst _installedErrorProtos = /* @__PURE__ */ new WeakSet([Object.prototype, Error.prototype]);\n/* Helper methods live as non-enumerable lazy getters on the shared\n * prototype instead of own properties on every instance. On first\n * access the getter allocates the per-instance closure and caches it\n * as a non-enumerable own property, so detached usage still works and\n * the allocation only happens for methods actually touched. */\nfunction _lazyMethod(proto, key, make) {\n Object.defineProperty(proto, key, {\n configurable: true,\n enumerable: false,\n get() {\n const value = make(this);\n Object.defineProperty(this, key, { value, configurable: true, writable: true });\n return value;\n },\n set(value) {\n Object.defineProperty(this, key, { value, configurable: true, writable: true });\n },\n });\n}\nconst initializer = (inst, issues) => {\n $ZodError.init(inst, issues);\n inst.name = \"ZodError\";\n const proto = Object.getPrototypeOf(inst);\n if (_installedErrorProtos.has(proto))\n return;\n _installedErrorProtos.add(proto);\n _lazyMethod(proto, \"format\", (self) => (mapper) => core.formatError(self, mapper));\n _lazyMethod(proto, \"flatten\", (self) => (mapper) => core.flattenError(self, mapper));\n _lazyMethod(proto, \"addIssue\", (self) => (issue) => {\n self.issues.push(issue);\n self.message = JSON.stringify(self.issues, util.jsonStringifyReplacer, 2);\n });\n _lazyMethod(proto, \"addIssues\", (self) => (issues) => {\n self.issues.push(...issues);\n self.message = JSON.stringify(self.issues, util.jsonStringifyReplacer, 2);\n });\n Object.defineProperty(proto, \"isEmpty\", {\n configurable: true,\n enumerable: false,\n get() {\n return this.issues.length === 0;\n },\n });\n};\nexport const ZodError = /*@__PURE__*/ core.$constructor(\"ZodError\", initializer);\nexport const ZodRealError = /*@__PURE__*/ core.$constructor(\"ZodError\", initializer, undefined, {\n Parent: Error,\n});\n// /** @deprecated Use `z.core.$ZodErrorMapCtx` instead. */\n// export type ErrorMapCtx = core.$ZodErrorMapCtx;\n","import * as core from \"./core.js\";\nimport * as errors from \"./errors.js\";\nimport * as util from \"./util.js\";\n// Always both keys, so the `_params` read site in `_parse` sees one object shape rather than two.\nfunction finalizeParams(callee, params) {\n return { callee: params?.callee ?? callee, Err: params?.Err };\n}\nexport const _parse = (_Err) => {\n const fn = (schema, value, _ctx, _params) => {\n const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n if (result.issues.length) {\n const e = new (_params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, _params?.callee ?? fn);\n throw e;\n }\n return result.value;\n };\n return fn;\n};\nexport const parse = /* @__PURE__*/ _parse(errors.$ZodRealError);\nexport const _parseAsync = (_Err) => {\n const fn = async (schema, value, _ctx, params) => {\n const ctx = _ctx ? { ..._ctx, async: true } : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n if (result.issues.length) {\n const e = new (params?.Err ?? _Err)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n util.captureStackTrace(e, params?.callee ?? fn);\n throw e;\n }\n return result.value;\n };\n return fn;\n};\nexport const parseAsync = /* @__PURE__*/ _parseAsync(errors.$ZodRealError);\nexport const _safeParse = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, async: false } : { async: false };\n const result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n return result.issues.length ? failure(_Err, result.issues, ctx) : { success: true, data: result.value };\n};\nexport const safeParse = /* @__PURE__*/ _safeParse(errors.$ZodRealError);\n// the error is built on the first read of `error`: finalizing the issues and constructing the instance is most of a failing parse, and a caller that only branches on `success` never pays it. a getter in the literal keeps this small; the alternative, one shared accessor descriptor plus a hidden state slot, reads ~15% faster but costs ~75 B gzipped in every bundle\nfunction failure(Err, issues, ctx) {\n let error;\n return {\n success: false,\n get error() {\n if (!error) {\n error = new Err(issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())));\n // finalizeIssue drops `input`, so the built error holds nothing; keeping the raw issues past this point pins the parsed value for the life of the result\n issues = undefined;\n ctx = undefined;\n }\n return error;\n },\n set error(e) {\n error = e;\n // a replacement makes the getter's branch unreachable, so the captures have to go here too\n issues = undefined;\n ctx = undefined;\n },\n };\n}\nexport const _safeParseAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, async: true } : { async: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n return result.issues.length ? failure(_Err, result.issues, ctx) : { success: true, data: result.value };\n};\nexport const safeParseAsync = /* @__PURE__*/ _safeParseAsync(errors.$ZodRealError);\n// registry mirrors of the compiler's sentinels, so this module never imports the compiler\nconst COMPILE_INVALID = /* @__PURE__ */ Symbol.for(\"zod.compile.invalid\");\nconst COMPILE_FALLBACK = /* @__PURE__ */ Symbol.for(\"zod.compile.fallback\");\n// Deliberately tiny, because v8 will not inline a body carrying the fallback's object literals and throw. Everything that is not the compiled happy path lives in validateFallback, and that split is worth ~35% on a compiled schema.\nexport const validate = ((schema, value, _ctx) => {\n const validator = schema._zod.bag.validator;\n if (validator !== undefined) {\n if (validator(value) !== COMPILE_INVALID)\n return true;\n // a definite sentinel means the runtime would reject, so skip the re-parse; a ctx can still change the answer\n if (validator.definite === true && _ctx === undefined)\n return false;\n }\n return validateFallback(schema, value, _ctx);\n});\nfunction validateFallback(schema, value, _ctx) {\n const ctx = _ctx\n ? { ..._ctx, async: false, abortEarly: true }\n : { async: false, abortEarly: true };\n const fallbackRun = schema._zod.bag.fallbackRun;\n let result;\n if (fallbackRun) {\n // skip nested fast paths on the fallback, so user callbacks keep the at-most-twice bound\n ctx[COMPILE_FALLBACK] = true;\n result = fallbackRun({ value, issues: [] }, ctx);\n }\n else {\n result = schema._zod.run({ value, issues: [] }, ctx);\n }\n if (result instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n return result.issues.length === 0;\n}\n// no fast path: the compiler keeps async parses on the runtime, because a promise-returning callback that is not declared async compiles to a throw\nexport const validateAsync = async (schema, value, _ctx) => {\n const ctx = _ctx\n ? { ..._ctx, async: true, abortEarly: true }\n : { async: true, abortEarly: true };\n let result = schema._zod.run({ value, issues: [] }, ctx);\n if (result instanceof Promise)\n result = await result;\n return result.issues.length === 0;\n};\nexport const _encode = (_Err) => {\n const parse = _parse(_Err);\n const fn = (schema, value, _ctx, _params) => {\n const ctx = _ctx ? { ..._ctx, direction: \"backward\" } : { direction: \"backward\" };\n return parse(schema, value, ctx, finalizeParams(fn, _params));\n };\n return fn;\n};\nexport const encode = /* @__PURE__*/ _encode(errors.$ZodRealError);\nexport const _decode = (_Err) => {\n const parse = _parse(_Err);\n const fn = (schema, value, _ctx, _params) => {\n return parse(schema, value, _ctx, finalizeParams(fn, _params));\n };\n return fn;\n};\nexport const decode = /* @__PURE__*/ _decode(errors.$ZodRealError);\nexport const _encodeAsync = (_Err) => {\n const parseAsync = _parseAsync(_Err);\n const fn = async (schema, value, _ctx, _params) => {\n const ctx = _ctx ? { ..._ctx, direction: \"backward\" } : { direction: \"backward\" };\n return (await parseAsync(schema, value, ctx, finalizeParams(fn, _params)));\n };\n return fn;\n};\nexport const encodeAsync = /* @__PURE__*/ _encodeAsync(errors.$ZodRealError);\nexport const _decodeAsync = (_Err) => {\n const parseAsync = _parseAsync(_Err);\n const fn = async (schema, value, _ctx, _params) => {\n return await parseAsync(schema, value, _ctx, finalizeParams(fn, _params));\n };\n return fn;\n};\nexport const decodeAsync = /* @__PURE__*/ _decodeAsync(errors.$ZodRealError);\nexport const _safeEncode = (_Err) => (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, direction: \"backward\" } : { direction: \"backward\" };\n return _safeParse(_Err)(schema, value, ctx);\n};\nexport const safeEncode = /* @__PURE__*/ _safeEncode(errors.$ZodRealError);\nexport const _safeDecode = (_Err) => (schema, value, _ctx) => {\n return _safeParse(_Err)(schema, value, _ctx);\n};\nexport const safeDecode = /* @__PURE__*/ _safeDecode(errors.$ZodRealError);\nexport const _safeEncodeAsync = (_Err) => async (schema, value, _ctx) => {\n const ctx = _ctx ? { ..._ctx, direction: \"backward\" } : { direction: \"backward\" };\n return _safeParseAsync(_Err)(schema, value, ctx);\n};\nexport const safeEncodeAsync = /* @__PURE__*/ _safeEncodeAsync(errors.$ZodRealError);\nexport const _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {\n return _safeParseAsync(_Err)(schema, value, _ctx);\n};\nexport const safeDecodeAsync = /* @__PURE__*/ _safeDecodeAsync(errors.$ZodRealError);\n","import * as core from \"../core/index.js\";\nimport { ZodISODate, ZodISODateTime, ZodISODuration, ZodISOTime } from \"./schemas.js\";\nexport { ZodISODate, ZodISODateTime, ZodISODuration, ZodISOTime } from \"./schemas.js\";\nexport function datetime(params) {\n return core._isoDateTime(ZodISODateTime, params);\n}\nexport function date(params) {\n return core._isoDate(ZodISODate, params);\n}\nexport function time(params) {\n return core._isoTime(ZodISOTime, params);\n}\nexport function duration(params) {\n return core._isoDuration(ZodISODuration, params);\n}\n","import * as checks from \"./checks.js\";\nimport * as registries from \"./registries.js\";\nimport * as schemas from \"./schemas.js\";\nimport * as util from \"./util.js\";\nfunction snapshotChecks(def) {\n if (def.checks)\n def.checks = [...def.checks];\n return def;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _string(Class, params) {\n return new Class(snapshotChecks({ type: \"string\", ...util.normalizeParams(params) }));\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedString(Class, params) {\n return new Class(snapshotChecks({ type: \"string\", coerce: true, ...util.normalizeParams(params) }));\n}\n// @__NO_SIDE_EFFECTS__\nexport function _email(Class, params) {\n return new Class({\n type: \"string\",\n format: \"email\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _guid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"guid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuidv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v4\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuidv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v6\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uuidv7(Class, params) {\n return new Class({\n type: \"string\",\n format: \"uuid\",\n check: \"string_format\",\n abort: false,\n version: \"v7\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _emoji(Class, params) {\n return new Class({\n type: \"string\",\n format: \"emoji\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nanoid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"nanoid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n/**\n * @deprecated CUID v1 is deprecated by its authors due to information leakage\n * (timestamps embedded in the id). Use {@link _cuid2} instead.\n * See https://github.com/paralleldrive/cuid.\n */\n// @__NO_SIDE_EFFECTS__\nexport function _cuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _cuid2(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cuid2\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ulid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ulid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _xid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"xid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ksuid(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ksuid\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ipv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _ipv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"ipv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _mac(Class, params) {\n return new Class({\n type: \"string\",\n format: \"mac\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _cidrv4(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv4\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _cidrv6(Class, params) {\n return new Class({\n type: \"string\",\n format: \"cidrv6\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _base64(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _base64url(Class, params) {\n return new Class({\n type: \"string\",\n format: \"base64url\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _e164(Class, params) {\n return new Class({\n type: \"string\",\n format: \"e164\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _creditCard(Class, params) {\n return new Class({\n type: \"string\",\n format: \"credit_card\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _iban(Class, params) {\n return new Class({\n type: \"string\",\n format: \"iban\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _jwt(Class, params) {\n return new Class({\n type: \"string\",\n format: \"jwt\",\n check: \"string_format\",\n abort: false,\n ...util.normalizeParams(params),\n });\n}\nexport const TimePrecision = {\n Any: null,\n Minute: -1,\n Second: 0,\n Millisecond: 3,\n Microsecond: 6,\n};\n// @__NO_SIDE_EFFECTS__\nexport function _isoDateTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"datetime\",\n check: \"string_format\",\n offset: false,\n local: false,\n precision: null,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _isoDate(Class, params) {\n return new Class({\n type: \"string\",\n format: \"date\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _isoTime(Class, params) {\n return new Class({\n type: \"string\",\n format: \"time\",\n check: \"string_format\",\n precision: null,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _isoDuration(Class, params) {\n return new Class({\n type: \"string\",\n format: \"duration\",\n check: \"string_format\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _number(Class, params) {\n return new Class(snapshotChecks({ type: \"number\", checks: [], ...util.normalizeParams(params) }));\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedNumber(Class, params) {\n return new Class(snapshotChecks({ type: \"number\", coerce: true, checks: [], ...util.normalizeParams(params) }));\n}\n// @__NO_SIDE_EFFECTS__\nexport function _int(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"safeint\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _float32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float32\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _float64(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"float64\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _int32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"int32\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uint32(Class, params) {\n return new Class({\n type: \"number\",\n check: \"number_format\",\n abort: false,\n format: \"uint32\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _boolean(Class, params) {\n return new Class({\n type: \"boolean\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedBoolean(Class, params) {\n return new Class({\n type: \"boolean\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _bigint(Class, params) {\n return new Class({\n type: \"bigint\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedBigint(Class, params) {\n return new Class({\n type: \"bigint\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _int64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"int64\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uint64(Class, params) {\n return new Class({\n type: \"bigint\",\n check: \"bigint_format\",\n abort: false,\n format: \"uint64\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _symbol(Class, params) {\n return new Class({\n type: \"symbol\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _undefined(Class, params) {\n return new Class({\n type: \"undefined\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _null(Class, params) {\n return new Class({\n type: \"null\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _any(Class) {\n return new Class({\n type: \"any\",\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _unknown(Class) {\n return new Class({\n type: \"unknown\",\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _never(Class, params) {\n return new Class({\n type: \"never\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _void(Class, params) {\n return new Class({\n type: \"void\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _date(Class, params) {\n return new Class({\n type: \"date\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _coercedDate(Class, params) {\n return new Class({\n type: \"date\",\n coerce: true,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nan(Class, params) {\n return new Class({\n type: \"nan\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lt(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lte(value, params) {\n return new checks.$ZodCheckLessThan({\n check: \"less_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.lte()` instead. */\n_lte as _max, };\n// @__NO_SIDE_EFFECTS__\nexport function _gt(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: false,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _gte(value, params) {\n return new checks.$ZodCheckGreaterThan({\n check: \"greater_than\",\n ...util.normalizeParams(params),\n value,\n inclusive: true,\n });\n}\nexport { \n/** @deprecated Use `z.gte()` instead. */\n_gte as _min, };\n// @__NO_SIDE_EFFECTS__\nexport function _positive(params) {\n return _gt(0, params);\n}\n// negative\n// @__NO_SIDE_EFFECTS__\nexport function _negative(params) {\n return _lt(0, params);\n}\n// nonpositive\n// @__NO_SIDE_EFFECTS__\nexport function _nonpositive(params) {\n return _lte(0, params);\n}\n// nonnegative\n// @__NO_SIDE_EFFECTS__\nexport function _nonnegative(params) {\n return _gte(0, params);\n}\n// @__NO_SIDE_EFFECTS__\nexport function _multipleOf(value, params) {\n return new checks.$ZodCheckMultipleOf({\n check: \"multiple_of\",\n ...util.normalizeParams(params),\n value,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _maxSize(maximum, params) {\n return new checks.$ZodCheckMaxSize({\n check: \"max_size\",\n ...util.normalizeParams(params),\n maximum,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _minSize(minimum, params) {\n return new checks.$ZodCheckMinSize({\n check: \"min_size\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _size(size, params) {\n return new checks.$ZodCheckSizeEquals({\n check: \"size_equals\",\n ...util.normalizeParams(params),\n size,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _maxLength(maximum, params) {\n const ch = new checks.$ZodCheckMaxLength({\n check: \"max_length\",\n ...util.normalizeParams(params),\n maximum,\n });\n return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _minLength(minimum, params) {\n return new checks.$ZodCheckMinLength({\n check: \"min_length\",\n ...util.normalizeParams(params),\n minimum,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _length(length, params) {\n return new checks.$ZodCheckLengthEquals({\n check: \"length_equals\",\n ...util.normalizeParams(params),\n length,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _regex(pattern, params) {\n return new checks.$ZodCheckRegex({\n check: \"string_format\",\n format: \"regex\",\n ...util.normalizeParams(params),\n pattern,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lowercase(params) {\n return new checks.$ZodCheckLowerCase({\n check: \"string_format\",\n format: \"lowercase\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _uppercase(params) {\n return new checks.$ZodCheckUpperCase({\n check: \"string_format\",\n format: \"uppercase\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _includes(includes, params) {\n return new checks.$ZodCheckIncludes({\n check: \"string_format\",\n format: \"includes\",\n ...util.normalizeParams(params),\n includes,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _startsWith(prefix, params) {\n return new checks.$ZodCheckStartsWith({\n check: \"string_format\",\n format: \"starts_with\",\n ...util.normalizeParams(params),\n prefix,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _endsWith(suffix, params) {\n return new checks.$ZodCheckEndsWith({\n check: \"string_format\",\n format: \"ends_with\",\n ...util.normalizeParams(params),\n suffix,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _property(property, schema, params) {\n return new checks.$ZodCheckProperty({\n check: \"property\",\n property,\n schema,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _properties(shape, params) {\n return new checks.$ZodCheckProperties({\n check: \"properties\",\n shape,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _mime(types, params) {\n return new checks.$ZodCheckMimeType({\n check: \"mime_type\",\n mime: types,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _overwrite(tx) {\n return new checks.$ZodCheckOverwrite({\n check: \"overwrite\",\n tx,\n });\n}\n// normalize\n// @__NO_SIDE_EFFECTS__\nexport function _normalize(form) {\n return _overwrite((input) => input.normalize(form));\n}\n// trim\n// @__NO_SIDE_EFFECTS__\nexport function _trim() {\n return _overwrite((input) => input.trim());\n}\n// toLowerCase\n// @__NO_SIDE_EFFECTS__\nexport function _toLowerCase() {\n return _overwrite((input) => input.toLowerCase());\n}\n// toUpperCase\n// @__NO_SIDE_EFFECTS__\nexport function _toUpperCase() {\n return _overwrite((input) => input.toUpperCase());\n}\n// slugify\n// @__NO_SIDE_EFFECTS__\nexport function _slugify() {\n return _overwrite((input) => util.slugify(input));\n}\n// @__NO_SIDE_EFFECTS__\nexport function _array(Class, element, params) {\n return new Class({\n type: \"array\",\n element,\n // get element() {\n // return element;\n // },\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _union(Class, options, params) {\n return new Class({\n type: \"union\",\n options,\n ...util.normalizeParams(params),\n });\n}\nexport function _xor(Class, options, params) {\n return new Class({\n type: \"union\",\n options,\n inclusive: false,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _discriminatedUnion(Class, discriminator, options, params) {\n return new Class({\n type: \"union\",\n options: options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _intersection(Class, left, right) {\n return new Class({\n type: \"intersection\",\n left,\n right,\n });\n}\n// export function _tuple(\n// Class: util.SchemaClass<schemas.$ZodTuple>,\n// items: [],\n// params?: string | $ZodTupleParams\n// ): schemas.$ZodTuple<[], null>;\n// @__NO_SIDE_EFFECTS__\nexport function _tuple(Class, items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof schemas.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new Class({\n type: \"tuple\",\n items,\n rest,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _record(Class, keyType, valueType, params) {\n return new Class({\n type: \"record\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _map(Class, keyType, valueType, params) {\n return new Class({\n type: \"map\",\n keyType,\n valueType,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _set(Class, valueType, params) {\n return new Class({\n type: \"set\",\n valueType,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _enum(Class, values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n // if (Array.isArray(values)) {\n // for (const value of values) {\n // entries[value] = value;\n // }\n // } else {\n // Object.assign(entries, values);\n // }\n // const entries: util.EnumLike = {};\n // for (const val of values) {\n // entries[val] = val;\n // }\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function _nativeEnum(Class, entries, params) {\n return new Class({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _literal(Class, value, params) {\n return new Class({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _file(Class, params) {\n return new Class({\n type: \"file\",\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _transform(Class, fn) {\n return new Class({\n type: \"transform\",\n transform: fn,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _optional(Class, innerType) {\n return new Class({\n type: \"optional\",\n innerType,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nullable(Class, innerType) {\n return new Class({\n type: \"nullable\",\n innerType,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _default(Class, innerType, defaultValue) {\n return new Class({\n type: \"default\",\n innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _nonoptional(Class, innerType, params) {\n return new Class({\n type: \"nonoptional\",\n innerType,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _success(Class, innerType) {\n return new Class({\n type: \"success\",\n innerType,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _catch(Class, innerType, catchValue) {\n return new Class({\n type: \"catch\",\n innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : util.constantCatch(catchValue)),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _pipe(Class, in_, out) {\n return new Class({\n type: \"pipe\",\n in: in_,\n out,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _readonly(Class, innerType) {\n return new Class({\n type: \"readonly\",\n innerType,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _templateLiteral(Class, parts, params) {\n return new Class({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _lazy(Class, getter) {\n return new Class({\n type: \"lazy\",\n getter,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _promise(Class, innerType) {\n return new Class({\n type: \"promise\",\n innerType,\n });\n}\n// @__NO_SIDE_EFFECTS__\nexport function _custom(Class, fn, _params) {\n const norm = util.normalizeParams(_params);\n norm.abort ?? (norm.abort = true); // default to abort:false\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...norm,\n });\n return schema;\n}\n// same as _custom but defaults to abort:false\n// @__NO_SIDE_EFFECTS__\nexport function _refine(Class, fn, _params) {\n const schema = new Class({\n type: \"custom\",\n check: \"custom\",\n fn: fn,\n ...util.normalizeParams(_params),\n });\n return schema;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _superRefine(fn, params) {\n const ch = _check((payload) => {\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, ch._zod.def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n if (!(\"input\" in _issue))\n _issue.input = payload.value;\n _issue.inst ?? (_issue.inst = ch);\n _issue.continue ?? (_issue.continue = !ch._zod.def.abort); // abort is always undefined, so this is always true...\n payload.issues.push(util.issue(_issue));\n }\n };\n return fn(payload.value, payload);\n }, params);\n return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _check(fn, params) {\n const ch = new checks.$ZodCheck({\n check: \"custom\",\n ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function describe(description) {\n const ch = new checks.$ZodCheck({ check: \"describe\" });\n ch._zod.onattach = [\n (inst) => {\n const existing = registries.globalRegistry.get(inst) ?? {};\n registries.globalRegistry.add(inst, { ...existing, description });\n },\n ];\n ch._zod.check = () => { }; // no-op check\n return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function meta(metadata) {\n const ch = new checks.$ZodCheck({ check: \"meta\" });\n ch._zod.onattach = [\n (inst) => {\n const existing = registries.globalRegistry.get(inst) ?? {};\n registries.globalRegistry.add(inst, { ...existing, ...metadata });\n },\n ];\n ch._zod.check = () => { }; // no-op check\n return ch;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _stringbool(Classes, _params) {\n const params = util.normalizeParams(_params);\n let truthyArray = params.truthy ?? [\"true\", \"1\", \"yes\", \"on\", \"y\", \"enabled\"];\n let falsyArray = params.falsy ?? [\"false\", \"0\", \"no\", \"off\", \"n\", \"disabled\"];\n if (params.case !== \"sensitive\") {\n truthyArray = truthyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n falsyArray = falsyArray.map((v) => (typeof v === \"string\" ? v.toLowerCase() : v));\n }\n const truthySet = new Set(truthyArray);\n const falsySet = new Set(falsyArray);\n const _Codec = Classes.Codec ?? schemas.$ZodCodec;\n const _Boolean = Classes.Boolean ?? schemas.$ZodBoolean;\n const _String = Classes.String ?? schemas.$ZodString;\n const stringSchema = new _String({ type: \"string\", error: params.error });\n const booleanSchema = new _Boolean({ type: \"boolean\", error: params.error });\n const codec = new _Codec({\n type: \"pipe\",\n in: stringSchema,\n out: booleanSchema,\n transform: ((input, payload) => {\n let data = input;\n if (params.case !== \"sensitive\")\n data = data.toLowerCase();\n if (truthySet.has(data)) {\n return true;\n }\n else if (falsySet.has(data)) {\n return false;\n }\n else {\n payload.issues.push({\n code: \"invalid_value\",\n expected: \"stringbool\",\n values: [...truthySet, ...falsySet],\n input: payload.value,\n inst: codec,\n continue: false,\n });\n return {};\n }\n }),\n reverseTransform: ((input, _payload) => {\n if (input === true) {\n return truthyArray[0] || \"true\";\n }\n else {\n return falsyArray[0] || \"false\";\n }\n }),\n error: params.error,\n });\n codec._zod.bag.truthy = truthyArray;\n codec._zod.bag.falsy = falsyArray;\n codec._zod.bag.case = params.case ?? \"insensitive\";\n return codec;\n}\n// @__NO_SIDE_EFFECTS__\nexport function _stringFormat(Class, format, fnOrRegex, _params = {}) {\n const params = util.normalizeParams(_params);\n const def = {\n check: \"string_format\",\n type: \"string\",\n format,\n fn: typeof fnOrRegex === \"function\" ? fnOrRegex : (val) => fnOrRegex.test(val),\n ...params,\n };\n if (fnOrRegex instanceof RegExp) {\n def.pattern = fnOrRegex;\n }\n const inst = new Class(def);\n return inst;\n}\n","import * as regexes from \"./regexes.js\";\nimport { base64Charset, base64urlCharset } from \"./schemas.js\";\nimport { extractDefs, finalize, handleUnrepresentable, initializeContext, processSchema, } from \"./to-json-schema.js\";\nimport { BIGINT_FORMAT_RANGES, NUMBER_FORMAT_RANGES, assignProp, getEnumValues } from \"./util.js\";\nconst narrowMin = (agg, key, value) => {\n if (agg[key] === undefined || value > agg[key])\n agg[key] = value;\n};\nconst narrowMax = (agg, key, value) => {\n if (agg[key] === undefined || value < agg[key])\n agg[key] = value;\n};\nconst narrowBoth = (agg, value) => {\n narrowMin(agg, \"minimum\", value);\n narrowMax(agg, \"maximum\", value);\n};\nconst addDivisor = (agg, value) => {\n agg.multipleOf ?? (agg.multipleOf = []);\n if (!agg.multipleOf.includes(value))\n agg.multipleOf.push(value);\n};\nconst addPattern = (agg, pattern) => {\n agg.patterns ?? (agg.patterns = new Set());\n agg.patterns.add(pattern);\n};\nconst intersectMime = (agg, mime) => {\n agg.mime = agg.mime ? agg.mime.filter((m) => mime.includes(m)) : [...mime];\n};\n// last-wins, matching the bag's historical write order; the flag keeps an integer format from being lost to a later float one\nconst setFormat = (agg, format) => {\n agg.format = format;\n if (format.includes(\"int\"))\n agg.isInt = true;\n};\nconst minContributor = (agg, def) => narrowMin(agg, \"minimum\", def.minimum);\nconst maxContributor = (agg, def) => narrowMax(agg, \"maximum\", def.maximum);\nconst formatContributor = (ranges) => (agg, def) => {\n setFormat(agg, def.format);\n const [minimum, maximum] = ranges[def.format];\n narrowMin(agg, \"minimum\", minimum);\n narrowMax(agg, \"maximum\", maximum);\n};\nconst contributors = {\n greater_than: (agg, def) => narrowMin(agg, def.inclusive ? \"minimum\" : \"exclusiveMinimum\", def.value),\n less_than: (agg, def) => narrowMax(agg, def.inclusive ? \"maximum\" : \"exclusiveMaximum\", def.value),\n multiple_of: (agg, def) => addDivisor(agg, def.value),\n number_format: formatContributor(NUMBER_FORMAT_RANGES),\n bigint_format: formatContributor(BIGINT_FORMAT_RANGES),\n min_length: minContributor,\n max_length: maxContributor,\n length_equals: (agg, def) => narrowBoth(agg, def.length),\n min_size: minContributor,\n max_size: maxContributor,\n size_equals: (agg, def) => narrowBoth(agg, def.size),\n string_format: (agg, def) => {\n setFormat(agg, def.format);\n if (def.pattern)\n addPattern(agg, def.pattern);\n if (def.format === \"base64\" || def.format === \"base64url\")\n agg.contentEncoding = def.format;\n if (def.local || def.precision === -1)\n agg.laxFormat = true;\n },\n mime_type: (agg, def) => intersectMime(agg, def.mime),\n};\nexport function aggregateChecks(schema) {\n const agg = {};\n const def = schema._zod.def;\n // a format schema is its own first check, same rule as $ZodType init\n const list = schema._zod.traits.has(\"$ZodCheck\")\n ? [schema, ...(def.checks ?? [])]\n : (def.checks ?? []);\n for (const ch of list)\n contributors[ch._zod.def.check]?.(agg, ch._zod.def);\n // reconcile with the bag so third-party onattach contributions still land; first-party residue is never tighter than the fold, so merging it back is idempotent for one and additive for the other\n const bag = schema._zod.bag;\n if (bag.minimum !== undefined)\n narrowMin(agg, \"minimum\", bag.minimum);\n if (bag.exclusiveMinimum !== undefined)\n narrowMin(agg, \"exclusiveMinimum\", bag.exclusiveMinimum);\n if (bag.maximum !== undefined)\n narrowMax(agg, \"maximum\", bag.maximum);\n if (bag.exclusiveMaximum !== undefined)\n narrowMax(agg, \"exclusiveMaximum\", bag.exclusiveMaximum);\n if (bag.multipleOf !== undefined)\n addDivisor(agg, bag.multipleOf);\n if (bag.format !== undefined) {\n agg.format ?? (agg.format = bag.format);\n if (bag.format.includes(\"int\"))\n agg.isInt = true;\n }\n if (bag.mime)\n intersectMime(agg, bag.mime);\n for (const pattern of bag.patterns ?? [])\n addPattern(agg, pattern);\n return agg;\n}\nconst formatMap = {\n guid: \"uuid\",\n url: \"uri\",\n datetime: \"date-time\",\n json_string: \"json-string\",\n regex: \"\", // do not set\n};\n// ==================== SIMPLE TYPE PROCESSORS ====================\n// the runtime patterns are lax so parse paths never overflow the regex stack; the emitted schema swaps in the exact block forms, which zod itself never executes\nconst exactPatterns = new Map([\n [base64Charset, regexes.base64],\n [base64urlCharset, regexes.base64url],\n]);\nconst exactPattern = (p) => exactPatterns.get(p) ?? p;\nexport const stringProcessor = (schema, ctx, _json, _params) => {\n const json = _json;\n json.type = \"string\";\n const { minimum, maximum, format, patterns, contentEncoding, laxFormat } = aggregateChecks(schema);\n if (typeof minimum === \"number\")\n json.minLength = minimum;\n if (typeof maximum === \"number\")\n json.maxLength = maximum;\n // custom pattern overrides format\n if (format) {\n json.format = formatMap[format] ?? format;\n if (json.format === \"\")\n delete json.format; // empty format is not valid\n // `z.iso.time()` is never full-time, and `laxFormat` carries the datetime shapes that also accept what their keyword forbids\n if (format === \"time\" || laxFormat) {\n delete json.format;\n }\n }\n if (contentEncoding)\n json.contentEncoding = contentEncoding;\n if (patterns && patterns.size > 0) {\n const patternList = [...patterns].map(exactPattern);\n if (patternList.length === 1)\n json.pattern = patternList[0].source;\n else if (patternList.length > 1) {\n json.allOf = [\n ...patternList.map((regex) => ({\n ...(ctx.target === \"draft-07\" || ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\"\n ? { type: \"string\" }\n : {}),\n pattern: regex.source,\n })),\n ];\n }\n }\n};\nexport const numberProcessor = (schema, ctx, _json, params) => {\n const json = _json;\n const { minimum, maximum, multipleOf, exclusiveMaximum, exclusiveMinimum, isInt } = aggregateChecks(schema);\n json.type = isInt ? \"integer\" : \"number\";\n // when both minimum and exclusiveMinimum exist, pick the more restrictive one\n const exMin = typeof exclusiveMinimum === \"number\" && exclusiveMinimum >= (minimum ?? Number.NEGATIVE_INFINITY);\n const exMax = typeof exclusiveMaximum === \"number\" && exclusiveMaximum <= (maximum ?? Number.POSITIVE_INFINITY);\n const legacy = ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\";\n if (exMin) {\n if (legacy) {\n json.minimum = exclusiveMinimum;\n json.exclusiveMinimum = true;\n }\n else {\n json.exclusiveMinimum = exclusiveMinimum;\n }\n }\n else if (typeof minimum === \"number\") {\n json.minimum = minimum;\n }\n if (exMax) {\n if (legacy) {\n json.maximum = exclusiveMaximum;\n json.exclusiveMaximum = true;\n }\n else {\n json.exclusiveMaximum = exclusiveMaximum;\n }\n }\n else if (typeof maximum === \"number\") {\n json.maximum = maximum;\n }\n if (multipleOf) {\n // JSON Schema requires a divisor strictly greater than zero, and a non-finite one does not survive JSON at all. A negative divisor accepts exactly what its absolute value accepts, so it still maps; zero, NaN and Infinity have no keyword form.\n const divisors = new Set();\n for (const divisor of multipleOf) {\n if (Number.isFinite(divisor) && divisor !== 0)\n divisors.add(Math.abs(divisor));\n else\n handleUnrepresentable(schema, ctx, json, params, `A multipleOf divisor of ${divisor} cannot be represented in JSON Schema`);\n }\n // chained divisors are a conjunction the keyword cannot carry alone, so extras ride an allOf, same as stacked patterns\n const [first, ...rest] = divisors;\n if (first !== undefined)\n json.multipleOf = first;\n if (rest.length)\n json.allOf = [...(json.allOf ?? []), ...rest.map((m) => ({ multipleOf: m }))];\n }\n};\nexport const booleanProcessor = (_schema, _ctx, json, _params) => {\n json.type = \"boolean\";\n};\nexport const bigintProcessor = (schema, ctx, json, params) => {\n handleUnrepresentable(schema, ctx, json, params, \"BigInt cannot be represented in JSON Schema\");\n};\nexport const symbolProcessor = (schema, ctx, json, params) => {\n handleUnrepresentable(schema, ctx, json, params, \"Symbols cannot be represented in JSON Schema\");\n};\nexport const nullProcessor = (_schema, ctx, json, _params) => {\n if (ctx.target === \"openapi-3.0\") {\n json.type = \"string\";\n json.nullable = true;\n json.enum = [null];\n }\n else {\n json.type = \"null\";\n }\n};\nexport const undefinedProcessor = (schema, ctx, json, params) => {\n handleUnrepresentable(schema, ctx, json, params, \"Undefined cannot be represented in JSON Schema\");\n};\nexport const voidProcessor = (schema, ctx, json, params) => {\n handleUnrepresentable(schema, ctx, json, params, \"Void cannot be represented in JSON Schema\");\n};\nexport const neverProcessor = (_schema, _ctx, json, _params) => {\n json.not = {};\n};\nexport const anyProcessor = (_schema, _ctx, _json, _params) => {\n // empty schema accepts anything\n};\nexport const unknownProcessor = (_schema, _ctx, _json, _params) => {\n // empty schema accepts anything\n};\nexport const dateProcessor = (schema, ctx, json, params) => {\n handleUnrepresentable(schema, ctx, json, params, \"Date cannot be represented in JSON Schema\");\n};\nexport const enumProcessor = (schema, _ctx, json, _params) => {\n const def = schema._zod.def;\n const values = getEnumValues(def.entries);\n // an empty enum accepts nothing, same as z.never()\n if (values.length === 0) {\n json.not = {};\n return;\n }\n // Number enums can have both string and number values\n if (values.every((v) => typeof v === \"number\"))\n json.type = \"number\";\n if (values.every((v) => typeof v === \"string\"))\n json.type = \"string\";\n json.enum = values;\n};\nexport const literalProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n // a literal with no values accepts nothing, same as z.never()\n if (def.values.length === 0) {\n json.not = {};\n return;\n }\n const vals = [];\n for (const val of def.values) {\n if (val === undefined) {\n // a custom schema replaces the whole literal, so there is nothing left to accumulate\n if (handleUnrepresentable(schema, ctx, json, params, \"Literal `undefined` cannot be represented in JSON Schema\"))\n return;\n // otherwise do not add to vals\n }\n else if (typeof val === \"bigint\") {\n if (handleUnrepresentable(schema, ctx, json, params, \"BigInt literals cannot be represented in JSON Schema\"))\n return;\n vals.push(Number(val));\n }\n else {\n vals.push(val);\n }\n }\n if (vals.length === 0) {\n // do nothing (an undefined literal was stripped)\n }\n else if (vals.length === 1) {\n const val = vals[0];\n json.type = val === null ? \"null\" : typeof val;\n if (ctx.target === \"draft-04\" || ctx.target === \"openapi-3.0\") {\n json.enum = [val];\n }\n else {\n json.const = val;\n }\n }\n else {\n if (vals.every((v) => typeof v === \"number\"))\n json.type = \"number\";\n if (vals.every((v) => typeof v === \"string\"))\n json.type = \"string\";\n if (vals.every((v) => typeof v === \"boolean\"))\n json.type = \"boolean\";\n if (vals.every((v) => v === null))\n json.type = \"null\";\n json.enum = vals;\n }\n};\nexport const nanProcessor = (schema, ctx, json, params) => {\n handleUnrepresentable(schema, ctx, json, params, \"NaN cannot be represented in JSON Schema\");\n};\nexport const templateLiteralProcessor = (schema, _ctx, json, _params) => {\n const _json = json;\n const pattern = schema._zod.pattern;\n if (!pattern)\n throw new Error(\"Pattern not found in template literal\");\n _json.type = \"string\";\n _json.pattern = pattern.source;\n};\nexport const fileProcessor = (schema, _ctx, json, _params) => {\n const _json = json;\n _json.type = \"string\";\n _json.format = \"binary\";\n _json.contentEncoding = \"binary\";\n const { minimum, maximum, mime } = aggregateChecks(schema);\n if (minimum !== undefined)\n _json.minLength = minimum;\n if (maximum !== undefined)\n _json.maxLength = maximum;\n if (!mime)\n return;\n // an empty intersection means the mime checks share no value, so nothing passes at runtime; `anyOf` must be non-empty, so the false schema is `not: {}`\n if (mime.length === 0)\n _json.not = {};\n else if (mime.length === 1)\n _json.contentMediaType = mime[0];\n // only contentMediaType differs, so the shared props stay at the root\n else\n _json.anyOf = mime.map((m) => ({ contentMediaType: m }));\n};\nexport const successProcessor = (_schema, _ctx, json, _params) => {\n json.type = \"boolean\";\n};\nexport const customProcessor = (schema, ctx, json, params) => {\n handleUnrepresentable(schema, ctx, json, params, \"Custom types cannot be represented in JSON Schema\");\n};\nexport const functionProcessor = (schema, ctx, json, params) => {\n handleUnrepresentable(schema, ctx, json, params, \"Function types cannot be represented in JSON Schema\");\n};\nexport const transformProcessor = (schema, ctx, json, params) => {\n handleUnrepresentable(schema, ctx, json, params, \"Transforms cannot be represented in JSON Schema\");\n};\nexport const mapProcessor = (schema, ctx, json, params) => {\n handleUnrepresentable(schema, ctx, json, params, \"Map cannot be represented in JSON Schema\");\n};\nexport const setProcessor = (schema, ctx, json, params) => {\n handleUnrepresentable(schema, ctx, json, params, \"Set cannot be represented in JSON Schema\");\n};\n// ==================== COMPOSITE TYPE PROCESSORS ====================\nexport const arrayProcessor = (schema, ctx, _json, params) => {\n const json = _json;\n const def = schema._zod.def;\n const { minimum, maximum } = aggregateChecks(schema);\n if (typeof minimum === \"number\")\n json.minItems = minimum;\n if (typeof maximum === \"number\")\n json.maxItems = maximum;\n json.type = \"array\";\n json.items = processSchema(def.element, ctx, {\n ...params,\n path: [...params.path, \"items\"],\n });\n};\n// Transform and catch set `optin = \"optional\"` at runtime so the parser lets them observe an\n// absent key, but their declared input type stays required. An input JSON Schema describes the\n// declared type, so resolve past them to the schema that actually carries the optionality.\n// Used by both `objectProcessor` (for `required`) and `tupleProcessor` (for `minItems`); see\n// wiki/optionality.md, \"The JSON Schema emitter reads the *static* value\".\nfunction inputOptin(schema) {\n const def = schema._zod.def;\n if (def.type === \"pipe\" && def.in._zod.traits.has(\"$ZodTransform\")) {\n return inputOptin(def.out);\n }\n if (def.type === \"catch\") {\n return inputOptin(def.innerType);\n }\n return schema._zod.optin;\n}\nexport const objectProcessor = (schema, ctx, _json, params) => {\n const json = _json;\n const def = schema._zod.def;\n const shape = def.shape;\n // dropping it while still emitting `additionalProperties: false` would emit a schema that rejects data this one requires\n const symbolKeys = Object.getOwnPropertySymbols(shape);\n if (symbolKeys.length &&\n handleUnrepresentable(schema, ctx, json, params, \"Symbol keys cannot be represented in JSON Schema\")) {\n return;\n }\n json.type = \"object\";\n json.properties = {};\n for (const key in shape) {\n // assignProp so a __proto__ key becomes an own property instead of hitting the inherited setter on the plain {} we build into\n assignProp(json.properties, key, processSchema(shape[key], ctx, {\n ...params,\n path: [...params.path, \"properties\", key],\n }));\n }\n // required keys\n const requiredKeys = [];\n for (const key of Object.keys(shape)) {\n const field = def.shape[key];\n if (ctx.io === \"input\" ? inputOptin(field) === undefined : field._zod.optout === undefined) {\n requiredKeys.push(key);\n }\n }\n if (requiredKeys.length > 0) {\n json.required = requiredKeys;\n }\n // catchall\n if (def.catchall?._zod.def.type === \"never\") {\n // strict\n json.additionalProperties = false;\n }\n else if (!def.catchall) {\n // regular\n if (ctx.io === \"output\")\n json.additionalProperties = false;\n }\n else if (def.catchall) {\n json.additionalProperties = processSchema(def.catchall, ctx, {\n ...params,\n path: [...params.path, \"additionalProperties\"],\n });\n }\n};\nexport const unionProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n // Exclusive unions (inclusive === false) use oneOf (exactly one match) instead of anyOf (one or more matches). This includes both z.xor() and discriminated unions\n const isExclusive = def.inclusive === false;\n const options = def.options.map((x, i) => processSchema(x, ctx, {\n ...params,\n path: [...params.path, isExclusive ? \"oneOf\" : \"anyOf\", i],\n }));\n if (isExclusive) {\n json.oneOf = options;\n }\n else {\n json.anyOf = options;\n }\n};\nexport const intersectionProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n const a = processSchema(def.left, ctx, {\n ...params,\n path: [...params.path, \"allOf\", 0],\n });\n const b = processSchema(def.right, ctx, {\n ...params,\n path: [...params.path, \"allOf\", 1],\n });\n const isSimpleIntersection = (val) => \"allOf\" in val && Object.keys(val).length === 1;\n const allOf = [\n ...(isSimpleIntersection(a) ? a.allOf : [a]),\n ...(isSimpleIntersection(b) ? b.allOf : [b]),\n ];\n json.allOf = allOf;\n // Recorded innermost first, so a nested intersection has already folded by the time this one is considered. The array is the handle rather than the schema, because a wrapper that inherits this schema shares the same array; `finalize` folds every object holding it. See `foldIntersection`.\n ctx.intersections.push(allOf);\n};\nexport const tupleProcessor = (schema, ctx, _json, params) => {\n const json = _json;\n const def = schema._zod.def;\n json.type = \"array\";\n const prefixPath = ctx.target === \"draft-2020-12\" ? \"prefixItems\" : \"items\";\n const restPath = ctx.target === \"draft-2020-12\" ? \"items\" : ctx.target === \"openapi-3.0\" ? \"items\" : \"additionalItems\";\n const prefixItems = def.items.map((x, i) => processSchema(x, ctx, {\n ...params,\n path: [...params.path, prefixPath, i],\n }));\n const rest = def.rest\n ? processSchema(def.rest, ctx, {\n ...params,\n path: [...params.path, restPath, ...(ctx.target === \"openapi-3.0\" ? [def.items.length] : [])],\n })\n : null;\n let minItems = def.items.length;\n while (minItems > 0) {\n const item = def.items[minItems - 1];\n const optional = ctx.io === \"input\" ? inputOptin(item) !== undefined : item._zod.optout === \"optional\";\n if (!optional)\n break;\n minItems--;\n }\n const maxItems = def.items.length;\n const isClosed = !def.rest;\n if (ctx.target === \"draft-2020-12\") {\n json.prefixItems = prefixItems;\n if (isClosed) {\n json.items = false;\n }\n else if (rest) {\n json.items = rest;\n }\n if (minItems > 0)\n json.minItems = minItems;\n if (isClosed)\n json.maxItems = maxItems;\n }\n else if (ctx.target === \"openapi-3.0\") {\n json.items = {\n anyOf: prefixItems,\n };\n if (rest) {\n json.items.anyOf.push(rest);\n }\n if (minItems > 0)\n json.minItems = minItems;\n if (isClosed)\n json.maxItems = maxItems;\n }\n else {\n json.items = prefixItems;\n if (isClosed) {\n json.additionalItems = false;\n }\n else if (rest) {\n json.additionalItems = rest;\n }\n if (minItems > 0)\n json.minItems = minItems;\n if (isClosed)\n json.maxItems = maxItems;\n }\n // explicit user-defined length checks take precedence\n const { minimum, maximum } = aggregateChecks(schema);\n if (typeof minimum === \"number\")\n json.minItems = minimum;\n if (typeof maximum === \"number\")\n json.maxItems = maximum;\n};\n/** JSON object keys are always strings, so a numeric record key schema is re-expressed over the\n * numeric-string form the record parser matches. Deferred to `finalize`, after the flatten: a key\n * behind a wrapper only carries its own `type` before then, and a union key only has its branches.\n *\n * A numeric bound cannot apply to a property name, so `minimum` and its siblings are dropped rather\n * than carried over: keeping them beside `type: \"string\"` reproduces the match-nothing schema this\n * exists to fix. A key that carries one therefore emits wider than the record parses — `z.record(z.number().min(5), V)`\n * accepts `\"3\"` — which is the deliberate trade, since throwing on it would reject an ordinary schema\n * outright. */\nfunction stringifyKeyNames(bySchema, json, visited) {\n // an extracted key that rewrites cannot go on sharing its definition — the string form a key position needs is not the number form every other reference wants — so it inlines. One that does not rewrite keeps the `$ref`.\n if (json.$ref) {\n // a recursive key holds its own reference inside its definition, so a node already on the path is left alone rather than resolved again\n if (visited.has(json))\n return json;\n visited.add(json);\n const def = bySchema.get(json)?.def;\n if (!def)\n return json;\n const inlined = stringifyKeyNames(bySchema, def, visited);\n return inlined === def ? json : inlined;\n }\n for (const keyword of [\"anyOf\", \"oneOf\"]) {\n const branches = json[keyword];\n if (!Array.isArray(branches))\n continue;\n const mapped = branches.map((branch) => stringifyKeyNames(bySchema, branch, visited));\n // rebuilding regardless would detach a key that had nothing to re-express, dropping its `$ref` and leaking the internal `id`\n if (mapped.some((branch, i) => branch !== branches[i]))\n json = { ...json, [keyword]: mapped };\n }\n // a member that already admits a string leaves the key unconstrained, so the node's own type re-expresses only when every member is numeric\n const types = Array.isArray(json.type) ? json.type : [json.type];\n const numericType = !types.includes(\"string\") && types.some((t) => t === \"number\" || t === \"integer\");\n // a heterogeneous key carries no type at all, so its numeric members are caught here instead\n const values = json.enum ?? (json.const !== undefined ? [json.const] : undefined);\n if (!numericType && !values?.some((v) => typeof v === \"number\"))\n return json;\n const { minimum, maximum, exclusiveMinimum, exclusiveMaximum, multipleOf, format, id, ...rest } = json;\n if (rest.enum)\n rest.enum = rest.enum.map((v) => (typeof v === \"number\" ? String(v) : v));\n else if (typeof rest.const === \"number\")\n rest.const = String(rest.const);\n // a heterogeneous key keeps its absent type: the stringified members already say what a key may be\n if (!numericType)\n return rest;\n rest.type = \"string\";\n if (!values)\n rest.pattern = (types.includes(\"number\") ? regexes.number : regexes.integer).source;\n return rest;\n}\n/** Every record of one conversion, so the carriers are found in a single pass rather than once per record. */\nconst pendingRecords = new WeakMap();\nfunction rewriteKeyNames(ctx) {\n // an extracted key is resolved by the object `extractToDef` left in its place, so the map is built once rather than searched per reference. `_zod.toJSONSchema` can hand the same object to two schemas, so the first entry carrying a body wins, as a search would have found it.\n const bySchema = new Map();\n for (const entry of ctx.seen.values()) {\n if (entry.def && !bySchema.has(entry.schema))\n bySchema.set(entry.schema, entry);\n }\n const rewrites = new Map();\n for (const record of pendingRecords.get(ctx) ?? []) {\n const seen = ctx.seen.get(record);\n const names = (seen?.def ?? seen?.schema)?.propertyNames;\n if (!names || names === true || rewrites.has(names))\n continue;\n const rewritten = stringifyKeyNames(bySchema, names, new Set());\n if (rewritten !== names)\n rewrites.set(names, rewritten);\n }\n if (!rewrites.size)\n return;\n // the flatten has already copied each record's own properties onto every wrapper by reference, and an extracted body is another such copy, so every carrier holding a rewritten key is updated together\n for (const entry of ctx.seen.values()) {\n for (const carrier of [entry.schema, entry.def]) {\n const rewritten = carrier && rewrites.get(carrier.propertyNames);\n if (rewritten)\n carrier.propertyNames = rewritten;\n }\n }\n}\nexport const recordProcessor = (schema, ctx, _json, params) => {\n const json = _json;\n const def = schema._zod.def;\n json.type = \"object\";\n // For looseRecord with regex patterns, use patternProperties. This correctly represents \"only validate keys matching the pattern\" semantics and composes well with allOf (intersections)\n const keyType = def.keyType;\n const patterns = aggregateChecks(keyType).patterns;\n if (def.mode === \"loose\" && patterns && patterns.size > 0) {\n // Use patternProperties for looseRecord with regex patterns\n const valueSchema = processSchema(def.valueType, ctx, {\n ...params,\n path: [...params.path, \"patternProperties\", \"*\"],\n });\n json.patternProperties = {};\n for (const pattern of patterns) {\n assignProp(json.patternProperties, exactPattern(pattern).source, valueSchema);\n }\n }\n else {\n // Default behavior: use propertyNames + additionalProperties\n if (ctx.target === \"draft-07\" || ctx.target === \"draft-2020-12\") {\n json.propertyNames = processSchema(def.keyType, ctx, {\n ...params,\n path: [...params.path, \"propertyNames\"],\n });\n let pending = pendingRecords.get(ctx);\n if (!pending) {\n pending = [];\n pendingRecords.set(ctx, pending);\n ctx.deferred.push(() => rewriteKeyNames(ctx));\n }\n pending.push(schema);\n }\n json.additionalProperties = processSchema(def.valueType, ctx, {\n ...params,\n path: [...params.path, \"additionalProperties\"],\n });\n }\n // Add required for keys with discrete values (enum, literal, etc.)\n const keyValues = keyType._zod.values;\n // Every key shares one value schema, so an optional-in value makes the whole key set omittable on input. Output keeps them: the exhaustive branch assigns every key, even one whose value came back undefined.\n const omittableOnInput = ctx.io === \"input\" && inputOptin(def.valueType) !== undefined;\n if (keyValues && !def.partial && !omittableOnInput) {\n const validKeyValues = [...keyValues].filter((v) => typeof v === \"string\" || typeof v === \"number\");\n if (validKeyValues.length > 0) {\n json.required = validKeyValues.map(String);\n }\n }\n};\nexport const nullableProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n const inner = processSchema(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n if (ctx.target === \"openapi-3.0\") {\n seen.ref = def.innerType;\n json.nullable = true;\n }\n else {\n json.anyOf = [inner, { type: \"null\" }];\n }\n};\nexport const nonoptionalProcessor = (schema, ctx, _json, params) => {\n const def = schema._zod.def;\n processSchema(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n};\n/** Round-trips a default value through JSON so the emitted schema is guaranteed to be valid JSON.\n * A BigInt has no reliable encoding, so it goes through `unrepresentable` like any other\n * unrepresentable value. Returns a sentinel when the caller must not write a default of its own. */\nconst UNREPRESENTABLE_DEFAULT = Symbol();\nfunction serializeDefaultValue(value, schema, ctx, json, params) {\n let unrepresentable = false;\n const serialized = JSON.stringify(value, (_, val) => {\n if (typeof val !== \"bigint\")\n return val;\n unrepresentable = true;\n return null;\n });\n if (!unrepresentable)\n return JSON.parse(serialized);\n handleUnrepresentable(schema, ctx, json, params, \"BigInt defaults cannot be represented in JSON Schema\");\n return UNREPRESENTABLE_DEFAULT;\n}\nexport const defaultProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n processSchema(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n const value = serializeDefaultValue(def.defaultValue, schema, ctx, json, params);\n if (value !== UNREPRESENTABLE_DEFAULT)\n json.default = value;\n};\nexport const prefaultProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n processSchema(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n if (ctx.io !== \"input\")\n return;\n const value = serializeDefaultValue(def.defaultValue, schema, ctx, json, params);\n if (value !== UNREPRESENTABLE_DEFAULT)\n json._prefault = value;\n};\nexport const catchProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n processSchema(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n let catchValue;\n try {\n catchValue = def.catchValue(undefined);\n }\n catch {\n handleUnrepresentable(schema, ctx, json, params, \"Dynamic catch values are not supported in JSON Schema\");\n return;\n }\n json.default = catchValue;\n};\nexport const pipeProcessor = (schema, ctx, _json, params) => {\n const def = schema._zod.def;\n const inIsTransform = def.in._zod.traits.has(\"$ZodTransform\");\n const innerType = ctx.io === \"input\" ? (inIsTransform ? def.out : def.in) : def.out;\n processSchema(innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = innerType;\n};\nexport const readonlyProcessor = (schema, ctx, json, params) => {\n const def = schema._zod.def;\n processSchema(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n json.readOnly = true;\n};\nexport const promiseProcessor = (schema, ctx, _json, params) => {\n const def = schema._zod.def;\n processSchema(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n};\nexport const optionalProcessor = (schema, ctx, _json, params) => {\n const def = schema._zod.def;\n processSchema(def.innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = def.innerType;\n};\nexport const lazyProcessor = (schema, ctx, _json, params) => {\n const innerType = schema._zod.innerType;\n processSchema(innerType, ctx, params);\n const seen = ctx.seen.get(schema);\n seen.ref = innerType;\n};\n// ==================== ALL PROCESSORS ====================\nexport const allProcessors = {\n string: stringProcessor,\n number: numberProcessor,\n boolean: booleanProcessor,\n bigint: bigintProcessor,\n symbol: symbolProcessor,\n null: nullProcessor,\n undefined: undefinedProcessor,\n void: voidProcessor,\n never: neverProcessor,\n any: anyProcessor,\n unknown: unknownProcessor,\n date: dateProcessor,\n enum: enumProcessor,\n literal: literalProcessor,\n nan: nanProcessor,\n template_literal: templateLiteralProcessor,\n file: fileProcessor,\n success: successProcessor,\n custom: customProcessor,\n function: functionProcessor,\n transform: transformProcessor,\n map: mapProcessor,\n set: setProcessor,\n array: arrayProcessor,\n object: objectProcessor,\n union: unionProcessor,\n intersection: intersectionProcessor,\n tuple: tupleProcessor,\n record: recordProcessor,\n nullable: nullableProcessor,\n nonoptional: nonoptionalProcessor,\n default: defaultProcessor,\n prefault: prefaultProcessor,\n catch: catchProcessor,\n pipe: pipeProcessor,\n readonly: readonlyProcessor,\n promise: promiseProcessor,\n optional: optionalProcessor,\n lazy: lazyProcessor,\n};\nexport function toJSONSchema(input, params) {\n if (\"_idmap\" in input) {\n // Registry case\n const registry = input;\n const ctx = initializeContext({ ...params, processors: allProcessors });\n const defs = {};\n // First pass: process all schemas to build the seen map\n for (const entry of registry._idmap.entries()) {\n const [_, schema] = entry;\n processSchema(schema, ctx);\n }\n const schemas = {};\n const external = {\n registry,\n uri: params?.uri,\n defs,\n };\n // Update the context with external configuration\n ctx.external = external;\n // Second pass: emit each schema\n for (const entry of registry._idmap.entries()) {\n const [key, schema] = entry;\n extractDefs(ctx, schema);\n assignProp(schemas, key, finalize(ctx, schema));\n }\n if (Object.keys(defs).length > 0) {\n const defsSegment = ctx.target === \"draft-2020-12\" ? \"$defs\" : \"definitions\";\n schemas.__shared = {\n [defsSegment]: defs,\n };\n }\n return { schemas };\n }\n // Single schema case\n const ctx = initializeContext({ ...params, processors: allProcessors });\n processSchema(input, ctx);\n extractDefs(ctx, input);\n return finalize(ctx, input);\n}\n","// import { $ZodType } from \"./schemas.js\";\nimport * as core from \"./core.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nexport const $ZodCheck = /*@__PURE__*/ core.$constructor(\"$ZodCheck\", (inst, def) => {\n var _a;\n inst._zod ?? (inst._zod = {});\n inst._zod.def = def;\n (_a = inst._zod).onattach ?? (_a.onattach = []);\n});\n/** Default `when` for size-based checks: run only on non-nullish values with a `size`. */\nconst _whenHasSize = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.size !== undefined;\n};\n/** Default `when` for length-based checks: run only on non-nullish values with a `length`. */\nconst _whenHasLength = (payload) => {\n const val = payload.value;\n return !util.nullish(val) && val.length !== undefined;\n};\nconst numericOriginMap = {\n number: \"number\",\n bigint: \"bigint\",\n object: \"date\",\n};\nexport const $ZodCheckLessThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckLessThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value <= def.value : payload.value < def.value) {\n return;\n }\n payload.issues.push({\n origin: numericOriginMap[typeof payload.value] ?? origin,\n code: \"too_big\",\n maximum: typeof def.value === \"object\" ? def.value.getTime() : def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckGreaterThan = /*@__PURE__*/ core.$constructor(\"$ZodCheckGreaterThan\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const origin = numericOriginMap[typeof def.value];\n inst._zod.check = (payload) => {\n if (def.inclusive ? payload.value >= def.value : payload.value > def.value) {\n return;\n }\n payload.issues.push({\n origin: numericOriginMap[typeof payload.value] ?? origin,\n code: \"too_small\",\n minimum: typeof def.value === \"object\" ? def.value.getTime() : def.value,\n input: payload.value,\n inclusive: def.inclusive,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMultipleOf = \n/*@__PURE__*/ core.$constructor(\"$ZodCheckMultipleOf\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n if (typeof payload.value !== typeof def.value)\n throw new Error(\"Cannot mix number and bigint in multiple_of check.\");\n const isMultiple = typeof payload.value === \"bigint\"\n ? // `value % 0n` throws, and nothing is a multiple of zero — the number branch already fails this way via NaN\n def.value !== BigInt(0) && payload.value % def.value === BigInt(0)\n : util.floatSafeRemainder(payload.value, def.value) === 0;\n if (isMultiple)\n return;\n payload.issues.push({\n origin: typeof payload.value,\n code: \"not_multiple_of\",\n divisor: def.value,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckNumberFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n def.format = def.format || \"float64\";\n const isInt = def.format?.includes(\"int\");\n const origin = isInt ? \"int\" : \"number\";\n const [minimum, maximum] = util.NUMBER_FORMAT_RANGES[def.format];\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (isInt) {\n if (!Number.isInteger(input)) {\n // invalid_format issue\n // payload.issues.push({\n // expected: def.format,\n // format: def.format,\n // code: \"invalid_format\",\n // input,\n // inst,\n // });\n // invalid_type issue\n payload.issues.push({\n expected: origin,\n format: def.format,\n code: \"invalid_type\",\n continue: false,\n input,\n inst,\n });\n return;\n // not_multiple_of issue\n // payload.issues.push({\n // code: \"not_multiple_of\",\n // origin: \"number\",\n // input,\n // inst,\n // divisor: 1,\n // });\n }\n if (!Number.isSafeInteger(input)) {\n if (input > 0) {\n // too_big\n payload.issues.push({\n input,\n code: \"too_big\",\n maximum: Number.MAX_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n inclusive: true,\n continue: !def.abort,\n });\n }\n else {\n // too_small\n payload.issues.push({\n input,\n code: \"too_small\",\n minimum: Number.MIN_SAFE_INTEGER,\n note: \"Integers must be within the safe integer range.\",\n inst,\n origin,\n inclusive: true,\n continue: !def.abort,\n });\n }\n return;\n }\n }\n if (input < minimum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_small\",\n minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"number\",\n input,\n code: \"too_big\",\n maximum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodCheckBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckBigIntFormat\", (inst, def) => {\n $ZodCheck.init(inst, def); // no format checks\n const [minimum, maximum] = util.BIGINT_FORMAT_RANGES[def.format];\n inst._zod.check = (payload) => {\n const input = payload.value;\n if (input < minimum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_small\",\n minimum: minimum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n if (input > maximum) {\n payload.issues.push({\n origin: \"bigint\",\n input,\n code: \"too_big\",\n maximum,\n inclusive: true,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodCheckMaxSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = _whenHasSize);\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size <= def.maximum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinSize = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinSize\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = _whenHasSize);\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size >= def.minimum)\n return;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckSizeEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckSizeEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = _whenHasSize);\n inst._zod.check = (payload) => {\n const input = payload.value;\n const size = input.size;\n if (size === def.size)\n return;\n const tooBig = size > def.size;\n payload.issues.push({\n origin: util.getSizableOrigin(input),\n ...(tooBig ? { code: \"too_big\", maximum: def.size } : { code: \"too_small\", minimum: def.size }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMaxLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMaxLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = _whenHasLength);\n inst._zod.check = (payload) => {\n const input = payload.value;\n const units = input.length;\n // Strings are measured in Unicode code points, not UTF-16 units. A code point is at most two units, so a string that already fits in units fits in code points; only an overflow has to be counted.\n const length = typeof input === \"string\" && units > def.maximum ? util.codePointLength(input) : units;\n if (length <= def.maximum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_big\",\n maximum: def.maximum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckMinLength = /*@__PURE__*/ core.$constructor(\"$ZodCheckMinLength\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = _whenHasLength);\n inst._zod.check = (payload) => {\n const input = payload.value;\n const units = input.length;\n // A code point is one or two UTF-16 units, so fewer units than the floor can never reach it and twice the floor always clears it. Only in between is the exact count in doubt.\n const length = typeof input === \"string\" && units >= def.minimum && units < def.minimum * 2\n ? util.codePointLength(input)\n : units;\n if (length >= def.minimum)\n return;\n const origin = util.getLengthableOrigin(input);\n payload.issues.push({\n origin,\n code: \"too_small\",\n minimum: def.minimum,\n inclusive: true,\n input,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLengthEquals = /*@__PURE__*/ core.$constructor(\"$ZodCheckLengthEquals\", (inst, def) => {\n var _a;\n $ZodCheck.init(inst, def);\n (_a = inst._zod.def).when ?? (_a.when = _whenHasLength);\n inst._zod.check = (payload) => {\n const input = payload.value;\n const units = input.length;\n // A code point is one or two UTF-16 units, so outside `[length, length * 2]` units the target is missed either way — and missed in the same direction in both measures.\n const length = typeof input === \"string\" && units >= def.length && units <= def.length * 2\n ? util.codePointLength(input)\n : units;\n if (length === def.length)\n return;\n const origin = util.getLengthableOrigin(input);\n const tooBig = length > def.length;\n payload.issues.push({\n origin,\n ...(tooBig ? { code: \"too_big\", maximum: def.length } : { code: \"too_small\", minimum: def.length }),\n inclusive: true,\n exact: true,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCheckStringFormat\", (inst, def) => {\n var _a, _b;\n $ZodCheck.init(inst, def);\n if (def.pattern)\n (_a = inst._zod).check ?? (_a.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n ...(def.pattern ? { pattern: def.pattern.toString() } : {}),\n inst,\n continue: !def.abort,\n });\n });\n else\n (_b = inst._zod).check ?? (_b.check = () => { });\n});\nexport const $ZodCheckRegex = /*@__PURE__*/ core.$constructor(\"$ZodCheckRegex\", (inst, def) => {\n $ZodCheckStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n def.pattern.lastIndex = 0;\n if (def.pattern.test(payload.value))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"regex\",\n input: payload.value,\n pattern: def.pattern.toString(),\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckLowerCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckLowerCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.lowercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckUpperCase = /*@__PURE__*/ core.$constructor(\"$ZodCheckUpperCase\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.uppercase);\n $ZodCheckStringFormat.init(inst, def);\n});\nexport const $ZodCheckIncludes = /*@__PURE__*/ core.$constructor(\"$ZodCheckIncludes\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const escapedRegex = util.escapeRegex(def.includes);\n // `String.prototype.includes(sub, position)` matches `sub` at `position`\n // OR LATER, so the pattern must allow at least `position` leading chars\n // (`{N,}`), not exactly `position` chars (`{N}`).\n const pattern = new RegExp(typeof def.position === \"number\" ? `^.{${def.position},}${escapedRegex}` : escapedRegex);\n def.pattern = pattern;\n inst._zod.check = (payload) => {\n if (payload.value.includes(def.includes, def.position))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"includes\",\n includes: def.includes,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckStartsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckStartsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`^${util.escapeRegex(def.prefix)}.*`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.check = (payload) => {\n if (payload.value.startsWith(def.prefix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"starts_with\",\n prefix: def.prefix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckEndsWith = /*@__PURE__*/ core.$constructor(\"$ZodCheckEndsWith\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const pattern = new RegExp(`.*${util.escapeRegex(def.suffix)}$`);\n def.pattern ?? (def.pattern = pattern);\n inst._zod.check = (payload) => {\n if (payload.value.endsWith(def.suffix))\n return;\n payload.issues.push({\n origin: \"string\",\n code: \"invalid_format\",\n format: \"ends_with\",\n suffix: def.suffix,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n///////////////////////////////////\n///// $ZodCheckProperty /////\n///////////////////////////////////\nfunction handleCheckPropertyResult(result, payload, property) {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(property, result.issues));\n }\n}\nexport const $ZodCheckProperty = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperty\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n const result = def.schema._zod.run({\n value: payload.value[def.property],\n issues: [],\n }, {});\n if (result instanceof Promise) {\n return result.then((result) => handleCheckPropertyResult(result, payload, def.property));\n }\n handleCheckPropertyResult(result, payload, def.property);\n return;\n };\n});\nexport const $ZodCheckProperties = /*@__PURE__*/ core.$constructor(\"$ZodCheckProperties\", (inst, def) => {\n $ZodCheck.init(inst, def);\n util.hide(inst, Symbol.iterator, function* () {\n yield inst;\n });\n // key and schema snapshotted together: reading one live and the other cached lets a later mutation of the caller's shape object pair a stale key with a missing schema\n let entries;\n inst._zod.check = (payload) => {\n // the base schema already typed the value, so only a nullish one is rejected here: the properties read on a primitive too, matching z.property() on a string's length\n if (payload.value == null) {\n payload.issues.push({ expected: \"object\", code: \"invalid_type\", input: payload.value, inst });\n return undefined;\n }\n entries ?? (entries = Reflect.ownKeys(def.shape).map((key) => [key, def.shape[key]]));\n const input = payload.value;\n let proms;\n for (const [key, schema] of entries) {\n const result = schema._zod.run({ value: input[key], issues: [] }, {});\n if (result instanceof Promise) {\n proms ?? (proms = []);\n proms.push(result.then((result) => handleCheckPropertyResult(result, payload, key)));\n }\n else {\n handleCheckPropertyResult(result, payload, key);\n }\n }\n if (proms)\n return Promise.all(proms).then(() => undefined);\n return undefined;\n };\n});\nexport const $ZodCheckMimeType = /*@__PURE__*/ core.$constructor(\"$ZodCheckMimeType\", (inst, def) => {\n $ZodCheck.init(inst, def);\n const mimeSet = new Set(def.mime);\n inst._zod.check = (payload) => {\n if (mimeSet.has(payload.value.type))\n return;\n payload.issues.push({\n code: \"invalid_value\",\n values: def.mime,\n input: payload.value.type,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCheckOverwrite = /*@__PURE__*/ core.$constructor(\"$ZodCheckOverwrite\", (inst, def) => {\n $ZodCheck.init(inst, def);\n inst._zod.check = (payload) => {\n payload.value = def.tx(payload.value);\n };\n});\n","unable to read source [project]/node_modules/@aeolus-fleet/common/src/rules/payload.ts","import * as util from \"./util.js\";\n/**\n * @deprecated CUID v1 is deprecated by its authors due to information leakage\n * (timestamps embedded in the id). Use {@link cuid2} instead.\n * See https://github.com/paralleldrive/cuid.\n */\nexport const cuid = /^[cC][0-9a-z]{6,}$/;\nexport const cuid2 = /^[0-9a-z]+$/;\nexport const ulid = /^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/;\nexport const xid = /^[0-9a-vA-V]{20}$/;\nexport const ksuid = /^[A-Za-z0-9]{27}$/;\nexport const nanoid = /^[a-zA-Z0-9_-]{21}$/;\nexport function nanoidOfLength(length) {\n return new RegExp(`^[a-zA-Z0-9_-]{${length}}$`);\n}\n/** ISO 8601-1 duration regex. Does not support the 8601-2 extensions like negative durations or fractional/negative components. */\nexport const duration = /^P(?:(\\d+W)|(?!.*W)(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(?=\\d)(\\d+H)?(\\d+M)?(\\d+([.,]\\d+)?S)?)?)$/;\n/** Implements ISO 8601-2 extensions like explicit +- prefixes, mixing weeks with other units, and fractional/negative components. */\nexport const 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)?)??$/;\n/** A regex for any UUID-like identifier: 8-4-4-4-12 hex pattern */\nexport const 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})$/;\n/** Returns a regex for validating an RFC 9562/4122 UUID.\n *\n * @param version Optionally specify a version 1-8. If no version is specified, all versions are supported. */\nexport const uuid = (version) => {\n if (!version)\n 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)$/;\n 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})$`);\n};\nexport const uuid4 = /*@__PURE__*/ uuid(4);\nexport const uuid6 = /*@__PURE__*/ uuid(6);\nexport const uuid7 = /*@__PURE__*/ uuid(7);\n/** Practical email validation */\nexport const 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,}$/;\n/** Equivalent to the HTML5 input[type=email] validation implemented by browsers. Source: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/email */\nexport const 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])?)*$/;\n/** The classic emailregex.com regex for RFC 5322-compliant emails */\nexport const 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,}))$/;\n/** A loose regex that allows Unicode characters, enforces length limits, and that's about it. */\nexport const unicodeEmail = /^[^\\s@\"]{1,64}@[^\\s@]{1,255}$/u;\nexport const idnEmail = unicodeEmail;\nexport const 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])?)*$/;\n// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression\n// Single character class, not an alternation: the two properties overlap (U+1F9B0-U+1F9B3), so `(A|B)+` backtracks exponentially on a failed match. The leading lookahead then demands one anchor — a pictograph, a regional indicator, or the enclosing keycap — because `\\p{Emoji_Component}` on its own covers ASCII digits, `#`, `*`, ZWJ, variation selectors and skin tone modifiers, none of which is an emoji without a base.\nconst _emoji = `^(?=[\\\\s\\\\S]*[\\\\p{Extended_Pictographic}\\\\p{Regional_Indicator}\\\\u20E3])[\\\\p{Extended_Pictographic}\\\\p{Emoji_Component}]+$`;\nexport function emoji() {\n return new RegExp(_emoji, \"u\");\n}\nexport const 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])$/;\nexport const 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}|:))$/;\nexport const mac = (delimiter) => {\n const escapedDelim = util.escapeRegex(delimiter ?? \":\");\n return new RegExp(`^(?:[0-9A-F]{2}${escapedDelim}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${escapedDelim}){5}[0-9a-f]{2}$`);\n};\nexport const 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])$/;\nexport const 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])$/;\n// https://stackoverflow.com/questions/7860392/determine-if-string-is-in-base64-using-javascript\nexport const base64 = /^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/;\nexport const base64url = /^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/;\n// based on https://stackoverflow.com/questions/106179/regular-expression-to-match-dns-hostname-or-ip-address\n// export const hostname: RegExp = /^([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+$/;\nexport const 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])?)*\\.?$/;\nexport const domain = /^(?=.{1,253}$)([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,63}$/;\nexport const httpProtocol = /^https?$/;\n// https://blog.stevenlevithan.com/archives/validate-phone-number#r4-3 (regex sans spaces) E.164: leading digit must be 1-9; total digits (excluding '+') between 7-15\nexport const e164 = /^\\+[1-9]\\d{6,14}$/;\n// Credit card shape: 12–19 digits, optionally separated by single spaces or single hyphens. ISO/IEC 7812 caps the PAN at 19 digits; 12 is the shortest issued length (Maestro).\nexport const creditCard = /^\\d(?:[ -]?\\d){11,18}$/;\n// ISO 4217 alpha codes from the SIX list, regenerated by scripts/update-iso-4217.ts\nexport const 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)$/;\n// iban electronic format: 2-letter country, check digits 02-98 (the only values `98 - remainder` can produce), 11-30 bban characters\nexport const iban = /^[A-Z]{2}(?!00|01|99)\\d{2}[A-Z0-9]{11,30}$/;\nconst 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])))`;\n/** Anchors a pattern source. The interpolation lives here rather than at the call site because\n * esbuild will not drop a `@__PURE__` call whose own argument interpolates a variable, but it\n * will drop `anchor(dateSource)`. Keeping it inline pinned `date` into every bundle. */\nfunction anchor(source) {\n return new RegExp(`^${source}$`);\n}\nexport const date = /*@__PURE__*/ anchor(dateSource);\nfunction timeSource(args) {\n const hhmm = `(?:[01]\\\\d|2[0-3]):[0-5]\\\\d`;\n const regex = typeof args.precision === \"number\"\n ? args.precision === -1\n ? `${hhmm}`\n : args.precision === 0\n ? `${hhmm}:[0-5]\\\\d`\n : `${hhmm}:[0-5]\\\\d\\\\.\\\\d{${args.precision}}`\n : args.seconds\n ? `${hhmm}:[0-5]\\\\d(?:\\\\.\\\\d+)?`\n : `${hhmm}(?::[0-5]\\\\d(?:\\\\.\\\\d+)?)?`;\n return regex;\n}\nexport function time(args) {\n return new RegExp(`^${timeSource(args)}$`);\n}\n// Adapted from https://stackoverflow.com/a/3143231\nexport function datetime(args) {\n const opts = [\"Z\"];\n // if (args.offset) opts.push(`([+-]\\\\d{2}:\\\\d{2})`);\n if (args.offset)\n opts.push(`([+-](?:[01]\\\\d|2[0-3]):[0-5]\\\\d)`);\n // RFC 3339 mandates seconds wherever the time carries a `Z` or an offset, so only the unqualified form `local` adds may omit them\n const qualified = `${timeSource({ precision: args.precision, seconds: true })}(?:${opts.join(\"|\")})`;\n const timeRegex = args.local ? `${qualified}|${timeSource({ precision: args.precision })}` : qualified;\n return new RegExp(`^${dateSource}T(?:${timeRegex})$`);\n}\n// the unbounded form of `string()` as a literal, so every plain string shares one instance instead of building its own\nexport const anyString = /^[\\s\\S]{0,}$/;\nexport const string = (params) => {\n const regex = params ? `[\\\\s\\\\S]{${params?.minimum ?? 0},${params?.maximum ?? \"\"}}` : `[\\\\s\\\\S]*`;\n return new RegExp(`^${regex}$`);\n};\nexport const bigint = /^-?\\d+n?$/;\nexport const integer = /^-?\\d+$/;\nexport const number = /^-?\\d+(?:\\.\\d+)?$/;\nexport const boolean = /^(?:true|false)$/i;\nconst _null = /^null$/i;\nexport { _null as null };\nconst _undefined = /^undefined$/i;\nexport { _undefined as undefined };\n// regex for string with no uppercase letters\nexport const lowercase = /^[^A-Z]*$/;\n// regex for string with no lowercase letters\nexport const uppercase = /^[^a-z]*$/;\n// regex for hexadecimal strings (any length)\nexport const hex = /^[0-9a-fA-F]*$/;\n// Hash regexes for different algorithms and encodings\n// Helper function to create base64 regex with exact length and padding\nfunction fixedBase64(bodyLength, padding) {\n return new RegExp(`^[A-Za-z0-9+/]{${bodyLength}}${padding}$`);\n}\n// Helper function to create base64url regex with exact length (no padding)\nfunction fixedBase64url(length) {\n return new RegExp(`^[A-Za-z0-9_-]{${length}}$`);\n}\n// MD5 (16 bytes): base64 = 24 chars total (22 + \"==\")\nexport const md5_hex = /^[0-9a-fA-F]{32}$/;\nexport const md5_base64 = /*@__PURE__*/ fixedBase64(22, \"==\");\nexport const md5_base64url = /*@__PURE__*/ fixedBase64url(22);\n// SHA1 (20 bytes): base64 = 28 chars total (27 + \"=\")\nexport const sha1_hex = /^[0-9a-fA-F]{40}$/;\nexport const sha1_base64 = /*@__PURE__*/ fixedBase64(27, \"=\");\nexport const sha1_base64url = /*@__PURE__*/ fixedBase64url(27);\n// SHA256 (32 bytes): base64 = 44 chars total (43 + \"=\")\nexport const sha256_hex = /^[0-9a-fA-F]{64}$/;\nexport const sha256_base64 = /*@__PURE__*/ fixedBase64(43, \"=\");\nexport const sha256_base64url = /*@__PURE__*/ fixedBase64url(43);\n// SHA384 (48 bytes): base64 = 64 chars total (no padding)\nexport const sha384_hex = /^[0-9a-fA-F]{96}$/;\nexport const sha384_base64 = /*@__PURE__*/ fixedBase64(64, \"\");\nexport const sha384_base64url = /*@__PURE__*/ fixedBase64url(64);\n// SHA512 (64 bytes): base64 = 88 chars total (86 + \"==\")\nexport const sha512_hex = /^[0-9a-fA-F]{128}$/;\nexport const sha512_base64 = /*@__PURE__*/ fixedBase64(86, \"==\");\nexport const sha512_base64url = /*@__PURE__*/ fixedBase64url(86);\n","import * as checks from \"./checks.js\";\nimport * as core from \"./core.js\";\nimport { Doc } from \"./doc.js\";\nimport { parse, parseAsync } from \"./parse.js\";\nimport * as regexes from \"./regexes.js\";\nimport * as util from \"./util.js\";\nimport { version } from \"./versions.js\";\nexport const $ZodType = /*@__PURE__*/ core.$constructor(\"$ZodType\", (inst, def) => {\n var _a;\n inst ?? (inst = {});\n inst._zod.def = def; // set _def property\n inst._zod.bag = inst._zod.bag || {}; // initialize _bag object\n inst._zod.version = version;\n const defChecks = inst._zod.def.checks;\n // if inst is itself a checks.$ZodCheck, run it as a check\n const checks = inst._zod.traits.has(\"$ZodCheck\")\n ? [inst, ...(defChecks ?? [])]\n : defChecks?.length\n ? [...defChecks]\n : [];\n for (const ch of checks) {\n for (const fn of ch._zod.onattach) {\n fn(inst);\n }\n }\n if (checks.length === 0) {\n // deferred initializer inst._zod.parse is not yet defined\n (_a = inst._zod).deferred ?? (_a.deferred = []);\n inst._zod.deferred?.push(() => {\n inst._zod.run = inst._zod.parse;\n });\n }\n else {\n const runChecks = (payload, checks, ctx) => {\n if (payload.memo)\n return payload;\n let isAborted = util.aborted(payload);\n let asyncResult;\n for (const ch of checks) {\n if (ch._zod.def.when) {\n if (util.explicitlyAborted(payload))\n continue;\n const shouldRun = ch._zod.def.when(payload);\n if (!shouldRun)\n continue;\n }\n else if (isAborted) {\n continue;\n }\n const currLen = payload.issues.length;\n const _ = ch._zod.check(payload);\n if (_ instanceof Promise && ctx?.async === false) {\n throw new core.$ZodAsyncError();\n }\n if (asyncResult || _ instanceof Promise) {\n asyncResult = (asyncResult ?? Promise.resolve()).then(async () => {\n await _;\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n return;\n util.attachSchema(payload.issues, currLen, inst);\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n });\n }\n else {\n const nextLen = payload.issues.length;\n if (nextLen === currLen)\n continue;\n util.attachSchema(payload.issues, currLen, inst);\n if (!isAborted)\n isAborted = util.aborted(payload, currLen);\n }\n }\n if (asyncResult) {\n return asyncResult.then(() => {\n return payload;\n });\n }\n return payload;\n };\n const handleCanaryResult = (canary, payload, ctx) => {\n // abort if the canary is aborted\n if (util.aborted(canary)) {\n canary.aborted = true;\n return canary;\n }\n // run checks first, then\n const checkResult = runChecks(payload, checks, ctx);\n if (checkResult instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return checkResult.then((checkResult) => inst._zod.parse(checkResult, ctx));\n }\n return inst._zod.parse(checkResult, ctx);\n };\n inst._zod.run = (payload, ctx) => {\n if (ctx.skipChecks) {\n return inst._zod.parse(payload, ctx);\n }\n if (ctx.direction === \"backward\") {\n // run canary initial pass (no checks)\n const canary = inst._zod.parse({ value: payload.value, issues: [] }, { ...ctx, skipChecks: true });\n if (canary instanceof Promise) {\n return canary.then((canary) => {\n return handleCanaryResult(canary, payload, ctx);\n });\n }\n return handleCanaryResult(canary, payload, ctx);\n }\n // forward\n const result = inst._zod.parse(payload, ctx);\n if (result instanceof Promise) {\n if (ctx.async === false)\n throw new core.$ZodAsyncError();\n return result.then((result) => runChecks(result, checks, ctx));\n }\n return runChecks(result, checks, ctx);\n };\n }\n}, {\n // Wrappers extend this by installing a richer factory over it; reading it eagerly would defeat the laziness.\n get \"~standard\"() {\n return util.hide(this, \"~standard\", standardProps(this));\n },\n set \"~standard\"(value) {\n util.own(this, \"~standard\", value);\n },\n});\n/** The Standard Schema surface for `inst`. Shared so wrappers can extend it without forcing it. */\n// a Standard Schema result only reports issues, so a failure finalizes them straight off the raw payload: no ZodError, and no lazy result to read through\nconst toStandardResult = (r, ctx) => r.issues.length ? { issues: r.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())) } : { value: r.value };\nasync function validateAsync(inst, value) {\n const ctx = { async: true };\n return toStandardResult((await inst._zod.run({ value, issues: [] }, ctx)), ctx);\n}\nexport function standardProps(inst) {\n return {\n validate: (value) => {\n const ctx = { async: false };\n try {\n const r = inst._zod.run({ value, issues: [] }, ctx);\n if (!(r instanceof Promise))\n return toStandardResult(r, ctx);\n }\n catch (_) { }\n // async function so a synchronously throwing check rejects instead of escaping validate\n return validateAsync(inst, value);\n },\n vendor: \"zod\",\n version: 1,\n };\n}\nexport { clone } from \"./util.js\";\nexport const $ZodString = /*@__PURE__*/ core.$constructor(\"$ZodString\", (inst, def) => {\n $ZodType.init(inst, def);\n // a format's own pattern, else unbounded; a template literal derives the check-aware form itself\n inst._zod.pattern = def.pattern ?? regexes.anyString;\n inst._zod.parse = (payload, _) => {\n if (def.coerce)\n try {\n payload.value = String(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"string\")\n return payload;\n payload.issues.push({\n expected: \"string\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodStringFormat\", (inst, def) => {\n // check initialization must come first\n checks.$ZodCheckStringFormat.init(inst, def);\n $ZodString.init(inst, def);\n});\nexport const $ZodGUID = /*@__PURE__*/ core.$constructor(\"$ZodGUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.guid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodUUID = /*@__PURE__*/ core.$constructor(\"$ZodUUID\", (inst, def) => {\n if (def.version) {\n const versionMap = {\n v1: 1,\n v2: 2,\n v3: 3,\n v4: 4,\n v5: 5,\n v6: 6,\n v7: 7,\n v8: 8,\n };\n const v = versionMap[def.version];\n if (v === undefined)\n throw new Error(`Invalid UUID version: \"${def.version}\"`);\n def.pattern ?? (def.pattern = regexes.uuid(v));\n }\n else\n def.pattern ?? (def.pattern = regexes.uuid());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodEmail = /*@__PURE__*/ core.$constructor(\"$ZodEmail\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.email);\n $ZodStringFormat.init(inst, def);\n});\n/** The `://` guard rejected the input before the URL constructor saw it. */\nexport const URL_BAD_FORMAT = 1;\n/** The URL parser rejected the input. */\nexport const URL_UNPARSEABLE = 2;\nexport function canParseURL(input) {\n try {\n if (typeof URL !== \"undefined\" && typeof URL.canParse === \"function\")\n return URL.canParse(input);\n new URL(input);\n return true;\n }\n catch {\n return false;\n }\n}\nexport function validateURL(trimmed, def) {\n if (!(\"normalize\" in def) && !(\"hostname\" in def) && !(\"protocol\" in def)) {\n return canParseURL(trimmed) || URL_UNPARSEABLE;\n }\n return parseURLObject(trimmed, def);\n}\n/** Parses a URL while preserving the non-normalizing HTTP guard. */\nexport function parseURLObject(trimmed, def) {\n // When normalize is off, require :// for http/https URLs. This prevents strings like \"http:example.com\" or \"https:/path\" from being silently accepted\n if (!def.normalize && def.protocol?.source === regexes.httpProtocol.source && !/^https?:\\/\\//i.test(trimmed)) {\n return URL_BAD_FORMAT;\n }\n try {\n if (typeof URL !== \"undefined\") {\n const URLStatic = URL;\n if (typeof URLStatic.parse === \"function\")\n return URLStatic.parse(trimmed) ?? URL_UNPARSEABLE;\n }\n // @ts-ignore\n return new URL(trimmed);\n }\n catch {\n return URL_UNPARSEABLE;\n }\n}\nconst asciiTabOrNewline = /[\\t\\n\\r]/g;\n/** The URL parser deletes every ASCII tab, LF and CR from its input before it parses, so `new URL(\"https://exa\\nmple.com\")` reports on `example.com`. Applying the same deletion to the returned value closes the half of that divergence which can move the host; the parser's other rewrite, stripping C0 controls at the edges, cannot. */\nexport function stripTabAndNewline(value) {\n return value.replace(asciiTabOrNewline, \"\");\n}\nexport function urlHostnameOk(url, hostname) {\n hostname.lastIndex = 0;\n return hostname.test(url.hostname);\n}\nexport function urlProtocolOk(url, protocol) {\n protocol.lastIndex = 0;\n return protocol.test(url.protocol.endsWith(\":\") ? url.protocol.slice(0, -1) : url.protocol);\n}\nexport const $ZodURL = /*@__PURE__*/ core.$constructor(\"$ZodURL\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n try {\n // Trim whitespace from input\n const trimmed = payload.value.trim();\n const url = validateURL(trimmed, def);\n if (url === URL_BAD_FORMAT) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid URL format\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n return;\n }\n if (url === URL_UNPARSEABLE) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n return;\n }\n if (url === true) {\n payload.value = stripTabAndNewline(trimmed);\n return;\n }\n if (def.hostname && !urlHostnameOk(url, def.hostname)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid hostname\",\n pattern: def.hostname.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n if (def.protocol && !urlProtocolOk(url, def.protocol)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n note: \"Invalid protocol\",\n pattern: def.protocol.source,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n // Set the output value based on normalize flag\n payload.value = def.normalize ? url.href : stripTabAndNewline(trimmed);\n return;\n }\n catch (_) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodEmoji = /*@__PURE__*/ core.$constructor(\"$ZodEmoji\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.emoji());\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodNanoID = /*@__PURE__*/ core.$constructor(\"$ZodNanoID\", (inst, def) => {\n if (def.length !== undefined && (!Number.isInteger(def.length) || def.length < 1))\n throw new Error(`Invalid nanoid length: ${def.length}`);\n def.pattern ?? (def.pattern = def.length === undefined ? regexes.nanoid : regexes.nanoidOfLength(def.length));\n $ZodStringFormat.init(inst, def);\n});\n/**\n * @deprecated CUID v1 is deprecated by its authors due to information leakage\n * (timestamps embedded in the id). Use {@link $ZodCUID2} instead.\n * See https://github.com/paralleldrive/cuid.\n */\nexport const $ZodCUID = /*@__PURE__*/ core.$constructor(\"$ZodCUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCUID2 = /*@__PURE__*/ core.$constructor(\"$ZodCUID2\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cuid2);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodULID = /*@__PURE__*/ core.$constructor(\"$ZodULID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ulid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodXID = /*@__PURE__*/ core.$constructor(\"$ZodXID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.xid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodKSUID = /*@__PURE__*/ core.$constructor(\"$ZodKSUID\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ksuid);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODateTime = /*@__PURE__*/ core.$constructor(\"$ZodISODateTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.datetime(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODate = /*@__PURE__*/ core.$constructor(\"$ZodISODate\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.date);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISOTime = /*@__PURE__*/ core.$constructor(\"$ZodISOTime\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.time(def));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodISODuration = /*@__PURE__*/ core.$constructor(\"$ZodISODuration\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.duration);\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodIPv4 = /*@__PURE__*/ core.$constructor(\"$ZodIPv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv4);\n $ZodStringFormat.init(inst, def);\n});\n/** An IPv6 address is written with hex digits, colons and dots, and nothing else. The guard is what makes the check below an IPv6 check: `new URL(\"http://[...]\")` parses an authority, not an address, so `@` and `\\` re-delimit it and `\"::@1\\\\\"` validates against the host `0.0.0.1`. The URL parser also deletes ASCII tab, LF and CR rather than failing, which is how `\"::1\\n\"` validated as `::1`. */\nconst ipv6Alphabet = /^[0-9a-fA-F:.]+$/;\nexport function isValidIPv6(value) {\n if (!ipv6Alphabet.test(value))\n return false;\n return canParseURL(`http://[${value}]`);\n}\nexport const $ZodIPv6 = /*@__PURE__*/ core.$constructor(\"$ZodIPv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.ipv6);\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (!isValidIPv6(payload.value)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"ipv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\nexport const $ZodMAC = /*@__PURE__*/ core.$constructor(\"$ZodMAC\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.mac(def.delimiter));\n $ZodStringFormat.init(inst, def);\n});\nexport const $ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv4\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv4);\n $ZodStringFormat.init(inst, def);\n});\nexport function isValidCIDRv6(value) {\n const parts = value.split(\"/\");\n if (parts.length !== 2)\n return false;\n const [address, prefix] = parts;\n if (!prefix)\n return false;\n const prefixNum = Number(prefix);\n if (`${prefixNum}` !== prefix)\n return false;\n if (prefixNum < 0 || prefixNum > 128)\n return false;\n return isValidIPv6(address);\n}\nexport const $ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"$ZodCIDRv6\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.cidrv6); // not used for validation\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (!isValidCIDRv6(payload.value)) {\n payload.issues.push({\n code: \"invalid_format\",\n format: \"cidrv6\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n }\n };\n});\n////////////////////////////// ZodBase64 //////////////////////////////\nexport function isValidBase64(data) {\n if (data === \"\")\n return true;\n // atob ignores whitespace, so reject it up front.\n if (/\\s/.test(data))\n return false;\n if (data.length % 4 !== 0)\n return false;\n try {\n // @ts-ignore\n atob(data);\n return true;\n }\n catch {\n return false;\n }\n}\n// lax on purpose: the quantified regexes.base64 overflows the regex stack on multi-MB input and its leading ^$| alternation leaks through template-literal composition; isValidBase64 enforces length and padding\nexport const base64Charset = /^[0-9a-zA-Z+/]*={0,2}$/;\nexport const $ZodBase64 = /*@__PURE__*/ core.$constructor(\"$ZodBase64\", (inst, def) => {\n def.pattern ?? (def.pattern = base64Charset);\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (isValidBase64(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n////////////////////////////// ZodBase64URL //////////////////////////////\n// lax on purpose: the quantified regexes.base64url overflows the regex stack on multi-MB input; isValidBase64 enforces length on the padded string\nexport const base64urlCharset = /^[A-Za-z0-9_-]*$/;\nexport function isValidBase64URL(data) {\n if (!base64urlCharset.test(data))\n return false;\n const base64 = data.replace(/[-_]/g, (c) => (c === \"-\" ? \"+\" : \"/\"));\n const padded = base64.padEnd(Math.ceil(base64.length / 4) * 4, \"=\");\n return isValidBase64(padded);\n}\nexport const $ZodBase64URL = /*@__PURE__*/ core.$constructor(\"$ZodBase64URL\", (inst, def) => {\n def.pattern ?? (def.pattern = base64urlCharset);\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (isValidBase64URL(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"base64url\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodE164 = /*@__PURE__*/ core.$constructor(\"$ZodE164\", (inst, def) => {\n def.pattern ?? (def.pattern = regexes.e164);\n $ZodStringFormat.init(inst, def);\n});\n////////////////////////////// ZodCreditCard //////////////////////////////\nconst CC_SANITIZE = /[- ]/g;\n/** Luhn checksum on a digit-only string. Adapted from valibot (MIT). */\nfunction isLuhnAlgo(digits) {\n let length = digits.length;\n let bit = 1;\n let sum = 0;\n while (length) {\n const value = digits.charCodeAt(--length) - 48;\n bit ^= 1;\n sum += bit ? [0, 2, 4, 6, 8, 1, 3, 5, 7, 9][value] : value;\n }\n return sum % 10 === 0;\n}\nexport function isValidCreditCard(input) {\n if (!regexes.creditCard.test(input))\n return false;\n return isLuhnAlgo(input.replace(CC_SANITIZE, \"\"));\n}\nexport const $ZodCreditCard = /*@__PURE__*/ core.$constructor(\"$ZodCreditCard\", (inst, def) => {\n // Shape only — the Luhn check below is not expressible as a pattern, so consumers of `pattern` (JSON Schema, template literals) get the length and separator rules alone.\n def.pattern ?? (def.pattern = regexes.creditCard);\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (isValidCreditCard(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"credit_card\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n////////////////////////////// ZodIBAN //////////////////////////////\n// iso 7064 mod 97-10 checksum without BigInt\nfunction isIso7064Mod97(iban) {\n let remainder = 0;\n const len = iban.length;\n for (let i = 4; i < len; i++) {\n const code = iban.charCodeAt(i);\n remainder = (code >= 65 ? remainder * 100 + (code - 55) : remainder * 10 + (code - 48)) % 97;\n }\n for (let i = 0; i < 4; i++) {\n const code = iban.charCodeAt(i);\n remainder = (code >= 65 ? remainder * 100 + (code - 55) : remainder * 10 + (code - 48)) % 97;\n }\n return remainder === 1;\n}\nexport function isValidIBAN(input) {\n if (!regexes.iban.test(input))\n return false;\n return isIso7064Mod97(input);\n}\nexport const $ZodIBAN = /*@__PURE__*/ core.$constructor(\"$ZodIBAN\", (inst, def) => {\n // shape only — checksum is not expressible as a pattern\n def.pattern ?? (def.pattern = regexes.iban);\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (isValidIBAN(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"iban\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\n////////////////////////////// ZodJWT //////////////////////////////\nexport function isValidJWT(token, algorithm = null) {\n try {\n const tokensParts = token.split(\".\");\n if (tokensParts.length !== 3)\n return false;\n const [header] = tokensParts;\n if (!header)\n return false;\n // @ts-ignore\n const parsedHeader = JSON.parse(atob(header));\n if (\"typ\" in parsedHeader && parsedHeader?.typ !== \"JWT\")\n return false;\n if (!parsedHeader.alg)\n return false;\n if (algorithm && (!(\"alg\" in parsedHeader) || parsedHeader.alg !== algorithm))\n return false;\n return true;\n }\n catch {\n return false;\n }\n}\nexport const $ZodJWT = /*@__PURE__*/ core.$constructor(\"$ZodJWT\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (isValidJWT(payload.value, def.alg))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: \"jwt\",\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"$ZodCustomStringFormat\", (inst, def) => {\n $ZodStringFormat.init(inst, def);\n inst._zod.check = (payload) => {\n if (def.fn(payload.value))\n return;\n payload.issues.push({\n code: \"invalid_format\",\n format: def.format,\n input: payload.value,\n inst,\n continue: !def.abort,\n });\n };\n});\nexport const $ZodNumber = /*@__PURE__*/ core.$constructor(\"$ZodNumber\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.number;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Number(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"number\" && !Number.isNaN(input) && Number.isFinite(input)) {\n return payload;\n }\n const received = typeof input === \"number\"\n ? Number.isNaN(input)\n ? \"NaN\"\n : !Number.isFinite(input)\n ? String(input)\n : undefined\n : undefined;\n payload.issues.push({\n expected: \"number\",\n code: \"invalid_type\",\n input,\n inst,\n ...(received ? { received } : {}),\n });\n return payload;\n };\n});\nexport const $ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"$ZodNumberFormat\", (inst, def) => {\n checks.$ZodCheckNumberFormat.init(inst, def);\n $ZodNumber.init(inst, def); // no format checks\n});\nexport const $ZodBoolean = /*@__PURE__*/ core.$constructor(\"$ZodBoolean\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.boolean;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = Boolean(payload.value);\n }\n catch (_) { }\n const input = payload.value;\n if (typeof input === \"boolean\")\n return payload;\n payload.issues.push({\n expected: \"boolean\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigInt = /*@__PURE__*/ core.$constructor(\"$ZodBigInt\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.bigint;\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce)\n try {\n payload.value = BigInt(payload.value);\n }\n catch (_) { }\n if (typeof payload.value === \"bigint\")\n return payload;\n payload.issues.push({\n expected: \"bigint\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"$ZodBigIntFormat\", (inst, def) => {\n checks.$ZodCheckBigIntFormat.init(inst, def);\n $ZodBigInt.init(inst, def); // no format checks\n});\nexport const $ZodSymbol = /*@__PURE__*/ core.$constructor(\"$ZodSymbol\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"symbol\")\n return payload;\n payload.issues.push({\n expected: \"symbol\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodUndefined = /*@__PURE__*/ core.$constructor(\"$ZodUndefined\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.undefined;\n inst._zod.values = new Set([undefined]);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"undefined\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodNull = /*@__PURE__*/ core.$constructor(\"$ZodNull\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.pattern = regexes.null;\n inst._zod.values = new Set([null]);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (input === null)\n return payload;\n payload.issues.push({\n expected: \"null\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodAny = /*@__PURE__*/ core.$constructor(\"$ZodAny\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodUnknown = /*@__PURE__*/ core.$constructor(\"$ZodUnknown\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload) => payload;\n});\nexport const $ZodNever = /*@__PURE__*/ core.$constructor(\"$ZodNever\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n payload.issues.push({\n expected: \"never\",\n code: \"invalid_type\",\n input: payload.value,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodVoid = /*@__PURE__*/ core.$constructor(\"$ZodVoid\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (typeof input === \"undefined\")\n return payload;\n payload.issues.push({\n expected: \"void\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodDate = /*@__PURE__*/ core.$constructor(\"$ZodDate\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (def.coerce) {\n try {\n payload.value = new Date(payload.value);\n }\n catch (_err) { }\n }\n const input = payload.value;\n const isDate = input instanceof Date;\n const isValidDate = isDate && !Number.isNaN(input.getTime());\n if (isValidDate)\n return payload;\n payload.issues.push({\n expected: \"date\",\n code: \"invalid_type\",\n input,\n ...(isDate ? { received: \"Invalid Date\" } : {}),\n inst,\n });\n return payload;\n };\n});\n// an oversized container fails its leading size checks before any element is parsed\nfunction capSize(inst, size) {\n const caps = util.sizeCaps(inst._zod.def.checks);\n if (!caps.length)\n return;\n const cap = Math.min(...caps.map((c) => c[0]));\n const parse = inst._zod.parse;\n inst._zod.parse = (payload, ctx) => {\n const n = size(payload.value);\n if (n > cap && !ctx?.skipChecks && ctx?.direction !== \"backward\") {\n for (const [max, ch] of util.sizeCaps(inst._zod.def.checks)) {\n if (n > max && ch._zod.def.when(payload)) {\n const start = payload.issues.length;\n ch._zod.check(payload);\n // the value is still the raw input, so no later check may read it\n payload.issues[start].continue = false;\n util.attachSchema(payload.issues, start, inst);\n return payload;\n }\n }\n }\n return parse(payload, ctx);\n };\n}\nconst arraySize = (input) => (Array.isArray(input) ? input.length : -1);\nconst mapSize = (input) => (input instanceof Map ? input.size : -1);\nconst setSize = (input) => (input instanceof Set ? input.size : -1);\nfunction handleArrayResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nexport const $ZodArray = /*@__PURE__*/ core.$constructor(\"$ZodArray\", (inst, def) => {\n $ZodType.init(inst, def);\n const memo = core.globalConfig.memoizer;\n memo?.attach(inst);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n expected: \"array\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = memo ? memo.alloc(inst, payload, Array(input.length), ctx) : Array(input.length);\n const proms = [];\n const abortEarly = ctx?.abortEarly;\n for (let i = 0; i < input.length; i++) {\n const item = input[i];\n const result = def.element._zod.run({\n value: item,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleArrayResult(result, payload, i)));\n }\n else {\n handleArrayResult(result, payload, i);\n // the element's payload is authoritative here, since handleArrayResult forwards every issue; an object's is not, because it drops a failed absent optional\n if (abortEarly && result.issues.length !== 0 && util.aborted(result))\n break;\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload; //handleArrayResultsAsync(parseResults, final);\n };\n capSize(inst, arraySize);\n});\nfunction handlePropertyResult(result, final, key, input, optin, optout) {\n const isPresent = key in input;\n const isOptionalOut = optout === \"optional\";\n // The middle rung means \"absence permitted, nothing supplied in its place\", so an absent key contributes nothing — whatever the schema made of `undefined` is invented, not substituted. Only `optional` reaches this with a value: `defaulted` substitutes, and a schema that isn't optional-out has to keep the key.\n if (!isPresent && isOptionalOut && optin === \"optional\") {\n return;\n }\n if (result.issues.length) {\n // For optional-in/out schemas, ignore errors on absent keys.\n if (optin !== undefined && isOptionalOut && !isPresent) {\n return;\n }\n final.issues.push(...util.prefixIssues(key, result.issues));\n }\n if (!isPresent && optin === undefined) {\n if (!result.issues.length) {\n final.issues.push({\n code: \"invalid_type\",\n expected: \"nonoptional\",\n input: undefined,\n path: [key],\n });\n }\n return;\n }\n if (result.value === undefined) {\n if (isPresent || (optin === \"defaulted\" && !isOptionalOut)) {\n final.value[key] = undefined;\n }\n }\n else {\n final.value[key] = result.value;\n }\n}\n// one shared instance; a fresh [] per schema cost 56 bytes retained\nconst NO_SYMBOL_KEYS = [];\nfunction normalizeDef(def) {\n const keys = Object.keys(def.shape);\n const ownSymbols = Object.getOwnPropertySymbols(def.shape);\n const symbolKeys = ownSymbols.length ? ownSymbols : NO_SYMBOL_KEYS;\n // aliases `keys` when there are no symbols, so a string-only shape keeps one array\n const allKeys = symbolKeys.length ? [...keys, ...symbolKeys] : keys;\n for (const k of allKeys) {\n if (!def.shape?.[k]?._zod?.traits?.has(\"$ZodType\")) {\n throw new Error(`Invalid element at key \"${String(k)}\": expected a Zod schema`);\n }\n }\n const okeys = util.optionalKeys(def.shape);\n return {\n ...def,\n allKeys,\n symbolKeys,\n // string-only: handleCatchall matches it against `for...in`, which never yields a symbol\n keySet: new Set(keys),\n numKeys: keys.length,\n optionalKeys: new Set(okeys),\n };\n}\nfunction handleCatchall(proms, input, payload, ctx, def, inst, abortEarly) {\n const unrecognized = [];\n const keySet = def.keySet;\n const _catchall = def.catchall._zod;\n const t = _catchall.def.type;\n const optin = _catchall.optin;\n const optout = _catchall.optout;\n // starts at 0, not the current length: the shape phase already ran and may have aborted\n let seen = 0;\n for (const key in input) {\n if (abortEarly && payload.issues.length !== seen) {\n if (util.aborted(payload, seen))\n break;\n seen = payload.issues.length;\n }\n // Must precede the __proto__ branch: a declared key is not unrecognized, even though the shape loop deliberately strips __proto__ from the parsed output.\n if (keySet.has(key))\n continue;\n // Don't copy an undeclared __proto__ into the result; assignment to a plain {} would replace the result prototype. But in strict mode it is still an unknown key, so report it before skipping.\n if (key === \"__proto__\") {\n if (t === \"never\")\n unrecognized.push(key);\n continue;\n }\n if (t === \"never\") {\n unrecognized.push(key);\n continue;\n }\n const r = _catchall.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handlePropertyResult(r, payload, key, input, optin, optout)));\n }\n else {\n handlePropertyResult(r, payload, key, input, optin, optout);\n }\n }\n if (unrecognized.length) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n keys: unrecognized,\n input,\n inst,\n // Describes the shape of the input, not the validity of the parsed value, so it never aborts. The parse still fails; the schema's own checks just get to run first, and an enclosing intersection can reconcile the key against a sibling operand.\n continue: true,\n });\n }\n if (!proms.length)\n return payload;\n return Promise.all(proms).then(() => {\n return payload;\n });\n}\nexport const $ZodObject = /*@__PURE__*/ core.$constructor(\"$ZodObject\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodType.init(inst, def);\n const desc = Object.getOwnPropertyDescriptor(def, \"shape\");\n // a cloned def carries its source's accessor, which knows the shape it answers from; adopting that keeps the clone's keys readable without running it\n const sh = desc?.get ? desc.get.raw : (def.shape ?? {});\n if (sh) {\n // Freezes the shape on first read, so its getters resolve once and every later read sees the same schemas.\n const get = () => {\n const newSh = { ...sh };\n Object.defineProperty(def, \"shape\", { value: newSh });\n get.raw = newSh;\n return newSh;\n };\n get.raw = sh;\n Object.defineProperty(def, \"shape\", { get });\n }\n const _normalized = util.cached(() => normalizeDef(def));\n util.defineLazyInternal(inst, \"propValues\", (zod) => {\n const shape = zod.def.shape;\n const propValues = {};\n for (const key in shape) {\n const field = shape[key]._zod;\n if (field.values) {\n if (!Object.prototype.hasOwnProperty.call(propValues, key)) {\n util.assignProp(propValues, key, new Set());\n }\n for (const v of field.values)\n propValues[key].add(v);\n // An omittable slot reads back as undefined at a discriminator lookup, so it has to claim undefined: two options that can both omit the key are not discriminable on it.\n if (field.optin !== undefined)\n propValues[key].add(undefined);\n }\n }\n return propValues;\n });\n const isObject = util.isObject;\n const catchall = def.catchall;\n let value;\n const memo = core.globalConfig.memoizer;\n memo?.attach(inst);\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n payload.value = memo ? memo.alloc(inst, payload, {}, ctx) : {};\n const proms = [];\n const shape = value.shape;\n const abortEarly = ctx?.abortEarly;\n let seen = payload.issues.length;\n for (const key of value.allKeys) {\n if (abortEarly && payload.issues.length !== seen) {\n if (util.aborted(payload, seen))\n break;\n seen = payload.issues.length;\n }\n if (key === \"__proto__\")\n continue;\n const el = shape[key];\n const optin = el._zod.optin;\n const optout = el._zod.optout;\n const r = el._zod.run({ value: input[key], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((r) => handlePropertyResult(r, payload, key, input, optin, optout)));\n }\n else {\n handlePropertyResult(r, payload, key, input, optin, optout);\n }\n }\n if (!catchall) {\n return proms.length ? Promise.all(proms).then(() => payload) : payload;\n }\n return handleCatchall(proms, input, payload, ctx, _normalized.value, inst, abortEarly === true);\n };\n});\nexport const $ZodObjectJIT = /*@__PURE__*/ core.$constructor(\"$ZodObjectJIT\", (inst, def) => {\n // requires cast because technically $ZodObject doesn't extend\n $ZodObject.init(inst, def);\n const superParse = inst._zod.parse;\n const _normalized = util.cached(() => normalizeDef(def));\n const memo = core.globalConfig.memoizer;\n const generateFastpass = (shape) => {\n const normalized = _normalized.value;\n const syms = normalized.symbolKeys;\n // a symbol has no source literal, so it is read as `syms[i]` off the closed-over scope\n const doc = new Doc([\"payload\", \"ctx\"], { shape, inst, memo, syms });\n const parseStr = (k) => `shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`;\n // prefixes in place, like util.prefixIssues. newResult must land before the early return: a catchall runs after this and would otherwise write onto the caller's input\n const prefixStr = (id, k) => `\n let ${id}_ab = false;\n for (let i = 0; i < ${id}.issues.length; i++) {\n const iss = ${id}.issues[i];\n iss.path = iss.path ? [${k}, ...iss.path] : [${k}];\n payload.issues.push(iss);\n if (iss.continue !== true) ${id}_ab = true;\n }\n if (${id}_ab && ctx && ctx.abortEarly) {\n payload.value = newResult;\n return payload;\n }`;\n doc.write(`const input = payload.value;`);\n const ids = Object.create(null);\n let counter = 0;\n for (const key of normalized.allKeys) {\n ids[key] = `key_${counter++}`;\n }\n // A: preserve key order {\n doc.write(memo ? `const newResult = memo.alloc(inst, payload, {}, ctx);` : `const newResult = {};`);\n for (const key of normalized.allKeys) {\n if (key === \"__proto__\")\n continue;\n const id = ids[key];\n const k = typeof key === \"symbol\" ? `syms[${syms.indexOf(key)}]` : util.esc(key);\n const isPresent = `${k} in input`;\n const schema = shape[key];\n const optin = schema?._zod?.optin;\n const isOptionalIn = optin !== undefined;\n const isOptionalOut = schema?._zod?.optout === \"optional\";\n doc.write(`const ${id} = ${parseStr(k)};`);\n if (isOptionalIn && isOptionalOut) {\n // For optional-in/out schemas, ignore errors on absent keys — and, like the interpreted path, drop the value produced alongside them. The middle rung goes further: it permits absence without supplying anything in its place, so an absent key contributes nothing at all.\n const assign = optin === \"optional\" ? `${id}_present` : `${id}.value !== undefined || ${id}_present`;\n doc.write(`\n const ${id}_present = ${isPresent};\n if (!${id}.issues.length || ${id}_present) {\n if (${id}.issues.length) {${prefixStr(id, k)}\n }\n\n if (${assign}) {\n newResult[${k}] = ${id}.value;\n }\n }\n\n `);\n }\n else if (!isOptionalIn) {\n doc.write(`\n const ${id}_present = ${isPresent};\n if (${id}.issues.length) {${prefixStr(id, k)}\n }\n if (!${id}_present && !${id}.issues.length) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"nonoptional\",\n input: undefined,\n path: [${k}]\n });\n if (ctx && ctx.abortEarly) {\n payload.value = newResult;\n return payload;\n }\n }\n\n if (${id}_present) {\n newResult[${k}] = ${id}.value;\n }\n\n `);\n }\n else {\n doc.write(`\n if (${id}.issues.length) {${prefixStr(id, k)}\n }\n `);\n if (optin === \"defaulted\") {\n doc.write(`newResult[${k}] = ${id}.value;`);\n }\n else {\n doc.write(`\n if (${id}.value !== undefined || ${isPresent}) {\n newResult[${k}] = ${id}.value;\n }\n `);\n }\n }\n }\n doc.write(`payload.value = newResult;`);\n doc.write(`return payload;`);\n // closing `shape` in is what pays: turbofan specializes the parser against that one shape object, so every `shape[k]._zod.run` folds to a known callee. as a parameter it stays a generic load and measures 13% slower even with the forwarding frame gone\n return doc.compile();\n };\n let fastpass;\n const isObject = util.isObject;\n const jit = !core.globalConfig.jitless;\n const allowsEval = util.allowsEval;\n const fastEnabled = jit && allowsEval.value; // && !def.catchall;\n const catchall = def.catchall;\n let value;\n inst._zod.parse = (payload, ctx) => {\n value ?? (value = _normalized.value);\n const input = payload.value;\n if (!isObject(input)) {\n payload.issues.push({\n expected: \"object\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n if (jit && fastEnabled && ctx?.async === false && ctx.jitless !== true) {\n // always synchronous\n if (!fastpass)\n fastpass = generateFastpass(def.shape);\n payload = fastpass(payload, ctx);\n if (!catchall)\n return payload;\n return handleCatchall([], input, payload, ctx, value, inst, ctx?.abortEarly === true);\n }\n return superParse(payload, ctx);\n };\n});\nfunction handleUnionResults(results, final, inst, ctx) {\n for (const result of results) {\n if (result.issues.length === 0) {\n final.value = result.value;\n return final;\n }\n }\n const nonaborted = results.filter((r) => !util.aborted(r));\n if (nonaborted.length === 1) {\n final.value = nonaborted[0].value;\n return nonaborted[0];\n }\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n });\n return final;\n}\nexport const $ZodUnion = /*@__PURE__*/ core.$constructor(\"$ZodUnion\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazyInternal(inst, \"optin\", (zod) => zod.def.options.some((o) => o._zod.optin === \"defaulted\")\n ? \"defaulted\"\n : zod.def.options.some((o) => o._zod.optin !== undefined)\n ? \"optional\"\n : undefined);\n util.defineLazyInternal(inst, \"optout\", (zod) => zod.def.options.some((o) => o._zod.optout === \"optional\") ? \"optional\" : undefined);\n util.defineLazyInternal(inst, \"values\", (zod) => {\n if (zod.def.options.every((o) => o._zod.values)) {\n return new Set(zod.def.options.flatMap((option) => Array.from(option._zod.values)));\n }\n return undefined;\n });\n util.defineLazyInternal(inst, \"pattern\", (zod) => {\n if (zod.def.options.every((o) => o._zod.pattern)) {\n const patterns = zod.def.options.map((o) => o._zod.pattern);\n return new RegExp(`^(${patterns.map((p) => util.cleanRegex(p.source)).join(\"|\")})$`);\n }\n return undefined;\n });\n const first = def.options.length === 1 ? def.options[0]._zod.run : null;\n inst._zod.parse = (payload, ctx) => {\n if (first) {\n return first(payload, ctx);\n }\n let async = false;\n const results = [];\n for (const option of def.options) {\n const result = option._zod.run({\n value: payload.value,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n results.push(result);\n async = true;\n }\n else {\n if (result.issues.length === 0)\n return result;\n results.push(result);\n }\n }\n if (!async)\n return handleUnionResults(results, payload, inst, ctx);\n return Promise.all(results).then((results) => {\n return handleUnionResults(results, payload, inst, ctx);\n });\n };\n});\nfunction handleExclusiveUnionResults(results, final, inst, ctx) {\n const matches = [];\n for (let i = 0; i < results.length; i++) {\n if (results[i].issues.length === 0)\n matches.push(i);\n }\n if (matches.length === 1) {\n final.value = results[matches[0]].value;\n return final;\n }\n if (matches.length === 0) {\n // No matches - same as regular union\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: results.map((result) => result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))),\n });\n }\n else {\n // Multiple matches - exclusive union failure\n final.issues.push({\n code: \"invalid_union\",\n input: final.value,\n inst,\n errors: [],\n inclusive: false,\n matches,\n });\n }\n return final;\n}\nexport const $ZodXor = /*@__PURE__*/ core.$constructor(\"$ZodXor\", (inst, def) => {\n $ZodUnion.init(inst, def);\n def.inclusive = false;\n const first = def.options.length === 1 ? def.options[0]._zod.run : null;\n inst._zod.parse = (payload, ctx) => {\n if (first) {\n return first(payload, ctx);\n }\n let async = false;\n const results = [];\n for (const option of def.options) {\n const result = option._zod.run({\n value: payload.value,\n issues: [],\n }, ctx);\n if (result instanceof Promise) {\n results.push(result);\n async = true;\n }\n else {\n results.push(result);\n }\n }\n if (!async)\n return handleExclusiveUnionResults(results, payload, inst, ctx);\n return Promise.all(results).then((results) => {\n return handleExclusiveUnionResults(results, payload, inst, ctx);\n });\n };\n});\n/** Returns the option whose discriminator claims `value`, or throws if ambiguous. */\nexport function getDiscriminatedOption(union, value) {\n const internals = union._zod;\n let map = internals.bag.optionsMap;\n if (!map) {\n map = discriminatorMap(internals.def);\n internals.bag.optionsMap = map;\n }\n const option = map.get(value);\n if (option === null)\n throw new Error(`Ambiguous discriminator value \"${String(value)}\"`);\n return option;\n}\nfunction discriminatorMap(def) {\n const map = new Map();\n for (const option of def.options) {\n const values = option._zod.propValues?.[def.discriminator];\n if (!values || values.size === 0)\n throw new Error(`Invalid discriminated union option at index \"${def.options.indexOf(option)}\"`);\n for (const value of values) {\n if (map.has(value)) {\n if (value !== undefined)\n throw new Error(`Duplicate discriminator value \"${String(value)}\"`);\n // keep the collision marked so a later member cannot reclaim it\n map.set(value, null);\n }\n else {\n map.set(value, option);\n }\n }\n }\n return map;\n}\nexport const $ZodDiscriminatedUnion = \n/*@__PURE__*/\ncore.$constructor(\"$ZodDiscriminatedUnion\", (inst, def) => {\n def.inclusive = false;\n $ZodUnion.init(inst, def);\n const _super = inst._zod.parse;\n util.defineLazyInternal(inst, \"propValues\", (zod) => {\n const propValues = {};\n let undefinedCount = 0;\n for (const option of zod.def.options) {\n const pv = option._zod.propValues;\n if (!pv || Object.keys(pv).length === 0)\n throw new Error(`Invalid discriminated union option at index \"${zod.def.options.indexOf(option)}\"`);\n if (pv[zod.def.discriminator]?.has(undefined))\n undefinedCount++;\n for (const [k, v] of Object.entries(pv)) {\n if (!Object.prototype.hasOwnProperty.call(propValues, k)) {\n util.assignProp(propValues, k, new Set());\n }\n for (const val of v) {\n propValues[k].add(val);\n }\n }\n }\n if (!zod.def.unionFallback && undefinedCount > 1)\n propValues[zod.def.discriminator]?.delete(undefined);\n return propValues;\n });\n // Checked now rather than in the lookup map below, so an option that lacks the discriminator fails at the `discriminatedUnion` call instead of on the first object parsed. Options whose shape cannot be enumerated without resolving it — pipes and lazies — are left to the map.\n def.options.forEach((option, i) => {\n const propShape = util.rawShape(option._zod.def);\n if (propShape && !Object.prototype.hasOwnProperty.call(propShape, def.discriminator)) {\n throw new Error(`Invalid discriminated union option at index \"${i}\"`);\n }\n });\n const disc = util.cached(() => discriminatorMap(def));\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isObject(input)) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"object\",\n input,\n inst,\n });\n return payload;\n }\n const value = input?.[def.discriminator];\n const opt = disc.value.get(value);\n // forward metadata cannot choose an encoder for an absent tag\n if (opt && (value !== undefined || ctx.direction !== \"backward\")) {\n return opt._zod.run(payload, ctx);\n }\n // Fall back to union matching when the fast discriminator path fails:\n // - explicitly enabled via unionFallback, or\n // - during backward direction (encode), since codec-based discriminators have different values in forward vs backward directions\n if (def.unionFallback || ctx.direction === \"backward\") {\n return _super(payload, ctx);\n }\n // no matching discriminator\n payload.issues.push({\n code: \"invalid_union\",\n errors: [],\n note: \"No matching discriminator\",\n discriminator: def.discriminator,\n options: Array.from(disc.value.keys()).filter((value) => disc.value.get(value) !== null),\n input,\n path: [def.discriminator],\n inst,\n });\n return payload;\n };\n});\nexport const $ZodIntersection = /*@__PURE__*/ core.$constructor(\"$ZodIntersection\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n const left = def.left._zod.run({ value: input, issues: [] }, ctx);\n const right = def.right._zod.run({ value: input, issues: [] }, ctx);\n const async = left instanceof Promise || right instanceof Promise;\n if (async) {\n return Promise.all([left, right]).then(([left, right]) => {\n return handleIntersectionResults(payload, left, right);\n });\n }\n return handleIntersectionResults(payload, left, right);\n };\n});\nexport function mergeValues(a, b) {\n // const aType = parse.t(a);\n // const bType = parse.t(b);\n if (a === b) {\n return { valid: true, data: a };\n }\n if (a instanceof Date && b instanceof Date && +a === +b) {\n return { valid: true, data: a };\n }\n if (util.isPlainObject(a) && util.isPlainObject(b)) {\n const bKeys = Object.keys(b);\n const sharedKeys = Object.keys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n if (Object.prototype.hasOwnProperty.call(newObj, \"__proto__\"))\n delete newObj.__proto__;\n for (const key of sharedKeys) {\n if (key === \"__proto__\")\n continue;\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [key, ...sharedValue.mergeErrorPath],\n };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return { valid: false, mergeErrorPath: [] };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return {\n valid: false,\n mergeErrorPath: [index, ...sharedValue.mergeErrorPath],\n };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n }\n return { valid: false, mergeErrorPath: [] };\n}\nfunction handleIntersectionResults(result, left, right) {\n // Track which side(s) reject each key. A key rejection is reported only when BOTH sides reject it, so a key owned by one branch survives the other's key schema. strictObject reports these as unrecognized_keys; a record with an open key schema reports one invalid_key per key.\n const unrecKeys = new Map();\n let unrecIssue;\n const keyIssues = new Map();\n const collect = (iss, side) => {\n let keys;\n if (iss.code === \"unrecognized_keys\" && !iss.path?.length) {\n unrecIssue ?? (unrecIssue = iss);\n keys = iss.keys;\n }\n else if (iss.code === \"invalid_key\" && iss.origin === \"record\" && iss.path?.length === 1) {\n const k = String(iss.path[0]);\n if (!keyIssues.has(k))\n keyIssues.set(k, iss);\n keys = [k];\n }\n else {\n return false;\n }\n for (const k of keys) {\n if (!unrecKeys.has(k))\n unrecKeys.set(k, {});\n unrecKeys.get(k)[side] = true;\n }\n return true;\n };\n for (const iss of left.issues) {\n if (!collect(iss, \"l\"))\n result.issues.push(iss);\n }\n for (const iss of right.issues) {\n if (!collect(iss, \"r\"))\n result.issues.push(iss);\n }\n // Report only keys rejected by BOTH sides\n const bothKeys = [...unrecKeys].filter(([, f]) => f.l && f.r).map(([k]) => k);\n if (bothKeys.length) {\n const aggregated = unrecIssue ? bothKeys.filter((k) => unrecIssue.keys.includes(k)) : [];\n if (aggregated.length)\n result.issues.push({ ...unrecIssue, keys: aggregated });\n for (const k of bothKeys) {\n if (!aggregated.includes(k) && keyIssues.has(k))\n result.issues.push(keyIssues.get(k));\n }\n }\n const merged = mergeValues(left.value, right.value);\n if (!merged.valid) {\n if (util.aborted(result))\n return result;\n throw new Error(`Unmergable intersection. Error path: ` + `${JSON.stringify(merged.mergeErrorPath)}`);\n }\n result.value = merged.data;\n return result;\n}\nexport const $ZodTuple = /*@__PURE__*/ core.$constructor(\"$ZodTuple\", (inst, def) => {\n $ZodType.init(inst, def);\n const items = def.items;\n const memo = core.globalConfig.memoizer;\n memo?.attach(inst);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!Array.isArray(input)) {\n payload.issues.push({\n input,\n inst,\n expected: \"tuple\",\n code: \"invalid_type\",\n });\n return payload;\n }\n payload.value = memo ? memo.alloc(inst, payload, [], ctx) : [];\n const proms = [];\n const optinStart = getTupleOptStart(items, \"optin\");\n const optoutStart = getTupleOptStart(items, \"optout\");\n if (!def.rest) {\n if (input.length < optinStart) {\n payload.issues.push({\n code: \"too_small\",\n minimum: optinStart,\n inclusive: true,\n input,\n inst,\n origin: \"array\",\n });\n return payload;\n }\n if (input.length > items.length) {\n payload.issues.push({\n code: \"too_big\",\n maximum: items.length,\n inclusive: true,\n input,\n inst,\n origin: \"array\",\n });\n }\n }\n // Run every item in parallel, collecting results into an indexed array. The post-processing in `handleTupleResults` walks them in order so it can decide whether an absent optional-output error can truncate the tail or must be reported to preserve required output.\n const itemResults = new Array(items.length);\n // only tracked when there is a rest loop to skip\n const abortEarly = def.rest ? ctx?.abortEarly : undefined;\n let itemAborted = false;\n for (let i = 0; i < items.length; i++) {\n const r = items[i]._zod.run({ value: input[i], issues: [] }, ctx);\n if (r instanceof Promise) {\n proms.push(r.then((rr) => {\n itemResults[i] = rr;\n }));\n }\n else {\n itemResults[i] = r;\n if (abortEarly && !itemAborted && r.issues.length)\n itemAborted = util.aborted(r);\n }\n }\n // sound because rest is non-empty exactly when every fixed index is present, the one case handleTupleResults cannot discard an item's issues\n if (def.rest && !itemAborted) {\n let i = items.length - 1;\n const rest = input.slice(items.length);\n let seen = payload.issues.length;\n for (const el of rest) {\n if (abortEarly && payload.issues.length !== seen) {\n if (util.aborted(payload, seen))\n break;\n seen = payload.issues.length;\n }\n i++;\n const result = def.rest._zod.run({ value: el, issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((r) => handleTupleResult(r, payload, i)));\n }\n else {\n handleTupleResult(result, payload, i);\n }\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => handleTupleResults(itemResults, payload, items, input, optoutStart));\n }\n return handleTupleResults(itemResults, payload, items, input, optoutStart);\n };\n});\nfunction getTupleOptStart(items, key) {\n for (let i = items.length - 1; i >= 0; i--) {\n // optin is a three-rung ladder so any rung above `undefined` permits an absent slot; optout stays two-valued.\n const omittable = key === \"optin\" ? items[i]._zod.optin !== undefined : items[i]._zod.optout === \"optional\";\n if (!omittable)\n return i + 1;\n }\n return 0;\n}\nfunction handleTupleResult(result, final, index) {\n if (result.issues.length) {\n final.issues.push(...util.prefixIssues(index, result.issues));\n }\n final.value[index] = result.value;\n}\nfunction handleTupleResults(itemResults, final, items, input, optoutStart) {\n // Walk results in order. Mirror $ZodObject's swallow-on-absent-optional rule, but only after `optoutStart`: the first index where the output tuple tail can be absent.\n for (let i = 0; i < items.length; i++) {\n const r = itemResults[i];\n const isPresent = i < input.length;\n // The array analog of `handlePropertyResult`'s absent-key early return: the middle rung permits absence without supplying anything in its place, so the tail truncates here instead of materializing whatever the item made of `undefined`.\n if (!isPresent && i >= optoutStart && items[i]._zod.optin === \"optional\") {\n final.value.length = i;\n break;\n }\n if (r.issues.length) {\n if (!isPresent && i >= optoutStart) {\n final.value.length = i;\n break;\n }\n final.issues.push(...util.prefixIssues(i, r.issues));\n }\n final.value[i] = r.value;\n }\n // Drop trailing slots that produced `undefined` for absent input\n // (the array analog of an absent optional key on an object). The\n // `i >= input.length` floor is critical: an explicit `undefined`\n // *inside* the input must be preserved even when the schema is\n // optional-out (e.g. `z.string().or(z.undefined())` accepting an\n // explicit undefined value).\n for (let i = final.value.length - 1; i >= input.length; i--) {\n if (items[i]._zod.optout === \"optional\" && final.value[i] === undefined) {\n final.value.length = i;\n }\n else {\n break;\n }\n }\n return final;\n}\nexport const $ZodRecord = /*@__PURE__*/ core.$constructor(\"$ZodRecord\", (inst, def) => {\n $ZodType.init(inst, def);\n const memo = core.globalConfig.memoizer;\n memo?.attach(inst);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!util.isPlainObject(input)) {\n payload.issues.push({\n expected: \"record\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n // no guard in either loop below: a record's invalid_key aborts but an enclosing intersection can reconcile it, so a stopped loop hides keys the sibling does not own and the intersection then rejects nothing\n const proms = [];\n const values = def.keyType._zod.values;\n if (values && !def.partial) {\n payload.value = memo ? memo.alloc(inst, payload, {}, ctx) : {};\n const recordKeys = new Set();\n for (const key of values) {\n if (typeof key === \"string\" || typeof key === \"number\" || typeof key === \"symbol\") {\n recordKeys.add(typeof key === \"number\" ? key.toString() : key);\n // A declared __proto__ is stripped but is not an unrecognized key.\n if (key === \"__proto__\")\n continue;\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n if (keyResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n if (keyResult.issues.length) {\n payload.issues.push({\n code: \"invalid_key\",\n origin: \"record\",\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n input: key,\n path: [key],\n inst,\n });\n continue;\n }\n const outKey = keyResult.value;\n if (outKey === \"__proto__\")\n continue;\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[outKey] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[outKey] = result.value;\n }\n }\n }\n let unrecognized;\n for (const key in input) {\n if (!recordKeys.has(key)) {\n if (def.mode === \"loose\") {\n // skip __proto__ so it can't replace the result prototype via the assignment setter on the plain {} we build into\n if (key === \"__proto__\")\n continue;\n payload.value[key] = input[key];\n }\n else {\n unrecognized = unrecognized ?? [];\n unrecognized.push(key);\n }\n }\n }\n if (unrecognized && unrecognized.length > 0) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n input,\n inst,\n keys: unrecognized,\n continue: true,\n });\n }\n }\n else {\n payload.value = memo ? memo.alloc(inst, payload, {}, ctx) : {};\n // An enumerable key schema declares which keys the record owns, so a key outside the set is unrecognized. A non-enumerable one (regex, refine) is a constraint every key must satisfy, so a failing key is invalid. Only the former is reconcilable against the other side of an intersection.\n let unrecognized;\n // Reflect.ownKeys for Symbol-key support; filter non-enumerable to match z.object()\n for (const key of Reflect.ownKeys(input)) {\n if (key === \"__proto__\")\n continue;\n if (!Object.prototype.propertyIsEnumerable.call(input, key))\n continue;\n let keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n if (keyResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n // Numeric string fallback: if key is a numeric string and failed, retry with Number(key). This handles z.number(), z.literal([1, 2, 3]), and unions containing numeric literals\n const checkNumericKey = typeof key === \"string\" && regexes.number.test(key) && keyResult.issues.length;\n if (checkNumericKey) {\n const retryResult = def.keyType._zod.run({ value: Number(key), issues: [] }, ctx);\n if (retryResult instanceof Promise) {\n throw new Error(\"Async schemas not supported in object keys currently\");\n }\n if (retryResult.issues.length === 0) {\n keyResult = retryResult;\n }\n }\n if (keyResult.issues.length) {\n if (def.mode === \"loose\") {\n // Pass through unchanged\n payload.value[key] = input[key];\n }\n else if (values) {\n unrecognized = unrecognized ?? [];\n unrecognized.push(key);\n }\n else {\n // Default \"strict\" behavior: error on invalid key\n payload.issues.push({\n code: \"invalid_key\",\n origin: \"record\",\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n input: key,\n path: [key],\n inst,\n });\n }\n continue;\n }\n // the guard above tests the raw input key, but the key schema can normalize an ordinary key into __proto__; re-check the key we actually write under\n const outKey = keyResult.value;\n if (outKey === \"__proto__\")\n continue;\n const result = def.valueType._zod.run({ value: input[key], issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[outKey] = result.value;\n }));\n }\n else {\n if (result.issues.length) {\n payload.issues.push(...util.prefixIssues(key, result.issues));\n }\n payload.value[outKey] = result.value;\n }\n }\n if (unrecognized && unrecognized.length > 0) {\n payload.issues.push({\n code: \"unrecognized_keys\",\n input,\n inst,\n keys: unrecognized,\n continue: true,\n });\n }\n }\n if (proms.length) {\n return Promise.all(proms).then(() => payload);\n }\n return payload;\n };\n});\nexport const $ZodMap = /*@__PURE__*/ core.$constructor(\"$ZodMap\", (inst, def) => {\n $ZodType.init(inst, def);\n const memo = core.globalConfig.memoizer;\n memo?.attach(inst);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Map)) {\n payload.issues.push({\n expected: \"map\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n }\n const proms = [];\n payload.value = memo ? memo.alloc(inst, payload, new Map(), ctx) : new Map();\n const abortEarly = ctx?.abortEarly;\n let seen = payload.issues.length;\n for (const [key, value] of input) {\n if (abortEarly && payload.issues.length !== seen) {\n if (util.aborted(payload, seen))\n break;\n seen = payload.issues.length;\n }\n const keyResult = def.keyType._zod.run({ value: key, issues: [] }, ctx);\n const valueResult = def.valueType._zod.run({ value: value, issues: [] }, ctx);\n if (keyResult instanceof Promise || valueResult instanceof Promise) {\n proms.push(Promise.all([keyResult, valueResult]).then(([keyResult, valueResult]) => {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }));\n }\n else {\n handleMapResult(keyResult, valueResult, payload, key, input, inst, ctx);\n }\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n capSize(inst, mapSize);\n});\nfunction handleMapResult(keyResult, valueResult, final, key, input, inst, ctx) {\n if (keyResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, keyResult.issues));\n }\n else {\n final.issues.push({\n code: \"invalid_key\",\n origin: \"map\",\n input,\n inst,\n issues: keyResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n if (valueResult.issues.length) {\n if (util.propertyKeyTypes.has(typeof key)) {\n final.issues.push(...util.prefixIssues(key, valueResult.issues));\n }\n else {\n final.issues.push({\n origin: \"map\",\n code: \"invalid_element\",\n input,\n inst,\n key: key,\n issues: valueResult.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n });\n }\n }\n final.value.set(keyResult.value, valueResult.value);\n}\nexport const $ZodSet = /*@__PURE__*/ core.$constructor(\"$ZodSet\", (inst, def) => {\n $ZodType.init(inst, def);\n const memo = core.globalConfig.memoizer;\n memo?.attach(inst);\n inst._zod.parse = (payload, ctx) => {\n const input = payload.value;\n if (!(input instanceof Set)) {\n payload.issues.push({\n input,\n inst,\n expected: \"set\",\n code: \"invalid_type\",\n });\n return payload;\n }\n const proms = [];\n payload.value = memo ? memo.alloc(inst, payload, new Set(), ctx) : new Set();\n const abortEarly = ctx?.abortEarly;\n let seen = payload.issues.length;\n for (const item of input) {\n if (abortEarly && payload.issues.length !== seen) {\n if (util.aborted(payload, seen))\n break;\n seen = payload.issues.length;\n }\n const result = def.valueType._zod.run({ value: item, issues: [] }, ctx);\n if (result instanceof Promise) {\n proms.push(result.then((result) => handleSetResult(result, payload)));\n }\n else\n handleSetResult(result, payload);\n }\n if (proms.length)\n return Promise.all(proms).then(() => payload);\n return payload;\n };\n capSize(inst, setSize);\n});\nfunction handleSetResult(result, final) {\n if (result.issues.length) {\n final.issues.push(...result.issues);\n }\n final.value.add(result.value);\n}\nexport const $ZodEnum = /*@__PURE__*/ core.$constructor(\"$ZodEnum\", (inst, def) => {\n $ZodType.init(inst, def);\n const values = util.getEnumValues(def.entries);\n const valuesSet = new Set(values);\n inst._zod.values = valuesSet;\n util.defineLazyInternal(inst, \"pattern\", (zod) => {\n const patternValues = util.getEnumValues(zod.def.entries).filter((k) => util.propertyKeyTypes.has(typeof k));\n // unmatchable fallback, RE2-safe: an empty alternation would compile to /^()$/, which matches \"\"\n return new RegExp(patternValues.length ? `^(${patternValues.map((o) => util.escapeRegex(o.toString())).join(\"|\")})$` : \"^[^\\\\s\\\\S]$\");\n });\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (valuesSet.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodLiteral = /*@__PURE__*/ core.$constructor(\"$ZodLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n const values = new Set(def.values);\n inst._zod.values = values;\n util.defineLazyInternal(inst, \"pattern\", (zod) => {\n const vals = zod.def.values;\n // unmatchable fallback, RE2-safe: an empty alternation would compile to /^()$/, which matches \"\"\n return new RegExp(vals.length\n ? `^(${vals\n .map((o) => typeof o === \"string\" ? util.escapeRegex(o) : o ? util.escapeRegex(o.toString()) : String(o))\n .join(\"|\")})$`\n : \"^[^\\\\s\\\\S]$\");\n });\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n if (values.has(input)) {\n return payload;\n }\n payload.issues.push({\n code: \"invalid_value\",\n values: def.values,\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodFile = /*@__PURE__*/ core.$constructor(\"$ZodFile\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n const input = payload.value;\n // @ts-ignore\n if (input instanceof File)\n return payload;\n payload.issues.push({\n expected: \"file\",\n code: \"invalid_type\",\n input,\n inst,\n });\n return payload;\n };\n});\nexport const $ZodTransform = /*@__PURE__*/ core.$constructor(\"$ZodTransform\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"optional\";\n core.globalConfig.memoizer?.guard(inst);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(inst.constructor.name);\n }\n const _out = def.transform(payload.value, payload);\n if (ctx.async) {\n const output = _out instanceof Promise ? _out : Promise.resolve(_out);\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n if (_out instanceof Promise) {\n throw new core.$ZodAsyncError();\n }\n payload.value = _out;\n return payload;\n };\n});\nfunction handleOptionalResult(payload, result) {\n // A substituting schema that still failed has no usable answer; yield undefined. Its issues are simply dropped: it ran on a payload of its own, so there is no shared array to truncate and nothing of the caller's to lose with it.\n payload.value = result.issues.length ? undefined : result.value;\n return payload;\n}\nexport const $ZodOptional = /*@__PURE__*/ core.$constructor(\"$ZodOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n // .optional() propagates absence rather than substituting for it, so a defaulted inner keeps its rung.\n util.defineLazyInternal(inst, \"optin\", (zod) => zod.def.innerType._zod.optin === \"defaulted\" ? \"defaulted\" : \"optional\");\n inst._zod.optout = \"optional\";\n util.defineLazyInternal(inst, \"values\", (zod) => {\n const values = zod.def.innerType._zod.values;\n return values ? new Set([...values, undefined]) : undefined;\n });\n util.defineLazyInternal(inst, \"pattern\", (zod) => {\n const pattern = zod.def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)})?$`) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n if (payload.value === undefined) {\n // Only the top rung substitutes a value for absence; everything else leaves it intact, which is what .optional() means.\n if (def.innerType._zod.optin !== \"defaulted\")\n return payload;\n // Its own payload, for the same reason $ZodCatch gets one: a pipe forwards an unrecognized key through the caller's issues array, and this must not read that as the substituting schema failing and drop it.\n const result = def.innerType._zod.run({ value: payload.value, issues: [] }, ctx);\n if (result instanceof Promise)\n return result.then((result) => handleOptionalResult(payload, result));\n return handleOptionalResult(payload, result);\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodExactOptional = /*@__PURE__*/ core.$constructor(\"$ZodExactOptional\", (inst, def) => {\n // Call parent init - inherits optin/optout = \"optional\"\n $ZodOptional.init(inst, def);\n // Override values/pattern to NOT add undefined\n util.defineLazyInternal(inst, \"values\", (zod) => zod.def.innerType._zod.values);\n util.defineLazyInternal(inst, \"pattern\", (zod) => zod.def.innerType._zod.pattern);\n // Override parse to just delegate (no undefined handling)\n inst._zod.parse = (payload, ctx) => {\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNullable = /*@__PURE__*/ core.$constructor(\"$ZodNullable\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazyInternal(inst, \"optin\", (zod) => zod.def.innerType._zod.optin);\n util.defineLazyInternal(inst, \"optout\", (zod) => zod.def.innerType._zod.optout);\n util.defineLazyInternal(inst, \"pattern\", (zod) => {\n const pattern = zod.def.innerType._zod.pattern;\n return pattern ? new RegExp(`^(${util.cleanRegex(pattern.source)}|null)$`) : undefined;\n });\n util.defineLazyInternal(inst, \"values\", (zod) => {\n return zod.def.innerType._zod.values ? new Set([...zod.def.innerType._zod.values, null]) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n // Forward direction (decode): allow null to pass through\n if (payload.value === null)\n return payload;\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodDefault = /*@__PURE__*/ core.$constructor(\"$ZodDefault\", (inst, def) => {\n $ZodType.init(inst, def);\n // inst._zod.qin = \"true\";\n inst._zod.optin = \"defaulted\";\n util.defineLazyInternal(inst, \"values\", (zod) => zod.def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply defaults for undefined input\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n /**\n * $ZodDefault returns the default value immediately in forward direction.\n * It doesn't pass the default value into the validator (\"prefault\"). There's no reason to pass the default value through validation. The validity of the default is enforced by TypeScript statically. Otherwise, it's the responsibility of the user to ensure the default is valid. In the case of pipes with divergent in/out types, you can specify the default on the `in` schema of your ZodPipe to set a \"prefault\" for the pipe. */\n return payload;\n }\n // Forward direction: continue with default handling\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleDefaultResult(result, def));\n }\n return handleDefaultResult(result, def);\n };\n});\nfunction handleDefaultResult(payload, def) {\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return payload;\n}\nexport const $ZodPrefault = /*@__PURE__*/ core.$constructor(\"$ZodPrefault\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.optin = \"defaulted\";\n util.defineLazyInternal(inst, \"values\", (zod) => zod.def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply prefault for undefined input\n if (payload.value === undefined) {\n payload.value = def.defaultValue;\n }\n return def.innerType._zod.run(payload, ctx);\n };\n});\nexport const $ZodNonOptional = /*@__PURE__*/ core.$constructor(\"$ZodNonOptional\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazyInternal(inst, \"values\", (zod) => {\n const v = zod.def.innerType._zod.values;\n return v ? new Set([...v].filter((x) => x !== undefined)) : undefined;\n });\n inst._zod.parse = (payload, ctx) => {\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleNonOptionalResult(result, inst));\n }\n return handleNonOptionalResult(result, inst);\n };\n});\nfunction handleNonOptionalResult(payload, inst) {\n if (!payload.issues.length && payload.value === undefined) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"nonoptional\",\n input: payload.value,\n inst,\n });\n }\n return payload;\n}\nexport const $ZodSuccess = /*@__PURE__*/ core.$constructor(\"$ZodSuccess\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(\"ZodSuccess\");\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then((result) => {\n payload.value = result.issues.length === 0;\n return payload;\n });\n }\n payload.value = result.issues.length === 0;\n return payload;\n };\n});\nfunction handleCatchResult(payload, result, def, ctx) {\n if (!result.issues.length) {\n payload.value = result.value;\n // The value carries up, so the flag describing it has to carry with it: a back-edge into a node still being parsed must not be frozen by an enclosing readonly, and its checks belong to the node itself. Guarded so the ordinary case adds no own property.\n if (result.memo)\n payload.memo = true;\n return payload;\n }\n // Spread the inner's own payload, not ours: `value` has to stay the input the catch was handed, and the inner ran on a payload of its own so its issues are already private to this call.\n payload.value = def.catchValue({\n ...result,\n value: payload.value,\n error: {\n issues: result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config())),\n },\n input: payload.value,\n });\n return payload;\n}\nexport const $ZodCatch = /*@__PURE__*/ core.$constructor(\"$ZodCatch\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazyInternal(inst, \"optin\", (zod) => zod.def.innerType._zod.optin === \"defaulted\" ? \"defaulted\" : \"optional\");\n util.defineLazyInternal(inst, \"optout\", (zod) => zod.def.innerType._zod.optout);\n util.defineLazyInternal(inst, \"values\", (zod) => zod.def.innerType._zod.values);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n // Forward direction (decode): apply catch logic\n const result = def.innerType._zod.run({ value: payload.value, issues: [] }, ctx);\n if (result instanceof Promise) {\n return result.then((result) => handleCatchResult(payload, result, def, ctx));\n }\n return handleCatchResult(payload, result, def, ctx);\n };\n});\nexport const $ZodNaN = /*@__PURE__*/ core.$constructor(\"$ZodNaN\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"number\" || !Number.isNaN(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"nan\",\n code: \"invalid_type\",\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodPipe = /*@__PURE__*/ core.$constructor(\"$ZodPipe\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazyInternal(inst, \"values\", (zod) => zod.def.in._zod.values);\n util.defineLazyInternal(inst, \"optin\", (zod) => zod.def.in._zod.optin);\n util.defineLazyInternal(inst, \"optout\", (zod) => zod.def.out._zod.optout);\n util.defineLazyInternal(inst, \"propValues\", (zod) => zod.def.in._zod.propValues);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n const right = def.out._zod.run(payload, ctx);\n if (right instanceof Promise) {\n return right.then((right) => handlePipeResult(right, def.in, ctx));\n }\n return handlePipeResult(right, def.in, ctx);\n }\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handlePipeResult(left, def.out, ctx));\n }\n return handlePipeResult(left, def.out, ctx);\n };\n});\nfunction handlePipeResult(left, next, ctx) {\n // Any issue stops the pipe, so a failing refinement never feeds its transform. An unrecognized key is the exception: it describes the input's extra properties, not the value being piped, and an enclosing intersection may yet reconcile it.\n if (left.issues.some((iss) => iss.code !== \"unrecognized_keys\")) {\n // prevent further checks\n left.aborted = true;\n return left;\n }\n return next._zod.run({ value: left.value, issues: left.issues }, ctx);\n}\nexport const $ZodCodec = /*@__PURE__*/ core.$constructor(\"$ZodCodec\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazyInternal(inst, \"values\", (zod) => zod.def.in._zod.values);\n util.defineLazyInternal(inst, \"optin\", (zod) => zod.def.in._zod.optin);\n util.defineLazyInternal(inst, \"optout\", (zod) => zod.def.out._zod.optout);\n util.defineLazyInternal(inst, \"propValues\", (zod) => zod.def.in._zod.propValues);\n inst._zod.parse = (payload, ctx) => {\n const direction = ctx.direction || \"forward\";\n if (direction === \"forward\") {\n const left = def.in._zod.run(payload, ctx);\n if (left instanceof Promise) {\n return left.then((left) => handleCodecAResult(left, def, ctx));\n }\n return handleCodecAResult(left, def, ctx);\n }\n else {\n const right = def.out._zod.run(payload, ctx);\n if (right instanceof Promise) {\n return right.then((right) => handleCodecAResult(right, def, ctx));\n }\n return handleCodecAResult(right, def, ctx);\n }\n };\n});\nfunction handleCodecAResult(result, def, ctx) {\n if (result.issues.length) {\n // prevent further checks\n result.aborted = true;\n return result;\n }\n const direction = ctx.direction || \"forward\";\n if (direction === \"forward\") {\n const transformed = def.transform(result.value, result);\n if (transformed instanceof Promise) {\n return transformed.then((value) => handleCodecTxResult(result, value, def.out, ctx));\n }\n return handleCodecTxResult(result, transformed, def.out, ctx);\n }\n else {\n const transformed = def.reverseTransform(result.value, result);\n if (transformed instanceof Promise) {\n return transformed.then((value) => handleCodecTxResult(result, value, def.in, ctx));\n }\n return handleCodecTxResult(result, transformed, def.in, ctx);\n }\n}\nfunction handleCodecTxResult(left, value, nextSchema, ctx) {\n // Check if transform added any issues\n if (left.issues.length) {\n left.aborted = true;\n return left;\n }\n return nextSchema._zod.run({ value, issues: left.issues }, ctx);\n}\nexport const $ZodPreprocess = /*@__PURE__*/ core.$constructor(\"$ZodPreprocess\", (inst, def) => {\n $ZodPipe.init(inst, def);\n});\nexport const $ZodReadonly = /*@__PURE__*/ core.$constructor(\"$ZodReadonly\", (inst, def) => {\n $ZodType.init(inst, def);\n util.defineLazyInternal(inst, \"propValues\", (zod) => zod.def.innerType._zod.propValues);\n util.defineLazyInternal(inst, \"values\", (zod) => zod.def.innerType._zod.values);\n util.defineLazyInternal(inst, \"optin\", (zod) => zod.def.innerType?._zod?.optin);\n util.defineLazyInternal(inst, \"optout\", (zod) => zod.def.innerType?._zod?.optout);\n inst._zod.parse = (payload, ctx) => {\n if (ctx.direction === \"backward\") {\n return def.innerType._zod.run(payload, ctx);\n }\n const result = def.innerType._zod.run(payload, ctx);\n if (result instanceof Promise) {\n return result.then(handleReadonlyResult);\n }\n return handleReadonlyResult(result);\n };\n});\nfunction handleReadonlyResult(payload) {\n // A repeat visit hands back a node that is still being built; freezing it here would make the rest of its keys fail to assign.\n if (!payload.memo)\n payload.value = Object.freeze(payload.value);\n return payload;\n}\n// a leaf's pattern source with its own checks folded in: the last pattern-carrying check wins, else length bounds narrow the catch-all, else an integer format narrows the number form. the fold lives here instead of on `_zod.pattern` so a bundle without template literals never pays for it\nfunction leafPattern(schema) {\n const def = schema._zod.def;\n let pattern = def.pattern;\n let isInt = !!def.format?.includes(\"int\");\n let minimum;\n let maximum;\n for (const ch of def.checks ?? []) {\n const d = ch._zod.def;\n if (d.pattern)\n pattern = d.pattern;\n isInt || (isInt = !!d.format?.includes(\"int\"));\n const lo = d.minimum ?? d.length;\n const hi = d.maximum ?? d.length;\n if (lo !== undefined && (minimum === undefined || lo > minimum))\n minimum = lo;\n if (hi !== undefined && (maximum === undefined || hi < maximum))\n maximum = hi;\n }\n if (pattern)\n return pattern.source;\n // an empty range matches nothing at runtime, and `{8,5}` is not a legal quantifier\n if (minimum !== undefined && maximum !== undefined && minimum > maximum)\n return \"(?!)\";\n if (minimum !== undefined || maximum !== undefined)\n return regexes.string({ minimum, maximum }).source;\n const own = schema._zod.pattern;\n return (isInt && own === regexes.number ? regexes.integer : own)?.source;\n}\n// a part's pattern source. a wrapper's pattern embeds its inner pattern's source verbatim, so the folded form is substituted in place without knowing the wrapper's own composition; a union's options are joined the way the union builds its own pattern\nfunction partPattern(schema) {\n const def = schema._zod.def;\n const own = schema._zod.pattern?.source;\n // lazy resolves its inner on the internals, not the def\n const inner = def.innerType ?? schema._zod.innerType;\n if (inner) {\n const before = inner._zod.pattern?.source;\n const after = partPattern(inner);\n if (own && before && after && after !== before) {\n return own.replace(util.cleanRegex(before), () => util.cleanRegex(after));\n }\n return own;\n }\n if (def.options) {\n const sources = def.options.map(partPattern);\n if (sources.every(Boolean))\n return `^(${sources.map((s) => util.cleanRegex(s)).join(\"|\")})$`;\n }\n return leafPattern(schema);\n}\nexport const $ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"$ZodTemplateLiteral\", (inst, def) => {\n $ZodType.init(inst, def);\n const regexParts = [];\n for (const part of def.parts) {\n if (typeof part === \"object\" && part !== null) {\n // is Zod schema\n const source = partPattern(part);\n if (!source) {\n throw new Error(`Invalid template literal part, no pattern found: ${[...part._zod.traits].shift()}`);\n }\n regexParts.push(util.cleanRegex(source));\n }\n else if (part === null || util.primitiveTypes.has(typeof part)) {\n regexParts.push(util.escapeRegex(`${part}`));\n }\n else {\n throw new Error(`Invalid template literal part: ${part}`);\n }\n }\n inst._zod.pattern = new RegExp(`^${regexParts.join(\"\")}$`);\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"string\") {\n payload.issues.push({\n input: payload.value,\n inst,\n expected: \"string\",\n code: \"invalid_type\",\n });\n return payload;\n }\n inst._zod.pattern.lastIndex = 0;\n if (!inst._zod.pattern.test(payload.value)) {\n payload.issues.push({\n input: payload.value,\n inst,\n code: \"invalid_format\",\n format: def.format ?? \"template_literal\",\n pattern: inst._zod.pattern.source,\n });\n return payload;\n }\n return payload;\n };\n});\nexport const $ZodFunction = /*@__PURE__*/ core.$constructor(\"$ZodFunction\", (inst, def) => {\n $ZodType.init(inst, def);\n // Defined, not assigned: the classic prototype exposes `_def` as a getter with no setter.\n Object.defineProperty(inst, \"_def\", { value: def });\n inst._zod.def = def;\n inst.implement = (func) => {\n if (typeof func !== \"function\") {\n throw new Error(\"implement() must be called with a function\");\n }\n // Defined inline so the closure stays anonymous: binding it to a `const` first names it, which costs 256 bytes per implemented function.\n return Object.defineProperty(function (...args) {\n const parsedArgs = inst._def.input ? parse(inst._def.input, args) : args;\n const result = Reflect.apply(func, this, parsedArgs);\n if (inst._def.output) {\n return parse(inst._def.output, result);\n }\n return result;\n }, \"_zod\", { value: inst._zod, enumerable: false });\n };\n inst.implementAsync = (func) => {\n if (typeof func !== \"function\") {\n throw new Error(\"implementAsync() must be called with a function\");\n }\n return Object.defineProperty(async function (...args) {\n const parsedArgs = inst._def.input ? await parseAsync(inst._def.input, args) : args;\n const result = await Reflect.apply(func, this, parsedArgs);\n if (inst._def.output) {\n return await parseAsync(inst._def.output, result);\n }\n return result;\n }, \"_zod\", { value: inst._zod, enumerable: false });\n };\n inst._zod.parse = (payload, _ctx) => {\n if (typeof payload.value !== \"function\") {\n payload.issues.push({\n code: \"invalid_type\",\n expected: \"function\",\n input: payload.value,\n inst,\n });\n return payload;\n }\n // Check if output is a promise type to determine if we should use async implementation\n const hasPromiseOutput = inst._def.output && inst._def.output._zod.def.type === \"promise\";\n if (hasPromiseOutput) {\n payload.value = inst.implementAsync(payload.value);\n }\n else {\n payload.value = inst.implement(payload.value);\n }\n return payload;\n };\n inst.input = (...args) => {\n const F = inst.constructor;\n if (Array.isArray(args[0])) {\n return new F({\n type: \"function\",\n input: new $ZodTuple({\n type: \"tuple\",\n items: args[0],\n rest: args[1],\n }),\n output: inst._def.output,\n });\n }\n return new F({\n type: \"function\",\n input: args[0],\n output: inst._def.output,\n });\n };\n inst.output = (output) => {\n const F = inst.constructor;\n return new F({\n type: \"function\",\n input: inst._def.input,\n output,\n });\n };\n return inst;\n});\nexport const $ZodPromise = /*@__PURE__*/ core.$constructor(\"$ZodPromise\", (inst, def) => {\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, ctx) => {\n return Promise.resolve(payload.value).then((inner) => def.innerType._zod.run({ value: inner, issues: [] }, ctx));\n };\n});\nexport const $ZodLazy = /*@__PURE__*/ core.$constructor(\"$ZodLazy\", (inst, def) => {\n $ZodType.init(inst, def);\n // Cache the resolved inner type on the shared `def` so all clones of this lazy (e.g. via `.describe()`/`.meta()`) share the same inner instance, preserving identity for cycle detection on recursive schemas.\n util.defineLazy(inst._zod, \"innerType\", () => {\n const d = def;\n if (!d._cachedInner)\n d._cachedInner = def.getter();\n return d._cachedInner;\n });\n util.defineLazyInternal(inst, \"pattern\", (zod) => zod.innerType?._zod?.pattern);\n util.defineLazyInternal(inst, \"propValues\", (zod) => zod.innerType?._zod?.propValues);\n util.defineLazyInternal(inst, \"optin\", (zod) => zod.innerType?._zod?.optin ?? undefined);\n util.defineLazyInternal(inst, \"optout\", (zod) => zod.innerType?._zod?.optout ?? undefined);\n inst._zod.parse = (payload, ctx) => {\n const inner = inst._zod.innerType;\n return inner._zod.run(payload, ctx);\n };\n});\nexport const $ZodCustom = /*@__PURE__*/ core.$constructor(\"$ZodCustom\", (inst, def) => {\n checks.$ZodCheck.init(inst, def);\n $ZodType.init(inst, def);\n inst._zod.parse = (payload, _) => {\n return payload;\n };\n inst._zod.check = (payload) => {\n const input = payload.value;\n const r = def.fn(input);\n if (r instanceof Promise) {\n return r.then((r) => handleRefineResult(r, payload, input, inst));\n }\n handleRefineResult(r, payload, input, inst);\n return;\n };\n});\nfunction handleRefineResult(result, payload, input, inst) {\n if (!result) {\n const _iss = {\n code: \"custom\",\n input,\n inst, // incorporates params.error into issue reporting\n path: [...(inst._zod.def.path ?? [])], // incorporates params.error into issue reporting\n continue: !inst._zod.def.abort,\n // params: inst._zod.def.params,\n };\n if (inst._zod.def.params)\n _iss.params = inst._zod.def.params;\n payload.issues.push(util.issue(_iss));\n }\n}\n","import * as core from \"../core/index.js\";\nimport { util } from \"../core/index.js\";\nimport * as processors from \"../core/json-schema-processors.js\";\nimport * as regexes from \"../core/regexes.js\";\nimport { createStandardJSONSchemaMethod, createToJSONSchemaMethod } from \"../core/to-json-schema.js\";\nimport en from \"../locales/en.js\";\nimport * as checks from \"./checks.js\";\nimport * as parse from \"./parse.js\";\n// Register English as the default locale on first ZodType construction. Hooked into the `ZodType` `$constructor` (rather than a top-level `config(en())` in `external.ts`) so bundlers honoring `sideEffects: false` can't tree-shake it out — see #5953, #5725. An explicit `z.config(z.locales.xx())` call wins regardless of order, since this only sets the default when none is present.\nfunction _ensureDefaultLocale() {\n if (!core.globalConfig.localeError)\n core.config(en());\n}\n// the default memoizer is read by the core container init, which runs before `ZodType.init`, so each container calls this first\nfunction _ensureDefaultMemoizer() {\n if (!core.globalConfig.memoizer)\n core.config({ memoizer: core.memoizer() });\n}\nexport const ZodType = /*@__PURE__*/ core.$constructor(\"ZodType\", (inst, def) => {\n _ensureDefaultLocale();\n core.$ZodType.init(inst, def);\n inst.def = def;\n inst.type = def.type;\n return inst;\n}, {\n check(...chks) {\n const def = this.def;\n return this.clone(util.mergeDefs(def, {\n checks: [\n ...(def.checks ?? []),\n ...chks.map((ch) => typeof ch === \"function\" ? { _zod: { check: ch, def: { check: \"custom\" }, onattach: [] } } : ch),\n ],\n }), { parent: true });\n },\n with(...chks) {\n return this.check(...chks);\n },\n clone(def, params) {\n return core.clone(this, def, params);\n },\n brand() {\n return this;\n },\n register(reg, meta) {\n reg.add(this, meta);\n return this;\n },\n refine(check, params) {\n return this.check(refine(check, params));\n },\n superRefine(refinement, params) {\n return this.check(superRefine(refinement, params));\n },\n overwrite(fn) {\n return this.check(checks.overwrite(fn));\n },\n optional() {\n return optional(this);\n },\n exactOptional() {\n return exactOptional(this);\n },\n nullable() {\n return nullable(this);\n },\n nullish() {\n return optional(nullable(this));\n },\n nonoptional(params) {\n return nonoptional(this, params);\n },\n array() {\n return array(this);\n },\n or(arg) {\n return union([this, arg]);\n },\n and(arg) {\n return intersection(this, arg);\n },\n transform(tx) {\n return pipe(this, transform(tx));\n },\n default(d) {\n return _default(this, d);\n },\n prefault(d) {\n return prefault(this, d);\n },\n catch(params) {\n return _catch(this, params);\n },\n pipe(target) {\n return pipe(this, target);\n },\n readonly() {\n return readonly(this);\n },\n describe(description) {\n const cl = this.clone();\n core.globalRegistry.add(cl, { description });\n return cl;\n },\n meta(...args) {\n // overloaded: meta() returns the registered metadata, meta(data) returns a clone with `data` registered. The mapped type picks up the second overload, so we accept variadic any-args and return `any` to satisfy both at runtime.\n if (args.length === 0)\n return core.globalRegistry.get(this);\n const cl = this.clone();\n core.globalRegistry.add(cl, args[0]);\n return cl;\n },\n isOptional() {\n return this.safeParse(undefined).success;\n },\n isNullable() {\n return this.safeParse(null).success;\n },\n apply(fn, ...args) {\n return args.length === 0 ? fn(this) : fn(this, ...args);\n },\n // Overrides core's `~standard` to add `jsonSchema`. Must stay a prototype entry: redefining it per instance demotes instances to dictionary mode.\n get \"~standard\"() {\n return util.hide(this, \"~standard\", {\n ...core.standardProps(this),\n jsonSchema: {\n input: createStandardJSONSchemaMethod(this, \"input\"),\n output: createStandardJSONSchemaMethod(this, \"output\"),\n },\n });\n },\n set \"~standard\"(value) {\n util.own(this, \"~standard\", value);\n },\n parse: function _parse(data, params) {\n return parse.parse(this, data, params, { callee: _parse });\n },\n parseAsync: async function _parseAsync(data, params) {\n return await parse.parseAsync(this, data, params, { callee: _parseAsync });\n },\n safeParse(data, params) {\n return parse.safeParse(this, data, params);\n },\n async safeParseAsync(data, params) {\n return parse.safeParseAsync(this, data, params);\n },\n // `spa` is an alias: same function object as `safeParseAsync`, as before.\n get spa() {\n return this?.safeParseAsync;\n },\n set spa(value) {\n util.own(this, \"spa\", value);\n },\n validate(data, params) {\n return parse.validate(this, data, params);\n },\n validateAsync(data, params) {\n return parse.validateAsync(this, data, params);\n },\n encode: function _encode(data, params) {\n return parse.encode(this, data, params, { callee: _encode });\n },\n decode: function _decode(data, params) {\n return parse.decode(this, data, params, { callee: _decode });\n },\n encodeAsync: async function _encodeAsync(data, params) {\n return await parse.encodeAsync(this, data, params, { callee: _encodeAsync });\n },\n decodeAsync: async function _decodeAsync(data, params) {\n return await parse.decodeAsync(this, data, params, { callee: _decodeAsync });\n },\n safeEncode(data, params) {\n return parse.safeEncode(this, data, params);\n },\n safeDecode(data, params) {\n return parse.safeDecode(this, data, params);\n },\n async safeEncodeAsync(data, params) {\n return parse.safeEncodeAsync(this, data, params);\n },\n async safeDecodeAsync(data, params) {\n return parse.safeDecodeAsync(this, data, params);\n },\n toJSONSchema(params) {\n return createToJSONSchemaMethod(this, {})(params);\n },\n // Reads through to the registry on every access, so it must not cache.\n get description() {\n return core.globalRegistry.get(this)?.description;\n },\n // No setter: `schema._def = x` throws, as it did when `_def` was a non-writable own property.\n get _def() {\n return this._zod.def;\n },\n});\n/** @internal */\nexport const _ZodString = /*@__PURE__*/ core.$constructor(\"_ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.stringProcessor(inst, ctx, json, params);\n}, \n/*@__PURE__*/ util.derived({\n format: (inst) => processors.aggregateChecks(inst).format ?? null,\n minLength: (inst) => processors.aggregateChecks(inst).minimum ?? null,\n maxLength: (inst) => processors.aggregateChecks(inst).maximum ?? null,\n}, {\n regex(...args) {\n return this.check(checks.regex(...args));\n },\n includes(...args) {\n return this.check(checks.includes(...args));\n },\n startsWith(...args) {\n return this.check(checks.startsWith(...args));\n },\n endsWith(...args) {\n return this.check(checks.endsWith(...args));\n },\n min(...args) {\n return this.check(checks.minLength(...args));\n },\n max(...args) {\n return this.check(checks.maxLength(...args));\n },\n length(...args) {\n return this.check(checks.length(...args));\n },\n nonempty(...args) {\n return this.check(checks.minLength(1, ...args));\n },\n lowercase(params) {\n return this.check(checks.lowercase(params));\n },\n uppercase(params) {\n return this.check(checks.uppercase(params));\n },\n trim() {\n return this.check(checks.trim());\n },\n normalize(...args) {\n return this.check(checks.normalize(...args));\n },\n toLowerCase() {\n return this.check(checks.toLowerCase());\n },\n toUpperCase() {\n return this.check(checks.toUpperCase());\n },\n slugify() {\n return this.check(checks.slugify());\n },\n}));\nexport const ZodString = /*@__PURE__*/ core.$constructor(\"ZodString\", (inst, def) => {\n core.$ZodString.init(inst, def);\n _ZodString.init(inst, def);\n}, {\n email(params) {\n return this.check(core._email(ZodEmail, params));\n },\n url(params) {\n return this.check(core._url(ZodURL, params));\n },\n jwt(params) {\n return this.check(core._jwt(ZodJWT, params));\n },\n emoji(params) {\n return this.check(core._emoji(ZodEmoji, params));\n },\n guid(params) {\n return this.check(core._guid(ZodGUID, params));\n },\n uuid(params) {\n return this.check(core._uuid(ZodUUID, params));\n },\n uuidv4(params) {\n return this.check(core._uuidv4(ZodUUID, params));\n },\n uuidv6(params) {\n return this.check(core._uuidv6(ZodUUID, params));\n },\n uuidv7(params) {\n return this.check(core._uuidv7(ZodUUID, params));\n },\n nanoid(params) {\n return this.check(core._nanoid(ZodNanoID, params));\n },\n cuid(params) {\n return this.check(core._cuid(ZodCUID, params));\n },\n cuid2(params) {\n return this.check(core._cuid2(ZodCUID2, params));\n },\n ulid(params) {\n return this.check(core._ulid(ZodULID, params));\n },\n base64(params) {\n return this.check(core._base64(ZodBase64, params));\n },\n base64url(params) {\n return this.check(core._base64url(ZodBase64URL, params));\n },\n xid(params) {\n return this.check(core._xid(ZodXID, params));\n },\n ksuid(params) {\n return this.check(core._ksuid(ZodKSUID, params));\n },\n ipv4(params) {\n return this.check(core._ipv4(ZodIPv4, params));\n },\n ipv6(params) {\n return this.check(core._ipv6(ZodIPv6, params));\n },\n cidrv4(params) {\n return this.check(core._cidrv4(ZodCIDRv4, params));\n },\n cidrv6(params) {\n return this.check(core._cidrv6(ZodCIDRv6, params));\n },\n e164(params) {\n return this.check(core._e164(ZodE164, params));\n },\n datetime(params) {\n return this.check(core._isoDateTime(ZodISODateTime, params));\n },\n date(params) {\n return this.check(core._isoDate(ZodISODate, params));\n },\n time(params) {\n return this.check(core._isoTime(ZodISOTime, params));\n },\n duration(params) {\n return this.check(core._isoDuration(ZodISODuration, params));\n },\n});\nexport function string(params) {\n return core._string(ZodString, params);\n}\nexport const ZodStringFormat = /*@__PURE__*/ core.$constructor(\"ZodStringFormat\", (inst, def) => {\n core.$ZodStringFormat.init(inst, def);\n _ZodString.init(inst, def);\n});\nexport const ZodISODateTime = /*@__PURE__*/ core.$constructor(\"ZodISODateTime\", (inst, def) => {\n core.$ZodISODateTime.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport const ZodISODate = /*@__PURE__*/ core.$constructor(\"ZodISODate\", (inst, def) => {\n core.$ZodISODate.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport const ZodISOTime = /*@__PURE__*/ core.$constructor(\"ZodISOTime\", (inst, def) => {\n core.$ZodISOTime.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport const ZodISODuration = /*@__PURE__*/ core.$constructor(\"ZodISODuration\", (inst, def) => {\n core.$ZodISODuration.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport const ZodEmail = /*@__PURE__*/ core.$constructor(\"ZodEmail\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmail.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function email(params) {\n return core._email(ZodEmail, params);\n}\nexport const ZodGUID = /*@__PURE__*/ core.$constructor(\"ZodGUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodGUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function guid(params) {\n return core._guid(ZodGUID, params);\n}\nexport const ZodUUID = /*@__PURE__*/ core.$constructor(\"ZodUUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodUUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function uuid(params) {\n return core._uuid(ZodUUID, params);\n}\nexport function uuidv4(params) {\n return core._uuidv4(ZodUUID, params);\n}\n// ZodUUIDv6\nexport function uuidv6(params) {\n return core._uuidv6(ZodUUID, params);\n}\n// ZodUUIDv7\nexport function uuidv7(params) {\n return core._uuidv7(ZodUUID, params);\n}\nexport const ZodURL = /*@__PURE__*/ core.$constructor(\"ZodURL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodURL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function url(params) {\n return core._url(ZodURL, params);\n}\nexport function httpUrl(params) {\n return core._url(ZodURL, {\n protocol: regexes.httpProtocol,\n hostname: regexes.domain,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEmoji = /*@__PURE__*/ core.$constructor(\"ZodEmoji\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodEmoji.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function emoji(params) {\n return core._emoji(ZodEmoji, params);\n}\nexport const ZodNanoID = /*@__PURE__*/ core.$constructor(\"ZodNanoID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodNanoID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function nanoid(params) {\n return core._nanoid(ZodNanoID, params);\n}\n/**\n * @deprecated CUID v1 is deprecated by its authors due to information leakage\n * (timestamps embedded in the id). Use {@link ZodCUID2} instead.\n * See https://github.com/paralleldrive/cuid.\n */\nexport const ZodCUID = /*@__PURE__*/ core.$constructor(\"ZodCUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\n/**\n * Validates a CUID v1 string.\n *\n * @deprecated CUID v1 is deprecated by its authors due to information leakage\n * (timestamps embedded in the id). Use {@link cuid2 | `z.cuid2()`} instead.\n * See https://github.com/paralleldrive/cuid.\n */\nexport function cuid(params) {\n return core._cuid(ZodCUID, params);\n}\nexport const ZodCUID2 = /*@__PURE__*/ core.$constructor(\"ZodCUID2\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCUID2.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cuid2(params) {\n return core._cuid2(ZodCUID2, params);\n}\nexport const ZodULID = /*@__PURE__*/ core.$constructor(\"ZodULID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodULID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ulid(params) {\n return core._ulid(ZodULID, params);\n}\nexport const ZodXID = /*@__PURE__*/ core.$constructor(\"ZodXID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodXID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function xid(params) {\n return core._xid(ZodXID, params);\n}\nexport const ZodKSUID = /*@__PURE__*/ core.$constructor(\"ZodKSUID\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodKSUID.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ksuid(params) {\n return core._ksuid(ZodKSUID, params);\n}\nexport const ZodIPv4 = /*@__PURE__*/ core.$constructor(\"ZodIPv4\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv4(params) {\n return core._ipv4(ZodIPv4, params);\n}\nexport const ZodMAC = /*@__PURE__*/ core.$constructor(\"ZodMAC\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodMAC.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function mac(params) {\n return core._mac(ZodMAC, params);\n}\nexport const ZodIPv6 = /*@__PURE__*/ core.$constructor(\"ZodIPv6\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodIPv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function ipv6(params) {\n return core._ipv6(ZodIPv6, params);\n}\nexport const ZodCIDRv4 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv4\", (inst, def) => {\n core.$ZodCIDRv4.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv4(params) {\n return core._cidrv4(ZodCIDRv4, params);\n}\nexport const ZodCIDRv6 = /*@__PURE__*/ core.$constructor(\"ZodCIDRv6\", (inst, def) => {\n core.$ZodCIDRv6.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function cidrv6(params) {\n return core._cidrv6(ZodCIDRv6, params);\n}\nexport const ZodBase64 = /*@__PURE__*/ core.$constructor(\"ZodBase64\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64(params) {\n return core._base64(ZodBase64, params);\n}\nexport const ZodBase64URL = /*@__PURE__*/ core.$constructor(\"ZodBase64URL\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodBase64URL.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function base64url(params) {\n return core._base64url(ZodBase64URL, params);\n}\nexport const ZodE164 = /*@__PURE__*/ core.$constructor(\"ZodE164\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodE164.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function e164(params) {\n return core._e164(ZodE164, params);\n}\nexport const ZodCreditCard = /*@__PURE__*/ core.$constructor(\"ZodCreditCard\", (inst, def) => {\n core.$ZodCreditCard.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function creditCard(params) {\n return core._creditCard(ZodCreditCard, params);\n}\nexport const ZodIBAN = /*@__PURE__*/ core.$constructor(\"ZodIBAN\", (inst, def) => {\n core.$ZodIBAN.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function iban(params) {\n return core._iban(ZodIBAN, params);\n}\nexport const ZodJWT = /*@__PURE__*/ core.$constructor(\"ZodJWT\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodJWT.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function jwt(params) {\n return core._jwt(ZodJWT, params);\n}\nexport const ZodCustomStringFormat = /*@__PURE__*/ core.$constructor(\"ZodCustomStringFormat\", (inst, def) => {\n // ZodStringFormat.init(inst, def);\n core.$ZodCustomStringFormat.init(inst, def);\n ZodStringFormat.init(inst, def);\n});\nexport function stringFormat(format, fnOrRegex, _params = {}) {\n return core._stringFormat(ZodCustomStringFormat, format, fnOrRegex, _params);\n}\nexport function hostname(_params) {\n return core._stringFormat(ZodCustomStringFormat, \"hostname\", regexes.hostname, _params);\n}\nexport function hex(_params) {\n return core._stringFormat(ZodCustomStringFormat, \"hex\", regexes.hex, _params);\n}\nexport function currencyCode(_params) {\n return core._stringFormat(ZodCustomStringFormat, \"currency_code\", regexes.currencyCode, _params);\n}\nexport function hash(alg, params) {\n const enc = params?.enc ?? \"hex\";\n const format = `${alg}_${enc}`;\n const regex = core.regexes[format];\n if (!regex)\n throw new Error(`Unrecognized hash format: ${format}`);\n return core._stringFormat(ZodCustomStringFormat, format, regex, params);\n}\nexport const ZodNumber = /*@__PURE__*/ core.$constructor(\"ZodNumber\", (inst, def) => {\n core.$ZodNumber.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.numberProcessor(inst, ctx, json, params);\n inst.isFinite = true;\n}, \n/*@__PURE__*/ util.derived({\n minValue: (inst) => {\n const { minimum, exclusiveMinimum } = processors.aggregateChecks(inst);\n return Math.max(minimum ?? Number.NEGATIVE_INFINITY, exclusiveMinimum ?? Number.NEGATIVE_INFINITY);\n },\n maxValue: (inst) => {\n const { maximum, exclusiveMaximum } = processors.aggregateChecks(inst);\n return Math.min(maximum ?? Number.POSITIVE_INFINITY, exclusiveMaximum ?? Number.POSITIVE_INFINITY);\n },\n isInt: (inst) => {\n const { isInt, multipleOf } = processors.aggregateChecks(inst);\n return !!isInt || !!multipleOf?.some(Number.isSafeInteger);\n },\n format: (inst) => processors.aggregateChecks(inst).format ?? null,\n}, {\n gt(value, params) {\n return this.check(checks.gt(value, params));\n },\n gte(value, params) {\n return this.check(checks.gte(value, params));\n },\n min(value, params) {\n return this.check(checks.gte(value, params));\n },\n lt(value, params) {\n return this.check(checks.lt(value, params));\n },\n lte(value, params) {\n return this.check(checks.lte(value, params));\n },\n max(value, params) {\n return this.check(checks.lte(value, params));\n },\n int(params) {\n return this.check(int(params));\n },\n safe(params) {\n return this.check(int(params));\n },\n positive(params) {\n return this.check(checks.gt(0, params));\n },\n nonnegative(params) {\n return this.check(checks.gte(0, params));\n },\n negative(params) {\n return this.check(checks.lt(0, params));\n },\n nonpositive(params) {\n return this.check(checks.lte(0, params));\n },\n multipleOf(value, params) {\n return this.check(checks.multipleOf(value, params));\n },\n step(value, params) {\n return this.check(checks.multipleOf(value, params));\n },\n finite() {\n return this;\n },\n}));\nexport function number(params) {\n return core._number(ZodNumber, params);\n}\nexport const ZodNumberFormat = /*@__PURE__*/ core.$constructor(\"ZodNumberFormat\", (inst, def) => {\n core.$ZodNumberFormat.init(inst, def);\n ZodNumber.init(inst, def);\n});\nexport function int(params) {\n return core._int(ZodNumberFormat, params);\n}\nexport function float32(params) {\n return core._float32(ZodNumberFormat, params);\n}\nexport function float64(params) {\n return core._float64(ZodNumberFormat, params);\n}\nexport function int32(params) {\n return core._int32(ZodNumberFormat, params);\n}\nexport function uint32(params) {\n return core._uint32(ZodNumberFormat, params);\n}\nexport const ZodBoolean = /*@__PURE__*/ core.$constructor(\"ZodBoolean\", (inst, def) => {\n core.$ZodBoolean.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.booleanProcessor(inst, ctx, json, params);\n});\nexport function boolean(params) {\n return core._boolean(ZodBoolean, params);\n}\nexport const ZodBigInt = /*@__PURE__*/ core.$constructor(\"ZodBigInt\", (inst, def) => {\n core.$ZodBigInt.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.bigintProcessor(inst, ctx, json, params);\n}, \n/*@__PURE__*/ util.derived({\n minValue: (inst) => processors.aggregateChecks(inst).minimum ?? null,\n maxValue: (inst) => processors.aggregateChecks(inst).maximum ?? null,\n format: (inst) => processors.aggregateChecks(inst).format ?? null,\n}, {\n gte(value, params) {\n return this.check(checks.gte(value, params));\n },\n min(value, params) {\n return this.check(checks.gte(value, params));\n },\n gt(value, params) {\n return this.check(checks.gt(value, params));\n },\n lt(value, params) {\n return this.check(checks.lt(value, params));\n },\n lte(value, params) {\n return this.check(checks.lte(value, params));\n },\n max(value, params) {\n return this.check(checks.lte(value, params));\n },\n positive(params) {\n return this.check(checks.gt(BigInt(0), params));\n },\n negative(params) {\n return this.check(checks.lt(BigInt(0), params));\n },\n nonpositive(params) {\n return this.check(checks.lte(BigInt(0), params));\n },\n nonnegative(params) {\n return this.check(checks.gte(BigInt(0), params));\n },\n multipleOf(value, params) {\n return this.check(checks.multipleOf(value, params));\n },\n}));\nexport function bigint(params) {\n return core._bigint(ZodBigInt, params);\n}\nexport const ZodBigIntFormat = /*@__PURE__*/ core.$constructor(\"ZodBigIntFormat\", (inst, def) => {\n core.$ZodBigIntFormat.init(inst, def);\n ZodBigInt.init(inst, def);\n});\nexport function int64(params) {\n return core._int64(ZodBigIntFormat, params);\n}\nexport function uint64(params) {\n return core._uint64(ZodBigIntFormat, params);\n}\nexport const ZodSymbol = /*@__PURE__*/ core.$constructor(\"ZodSymbol\", (inst, def) => {\n core.$ZodSymbol.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.symbolProcessor(inst, ctx, json, params);\n});\nexport function symbol(params) {\n return core._symbol(ZodSymbol, params);\n}\nexport const ZodUndefined = /*@__PURE__*/ core.$constructor(\"ZodUndefined\", (inst, def) => {\n core.$ZodUndefined.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.undefinedProcessor(inst, ctx, json, params);\n});\nfunction _undefined(params) {\n return core._undefined(ZodUndefined, params);\n}\nexport { _undefined as undefined };\nexport const ZodNull = /*@__PURE__*/ core.$constructor(\"ZodNull\", (inst, def) => {\n core.$ZodNull.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.nullProcessor(inst, ctx, json, params);\n});\nfunction _null(params) {\n return core._null(ZodNull, params);\n}\nexport { _null as null };\nexport const ZodAny = /*@__PURE__*/ core.$constructor(\"ZodAny\", (inst, def) => {\n core.$ZodAny.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.anyProcessor(inst, ctx, json, params);\n});\nexport function any() {\n return core._any(ZodAny);\n}\nexport const ZodUnknown = /*@__PURE__*/ core.$constructor(\"ZodUnknown\", (inst, def) => {\n core.$ZodUnknown.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.unknownProcessor(inst, ctx, json, params);\n});\nexport function unknown() {\n return core._unknown(ZodUnknown);\n}\nexport const ZodNever = /*@__PURE__*/ core.$constructor(\"ZodNever\", (inst, def) => {\n core.$ZodNever.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.neverProcessor(inst, ctx, json, params);\n});\nexport function never(params) {\n return core._never(ZodNever, params);\n}\nexport const ZodVoid = /*@__PURE__*/ core.$constructor(\"ZodVoid\", (inst, def) => {\n core.$ZodVoid.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.voidProcessor(inst, ctx, json, params);\n});\nfunction _void(params) {\n return core._void(ZodVoid, params);\n}\nexport { _void as void };\nexport const ZodDate = /*@__PURE__*/ core.$constructor(\"ZodDate\", (inst, def) => {\n core.$ZodDate.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.dateProcessor(inst, ctx, json, params);\n inst.min = (value, params) => inst.check(checks.gte(value, params));\n inst.max = (value, params) => inst.check(checks.lte(value, params));\n}, \n/*@__PURE__*/ util.derived({\n minDate: (inst) => {\n const { minimum } = processors.aggregateChecks(inst);\n return minimum ? new Date(minimum) : null;\n },\n maxDate: (inst) => {\n const { maximum } = processors.aggregateChecks(inst);\n return maximum ? new Date(maximum) : null;\n },\n}, {}));\nexport function date(params) {\n return core._date(ZodDate, params);\n}\nexport const ZodArray = /*@__PURE__*/ core.$constructor(\"ZodArray\", (inst, def) => {\n _ensureDefaultMemoizer();\n core.$ZodArray.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.arrayProcessor(inst, ctx, json, params);\n inst.element = def.element;\n}, {\n min(n, params) {\n return this.check(checks.minLength(n, params));\n },\n nonempty(params) {\n return this.check(checks.minLength(1, params));\n },\n max(n, params) {\n return this.check(checks.maxLength(n, params));\n },\n length(n, params) {\n return this.check(checks.length(n, params));\n },\n unwrap() {\n return this.element;\n },\n});\nexport function array(element, params) {\n return core._array(ZodArray, element, params);\n}\n// .keyof\nexport function keyof(schema) {\n const shape = schema._zod.def.shape;\n return _enum(Object.keys(shape));\n}\nexport const ZodObject = /*@__PURE__*/ core.$constructor(\"ZodObject\", (inst, def) => {\n _ensureDefaultMemoizer();\n core.$ZodObjectJIT.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.objectProcessor(inst, ctx, json, params);\n util.installLazyProp(inst, \"shape\", (self) => self._zod.def.shape, false);\n}, {\n keyof() {\n return _enum(Object.keys(this._zod.def.shape));\n },\n catchall(catchall) {\n // `mergeDefs` rather than a spread: spreading reads `shape`, and resolving it can mint a whole fresh subtree\n return this.clone(util.mergeDefs(this._zod.def, { catchall: catchall }));\n },\n passthrough() {\n return this.clone(util.mergeDefs(this._zod.def, { catchall: unknown() }));\n },\n loose() {\n return this.clone(util.mergeDefs(this._zod.def, { catchall: unknown() }));\n },\n strict() {\n return this.clone(util.mergeDefs(this._zod.def, { catchall: never() }));\n },\n strip() {\n return this.clone(util.mergeDefs(this._zod.def, { catchall: undefined }));\n },\n extend(incoming) {\n return util.extend(this, incoming);\n },\n safeExtend(incoming) {\n return util.safeExtend(this, incoming);\n },\n merge(other) {\n return util.merge(this, other);\n },\n pick(mask) {\n return util.pick(this, mask);\n },\n omit(mask) {\n return util.omit(this, mask);\n },\n partial(...args) {\n return util.partial(ZodOptional, this, args[0]);\n },\n exactPartial(...args) {\n return util.partial(ZodExactOptional, this, args[0], \"exactPartial\");\n },\n required(...args) {\n return util.required(ZodNonOptional, this, args[0]);\n },\n});\nexport function object(shape, params) {\n const def = {\n type: \"object\",\n shape: shape ?? {},\n ...util.normalizeParams(params),\n };\n return new ZodObject(def);\n}\n// strictObject\nexport function strictObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n shape,\n catchall: never(),\n ...util.normalizeParams(params),\n });\n}\n// looseObject\nexport function looseObject(shape, params) {\n return new ZodObject({\n type: \"object\",\n shape,\n catchall: unknown(),\n ...util.normalizeParams(params),\n });\n}\nexport const ZodUnion = /*@__PURE__*/ core.$constructor(\"ZodUnion\", (inst, def) => {\n core.$ZodUnion.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.unionProcessor(inst, ctx, json, params);\n inst.options = def.options;\n});\nexport function union(options, params) {\n return new ZodUnion({\n type: \"union\",\n options: options,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodXor = /*@__PURE__*/ core.$constructor(\"ZodXor\", (inst, def) => {\n ZodUnion.init(inst, def);\n core.$ZodXor.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.unionProcessor(inst, ctx, json, params);\n inst.options = def.options;\n});\n/** Creates an exclusive union (XOR) where exactly one option must match.\n * Unlike regular unions that succeed when any option matches, xor fails if\n * zero or more than one option matches the input. */\nexport function xor(options, params) {\n return new ZodXor({\n type: \"union\",\n options: options,\n inclusive: false,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodDiscriminatedUnion = /*@__PURE__*/ core.$constructor(\"ZodDiscriminatedUnion\", (inst, def) => {\n ZodUnion.init(inst, def);\n core.$ZodDiscriminatedUnion.init(inst, def);\n});\nexport function discriminatedUnion(discriminator, options, params) {\n // const [options, params] = args;\n return new ZodDiscriminatedUnion({\n type: \"union\",\n options: options,\n discriminator,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodIntersection = /*@__PURE__*/ core.$constructor(\"ZodIntersection\", (inst, def) => {\n core.$ZodIntersection.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.intersectionProcessor(inst, ctx, json, params);\n});\nexport function intersection(left, right) {\n return new ZodIntersection({\n type: \"intersection\",\n left: left,\n right: right,\n });\n}\nexport const ZodTuple = /*@__PURE__*/ core.$constructor(\"ZodTuple\", (inst, def) => {\n _ensureDefaultMemoizer();\n core.$ZodTuple.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.tupleProcessor(inst, ctx, json, params);\n}, {\n rest(rest) {\n return this.clone({\n ...this._zod.def,\n rest: rest,\n });\n },\n partial() {\n const def = this._zod.def;\n // a refinement was authored against the full arity; partialing would run it on a shorter array\n if (def.checks?.length)\n throw new Error(\".partial() cannot be used on tuple schemas containing refinements\");\n return this.clone({\n ...def,\n items: def.items.map((item) => new ZodOptional({ type: \"optional\", innerType: item })),\n });\n },\n});\nexport function tuple(items, _paramsOrRest, _params) {\n const hasRest = _paramsOrRest instanceof core.$ZodType;\n const params = hasRest ? _params : _paramsOrRest;\n const rest = hasRest ? _paramsOrRest : null;\n return new ZodTuple({\n type: \"tuple\",\n items: items,\n rest,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodRecord = /*@__PURE__*/ core.$constructor(\"ZodRecord\", (inst, def) => {\n _ensureDefaultMemoizer();\n core.$ZodRecord.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.recordProcessor(inst, ctx, json, params);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n});\nexport function record(keyType, valueType, params) {\n // v3-compat: z.record(valueType, params?) — defaults keyType to z.string()\n if (!valueType || !valueType._zod) {\n return new ZodRecord({\n type: \"record\",\n keyType: string(),\n valueType: keyType,\n ...util.normalizeParams(valueType),\n });\n }\n return new ZodRecord({\n type: \"record\",\n keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\n// type alksjf = core.output<core.$ZodRecordKey>;\nexport function partialRecord(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n partial: true,\n });\n}\nexport function looseRecord(keyType, valueType, params) {\n return new ZodRecord({\n type: \"record\",\n keyType,\n valueType: valueType,\n mode: \"loose\",\n ...util.normalizeParams(params),\n });\n}\nexport const ZodMap = /*@__PURE__*/ core.$constructor(\"ZodMap\", (inst, def) => {\n _ensureDefaultMemoizer();\n core.$ZodMap.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.mapProcessor(inst, ctx, json, params);\n inst.keyType = def.keyType;\n inst.valueType = def.valueType;\n inst.min = (...args) => inst.check(core._minSize(...args));\n inst.nonempty = (params) => inst.check(core._minSize(1, params));\n inst.max = (...args) => inst.check(core._maxSize(...args));\n inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function map(keyType, valueType, params) {\n return new ZodMap({\n type: \"map\",\n keyType: keyType,\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSet = /*@__PURE__*/ core.$constructor(\"ZodSet\", (inst, def) => {\n _ensureDefaultMemoizer();\n core.$ZodSet.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.setProcessor(inst, ctx, json, params);\n inst.min = (...args) => inst.check(core._minSize(...args));\n inst.nonempty = (params) => inst.check(core._minSize(1, params));\n inst.max = (...args) => inst.check(core._maxSize(...args));\n inst.size = (...args) => inst.check(core._size(...args));\n});\nexport function set(valueType, params) {\n return new ZodSet({\n type: \"set\",\n valueType: valueType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodEnum = /*@__PURE__*/ core.$constructor(\"ZodEnum\", (inst, def) => {\n core.$ZodEnum.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.enumProcessor(inst, ctx, json, params);\n inst.enum = def.entries;\n // reuse the parsed value set so a numeric TS enum's reverse-mapping keys stay out\n inst.options = [...inst._zod.values];\n const keys = new Set(Object.keys(def.entries));\n inst.extract = (values, params) => {\n const newEntries = {};\n for (const value of values) {\n if (keys.has(value)) {\n newEntries[value] = def.entries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n inst.exclude = (values, params) => {\n const newEntries = { ...def.entries };\n for (const value of values) {\n if (keys.has(value)) {\n delete newEntries[value];\n }\n else\n throw new Error(`Key ${value} not found in enum`);\n }\n return new ZodEnum({\n ...def,\n checks: [],\n ...util.normalizeParams(params),\n entries: newEntries,\n });\n };\n});\nfunction _enum(values, params) {\n const entries = Array.isArray(values) ? Object.fromEntries(values.map((v) => [v, v])) : values;\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport { _enum as enum };\n/** @deprecated This API has been merged into `z.enum()`. Use `z.enum()` instead.\n *\n * ```ts\n * enum Colors { red, green, blue }\n * z.enum(Colors);\n * ```\n */\nexport function nativeEnum(entries, params) {\n return new ZodEnum({\n type: \"enum\",\n entries,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLiteral = /*@__PURE__*/ core.$constructor(\"ZodLiteral\", (inst, def) => {\n core.$ZodLiteral.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.literalProcessor(inst, ctx, json, params);\n inst.values = new Set(def.values);\n Object.defineProperty(inst, \"value\", {\n get() {\n if (def.values.length > 1) {\n throw new Error(\"This schema contains multiple valid literal values. Use `.values` instead.\");\n }\n return def.values[0];\n },\n });\n});\nexport function literal(value, params) {\n return new ZodLiteral({\n type: \"literal\",\n values: Array.isArray(value) ? value : [value],\n ...util.normalizeParams(params),\n });\n}\nexport const ZodFile = /*@__PURE__*/ core.$constructor(\"ZodFile\", (inst, def) => {\n core.$ZodFile.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.fileProcessor(inst, ctx, json, params);\n inst.min = (size, params) => inst.check(core._minSize(size, params));\n inst.max = (size, params) => inst.check(core._maxSize(size, params));\n inst.mime = (types, params) => inst.check(core._mime(Array.isArray(types) ? types : [types], params));\n});\nexport function file(params) {\n return core._file(ZodFile, params);\n}\nexport const ZodTransform = /*@__PURE__*/ core.$constructor(\"ZodTransform\", (inst, def) => {\n _ensureDefaultMemoizer();\n core.$ZodTransform.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.transformProcessor(inst, ctx, json, params);\n inst._zod.parse = (payload, _ctx) => {\n if (_ctx.direction === \"backward\") {\n throw new core.$ZodEncodeError(inst.constructor.name);\n }\n payload.addIssue = (issue) => {\n if (typeof issue === \"string\") {\n payload.issues.push(util.issue(issue, payload.value, def));\n }\n else {\n // for Zod 3 backwards compatibility\n const _issue = issue;\n if (_issue.fatal)\n _issue.continue = false;\n _issue.code ?? (_issue.code = \"custom\");\n if (!(\"input\" in _issue))\n _issue.input = payload.value;\n _issue.inst ?? (_issue.inst = inst);\n // _issue.continue ??= true;\n payload.issues.push(util.issue(_issue));\n }\n };\n const output = def.transform(payload.value, payload);\n if (output instanceof Promise) {\n return output.then((output) => {\n payload.value = output;\n return payload;\n });\n }\n payload.value = output;\n return payload;\n };\n});\nexport function transform(fn) {\n return new ZodTransform({\n type: \"transform\",\n transform: fn,\n });\n}\nexport const ZodOptional = /*@__PURE__*/ core.$constructor(\"ZodOptional\", (inst, def) => {\n core.$ZodOptional.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.optionalProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function optional(innerType) {\n return new ZodOptional({\n type: \"optional\",\n innerType: innerType,\n });\n}\nexport const ZodExactOptional = /*@__PURE__*/ core.$constructor(\"ZodExactOptional\", (inst, def) => {\n core.$ZodExactOptional.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.optionalProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function exactOptional(innerType) {\n return new ZodExactOptional({\n type: \"optional\",\n innerType: innerType,\n });\n}\nexport const ZodNullable = /*@__PURE__*/ core.$constructor(\"ZodNullable\", (inst, def) => {\n core.$ZodNullable.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.nullableProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nullable(innerType) {\n return new ZodNullable({\n type: \"nullable\",\n innerType: innerType,\n });\n}\n// nullish\nexport function nullish(innerType) {\n return optional(nullable(innerType));\n}\nexport const ZodDefault = /*@__PURE__*/ core.$constructor(\"ZodDefault\", (inst, def) => {\n core.$ZodDefault.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.defaultProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeDefault = inst.unwrap;\n});\nexport function _default(innerType, defaultValue) {\n return new ZodDefault({\n type: \"default\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport const ZodPrefault = /*@__PURE__*/ core.$constructor(\"ZodPrefault\", (inst, def) => {\n core.$ZodPrefault.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.prefaultProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function prefault(innerType, defaultValue) {\n return new ZodPrefault({\n type: \"prefault\",\n innerType: innerType,\n get defaultValue() {\n return typeof defaultValue === \"function\" ? defaultValue() : util.shallowClone(defaultValue);\n },\n });\n}\nexport const ZodNonOptional = /*@__PURE__*/ core.$constructor(\"ZodNonOptional\", (inst, def) => {\n core.$ZodNonOptional.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.nonoptionalProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function nonoptional(innerType, params) {\n return new ZodNonOptional({\n type: \"nonoptional\",\n innerType: innerType,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodSuccess = /*@__PURE__*/ core.$constructor(\"ZodSuccess\", (inst, def) => {\n core.$ZodSuccess.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.successProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function success(innerType) {\n return new ZodSuccess({\n type: \"success\",\n innerType: innerType,\n });\n}\nexport const ZodCatch = /*@__PURE__*/ core.$constructor(\"ZodCatch\", (inst, def) => {\n core.$ZodCatch.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.catchProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n inst.removeCatch = inst.unwrap;\n});\nfunction _catch(innerType, catchValue) {\n return new ZodCatch({\n type: \"catch\",\n innerType: innerType,\n catchValue: (typeof catchValue === \"function\" ? catchValue : core.util.constantCatch(catchValue)),\n });\n}\nexport { _catch as catch };\nexport const ZodNaN = /*@__PURE__*/ core.$constructor(\"ZodNaN\", (inst, def) => {\n core.$ZodNaN.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.nanProcessor(inst, ctx, json, params);\n});\nexport function nan(params) {\n return core._nan(ZodNaN, params);\n}\nexport const ZodPipe = /*@__PURE__*/ core.$constructor(\"ZodPipe\", (inst, def) => {\n core.$ZodPipe.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.pipeProcessor(inst, ctx, json, params);\n inst.in = def.in;\n inst.out = def.out;\n});\nexport function pipe(in_, out) {\n return new ZodPipe({\n type: \"pipe\",\n in: in_,\n out: out,\n // ...util.normalizeParams(params),\n });\n}\nexport const ZodCodec = /*@__PURE__*/ core.$constructor(\"ZodCodec\", (inst, def) => {\n ZodPipe.init(inst, def);\n core.$ZodCodec.init(inst, def);\n});\nexport function codec(in_, out, params) {\n return new ZodCodec({\n type: \"pipe\",\n in: in_,\n out: out,\n transform: params.decode,\n reverseTransform: params.encode,\n });\n}\nexport function invertCodec(codec) {\n const def = codec._zod.def;\n return new ZodCodec({\n type: \"pipe\",\n in: def.out,\n out: def.in,\n transform: def.reverseTransform,\n reverseTransform: def.transform,\n });\n}\nexport const ZodPreprocess = /*@__PURE__*/ core.$constructor(\"ZodPreprocess\", (inst, def) => {\n ZodPipe.init(inst, def);\n core.$ZodPreprocess.init(inst, def);\n});\nexport const ZodReadonly = /*@__PURE__*/ core.$constructor(\"ZodReadonly\", (inst, def) => {\n core.$ZodReadonly.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.readonlyProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function readonly(innerType) {\n return new ZodReadonly({\n type: \"readonly\",\n innerType: innerType,\n });\n}\nexport const ZodTemplateLiteral = /*@__PURE__*/ core.$constructor(\"ZodTemplateLiteral\", (inst, def) => {\n core.$ZodTemplateLiteral.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.templateLiteralProcessor(inst, ctx, json, params);\n});\nexport function templateLiteral(parts, params) {\n return new ZodTemplateLiteral({\n type: \"template_literal\",\n parts,\n ...util.normalizeParams(params),\n });\n}\nexport const ZodLazy = /*@__PURE__*/ core.$constructor(\"ZodLazy\", (inst, def) => {\n core.$ZodLazy.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.lazyProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.getter();\n});\nexport function lazy(getter) {\n return new ZodLazy({\n type: \"lazy\",\n getter: getter,\n });\n}\nexport const ZodPromise = /*@__PURE__*/ core.$constructor(\"ZodPromise\", (inst, def) => {\n core.$ZodPromise.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.promiseProcessor(inst, ctx, json, params);\n inst.unwrap = () => inst._zod.def.innerType;\n});\nexport function promise(innerType) {\n return new ZodPromise({\n type: \"promise\",\n innerType: innerType,\n });\n}\nexport const ZodFunction = /*@__PURE__*/ core.$constructor(\"ZodFunction\", (inst, def) => {\n core.$ZodFunction.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.functionProcessor(inst, ctx, json, params);\n});\nexport function _function(params) {\n return new ZodFunction({\n type: \"function\",\n input: Array.isArray(params?.input) ? tuple(params?.input) : (params?.input ?? array(unknown())),\n output: params?.output ?? unknown(),\n });\n}\nexport { _function as function };\nexport const ZodCustom = /*@__PURE__*/ core.$constructor(\"ZodCustom\", (inst, def) => {\n core.$ZodCustom.init(inst, def);\n ZodType.init(inst, def);\n inst._zod.processJSONSchema = (ctx, json, params) => processors.customProcessor(inst, ctx, json, params);\n});\n// custom checks\nexport function check(fn) {\n const ch = new core.$ZodCheck({\n check: \"custom\",\n // ...util.normalizeParams(params),\n });\n ch._zod.check = fn;\n return ch;\n}\nexport function custom(fn, _params) {\n return core._custom(ZodCustom, fn ?? (() => true), _params);\n}\nexport function refine(fn, _params = {}) {\n return core._refine(ZodCustom, fn, _params);\n}\n// superRefine\nexport function superRefine(fn, params) {\n return core._superRefine(fn, params);\n}\n// Re-export describe and meta from core\nexport const describe = core.describe;\nexport const meta = core.meta;\nexport const ZodInstanceOf = /*@__PURE__*/ core.$constructor(\"ZodInstanceOf\", (inst, def) => {\n ZodCustom.init(inst, def);\n}, {\n properties(shape, params) {\n // asserts in place, so the narrowed output type is truthful without a wrapper\n return this.check(core._properties(shape, params));\n },\n});\nfunction _instanceof(cls, params = {}) {\n const inst = new ZodInstanceOf({\n type: \"custom\",\n check: \"custom\",\n fn: (data) => data instanceof cls,\n abort: true,\n ...util.normalizeParams(params),\n });\n inst._zod.bag.Class = cls;\n // Override check to emit invalid_type instead of custom\n inst._zod.check = (payload) => {\n if (!(payload.value instanceof cls)) {\n payload.issues.push({\n code: \"invalid_type\",\n expected: cls.name,\n input: payload.value,\n inst,\n path: [...(inst._zod.def.path ?? [])],\n });\n }\n };\n return inst;\n}\nexport { _instanceof as instanceof };\n// stringbool\nexport const stringbool = (...args) => core._stringbool({\n Codec: ZodCodec,\n Boolean: ZodBoolean,\n String: ZodString,\n}, ...args);\nexport function json(params) {\n const jsonSchema = lazy(() => {\n return union([string(params), number(), boolean(), _null(), array(jsonSchema), record(string(), jsonSchema)]);\n });\n return jsonSchema;\n}\n// preprocess\nexport function preprocess(fn, schema) {\n return new ZodPreprocess({\n type: \"pipe\",\n in: transform(fn),\n out: schema,\n });\n}\n","unable to read source [project]/node_modules/@aeolus-fleet/common/src/ids/index.ts","/**\n * An item that reached a person, as Bridge shows it once opened, and the\n * answer its form sends: pure view logic, no React and no API client.\n */\nimport { ALERT_CONTENT_TYPE, ANSWER_CONTENT_TYPE, answerSchema, isQuestionContentType, questionSchema, withdrawalOf, type Question } from '@aeolus-fleet/common';\nimport { z } from 'zod';\nimport type { inferRouterOutputs } from '@trpc/server';\n\nimport type { GatewayRouter } from '../../../../src/adapters/trpc/router.js';\nimport type { AlertView } from './stay-aware';\n\n/** The channels that wake a person when something waits for their person ship, as the API shows them (wake a person, W8). */\nexport type WakeChannels = inferRouterOutputs<GatewayRouter>['people']['wakeChannels'];\n\n/**\n * A delivery in focus: whole, as the person opened it or opened it again,\n * with its question when it is one.\n */\nexport interface FocusedDelivery {\n readonly deliveryId: string;\n readonly from: string;\n readonly title: string;\n readonly sentAt: string;\n readonly payload: string;\n /** What it shows of its payload: an alert's or a notice's body, any other payload as it came. */\n readonly body: string;\n readonly question: Question | undefined;\n /** The step it asks (CC14), when it is one. */\n readonly step: StepView | undefined;\n /** The alert it carries (decision 0071): the ship it is about, when it is one. */\n readonly alert: AlertView | undefined;\n /** The meeting it was contributed to or tells of, when it belongs to one. */\n readonly meetingId: string | undefined;\n /** Whether its asker withdrew or replaced the question or step it asks, with the replacement, a new item. */\n readonly stale: Stale | null;\n /** The ship an alert is about, by name, for the person to send it a message (aeolus-fleet #1547). */\n readonly alertShip?: string | undefined;\n}\n\n/** A question or step its asker withdrew or replaced (decision 0038, CC14), as the API says it: when, and the replacement with its title. */\nexport interface Stale {\n readonly kind: 'withdrawn' | 'replaced';\n readonly replacementId: string | null;\n readonly at: string;\n readonly replacementTitle: string | null;\n}\n\n/** A time of day in UTC to the minute, as a list read on the server says it. */\nfunction utcClockOf(at: string): string {\n return `${new Date(at).toISOString().slice(11, 16)} UTC`;\n}\n\n/**\n * Who withdrew or replaced it and when, and a replacement's title, as the\n * mockups word it (basket.html); the time in UTC unless said otherwise, as\n * an opened item says it in the person's own time.\n */\nexport function staleSaidOf(stale: Stale, { from, clockOf = utcClockOf }: { from: string; clockOf?: (at: string) => string }): string {\n const said = `${stale.kind === 'withdrawn' ? 'Withdrawn' : 'Replaced'} by ${from} at ${clockOf(stale.at)}`;\n return stale.replacementTitle === null ? said : `${said} with “${stale.replacementTitle}”`;\n}\n\n/** The question a delivery asks (decision 0038): a question's own, or the new question a replacement asks. */\nexport function questionOf(opened: { contentType: string; payload: string }): Question | undefined {\n if (!isQuestionContentType(opened.contentType)) {\n return withdrawalOf(opened)?.replacement ?? undefined;\n }\n try {\n const question = questionSchema.safeParse(JSON.parse(opened.payload));\n return question.success ? question.data : undefined;\n } catch {\n return undefined;\n }\n}\n\n/** A step as Bridge shows it (CC14): its title, why, and its link, when it has one. */\nexport interface StepView {\n readonly title: string;\n readonly why: string;\n readonly link: StepLink | undefined;\n}\n\n/** The link where a step is done, shown with where it leads (host and path, as do.html draws it), and whether that is outside Aeolus: any host but the one Bridge is served on (Bridge, section 9). */\nexport interface StepLink {\n readonly href: string;\n readonly address: string;\n readonly isOutside: boolean;\n}\n\nfunction stepLinkOf(href: string, bridgeHost: string): StepLink {\n const url = new URL(href);\n return { href, address: `${url.host}${url.pathname.replace(/\\/$/, '')}`, isOutside: url.host !== bridgeHost };\n}\n\n/** The step and step replacement content types (CC14), as common names them from its release after 0.35.0; they move to common's constants then. */\nconst STEP_CONTENT_TYPE = 'application/vnd.aeolus.step+json';\nconst STEP_REPLACEMENT_CONTENT_TYPE = 'application/vnd.aeolus.step-replacement+json';\n\n/** What Bridge reads of a step, as common's stepSchema words it from its release after 0.35.0 (Bridge B2); it moves to common's then. */\nconst stepSchema = z.object({ title: z.string().min(1), why: z.string(), link: z.url({ protocol: /^https?$/ }).optional() });\n\n/** The schema a step is read with, by content type: a step's own, or the new step a step replacement asks. */\nconst STEP_SCHEMAS = new Map<string, z.ZodType<z.infer<typeof stepSchema>>>([\n [STEP_CONTENT_TYPE, stepSchema],\n [STEP_REPLACEMENT_CONTENT_TYPE, z.object({ step: stepSchema }).transform(({ step }) => step)],\n]);\n\n/** The step a delivery asks: a step's own, or the new step a step replacement asks; none for any other message, or one whose payload does not read. Its link is outside Aeolus unless it leads to the host Bridge is served on. */\nexport function stepOf(opened: { contentType: string; payload: string }, bridgeHost: string): StepView | undefined {\n const [essence = ''] = opened.contentType.split(';');\n const schema = STEP_SCHEMAS.get(essence.trim().toLowerCase());\n if (schema === undefined) {\n return undefined;\n }\n try {\n const step = schema.safeParse(JSON.parse(opened.payload));\n if (!step.success) {\n return undefined;\n }\n const { title, why, link } = step.data;\n return { title, why, link: link === undefined ? undefined : stepLinkOf(link, bridgeHost) };\n } catch {\n return undefined;\n }\n}\n\n/** The notice content type (CC15), as common names it from its release after 0.35.0; it moves to common's constant then. */\nconst NOTICE_CONTENT_TYPE = 'application/vnd.aeolus.notice+json';\n\nconst BODIED = new Set([ALERT_CONTENT_TYPE, NOTICE_CONTENT_TYPE]);\n\nconst bodiedSchema = z.object({ body: z.string() });\n\n/** An alert's or a notice's body; any other payload, or one that does not read, as it came. */\nexport function bodyOf(opened: { contentType: string; payload: string }): string {\n const [essence = ''] = opened.contentType.split(';');\n if (!BODIED.has(essence.trim().toLowerCase())) {\n return opened.payload;\n }\n try {\n return bodiedSchema.safeParse(JSON.parse(opened.payload)).data?.body ?? opened.payload;\n } catch {\n return opened.payload;\n }\n}\n\n/** What the person sends: an option they tapped and a note, or a note alone. */\nexport interface AnswerInput {\n readonly questionId: string | undefined;\n readonly option: number | undefined;\n readonly note: string;\n}\n\n/** The answer a form sends: an option and a note, or a note alone, for a question; a note as plain text otherwise. */\nexport function answerOf(input: AnswerInput): { isOk: true; value: { contentType: string; payload: string } } | { isOk: false; message: string } {\n const note = input.note.trim();\n if (input.questionId === undefined) {\n return note === '' ? { isOk: false, message: 'Write your answer first' } : { isOk: true, value: { contentType: 'text/plain', payload: note } };\n }\n const answer = answerSchema.safeParse({ questionId: input.questionId, ...(input.option === undefined ? {} : { option: input.option }), ...(note === '' ? {} : { note }) });\n return answer.success ? { isOk: true, value: { contentType: ANSWER_CONTENT_TYPE, payload: JSON.stringify(answer.data) } } : { isOk: false, message: 'Tap an option, or write a note' };\n}\n","/**\n * Bridge's items as its pages show them (docs/design/bridge, section 6):\n * each job's label, and what came of an item and where, in words. Pure view\n * logic, no React and no API client.\n */\nimport type { inferRouterOutputs } from '@trpc/server';\n\nimport type { GatewayRouter } from '../../../../src/adapters/trpc/router.js';\n\n/** Bridge home as the API answers it: what waits with its count, and the stay-aware feed. */\nexport type BridgeHome = inferRouterOutputs<GatewayRouter>['people']['home'];\n\n/** An item on Bridge home: by its title, with its job, new or seen. */\nexport type HomeItem = BridgeHome['waiting']['items'][number];\n\n/** A page of the person ship's record, as the API answers it. */\nexport type RecordPage = inferRouterOutputs<GatewayRouter>['people']['record'];\n\n/** An item of the record, with its state and its outcome once kept. */\nexport type RecordItem = RecordPage['items'][number];\n\ntype Job = RecordItem['job'];\ntype Outcome = NonNullable<RecordItem['outcome']>;\n\nconst JOB_LABELS: Record<Job, string> = {\n decide: 'Decide',\n do: 'Do',\n 'stay-aware': 'Stay aware',\n 'everything-else': 'Message',\n};\n\nconst PLACES: Record<Outcome['place'], string> = {\n bridge: 'in Bridge',\n chat: 'in a chat',\n slack: 'in Slack',\n gateway: 'by the gateway',\n};\n\nexport function jobLabelOf(job: Job): string {\n return JOB_LABELS[job];\n}\n\n/** The job's word on an item's row: stay aware said as Alert or Notice (Bridge mockups, home). */\nexport function jobWordOf({ job, isAlert }: { job: Job; isAlert: boolean }): string {\n if (job === 'stay-aware') {\n return isAlert ? 'Alert' : 'Notice';\n }\n return JOB_LABELS[job];\n}\n\nconst MS_PER_MINUTE = 60_000;\nconst MINUTES_PER_HOUR = 60;\nconst HOURS_PER_DAY = 24;\nconst DAYS_YESTERDAY = 1;\n\n/** How long ago an item arrived, as its row says it: now, minutes, hours, yesterday, then days. */\nexport function ageOf(sentAt: string, now: Date): string {\n const minutes = Math.floor((now.getTime() - new Date(sentAt).getTime()) / MS_PER_MINUTE);\n if (minutes < 1) {\n return 'now';\n }\n if (minutes < MINUTES_PER_HOUR) {\n return `${String(minutes)} min`;\n }\n const hours = Math.floor(minutes / MINUTES_PER_HOUR);\n if (hours < HOURS_PER_DAY) {\n return `${String(hours)} h`;\n }\n const days = Math.floor(hours / HOURS_PER_DAY);\n return days === DAYS_YESTERDAY ? 'yesterday' : `${String(days)} d`;\n}\n\n/** Where the person saw an item, as its row says it: Seen in Bridge; Seen alone where the gateway did not keep where. */\nexport function seenTextOf(seenIn: Outcome['place'] | null): string {\n return seenIn === null ? 'Seen' : `Seen ${PLACES[seenIn]}`;\n}\n\n/** What came of an item, short, as its history says it: Answered in Slack: option 2, Cannot, in Bridge, Withdrawn by orchestrator-1. */\nfunction saidOf(outcome: Outcome, from: string): string {\n const option = outcome.option === null ? '' : `: option ${String(outcome.option)}`;\n switch (outcome.kind) {\n case 'seen':\n return `Seen ${PLACES[outcome.place]}`;\n case 'answered':\n return `Answered ${PLACES[outcome.place]}${option}`;\n case 'done':\n return outcome.place === 'gateway' ? 'Done: the gateway saw it complete' : `Done ${PLACES[outcome.place]}`;\n case 'cannot':\n return `Cannot, ${PLACES[outcome.place]}`;\n case 'withdrawn':\n return `Withdrawn by ${from}`;\n case 'replaced':\n return `Replaced by ${from}`;\n case 'notSent':\n return `Not sent, removed ${PLACES[outcome.place]}${option}`;\n }\n}\n\n/** Whether an item ended as the person or its asker meant it to: seen, answered, done; not for cannot, withdrawn, replaced or not sent. */\nfunction isEndedWell(kind: Outcome['kind']): boolean {\n switch (kind) {\n case 'seen':\n case 'answered':\n case 'done':\n return true;\n case 'cannot':\n case 'withdrawn':\n case 'replaced':\n case 'notSent':\n return false;\n }\n}\n\n/** The option's label after its number, when the question names it: \", Harbour first\". */\nfunction labelOf(outcome: Outcome): string {\n return outcome.optionLabel === null ? '' : `, ${outcome.optionLabel}`;\n}\n\n/**\n * What came of a done item and where, on its row in Done (done.html): the\n * answer's option with its label and the note quoted, a step's note quoted,\n * who withdrew or replaced it and with what; Done alone when the fleet ended\n * it with no outcome kept. Whether it ended well picks its icon.\n */\nexport function doneOutcomeOf(item: Pick<RecordItem, 'from' | 'outcome'>): { readonly text: string; readonly isOk: boolean } {\n const { outcome } = item;\n if (outcome === null) {\n return { text: 'Done', isOk: true };\n }\n const said = saidOf(outcome, item.from);\n const note = outcome.note === null ? '' : `“${outcome.note}”`;\n const text = (() => {\n switch (outcome.kind) {\n case 'answered':\n return `${said}${labelOf(outcome)}${note === '' ? '' : `${outcome.option === null ? '' : ','} with the note ${note}`}`;\n case 'notSent':\n return `${said}${labelOf(outcome)}`;\n case 'done':\n case 'cannot':\n return note === '' || outcome.place === 'gateway' ? said : `${said}: ${note}`;\n case 'replaced':\n return outcome.replacementTitle === null ? said : `Withdrawn by ${item.from}, replaced by “${outcome.replacementTitle}”`;\n case 'seen':\n case 'withdrawn':\n return said;\n }\n })();\n return { text, isOk: isEndedWell(outcome.kind) };\n}\n\n/** Whether what came of an item was sent to its asker as the person: an answer, or a step's done or cannot by the person. */\nfunction isSentAsPerson(outcome: Outcome): boolean {\n return outcome.place !== 'gateway' && (outcome.kind === 'answered' || outcome.kind === 'done' || outcome.kind === 'cannot');\n}\n\n/**\n * What came of a done item opened from Done, where and at what time, with\n * the option's label (decide.html: \"Answered in Slack at 19:58: option 2,\n * Harbour first\"), and what was sent to its asker as the person, the note\n * quoted, with the places that show the same answer; none for one the\n * fleet ended with no outcome kept.\n */\n/** The places besides Bridge that show an answer once given, by what each shows: Slack its post, a chat the item (CC9, view sync). */\nconst ANSWER_SHOWN_IN: Partial<Record<RecordItem['places'][number], string>> = {\n slack: \"Slack's post\",\n chat: 'the chat',\n};\n\n/** The places that show the same answer, as the opened item says it: \"Slack's post and the chat show the same answer.\"; nothing when only Bridge showed it. */\nfunction sameAnswerOf(places: RecordItem['places']): string {\n const shown = places.flatMap((place) => ANSWER_SHOWN_IN[place] ?? []);\n if (shown.length === 0) {\n return '';\n }\n const named = shown.length === 1 ? `${shown.join('')} shows` : `${shown.slice(0, -1).join(', ')} and ${shown.at(-1) ?? ''} show`;\n return ` ${named.charAt(0).toUpperCase()}${named.slice(1)} the same answer.`;\n}\n\nexport function endedOf(item: Pick<RecordItem, 'from' | 'outcome' | 'places'>, timeZone?: string): { readonly isOk: boolean; readonly text: string; readonly sent: string | undefined } | undefined {\n const { outcome } = item;\n if (outcome === null) {\n return undefined;\n }\n const time = ` at ${clockTimeOf(outcome.at, timeZone)}`;\n const said = saidOf({ ...outcome, option: null }, item.from);\n const option = outcome.option === null ? '' : `: option ${String(outcome.option)}${labelOf(outcome)}`;\n const text = outcome.kind === 'done' && outcome.place === 'gateway' ? `Done by the gateway${time}: it saw it complete` : `${said}${time}${option}`;\n const note = outcome.note === null ? '' : `“${outcome.note}” `;\n const sameAnswer = outcome.kind === 'answered' ? sameAnswerOf(item.places) : '';\n return { isOk: isEndedWell(outcome.kind), text, sent: isSentAsPerson(outcome) ? `${note}Sent to ${item.from} as you.${sameAnswer}` : undefined };\n}\n\nconst ENDED_TITLES: Record<Outcome['kind'], string> = {\n seen: 'Seen',\n answered: 'Answered',\n done: 'Done',\n cannot: 'Cannot',\n withdrawn: 'Withdrawn',\n replaced: 'Replaced',\n notSent: 'Not sent',\n};\n\n/** The title of a done item's own screen on a phone: what came of it, such as Answered (decide.html); Done when none was kept. */\nexport function endedTitleOf(item: Pick<RecordItem, 'outcome'>): string {\n return item.outcome === null ? 'Done' : ENDED_TITLES[item.outcome.kind];\n}\n\n/** The places a row and a history name, as Where things show names them. */\nconst PLACE_NAMES: Record<RecordItem['places'][number] | 'bridge', string> = {\n bridge: 'Bridge',\n slack: 'Slack',\n chat: 'a chat',\n 'web-push': 'web push',\n email: 'email',\n};\n\n/** One line of a done item's history: at what time, what happened, and what more, the last one ending it. */\nexport interface HistoryLine {\n readonly at: string;\n readonly text: string;\n readonly detail: string | undefined;\n readonly isEnd: boolean;\n}\n\n/**\n * A done item's history (decide.html, answered in Slack): when it arrived\n * and the places that showed it, where and when the person saw it, and\n * what came of it, done. One whose outcome is seeing it says seen once.\n */\nexport function historyOf(item: Pick<RecordItem, 'from' | 'sentAt' | 'places' | 'outcome'>, timeZone?: string): HistoryLine[] {\n const arrived: HistoryLine = { at: clockTimeOf(item.sentAt, timeZone), text: `Arrived from ${item.from}`, detail: `shown in ${(['bridge', ...item.places] as const).map((place) => PLACE_NAMES[place]).join(', ')}`, isEnd: false };\n const { outcome } = item;\n if (outcome === null) {\n return [arrived];\n }\n const { seen } = outcome;\n const seenLine: HistoryLine[] = seen === null || outcome.kind === 'seen' ? [] : [{ at: clockTimeOf(seen.at, timeZone), text: `Seen ${PLACES[seen.place]}`, detail: undefined, isEnd: false }];\n return [arrived, ...seenLine, { at: clockTimeOf(outcome.at, timeZone), text: saidOf(outcome, item.from), detail: 'done', isEnd: true }];\n}\n\n/** A day as a calendar date in a time zone, counted from the epoch. */\nfunction dayNumberOf(at: Date, timeZone: string | undefined): number {\n const [year = 0, month = 1, day = 1] = new Intl.DateTimeFormat('en-CA', { year: 'numeric', month: '2-digit', day: '2-digit', timeZone }).format(at).split('-').map(Number);\n return Date.UTC(year, month - 1, day) / (MS_PER_MINUTE * MINUTES_PER_HOUR * HOURS_PER_DAY);\n}\n\n/** The day Done groups an item under, in the person's own time zone: Today, Yesterday, then its date (done.html). */\nexport function dayOf(at: string, { now, timeZone }: { now: Date; timeZone?: string }): string {\n const days = dayNumberOf(now, timeZone) - dayNumberOf(new Date(at), timeZone);\n if (days === 0) {\n return 'Today';\n }\n if (days === DAYS_YESTERDAY) {\n return 'Yesterday';\n }\n return new Intl.DateTimeFormat('en-GB', { day: 'numeric', month: 'short', timeZone }).format(new Date(at));\n}\n\n/**\n * The time of day an item arrived or an outcome was sent, as an opened item\n * says it (decide.html: \"19:41\"): the hour and minute in the person's own\n * time zone, the browser's unless one is named.\n */\nexport function clockTimeOf(at: string, timeZone?: string): string {\n return new Intl.DateTimeFormat('en-GB', { hour: '2-digit', minute: '2-digit', hourCycle: 'h23', timeZone }).format(new Date(at));\n}\n\n/** An opened item's job and whether a stay-aware one is an alert: what its heading and screen are named by. */\ninterface Named {\n readonly job: Job;\n readonly isAlert: boolean;\n}\n\n/** Who sent an opened item, in its heading's words: \"question from orchestrator-1\", \"step from\", or \"from\" alone (decide.html, do.html, stay-aware.html). */\nexport function fromWordsOf({ job }: Named): string {\n switch (job) {\n case 'decide':\n return 'question from';\n case 'do':\n return 'step from';\n case 'stay-aware':\n case 'everything-else':\n return 'from';\n }\n}\n\n/**\n * Whether an opened item was seen, in its heading's words: seen by this\n * opening, or already; an alert or a notice is done once seen (CC16). A\n * question or step seen before says nothing more (do.html).\n */\nexport function seenWordsOf({ wasNew, isDoneOnSeeing }: { wasNew: boolean; isDoneOnSeeing: boolean }): string | undefined {\n if (isDoneOnSeeing) {\n return wasNew ? 'Seen now, so done' : 'Seen, so done';\n }\n return wasNew ? 'Seen just now' : undefined;\n}\n\n/** The title of an item's own screen on a phone, beside its back chevron (decide.html, do.html). */\nexport function screenTitleOf(item: Named): string {\n switch (item.job) {\n case 'decide':\n return 'Question';\n case 'do':\n return 'Step';\n case 'stay-aware':\n return item.isAlert ? 'Alert' : 'Notice';\n case 'everything-else':\n return 'Message';\n }\n}\n","/**\n * Stay aware as Bridge shows it (stay-aware.html, CC16): how many alerts\n * and notices are not seen yet, and an opened alert's ship,\n * its Health in the console and what Aeolus does when it clears (decision\n * 0071). Pure view logic, no React and no API client.\n */\nimport { ALERT_CONTENT_TYPE, alertMessageSchema, type AlertSignal } from '@aeolus-fleet/common';\n\n/** How many are not seen yet: \"1 unseen\". */\nexport function unseenSaidOf(count: number): string {\n return `${String(count)} unseen`;\n}\n\n/** What an opened alert is about: its ship, and the signal that parted. */\nexport interface AlertView {\n readonly ship: { readonly id: string; readonly name: string };\n readonly signal: AlertSignal;\n}\n\n/** The alert a delivery carries; none for a notice, or a payload that does not read as an alert. */\nexport function alertOf(opened: { contentType: string; payload: string }): AlertView | undefined {\n if (opened.contentType !== ALERT_CONTENT_TYPE) {\n return undefined;\n }\n try {\n const alert = alertMessageSchema.safeParse(JSON.parse(opened.payload));\n return alert.success ? { ship: alert.data.ship, signal: alert.data.signal } : undefined;\n } catch {\n return undefined;\n }\n}\n\n/** A ship's Health: its page in the fleet's console, where its open alerts and its state now show (monitoring 4.8). */\nexport function healthHrefOf({ consoleUrl, shipId }: { consoleUrl: string; shipId: string }): string {\n return `${consoleUrl.replace(/\\/$/, '')}/ships/${shipId}`;\n}\n\n/** The info line under an opened alert: Aeolus only tells, the alert clears by itself, and nothing is sent when it does (0071). */\nexport function clearsSaidOf(alert: AlertView): string {\n const clears = alert.signal === 'report-unchanged' ? `The alert clears when ${alert.ship.name} reports again` : 'The alert clears by itself once what it tells of moves';\n return `Aeolus only tells you. ${clears}; nothing is sent on clear, so this stays here as it was.`;\n}\n","'use client';\n\nimport { RefreshCw } from 'lucide-react';\nimport { useRouter } from 'next/navigation';\nimport { useEffect } from 'react';\n\nimport { UnreadableBanner, type WhoDidNotAnswer } from '../ui/unreadable-banner';\n\n/** How long Bridge waits before it reads the record again by itself. */\nconst TRY_AGAIN_MS = 10_000;\n\n/**\n * The record cannot be read now (Bridge, section 9: core does not answer):\n * the banner, and the page reads itself again every 10 seconds, or at once\n * on Try now.\n */\nexport function RecordUnreadable({ whoDidNotAnswer }: { whoDidNotAnswer: WhoDidNotAnswer }) {\n const router = useRouter();\n useEffect(() => {\n const again = setInterval(() => {\n router.refresh();\n }, TRY_AGAIN_MS);\n return () => {\n clearInterval(again);\n };\n }, [router]);\n const tryNow = (\n <button type=\"button\" data-testid=\"bridge-try-now\" onClick={() => { router.refresh(); }} className=\"inline-flex h-8 items-center gap-1.5 rounded-md border border-border bg-card px-3 text-sm font-medium text-card-foreground hover:bg-accent\">\n <RefreshCw aria-hidden=\"true\" className=\"size-3.5\" />\n Try now\n </button>\n );\n return <UnreadableBanner whoDidNotAnswer={whoDidNotAnswer} tryNow={tryNow} />;\n}\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'cloud-off',\n size: 24,\n node: [\n [\n 'path',\n { d: 'M10.94 5.274A7 7 0 0 1 15.71 10h1.79a4.5 4.5 0 0 1 4.222 6.057', key: '1uxyv8' },\n ],\n ['path', { d: 'M18.796 18.81A4.5 4.5 0 0 1 17.5 19H9A7 7 0 0 1 5.79 5.78', key: '99tcn7' }],\n ['path', { d: 'm2 2 20 20', key: '1ooewy' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name CloudOff\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuOTQgNS4yNzRBNyA3IDAgMCAxIDE1LjcxIDEwaDEuNzlhNC41IDQuNSAwIDAgMSA0LjIyMiA2LjA1NyIgLz4KICA8cGF0aCBkPSJNMTguNzk2IDE4LjgxQTQuNSA0LjUgMCAwIDEgMTcuNSAxOUg5QTcgNyAwIDAgMSA1Ljc5IDUuNzgiIC8+CiAgPHBhdGggZD0ibTIgMiAyMCAyMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/cloud-off\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CloudOff = createLucideIcon(__iconData);\n\nexport default CloudOff;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'refresh-cw',\n size: 24,\n node: [\n ['path', { d: 'M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8', key: 'v9h5vc' }],\n ['path', { d: 'M21 3v5h-5', key: '1q7to0' }],\n ['path', { d: 'M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16', key: '3uifl3' }],\n ['path', { d: 'M8 16H3v5', key: '1cv678' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name RefreshCw\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyAxMmE5IDkgMCAwIDEgOS05IDkuNzUgOS43NSAwIDAgMSA2Ljc0IDIuNzRMMjEgOCIgLz4KICA8cGF0aCBkPSJNMjEgM3Y1aC01IiAvPgogIDxwYXRoIGQ9Ik0yMSAxMmE5IDkgMCAwIDEtOSA5IDkuNzUgOS43NSAwIDAgMS02Ljc0LTIuNzRMMyAxNiIgLz4KICA8cGF0aCBkPSJNOCAxNkgzdjUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/refresh-cw\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst RefreshCw = createLucideIcon(__iconData);\n\nexport default RefreshCw;\n","import { CloudOff } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\n/** Who did not answer when the record could not be read: the fleet (core), or the gateway itself. */\nexport type WhoDidNotAnswer = 'fleet' | 'gateway';\n\n/**\n * The record cannot be read now (states.html; Bridge, section 9: core does\n * not answer): who did not answer, that nothing is lost, since nothing was\n * acknowledged, and when Bridge tries again, with Try now beside it on a\n * wide screen; the phone's words are shorter.\n */\nexport function UnreadableBanner({ whoDidNotAnswer, tryNow }: { whoDidNotAnswer: WhoDidNotAnswer; tryNow: ReactNode }) {\n return (\n <section role=\"alert\" data-testid=\"bridge-unreadable\" className=\"flex items-start gap-2.5 rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2.5\">\n <CloudOff aria-hidden=\"true\" className=\"mt-0.5 size-4 shrink-0 text-tone-attention-fg\" />\n <span className=\"flex min-w-0 flex-1 flex-col\">\n <span className=\"font-medium\">The record cannot be read now</span>\n <span data-testid=\"bridge-unreadable-why\" className=\"text-meta text-muted-foreground max-sm:hidden\">\n The {whoDidNotAnswer} did not answer. Nothing was opened or answered, so nothing is lost; Bridge tries again in 10 s.\n </span>\n <span data-testid=\"bridge-unreadable-why-phone\" className=\"text-meta text-muted-foreground sm:hidden\">\n Nothing is lost. Trying again in 10 s.\n </span>\n </span>\n <span className=\"shrink-0 max-sm:hidden\">{tryNow}</span>\n </section>\n );\n}\n","import { CircleAlert, Info, SquareArrowOutUpRight } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { clearsSaidOf, type AlertView } from '../services/stay-aware';\n\n/**\n * What an opened alert shows of its ship (stay-aware.html): the ship's tile\n * in the alert's tone, as the alert left it, since nothing is sent when it\n * clears (decision 0071); Open <ship>'s Health in the console for its state\n * now, when the fleet's console is known, beside sending the ship a\n * message; and the info line saying so.\n */\nexport function AlertShip({ alert, healthHref, send }: { alert: AlertView; healthHref: string | undefined; /** Send <ship> a message, beside Health, when it can be sent. */ send?: ReactNode }) {\n const { name } = alert.ship;\n return (\n <div className=\"grid gap-3\">\n <div data-testid=\"bridge-alert-tile\" className=\"grid h-18 w-34 content-between rounded-md border border-tone-attention-border bg-tone-attention-bg px-2.5 py-2 text-tone-attention-fg\">\n <span className=\"truncate text-caption font-semibold text-card-foreground\">{name}</span>\n <span className=\"flex items-center gap-1 text-caption font-medium\">\n <CircleAlert aria-hidden=\"true\" className=\"size-3 shrink-0\" />\n Alert\n </span>\n </div>\n <div className=\"flex flex-wrap items-center gap-2\">\n {healthHref === undefined ? null : (\n <a\n data-testid=\"bridge-ship-health\"\n href={healthHref}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"inline-flex h-8 items-center gap-2 justify-self-start rounded-md border border-border bg-card px-3 text-caption font-medium hover:bg-accent\"\n >\n <SquareArrowOutUpRight aria-hidden=\"true\" className=\"size-3.5 shrink-0\" />\n {`Open ${name}’s Health`}\n </a>\n )}\n {send}\n </div>\n <p data-testid=\"bridge-alert-clears\" className=\"flex items-start gap-1.5 text-caption text-muted-foreground\">\n <Info aria-hidden=\"true\" className=\"mt-0.5 size-3.5 shrink-0\" />\n <span>{clearsSaidOf(alert)}</span>\n </p>\n </div>\n );\n}\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'square-arrow-out-up-right',\n size: 24,\n node: [\n ['path', { d: 'M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6', key: 'y09zxi' }],\n ['path', { d: 'm21 3-9 9', key: 'mpx6sq' }],\n ['path', { d: 'M15 3h6v6', key: '1q9fwt' }],\n ],\n aliases: ['arrow-up-right-from-square'],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name SquareArrowOutUpRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjEgMTN2NmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNiIgLz4KICA8cGF0aCBkPSJtMjEgMy05IDkiIC8+CiAgPHBhdGggZD0iTTE1IDNoNnY2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/square-arrow-out-up-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst SquareArrowOutUpRight = createLucideIcon(__iconData);\n\nexport default SquareArrowOutUpRight;\n","import { Check, ChevronLeft, CircleCheck, CircleX, ExternalLink, Eye, Info, Send, ShoppingBasket } from 'lucide-react';\nimport { useState, type ReactNode } from 'react';\n\nimport type { Question } from '@aeolus-fleet/common';\n\nimport { staleSaidOf, type FocusedDelivery, type Stale, type StepView } from '../services/deliveries';\nimport { shownInOf, type RoutedPlace } from '../services/routing';\nimport { clockTimeOf, fromWordsOf, jobWordOf, screenTitleOf, seenWordsOf, type HomeItem } from '../services/items';\nimport { ActionButton } from './action-button';\nimport { jobLookOf } from './job-looks';\nimport { Markdown } from './markdown';\nimport { healthHrefOf } from '../services/stay-aware';\nimport { AlertShip } from './alert-ship';\nimport { Notice } from './notice';\nimport { StaleIcon } from './stale-icon';\n\n/** A phone shows only the first paragraph of what an item says, as the sheets draw it; a desktop shows it whole. */\nexport const PROSE = 'max-md:[&_p+p]:hidden';\n\n/** Which of the card's controls is working: an option of the question put in the basket, its entry removed, the note alone, done, or a step's cannot. */\nexport type DeliveryControl = { kind: 'option'; option: number } | { kind: 'remove' } | { kind: 'note' } | { kind: 'done' } | { kind: 'cannot' };\n\n/** How an item was opened: its job, whether a stay-aware one is an alert, and whether it was new until this opening. */\nexport interface Opened {\n readonly job: HomeItem['job'];\n readonly isAlert: boolean;\n readonly wasNew: boolean;\n}\n\n/** How the person ends a step: they did it, or cannot. */\nexport type StepOutcome = 'done' | 'cannot';\n\n/** A step the person ended in Bridge: how, with the note sent, empty for none, and when (ISO 8601). */\nexport interface StepFinished {\n readonly outcome: StepOutcome;\n readonly note: string;\n readonly at: string;\n}\n\n/** The answer to a question in the basket (Bridge, section 9): its option, none for a note alone, and its note, none when the person wrote none. */\nexport interface InBasket {\n readonly option: number | null;\n readonly note: string | null;\n}\n\n/** What the button under a question puts in the basket: its words, and whether it is ready to; nothing while no option is chosen or the choice is what the basket holds. */\nexport interface Put {\n readonly label: string;\n readonly isReady: boolean;\n}\n\nexport function putOf({ chosen, inBasket, note }: { chosen: number | null | undefined; inBasket: InBasket | null; note: string }): Put | null {\n if (chosen === undefined || (inBasket !== null && inBasket.option === chosen)) {\n return null;\n }\n return chosen === null ? { label: 'Put the note alone in the basket', isReady: note.trim() !== '' } : { label: `Put option ${String(chosen)} in the basket`, isReady: true };\n}\n\n/** Which info lines a question says: the asker's pick while the choice is it and nothing is in the basket, or it is stale (decide-1); that nothing is sent yet once another option is chosen (basket-1); neither while the choice is what the basket holds (basket-2). */\nexport function infoLinesOf({ chosen, pick, inBasket, isStale }: { chosen: number | null | undefined; pick: number; inBasket: InBasket | null; isStale: boolean }): { isPickSaid: boolean; isNothingSentSaid: boolean } {\n if (isStale) {\n return { isPickSaid: true, isNothingSentSaid: false };\n }\n const isAtPick = inBasket === null && chosen === pick;\n return { isPickSaid: isAtPick, isNothingSentSaid: !isAtPick && putOf({ chosen, inBasket, note: '' }) !== null };\n}\n\n/** What a question in the basket says, in the info tone (basket.html): in it, not sent, with its note; picking another option changes it. */\nfunction InBasketNotice({ inBasket, basketHref, isRemoving, isWorking, onRemove }: { inBasket: InBasket; basketHref: string; isRemoving: boolean; isWorking: boolean; onRemove: () => void }) {\n return (\n <div data-testid=\"bridge-in-basket\" className=\"flex items-start gap-3 rounded-md border border-tone-active-border bg-tone-active-bg p-3\">\n <ShoppingBasket aria-hidden className=\"mt-0.5 size-4 shrink-0 text-tone-active-fg\" />\n <div className=\"grid flex-1 gap-2\">\n <span className=\"grid gap-0.5\">\n <span className=\"font-medium\">In the basket: {inBasket.option === null ? 'the note alone' : `option ${String(inBasket.option)}`}, not sent</span>\n <span className=\"text-caption text-muted-foreground\">{inBasket.note === null ? '' : `\"${inBasket.note}\" `}Pick another option to change it.</span>\n </span>\n <div className=\"flex flex-wrap gap-2\">\n <a data-testid=\"bridge-basket-open\" href={basketHref} className=\"inline-flex h-9 items-center rounded-md border border-border bg-card px-4 text-card-foreground hover:bg-accent\">\n Open the basket\n </a>\n <ActionButton data-testid=\"bridge-basket-remove\" variant=\"ghost\" isPending={isRemoving} pendingLabel=\"Removing...\" disabled={isWorking} onClick={onRemove}>\n Remove\n </ActionButton>\n </div>\n </div>\n </div>\n );\n}\n\n/** A line of the card said behind the info icon. */\nfunction InfoLine({ children }: { children: ReactNode }) {\n return (\n <p className=\"flex items-start gap-1.5 text-caption text-muted-foreground\">\n <Info aria-hidden className=\"mt-0.5 size-3.5 shrink-0\" />\n <span>{children}</span>\n </p>\n );\n}\n\n/** The options of a question, one to choose, the asker's pick marked, and No option, only the note, for a note alone; none to choose once it is stale. */\nfunction QuestionOptions({ question, chosen, isStale, onChoose }: { question: Question; chosen: number | null | undefined; isStale: boolean; onChoose: (option: number | null) => void }) {\n return (\n <fieldset className={`grid gap-2 ${isStale ? 'opacity-60' : ''}`} disabled={isStale}>\n <legend className=\"sr-only\">Options</legend>\n {question.options.map((option) => (\n <label key={option.key} className={`flex items-start gap-3 rounded-md border p-3 ${option.key === chosen && !isStale ? 'border-ring bg-accent' : 'border-border'}`}>\n <input type=\"radio\" name=\"option\" value={option.key} checked={option.key === chosen && !isStale} onChange={() => { onChoose(option.key); }} className=\"mt-1\" />\n <span className=\"grid flex-1 gap-0.5\">\n <span className=\"font-medium\">\n {option.key}. {option.label}\n </span>\n {option.detail === '' ? null : <span className=\"text-caption text-muted-foreground max-md:hidden\">{option.detail}</span>}\n </span>\n {option.key === question.pick.option ? <span className=\"rounded-sm border border-border px-1.5 text-caption\">Their pick</span> : null}\n </label>\n ))}\n <label className={`flex items-start gap-3 rounded-md border p-3 ${chosen === null && !isStale ? 'border-ring bg-accent' : 'border-border'}`}>\n <input type=\"radio\" name=\"option\" value=\"\" checked={chosen === null && !isStale} onChange={() => { onChoose(null); }} className=\"mt-1\" />\n <span className=\"grid flex-1 gap-0.5\">\n <span className=\"font-medium\">No option, only the note</span>\n <span className=\"text-caption text-muted-foreground max-md:hidden\">Answer with your note alone.</span>\n </span>\n </label>\n </fieldset>\n );\n}\n\n/** What a stale question or step says after who and when, in its words: withdrawn, done; or replaced, with the replacement to open. */\nconst STALE_WORDS = {\n question: { withdrawn: 'Nothing to answer: it is done.', replaced: 'Answer the new question.', open: 'Open the new question' },\n step: { withdrawn: 'Nothing to do: it is done.', replaced: 'Do the new step.', open: 'Open the new step' },\n} as const;\n\nfunction StaleNotice({ stale, from, isStep, timeZone, onOpen }: { stale: Stale; from: string; isStep: boolean; timeZone: string | undefined; onOpen: (deliveryId: string) => void }) {\n const { replacementId } = stale;\n const words = STALE_WORDS[isStep ? 'step' : 'question'];\n return (\n <div data-testid=\"bridge-stale\" className=\"grid gap-2\">\n <span className=\"flex items-center gap-1.5\">\n <StaleIcon kind={stale.kind} />\n {`${staleSaidOf(stale, { from, clockOf: (at) => clockTimeOf(at, timeZone) })}. ${stale.kind === 'withdrawn' ? words.withdrawn : words.replaced}`}\n </span>\n {replacementId === null ? null : (\n <ActionButton data-testid=\"bridge-replacement\" className=\"justify-self-start\" isPending={false} pendingLabel=\"Opening...\" onClick={() => { onOpen(replacementId); }}>\n {words.open}\n </ActionButton>\n )}\n </div>\n );\n}\n\n/** What a step asks: why, and the link where it is done in its box, with where it leads and whether that is outside Aeolus, opened only by the person's own Open; the box stays once the step is ended, without Open, and goes once it is stale (Bridge, section 9). */\nexport function StepAsked({ step, isStale, isFinished }: { step: StepView; isStale: boolean; isFinished: boolean }) {\n const { link } = step;\n return (\n <>\n <div className={PROSE}>\n <Markdown text={step.why} />\n </div>\n {link === undefined || isStale ? null : (\n <div className=\"flex items-center gap-3 rounded-md border border-border p-3\">\n <ExternalLink aria-hidden className=\"size-4 shrink-0 text-muted-foreground\" />\n <span className=\"grid flex-1\">\n <span className=\"font-medium\">Where it is done</span>\n <span className=\"font-mono text-caption text-muted-foreground\">{link.isOutside ? `${link.address} · opens outside Aeolus` : link.address}</span>\n </span>\n {isFinished ? null : (\n <a data-testid=\"bridge-step-link\" href={link.href} target=\"_blank\" rel=\"noopener noreferrer\" className=\"inline-flex h-8 items-center rounded-md border border-border px-3 hover:bg-accent\">\n Open\n </a>\n )}\n </div>\n )}\n </>\n );\n}\n\n/** A step ended in Bridge, shown on the step: done in the ok tone, cannot in the ended tone, only the icon in the tone's colour, when, the note quoted and what was sent (do.html). */\nfunction StepOutcomeNotice({ from, finished, timeZone }: { from: string; finished: StepFinished; timeZone: string | undefined }) {\n const isDone = finished.outcome === 'done';\n const Icon = isDone ? CircleCheck : CircleX;\n return (\n <div data-testid=\"bridge-step-outcome\" role=\"status\" className={`flex items-start gap-3 rounded-md border p-3 ${isDone ? 'border-tone-ok-border bg-tone-ok-bg' : 'border-tone-ended-border bg-tone-ended-bg'}`}>\n <Icon aria-hidden className={`mt-0.5 size-4 shrink-0 ${isDone ? 'text-tone-ok-fg' : 'text-tone-ended-fg'}`} />\n <span className=\"grid gap-0.5\">\n <span className=\"font-medium\">{`${isDone ? 'Done in Bridge' : 'Cannot, in Bridge'} at ${clockTimeOf(finished.at, timeZone)}`}</span>\n <span className=\"text-caption text-muted-foreground\">\n {finished.note === '' ? '' : `“${finished.note}” `}\n {`Sent to ${from} as you, with the outcome ${finished.outcome}.`}\n </span>\n </span>\n </div>\n );\n}\n\n/** A step's note field, shown before Done or Cannot is pressed, and the two: the outcome goes to the asker at once, with the note (CC14, CC23). */\nfunction StepControls({ from, note, working, failure, onNoteChange, onFinish }: { from: string; note: string; working: DeliveryControl | undefined; failure: string | undefined; onNoteChange: (note: string) => void; onFinish: (outcome: StepOutcome) => void }) {\n const isWorking = working !== undefined;\n return (\n <>\n <label className=\"grid max-w-2xl gap-1\">\n <span>Note (optional)</span>\n <textarea\n data-testid=\"bridge-note\"\n rows={2}\n value={note}\n onChange={(event) => { onNoteChange(event.target.value); }}\n placeholder={`Add a note for ${from}: what you did, or why you cannot`}\n className=\"field-sizing-content min-h-16 rounded-md border border-input bg-background p-2\"\n />\n <span className=\"text-caption text-muted-foreground\">Sent with Done or Cannot, whichever you press.</span>\n </label>\n {failure === undefined ? null : <Notice message={failure} isFailure />}\n <div className=\"flex flex-wrap gap-2\">\n <ActionButton data-testid=\"bridge-step-done\" variant=\"primary\" isPending={working?.kind === 'done'} pendingLabel=\"Sending...\" disabled={isWorking} onClick={() => { onFinish('done'); }}>\n <Check aria-hidden className=\"size-4\" />\n Done\n </ActionButton>\n <ActionButton data-testid=\"bridge-step-cannot\" isPending={working?.kind === 'cannot'} pendingLabel=\"Sending...\" disabled={isWorking} onClick={() => { onFinish('cannot'); }}>\n Cannot\n </ActionButton>\n </div>\n <InfoLine>\n Done tells {from} you did it, Cannot that you could not; the note goes with either. Whether it worked is theirs to check.\n </InfoLine>\n </>\n );\n}\n\n/** A question's note field, always open (BH1), and the button putting the answer in the basket, sending nothing (CC24); neither while the choice is what the basket holds. */\nfunction QuestionControls({ from, put, isNothingSentSaid, note, isPutting, isWorking, failure, onNoteChange, onPut }: { from: string; put: Put | null; isNothingSentSaid: boolean; note: string; isPutting: boolean; isWorking: boolean; failure: string | undefined; onNoteChange: (note: string) => void; onPut: () => void }) {\n if (put === null) {\n return null;\n }\n return (\n <>\n <label className=\"grid gap-1\">\n <span>Note (optional)</span>\n <textarea data-testid=\"bridge-note\" rows={2} value={note} onChange={(event) => { onNoteChange(event.target.value); }} className=\"field-sizing-content min-h-16 resize-none rounded-md border border-input bg-background p-2\" />\n <span className=\"text-caption text-muted-foreground\">Goes with the answer.</span>\n </label>\n {failure === undefined ? null : <Notice message={failure} isFailure />}\n <ActionButton data-testid=\"bridge-put-in-basket\" variant=\"primary\" className=\"w-full justify-center sm:w-auto sm:justify-self-start\" isPending={isPutting} pendingLabel=\"Putting in the basket...\" disabled={isWorking || !put.isReady} onClick={onPut}>\n <ShoppingBasket aria-hidden className=\"size-4\" />\n {put.label}\n </ActionButton>\n {isNothingSentSaid ? <InfoLine>Nothing is sent yet. {from} receives this answer when you send the basket.</InfoLine> : null}\n </>\n );\n}\n\n/** Sends the ship an opened alert is about a message, the form opening with its ship filled in (aeolus-fleet #1547). */\nfunction SendShipButton({ ship, onSendMessage }: { ship: string; onSendMessage: (alertShip: string) => void }) {\n return (\n <button type=\"button\" data-testid=\"bridge-send-alert-ship\" onClick={() => { onSendMessage(ship); }} className=\"inline-flex h-11 w-full items-center justify-center gap-2 rounded-md px-3 font-semibold hover:bg-accent sm:h-9 sm:w-auto sm:justify-self-start\">\n <Send aria-hidden=\"true\" className=\"size-4\" />\n Send {ship} a message\n </button>\n );\n}\n\n/** An opened item's heading (decide.html): its job's icon and word in its tone, who sent it, the time of day it arrived, and whether it was seen. */\nexport function ItemHeading({ delivery, opened, timeZone }: { delivery: Pick<FocusedDelivery, 'from' | 'sentAt'>; opened: Opened; timeZone: string | undefined }) {\n const look = jobLookOf(opened);\n const JobIcon = look.icon;\n const seen = seenWordsOf({ wasNew: opened.wasNew, isDoneOnSeeing: opened.job === 'stay-aware' });\n return (\n <p data-testid=\"bridge-item-heading\" className=\"flex flex-wrap items-center gap-x-2 gap-y-0.5 text-caption text-muted-foreground\">\n <span className={`inline-flex items-center gap-1 font-medium ${look.tone}`}>\n <JobIcon aria-hidden=\"true\" className=\"size-3.5\" />\n {jobWordOf(opened)}\n </span>\n <Separator />\n <span>\n {fromWordsOf(opened)} <strong className=\"font-semibold text-foreground\">{delivery.from}</strong>\n </span>\n <Separator />\n <time dateTime={delivery.sentAt}>{clockTimeOf(delivery.sentAt, timeZone)}</time>\n {seen === undefined ? null : (\n <>\n <Separator />\n <span>{seen}</span>\n </>\n )}\n </p>\n );\n}\n\nfunction Separator() {\n return (\n <span aria-hidden=\"true\" className=\"text-border\">\n ·\n </span>\n );\n}\n\n/** An opened item's own screen on a phone: back to the list by its chevron, titled by its job (decide.html, do.html). A desktop shows the list beside it instead. */\nexport function ScreenBar({ opened, title = screenTitleOf(opened), isWorking, onBack }: { opened: Opened; title?: string; isWorking: boolean; onBack: () => void }) {\n return (\n <div data-testid=\"bridge-item-screen-bar\" className=\"-mx-1 flex items-center gap-1 md:hidden\">\n <button type=\"button\" data-testid=\"bridge-back\" aria-label=\"Back to the list\" onClick={onBack} disabled={isWorking} className=\"inline-flex size-9 items-center justify-center rounded-md hover:bg-accent disabled:opacity-70\">\n <ChevronLeft aria-hidden=\"true\" className=\"size-5\" />\n </button>\n <span className=\"text-section font-semibold\">{title}</span>\n </div>\n );\n}\n\n/**\n * One item in focus (design B, Signal). A question opens with the asker's\n * pick chosen (CC11), or what is in the basket; its one button puts that\n * option in the basket with the note, if any, or, with No option, only the\n * note chosen, the note alone, and sends nothing (CC24): the person sends\n * the basket. A step (CC14) shows why and its link, then its\n * note field before Done and Cannot, each sending its outcome at once with\n * the note; once sent, the step shows its outcome in place of them. Any other item may get a note as its answer, and may\n * be done with; one of a meeting leads to the meeting. An alert or a notice\n * is done once seen (Bridge, CC16): it asks nothing more, and its heading\n * says so. So is a question its asker withdrew or replaced: stale, nothing\n * to send, a replaced one leading to its replacement. What it says is\n * Markdown; its times are the person's own (aeolus-fleet#1538).\n */\nexport function DeliveryCard({\n delivery,\n opened,\n timeZone,\n meetingHref,\n consoleUrl,\n basketHref,\n inBasket,\n finished,\n places,\n note,\n working,\n failure,\n onNoteChange,\n onAnswer,\n onPut,\n onRemove,\n onDone,\n onFinishStep,\n onOpen,\n onSendMessage,\n onBack,\n}: {\n delivery: FocusedDelivery;\n /** How it was opened: its job, whether an alert, and whether it was new. */\n opened: Opened;\n /** The time zone its times are said in: the browser's when none is named. */\n timeZone?: string;\n /** The page of the meeting it belongs to, if it belongs to one. */\n meetingHref: string | undefined;\n /** The fleet's console, where an alert's ship shows its Health; none when the fleet names no console. */\n consoleUrl: string | undefined;\n /** Bridge's basket. */\n basketHref: string;\n /** The answer to the question in the basket, if any. */\n inBasket: InBasket | null;\n /** How the person ended the step in Bridge, once they did. */\n finished: StepFinished | null;\n /** The places besides Bridge that show a question, when the page read them. */\n places: readonly RoutedPlace[] | undefined;\n note: string;\n working: DeliveryControl | undefined;\n failure: string | undefined;\n onNoteChange: (note: string) => void;\n /** Answers any item but a question with the note. */\n onAnswer: (option: number | undefined) => void;\n /** Puts the option chosen of a question in the basket, with the note, or the note alone. */\n onPut: (option: number | null) => void;\n /** Takes the question's answer out of the basket. */\n onRemove: () => void;\n onDone: () => void;\n /** Ends a step done or cannot, with the note. */\n onFinishStep: (outcome: StepOutcome) => void;\n /** Opens another item: a replaced question's or step's replacement. */\n onOpen: (deliveryId: string) => void;\n /** Opens the form to send an alert's ship a message, its ship filled in; unset where the item is no alert. */\n onSendMessage?: ((alertShip: string) => void) | undefined;\n onBack: () => void;\n}) {\n const { question, step, stale } = delivery;\n const [chosen, setChosen] = useState<number | null | undefined>(inBasket === null ? question?.pick.option : inBasket.option);\n const isWorking = working !== undefined;\n const infoLines = question === undefined ? undefined : infoLinesOf({ chosen, pick: question.pick.option, inBasket, isStale: stale !== null });\n // Seeing an alert or a notice was all it asked, so it is done (CC16).\n const isDoneOnSeeing = opened.job === 'stay-aware';\n const sendShip = delivery.alertShip !== undefined && onSendMessage !== undefined ? <SendShipButton ship={delivery.alertShip} onSendMessage={onSendMessage} /> : null;\n return (\n <section data-testid=\"bridge-delivery\" className=\"grid min-w-0 content-start gap-3 text-card-foreground md:p-5\">\n <ScreenBar opened={opened} isWorking={isWorking} onBack={onBack} />\n <ItemHeading delivery={delivery} opened={opened} timeZone={timeZone} />\n <h2 className=\"text-heading font-semibold\">{stale === null ? (question?.title ?? delivery.title) : <s className=\"decoration-muted-foreground\">{question?.title ?? delivery.title}</s>}</h2>\n {meetingHref === undefined ? null : (\n <a data-testid=\"bridge-meeting\" href={meetingHref} className=\"inline-flex h-9 items-center justify-self-start rounded-md bg-primary px-4 text-primary-foreground hover:bg-primary-hover\">\n Go to the meeting\n </a>\n )}\n {step !== undefined ? (\n <StepAsked step={step} isStale={stale !== null} isFinished={finished !== null} />\n ) : question === undefined ? (\n <Markdown text={delivery.body} />\n ) : (\n <>\n <div className={PROSE}>\n <Markdown text={question.context} />\n </div>\n <QuestionOptions question={question} chosen={chosen} isStale={stale !== null} onChoose={setChosen} />\n {infoLines?.isPickSaid === true ? (\n <InfoLine>\n {delivery.from} picks {question.pick.option}: {question.pick.why}\n </InfoLine>\n ) : null}\n </>\n )}\n {stale === null ? null : <StaleNotice stale={stale} from={delivery.from} isStep={step !== undefined} timeZone={timeZone} onOpen={onOpen} />}\n {inBasket === null || stale !== null ? null : <InBasketNotice inBasket={inBasket} basketHref={basketHref} isRemoving={working?.kind === 'remove'} isWorking={isWorking} onRemove={onRemove} />}\n {isDoneOnSeeing && delivery.alert !== undefined ? (\n <AlertShip alert={delivery.alert} healthHref={consoleUrl === undefined ? undefined : healthHrefOf({ consoleUrl, shipId: delivery.alert.ship.id })} send={sendShip} />\n ) : isDoneOnSeeing ? (\n sendShip\n ) : null}\n {isDoneOnSeeing ? null : stale !== null ? null : step !== undefined ? (\n finished === null ? <StepControls from={delivery.from} note={note} working={working} failure={failure} onNoteChange={onNoteChange} onFinish={onFinishStep} /> : <StepOutcomeNotice from={delivery.from} finished={finished} timeZone={timeZone} />\n ) : question === undefined ? (\n <>\n <label className=\"grid gap-1\">\n <span>Your answer</span>\n <textarea data-testid=\"bridge-note\" rows={2} value={note} onChange={(event) => { onNoteChange(event.target.value); }} className=\"rounded-md border border-input bg-background p-2\" />\n </label>\n {failure === undefined ? null : <Notice message={failure} isFailure />}\n <div className=\"flex flex-wrap gap-2\">\n <ActionButton data-testid=\"bridge-answer\" variant=\"primary\" isPending={working?.kind === 'note'} pendingLabel=\"Sending...\" disabled={isWorking} onClick={() => { onAnswer(undefined); }}>\n Answer\n </ActionButton>\n <ActionButton data-testid=\"bridge-done\" isPending={working?.kind === 'done'} pendingLabel=\"Marking done...\" disabled={isWorking} onClick={onDone}>\n Done\n </ActionButton>\n </div>\n </>\n ) : (\n <QuestionControls from={delivery.from} put={putOf({ chosen, inBasket, note })} isNothingSentSaid={infoLines?.isNothingSentSaid === true} note={note} isPutting={working?.kind === (chosen === null ? 'note' : 'option')} isWorking={isWorking} failure={failure} onNoteChange={onNoteChange} onPut={() => { if (chosen !== undefined) { onPut(chosen); } }} />\n )}\n {question === undefined || stale !== null || places === undefined ? null : (\n <footer data-testid=\"bridge-shown-in\" className=\"grid gap-1 border-t border-border pt-3 text-caption text-muted-foreground\">\n <Eye aria-hidden className=\"size-4\" />\n <span>{shownInOf(places)}</span>\n </footer>\n )}\n </section>\n );\n}\n","import type { ReactNode } from 'react';\n\n/**\n * A Bridge list and its open item (decide.html, aeolus-fleet#1538): on a\n * desktop the list beside the item, in one frame; on a phone the item on its\n * own screen, back to the list by its chevron. While none is open, the list\n * alone.\n */\nexport function ItemSplit({ list, item }: { list: ReactNode; item: ReactNode }) {\n if (item === undefined) {\n return <div className=\"grid gap-4\">{list}</div>;\n }\n return (\n <div data-testid=\"bridge-split\" className=\"grid min-w-0 md:grid-cols-[340px_minmax(0,1fr)] md:overflow-hidden md:rounded-lg md:border md:border-border md:bg-card\">\n <div data-testid=\"bridge-split-list\" className=\"hidden min-w-0 border-r border-border md:block\">\n {list}\n </div>\n {item}\n </div>\n );\n}\n","import { CircleQuestionMark, Hand, Megaphone, MessageSquare, TriangleAlert, type LucideIcon } from 'lucide-react';\n\nimport type { HomeItem } from '../services/items';\n\ntype Job = HomeItem['job'];\n\n/** Each job's icon and tone, on a row and an opened item's heading (Bridge mockups): Decide blue, Do amber, Alert red, a notice and a message muted. */\nexport const JOB_LOOKS: Record<Job | 'alert', { readonly icon: LucideIcon; readonly tone: string }> = {\n decide: { icon: CircleQuestionMark, tone: 'text-tone-active-fg' },\n do: { icon: Hand, tone: 'text-tone-waiting-fg' },\n alert: { icon: TriangleAlert, tone: 'text-tone-attention-fg' },\n 'stay-aware': { icon: Megaphone, tone: 'text-muted-foreground' },\n 'everything-else': { icon: MessageSquare, tone: 'text-muted-foreground' },\n};\n\n/** The look of an item's job: an alert's own, otherwise its job's. */\nexport function jobLookOf({ job, isAlert }: { job: Job; isAlert: boolean }): (typeof JOB_LOOKS)[Job] {\n return JOB_LOOKS[isAlert ? 'alert' : job];\n}\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'message-square',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z',\n key: '18887p',\n },\n ],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name MessageSquare\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjIgMTdhMiAyIDAgMCAxLTIgMkg2LjgyOGEyIDIgMCAwIDAtMS40MTQuNTg2bC0yLjIwMiAyLjIwMkEuNzEuNzEgMCAwIDEgMiAyMS4yODZWNWEyIDIgMCAwIDEgMi0yaDE2YTIgMiAwIDAgMSAyIDJ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/message-square\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst MessageSquare = createLucideIcon(__iconData);\n\nexport default MessageSquare;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'megaphone',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z',\n key: 'q8bfy3',\n },\n ],\n ['path', { d: 'M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14', key: '1853fq' }],\n ['path', { d: 'M8 6v8', key: '15ugcq' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Megaphone\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEgNmExMyAxMyAwIDAgMCA4LjQtMi44QTEgMSAwIDAgMSAyMSA0djEyYTEgMSAwIDAgMS0xLjYuOEExMyAxMyAwIDAgMCAxMSAxNEg1YTIgMiAwIDAgMS0yLTJWOGEyIDIgMCAwIDEgMi0yeiIgLz4KICA8cGF0aCBkPSJNNiAxNGExMiAxMiAwIDAgMCAyLjQgNy4yIDIgMiAwIDAgMCAzLjItMi40QTggOCAwIDAgMSAxMCAxNCIgLz4KICA8cGF0aCBkPSJNOCA2djgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/megaphone\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Megaphone = createLucideIcon(__iconData);\n\nexport default Megaphone;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'triangle-alert',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'm21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3',\n key: 'wmoenq',\n },\n ],\n ['path', { d: 'M12 9v4', key: 'juzpu7' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n ],\n aliases: ['alert-triangle'],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name TriangleAlert\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEuNzMgMTgtOC0xNGEyIDIgMCAwIDAtMy40OCAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTMiIC8+CiAgPHBhdGggZD0iTTEyIDl2NCIgLz4KICA8cGF0aCBkPSJNMTIgMTdoLjAxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/triangle-alert\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst TriangleAlert = createLucideIcon(__iconData);\n\nexport default TriangleAlert;\n","/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [jsx=false]\n * Support JSX identifiers (default: `false`).\n */\n\nconst startRe = /[$_\\p{ID_Start}]/u\nconst contRe = /[$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst contReJsx = /[-$_\\u{200C}\\u{200D}\\p{ID_Continue}]/u\nconst nameRe = /^[$_\\p{ID_Start}][$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\nconst nameReJsx = /^[$_\\p{ID_Start}][-$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Checks if the given code point can start an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @returns {boolean}\n * Whether `code` can start an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function start(code) {\n return code ? startRe.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given code point can continue an identifier.\n *\n * @param {number | undefined} code\n * Code point to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `code` can continue an identifier.\n */\n// Note: `undefined` is supported so you can pass the result from `''.codePointAt`.\nexport function cont(code, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? contReJsx : contRe\n return code ? re.test(String.fromCodePoint(code)) : false\n}\n\n/**\n * Checks if the given value is a valid identifier name.\n *\n * @param {string} name\n * Identifier to check.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {boolean}\n * Whether `name` can be an identifier.\n */\nexport function name(name, options) {\n const settings = options || emptyOptions\n const re = settings.jsx ? nameReJsx : nameRe\n return re.test(name)\n}\n","/**\n * @typedef {import('hast').Nodes} Nodes\n */\n\n// HTML whitespace expression.\n// See <https://infra.spec.whatwg.org/#ascii-whitespace>.\nconst re = /[ \\t\\n\\f\\r]/g\n\n/**\n * Check if the given value is *inter-element whitespace*.\n *\n * @param {Nodes | string} thing\n * Thing to check (`Node` or `string`).\n * @returns {boolean}\n * Whether the `value` is inter-element whitespace (`boolean`): consisting of\n * zero or more of space, tab (`\\t`), line feed (`\\n`), carriage return\n * (`\\r`), or form feed (`\\f`); if a node is passed it must be a `Text` node,\n * whose `value` field is checked.\n */\nexport function whitespace(thing) {\n return typeof thing === 'object'\n ? thing.type === 'text'\n ? empty(thing.value)\n : false\n : empty(thing)\n}\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nfunction empty(value) {\n return value.replace(re, '') === ''\n}\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [includeImageAlt=true]\n * Whether to use `alt` for `image`s (default: `true`).\n * @property {boolean | null | undefined} [includeHtml=true]\n * Whether to use `value` of HTML (default: `true`).\n */\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Get the text content of a node or list of nodes.\n *\n * Prefers the node’s plain-text fields, otherwise serializes its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} [value]\n * Thing to serialize, typically `Node`.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {string}\n * Serialized `value`.\n */\nexport function toString(value, options) {\n const settings = options || emptyOptions\n const includeImageAlt =\n typeof settings.includeImageAlt === 'boolean'\n ? settings.includeImageAlt\n : true\n const includeHtml =\n typeof settings.includeHtml === 'boolean' ? settings.includeHtml : true\n\n return one(value, includeImageAlt, includeHtml)\n}\n\n/**\n * One node or several nodes.\n *\n * @param {unknown} value\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized node.\n */\nfunction one(value, includeImageAlt, includeHtml) {\n if (node(value)) {\n if ('value' in value) {\n return value.type === 'html' && !includeHtml ? '' : value.value\n }\n\n if (includeImageAlt && 'alt' in value && value.alt) {\n return value.alt\n }\n\n if ('children' in value) {\n return all(value.children, includeImageAlt, includeHtml)\n }\n }\n\n if (Array.isArray(value)) {\n return all(value, includeImageAlt, includeHtml)\n }\n\n return ''\n}\n\n/**\n * Serialize a list of nodes.\n *\n * @param {Array<unknown>} values\n * Thing to serialize.\n * @param {boolean} includeImageAlt\n * Include image `alt`s.\n * @param {boolean} includeHtml\n * Include HTML.\n * @returns {string}\n * Serialized nodes.\n */\nfunction all(values, includeImageAlt, includeHtml) {\n /** @type {Array<string>} */\n const result = []\n let index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt, includeHtml)\n }\n\n return result.join('')\n}\n\n/**\n * Check if `value` looks like a node.\n *\n * @param {unknown} value\n * Thing.\n * @returns {value is Nodes}\n * Whether `value` is a node.\n */\nfunction node(value) {\n return Boolean(value && typeof value === 'object')\n}\n","/**\n * @import {Chunk, Code, Encoding, Value} from 'micromark-util-types'\n */\n\n/**\n * @callback Preprocessor\n * Preprocess a value.\n * @param {Value} value\n * Value.\n * @param {Encoding | null | undefined} [encoding]\n * Encoding when `value` is a typed array (optional).\n * @param {boolean | null | undefined} [end=false]\n * Whether this is the last chunk (default: `false`).\n * @returns {Array<Chunk>}\n * Chunks.\n */\n\nconst search = /[\\0\\t\\n\\r]/g;\n\n/**\n * @returns {Preprocessor}\n * Preprocess a value.\n */\nexport function preprocess() {\n let column = 1;\n let buffer = '';\n /** @type {boolean | undefined} */\n let start = true;\n /** @type {boolean | undefined} */\n let atCarriageReturn;\n return preprocessor;\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n value = buffer + (typeof value === 'string' ? value.toString() : new TextDecoder(encoding || undefined).decode(value));\n\n /** @type {Array<Chunk>} */\n const chunks = [];\n let startPosition = 0;\n buffer = '';\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++;\n }\n start = undefined;\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition;\n const match = search.exec(value);\n const endPosition = match && match.index !== undefined ? match.index : value.length;\n const code = value.charCodeAt(endPosition);\n if (!match) {\n buffer = value.slice(startPosition);\n break;\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3);\n atCarriageReturn = undefined;\n } else {\n if (atCarriageReturn) {\n chunks.push(-5);\n atCarriageReturn = undefined;\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition));\n column += endPosition - startPosition;\n }\n switch (code) {\n case 0:\n {\n chunks.push(65533);\n column++;\n break;\n }\n case 9:\n {\n const next = Math.ceil(column / 4) * 4;\n chunks.push(-2);\n while (column++ < next) {\n chunks.push(-1);\n }\n break;\n }\n case 10:\n {\n chunks.push(-4);\n column = 1;\n break;\n }\n default:\n {\n atCarriageReturn = true;\n column = 1;\n }\n }\n }\n startPosition = endPosition + 1;\n }\n if (end) {\n if (atCarriageReturn) {\n chunks.push(-5);\n }\n if (buffer) {\n chunks.push(buffer);\n }\n chunks.push(null);\n }\n return chunks;\n }\n}","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array<string>} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","export function deprecate(fn) {\n return fn\n}\n\nexport function equal() {}\n\nexport function ok() {}\n\nexport function unreachable() {}\n","export const VOID = -1;\nexport const PRIMITIVE = 0;\nexport const ARRAY = 1;\nexport const OBJECT = 2;\nexport const DATE = 3;\nexport const REGEXP = 4;\nexport const MAP = 5;\nexport const SET = 6;\nexport const ERROR = 7;\nexport const BIGINT = 8;\n// export const SYMBOL = 9;\n","export const CallableInstance =\n /**\n * @type {new <Parameters extends Array<unknown>, Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array<unknown>) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record<string | symbol, Function>} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const value = proto[property]\n /** @type {(...parameters: Array<unknown>) => unknown} */\n const apply = function () {\n return value.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n // Not needed for us in `unified`: we only call this on the `copy`\n // function,\n // and we don't need to add its fields (`length`, `name`)\n // over.\n // See also: GH-246.\n // const names = Object.getOwnPropertyNames(value)\n //\n // for (const p of names) {\n // const descriptor = Object.getOwnPropertyDescriptor(value, p)\n // if (descriptor) Object.defineProperty(apply, p, descriptor)\n // }\n\n return apply\n }\n )\n )\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX =\n /^((?:'(?:\\\\.|[^'\\\\])*'|\"(?:\\\\.|[^\"\\\\])*\"|url\\((?:'(?:\\\\.|[^'\\\\])*'|\"(?:\\\\.|[^\"\\\\])*\"|[^)]*)\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nexport default function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} rules\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n while ((c = comment())) {\n rules.push(c);\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: prop[0].replace(COMMENT_REGEX, EMPTY_STRING).trim(),\n value: val\n ? val[0].replace(COMMENT_REGEX, EMPTY_STRING).trim()\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n decls.push(decl);\n comments(decls);\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n}\n","import {characterEntities} from 'character-entities'\n\n// To do: next major: use `Object.hasOwn`.\nconst own = {}.hasOwnProperty\n\n/**\n * Decode a single character reference (without the `&` or `;`).\n * You probably only need this when you’re building parsers yourself that follow\n * different rules compared to HTML.\n * This is optimized to be tiny in browsers.\n *\n * @param {string} value\n * `notin` (named), `#123` (deci), `#x123` (hexa).\n * @returns {string|false}\n * Decoded reference.\n */\nexport function decodeNamedCharacterReference(value) {\n return own.call(characterEntities, value) ? characterEntities[value] : false\n}\n","import { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nconst characterEscapeOrReference = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode);\n}\n\n/**\n * @param {string} $0\n * Match.\n * @param {string} $1\n * Character escape.\n * @param {string} $2\n * Character reference.\n * @returns {string}\n * Decoded value\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1;\n }\n\n // Reference.\n const head = $2.charCodeAt(0);\n if (head === 35) {\n const head = $2.charCodeAt(1);\n const hex = head === 120 || head === 88;\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10);\n }\n return decodeNamedCharacterReference($2) || $0;\n}","import ReactMarkdown, { type Components } from 'react-markdown';\n\n/** How each part of the text is drawn: code on muted ground in mono, links underlined, opening outside Aeolus in a tab of their own. */\nconst COMPONENTS: Components = {\n p: ({ children }) => <p className=\"break-words\">{children}</p>,\n code: ({ children }) => <code className=\"rounded-sm bg-muted px-1 py-px font-mono text-[0.9em]\">{children}</code>,\n pre: ({ children }) => <pre className=\"overflow-x-auto rounded-md bg-muted p-3 font-mono text-caption [&_code]:bg-transparent [&_code]:p-0\">{children}</pre>,\n a: ({ href, children }) => (\n <a href={href} target=\"_blank\" rel=\"noopener noreferrer\" className=\"underline underline-offset-2 hover:text-primary\">\n {children}\n </a>\n ),\n ul: ({ children }) => <ul className=\"list-disc pl-5\">{children}</ul>,\n ol: ({ children }) => <ol className=\"list-decimal pl-5\">{children}</ol>,\n};\n\n/**\n * What an item says in Markdown, as an opened item shows it: a question's\n * context, a step's why, an alert's or a notice's body (Bridge mockups).\n * HTML in the text stays text, and a link leads only to a safe address,\n * as react-markdown does by default.\n */\nexport function Markdown({ text }: { text: string }) {\n return (\n <div className=\"grid gap-2\">\n <ReactMarkdown components={COMPONENTS}>{text}</ReactMarkdown>\n </div>\n );\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n },\n space: 'xlink',\n transform(_, property) {\n return 'xlink:' + property.slice(5).toLowerCase()\n }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n properties: {xmlBase: null, xmlLang: null, xmlSpace: null},\n space: 'xml',\n transform(_, property) {\n return 'xml:' + property.slice(3).toLowerCase()\n }\n})\n","import {create} from './util/create.js'\nimport {booleanish, number, spaceSeparated} from './util/types.js'\n\nexport const aria = create({\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n },\n transform(_, property) {\n return property === 'role'\n ? property\n : 'aria-' + property.slice(4).toLowerCase()\n }\n})\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n properties: {xmlnsXLink: null, xmlns: null},\n space: 'xmlns',\n transform: caseInsensitiveTransform\n})\n","/**\n * @import {Space} from 'property-information'\n */\n\nimport {Info} from './info.js'\nimport * as types from './types.js'\n\nconst checks = /** @type {ReadonlyArray<keyof typeof types>} */ (\n Object.keys(types)\n)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @param {number | null | undefined} [mask]\n * Mask.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Info.\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @template {keyof DefinedInfo} Key\n * Key type.\n * @param {DefinedInfo} values\n * Info.\n * @param {Key} key\n * Key.\n * @param {DefinedInfo[Key]} value\n * Value.\n * @returns {undefined}\n * Nothing.\n */\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","/**\n * @import {Schema as SchemaType, Space} from 'property-information'\n */\n\n/** @type {SchemaType} */\nexport class Schema {\n /**\n * @param {SchemaType['property']} property\n * Property.\n * @param {SchemaType['normal']} normal\n * Normal.\n * @param {Space | undefined} [space]\n * Space.\n * @returns\n * Schema.\n */\n constructor(property, normal, space) {\n this.normal = normal\n this.property = property\n\n if (space) {\n this.space = space\n }\n }\n}\n\nSchema.prototype.normal = {}\nSchema.prototype.property = {}\nSchema.prototype.space = undefined\n","/**\n * Map of named character references.\n *\n * @type {Record<string, string>}\n */\nexport const characterEntities = {\n AElig: 'Æ',\n AMP: '&',\n Aacute: 'Á',\n Abreve: 'Ă',\n Acirc: 'Â',\n Acy: 'А',\n Afr: '𝔄',\n Agrave: 'À',\n Alpha: 'Α',\n Amacr: 'Ā',\n And: '⩓',\n Aogon: 'Ą',\n Aopf: '𝔸',\n ApplyFunction: '⁡',\n Aring: 'Å',\n Ascr: '𝒜',\n Assign: '≔',\n Atilde: 'Ã',\n Auml: 'Ä',\n Backslash: '∖',\n Barv: '⫧',\n Barwed: '⌆',\n Bcy: 'Б',\n Because: '∵',\n Bernoullis: 'ℬ',\n Beta: 'Β',\n Bfr: '𝔅',\n Bopf: '𝔹',\n Breve: '˘',\n Bscr: 'ℬ',\n Bumpeq: '≎',\n CHcy: 'Ч',\n COPY: '©',\n Cacute: 'Ć',\n Cap: '⋒',\n CapitalDifferentialD: 'ⅅ',\n Cayleys: 'ℭ',\n Ccaron: 'Č',\n Ccedil: 'Ç',\n Ccirc: 'Ĉ',\n Cconint: '∰',\n Cdot: 'Ċ',\n Cedilla: '¸',\n CenterDot: '·',\n Cfr: 'ℭ',\n Chi: 'Χ',\n CircleDot: '⊙',\n CircleMinus: '⊖',\n CirclePlus: '⊕',\n CircleTimes: '⊗',\n ClockwiseContourIntegral: '∲',\n CloseCurlyDoubleQuote: '”',\n CloseCurlyQuote: '’',\n Colon: '∷',\n Colone: '⩴',\n Congruent: '≡',\n Conint: '∯',\n ContourIntegral: '∮',\n Copf: 'ℂ',\n Coproduct: '∐',\n CounterClockwiseContourIntegral: '∳',\n Cross: '⨯',\n Cscr: '𝒞',\n Cup: '⋓',\n CupCap: '≍',\n DD: 'ⅅ',\n DDotrahd: '⤑',\n DJcy: 'Ђ',\n DScy: 'Ѕ',\n DZcy: 'Џ',\n Dagger: '‡',\n Darr: '↡',\n Dashv: '⫤',\n Dcaron: 'Ď',\n Dcy: 'Д',\n Del: '∇',\n Delta: 'Δ',\n Dfr: '𝔇',\n DiacriticalAcute: '´',\n DiacriticalDot: '˙',\n DiacriticalDoubleAcute: '˝',\n DiacriticalGrave: '`',\n DiacriticalTilde: '˜',\n Diamond: '⋄',\n DifferentialD: 'ⅆ',\n Dopf: '𝔻',\n Dot: '¨',\n DotDot: '⃜',\n DotEqual: '≐',\n DoubleContourIntegral: '∯',\n DoubleDot: '¨',\n DoubleDownArrow: '⇓',\n DoubleLeftArrow: '⇐',\n DoubleLeftRightArrow: '⇔',\n DoubleLeftTee: '⫤',\n DoubleLongLeftArrow: '⟸',\n DoubleLongLeftRightArrow: '⟺',\n DoubleLongRightArrow: '⟹',\n DoubleRightArrow: '⇒',\n DoubleRightTee: '⊨',\n DoubleUpArrow: '⇑',\n DoubleUpDownArrow: '⇕',\n DoubleVerticalBar: '∥',\n DownArrow: '↓',\n DownArrowBar: '⤓',\n DownArrowUpArrow: '⇵',\n DownBreve: '̑',\n DownLeftRightVector: '⥐',\n DownLeftTeeVector: '⥞',\n DownLeftVector: '↽',\n DownLeftVectorBar: '⥖',\n DownRightTeeVector: '⥟',\n DownRightVector: '⇁',\n DownRightVectorBar: '⥗',\n DownTee: '⊤',\n DownTeeArrow: '↧',\n Downarrow: '⇓',\n Dscr: '𝒟',\n Dstrok: 'Đ',\n ENG: 'Ŋ',\n ETH: 'Ð',\n Eacute: 'É',\n Ecaron: 'Ě',\n Ecirc: 'Ê',\n Ecy: 'Э',\n Edot: 'Ė',\n Efr: '𝔈',\n Egrave: 'È',\n Element: '∈',\n Emacr: 'Ē',\n EmptySmallSquare: '◻',\n EmptyVerySmallSquare: '▫',\n Eogon: 'Ę',\n Eopf: '𝔼',\n Epsilon: 'Ε',\n Equal: '⩵',\n EqualTilde: '≂',\n Equilibrium: '⇌',\n Escr: 'ℰ',\n Esim: '⩳',\n Eta: 'Η',\n Euml: 'Ë',\n Exists: '∃',\n ExponentialE: 'ⅇ',\n Fcy: 'Ф',\n Ffr: '𝔉',\n FilledSmallSquare: '◼',\n FilledVerySmallSquare: '▪',\n Fopf: '𝔽',\n ForAll: '∀',\n Fouriertrf: 'ℱ',\n Fscr: 'ℱ',\n GJcy: 'Ѓ',\n GT: '>',\n Gamma: 'Γ',\n Gammad: 'Ϝ',\n Gbreve: 'Ğ',\n Gcedil: 'Ģ',\n Gcirc: 'Ĝ',\n Gcy: 'Г',\n Gdot: 'Ġ',\n Gfr: '𝔊',\n Gg: '⋙',\n Gopf: '𝔾',\n GreaterEqual: '≥',\n GreaterEqualLess: '⋛',\n GreaterFullEqual: '≧',\n GreaterGreater: '⪢',\n GreaterLess: '≷',\n GreaterSlantEqual: '⩾',\n GreaterTilde: '≳',\n Gscr: '𝒢',\n Gt: '≫',\n HARDcy: 'Ъ',\n Hacek: 'ˇ',\n Hat: '^',\n Hcirc: 'Ĥ',\n Hfr: 'ℌ',\n HilbertSpace: 'ℋ',\n Hopf: 'ℍ',\n HorizontalLine: '─',\n Hscr: 'ℋ',\n Hstrok: 'Ħ',\n HumpDownHump: '≎',\n HumpEqual: '≏',\n IEcy: 'Е',\n IJlig: 'IJ',\n IOcy: 'Ё',\n Iacute: 'Í',\n Icirc: 'Î',\n Icy: 'И',\n Idot: 'İ',\n Ifr: 'ℑ',\n Igrave: 'Ì',\n Im: 'ℑ',\n Imacr: 'Ī',\n ImaginaryI: 'ⅈ',\n Implies: '⇒',\n Int: '∬',\n Integral: '∫',\n Intersection: '⋂',\n InvisibleComma: '⁣',\n InvisibleTimes: '⁢',\n Iogon: 'Į',\n Iopf: '𝕀',\n Iota: 'Ι',\n Iscr: 'ℐ',\n Itilde: 'Ĩ',\n Iukcy: 'І',\n Iuml: 'Ï',\n Jcirc: 'Ĵ',\n Jcy: 'Й',\n Jfr: '𝔍',\n Jopf: '𝕁',\n Jscr: '𝒥',\n Jsercy: 'Ј',\n Jukcy: 'Є',\n KHcy: 'Х',\n KJcy: 'Ќ',\n Kappa: 'Κ',\n Kcedil: 'Ķ',\n Kcy: 'К',\n Kfr: '𝔎',\n Kopf: '𝕂',\n Kscr: '𝒦',\n LJcy: 'Љ',\n LT: '<',\n Lacute: 'Ĺ',\n Lambda: 'Λ',\n Lang: '⟪',\n Laplacetrf: 'ℒ',\n Larr: '↞',\n Lcaron: 'Ľ',\n Lcedil: 'Ļ',\n Lcy: 'Л',\n LeftAngleBracket: '⟨',\n LeftArrow: '←',\n LeftArrowBar: '⇤',\n LeftArrowRightArrow: '⇆',\n LeftCeiling: '⌈',\n LeftDoubleBracket: '⟦',\n LeftDownTeeVector: '⥡',\n LeftDownVector: '⇃',\n LeftDownVectorBar: '⥙',\n LeftFloor: '⌊',\n LeftRightArrow: '↔',\n LeftRightVector: '⥎',\n LeftTee: '⊣',\n LeftTeeArrow: '↤',\n LeftTeeVector: '⥚',\n LeftTriangle: '⊲',\n LeftTriangleBar: '⧏',\n LeftTriangleEqual: '⊴',\n LeftUpDownVector: '⥑',\n LeftUpTeeVector: '⥠',\n LeftUpVector: '↿',\n LeftUpVectorBar: '⥘',\n LeftVector: '↼',\n LeftVectorBar: '⥒',\n Leftarrow: '⇐',\n Leftrightarrow: '⇔',\n LessEqualGreater: '⋚',\n LessFullEqual: '≦',\n LessGreater: '≶',\n LessLess: '⪡',\n LessSlantEqual: '⩽',\n LessTilde: '≲',\n Lfr: '𝔏',\n Ll: '⋘',\n Lleftarrow: '⇚',\n Lmidot: 'Ŀ',\n LongLeftArrow: '⟵',\n LongLeftRightArrow: '⟷',\n LongRightArrow: '⟶',\n Longleftarrow: '⟸',\n Longleftrightarrow: '⟺',\n Longrightarrow: '⟹',\n Lopf: '𝕃',\n LowerLeftArrow: '↙',\n LowerRightArrow: '↘',\n Lscr: 'ℒ',\n Lsh: '↰',\n Lstrok: 'Ł',\n Lt: '≪',\n Map: '⤅',\n Mcy: 'М',\n MediumSpace: ' ',\n Mellintrf: 'ℳ',\n Mfr: '𝔐',\n MinusPlus: '∓',\n Mopf: '𝕄',\n Mscr: 'ℳ',\n Mu: 'Μ',\n NJcy: 'Њ',\n Nacute: 'Ń',\n Ncaron: 'Ň',\n Ncedil: 'Ņ',\n Ncy: 'Н',\n NegativeMediumSpace: '​',\n NegativeThickSpace: '​',\n NegativeThinSpace: '​',\n NegativeVeryThinSpace: '​',\n NestedGreaterGreater: '≫',\n NestedLessLess: '≪',\n NewLine: '\\n',\n Nfr: '𝔑',\n NoBreak: '⁠',\n NonBreakingSpace: ' ',\n Nopf: 'ℕ',\n Not: '⫬',\n NotCongruent: '≢',\n NotCupCap: '≭',\n NotDoubleVerticalBar: '∦',\n NotElement: '∉',\n NotEqual: '≠',\n NotEqualTilde: '≂̸',\n NotExists: '∄',\n NotGreater: '≯',\n NotGreaterEqual: '≱',\n NotGreaterFullEqual: '≧̸',\n NotGreaterGreater: '≫̸',\n NotGreaterLess: '≹',\n NotGreaterSlantEqual: '⩾̸',\n NotGreaterTilde: '≵',\n NotHumpDownHump: '≎̸',\n NotHumpEqual: '≏̸',\n NotLeftTriangle: '⋪',\n NotLeftTriangleBar: '⧏̸',\n NotLeftTriangleEqual: '⋬',\n NotLess: '≮',\n NotLessEqual: '≰',\n NotLessGreater: '≸',\n NotLessLess: '≪̸',\n NotLessSlantEqual: '⩽̸',\n NotLessTilde: '≴',\n NotNestedGreaterGreater: '⪢̸',\n NotNestedLessLess: '⪡̸',\n NotPrecedes: '⊀',\n NotPrecedesEqual: '⪯̸',\n NotPrecedesSlantEqual: '⋠',\n NotReverseElement: '∌',\n NotRightTriangle: '⋫',\n NotRightTriangleBar: '⧐̸',\n NotRightTriangleEqual: '⋭',\n NotSquareSubset: '⊏̸',\n NotSquareSubsetEqual: '⋢',\n NotSquareSuperset: '⊐̸',\n NotSquareSupersetEqual: '⋣',\n NotSubset: '⊂⃒',\n NotSubsetEqual: '⊈',\n NotSucceeds: '⊁',\n NotSucceedsEqual: '⪰̸',\n NotSucceedsSlantEqual: '⋡',\n NotSucceedsTilde: '≿̸',\n NotSuperset: '⊃⃒',\n NotSupersetEqual: '⊉',\n NotTilde: '≁',\n NotTildeEqual: '≄',\n NotTildeFullEqual: '≇',\n NotTildeTilde: '≉',\n NotVerticalBar: '∤',\n Nscr: '𝒩',\n Ntilde: 'Ñ',\n Nu: 'Ν',\n OElig: 'Œ',\n Oacute: 'Ó',\n Ocirc: 'Ô',\n Ocy: 'О',\n Odblac: 'Ő',\n Ofr: '𝔒',\n Ograve: 'Ò',\n Omacr: 'Ō',\n Omega: 'Ω',\n Omicron: 'Ο',\n Oopf: '𝕆',\n OpenCurlyDoubleQuote: '“',\n OpenCurlyQuote: '‘',\n Or: '⩔',\n Oscr: '𝒪',\n Oslash: 'Ø',\n Otilde: 'Õ',\n Otimes: '⨷',\n Ouml: 'Ö',\n OverBar: '‾',\n OverBrace: '⏞',\n OverBracket: '⎴',\n OverParenthesis: '⏜',\n PartialD: '∂',\n Pcy: 'П',\n Pfr: '𝔓',\n Phi: 'Φ',\n Pi: 'Π',\n PlusMinus: '±',\n Poincareplane: 'ℌ',\n Popf: 'ℙ',\n Pr: '⪻',\n Precedes: '≺',\n PrecedesEqual: '⪯',\n PrecedesSlantEqual: '≼',\n PrecedesTilde: '≾',\n Prime: '″',\n Product: '∏',\n Proportion: '∷',\n Proportional: '∝',\n Pscr: '𝒫',\n Psi: 'Ψ',\n QUOT: '\"',\n Qfr: '𝔔',\n Qopf: 'ℚ',\n Qscr: '𝒬',\n RBarr: '⤐',\n REG: '®',\n Racute: 'Ŕ',\n Rang: '⟫',\n Rarr: '↠',\n Rarrtl: '⤖',\n Rcaron: 'Ř',\n Rcedil: 'Ŗ',\n Rcy: 'Р',\n Re: 'ℜ',\n ReverseElement: '∋',\n ReverseEquilibrium: '⇋',\n ReverseUpEquilibrium: '⥯',\n Rfr: 'ℜ',\n Rho: 'Ρ',\n RightAngleBracket: '⟩',\n RightArrow: '→',\n RightArrowBar: '⇥',\n RightArrowLeftArrow: '⇄',\n RightCeiling: '⌉',\n RightDoubleBracket: '⟧',\n RightDownTeeVector: '⥝',\n RightDownVector: '⇂',\n RightDownVectorBar: '⥕',\n RightFloor: '⌋',\n RightTee: '⊢',\n RightTeeArrow: '↦',\n RightTeeVector: '⥛',\n RightTriangle: '⊳',\n RightTriangleBar: '⧐',\n RightTriangleEqual: '⊵',\n RightUpDownVector: '⥏',\n RightUpTeeVector: '⥜',\n RightUpVector: '↾',\n RightUpVectorBar: '⥔',\n RightVector: '⇀',\n RightVectorBar: '⥓',\n Rightarrow: '⇒',\n Ropf: 'ℝ',\n RoundImplies: '⥰',\n Rrightarrow: '⇛',\n Rscr: 'ℛ',\n Rsh: '↱',\n RuleDelayed: '⧴',\n SHCHcy: 'Щ',\n SHcy: 'Ш',\n SOFTcy: 'Ь',\n Sacute: 'Ś',\n Sc: '⪼',\n Scaron: 'Š',\n Scedil: 'Ş',\n Scirc: 'Ŝ',\n Scy: 'С',\n Sfr: '𝔖',\n ShortDownArrow: '↓',\n ShortLeftArrow: '←',\n ShortRightArrow: '→',\n ShortUpArrow: '↑',\n Sigma: 'Σ',\n SmallCircle: '∘',\n Sopf: '𝕊',\n Sqrt: '√',\n Square: '□',\n SquareIntersection: '⊓',\n SquareSubset: '⊏',\n SquareSubsetEqual: '⊑',\n SquareSuperset: '⊐',\n SquareSupersetEqual: '⊒',\n SquareUnion: '⊔',\n Sscr: '𝒮',\n Star: '⋆',\n Sub: '⋐',\n Subset: '⋐',\n SubsetEqual: '⊆',\n Succeeds: '≻',\n SucceedsEqual: '⪰',\n SucceedsSlantEqual: '≽',\n SucceedsTilde: '≿',\n SuchThat: '∋',\n Sum: '∑',\n Sup: '⋑',\n Superset: '⊃',\n SupersetEqual: '⊇',\n Supset: '⋑',\n THORN: 'Þ',\n TRADE: '™',\n TSHcy: 'Ћ',\n TScy: 'Ц',\n Tab: '\\t',\n Tau: 'Τ',\n Tcaron: 'Ť',\n Tcedil: 'Ţ',\n Tcy: 'Т',\n Tfr: '𝔗',\n Therefore: '∴',\n Theta: 'Θ',\n ThickSpace: '  ',\n ThinSpace: ' ',\n Tilde: '∼',\n TildeEqual: '≃',\n TildeFullEqual: '≅',\n TildeTilde: '≈',\n Topf: '𝕋',\n TripleDot: '⃛',\n Tscr: '𝒯',\n Tstrok: 'Ŧ',\n Uacute: 'Ú',\n Uarr: '↟',\n Uarrocir: '⥉',\n Ubrcy: 'Ў',\n Ubreve: 'Ŭ',\n Ucirc: 'Û',\n Ucy: 'У',\n Udblac: 'Ű',\n Ufr: '𝔘',\n Ugrave: 'Ù',\n Umacr: 'Ū',\n UnderBar: '_',\n UnderBrace: '⏟',\n UnderBracket: '⎵',\n UnderParenthesis: '⏝',\n Union: '⋃',\n UnionPlus: '⊎',\n Uogon: 'Ų',\n Uopf: '𝕌',\n UpArrow: '↑',\n UpArrowBar: '⤒',\n UpArrowDownArrow: '⇅',\n UpDownArrow: '↕',\n UpEquilibrium: '⥮',\n UpTee: '⊥',\n UpTeeArrow: '↥',\n Uparrow: '⇑',\n Updownarrow: '⇕',\n UpperLeftArrow: '↖',\n UpperRightArrow: '↗',\n Upsi: 'ϒ',\n Upsilon: 'Υ',\n Uring: 'Ů',\n Uscr: '𝒰',\n Utilde: 'Ũ',\n Uuml: 'Ü',\n VDash: '⊫',\n Vbar: '⫫',\n Vcy: 'В',\n Vdash: '⊩',\n Vdashl: '⫦',\n Vee: '⋁',\n Verbar: '‖',\n Vert: '‖',\n VerticalBar: '∣',\n VerticalLine: '|',\n VerticalSeparator: '❘',\n VerticalTilde: '≀',\n VeryThinSpace: ' ',\n Vfr: '𝔙',\n Vopf: '𝕍',\n Vscr: '𝒱',\n Vvdash: '⊪',\n Wcirc: 'Ŵ',\n Wedge: '⋀',\n Wfr: '𝔚',\n Wopf: '𝕎',\n Wscr: '𝒲',\n Xfr: '𝔛',\n Xi: 'Ξ',\n Xopf: '𝕏',\n Xscr: '𝒳',\n YAcy: 'Я',\n YIcy: 'Ї',\n YUcy: 'Ю',\n Yacute: 'Ý',\n Ycirc: 'Ŷ',\n Ycy: 'Ы',\n Yfr: '𝔜',\n Yopf: '𝕐',\n Yscr: '𝒴',\n Yuml: 'Ÿ',\n ZHcy: 'Ж',\n Zacute: 'Ź',\n Zcaron: 'Ž',\n Zcy: 'З',\n Zdot: 'Ż',\n ZeroWidthSpace: '​',\n Zeta: 'Ζ',\n Zfr: 'ℨ',\n Zopf: 'ℤ',\n Zscr: '𝒵',\n aacute: 'á',\n abreve: 'ă',\n ac: '∾',\n acE: '∾̳',\n acd: '∿',\n acirc: 'â',\n acute: '´',\n acy: 'а',\n aelig: 'æ',\n af: '⁡',\n afr: '𝔞',\n agrave: 'à',\n alefsym: 'ℵ',\n aleph: 'ℵ',\n alpha: 'α',\n amacr: 'ā',\n amalg: '⨿',\n amp: '&',\n and: '∧',\n andand: '⩕',\n andd: '⩜',\n andslope: '⩘',\n andv: '⩚',\n ang: '∠',\n ange: '⦤',\n angle: '∠',\n angmsd: '∡',\n angmsdaa: '⦨',\n angmsdab: '⦩',\n angmsdac: '⦪',\n angmsdad: '⦫',\n angmsdae: '⦬',\n angmsdaf: '⦭',\n angmsdag: '⦮',\n angmsdah: '⦯',\n angrt: '∟',\n angrtvb: '⊾',\n angrtvbd: '⦝',\n angsph: '∢',\n angst: 'Å',\n angzarr: '⍼',\n aogon: 'ą',\n aopf: '𝕒',\n ap: '≈',\n apE: '⩰',\n apacir: '⩯',\n ape: '≊',\n apid: '≋',\n apos: \"'\",\n approx: '≈',\n approxeq: '≊',\n aring: 'å',\n ascr: '𝒶',\n ast: '*',\n asymp: '≈',\n asympeq: '≍',\n atilde: 'ã',\n auml: 'ä',\n awconint: '∳',\n awint: '⨑',\n bNot: '⫭',\n backcong: '≌',\n backepsilon: '϶',\n backprime: '‵',\n backsim: '∽',\n backsimeq: '⋍',\n barvee: '⊽',\n barwed: '⌅',\n barwedge: '⌅',\n bbrk: '⎵',\n bbrktbrk: '⎶',\n bcong: '≌',\n bcy: 'б',\n bdquo: '„',\n becaus: '∵',\n because: '∵',\n bemptyv: '⦰',\n bepsi: '϶',\n bernou: 'ℬ',\n beta: 'β',\n beth: 'ℶ',\n between: '≬',\n bfr: '𝔟',\n bigcap: '⋂',\n bigcirc: '◯',\n bigcup: '⋃',\n bigodot: '⨀',\n bigoplus: '⨁',\n bigotimes: '⨂',\n bigsqcup: '⨆',\n bigstar: '★',\n bigtriangledown: '▽',\n bigtriangleup: '△',\n biguplus: '⨄',\n bigvee: '⋁',\n bigwedge: '⋀',\n bkarow: '⤍',\n blacklozenge: '⧫',\n blacksquare: '▪',\n blacktriangle: '▴',\n blacktriangledown: '▾',\n blacktriangleleft: '◂',\n blacktriangleright: '▸',\n blank: '␣',\n blk12: '▒',\n blk14: '░',\n blk34: '▓',\n block: '█',\n bne: '=⃥',\n bnequiv: '≡⃥',\n bnot: '⌐',\n bopf: '𝕓',\n bot: '⊥',\n bottom: '⊥',\n bowtie: '⋈',\n boxDL: '╗',\n boxDR: '╔',\n boxDl: '╖',\n boxDr: '╓',\n boxH: '═',\n boxHD: '╦',\n boxHU: '╩',\n boxHd: '╤',\n boxHu: '╧',\n boxUL: '╝',\n boxUR: '╚',\n boxUl: '╜',\n boxUr: '╙',\n boxV: '║',\n boxVH: '╬',\n boxVL: '╣',\n boxVR: '╠',\n boxVh: '╫',\n boxVl: '╢',\n boxVr: '╟',\n boxbox: '⧉',\n boxdL: '╕',\n boxdR: '╒',\n boxdl: '┐',\n boxdr: '┌',\n boxh: '─',\n boxhD: '╥',\n boxhU: '╨',\n boxhd: '┬',\n boxhu: '┴',\n boxminus: '⊟',\n boxplus: '⊞',\n boxtimes: '⊠',\n boxuL: '╛',\n boxuR: '╘',\n boxul: '┘',\n boxur: '└',\n boxv: '│',\n boxvH: '╪',\n boxvL: '╡',\n boxvR: '╞',\n boxvh: '┼',\n boxvl: '┤',\n boxvr: '├',\n bprime: '‵',\n breve: '˘',\n brvbar: '¦',\n bscr: '𝒷',\n bsemi: '⁏',\n bsim: '∽',\n bsime: '⋍',\n bsol: '\\\\',\n bsolb: '⧅',\n bsolhsub: '⟈',\n bull: '•',\n bullet: '•',\n bump: '≎',\n bumpE: '⪮',\n bumpe: '≏',\n bumpeq: '≏',\n cacute: 'ć',\n cap: '∩',\n capand: '⩄',\n capbrcup: '⩉',\n capcap: '⩋',\n capcup: '⩇',\n capdot: '⩀',\n caps: '∩︀',\n caret: '⁁',\n caron: 'ˇ',\n ccaps: '⩍',\n ccaron: 'č',\n ccedil: 'ç',\n ccirc: 'ĉ',\n ccups: '⩌',\n ccupssm: '⩐',\n cdot: 'ċ',\n cedil: '¸',\n cemptyv: '⦲',\n cent: '¢',\n centerdot: '·',\n cfr: '𝔠',\n chcy: 'ч',\n check: '✓',\n checkmark: '✓',\n chi: 'χ',\n cir: '○',\n cirE: '⧃',\n circ: 'ˆ',\n circeq: '≗',\n circlearrowleft: '↺',\n circlearrowright: '↻',\n circledR: '®',\n circledS: 'Ⓢ',\n circledast: '⊛',\n circledcirc: '⊚',\n circleddash: '⊝',\n cire: '≗',\n cirfnint: '⨐',\n cirmid: '⫯',\n cirscir: '⧂',\n clubs: '♣',\n clubsuit: '♣',\n colon: ':',\n colone: '≔',\n coloneq: '≔',\n comma: ',',\n commat: '@',\n comp: '∁',\n compfn: '∘',\n complement: '∁',\n complexes: 'ℂ',\n cong: '≅',\n congdot: '⩭',\n conint: '∮',\n copf: '𝕔',\n coprod: '∐',\n copy: '©',\n copysr: '℗',\n crarr: '↵',\n cross: '✗',\n cscr: '𝒸',\n csub: '⫏',\n csube: '⫑',\n csup: '⫐',\n csupe: '⫒',\n ctdot: '⋯',\n cudarrl: '⤸',\n cudarrr: '⤵',\n cuepr: '⋞',\n cuesc: '⋟',\n cularr: '↶',\n cularrp: '⤽',\n cup: '∪',\n cupbrcap: '⩈',\n cupcap: '⩆',\n cupcup: '⩊',\n cupdot: '⊍',\n cupor: '⩅',\n cups: '∪︀',\n curarr: '↷',\n curarrm: '⤼',\n curlyeqprec: '⋞',\n curlyeqsucc: '⋟',\n curlyvee: '⋎',\n curlywedge: '⋏',\n curren: '¤',\n curvearrowleft: '↶',\n curvearrowright: '↷',\n cuvee: '⋎',\n cuwed: '⋏',\n cwconint: '∲',\n cwint: '∱',\n cylcty: '⌭',\n dArr: '⇓',\n dHar: '⥥',\n dagger: '†',\n daleth: 'ℸ',\n darr: '↓',\n dash: '‐',\n dashv: '⊣',\n dbkarow: '⤏',\n dblac: '˝',\n dcaron: 'ď',\n dcy: 'д',\n dd: 'ⅆ',\n ddagger: '‡',\n ddarr: '⇊',\n ddotseq: '⩷',\n deg: '°',\n delta: 'δ',\n demptyv: '⦱',\n dfisht: '⥿',\n dfr: '𝔡',\n dharl: '⇃',\n dharr: '⇂',\n diam: '⋄',\n diamond: '⋄',\n diamondsuit: '♦',\n diams: '♦',\n die: '¨',\n digamma: 'ϝ',\n disin: '⋲',\n div: '÷',\n divide: '÷',\n divideontimes: '⋇',\n divonx: '⋇',\n djcy: 'ђ',\n dlcorn: '⌞',\n dlcrop: '⌍',\n dollar: '$',\n dopf: '𝕕',\n dot: '˙',\n doteq: '≐',\n doteqdot: '≑',\n dotminus: '∸',\n dotplus: '∔',\n dotsquare: '⊡',\n doublebarwedge: '⌆',\n downarrow: '↓',\n downdownarrows: '⇊',\n downharpoonleft: '⇃',\n downharpoonright: '⇂',\n drbkarow: '⤐',\n drcorn: '⌟',\n drcrop: '⌌',\n dscr: '𝒹',\n dscy: 'ѕ',\n dsol: '⧶',\n dstrok: 'đ',\n dtdot: '⋱',\n dtri: '▿',\n dtrif: '▾',\n duarr: '⇵',\n duhar: '⥯',\n dwangle: '⦦',\n dzcy: 'џ',\n dzigrarr: '⟿',\n eDDot: '⩷',\n eDot: '≑',\n eacute: 'é',\n easter: '⩮',\n ecaron: 'ě',\n ecir: '≖',\n ecirc: 'ê',\n ecolon: '≕',\n ecy: 'э',\n edot: 'ė',\n ee: 'ⅇ',\n efDot: '≒',\n efr: '𝔢',\n eg: '⪚',\n egrave: 'è',\n egs: '⪖',\n egsdot: '⪘',\n el: '⪙',\n elinters: '⏧',\n ell: 'ℓ',\n els: '⪕',\n elsdot: '⪗',\n emacr: 'ē',\n empty: '∅',\n emptyset: '∅',\n emptyv: '∅',\n emsp13: ' ',\n emsp14: ' ',\n emsp: ' ',\n eng: 'ŋ',\n ensp: ' ',\n eogon: 'ę',\n eopf: '𝕖',\n epar: '⋕',\n eparsl: '⧣',\n eplus: '⩱',\n epsi: 'ε',\n epsilon: 'ε',\n epsiv: 'ϵ',\n eqcirc: '≖',\n eqcolon: '≕',\n eqsim: '≂',\n eqslantgtr: '⪖',\n eqslantless: '⪕',\n equals: '=',\n equest: '≟',\n equiv: '≡',\n equivDD: '⩸',\n eqvparsl: '⧥',\n erDot: '≓',\n erarr: '⥱',\n escr: 'ℯ',\n esdot: '≐',\n esim: '≂',\n eta: 'η',\n eth: 'ð',\n euml: 'ë',\n euro: '€',\n excl: '!',\n exist: '∃',\n expectation: 'ℰ',\n exponentiale: 'ⅇ',\n fallingdotseq: '≒',\n fcy: 'ф',\n female: '♀',\n ffilig: 'ffi',\n fflig: 'ff',\n ffllig: 'ffl',\n ffr: '𝔣',\n filig: 'fi',\n fjlig: 'fj',\n flat: '♭',\n fllig: 'fl',\n fltns: '▱',\n fnof: 'ƒ',\n fopf: '𝕗',\n forall: '∀',\n fork: '⋔',\n forkv: '⫙',\n fpartint: '⨍',\n frac12: '½',\n frac13: '⅓',\n frac14: '¼',\n frac15: '⅕',\n frac16: '⅙',\n frac18: '⅛',\n frac23: '⅔',\n frac25: '⅖',\n frac34: '¾',\n frac35: '⅗',\n frac38: '⅜',\n frac45: '⅘',\n frac56: '⅚',\n frac58: '⅝',\n frac78: '⅞',\n frasl: '⁄',\n frown: '⌢',\n fscr: '𝒻',\n gE: '≧',\n gEl: '⪌',\n gacute: 'ǵ',\n gamma: 'γ',\n gammad: 'ϝ',\n gap: '⪆',\n gbreve: 'ğ',\n gcirc: 'ĝ',\n gcy: 'г',\n gdot: 'ġ',\n ge: '≥',\n gel: '⋛',\n geq: '≥',\n geqq: '≧',\n geqslant: '⩾',\n ges: '⩾',\n gescc: '⪩',\n gesdot: '⪀',\n gesdoto: '⪂',\n gesdotol: '⪄',\n gesl: '⋛︀',\n gesles: '⪔',\n gfr: '𝔤',\n gg: '≫',\n ggg: '⋙',\n gimel: 'ℷ',\n gjcy: 'ѓ',\n gl: '≷',\n glE: '⪒',\n gla: '⪥',\n glj: '⪤',\n gnE: '≩',\n gnap: '⪊',\n gnapprox: '⪊',\n gne: '⪈',\n gneq: '⪈',\n gneqq: '≩',\n gnsim: '⋧',\n gopf: '𝕘',\n grave: '`',\n gscr: 'ℊ',\n gsim: '≳',\n gsime: '⪎',\n gsiml: '⪐',\n gt: '>',\n gtcc: '⪧',\n gtcir: '⩺',\n gtdot: '⋗',\n gtlPar: '⦕',\n gtquest: '⩼',\n gtrapprox: '⪆',\n gtrarr: '⥸',\n gtrdot: '⋗',\n gtreqless: '⋛',\n gtreqqless: '⪌',\n gtrless: '≷',\n gtrsim: '≳',\n gvertneqq: '≩︀',\n gvnE: '≩︀',\n hArr: '⇔',\n hairsp: ' ',\n half: '½',\n hamilt: 'ℋ',\n hardcy: 'ъ',\n harr: '↔',\n harrcir: '⥈',\n harrw: '↭',\n hbar: 'ℏ',\n hcirc: 'ĥ',\n hearts: '♥',\n heartsuit: '♥',\n hellip: '…',\n hercon: '⊹',\n hfr: '𝔥',\n hksearow: '⤥',\n hkswarow: '⤦',\n hoarr: '⇿',\n homtht: '∻',\n hookleftarrow: '↩',\n hookrightarrow: '↪',\n hopf: '𝕙',\n horbar: '―',\n hscr: '𝒽',\n hslash: 'ℏ',\n hstrok: 'ħ',\n hybull: '⁃',\n hyphen: '‐',\n iacute: 'í',\n ic: '⁣',\n icirc: 'î',\n icy: 'и',\n iecy: 'е',\n iexcl: '¡',\n iff: '⇔',\n ifr: '𝔦',\n igrave: 'ì',\n ii: 'ⅈ',\n iiiint: '⨌',\n iiint: '∭',\n iinfin: '⧜',\n iiota: '℩',\n ijlig: 'ij',\n imacr: 'ī',\n image: 'ℑ',\n imagline: 'ℐ',\n imagpart: 'ℑ',\n imath: 'ı',\n imof: '⊷',\n imped: 'Ƶ',\n in: '∈',\n incare: '℅',\n infin: '∞',\n infintie: '⧝',\n inodot: 'ı',\n int: '∫',\n intcal: '⊺',\n integers: 'ℤ',\n intercal: '⊺',\n intlarhk: '⨗',\n intprod: '⨼',\n iocy: 'ё',\n iogon: 'į',\n iopf: '𝕚',\n iota: 'ι',\n iprod: '⨼',\n iquest: '¿',\n iscr: '𝒾',\n isin: '∈',\n isinE: '⋹',\n isindot: '⋵',\n isins: '⋴',\n isinsv: '⋳',\n isinv: '∈',\n it: '⁢',\n itilde: 'ĩ',\n iukcy: 'і',\n iuml: 'ï',\n jcirc: 'ĵ',\n jcy: 'й',\n jfr: '𝔧',\n jmath: 'ȷ',\n jopf: '𝕛',\n jscr: '𝒿',\n jsercy: 'ј',\n jukcy: 'є',\n kappa: 'κ',\n kappav: 'ϰ',\n kcedil: 'ķ',\n kcy: 'к',\n kfr: '𝔨',\n kgreen: 'ĸ',\n khcy: 'х',\n kjcy: 'ќ',\n kopf: '𝕜',\n kscr: '𝓀',\n lAarr: '⇚',\n lArr: '⇐',\n lAtail: '⤛',\n lBarr: '⤎',\n lE: '≦',\n lEg: '⪋',\n lHar: '⥢',\n lacute: 'ĺ',\n laemptyv: '⦴',\n lagran: 'ℒ',\n lambda: 'λ',\n lang: '⟨',\n langd: '⦑',\n langle: '⟨',\n lap: '⪅',\n laquo: '«',\n larr: '←',\n larrb: '⇤',\n larrbfs: '⤟',\n larrfs: '⤝',\n larrhk: '↩',\n larrlp: '↫',\n larrpl: '⤹',\n larrsim: '⥳',\n larrtl: '↢',\n lat: '⪫',\n latail: '⤙',\n late: '⪭',\n lates: '⪭︀',\n lbarr: '⤌',\n lbbrk: '❲',\n lbrace: '{',\n lbrack: '[',\n lbrke: '⦋',\n lbrksld: '⦏',\n lbrkslu: '⦍',\n lcaron: 'ľ',\n lcedil: 'ļ',\n lceil: '⌈',\n lcub: '{',\n lcy: 'л',\n ldca: '⤶',\n ldquo: '“',\n ldquor: '„',\n ldrdhar: '⥧',\n ldrushar: '⥋',\n ldsh: '↲',\n le: '≤',\n leftarrow: '←',\n leftarrowtail: '↢',\n leftharpoondown: '↽',\n leftharpoonup: '↼',\n leftleftarrows: '⇇',\n leftrightarrow: '↔',\n leftrightarrows: '⇆',\n leftrightharpoons: '⇋',\n leftrightsquigarrow: '↭',\n leftthreetimes: '⋋',\n leg: '⋚',\n leq: '≤',\n leqq: '≦',\n leqslant: '⩽',\n les: '⩽',\n lescc: '⪨',\n lesdot: '⩿',\n lesdoto: '⪁',\n lesdotor: '⪃',\n lesg: '⋚︀',\n lesges: '⪓',\n lessapprox: '⪅',\n lessdot: '⋖',\n lesseqgtr: '⋚',\n lesseqqgtr: '⪋',\n lessgtr: '≶',\n lesssim: '≲',\n lfisht: '⥼',\n lfloor: '⌊',\n lfr: '𝔩',\n lg: '≶',\n lgE: '⪑',\n lhard: '↽',\n lharu: '↼',\n lharul: '⥪',\n lhblk: '▄',\n ljcy: 'љ',\n ll: '≪',\n llarr: '⇇',\n llcorner: '⌞',\n llhard: '⥫',\n lltri: '◺',\n lmidot: 'ŀ',\n lmoust: '⎰',\n lmoustache: '⎰',\n lnE: '≨',\n lnap: '⪉',\n lnapprox: '⪉',\n lne: '⪇',\n lneq: '⪇',\n lneqq: '≨',\n lnsim: '⋦',\n loang: '⟬',\n loarr: '⇽',\n lobrk: '⟦',\n longleftarrow: '⟵',\n longleftrightarrow: '⟷',\n longmapsto: '⟼',\n longrightarrow: '⟶',\n looparrowleft: '↫',\n looparrowright: '↬',\n lopar: '⦅',\n lopf: '𝕝',\n loplus: '⨭',\n lotimes: '⨴',\n lowast: '∗',\n lowbar: '_',\n loz: '◊',\n lozenge: '◊',\n lozf: '⧫',\n lpar: '(',\n lparlt: '⦓',\n lrarr: '⇆',\n lrcorner: '⌟',\n lrhar: '⇋',\n lrhard: '⥭',\n lrm: '‎',\n lrtri: '⊿',\n lsaquo: '‹',\n lscr: '𝓁',\n lsh: '↰',\n lsim: '≲',\n lsime: '⪍',\n lsimg: '⪏',\n lsqb: '[',\n lsquo: '‘',\n lsquor: '‚',\n lstrok: 'ł',\n lt: '<',\n ltcc: '⪦',\n ltcir: '⩹',\n ltdot: '⋖',\n lthree: '⋋',\n ltimes: '⋉',\n ltlarr: '⥶',\n ltquest: '⩻',\n ltrPar: '⦖',\n ltri: '◃',\n ltrie: '⊴',\n ltrif: '◂',\n lurdshar: '⥊',\n luruhar: '⥦',\n lvertneqq: '≨︀',\n lvnE: '≨︀',\n mDDot: '∺',\n macr: '¯',\n male: '♂',\n malt: '✠',\n maltese: '✠',\n map: '↦',\n mapsto: '↦',\n mapstodown: '↧',\n mapstoleft: '↤',\n mapstoup: '↥',\n marker: '▮',\n mcomma: '⨩',\n mcy: 'м',\n mdash: '—',\n measuredangle: '∡',\n mfr: '𝔪',\n mho: '℧',\n micro: 'µ',\n mid: '∣',\n midast: '*',\n midcir: '⫰',\n middot: '·',\n minus: '−',\n minusb: '⊟',\n minusd: '∸',\n minusdu: '⨪',\n mlcp: '⫛',\n mldr: '…',\n mnplus: '∓',\n models: '⊧',\n mopf: '𝕞',\n mp: '∓',\n mscr: '𝓂',\n mstpos: '∾',\n mu: 'μ',\n multimap: '⊸',\n mumap: '⊸',\n nGg: '⋙̸',\n nGt: '≫⃒',\n nGtv: '≫̸',\n nLeftarrow: '⇍',\n nLeftrightarrow: '⇎',\n nLl: '⋘̸',\n nLt: '≪⃒',\n nLtv: '≪̸',\n nRightarrow: '⇏',\n nVDash: '⊯',\n nVdash: '⊮',\n nabla: '∇',\n nacute: 'ń',\n nang: '∠⃒',\n nap: '≉',\n napE: '⩰̸',\n napid: '≋̸',\n napos: 'ʼn',\n napprox: '≉',\n natur: '♮',\n natural: '♮',\n naturals: 'ℕ',\n nbsp: ' ',\n nbump: '≎̸',\n nbumpe: '≏̸',\n ncap: '⩃',\n ncaron: 'ň',\n ncedil: 'ņ',\n ncong: '≇',\n ncongdot: '⩭̸',\n ncup: '⩂',\n ncy: 'н',\n ndash: '–',\n ne: '≠',\n neArr: '⇗',\n nearhk: '⤤',\n nearr: '↗',\n nearrow: '↗',\n nedot: '≐̸',\n nequiv: '≢',\n nesear: '⤨',\n nesim: '≂̸',\n nexist: '∄',\n nexists: '∄',\n nfr: '𝔫',\n ngE: '≧̸',\n nge: '≱',\n ngeq: '≱',\n ngeqq: '≧̸',\n ngeqslant: '⩾̸',\n nges: '⩾̸',\n ngsim: '≵',\n ngt: '≯',\n ngtr: '≯',\n nhArr: '⇎',\n nharr: '↮',\n nhpar: '⫲',\n ni: '∋',\n nis: '⋼',\n nisd: '⋺',\n niv: '∋',\n njcy: 'њ',\n nlArr: '⇍',\n nlE: '≦̸',\n nlarr: '↚',\n nldr: '‥',\n nle: '≰',\n nleftarrow: '↚',\n nleftrightarrow: '↮',\n nleq: '≰',\n nleqq: '≦̸',\n nleqslant: '⩽̸',\n nles: '⩽̸',\n nless: '≮',\n nlsim: '≴',\n nlt: '≮',\n nltri: '⋪',\n nltrie: '⋬',\n nmid: '∤',\n nopf: '𝕟',\n not: '¬',\n notin: '∉',\n notinE: '⋹̸',\n notindot: '⋵̸',\n notinva: '∉',\n notinvb: '⋷',\n notinvc: '⋶',\n notni: '∌',\n notniva: '∌',\n notnivb: '⋾',\n notnivc: '⋽',\n npar: '∦',\n nparallel: '∦',\n nparsl: '⫽⃥',\n npart: '∂̸',\n npolint: '⨔',\n npr: '⊀',\n nprcue: '⋠',\n npre: '⪯̸',\n nprec: '⊀',\n npreceq: '⪯̸',\n nrArr: '⇏',\n nrarr: '↛',\n nrarrc: '⤳̸',\n nrarrw: '↝̸',\n nrightarrow: '↛',\n nrtri: '⋫',\n nrtrie: '⋭',\n nsc: '⊁',\n nsccue: '⋡',\n nsce: '⪰̸',\n nscr: '𝓃',\n nshortmid: '∤',\n nshortparallel: '∦',\n nsim: '≁',\n nsime: '≄',\n nsimeq: '≄',\n nsmid: '∤',\n nspar: '∦',\n nsqsube: '⋢',\n nsqsupe: '⋣',\n nsub: '⊄',\n nsubE: '⫅̸',\n nsube: '⊈',\n nsubset: '⊂⃒',\n nsubseteq: '⊈',\n nsubseteqq: '⫅̸',\n nsucc: '⊁',\n nsucceq: '⪰̸',\n nsup: '⊅',\n nsupE: '⫆̸',\n nsupe: '⊉',\n nsupset: '⊃⃒',\n nsupseteq: '⊉',\n nsupseteqq: '⫆̸',\n ntgl: '≹',\n ntilde: 'ñ',\n ntlg: '≸',\n ntriangleleft: '⋪',\n ntrianglelefteq: '⋬',\n ntriangleright: '⋫',\n ntrianglerighteq: '⋭',\n nu: 'ν',\n num: '#',\n numero: '№',\n numsp: ' ',\n nvDash: '⊭',\n nvHarr: '⤄',\n nvap: '≍⃒',\n nvdash: '⊬',\n nvge: '≥⃒',\n nvgt: '>⃒',\n nvinfin: '⧞',\n nvlArr: '⤂',\n nvle: '≤⃒',\n nvlt: '<⃒',\n nvltrie: '⊴⃒',\n nvrArr: '⤃',\n nvrtrie: '⊵⃒',\n nvsim: '∼⃒',\n nwArr: '⇖',\n nwarhk: '⤣',\n nwarr: '↖',\n nwarrow: '↖',\n nwnear: '⤧',\n oS: 'Ⓢ',\n oacute: 'ó',\n oast: '⊛',\n ocir: '⊚',\n ocirc: 'ô',\n ocy: 'о',\n odash: '⊝',\n odblac: 'ő',\n odiv: '⨸',\n odot: '⊙',\n odsold: '⦼',\n oelig: 'œ',\n ofcir: '⦿',\n ofr: '𝔬',\n ogon: '˛',\n ograve: 'ò',\n ogt: '⧁',\n ohbar: '⦵',\n ohm: 'Ω',\n oint: '∮',\n olarr: '↺',\n olcir: '⦾',\n olcross: '⦻',\n oline: '‾',\n olt: '⧀',\n omacr: 'ō',\n omega: 'ω',\n omicron: 'ο',\n omid: '⦶',\n ominus: '⊖',\n oopf: '𝕠',\n opar: '⦷',\n operp: '⦹',\n oplus: '⊕',\n or: '∨',\n orarr: '↻',\n ord: '⩝',\n order: 'ℴ',\n orderof: 'ℴ',\n ordf: 'ª',\n ordm: 'º',\n origof: '⊶',\n oror: '⩖',\n orslope: '⩗',\n orv: '⩛',\n oscr: 'ℴ',\n oslash: 'ø',\n osol: '⊘',\n otilde: 'õ',\n otimes: '⊗',\n otimesas: '⨶',\n ouml: 'ö',\n ovbar: '⌽',\n par: '∥',\n para: '¶',\n parallel: '∥',\n parsim: '⫳',\n parsl: '⫽',\n part: '∂',\n pcy: 'п',\n percnt: '%',\n period: '.',\n permil: '‰',\n perp: '⊥',\n pertenk: '‱',\n pfr: '𝔭',\n phi: 'φ',\n phiv: 'ϕ',\n phmmat: 'ℳ',\n phone: '☎',\n pi: 'π',\n pitchfork: '⋔',\n piv: 'ϖ',\n planck: 'ℏ',\n planckh: 'ℎ',\n plankv: 'ℏ',\n plus: '+',\n plusacir: '⨣',\n plusb: '⊞',\n pluscir: '⨢',\n plusdo: '∔',\n plusdu: '⨥',\n pluse: '⩲',\n plusmn: '±',\n plussim: '⨦',\n plustwo: '⨧',\n pm: '±',\n pointint: '⨕',\n popf: '𝕡',\n pound: '£',\n pr: '≺',\n prE: '⪳',\n prap: '⪷',\n prcue: '≼',\n pre: '⪯',\n prec: '≺',\n precapprox: '⪷',\n preccurlyeq: '≼',\n preceq: '⪯',\n precnapprox: '⪹',\n precneqq: '⪵',\n precnsim: '⋨',\n precsim: '≾',\n prime: '′',\n primes: 'ℙ',\n prnE: '⪵',\n prnap: '⪹',\n prnsim: '⋨',\n prod: '∏',\n profalar: '⌮',\n profline: '⌒',\n profsurf: '⌓',\n prop: '∝',\n propto: '∝',\n prsim: '≾',\n prurel: '⊰',\n pscr: '𝓅',\n psi: 'ψ',\n puncsp: ' ',\n qfr: '𝔮',\n qint: '⨌',\n qopf: '𝕢',\n qprime: '⁗',\n qscr: '𝓆',\n quaternions: 'ℍ',\n quatint: '⨖',\n quest: '?',\n questeq: '≟',\n quot: '\"',\n rAarr: '⇛',\n rArr: '⇒',\n rAtail: '⤜',\n rBarr: '⤏',\n rHar: '⥤',\n race: '∽̱',\n racute: 'ŕ',\n radic: '√',\n raemptyv: '⦳',\n rang: '⟩',\n rangd: '⦒',\n range: '⦥',\n rangle: '⟩',\n raquo: '»',\n rarr: '→',\n rarrap: '⥵',\n rarrb: '⇥',\n rarrbfs: '⤠',\n rarrc: '⤳',\n rarrfs: '⤞',\n rarrhk: '↪',\n rarrlp: '↬',\n rarrpl: '⥅',\n rarrsim: '⥴',\n rarrtl: '↣',\n rarrw: '↝',\n ratail: '⤚',\n ratio: '∶',\n rationals: 'ℚ',\n rbarr: '⤍',\n rbbrk: '❳',\n rbrace: '}',\n rbrack: ']',\n rbrke: '⦌',\n rbrksld: '⦎',\n rbrkslu: '⦐',\n rcaron: 'ř',\n rcedil: 'ŗ',\n rceil: '⌉',\n rcub: '}',\n rcy: 'р',\n rdca: '⤷',\n rdldhar: '⥩',\n rdquo: '”',\n rdquor: '”',\n rdsh: '↳',\n real: 'ℜ',\n realine: 'ℛ',\n realpart: 'ℜ',\n reals: 'ℝ',\n rect: '▭',\n reg: '®',\n rfisht: '⥽',\n rfloor: '⌋',\n rfr: '𝔯',\n rhard: '⇁',\n rharu: '⇀',\n rharul: '⥬',\n rho: 'ρ',\n rhov: 'ϱ',\n rightarrow: '→',\n rightarrowtail: '↣',\n rightharpoondown: '⇁',\n rightharpoonup: '⇀',\n rightleftarrows: '⇄',\n rightleftharpoons: '⇌',\n rightrightarrows: '⇉',\n rightsquigarrow: '↝',\n rightthreetimes: '⋌',\n ring: '˚',\n risingdotseq: '≓',\n rlarr: '⇄',\n rlhar: '⇌',\n rlm: '‏',\n rmoust: '⎱',\n rmoustache: '⎱',\n rnmid: '⫮',\n roang: '⟭',\n roarr: '⇾',\n robrk: '⟧',\n ropar: '⦆',\n ropf: '𝕣',\n roplus: '⨮',\n rotimes: '⨵',\n rpar: ')',\n rpargt: '⦔',\n rppolint: '⨒',\n rrarr: '⇉',\n rsaquo: '›',\n rscr: '𝓇',\n rsh: '↱',\n rsqb: ']',\n rsquo: '’',\n rsquor: '’',\n rthree: '⋌',\n rtimes: '⋊',\n rtri: '▹',\n rtrie: '⊵',\n rtrif: '▸',\n rtriltri: '⧎',\n ruluhar: '⥨',\n rx: '℞',\n sacute: 'ś',\n sbquo: '‚',\n sc: '≻',\n scE: '⪴',\n scap: '⪸',\n scaron: 'š',\n sccue: '≽',\n sce: '⪰',\n scedil: 'ş',\n scirc: 'ŝ',\n scnE: '⪶',\n scnap: '⪺',\n scnsim: '⋩',\n scpolint: '⨓',\n scsim: '≿',\n scy: 'с',\n sdot: '⋅',\n sdotb: '⊡',\n sdote: '⩦',\n seArr: '⇘',\n searhk: '⤥',\n searr: '↘',\n searrow: '↘',\n sect: '§',\n semi: ';',\n seswar: '⤩',\n setminus: '∖',\n setmn: '∖',\n sext: '✶',\n sfr: '𝔰',\n sfrown: '⌢',\n sharp: '♯',\n shchcy: 'щ',\n shcy: 'ш',\n shortmid: '∣',\n shortparallel: '∥',\n shy: '­',\n sigma: 'σ',\n sigmaf: 'ς',\n sigmav: 'ς',\n sim: '∼',\n simdot: '⩪',\n sime: '≃',\n simeq: '≃',\n simg: '⪞',\n simgE: '⪠',\n siml: '⪝',\n simlE: '⪟',\n simne: '≆',\n simplus: '⨤',\n simrarr: '⥲',\n slarr: '←',\n smallsetminus: '∖',\n smashp: '⨳',\n smeparsl: '⧤',\n smid: '∣',\n smile: '⌣',\n smt: '⪪',\n smte: '⪬',\n smtes: '⪬︀',\n softcy: 'ь',\n sol: '/',\n solb: '⧄',\n solbar: '⌿',\n sopf: '𝕤',\n spades: '♠',\n spadesuit: '♠',\n spar: '∥',\n sqcap: '⊓',\n sqcaps: '⊓︀',\n sqcup: '⊔',\n sqcups: '⊔︀',\n sqsub: '⊏',\n sqsube: '⊑',\n sqsubset: '⊏',\n sqsubseteq: '⊑',\n sqsup: '⊐',\n sqsupe: '⊒',\n sqsupset: '⊐',\n sqsupseteq: '⊒',\n squ: '□',\n square: '□',\n squarf: '▪',\n squf: '▪',\n srarr: '→',\n sscr: '𝓈',\n ssetmn: '∖',\n ssmile: '⌣',\n sstarf: '⋆',\n star: '☆',\n starf: '★',\n straightepsilon: 'ϵ',\n straightphi: 'ϕ',\n strns: '¯',\n sub: '⊂',\n subE: '⫅',\n subdot: '⪽',\n sube: '⊆',\n subedot: '⫃',\n submult: '⫁',\n subnE: '⫋',\n subne: '⊊',\n subplus: '⪿',\n subrarr: '⥹',\n subset: '⊂',\n subseteq: '⊆',\n subseteqq: '⫅',\n subsetneq: '⊊',\n subsetneqq: '⫋',\n subsim: '⫇',\n subsub: '⫕',\n subsup: '⫓',\n succ: '≻',\n succapprox: '⪸',\n succcurlyeq: '≽',\n succeq: '⪰',\n succnapprox: '⪺',\n succneqq: '⪶',\n succnsim: '⋩',\n succsim: '≿',\n sum: '∑',\n sung: '♪',\n sup1: '¹',\n sup2: '²',\n sup3: '³',\n sup: '⊃',\n supE: '⫆',\n supdot: '⪾',\n supdsub: '⫘',\n supe: '⊇',\n supedot: '⫄',\n suphsol: '⟉',\n suphsub: '⫗',\n suplarr: '⥻',\n supmult: '⫂',\n supnE: '⫌',\n supne: '⊋',\n supplus: '⫀',\n supset: '⊃',\n supseteq: '⊇',\n supseteqq: '⫆',\n supsetneq: '⊋',\n supsetneqq: '⫌',\n supsim: '⫈',\n supsub: '⫔',\n supsup: '⫖',\n swArr: '⇙',\n swarhk: '⤦',\n swarr: '↙',\n swarrow: '↙',\n swnwar: '⤪',\n szlig: 'ß',\n target: '⌖',\n tau: 'τ',\n tbrk: '⎴',\n tcaron: 'ť',\n tcedil: 'ţ',\n tcy: 'т',\n tdot: '⃛',\n telrec: '⌕',\n tfr: '𝔱',\n there4: '∴',\n therefore: '∴',\n theta: 'θ',\n thetasym: 'ϑ',\n thetav: 'ϑ',\n thickapprox: '≈',\n thicksim: '∼',\n thinsp: ' ',\n thkap: '≈',\n thksim: '∼',\n thorn: 'þ',\n tilde: '˜',\n times: '×',\n timesb: '⊠',\n timesbar: '⨱',\n timesd: '⨰',\n tint: '∭',\n toea: '⤨',\n top: '⊤',\n topbot: '⌶',\n topcir: '⫱',\n topf: '𝕥',\n topfork: '⫚',\n tosa: '⤩',\n tprime: '‴',\n trade: '™',\n triangle: '▵',\n triangledown: '▿',\n triangleleft: '◃',\n trianglelefteq: '⊴',\n triangleq: '≜',\n triangleright: '▹',\n trianglerighteq: '⊵',\n tridot: '◬',\n trie: '≜',\n triminus: '⨺',\n triplus: '⨹',\n trisb: '⧍',\n tritime: '⨻',\n trpezium: '⏢',\n tscr: '𝓉',\n tscy: 'ц',\n tshcy: 'ћ',\n tstrok: 'ŧ',\n twixt: '≬',\n twoheadleftarrow: '↞',\n twoheadrightarrow: '↠',\n uArr: '⇑',\n uHar: '⥣',\n uacute: 'ú',\n uarr: '↑',\n ubrcy: 'ў',\n ubreve: 'ŭ',\n ucirc: 'û',\n ucy: 'у',\n udarr: '⇅',\n udblac: 'ű',\n udhar: '⥮',\n ufisht: '⥾',\n ufr: '𝔲',\n ugrave: 'ù',\n uharl: '↿',\n uharr: '↾',\n uhblk: '▀',\n ulcorn: '⌜',\n ulcorner: '⌜',\n ulcrop: '⌏',\n ultri: '◸',\n umacr: 'ū',\n uml: '¨',\n uogon: 'ų',\n uopf: '𝕦',\n uparrow: '↑',\n updownarrow: '↕',\n upharpoonleft: '↿',\n upharpoonright: '↾',\n uplus: '⊎',\n upsi: 'υ',\n upsih: 'ϒ',\n upsilon: 'υ',\n upuparrows: '⇈',\n urcorn: '⌝',\n urcorner: '⌝',\n urcrop: '⌎',\n uring: 'ů',\n urtri: '◹',\n uscr: '𝓊',\n utdot: '⋰',\n utilde: 'ũ',\n utri: '▵',\n utrif: '▴',\n uuarr: '⇈',\n uuml: 'ü',\n uwangle: '⦧',\n vArr: '⇕',\n vBar: '⫨',\n vBarv: '⫩',\n vDash: '⊨',\n vangrt: '⦜',\n varepsilon: 'ϵ',\n varkappa: 'ϰ',\n varnothing: '∅',\n varphi: 'ϕ',\n varpi: 'ϖ',\n varpropto: '∝',\n varr: '↕',\n varrho: 'ϱ',\n varsigma: 'ς',\n varsubsetneq: '⊊︀',\n varsubsetneqq: '⫋︀',\n varsupsetneq: '⊋︀',\n varsupsetneqq: '⫌︀',\n vartheta: 'ϑ',\n vartriangleleft: '⊲',\n vartriangleright: '⊳',\n vcy: 'в',\n vdash: '⊢',\n vee: '∨',\n veebar: '⊻',\n veeeq: '≚',\n vellip: '⋮',\n verbar: '|',\n vert: '|',\n vfr: '𝔳',\n vltri: '⊲',\n vnsub: '⊂⃒',\n vnsup: '⊃⃒',\n vopf: '𝕧',\n vprop: '∝',\n vrtri: '⊳',\n vscr: '𝓋',\n vsubnE: '⫋︀',\n vsubne: '⊊︀',\n vsupnE: '⫌︀',\n vsupne: '⊋︀',\n vzigzag: '⦚',\n wcirc: 'ŵ',\n wedbar: '⩟',\n wedge: '∧',\n wedgeq: '≙',\n weierp: '℘',\n wfr: '𝔴',\n wopf: '𝕨',\n wp: '℘',\n wr: '≀',\n wreath: '≀',\n wscr: '𝓌',\n xcap: '⋂',\n xcirc: '◯',\n xcup: '⋃',\n xdtri: '▽',\n xfr: '𝔵',\n xhArr: '⟺',\n xharr: '⟷',\n xi: 'ξ',\n xlArr: '⟸',\n xlarr: '⟵',\n xmap: '⟼',\n xnis: '⋻',\n xodot: '⨀',\n xopf: '𝕩',\n xoplus: '⨁',\n xotime: '⨂',\n xrArr: '⟹',\n xrarr: '⟶',\n xscr: '𝓍',\n xsqcup: '⨆',\n xuplus: '⨄',\n xutri: '△',\n xvee: '⋁',\n xwedge: '⋀',\n yacute: 'ý',\n yacy: 'я',\n ycirc: 'ŷ',\n ycy: 'ы',\n yen: '¥',\n yfr: '𝔶',\n yicy: 'ї',\n yopf: '𝕪',\n yscr: '𝓎',\n yucy: 'ю',\n yuml: 'ÿ',\n zacute: 'ź',\n zcaron: 'ž',\n zcy: 'з',\n zdot: 'ż',\n zeetrf: 'ℨ',\n zeta: 'ζ',\n zfr: '𝔷',\n zhcy: 'ж',\n zigrarr: '⇝',\n zopf: '𝕫',\n zscr: '𝓏',\n zwj: '‍',\n zwnj: '‌'\n}\n","/**\n * @import {Info as InfoType} from 'property-information'\n */\n\n/** @type {InfoType} */\nexport class Info {\n /**\n * @param {string} property\n * Property.\n * @param {string} attribute\n * Attribute.\n * @returns\n * Info.\n */\n constructor(property, attribute) {\n this.attribute = attribute\n this.property = property\n }\n}\n\nInfo.prototype.attribute = ''\nInfo.prototype.booleanish = false\nInfo.prototype.boolean = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.defined = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.number = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.property = ''\nInfo.prototype.spaceSeparated = false\nInfo.prototype.space = undefined\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst EMPTY = '';\n\nconst {toString} = {};\nconst {keys, is} = Object;\n\nconst typeOf = value => {\n const type = typeof value;\n if (type !== 'object' || !value)\n return [PRIMITIVE, type];\n\n const asString = toString.call(value).slice(8, -1);\n switch (asString) {\n case 'Array':\n return [ARRAY, EMPTY];\n case 'Object':\n return [OBJECT, EMPTY];\n case 'Date':\n return [DATE, EMPTY];\n case 'RegExp':\n return [REGEXP, EMPTY];\n case 'Map':\n return [MAP, EMPTY];\n case 'Set':\n return [SET, EMPTY];\n case 'DataView':\n return [ARRAY, asString];\n }\n\n if (asString.includes('Array'))\n return [ARRAY, asString];\n\n if (value instanceof Error)\n return [ERROR, value.name || 'Error'];\n\n return [OBJECT, asString];\n};\n\nconst shouldSkip = ([TYPE, type]) => (\n TYPE === PRIMITIVE &&\n (type === 'function' || type === 'symbol')\n);\n\nconst serializer = (strict, json, $, _) => {\n\n const as = (out, value) => {\n const index = _.push(out) - 1;\n $.set(value, index);\n return index;\n };\n\n const pair = value => {\n if ($.has(value))\n return $.get(value);\n\n let [TYPE, type] = typeOf(value);\n switch (TYPE) {\n case PRIMITIVE: {\n let entry = value;\n switch (type) {\n case 'bigint':\n TYPE = BIGINT;\n entry = value.toString();\n break;\n case 'number':\n if (!value && is(value, -0))\n return _.push(['-0']) - 1;\n break;\n case 'function':\n case 'symbol':\n if (strict)\n throw new TypeError('unable to serialize ' + type);\n entry = null;\n break;\n case 'undefined':\n return as([VOID], value);\n }\n return as([TYPE, entry], value);\n }\n case ARRAY: {\n if (type) {\n let spread = value;\n if (type === 'DataView') {\n spread = new Uint8Array(value.buffer);\n }\n else if (type === 'ArrayBuffer') {\n spread = new Uint8Array(value);\n }\n return as([type, [...spread]], value);\n }\n\n const arr = [];\n const index = as([TYPE, arr], value);\n for (const entry of value)\n arr.push(pair(entry));\n return index;\n }\n case OBJECT: {\n if (type) {\n switch (type) {\n case 'BigInt':\n return as([type, value.toString()], value);\n case 'Boolean':\n case 'Number':\n case 'String':\n return as([type, value.valueOf()], value);\n }\n }\n\n if (json && ('toJSON' in value))\n return pair(value.toJSON());\n\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const key of keys(value)) {\n if (strict || !shouldSkip(typeOf(value[key])))\n entries.push([pair(key), pair(value[key])]);\n }\n return index;\n }\n case DATE:\n return as([TYPE, isNaN(value.getTime()) ? EMPTY : value.toISOString()], value);\n case REGEXP: {\n const {source, flags} = value;\n return as([TYPE, {source, flags}], value);\n }\n case MAP: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const [key, entry] of value) {\n if (strict || !(shouldSkip(typeOf(key)) || shouldSkip(typeOf(entry))))\n entries.push([pair(key), pair(entry)]);\n }\n return index;\n }\n case SET: {\n const entries = [];\n const index = as([TYPE, entries], value);\n for (const entry of value) {\n if (strict || !shouldSkip(typeOf(entry)))\n entries.push(pair(entry));\n }\n return index;\n }\n }\n\n const {message} = value;\n return as([TYPE, {name: type, message}], value);\n };\n\n return pair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} value a serializable value.\n * @param {{json?: boolean, lossy?: boolean}?} options an object with a `lossy` or `json` property that,\n * if `true`, will not throw errors on incompatible types, and behave more\n * like JSON stringify would behave. Symbol and Function will be discarded.\n * @returns {Record[]}\n */\n export const serialize = (value, {json, lossy} = {}) => {\n const _ = [];\n return serializer(!(json || lossy), !!json, new Map, _)(value), _;\n};\n","import {\n VOID, PRIMITIVE,\n ARRAY, OBJECT,\n DATE, REGEXP, MAP, SET,\n ERROR, BIGINT\n} from './types.js';\n\nconst { defineProperty } = Object;\nconst env = typeof self === 'object' ? self : globalThis;\n\nconst guard = (name, init) => {\n switch (name) {\n case 'Function':\n case 'SharedWorker':\n case 'Worker':\n case 'eval':\n case 'setInterval':\n case 'setTimeout':\n throw new TypeError('unable to deserialize ' + name);\n }\n return new env[name](init);\n};\n\nconst deserializer = ($, _) => {\n const as = (out, index) => {\n $.set(index, out);\n return out;\n };\n\n const unpair = index => {\n if ($.has(index))\n return $.get(index);\n\n const [type, value] = _[index];\n switch (type) {\n case PRIMITIVE:\n case VOID:\n return as(value, index);\n case ARRAY: {\n const arr = as([], index);\n for (const index of value)\n arr.push(unpair(index));\n return arr;\n }\n case OBJECT: {\n const object = as({}, index);\n for (const [key, index] of value) {\n const k = unpair(key), value = unpair(index);\n if (k === '__proto__') defineProperty(object, k, {\n value,\n configurable: true,\n enumerable: true,\n writable: true\n });\n else object[k] = value;\n }\n return object;\n }\n case DATE:\n return as(new Date(value), index);\n case REGEXP: {\n const {source, flags} = value;\n return as(new RegExp(source, flags), index);\n }\n case MAP: {\n const map = as(new Map, index);\n for (const [key, index] of value)\n map.set(unpair(key), unpair(index));\n return map;\n }\n case SET: {\n const set = as(new Set, index);\n for (const index of value)\n set.add(unpair(index));\n return set;\n }\n case ERROR: {\n const {name, message} = value;\n return as(\n typeof env[name] === 'function' ?\n guard(name, message) :\n new Error(message),\n index\n );\n }\n case BIGINT:\n return as(BigInt(value), index);\n case 'BigInt':\n return as(Object(BigInt(value)), index);\n case 'ArrayBuffer':\n return as(new Uint8Array(value).buffer, value);\n case 'DataView': {\n const { buffer } = new Uint8Array(value);\n return as(new DataView(buffer), value);\n }\n case '-0': return -0;\n }\n return as(guard(type, value), index);\n };\n\n return unpair;\n};\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns a deserialized value from a serialized array of Records.\n * @param {Record[]} serialized a previously serialized value.\n * @returns {any}\n */\nexport const deserialize = serialized => deserializer(new Map, serialized)(0);\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","/**\n * @import {Schema} from 'property-information'\n */\n\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\nimport {normalize} from './normalize.js'\n\nconst cap = /[A-Z]/g\nconst dash = /-[a-z]/g\nconst valid = /^data[-\\w.:]+$/i\n\n/**\n * Look up info on a property.\n *\n * In most cases the given `schema` contains info on the property.\n * All standard,\n * most legacy,\n * and some non-standard properties are supported.\n * For these cases,\n * the returned `Info` has hints about the value of the property.\n *\n * `name` can also be a valid data attribute or property,\n * in which case an `Info` object with the correctly cased `attribute` and\n * `property` is returned.\n *\n * `name` can be an unknown attribute,\n * in which case an `Info` object with `attribute` and `property` set to the\n * given name is returned.\n * It is not recommended to provide unsupported legacy or recently specced\n * properties.\n *\n *\n * @param {Schema} schema\n * Schema;\n * either the `html` or `svg` export.\n * @param {string} value\n * An attribute-like or property-like name;\n * it will be passed through `normalize` to hopefully find the correct info.\n * @returns {Info}\n * Info.\n */\nexport function find(schema, value) {\n const normal = normalize(value)\n let property = value\n let Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase)\n property = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4)\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab)\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes\n }\n\n value = 'data' + dashes\n }\n }\n\n Type = DefinedInfo\n }\n\n return new Type(property, value)\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Kebab.\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * Value.\n * @returns {string}\n * Camel.\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","/**\n * Color a string.\n *\n * @param {string} d\n * Value.\n * @returns {string}\n * Colored value.\n */\nexport function color(d) {\n return '\\u001B[33m' + d + '\\u001B[39m'\n}\n","/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} attribute\n * Attribute.\n * @returns {string}\n * Transformed attribute.\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","/**\n * @import {Extension} from 'micromark-util-types'\n */\n\nimport { attention, autolink, blockQuote, characterEscape, characterReference, codeFenced, codeIndented, codeText, definition, hardBreakEscape, headingAtx, htmlFlow, htmlText, labelEnd, labelStartImage, labelStartLink, lineEnding, list, setextUnderline, thematicBreak } from 'micromark-core-commonmark';\nimport { resolver as resolveText } from './initialize/text.js';\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n};\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n};\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n};\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n};\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n};\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n};\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n};\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n};\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n};","/**\n * Parse space-separated tokens to an array of strings.\n *\n * @param {string} value\n * Space-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n const input = String(value || '').trim()\n return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated-tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @returns {string}\n * Space-separated tokens.\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n","/**\n * HTML URL properties.\n *\n * Each key is a property name and each value is a list of tag names it applies\n * to or `null` if it applies to all elements.\n *\n * @type {Record<string, Array<string> | null>}\n */\nexport const urlAttributes = {\n action: ['form'],\n cite: ['blockquote', 'del', 'ins', 'q'],\n data: ['object'],\n formAction: ['button', 'input'],\n href: ['a', 'area', 'base', 'link'],\n icon: ['menuitem'],\n itemId: null,\n manifest: ['html'],\n ping: ['a', 'area'],\n poster: ['video'],\n src: [\n 'audio',\n 'embed',\n 'iframe',\n 'img',\n 'input',\n 'script',\n 'source',\n 'track',\n 'video'\n ]\n}\n","/**\n * Get the cleaned case insensitive form of an attribute or property.\n *\n * @param {string} value\n * An attribute-like or property-like name.\n * @returns {string}\n * Value that can be used to look up the properly cased property on a\n * `Schema`.\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","import {caseSensitiveTransform} from './util/case-sensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n boolean,\n commaOrSpaceSeparated,\n commaSeparated,\n number,\n spaceSeparated\n} from './util/types.js'\n\nexport const svg = create({\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n maskType: 'mask-type',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n transformOrigin: 'transform-origin',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskType: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n },\n space: 'svg',\n transform: caseSensitiveTransform\n})\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Transformed property.\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","/**\n * @import {\n * Extension,\n * Handles,\n * HtmlExtension,\n * NormalizedExtension\n * } from 'micromark-util-types'\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine multiple syntax extensions into one.\n *\n * @param {ReadonlyArray<Extension>} extensions\n * List of syntax extensions.\n * @returns {NormalizedExtension}\n * A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all\n * Extension to merge into.\n * @param {Extension} extension\n * Extension to merge.\n * @returns {undefined}\n * Nothing.\n */\nfunction syntaxExtension(all, extension) {\n /** @type {keyof Extension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n /** @type {Record<string, unknown>} */\n const left = maybe || (all[hook] = {})\n /** @type {Record<string, unknown> | undefined} */\n const right = extension[hook]\n /** @type {string} */\n let code\n\n if (right) {\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {Array<unknown>} existing\n * List of constructs to merge into.\n * @param {Array<unknown>} list\n * List of constructs to merge.\n * @returns {undefined}\n * Nothing.\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {Array<unknown>} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine multiple HTML extensions into one.\n *\n * @param {ReadonlyArray<HtmlExtension>} htmlExtensions\n * List of HTML extensions.\n * @returns {HtmlExtension}\n * Single combined HTML extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all\n * Extension to merge into.\n * @param {HtmlExtension} extension\n * Extension to merge.\n * @returns {undefined}\n * Nothing.\n */\nfunction htmlExtension(all, extension) {\n /** @type {keyof HtmlExtension} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {keyof Handles} */\n let type\n\n if (right) {\n for (type in right) {\n // @ts-expect-error assume document vs regular handler are managed correctly.\n left[type] = right[type]\n }\n }\n }\n}\n","import {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\nimport {create} from './util/create.js'\nimport {\n booleanish,\n boolean,\n commaSeparated,\n number,\n overloadedBoolean,\n spaceSeparated\n} from './util/types.js'\n\nexport const html = create({\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alpha: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n blocking: spaceSeparated,\n capture: null,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n closedBy: null,\n colorSpace: null,\n cols: number,\n colSpan: number,\n command: null,\n commandFor: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: overloadedBoolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: boolean,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shadowRootClonable: boolean,\n shadowRootCustomElementRegistry: boolean,\n shadowRootDelegatesFocus: boolean,\n shadowRootMode: null,\n shadowRootSerializable: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n writingSuggestions: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n credentialless: boolean,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n exportParts: commaSeparated,\n part: spaceSeparated,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n },\n space: 'html',\n transform: caseInsensitiveTransform\n})\n","/**\n * Special cases for React (`Record<string, string>`).\n *\n * `hast` is close to `React` but differs in a couple of cases.\n * To get a React property from a hast property,\n * check if it is in `hastToReact`.\n * If it is, use the corresponding value;\n * otherwise, use the hast property.\n *\n * @type {Record<string, string>}\n */\nexport const hastToReact = {\n classId: 'classID',\n dataType: 'datatype',\n itemId: 'itemID',\n strokeDashArray: 'strokeDasharray',\n strokeDashOffset: 'strokeDashoffset',\n strokeLineCap: 'strokeLinecap',\n strokeLineJoin: 'strokeLinejoin',\n strokeMiterLimit: 'strokeMiterlimit',\n typeOf: 'typeof',\n xLinkActuate: 'xlinkActuate',\n xLinkArcRole: 'xlinkArcrole',\n xLinkHref: 'xlinkHref',\n xLinkRole: 'xlinkRole',\n xLinkShow: 'xlinkShow',\n xLinkTitle: 'xlinkTitle',\n xLinkType: 'xlinkType',\n xmlnsXLink: 'xmlnsXlink'\n}\n","// Note: types exposed from `index.d.ts`.\nimport {merge} from './lib/util/merge.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\nimport {xlink} from './lib/xlink.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {xml} from './lib/xml.js'\n\nexport {hastToReact} from './lib/hast-to-react.js'\n\nexport const html = merge([aria, htmlBase, xlink, xmlns, xml], 'html')\n\nexport {find} from './lib/find.js'\nexport {normalize} from './lib/normalize.js'\n\nexport const svg = merge([aria, svgBase, xlink, xmlns, xml], 'svg')\n","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiAlphanumeric, asciiAlpha, asciiAtext, asciiControl } from 'micromark-util-character';\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"autolink\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.enter(\"autolinkProtocol\");\n return open;\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code);\n return schemeOrEmailAtext;\n }\n if (code === 64) {\n return nok(code);\n }\n return emailAtext(code);\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1;\n return schemeInsideOrEmailAtext(code);\n }\n return emailAtext(code);\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * > | a<user@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code);\n size = 0;\n return urlInside;\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if ((code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && size++ < 32) {\n effects.consume(code);\n return schemeInsideOrEmailAtext;\n }\n size = 0;\n return emailAtext(code);\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | a<https://example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit(\"autolinkProtocol\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code);\n }\n effects.consume(code);\n return urlInside;\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code);\n return emailAtSignOrDot;\n }\n if (asciiAtext(code)) {\n effects.consume(code);\n return emailAtext;\n }\n return nok(code);\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code);\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | a<user.name@example.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code);\n size = 0;\n return emailAtSignOrDot;\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit(\"autolinkProtocol\").type = \"autolinkEmail\";\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n return emailValue(code);\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | a<user.name@ex-ample.com>b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel;\n effects.consume(code);\n return next;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const nonLazyContinuation = {\n partial: true,\n tokenize: tokenizeNonLazyContinuation\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code);\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return after;\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"hardBreakEscape\");\n effects.consume(code);\n return after;\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit(\"hardBreakEscape\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiPunctuation } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterEscape\");\n effects.enter(\"escapeMarker\");\n effects.consume(code);\n effects.exit(\"escapeMarker\");\n return inside;\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter(\"characterEscapeValue\");\n effects.consume(code);\n effects.exit(\"characterEscapeValue\");\n effects.exit(\"characterEscape\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const blankLine = {\n partial: true,\n tokenize: tokenizeBlankLine\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLine(effects, ok, nok) {\n return start;\n\n /**\n * Start of blank line.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n return markdownSpace(code) ? factorySpace(effects, after, \"linePrefix\")(code) : after(code);\n }\n\n /**\n * At eof/eol, after optional whitespace.\n *\n * > 👉 **Note**: `␠` represents a space character.\n *\n * ```markdown\n * > | ␠␠␊\n * ^\n * > | ␊\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code);\n }\n}","/**\n * @import {\n * Code,\n * InitialConstruct,\n * Initializer,\n * Resolver,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nimport { EditMap } from 'micromark-util-edit-map';\nexport const resolver = {\n resolveAll: createResolver()\n};\nexport const string = initializeFactory('string');\nexport const text = initializeFactory('text');\n\n/**\n * @param {'string' | 'text'} field\n * Field.\n * @returns {InitialConstruct}\n * Construct.\n */\nfunction initializeFactory(field) {\n return {\n resolveAll: createResolver(field === 'text' ? resolveAllLineSuffixes : undefined),\n tokenize: initializeText\n };\n\n /**\n * @this {TokenizeContext}\n * Context.\n * @type {Initializer}\n */\n function initializeText(effects) {\n const self = this;\n const constructs = this.parser.constructs[field];\n const text = effects.attempt(constructs, start, notText);\n return start;\n\n /** @type {State} */\n function start(code) {\n return atBreak(code) ? text(code) : notText(code);\n }\n\n /** @type {State} */\n function notText(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"data\");\n effects.consume(code);\n return data;\n }\n\n /** @type {State} */\n function data(code) {\n if (atBreak(code)) {\n effects.exit(\"data\");\n return text(code);\n }\n\n // Data.\n effects.consume(code);\n return data;\n }\n\n /**\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether the code is a break.\n */\n function atBreak(code) {\n if (code === null) {\n return true;\n }\n const list = constructs[code];\n let index = -1;\n if (list) {\n // Always populated by defaults.\n\n while (++index < list.length) {\n const item = list[index];\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true;\n }\n }\n }\n return false;\n }\n }\n}\n\n/**\n * @param {Resolver | undefined} [extraResolver]\n * Resolver.\n * @returns {Resolver}\n * Resolver.\n */\nfunction createResolver(extraResolver) {\n return resolveAllText;\n\n /** @type {Resolver} */\n function resolveAllText(events, context) {\n let index = -1;\n /** @type {number | undefined} */\n let enter;\n\n // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === \"data\") {\n enter = index;\n index++;\n }\n } else if (!events[index] || events[index][1].type !== \"data\") {\n // Don’t do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return extraResolver ? extraResolver(events, context) : events;\n }\n}\n\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we can’t hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\nfunction resolveAllLineSuffixes(events, context) {\n const editMap = new EditMap();\n let eventIndex = 0; // Skip first.\n\n while (++eventIndex <= events.length) {\n if ((eventIndex === events.length || events[eventIndex][1].type === \"lineEnding\") && events[eventIndex - 1][1].type === \"data\") {\n const data = events[eventIndex - 1][1];\n const chunks = context.sliceStream(data);\n let index = chunks.length;\n let bufferIndex = -1;\n let size = 0;\n /** @type {boolean | undefined} */\n let tabs;\n while (index--) {\n const chunk = chunks[index];\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length;\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++;\n bufferIndex--;\n }\n if (bufferIndex) {\n break;\n }\n bufferIndex = -1;\n }\n // Number\n else if (chunk === -2) {\n tabs = true;\n size++;\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++;\n break;\n }\n }\n\n // Allow final trailing whitespace.\n if (context._contentTypeTextTrailing && eventIndex === events.length) {\n size = 0;\n }\n if (size) {\n const token = {\n type: eventIndex === events.length || tabs || size < 2 ? \"lineSuffix\" : \"hardBreakTrailing\",\n start: {\n _bufferIndex: index ? bufferIndex : data.start._bufferIndex + bufferIndex,\n _index: data.start._index + index,\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size\n },\n end: {\n ...data.end\n }\n };\n data.end = {\n ...token.start\n };\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token);\n } else {\n editMap.add(eventIndex, 0, [['enter', token, context], ['exit', token, context]]);\n }\n }\n eventIndex++;\n }\n }\n editMap.consume(events);\n return events;\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpaceMinMax } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n};\n\n/** @type {Construct} */\nconst furtherStart = {\n partial: true,\n tokenize: tokenizeFurtherStart\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeIndented(effects, ok, nok) {\n return start;\n\n /**\n * Start of code (indented).\n *\n * > **Parsing note**: it is not needed to check if this first line is a\n * > filled line (that it has a non-whitespace character), because blank lines\n * > are parsed already, so we never run into that.\n *\n * ```markdown\n * > | aaa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: manually check if interrupting like `markdown-rs`.\n\n effects.enter(\"codeIndented\");\n return factorySpaceMinMax(effects, atBreak, nok, \"linePrefix\", 4, 4)(code);\n }\n\n /**\n * At a break.\n *\n * ```markdown\n * > | aaa\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === null) {\n return after(code);\n }\n if (markdownLineEnding(code)) {\n return effects.attempt(furtherStart, atBreak, after)(code);\n }\n effects.enter(\"codeFlowValue\");\n return inside(code);\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * > | aaa\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFlowValue\");\n return atBreak(code);\n }\n effects.consume(code);\n return inside;\n }\n\n /** @type {State} */\n function after(code) {\n effects.exit(\"codeIndented\");\n // To do: allow interrupting like `markdown-rs`.\n // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeFurtherStart(effects, ok, nok) {\n const self = this;\n return furtherStart;\n\n /**\n * At eol, trying to parse another indent.\n *\n * ```markdown\n * > | aaa\n * ^\n * | bbb\n * ```\n *\n * @type {State}\n */\n function furtherStart(code) {\n // To do: improve `lazy` / `pierce` handling.\n // If this is a lazy line, it can’t be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return furtherStart;\n }\n\n // To do: the code here in `micromark-js` is a bit different from\n // `markdown-rs` because there it can attempt spaces.\n // We can’t yet.\n return factorySpaceMinMax(effects, ok, onNotEnoughPrefix, \"linePrefix\", 4, 4)(code);\n }\n\n /**\n * After not enough of a prefix.\n *\n * A following line ending is another (potentially blank) line to try,\n * anything else means this isn’t a continuation.\n *\n * ```markdown\n * > | aaa\n *\n * | bbb\n * ```\n *\n * @type {State}\n */\n function onNotEnoughPrefix(code) {\n return markdownLineEnding(code) ? furtherStart(code) : nok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n\n /** @type {State} */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, ok, \"linePrefix\");\n }\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\nimport { subtokenize } from 'micromark-util-subtokenize';\n\n/**\n * @param {Array<Event>} events\n * Events.\n * @returns {Array<Event>}\n * Events.\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events;\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { asciiAlphanumeric, asciiDigit, asciiHexDigit } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this;\n let size = 0;\n /** @type {number} */\n let max;\n /** @type {(code: Code) => boolean} */\n let test;\n return start;\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&amp;b\n * ^\n * > | a&#123;b\n * ^\n * > | a&#x9;b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterReference\");\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n return open;\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&amp;b\n * ^\n * > | a&#123;b\n * ^\n * > | a&#x9;b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter(\"characterReferenceMarkerNumeric\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerNumeric\");\n return numeric;\n }\n effects.enter(\"characterReferenceValue\");\n max = 31;\n test = asciiAlphanumeric;\n return value(code);\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a&#123;b\n * ^\n * > | a&#x9;b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter(\"characterReferenceMarkerHexadecimal\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerHexadecimal\");\n effects.enter(\"characterReferenceValue\");\n max = 6;\n test = asciiHexDigit;\n return value;\n }\n effects.enter(\"characterReferenceValue\");\n max = 7;\n test = asciiDigit;\n return value(code);\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&amp;b\n * ^^^\n * > | a&#123;b\n * ^^^\n * > | a&#x9;b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit(\"characterReferenceValue\");\n if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self.sliceSerialize(token))) {\n return nok(code);\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n effects.exit(\"characterReference\");\n return ok;\n }\n if (test(code) && size++ < max) {\n effects.consume(code);\n return value;\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable<Code> | undefined} */\n let marker;\n /** @type {number} */\n let index;\n /** @type {State} */\n let returnState;\n return start;\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"htmlText\");\n effects.enter(\"htmlTextData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n return instruction;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagOpen;\n }\n return nok(code);\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | a <!doctype> c\n * ^\n * > | a <!--b--> c\n * ^\n * > | a <![CDATA[>&<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return declaration;\n }\n return nok(code);\n }\n\n /**\n * In a comment, after `<!-`, at another `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return nok(code);\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 45) {\n effects.consume(code);\n return commentClose;\n }\n if (markdownLineEnding(code)) {\n returnState = comment;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return comment;\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return comment(code);\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a <!--b--> c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n }\n\n /**\n * After `<![`, in CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataClose;\n }\n if (markdownLineEnding(code)) {\n returnState = cdata;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return cdata;\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a <![CDATA[>&<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a <!b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code);\n }\n if (markdownLineEnding(code)) {\n returnState = declaration;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return declaration;\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 63) {\n effects.consume(code);\n return instructionClose;\n }\n if (markdownLineEnding(code)) {\n returnState = instruction;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return instruction;\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a <?b?> c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code);\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagClose;\n }\n return nok(code);\n }\n\n /**\n * After `</x`, in a tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagClose;\n }\n return tagCloseBetween(code);\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a </b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n return end(code);\n }\n\n /**\n * After `<x`, in opening tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpen;\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a <b> c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code);\n return end;\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n return end(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a <b c> d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code === null) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a <b c=d> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n return nok(code);\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a <b c=\"d\"> e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code);\n effects.exit(\"htmlTextData\");\n effects.exit(\"htmlText\");\n return ok;\n }\n return nok(code);\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a <!--a\n * ^\n * | b-->\n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit(\"htmlTextData\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineEndingAfter;\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a <!--a\n * > | b-->\n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter(\"htmlTextData\");\n return returnState(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * Token,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartImage\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this;\n /** @type {Token} */\n let labelImage;\n return start;\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelImage\");\n effects.enter(\"labelImageMarker\");\n effects.consume(code);\n effects.exit(\"labelImageMarker\");\n return open;\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n labelImage = effects.exit(\"labelImage\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n * <p>!<a href=\\\"b\\\">^a</a></p>\n * <p>!<a href=\\\"c\\\">^a</a></p>\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 6 */\n if (code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs) {\n return nok(code);\n }\n self._labelStarts = self._labelStarts || [];\n self._labelStarts.push(labelImage);\n return ok(code);\n }\n}","/**\n * @import {\n * Construct,\n * State,\n * Token,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n resolveAll: labelEnd.resolveAll,\n tokenize: tokenizeLabelStartLink\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this;\n /** @type {Token} */\n let labelLink;\n return start;\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelLink\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n labelLink = effects.exit(\"labelLink\");\n return after;\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 6 */\n if (code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs) {\n return nok(code);\n }\n self._labelStarts = self._labelStarts || [];\n self._labelStarts.push(labelLink);\n return ok(code);\n }\n}","/**\n * @import {\n * InitialConstruct,\n * Initializer,\n * State,\n * TokenizeContext\n * } from 'micromark-util-types'\n */\n\nimport { blankLine, content } from 'micromark-core-commonmark';\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n};\n\n/**\n * @this {TokenizeContext}\n * Self.\n * @type {Initializer}\n * Initializer.\n */\nfunction initializeFlow(effects) {\n const self = this;\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine, atBlankEnding,\n // Try to parse initial flow (essentially, only code).\n effects.attempt(this.parser.constructs.flowInitial, afterConstruct, factorySpace(effects, effects.attempt(this.parser.constructs.flow, afterConstruct, effects.attempt(content, afterConstruct)), \"linePrefix\")));\n return initial;\n\n /** @type {State} */\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEndingBlank\");\n effects.consume(code);\n effects.exit(\"lineEndingBlank\");\n self.currentConstruct = undefined;\n return initial;\n }\n\n /** @type {State} */\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n self.currentConstruct = undefined;\n return initial;\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0;\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Start of thematic break.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"thematicBreak\");\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n\n /**\n * After optional whitespace, at marker.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n marker = code;\n return atBreak(code);\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.enter(\"thematicBreakSequence\");\n return sequence(code);\n }\n if (size >= 3 && (code === null || markdownLineEnding(code))) {\n effects.exit(\"thematicBreak\");\n return ok(code);\n }\n return nok(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * > | ***\n * ^\n * ```\n *\n * @type {State}\n */\n function sequence(code) {\n if (code === marker) {\n effects.consume(code);\n size++;\n return sequence;\n }\n effects.exit(\"thematicBreakSequence\");\n return markdownSpace(code) ? factorySpace(effects, atBreak, \"whitespace\")(code) : atBreak(code);\n }\n}","/**\n * @import {\n * Construct,\n * Exiter,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const blockQuote = {\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit,\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of block quote.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 62) {\n const state = self.containerState;\n if (!state.open) {\n effects.enter(\"blockQuote\", {\n _container: true\n });\n state.open = true;\n }\n effects.enter(\"blockQuotePrefix\");\n effects.enter(\"blockQuoteMarker\");\n effects.consume(code);\n effects.exit(\"blockQuoteMarker\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `>`, before optional whitespace.\n *\n * ```markdown\n * > | > a\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter(\"blockQuotePrefixWhitespace\");\n effects.consume(code);\n effects.exit(\"blockQuotePrefixWhitespace\");\n effects.exit(\"blockQuotePrefix\");\n return ok;\n }\n effects.exit(\"blockQuotePrefix\");\n return ok(code);\n }\n}\n\n/**\n * Start of block quote continuation.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n const self = this;\n return contStart;\n\n /**\n * Start of block quote continuation.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contStart(code) {\n if (markdownSpace(code)) {\n // Always populated by defaults.\n\n return factorySpace(effects, contBefore, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n return contBefore(code);\n }\n\n /**\n * At `>`, after optional whitespace.\n *\n * Also used to parse the first block quote opening.\n *\n * ```markdown\n * | > a\n * > | > b\n * ^\n * ```\n *\n * @type {State}\n */\n function contBefore(code) {\n return effects.attempt(blockQuote, ok, nok)(code);\n }\n}\n\n/** @type {Exiter} */\nfunction exit(effects) {\n effects.exit(\"blockQuote\");\n}","/**\n * @import {\n * InitialConstruct,\n * Initializer,\n * State,\n * TokenizeContext,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Initializer}\n * Content.\n */\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(this.parser.constructs.contentInitial, afterContentStartConstruct, paragraphInitial);\n /** @type {Token} */\n let previous;\n return contentStart;\n\n /** @type {State} */\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code);\n return;\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, contentStart, \"linePrefix\");\n }\n\n /** @type {State} */\n function paragraphInitial(code) {\n effects.enter(\"paragraph\");\n return lineStart(code);\n }\n\n /** @type {State} */\n function lineStart(code) {\n const token = effects.enter(\"chunkText\", {\n contentType: \"text\",\n previous\n });\n if (previous) {\n previous.next = token;\n }\n previous = token;\n return data(code);\n }\n\n /** @type {State} */\n function data(code) {\n if (code === null) {\n effects.exit(\"chunkText\");\n effects.exit(\"paragraph\");\n effects.consume(code);\n return;\n }\n if (markdownLineEnding(code)) {\n effects.consume(code);\n effects.exit(\"chunkText\");\n return lineStart;\n }\n\n // Data.\n effects.consume(code);\n return data;\n }\n}","/**\n * @import {Info, Space} from 'property-information'\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {ReadonlyArray<Schema>} definitions\n * Definitions.\n * @param {Space | undefined} [space]\n * Space.\n * @returns {Schema}\n * Schema.\n */\nexport function merge(definitions, space) {\n /** @type {Record<string, Info>} */\n const property = {}\n /** @type {Record<string, string>} */\n const normal = {}\n\n for (const definition of definitions) {\n Object.assign(property, definition.property)\n Object.assign(normal, definition.normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @import {\n * Construct,\n * Previous,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n previous,\n resolve: resolveCodeText,\n tokenize: tokenizeCodeText\n};\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4;\n let headEnterIndex = 3;\n /** @type {number} */\n let index;\n /** @type {number | undefined} */\n let enter;\n\n // If we start and end with an EOL or a space.\n if ((events[headEnterIndex][1].type === \"lineEnding\" || events[headEnterIndex][1].type === 'space') && (events[tailExitIndex][1].type === \"lineEnding\" || events[tailExitIndex][1].type === 'space')) {\n index = headEnterIndex;\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === \"codeTextData\") {\n // Then we have padding.\n events[headEnterIndex][1].type = \"codeTextPadding\";\n events[tailExitIndex][1].type = \"codeTextPadding\";\n headEnterIndex += 2;\n tailExitIndex -= 2;\n break;\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1;\n tailExitIndex++;\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== \"lineEnding\") {\n enter = index;\n }\n } else if (index === tailExitIndex || events[index][1].type === \"lineEnding\") {\n events[enter][1].type = \"codeTextData\";\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n tailExitIndex -= index - enter - 2;\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return code !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this;\n let sizeOpen = 0;\n /** @type {number} */\n let size;\n /** @type {Token} */\n let token;\n return start;\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"codeText\");\n effects.enter(\"codeTextSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code);\n sizeOpen++;\n return sequenceOpen;\n }\n effects.exit(\"codeTextSequence\");\n return between(code);\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code);\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space');\n effects.consume(code);\n effects.exit('space');\n return between;\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter(\"codeTextSequence\");\n size = 0;\n return sequenceClose(code);\n }\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return between;\n }\n\n // Data.\n effects.enter(\"codeTextData\");\n return data(code);\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 32 || code === 96 || markdownLineEnding(code)) {\n effects.exit(\"codeTextData\");\n return between(code);\n }\n effects.consume(code);\n return data;\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code);\n size++;\n return sequenceClose;\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit(\"codeTextSequence\");\n effects.exit(\"codeText\");\n return ok(code);\n }\n\n // More or less accents: mark as data.\n token.type = \"codeTextData\";\n return data(code);\n }\n}","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCodePoint(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base);\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 || code === 11 || code > 13 && code < 32 ||\n // Control character (DEL) of C0, and C1 controls.\n code > 126 && code < 160 ||\n // Lone high surrogates and low surrogates.\n code > 55_295 && code < 57_344 ||\n // Noncharacters.\n code > 64_975 && code < 65_008 || /* eslint-disable no-bitwise */\n (code & 65_535) === 65_535 || (code & 65_535) === 65_534 || /* eslint-enable no-bitwise */\n // Out of range\n code > 1_114_111) {\n return \"\\uFFFD\";\n }\n return String.fromCodePoint(code);\n}","/**\n * @import {\n * Create,\n * FullNormalizedExtension,\n * InitialConstruct,\n * ParseContext,\n * ParseOptions\n * } from 'micromark-util-types'\n */\n\nimport { combineExtensions } from 'micromark-util-combine-extensions';\nimport { content } from './initialize/content.js';\nimport { document } from './initialize/document.js';\nimport { flow } from './initialize/flow.js';\nimport { string, text } from './initialize/text.js';\nimport * as defaultConstructs from './constructs.js';\nimport { createTokenizer } from './create-tokenizer.js';\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * Configuration (optional).\n * @returns {ParseContext}\n * Parser.\n */\nexport function parse(options) {\n const settings = options || {};\n const constructs = /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])]);\n\n /** @type {ParseContext} */\n const parser = {\n constructs,\n content: create(content),\n defined: [],\n document: create(document),\n flow: create(flow),\n lazy: {},\n string: create(string),\n text: create(text)\n };\n return parser;\n\n /**\n * @param {InitialConstruct} initial\n * Construct to start with.\n * @returns {Create}\n * Create a tokenizer.\n */\n function create(initial) {\n return creator;\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from);\n }\n }\n}","/**\n * @import {Node, Point, Position} from 'unist'\n * @import {Options as MessageOptions} from 'vfile-message'\n * @import {Compatible, Data, Map, Options, Value} from 'vfile'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {minpath} from '#minpath'\nimport {minproc} from '#minproc'\nimport {urlToPath, isUrl} from '#minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n // Prevent calling `cwd` (which could be expensive) if it’s not needed;\n // the empty string will be overridden in the next block.\n this.cwd = 'cwd' in options ? '' : minproc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array<string>}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array<VFileMessage>}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const field = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n field in options &&\n options[field] !== undefined &&\n options[field] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[field] = field === 'history' ? [...options[field]] : options[field]\n }\n }\n\n /** @type {string} */\n let field\n\n // Set non-path related properties.\n for (field in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(field)) {\n // @ts-expect-error: fine to set other things.\n this[field] = options[field]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path)\n : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = minpath.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string'\n ? minpath.dirname(this.path)\n : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = minpath.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string'\n ? minpath.extname(this.path)\n : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = minpath.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? minpath.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = minpath.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > <https://nodejs.org/api/util.html#whatwg-supported-encodings>.\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(minpath.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + minpath.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","/**\n * @import {\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\nimport { splice } from 'micromark-util-chunked';\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n resolve: resolveHeadingAtx,\n tokenize: tokenizeHeadingAtx\n};\n\n/** @type {Resolver} */\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2;\n let contentStart = 3;\n\n // Prefix whitespace, part of the opening.\n if (events[contentStart][1].type === \"whitespace\") {\n contentStart += 2;\n }\n\n // Suffix whitespace, part of the closing.\n if (contentEnd - 2 > contentStart && events[contentEnd][1].type === \"whitespace\") {\n contentEnd -= 2;\n }\n if (events[contentEnd][1].type === \"atxHeadingSequence\" && (contentStart === contentEnd - 1 || contentEnd - 4 > contentStart && events[contentEnd - 2][1].type === \"whitespace\")) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4;\n }\n if (contentEnd > contentStart) {\n const content = {\n type: \"atxHeadingText\",\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n };\n const text = {\n type: \"chunkText\",\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n contentType: \"text\"\n };\n splice(events, contentStart, contentEnd - contentStart + 1, [['enter', content, context], ['enter', text, context], ['exit', text, context], ['exit', content, context]]);\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of a heading (atx).\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n effects.enter(\"atxHeading\");\n return before(code);\n }\n\n /**\n * After optional whitespace, at `#`.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"atxHeadingSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code);\n return sequenceOpen;\n }\n\n // Always at least one `#`.\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit(\"atxHeadingSequence\");\n return atBreak(code);\n }\n return nok(code);\n }\n\n /**\n * After something, before something else.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === 35) {\n effects.enter(\"atxHeadingSequence\");\n return sequenceFurther(code);\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"atxHeading\");\n // To do: interrupt like `markdown-rs`.\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n return ok(code);\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, \"whitespace\")(code);\n }\n\n // To do: generate `data` tokens, add the `text` token later.\n // Needs edit map, see: `markdown.rs`.\n effects.enter(\"atxHeadingText\");\n return data(code);\n }\n\n /**\n * In further sequence (after whitespace).\n *\n * Could be normal “visible” hashes in the heading or a final sequence.\n *\n * ```markdown\n * > | ## aa ##\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceFurther(code) {\n if (code === 35) {\n effects.consume(code);\n return sequenceFurther;\n }\n effects.exit(\"atxHeadingSequence\");\n return atBreak(code);\n }\n\n /**\n * In text.\n *\n * ```markdown\n * > | ## aa\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit(\"atxHeadingText\");\n return atBreak(code);\n }\n effects.consume(code);\n return data;\n }\n}","/**\n * List of lowercase HTML “block” tag names.\n *\n * The list, when parsing HTML (flow), results in more relaxed rules (condition\n * 6).\n * Because they are known blocks, the HTML-like syntax doesn’t have to be\n * strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `search` was added in `CommonMark@0.31`.\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'search',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML “raw” tag names.\n *\n * The list, when parsing HTML (flow), results in HTML that can include lines\n * without exiting, until a closing tag also in this list is found (condition\n * 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * > 👉 **Note**: `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @import {\n * Code,\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\nimport { EditMap } from 'micromark-util-edit-map';\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n resolveTo: resolveToSetextUnderline,\n tokenize: tokenizeSetextUnderline\n};\n\n/** @type {Resolver} */\nfunction resolveToSetextUnderline(events, context) {\n const editMap = new EditMap();\n let index = events.length;\n /** @type {number | undefined} */\n let content;\n /** @type {number | undefined} */\n let text;\n /** @type {number | undefined} */\n let definition;\n\n // Find the opening of the content.\n // It’ll always exist: we don’t tokenize if it isn’t there.\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === \"content\") {\n content = index;\n break;\n }\n if (events[index][1].type === \"paragraph\") {\n text = index;\n }\n }\n // Exit\n else {\n if (events[index][1].type === \"content\") {\n // Remove the content end (if needed we’ll add it later)\n editMap.add(index, 1, []);\n }\n if (!definition && events[index][1].type === \"definition\") {\n definition = index;\n }\n }\n }\n const heading = {\n type: \"setextHeading\",\n start: {\n ...events[content][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n\n // Change the paragraph to setext heading text.\n events[text][1].type = \"setextHeadingText\";\n\n // If we have definitions in the content, we’ll keep on having content,\n // but we need move it.\n if (definition) {\n editMap.add(text, 0, [['enter', heading, context]]);\n editMap.add(definition + 1, 0, [['exit', events[content][1], context]]);\n events[content][1].end = {\n ...events[definition][1].end\n };\n } else {\n events[content][1] = heading;\n }\n\n // Add the heading exit at the end.\n editMap.add(events.length, 0, [['exit', heading, context]]);\n editMap.consume(events);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * At start of heading (setext) underline.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n let index = self.events.length;\n /** @type {boolean | undefined} */\n let paragraph;\n // Find an opening.\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (self.events[index][1].type !== \"lineEnding\" && self.events[index][1].type !== \"linePrefix\" && self.events[index][1].type !== \"content\") {\n paragraph = self.events[index][1].type === \"paragraph\";\n break;\n }\n }\n\n // To do: handle lazy/pierce like `markdown-rs`.\n // To do: parse indent like `markdown-rs`.\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter(\"setextHeadingLine\");\n marker = code;\n return before(code);\n }\n return nok(code);\n }\n\n /**\n * After optional whitespace, at `-` or `=`.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"setextHeadingLineSequence\");\n return inside(code);\n }\n\n /**\n * In sequence.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n effects.exit(\"setextHeadingLineSequence\");\n return markdownSpace(code) ? factorySpace(effects, after, \"lineSuffix\")(code) : after(code);\n }\n\n /**\n * After sequence, after optional whitespace.\n *\n * ```markdown\n * | aa\n * > | ==\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"setextHeadingLine\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\nimport { nonLazyContinuation } from './partial-non-lazy-continuation.js';\n\n/** @type {Construct} */\nexport const codeFenced = {\n concrete: true,\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this;\n /** @type {Construct} */\n const closeStart = {\n partial: true,\n tokenize: tokenizeCloseStart\n };\n let initialPrefix = 0;\n let sizeOpen = 0;\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code);\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1];\n initialPrefix = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n marker = code;\n effects.enter(\"codeFenced\");\n effects.enter(\"codeFencedFence\");\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++;\n effects.consume(code);\n return sequenceOpen;\n }\n if (sizeOpen < 3) {\n return nok(code);\n }\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, infoBefore, \"whitespace\")(code) : infoBefore(code);\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return self.interrupt ? ok(code) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFencedFenceInfo\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return info(code);\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return infoBefore(code);\n }\n if (markdownSpace(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return factorySpace(effects, metaBefore, \"whitespace\")(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return info;\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code);\n }\n effects.enter(\"codeFencedFenceMeta\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return meta(code);\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceMeta\");\n return infoBefore(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return meta;\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code);\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return contentStart;\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code) ? factorySpace(effects, beforeContentChunk, \"linePrefix\", initialPrefix + 1)(code) : beforeContentChunk(code);\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFlowValue\");\n return contentChunk(code);\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFlowValue\");\n return beforeContentChunk(code);\n }\n effects.consume(code);\n return contentChunk;\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit(\"codeFenced\");\n return ok(code);\n }\n\n /**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0;\n return startBefore;\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return start;\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter(\"codeFencedFence\");\n return markdownSpace(code) ? factorySpace(effects, beforeSequenceClose, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : beforeSequenceClose(code);\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceClose(code);\n }\n return nok(code);\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++;\n effects.consume(code);\n return sequenceClose;\n }\n if (size >= sizeOpen) {\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, sequenceCloseAfter, \"whitespace\")(code) : sequenceCloseAfter(code);\n }\n return nok(code);\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return ok(code);\n }\n return nok(code);\n }\n }\n}","import {deserialize} from './deserialize.js';\nimport {serialize} from './serialize.js';\n\n/**\n * @typedef {Array<string,any>} Record a type representation\n */\n\n/**\n * Returns an array of serialized Records.\n * @param {any} any a serializable value.\n * @param {{transfer?: any[], json?: boolean, lossy?: boolean}?} options an object with\n * a transfer option (ignored when polyfilled) and/or non standard fields that\n * fallback to the polyfill if present.\n * @returns {Record[]}\n */\nexport default typeof structuredClone === \"function\" ?\n /* c8 ignore start */\n (any, options) => (\n options && ('json' in options || 'lossy' in options) ?\n deserialize(serialize(any, options)) : structuredClone(any)\n ) :\n (any, options) => deserialize(serialize(any, options));\n /* c8 ignore stop */\n\nexport {deserialize, serialize};\n","import type { Declaration } from 'inline-style-parser';\nimport parse from 'inline-style-parser';\n\nexport { Declaration };\n\nexport type StyleObject = Record<string, string>;\n\ntype Iterator = (\n property: string,\n value: string,\n declaration: Declaration,\n) => void;\n\n/**\n * Parses inline style to object.\n *\n * @param style - Inline style.\n * @param iterator - Iterator.\n * @returns - Style object or null.\n *\n * @example Parsing inline style to object:\n *\n * ```js\n * import parse from 'style-to-object';\n * parse('line-height: 42;'); // { 'line-height': '42' }\n * ```\n */\nexport default function StyleToObject(\n style: string,\n iterator?: Iterator,\n): StyleObject | null {\n let styleObject: StyleObject | null = null;\n\n if (!style || typeof style !== 'string') {\n return styleObject;\n }\n\n const declarations = parse(style);\n const hasIterator = typeof iterator === 'function';\n\n declarations.forEach((declaration) => {\n if (declaration.type !== 'declaration') {\n return;\n }\n\n const { property, value } = declaration;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n styleObject = styleObject ?? {};\n styleObject[property] = value;\n }\n });\n\n return styleObject;\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Blockquote} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element, Text} from 'hast'\n * @import {Break} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array<Element | Text>}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Code} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n // Someone can write `js&#x20;python&#x9;ruby`.\n const language = node.lang ? node.lang.split(/\\s+/) : []\n\n // GH/CM still drop the non-first languages.\n if (language.length > 0) {\n properties.className = ['language-' + language[0]]\n }\n\n // Create `<code>`.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `<pre>`.\n result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n state.patch(node, result)\n return result\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Delete} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Delete} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strikethrough(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'del',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Emphasis} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Emphasis} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function emphasis(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'em',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Heading} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Heading} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function heading(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'h' + node.depth,\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {ElementContent} from 'hast'\n * @import {Reference, Nodes} from 'mdast'\n * @import {State} from './state.js'\n */\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {Extract<Nodes, Reference>} node\n * Reference node (image, link).\n * @returns {Array<ElementContent>}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return [{type: 'text', value: '![' + node.alt + suffix}]\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @import {Element, Text} from 'hast'\n * @import {InlineCode} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {InlineCode} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function inlineCode(state, node) {\n /** @type {Text} */\n const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n state.patch(node, text)\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'code',\n properties: {},\n children: [text]\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {List} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {List} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function list(state, node) {\n /** @type {Properties} */\n const properties = {}\n const results = state.all(node)\n let index = -1\n\n if (typeof node.start === 'number' && node.start !== 1) {\n properties.start = node.start\n }\n\n // Like GitHub, add a class for custom styling.\n while (++index < results.length) {\n const child = results[index]\n\n if (\n child.type === 'element' &&\n child.tagName === 'li' &&\n child.properties &&\n Array.isArray(child.properties.className) &&\n child.properties.className.includes('task-list-item')\n ) {\n properties.className = ['contains-task-list']\n break\n }\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: node.ordered ? 'ol' : 'ul',\n properties,\n children: state.wrap(results, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Paragraph} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Paragraph} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function paragraph(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'p',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Parents as HastParents, Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastRoot} node\n * mdast node.\n * @returns {HastParents}\n * hast node.\n */\nexport function root(state, node) {\n /** @type {HastRoot} */\n const result = {type: 'root', children: state.wrap(state.all(node))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {Strong} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Strong} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function strong(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'strong',\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {TableCell} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableCell} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function tableCell(state, node) {\n // Note: this function is normally not called: see `table-row` for how rows\n // and their cells are compiled.\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'td', // Assume body cell.\n properties: {},\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {ThematicBreak} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ThematicBreak} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function thematicBreak(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'hr',\n properties: {},\n children: []\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Event, Resolver, TokenizeContext} from 'micromark-util-types'\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {ReadonlyArray<{resolveAll?: Resolver | undefined}>} constructs\n * List of constructs, optionally with `resolveAll`s.\n * @param {Array<Event>} events\n * List of events.\n * @param {TokenizeContext} context\n * Context used by `tokenize`.\n * @returns {Array<Event>}\n * Changed events.\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Array<Resolver>} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @import {\n * Construct,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factorySpace } from 'micromark-factory-space';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n};\n\n/** @type {Construct} */\nconst titleBefore = {\n partial: true,\n tokenize: tokenizeTitleBefore\n};\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this;\n /** @type {string} */\n let identifier;\n return start;\n\n /**\n * At start of a definition.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Do not interrupt paragraphs (but do follow definitions).\n // To do: do `interrupt` the way `markdown-rs` does.\n // To do: parse whitespace the way `markdown-rs` does.\n effects.enter(\"definition\");\n return before(code);\n }\n\n /**\n * After optional whitespace, at `[`.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n // To do: parse whitespace the way `markdown-rs` does.\n\n return factoryLabel.call(self, effects, labelAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok, \"definitionLabel\", \"definitionLabelMarker\", \"definitionLabelString\")(code);\n }\n\n /**\n * After label.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n identifier = normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1));\n if (code === 58) {\n effects.enter(\"definitionMarker\");\n effects.consume(code);\n effects.exit(\"definitionMarker\");\n return markerAfter;\n }\n return nok(code);\n }\n\n /**\n * After marker.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function markerAfter(code) {\n // Note: whitespace is optional.\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, destinationBefore)(code) : destinationBefore(code);\n }\n\n /**\n * Before destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationBefore(code) {\n return factoryDestination(effects, destinationAfter,\n // Note: we don’t need to reset the way `markdown-rs` does.\n nok, \"definitionDestination\", \"definitionDestinationLiteral\", \"definitionDestinationLiteralMarker\", \"definitionDestinationRaw\", \"definitionDestinationString\")(code);\n }\n\n /**\n * After destination.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function destinationAfter(code) {\n return effects.attempt(titleBefore, after, after)(code);\n }\n\n /**\n * After definition.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return markdownSpace(code) ? factorySpace(effects, afterWhitespace, \"whitespace\")(code) : afterWhitespace(code);\n }\n\n /**\n * After definition, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function afterWhitespace(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"definition\");\n\n // Note: we don’t care about uniqueness.\n // It’s likely that that doesn’t happen very frequently.\n // It is more likely that it wastes precious time.\n self.parser.defined.push(identifier);\n\n // To do: `markdown-rs` interrupt.\n // // You’d be interrupting.\n // tokenizer.interrupt = true\n return ok(code);\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeTitleBefore(effects, ok, nok) {\n return titleBefore;\n\n /**\n * After destination, at whitespace.\n *\n * ```markdown\n * > | [a]: b\n * ^\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, beforeMarker)(code) : nok(code);\n }\n\n /**\n * At title.\n *\n * ```markdown\n * | [a]: b\n * > | \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeMarker(code) {\n return factoryTitle(effects, titleAfter, nok, \"definitionTitle\", \"definitionTitleMarker\", \"definitionTitleString\")(code);\n }\n\n /**\n * After title.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfter(code) {\n return markdownSpace(code) ? factorySpace(effects, titleAfterOptionalWhitespace, \"whitespace\")(code) : titleAfterOptionalWhitespace(code);\n }\n\n /**\n * After title, after optional whitespace.\n *\n * ```markdown\n * > | [a]: b \"c\"\n * ^\n * ```\n *\n * @type {State}\n */\n function titleAfterOptionalWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { asciiAlphanumeric, asciiAlpha, markdownLineEndingOrSpace, markdownLineEnding, markdownSpace } from 'micromark-util-character';\nimport { htmlBlockNames, htmlRawNames } from 'micromark-util-html-tag-name';\nimport { blankLine } from './blank-line.js';\nimport { nonLazyContinuation } from './partial-non-lazy-continuation.js';\n\n/** @type {Construct} */\nexport const htmlFlow = {\n concrete: true,\n name: 'htmlFlow',\n resolveTo: resolveToHtmlFlow,\n tokenize: tokenizeHtmlFlow\n};\n\n/** @type {Construct} */\nconst blankLineBefore = {\n partial: true,\n tokenize: tokenizeBlankLineBefore\n};\n\n/** @type {Resolver} */\nfunction resolveToHtmlFlow(events) {\n let index = events.length;\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === \"htmlFlow\") {\n break;\n }\n }\n if (index > 1 && events[index - 2][1].type === \"linePrefix\") {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start;\n // Add the prefix start to the HTML line token.\n events[index + 1][1].start = events[index - 2][1].start;\n // Remove the line prefix.\n events.splice(index - 2, 2);\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this;\n /** @type {number} */\n let marker;\n /** @type {boolean} */\n let closingTag;\n /** @type {string} */\n let buffer;\n /** @type {number} */\n let index;\n /** @type {Code} */\n let markerB;\n return start;\n\n /**\n * Start of HTML (flow).\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse indent like `markdown-rs`.\n return before(code);\n }\n\n /**\n * At `<`, after optional whitespace.\n *\n * ```markdown\n * > | <x />\n * ^\n * ```\n *\n * @type {State}\n */\n function before(code) {\n effects.enter(\"htmlFlow\");\n effects.enter(\"htmlFlowData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | <x />\n * ^\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n closingTag = true;\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n marker = 3;\n // To do:\n // tokenizer.concrete = true\n // To do: use `markdown-rs` style interrupt.\n // While we’re in an instruction instead of a declaration, we’re on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n // Always the case.\n effects.consume(code);\n buffer = String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n\n /**\n * After `<!`, at declaration, comment, or CDATA.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * > | <!--xxx-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n marker = 2;\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n marker = 5;\n index = 0;\n return cdataOpenInside;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n marker = 4;\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n return nok(code);\n }\n\n /**\n * After `<!-`, inside a comment, at another `-`.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuationDeclarationInside;\n }\n return nok(code);\n }\n\n /**\n * After `<![`, inside CDATA, expecting `CDATA[`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n if (index === value.length) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation;\n }\n return cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * After `</`, in closing tag, at tag name.\n *\n * ```markdown\n * > | </x>\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n // Always the case.\n effects.consume(code);\n buffer = String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n\n /**\n * In tag name.\n *\n * ```markdown\n * > | <ab>\n * ^^\n * > | </ab>\n * ^^\n * ```\n *\n * @type {State}\n */\n function tagName(code) {\n if (code === null || code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n const slash = code === 47;\n const name = buffer.toLowerCase();\n if (!slash && !closingTag && htmlRawNames.includes(name)) {\n marker = 1;\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code);\n }\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n marker = 6;\n if (slash) {\n effects.consume(code);\n return basicSelfClosing;\n }\n\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok(code) : continuation(code);\n }\n marker = 7;\n // Do not support complete HTML when interrupting.\n return self.interrupt && !self.parser.lazy[self.now().line] ? nok(code) : closingTag ? completeClosingTagAfter(code) : completeAttributeNameBefore(code);\n }\n\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n buffer += String.fromCharCode(code);\n return tagName;\n }\n return nok(code);\n }\n\n /**\n * After closing slash of a basic tag name.\n *\n * ```markdown\n * > | <div/>\n * ^\n * ```\n *\n * @type {State}\n */\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code);\n // // Do not form containers.\n // tokenizer.concrete = true\n return self.interrupt ? ok : continuation;\n }\n return nok(code);\n }\n\n /**\n * After closing slash of a complete tag name.\n *\n * ```markdown\n * > | <x/>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeClosingTagAfter;\n }\n return completeEnd(code);\n }\n\n /**\n * At an attribute name.\n *\n * At first, this state is used after a complete tag name, after whitespace,\n * where it expects optional attributes or the end of the tag.\n * It is also reused after attributes, when expecting more optional\n * attributes.\n *\n * ```markdown\n * > | <a />\n * ^\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * > | <a >\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code);\n return completeEnd;\n }\n\n // ASCII alphanumerical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return completeAttributeName;\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeNameBefore;\n }\n return completeEnd(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | <a :b>\n * ^\n * > | <a _b>\n * ^\n * > | <a b>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeName(code) {\n // ASCII alphanumerical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return completeAttributeName;\n }\n return completeAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, at an optional initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | <a b>\n * ^\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return completeAttributeValueBefore;\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeNameAfter;\n }\n return completeAttributeNameBefore(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n markerB = code;\n return completeAttributeValueQuoted;\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAttributeValueBefore;\n }\n return completeAttributeValueUnquoted(code);\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * > | <a b='c'>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuoted(code) {\n if (code === markerB) {\n effects.consume(code);\n markerB = null;\n return completeAttributeValueQuotedAfter;\n }\n if (code === null || markdownLineEnding(code)) {\n return nok(code);\n }\n effects.consume(code);\n return completeAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | <a b=c>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 47 || code === 60 || code === 61 || code === 62 || code === 96 || markdownLineEndingOrSpace(code)) {\n return completeAttributeNameAfter(code);\n }\n effects.consume(code);\n return completeAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the\n * end of the tag.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a complete tag where only an `>` is allowed.\n *\n * ```markdown\n * > | <a b=\"c\">\n * ^\n * ```\n *\n * @type {State}\n */\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code);\n return completeAfter;\n }\n return nok(code);\n }\n\n /**\n * After `>` in a complete tag.\n *\n * ```markdown\n * > | <x>\n * ^\n * ```\n *\n * @type {State}\n */\n function completeAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n // // Do not form containers.\n // tokenizer.concrete = true\n return continuation(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return completeAfter;\n }\n return nok(code);\n }\n\n /**\n * In continuation of any HTML kind.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuation(code) {\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationCommentInside;\n }\n if (code === 60 && marker === 1) {\n effects.consume(code);\n return continuationRawTagOpen;\n }\n if (code === 62 && marker === 4) {\n effects.consume(code);\n return continuationClose;\n }\n if (code === 63 && marker === 3) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n if (code === 93 && marker === 5) {\n effects.consume(code);\n return continuationCdataInside;\n }\n if (markdownLineEnding(code) && (marker === 6 || marker === 7)) {\n effects.exit(\"htmlFlowData\");\n return effects.check(blankLineBefore, continuationAfter, continuationStart)(code);\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationStart(code);\n }\n effects.consume(code);\n return continuation;\n }\n\n /**\n * In continuation, at eol.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStart(code) {\n return effects.check(nonLazyContinuation, continuationStartNonLazy, continuationAfter)(code);\n }\n\n /**\n * In continuation, at eol, before non-lazy content.\n *\n * ```markdown\n * > | <x>\n * ^\n * | asd\n * ```\n *\n * @type {State}\n */\n function continuationStartNonLazy(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return continuationBefore;\n }\n\n /**\n * In continuation, before non-lazy content.\n *\n * ```markdown\n * | <x>\n * > | asd\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return continuationStart(code);\n }\n effects.enter(\"htmlFlowData\");\n return continuation(code);\n }\n\n /**\n * In comment continuation, after one `-`, expecting another.\n *\n * ```markdown\n * > | <!--xxx-->\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after `<`, at `/`.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code);\n buffer = '';\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after `</`, in a raw tag name.\n *\n * ```markdown\n * > | <script>console.log(1)</script>\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase();\n if (htmlRawNames.includes(name)) {\n effects.consume(code);\n return continuationClose;\n }\n return continuation(code);\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n // Always the case.\n effects.consume(code);\n buffer += String.fromCharCode(code);\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | <!-->\n * ^\n * > | <?>\n * ^\n * > | <!q>\n * ^\n * > | <!--ab-->\n * ^\n * > | <![CDATA[>&<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code);\n return continuationClose;\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationAfter(code);\n }\n effects.consume(code);\n return continuationClose;\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | <!doctype>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit(\"htmlFlow\");\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start;\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > | <div>\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return effects.attempt(blankLine, ok, nok);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Exiter,\n * State,\n * TokenizeContext,\n * Tokenizer\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiDigit, markdownSpace } from 'micromark-util-character';\nimport { blankLine } from './blank-line.js';\nimport { thematicBreak } from './thematic-break.js';\n\n/** @type {Construct} */\nexport const list = {\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd,\n name: 'list',\n tokenize: tokenizeListStart\n};\n\n/** @type {Construct} */\nconst listItemPrefixWhitespaceConstruct = {\n partial: true,\n tokenize: tokenizeListItemPrefixWhitespace\n};\n\n/** @type {Construct} */\nconst indentConstruct = {\n partial: true,\n tokenize: tokenizeIndent\n};\n\n// To do: `markdown-rs` parses list items on their own and later stitches them\n// together.\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this;\n const tail = self.events[self.events.length - 1];\n let initialSize = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n const kind = self.containerState.type || (code === 42 || code === 43 || code === 45 ? \"listUnordered\" : \"listOrdered\");\n if (kind === \"listUnordered\" ? !self.containerState.marker || code === self.containerState.marker : asciiDigit(code)) {\n if (!self.containerState.type) {\n self.containerState.type = kind;\n effects.enter(kind, {\n _container: true\n });\n }\n if (kind === \"listUnordered\") {\n effects.enter(\"listItemPrefix\");\n return code === 42 || code === 45 ? effects.check(thematicBreak, nok, atMarker)(code) : atMarker(code);\n }\n if (!self.interrupt || code === 49) {\n effects.enter(\"listItemPrefix\");\n effects.enter(\"listItemValue\");\n return inside(code);\n }\n }\n return nok(code);\n }\n\n /** @type {State} */\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code);\n return inside;\n }\n if ((!self.interrupt || size < 2) && (self.containerState.marker ? code === self.containerState.marker : code === 41 || code === 46)) {\n effects.exit(\"listItemValue\");\n return atMarker(code);\n }\n return nok(code);\n }\n\n /**\n * @type {State}\n **/\n function atMarker(code) {\n effects.enter(\"listItemMarker\");\n effects.consume(code);\n effects.exit(\"listItemMarker\");\n self.containerState.marker = self.containerState.marker || code;\n return effects.check(blankLine,\n // Can’t be empty when interrupting.\n self.interrupt ? nok : onBlank, effects.attempt(listItemPrefixWhitespaceConstruct, endOfPrefix, otherPrefix));\n }\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.initialBlankLine = true;\n initialSize++;\n return endOfPrefix(code);\n }\n\n /** @type {State} */\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter(\"listItemPrefixWhitespace\");\n effects.consume(code);\n effects.exit(\"listItemPrefixWhitespace\");\n return endOfPrefix;\n }\n return nok(code);\n }\n\n /** @type {State} */\n function endOfPrefix(code) {\n self.containerState.size = initialSize + self.sliceSerialize(effects.exit(\"listItemPrefix\"), true).length;\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this;\n self.containerState._closeFlow = undefined;\n return effects.check(blankLine, onBlank, notBlank);\n\n /** @type {State} */\n function onBlank(code) {\n self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || self.containerState.initialBlankLine;\n\n // We have a blank line.\n // Still, try to consume at most the items size.\n return factorySpace(effects, ok, \"listItemIndent\", self.containerState.size + 1)(code);\n }\n\n /** @type {State} */\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return notInCurrentItem(code);\n }\n self.containerState.furtherBlankLines = undefined;\n self.containerState.initialBlankLine = undefined;\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code);\n }\n\n /** @type {State} */\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true;\n // As we’re closing flow, we’re no longer interrupting.\n self.interrupt = undefined;\n // Always populated by defaults.\n\n return factorySpace(effects, effects.attempt(list, ok, nok), \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this;\n return factorySpace(effects, afterPrefix, \"listItemIndent\", self.containerState.size + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return tail && tail[1].type === \"listItemIndent\" && tail[2].sliceSerialize(tail[1], true).length === self.containerState.size ? ok(code) : nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Exiter}\n */\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type);\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this;\n\n // Always populated by defaults.\n\n return factorySpace(effects, afterPrefix, \"listItemPrefixWhitespace\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4 + 1);\n\n /** @type {State} */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1];\n return !markdownSpace(code) && tail && tail[1].type === \"listItemPrefixWhitespace\" ? ok(code) : nok(code);\n }\n}","/**\n * @import {Element} from 'hast'\n * @import {Html} from 'mdast'\n * @import {State} from '../state.js'\n * @import {Raw} from '../../index.js'\n */\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n * Info passed around.\n * @param {Html} node\n * mdast node.\n * @returns {Element | Raw | undefined}\n * hast node.\n */\nexport function html(state, node) {\n if (state.options.allowDangerousHtml) {\n /** @type {Raw} */\n const result = {type: 'raw', value: node.value}\n state.patch(node, result)\n return state.applyData(node, result)\n }\n\n return undefined\n}\n","/**\n * @import {Element, Properties} from 'hast'\n * @import {Link} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Link} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function link(state, node) {\n /** @type {Properties} */\n const properties = {href: normalizeUri(node.url)}\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ListItem, Parents} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array<ElementContent>} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: <https://github.com/sindresorhus/github-markdown-css>.\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === null || spread === undefined\n ? node.children.length > 1\n : spread\n}\n","/**\n * @import {\n * Construct,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { subtokenize } from 'micromark-util-subtokenize';\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n resolve: resolveContent,\n tokenize: tokenizeContent\n};\n\n/** @type {Construct} */\nconst continuationConstruct = {\n partial: true,\n tokenize: tokenizeContinuation\n};\n\n/**\n * Content is transparent: it’s parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\nfunction resolveContent(events) {\n subtokenize(events);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeContent(effects, ok) {\n /** @type {Token | undefined} */\n let previous;\n return chunkStart;\n\n /**\n * Before a content chunk.\n *\n * ```markdown\n * > | abc\n * ^\n * ```\n *\n * @type {State}\n */\n function chunkStart(code) {\n effects.enter(\"content\");\n previous = effects.enter(\"chunkContent\", {\n contentType: \"content\"\n });\n return chunkInside(code);\n }\n\n /**\n * In a content chunk.\n *\n * ```markdown\n * > | abc\n * ^^^\n * ```\n *\n * @type {State}\n */\n function chunkInside(code) {\n if (code === null) {\n return contentEnd(code);\n }\n\n // To do: in `markdown-rs`, each line is parsed on its own, and everything\n // is stitched together resolving.\n if (markdownLineEnding(code)) {\n return effects.check(continuationConstruct, contentContinue, contentEnd)(code);\n }\n\n // Data.\n effects.consume(code);\n return chunkInside;\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentEnd(code) {\n effects.exit(\"chunkContent\");\n effects.exit(\"content\");\n return ok(code);\n }\n\n /**\n *\n *\n * @type {State}\n */\n function contentContinue(code) {\n effects.consume(code);\n effects.exit(\"chunkContent\");\n previous.next = effects.enter(\"chunkContent\", {\n contentType: \"content\",\n previous\n });\n previous = previous.next;\n return chunkInside;\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this;\n return startLookahead;\n\n /**\n *\n *\n * @type {State}\n */\n function startLookahead(code) {\n effects.exit(\"chunkContent\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, prefixed, \"linePrefix\");\n }\n\n /**\n *\n *\n * @type {State}\n */\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code);\n }\n\n // Always populated by defaults.\n\n const tail = self.events[self.events.length - 1];\n if (!self.parser.constructs.disable.null.includes('codeIndented') && tail && tail[1].type === \"linePrefix\" && tail[2].sliceSerialize(tail[1], true).length >= 4) {\n return ok(code);\n }\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code);\n }\n}","/**\n * @import {\n * Code,\n * Construct,\n * Event,\n * Point,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { push, splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n resolveAll: resolveAllAttention,\n tokenize: tokenizeAttention\n};\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n// eslint-disable-next-line complexity\nfunction resolveAllAttention(events, context) {\n let index = -1;\n /** @type {Array<Event>} */\n let nextEvents;\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (events[index][0] === 'enter' && events[index][1].type === 'attentionSequence' && events[index][1]._close) {\n let open = index;\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (events[open][0] === 'exit' && events[open][1].type === 'attentionSequence' && events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {\n continue;\n }\n\n // Number of markers to use from the sequence.\n const use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;\n const start = {\n ...events[open][1].end\n };\n const end = {\n ...events[index][1].start\n };\n movePoint(start, -use);\n movePoint(end, use);\n const openingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start,\n end: {\n ...events[open][1].end\n }\n };\n const closingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: {\n ...events[index][1].start\n },\n end\n };\n const text = {\n type: use > 1 ? \"strongText\" : \"emphasisText\",\n start: {\n ...events[open][1].end\n },\n end: {\n ...events[index][1].start\n }\n };\n const group = {\n type: use > 1 ? \"strong\" : \"emphasis\",\n start: {\n ...openingSequence.start\n },\n end: {\n ...closingSequence.end\n }\n };\n events[open][1].end = {\n ...openingSequence.start\n };\n events[index][1].start = {\n ...closingSequence.end\n };\n nextEvents = [];\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [['enter', events[open][1], context], ['exit', events[open][1], context]]);\n }\n\n // Opening.\n nextEvents = push(nextEvents, [['enter', group, context], ['enter', openingSequence, context], ['exit', openingSequence, context], ['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(nextEvents, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context));\n\n // Closing.\n nextEvents = push(nextEvents, [['exit', text, context], ['enter', closingSequence, context], ['exit', closingSequence, context], ['exit', group, context]]);\n\n /** @type {number} */\n let offset = 0;\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2;\n nextEvents = push(nextEvents, [['enter', events[index][1], context], ['exit', events[index][1], context]]);\n }\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - offset - 2;\n break;\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data';\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null;\n const previous = this.previous;\n const before = classifyCharacter(previous);\n\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code;\n effects.enter('attentionSequence');\n return inside(code);\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n const token = effects.exit('attentionSequence');\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code);\n\n // Always populated by defaults.\n\n // Note: `*` and `_` are in `attentionMarkers` through core.\n // They are excluded here as the loosening is meant for markers registered\n // by *other* constructs (such as GFM strikethrough’s `~`).\n const open = !after || after === 2 && before || attentionMarkers.includes(code) && code !== 42 && code !== 95;\n const close = !before || before === 2 && after || attentionMarkers.includes(previous) && previous !== 42 && previous !== 95;\n token._open = Boolean(marker === 42 ? open : open && (before || !close));\n token._close = Boolean(marker === 42 ? close : close && (after || !open));\n return ok(code);\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * Point.\n * @param {number} offset\n * Amount to move.\n * @returns {undefined}\n * Nothing.\n */\nfunction movePoint(point, offset) {\n point.column += offset;\n point.offset += offset;\n point._bufferIndex += offset;\n}","/**\n * @import {Element, Properties} from 'hast'\n * @import {Image} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Image} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function image(state, node) {\n /** @type {Properties} */\n const properties = {src: normalizeUri(node.url)}\n\n if (node.alt !== null && node.alt !== undefined) {\n properties.alt = node.alt\n }\n\n if (node.title !== null && node.title !== undefined) {\n properties.title = node.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element} from 'hast'\n * @import {FootnoteReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {FootnoteReference} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function footnoteReference(state, node) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const id = String(node.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n const index = state.footnoteOrder.indexOf(id)\n /** @type {number} */\n let counter\n\n let reuseCounter = state.footnoteCounts.get(id)\n\n if (reuseCounter === undefined) {\n reuseCounter = 0\n state.footnoteOrder.push(id)\n counter = state.footnoteOrder.length\n } else {\n counter = index + 1\n }\n\n reuseCounter += 1\n state.footnoteCounts.set(id, reuseCounter)\n\n /** @type {Element} */\n const link = {\n type: 'element',\n tagName: 'a',\n properties: {\n href: '#' + clobberPrefix + 'fn-' + safeId,\n id:\n clobberPrefix +\n 'fnref-' +\n safeId +\n (reuseCounter > 1 ? '-' + reuseCounter : ''),\n dataFootnoteRef: true,\n ariaDescribedBy: ['footnote-label']\n },\n children: [{type: 'text', value: String(counter)}]\n }\n state.patch(node, link)\n\n /** @type {Element} */\n const sup = {\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [link]\n }\n state.patch(node, sup)\n return state.applyData(node, sup)\n}\n","/**\n * @import {Element as HastElement, Text as HastText} from 'hast'\n * @import {Text as MdastText} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastText} node\n * mdast node.\n * @returns {HastElement | HastText}\n * hast node.\n */\nexport function text(state, node) {\n /** @type {HastText} */\n const result = {type: 'text', value: trimLines(String(node.value))}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Table} from 'mdast'\n * @import {Element} from 'hast'\n * @import {State} from '../state.js'\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Table} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function table(state, node) {\n const rows = state.all(node)\n const firstRow = rows.shift()\n /** @type {Array<Element>} */\n const tableContent = []\n\n if (firstRow) {\n /** @type {Element} */\n const head = {\n type: 'element',\n tagName: 'thead',\n properties: {},\n children: state.wrap([firstRow], true)\n }\n state.patch(node.children[0], head)\n tableContent.push(head)\n }\n\n if (rows.length > 0) {\n /** @type {Element} */\n const body = {\n type: 'element',\n tagName: 'tbody',\n properties: {},\n children: state.wrap(rows, true)\n }\n\n const start = pointStart(node.children[1])\n const end = pointEnd(node.children[node.children.length - 1])\n if (start && end) body.position = {start, end}\n tableContent.push(body)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'table',\n properties: {},\n children: state.wrap(tableContent, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Element, ElementContent, Properties} from 'hast'\n * @import {Parents, TableRow} from 'mdast'\n * @import {State} from '../state.js'\n */\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {TableRow} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function tableRow(state, node, parent) {\n const siblings = parent ? parent.children : undefined\n // Generate a body row when without parent.\n const rowIndex = siblings ? siblings.indexOf(node) : 1\n const tagName = rowIndex === 0 ? 'th' : 'td'\n // To do: option to use `style`?\n const align = parent && parent.type === 'table' ? parent.align : undefined\n const length = align ? align.length : node.children.length\n let cellIndex = -1\n /** @type {Array<ElementContent>} */\n const cells = []\n\n while (++cellIndex < length) {\n // Note: can also be undefined.\n const cell = node.children[cellIndex]\n /** @type {Properties} */\n const properties = {}\n const alignValue = align ? align[cellIndex] : undefined\n\n if (alignValue) {\n properties.align = alignValue\n }\n\n /** @type {Element} */\n let result = {type: 'element', tagName, properties, children: []}\n\n if (cell) {\n result.children = state.all(cell)\n state.patch(cell, result)\n result = state.applyData(cell, result)\n }\n\n cells.push(result)\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'tr',\n properties: {},\n children: state.wrap(cells, true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Chunk, Event, Token} from 'micromark-util-types'\n */\n\nimport { splice } from 'micromark-util-chunked';\nimport { SpliceBuffer } from './lib/splice-buffer.js';\n\n// Hidden API exposed for testing.\nexport { SpliceBuffer } from './lib/splice-buffer.js';\n\n/**\n * Tokenize subcontent.\n *\n * @param {Array<Event>} eventsArray\n * List of events.\n * @returns {boolean}\n * Whether subtokens were found.\n */\n// eslint-disable-next-line complexity\nexport function subtokenize(eventsArray) {\n /** @type {Record<string, number>} */\n const jumps = {};\n let index = -1;\n /** @type {Event} */\n let event;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number} */\n let otherIndex;\n /** @type {Event} */\n let otherEvent;\n /** @type {Array<Event>} */\n let parameters;\n /** @type {Array<Event>} */\n let subevents;\n /** @type {boolean | undefined} */\n let more;\n const events = new SpliceBuffer(eventsArray);\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index];\n }\n event = events.get(index);\n\n // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n if (index && event[1].type === \"chunkFlow\" && events.get(index - 1)[1].type === \"listItemPrefix\") {\n subevents = event[1]._tokenizer.events;\n otherIndex = 0;\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"lineEndingBlank\") {\n otherIndex += 2;\n }\n if (otherIndex < subevents.length && subevents[otherIndex][1].type === \"content\") {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === \"content\") {\n break;\n }\n if (subevents[otherIndex][1].type === \"chunkText\") {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true;\n otherIndex++;\n }\n }\n }\n }\n\n // Enter.\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index));\n index = jumps[index];\n more = true;\n }\n }\n // Exit.\n else if (event[1]._container) {\n otherIndex = index;\n lineIndex = undefined;\n while (otherIndex--) {\n otherEvent = events.get(otherIndex);\n if (otherEvent[1].type === \"lineEnding\" || otherEvent[1].type === \"lineEndingBlank\") {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events.get(lineIndex)[1].type = \"lineEndingBlank\";\n }\n otherEvent[1].type = \"lineEnding\";\n lineIndex = otherIndex;\n }\n } else if (otherEvent[1].type === \"linePrefix\" || otherEvent[1].type === \"listItemIndent\") {\n // Move past.\n } else {\n break;\n }\n }\n if (lineIndex) {\n // Fix position.\n event[1].end = {\n ...events.get(lineIndex)[1].start\n };\n\n // Switch container exit w/ line endings.\n parameters = events.slice(lineIndex, index);\n parameters.unshift(event);\n events.splice(lineIndex, index - lineIndex + 1, parameters);\n }\n }\n }\n\n // The changes to the `events` buffer must be copied back into the eventsArray\n splice(eventsArray, 0, Number.POSITIVE_INFINITY, events.slice(0));\n return !more;\n}\n\n/**\n * Tokenize embedded tokens.\n *\n * @param {SpliceBuffer<Event>} events\n * Events.\n * @param {number} eventIndex\n * Index.\n * @returns {Record<string, number>}\n * Gaps.\n */\nfunction subcontent(events, eventIndex) {\n const token = events.get(eventIndex)[1];\n const context = events.get(eventIndex)[2];\n let startPosition = eventIndex - 1;\n /** @type {Array<number>} */\n const startPositions = [];\n let tokenizer = token._tokenizer;\n if (!tokenizer) {\n tokenizer = context.parser[token.contentType](token.start);\n if (token._contentTypeTextTrailing) {\n tokenizer._contentTypeTextTrailing = true;\n }\n }\n const childEvents = tokenizer.events;\n /** @type {Array<[number, number]>} */\n const jumps = [];\n /** @type {Record<string, number>} */\n const gaps = {};\n /** @type {Array<Chunk>} */\n let stream;\n /** @type {Token | undefined} */\n let previous;\n let index = -1;\n /** @type {Token | undefined} */\n let current = token;\n let adjust = 0;\n let start = 0;\n const breaks = [start];\n\n // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n while (current) {\n // Find the position of the event for this token.\n while (events.get(++startPosition)[1] !== current) {\n // Empty.\n }\n startPositions.push(startPosition);\n if (!current._tokenizer) {\n stream = context.sliceStream(current);\n if (!current.next) {\n stream.push(null);\n }\n if (previous) {\n tokenizer.defineSkip(current.start);\n }\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true;\n }\n tokenizer.write(stream);\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined;\n }\n }\n\n // Unravel the next token.\n previous = current;\n current = current.next;\n }\n\n // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n current = token;\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' && childEvents[index - 1][0] === 'enter' && childEvents[index][1].type === childEvents[index - 1][1].type && childEvents[index][1].start.line !== childEvents[index][1].end.line) {\n start = index + 1;\n breaks.push(start);\n // Help GC.\n current._tokenizer = undefined;\n current.previous = undefined;\n current = current.next;\n }\n }\n\n // Help GC.\n tokenizer.events = [];\n\n // If there’s one more token (which is the cases for lines that end in an\n // EOF), that’s perfect: the last point we found starts it.\n // If there isn’t then make sure any remaining content is added to it.\n if (current) {\n // Help GC.\n current._tokenizer = undefined;\n current.previous = undefined;\n } else {\n breaks.pop();\n }\n\n // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices aren’t affected.\n index = breaks.length;\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1]);\n const start = startPositions.pop();\n jumps.push([start, start + slice.length - 1]);\n events.splice(start, 2, slice);\n }\n jumps.reverse();\n index = -1;\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1];\n adjust += jumps[index][1] - jumps[index][0] - 1;\n }\n return gaps;\n}","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {ImageReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ImageReference} node\n * mdast node.\n * @returns {Array<ElementContent> | ElementContent}\n * hast node.\n */\nexport function imageReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const definition = state.definitionById.get(id)\n\n if (!definition) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {src: normalizeUri(definition.url || ''), alt: node.alt}\n\n if (definition.title !== null && definition.title !== undefined) {\n properties.title = definition.title\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'img', properties, children: []}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * Normalize an identifier (as found in references, definitions).\n *\n * Collapses markdown whitespace, trim, and then lower- and uppercase.\n *\n * Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their\n * lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different\n * uppercase character (U+0398 (`Θ`)).\n * So, to get a canonical form, we perform both lower- and uppercase.\n *\n * Using uppercase last makes sure keys will never interact with default\n * prototypal values (such as `constructor`): nothing in the prototype of\n * `Object` is uppercase.\n *\n * @param {string} value\n * Identifier to normalize.\n * @returns {string}\n * Normalized identifier.\n */\nexport function normalizeIdentifier(value) {\n return value\n // Collapse markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, \" \")\n // Trim.\n .replace(/^ | $/g, '')\n // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase().toUpperCase();\n}","/**\n * @import {ElementContent, Element, Properties} from 'hast'\n * @import {LinkReference} from 'mdast'\n * @import {State} from '../state.js'\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {LinkReference} node\n * mdast node.\n * @returns {Array<ElementContent> | ElementContent}\n * hast node.\n */\nexport function linkReference(state, node) {\n const id = String(node.identifier).toUpperCase()\n const definition = state.definitionById.get(id)\n\n if (!definition) {\n return revert(state, node)\n }\n\n /** @type {Properties} */\n const properties = {href: normalizeUri(definition.url || '')}\n\n if (definition.title !== null && definition.title !== undefined) {\n properties.title = definition.title\n }\n\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'a',\n properties,\n children: state.all(node)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @import {Code} from 'micromark-util-types'\n */\n\nimport { markdownLineEndingOrSpace, unicodePunctuation, unicodeWhitespace } from 'micromark-util-character';\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {\n return 1;\n }\n if (unicodePunctuation(code)) {\n return 2;\n }\n}","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: <https://github.com/nodejs/node/blob/6a3403c/lib/internal/url.js#L720>\nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","/**\n * @import {Identifier, Literal, MemberExpression} from 'estree'\n * @import {Jsx, JsxDev, Options, Props} from 'hast-util-to-jsx-runtime'\n * @import {Element, Nodes, Parents, Root, Text} from 'hast'\n * @import {MdxFlowExpressionHast, MdxTextExpressionHast} from 'mdast-util-mdx-expression'\n * @import {MdxJsxFlowElementHast, MdxJsxTextElementHast} from 'mdast-util-mdx-jsx'\n * @import {MdxjsEsmHast} from 'mdast-util-mdxjs-esm'\n * @import {Position} from 'unist'\n * @import {Child, Create, Field, JsxElement, State, Style} from './types.js'\n */\n\nimport {stringify as commas} from 'comma-separated-tokens'\nimport {ok as assert} from 'devlop'\nimport {name as isIdentifierName} from 'estree-util-is-identifier-name'\nimport {whitespace} from 'hast-util-whitespace'\nimport {find, hastToReact, html, svg} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport styleToObject from 'style-to-object'\nimport {pointStart} from 'unist-util-position'\nimport {VFileMessage} from 'vfile-message'\n\n// To do: next major: `Object.hasOwn`.\nconst own = {}.hasOwnProperty\n\n/** @type {Map<string, number>} */\nconst emptyMap = new Map()\n\nconst cap = /[A-Z]/g\nconst dashLetter = /-([a-z])/g\n\n// `react-dom` triggers a warning for *any* white space in tables.\n// To follow GFM, `mdast-util-to-hast` injects line endings between elements.\n// Other tools might do so too, but they don’t do here, so we remove all of\n// that.\n\n// See: <https://github.com/facebook/react/pull/7081>.\n// See: <https://github.com/facebook/react/pull/7515>.\n// See: <https://github.com/remarkjs/remark-react/issues/64>.\n// See: <https://github.com/rehypejs/rehype-react/pull/29>.\n// See: <https://github.com/rehypejs/rehype-react/pull/32>.\n// See: <https://github.com/rehypejs/rehype-react/pull/45>.\nconst tableElements = new Set(['table', 'tbody', 'thead', 'tfoot', 'tr'])\n\nconst tableCellElement = new Set(['td', 'th'])\n\nconst docs = 'https://github.com/syntax-tree/hast-util-to-jsx-runtime'\n\n/**\n * Transform a hast tree to preact, react, solid, svelte, vue, etc.,\n * with an automatic JSX runtime.\n *\n * @param {Nodes} tree\n * Tree to transform.\n * @param {Options} options\n * Configuration (required).\n * @returns {JsxElement}\n * JSX element.\n */\n\nexport function toJsxRuntime(tree, options) {\n if (!options || options.Fragment === undefined) {\n throw new TypeError('Expected `Fragment` in options')\n }\n\n const filePath = options.filePath || undefined\n /** @type {Create} */\n let create\n\n if (options.development) {\n if (typeof options.jsxDEV !== 'function') {\n throw new TypeError(\n 'Expected `jsxDEV` in options when `development: true`'\n )\n }\n\n create = developmentCreate(filePath, options.jsxDEV)\n } else {\n if (typeof options.jsx !== 'function') {\n throw new TypeError('Expected `jsx` in production options')\n }\n\n if (typeof options.jsxs !== 'function') {\n throw new TypeError('Expected `jsxs` in production options')\n }\n\n create = productionCreate(filePath, options.jsx, options.jsxs)\n }\n\n /** @type {State} */\n const state = {\n Fragment: options.Fragment,\n ancestors: [],\n components: options.components || {},\n create,\n elementAttributeNameCase: options.elementAttributeNameCase || 'react',\n evaluater: options.createEvaluater ? options.createEvaluater() : undefined,\n filePath,\n ignoreInvalidStyle: options.ignoreInvalidStyle || false,\n passKeys: options.passKeys !== false,\n passNode: options.passNode || false,\n schema: options.space === 'svg' ? svg : html,\n stylePropertyNameCase: options.stylePropertyNameCase || 'dom',\n tableCellAlignToStyle: options.tableCellAlignToStyle !== false\n }\n\n const result = one(state, tree, undefined)\n\n // JSX element.\n if (result && typeof result !== 'string') {\n return result\n }\n\n // Text node or something that turned into nothing.\n return state.create(\n tree,\n state.Fragment,\n {children: result || undefined},\n undefined\n )\n}\n\n/**\n * Transform a node.\n *\n * @param {State} state\n * Info passed around.\n * @param {Nodes} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction one(state, node, key) {\n if (node.type === 'element') {\n return element(state, node, key)\n }\n\n if (node.type === 'mdxFlowExpression' || node.type === 'mdxTextExpression') {\n return mdxExpression(state, node)\n }\n\n if (node.type === 'mdxJsxFlowElement' || node.type === 'mdxJsxTextElement') {\n return mdxJsxElement(state, node, key)\n }\n\n if (node.type === 'mdxjsEsm') {\n return mdxEsm(state, node)\n }\n\n if (node.type === 'root') {\n return root(state, node, key)\n }\n\n if (node.type === 'text') {\n return text(state, node)\n }\n}\n\n/**\n * Handle element.\n *\n * @param {State} state\n * Info passed around.\n * @param {Element} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction element(state, node, key) {\n const parentSchema = state.schema\n let schema = parentSchema\n\n if (node.tagName.toLowerCase() === 'svg' && parentSchema.space === 'html') {\n schema = svg\n state.schema = schema\n }\n\n state.ancestors.push(node)\n\n const type = findComponentFromName(state, node.tagName, false)\n const props = createElementProps(state, node)\n let children = createChildren(state, node)\n\n if (tableElements.has(node.tagName)) {\n children = children.filter(function (child) {\n return typeof child === 'string' ? !whitespace(child) : true\n })\n }\n\n addNode(state, props, type, node)\n addChildren(props, children)\n\n // Restore.\n state.ancestors.pop()\n state.schema = parentSchema\n\n return state.create(node, type, props, key)\n}\n\n/**\n * Handle MDX expression.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxFlowExpressionHast | MdxTextExpressionHast} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction mdxExpression(state, node) {\n if (node.data && node.data.estree && state.evaluater) {\n const program = node.data.estree\n const expression = program.body[0]\n assert(expression.type === 'ExpressionStatement')\n\n // Assume result is a child.\n return /** @type {Child | undefined} */ (\n state.evaluater.evaluateExpression(expression.expression)\n )\n }\n\n crashEstree(state, node.position)\n}\n\n/**\n * Handle MDX ESM.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxjsEsmHast} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction mdxEsm(state, node) {\n if (node.data && node.data.estree && state.evaluater) {\n // Assume result is a child.\n return /** @type {Child | undefined} */ (\n state.evaluater.evaluateProgram(node.data.estree)\n )\n }\n\n crashEstree(state, node.position)\n}\n\n/**\n * Handle MDX JSX.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxJsxFlowElementHast | MdxJsxTextElementHast} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction mdxJsxElement(state, node, key) {\n const parentSchema = state.schema\n let schema = parentSchema\n\n if (node.name === 'svg' && parentSchema.space === 'html') {\n schema = svg\n state.schema = schema\n }\n\n state.ancestors.push(node)\n\n const type =\n node.name === null\n ? state.Fragment\n : findComponentFromName(state, node.name, true)\n const props = createJsxElementProps(state, node)\n const children = createChildren(state, node)\n\n addNode(state, props, type, node)\n addChildren(props, children)\n\n // Restore.\n state.ancestors.pop()\n state.schema = parentSchema\n\n return state.create(node, type, props, key)\n}\n\n/**\n * Handle root.\n *\n * @param {State} state\n * Info passed around.\n * @param {Root} node\n * Current node.\n * @param {string | undefined} key\n * Key.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction root(state, node, key) {\n /** @type {Props} */\n const props = {}\n\n addChildren(props, createChildren(state, node))\n\n return state.create(node, state.Fragment, props, key)\n}\n\n/**\n * Handle text.\n *\n * @param {State} _\n * Info passed around.\n * @param {Text} node\n * Current node.\n * @returns {Child | undefined}\n * Child, optional.\n */\nfunction text(_, node) {\n return node.value\n}\n\n/**\n * Add `node` to props.\n *\n * @param {State} state\n * Info passed around.\n * @param {Props} props\n * Props.\n * @param {unknown} type\n * Type.\n * @param {Element | MdxJsxFlowElementHast | MdxJsxTextElementHast} node\n * Node.\n * @returns {undefined}\n * Nothing.\n */\nfunction addNode(state, props, type, node) {\n // If this is swapped out for a component:\n if (typeof type !== 'string' && type !== state.Fragment && state.passNode) {\n props.node = node\n }\n}\n\n/**\n * Add children to props.\n *\n * @param {Props} props\n * Props.\n * @param {Array<Child>} children\n * Children.\n * @returns {undefined}\n * Nothing.\n */\nfunction addChildren(props, children) {\n if (children.length > 0) {\n const value = children.length > 1 ? children : children[0]\n\n if (value) {\n props.children = value\n }\n }\n}\n\n/**\n * Create a production `create` function.\n *\n * @param {string | undefined} _\n * Path to file.\n * @param {Jsx} jsx\n * Dynamic.\n * @param {Jsx} jsxs\n * Static.\n * @returns {Create}\n * Create a production element.\n */\nfunction productionCreate(_, jsx, jsxs) {\n return create\n\n /**\n * Create a production element.\n *\n * @type {Create}\n */\n function create(_, type, props, key) {\n // Only an array when there are 2 or more children.\n const isStaticChildren = Array.isArray(props.children)\n const fn = isStaticChildren ? jsxs : jsx\n return key ? fn(type, props, key) : fn(type, props)\n }\n}\n\n/**\n * Create a development `create` function.\n *\n * @param {string | undefined} filePath\n * Path to file.\n * @param {JsxDev} jsxDEV\n * Development.\n * @returns {Create}\n * Create a development element.\n */\nfunction developmentCreate(filePath, jsxDEV) {\n return create\n\n /**\n * Create a development element.\n *\n * @type {Create}\n */\n function create(node, type, props, key) {\n // Only an array when there are 2 or more children.\n const isStaticChildren = Array.isArray(props.children)\n const point = pointStart(node)\n return jsxDEV(\n type,\n props,\n key,\n isStaticChildren,\n {\n columnNumber: point ? point.column - 1 : undefined,\n fileName: filePath,\n lineNumber: point ? point.line : undefined\n },\n undefined\n )\n }\n}\n\n/**\n * Create props from an element.\n *\n * @param {State} state\n * Info passed around.\n * @param {Element} node\n * Current element.\n * @returns {Props}\n * Props.\n */\nfunction createElementProps(state, node) {\n /** @type {Props} */\n const props = {}\n /** @type {string | undefined} */\n let alignValue\n /** @type {string} */\n let prop\n\n for (prop in node.properties) {\n if (prop !== 'children' && own.call(node.properties, prop)) {\n const result = createProperty(state, prop, node.properties[prop])\n\n if (result) {\n const [key, value] = result\n\n if (\n state.tableCellAlignToStyle &&\n key === 'align' &&\n typeof value === 'string' &&\n tableCellElement.has(node.tagName)\n ) {\n alignValue = value\n } else {\n props[key] = value\n }\n }\n }\n }\n\n if (alignValue) {\n // Assume style is an object.\n const style = /** @type {Style} */ (props.style || (props.style = {}))\n style[state.stylePropertyNameCase === 'css' ? 'text-align' : 'textAlign'] =\n alignValue\n }\n\n return props\n}\n\n/**\n * Create props from a JSX element.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdxJsxFlowElementHast | MdxJsxTextElementHast} node\n * Current JSX element.\n * @returns {Props}\n * Props.\n */\nfunction createJsxElementProps(state, node) {\n /** @type {Props} */\n const props = {}\n\n for (const attribute of node.attributes) {\n if (attribute.type === 'mdxJsxExpressionAttribute') {\n if (attribute.data && attribute.data.estree && state.evaluater) {\n const program = attribute.data.estree\n const expression = program.body[0]\n assert(expression.type === 'ExpressionStatement')\n const objectExpression = expression.expression\n assert(objectExpression.type === 'ObjectExpression')\n const property = objectExpression.properties[0]\n assert(property.type === 'SpreadElement')\n\n Object.assign(\n props,\n state.evaluater.evaluateExpression(property.argument)\n )\n } else {\n crashEstree(state, node.position)\n }\n } else {\n // For JSX, the author is responsible of passing in the correct values.\n const {name} = attribute\n /** @type {unknown} */\n let value\n\n if (attribute.value && typeof attribute.value === 'object') {\n if (\n attribute.value.data &&\n attribute.value.data.estree &&\n state.evaluater\n ) {\n const program = attribute.value.data.estree\n const expression = program.body[0]\n assert(expression.type === 'ExpressionStatement')\n value = state.evaluater.evaluateExpression(expression.expression)\n } else {\n crashEstree(state, node.position)\n }\n } else {\n value = attribute.value === null ? true : attribute.value\n }\n\n // Assume a prop.\n props[name] = /** @type {Props[keyof Props]} */ (value)\n }\n }\n\n return props\n}\n\n/**\n * Create children.\n *\n * @param {State} state\n * Info passed around.\n * @param {Parents} node\n * Current element.\n * @returns {Array<Child>}\n * Children.\n */\nfunction createChildren(state, node) {\n /** @type {Array<Child>} */\n const children = []\n let index = -1\n /** @type {Map<string, number>} */\n // Note: test this when Solid doesn’t want to merge my upcoming PR.\n /* c8 ignore next */\n const countsByName = state.passKeys ? new Map() : emptyMap\n\n while (++index < node.children.length) {\n const child = node.children[index]\n /** @type {string | undefined} */\n let key\n\n if (state.passKeys) {\n const name =\n child.type === 'element'\n ? child.tagName\n : child.type === 'mdxJsxFlowElement' ||\n child.type === 'mdxJsxTextElement'\n ? child.name\n : undefined\n\n if (name) {\n const count = countsByName.get(name) || 0\n key = name + '-' + count\n countsByName.set(name, count + 1)\n }\n }\n\n const result = one(state, child, key)\n if (result !== undefined) children.push(result)\n }\n\n return children\n}\n\n/**\n * Handle a property.\n *\n * @param {State} state\n * Info passed around.\n * @param {string} prop\n * Key.\n * @param {Array<number | string> | boolean | number | string | null | undefined} value\n * hast property value.\n * @returns {Field | undefined}\n * Field for runtime, optional.\n */\nfunction createProperty(state, prop, value) {\n // Ignore nullish and `NaN` values.\n if (\n value === null ||\n value === undefined ||\n (typeof value === 'number' && Number.isNaN(value))\n ) {\n return\n }\n\n const info = find(state.schema, prop)\n\n if (Array.isArray(value)) {\n // Accept `array`.\n // Most props are space-separated.\n value = info.commaSeparated ? commas(value) : spaces(value)\n }\n\n // React only accepts `style` as object.\n if (info.property === 'style') {\n const styleObject =\n typeof value === 'object'\n ? state.stylePropertyNameCase === 'dom'\n ? value\n : transformStylesToCssCasing(value)\n : parseStyle(state, String(value))\n\n return ['style', styleObject]\n }\n\n return [\n state.elementAttributeNameCase === 'react' && info.space\n ? hastToReact[info.property] || info.property\n : info.attribute,\n value\n ]\n}\n\n/**\n * Parse a CSS declaration to an object.\n *\n * @param {State} state\n * Info passed around.\n * @param {string} value\n * CSS declarations.\n * @returns {Style}\n * Properties.\n * @throws {VFileMessage}\n * When CSS cannot be parsed.\n */\nfunction parseStyle(state, value) {\n /** @type {Style} */\n const result = {}\n\n try {\n styleToObject(value, function (property, value) {\n if (property && value) {\n let name = property\n\n // Custom properties are case-sensitive, other properties are not.\n if (name.slice(0, 2) !== '--') {\n name = name.toLowerCase()\n\n if (state.stylePropertyNameCase === 'dom') {\n // Handle `-ms-xxx` -> `msXxx`.\n if (name.slice(0, 4) === '-ms-') name = name.slice(1)\n name = name.replace(dashLetter, toCamel)\n }\n }\n\n result[name] = value\n }\n })\n } catch (error) {\n if (state.ignoreInvalidStyle) {\n return {}\n }\n\n const cause = /** @type {Error} */ (error)\n const message = new VFileMessage('Cannot parse `style` attribute', {\n ancestors: state.ancestors,\n cause,\n ruleId: 'style',\n source: 'hast-util-to-jsx-runtime'\n })\n message.file = state.filePath || undefined\n message.url = docs + '#cannot-parse-style-attribute'\n\n throw message\n }\n\n return result\n}\n\n/**\n * Create a JSX name from a string.\n *\n * @param {State} state\n * To do.\n * @param {string} name\n * Name.\n * @param {boolean} allowExpression\n * Allow member expressions and identifiers.\n * @returns {unknown}\n * To do.\n */\nfunction findComponentFromName(state, name, allowExpression) {\n /** @type {Identifier | Literal | MemberExpression} */\n let result\n\n if (!allowExpression) {\n result = {type: 'Literal', value: name}\n } else if (name.includes('.')) {\n const identifiers = name.split('.')\n let index = -1\n /** @type {Identifier | Literal | MemberExpression | undefined} */\n let node\n\n while (++index < identifiers.length) {\n /** @type {Identifier | Literal} */\n const prop = isIdentifierName(identifiers[index])\n ? {type: 'Identifier', name: identifiers[index]}\n : {type: 'Literal', value: identifiers[index]}\n node = node\n ? {\n type: 'MemberExpression',\n object: node,\n property: prop,\n computed: Boolean(index && prop.type === 'Literal'),\n optional: false\n }\n : prop\n }\n\n assert(node, 'always a result')\n result = node\n } else {\n result =\n isIdentifierName(name) && !/^[a-z]/.test(name)\n ? {type: 'Identifier', name}\n : {type: 'Literal', value: name}\n }\n\n // Only literals can be passed in `components` currently.\n // No identifiers / member expressions.\n if (result.type === 'Literal') {\n const name = /** @type {string | number} */ (result.value)\n return own.call(state.components, name) ? state.components[name] : name\n }\n\n // Assume component.\n if (state.evaluater) {\n return state.evaluater.evaluateExpression(result)\n }\n\n crashEstree(state)\n}\n\n/**\n * Crash because MDX estrees cannot be handled without `createEvaluater`.\n *\n * @param {State} state\n * Info passed around.\n * @param {Position | undefined} [place]\n * Place of the node that cannot be handled (optional).\n * @returns {never}\n * Nothing (always throws).\n */\nfunction crashEstree(state, place) {\n const message = new VFileMessage(\n 'Cannot handle MDX estrees without `createEvaluater`',\n {\n ancestors: state.ancestors,\n place,\n ruleId: 'mdx-estree',\n source: 'hast-util-to-jsx-runtime'\n }\n )\n message.file = state.filePath || undefined\n message.url = docs + '#cannot-handle-mdx-estrees-without-createevaluater'\n\n throw message\n}\n\n/**\n * Transform a DOM casing style object to a CSS casing style object.\n *\n * @param {Style} domCasing\n * DOM casing style object.\n * @returns {Style}\n * CSS casing style object.\n */\nfunction transformStylesToCssCasing(domCasing) {\n /** @type {Style} */\n const cssCasing = {}\n /** @type {string} */\n let from\n\n for (from in domCasing) {\n if (own.call(domCasing, from)) {\n cssCasing[transformStyleToCssCasing(from)] = domCasing[from]\n }\n }\n\n return cssCasing\n}\n\n/**\n * Transform a DOM casing style field to a CSS casing style field.\n *\n * @param {string} from\n * DOM casing style field.\n * @returns {string}\n * CSS casing style field.\n */\nfunction transformStyleToCssCasing(from) {\n if (from.slice(0, 2) === '--') return from\n let to = from.replace(cap, toDash)\n // Handle `ms-xxx` -> `-ms-xxx`.\n if (to.slice(0, 3) === 'ms-') to = '-' + to\n return to\n}\n\n/**\n * Make `$0` dash cased.\n *\n * @param {string} $0\n * Capitalized ASCII leter.\n * @returns {string}\n * Dash and lower letter.\n */\nfunction toDash($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * Make `$1` camel cased.\n *\n * @param {string} _\n * Dash and lower letter.\n * @param {string} $1\n * Lower letter.\n * @returns {string}\n * Capitalized letter.\n */\nfunction toCamel(_, $1) {\n return $1.toUpperCase()\n}\n","/**\n * @import {Code} from 'micromark-util-types'\n */\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/);\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n );\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/);\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/);\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/);\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2;\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32);\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32;\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodePunctuation = regexCheck(/\\p{P}|\\p{S}/u);\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/);\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * Expression.\n * @returns {(code: Code) => boolean}\n * Check.\n */\nfunction regexCheck(regex) {\n return check;\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && code > -1 && regex.test(String.fromCharCode(code));\n }\n}","/**\n * @import {\n * Construct,\n * Event,\n * Resolver,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n resolveAll: resolveAllLabelEnd,\n resolveTo: resolveToLabelEnd,\n tokenize: tokenizeLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n /** @type {Array<Event>} */\n const newEvents = [];\n while (++index < events.length) {\n const token = events[index][1];\n newEvents.push(events[index]);\n if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n // Remove the marker.\n const offset = token.type === \"labelImage\" ? 4 : 2;\n token.type = \"data\";\n index += offset;\n }\n }\n\n // If the events are equal, we don't have to copy newEvents to events\n if (events.length !== newEvents.length) {\n splice(events, 0, events.length, newEvents);\n }\n return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n /** @type {number | undefined} */\n let open;\n /** @type {number | undefined} */\n let close;\n /** @type {Array<Event>} */\n let media;\n\n // Find an opening.\n while (index--) {\n const token = events[index][1];\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n break;\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === \"labelLink\") {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === 'enter' && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n open = index;\n if (token.type !== \"labelLink\") {\n offset = 2;\n break;\n }\n }\n } else if (token.type === \"labelEnd\") {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[events.length - 1][1].end\n }\n };\n const label = {\n type: \"label\",\n start: {\n ...events[open][1].start\n },\n end: {\n ...events[close][1].end\n }\n };\n const text = {\n type: \"labelText\",\n start: {\n ...events[open + offset + 2][1].end\n },\n end: {\n ...events[close - 2][1].start\n }\n };\n media = [['enter', group, context], ['enter', label, context]];\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3));\n\n // Text open.\n media = push(media, [['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n // Text close, marker close, label close.\n media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1));\n\n // Media close.\n media = push(media, [['exit', group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this;\n const labelStarts = self._labelStarts;\n /** @type {Token} */\n let labelStart;\n /** @type {boolean} */\n let defined;\n if (labelStarts) {\n // Discard ones that failed to close,\n // they’re not needed anymore.\n while (labelStarts.length > 0 && labelStarts[labelStarts.length - 1]._balanced) {\n labelStarts.pop();\n }\n labelStart = labelStarts[labelStarts.length - 1];\n }\n return start;\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code);\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code);\n }\n defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })));\n effects.enter(\"labelEnd\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelEnd\");\n return after;\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code);\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n // This label start is now used up: discard it so it’s never found again.\n\n labelStarts.pop();\n return ok(code);\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter(\"resource\");\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n return resourceBefore;\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code);\n }\n return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(code);\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code);\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, resourceTitleAfter, nok, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(code);\n }\n return resourceEnd(code);\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n effects.exit(\"resource\");\n return ok;\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this;\n return referenceFull;\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, \"reference\", \"referenceMarker\", \"referenceString\")(code);\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter(\"reference\");\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n return referenceCollapsedOpen;\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n effects.exit(\"reference\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser<Root>} Parser\n * @typedef {import('unified').Processor<Root>} Processor\n */\n\n/**\n * @typedef {Omit<FromMarkdownOptions, 'extensions' | 'mdastExtensions'>} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly<Options> | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","/**\n * @typedef Options\n * Configuration for `stringify`.\n * @property {boolean} [padLeft=true]\n * Whether to pad a space before a token.\n * @property {boolean} [padRight=false]\n * Whether to pad a space after a token.\n */\n\n/**\n * @typedef {Options} StringifyOptions\n * Please use `StringifyOptions` instead.\n */\n\n/**\n * Parse comma-separated tokens to an array.\n *\n * @param {string} value\n * Comma-separated tokens.\n * @returns {Array<string>}\n * List of tokens.\n */\nexport function parse(value) {\n /** @type {Array<string>} */\n const tokens = []\n const input = String(value || '')\n let index = input.indexOf(',')\n let start = 0\n /** @type {boolean} */\n let end = false\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n const token = input.slice(start, index).trim()\n\n if (token || !end) {\n tokens.push(token)\n }\n\n start = index + 1\n index = input.indexOf(',', start)\n }\n\n return tokens\n}\n\n/**\n * Serialize an array of strings or numbers to comma-separated tokens.\n *\n * @param {Array<string|number>} values\n * List of tokens.\n * @param {Options} [options]\n * Configuration for `stringify` (optional).\n * @returns {string}\n * Comma-separated tokens.\n */\nexport function stringify(values, options) {\n const settings = options || {}\n\n // Ensure the last empty entry is seen.\n const input = values[values.length - 1] === '' ? [...values, ''] : values\n\n return input\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {number} start\n * Index to remove/insert at (can be negative).\n * @param {number} remove\n * Number of items to remove.\n * @param {Array<T>} items\n * Items to inject into `list`.\n * @returns {undefined}\n * Nothing.\n */\nexport function splice(list, start, remove, items) {\n const end = list.length;\n let chunkStart = 0;\n /** @type {Array<unknown>} */\n let parameters;\n\n // Make start between zero and `end` (included).\n if (start < 0) {\n start = -start > end ? 0 : end + start;\n } else {\n start = start > end ? end : start;\n }\n remove = remove > 0 ? remove : 0;\n\n // No need to chunk the items if there’s only a couple (10k) items.\n if (items.length < 10000) {\n parameters = Array.from(items);\n parameters.unshift(start, remove);\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters);\n } else {\n // Delete `remove` items starting from `start`\n if (remove) list.splice(start, remove);\n\n // Insert the items in chunks to not cause stack overflows.\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000);\n parameters.unshift(start, 0);\n // @ts-expect-error Hush, it’s fine.\n list.splice(...parameters);\n chunkStart += 10000;\n start += 10000;\n }\n }\n}\n\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * Item type.\n * @param {Array<T>} list\n * List to operate on.\n * @param {Array<T>} items\n * Items to add to `list`.\n * @returns {Array<T>}\n * Either `list` or `items`.\n */\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items);\n return list;\n }\n return items;\n}","/**\n * @import {\n * Construct,\n * ContainerState,\n * InitialConstruct,\n * Initializer,\n * Point,\n * State,\n * TokenizeContext,\n * Tokenizer,\n * Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @typedef {[Construct, ContainerState]} StackItem\n * Construct and its state.\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { EditMap } from 'micromark-util-edit-map';\n/** @type {InitialConstruct} */\nexport const document = {\n tokenize: initializeDocument\n};\n\n/** @type {Construct} */\nconst containerConstruct = {\n tokenize: tokenizeContainer\n};\n\n/**\n * @this {TokenizeContext}\n * Self.\n * @type {Initializer}\n * Initializer.\n */\nfunction initializeDocument(effects) {\n const self = this;\n /** @type {Array<StackItem>} */\n const stack = [];\n let continued = 0;\n /** @type {TokenizeContext | undefined} */\n let childFlow;\n /** @type {Token | undefined} */\n let childToken;\n /** @type {number} */\n let lineStartOffset;\n return start;\n\n /** @type {State} */\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued];\n self.containerState = item[1];\n return effects.attempt(item[0].continuation, documentContinue, checkNewContainers)(code);\n }\n\n // Done.\n return checkNewContainers(code);\n }\n\n /** @type {State} */\n function documentContinue(code) {\n continued++;\n\n // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but it’s already used in the wild by\n // extensions.\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined;\n if (childFlow) {\n closeFlow();\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n const indexBeforeExits = self.events.length;\n let indexBeforeFlow = indexBeforeExits;\n /** @type {Point | undefined} */\n let point;\n\n // Find the flow chunk.\n while (indexBeforeFlow--) {\n if (self.events[indexBeforeFlow][0] === 'exit' && self.events[indexBeforeFlow][1].type === \"chunkFlow\") {\n point = self.events[indexBeforeFlow][1].end;\n break;\n }\n }\n exitContainers(continued);\n\n // Fix positions.\n let index = indexBeforeExits;\n while (index < self.events.length) {\n self.events[index][1].end = {\n ...point\n };\n index++;\n }\n const editMap = new EditMap();\n // Inject the exits earlier (they’re still also at the end).\n editMap.add(indexBeforeFlow + 1, 0, self.events.slice(indexBeforeExits));\n // Discard the duplicate exits.\n editMap.add(indexBeforeExits, index - indexBeforeExits, []);\n editMap.consume(self.events);\n return checkNewContainers(code);\n }\n return start(code);\n }\n\n /** @type {State} */\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether there’s a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code);\n }\n\n // If we have concrete content, such as block HTML or fenced code,\n // we can’t have containers “pierce” into them, so we can immediately\n // start.\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code);\n }\n\n // If we do have flow, it could still be a blank line,\n // but we’d be interrupting it w/ a new container if there’s a current\n // construct.\n // To do: next major: remove `_gfmTableDynamicInterruptHack` (no longer\n // needed in micromark-extension-gfm-table@1.0.6).\n self.interrupt = Boolean(childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack);\n }\n\n // Check if there is a new container.\n self.containerState = {};\n return effects.check(containerConstruct, thereIsANewContainer, thereIsNoNewContainer)(code);\n }\n\n /** @type {State} */\n function thereIsANewContainer(code) {\n if (childFlow) {\n closeFlow();\n }\n exitContainers(continued);\n return documentContinued(code);\n }\n\n /** @type {State} */\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length;\n lineStartOffset = self.now().offset;\n return flowStart(code);\n }\n\n /** @type {State} */\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {};\n return effects.attempt(containerConstruct, containerContinue, flowStart)(code);\n }\n\n /** @type {State} */\n function containerContinue(code) {\n continued++;\n stack.push([self.currentConstruct, self.containerState]);\n // Try another.\n return documentContinued(code);\n }\n\n /** @type {State} */\n function flowStart(code) {\n if (code === null) {\n if (childFlow) {\n closeFlow();\n }\n exitContainers(0);\n effects.consume(code);\n return;\n }\n childFlow = childFlow || self.parser.flow(self.now());\n effects.enter(\"chunkFlow\", {\n _tokenizer: childFlow,\n contentType: \"flow\",\n previous: childToken\n });\n return flowContinue(code);\n }\n\n /** @type {State} */\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit(\"chunkFlow\"), true);\n exitContainers(0);\n effects.consume(code);\n return;\n }\n if (markdownLineEnding(code)) {\n effects.consume(code);\n writeToChild(effects.exit(\"chunkFlow\"));\n // Get ready for the next line.\n continued = 0;\n self.interrupt = undefined;\n return start;\n }\n effects.consume(code);\n return flowContinue;\n }\n\n /**\n * @param {Token} token\n * Token.\n * @param {boolean | undefined} [endOfFile]\n * Whether the token is at the end of the file (default: `false`).\n * @returns {undefined}\n * Nothing.\n */\n function writeToChild(token, endOfFile) {\n const stream = self.sliceStream(token);\n if (endOfFile) {\n stream.push(null);\n }\n token.previous = childToken;\n if (childToken) {\n childToken.next = token;\n }\n childToken = token;\n childFlow.defineSkip(token.start);\n childFlow.write(stream);\n\n // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line can’t “unmake” it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes” the first line\n // and turns the whole into one content block.\n //\n // We’ve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length;\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset && (\n // …and either is not ended yet…\n !childFlow.events[index][1].end ||\n // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)) {\n // Exit: there’s still something open, which means it’s a lazy line\n // part of something.\n return;\n }\n }\n\n // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n const indexBeforeExits = self.events.length;\n let indexBeforeFlow = indexBeforeExits;\n /** @type {boolean | undefined} */\n let seen;\n /** @type {Point | undefined} */\n let point;\n\n // Find the previous chunk (the one before the lazy line).\n while (indexBeforeFlow--) {\n if (self.events[indexBeforeFlow][0] === 'exit' && self.events[indexBeforeFlow][1].type === \"chunkFlow\") {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end;\n break;\n }\n seen = true;\n }\n }\n exitContainers(continued);\n\n // Fix positions.\n index = indexBeforeExits;\n while (index < self.events.length) {\n self.events[index][1].end = {\n ...point\n };\n index++;\n }\n const editMap = new EditMap();\n // Inject the exits earlier (they’re still also at the end).\n editMap.add(indexBeforeFlow + 1, 0, self.events.slice(indexBeforeExits));\n // Discard the duplicate exits.\n editMap.add(indexBeforeExits, index - indexBeforeExits, []);\n editMap.consume(self.events);\n }\n }\n\n /**\n * @param {number} size\n * Size.\n * @returns {undefined}\n * Nothing.\n */\n function exitContainers(size) {\n let index = stack.length;\n\n // Exit open containers.\n while (index-- > size) {\n const entry = stack[index];\n self.containerState = entry[1];\n entry[0].exit.call(self, effects);\n }\n stack.length = size;\n }\n function closeFlow() {\n childFlow.write([null]);\n childToken = undefined;\n childFlow = undefined;\n self.containerState._closeFlow = undefined;\n }\n}\n\n/**\n * @this {TokenizeContext}\n * Context.\n * @type {Tokenizer}\n * Tokenizer.\n */\nfunction tokenizeContainer(effects, ok, nok) {\n // Always populated by defaults.\n\n return factorySpace(effects, effects.attempt(this.parser.constructs.document, ok, nok), \"linePrefix\", this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4);\n}","/**\n * @import {Effects, State} from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * line endings or spaces in markdown are often optional, in which case this\n * factory can be used and `ok` will be switched to whether spaces were found\n * or not\n * * one line ending or space can be detected with\n * `markdownLineEndingOrSpace(code)` right before using `factoryWhitespace`\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @returns {State}\n * Start state.\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen;\n return start;\n\n /** @type {State} */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n seen = true;\n return start;\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, start, seen ? \"linePrefix\" : \"lineSuffix\")(code);\n }\n return ok(code);\n }\n}","import { asciiAlphanumeric } from 'micromark-util-character';\nimport { encode } from 'micromark-util-encode';\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | null | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''));\n if (!protocol) {\n return value;\n }\n const colon = value.indexOf(':');\n const questionMark = value.indexOf('?');\n const numberSign = value.indexOf('#');\n const slash = value.indexOf('/');\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n slash > -1 && colon > slash || questionMark > -1 && colon > questionMark || numberSign > -1 && colon > numberSign ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))) {\n return value;\n }\n return '';\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array<string>} */\n const result = [];\n let index = -1;\n let start = 0;\n let skip = 0;\n while (++index < value.length) {\n const code = value.charCodeAt(index);\n /** @type {string} */\n let replace = '';\n\n // A correct percent encoded value.\n if (code === 37 && asciiAlphanumeric(value.charCodeAt(index + 1)) && asciiAlphanumeric(value.charCodeAt(index + 2))) {\n skip = 2;\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code);\n }\n }\n // Astral.\n else if (code > 55_295 && code < 57_344) {\n const next = value.charCodeAt(index + 1);\n\n // A correct surrogate pair.\n if (code < 56_320 && next > 56_319 && next < 57_344) {\n replace = String.fromCharCode(code, next);\n skip = 1;\n }\n // Lone surrogate.\n else {\n replace = \"\\uFFFD\";\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code);\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace));\n start = index + skip + 1;\n replace = '';\n }\n if (skip) {\n index += skip;\n skip = 0;\n }\n }\n return result.join('') + value.slice(start);\n}","/**\n * @import {Event} from 'micromark-util-types'\n */\n\n/**\n * @typedef {[number, number, Array<Event>]} Change\n * @typedef {[number, number, number]} Jump\n */\n\n/**\n * Tracks a bunch of edits.\n *\n * Port of `edit_map.rs` from `markdown-rs`:\n * <https://github.com/wooorm/markdown-rs/blob/1506572f/src/util/edit_map.rs>.\n *\n * Deal with several changes in events, batching them together.\n *\n * Preferably, changes should be kept to a minimum.\n * Sometimes, it’s needed to change the list of events, because parsing can be\n * messy, and it helps to expose a cleaner interface of events to the compiler\n * and other users.\n * It can also help to merge many adjacent similar events.\n * And, in other cases, it’s needed to parse subcontent: pass some events\n * through another tokenizer and inject the result.\n */\nexport class EditMap {\n /**\n * Create a new edit map.\n *\n * @returns\n * New instance.\n */\n constructor() {\n /**\n * Changes by index, so `add` does not need to scan `map` (which is\n * quadratic for documents with many edits at different places).\n *\n * @type {Map<number, Change>}\n */\n this.index = new Map();\n\n /**\n * Record of changes.\n *\n * @type {Array<Change>}\n */\n this.map = [];\n }\n\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * Index at which to apply the edit.\n * @param {number} remove\n * Count of items to remove at the index.\n * @param {Array<Event>} add\n * Items to add at the index.\n * @returns {undefined}\n * Nothing.\n */\n add(index, remove, add) {\n addImplementation(this, index, remove, add, false);\n }\n\n /**\n * Create an edit: but insert `add` before existing additions, instead of\n * after them.\n *\n * @param {number} index\n * Index at which to apply the edit.\n * @param {number} remove\n * Count of items to remove at the index.\n * @param {Array<Event>} add\n * Items to add at the index.\n * @returns {undefined}\n * Nothing.\n */\n addBefore(index, remove, add) {\n addImplementation(this, index, remove, add, true);\n }\n\n /**\n * Done, change the events.\n *\n * @param {Array<Event>} events\n * List of events to apply the edits to.\n * @returns {undefined}\n * Nothing.\n */\n consume(events) {\n this.map.sort(function (a, b) {\n return a[0] - b[0];\n });\n if (this.map.length === 0) {\n return;\n }\n\n // To do: if links are added in events, like they are in `markdown-rs`,\n // this is needed.\n // // Calculate jumps: where items in the current list move to.\n // /** @type {Array<Jump>} */\n // const jumps = []\n // let index = 0\n // let addAcc = 0\n // let removeAcc = 0\n // while (index < this.map.length) {\n // const [at, remove, add] = this.map[index]\n // removeAcc += remove\n // addAcc += add.length\n // jumps.push([at, removeAcc, addAcc])\n // index += 1\n // }\n //\n // shiftLinks(events, jumps)\n\n let index = this.map.length;\n /** @type {Array<Array<Event>>} */\n const vecs = [];\n while (index > 0) {\n index -= 1;\n vecs.push(events.slice(this.map[index][0] + this.map[index][1]), this.map[index][2]);\n\n // Truncate rest.\n events.length = this.map[index][0];\n }\n vecs.push(events.slice());\n events.length = 0;\n let slice = vecs.pop();\n while (slice) {\n for (const element of slice) {\n events.push(element);\n }\n slice = vecs.pop();\n }\n\n // Truncate everything.\n this.map.length = 0;\n this.index.clear();\n }\n}\n\n/**\n * Create an edit.\n *\n * @param {EditMap} editMap\n * Edit map to apply to.\n * @param {number} at\n * Index at which to apply the edit.\n * @param {number} remove\n * Count of items to remove at the index.\n * @param {Array<Event>} add\n * Items to add at the index.\n * @param {boolean} before\n * Insert `add` before existing additions at `at`, instead of after them.\n * @returns {undefined}\n * Nothing.\n */\nfunction addImplementation(editMap, at, remove, add, before) {\n if (remove === 0 && add.length === 0) {\n return;\n }\n const existing = editMap.index.get(at);\n if (existing) {\n existing[1] += remove;\n if (before) {\n add.push(...existing[2]);\n existing[2] = add;\n } else {\n existing[2].push(...add);\n }\n return;\n }\n\n /** @type {Change} */\n const change = [at, remove, add];\n editMap.map.push(change);\n editMap.index.set(at, change);\n}\n\n// /**\n// * Shift `previous` and `next` links according to `jumps`.\n// *\n// * This fixes links in case there are events removed or added between them.\n// *\n// * @param {Array<Event>} events\n// * @param {Array<Jump>} jumps\n// */\n// function shiftLinks(events, jumps) {\n// let jumpIndex = 0\n// let index = 0\n// let add = 0\n// let rm = 0\n\n// while (index < events.length) {\n// const rmCurr = rm\n\n// while (jumpIndex < jumps.length && jumps[jumpIndex][0] <= index) {\n// add = jumps[jumpIndex][2]\n// rm = jumps[jumpIndex][1]\n// jumpIndex += 1\n// }\n\n// // Ignore items that will be removed.\n// if (rm > rmCurr) {\n// index += rm - rmCurr\n// } else {\n// // ?\n// // if let Some(link) = &events[index].link {\n// // if let Some(next) = link.next {\n// // events[next].link.as_mut().unwrap().previous = Some(index + add - rm);\n// // while jumpIndex < jumps.len() && jumps[jumpIndex].0 <= next {\n// // add = jumps[jumpIndex].2;\n// // rm = jumps[jumpIndex].1;\n// // jumpIndex += 1;\n// // }\n// // events[index].link.as_mut().unwrap().next = Some(next + add - rm);\n// // index = next;\n// // continue;\n// // }\n// // }\n// index += 1\n// }\n// }\n// }","/**\n * @import {Node, Point, Position} from 'unist'\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef Options\n * Configuration.\n * @property {Array<Node> | null | undefined} [ancestors]\n * Stack of (inclusive) ancestor nodes surrounding the message (optional).\n * @property {Error | null | undefined} [cause]\n * Original error cause of the message (optional).\n * @property {Point | Position | null | undefined} [place]\n * Place of message (optional).\n * @property {string | null | undefined} [ruleId]\n * Category of message (optional, example: `'my-rule'`).\n * @property {string | null | undefined} [source]\n * Namespace of who sent the message (optional, example: `'my-package'`).\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\n/**\n * Message.\n */\nexport class VFileMessage extends Error {\n /**\n * Create a message for `reason`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {Options | null | undefined} [options]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns\n * Instance of `VFileMessage`.\n */\n // eslint-disable-next-line complexity\n constructor(causeOrReason, optionsOrParentOrPlace, origin) {\n super()\n\n if (typeof optionsOrParentOrPlace === 'string') {\n origin = optionsOrParentOrPlace\n optionsOrParentOrPlace = undefined\n }\n\n /** @type {string} */\n let reason = ''\n /** @type {Options} */\n let options = {}\n let legacyCause = false\n\n if (optionsOrParentOrPlace) {\n // Point.\n if (\n 'line' in optionsOrParentOrPlace &&\n 'column' in optionsOrParentOrPlace\n ) {\n options = {place: optionsOrParentOrPlace}\n }\n // Position.\n else if (\n 'start' in optionsOrParentOrPlace &&\n 'end' in optionsOrParentOrPlace\n ) {\n options = {place: optionsOrParentOrPlace}\n }\n // Node.\n else if ('type' in optionsOrParentOrPlace) {\n options = {\n ancestors: [optionsOrParentOrPlace],\n place: optionsOrParentOrPlace.position\n }\n }\n // Options.\n else {\n options = {...optionsOrParentOrPlace}\n }\n }\n\n if (typeof causeOrReason === 'string') {\n reason = causeOrReason\n }\n // Error.\n else if (!options.cause && causeOrReason) {\n legacyCause = true\n reason = causeOrReason.message\n options.cause = causeOrReason\n }\n\n if (!options.ruleId && !options.source && typeof origin === 'string') {\n const index = origin.indexOf(':')\n\n if (index === -1) {\n options.ruleId = origin\n } else {\n options.source = origin.slice(0, index)\n options.ruleId = origin.slice(index + 1)\n }\n }\n\n if (!options.place && options.ancestors && options.ancestors) {\n const parent = options.ancestors[options.ancestors.length - 1]\n\n if (parent) {\n options.place = parent.position\n }\n }\n\n const start =\n options.place && 'start' in options.place\n ? options.place.start\n : options.place\n\n /**\n * Stack of ancestor nodes surrounding the message.\n *\n * @type {Array<Node> | undefined}\n */\n this.ancestors = options.ancestors || undefined\n\n /**\n * Original error cause of the message.\n *\n * @type {Error | undefined}\n */\n this.cause = options.cause || undefined\n\n /**\n * Starting column of message.\n *\n * @type {number | undefined}\n */\n this.column = start ? start.column : undefined\n\n /**\n * State of problem.\n *\n * * `true` — error, file not usable\n * * `false` — warning, change may be needed\n * * `undefined` — change likely not needed\n *\n * @type {boolean | null | undefined}\n */\n this.fatal = undefined\n\n /**\n * Path of a file (used throughout the `VFile` ecosystem).\n *\n * @type {string | undefined}\n */\n this.file = ''\n\n // Field from `Error`.\n /**\n * Reason for message.\n *\n * @type {string}\n */\n this.message = reason\n\n /**\n * Starting line of error.\n *\n * @type {number | undefined}\n */\n this.line = start ? start.line : undefined\n\n // Field from `Error`.\n /**\n * Serialized positional info of message.\n *\n * On normal errors, this would be something like `ParseError`, buit in\n * `VFile` messages we use this space to show where an error happened.\n */\n this.name = stringifyPosition(options.place) || '1:1'\n\n /**\n * Place of message.\n *\n * @type {Point | Position | undefined}\n */\n this.place = options.place || undefined\n\n /**\n * Reason for message, should use markdown.\n *\n * @type {string}\n */\n this.reason = this.message\n\n /**\n * Category of message (example: `'my-rule'`).\n *\n * @type {string | undefined}\n */\n this.ruleId = options.ruleId || undefined\n\n /**\n * Namespace of message (example: `'my-package'`).\n *\n * @type {string | undefined}\n */\n this.source = options.source || undefined\n\n // Field from `Error`.\n /**\n * Stack of message.\n *\n * This is used by normal errors to show where something happened in\n * programming code, irrelevant for `VFile` messages,\n *\n * @type {string}\n */\n this.stack =\n legacyCause && options.cause && typeof options.cause.stack === 'string'\n ? options.cause.stack\n : ''\n\n // The following fields are “well known”.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /**\n * Specify the source value that’s being reported, which is deemed\n * incorrect.\n *\n * @type {string | undefined}\n */\n this.actual = undefined\n\n /**\n * Suggest acceptable values that can be used instead of `actual`.\n *\n * @type {Array<string> | undefined}\n */\n this.expected = undefined\n\n /**\n * Long form description of the message (you should use markdown).\n *\n * @type {string | undefined}\n */\n this.note = undefined\n\n /**\n * Link to docs for the message.\n *\n * > 👉 **Note**: this must be an absolute URL that can be passed as `x`\n * > to `new URL(x)`.\n *\n * @type {string | undefined}\n */\n this.url = undefined\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.column = undefined\nVFileMessage.prototype.line = undefined\nVFileMessage.prototype.ancestors = undefined\nVFileMessage.prototype.cause = undefined\nVFileMessage.prototype.fatal = undefined\nVFileMessage.prototype.place = undefined\nVFileMessage.prototype.ruleId = undefined\nVFileMessage.prototype.source = undefined\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n */\n\n/**\n * Get the ending point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointEnd = point('end')\n\n/**\n * Get the starting point of `node`.\n *\n * @param node\n * Node.\n * @returns\n * Point.\n */\nexport const pointStart = point('start')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'end' | 'start'} type\n * Side.\n * @returns\n * Getter.\n */\nfunction point(type) {\n return point\n\n /**\n * Get the point info of `node` at a bound side.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * @returns {Point | undefined}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n if (\n typeof point.line === 'number' &&\n point.line > 0 &&\n typeof point.column === 'number' &&\n point.column > 0\n ) {\n return {\n line: point.line,\n column: point.column,\n offset:\n typeof point.offset === 'number' && point.offset > -1\n ? point.offset\n : undefined\n }\n }\n }\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {Node | NodeLike | null | undefined} [node]\n * Node.\n * @returns {Position | undefined}\n * Position.\n */\nexport function position(node) {\n const start = pointStart(node)\n const end = pointEnd(node)\n\n if (start && end) {\n return {start, end}\n }\n}\n","/**\n * Some of the internal operations of micromark do lots of editing\n * operations on very large arrays. This runs into problems with two\n * properties of most circa-2020 JavaScript interpreters:\n *\n * - Array-length modifications at the high end of an array (push/pop) are\n * expected to be common and are implemented in (amortized) time\n * proportional to the number of elements added or removed, whereas\n * other operations (shift/unshift and splice) are much less efficient.\n * - Function arguments are passed on the stack, so adding tens of thousands\n * of elements to an array with `arr.push(...newElements)` will frequently\n * cause stack overflows. (see <https://stackoverflow.com/questions/22123769/rangeerror-maximum-call-stack-size-exceeded-why>)\n *\n * SpliceBuffers are an implementation of gap buffers, which are a\n * generalization of the \"queue made of two stacks\" idea. The splice buffer\n * maintains a cursor, and moving the cursor has cost proportional to the\n * distance the cursor moves, but inserting, deleting, or splicing in\n * new information at the cursor is as efficient as the push/pop operation.\n * This allows for an efficient sequence of splices (or pushes, pops, shifts,\n * or unshifts) as long such edits happen at the same part of the array or\n * generally sweep through the array from the beginning to the end.\n *\n * The interface for splice buffers also supports large numbers of inputs by\n * passing a single array argument rather passing multiple arguments on the\n * function call stack.\n *\n * @template T\n * Item type.\n */\nexport class SpliceBuffer {\n /**\n * @param {ReadonlyArray<T> | null | undefined} [initial]\n * Initial items (optional).\n * @returns\n * Splice buffer.\n */\n constructor(initial) {\n /** @type {Array<T>} */\n this.left = initial ? [...initial] : [];\n /** @type {Array<T>} */\n this.right = [];\n }\n\n /**\n * Array access;\n * does not move the cursor.\n *\n * @param {number} index\n * Index.\n * @return {T}\n * Item.\n */\n get(index) {\n if (index < 0 || index >= this.left.length + this.right.length) {\n throw new RangeError('Cannot access index `' + index + '` in a splice buffer of size `' + (this.left.length + this.right.length) + '`');\n }\n if (index < this.left.length) return this.left[index];\n return this.right[this.right.length - index + this.left.length - 1];\n }\n\n /**\n * The length of the splice buffer, one greater than the largest index in the\n * array.\n */\n get length() {\n return this.left.length + this.right.length;\n }\n\n /**\n * Remove and return `list[0]`;\n * moves the cursor to `0`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n shift() {\n this.setCursor(0);\n return this.right.pop();\n }\n\n /**\n * Slice the buffer to get an array;\n * does not move the cursor.\n *\n * @param {number} start\n * Start.\n * @param {number | null | undefined} [end]\n * End (optional).\n * @returns {Array<T>}\n * Array of items.\n */\n slice(start, end) {\n /** @type {number} */\n const stop = end === null || end === undefined ? Number.POSITIVE_INFINITY : end;\n if (stop < this.left.length) {\n return this.left.slice(start, stop);\n }\n if (start > this.left.length) {\n return this.right.slice(this.right.length - stop + this.left.length, this.right.length - start + this.left.length).reverse();\n }\n return this.left.slice(start).concat(this.right.slice(this.right.length - stop + this.left.length).reverse());\n }\n\n /**\n * Mimics the behavior of Array.prototype.splice() except for the change of\n * interface necessary to avoid segfaults when patching in very large arrays.\n *\n * This operation moves cursor is moved to `start` and results in the cursor\n * placed after any inserted items.\n *\n * @param {number} start\n * Start;\n * zero-based index at which to start changing the array;\n * negative numbers count backwards from the end of the array and values\n * that are out-of bounds are clamped to the appropriate end of the array.\n * @param {number | null | undefined} [deleteCount=0]\n * Delete count (default: `0`);\n * maximum number of elements to delete, starting from start.\n * @param {Array<T> | null | undefined} [items=[]]\n * Items to include in place of the deleted items (default: `[]`).\n * @return {Array<T>}\n * Any removed items.\n */\n splice(start, deleteCount, items) {\n /** @type {number} */\n const count = deleteCount || 0;\n this.setCursor(Math.trunc(start));\n const removed = this.right.splice(this.right.length - count, Number.POSITIVE_INFINITY);\n if (items) chunkedPush(this.left, items);\n return removed.reverse();\n }\n\n /**\n * Remove and return the highest-numbered item in the array, so\n * `list[list.length - 1]`;\n * Moves the cursor to `length`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n pop() {\n this.setCursor(Number.POSITIVE_INFINITY);\n return this.left.pop();\n }\n\n /**\n * Inserts a single item to the high-numbered side of the array;\n * moves the cursor to `length`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n push(item) {\n this.setCursor(Number.POSITIVE_INFINITY);\n this.left.push(item);\n }\n\n /**\n * Inserts many items to the high-numbered side of the array.\n * Moves the cursor to `length`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n pushMany(items) {\n this.setCursor(Number.POSITIVE_INFINITY);\n chunkedPush(this.left, items);\n }\n\n /**\n * Inserts a single item to the low-numbered side of the array;\n * Moves the cursor to `0`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n unshift(item) {\n this.setCursor(0);\n this.right.push(item);\n }\n\n /**\n * Inserts many items to the low-numbered side of the array;\n * moves the cursor to `0`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n unshiftMany(items) {\n this.setCursor(0);\n chunkedPush(this.right, items.reverse());\n }\n\n /**\n * Move the cursor to a specific position in the array. Requires\n * time proportional to the distance moved.\n *\n * If `n < 0`, the cursor will end up at the beginning.\n * If `n > length`, the cursor will end up at the end.\n *\n * @param {number} n\n * Position.\n * @return {undefined}\n * Nothing.\n */\n setCursor(n) {\n if (n === this.left.length || n > this.left.length && this.right.length === 0 || n < 0 && this.left.length === 0) return;\n if (n < this.left.length) {\n // Move cursor to the this.left\n const removed = this.left.splice(n, Number.POSITIVE_INFINITY);\n chunkedPush(this.right, removed.reverse());\n } else {\n // Move cursor to the this.right\n const removed = this.right.splice(this.left.length + this.right.length - n, Number.POSITIVE_INFINITY);\n chunkedPush(this.left, removed.reverse());\n }\n }\n}\n\n/**\n * Avoid stack overflow by pushing items onto the stack in segments\n *\n * @template T\n * Item type.\n * @param {Array<T>} list\n * List to inject into.\n * @param {ReadonlyArray<T>} right\n * Items to inject.\n * @return {undefined}\n * Nothing.\n */\nfunction chunkedPush(list, right) {\n /** @type {number} */\n let chunkStart = 0;\n if (right.length < 10000) {\n list.push(...right);\n } else {\n while (chunkStart < right.length) {\n list.push(...right.slice(chunkStart, chunkStart + 10000));\n chunkStart += 10000;\n }\n }\n}","/**\n * @import {Handlers} from '../state.js'\n */\n\nimport {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {Handlers}\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n // @ts-expect-error: root is different, but hard to type.\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n return undefined\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n */\n\n/**\n * @typedef NodeLike\n * @property {string} type\n * @property {PositionLike | null | undefined} [position]\n *\n * @typedef PointLike\n * @property {number | null | undefined} [line]\n * @property {number | null | undefined} [column]\n * @property {number | null | undefined} [offset]\n *\n * @typedef PositionLike\n * @property {PointLike | null | undefined} [start]\n * @property {PointLike | null | undefined} [end]\n */\n\n/**\n * Serialize the positional info of a point, position (start and end points),\n * or node.\n *\n * @param {Node | NodeLike | Point | PointLike | Position | PositionLike | null | undefined} [value]\n * Node, position, or point.\n * @returns {string}\n * Pretty printed positional info of a node (`string`).\n *\n * In the format of a range `ls:cs-le:ce` (when given `node` or `position`)\n * or a point `l:c` (when given `point`), where `l` stands for line, `c` for\n * column, `s` for `start`, and `e` for end.\n * An empty string (`''`) is returned if the given value is neither `node`,\n * `position`, nor `point`.\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point | PointLike | null | undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position | PositionLike | null | undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number | null | undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array<any>) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array<any>) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array<any>) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array<Middleware>} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array<any>} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array<any>} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","/**\n * @import {Info, Space} from 'property-information'\n */\n\n/**\n * @typedef Definition\n * Definition of a schema.\n * @property {Record<string, string> | undefined} [attributes]\n * Normalzed names to special attribute case.\n * @property {ReadonlyArray<string> | undefined} [mustUseProperty]\n * Normalized names that must be set as properties.\n * @property {Record<string, number | null>} properties\n * Property names to their types.\n * @property {Space | undefined} [space]\n * Space.\n * @property {Transform} transform\n * Transform a property name.\n */\n\n/**\n * @callback Transform\n * Transform.\n * @param {Record<string, string>} attributes\n * Attributes.\n * @param {string} property\n * Property.\n * @returns {string}\n * Attribute.\n */\n\nimport {normalize} from '../normalize.js'\nimport {DefinedInfo} from './defined-info.js'\nimport {Schema} from './schema.js'\n\n/**\n * @param {Definition} definition\n * Definition.\n * @returns {Schema}\n * Schema.\n */\nexport function create(definition) {\n /** @type {Record<string, Info>} */\n const properties = {}\n /** @type {Record<string, string>} */\n const normals = {}\n\n for (const [property, value] of Object.entries(definition.properties)) {\n const info = new DefinedInfo(\n property,\n definition.transform(definition.attributes || {}, property),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(property)\n ) {\n info.mustUseProperty = true\n }\n\n properties[property] = info\n\n normals[normalize(property)] = property\n normals[normalize(info.attribute)] = property\n }\n\n return new Schema(properties, normals, definition.space)\n}\n","/**\n * @import {Effects, State, TokenType} from 'micromark-util-types'\n */\n\nimport { markdownSpace } from 'micromark-util-character';\n\n// To do: implement `spaceOrTabWithOptions` (`connect`, `content`).\n\n/**\n * Parse spaces and tabs.\n *\n * There is no `nok` parameter:\n *\n * * spaces in markdown are often optional, in which case this factory can be\n * used and `ok` will be switched to whether spaces were found or not\n * * one line ending or space can be detected with `markdownSpace(code)` right\n * before using `factorySpace`\n *\n * ###### Examples\n *\n * Where `␉` represents a tab (plus how much it expands) and `␠` represents a\n * single space.\n *\n * ```markdown\n * ␉\n * ␠␠␠␠\n * ␉␠\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {TokenType} type\n * Type of the whole whitespace.\n * @param {number | undefined} [max=Infinity]\n * Max (exclusive).\n * @returns {State}\n * Start state.\n */\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Infinity;\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type);\n return prefix(code);\n }\n return ok(code);\n }\n\n /** @type {State} */\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code);\n return prefix;\n }\n effects.exit(type);\n return ok(code);\n }\n}\n\n/**\n * Parse spaces and tabs, with a required minimum and maximum, matching\n * `markdown-rs`’s `space_or_tab_min_max`.\n *\n * Unlike `factorySpace`, this can fail: `nok` is used when fewer than\n * `min` spaces or tabs are found.\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole whitespace.\n * @param {number} min\n * Minimum allowed characters (inclusive).\n * @param {number} max\n * Maximum allowed characters (inclusive).\n * @returns {State}\n * Start state.\n */\nexport function factorySpaceMinMax(effects, ok, nok, type, min, max) {\n let size = 0;\n return start;\n\n /** @type {State} */\n function start(code) {\n if (max > 0 && markdownSpace(code)) {\n effects.enter(type);\n return prefix(code);\n }\n return after(code);\n }\n\n /** @type {State} */\n function prefix(code) {\n if (markdownSpace(code) && size < max) {\n effects.consume(code);\n size++;\n return prefix;\n }\n effects.exit(type);\n return after(code);\n }\n\n /** @type {State} */\n function after(code) {\n return size >= min ? ok(code) : nok(code);\n }\n}","/**\n * @import {\n * Effects,\n * State,\n * TokenizeContext,\n * TokenType\n * } from 'micromark-util-types'\n */\n\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/**\n * Parse labels.\n *\n * > 👉 **Note**: labels in markdown are capped at 999 characters in the string.\n *\n * ###### Examples\n *\n * ```markdown\n * [a]\n * [a\n * b]\n * [a\\]b]\n * ```\n *\n * @this {TokenizeContext}\n * Tokenize context.\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole label (`[a]`).\n * @param {TokenType} markerType\n * Type for the markers (`[` and `]`).\n * @param {TokenType} stringType\n * Type for the identifier (`a`).\n * @returns {State}\n * Start state.\n */\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this;\n let size = 0;\n /** @type {boolean} */\n let seen;\n return start;\n\n /**\n * Start of label.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(type);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.enter(stringType);\n return atBreak;\n }\n\n /**\n * In label, at something, before something else.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (size > 999 || code === null || code === 91 || code === 93 && !seen ||\n // To do: remove in the future once we’ve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesn’t need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n code === 94 && !size && '_hiddenFootnoteSupport' in self.parser.constructs) {\n return nok(code);\n }\n if (code === 93) {\n effects.exit(stringType);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.exit(type);\n return ok;\n }\n\n // To do: indent? Link chunks and EOLs together?\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return atBreak;\n }\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return labelInside(code);\n }\n\n /**\n * In label, in text.\n *\n * ```markdown\n * > | [a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (code === null || code === 91 || code === 93 || markdownLineEnding(code) || size++ > 999) {\n effects.exit(\"chunkString\");\n return atBreak(code);\n }\n effects.consume(code);\n if (!seen) seen = !markdownSpace(code);\n return code === 92 ? labelEscape : labelInside;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | [a\\*a]\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code);\n size++;\n return labelInside;\n }\n return labelInside(code);\n }\n}","/**\n * @import {\n * Code,\n * Effects,\n * State,\n * TokenType\n * } from 'micromark-util-types'\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/**\n * Parse titles.\n *\n * ###### Examples\n *\n * ```markdown\n * \"a\"\n * 'b'\n * (c)\n * \"a\n * b\"\n * 'a\n * b'\n * (a\\)b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type of the whole title (`\"a\"`, `'b'`, `(c)`).\n * @param {TokenType} markerType\n * Type for the markers (`\"`, `'`, `(`, and `)`).\n * @param {TokenType} stringType\n * Type for the value (`a`).\n * @returns {State}\n * Start state.\n */\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable<Code>} */\n let marker;\n return start;\n\n /**\n * Start of title.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 34 || code === 39 || code === 40) {\n effects.enter(type);\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n marker = code === 40 ? 41 : code;\n return begin;\n }\n return nok(code);\n }\n\n /**\n * After opening marker.\n *\n * This is also used at the closing marker.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function begin(code) {\n if (code === marker) {\n effects.enter(markerType);\n effects.consume(code);\n effects.exit(markerType);\n effects.exit(type);\n return ok;\n }\n effects.enter(stringType);\n return atBreak(code);\n }\n\n /**\n * At something, before something else.\n *\n * ```markdown\n * > | \"a\"\n * ^\n * ```\n *\n * @type {State}\n */\n function atBreak(code) {\n if (code === marker) {\n effects.exit(stringType);\n return begin(marker);\n }\n if (code === null) {\n return nok(code);\n }\n\n // Note: blank lines can’t exist in content.\n if (markdownLineEnding(code)) {\n // To do: use `space_or_tab_eol_with_options`, connect.\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, atBreak, \"linePrefix\");\n }\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return inside(code);\n }\n\n /**\n *\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n return atBreak(code);\n }\n effects.consume(code);\n return code === 92 ? escape : inside;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | \"a\\*b\"\n * ^\n * ```\n *\n * @type {State}\n */\n function escape(code) {\n if (code === marker || code === 92) {\n effects.consume(code);\n return inside;\n }\n return inside(code);\n }\n}","/**\n * @import {Effects, State, TokenType} from 'micromark-util-types'\n */\n\nimport { asciiControl, markdownLineEndingOrSpace, markdownLineEnding } from 'micromark-util-character';\n/**\n * Parse destinations.\n *\n * ###### Examples\n *\n * ```markdown\n * <a>\n * <a\\>b>\n * <a b>\n * <a)>\n * a\n * a\\)b\n * a(b)c\n * a(b)\n * ```\n *\n * @param {Effects} effects\n * Context.\n * @param {State} ok\n * State switched to when successful.\n * @param {State} nok\n * State switched to when unsuccessful.\n * @param {TokenType} type\n * Type for whole (`<a>` or `b`).\n * @param {TokenType} literalType\n * Type when enclosed (`<a>`).\n * @param {TokenType} literalMarkerType\n * Type for enclosing (`<` and `>`).\n * @param {TokenType} rawType\n * Type when not enclosed (`b`).\n * @param {TokenType} stringType\n * Type for the value (`a` or `b`).\n * @param {number | undefined} [max=Infinity]\n * Depth of nested parens (inclusive).\n * @returns {State}\n * Start state.\n */\nexport function factoryDestination(effects, ok, nok, type, literalType, literalMarkerType, rawType, stringType, max) {\n const limit = max || Number.POSITIVE_INFINITY;\n let balance = 0;\n return start;\n\n /**\n * Start of destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (code === 60) {\n effects.enter(type);\n effects.enter(literalType);\n effects.enter(literalMarkerType);\n effects.consume(code);\n effects.exit(literalMarkerType);\n return enclosedBefore;\n }\n\n // ASCII control, space, closing paren.\n if (code === null || code === 32 || code === 41 || asciiControl(code)) {\n return nok(code);\n }\n effects.enter(type);\n effects.enter(rawType);\n effects.enter(stringType);\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return raw(code);\n }\n\n /**\n * After `<`, at an enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType);\n effects.consume(code);\n effects.exit(literalMarkerType);\n effects.exit(literalType);\n effects.exit(type);\n return ok;\n }\n effects.enter(stringType);\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return enclosed(code);\n }\n\n /**\n * In enclosed destination.\n *\n * ```markdown\n * > | <aa>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosed(code) {\n if (code === 62) {\n effects.exit(\"chunkString\");\n effects.exit(stringType);\n return enclosedBefore(code);\n }\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code);\n }\n effects.consume(code);\n return code === 92 ? enclosedEscape : enclosed;\n }\n\n /**\n * After `\\`, at a special character.\n *\n * ```markdown\n * > | <a\\*a>\n * ^\n * ```\n *\n * @type {State}\n */\n function enclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code);\n return enclosed;\n }\n return enclosed(code);\n }\n\n /**\n * In raw destination.\n *\n * ```markdown\n * > | aa\n * ^\n * ```\n *\n * @type {State}\n */\n function raw(code) {\n if (!balance && (code === null || code === 41 || markdownLineEndingOrSpace(code))) {\n effects.exit(\"chunkString\");\n effects.exit(stringType);\n effects.exit(rawType);\n effects.exit(type);\n return ok(code);\n }\n if (balance < limit && code === 40) {\n effects.consume(code);\n balance++;\n return raw;\n }\n if (code === 41) {\n effects.consume(code);\n balance--;\n return raw;\n }\n\n // ASCII control (but *not* `\\0`) and space and `(`.\n // Note: in `markdown-rs`, `\\0` exists in codes, in `micromark-js` it\n // doesn’t.\n if (code === null || code === 32 || code === 40 || asciiControl(code)) {\n return nok(code);\n }\n effects.consume(code);\n return code === 92 ? rawEscape : raw;\n }\n\n /**\n * After `\\`, at special character.\n *\n * ```markdown\n * > | a\\*a\n * ^\n * ```\n *\n * @type {State}\n */\n function rawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code);\n return raw;\n }\n return raw(code);\n }\n}","/**\n * @import {\n * Break,\n * Blockquote,\n * Code,\n * Definition,\n * Emphasis,\n * Heading,\n * Html,\n * Image,\n * InlineCode,\n * Link,\n * ListItem,\n * List,\n * Nodes,\n * Paragraph,\n * PhrasingContent,\n * ReferenceType,\n * Root,\n * Strong,\n * Text,\n * ThematicBreak\n * } from 'mdast'\n * @import {\n * Encoding,\n * Event,\n * Token,\n * Value\n * } from 'micromark-util-types'\n * @import {Point} from 'unist'\n * @import {\n * CompileContext,\n * CompileData,\n * Config,\n * Extension,\n * Handle,\n * OnEnterError,\n * Options\n * } from './types.js'\n */\n\nimport { toString } from 'mdast-util-to-string';\nimport { parse, postprocess, preprocess } from 'micromark';\nimport { decodeNumericCharacterReference } from 'micromark-util-decode-numeric-character-reference';\nimport { decodeString } from 'micromark-util-decode-string';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { stringifyPosition } from 'unist-util-stringify-position';\nconst own = {}.hasOwnProperty;\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (encoding && typeof encoding === 'object') {\n options = encoding;\n encoding = undefined;\n }\n return compiler(options)(postprocess(parse(options).document().write(preprocess()(value, encoding, true))));\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n afterExit: [],\n beforeEnter: [],\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n characterReference: onexitcharacterreference,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n };\n configure(config, (options || {}).mdastExtensions || []);\n\n /** @type {CompileData} */\n const data = {};\n return compile;\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array<Event>} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: [],\n position: undefined\n };\n /** @type {Omit<CompileContext, 'sliceSerialize'>} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n };\n /** @type {Array<number>} */\n const listStack = [];\n /** @type {Array<Event>} */\n const prepared = [];\n let index = -1;\n\n // Add `listItem` tokens and infer spread.\n // Each list is prepared while it is last in `prepared`, so nothing shifts.\n while (++index < events.length) {\n prepared.push(events[index]);\n if (events[index][1].type === \"listOrdered\" || events[index][1].type === \"listUnordered\") {\n if (events[index][0] === 'enter') {\n listStack.push(prepared.length - 1);\n } else {\n const tail = listStack.pop();\n prepareList(prepared, tail);\n }\n }\n }\n events = prepared;\n index = -1;\n while (++index < events.length) {\n const handler = config[events[index][0]];\n if (events[index][0] === 'enter' && config.beforeEnter.length > 0) {\n callListeners(config.beforeEnter, {\n ...context,\n sliceSerialize: events[index][2].sliceSerialize\n }, events[index][1]);\n }\n if (own.call(handler, events[index][1].type)) {\n // Note: spread first, V8 has optimizations for object shape cloning.\n handler[events[index][1].type].call({\n ...context,\n sliceSerialize: events[index][2].sliceSerialize\n }, events[index][1]);\n }\n if (events[index][0] === 'exit' && config.afterExit.length > 0) {\n callListeners(config.afterExit, {\n ...context,\n sliceSerialize: events[index][2].sliceSerialize\n }, events[index][1]);\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1];\n const handler = tail[1] || defaultOnError;\n handler.call(context, undefined, tail[0]);\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(events.length > 0 ? events[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: point(events.length > 0 ? events[events.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n };\n\n // Call transforms.\n index = -1;\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree;\n }\n return tree;\n }\n\n /**\n * @param {Array<Handle>} listeners\n * Listeners.\n * @param {CompileContext} context\n * Context.\n * @param {Token} token\n * Token.\n * @returns {undefined}\n * Nothing.\n */\n function callListeners(listeners, context, token) {\n let index = -1;\n while (++index < listeners.length) {\n listeners[index].call(context, token);\n }\n }\n\n /**\n * @param {Array<Event>} events\n * Events, ending with the list to prepare.\n * @param {number} start\n * Index of the list enter.\n * @returns {undefined}\n */\n function prepareList(events, start) {\n const end = events.length - 1;\n let index = start - 1;\n let containerBalance = -1;\n let listSpread = false;\n /** @type {Token | undefined} */\n let listItem;\n /** @type {number | undefined} */\n let lineIndex;\n /** @type {number | undefined} */\n let firstBlankLineIndex;\n /** @type {boolean | undefined} */\n let atMarker;\n /**\n * `listItem` events to insert before the event at `at`, in walk order.\n * Merged in after the walk, as inserting while walking would shift the\n * rest of the list once per item.\n * @type {Array<{at: number, event: Event}>}\n */\n const insertions = [];\n while (++index <= end) {\n const event = events[index];\n switch (event[1].type) {\n case \"listUnordered\":\n case \"listOrdered\":\n case \"blockQuote\":\n {\n if (event[0] === 'enter') {\n containerBalance++;\n } else {\n containerBalance--;\n }\n atMarker = undefined;\n break;\n }\n case \"lineEndingBlank\":\n {\n if (event[0] === 'enter') {\n if (listItem && !atMarker && !containerBalance && !firstBlankLineIndex) {\n firstBlankLineIndex = index;\n }\n atMarker = undefined;\n }\n break;\n }\n case \"linePrefix\":\n case \"listItemValue\":\n case \"listItemMarker\":\n case \"listItemPrefix\":\n case \"listItemPrefixWhitespace\":\n {\n // Empty.\n\n break;\n }\n default:\n {\n atMarker = undefined;\n }\n }\n if (!containerBalance && event[0] === 'enter' && event[1].type === \"listItemPrefix\" || containerBalance === -1 && event[0] === 'exit' && (event[1].type === \"listUnordered\" || event[1].type === \"listOrdered\")) {\n if (listItem) {\n let tailIndex = index;\n lineIndex = undefined;\n while (tailIndex--) {\n const tailEvent = events[tailIndex];\n if (tailEvent[1].type === \"lineEnding\" || tailEvent[1].type === \"lineEndingBlank\") {\n if (tailEvent[0] === 'exit') continue;\n if (lineIndex) {\n events[lineIndex][1].type = \"lineEndingBlank\";\n listSpread = true;\n }\n tailEvent[1].type = \"lineEnding\";\n lineIndex = tailIndex;\n } else if (tailEvent[1].type === \"linePrefix\" || tailEvent[1].type === \"blockQuotePrefix\" || tailEvent[1].type === \"blockQuotePrefixWhitespace\" || tailEvent[1].type === \"blockQuoteMarker\" || tailEvent[1].type === \"listItemIndent\") {\n // Empty\n } else {\n break;\n }\n }\n if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {\n listItem._spread = true;\n }\n\n // Fix position.\n listItem.end = Object.assign({}, lineIndex ? events[lineIndex][1].start : event[1].end);\n insertions.push({\n at: lineIndex || index,\n event: ['exit', listItem, event[2]]\n });\n }\n\n // Create a new list item.\n if (event[1].type === \"listItemPrefix\") {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n };\n listItem = item;\n insertions.push({\n at: index,\n event: ['enter', item, event[2]]\n });\n firstBlankLineIndex = undefined;\n atMarker = true;\n }\n }\n }\n\n // The list is at the end of `events`: take it off, then push it back with\n // the insertions merged in.\n // Nothing follows the list, so nothing shifts.\n const listEvents = events.splice(start);\n let insertion = 0;\n index = -1;\n while (++index < listEvents.length) {\n while (insertion < insertions.length && insertions[insertion].at === start + index) {\n events.push(insertions[insertion++].event);\n }\n events.push(listEvents[index]);\n }\n events[start][1]._spread = listSpread;\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token);\n if (and) and.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['buffer']}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n });\n }\n\n /**\n * @type {CompileContext['enter']}\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1];\n /** @type {Array<Nodes>} */\n const siblings = parent.children;\n siblings.push(node);\n this.stack.push(node);\n this.tokenStack.push([token, errorHandler || undefined]);\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n };\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close;\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token);\n exit.call(this, token);\n }\n }\n\n /**\n * @type {CompileContext['exit']}\n */\n function exit(token, onExitError) {\n const node = this.stack.pop();\n const open = this.tokenStack.pop();\n if (!open) {\n throw new Error('Cannot close `' + token.type + '` (' + stringifyPosition({\n start: token.start,\n end: token.end\n }) + '): it’s not open');\n }\n if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0]);\n } else {\n const handler = open[1] || defaultOnError;\n handler.call(this, token, open[0]);\n }\n }\n node.position.end = point(token.end);\n }\n\n /**\n * @type {CompileContext['resume']}\n */\n function resume() {\n return toString(this.stack.pop());\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2];\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10);\n this.data.expectingFirstListItemValue = undefined;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.lang = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.meta = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return;\n this.buffer();\n this.data.flowCodeInside = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '');\n this.data.flowCodeInside = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '');\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.label = label;\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1];\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length;\n node.depth = depth;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1];\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1];\n /** @type {Array<Nodes>} */\n const siblings = node.children;\n let tail = siblings[siblings.length - 1];\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text();\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n };\n siblings.push(tail);\n }\n this.stack.push(tail);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop();\n tail.value += this.sliceSerialize(token);\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1];\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1];\n tail.position.end = point(token.end);\n this.data.atHardBreak = undefined;\n return;\n }\n if (!this.data.setextHeadingSlurpLineEnding && config.canContainEols.includes(context.type)) {\n onenterdata.call(this, token);\n onexitdata.call(this, token);\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.value = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1];\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut';\n node.type += 'Reference';\n // @ts-expect-error: mutate.\n node.referenceType = referenceType;\n // @ts-expect-error: mutate.\n delete node.url;\n delete node.title;\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier;\n // @ts-expect-error: mutate.\n delete node.label;\n }\n this.data.referenceType = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token);\n const ancestor = this.stack[this.stack.length - 2];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string);\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase();\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1];\n const value = this.resume();\n const node = this.stack[this.stack.length - 1];\n // Assume a reference.\n this.data.inReference = true;\n if (node.type === 'link') {\n /** @type {Array<PhrasingContent>} */\n const children = fragment.children;\n node.children = children;\n } else {\n node.alt = value;\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.url = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume();\n const node = this.stack[this.stack.length - 1];\n node.title = data;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume();\n const node = this.stack[this.stack.length - 1];\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label;\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(this.sliceSerialize(token)).toLowerCase();\n this.data.referenceType = 'full';\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token);\n const type = this.data.characterReferenceType;\n /** @type {string} */\n let value;\n if (type) {\n value = decodeNumericCharacterReference(data, type === \"characterReferenceMarkerNumeric\" ? 10 : 16);\n this.data.characterReferenceType = undefined;\n } else {\n const result = decodeNamedCharacterReference(data);\n value = result;\n }\n const tail = this.stack[this.stack.length - 1];\n tail.value += value;\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreference(token) {\n const tail = this.stack.pop();\n tail.position.end = point(token.end);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = this.sliceSerialize(token);\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token);\n const node = this.stack[this.stack.length - 1];\n node.url = 'mailto:' + this.sliceSerialize(token);\n }\n\n //\n // Creaters.\n //\n\n // Each node factory pre-declares `position` as undefined as the trailing\n // property. enter() patches it to a real value, but the property already\n // exists, so V8 sees a single hidden class for each node type from\n // construction through the rest of the pipeline. Without the pre-declare,\n // each node took a hidden-class transition when enter() added position.\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: [],\n position: undefined\n };\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: '',\n position: undefined\n };\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: '',\n position: undefined\n };\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: '',\n position: undefined\n };\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: [],\n position: undefined\n };\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: [],\n position: undefined\n };\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break',\n position: undefined\n };\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: '',\n position: undefined\n };\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null,\n position: undefined\n };\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: [],\n position: undefined\n };\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: [],\n position: undefined\n };\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: [],\n position: undefined\n };\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: [],\n position: undefined\n };\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: [],\n position: undefined\n };\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: '',\n position: undefined\n };\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak',\n position: undefined\n };\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n };\n}\n\n/**\n * @param {Config} combined\n * @param {Array<Array<Extension> | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1;\n while (++index < extensions.length) {\n const value = extensions[index];\n if (Array.isArray(value)) {\n configure(combined, value);\n } else {\n extension(combined, value);\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key;\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'transforms':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(...right);\n }\n break;\n }\n case 'afterExit':\n case 'beforeEnter':\n {\n const right = extension[key];\n if (right) {\n combined[key].push(right);\n }\n break;\n }\n case 'enter':\n case 'exit':\n {\n const right = extension[key];\n if (right) {\n Object.assign(combined[key], right);\n }\n break;\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error('Cannot close `' + left.type + '` (' + stringifyPosition({\n start: left.start,\n end: left.end\n }) + '): a different token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is open');\n }\n throw new Error('Cannot close document, a token (`' + right.type + '`, ' + stringifyPosition({\n start: right.start,\n end: right.end\n }) + ') is still open');\n}","/**\n * @import {\n * Chunk,\n * Code,\n * ConstructRecord,\n * Construct,\n * Effects,\n * InitialConstruct,\n * ParseContext,\n * Point,\n * State,\n * TokenizeContext,\n * Token\n * } from 'micromark-util-types'\n */\n\n/**\n * @callback Restore\n * Restore the state.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef Info\n * Info.\n * @property {Restore} restore\n * Restore.\n * @property {number} from\n * From.\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * Construct.\n * @param {Info} info\n * Info.\n * @returns {undefined}\n * Nothing.\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesn’t receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * Parser.\n * @param {InitialConstruct} initialize\n * Construct.\n * @param {Omit<Point, '_bufferIndex' | '_index'> | undefined} [from]\n * Point (optional).\n * @returns {TokenizeContext}\n * Context.\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = {\n _bufferIndex: -1,\n _index: 0,\n line: from && from.line || 1,\n column: from && from.column || 1,\n offset: from && from.offset || 0\n };\n /** @type {Record<string, number>} */\n const columnStart = {};\n /** @type {Array<Construct>} */\n const resolveAllConstructs = [];\n /** @type {Array<Chunk>} */\n let chunks = [];\n /** @type {Array<Token>} */\n let stack = [];\n /** @type {boolean | undefined} */\n let consumed = true;\n\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n const effects = {\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n consume,\n enter,\n exit,\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n };\n\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n const context = {\n code: null,\n containerState: {},\n defineSkip,\n events: [],\n now,\n parser,\n previous: null,\n sliceSerialize,\n sliceStream,\n write\n };\n\n /**\n * The state function.\n *\n * @type {State | undefined}\n */\n let state = initialize.tokenize.call(context, effects);\n\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n let expectedCode;\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize);\n }\n return context;\n\n /** @type {TokenizeContext['write']} */\n function write(slice) {\n chunks = push(chunks, slice);\n main();\n\n // Exit if we’re not done, resolve might change stuff.\n if (chunks[chunks.length - 1] !== null) {\n return [];\n }\n addResult(initialize, 0);\n\n // Otherwise, resolve, and exit.\n context.events = resolveAll(resolveAllConstructs, context.events, context);\n return context.events;\n }\n\n //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs);\n }\n\n /** @type {TokenizeContext['sliceStream']} */\n function sliceStream(token) {\n return sliceChunks(chunks, token);\n }\n\n /** @type {TokenizeContext['now']} */\n function now() {\n // This is a hot path, so we clone manually instead of `Object.assign({}, point)`\n const {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n } = point;\n return {\n _bufferIndex,\n _index,\n line,\n column,\n offset\n };\n }\n\n /** @type {TokenizeContext['defineSkip']} */\n function defineSkip(value) {\n columnStart[value.line] = value.column;\n accountForPotentialSkip();\n }\n\n //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {undefined}\n * Nothing.\n */\n function main() {\n while (point._index < chunks.length) {\n const chunk = chunks[point._index];\n\n // If we’re in a buffer chunk, loop through it.\n if (typeof chunk === 'string') {\n const chunkIndex = point._index;\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0;\n }\n while (point._index === chunkIndex && point._bufferIndex < chunk.length) {\n go(chunk.charCodeAt(point._bufferIndex));\n }\n } else {\n go(chunk);\n }\n }\n }\n\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * Code.\n * @returns {undefined}\n * Nothing.\n */\n function go(code) {\n consumed = undefined;\n expectedCode = code;\n state = state(code);\n }\n\n /** @type {Effects['consume']} */\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++;\n point.column = 1;\n point.offset += code === -3 ? 2 : 1;\n accountForPotentialSkip();\n } else if (code !== -1) {\n point.column++;\n point.offset++;\n }\n\n // Not in a string chunk.\n if (point._bufferIndex < 0) {\n point._index++;\n } else {\n point._bufferIndex++;\n\n // At end of string chunk.\n if (point._bufferIndex ===\n // Points w/ non-negative `_bufferIndex` reference\n // strings.\n /** @type {string} */\n chunks[point._index].length) {\n point._bufferIndex = -1;\n point._index++;\n }\n }\n\n // Expose the previous character.\n context.previous = code;\n\n // Mark as consumed.\n consumed = true;\n }\n\n /** @type {Effects['enter']} */\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {};\n token.type = type;\n token.start = now();\n context.events.push(['enter', token, context]);\n stack.push(token);\n return token;\n }\n\n /** @type {Effects['exit']} */\n function exit(type) {\n const token = stack.pop();\n token.end = now();\n context.events.push(['exit', token, context]);\n return token;\n }\n\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from);\n }\n\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n function onsuccessfulcheck(_, info) {\n info.restore();\n }\n\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * Callback.\n * @param {{interrupt?: boolean | undefined} | undefined} [fields]\n * Fields.\n */\n function constructFactory(onreturn, fields) {\n return hook;\n\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Array<Construct> | ConstructRecord | Construct} constructs\n * Constructs.\n * @param {State} returnState\n * State.\n * @param {State | undefined} [bogusState]\n * State.\n * @returns {State}\n * State.\n */\n function hook(constructs, returnState, bogusState) {\n /** @type {ReadonlyArray<Construct>} */\n let listOfConstructs;\n /** @type {number} */\n let constructIndex;\n /** @type {Construct} */\n let currentConstruct;\n /** @type {Info} */\n let info;\n return Array.isArray(constructs) ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs) : 'tokenize' in constructs ?\n // Looks like a construct.\n handleListOfConstructs([(/** @type {Construct} */constructs)]) : handleMapOfConstructs(constructs);\n\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleMapOfConstructs(map) {\n return start;\n\n /** @type {State} */\n function start(code) {\n const left = code !== null && map[code];\n const all = code !== null && map.null;\n const list = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...(Array.isArray(left) ? left : left ? [left] : []), ...(Array.isArray(all) ? all : all ? [all] : [])];\n return handleListOfConstructs(list)(code);\n }\n }\n\n /**\n * Handle a list of construct.\n *\n * @param {ReadonlyArray<Construct>} list\n * Constructs.\n * @returns {State}\n * State.\n */\n function handleListOfConstructs(list) {\n listOfConstructs = list;\n constructIndex = 0;\n if (list.length === 0) {\n return bogusState;\n }\n return handleConstruct(list[constructIndex]);\n }\n\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * Construct.\n * @returns {State}\n * State.\n */\n function handleConstruct(construct) {\n return start;\n\n /** @type {State} */\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesn’t work because `inspect` in document does a check\n // w/o a bogus, which doesn’t make sense. But it does seem to help perf\n // by not storing.\n info = store();\n currentConstruct = construct;\n if (!construct.partial) {\n context.currentConstruct = construct;\n }\n\n // Always populated by defaults.\n\n if (construct.name && context.parser.constructs.disable.null.includes(construct.name)) {\n return nok(code);\n }\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context, effects, ok, nok)(code);\n }\n }\n\n /** @type {State} */\n function ok(code) {\n consumed = true;\n onreturn(currentConstruct, info);\n return returnState;\n }\n\n /** @type {State} */\n function nok(code) {\n consumed = true;\n info.restore();\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex]);\n }\n return bogusState;\n }\n }\n }\n\n /**\n * @param {Construct} construct\n * Construct.\n * @param {number} from\n * From.\n * @returns {undefined}\n * Nothing.\n */\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct);\n }\n if (construct.resolve) {\n splice(context.events, from, context.events.length - from, construct.resolve(context.events.slice(from), context));\n }\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context);\n }\n }\n\n /**\n * Store state.\n *\n * @returns {Info}\n * Info.\n */\n function store() {\n const startPoint = now();\n const startPrevious = context.previous;\n const startCurrentConstruct = context.currentConstruct;\n const startEventsIndex = context.events.length;\n const startStack = Array.from(stack);\n return {\n from: startEventsIndex,\n restore\n };\n\n /**\n * Restore state.\n *\n * @returns {undefined}\n * Nothing.\n */\n function restore() {\n point = startPoint;\n context.previous = startPrevious;\n context.currentConstruct = startCurrentConstruct;\n context.events.length = startEventsIndex;\n stack = startStack;\n accountForPotentialSkip();\n }\n }\n\n /**\n * Move the current point a bit forward in the line when it’s on a column\n * skip.\n *\n * @returns {undefined}\n * Nothing.\n */\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line];\n point.offset += columnStart[point.line] - 1;\n }\n }\n}\n\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {ReadonlyArray<Chunk>} chunks\n * Chunks.\n * @param {Pick<Token, 'end' | 'start'>} token\n * Token.\n * @returns {Array<Chunk>}\n * Chunks.\n */\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index;\n const startBufferIndex = token.start._bufferIndex;\n const endIndex = token.end._index;\n const endBufferIndex = token.end._bufferIndex;\n /** @type {Array<Chunk>} */\n let view;\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];\n } else {\n view = chunks.slice(startIndex, endIndex);\n if (startBufferIndex > -1) {\n const head = view[0];\n if (typeof head === 'string') {\n view[0] = head.slice(startBufferIndex);\n /* c8 ignore next 4 -- used to be used, no longer */\n } else {\n view.shift();\n }\n }\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex));\n }\n }\n return view;\n}\n\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {ReadonlyArray<Chunk>} chunks\n * Chunks.\n * @param {boolean | undefined} [expandTabs=false]\n * Whether to expand tabs (default: `false`).\n * @returns {string}\n * Result.\n */\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1;\n /** @type {Array<string>} */\n const result = [];\n /** @type {boolean | undefined} */\n let atTab;\n while (++index < chunks.length) {\n const chunk = chunks[index];\n /** @type {string} */\n let value;\n if (typeof chunk === 'string') {\n value = chunk;\n } else {\n switch (chunk) {\n case -5:\n {\n value = \"\\r\";\n break;\n }\n case -4:\n {\n value = \"\\n\";\n break;\n }\n case -3:\n {\n value = \"\\r\" + \"\\n\";\n break;\n }\n case -2:\n {\n value = expandTabs ? \" \" : \"\\t\";\n break;\n }\n case -1:\n {\n if (!expandTabs && atTab) {\n continue;\n }\n value = \" \";\n break;\n }\n default:\n {\n // Currently only replacement character.\n value = String.fromCharCode(chunk);\n }\n }\n }\n atTab = chunk === -2;\n result.push(value);\n }\n return result.join('');\n}","/**\n * @import {Node, Parent} from 'unist'\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is a node.\n * @param {unknown} this\n * The given context.\n * @param {unknown} [node]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | null | undefined} [parent]\n * The node’s parent.\n * @returns {boolean}\n * Whether this is a node and passes a test.\n *\n * @typedef {Record<string, unknown> | Node} Props\n * Object to check for equivalence.\n *\n * Note: `Node` is included as it is common but is not indexable.\n *\n * @typedef {Array<Props | TestFunction | string> | ReadonlyArray<Props | TestFunction | string> | Props | TestFunction | string | null | undefined} Test\n * Check for an arbitrary node.\n *\n * @callback TestFunction\n * Check if a node passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Node} node\n * A node.\n * @param {number | undefined} [index]\n * The node’s position in its parent.\n * @param {Parent | undefined} [parent]\n * The node’s parent.\n * @returns {boolean | undefined | void}\n * Whether this node passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `node` is a `Node` and whether it passes the given test.\n *\n * @param {unknown} node\n * Thing to check, typically `Node`.\n * @param {Test} test\n * A check for a specific node.\n * @param {number | null | undefined} index\n * The node’s position in its parent.\n * @param {Parent | null | undefined} parent\n * The node’s parent.\n * @param {unknown} context\n * Context object (`this`) to pass to `test` functions.\n * @returns {boolean}\n * Whether `node` is a node and passes a test.\n */\nexport const is =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends ReadonlyArray<string>>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition[number]}) &\n * (<Condition extends Array<string>>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition[number]}) &\n * (<Condition extends string>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(node: unknown, test: Condition, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((node?: null | undefined) => false) &\n * ((node: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((node: unknown, test?: Test, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [node]\n * @param {Test} [test]\n * @param {number | null | undefined} [index]\n * @param {Parent | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n return looksLikeANode(node)\n ? check.call(context, node, index, parent)\n : false\n }\n )\n\n/**\n * Generate an assertion from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * a `node`, `index`, and `parent`.\n *\n * @param {Test} test\n * * when nullish, checks if `node` is a `Node`.\n * * when `string`, works like passing `(node) => node.type === test`.\n * * when `function` checks if function passed the node is true.\n * * when `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * * when `array`, checks if any one of the subtests pass.\n * @returns {Check}\n * An assertion.\n */\nexport const convert =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return ok\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test)\n ? anyFactory(test)\n : // Cast because `ReadonlyArray` goes into the above but `isArray`\n // narrows to `Array`.\n propertiesFactory(/** @type {Props} */ (test))\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n\n/**\n * @param {Array<Props | TestFunction | string>} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array<Check>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn an object into a test for a node with a certain fields.\n *\n * @param {Props} check\n * @returns {Check}\n */\nfunction propertiesFactory(check) {\n const checkAsRecord = /** @type {Record<string, unknown>} */ (check)\n\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n const nodeAsRecord = /** @type {Record<string, unknown>} */ (\n /** @type {unknown} */ (node)\n )\n\n /** @type {string} */\n let key\n\n for (key in check) {\n if (nodeAsRecord[key] !== checkAsRecord[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Turn a string into a test for a node with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Turn a custom test into a test for a node that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeANode(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\nfunction ok() {\n return true\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction looksLikeANode(value) {\n return value !== null && typeof value === 'object' && 'type' in value\n}\n","/**\n * @import {ElementContent, Element} from 'hast'\n * @import {State} from './state.js'\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n * Generate content for the backreference dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array<ElementContent> | ElementContent | string}\n * Content for the backreference when linking back from definitions to their\n * reference.\n *\n * @callback FootnoteBackLabelTemplate\n * Generate a back label dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array<ElementContent>}\n * Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n /** @type {Array<ElementContent>} */\n const result = [{type: 'text', value: '↩'}]\n\n if (rereferenceIndex > 1) {\n result.push({\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [{type: 'text', value: String(rereferenceIndex)}]\n })\n }\n\n return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n return (\n 'Back to reference ' +\n (referenceIndex + 1) +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const footnoteBackContent =\n state.options.footnoteBackContent || defaultFootnoteBackContent\n const footnoteBackLabel =\n state.options.footnoteBackLabel || defaultFootnoteBackLabel\n const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n className: ['sr-only']\n }\n /** @type {Array<ElementContent>} */\n const listItems = []\n let referenceIndex = -1\n\n while (++referenceIndex < state.footnoteOrder.length) {\n const definition = state.footnoteById.get(\n state.footnoteOrder[referenceIndex]\n )\n\n if (!definition) {\n continue\n }\n\n const content = state.all(definition)\n const id = String(definition.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let rereferenceIndex = 0\n /** @type {Array<ElementContent>} */\n const backReferences = []\n const counts = state.footnoteCounts.get(id)\n\n // eslint-disable-next-line no-unmodified-loop-condition\n while (counts !== undefined && ++rereferenceIndex <= counts) {\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n let children =\n typeof footnoteBackContent === 'string'\n ? footnoteBackContent\n : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n if (typeof children === 'string') {\n children = {type: 'text', value: children}\n }\n\n backReferences.push({\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n clobberPrefix +\n 'fnref-' +\n safeId +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n dataFootnoteBackref: '',\n ariaLabel:\n typeof footnoteBackLabel === 'string'\n ? footnoteBackLabel\n : footnoteBackLabel(referenceIndex, rereferenceIndex),\n className: ['data-footnote-backref']\n },\n children: Array.isArray(children) ? children : [children]\n })\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(definition, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: footnoteLabelTagName,\n properties: {\n ...structuredClone(footnoteLabelProperties),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @import {Nodes as HastNodes} from 'hast'\n * @import {Nodes as MdastNodes} from 'mdast'\n * @import {Options} from './state.js'\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `<div>` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","/**\n * @import {Element, Nodes, Parents, Root} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {ComponentType, JSX, ReactElement, ReactNode} from 'react'\n * @import {Options as RemarkRehypeOptions} from 'remark-rehype'\n * @import {BuildVisitor} from 'unist-util-visit'\n * @import {PluggableList, Processor} from 'unified'\n */\n\n/**\n * @callback AllowElement\n * Filter elements.\n * @param {Readonly<Element>} element\n * Element to check.\n * @param {number} index\n * Index of `element` in `parent`.\n * @param {Readonly<Parents> | undefined} parent\n * Parent of `element`.\n * @returns {boolean | null | undefined}\n * Whether to allow `element` (default: `false`).\n */\n\n/**\n * @typedef ExtraProps\n * Extra fields we pass.\n * @property {Element | undefined} [node]\n * passed when `passNode` is on.\n */\n\n/**\n * @typedef {{\n * [Key in keyof JSX.IntrinsicElements]?: ComponentType<JSX.IntrinsicElements[Key] & ExtraProps> | keyof JSX.IntrinsicElements\n * }} Components\n * Map tag names to components.\n */\n\n/**\n * @typedef Deprecation\n * Deprecation.\n * @property {string} from\n * Old field.\n * @property {string} id\n * ID in readme.\n * @property {keyof Options} [to]\n * New field.\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {AllowElement | null | undefined} [allowElement]\n * Filter elements (optional);\n * `allowedElements` / `disallowedElements` is used first.\n * @property {ReadonlyArray<string> | null | undefined} [allowedElements]\n * Tag names to allow (default: all tag names);\n * cannot combine w/ `disallowedElements`.\n * @property {string | null | undefined} [children]\n * Markdown.\n * @property {Components | null | undefined} [components]\n * Map tag names to components.\n * @property {ReadonlyArray<string> | null | undefined} [disallowedElements]\n * Tag names to disallow (default: `[]`);\n * cannot combine w/ `allowedElements`.\n * @property {PluggableList | null | undefined} [rehypePlugins]\n * List of rehype plugins to use.\n * @property {PluggableList | null | undefined} [remarkPlugins]\n * List of remark plugins to use.\n * @property {Readonly<RemarkRehypeOptions> | null | undefined} [remarkRehypeOptions]\n * Options to pass through to `remark-rehype`.\n * @property {boolean | null | undefined} [skipHtml=false]\n * Ignore HTML in markdown completely (default: `false`).\n * @property {boolean | null | undefined} [unwrapDisallowed=false]\n * Extract (unwrap) what’s in disallowed elements (default: `false`);\n * normally when say `strong` is not allowed, it and it’s children are dropped,\n * with `unwrapDisallowed` the element itself is replaced by its children.\n * @property {UrlTransform | null | undefined} [urlTransform]\n * Change URLs (default: `defaultUrlTransform`)\n */\n\n/**\n * @typedef HooksOptionsOnly\n * Configuration specifically for {@linkcode MarkdownHooks}.\n * @property {ReactNode | null | undefined} [fallback]\n * Content to render while the processor processing the markdown (optional).\n */\n\n/**\n * @typedef {Options & HooksOptionsOnly} HooksOptions\n * Configuration for {@linkcode MarkdownHooks};\n * extends the regular {@linkcode Options} with a `fallback` prop.\n */\n\n/**\n * @callback UrlTransform\n * Transform all URLs.\n * @param {string} url\n * URL.\n * @param {string} key\n * Property name (example: `'href'`).\n * @param {Readonly<Element>} node\n * Node.\n * @returns {string | null | undefined}\n * Transformed URL (optional).\n */\n\nimport {unreachable} from 'devlop'\nimport {toJsxRuntime} from 'hast-util-to-jsx-runtime'\nimport {urlAttributes} from 'html-url-attributes'\nimport {Fragment, jsx, jsxs} from 'react/jsx-runtime'\nimport {useEffect, useState} from 'react'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport {unified} from 'unified'\nimport {visit} from 'unist-util-visit'\nimport {VFile} from 'vfile'\n\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {PluggableList} */\nconst emptyPlugins = []\n/** @type {Readonly<RemarkRehypeOptions>} */\nconst emptyRemarkRehypeOptions = {allowDangerousHtml: true}\nconst safeProtocol = /^(https?|ircs?|mailto|xmpp)$/i\n\n// Mutable because we `delete` any time it’s used and a message is sent.\n/** @type {ReadonlyArray<Readonly<Deprecation>>} */\nconst deprecations = [\n {from: 'astPlugins', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'allowDangerousHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {\n from: 'allowNode',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowElement'\n },\n {\n from: 'allowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowedElements'\n },\n {from: 'className', id: 'remove-classname'},\n {\n from: 'disallowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'disallowedElements'\n },\n {from: 'escapeHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'includeElementIndex', id: '#remove-includeelementindex'},\n {\n from: 'includeNodeIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n },\n {from: 'linkTarget', id: 'remove-linktarget'},\n {from: 'plugins', id: 'change-plugins-to-remarkplugins', to: 'remarkPlugins'},\n {from: 'rawSourcePos', id: '#remove-rawsourcepos'},\n {from: 'renderers', id: 'change-renderers-to-components', to: 'components'},\n {from: 'source', id: 'change-source-to-children', to: 'children'},\n {from: 'sourcePos', id: '#remove-sourcepos'},\n {from: 'transformImageUri', id: '#add-urltransform', to: 'urlTransform'},\n {from: 'transformLinkUri', id: '#add-urltransform', to: 'urlTransform'}\n]\n\n/**\n * Component to render markdown.\n *\n * This is a synchronous component.\n * When using async plugins,\n * see {@linkcode MarkdownAsync} or {@linkcode MarkdownHooks}.\n *\n * @param {Readonly<Options>} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nexport function Markdown(options) {\n const processor = createProcessor(options)\n const file = createFile(options)\n return post(processor.runSync(processor.parse(file), file), options)\n}\n\n/**\n * Component to render markdown with support for async plugins\n * through async/await.\n *\n * Components returning promises are supported on the server.\n * For async support on the client,\n * see {@linkcode MarkdownHooks}.\n *\n * @param {Readonly<Options>} options\n * Props.\n * @returns {Promise<ReactElement>}\n * Promise to a React element.\n */\nexport async function MarkdownAsync(options) {\n const processor = createProcessor(options)\n const file = createFile(options)\n const tree = await processor.run(processor.parse(file), file)\n return post(tree, options)\n}\n\n/**\n * Component to render markdown with support for async plugins through hooks.\n *\n * This uses `useEffect` and `useState` hooks.\n * Hooks run on the client and do not immediately render something.\n * For async support on the server,\n * see {@linkcode MarkdownAsync}.\n *\n * @param {Readonly<HooksOptions>} options\n * Props.\n * @returns {ReactNode}\n * React node.\n */\nexport function MarkdownHooks(options) {\n const processor = createProcessor(options)\n const [error, setError] = useState(\n /** @type {Error | undefined} */ (undefined)\n )\n const [tree, setTree] = useState(/** @type {Root | undefined} */ (undefined))\n\n useEffect(\n function () {\n let cancelled = false\n const file = createFile(options)\n\n processor.run(processor.parse(file), file, function (error, tree) {\n if (!cancelled) {\n setError(error)\n setTree(tree)\n }\n })\n\n /**\n * @returns {undefined}\n * Nothing.\n */\n return function () {\n cancelled = true\n }\n },\n [\n options.children,\n options.rehypePlugins,\n options.remarkPlugins,\n options.remarkRehypeOptions\n ]\n )\n\n if (error) throw error\n\n return tree ? post(tree, options) : options.fallback\n}\n\n/**\n * Set up the `unified` processor.\n *\n * @param {Readonly<Options>} options\n * Props.\n * @returns {Processor<MdastRoot, MdastRoot, Root, undefined, undefined>}\n * Result.\n */\nfunction createProcessor(options) {\n const rehypePlugins = options.rehypePlugins || emptyPlugins\n const remarkPlugins = options.remarkPlugins || emptyPlugins\n const remarkRehypeOptions = options.remarkRehypeOptions\n ? {...options.remarkRehypeOptions, ...emptyRemarkRehypeOptions}\n : emptyRemarkRehypeOptions\n\n const processor = unified()\n .use(remarkParse)\n .use(remarkPlugins)\n .use(remarkRehype, remarkRehypeOptions)\n .use(rehypePlugins)\n\n return processor\n}\n\n/**\n * Set up the virtual file.\n *\n * @param {Readonly<Options>} options\n * Props.\n * @returns {VFile}\n * Result.\n */\nfunction createFile(options) {\n const children = options.children || ''\n const file = new VFile()\n\n if (typeof children === 'string') {\n file.value = children\n } else {\n unreachable(\n 'Unexpected value `' +\n children +\n '` for `children` prop, expected `string`'\n )\n }\n\n return file\n}\n\n/**\n * Process the result from unified some more.\n *\n * @param {Nodes} tree\n * Tree.\n * @param {Readonly<Options>} options\n * Props.\n * @returns {ReactElement}\n * React element.\n */\nfunction post(tree, options) {\n const allowedElements = options.allowedElements\n const allowElement = options.allowElement\n const components = options.components\n const disallowedElements = options.disallowedElements\n const skipHtml = options.skipHtml\n const unwrapDisallowed = options.unwrapDisallowed\n const urlTransform = options.urlTransform || defaultUrlTransform\n\n for (const deprecation of deprecations) {\n if (Object.hasOwn(options, deprecation.from)) {\n unreachable(\n 'Unexpected `' +\n deprecation.from +\n '` prop, ' +\n (deprecation.to\n ? 'use `' + deprecation.to + '` instead'\n : 'remove it') +\n ' (see <' +\n changelog +\n '#' +\n deprecation.id +\n '> for more info)'\n )\n }\n }\n\n if (allowedElements && disallowedElements) {\n unreachable(\n 'Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other'\n )\n }\n\n visit(tree, transform)\n\n return toJsxRuntime(tree, {\n Fragment,\n components,\n ignoreInvalidStyle: true,\n jsx,\n jsxs,\n passKeys: true,\n passNode: true\n })\n\n /** @type {BuildVisitor<Root>} */\n function transform(node, index, parent) {\n if (node.type === 'raw' && parent && typeof index === 'number') {\n if (skipHtml) {\n parent.children.splice(index, 1)\n } else {\n parent.children[index] = {type: 'text', value: node.value}\n }\n\n return index\n }\n\n if (node.type === 'element') {\n /** @type {string} */\n let key\n\n for (key in urlAttributes) {\n if (\n Object.hasOwn(urlAttributes, key) &&\n Object.hasOwn(node.properties, key)\n ) {\n const value = node.properties[key]\n const test = urlAttributes[key]\n if (test === null || test.includes(node.tagName)) {\n node.properties[key] = urlTransform(String(value || ''), key, node)\n }\n }\n }\n }\n\n if (node.type === 'element') {\n let remove = allowedElements\n ? !allowedElements.includes(node.tagName)\n : disallowedElements\n ? disallowedElements.includes(node.tagName)\n : false\n\n if (!remove && allowElement && typeof index === 'number') {\n remove = !allowElement(node, index, parent)\n }\n\n if (remove && parent && typeof index === 'number') {\n if (unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n }\n }\n}\n\n/**\n * Make a URL safe.\n *\n * @satisfies {UrlTransform}\n * @param {string} value\n * URL.\n * @returns {string}\n * Safe URL.\n */\nexport function defaultUrlTransform(value) {\n // Same as:\n // <https://github.com/micromark/micromark/blob/929275e/packages/micromark-util-sanitize-uri/dev/index.js#L34>\n // But without the `encode` part.\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\n if (\n // If there is no protocol, it’s relative.\n colon === -1 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash !== -1 && colon > slash) ||\n (questionMark !== -1 && colon > questionMark) ||\n (numberSign !== -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n safeProtocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n","/**\n * @import {Root as HastRoot} from 'hast'\n * @import {Root as MdastRoot} from 'mdast'\n * @import {Options as ToHastOptions} from 'mdast-util-to-hast'\n * @import {Processor} from 'unified'\n * @import {VFile} from 'vfile'\n */\n\n/**\n * @typedef {Omit<ToHastOptions, 'file'>} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise<undefined>}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given,\n * runs the (rehype) plugins used on it with a hast tree,\n * then discards the result (*bridge mode*)\n * * otherwise,\n * returns a hast tree,\n * the plugins used after `remarkRehype` are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**:\n * > It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc);\n * this is a heavy task as it needs a full HTML parser,\n * but it is the only way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark,\n * which we follow by default.\n * They are supported by GitHub,\n * so footnotes can be enabled in markdown with `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes,\n * which is hidden for sighted users but shown to assistive technology.\n * When your page is not in English,\n * you must define translated values.\n *\n * Back references use ARIA attributes,\n * but the section label itself uses a heading that is hidden with an\n * `sr-only` class.\n * To show it to sighted users,\n * define different attributes in `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem,\n * as it links footnote calls to footnote definitions on the page through `id`\n * attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=x></p>\n * <script>alert(x) // `x` now refers to the DOM `p#x` element</script>\n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value`\n * (and doesn’t have `data.hName`, `data.hProperties`, or `data.hChildren`,\n * see later),\n * create a hast `text` node\n * * otherwise,\n * create a `<div>` element (which could be changed with `data.hName`),\n * with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @overload\n * @param {Readonly<Options> | Processor | null | undefined} [destination]\n * @param {Readonly<Options> | null | undefined} [options]\n * @returns {TransformBridge | TransformMutate}\n *\n * @param {Readonly<Options> | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly<Options> | null | undefined} [options]\n * When a processor was given,\n * configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n // To do: in the future, disallow ` || options` fallback.\n // With `unified-engine`, `destination` can be `undefined` but\n // `options` will be the file set.\n // We should not pass that as `options`.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(destination || options)})\n )\n }\n}\n","/**\n * @import {\n * ElementContent as HastElementContent,\n * Element as HastElement,\n * Nodes as HastNodes,\n * Properties as HastProperties,\n * RootContent as HastRootContent,\n * Text as HastText\n * } from 'hast'\n * @import {\n * Definition as MdastDefinition,\n * FootnoteDefinition as MdastFootnoteDefinition,\n * Nodes as MdastNodes,\n * Parents as MdastParents\n * } from 'mdast'\n * @import {VFile} from 'vfile'\n * @import {\n * FootnoteBackContentTemplate,\n * FootnoteBackLabelTemplate\n * } from './footer.js'\n */\n\n/**\n * @callback Handler\n * Handle a node.\n * @param {State} state\n * Info passed around.\n * @param {any} node\n * mdast node to handle.\n * @param {MdastParents | undefined} parent\n * Parent of `node`.\n * @returns {Array<HastElementContent> | HastElementContent | undefined}\n * hast node.\n *\n * @typedef {Partial<Record<MdastNodes['type'], Handler>>} Handlers\n * Handle nodes.\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n * Whether to persist raw HTML in markdown in the hast tree (default:\n * `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n * Prefix to use before the `id` property on footnotes to prevent them from\n * *clobbering* (default: `'user-content-'`).\n *\n * Pass `''` for trusted markdown and when you are careful with\n * polyfilling.\n * You could pass a different prefix.\n *\n * DOM clobbering is this:\n *\n * ```html\n * <p id=\"x\"></p>\n * <script>alert(x) // `x` now refers to the `p#x` DOM element</script>\n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array<MdastNodes['type']> | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array<HastElementContent>} all\n * Transform the children of an mdast parent to hast.\n * @property {<Type extends HastNodes>(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map<string, MdastDefinition>} definitionById\n * Definitions by their identifier.\n * @property {Map<string, MdastFootnoteDefinition>} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map<string, number>} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array<string>} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array<HastElementContent> | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {<Type extends HastRootContent>(nodes: Array<Type>, loose?: boolean | undefined) => Array<HastText | Type>} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map<string, MdastDefinition>} */\n const definitionById = new Map()\n /** @type {Map<string, MdastFootnoteDefinition>} */\n const footnoteById = new Map()\n /** @type {Map<string, number>} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/9032189/lib/index.js#L20-L21>.\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array<HastElementContent> | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array<HastElementContent>}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array<HastElementContent>} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array<HastElementContent>} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array<Type>} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array<HastText | Type>}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array<HastText | Type>} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @import {Node as UnistNode, Parent as UnistParent} from 'unist'\n * @import {\n * InclusiveDescendant,\n * Matches,\n * Visitors as ParentsVisitors,\n * VisitorResult,\n * VisitorResultExit\n * } from 'unist-util-visit-parents'\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array<infer Children>}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given) before its children.\n *\n * Like `Visitor` in `unist-util-visit-parents`,\n * but with `index` and `parent` instead of `parents`.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n * Index of `node` in `parent`,\n * or `undefined` for the tree itself.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n * Parent of `node`,\n * or `undefined` for the tree itself.\n * @returns {VisitorResult}\n * What to do next.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @callback VisitorExit\n * Handle a node (matching `test`, if given) after its children.\n *\n * Like `VisitorExit` in `unist-util-visit-parents`,\n * but with `index` and `parent` instead of `parents`.\n * @param {Visited} node\n * Found node.\n * @param {Visited extends UnistNode ? number | undefined : never} index\n * Index of `node` in `parent`,\n * or `undefined` for the tree itself.\n * @param {Ancestor extends UnistParent ? Ancestor | undefined : never} parent\n * Parent of `node`,\n * or `undefined` for the tree itself.\n * @returns {VisitorResultExit}\n * What to do next.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [Ancestor=UnistParent]\n * Ancestor type.\n * @typedef Visitors\n * Handle nodes when entering and exiting them.\n *\n * Like `Visitors` in `unist-util-visit-parents`.\n * @property {Visitor<Visited, Ancestor> | null | undefined} [enter]\n * Handle a node before its children (optional).\n * @property {VisitorExit<Visited, Ancestor>} exit\n * Handle a node after its children.\n */\n\n/**\n * @typedef {Visitor<Visited, Parent<Ancestor, Visited>>} BuildVisitorFromMatch\n * Build a typed `Visitor` function from a node and all possible parents.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Visited\n * Node type.\n * @template {UnistParent} Ancestor\n * Parent type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromMatch<\n * Matches<Descendant, Check>,\n * Extract<Descendant, UnistParent>\n * >\n * )} BuildVisitorFromDescendants\n * Build a typed `Visitor` function from a list of descendants and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} Descendant\n * Node type.\n * @template {Test} Check\n * Test type.\n */\n\n/**\n * @typedef {(\n * BuildVisitorFromDescendants<\n * InclusiveDescendant<Tree>,\n * Check\n * >\n * )} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n * Node type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\n/**\n * @typedef {(\n * Visitors<\n * Matches<InclusiveDescendant<Tree>, Check>,\n * Parent<\n * Extract<InclusiveDescendant<Tree>, UnistParent>,\n * Matches<InclusiveDescendant<Tree>, Check>\n * >\n * >\n * )} BuildVisitors\n * Build typed `Visitors` from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parent`.\n * @template {UnistNode} [Tree=UnistNode]\n * Node type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n\n/**\n * Visit nodes.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given,\n * in *reverse preorder* (**NRL**).\n * An `exit` visitor is called in *postorder* (**LRN**)\n * or if `reverse` is given, in *reverse postorder* (**RLN**).\n *\n * You can choose which nodes are visited by passing a `test`.\n * For complex tests, you should test yourself in a visitor, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * Changes inside a node made when entering it are walked,\n * changes made when exiting it are not.\n * See `Visitor` and `VisitorExit` for more info.\n *\n * @overload\n * @param {Tree} tree\n * Tree to traverse.\n * @param {Check} check\n * `unist-util-is`-compatible test.\n * @param {BuildVisitor<Tree, Check> | BuildVisitors<Tree, Check>} visitors\n * Handle each node when entering it,\n * or `{enter, exit}` to also handle it when exiting it.\n * @param {boolean | null | undefined} [reverse]\n * Walk children from last to first;\n * for `enter`, reverse preorder (NRL) instead of preorder (NLR);\n * for `exit`, reverse postorder (RLN) instead of postorder (LRN).\n * @returns {undefined}\n * Nothing.\n *\n * @overload\n * @param {Tree} tree\n * Tree to traverse.\n * @param {BuildVisitor<Tree> | BuildVisitors<Tree>} visitors\n * Handle each node when entering it,\n * or `{enter, exit}` to also handle it when exiting it.\n * @param {boolean | null | undefined} [reverse]\n * Walk children from last to first;\n * for `enter`, reverse preorder (NRL) instead of preorder (NLR);\n * for `exit`, reverse postorder (RLN) instead of postorder (LRN).\n * @returns {undefined}\n * Nothing.\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Visitors | Test} testOrEnterOrVisitors\n * `unist-util-is`-compatible test, `enter`, or `visitors`.\n * @param {Visitor | Visitors | boolean | null | undefined} [enterOrVisitorsOrReverse]\n * `enter`, `visitors`, or `reverse` after a test.\n * @param {boolean | null | undefined} [maybeReverse]\n * Walk children from last to first;\n * for `enter`, reverse preorder (NRL) instead of preorder (NLR);\n * for `exit`, reverse postorder (RLN) instead of postorder (LRN).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visit(\n tree,\n testOrEnterOrVisitors,\n enterOrVisitorsOrReverse,\n maybeReverse\n) {\n /** @type {Test} */\n let check\n /** @type {Visitor | Visitors} */\n let visitors\n /** @type {boolean | null | undefined} */\n let reverse\n\n // Third parameter is an enter visitor or a visitors object, so expect a `test` too.\n if (\n typeof enterOrVisitorsOrReverse === 'function' ||\n (enterOrVisitorsOrReverse && typeof enterOrVisitorsOrReverse === 'object')\n ) {\n check = /** @type {Test} */ (testOrEnterOrVisitors)\n visitors = enterOrVisitorsOrReverse\n reverse = maybeReverse\n }\n // Assume no test.\n else {\n visitors = /** @type {Visitor | Visitors} */ (testOrEnterOrVisitors)\n reverse = enterOrVisitorsOrReverse\n }\n\n if (typeof visitors === 'function') {\n visitParents(tree, check, wrap(visitors), reverse)\n } else {\n visitParents(tree, check, wrapVisitors(visitors), reverse)\n }\n}\n\n/**\n * Turn `visit` visitors into `visitParents` visitors.\n *\n * @param {Visitors} visitors\n * Visitors for `visit`.\n * @returns {ParentsVisitors}\n * Visitors for `visitParents`.\n */\nfunction wrapVisitors(visitors) {\n // Pass anything else straight to `visitParents` to get its errors.\n if (!visitors || typeof visitors !== 'object') return visitors\n\n return {\n enter:\n typeof visitors.enter === 'function'\n ? wrap(visitors.enter)\n : visitors.enter,\n exit:\n typeof visitors.exit === 'function' ? wrap(visitors.exit) : visitors.exit\n }\n}\n\n/**\n * Turn a `visit` visitor into a `visitParents` one.\n *\n * @template {VisitorResult} Result\n * Result type.\n * @param {(node: UnistNode, index: number | undefined, parent: UnistParent | undefined) => Result} visitor\n * Visitor for `visit`.\n * @returns {(node: UnistNode, parents: Array<UnistParent>, index: number | undefined) => Result}\n * Visitor for `visitParents`.\n */\nfunction wrap(visitor) {\n return overload\n\n /**\n * Call `visitor` with `index` and `parent` instead of `parents`.\n *\n * @param {UnistNode} node\n * Visited node.\n * @param {Array<UnistParent>} parents\n * Ancestors of `node`.\n * @param {number | undefined} index\n * Index of `node` in its parent.\n * @returns {Result}\n * What to do next.\n */\n function overload(node, parents, index) {\n return visitor(node, index, parents[parents.length - 1])\n }\n}\n","/**\n * @import {Node as UnistNode, Parent as UnistParent} from 'unist'\n */\n\n/**\n * @typedef {Exclude<import('unist-util-is').Test, undefined> | undefined} Test\n * Test from `unist-util-is`.\n *\n * Note: we have remove and add `undefined`, because otherwise when generating\n * automatic `.d.ts` files, TS tries to flatten paths from a local perspective,\n * which doesn’t work when publishing on npm.\n */\n\n/**\n * @typedef {(\n * Fn extends (value: any) => value is infer Thing\n * ? Thing\n * : Fallback\n * )} Predicate\n * Get the value of a type guard `Fn`.\n * @template Fn\n * Value; typically function that is a type guard (such as `(x): x is Y`).\n * @template Fallback\n * Value to yield if `Fn` is not a type guard.\n */\n\n/**\n * @typedef {(\n * Check extends null | undefined // No test.\n * ? Value\n * : Value extends {type: Check} // String (type) test.\n * ? Value\n * : Value extends Check // Partial test.\n * ? Value\n * : Check extends Function // Function test.\n * ? Predicate<Check, Value> extends Value\n * ? Predicate<Check, Value>\n * : never\n * : never // Some other test?\n * )} MatchesOne\n * Check whether a node matches a primitive check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test, but not arrays.\n */\n\n/**\n * @typedef {(\n * Check extends ReadonlyArray<infer T>\n * ? MatchesOne<Value, T>\n * : Check extends Array<infer T>\n * ? MatchesOne<Value, T>\n * : MatchesOne<Value, Check>\n * )} Matches\n * Check whether a node matches a check in the type system.\n * @template Value\n * Value; typically unist `Node`.\n * @template Check\n * Value; typically `unist-util-is`-compatible test.\n */\n\n/**\n * @typedef {0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10} Uint\n * Number; capped reasonably.\n */\n\n/**\n * @typedef {I extends 0 ? 1 : I extends 1 ? 2 : I extends 2 ? 3 : I extends 3 ? 4 : I extends 4 ? 5 : I extends 5 ? 6 : I extends 6 ? 7 : I extends 7 ? 8 : I extends 8 ? 9 : 10} Increment\n * Increment a number in the type system.\n * @template {Uint} [I=0]\n * Index.\n */\n\n/**\n * @typedef {(\n * Node extends UnistParent\n * ? Node extends {children: Array<infer Children>}\n * ? Child extends Children ? Node : never\n * : never\n * : never\n * )} InternalParent\n * Collect nodes that can be parents of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {InternalParent<InclusiveDescendant<Tree>, Child>} Parent\n * Collect nodes in `Tree` that can be parents of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Depth extends Max\n * ? never\n * :\n * | InternalParent<Node, Child>\n * | InternalAncestor<Node, InternalParent<Node, Child>, Max, Increment<Depth>>\n * )} InternalAncestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Node\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {InternalAncestor<InclusiveDescendant<Tree>, Child>} Ancestor\n * Collect nodes in `Tree` that can be ancestors of `Child`.\n * @template {UnistNode} Tree\n * All node types in a tree.\n * @template {UnistNode} Child\n * Node to search for.\n */\n\n/**\n * @typedef {(\n * Tree extends UnistParent\n * ? Depth extends Max\n * ? Tree\n * : Tree | InclusiveDescendant<Tree['children'][number], Max, Increment<Depth>>\n * : Tree\n * )} InclusiveDescendant\n * Collect all (inclusive) descendants of `Tree`.\n *\n * > 👉 **Note**: for performance reasons, this seems to be the fastest way to\n * > recurse without actually running into an infinite loop, which the\n * > previous version did.\n * >\n * > Practically, a max of `2` is typically enough assuming a `Root` is\n * > passed, but it doesn’t improve performance.\n * > It gets higher with `List > ListItem > Table > TableRow > TableCell`.\n * > Using up to `10` doesn’t hurt or help either.\n * @template {UnistNode} Tree\n * Tree type.\n * @template {Uint} [Max=10]\n * Max; searches up to this depth.\n * @template {Uint} [Depth=0]\n * Current depth.\n */\n\n/**\n * @typedef {'skip' | boolean} Action\n * Union of the action types.\n *\n * @typedef {number} Index\n * Move to the sibling at `index` next (after node itself is completely\n * traversed).\n *\n * Useful if mutating the tree, such as removing the node the visitor is\n * currently on, or any of its previous siblings.\n * Results less than 0 or greater than or equal to `children.length` stop\n * traversing the parent.\n *\n * @typedef {[(Action | null | undefined | void)?, (Index | null | undefined)?]} ActionTuple\n * List with one or two values, the first an action, the second an index.\n *\n * @typedef {Action | ActionTuple | Index | null | undefined | void} VisitorResult\n * Any value that can be returned from an enter visitor.\n *\n * Like `VisitorResultExit`,\n * but `SKIP` can also be returned,\n * to not walk the children of the node,\n * and `ActionTuple` can be used to combine an action with an index.\n *\n * @typedef {Index | boolean | null | undefined | void} VisitorResultExit\n * Any value that can be returned from an exit visitor.\n */\n\n/**\n * @callback Visitor\n * Handle a node (matching `test`, if given) before its children.\n *\n * Changes inside `node` are walked next.\n * Replacing or removing it is easier in `exit`.\n * When replacing or removing it here,\n * return `SKIP` (as otherwise its old children are walked),\n * or `[SKIP, index]` to continue with the node now at `index`.\n * Changing next siblings (in walk order) is fine;\n * changing previous siblings needs a new `Index`.\n * Removing an ancestor or changing its previous siblings is not supported.\n * @param {Visited} node\n * Found node.\n * @param {Array<VisitedParents>} ancestors\n * Ancestors of `node`.\n * @param {number | undefined} index\n * Index of `node` in its parent (the last of `ancestors`),\n * or `undefined` for the tree itself.\n * @returns {VisitorResult}\n * What to do next.\n *\n * Like `VisitorExit`,\n * but `SKIP` can also be returned,\n * to not walk the children of `node`.\n * Passing a tuple back (`ActionTuple`) only makes sense as `[SKIP, Index]`.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @callback VisitorExit\n * Handle a node (matching `test`, if given) after its children.\n *\n * Changes inside `node` are not walked,\n * which makes this a good place to change `node` based on its children,\n * or to replace or remove it.\n * When removing `node` or changing previous siblings (in walk order),\n * return a new `Index`.\n * Removing an ancestor or changing its previous siblings is not supported.\n * @param {Visited} node\n * Found node.\n * @param {Array<VisitedParents>} ancestors\n * Ancestors of `node`.\n * @param {number | undefined} index\n * Index of `node` in its parent (the last of `ancestors`),\n * or `undefined` for the tree itself.\n * @returns {VisitorResultExit}\n * What to do next.\n *\n * `CONTINUE` (`true`, nothing) continues as normal,\n * `EXIT` (`false`) stops traversing,\n * and `Index` continues at that sibling.\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n * Ancestor type.\n */\n\n/**\n * @template {UnistNode} [Visited=UnistNode]\n * Visited node type.\n * @template {UnistParent} [VisitedParents=UnistParent]\n * Ancestor type.\n * @typedef Visitors\n * Handle nodes when entering and exiting them.\n * The `enter` visitor is optional while `exit` is required.\n *\n * Pass an `enter` visitor directly to only handle nodes when entering them.\n *\n * `enter` is called before children (if any) are walked and `exit` after that.\n * `exit` is still called when `enter` returns `SKIP`.\n * Both `enter` and `exit` are only called for nodes that match an optional `test`.\n * @property {Visitor<Visited, VisitedParents> | null | undefined} [enter]\n * Handle a node before its children (optional).\n * @property {VisitorExit<Visited, VisitedParents>} exit\n * Handle a node after its children.\n */\n\n/**\n * @typedef {Visitor<Matches<InclusiveDescendant<Tree>, Check>, Ancestor<Tree, Matches<InclusiveDescendant<Tree>, Check>>>} BuildVisitor\n * Build a typed `Visitor` function from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n * Tree type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\n/**\n * @typedef {Visitors<Matches<InclusiveDescendant<Tree>, Check>, Ancestor<Tree, Matches<InclusiveDescendant<Tree>, Check>>>} BuildVisitors\n * Build typed `Visitors` from a tree and a test.\n *\n * It will infer which values are passed as `node` and which as `parents`.\n * @template {UnistNode} [Tree=UnistNode]\n * Tree type.\n * @template {Test} [Check=Test]\n * Test type.\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from 'unist-util-visit-parents/do-not-use-color'\n\n/** @type {Readonly<ActionTuple>} */\nconst empty = []\n\n/**\n * Continue traversing as normal.\n */\nexport const CONTINUE = true\n\n/**\n * Stop traversing immediately.\n */\nexport const EXIT = false\n\n/**\n * Do not traverse this node’s children.\n * Only works when entering a node.\n */\nexport const SKIP = 'skip'\n\n/**\n * Visit nodes, with ancestral information.\n *\n * This algorithm performs *depth-first* *tree traversal* in *preorder*\n * (**NLR**) or if `reverse` is given,\n * in *reverse preorder* (**NRL**).\n * An `exit` visitor is called in *postorder* (**LRN**)\n * or if `reverse` is given, in *reverse postorder* (**RLN**).\n *\n * You can choose which nodes are visited by passing a `test`.\n * For complex tests, you should test yourself in a visitor, as it will be\n * faster and will have improved type information.\n *\n * Walking the tree is an intensive task.\n * Make use of the return values of the visitor when possible.\n * Instead of walking a tree multiple times, walk it once, use `unist-util-is`\n * to check if a node matches, and then perform different operations.\n *\n * You can change the tree.\n * Changes inside a node made when entering it are walked,\n * changes made when exiting it are not.\n * See `Visitor` and `VisitorExit` for more info.\n *\n * @overload\n * @param {Tree} tree\n * Tree to traverse.\n * @param {Check} check\n * `unist-util-is`-compatible test.\n * @param {BuildVisitor<Tree, Check>} enter\n * Handle each node when entering it.\n * @param {boolean | null | undefined} [reverse]\n * Walk children from last to first;\n * for `enter`, reverse preorder (NRL) instead of preorder (NLR);\n * for `exit`, reverse postorder (RLN) instead of postorder (LRN).\n * @returns {undefined}\n * Nothing.\n *\n * @overload\n * @param {Tree} tree\n * Tree to traverse.\n * @param {Check} check\n * `unist-util-is`-compatible test.\n * @param {BuildVisitors<Tree, Check>} visitors\n * Handle each node when exiting it, and optionally when entering it.\n * @param {boolean | null | undefined} [reverse]\n * Walk children from last to first;\n * for `enter`, reverse preorder (NRL) instead of preorder (NLR);\n * for `exit`, reverse postorder (RLN) instead of postorder (LRN).\n * @returns {undefined}\n * Nothing.\n *\n * @overload\n * @param {Tree} tree\n * Tree to traverse.\n * @param {BuildVisitor<Tree>} enter\n * Handle each node when entering it.\n * @param {boolean | null | undefined} [reverse]\n * Walk children from last to first;\n * for `enter`, reverse preorder (NRL) instead of preorder (NLR);\n * for `exit`, reverse postorder (RLN) instead of postorder (LRN).\n * @returns {undefined}\n * Nothing.\n *\n * @overload\n * @param {Tree} tree\n * Tree to traverse.\n * @param {BuildVisitors<Tree>} visitors\n * Handle each node when exiting it, and optionally when entering it.\n * @param {boolean | null | undefined} [reverse]\n * Walk children from last to first;\n * for `enter`, reverse preorder (NRL) instead of preorder (NLR);\n * for `exit`, reverse postorder (RLN) instead of postorder (LRN).\n * @returns {undefined}\n * Nothing.\n *\n * @param {UnistNode} tree\n * Tree to traverse.\n * @param {Visitor | Visitors | Test} testOrEnterOrVisitors\n * `unist-util-is`-compatible test, `enter`, or `visitors`.\n * @param {Visitor | Visitors | boolean | null | undefined} [enterOrVisitorsOrReverse]\n * `enter`, `visitors`, or `reverse` after a test.\n * @param {boolean | null | undefined} [reverse]\n * Walk children from last to first;\n * for `enter`, reverse preorder (NRL) instead of preorder (NLR);\n * for `exit`, reverse postorder (RLN) instead of postorder (LRN).\n * @returns {undefined}\n * Nothing.\n *\n * @template {UnistNode} Tree\n * Node type.\n * @template {Test} Check\n * `unist-util-is`-compatible test.\n */\nexport function visitParents(\n tree,\n testOrEnterOrVisitors,\n enterOrVisitorsOrReverse,\n reverse\n) {\n if (!tree || typeof tree !== 'object') {\n throw new Error('Unexpected value `' + tree + '` for `tree`, expected node')\n }\n\n let preorder = true\n /** @type {Test} */\n let check\n /** @type {Visitors | Visitor} */\n let visitors\n /** @type {Visitor | null | undefined} */\n let enter\n /** @type {VisitorExit | null | undefined} */\n let exit\n\n // Third parameter is an enter visitor or a visitors object, so expect a `test` too.\n if (\n typeof enterOrVisitorsOrReverse === 'function' ||\n (enterOrVisitorsOrReverse && typeof enterOrVisitorsOrReverse === 'object')\n ) {\n check = /** @type {Test} */ (testOrEnterOrVisitors)\n visitors = enterOrVisitorsOrReverse\n if (reverse) preorder = false\n }\n // Assume no test.\n else {\n visitors = /** @type {Visitors | Visitor} */ (testOrEnterOrVisitors)\n if (enterOrVisitorsOrReverse) preorder = false\n }\n\n if (typeof visitors === 'function') {\n enter = visitors\n } else if (visitors && typeof visitors === 'object') {\n if (visitors.enter === null || visitors.enter === undefined) {\n // Empty.\n } else if (typeof visitors.enter === 'function') {\n enter = visitors.enter\n } else {\n throw new Error(\n 'Unexpected value `' +\n visitors.enter +\n '` for `visitors.enter`, expected optional visitor'\n )\n }\n\n if (typeof visitors.exit === 'function') {\n exit = visitors.exit\n } else {\n throw new Error(\n 'Unexpected value `' +\n visitors.exit +\n '` for `visitors.exit`, expected visitor (pass a visitor directly if you only want an enter visitor)'\n )\n }\n } else {\n throw new Error(\n 'Unexpected value `' +\n visitors +\n '` for `enter` or `visitors`, expected visitor or object with visitors'\n )\n }\n\n const is = convert(check)\n const step = preorder ? 1 : -1\n\n factory(tree, undefined, [])()\n\n /**\n * Create a function to visit a node.\n *\n * @param {UnistNode} node\n * Node to visit.\n * @param {number | undefined} index\n * Index of `node` in its parent.\n * @param {Array<UnistParent>} parents\n * Ancestors of `node`.\n * @returns {() => Readonly<ActionTuple>}\n * Visit `node`.\n */\n function factory(node, index, parents) {\n const value = /** @type {Record<string, unknown>} */ (\n node && typeof node === 'object' ? node : {}\n )\n\n if (typeof value.type === 'string') {\n const name =\n // `hast`\n typeof value.tagName === 'string'\n ? value.tagName\n : // `xast`\n typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' + color(node.type + (name ? '<' + name + '>' : '')) + ')'\n })\n }\n\n return visit\n\n function visit() {\n const matches =\n !check || is(node, index, parents[parents.length - 1] || undefined)\n /** @type {Readonly<ActionTuple>} */\n let result = empty\n\n if (enter && matches) {\n result = toResult(enter(node, parents, index))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n if ('children' in node && node.children) {\n const nodeAsParent = /** @type {UnistParent} */ (node)\n\n if (nodeAsParent.children && result[0] !== SKIP) {\n let offset = (preorder ? -1 : nodeAsParent.children.length) + step\n const grandparents = [...parents, nodeAsParent]\n\n while (offset > -1 && offset < nodeAsParent.children.length) {\n const child = nodeAsParent.children[offset]\n\n const subresult = factory(child, offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n }\n\n if (exit && matches) {\n const exitResult = toResult(exit(node, parents, index))\n\n if (exitResult[0] === SKIP) {\n throw new Error(\n 'Unexpected value `' +\n exitResult[0] +\n '` from `exit`, expected `CONTINUE`, `EXIT`, index, or nothing'\n )\n }\n\n // Prefer a result from `exit` over `enter`.\n if (exitResult[0] === EXIT || typeof exitResult[1] === 'number') {\n return exitResult\n }\n }\n\n return result\n }\n }\n}\n\n/**\n * Turn a return value into a clean result.\n *\n * @param {VisitorResult} value\n * Valid return values from visitors.\n * @returns {Readonly<ActionTuple>}\n * Clean result.\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return value === null || value === undefined ? empty : [value]\n}\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@linkcode CompileResultMap}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@linkcode Node}\n * and {@linkcode VFile} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@linkcode VFile} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@linkcode Node}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin<Array<any>, any, any> |\n * PluginTuple<Array<any>, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array<Pluggable>} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// <https://github.com/microsoft/TypeScript/issues/55197>.\n/**\n * @template {Array<unknown>} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array<unknown>} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node it expects.\n * * If the plugin sets a {@linkcode Parser}, this should be\n * `string`.\n * * If the plugin sets a {@linkcode Compiler}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@linkcode Transformer}, this\n * should be the node that that yields.\n * * If the plugin sets a {@linkcode Parser}, this should be the\n * node that it yields.\n * * If the plugin sets a {@linkcode Compiler}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin<TupleParameters, Input, Output>,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback<Output>} next\n * Callback.\n * @returns {(\n * Promise<Output | undefined | void> |\n * Promise<never> | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise<undefined>` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise<Node>` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * : // Unknown.\n * Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@linkcode VFile} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@linkcode VFile}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser<ParseTree extends undefined ? Node : ParseTree> |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array<PluginTuple<Array<unknown>>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser<ParseTree extends undefined ? Node : ParseTree> |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback<VFileWithOutput<CompileResult>>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise<VFileWithOutput<CompileResult>>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback<VFileWithOutput<CompileResult>> | undefined} [done]\n * Callback (optional).\n * @returns {Promise<VFile> | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput<CompileResult>) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput<CompileResult>} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput<CompileResult> | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput<CompileResult>}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput<CompileResult> | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback<VFileWithOutput<CompileResult>>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise<TailTree extends undefined ? Node : TailTree>}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback<TailTree extends undefined ? Node : TailTree> |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} [done]\n * Callback (optional).\n * @returns {Promise<TailTree extends undefined ? Node : TailTree> | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback<TailTree extends undefined ? Node : TailTree>}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array<unknown>} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Plugin<Parameters, Input, Output>} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin<ParseTree, HeadTree, TailTree, CompileTree, CompileResult, Input, Output>}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value, [])\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] =\n /** @type {PluginTuple<Array<unknown>>} */ (value)\n addPlugin(plugin, parameters)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {Array<unknown>} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","import { Ban, Replace } from 'lucide-react';\n\nimport type { Stale } from '../services/deliveries';\n\n/** The mark of a stale question or step, as the mockups draw it: ban when withdrawn, swap when replaced. */\nexport function StaleIcon({ kind }: { kind: Stale['kind'] }) {\n const Icon = kind === 'withdrawn' ? Ban : Replace;\n return <Icon role=\"img\" aria-label={kind === 'withdrawn' ? 'Withdrawn' : 'Replaced'} className=\"size-3.5 shrink-0 text-muted-foreground\" />;\n}\n"],"names":["hasOwn","Object","prototype","hasOwnProperty","toStr","toString","defineProperty","gOPD","getOwnPropertyDescriptor","isArray","arr","Array","call","isPlainObject","obj","hasOwnConstructor","hasIsPrototypeOf","key","setProperty","target","options","name","enumerable","configurable","value","newValue","writable","getProperty","module","exports","extend","src","copy","copyIsArray","clone","arguments","i","length","deep","assertEqual","val","toZod","assertNotEqual","schema","_x","_arg","Error","numericValues","k","values","assert","entries","getEnumValues","assertIs","v","_","indexOf","assertNever","filter","array","joinValues","separator","Cached","map","stringifyPrimitive","_getter","getter","jsonStringifyReplacer","end","join","undefined","_value","input","startsWith","cached","source","nullish","Number","slice","ratio","step","round","abs","start","Math","floatSafeRemainder","get","EVALUATING","max","cleanRegex","endsWith","tolerance","object","mirrorShape","roundedRatio","Symbol","EPSILON","desc","defineLazy","getPrototypeOf","objectClone","create","getOwnPropertyDescriptors","set","prop","shape","navigator","raw","o","assignProp","deferProp","putProp","rawShape","def","_zod","keyCount","getParsedType","data","sourceShape","keys","wrap","ownKeys","catch","mirrorProps","mergedDescriptors","defs","defineProperties","mergeDefs","inst","descriptors","Reflect","path","resolvedObj","all","then","chars","str","acc","results","getElementAtPath","promisesObj","cloneDef","promises","isObject","assign","replace","JSON","globalConfig","reduce","captureStackTrace","toLowerCase","trim","promiseAllObject","Promise","ctor","userAgent","randomString","includes","floor","random","esc","stringify","slugify","_args","allowsEval","jitless","Set","numKeys","t","F","Function","shallowClone","prot","Map","params","message","isNaN","error","File","createTransparentProxy","cl","parent","receiver","normalizeParams","_params","Date","safeint","checks","propertyKeyTypes","primitiveTypes","currDef","escapeRegex","mask","constr","descriptor","MIN_SAFE_INTEGER","has","Proxy","BigInt","hasChecks","b","deleteProperty","a","MAX_SAFE_INTEGER","maskedKeys","newShape","String","existingShape","optionalKeys","optin","optout","NUMBER_FORMAT_RANGES","extended","int32","uint32","float32","float64","MAX_VALUE","BIGINT_FORMAT_RANGES","int64","push","uint64","pick","x","aborted","prefixIssues","omit","omitted","selected","d","ch","issues","Class","traits","iss","continue","safeExtend","merge","customError","_a","catchall","explicitlyAborted","startIndex","partial","type","innerType","required","units","highSurrogate","charCodeAt","test","unshift","unwrapMessage","sizeCaps","defChecks","caps","getSizableOrigin","check","base64","maximum","size","bytes","attachSchema","finalizeIssue","ctx","config","Uint8Array","schemaError","full","padStart","localeError","reportInput","count","padding","proto","codePointLength","parsedType","own","getLengthableOrigin","args","table","compute","atob","issue","uint8ArrayToBase64","code","cleanEnum","parseInt","el","base64ToUint8Array","binaryString","cleanHex","fromCharCode","btoa","base64urlToUint8Array","base64url","repeat","uint8ArrayToBase64url","hexToUint8Array","hex","uint8ArrayToHex","from","members","defineBound","breaker","broke","hide","derived","computes","fn","bind","claim","sentinel","installing","defineLazyInternal","outer","err","installLazyProp","make","CONSTANT_CATCH","constantCatch","JOB_LABELS","decide","do","PLACES","bridge","chat","slack","gateway","jobLabelOf","job","jobWordOf","isAlert","MS_PER_MINUTE","MINUTES_PER_HOUR","HOURS_PER_DAY","DAYS_YESTERDAY","ageOf","sentAt","now","minutes","getTime","hours","days","seenTextOf","seenIn","saidOf","outcome","option","kind","place","isEndedWell","labelOf","optionLabel","doneOutcomeOf","item","text","isOk","said","note","replacementTitle","isSentAsPerson","ANSWER_SHOWN_IN","sameAnswerOf","places","shown","flatMap","named","at","charAt","toUpperCase","endedOf","timeZone","time","clockTimeOf","sameAnswer","sent","ENDED_TITLES","seen","answered","done","cannot","withdrawn","replaced","notSent","endedTitleOf","PLACE_NAMES","email","historyOf","arrived","detail","isEnd","seenLine","dayNumberOf","year","month","day","Intl","DateTimeFormat","format","split","UTC","dayOf","hour","minute","hourCycle","fromWordsOf","seenWordsOf","wasNew","isDoneOnSeeing","screenTitleOf","unseenSaidOf","alertOf","opened","contentType","ALERT_CONTENT_TYPE","alert","alertMessageSchema","safeParse","parse","payload","success","ship","signal","healthHrefOf","consoleUrl","shipId","clearsSaidOf","clears","PROSE","putOf","chosen","inBasket","label","isReady","infoLinesOf","isStale","isPickSaid","isNothingSentSaid","isAtPick","InBasketNotice","basketHref","isRemoving","isWorking","onRemove","className","href","variant","isPending","pendingLabel","disabled","onClick","InfoLine","children","QuestionOptions","question","onChoose","checked","onChange","STALE_WORDS","open","StaleNotice","stale","isStep","onOpen","replacementId","words","clockOf","StepAsked","isFinished","link","why","isOutside","address","rel","StepOutcomeNotice","finished","isDone","Icon","role","StepControls","working","failure","onNoteChange","onFinish","rows","event","placeholder","isFailure","QuestionControls","put","isPutting","onPut","SendShipButton","onSendMessage","ItemHeading","delivery","look","JobIcon","icon","tone","Separator","dateTime","ScreenBar","title","onBack","DeliveryCard","meetingHref","onAnswer","onDone","onFinishStep","setChosen","infoLines","sendShip","alertShip","body","context","healthHref","id","send","deprecate","ok","unreachable","equal","StaleIcon"],"mappings":"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AA,ADAO,CCAP,ADAO,CCAP,ADAO,CCAP,ADAO,CAAA,ACAP,CAAA,ADAO,CCAP,ADAO,CAAA,ACAP,CAAA,ADAO,CCAP,ADAO,CCAP,ADAO,CCAP,ADAO,CAAA,ACAP,CAAA,ADAO,CAAA,ACAP,CDAO,ACAP,CDAO,ACAP,CAAA,ADAO,CAAA,ACAP,CAAA,ADAO,CCAP,ADAO,CCAP,ADAO,CAAA,ACAP,CAAA,ADAO,CCAP,ADAO,CAAA,ACAP,CAAA,ADAO,CCAP,ADAO,CCAP,ADAO,CCAP,ADAO,CCAP,ADAO,CCAP,ADAO,CCAP,ADAO,CCAP,ADAO,CCAP,ADAO,CCAP,ADAO,CCAP,ADAO,CCAP,ADAO,CAAA,ACAP,CAAA,ADAO,CCAP,ADAO,CCAP,ADAO,CCAP,ADAO,CCAP,ADAO,CCAP,ADAO,CAAA,ACAP,CAAA,ADAO,CCAP,ADAO,CCAP,ADAO,CCAP,ADAO,CAAA,ACAP,CAAA,ADAO,CCAP,ADAO,CCAP,ADAO,CCAP,ADAO,CAAA,ACAP,CDAO,ACAP,CAAA,ADAO,CCAP,ADAO,CCAP,ADAO,CAAA,ACAP,CAAA,ADAO,CCAP,ADAO,AAA+D,CCAtE,ADAsE,CAAA,ACAtE,CAAA,ADAsE,CCAtE,ADAsE,AAAK,CAAA,ACA3E,CDA2E,ACA3E,CDA2E,ACA3E,CAAA,ADA2E,CCA3E,ADA2E,CCA3E,ADA2E,CCA3E,ADA2E,CCA3E,GDCP,QAAS,CAAE,AAAF,ACAA,CAAA,CAAA,ADAK,CCAL,ADAK,CAAA,ACAL,CDAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAgB,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAC7C,CAAC,OAAQ,CAAA,AAAE,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAa,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAC1C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ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","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,41,42,45,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183]}