@sayoriqwq/effect-harness 0.0.1

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 (2055) hide show
  1. package/HARNESS.md +34 -0
  2. package/README.md +113 -0
  3. package/dist/bin/effect-harness.d.ts +2 -0
  4. package/dist/bin/effect-harness.js +39 -0
  5. package/dist/bin/effect-harness.js.map +1 -0
  6. package/dist/src/cli/Main.d.ts +6 -0
  7. package/dist/src/cli/Main.js +141 -0
  8. package/dist/src/cli/Main.js.map +1 -0
  9. package/dist/src/harness/CraftSkills.d.ts +14 -0
  10. package/dist/src/harness/CraftSkills.js +164 -0
  11. package/dist/src/harness/CraftSkills.js.map +1 -0
  12. package/dist/src/harness/Errors.d.ts +24 -0
  13. package/dist/src/harness/Errors.js +26 -0
  14. package/dist/src/harness/Errors.js.map +1 -0
  15. package/dist/src/harness/GuardrailRules.d.ts +6 -0
  16. package/dist/src/harness/GuardrailRules.js +303 -0
  17. package/dist/src/harness/GuardrailRules.js.map +1 -0
  18. package/dist/src/harness/Guardrails.d.ts +10 -0
  19. package/dist/src/harness/Guardrails.js +69 -0
  20. package/dist/src/harness/Guardrails.js.map +1 -0
  21. package/dist/src/harness/Init.d.ts +9 -0
  22. package/dist/src/harness/Init.js +234 -0
  23. package/dist/src/harness/Init.js.map +1 -0
  24. package/dist/src/harness/Model.d.ts +44 -0
  25. package/dist/src/harness/Model.js +169 -0
  26. package/dist/src/harness/Model.js.map +1 -0
  27. package/dist/src/harness/ModuleSources.d.ts +5 -0
  28. package/dist/src/harness/ModuleSources.js +47 -0
  29. package/dist/src/harness/ModuleSources.js.map +1 -0
  30. package/dist/src/harness/PnpmWorkspace.d.ts +2 -0
  31. package/dist/src/harness/PnpmWorkspace.js +23 -0
  32. package/dist/src/harness/PnpmWorkspace.js.map +1 -0
  33. package/dist/src/harness/Publish.d.ts +53 -0
  34. package/dist/src/harness/Publish.js +282 -0
  35. package/dist/src/harness/Publish.js.map +1 -0
  36. package/dist/src/harness/SelfVerify.d.ts +4 -0
  37. package/dist/src/harness/SelfVerify.js +56 -0
  38. package/dist/src/harness/SelfVerify.js.map +1 -0
  39. package/dist/src/harness/SourcePin.d.ts +12 -0
  40. package/dist/src/harness/SourcePin.js +320 -0
  41. package/dist/src/harness/SourcePin.js.map +1 -0
  42. package/dist/src/harness/Status.d.ts +12 -0
  43. package/dist/src/harness/Status.js +88 -0
  44. package/dist/src/harness/Status.js.map +1 -0
  45. package/dist/src/harness/TargetVerify.d.ts +8 -0
  46. package/dist/src/harness/TargetVerify.js +432 -0
  47. package/dist/src/harness/TargetVerify.js.map +1 -0
  48. package/dist/src/harness/TestContract.d.ts +6 -0
  49. package/dist/src/harness/TestContract.js +45 -0
  50. package/dist/src/harness/TestContract.js.map +1 -0
  51. package/dist/src/platform/Json.d.ts +8 -0
  52. package/dist/src/platform/Json.js +35 -0
  53. package/dist/src/platform/Json.js.map +1 -0
  54. package/dist/src/platform/ManagedFiles.d.ts +8 -0
  55. package/dist/src/platform/ManagedFiles.js +59 -0
  56. package/dist/src/platform/ManagedFiles.js.map +1 -0
  57. package/dist/src/platform/Process.d.ts +8 -0
  58. package/dist/src/platform/Process.js +80 -0
  59. package/dist/src/platform/Process.js.map +1 -0
  60. package/guide/default-capabilities.md +38 -0
  61. package/guide/index.md +49 -0
  62. package/guide/setup.md +64 -0
  63. package/harness/default-capabilities.md +32 -0
  64. package/harness/exposure.md +46 -0
  65. package/harness/feedback/index.md +60 -0
  66. package/harness/index.md +22 -0
  67. package/harness/official-inventory.md +85 -0
  68. package/harness/runtime/codex/AGENTS.fragment.md +28 -0
  69. package/harness/runtime/codex/agents/effect-worker.md +26 -0
  70. package/harness/runtime/codex/skills/effect-code/SKILL.md +72 -0
  71. package/harness/runtime/codex/skills/effect-code/agents/openai.yaml +4 -0
  72. package/harness/runtime/codex/skills/effect-feedback/SKILL.md +66 -0
  73. package/harness/runtime/codex/skills/effect-feedback/agents/openai.yaml +4 -0
  74. package/harness/source.md +52 -0
  75. package/harness/target-agent-contract.md +205 -0
  76. package/package.json +68 -0
  77. package/repos/craft-skills.manifest.json +34 -0
  78. package/repos/effect/.agents/skills/grill-me/SKILL.md +43 -0
  79. package/repos/effect/.agents/skills/jsdocs/SKILL.md +203 -0
  80. package/repos/effect/.agents/skills/scratchpad/SKILL.md +44 -0
  81. package/repos/effect/.agents/skills/scratchpad/agents/openai.yaml +7 -0
  82. package/repos/effect/.agents/skills/scratchpad/scripts/extract-example.mjs +260 -0
  83. package/repos/effect/.changeset/add-bigdecimal-sumall-multiplyall.md +5 -0
  84. package/repos/effect/.changeset/add-chunk-schema.md +5 -0
  85. package/repos/effect/.changeset/add-command-hidden.md +19 -0
  86. package/repos/effect/.changeset/add-config-nested.md +5 -0
  87. package/repos/effect/.changeset/add-flag-hidden.md +15 -0
  88. package/repos/effect/.changeset/add-from-string-schemas.md +5 -0
  89. package/repos/effect/.changeset/add-headers-remove-many.md +5 -0
  90. package/repos/effect/.changeset/add-indexeddb-kvs-layer.md +5 -0
  91. package/repos/effect/.changeset/add-make-msgpack.md +5 -0
  92. package/repos/effect/.changeset/add-make-option.md +5 -0
  93. package/repos/effect/.changeset/add-missing-tx-modules.md +11 -0
  94. package/repos/effect/.changeset/add-newtype-module.md +5 -0
  95. package/repos/effect/.changeset/add-scalar-show-operation-id.md +5 -0
  96. package/repos/effect/.changeset/add-schedule-tap.md +5 -0
  97. package/repos/effect/.changeset/add-schema-annotate-encoded.md +5 -0
  98. package/repos/effect/.changeset/add-schema-array-ensure.md +5 -0
  99. package/repos/effect/.changeset/add-schema-bigdecimal.md +5 -0
  100. package/repos/effect/.changeset/add-schema-datetime.md +5 -0
  101. package/repos/effect/.changeset/add-schema-option-from-optional-nullor.md +5 -0
  102. package/repos/effect/.changeset/add-schema-option-from-undefined-nullish.md +5 -0
  103. package/repos/effect/.changeset/add-schema-string-encoding.md +5 -0
  104. package/repos/effect/.changeset/add-sql-pglite.md +5 -0
  105. package/repos/effect/.changeset/add-standard-jsdoc-rule.md +5 -0
  106. package/repos/effect/.changeset/add-stream-broadcastn.md +5 -0
  107. package/repos/effect/.changeset/add-unstable-encoding-export.md +5 -0
  108. package/repos/effect/.changeset/afraid-cobras-like.md +5 -0
  109. package/repos/effect/.changeset/ai-openai-config-field-leak.md +6 -0
  110. package/repos/effect/.changeset/ai-openai-file-nullable-fields.md +5 -0
  111. package/repos/effect/.changeset/anthropic-4-6-structured-output.md +5 -0
  112. package/repos/effect/.changeset/asyncresult-exhaustive.md +5 -0
  113. package/repos/effect/.changeset/atom-stream-error-type.md +5 -0
  114. package/repos/effect/.changeset/beige-paths-sort.md +5 -0
  115. package/repos/effect/.changeset/better-apples-nail.md +5 -0
  116. package/repos/effect/.changeset/better-rocks-arrive.md +5 -0
  117. package/repos/effect/.changeset/big-pans-look.md +5 -0
  118. package/repos/effect/.changeset/blue-dingos-greet.md +5 -0
  119. package/repos/effect/.changeset/blue-ligers-cheat.md +5 -0
  120. package/repos/effect/.changeset/blue-onions-smile.md +5 -0
  121. package/repos/effect/.changeset/blue-ravens-type.md +5 -0
  122. package/repos/effect/.changeset/blue-trams-kiss.md +7 -0
  123. package/repos/effect/.changeset/bold-chairs-yawn.md +5 -0
  124. package/repos/effect/.changeset/bold-planets-shout.md +30 -0
  125. package/repos/effect/.changeset/breezy-meals-see.md +5 -0
  126. package/repos/effect/.changeset/bright-bugs-bow.md +5 -0
  127. package/repos/effect/.changeset/bright-canyons-clean.md +5 -0
  128. package/repos/effect/.changeset/bright-dogs-fail.md +5 -0
  129. package/repos/effect/.changeset/bright-flags-stand.md +5 -0
  130. package/repos/effect/.changeset/bright-laws-teach.md +5 -0
  131. package/repos/effect/.changeset/bright-lemons-dance.md +5 -0
  132. package/repos/effect/.changeset/bright-planes-smash.md +5 -0
  133. package/repos/effect/.changeset/bright-rats-attend.md +5 -0
  134. package/repos/effect/.changeset/bright-toes-rush.md +5 -0
  135. package/repos/effect/.changeset/bumpy-boxes-teach.md +5 -0
  136. package/repos/effect/.changeset/busy-lions-sneeze.md +5 -0
  137. package/repos/effect/.changeset/busy-maps-attend.md +7 -0
  138. package/repos/effect/.changeset/calm-buckets-own.md +5 -0
  139. package/repos/effect/.changeset/calm-carrots-march.md +7 -0
  140. package/repos/effect/.changeset/calm-cars-rest.md +5 -0
  141. package/repos/effect/.changeset/calm-panthers-nail.md +5 -0
  142. package/repos/effect/.changeset/calm-seas-smile.md +5 -0
  143. package/repos/effect/.changeset/calm-squids-hug.md +5 -0
  144. package/repos/effect/.changeset/chatty-poets-type.md +5 -0
  145. package/repos/effect/.changeset/chilled-mice-wash.md +5 -0
  146. package/repos/effect/.changeset/chilly-pumas-rule.md +5 -0
  147. package/repos/effect/.changeset/chubby-buckets-feel.md +5 -0
  148. package/repos/effect/.changeset/chubby-parents-flow.md +5 -0
  149. package/repos/effect/.changeset/chubby-planets-fall.md +5 -0
  150. package/repos/effect/.changeset/clean-balloons-tan.md +5 -0
  151. package/repos/effect/.changeset/clean-bulldogs-care.md +5 -0
  152. package/repos/effect/.changeset/clean-dryers-sneeze.md +5 -0
  153. package/repos/effect/.changeset/clean-geese-work.md +5 -0
  154. package/repos/effect/.changeset/clean-goats-wave.md +5 -0
  155. package/repos/effect/.changeset/clean-needles-shake.md +23 -0
  156. package/repos/effect/.changeset/clean-tires-guess.md +5 -0
  157. package/repos/effect/.changeset/clear-spies-boil.md +5 -0
  158. package/repos/effect/.changeset/cli-help-choices.md +5 -0
  159. package/repos/effect/.changeset/cold-knives-lie.md +35 -0
  160. package/repos/effect/.changeset/cold-rooms-show.md +5 -0
  161. package/repos/effect/.changeset/cold-sloths-wave.md +5 -0
  162. package/repos/effect/.changeset/compact-json-schema-enum.md +25 -0
  163. package/repos/effect/.changeset/config-withdefault-eager.md +7 -0
  164. package/repos/effect/.changeset/config.json +24 -0
  165. package/repos/effect/.changeset/consolidate-encoding.md +5 -0
  166. package/repos/effect/.changeset/consolidate-sql-error.md +16 -0
  167. package/repos/effect/.changeset/crisp-seas-warn.md +5 -0
  168. package/repos/effect/.changeset/cuddly-rooms-bet.md +5 -0
  169. package/repos/effect/.changeset/curly-poems-talk.md +5 -0
  170. package/repos/effect/.changeset/curly-spies-relax.md +5 -0
  171. package/repos/effect/.changeset/curvy-apples-float.md +5 -0
  172. package/repos/effect/.changeset/custom-http-security-openapi-generator.md +5 -0
  173. package/repos/effect/.changeset/cute-heads-thank.md +5 -0
  174. package/repos/effect/.changeset/cyan-loops-grow.md +5 -0
  175. package/repos/effect/.changeset/cyan-radios-switch.md +5 -0
  176. package/repos/effect/.changeset/deep-rivers-spend.md +5 -0
  177. package/repos/effect/.changeset/dirty-lamps-trade.md +5 -0
  178. package/repos/effect/.changeset/dirty-laws-wear.md +5 -0
  179. package/repos/effect/.changeset/duration-temporal-object-input.md +7 -0
  180. package/repos/effect/.changeset/eager-coats-cheat.md +5 -0
  181. package/repos/effect/.changeset/early-birds-dream.md +5 -0
  182. package/repos/effect/.changeset/early-donuts-argue.md +5 -0
  183. package/repos/effect/.changeset/early-peaches-check.md +6 -0
  184. package/repos/effect/.changeset/eff-691-default-logger-ordering.md +5 -0
  185. package/repos/effect/.changeset/eff-693-rpcgroup-handler-deps.md +5 -0
  186. package/repos/effect/.changeset/eff-694-cli-completions-module.md +5 -0
  187. package/repos/effect/.changeset/eff-695-layer-mock-dual-api.md +5 -0
  188. package/repos/effect/.changeset/eff-697-rpcserialization-json-array-decode.md +5 -0
  189. package/repos/effect/.changeset/eff-698-rpcserialization-unreachable-branch.md +5 -0
  190. package/repos/effect/.changeset/eff-700-httpapi-middleware-errors.md +12 -0
  191. package/repos/effect/.changeset/eff-701-httpapierror-respondable.md +5 -0
  192. package/repos/effect/.changeset/eff-704-stream-merge-predicate.md +5 -0
  193. package/repos/effect/.changeset/eff-705-layer-tap-apis.md +5 -0
  194. package/repos/effect/.changeset/eff-706-servicemap-mutate.md +6 -0
  195. package/repos/effect/.changeset/eff-716-response-id-tracker-map.md +5 -0
  196. package/repos/effect/.changeset/eff-717-openai-socket-cancel.md +5 -0
  197. package/repos/effect/.changeset/eff-718-embedding-model-surface.md +13 -0
  198. package/repos/effect/.changeset/eff-725-fix-catch-jsdoc.md +5 -0
  199. package/repos/effect/.changeset/eff-726-model-dimensions.md +7 -0
  200. package/repos/effect/.changeset/eff-727-cli-help-alignment.md +5 -0
  201. package/repos/effect/.changeset/eff-730-language-model-incremental-fallback.md +5 -0
  202. package/repos/effect/.changeset/eff-736-cached-with-ttl.md +5 -0
  203. package/repos/effect/.changeset/eff-738-cron-prev.md +5 -0
  204. package/repos/effect/.changeset/eff-739-openai-function-call-done.md +5 -0
  205. package/repos/effect/.changeset/eff-740-missing-summary-parts.md +5 -0
  206. package/repos/effect/.changeset/eff-742-http-client-request-web.md +5 -0
  207. package/repos/effect/.changeset/eff-744-sqlite-migrator-lock.md +5 -0
  208. package/repos/effect/.changeset/eff-746-fixed-iteration-catchup.md +5 -0
  209. package/repos/effect/.changeset/eff-747-unify-effect.md +5 -0
  210. package/repos/effect/.changeset/eff-754-url-builder-any.md +6 -0
  211. package/repos/effect/.changeset/eff-755-references-core.md +5 -0
  212. package/repos/effect/.changeset/eff-769-select-text-highlight.md +5 -0
  213. package/repos/effect/.changeset/eff-774-mutable-list-append-all-empty-array.md +5 -0
  214. package/repos/effect/.changeset/eff-777-schema-make-effect.md +5 -0
  215. package/repos/effect/.changeset/eff-778-http-middleware-path-logger.md +5 -0
  216. package/repos/effect/.changeset/eff-779-keyvaluestore-layer-sql.md +5 -0
  217. package/repos/effect/.changeset/eff-780-layer-unify.md +5 -0
  218. package/repos/effect/.changeset/eff-781-fix-stream-toqueue-types.md +5 -0
  219. package/repos/effect/.changeset/eff-782-httpapi-status-literals.md +5 -0
  220. package/repos/effect/.changeset/eff-783-atom-http-api-errors.md +5 -0
  221. package/repos/effect/.changeset/eff-819-cluster-workflow-shard-groups.md +5 -0
  222. package/repos/effect/.changeset/eight-turkeys-own.md +7 -0
  223. package/repos/effect/.changeset/eighty-lies-deny.md +5 -0
  224. package/repos/effect/.changeset/eighty-poets-draw.md +9 -0
  225. package/repos/effect/.changeset/eighty-swans-scream.md +5 -0
  226. package/repos/effect/.changeset/eighty-teeth-sniff.md +5 -0
  227. package/repos/effect/.changeset/eleven-apes-share.md +5 -0
  228. package/repos/effect/.changeset/eleven-numbers-bake.md +5 -0
  229. package/repos/effect/.changeset/empty-gifts-beg.md +5 -0
  230. package/repos/effect/.changeset/empty-http-rpc-client.md +5 -0
  231. package/repos/effect/.changeset/eventlog-unencrypted.md +5 -0
  232. package/repos/effect/.changeset/expand-schema-filter-output.md +24 -0
  233. package/repos/effect/.changeset/export-schema-encode-keys-interface.md +7 -0
  234. package/repos/effect/.changeset/extract-semaphore-latch.md +10 -0
  235. package/repos/effect/.changeset/fair-bees-relax.md +5 -0
  236. package/repos/effect/.changeset/fair-buttons-share.md +7 -0
  237. package/repos/effect/.changeset/fair-cooks-stop.md +5 -0
  238. package/repos/effect/.changeset/fair-cups-train.md +5 -0
  239. package/repos/effect/.changeset/fair-dryers-speak.md +5 -0
  240. package/repos/effect/.changeset/fair-forks-shake.md +5 -0
  241. package/repos/effect/.changeset/fair-pandas-prove.md +5 -0
  242. package/repos/effect/.changeset/fair-pants-float.md +5 -0
  243. package/repos/effect/.changeset/fair-poems-visit.md +5 -0
  244. package/repos/effect/.changeset/famous-wolves-lead.md +5 -0
  245. package/repos/effect/.changeset/fancy-glasses-grow.md +5 -0
  246. package/repos/effect/.changeset/fast-times-camp.md +5 -0
  247. package/repos/effect/.changeset/few-birds-matter.md +5 -0
  248. package/repos/effect/.changeset/few-cougars-dig.md +5 -0
  249. package/repos/effect/.changeset/few-foxes-grin.md +5 -0
  250. package/repos/effect/.changeset/few-mirrors-pull.md +14 -0
  251. package/repos/effect/.changeset/few-socks-poke.md +5 -0
  252. package/repos/effect/.changeset/fiber-runtime-start-metrics.md +5 -0
  253. package/repos/effect/.changeset/fiery-jokes-care.md +5 -0
  254. package/repos/effect/.changeset/fiery-mammals-call.md +5 -0
  255. package/repos/effect/.changeset/fine-walls-decide.md +5 -0
  256. package/repos/effect/.changeset/first-success-of.md +5 -0
  257. package/repos/effect/.changeset/five-parents-relax.md +5 -0
  258. package/repos/effect/.changeset/five-worms-rhyme.md +5 -0
  259. package/repos/effect/.changeset/fix-1332.md +5 -0
  260. package/repos/effect/.changeset/fix-1917.md +11 -0
  261. package/repos/effect/.changeset/fix-1927.md +5 -0
  262. package/repos/effect/.changeset/fix-1940.md +7 -0
  263. package/repos/effect/.changeset/fix-1947.md +7 -0
  264. package/repos/effect/.changeset/fix-2002.md +5 -0
  265. package/repos/effect/.changeset/fix-2012.md +5 -0
  266. package/repos/effect/.changeset/fix-2015.md +5 -0
  267. package/repos/effect/.changeset/fix-2260.md +5 -0
  268. package/repos/effect/.changeset/fix-2268.md +5 -0
  269. package/repos/effect/.changeset/fix-2271.md +5 -0
  270. package/repos/effect/.changeset/fix-2384.md +7 -0
  271. package/repos/effect/.changeset/fix-ai-empty-params-structured-output.md +5 -0
  272. package/repos/effect/.changeset/fix-ai-text-toolkit-typing.md +5 -0
  273. package/repos/effect/.changeset/fix-catch-orelse-error-erasure.md +5 -0
  274. package/repos/effect/.changeset/fix-class-constructor-defaults.md +5 -0
  275. package/repos/effect/.changeset/fix-cli-mixed-global-flag-context.md +7 -0
  276. package/repos/effect/.changeset/fix-config-withDefault.md +5 -0
  277. package/repos/effect/.changeset/fix-config-withdefault-filter.md +7 -0
  278. package/repos/effect/.changeset/fix-datetime-gmt.md +5 -0
  279. package/repos/effect/.changeset/fix-devtools-flush-on-teardown.md +10 -0
  280. package/repos/effect/.changeset/fix-duration-symmetric-rounding.md +5 -0
  281. package/repos/effect/.changeset/fix-entity-manager-defect-replay.md +5 -0
  282. package/repos/effect/.changeset/fix-entity-proxy-rpc-handler-context.md +5 -0
  283. package/repos/effect/.changeset/fix-entity-proxy-server-path-params.md +5 -0
  284. package/repos/effect/.changeset/fix-from-readable-stream-cancel-defect.md +5 -0
  285. package/repos/effect/.changeset/fix-graph-undirected-traversal.md +5 -0
  286. package/repos/effect/.changeset/fix-has-interrupts-only-empty.md +5 -0
  287. package/repos/effect/.changeset/fix-hashmap-bit31-ordering.md +5 -0
  288. package/repos/effect/.changeset/fix-headers-proto-enumerability.md +5 -0
  289. package/repos/effect/.changeset/fix-http-incoming-message-parse-options.md +5 -0
  290. package/repos/effect/.changeset/fix-httpapi-endpoint-error-inference.md +5 -0
  291. package/repos/effect/.changeset/fix-httpapi-schema-types.md +5 -0
  292. package/repos/effect/.changeset/fix-httpapi-security-middleware-cache.md +5 -0
  293. package/repos/effect/.changeset/fix-is-json-dag.md +7 -0
  294. package/repos/effect/.changeset/fix-json-schema-anyof-oneof-siblings.md +5 -0
  295. package/repos/effect/.changeset/fix-json-schema-import-json.md +5 -0
  296. package/repos/effect/.changeset/fix-keepalive-blocked-timers.md +5 -0
  297. package/repos/effect/.changeset/fix-mcp-param-name-resolution.md +5 -0
  298. package/repos/effect/.changeset/fix-mermaid-escape-special-chars.md +5 -0
  299. package/repos/effect/.changeset/fix-mutable-list-filter-length.md +5 -0
  300. package/repos/effect/.changeset/fix-object-keyword-json-schema.md +5 -0
  301. package/repos/effect/.changeset/fix-openai-mcp-tool-names.md +5 -0
  302. package/repos/effect/.changeset/fix-openapi-generator-form-urlencoded.md +5 -0
  303. package/repos/effect/.changeset/fix-openapi-generator-swagger2openapi.md +5 -0
  304. package/repos/effect/.changeset/fix-openapi-preserve-multiple-response-content-types.md +5 -0
  305. package/repos/effect/.changeset/fix-openrouter-sparse-array.md +5 -0
  306. package/repos/effect/.changeset/fix-otel-logger-clock-skew.md +7 -0
  307. package/repos/effect/.changeset/fix-otel-logger-severity-number.md +20 -0
  308. package/repos/effect/.changeset/fix-queue-collect-duplication.md +5 -0
  309. package/repos/effect/.changeset/fix-random-string-seeds.md +5 -0
  310. package/repos/effect/.changeset/fix-ratelimiter-tokenbucket-redis-ttl.md +5 -0
  311. package/repos/effect/.changeset/fix-remainder-scientific-notation.md +5 -0
  312. package/repos/effect/.changeset/fix-request-resolver-pending-batches-leak.md +5 -0
  313. package/repos/effect/.changeset/fix-retry-transient-autocomplete.md +5 -0
  314. package/repos/effect/.changeset/fix-rpc-http-requestids-finalizer.md +5 -0
  315. package/repos/effect/.changeset/fix-rpc-json-id-edges.md +5 -0
  316. package/repos/effect/.changeset/fix-schedule-fixed-double-exec.md +9 -0
  317. package/repos/effect/.changeset/fix-schedule-reduce-sync-state.md +5 -0
  318. package/repos/effect/.changeset/fix-schema-arbitrary-exclusive-bounds.md +5 -0
  319. package/repos/effect/.changeset/fix-schema-defect-message.md +5 -0
  320. package/repos/effect/.changeset/fix-schema-encode-keys-property-keys.md +5 -0
  321. package/repos/effect/.changeset/fix-schema-encodekeys-class.md +5 -0
  322. package/repos/effect/.changeset/fix-schema-encodekeys-struct.md +5 -0
  323. package/repos/effect/.changeset/fix-schema-identifier-expected-message.md +5 -0
  324. package/repos/effect/.changeset/fix-schema-is-uuid.md +5 -0
  325. package/repos/effect/.changeset/fix-schema-option-non-schema-failures.md +17 -0
  326. package/repos/effect/.changeset/fix-schema-parser-checks.md +9 -0
  327. package/repos/effect/.changeset/fix-searchparam-initial-decode.md +5 -0
  328. package/repos/effect/.changeset/fix-serializable-wire-transfer.md +7 -0
  329. package/repos/effect/.changeset/fix-stream-grouped-within-flush.md +5 -0
  330. package/repos/effect/.changeset/fix-stream-run-for-each-while.md +5 -0
  331. package/repos/effect/.changeset/fix-stream-scan-effect.md +5 -0
  332. package/repos/effect/.changeset/fix-stream-scoped-scope.md +5 -0
  333. package/repos/effect/.changeset/fix-strip-approval-artifacts-multi-round.md +13 -0
  334. package/repos/effect/.changeset/fix-struct-utility-types-simplify.md +5 -0
  335. package/repos/effect/.changeset/fix-structwithrest-index-signatures.md +6 -0
  336. package/repos/effect/.changeset/fix-tagged-union-class-sentinels.md +5 -0
  337. package/repos/effect/.changeset/fix-tagged-union-match-unify.md +6 -0
  338. package/repos/effect/.changeset/fix-to-tagged-union-isanyof-custom-tags.md +10 -0
  339. package/repos/effect/.changeset/fix-tuple-with-rest-post-rest-index-drift.md +5 -0
  340. package/repos/effect/.changeset/fix-tuple-with-rest-post-rest-validation.md +5 -0
  341. package/repos/effect/.changeset/fix-types-voidifempty.md +5 -0
  342. package/repos/effect/.changeset/fix-void-response-encoding.md +5 -0
  343. package/repos/effect/.changeset/fix-workflow-proxy-rpc-handler-context.md +5 -0
  344. package/repos/effect/.changeset/flat-chicken-remain.md +5 -0
  345. package/repos/effect/.changeset/floppy-cows-spend.md +5 -0
  346. package/repos/effect/.changeset/floppy-items-admire.md +5 -0
  347. package/repos/effect/.changeset/floppy-pigs-kiss.md +5 -0
  348. package/repos/effect/.changeset/fluffy-meals-matter.md +5 -0
  349. package/repos/effect/.changeset/fluffy-pumas-push.md +5 -0
  350. package/repos/effect/.changeset/forked-memo-maps.md +6 -0
  351. package/repos/effect/.changeset/forty-hounds-cheer.md +5 -0
  352. package/repos/effect/.changeset/forty-otters-cry.md +5 -0
  353. package/repos/effect/.changeset/forty-rings-film.md +7 -0
  354. package/repos/effect/.changeset/forty-signs-stay.md +5 -0
  355. package/repos/effect/.changeset/forty-swans-divide.md +5 -0
  356. package/repos/effect/.changeset/forty-trees-pay.md +5 -0
  357. package/repos/effect/.changeset/four-papayas-bow.md +5 -0
  358. package/repos/effect/.changeset/four-points-repeat.md +5 -0
  359. package/repos/effect/.changeset/fresh-cats-smash.md +5 -0
  360. package/repos/effect/.changeset/fresh-emus-cheat.md +5 -0
  361. package/repos/effect/.changeset/fresh-monkeys-smoke.md +9 -0
  362. package/repos/effect/.changeset/fruity-houses-learn.md +6 -0
  363. package/repos/effect/.changeset/full-adults-double.md +5 -0
  364. package/repos/effect/.changeset/funny-crabs-hang.md +6 -0
  365. package/repos/effect/.changeset/funny-forks-move.md +5 -0
  366. package/repos/effect/.changeset/fuzzy-camels-hunt.md +5 -0
  367. package/repos/effect/.changeset/fuzzy-dodos-help.md +5 -0
  368. package/repos/effect/.changeset/fuzzy-lions-perform.md +5 -0
  369. package/repos/effect/.changeset/fuzzy-planets-sneeze.md +5 -0
  370. package/repos/effect/.changeset/gold-meteors-move.md +5 -0
  371. package/repos/effect/.changeset/gold-readers-hug.md +5 -0
  372. package/repos/effect/.changeset/gold-rings-start.md +5 -0
  373. package/repos/effect/.changeset/good-tools-work.md +7 -0
  374. package/repos/effect/.changeset/graph-algorithm-fixes.md +5 -0
  375. package/repos/effect/.changeset/great-trains-mate.md +5 -0
  376. package/repos/effect/.changeset/great-trams-report.md +5 -0
  377. package/repos/effect/.changeset/green-beds-unref.md +7 -0
  378. package/repos/effect/.changeset/green-chips-wash.md +5 -0
  379. package/repos/effect/.changeset/green-moons-smile.md +5 -0
  380. package/repos/effect/.changeset/green-pugs-play.md +5 -0
  381. package/repos/effect/.changeset/green-rings-prove.md +5 -0
  382. package/repos/effect/.changeset/happy-mirrors-dream.md +5 -0
  383. package/repos/effect/.changeset/heavy-loops-cut.md +5 -0
  384. package/repos/effect/.changeset/heavy-trams-fix.md +5 -0
  385. package/repos/effect/.changeset/hip-socks-travel.md +5 -0
  386. package/repos/effect/.changeset/honest-pens-thank.md +5 -0
  387. package/repos/effect/.changeset/honest-rivers-notice.md +5 -0
  388. package/repos/effect/.changeset/hot-taxis-fry.md +5 -0
  389. package/repos/effect/.changeset/httpapi-endpoint-relax-constraints.md +5 -0
  390. package/repos/effect/.changeset/httpapi-schema-service-types.md +6 -0
  391. package/repos/effect/.changeset/huge-moons-rhyme.md +5 -0
  392. package/repos/effect/.changeset/humble-pigs-dig.md +5 -0
  393. package/repos/effect/.changeset/icy-flies-cross.md +5 -0
  394. package/repos/effect/.changeset/itchy-radios-poke.md +5 -0
  395. package/repos/effect/.changeset/itchy-results-bet.md +5 -0
  396. package/repos/effect/.changeset/itchy-shrimps-deny.md +5 -0
  397. package/repos/effect/.changeset/itchy-toes-promise.md +5 -0
  398. package/repos/effect/.changeset/k8s-last-transition-null.md +5 -0
  399. package/repos/effect/.changeset/khaki-cats-learn.md +5 -0
  400. package/repos/effect/.changeset/khaki-melons-appear.md +5 -0
  401. package/repos/effect/.changeset/kind-hounds-float.md +5 -0
  402. package/repos/effect/.changeset/kind-windows-fall.md +5 -0
  403. package/repos/effect/.changeset/late-hotels-rule.md +5 -0
  404. package/repos/effect/.changeset/late-lamps-care.md +5 -0
  405. package/repos/effect/.changeset/late-rivers-applaud.md +5 -0
  406. package/repos/effect/.changeset/layer-map-dynamic-idle-ttl.md +5 -0
  407. package/repos/effect/.changeset/lazy-queens-rush.md +5 -0
  408. package/repos/effect/.changeset/lazy-recursive-forward-refs.md +5 -0
  409. package/repos/effect/.changeset/lazy-timers-exist.md +5 -0
  410. package/repos/effect/.changeset/legal-pants-drop.md +5 -0
  411. package/repos/effect/.changeset/lemon-taxis-sin.md +5 -0
  412. package/repos/effect/.changeset/light-kids-sneeze.md +5 -0
  413. package/repos/effect/.changeset/little-dryers-allow.md +7 -0
  414. package/repos/effect/.changeset/long-cameras-think.md +5 -0
  415. package/repos/effect/.changeset/lovely-cobras-change.md +5 -0
  416. package/repos/effect/.changeset/lovely-frogs-rescue.md +5 -0
  417. package/repos/effect/.changeset/lucky-buttons-jump.md +5 -0
  418. package/repos/effect/.changeset/lucky-phones-listen.md +5 -0
  419. package/repos/effect/.changeset/lucky-worms-type.md +5 -0
  420. package/repos/effect/.changeset/mean-dingos-share.md +5 -0
  421. package/repos/effect/.changeset/mean-trains-smash.md +5 -0
  422. package/repos/effect/.changeset/metal-parts-yell.md +5 -0
  423. package/repos/effect/.changeset/mighty-games-matter.md +5 -0
  424. package/repos/effect/.changeset/modern-uuid-guid-filter.md +5 -0
  425. package/repos/effect/.changeset/nasty-geese-grow.md +5 -0
  426. package/repos/effect/.changeset/neat-goats-wave.md +5 -0
  427. package/repos/effect/.changeset/neat-kings-chew.md +5 -0
  428. package/repos/effect/.changeset/neat-lions-rest.md +5 -0
  429. package/repos/effect/.changeset/neat-snails-wash.md +5 -0
  430. package/repos/effect/.changeset/neat-taxis-notice.md +5 -0
  431. package/repos/effect/.changeset/new-dogs-swim.md +5 -0
  432. package/repos/effect/.changeset/new-toes-stop.md +5 -0
  433. package/repos/effect/.changeset/ninety-geese-exist.md +5 -0
  434. package/repos/effect/.changeset/odd-boats-think.md +5 -0
  435. package/repos/effect/.changeset/odd-bulldogs-sleep.md +5 -0
  436. package/repos/effect/.changeset/odd-fans-glow.md +5 -0
  437. package/repos/effect/.changeset/odd-forks-talk.md +5 -0
  438. package/repos/effect/.changeset/odd-laws-draw.md +5 -0
  439. package/repos/effect/.changeset/odd-owls-smoke.md +5 -0
  440. package/repos/effect/.changeset/odd-socks-boil.md +5 -0
  441. package/repos/effect/.changeset/odd-suns-dance.md +5 -0
  442. package/repos/effect/.changeset/old-brooms-cry.md +5 -0
  443. package/repos/effect/.changeset/old-facts-stand.md +5 -0
  444. package/repos/effect/.changeset/old-mirrors-float.md +5 -0
  445. package/repos/effect/.changeset/olive-poems-visit.md +5 -0
  446. package/repos/effect/.changeset/open-hotels-remain.md +5 -0
  447. package/repos/effect/.changeset/openai-compat-nullable-tool-name.md +7 -0
  448. package/repos/effect/.changeset/openai-compat-reasoning.md +5 -0
  449. package/repos/effect/.changeset/otel-resource-env-precedence.md +5 -0
  450. package/repos/effect/.changeset/perfect-buckets-tickle.md +5 -0
  451. package/repos/effect/.changeset/petite-months-allow.md +6 -0
  452. package/repos/effect/.changeset/platform-crypto-service.md +9 -0
  453. package/repos/effect/.changeset/platform-node-shared-barrel.md +5 -0
  454. package/repos/effect/.changeset/plenty-moons-pull.md +5 -0
  455. package/repos/effect/.changeset/polite-brooms-tickle.md +5 -0
  456. package/repos/effect/.changeset/polite-pigs-speak.md +5 -0
  457. package/repos/effect/.changeset/polite-tables-kneel.md +5 -0
  458. package/repos/effect/.changeset/port-react-hydration.md +8 -0
  459. package/repos/effect/.changeset/pre.json +588 -0
  460. package/repos/effect/.changeset/public-deer-ring.md +5 -0
  461. package/repos/effect/.changeset/public-jeans-stop.md +5 -0
  462. package/repos/effect/.changeset/pubsub-publish-false.md +5 -0
  463. package/repos/effect/.changeset/puny-pens-clap.md +6 -0
  464. package/repos/effect/.changeset/purple-bars-prove.md +5 -0
  465. package/repos/effect/.changeset/purple-schools-float.md +5 -0
  466. package/repos/effect/.changeset/purple-turtles-draw.md +5 -0
  467. package/repos/effect/.changeset/quick-dragons-fix.md +5 -0
  468. package/repos/effect/.changeset/quick-falcons-travel.md +5 -0
  469. package/repos/effect/.changeset/quick-geese-relax.md +5 -0
  470. package/repos/effect/.changeset/quick-lamps-dig.md +5 -0
  471. package/repos/effect/.changeset/quick-lizards-fall.md +5 -0
  472. package/repos/effect/.changeset/quick-trees-join.md +5 -0
  473. package/repos/effect/.changeset/quiet-carpets-grin.md +5 -0
  474. package/repos/effect/.changeset/quiet-files-hunt.md +5 -0
  475. package/repos/effect/.changeset/quiet-lamps-jam.md +5 -0
  476. package/repos/effect/.changeset/quiet-radios-wave.md +5 -0
  477. package/repos/effect/.changeset/quiet-redis-scripts.md +5 -0
  478. package/repos/effect/.changeset/ready-olives-divide.md +5 -0
  479. package/repos/effect/.changeset/real-trains-ring.md +5 -0
  480. package/repos/effect/.changeset/red-pigs-repair.md +5 -0
  481. package/repos/effect/.changeset/redacted-representation-options.md +7 -0
  482. package/repos/effect/.changeset/refactor-cli-global-flags.md +27 -0
  483. package/repos/effect/.changeset/refactor-config-provider.md +23 -0
  484. package/repos/effect/.changeset/refactor-representation-references.md +5 -0
  485. package/repos/effect/.changeset/remove-effect-transactionwith.md +5 -0
  486. package/repos/effect/.changeset/remove-http-span-counter.md +5 -0
  487. package/repos/effect/.changeset/remove-nullor.md +5 -0
  488. package/repos/effect/.changeset/remove-openapi-fromapi-options.md +7 -0
  489. package/repos/effect/.changeset/remove-types-mergerecord.md +5 -0
  490. package/repos/effect/.changeset/remove-unused-utils-apis.md +5 -0
  491. package/repos/effect/.changeset/rename-rebuild-out.md +5 -0
  492. package/repos/effect/.changeset/restore-schema-parse-options.md +5 -0
  493. package/repos/effect/.changeset/rich-dots-push.md +5 -0
  494. package/repos/effect/.changeset/rich-hoops-nail.md +5 -0
  495. package/repos/effect/.changeset/rich-sloths-draw.md +5 -0
  496. package/repos/effect/.changeset/ripe-lies-battle.md +5 -0
  497. package/repos/effect/.changeset/rpc-middleware-provides-fix.md +5 -0
  498. package/repos/effect/.changeset/scalar-custom-fetch.md +5 -0
  499. package/repos/effect/.changeset/schema-as-class.md +17 -0
  500. package/repos/effect/.changeset/schema-asserts-signature.md +5 -0
  501. package/repos/effect/.changeset/schema-clean-up-additionalProperties.md +7 -0
  502. package/repos/effect/.changeset/schema-datetime-utc-from-string.md +5 -0
  503. package/repos/effect/.changeset/schema-decoding-defaults-services.md +7 -0
  504. package/repos/effect/.changeset/schema-defaults-issue-channel.md +7 -0
  505. package/repos/effect/.changeset/schema-dollar-prefix.md +5 -0
  506. package/repos/effect/.changeset/schema-missing-self-generic.md +5 -0
  507. package/repos/effect/.changeset/schema-ordered-arbitrary-constraints.md +12 -0
  508. package/repos/effect/.changeset/schema-parser-adapter-errors.md +5 -0
  509. package/repos/effect/.changeset/schema-refactor-toCodecJson.md +5 -0
  510. package/repos/effect/.changeset/schema-remove-annotate-in.md +5 -0
  511. package/repos/effect/.changeset/schema-rename-makeUnsafe-to-make.md +7 -0
  512. package/repos/effect/.changeset/schema-rename-parser-makeUnsafe.md +5 -0
  513. package/repos/effect/.changeset/schema-result-combinators.md +5 -0
  514. package/repos/effect/.changeset/schema-struct-simplify.md +5 -0
  515. package/repos/effect/.changeset/seven-mugs-marry.md +5 -0
  516. package/repos/effect/.changeset/shaggy-birds-stay.md +5 -0
  517. package/repos/effect/.changeset/shaggy-cities-push.md +5 -0
  518. package/repos/effect/.changeset/shaggy-numbers-accept.md +5 -0
  519. package/repos/effect/.changeset/sharp-emus-applaud.md +5 -0
  520. package/repos/effect/.changeset/sharp-goats-wink.md +5 -0
  521. package/repos/effect/.changeset/sharp-pandas-care.md +5 -0
  522. package/repos/effect/.changeset/sharp-peas-march.md +5 -0
  523. package/repos/effect/.changeset/sharp-rules-draw.md +5 -0
  524. package/repos/effect/.changeset/sharp-singers-sort.md +5 -0
  525. package/repos/effect/.changeset/shiny-trains-hug.md +5 -0
  526. package/repos/effect/.changeset/short-cows-relate.md +5 -0
  527. package/repos/effect/.changeset/short-foxes-admire.md +5 -0
  528. package/repos/effect/.changeset/shy-cycles-flow.md +5 -0
  529. package/repos/effect/.changeset/shy-geckos-sniff.md +30 -0
  530. package/repos/effect/.changeset/silent-geckos-matter.md +5 -0
  531. package/repos/effect/.changeset/silent-needles-design.md +6 -0
  532. package/repos/effect/.changeset/silent-plants-matter.md +8 -0
  533. package/repos/effect/.changeset/silent-spoons-stare.md +5 -0
  534. package/repos/effect/.changeset/silly-loops-tickle.md +5 -0
  535. package/repos/effect/.changeset/silver-bulk-indexeddb.md +5 -0
  536. package/repos/effect/.changeset/silver-emus-smoke.md +5 -0
  537. package/repos/effect/.changeset/silver-kings-poke.md +5 -0
  538. package/repos/effect/.changeset/silver-snails-sqlite.md +17 -0
  539. package/repos/effect/.changeset/silver-wings-watch.md +5 -0
  540. package/repos/effect/.changeset/six-cups-taste.md +5 -0
  541. package/repos/effect/.changeset/sixty-mails-shout.md +5 -0
  542. package/repos/effect/.changeset/sixty-socks-yell.md +5 -0
  543. package/repos/effect/.changeset/slimy-planets-divide.md +5 -0
  544. package/repos/effect/.changeset/slimy-turtles-juggle.md +5 -0
  545. package/repos/effect/.changeset/slow-beans-battle.md +28 -0
  546. package/repos/effect/.changeset/slow-berries-enjoy.md +5 -0
  547. package/repos/effect/.changeset/small-bugs-hunt.md +5 -0
  548. package/repos/effect/.changeset/small-crabs-care.md +9 -0
  549. package/repos/effect/.changeset/small-pets-sit.md +6 -0
  550. package/repos/effect/.changeset/smart-ducks-jump.md +6 -0
  551. package/repos/effect/.changeset/smart-pillows-buy.md +6 -0
  552. package/repos/effect/.changeset/smart-timers-fly.md +5 -0
  553. package/repos/effect/.changeset/smart-tips-sort.md +5 -0
  554. package/repos/effect/.changeset/social-pumas-prove.md +5 -0
  555. package/repos/effect/.changeset/soft-comics-wink.md +5 -0
  556. package/repos/effect/.changeset/soft-delete-sqlmodel.md +5 -0
  557. package/repos/effect/.changeset/soft-seals-allow.md +5 -0
  558. package/repos/effect/.changeset/solid-cougars-attack.md +5 -0
  559. package/repos/effect/.changeset/solid-doors-ring.md +5 -0
  560. package/repos/effect/.changeset/solid-items-tease.md +5 -0
  561. package/repos/effect/.changeset/solid-towns-smoke.md +5 -0
  562. package/repos/effect/.changeset/sour-canyons-rescue.md +5 -0
  563. package/repos/effect/.changeset/sparkly-bears-act.md +5 -0
  564. package/repos/effect/.changeset/sparkly-coins-sit.md +5 -0
  565. package/repos/effect/.changeset/spotty-comics-fry.md +5 -0
  566. package/repos/effect/.changeset/sql-migrator-mjs-mts.md +5 -0
  567. package/repos/effect/.changeset/stale-dots-tell.md +5 -0
  568. package/repos/effect/.changeset/stale-snakes-know.md +5 -0
  569. package/repos/effect/.changeset/strict-areas-end.md +5 -0
  570. package/repos/effect/.changeset/strict-buckets-hug.md +8 -0
  571. package/repos/effect/.changeset/strip-resolved-approvals.md +5 -0
  572. package/repos/effect/.changeset/strong-balloons-tickle.md +5 -0
  573. package/repos/effect/.changeset/strong-bees-queue.md +5 -0
  574. package/repos/effect/.changeset/struct-record.md +5 -0
  575. package/repos/effect/.changeset/sunny-ads-hang.md +5 -0
  576. package/repos/effect/.changeset/sunny-bikes-sleep.md +5 -0
  577. package/repos/effect/.changeset/sunny-rooms-invent.md +5 -0
  578. package/repos/effect/.changeset/sweet-donuts-bet.md +5 -0
  579. package/repos/effect/.changeset/sweet-hotels-give.md +5 -0
  580. package/repos/effect/.changeset/sweet-views-learn.md +5 -0
  581. package/repos/effect/.changeset/swift-spiders-unpack.md +5 -0
  582. package/repos/effect/.changeset/swift-symbols-stand.md +5 -0
  583. package/repos/effect/.changeset/tagged-error-class-optional-empty-props.md +5 -0
  584. package/repos/effect/.changeset/tall-hairs-return.md +5 -0
  585. package/repos/effect/.changeset/tall-mails-listen.md +5 -0
  586. package/repos/effect/.changeset/tall-queens-cheer.md +5 -0
  587. package/repos/effect/.changeset/tall-wombats-wave.md +5 -0
  588. package/repos/effect/.changeset/tangy-colts-lose.md +5 -0
  589. package/repos/effect/.changeset/tasty-comics-send.md +5 -0
  590. package/repos/effect/.changeset/ten-kings-fry.md +5 -0
  591. package/repos/effect/.changeset/thick-pandas-wait.md +5 -0
  592. package/repos/effect/.changeset/thin-ducks-wonder.md +5 -0
  593. package/repos/effect/.changeset/thirty-ducks-go.md +5 -0
  594. package/repos/effect/.changeset/thirty-pans-love.md +5 -0
  595. package/repos/effect/.changeset/three-corners-sort.md +5 -0
  596. package/repos/effect/.changeset/three-ravens-jam.md +5 -0
  597. package/repos/effect/.changeset/three-tomatoes-wave.md +5 -0
  598. package/repos/effect/.changeset/tidy-foxes-own.md +5 -0
  599. package/repos/effect/.changeset/tidy-icons-glow.md +5 -0
  600. package/repos/effect/.changeset/tidy-stacks-encode.md +5 -0
  601. package/repos/effect/.changeset/tidy-stars-drive.md +5 -0
  602. package/repos/effect/.changeset/tiny-buckets-wave.md +5 -0
  603. package/repos/effect/.changeset/tiny-lilies-flash.md +5 -0
  604. package/repos/effect/.changeset/tiny-rabbits-smile.md +5 -0
  605. package/repos/effect/.changeset/tocodecjson-return-json-type.md +10 -0
  606. package/repos/effect/.changeset/tool-get-json-schema-tests.md +5 -0
  607. package/repos/effect/.changeset/true-actors-battle.md +5 -0
  608. package/repos/effect/.changeset/twenty-buttons-cheer.md +5 -0
  609. package/repos/effect/.changeset/two-roses-double.md +5 -0
  610. package/repos/effect/.changeset/unify-error-defect-stack-options.md +23 -0
  611. package/repos/effect/.changeset/update-schema-arbitrary-report.md +22 -0
  612. package/repos/effect/.changeset/upset-colts-stick.md +5 -0
  613. package/repos/effect/.changeset/vast-bananas-send.md +5 -0
  614. package/repos/effect/.changeset/vast-deserts-travel.md +5 -0
  615. package/repos/effect/.changeset/violet-peaches-feel.md +5 -0
  616. package/repos/effect/.changeset/vitest-layer-top-level-options.md +5 -0
  617. package/repos/effect/.changeset/wacky-grapes-poke.md +5 -0
  618. package/repos/effect/.changeset/wacky-rice-add.md +5 -0
  619. package/repos/effect/.changeset/warm-dolls-brake.md +5 -0
  620. package/repos/effect/.changeset/warm-friends-tie.md +5 -0
  621. package/repos/effect/.changeset/warm-snails-shop.md +7 -0
  622. package/repos/effect/.changeset/wet-news-invent.md +5 -0
  623. package/repos/effect/.changeset/wild-readers-clean.md +5 -0
  624. package/repos/effect/.changeset/wild-suns-bearer-space.md +5 -0
  625. package/repos/effect/.changeset/wise-ants-wave.md +6 -0
  626. package/repos/effect/.changeset/wise-flags-shift.md +22 -0
  627. package/repos/effect/.changeset/wise-oranges-stay.md +5 -0
  628. package/repos/effect/.changeset/witty-lobsters-share.md +5 -0
  629. package/repos/effect/.changeset/yellow-adults-study.md +5 -0
  630. package/repos/effect/.changeset/yellow-clocks-dance.md +5 -0
  631. package/repos/effect/.changeset/yellow-dingos-jump.md +5 -0
  632. package/repos/effect/.changeset/young-doors-change.md +5 -0
  633. package/repos/effect/.envrc +1 -0
  634. package/repos/effect/.github/actions/setup/action.yaml +33 -0
  635. package/repos/effect/.github/workflows/ai-codegen.yml +66 -0
  636. package/repos/effect/.github/workflows/bundle-comment.yml +72 -0
  637. package/repos/effect/.github/workflows/check.yml +195 -0
  638. package/repos/effect/.github/workflows/release.yml +47 -0
  639. package/repos/effect/.github/workflows/snapshot.yml +34 -0
  640. package/repos/effect/.oxlintrc.json +25 -0
  641. package/repos/effect/.patterns/effect.md +102 -0
  642. package/repos/effect/.patterns/jsdoc.md +53 -0
  643. package/repos/effect/.patterns/testing.md +44 -0
  644. package/repos/effect/.specs/README.md +2 -0
  645. package/repos/effect/.vscode/extensions.json +6 -0
  646. package/repos/effect/.vscode/settings.json +44 -0
  647. package/repos/effect/AGENTS.md +139 -0
  648. package/repos/effect/LICENSE +21 -0
  649. package/repos/effect/LLMS.md +343 -0
  650. package/repos/effect/MIGRATION.md +83 -0
  651. package/repos/effect/README.md +3 -0
  652. package/repos/effect/TODOS.md +28 -0
  653. package/repos/effect/ai-docs/README.md +44 -0
  654. package/repos/effect/ai-docs/package.json +36 -0
  655. package/repos/effect/ai-docs/src/01_effect/01_basics/01_effect-gen.ts +30 -0
  656. package/repos/effect/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +39 -0
  657. package/repos/effect/ai-docs/src/01_effect/01_basics/10_creating-effects.ts +74 -0
  658. package/repos/effect/ai-docs/src/01_effect/01_basics/index.md +5 -0
  659. package/repos/effect/ai-docs/src/01_effect/02_services/01_service.ts +45 -0
  660. package/repos/effect/ai-docs/src/01_effect/02_services/10_reference.ts +10 -0
  661. package/repos/effect/ai-docs/src/01_effect/02_services/20_layer-composition.ts +70 -0
  662. package/repos/effect/ai-docs/src/01_effect/02_services/20_layer-unwrap.ts +66 -0
  663. package/repos/effect/ai-docs/src/01_effect/02_services/index.md +5 -0
  664. package/repos/effect/ai-docs/src/01_effect/03_errors/01_error-handling.ts +30 -0
  665. package/repos/effect/ai-docs/src/01_effect/03_errors/10_catch-tags.ts +24 -0
  666. package/repos/effect/ai-docs/src/01_effect/03_errors/20_reason-errors.ts +64 -0
  667. package/repos/effect/ai-docs/src/01_effect/03_errors/index.md +1 -0
  668. package/repos/effect/ai-docs/src/01_effect/04_resources/10_acquire-release.ts +105 -0
  669. package/repos/effect/ai-docs/src/01_effect/04_resources/20_layer-side-effects.ts +31 -0
  670. package/repos/effect/ai-docs/src/01_effect/04_resources/30_layer-map.ts +86 -0
  671. package/repos/effect/ai-docs/src/01_effect/04_resources/index.md +3 -0
  672. package/repos/effect/ai-docs/src/01_effect/05_running/10_run-main.ts +30 -0
  673. package/repos/effect/ai-docs/src/01_effect/05_running/20_layer-launch.ts +27 -0
  674. package/repos/effect/ai-docs/src/01_effect/05_running/index.md +1 -0
  675. package/repos/effect/ai-docs/src/01_effect/06_pubsub/10_pubsub.ts +56 -0
  676. package/repos/effect/ai-docs/src/01_effect/06_pubsub/index.md +3 -0
  677. package/repos/effect/ai-docs/src/02_stream/10_creating-streams.ts +103 -0
  678. package/repos/effect/ai-docs/src/02_stream/20_consuming-streams.ts +137 -0
  679. package/repos/effect/ai-docs/src/02_stream/30_encoding.ts +165 -0
  680. package/repos/effect/ai-docs/src/02_stream/index.md +4 -0
  681. package/repos/effect/ai-docs/src/03_integration/10_managed-runtime.ts +129 -0
  682. package/repos/effect/ai-docs/src/03_integration/index.md +5 -0
  683. package/repos/effect/ai-docs/src/05_batching/10_request-resolver.ts +89 -0
  684. package/repos/effect/ai-docs/src/05_batching/index.md +3 -0
  685. package/repos/effect/ai-docs/src/06_schedule/10_schedules.ts +102 -0
  686. package/repos/effect/ai-docs/src/06_schedule/index.md +3 -0
  687. package/repos/effect/ai-docs/src/07_datetime/10_creating-and-formatting.ts +30 -0
  688. package/repos/effect/ai-docs/src/07_datetime/20_time-zones.ts +44 -0
  689. package/repos/effect/ai-docs/src/07_datetime/index.md +5 -0
  690. package/repos/effect/ai-docs/src/08_observability/10_logging.ts +66 -0
  691. package/repos/effect/ai-docs/src/08_observability/20_otlp-tracing.ts +95 -0
  692. package/repos/effect/ai-docs/src/08_observability/index.md +7 -0
  693. package/repos/effect/ai-docs/src/09_testing/10_effect-tests.ts +55 -0
  694. package/repos/effect/ai-docs/src/09_testing/20_layer-tests.ts +138 -0
  695. package/repos/effect/ai-docs/src/09_testing/index.md +1 -0
  696. package/repos/effect/ai-docs/src/50_http-client/10_basics.ts +102 -0
  697. package/repos/effect/ai-docs/src/50_http-client/index.md +3 -0
  698. package/repos/effect/ai-docs/src/51_http-server/10_basics.ts +116 -0
  699. package/repos/effect/ai-docs/src/51_http-server/fixtures/api/Api.ts +14 -0
  700. package/repos/effect/ai-docs/src/51_http-server/fixtures/api/Authorization.ts +36 -0
  701. package/repos/effect/ai-docs/src/51_http-server/fixtures/api/System.ts +10 -0
  702. package/repos/effect/ai-docs/src/51_http-server/fixtures/api/Users.ts +91 -0
  703. package/repos/effect/ai-docs/src/51_http-server/fixtures/domain/User.ts +12 -0
  704. package/repos/effect/ai-docs/src/51_http-server/fixtures/domain/UserErrors.ts +22 -0
  705. package/repos/effect/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +36 -0
  706. package/repos/effect/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +71 -0
  707. package/repos/effect/ai-docs/src/51_http-server/fixtures/server/Users.ts +62 -0
  708. package/repos/effect/ai-docs/src/51_http-server/index.md +3 -0
  709. package/repos/effect/ai-docs/src/60_child-process/10_working-with-child-processes.ts +117 -0
  710. package/repos/effect/ai-docs/src/60_child-process/index.md +3 -0
  711. package/repos/effect/ai-docs/src/70_cli/10_basics.ts +136 -0
  712. package/repos/effect/ai-docs/src/70_cli/index.md +5 -0
  713. package/repos/effect/ai-docs/src/71_ai/10_language-model.ts +156 -0
  714. package/repos/effect/ai-docs/src/71_ai/20_tools.ts +226 -0
  715. package/repos/effect/ai-docs/src/71_ai/30_chat.ts +158 -0
  716. package/repos/effect/ai-docs/src/71_ai/fixtures/domain/LaunchPlan.ts +9 -0
  717. package/repos/effect/ai-docs/src/71_ai/index.md +5 -0
  718. package/repos/effect/ai-docs/src/80_cluster/10_entities.ts +97 -0
  719. package/repos/effect/ai-docs/src/80_cluster/index.md +4 -0
  720. package/repos/effect/ai-docs/src/index.md +12 -0
  721. package/repos/effect/ai-docs/tsconfig.json +24 -0
  722. package/repos/effect/cookbooks/schedule.md +3507 -0
  723. package/repos/effect/deno.json +33 -0
  724. package/repos/effect/docker-compose.yaml +18 -0
  725. package/repos/effect/dprint.json +32 -0
  726. package/repos/effect/flake.lock +27 -0
  727. package/repos/effect/flake.nix +24 -0
  728. package/repos/effect/jsdocs.config.json +16 -0
  729. package/repos/effect/migration/cause.md +163 -0
  730. package/repos/effect/migration/equality.md +72 -0
  731. package/repos/effect/migration/error-handling.md +106 -0
  732. package/repos/effect/migration/fiber-keep-alive.md +74 -0
  733. package/repos/effect/migration/fiberref.md +109 -0
  734. package/repos/effect/migration/forking.md +94 -0
  735. package/repos/effect/migration/generators.md +32 -0
  736. package/repos/effect/migration/layer-memoization.md +98 -0
  737. package/repos/effect/migration/runtime.md +88 -0
  738. package/repos/effect/migration/schema.md +1032 -0
  739. package/repos/effect/migration/scope.md +50 -0
  740. package/repos/effect/migration/services.md +235 -0
  741. package/repos/effect/migration/v3-to-v4.md +421 -0
  742. package/repos/effect/migration/yieldable.md +173 -0
  743. package/repos/effect/package.json +104 -0
  744. package/repos/effect/packages/ai/anthropic/CHANGELOG.md +611 -0
  745. package/repos/effect/packages/ai/anthropic/codegen.yml +63 -0
  746. package/repos/effect/packages/ai/anthropic/docgen.json +26 -0
  747. package/repos/effect/packages/ai/anthropic/package.json +67 -0
  748. package/repos/effect/packages/ai/anthropic/src/AnthropicClient.ts +432 -0
  749. package/repos/effect/packages/ai/anthropic/src/AnthropicConfig.ts +84 -0
  750. package/repos/effect/packages/ai/anthropic/src/AnthropicError.ts +212 -0
  751. package/repos/effect/packages/ai/anthropic/src/AnthropicLanguageModel.ts +3098 -0
  752. package/repos/effect/packages/ai/anthropic/src/AnthropicTelemetry.ts +132 -0
  753. package/repos/effect/packages/ai/anthropic/src/AnthropicTool.ts +2512 -0
  754. package/repos/effect/packages/ai/anthropic/src/Generated.ts +12600 -0
  755. package/repos/effect/packages/ai/anthropic/src/index.ts +40 -0
  756. package/repos/effect/packages/ai/anthropic/src/internal/errors.ts +370 -0
  757. package/repos/effect/packages/ai/anthropic/src/internal/utilities.ts +26 -0
  758. package/repos/effect/packages/ai/anthropic/test/AnthropicLanguageModel.test.ts +300 -0
  759. package/repos/effect/packages/ai/anthropic/tsconfig.json +8 -0
  760. package/repos/effect/packages/ai/anthropic/vitest.config.ts +6 -0
  761. package/repos/effect/packages/ai/openai/CHANGELOG.md +668 -0
  762. package/repos/effect/packages/ai/openai/codegen.yaml +41 -0
  763. package/repos/effect/packages/ai/openai/docgen.json +24 -0
  764. package/repos/effect/packages/ai/openai/package.json +67 -0
  765. package/repos/effect/packages/ai/openai/src/Generated.ts +35774 -0
  766. package/repos/effect/packages/ai/openai/src/OpenAiClient.ts +730 -0
  767. package/repos/effect/packages/ai/openai/src/OpenAiClientGenerated.ts +202 -0
  768. package/repos/effect/packages/ai/openai/src/OpenAiConfig.ts +93 -0
  769. package/repos/effect/packages/ai/openai/src/OpenAiEmbeddingModel.ts +258 -0
  770. package/repos/effect/packages/ai/openai/src/OpenAiError.ts +242 -0
  771. package/repos/effect/packages/ai/openai/src/OpenAiLanguageModel.ts +3133 -0
  772. package/repos/effect/packages/ai/openai/src/OpenAiSchema.ts +1286 -0
  773. package/repos/effect/packages/ai/openai/src/OpenAiTelemetry.ts +162 -0
  774. package/repos/effect/packages/ai/openai/src/OpenAiTool.ts +342 -0
  775. package/repos/effect/packages/ai/openai/src/index.ts +55 -0
  776. package/repos/effect/packages/ai/openai/src/internal/errors.ts +349 -0
  777. package/repos/effect/packages/ai/openai/src/internal/utilities.ts +33 -0
  778. package/repos/effect/packages/ai/openai/test/OpenAiClient.test.ts +798 -0
  779. package/repos/effect/packages/ai/openai/test/OpenAiEmbeddingModel.test.ts +289 -0
  780. package/repos/effect/packages/ai/openai/test/OpenAiLanguageModel.test.ts +1528 -0
  781. package/repos/effect/packages/ai/openai/test/OpenAiSchema.test.ts +273 -0
  782. package/repos/effect/packages/ai/openai/tsconfig.json +8 -0
  783. package/repos/effect/packages/ai/openai/vitest.config.ts +6 -0
  784. package/repos/effect/packages/ai/openai-compat/CHANGELOG.md +626 -0
  785. package/repos/effect/packages/ai/openai-compat/docgen.json +24 -0
  786. package/repos/effect/packages/ai/openai-compat/package.json +69 -0
  787. package/repos/effect/packages/ai/openai-compat/src/OpenAiClient.ts +1221 -0
  788. package/repos/effect/packages/ai/openai-compat/src/OpenAiConfig.ts +87 -0
  789. package/repos/effect/packages/ai/openai-compat/src/OpenAiEmbeddingModel.ts +254 -0
  790. package/repos/effect/packages/ai/openai-compat/src/OpenAiError.ts +178 -0
  791. package/repos/effect/packages/ai/openai-compat/src/OpenAiLanguageModel.ts +1951 -0
  792. package/repos/effect/packages/ai/openai-compat/src/OpenAiTelemetry.ts +164 -0
  793. package/repos/effect/packages/ai/openai-compat/src/index.ts +35 -0
  794. package/repos/effect/packages/ai/openai-compat/src/internal/errors.ts +327 -0
  795. package/repos/effect/packages/ai/openai-compat/src/internal/utilities.ts +33 -0
  796. package/repos/effect/packages/ai/openai-compat/test/OpenAiClient.test.ts +474 -0
  797. package/repos/effect/packages/ai/openai-compat/test/OpenAiEmbeddingModel.test.ts +216 -0
  798. package/repos/effect/packages/ai/openai-compat/test/OpenAiLanguageModel.test.ts +1505 -0
  799. package/repos/effect/packages/ai/openai-compat/tsconfig.json +8 -0
  800. package/repos/effect/packages/ai/openai-compat/vitest.config.ts +6 -0
  801. package/repos/effect/packages/ai/openrouter/CHANGELOG.md +607 -0
  802. package/repos/effect/packages/ai/openrouter/codegen.yml +35 -0
  803. package/repos/effect/packages/ai/openrouter/docgen.json +24 -0
  804. package/repos/effect/packages/ai/openrouter/package.json +67 -0
  805. package/repos/effect/packages/ai/openrouter/src/Generated.ts +10028 -0
  806. package/repos/effect/packages/ai/openrouter/src/OpenRouterClient.ts +357 -0
  807. package/repos/effect/packages/ai/openrouter/src/OpenRouterConfig.ts +99 -0
  808. package/repos/effect/packages/ai/openrouter/src/OpenRouterError.ts +225 -0
  809. package/repos/effect/packages/ai/openrouter/src/OpenRouterLanguageModel.ts +1796 -0
  810. package/repos/effect/packages/ai/openrouter/src/index.ts +30 -0
  811. package/repos/effect/packages/ai/openrouter/src/internal/errors.ts +375 -0
  812. package/repos/effect/packages/ai/openrouter/src/internal/utilities.ts +92 -0
  813. package/repos/effect/packages/ai/openrouter/tsconfig.json +10 -0
  814. package/repos/effect/packages/ai/openrouter/vitest.config.ts +6 -0
  815. package/repos/effect/packages/atom/react/CHANGELOG.md +599 -0
  816. package/repos/effect/packages/atom/react/LICENSE +21 -0
  817. package/repos/effect/packages/atom/react/README.md +7 -0
  818. package/repos/effect/packages/atom/react/docgen.json +25 -0
  819. package/repos/effect/packages/atom/react/package.json +79 -0
  820. package/repos/effect/packages/atom/react/src/Hooks.ts +476 -0
  821. package/repos/effect/packages/atom/react/src/ReactHydration.ts +109 -0
  822. package/repos/effect/packages/atom/react/src/RegistryContext.ts +108 -0
  823. package/repos/effect/packages/atom/react/src/ScopedAtom.ts +151 -0
  824. package/repos/effect/packages/atom/react/src/index.ts +23 -0
  825. package/repos/effect/packages/atom/react/test/index.test.tsx +650 -0
  826. package/repos/effect/packages/atom/react/tsconfig.json +8 -0
  827. package/repos/effect/packages/atom/react/vitest.config.ts +9 -0
  828. package/repos/effect/packages/atom/react/vitest.setup.ts +8 -0
  829. package/repos/effect/packages/atom/solid/CHANGELOG.md +595 -0
  830. package/repos/effect/packages/atom/solid/LICENSE +21 -0
  831. package/repos/effect/packages/atom/solid/README.md +7 -0
  832. package/repos/effect/packages/atom/solid/docgen.json +26 -0
  833. package/repos/effect/packages/atom/solid/package.json +72 -0
  834. package/repos/effect/packages/atom/solid/src/Hooks.ts +359 -0
  835. package/repos/effect/packages/atom/solid/src/RegistryContext.ts +80 -0
  836. package/repos/effect/packages/atom/solid/src/index.ts +13 -0
  837. package/repos/effect/packages/atom/solid/test/index.test.tsx +296 -0
  838. package/repos/effect/packages/atom/solid/tsconfig.json +8 -0
  839. package/repos/effect/packages/atom/solid/vitest.config.ts +15 -0
  840. package/repos/effect/packages/atom/solid/vitest.setup.ts +8 -0
  841. package/repos/effect/packages/atom/vue/CHANGELOG.md +593 -0
  842. package/repos/effect/packages/atom/vue/LICENSE +21 -0
  843. package/repos/effect/packages/atom/vue/README.md +7 -0
  844. package/repos/effect/packages/atom/vue/docgen.json +24 -0
  845. package/repos/effect/packages/atom/vue/package.json +68 -0
  846. package/repos/effect/packages/atom/vue/src/index.ts +211 -0
  847. package/repos/effect/packages/atom/vue/test/index.test.ts +5 -0
  848. package/repos/effect/packages/atom/vue/tsconfig.json +14 -0
  849. package/repos/effect/packages/atom/vue/vitest.config.ts +8 -0
  850. package/repos/effect/packages/effect/CHANGELOG.md +1607 -0
  851. package/repos/effect/packages/effect/CONFIG.md +690 -0
  852. package/repos/effect/packages/effect/HTTPAPI.md +3213 -0
  853. package/repos/effect/packages/effect/LICENSE +21 -0
  854. package/repos/effect/packages/effect/MCP.md +369 -0
  855. package/repos/effect/packages/effect/OPTIC.md +620 -0
  856. package/repos/effect/packages/effect/README.md +53 -0
  857. package/repos/effect/packages/effect/SCHEMA.md +7284 -0
  858. package/repos/effect/packages/effect/benchmark/schema/Enums.ts +40 -0
  859. package/repos/effect/packages/effect/benchmark/schema/Optic.ts +79 -0
  860. package/repos/effect/packages/effect/benchmark/schema/array.ts +74 -0
  861. package/repos/effect/packages/effect/benchmark/schema/filter.ts +74 -0
  862. package/repos/effect/packages/effect/benchmark/schema/object.ts +82 -0
  863. package/repos/effect/packages/effect/benchmark/schema/tagged-union.ts +69 -0
  864. package/repos/effect/packages/effect/benchmark/schema/transformation.ts +91 -0
  865. package/repos/effect/packages/effect/benchmark/stream/splitLines.ts +46 -0
  866. package/repos/effect/packages/effect/docgen.json +38 -0
  867. package/repos/effect/packages/effect/package.json +127 -0
  868. package/repos/effect/packages/effect/src/Array.ts +4908 -0
  869. package/repos/effect/packages/effect/src/BigDecimal.ts +1943 -0
  870. package/repos/effect/packages/effect/src/BigInt.ts +1029 -0
  871. package/repos/effect/packages/effect/src/Boolean.ts +481 -0
  872. package/repos/effect/packages/effect/src/Brand.ts +318 -0
  873. package/repos/effect/packages/effect/src/Cache.ts +1295 -0
  874. package/repos/effect/packages/effect/src/Cause.ts +1939 -0
  875. package/repos/effect/packages/effect/src/Channel.ts +8615 -0
  876. package/repos/effect/packages/effect/src/ChannelSchema.ts +308 -0
  877. package/repos/effect/packages/effect/src/Chunk.ts +2976 -0
  878. package/repos/effect/packages/effect/src/Clock.ts +194 -0
  879. package/repos/effect/packages/effect/src/Combiner.ts +316 -0
  880. package/repos/effect/packages/effect/src/Config.ts +1416 -0
  881. package/repos/effect/packages/effect/src/ConfigProvider.ts +1159 -0
  882. package/repos/effect/packages/effect/src/Console.ts +653 -0
  883. package/repos/effect/packages/effect/src/Context.ts +1339 -0
  884. package/repos/effect/packages/effect/src/Cron.ts +1212 -0
  885. package/repos/effect/packages/effect/src/Crypto.ts +318 -0
  886. package/repos/effect/packages/effect/src/Data.ts +774 -0
  887. package/repos/effect/packages/effect/src/DateTime.ts +2922 -0
  888. package/repos/effect/packages/effect/src/Deferred.ts +917 -0
  889. package/repos/effect/packages/effect/src/Differ.ts +32 -0
  890. package/repos/effect/packages/effect/src/Duration.ts +1827 -0
  891. package/repos/effect/packages/effect/src/Effect.ts +15347 -0
  892. package/repos/effect/packages/effect/src/Effectable.ts +68 -0
  893. package/repos/effect/packages/effect/src/Encoding.ts +1046 -0
  894. package/repos/effect/packages/effect/src/Equal.ts +550 -0
  895. package/repos/effect/packages/effect/src/Equivalence.ts +870 -0
  896. package/repos/effect/packages/effect/src/ErrorReporter.ts +543 -0
  897. package/repos/effect/packages/effect/src/ExecutionPlan.ts +416 -0
  898. package/repos/effect/packages/effect/src/Exit.ts +1085 -0
  899. package/repos/effect/packages/effect/src/Fiber.ts +632 -0
  900. package/repos/effect/packages/effect/src/FiberHandle.ts +815 -0
  901. package/repos/effect/packages/effect/src/FiberMap.ts +1030 -0
  902. package/repos/effect/packages/effect/src/FiberSet.ts +713 -0
  903. package/repos/effect/packages/effect/src/FileSystem.ts +1394 -0
  904. package/repos/effect/packages/effect/src/Filter.ts +827 -0
  905. package/repos/effect/packages/effect/src/Formatter.ts +319 -0
  906. package/repos/effect/packages/effect/src/Function.ts +1415 -0
  907. package/repos/effect/packages/effect/src/Graph.ts +4892 -0
  908. package/repos/effect/packages/effect/src/HKT.ts +213 -0
  909. package/repos/effect/packages/effect/src/Hash.ts +539 -0
  910. package/repos/effect/packages/effect/src/HashMap.ts +1236 -0
  911. package/repos/effect/packages/effect/src/HashRing.ts +426 -0
  912. package/repos/effect/packages/effect/src/HashSet.ts +605 -0
  913. package/repos/effect/packages/effect/src/Inspectable.ts +329 -0
  914. package/repos/effect/packages/effect/src/Iterable.ts +2483 -0
  915. package/repos/effect/packages/effect/src/JsonPatch.ts +469 -0
  916. package/repos/effect/packages/effect/src/JsonPointer.ts +80 -0
  917. package/repos/effect/packages/effect/src/JsonSchema.ts +948 -0
  918. package/repos/effect/packages/effect/src/Latch.ts +373 -0
  919. package/repos/effect/packages/effect/src/Layer.ts +2773 -0
  920. package/repos/effect/packages/effect/src/LayerMap.ts +468 -0
  921. package/repos/effect/packages/effect/src/LogLevel.ts +412 -0
  922. package/repos/effect/packages/effect/src/Logger.ts +1284 -0
  923. package/repos/effect/packages/effect/src/ManagedRuntime.ts +381 -0
  924. package/repos/effect/packages/effect/src/Match.ts +2606 -0
  925. package/repos/effect/packages/effect/src/Metric.ts +4058 -0
  926. package/repos/effect/packages/effect/src/MutableHashMap.ts +845 -0
  927. package/repos/effect/packages/effect/src/MutableHashSet.ts +422 -0
  928. package/repos/effect/packages/effect/src/MutableList.ts +967 -0
  929. package/repos/effect/packages/effect/src/MutableRef.ts +822 -0
  930. package/repos/effect/packages/effect/src/Newtype.ts +319 -0
  931. package/repos/effect/packages/effect/src/NonEmptyIterable.ts +221 -0
  932. package/repos/effect/packages/effect/src/Number.ts +860 -0
  933. package/repos/effect/packages/effect/src/Optic.ts +1701 -0
  934. package/repos/effect/packages/effect/src/Option.ts +2664 -0
  935. package/repos/effect/packages/effect/src/Order.ts +982 -0
  936. package/repos/effect/packages/effect/src/Ordering.ts +182 -0
  937. package/repos/effect/packages/effect/src/PartitionedSemaphore.ts +561 -0
  938. package/repos/effect/packages/effect/src/Path.ts +870 -0
  939. package/repos/effect/packages/effect/src/Pipeable.ts +674 -0
  940. package/repos/effect/packages/effect/src/PlatformError.ts +221 -0
  941. package/repos/effect/packages/effect/src/Pool.ts +699 -0
  942. package/repos/effect/packages/effect/src/Predicate.ts +1872 -0
  943. package/repos/effect/packages/effect/src/PrimaryKey.ts +123 -0
  944. package/repos/effect/packages/effect/src/PubSub.ts +2797 -0
  945. package/repos/effect/packages/effect/src/Pull.ts +376 -0
  946. package/repos/effect/packages/effect/src/Queue.ts +1962 -0
  947. package/repos/effect/packages/effect/src/Random.ts +549 -0
  948. package/repos/effect/packages/effect/src/RcMap.ts +612 -0
  949. package/repos/effect/packages/effect/src/RcRef.ts +225 -0
  950. package/repos/effect/packages/effect/src/Record.ts +1563 -0
  951. package/repos/effect/packages/effect/src/Redactable.ts +168 -0
  952. package/repos/effect/packages/effect/src/Redacted.ts +314 -0
  953. package/repos/effect/packages/effect/src/Reducer.ts +178 -0
  954. package/repos/effect/packages/effect/src/Ref.ts +801 -0
  955. package/repos/effect/packages/effect/src/References.ts +786 -0
  956. package/repos/effect/packages/effect/src/RegExp.ts +82 -0
  957. package/repos/effect/packages/effect/src/Request.ts +598 -0
  958. package/repos/effect/packages/effect/src/RequestResolver.ts +1249 -0
  959. package/repos/effect/packages/effect/src/Resource.ts +184 -0
  960. package/repos/effect/packages/effect/src/Result.ts +1939 -0
  961. package/repos/effect/packages/effect/src/Runtime.ts +432 -0
  962. package/repos/effect/packages/effect/src/Schedule.ts +3564 -0
  963. package/repos/effect/packages/effect/src/Scheduler.ts +285 -0
  964. package/repos/effect/packages/effect/src/Schema.ts +14653 -0
  965. package/repos/effect/packages/effect/src/SchemaAST.ts +3903 -0
  966. package/repos/effect/packages/effect/src/SchemaGetter.ts +1870 -0
  967. package/repos/effect/packages/effect/src/SchemaIssue.ts +1176 -0
  968. package/repos/effect/packages/effect/src/SchemaParser.ts +1105 -0
  969. package/repos/effect/packages/effect/src/SchemaRepresentation.ts +3944 -0
  970. package/repos/effect/packages/effect/src/SchemaTransformation.ts +1818 -0
  971. package/repos/effect/packages/effect/src/SchemaUtils.ts +51 -0
  972. package/repos/effect/packages/effect/src/Scope.ts +572 -0
  973. package/repos/effect/packages/effect/src/ScopedCache.ts +820 -0
  974. package/repos/effect/packages/effect/src/ScopedRef.ts +192 -0
  975. package/repos/effect/packages/effect/src/Semaphore.ts +517 -0
  976. package/repos/effect/packages/effect/src/Sink.ts +2174 -0
  977. package/repos/effect/packages/effect/src/Stdio.ts +143 -0
  978. package/repos/effect/packages/effect/src/Stream.ts +11722 -0
  979. package/repos/effect/packages/effect/src/String.ts +1427 -0
  980. package/repos/effect/packages/effect/src/Struct.ts +979 -0
  981. package/repos/effect/packages/effect/src/SubscriptionRef.ts +1021 -0
  982. package/repos/effect/packages/effect/src/Symbol.ts +31 -0
  983. package/repos/effect/packages/effect/src/SynchronizedRef.ts +668 -0
  984. package/repos/effect/packages/effect/src/Take.ts +46 -0
  985. package/repos/effect/packages/effect/src/Terminal.ts +188 -0
  986. package/repos/effect/packages/effect/src/Tracer.ts +683 -0
  987. package/repos/effect/packages/effect/src/Trie.ts +953 -0
  988. package/repos/effect/packages/effect/src/Tuple.ts +737 -0
  989. package/repos/effect/packages/effect/src/TxChunk.ts +822 -0
  990. package/repos/effect/packages/effect/src/TxDeferred.ts +319 -0
  991. package/repos/effect/packages/effect/src/TxHashMap.ts +2165 -0
  992. package/repos/effect/packages/effect/src/TxHashSet.ts +908 -0
  993. package/repos/effect/packages/effect/src/TxPriorityQueue.ts +567 -0
  994. package/repos/effect/packages/effect/src/TxPubSub.ts +684 -0
  995. package/repos/effect/packages/effect/src/TxQueue.ts +1488 -0
  996. package/repos/effect/packages/effect/src/TxReentrantLock.ts +655 -0
  997. package/repos/effect/packages/effect/src/TxRef.ts +282 -0
  998. package/repos/effect/packages/effect/src/TxSemaphore.ts +707 -0
  999. package/repos/effect/packages/effect/src/TxSubscriptionRef.ts +518 -0
  1000. package/repos/effect/packages/effect/src/Types.ts +1121 -0
  1001. package/repos/effect/packages/effect/src/UndefinedOr.ts +239 -0
  1002. package/repos/effect/packages/effect/src/Unify.ts +314 -0
  1003. package/repos/effect/packages/effect/src/Utils.ts +221 -0
  1004. package/repos/effect/packages/effect/src/index.ts +712 -0
  1005. package/repos/effect/packages/effect/src/internal/array.ts +8 -0
  1006. package/repos/effect/packages/effect/src/internal/concurrency.ts +52 -0
  1007. package/repos/effect/packages/effect/src/internal/core.ts +666 -0
  1008. package/repos/effect/packages/effect/src/internal/dateTime.ts +1264 -0
  1009. package/repos/effect/packages/effect/src/internal/doNotation.ts +117 -0
  1010. package/repos/effect/packages/effect/src/internal/effect.ts +6427 -0
  1011. package/repos/effect/packages/effect/src/internal/equal.ts +28 -0
  1012. package/repos/effect/packages/effect/src/internal/errors.ts +9 -0
  1013. package/repos/effect/packages/effect/src/internal/executionPlan.ts +120 -0
  1014. package/repos/effect/packages/effect/src/internal/hashMap.ts +1309 -0
  1015. package/repos/effect/packages/effect/src/internal/hashSet.ts +190 -0
  1016. package/repos/effect/packages/effect/src/internal/layer.ts +88 -0
  1017. package/repos/effect/packages/effect/src/internal/matcher.ts +637 -0
  1018. package/repos/effect/packages/effect/src/internal/metric.ts +2 -0
  1019. package/repos/effect/packages/effect/src/internal/option.ts +98 -0
  1020. package/repos/effect/packages/effect/src/internal/random.ts +20 -0
  1021. package/repos/effect/packages/effect/src/internal/rcRef.ts +189 -0
  1022. package/repos/effect/packages/effect/src/internal/record.ts +18 -0
  1023. package/repos/effect/packages/effect/src/internal/redacted.ts +19 -0
  1024. package/repos/effect/packages/effect/src/internal/references.ts +72 -0
  1025. package/repos/effect/packages/effect/src/internal/request.ts +205 -0
  1026. package/repos/effect/packages/effect/src/internal/result.ts +112 -0
  1027. package/repos/effect/packages/effect/src/internal/schedule.ts +248 -0
  1028. package/repos/effect/packages/effect/src/internal/schema/annotations.ts +37 -0
  1029. package/repos/effect/packages/effect/src/internal/schema/arbitrary.ts +894 -0
  1030. package/repos/effect/packages/effect/src/internal/schema/cause.ts +26 -0
  1031. package/repos/effect/packages/effect/src/internal/schema/equivalence.ts +154 -0
  1032. package/repos/effect/packages/effect/src/internal/schema/representation.ts +799 -0
  1033. package/repos/effect/packages/effect/src/internal/schema/schema.ts +128 -0
  1034. package/repos/effect/packages/effect/src/internal/stream.ts +28 -0
  1035. package/repos/effect/packages/effect/src/internal/tracer.ts +41 -0
  1036. package/repos/effect/packages/effect/src/internal/trie.ts +733 -0
  1037. package/repos/effect/packages/effect/src/internal/version.ts +2 -0
  1038. package/repos/effect/packages/effect/src/testing/FastCheck.ts +89 -0
  1039. package/repos/effect/packages/effect/src/testing/TestClock.ts +547 -0
  1040. package/repos/effect/packages/effect/src/testing/TestConsole.ts +369 -0
  1041. package/repos/effect/packages/effect/src/testing/TestSchema.ts +567 -0
  1042. package/repos/effect/packages/effect/src/testing/index.ts +25 -0
  1043. package/repos/effect/packages/effect/src/unstable/ai/AiError.ts +1629 -0
  1044. package/repos/effect/packages/effect/src/unstable/ai/AnthropicStructuredOutput.ts +407 -0
  1045. package/repos/effect/packages/effect/src/unstable/ai/Chat.ts +931 -0
  1046. package/repos/effect/packages/effect/src/unstable/ai/EmbeddingModel.ts +269 -0
  1047. package/repos/effect/packages/effect/src/unstable/ai/IdGenerator.ts +300 -0
  1048. package/repos/effect/packages/effect/src/unstable/ai/LanguageModel.ts +2221 -0
  1049. package/repos/effect/packages/effect/src/unstable/ai/McpSchema.ts +2527 -0
  1050. package/repos/effect/packages/effect/src/unstable/ai/McpServer.ts +1468 -0
  1051. package/repos/effect/packages/effect/src/unstable/ai/Model.ts +166 -0
  1052. package/repos/effect/packages/effect/src/unstable/ai/OpenAiStructuredOutput.ts +476 -0
  1053. package/repos/effect/packages/effect/src/unstable/ai/Prompt.ts +2234 -0
  1054. package/repos/effect/packages/effect/src/unstable/ai/Response.ts +2582 -0
  1055. package/repos/effect/packages/effect/src/unstable/ai/ResponseIdTracker.ts +139 -0
  1056. package/repos/effect/packages/effect/src/unstable/ai/Telemetry.ts +515 -0
  1057. package/repos/effect/packages/effect/src/unstable/ai/Tokenizer.ts +176 -0
  1058. package/repos/effect/packages/effect/src/unstable/ai/Tool.ts +2003 -0
  1059. package/repos/effect/packages/effect/src/unstable/ai/Toolkit.ts +554 -0
  1060. package/repos/effect/packages/effect/src/unstable/ai/index.ts +90 -0
  1061. package/repos/effect/packages/effect/src/unstable/ai/internal/codec-transformer.ts +13 -0
  1062. package/repos/effect/packages/effect/src/unstable/cli/Argument.ts +749 -0
  1063. package/repos/effect/packages/effect/src/unstable/cli/CliError.ts +549 -0
  1064. package/repos/effect/packages/effect/src/unstable/cli/CliOutput.ts +607 -0
  1065. package/repos/effect/packages/effect/src/unstable/cli/Command.ts +1610 -0
  1066. package/repos/effect/packages/effect/src/unstable/cli/Completions.ts +123 -0
  1067. package/repos/effect/packages/effect/src/unstable/cli/Flag.ts +986 -0
  1068. package/repos/effect/packages/effect/src/unstable/cli/GlobalFlag.ts +295 -0
  1069. package/repos/effect/packages/effect/src/unstable/cli/HelpDoc.ts +323 -0
  1070. package/repos/effect/packages/effect/src/unstable/cli/Param.ts +2193 -0
  1071. package/repos/effect/packages/effect/src/unstable/cli/Primitive.ts +766 -0
  1072. package/repos/effect/packages/effect/src/unstable/cli/Prompt.ts +3852 -0
  1073. package/repos/effect/packages/effect/src/unstable/cli/SEMANTICS.md +157 -0
  1074. package/repos/effect/packages/effect/src/unstable/cli/index.ts +60 -0
  1075. package/repos/effect/packages/effect/src/unstable/cli/internal/ansi.ts +152 -0
  1076. package/repos/effect/packages/effect/src/unstable/cli/internal/auto-suggest.ts +41 -0
  1077. package/repos/effect/packages/effect/src/unstable/cli/internal/command.ts +340 -0
  1078. package/repos/effect/packages/effect/src/unstable/cli/internal/completions/bash.ts +222 -0
  1079. package/repos/effect/packages/effect/src/unstable/cli/internal/completions/descriptor.ts +133 -0
  1080. package/repos/effect/packages/effect/src/unstable/cli/internal/completions/fish.ts +253 -0
  1081. package/repos/effect/packages/effect/src/unstable/cli/internal/completions/zsh.ts +220 -0
  1082. package/repos/effect/packages/effect/src/unstable/cli/internal/config.ts +272 -0
  1083. package/repos/effect/packages/effect/src/unstable/cli/internal/help.ts +181 -0
  1084. package/repos/effect/packages/effect/src/unstable/cli/internal/lexer.ts +70 -0
  1085. package/repos/effect/packages/effect/src/unstable/cli/internal/parser.ts +932 -0
  1086. package/repos/effect/packages/effect/src/unstable/cluster/ClusterCron.ts +163 -0
  1087. package/repos/effect/packages/effect/src/unstable/cluster/ClusterError.ts +238 -0
  1088. package/repos/effect/packages/effect/src/unstable/cluster/ClusterMetrics.ts +112 -0
  1089. package/repos/effect/packages/effect/src/unstable/cluster/ClusterSchema.ts +170 -0
  1090. package/repos/effect/packages/effect/src/unstable/cluster/ClusterWorkflowEngine.ts +778 -0
  1091. package/repos/effect/packages/effect/src/unstable/cluster/DeliverAt.ts +58 -0
  1092. package/repos/effect/packages/effect/src/unstable/cluster/Entity.ts +779 -0
  1093. package/repos/effect/packages/effect/src/unstable/cluster/EntityAddress.ts +93 -0
  1094. package/repos/effect/packages/effect/src/unstable/cluster/EntityId.ts +50 -0
  1095. package/repos/effect/packages/effect/src/unstable/cluster/EntityProxy.ts +263 -0
  1096. package/repos/effect/packages/effect/src/unstable/cluster/EntityProxyServer.ts +149 -0
  1097. package/repos/effect/packages/effect/src/unstable/cluster/EntityResource.ts +184 -0
  1098. package/repos/effect/packages/effect/src/unstable/cluster/EntityType.ts +52 -0
  1099. package/repos/effect/packages/effect/src/unstable/cluster/Envelope.ts +433 -0
  1100. package/repos/effect/packages/effect/src/unstable/cluster/HttpRunner.ts +345 -0
  1101. package/repos/effect/packages/effect/src/unstable/cluster/K8sHttpClient.ts +297 -0
  1102. package/repos/effect/packages/effect/src/unstable/cluster/MachineId.ts +54 -0
  1103. package/repos/effect/packages/effect/src/unstable/cluster/Message.ts +314 -0
  1104. package/repos/effect/packages/effect/src/unstable/cluster/MessageStorage.ts +1072 -0
  1105. package/repos/effect/packages/effect/src/unstable/cluster/Reply.ts +455 -0
  1106. package/repos/effect/packages/effect/src/unstable/cluster/Runner.ts +129 -0
  1107. package/repos/effect/packages/effect/src/unstable/cluster/RunnerAddress.ts +112 -0
  1108. package/repos/effect/packages/effect/src/unstable/cluster/RunnerHealth.ts +145 -0
  1109. package/repos/effect/packages/effect/src/unstable/cluster/RunnerServer.ts +220 -0
  1110. package/repos/effect/packages/effect/src/unstable/cluster/RunnerStorage.ts +243 -0
  1111. package/repos/effect/packages/effect/src/unstable/cluster/Runners.ts +690 -0
  1112. package/repos/effect/packages/effect/src/unstable/cluster/ShardId.ts +178 -0
  1113. package/repos/effect/packages/effect/src/unstable/cluster/Sharding.ts +1488 -0
  1114. package/repos/effect/packages/effect/src/unstable/cluster/ShardingConfig.ts +367 -0
  1115. package/repos/effect/packages/effect/src/unstable/cluster/ShardingRegistrationEvent.ts +76 -0
  1116. package/repos/effect/packages/effect/src/unstable/cluster/SingleRunner.ts +75 -0
  1117. package/repos/effect/packages/effect/src/unstable/cluster/Singleton.ts +56 -0
  1118. package/repos/effect/packages/effect/src/unstable/cluster/SingletonAddress.ts +49 -0
  1119. package/repos/effect/packages/effect/src/unstable/cluster/Snowflake.ts +282 -0
  1120. package/repos/effect/packages/effect/src/unstable/cluster/SocketRunner.ts +96 -0
  1121. package/repos/effect/packages/effect/src/unstable/cluster/SqlMessageStorage.ts +1045 -0
  1122. package/repos/effect/packages/effect/src/unstable/cluster/SqlRunnerStorage.ts +700 -0
  1123. package/repos/effect/packages/effect/src/unstable/cluster/TestRunner.ts +36 -0
  1124. package/repos/effect/packages/effect/src/unstable/cluster/index.ts +195 -0
  1125. package/repos/effect/packages/effect/src/unstable/cluster/internal/entityManager.ts +678 -0
  1126. package/repos/effect/packages/effect/src/unstable/cluster/internal/entityReaper.ts +58 -0
  1127. package/repos/effect/packages/effect/src/unstable/cluster/internal/hash.ts +23 -0
  1128. package/repos/effect/packages/effect/src/unstable/cluster/internal/interruptors.ts +2 -0
  1129. package/repos/effect/packages/effect/src/unstable/cluster/internal/resourceMap.ts +100 -0
  1130. package/repos/effect/packages/effect/src/unstable/cluster/internal/resourceRef.ts +99 -0
  1131. package/repos/effect/packages/effect/src/unstable/devtools/DevTools.ts +68 -0
  1132. package/repos/effect/packages/effect/src/unstable/devtools/DevToolsClient.ts +236 -0
  1133. package/repos/effect/packages/effect/src/unstable/devtools/DevToolsSchema.ts +558 -0
  1134. package/repos/effect/packages/effect/src/unstable/devtools/DevToolsServer.ts +94 -0
  1135. package/repos/effect/packages/effect/src/unstable/devtools/index.ts +25 -0
  1136. package/repos/effect/packages/effect/src/unstable/encoding/Msgpack.ts +383 -0
  1137. package/repos/effect/packages/effect/src/unstable/encoding/Ndjson.ts +602 -0
  1138. package/repos/effect/packages/effect/src/unstable/encoding/Sse.ts +593 -0
  1139. package/repos/effect/packages/effect/src/unstable/encoding/index.ts +20 -0
  1140. package/repos/effect/packages/effect/src/unstable/eventlog/Event.ts +447 -0
  1141. package/repos/effect/packages/effect/src/unstable/eventlog/EventGroup.ts +193 -0
  1142. package/repos/effect/packages/effect/src/unstable/eventlog/EventJournal.ts +795 -0
  1143. package/repos/effect/packages/effect/src/unstable/eventlog/EventLog.ts +1030 -0
  1144. package/repos/effect/packages/effect/src/unstable/eventlog/EventLogEncryption.ts +169 -0
  1145. package/repos/effect/packages/effect/src/unstable/eventlog/EventLogMessage.ts +354 -0
  1146. package/repos/effect/packages/effect/src/unstable/eventlog/EventLogRemote.ts +377 -0
  1147. package/repos/effect/packages/effect/src/unstable/eventlog/EventLogServer.ts +242 -0
  1148. package/repos/effect/packages/effect/src/unstable/eventlog/EventLogServerEncrypted.ts +268 -0
  1149. package/repos/effect/packages/effect/src/unstable/eventlog/EventLogServerUnencrypted.ts +898 -0
  1150. package/repos/effect/packages/effect/src/unstable/eventlog/EventLogSessionAuth.ts +524 -0
  1151. package/repos/effect/packages/effect/src/unstable/eventlog/SqlEventJournal.ts +353 -0
  1152. package/repos/effect/packages/effect/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +343 -0
  1153. package/repos/effect/packages/effect/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +527 -0
  1154. package/repos/effect/packages/effect/src/unstable/eventlog/index.ts +75 -0
  1155. package/repos/effect/packages/effect/src/unstable/eventlog/internal/identityRootSecretDerivation.ts +153 -0
  1156. package/repos/effect/packages/effect/src/unstable/http/Cookies.ts +952 -0
  1157. package/repos/effect/packages/effect/src/unstable/http/Etag.ts +141 -0
  1158. package/repos/effect/packages/effect/src/unstable/http/FetchHttpClient.ts +123 -0
  1159. package/repos/effect/packages/effect/src/unstable/http/FindMyWay.ts +15 -0
  1160. package/repos/effect/packages/effect/src/unstable/http/Headers.ts +438 -0
  1161. package/repos/effect/packages/effect/src/unstable/http/HttpBody.ts +545 -0
  1162. package/repos/effect/packages/effect/src/unstable/http/HttpClient.ts +1630 -0
  1163. package/repos/effect/packages/effect/src/unstable/http/HttpClientError.ts +328 -0
  1164. package/repos/effect/packages/effect/src/unstable/http/HttpClientRequest.ts +968 -0
  1165. package/repos/effect/packages/effect/src/unstable/http/HttpClientResponse.ts +408 -0
  1166. package/repos/effect/packages/effect/src/unstable/http/HttpEffect.ts +400 -0
  1167. package/repos/effect/packages/effect/src/unstable/http/HttpIncomingMessage.ts +153 -0
  1168. package/repos/effect/packages/effect/src/unstable/http/HttpMethod.ts +124 -0
  1169. package/repos/effect/packages/effect/src/unstable/http/HttpMiddleware.ts +394 -0
  1170. package/repos/effect/packages/effect/src/unstable/http/HttpPlatform.ts +165 -0
  1171. package/repos/effect/packages/effect/src/unstable/http/HttpRouter.ts +1341 -0
  1172. package/repos/effect/packages/effect/src/unstable/http/HttpServer.ts +329 -0
  1173. package/repos/effect/packages/effect/src/unstable/http/HttpServerError.ts +374 -0
  1174. package/repos/effect/packages/effect/src/unstable/http/HttpServerRequest.ts +1081 -0
  1175. package/repos/effect/packages/effect/src/unstable/http/HttpServerRespondable.ts +115 -0
  1176. package/repos/effect/packages/effect/src/unstable/http/HttpServerResponse.ts +1381 -0
  1177. package/repos/effect/packages/effect/src/unstable/http/HttpStaticServer.ts +464 -0
  1178. package/repos/effect/packages/effect/src/unstable/http/HttpTraceContext.ts +160 -0
  1179. package/repos/effect/packages/effect/src/unstable/http/Multipart.ts +830 -0
  1180. package/repos/effect/packages/effect/src/unstable/http/Multipasta/HeadersParser.ts +14 -0
  1181. package/repos/effect/packages/effect/src/unstable/http/Multipasta/Node.ts +14 -0
  1182. package/repos/effect/packages/effect/src/unstable/http/Multipasta/Search.ts +14 -0
  1183. package/repos/effect/packages/effect/src/unstable/http/Multipasta/Web.ts +14 -0
  1184. package/repos/effect/packages/effect/src/unstable/http/Multipasta.ts +15 -0
  1185. package/repos/effect/packages/effect/src/unstable/http/Template.ts +262 -0
  1186. package/repos/effect/packages/effect/src/unstable/http/Url.ts +330 -0
  1187. package/repos/effect/packages/effect/src/unstable/http/UrlParams.ts +678 -0
  1188. package/repos/effect/packages/effect/src/unstable/http/index.ts +145 -0
  1189. package/repos/effect/packages/effect/src/unstable/http/internal/preResponseHandler.ts +15 -0
  1190. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApi.ts +316 -0
  1191. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiBuilder.ts +1015 -0
  1192. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiClient.ts +1005 -0
  1193. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiEndpoint.ts +1545 -0
  1194. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiError.ts +443 -0
  1195. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiGroup.ts +381 -0
  1196. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiMiddleware.ts +478 -0
  1197. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiScalar.ts +267 -0
  1198. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiSchema.ts +733 -0
  1199. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiSecurity.ts +244 -0
  1200. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiSwagger.ts +68 -0
  1201. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiTest.ts +112 -0
  1202. package/repos/effect/packages/effect/src/unstable/httpapi/OpenApi.ts +1098 -0
  1203. package/repos/effect/packages/effect/src/unstable/httpapi/index.ts +70 -0
  1204. package/repos/effect/packages/effect/src/unstable/httpapi/internal/html.ts +18 -0
  1205. package/repos/effect/packages/effect/src/unstable/httpapi/internal/httpApiScalar.ts +5 -0
  1206. package/repos/effect/packages/effect/src/unstable/httpapi/internal/httpApiSwagger.ts +9 -0
  1207. package/repos/effect/packages/effect/src/unstable/observability/Otlp.ts +172 -0
  1208. package/repos/effect/packages/effect/src/unstable/observability/OtlpExporter.ts +149 -0
  1209. package/repos/effect/packages/effect/src/unstable/observability/OtlpLogger.ts +340 -0
  1210. package/repos/effect/packages/effect/src/unstable/observability/OtlpMetrics.ts +826 -0
  1211. package/repos/effect/packages/effect/src/unstable/observability/OtlpResource.ts +288 -0
  1212. package/repos/effect/packages/effect/src/unstable/observability/OtlpSerialization.ts +66 -0
  1213. package/repos/effect/packages/effect/src/unstable/observability/OtlpTracer.ts +442 -0
  1214. package/repos/effect/packages/effect/src/unstable/observability/PrometheusMetrics.ts +468 -0
  1215. package/repos/effect/packages/effect/src/unstable/observability/index.ts +45 -0
  1216. package/repos/effect/packages/effect/src/unstable/observability/internal/otlpEnv.ts +39 -0
  1217. package/repos/effect/packages/effect/src/unstable/observability/internal/otlpProtobuf.ts +779 -0
  1218. package/repos/effect/packages/effect/src/unstable/observability/internal/protobuf.ts +262 -0
  1219. package/repos/effect/packages/effect/src/unstable/persistence/KeyValueStore.ts +864 -0
  1220. package/repos/effect/packages/effect/src/unstable/persistence/Persistable.ts +252 -0
  1221. package/repos/effect/packages/effect/src/unstable/persistence/PersistedCache.ts +111 -0
  1222. package/repos/effect/packages/effect/src/unstable/persistence/PersistedQueue.ts +1196 -0
  1223. package/repos/effect/packages/effect/src/unstable/persistence/Persistence.ts +1071 -0
  1224. package/repos/effect/packages/effect/src/unstable/persistence/RateLimiter.ts +748 -0
  1225. package/repos/effect/packages/effect/src/unstable/persistence/Redis.ts +188 -0
  1226. package/repos/effect/packages/effect/src/unstable/persistence/index.ts +40 -0
  1227. package/repos/effect/packages/effect/src/unstable/process/ChildProcess.ts +1036 -0
  1228. package/repos/effect/packages/effect/src/unstable/process/ChildProcessSpawner.ts +285 -0
  1229. package/repos/effect/packages/effect/src/unstable/process/index.ts +15 -0
  1230. package/repos/effect/packages/effect/src/unstable/reactivity/AsyncResult.ts +1081 -0
  1231. package/repos/effect/packages/effect/src/unstable/reactivity/Atom.ts +2520 -0
  1232. package/repos/effect/packages/effect/src/unstable/reactivity/AtomHttpApi.ts +352 -0
  1233. package/repos/effect/packages/effect/src/unstable/reactivity/AtomRef.ts +352 -0
  1234. package/repos/effect/packages/effect/src/unstable/reactivity/AtomRegistry.ts +1127 -0
  1235. package/repos/effect/packages/effect/src/unstable/reactivity/AtomRpc.ts +305 -0
  1236. package/repos/effect/packages/effect/src/unstable/reactivity/Hydration.ts +155 -0
  1237. package/repos/effect/packages/effect/src/unstable/reactivity/Reactivity.ts +348 -0
  1238. package/repos/effect/packages/effect/src/unstable/reactivity/index.ts +45 -0
  1239. package/repos/effect/packages/effect/src/unstable/rpc/Rpc.ts +1255 -0
  1240. package/repos/effect/packages/effect/src/unstable/rpc/RpcClient.ts +1370 -0
  1241. package/repos/effect/packages/effect/src/unstable/rpc/RpcClientError.ts +57 -0
  1242. package/repos/effect/packages/effect/src/unstable/rpc/RpcGroup.ts +409 -0
  1243. package/repos/effect/packages/effect/src/unstable/rpc/RpcMessage.ts +402 -0
  1244. package/repos/effect/packages/effect/src/unstable/rpc/RpcMiddleware.ts +344 -0
  1245. package/repos/effect/packages/effect/src/unstable/rpc/RpcSchema.ts +97 -0
  1246. package/repos/effect/packages/effect/src/unstable/rpc/RpcSerialization.ts +546 -0
  1247. package/repos/effect/packages/effect/src/unstable/rpc/RpcServer.ts +1492 -0
  1248. package/repos/effect/packages/effect/src/unstable/rpc/RpcTest.ts +56 -0
  1249. package/repos/effect/packages/effect/src/unstable/rpc/RpcWorker.ts +118 -0
  1250. package/repos/effect/packages/effect/src/unstable/rpc/Utils.ts +120 -0
  1251. package/repos/effect/packages/effect/src/unstable/rpc/index.ts +65 -0
  1252. package/repos/effect/packages/effect/src/unstable/schema/Model.ts +862 -0
  1253. package/repos/effect/packages/effect/src/unstable/schema/VariantSchema.ts +604 -0
  1254. package/repos/effect/packages/effect/src/unstable/schema/index.ts +15 -0
  1255. package/repos/effect/packages/effect/src/unstable/socket/Socket.ts +911 -0
  1256. package/repos/effect/packages/effect/src/unstable/socket/SocketServer.ts +147 -0
  1257. package/repos/effect/packages/effect/src/unstable/socket/index.ts +15 -0
  1258. package/repos/effect/packages/effect/src/unstable/sql/Migrator.ts +440 -0
  1259. package/repos/effect/packages/effect/src/unstable/sql/SqlClient.ts +342 -0
  1260. package/repos/effect/packages/effect/src/unstable/sql/SqlConnection.ts +83 -0
  1261. package/repos/effect/packages/effect/src/unstable/sql/SqlError.ts +590 -0
  1262. package/repos/effect/packages/effect/src/unstable/sql/SqlModel.ts +359 -0
  1263. package/repos/effect/packages/effect/src/unstable/sql/SqlResolver.ts +380 -0
  1264. package/repos/effect/packages/effect/src/unstable/sql/SqlSchema.ts +172 -0
  1265. package/repos/effect/packages/effect/src/unstable/sql/SqlStream.ts +81 -0
  1266. package/repos/effect/packages/effect/src/unstable/sql/Statement.ts +1500 -0
  1267. package/repos/effect/packages/effect/src/unstable/sql/index.ts +50 -0
  1268. package/repos/effect/packages/effect/src/unstable/workers/Transferable.ts +191 -0
  1269. package/repos/effect/packages/effect/src/unstable/workers/Worker.ts +245 -0
  1270. package/repos/effect/packages/effect/src/unstable/workers/WorkerError.ts +148 -0
  1271. package/repos/effect/packages/effect/src/unstable/workers/WorkerRunner.ts +57 -0
  1272. package/repos/effect/packages/effect/src/unstable/workers/index.ts +25 -0
  1273. package/repos/effect/packages/effect/src/unstable/workflow/Activity.ts +322 -0
  1274. package/repos/effect/packages/effect/src/unstable/workflow/DurableClock.ts +117 -0
  1275. package/repos/effect/packages/effect/src/unstable/workflow/DurableDeferred.ts +653 -0
  1276. package/repos/effect/packages/effect/src/unstable/workflow/DurableQueue.ts +360 -0
  1277. package/repos/effect/packages/effect/src/unstable/workflow/Workflow.ts +898 -0
  1278. package/repos/effect/packages/effect/src/unstable/workflow/WorkflowEngine.ts +759 -0
  1279. package/repos/effect/packages/effect/src/unstable/workflow/WorkflowProxy.ts +212 -0
  1280. package/repos/effect/packages/effect/src/unstable/workflow/WorkflowProxyServer.ts +151 -0
  1281. package/repos/effect/packages/effect/src/unstable/workflow/index.ts +45 -0
  1282. package/repos/effect/packages/effect/src/unstable/workflow/internal/crypto.ts +15 -0
  1283. package/repos/effect/packages/effect/test/Array.test.ts +1579 -0
  1284. package/repos/effect/packages/effect/test/AtomRef.test.ts +27 -0
  1285. package/repos/effect/packages/effect/test/BigDecimal.test.ts +525 -0
  1286. package/repos/effect/packages/effect/test/BigInt.test.ts +57 -0
  1287. package/repos/effect/packages/effect/test/Boolean.test.ts +289 -0
  1288. package/repos/effect/packages/effect/test/Brand.test.ts +160 -0
  1289. package/repos/effect/packages/effect/test/Cache.test.ts +1423 -0
  1290. package/repos/effect/packages/effect/test/Cause.test.ts +834 -0
  1291. package/repos/effect/packages/effect/test/Channel.test.ts +556 -0
  1292. package/repos/effect/packages/effect/test/Chunk.test.ts +874 -0
  1293. package/repos/effect/packages/effect/test/Combiner.test.ts +42 -0
  1294. package/repos/effect/packages/effect/test/Config.test.ts +1416 -0
  1295. package/repos/effect/packages/effect/test/ConfigProvider.test.ts +726 -0
  1296. package/repos/effect/packages/effect/test/Cron.test.ts +401 -0
  1297. package/repos/effect/packages/effect/test/Crypto.test.ts +86 -0
  1298. package/repos/effect/packages/effect/test/Data.test.ts +269 -0
  1299. package/repos/effect/packages/effect/test/DateTime.test.ts +953 -0
  1300. package/repos/effect/packages/effect/test/Deferred.test.ts +165 -0
  1301. package/repos/effect/packages/effect/test/Duration.test.ts +679 -0
  1302. package/repos/effect/packages/effect/test/Effect.test.ts +2658 -0
  1303. package/repos/effect/packages/effect/test/EffectEager.test.ts +678 -0
  1304. package/repos/effect/packages/effect/test/EffectKeepAlive.test.ts +71 -0
  1305. package/repos/effect/packages/effect/test/Equal.test.ts +1278 -0
  1306. package/repos/effect/packages/effect/test/Equivalence.test.ts +170 -0
  1307. package/repos/effect/packages/effect/test/ExecutionPlan.test.ts +117 -0
  1308. package/repos/effect/packages/effect/test/Exit.test.ts +12 -0
  1309. package/repos/effect/packages/effect/test/Fiber.test.ts +9 -0
  1310. package/repos/effect/packages/effect/test/FiberHandle.test.ts +146 -0
  1311. package/repos/effect/packages/effect/test/FiberMap.test.ts +171 -0
  1312. package/repos/effect/packages/effect/test/FiberSet.test.ts +119 -0
  1313. package/repos/effect/packages/effect/test/Formatter.test.ts +247 -0
  1314. package/repos/effect/packages/effect/test/Function.test.ts +333 -0
  1315. package/repos/effect/packages/effect/test/Graph.test.ts +3505 -0
  1316. package/repos/effect/packages/effect/test/HashMap.test.ts +618 -0
  1317. package/repos/effect/packages/effect/test/HashSet.test.ts +298 -0
  1318. package/repos/effect/packages/effect/test/HttpClient.test.ts +131 -0
  1319. package/repos/effect/packages/effect/test/Iterable.test.ts +486 -0
  1320. package/repos/effect/packages/effect/test/JsonPatch.test.ts +948 -0
  1321. package/repos/effect/packages/effect/test/JsonPointer.test.ts +353 -0
  1322. package/repos/effect/packages/effect/test/JsonSchema.test.ts +1253 -0
  1323. package/repos/effect/packages/effect/test/Latch.test.ts +21 -0
  1324. package/repos/effect/packages/effect/test/Layer.test.ts +648 -0
  1325. package/repos/effect/packages/effect/test/LayerMap.test.ts +98 -0
  1326. package/repos/effect/packages/effect/test/LogLevel.test.ts +28 -0
  1327. package/repos/effect/packages/effect/test/Logger.test.ts +154 -0
  1328. package/repos/effect/packages/effect/test/ManagedRuntime.test.ts +58 -0
  1329. package/repos/effect/packages/effect/test/Match.test.ts +27 -0
  1330. package/repos/effect/packages/effect/test/Metric.test.ts +682 -0
  1331. package/repos/effect/packages/effect/test/Migrator.test.ts +69 -0
  1332. package/repos/effect/packages/effect/test/MutableHashMap.test.ts +309 -0
  1333. package/repos/effect/packages/effect/test/MutableHashSet.test.ts +10 -0
  1334. package/repos/effect/packages/effect/test/MutableList.test.ts +58 -0
  1335. package/repos/effect/packages/effect/test/Newtype.test.ts +90 -0
  1336. package/repos/effect/packages/effect/test/Number.test.ts +422 -0
  1337. package/repos/effect/packages/effect/test/Optic.test.ts +452 -0
  1338. package/repos/effect/packages/effect/test/Option.test.ts +564 -0
  1339. package/repos/effect/packages/effect/test/Order.test.ts +163 -0
  1340. package/repos/effect/packages/effect/test/Ordering.test.ts +18 -0
  1341. package/repos/effect/packages/effect/test/PartitionedSemaphore.test.ts +74 -0
  1342. package/repos/effect/packages/effect/test/Pathfinding.test.ts +426 -0
  1343. package/repos/effect/packages/effect/test/Pool.test.ts +422 -0
  1344. package/repos/effect/packages/effect/test/Predicate.test.ts +555 -0
  1345. package/repos/effect/packages/effect/test/PubSub.test.ts +538 -0
  1346. package/repos/effect/packages/effect/test/Queue.test.ts +317 -0
  1347. package/repos/effect/packages/effect/test/Random.test.ts +238 -0
  1348. package/repos/effect/packages/effect/test/RcMap.test.ts +237 -0
  1349. package/repos/effect/packages/effect/test/RcRef.test.ts +97 -0
  1350. package/repos/effect/packages/effect/test/Record.test.ts +395 -0
  1351. package/repos/effect/packages/effect/test/Redacted.test.ts +59 -0
  1352. package/repos/effect/packages/effect/test/Reducer.test.ts +12 -0
  1353. package/repos/effect/packages/effect/test/Ref.test.ts +187 -0
  1354. package/repos/effect/packages/effect/test/Request.test.ts +305 -0
  1355. package/repos/effect/packages/effect/test/Resource.test.ts +59 -0
  1356. package/repos/effect/packages/effect/test/Result.test.ts +517 -0
  1357. package/repos/effect/packages/effect/test/Schedule.test.ts +395 -0
  1358. package/repos/effect/packages/effect/test/Scheduler.test.ts +70 -0
  1359. package/repos/effect/packages/effect/test/Scope.test.ts +19 -0
  1360. package/repos/effect/packages/effect/test/ScopedCache.test.ts +2316 -0
  1361. package/repos/effect/packages/effect/test/ScopedRef.test.ts +80 -0
  1362. package/repos/effect/packages/effect/test/Semaphore.test.ts +469 -0
  1363. package/repos/effect/packages/effect/test/Sink.test.ts +230 -0
  1364. package/repos/effect/packages/effect/test/Stream.test.ts +4712 -0
  1365. package/repos/effect/packages/effect/test/String.test.ts +690 -0
  1366. package/repos/effect/packages/effect/test/Struct.test.ts +216 -0
  1367. package/repos/effect/packages/effect/test/SubscriptionRef.test.ts +90 -0
  1368. package/repos/effect/packages/effect/test/Symbol.test.ts +50 -0
  1369. package/repos/effect/packages/effect/test/SynchronizedRef.test.ts +105 -0
  1370. package/repos/effect/packages/effect/test/TestClock.test.ts +71 -0
  1371. package/repos/effect/packages/effect/test/Tracer.test.ts +410 -0
  1372. package/repos/effect/packages/effect/test/Trie.test.ts +531 -0
  1373. package/repos/effect/packages/effect/test/Tuple.test.ts +127 -0
  1374. package/repos/effect/packages/effect/test/TxChunk.test.ts +342 -0
  1375. package/repos/effect/packages/effect/test/TxDeferred.test.ts +197 -0
  1376. package/repos/effect/packages/effect/test/TxHashMap.test.ts +963 -0
  1377. package/repos/effect/packages/effect/test/TxHashSet.test.ts +442 -0
  1378. package/repos/effect/packages/effect/test/TxPriorityQueue.test.ts +187 -0
  1379. package/repos/effect/packages/effect/test/TxPubSub.test.ts +391 -0
  1380. package/repos/effect/packages/effect/test/TxQueue.test.ts +1260 -0
  1381. package/repos/effect/packages/effect/test/TxReentrantLock.test.ts +413 -0
  1382. package/repos/effect/packages/effect/test/TxSemaphore.test.ts +283 -0
  1383. package/repos/effect/packages/effect/test/TxSubscriptionRef.test.ts +197 -0
  1384. package/repos/effect/packages/effect/test/UndefinedOr.test.ts +65 -0
  1385. package/repos/effect/packages/effect/test/cluster/ClusterWorkflowEngine.test.ts +652 -0
  1386. package/repos/effect/packages/effect/test/cluster/Entity.test.ts +81 -0
  1387. package/repos/effect/packages/effect/test/cluster/K8sHttpClient.test.ts +34 -0
  1388. package/repos/effect/packages/effect/test/cluster/MessageStorage.test.ts +196 -0
  1389. package/repos/effect/packages/effect/test/cluster/Sharding.test.ts +578 -0
  1390. package/repos/effect/packages/effect/test/cluster/TestEntity.ts +132 -0
  1391. package/repos/effect/packages/effect/test/reactivity/AsyncResult.test.ts +41 -0
  1392. package/repos/effect/packages/effect/test/reactivity/Atom.test.ts +2551 -0
  1393. package/repos/effect/packages/effect/test/reactivity/AtomHttpApi.test.ts +86 -0
  1394. package/repos/effect/packages/effect/test/reactivity/AtomRpc.test.ts +70 -0
  1395. package/repos/effect/packages/effect/test/rpc/Rpc.test.ts +73 -0
  1396. package/repos/effect/packages/effect/test/rpc/RpcClient.test.ts +58 -0
  1397. package/repos/effect/packages/effect/test/rpc/RpcSerialization.test.ts +171 -0
  1398. package/repos/effect/packages/effect/test/schema/HMR.test.ts +72 -0
  1399. package/repos/effect/packages/effect/test/schema/Schema.test.ts +9133 -0
  1400. package/repos/effect/packages/effect/test/schema/SchemaAST.test.ts +280 -0
  1401. package/repos/effect/packages/effect/test/schema/SchemaGetter.test.ts +383 -0
  1402. package/repos/effect/packages/effect/test/schema/SchemaIssue.test.ts +9 -0
  1403. package/repos/effect/packages/effect/test/schema/SchemaParser.test.ts +323 -0
  1404. package/repos/effect/packages/effect/test/schema/fixtures/HMR-Class.ts +5 -0
  1405. package/repos/effect/packages/effect/test/schema/fixtures/HMR-sanity-check.ts +3 -0
  1406. package/repos/effect/packages/effect/test/schema/representation/fromASTs.test.ts +820 -0
  1407. package/repos/effect/packages/effect/test/schema/representation/fromJsonSchemaDocument.test.ts +2137 -0
  1408. package/repos/effect/packages/effect/test/schema/representation/toCodeDocument.test.ts +2089 -0
  1409. package/repos/effect/packages/effect/test/schema/representation/toJsonSchemaMultiDocument.test.ts +39 -0
  1410. package/repos/effect/packages/effect/test/schema/representation/toSchema.test.ts +506 -0
  1411. package/repos/effect/packages/effect/test/schema/toArbitrary.test.ts +1693 -0
  1412. package/repos/effect/packages/effect/test/schema/toCodec.test.ts +3149 -0
  1413. package/repos/effect/packages/effect/test/schema/toDifferJsonPatch.test.ts +239 -0
  1414. package/repos/effect/packages/effect/test/schema/toEquivalence.test.ts +519 -0
  1415. package/repos/effect/packages/effect/test/schema/toFormatter.test.ts +565 -0
  1416. package/repos/effect/packages/effect/test/schema/toIso.test.ts +394 -0
  1417. package/repos/effect/packages/effect/test/schema/toJsonSchemaDocument.test.ts +3630 -0
  1418. package/repos/effect/packages/effect/test/schema/toStandardJSONSchemaV1.test.ts +126 -0
  1419. package/repos/effect/packages/effect/test/schema/toStandardSchemaV1.test.ts +495 -0
  1420. package/repos/effect/packages/effect/test/schema/v3-v4.test.ts +250 -0
  1421. package/repos/effect/packages/effect/test/testing/TestSchema.test.ts +78 -0
  1422. package/repos/effect/packages/effect/test/unstable/ai/AiError.test.ts +823 -0
  1423. package/repos/effect/packages/effect/test/unstable/ai/AnthropicStructuredOutput.test.ts +593 -0
  1424. package/repos/effect/packages/effect/test/unstable/ai/Chat.test.ts +147 -0
  1425. package/repos/effect/packages/effect/test/unstable/ai/EmbeddingModel.test.ts +185 -0
  1426. package/repos/effect/packages/effect/test/unstable/ai/LanguageModel.test.ts +1714 -0
  1427. package/repos/effect/packages/effect/test/unstable/ai/LanguageModelTrackerLifecycle.test.ts +413 -0
  1428. package/repos/effect/packages/effect/test/unstable/ai/McpServer.test.ts +82 -0
  1429. package/repos/effect/packages/effect/test/unstable/ai/Model.test.ts +16 -0
  1430. package/repos/effect/packages/effect/test/unstable/ai/OpenAiStructuredOutput.test.ts +723 -0
  1431. package/repos/effect/packages/effect/test/unstable/ai/Prompt.test.ts +346 -0
  1432. package/repos/effect/packages/effect/test/unstable/ai/ResponseIdTracker.test.ts +424 -0
  1433. package/repos/effect/packages/effect/test/unstable/ai/Tool.test.ts +1264 -0
  1434. package/repos/effect/packages/effect/test/unstable/ai/utils.ts +68 -0
  1435. package/repos/effect/packages/effect/test/unstable/cli/Arguments.test.ts +390 -0
  1436. package/repos/effect/packages/effect/test/unstable/cli/Command.test.ts +1801 -0
  1437. package/repos/effect/packages/effect/test/unstable/cli/Errors.test.ts +150 -0
  1438. package/repos/effect/packages/effect/test/unstable/cli/Help.test.ts +572 -0
  1439. package/repos/effect/packages/effect/test/unstable/cli/LogLevel.test.ts +202 -0
  1440. package/repos/effect/packages/effect/test/unstable/cli/Param.test.ts +391 -0
  1441. package/repos/effect/packages/effect/test/unstable/cli/Primitive.test.ts +321 -0
  1442. package/repos/effect/packages/effect/test/unstable/cli/Prompt.test.ts +597 -0
  1443. package/repos/effect/packages/effect/test/unstable/cli/completions/completions.test.ts +656 -0
  1444. package/repos/effect/packages/effect/test/unstable/cli/completions/descriptor.test.ts +245 -0
  1445. package/repos/effect/packages/effect/test/unstable/cli/fixtures/ComprehensiveCli.ts +422 -0
  1446. package/repos/effect/packages/effect/test/unstable/cli/services/MockTerminal.ts +135 -0
  1447. package/repos/effect/packages/effect/test/unstable/cli/services/TestActions.ts +36 -0
  1448. package/repos/effect/packages/effect/test/unstable/encoding/Ndjson.test.ts +18 -0
  1449. package/repos/effect/packages/effect/test/unstable/encoding/Sse.test.ts +62 -0
  1450. package/repos/effect/packages/effect/test/unstable/eventlog/EventJournal.test.ts +25 -0
  1451. package/repos/effect/packages/effect/test/unstable/eventlog/EventLog.test.ts +104 -0
  1452. package/repos/effect/packages/effect/test/unstable/eventlog/EventLogIdentityDerivation.test.ts +85 -0
  1453. package/repos/effect/packages/effect/test/unstable/eventlog/EventLogRemote.test.ts +176 -0
  1454. package/repos/effect/packages/effect/test/unstable/eventlog/EventLogSessionAuth.test.ts +130 -0
  1455. package/repos/effect/packages/effect/test/unstable/eventlog/SqlEventLogServerUnencryptedStorageTest.ts +169 -0
  1456. package/repos/effect/packages/effect/test/unstable/http/Cookies.test.ts +80 -0
  1457. package/repos/effect/packages/effect/test/unstable/http/Headers.test.ts +73 -0
  1458. package/repos/effect/packages/effect/test/unstable/http/HttpClient.test.ts +306 -0
  1459. package/repos/effect/packages/effect/test/unstable/http/HttpClientRequest.test.ts +164 -0
  1460. package/repos/effect/packages/effect/test/unstable/http/HttpEffect.test.ts +254 -0
  1461. package/repos/effect/packages/effect/test/unstable/http/HttpMiddleware.test.ts +57 -0
  1462. package/repos/effect/packages/effect/test/unstable/http/HttpServerError.test.ts +121 -0
  1463. package/repos/effect/packages/effect/test/unstable/http/HttpServerRequest.test.ts +157 -0
  1464. package/repos/effect/packages/effect/test/unstable/http/HttpServerResponse.test.ts +76 -0
  1465. package/repos/effect/packages/effect/test/unstable/http/Multipart.test.ts +69 -0
  1466. package/repos/effect/packages/effect/test/unstable/http/Url.test.ts +98 -0
  1467. package/repos/effect/packages/effect/test/unstable/http/UrlParams.test.ts +30 -0
  1468. package/repos/effect/packages/effect/test/unstable/httpapi/HttpApiBuilder.test.ts +186 -0
  1469. package/repos/effect/packages/effect/test/unstable/httpapi/HttpApiClient.test.ts +446 -0
  1470. package/repos/effect/packages/effect/test/unstable/httpapi/HttpApiEndpoint.test.ts +160 -0
  1471. package/repos/effect/packages/effect/test/unstable/httpapi/HttpApiSchema.test.ts +108 -0
  1472. package/repos/effect/packages/effect/test/unstable/httpapi/HttpApiSecurity.test.ts +41 -0
  1473. package/repos/effect/packages/effect/test/unstable/httpapi/OpenApi.test.ts +39 -0
  1474. package/repos/effect/packages/effect/test/unstable/observability/OtlpConfig.test.ts +151 -0
  1475. package/repos/effect/packages/effect/test/unstable/observability/OtlpExporter.test.ts +108 -0
  1476. package/repos/effect/packages/effect/test/unstable/observability/OtlpMetrics.test.ts +518 -0
  1477. package/repos/effect/packages/effect/test/unstable/observability/OtlpResource.test.ts +84 -0
  1478. package/repos/effect/packages/effect/test/unstable/observability/PrometheusMetrics.test.ts +417 -0
  1479. package/repos/effect/packages/effect/test/unstable/persistence/KeyValueStore.test.ts +164 -0
  1480. package/repos/effect/packages/effect/test/unstable/persistence/KeyValueStoreTest.ts +85 -0
  1481. package/repos/effect/packages/effect/test/unstable/persistence/PersistedCache.test.ts +4 -0
  1482. package/repos/effect/packages/effect/test/unstable/persistence/PersistedCacheTest.ts +111 -0
  1483. package/repos/effect/packages/effect/test/unstable/persistence/PersistedQueue.test.ts +4 -0
  1484. package/repos/effect/packages/effect/test/unstable/persistence/PersistedQueueTest.ts +106 -0
  1485. package/repos/effect/packages/effect/test/unstable/persistence/RateLimiter.test.ts +145 -0
  1486. package/repos/effect/packages/effect/test/unstable/persistence/Redis.test.ts +43 -0
  1487. package/repos/effect/packages/effect/test/unstable/process/ChildProcess.test.ts +352 -0
  1488. package/repos/effect/packages/effect/test/unstable/schema/VariantSchema.test.ts +72 -0
  1489. package/repos/effect/packages/effect/test/unstable/sql/SqlError.test.ts +228 -0
  1490. package/repos/effect/packages/effect/test/unstable/sql/SqlSchema.test.ts +168 -0
  1491. package/repos/effect/packages/effect/test/unstable/workers/WorkerError.test.ts +90 -0
  1492. package/repos/effect/packages/effect/test/unstable/workflow/DurableQueue.test.ts +105 -0
  1493. package/repos/effect/packages/effect/test/unstable/workflow/WorkflowEngine.test.ts +60 -0
  1494. package/repos/effect/packages/effect/test/utils/assert.ts +182 -0
  1495. package/repos/effect/packages/effect/test/utils/chunkCoordination.ts +36 -0
  1496. package/repos/effect/packages/effect/test/utils/counter.ts +54 -0
  1497. package/repos/effect/packages/effect/tsconfig.json +8 -0
  1498. package/repos/effect/packages/effect/typetest/AiError.tst.ts +49 -0
  1499. package/repos/effect/packages/effect/typetest/Array.tst.ts +1289 -0
  1500. package/repos/effect/packages/effect/typetest/Brand.tst.ts +51 -0
  1501. package/repos/effect/packages/effect/typetest/Channel.tst.ts +112 -0
  1502. package/repos/effect/packages/effect/typetest/Config.tst.ts +31 -0
  1503. package/repos/effect/packages/effect/typetest/Data.tst.ts +121 -0
  1504. package/repos/effect/packages/effect/typetest/Effect.tst.ts +976 -0
  1505. package/repos/effect/packages/effect/typetest/Equivalence.tst.ts +19 -0
  1506. package/repos/effect/packages/effect/typetest/Newtype.tst.ts +72 -0
  1507. package/repos/effect/packages/effect/typetest/Optic.tst.ts +130 -0
  1508. package/repos/effect/packages/effect/typetest/Option.tst.ts +72 -0
  1509. package/repos/effect/packages/effect/typetest/Order.tst.ts +19 -0
  1510. package/repos/effect/packages/effect/typetest/Predicate.tst.ts +251 -0
  1511. package/repos/effect/packages/effect/typetest/Result.tst.ts +353 -0
  1512. package/repos/effect/packages/effect/typetest/Schedule.tst.ts +21 -0
  1513. package/repos/effect/packages/effect/typetest/Stream.tst.ts +197 -0
  1514. package/repos/effect/packages/effect/typetest/Struct.tst.ts +422 -0
  1515. package/repos/effect/packages/effect/typetest/Tuple.tst.ts +177 -0
  1516. package/repos/effect/packages/effect/typetest/Types.tst.ts +364 -0
  1517. package/repos/effect/packages/effect/typetest/VariantSchema.tst.ts +76 -0
  1518. package/repos/effect/packages/effect/typetest/schema/Array.tst.ts +46 -0
  1519. package/repos/effect/packages/effect/typetest/schema/Literals.tst.ts +58 -0
  1520. package/repos/effect/packages/effect/typetest/schema/Record.tst.ts +145 -0
  1521. package/repos/effect/packages/effect/typetest/schema/Schema.tst.ts +1854 -0
  1522. package/repos/effect/packages/effect/typetest/schema/Struct.tst.ts +745 -0
  1523. package/repos/effect/packages/effect/typetest/schema/Tuple.tst.ts +199 -0
  1524. package/repos/effect/packages/effect/typetest/schema/Union.tst.ts +198 -0
  1525. package/repos/effect/packages/effect/typetest/schema/api.tst.ts +276 -0
  1526. package/repos/effect/packages/effect/typetest/schema/toArbitrary.tst.ts +65 -0
  1527. package/repos/effect/packages/effect/typetest/schema/toIso.tst.ts +282 -0
  1528. package/repos/effect/packages/effect/typetest/unstable/ai/LanguageModel.tst.ts +191 -0
  1529. package/repos/effect/packages/effect/typetest/unstable/ai/Tool.tst.ts +33 -0
  1530. package/repos/effect/packages/effect/typetest/unstable/cli/Command.tst.ts +124 -0
  1531. package/repos/effect/packages/effect/typetest/unstable/cli/Param.tst.ts +20 -0
  1532. package/repos/effect/packages/effect/typetest/unstable/cli/Prompt.tst.ts +97 -0
  1533. package/repos/effect/packages/effect/typetest/unstable/encoding/Ndjson.tst.ts +24 -0
  1534. package/repos/effect/packages/effect/typetest/unstable/http/HttpClient.tst.ts +143 -0
  1535. package/repos/effect/packages/effect/typetest/unstable/httpapi/HttpApiBuilder.tst.ts +98 -0
  1536. package/repos/effect/packages/effect/typetest/unstable/httpapi/HttpApiClient.tst.ts +677 -0
  1537. package/repos/effect/packages/effect/typetest/unstable/httpapi/HttpApiEndpoint.tst.ts +466 -0
  1538. package/repos/effect/packages/effect/typetest/unstable/httpapi/HttpApiMiddleware.tst.ts +90 -0
  1539. package/repos/effect/packages/effect/typetest/unstable/httpapi/HttpApiSchema.tst.ts +135 -0
  1540. package/repos/effect/packages/effect/typetest/unstable/reactivity/AsyncResult.tst.ts +65 -0
  1541. package/repos/effect/packages/effect/typetest/unstable/reactivity/AtomHttpApi.tst.ts +63 -0
  1542. package/repos/effect/packages/effect/typetest/unstable/rpc/Rpc.tst.ts +74 -0
  1543. package/repos/effect/packages/effect/typetest/unstable/rpc/RpcGroup.tst.ts +61 -0
  1544. package/repos/effect/packages/effect/typetest/unstable/rpc/RpcMiddleware.tst.ts +41 -0
  1545. package/repos/effect/packages/effect/typetest/unstable/rpc/RpcServer.tst.ts +26 -0
  1546. package/repos/effect/packages/effect/typetest/unstable/sql/SqlSchema.tst.ts +75 -0
  1547. package/repos/effect/packages/effect/typetest/unstable/workflow/Workflow.tst.ts +16 -0
  1548. package/repos/effect/packages/effect/vitest.config.ts +11 -0
  1549. package/repos/effect/packages/opentelemetry/CHANGELOG.md +620 -0
  1550. package/repos/effect/packages/opentelemetry/LICENSE +21 -0
  1551. package/repos/effect/packages/opentelemetry/README.md +5 -0
  1552. package/repos/effect/packages/opentelemetry/docgen.json +30 -0
  1553. package/repos/effect/packages/opentelemetry/package.json +126 -0
  1554. package/repos/effect/packages/opentelemetry/src/Logger.ts +193 -0
  1555. package/repos/effect/packages/opentelemetry/src/Metrics.ts +138 -0
  1556. package/repos/effect/packages/opentelemetry/src/NodeSdk.ts +162 -0
  1557. package/repos/effect/packages/opentelemetry/src/Resource.ts +147 -0
  1558. package/repos/effect/packages/opentelemetry/src/Tracer.ts +594 -0
  1559. package/repos/effect/packages/opentelemetry/src/WebSdk.ts +140 -0
  1560. package/repos/effect/packages/opentelemetry/src/index.ts +35 -0
  1561. package/repos/effect/packages/opentelemetry/src/internal/attributes.ts +28 -0
  1562. package/repos/effect/packages/opentelemetry/src/internal/metrics.ts +463 -0
  1563. package/repos/effect/packages/opentelemetry/src/internal/utilities.ts +5 -0
  1564. package/repos/effect/packages/opentelemetry/test/Logger.test.ts +122 -0
  1565. package/repos/effect/packages/opentelemetry/test/Metrics.test.ts +339 -0
  1566. package/repos/effect/packages/opentelemetry/test/Tracer.test.ts +167 -0
  1567. package/repos/effect/packages/opentelemetry/tsconfig.json +8 -0
  1568. package/repos/effect/packages/opentelemetry/vitest.config.ts +6 -0
  1569. package/repos/effect/packages/platform-browser/CHANGELOG.md +637 -0
  1570. package/repos/effect/packages/platform-browser/LICENSE +21 -0
  1571. package/repos/effect/packages/platform-browser/README.md +1 -0
  1572. package/repos/effect/packages/platform-browser/docgen.json +21 -0
  1573. package/repos/effect/packages/platform-browser/package.json +74 -0
  1574. package/repos/effect/packages/platform-browser/src/BrowserCrypto.ts +97 -0
  1575. package/repos/effect/packages/platform-browser/src/BrowserHttpClient.ts +430 -0
  1576. package/repos/effect/packages/platform-browser/src/BrowserKeyValueStore.ts +177 -0
  1577. package/repos/effect/packages/platform-browser/src/BrowserPersistence.ts +334 -0
  1578. package/repos/effect/packages/platform-browser/src/BrowserRuntime.ts +53 -0
  1579. package/repos/effect/packages/platform-browser/src/BrowserSocket.ts +52 -0
  1580. package/repos/effect/packages/platform-browser/src/BrowserStream.ts +56 -0
  1581. package/repos/effect/packages/platform-browser/src/BrowserWorker.ts +98 -0
  1582. package/repos/effect/packages/platform-browser/src/BrowserWorkerRunner.ts +199 -0
  1583. package/repos/effect/packages/platform-browser/src/Clipboard.ts +143 -0
  1584. package/repos/effect/packages/platform-browser/src/Geolocation.ts +233 -0
  1585. package/repos/effect/packages/platform-browser/src/IndexedDb.ts +113 -0
  1586. package/repos/effect/packages/platform-browser/src/IndexedDbDatabase.ts +648 -0
  1587. package/repos/effect/packages/platform-browser/src/IndexedDbQueryBuilder.ts +2032 -0
  1588. package/repos/effect/packages/platform-browser/src/IndexedDbTable.ts +260 -0
  1589. package/repos/effect/packages/platform-browser/src/IndexedDbVersion.ts +138 -0
  1590. package/repos/effect/packages/platform-browser/src/Permissions.ts +146 -0
  1591. package/repos/effect/packages/platform-browser/src/index.ts +90 -0
  1592. package/repos/effect/packages/platform-browser/test/BrowserCrypto.test.ts +74 -0
  1593. package/repos/effect/packages/platform-browser/test/BrowserHttpClient.test.ts +91 -0
  1594. package/repos/effect/packages/platform-browser/test/BrowserKeyValueStore.test.ts +23 -0
  1595. package/repos/effect/packages/platform-browser/test/BrowserPersistence.test.ts +209 -0
  1596. package/repos/effect/packages/platform-browser/test/BrowserPersistencePersistedCache.test.ts +29 -0
  1597. package/repos/effect/packages/platform-browser/test/IndexedDbDatabase.test.ts +253 -0
  1598. package/repos/effect/packages/platform-browser/test/IndexedDbQueryBuilder.test.ts +1459 -0
  1599. package/repos/effect/packages/platform-browser/test/IndexedDbTable.test.ts +101 -0
  1600. package/repos/effect/packages/platform-browser/test/IndexedDbVersion.test.ts +50 -0
  1601. package/repos/effect/packages/platform-browser/test/Permissions.test.ts +12 -0
  1602. package/repos/effect/packages/platform-browser/test/RpcWorker.test.ts +19 -0
  1603. package/repos/effect/packages/platform-browser/test/fixtures/rpc-e2e.ts +141 -0
  1604. package/repos/effect/packages/platform-browser/test/fixtures/rpc-schemas.ts +157 -0
  1605. package/repos/effect/packages/platform-browser/test/fixtures/rpc-worker.ts +12 -0
  1606. package/repos/effect/packages/platform-browser/tsconfig.json +8 -0
  1607. package/repos/effect/packages/platform-browser/vitest.config.ts +17 -0
  1608. package/repos/effect/packages/platform-browser/vitest.setup.ts +5 -0
  1609. package/repos/effect/packages/platform-bun/CHANGELOG.md +691 -0
  1610. package/repos/effect/packages/platform-bun/LICENSE +21 -0
  1611. package/repos/effect/packages/platform-bun/README.md +7 -0
  1612. package/repos/effect/packages/platform-bun/docgen.json +20 -0
  1613. package/repos/effect/packages/platform-bun/package.json +73 -0
  1614. package/repos/effect/packages/platform-bun/src/BunChildProcessSpawner.ts +6 -0
  1615. package/repos/effect/packages/platform-bun/src/BunClusterHttp.ts +174 -0
  1616. package/repos/effect/packages/platform-bun/src/BunClusterSocket.ts +153 -0
  1617. package/repos/effect/packages/platform-bun/src/BunCrypto.ts +24 -0
  1618. package/repos/effect/packages/platform-bun/src/BunFileSystem.ts +20 -0
  1619. package/repos/effect/packages/platform-bun/src/BunHttpClient.ts +9 -0
  1620. package/repos/effect/packages/platform-bun/src/BunHttpPlatform.ts +50 -0
  1621. package/repos/effect/packages/platform-bun/src/BunHttpServer.ts +600 -0
  1622. package/repos/effect/packages/platform-bun/src/BunHttpServerRequest.ts +19 -0
  1623. package/repos/effect/packages/platform-bun/src/BunMultipart.ts +54 -0
  1624. package/repos/effect/packages/platform-bun/src/BunPath.ts +37 -0
  1625. package/repos/effect/packages/platform-bun/src/BunRedis.ts +88 -0
  1626. package/repos/effect/packages/platform-bun/src/BunRuntime.ts +52 -0
  1627. package/repos/effect/packages/platform-bun/src/BunServices.ts +49 -0
  1628. package/repos/effect/packages/platform-bun/src/BunSink.ts +8 -0
  1629. package/repos/effect/packages/platform-bun/src/BunSocket.ts +54 -0
  1630. package/repos/effect/packages/platform-bun/src/BunSocketServer.ts +8 -0
  1631. package/repos/effect/packages/platform-bun/src/BunStdio.ts +22 -0
  1632. package/repos/effect/packages/platform-bun/src/BunStream.ts +68 -0
  1633. package/repos/effect/packages/platform-bun/src/BunTerminal.ts +32 -0
  1634. package/repos/effect/packages/platform-bun/src/BunWorker.ts +92 -0
  1635. package/repos/effect/packages/platform-bun/src/BunWorkerRunner.ts +113 -0
  1636. package/repos/effect/packages/platform-bun/src/index.ts +115 -0
  1637. package/repos/effect/packages/platform-bun/tsconfig.json +12 -0
  1638. package/repos/effect/packages/platform-node/CHANGELOG.md +695 -0
  1639. package/repos/effect/packages/platform-node/LICENSE +21 -0
  1640. package/repos/effect/packages/platform-node/README.md +7 -0
  1641. package/repos/effect/packages/platform-node/docgen.json +24 -0
  1642. package/repos/effect/packages/platform-node/package.json +82 -0
  1643. package/repos/effect/packages/platform-node/src/Mime.ts +25 -0
  1644. package/repos/effect/packages/platform-node/src/NodeChildProcessSpawner.ts +6 -0
  1645. package/repos/effect/packages/platform-node/src/NodeClusterHttp.ts +155 -0
  1646. package/repos/effect/packages/platform-node/src/NodeClusterSocket.ts +176 -0
  1647. package/repos/effect/packages/platform-node/src/NodeCrypto.ts +24 -0
  1648. package/repos/effect/packages/platform-node/src/NodeFileSystem.ts +21 -0
  1649. package/repos/effect/packages/platform-node/src/NodeHttpClient.ts +664 -0
  1650. package/repos/effect/packages/platform-node/src/NodeHttpIncomingMessage.ts +141 -0
  1651. package/repos/effect/packages/platform-node/src/NodeHttpPlatform.ts +70 -0
  1652. package/repos/effect/packages/platform-node/src/NodeHttpServer.ts +646 -0
  1653. package/repos/effect/packages/platform-node/src/NodeHttpServerRequest.ts +33 -0
  1654. package/repos/effect/packages/platform-node/src/NodeMultipart.ts +183 -0
  1655. package/repos/effect/packages/platform-node/src/NodePath.ts +40 -0
  1656. package/repos/effect/packages/platform-node/src/NodeRedis.ts +92 -0
  1657. package/repos/effect/packages/platform-node/src/NodeRuntime.ts +53 -0
  1658. package/repos/effect/packages/platform-node/src/NodeServices.ts +50 -0
  1659. package/repos/effect/packages/platform-node/src/NodeSink.ts +8 -0
  1660. package/repos/effect/packages/platform-node/src/NodeSocket.ts +72 -0
  1661. package/repos/effect/packages/platform-node/src/NodeSocketServer.ts +8 -0
  1662. package/repos/effect/packages/platform-node/src/NodeStdio.ts +22 -0
  1663. package/repos/effect/packages/platform-node/src/NodeStream.ts +8 -0
  1664. package/repos/effect/packages/platform-node/src/NodeTerminal.ts +32 -0
  1665. package/repos/effect/packages/platform-node/src/NodeWorker.ts +121 -0
  1666. package/repos/effect/packages/platform-node/src/NodeWorkerRunner.ts +110 -0
  1667. package/repos/effect/packages/platform-node/src/Undici.ts +29 -0
  1668. package/repos/effect/packages/platform-node/src/index.ts +130 -0
  1669. package/repos/effect/packages/platform-node/test/HttpApi.test.ts +1831 -0
  1670. package/repos/effect/packages/platform-node/test/HttpStaticServer.test.ts +253 -0
  1671. package/repos/effect/packages/platform-node/test/HttpStaticServerConditional.test.ts +296 -0
  1672. package/repos/effect/packages/platform-node/test/NodeCrypto.test.ts +59 -0
  1673. package/repos/effect/packages/platform-node/test/NodeHttpClient.test.ts +157 -0
  1674. package/repos/effect/packages/platform-node/test/NodeHttpPlatform.test.ts +51 -0
  1675. package/repos/effect/packages/platform-node/test/NodeHttpServer.test.ts +598 -0
  1676. package/repos/effect/packages/platform-node/test/NodeRedis.test.ts +31 -0
  1677. package/repos/effect/packages/platform-node/test/NodeSocket.test.ts +153 -0
  1678. package/repos/effect/packages/platform-node/test/OpenApi.test.ts +1573 -0
  1679. package/repos/effect/packages/platform-node/test/RpcServer.test.ts +213 -0
  1680. package/repos/effect/packages/platform-node/test/__snapshots__/HttpApi.test.ts.snap +715 -0
  1681. package/repos/effect/packages/platform-node/test/cluster/MessageStorageTest.ts +196 -0
  1682. package/repos/effect/packages/platform-node/test/cluster/SocketRunner.test.ts +120 -0
  1683. package/repos/effect/packages/platform-node/test/cluster/SqlMessageStorage.test.ts +222 -0
  1684. package/repos/effect/packages/platform-node/test/cluster/SqlRunnerStorage.test.ts +101 -0
  1685. package/repos/effect/packages/platform-node/test/fixtures/http-static-server/conditional.txt +1 -0
  1686. package/repos/effect/packages/platform-node/test/fixtures/http-static-server/custom/home.html +1 -0
  1687. package/repos/effect/packages/platform-node/test/fixtures/http-static-server/file.binx +1 -0
  1688. package/repos/effect/packages/platform-node/test/fixtures/http-static-server/guide/index.html +1 -0
  1689. package/repos/effect/packages/platform-node/test/fixtures/http-static-server/hello.txt +1 -0
  1690. package/repos/effect/packages/platform-node/test/fixtures/http-static-server/index.html +1 -0
  1691. package/repos/effect/packages/platform-node/test/fixtures/http-static-server/range.txt +1 -0
  1692. package/repos/effect/packages/platform-node/test/fixtures/http-static-server-outside.txt +1 -0
  1693. package/repos/effect/packages/platform-node/test/fixtures/mysql2-utils.ts +64 -0
  1694. package/repos/effect/packages/platform-node/test/fixtures/pg-utils.ts +39 -0
  1695. package/repos/effect/packages/platform-node/test/fixtures/rpc-e2e.ts +149 -0
  1696. package/repos/effect/packages/platform-node/test/fixtures/rpc-schemas.ts +175 -0
  1697. package/repos/effect/packages/platform-node/test/fixtures/text.txt +1 -0
  1698. package/repos/effect/packages/platform-node/tsconfig.json +12 -0
  1699. package/repos/effect/packages/platform-node/vitest.config.ts +6 -0
  1700. package/repos/effect/packages/platform-node-shared/CHANGELOG.md +617 -0
  1701. package/repos/effect/packages/platform-node-shared/LICENSE +21 -0
  1702. package/repos/effect/packages/platform-node-shared/README.md +7 -0
  1703. package/repos/effect/packages/platform-node-shared/docgen.json +38 -0
  1704. package/repos/effect/packages/platform-node-shared/package.json +76 -0
  1705. package/repos/effect/packages/platform-node-shared/src/NodeChildProcessSpawner.ts +713 -0
  1706. package/repos/effect/packages/platform-node-shared/src/NodeClusterSocket.ts +70 -0
  1707. package/repos/effect/packages/platform-node-shared/src/NodeCrypto.ts +60 -0
  1708. package/repos/effect/packages/platform-node-shared/src/NodeFileSystem.ts +652 -0
  1709. package/repos/effect/packages/platform-node-shared/src/NodePath.ts +80 -0
  1710. package/repos/effect/packages/platform-node-shared/src/NodeRuntime.ts +59 -0
  1711. package/repos/effect/packages/platform-node-shared/src/NodeSink.ts +116 -0
  1712. package/repos/effect/packages/platform-node-shared/src/NodeSocket.ts +269 -0
  1713. package/repos/effect/packages/platform-node-shared/src/NodeSocketServer.ts +301 -0
  1714. package/repos/effect/packages/platform-node-shared/src/NodeStdio.ts +67 -0
  1715. package/repos/effect/packages/platform-node-shared/src/NodeStream.ts +445 -0
  1716. package/repos/effect/packages/platform-node-shared/src/NodeTerminal.ts +129 -0
  1717. package/repos/effect/packages/platform-node-shared/src/index.ts +65 -0
  1718. package/repos/effect/packages/platform-node-shared/src/internal/utils.ts +51 -0
  1719. package/repos/effect/packages/platform-node-shared/test/NodeChildProcessSpawner.test.ts +1069 -0
  1720. package/repos/effect/packages/platform-node-shared/test/NodeFileSystem.test.ts +214 -0
  1721. package/repos/effect/packages/platform-node-shared/test/NodeSink.test.ts +153 -0
  1722. package/repos/effect/packages/platform-node-shared/test/NodeStream.test.ts +173 -0
  1723. package/repos/effect/packages/platform-node-shared/test/fixtures/bash/no-permissions.sh +3 -0
  1724. package/repos/effect/packages/platform-node-shared/test/fixtures/bash/parent-exits-early.sh +31 -0
  1725. package/repos/effect/packages/platform-node-shared/test/fixtures/bash/spawn-children.sh +32 -0
  1726. package/repos/effect/packages/platform-node-shared/test/fixtures/config/SHOUTING +1 -0
  1727. package/repos/effect/packages/platform-node-shared/test/fixtures/config/integer +1 -0
  1728. package/repos/effect/packages/platform-node-shared/test/fixtures/config/nested/config +1 -0
  1729. package/repos/effect/packages/platform-node-shared/test/fixtures/config/secret +1 -0
  1730. package/repos/effect/packages/platform-node-shared/test/fixtures/helloworld.tar.gz +0 -0
  1731. package/repos/effect/packages/platform-node-shared/test/fixtures/text.txt +1 -0
  1732. package/repos/effect/packages/platform-node-shared/tsconfig.json +11 -0
  1733. package/repos/effect/packages/platform-node-shared/vitest.config.ts +6 -0
  1734. package/repos/effect/packages/sql/clickhouse/CHANGELOG.md +681 -0
  1735. package/repos/effect/packages/sql/clickhouse/LICENSE +21 -0
  1736. package/repos/effect/packages/sql/clickhouse/README.md +7 -0
  1737. package/repos/effect/packages/sql/clickhouse/docgen.json +24 -0
  1738. package/repos/effect/packages/sql/clickhouse/package.json +72 -0
  1739. package/repos/effect/packages/sql/clickhouse/src/ClickhouseClient.ts +546 -0
  1740. package/repos/effect/packages/sql/clickhouse/src/ClickhouseMigrator.ts +51 -0
  1741. package/repos/effect/packages/sql/clickhouse/src/index.ts +15 -0
  1742. package/repos/effect/packages/sql/clickhouse/test/Client.test.ts +6 -0
  1743. package/repos/effect/packages/sql/clickhouse/test/SqlErrorClassification.test.ts +75 -0
  1744. package/repos/effect/packages/sql/clickhouse/tsconfig.json +12 -0
  1745. package/repos/effect/packages/sql/clickhouse/vitest.config.ts +6 -0
  1746. package/repos/effect/packages/sql/d1/CHANGELOG.md +597 -0
  1747. package/repos/effect/packages/sql/d1/LICENSE +21 -0
  1748. package/repos/effect/packages/sql/d1/README.md +7 -0
  1749. package/repos/effect/packages/sql/d1/docgen.json +24 -0
  1750. package/repos/effect/packages/sql/d1/package.json +75 -0
  1751. package/repos/effect/packages/sql/d1/src/D1Client.ts +249 -0
  1752. package/repos/effect/packages/sql/d1/src/index.ts +10 -0
  1753. package/repos/effect/packages/sql/d1/test/Client.test.ts +65 -0
  1754. package/repos/effect/packages/sql/d1/test/Resolver.test.ts +176 -0
  1755. package/repos/effect/packages/sql/d1/test/utils.ts +38 -0
  1756. package/repos/effect/packages/sql/d1/tsconfig.json +8 -0
  1757. package/repos/effect/packages/sql/d1/vitest.config.ts +6 -0
  1758. package/repos/effect/packages/sql/libsql/CHANGELOG.md +601 -0
  1759. package/repos/effect/packages/sql/libsql/LICENSE +21 -0
  1760. package/repos/effect/packages/sql/libsql/README.md +7 -0
  1761. package/repos/effect/packages/sql/libsql/docgen.json +24 -0
  1762. package/repos/effect/packages/sql/libsql/package.json +73 -0
  1763. package/repos/effect/packages/sql/libsql/src/LibsqlClient.ts +381 -0
  1764. package/repos/effect/packages/sql/libsql/src/LibsqlMigrator.ts +46 -0
  1765. package/repos/effect/packages/sql/libsql/src/index.ts +15 -0
  1766. package/repos/effect/packages/sql/libsql/test/Client.test.ts +106 -0
  1767. package/repos/effect/packages/sql/libsql/test/Resolver.test.ts +177 -0
  1768. package/repos/effect/packages/sql/libsql/test/util.ts +54 -0
  1769. package/repos/effect/packages/sql/libsql/tsconfig.json +9 -0
  1770. package/repos/effect/packages/sql/libsql/vitest.config.ts +6 -0
  1771. package/repos/effect/packages/sql/mssql/CHANGELOG.md +601 -0
  1772. package/repos/effect/packages/sql/mssql/LICENSE +21 -0
  1773. package/repos/effect/packages/sql/mssql/README.md +7 -0
  1774. package/repos/effect/packages/sql/mssql/docgen.json +24 -0
  1775. package/repos/effect/packages/sql/mssql/package.json +70 -0
  1776. package/repos/effect/packages/sql/mssql/src/MssqlClient.ts +732 -0
  1777. package/repos/effect/packages/sql/mssql/src/MssqlMigrator.ts +45 -0
  1778. package/repos/effect/packages/sql/mssql/src/Parameter.ts +64 -0
  1779. package/repos/effect/packages/sql/mssql/src/Procedure.ts +213 -0
  1780. package/repos/effect/packages/sql/mssql/src/index.ts +32 -0
  1781. package/repos/effect/packages/sql/mssql/test/Client.test.ts +91 -0
  1782. package/repos/effect/packages/sql/mssql/test/SqlErrorClassification.test.ts +206 -0
  1783. package/repos/effect/packages/sql/mssql/tsconfig.json +8 -0
  1784. package/repos/effect/packages/sql/mssql/vitest.config.ts +6 -0
  1785. package/repos/effect/packages/sql/mysql2/CHANGELOG.md +603 -0
  1786. package/repos/effect/packages/sql/mysql2/LICENSE +21 -0
  1787. package/repos/effect/packages/sql/mysql2/README.md +7 -0
  1788. package/repos/effect/packages/sql/mysql2/docgen.json +24 -0
  1789. package/repos/effect/packages/sql/mysql2/package.json +71 -0
  1790. package/repos/effect/packages/sql/mysql2/src/MysqlClient.ts +517 -0
  1791. package/repos/effect/packages/sql/mysql2/src/MysqlMigrator.ts +102 -0
  1792. package/repos/effect/packages/sql/mysql2/src/index.ts +15 -0
  1793. package/repos/effect/packages/sql/mysql2/test/Client.test.ts +34 -0
  1794. package/repos/effect/packages/sql/mysql2/test/KeyValueStore.test.ts +16 -0
  1795. package/repos/effect/packages/sql/mysql2/test/Model.test.ts +227 -0
  1796. package/repos/effect/packages/sql/mysql2/test/MysqlClient.test.ts +35 -0
  1797. package/repos/effect/packages/sql/mysql2/test/Persistence.test.ts +22 -0
  1798. package/repos/effect/packages/sql/mysql2/test/SqlErrorClassification.test.ts +133 -0
  1799. package/repos/effect/packages/sql/mysql2/test/SqlEventLogServerUnencrypted.test.ts +7 -0
  1800. package/repos/effect/packages/sql/mysql2/test/utils.ts +64 -0
  1801. package/repos/effect/packages/sql/mysql2/tsconfig.json +9 -0
  1802. package/repos/effect/packages/sql/mysql2/vitest.config.ts +6 -0
  1803. package/repos/effect/packages/sql/pg/CHANGELOG.md +3432 -0
  1804. package/repos/effect/packages/sql/pg/LICENSE +21 -0
  1805. package/repos/effect/packages/sql/pg/README.md +7 -0
  1806. package/repos/effect/packages/sql/pg/docgen.json +24 -0
  1807. package/repos/effect/packages/sql/pg/package.json +77 -0
  1808. package/repos/effect/packages/sql/pg/src/PgClient.ts +947 -0
  1809. package/repos/effect/packages/sql/pg/src/PgMigrator.ts +120 -0
  1810. package/repos/effect/packages/sql/pg/src/index.ts +15 -0
  1811. package/repos/effect/packages/sql/pg/test/Client.test.ts +373 -0
  1812. package/repos/effect/packages/sql/pg/test/KeyValueStore.test.ts +16 -0
  1813. package/repos/effect/packages/sql/pg/test/Persistence.test.ts +20 -0
  1814. package/repos/effect/packages/sql/pg/test/SqlErrorClassification.test.ts +81 -0
  1815. package/repos/effect/packages/sql/pg/test/SqlEventLogServerUnencrypted.test.ts +7 -0
  1816. package/repos/effect/packages/sql/pg/test/TransactionAcquire.test.ts +52 -0
  1817. package/repos/effect/packages/sql/pg/test/utils.ts +49 -0
  1818. package/repos/effect/packages/sql/pg/tsconfig.json +9 -0
  1819. package/repos/effect/packages/sql/pg/vitest.config.ts +6 -0
  1820. package/repos/effect/packages/sql/pglite/CHANGELOG.md +198 -0
  1821. package/repos/effect/packages/sql/pglite/LICENSE +21 -0
  1822. package/repos/effect/packages/sql/pglite/README.md +7 -0
  1823. package/repos/effect/packages/sql/pglite/docgen.json +24 -0
  1824. package/repos/effect/packages/sql/pglite/package.json +74 -0
  1825. package/repos/effect/packages/sql/pglite/src/PgliteClient.ts +503 -0
  1826. package/repos/effect/packages/sql/pglite/src/PgliteMigrator.ts +44 -0
  1827. package/repos/effect/packages/sql/pglite/src/index.ts +15 -0
  1828. package/repos/effect/packages/sql/pglite/test/Client.test.ts +149 -0
  1829. package/repos/effect/packages/sql/pglite/test/Migrator.test.ts +45 -0
  1830. package/repos/effect/packages/sql/pglite/test/SqlErrorClassification.test.ts +56 -0
  1831. package/repos/effect/packages/sql/pglite/test/Transaction.test.ts +62 -0
  1832. package/repos/effect/packages/sql/pglite/tsconfig.json +8 -0
  1833. package/repos/effect/packages/sql/pglite/vitest.config.ts +6 -0
  1834. package/repos/effect/packages/sql/sqlite-bun/CHANGELOG.md +601 -0
  1835. package/repos/effect/packages/sql/sqlite-bun/LICENSE +21 -0
  1836. package/repos/effect/packages/sql/sqlite-bun/README.md +7 -0
  1837. package/repos/effect/packages/sql/sqlite-bun/docgen.json +24 -0
  1838. package/repos/effect/packages/sql/sqlite-bun/package.json +69 -0
  1839. package/repos/effect/packages/sql/sqlite-bun/src/SqliteClient.ts +262 -0
  1840. package/repos/effect/packages/sql/sqlite-bun/src/SqliteMigrator.ts +90 -0
  1841. package/repos/effect/packages/sql/sqlite-bun/src/index.ts +15 -0
  1842. package/repos/effect/packages/sql/sqlite-bun/test/Client.test.ts +6 -0
  1843. package/repos/effect/packages/sql/sqlite-bun/tsconfig.json +11 -0
  1844. package/repos/effect/packages/sql/sqlite-bun/vitest.config.ts +6 -0
  1845. package/repos/effect/packages/sql/sqlite-do/CHANGELOG.md +601 -0
  1846. package/repos/effect/packages/sql/sqlite-do/LICENSE +21 -0
  1847. package/repos/effect/packages/sql/sqlite-do/README.md +7 -0
  1848. package/repos/effect/packages/sql/sqlite-do/docgen.json +24 -0
  1849. package/repos/effect/packages/sql/sqlite-do/package.json +68 -0
  1850. package/repos/effect/packages/sql/sqlite-do/src/SqliteClient.ts +249 -0
  1851. package/repos/effect/packages/sql/sqlite-do/src/SqliteMigrator.ts +45 -0
  1852. package/repos/effect/packages/sql/sqlite-do/src/index.ts +15 -0
  1853. package/repos/effect/packages/sql/sqlite-do/test/Client.test.ts +24 -0
  1854. package/repos/effect/packages/sql/sqlite-do/tsconfig.json +8 -0
  1855. package/repos/effect/packages/sql/sqlite-do/vitest.config.ts +6 -0
  1856. package/repos/effect/packages/sql/sqlite-node/CHANGELOG.md +3415 -0
  1857. package/repos/effect/packages/sql/sqlite-node/LICENSE +21 -0
  1858. package/repos/effect/packages/sql/sqlite-node/README.md +7 -0
  1859. package/repos/effect/packages/sql/sqlite-node/docgen.json +24 -0
  1860. package/repos/effect/packages/sql/sqlite-node/package.json +72 -0
  1861. package/repos/effect/packages/sql/sqlite-node/src/SqliteClient.ts +312 -0
  1862. package/repos/effect/packages/sql/sqlite-node/src/SqliteMigrator.ts +90 -0
  1863. package/repos/effect/packages/sql/sqlite-node/src/index.ts +15 -0
  1864. package/repos/effect/packages/sql/sqlite-node/test/Client.test.ts +75 -0
  1865. package/repos/effect/packages/sql/sqlite-node/test/KeyValueStore.test.ts +29 -0
  1866. package/repos/effect/packages/sql/sqlite-node/test/Persistence.test.ts +109 -0
  1867. package/repos/effect/packages/sql/sqlite-node/test/Resolver.test.ts +183 -0
  1868. package/repos/effect/packages/sql/sqlite-node/test/SqlEventJournal.test.ts +84 -0
  1869. package/repos/effect/packages/sql/sqlite-node/test/SqlEventLogServerEncrypted.test.ts +249 -0
  1870. package/repos/effect/packages/sql/sqlite-node/test/SqlEventLogServerUnencrypted.test.ts +110 -0
  1871. package/repos/effect/packages/sql/sqlite-node/test/SqliteMigrator.test.ts +48 -0
  1872. package/repos/effect/packages/sql/sqlite-node/tsconfig.json +8 -0
  1873. package/repos/effect/packages/sql/sqlite-node/vitest.config.ts +6 -0
  1874. package/repos/effect/packages/sql/sqlite-react-native/CHANGELOG.md +601 -0
  1875. package/repos/effect/packages/sql/sqlite-react-native/LICENSE +21 -0
  1876. package/repos/effect/packages/sql/sqlite-react-native/README.md +7 -0
  1877. package/repos/effect/packages/sql/sqlite-react-native/docgen.json +24 -0
  1878. package/repos/effect/packages/sql/sqlite-react-native/package.json +69 -0
  1879. package/repos/effect/packages/sql/sqlite-react-native/src/SqliteClient.ts +354 -0
  1880. package/repos/effect/packages/sql/sqlite-react-native/src/SqliteMigrator.ts +55 -0
  1881. package/repos/effect/packages/sql/sqlite-react-native/src/index.ts +15 -0
  1882. package/repos/effect/packages/sql/sqlite-react-native/test/Client.test.ts +6 -0
  1883. package/repos/effect/packages/sql/sqlite-react-native/tsconfig.json +8 -0
  1884. package/repos/effect/packages/sql/sqlite-react-native/vitest.config.ts +6 -0
  1885. package/repos/effect/packages/sql/sqlite-wasm/CHANGELOG.md +601 -0
  1886. package/repos/effect/packages/sql/sqlite-wasm/LICENSE +21 -0
  1887. package/repos/effect/packages/sql/sqlite-wasm/README.md +7 -0
  1888. package/repos/effect/packages/sql/sqlite-wasm/docgen.json +24 -0
  1889. package/repos/effect/packages/sql/sqlite-wasm/package.json +69 -0
  1890. package/repos/effect/packages/sql/sqlite-wasm/src/OpfsWorker.ts +118 -0
  1891. package/repos/effect/packages/sql/sqlite-wasm/src/SqliteClient.ts +551 -0
  1892. package/repos/effect/packages/sql/sqlite-wasm/src/SqliteMigrator.ts +55 -0
  1893. package/repos/effect/packages/sql/sqlite-wasm/src/index.ts +14 -0
  1894. package/repos/effect/packages/sql/sqlite-wasm/src/internal/opfsWorker.ts +7 -0
  1895. package/repos/effect/packages/sql/sqlite-wasm/src/sqlite-wasm.d.ts +47 -0
  1896. package/repos/effect/packages/sql/sqlite-wasm/test/Client.test.ts +6 -0
  1897. package/repos/effect/packages/sql/sqlite-wasm/tsconfig.json +8 -0
  1898. package/repos/effect/packages/sql/sqlite-wasm/vitest.config.ts +6 -0
  1899. package/repos/effect/packages/tools/ai-codegen/codegen.schema.json +92 -0
  1900. package/repos/effect/packages/tools/ai-codegen/docgen.json +4 -0
  1901. package/repos/effect/packages/tools/ai-codegen/package.json +61 -0
  1902. package/repos/effect/packages/tools/ai-codegen/src/Config.ts +292 -0
  1903. package/repos/effect/packages/tools/ai-codegen/src/Discovery.ts +197 -0
  1904. package/repos/effect/packages/tools/ai-codegen/src/Generator.ts +183 -0
  1905. package/repos/effect/packages/tools/ai-codegen/src/Glob.ts +56 -0
  1906. package/repos/effect/packages/tools/ai-codegen/src/PostProcess.ts +157 -0
  1907. package/repos/effect/packages/tools/ai-codegen/src/SpecFetcher.ts +154 -0
  1908. package/repos/effect/packages/tools/ai-codegen/src/bin.ts +10 -0
  1909. package/repos/effect/packages/tools/ai-codegen/src/main.ts +237 -0
  1910. package/repos/effect/packages/tools/ai-codegen/tsconfig.json +15 -0
  1911. package/repos/effect/packages/tools/ai-docgen/docgen.json +4 -0
  1912. package/repos/effect/packages/tools/ai-docgen/package.json +60 -0
  1913. package/repos/effect/packages/tools/ai-docgen/src/Glob.ts +48 -0
  1914. package/repos/effect/packages/tools/ai-docgen/src/main.ts +186 -0
  1915. package/repos/effect/packages/tools/ai-docgen/tsconfig.json +14 -0
  1916. package/repos/effect/packages/tools/bundle/docgen.json +4 -0
  1917. package/repos/effect/packages/tools/bundle/fixtures/basic.ts +3 -0
  1918. package/repos/effect/packages/tools/bundle/fixtures/batching.ts +25 -0
  1919. package/repos/effect/packages/tools/bundle/fixtures/brand.ts +5 -0
  1920. package/repos/effect/packages/tools/bundle/fixtures/cache.ts +10 -0
  1921. package/repos/effect/packages/tools/bundle/fixtures/config.ts +13 -0
  1922. package/repos/effect/packages/tools/bundle/fixtures/differ.ts +9 -0
  1923. package/repos/effect/packages/tools/bundle/fixtures/http-client.ts +12 -0
  1924. package/repos/effect/packages/tools/bundle/fixtures/logger.ts +5 -0
  1925. package/repos/effect/packages/tools/bundle/fixtures/metric.ts +13 -0
  1926. package/repos/effect/packages/tools/bundle/fixtures/optic.ts +6 -0
  1927. package/repos/effect/packages/tools/bundle/fixtures/pubsub.ts +22 -0
  1928. package/repos/effect/packages/tools/bundle/fixtures/queue.ts +18 -0
  1929. package/repos/effect/packages/tools/bundle/fixtures/schedule.ts +9 -0
  1930. package/repos/effect/packages/tools/bundle/fixtures/schema-fromJsonSchemaDocument.ts +16 -0
  1931. package/repos/effect/packages/tools/bundle/fixtures/schema-representation-roundtrip.ts +16 -0
  1932. package/repos/effect/packages/tools/bundle/fixtures/schema-string-transformation.ts +20 -0
  1933. package/repos/effect/packages/tools/bundle/fixtures/schema-string.ts +8 -0
  1934. package/repos/effect/packages/tools/bundle/fixtures/schema-template-literal.ts +8 -0
  1935. package/repos/effect/packages/tools/bundle/fixtures/schema-toArbitraryLazy.ts +9 -0
  1936. package/repos/effect/packages/tools/bundle/fixtures/schema-toCodeDocument.ts +12 -0
  1937. package/repos/effect/packages/tools/bundle/fixtures/schema-toCodecJson.ts +9 -0
  1938. package/repos/effect/packages/tools/bundle/fixtures/schema-toEquivalence.ts +9 -0
  1939. package/repos/effect/packages/tools/bundle/fixtures/schema-toFormatter.ts +9 -0
  1940. package/repos/effect/packages/tools/bundle/fixtures/schema-toJsonSchemaDocument.ts +9 -0
  1941. package/repos/effect/packages/tools/bundle/fixtures/schema-toRepresentation.ts +9 -0
  1942. package/repos/effect/packages/tools/bundle/fixtures/schema.ts +12 -0
  1943. package/repos/effect/packages/tools/bundle/fixtures/stm.ts +21 -0
  1944. package/repos/effect/packages/tools/bundle/fixtures/stream.ts +7 -0
  1945. package/repos/effect/packages/tools/bundle/package.json +52 -0
  1946. package/repos/effect/packages/tools/bundle/src/Cli.ts +104 -0
  1947. package/repos/effect/packages/tools/bundle/src/Fixtures.ts +51 -0
  1948. package/repos/effect/packages/tools/bundle/src/Plugins.ts +131 -0
  1949. package/repos/effect/packages/tools/bundle/src/Reporter.ts +200 -0
  1950. package/repos/effect/packages/tools/bundle/src/Rollup.ts +179 -0
  1951. package/repos/effect/packages/tools/bundle/src/bin.ts +23 -0
  1952. package/repos/effect/packages/tools/bundle/tsconfig.fixtures.json +13 -0
  1953. package/repos/effect/packages/tools/bundle/tsconfig.json +9 -0
  1954. package/repos/effect/packages/tools/bundle/tsconfig.src.json +13 -0
  1955. package/repos/effect/packages/tools/jsdocs/docgen.json +4 -0
  1956. package/repos/effect/packages/tools/jsdocs/package.json +64 -0
  1957. package/repos/effect/packages/tools/jsdocs/src/Jsdocs.ts +3303 -0
  1958. package/repos/effect/packages/tools/jsdocs/src/bin.ts +23 -0
  1959. package/repos/effect/packages/tools/jsdocs/test/jsdocs.test.ts +979 -0
  1960. package/repos/effect/packages/tools/jsdocs/tsconfig.json +8 -0
  1961. package/repos/effect/packages/tools/jsdocs/vitest.config.ts +6 -0
  1962. package/repos/effect/packages/tools/openapi-generator/CHANGELOG.md +691 -0
  1963. package/repos/effect/packages/tools/openapi-generator/LICENSE +21 -0
  1964. package/repos/effect/packages/tools/openapi-generator/docgen.json +4 -0
  1965. package/repos/effect/packages/tools/openapi-generator/package.json +78 -0
  1966. package/repos/effect/packages/tools/openapi-generator/src/HttpApiTransformer.ts +552 -0
  1967. package/repos/effect/packages/tools/openapi-generator/src/JsonSchemaGenerator.ts +319 -0
  1968. package/repos/effect/packages/tools/openapi-generator/src/OpenApiGenerator.ts +1201 -0
  1969. package/repos/effect/packages/tools/openapi-generator/src/OpenApiPatch.ts +539 -0
  1970. package/repos/effect/packages/tools/openapi-generator/src/OpenApiTransformer.ts +1019 -0
  1971. package/repos/effect/packages/tools/openapi-generator/src/ParsedOperation.ts +277 -0
  1972. package/repos/effect/packages/tools/openapi-generator/src/Utils.ts +111 -0
  1973. package/repos/effect/packages/tools/openapi-generator/src/bin.ts +10 -0
  1974. package/repos/effect/packages/tools/openapi-generator/src/main.ts +116 -0
  1975. package/repos/effect/packages/tools/openapi-generator/test/JsonSchemaGenerator.test.ts +173 -0
  1976. package/repos/effect/packages/tools/openapi-generator/test/OpenApiGenerator.test.ts +2130 -0
  1977. package/repos/effect/packages/tools/openapi-generator/test/OpenApiGeneratorCli.test.ts +147 -0
  1978. package/repos/effect/packages/tools/openapi-generator/test/OpenApiPatch.test.ts +380 -0
  1979. package/repos/effect/packages/tools/openapi-generator/test/Utils.test.ts +33 -0
  1980. package/repos/effect/packages/tools/openapi-generator/test/fixtures/cli-basic-spec.json +35 -0
  1981. package/repos/effect/packages/tools/openapi-generator/test/fixtures/cli-warning-spec.json +57 -0
  1982. package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/invalid-op.json +7 -0
  1983. package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/missing-path.json +6 -0
  1984. package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/missing-value.json +6 -0
  1985. package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/valid-add.json +8 -0
  1986. package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/valid-multiple.json +17 -0
  1987. package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/valid-patch.yaml +6 -0
  1988. package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/valid-remove.json +6 -0
  1989. package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/valid-replace.json +7 -0
  1990. package/repos/effect/packages/tools/openapi-generator/tsconfig.json +9 -0
  1991. package/repos/effect/packages/tools/openapi-generator/vitest.config.ts +6 -0
  1992. package/repos/effect/packages/tools/oxc/docgen.json +4 -0
  1993. package/repos/effect/packages/tools/oxc/oxlintrc.json +83 -0
  1994. package/repos/effect/packages/tools/oxc/package.json +72 -0
  1995. package/repos/effect/packages/tools/oxc/src/oxlint/index.ts +18 -0
  1996. package/repos/effect/packages/tools/oxc/src/oxlint/rules/jsdocs.ts +108 -0
  1997. package/repos/effect/packages/tools/oxc/src/oxlint/rules/no-bigint-literals.ts +25 -0
  1998. package/repos/effect/packages/tools/oxc/src/oxlint/rules/no-import-from-barrel-package.ts +144 -0
  1999. package/repos/effect/packages/tools/oxc/src/oxlint/rules/no-js-extension-imports.ts +73 -0
  2000. package/repos/effect/packages/tools/oxc/src/oxlint/rules/no-opaque-instance-fields.ts +92 -0
  2001. package/repos/effect/packages/tools/oxc/test/jsdocs.test.ts +75 -0
  2002. package/repos/effect/packages/tools/oxc/test/no-import-from-barrel-package.test.ts +182 -0
  2003. package/repos/effect/packages/tools/oxc/test/no-js-extension-imports.test.ts +120 -0
  2004. package/repos/effect/packages/tools/oxc/test/no-opaque-instance-fields.test.ts +276 -0
  2005. package/repos/effect/packages/tools/oxc/test/utils.ts +61 -0
  2006. package/repos/effect/packages/tools/oxc/tsconfig.json +8 -0
  2007. package/repos/effect/packages/tools/oxc/vitest.config.ts +6 -0
  2008. package/repos/effect/packages/tools/utils/docgen.json +4 -0
  2009. package/repos/effect/packages/tools/utils/package.json +59 -0
  2010. package/repos/effect/packages/tools/utils/src/Codegen.ts +214 -0
  2011. package/repos/effect/packages/tools/utils/src/Glob.ts +61 -0
  2012. package/repos/effect/packages/tools/utils/src/bin.ts +16 -0
  2013. package/repos/effect/packages/tools/utils/src/commands/codegen.ts +44 -0
  2014. package/repos/effect/packages/tools/utils/tsconfig.json +9 -0
  2015. package/repos/effect/packages/vitest/CHANGELOG.md +601 -0
  2016. package/repos/effect/packages/vitest/LICENSE +21 -0
  2017. package/repos/effect/packages/vitest/README.md +320 -0
  2018. package/repos/effect/packages/vitest/docgen.json +24 -0
  2019. package/repos/effect/packages/vitest/package.json +60 -0
  2020. package/repos/effect/packages/vitest/src/index.ts +259 -0
  2021. package/repos/effect/packages/vitest/src/internal/internal.ts +374 -0
  2022. package/repos/effect/packages/vitest/src/utils.ts +321 -0
  2023. package/repos/effect/packages/vitest/test/index.test.ts +222 -0
  2024. package/repos/effect/packages/vitest/test/isolation.test.ts +105 -0
  2025. package/repos/effect/packages/vitest/test/nested-isolation.test.ts +212 -0
  2026. package/repos/effect/packages/vitest/tsconfig.json +11 -0
  2027. package/repos/effect/packages/vitest/typetest/index.tst.ts +56 -0
  2028. package/repos/effect/packages/vitest/vitest.config.ts +6 -0
  2029. package/repos/effect/patches/@changesets__assemble-release-plan.patch +26 -0
  2030. package/repos/effect/patches/@changesets__get-github-info.patch +44 -0
  2031. package/repos/effect/pnpm-lock.yaml +13483 -0
  2032. package/repos/effect/pnpm-workspace.yaml +10 -0
  2033. package/repos/effect/scripts/bundle-compare.sh +42 -0
  2034. package/repos/effect/scripts/check-cookbook-schedule.ts +390 -0
  2035. package/repos/effect/scripts/circular.mjs +26 -0
  2036. package/repos/effect/scripts/clean.mjs +19 -0
  2037. package/repos/effect/scripts/codemod.mjs +22 -0
  2038. package/repos/effect/scripts/codemods/jsdoc.ts +79 -0
  2039. package/repos/effect/scripts/docs.mjs +64 -0
  2040. package/repos/effect/scripts/package-scalar.mjs +14 -0
  2041. package/repos/effect/scripts/package-swagger.mjs +23 -0
  2042. package/repos/effect/scripts/package.json +22 -0
  2043. package/repos/effect/scripts/tsconfig.json +18 -0
  2044. package/repos/effect/scripts/version.mjs +9 -0
  2045. package/repos/effect/scripts/version.template.txt +2 -0
  2046. package/repos/effect/scripts/worktree-setup.sh +27 -0
  2047. package/repos/effect/stats.txt +30 -0
  2048. package/repos/effect/tsconfig.base.json +46 -0
  2049. package/repos/effect/tsconfig.json +128 -0
  2050. package/repos/effect/tsconfig.packages.json +39 -0
  2051. package/repos/effect/tstyche.json +7 -0
  2052. package/repos/effect/vitest.config.ts +31 -0
  2053. package/repos/effect/vitest.setup.ts +4 -0
  2054. package/repos/effect/vitest.shared.ts +61 -0
  2055. package/repos/effect.subtree.json +16 -0
@@ -0,0 +1,2606 @@
1
+ /**
2
+ * Builds pattern matchers for TypeScript values.
3
+ *
4
+ * `Match` lets you add ordered cases and then finish them with a result,
5
+ * fallback, `Option`, or exhaustive check. Use `Match.type` to define a
6
+ * reusable matcher for a type, or `Match.value` to match one value immediately.
7
+ * Cases can match literal values, predicates, object shapes, tags, negated
8
+ * patterns, and common checks such as strings, numbers, records, and class
9
+ * instances.
10
+ *
11
+ * @since 4.0.0
12
+ */
13
+ import * as internal from "./internal/matcher.ts"
14
+ import type * as Option from "./Option.ts"
15
+ import type { Pipeable } from "./Pipeable.ts"
16
+ import * as Predicate from "./Predicate.ts"
17
+ import type * as Result from "./Result.ts"
18
+ import type * as T from "./Types.ts"
19
+ import type { Unify } from "./Unify.ts"
20
+
21
+ const TypeId = internal.TypeId
22
+
23
+ /**
24
+ * Union type for matchers created by `Match.type` and `Match.value`.
25
+ *
26
+ * **Details**
27
+ *
28
+ * A `Matcher` carries the input type, accumulated filters, remaining cases,
29
+ * result type, and, for value matchers, the provided value being matched.
30
+ *
31
+ * **Example** (Matching string and number values)
32
+ *
33
+ * ```ts
34
+ * import { Match } from "effect"
35
+ *
36
+ * // Simulated dynamic input that can be a string or a number
37
+ * const input: string | number = "some input"
38
+ *
39
+ * // ┌─── string
40
+ * // ▼
41
+ * const result = Match.value(input).pipe(
42
+ * // Match if the value is a number
43
+ * Match.when(Match.number, (n) => `number: ${n}`),
44
+ * // Match if the value is a string
45
+ * Match.when(Match.string, (s) => `string: ${s}`),
46
+ * // Ensure all possible cases are covered
47
+ * Match.exhaustive
48
+ * )
49
+ *
50
+ * console.log(result)
51
+ * // Output: "string: some input"
52
+ * ```
53
+ *
54
+ * @category models
55
+ * @since 4.0.0
56
+ */
57
+ export type Matcher<Input, Filters, RemainingApplied, Result, Provided, Return = any> =
58
+ | TypeMatcher<Input, Filters, RemainingApplied, Result, Return>
59
+ | ValueMatcher<Input, Filters, RemainingApplied, Result, Provided, Return>
60
+
61
+ /**
62
+ * Represents a pattern matcher that operates on types rather than specific values.
63
+ *
64
+ * **Details**
65
+ *
66
+ * A `TypeMatcher` is created when using `Match.type<T>()` and allows you to define
67
+ * patterns that will be applied to values of the specified type. It maintains
68
+ * type-level information about the input type, applied filters, remaining cases,
69
+ * and expected results.
70
+ *
71
+ * **Example** (Creating a type matcher)
72
+ *
73
+ * ```ts
74
+ * import { Match } from "effect"
75
+ *
76
+ * // Create a TypeMatcher for string | number
77
+ * const matcher = Match.type<string | number>().pipe(
78
+ * Match.when(Match.string, (s) => `String: ${s}`),
79
+ * Match.when(Match.number, (n) => `Number: ${n}`),
80
+ * Match.exhaustive
81
+ * )
82
+ *
83
+ * console.log(matcher("hello")) // "String: hello"
84
+ * console.log(matcher(42)) // "Number: 42"
85
+ * ```
86
+ *
87
+ * @category models
88
+ * @since 4.0.0
89
+ */
90
+ export interface TypeMatcher<in Input, out Filters, out Remaining, out Result, out Return = any> extends Pipeable {
91
+ readonly _tag: "TypeMatcher"
92
+ readonly [TypeId]: {
93
+ readonly _input: T.Contravariant<Input>
94
+ readonly _filters: T.Covariant<Filters>
95
+ readonly _remaining: T.Covariant<Remaining>
96
+ readonly _result: T.Covariant<Result>
97
+ readonly _return: T.Covariant<Return>
98
+ }
99
+ readonly cases: ReadonlyArray<Case>
100
+ add<I, R, RA, A>(_case: Case): TypeMatcher<I, R, RA, A>
101
+ }
102
+
103
+ /**
104
+ * Represents a pattern matcher that operates on a specific provided value.
105
+ *
106
+ * **Details**
107
+ *
108
+ * A `ValueMatcher` is created when using `Match.value(someValue)` and contains
109
+ * the actual value to be matched against. It tracks both the provided value
110
+ * and the result of applying patterns to determine matches.
111
+ *
112
+ * **Example** (Creating a value matcher)
113
+ *
114
+ * ```ts
115
+ * import { Match } from "effect"
116
+ *
117
+ * const input = { type: "user", name: "Alice", age: 30 }
118
+ *
119
+ * // Create a ValueMatcher for the specific input
120
+ * const result = Match.value(input).pipe(
121
+ * Match.when({ type: "user" }, (user) => `User: ${user.name}`),
122
+ * Match.when({ type: "admin" }, (admin) => `Admin: ${admin.name}`),
123
+ * Match.orElse(() => "Unknown type")
124
+ * )
125
+ *
126
+ * console.log(result) // "User: Alice"
127
+ * ```
128
+ *
129
+ * @category models
130
+ * @since 4.0.0
131
+ */
132
+ export interface ValueMatcher<in Input, Filters, out Remaining, out Result, Provided, out Return = any>
133
+ extends Pipeable
134
+ {
135
+ readonly _tag: "ValueMatcher"
136
+ readonly [TypeId]: {
137
+ readonly _input: T.Contravariant<Input>
138
+ readonly _filters: T.Covariant<Filters>
139
+ readonly _result: T.Covariant<Result>
140
+ readonly _return: T.Covariant<Return>
141
+ }
142
+ readonly provided: Provided
143
+ readonly value: Result.Result<Provided, Remaining>
144
+ add<I, R, RA, A, Pr>(_case: Case): ValueMatcher<I, R, RA, A, Pr>
145
+ }
146
+
147
+ /**
148
+ * Represents a single pattern matching case.
149
+ *
150
+ * **When to use**
151
+ *
152
+ * Use as the common public type for code that needs to inspect, store, or pass
153
+ * either positive or negative pattern matching cases.
154
+ *
155
+ * **Details**
156
+ *
157
+ * A `Case` can be either a positive match (`When`) or a negative match (`Not`).
158
+ * Cases are the building blocks of pattern matching logic and determine
159
+ * how values are tested and transformed.
160
+ *
161
+ * @see {@link When} for positive cases
162
+ * @see {@link Not} for negative cases
163
+ *
164
+ * @category models
165
+ * @since 4.0.0
166
+ */
167
+ export type Case = When | Not
168
+
169
+ /**
170
+ * Represents a positive pattern matching case.
171
+ *
172
+ * **Details**
173
+ *
174
+ * A `When` case contains the logic to test if a value matches a specific pattern
175
+ * and the function to evaluate when the pattern matches. It's the primary
176
+ * building block for pattern matching conditions.
177
+ *
178
+ * **Example** (Creating positive match cases)
179
+ *
180
+ * ```ts
181
+ * import { Match } from "effect"
182
+ *
183
+ * // When creates cases that match specific patterns
184
+ * const stringMatcher = Match.type<string | number>().pipe(
185
+ * Match.when(Match.string, (s: string) => `Got string: ${s}`),
186
+ * Match.when(Match.number, (n: number) => `Got number: ${n}`),
187
+ * Match.exhaustive
188
+ * )
189
+ *
190
+ * console.log(stringMatcher("hello")) // "Got string: hello"
191
+ * console.log(stringMatcher(42)) // "Got number: 42"
192
+ * ```
193
+ *
194
+ * @category models
195
+ * @since 4.0.0
196
+ */
197
+ export interface When {
198
+ readonly _tag: "When"
199
+ guard(u: unknown): boolean
200
+ evaluate(input: unknown): any
201
+ }
202
+
203
+ /**
204
+ * Represents a negative pattern matching case.
205
+ *
206
+ * **Details**
207
+ *
208
+ * A `Not` case contains the logic to test if a value does NOT match a specific
209
+ * pattern and the function to evaluate when the pattern doesn't match. It's used
210
+ * for exclusion-based pattern matching.
211
+ *
212
+ * **Example** (Creating negative match cases)
213
+ *
214
+ * ```ts
215
+ * import { Match } from "effect"
216
+ *
217
+ * // Not creates cases that exclude specific patterns
218
+ * const matcher = Match.type<string>().pipe(
219
+ * // Match any string except "forbidden"
220
+ * Match.not("forbidden", (s) => `Allowed: ${s}`),
221
+ * Match.orElse(() => "This string is forbidden")
222
+ * )
223
+ *
224
+ * console.log(matcher("hello")) // "Allowed: hello"
225
+ * console.log(matcher("forbidden")) // "This string is forbidden"
226
+ * ```
227
+ *
228
+ * @category models
229
+ * @since 4.0.0
230
+ */
231
+ export interface Not {
232
+ readonly _tag: "Not"
233
+ guard(u: unknown): boolean
234
+ evaluate(input: unknown): any
235
+ }
236
+
237
+ /**
238
+ * Creates a matcher for a specific type.
239
+ *
240
+ * **When to use**
241
+ *
242
+ * Use to build a reusable matcher function for values of a known input type.
243
+ *
244
+ * **Details**
245
+ *
246
+ * This function defines a `Matcher` that operates on a given type, allowing you
247
+ * to specify conditions for handling different cases. Once the matcher is
248
+ * created, you can use pattern-matching functions like {@link when} to define
249
+ * how different values should be processed.
250
+ *
251
+ * **Example** (Matching Numbers and Strings)
252
+ *
253
+ * ```ts
254
+ * import { Match } from "effect"
255
+ *
256
+ * // Create a matcher for values that are either strings or numbers
257
+ * //
258
+ * // ┌─── (u: string | number) => string
259
+ * // ▼
260
+ * const match = Match.type<string | number>().pipe(
261
+ * // Match when the value is a number
262
+ * Match.when(Match.number, (n) => `number: ${n}`),
263
+ * // Match when the value is a string
264
+ * Match.when(Match.string, (s) => `string: ${s}`),
265
+ * // Ensure all possible cases are handled
266
+ * Match.exhaustive
267
+ * )
268
+ *
269
+ * console.log(match(0))
270
+ * // Output: "number: 0"
271
+ *
272
+ * console.log(match("hello"))
273
+ * // Output: "string: hello"
274
+ * ```
275
+ *
276
+ * @see {@link value} for creating a matcher from a specific value.
277
+ *
278
+ * @category constructors
279
+ * @since 4.0.0
280
+ */
281
+ export const type: <I>() => Matcher<I, Types.Without<never>, I, never, never> = internal.type
282
+
283
+ /**
284
+ * Creates a matcher from a specific value.
285
+ *
286
+ * **When to use**
287
+ *
288
+ * Use to match one concrete input immediately.
289
+ *
290
+ * **Details**
291
+ *
292
+ * This function allows you to define a `Matcher` directly from a given value,
293
+ * rather than from a type. This is useful when working with known values,
294
+ * enabling structured pattern matching on objects, primitives, or any data
295
+ * structure.
296
+ *
297
+ * Once the matcher is created, you can use pattern-matching functions like
298
+ * {@link when} to define how different cases should be handled.
299
+ *
300
+ * **Example** (Matching an Object by Property)
301
+ *
302
+ * ```ts
303
+ * import { Match } from "effect"
304
+ *
305
+ * const input = { name: "John", age: 30 }
306
+ *
307
+ * // Create a matcher for the specific object
308
+ * const result = Match.value(input).pipe(
309
+ * // Match when the 'name' property is "John"
310
+ * Match.when(
311
+ * { name: "John" },
312
+ * (user) => `${user.name} is ${user.age} years old`
313
+ * ),
314
+ * // Provide a fallback if no match is found
315
+ * Match.orElse(() => "Oh, not John")
316
+ * )
317
+ *
318
+ * console.log(result)
319
+ * // Output: "John is 30 years old"
320
+ * ```
321
+ *
322
+ * @see {@link type} for creating a matcher from a specific type.
323
+ *
324
+ * @category constructors
325
+ * @since 4.0.0
326
+ */
327
+ export const value: <const I>(
328
+ i: I
329
+ ) => Matcher<I, Types.Without<never>, I, never, I> = internal.value
330
+
331
+ /**
332
+ * Creates a match function for a specific value with discriminated union handling.
333
+ *
334
+ * **Details**
335
+ *
336
+ * This function provides a convenient way to pattern match on discriminated unions
337
+ * by providing an object that maps each `_tag` value to its corresponding handler.
338
+ * It's similar to a switch statement but with better type safety and exhaustiveness checking.
339
+ *
340
+ * **Example** (Matching value tags)
341
+ *
342
+ * ```ts
343
+ * import { Match } from "effect"
344
+ *
345
+ * type Status = { readonly _tag: "Success"; readonly data: string }
346
+ *
347
+ * const success: Status = { _tag: "Success", data: "Hello" }
348
+ *
349
+ * // Simple valueTags usage
350
+ * const message = Match.valueTags(success, {
351
+ * Success: (result) => `Success: ${result.data}`
352
+ * })
353
+ *
354
+ * console.log(message) // "Success: Hello"
355
+ * ```
356
+ *
357
+ * @category constructors
358
+ * @since 4.0.0
359
+ */
360
+ export const valueTags: {
361
+ <
362
+ const I,
363
+ P extends
364
+ & { readonly [Tag in Types.Tags<"_tag", I> & string]: (_: Extract<I, { readonly _tag: Tag }>) => any }
365
+ & { readonly [Tag in Exclude<keyof P, Types.Tags<"_tag", I>>]: never }
366
+ >(fields: P): (input: I) => Unify<ReturnType<P[keyof P]>>
367
+ <
368
+ const I,
369
+ P extends
370
+ & { readonly [Tag in Types.Tags<"_tag", I> & string]: (_: Extract<I, { readonly _tag: Tag }>) => any }
371
+ & { readonly [Tag in Exclude<keyof P, Types.Tags<"_tag", I>>]: never }
372
+ >(input: I, fields: P): Unify<ReturnType<P[keyof P]>>
373
+ } = internal.valueTags
374
+
375
+ /**
376
+ * Creates a type-safe match function for discriminated unions based on `_tag` field.
377
+ *
378
+ * **Details**
379
+ *
380
+ * This function allows you to define exhaustive pattern matching for discriminated unions
381
+ * by providing handlers for each possible `_tag` value. It ensures type safety and
382
+ * can optionally enforce a specific return type across all branches.
383
+ *
384
+ * **Example** (Matching type tags)
385
+ *
386
+ * ```ts
387
+ * import { Match } from "effect"
388
+ *
389
+ * type Result =
390
+ * | { readonly _tag: "Success"; readonly data: string }
391
+ * | { readonly _tag: "Error"; readonly message: string }
392
+ * | { readonly _tag: "Loading" }
393
+ *
394
+ * // Create a matcher with specific return type
395
+ * const formatResult = Match.typeTags<Result, string>()({
396
+ * Success: (result) => `Data: ${result.data}`,
397
+ * Error: (result) => `Error: ${result.message}`,
398
+ * Loading: () => "Loading..."
399
+ * })
400
+ *
401
+ * console.log(formatResult({ _tag: "Success", data: "Hello World" }))
402
+ * // Output: "Data: Hello World"
403
+ *
404
+ * console.log(formatResult({ _tag: "Error", message: "Network failed" }))
405
+ * // Output: "Error: Network failed"
406
+ *
407
+ * // Create a matcher with inferred return type
408
+ * const processResult = Match.typeTags<Result>()({
409
+ * Success: (result) => ({ type: "ok", value: result.data }),
410
+ * Error: (result) => ({ type: "error", error: result.message }),
411
+ * Loading: () => ({ type: "pending" })
412
+ * })
413
+ *
414
+ * console.log(processResult({ _tag: "Loading" }))
415
+ * // Output: { type: "pending" }
416
+ * ```
417
+ *
418
+ * @category constructors
419
+ * @since 4.0.0
420
+ */
421
+ export const typeTags: {
422
+ <I, Ret>(): <
423
+ P extends
424
+ & {
425
+ readonly [Tag in Types.Tags<"_tag", I> & string]: (
426
+ _: Extract<I, { readonly _tag: Tag }>
427
+ ) => Ret
428
+ }
429
+ & { readonly [Tag in Exclude<keyof P, Types.Tags<"_tag", I>>]: never }
430
+ >(fields: P) => (input: I) => Ret
431
+ <I>(): <
432
+ P extends
433
+ & {
434
+ readonly [Tag in Types.Tags<"_tag", I> & string]: (
435
+ _: Extract<I, { readonly _tag: Tag }>
436
+ ) => any
437
+ }
438
+ & { readonly [Tag in Exclude<keyof P, Types.Tags<"_tag", I>>]: never }
439
+ >(fields: P) => (input: I) => Unify<ReturnType<P[keyof P]>>
440
+ } = internal.typeTags
441
+
442
+ /**
443
+ * Ensures that all branches of a matcher return a specific type.
444
+ *
445
+ * **Details**
446
+ *
447
+ * This function enforces a consistent return type across all pattern-matching
448
+ * branches. By specifying a return type, TypeScript will check that every
449
+ * matching condition produces a value of the expected type.
450
+ *
451
+ * **Important:** This function must be the first step in the matcher pipeline.
452
+ * If used later, TypeScript will not enforce type consistency correctly.
453
+ *
454
+ * **Example** (Validating return type consistency)
455
+ *
456
+ * ```ts
457
+ * import { Match } from "effect"
458
+ *
459
+ * const match = Match.type<{ a: number } | { b: string }>().pipe(
460
+ * // Ensure all branches return a string
461
+ * Match.withReturnType<string>(),
462
+ * // ❌ Type error: 'number' is not assignable to type 'string'
463
+ * // @ts-expect-error
464
+ * Match.when({ a: Match.number }, (_) => _.a),
465
+ * // ✅ Correct: returns a string
466
+ * Match.when({ b: Match.string }, (_) => _.b),
467
+ * Match.exhaustive
468
+ * )
469
+ * ```
470
+ *
471
+ * @category utility types
472
+ * @since 4.0.0
473
+ */
474
+ export const withReturnType: <Ret>() => <I, F, R, A, Pr, _>(
475
+ self: Matcher<I, F, R, A, Pr, _>
476
+ ) => [Ret] extends [[A] extends [never] ? any : A] ? Matcher<I, F, R, A, Pr, Ret>
477
+ : "withReturnType constraint does not extend Result type" = internal.withReturnType
478
+
479
+ /**
480
+ * Defines a condition for matching values.
481
+ *
482
+ * **When to use**
483
+ *
484
+ * Use to add one positive pattern case to a `Match.type` or `Match.value`
485
+ * pipeline when a direct value, predicate, or structured object pattern should
486
+ * run a handler for matching input.
487
+ *
488
+ * **Details**
489
+ *
490
+ * Supports both direct value comparisons and predicate functions. If the
491
+ * pattern matches, the associated function is executed and the matched input is
492
+ * removed from the remaining cases tracked by the matcher.
493
+ *
494
+ * **Example** (Matching with values and predicates)
495
+ *
496
+ * ```ts
497
+ * import { Match } from "effect"
498
+ *
499
+ * // Create a matcher for objects with an "age" property
500
+ * const match = Match.type<{ age: number }>().pipe(
501
+ * // Match when age is greater than 18
502
+ * Match.when(
503
+ * { age: (age: number) => age > 18 },
504
+ * (user: { age: number }) => `Age: ${user.age}`
505
+ * ),
506
+ * // Match when age is exactly 18
507
+ * Match.when({ age: 18 }, () => "You can vote"),
508
+ * // Fallback case for all other ages
509
+ * Match.orElse((user: { age: number }) => `${user.age} is too young`)
510
+ * )
511
+ *
512
+ * console.log(match({ age: 20 }))
513
+ * // Output: "Age: 20"
514
+ *
515
+ * console.log(match({ age: 18 }))
516
+ * // Output: "You can vote"
517
+ *
518
+ * console.log(match({ age: 4 }))
519
+ * // Output: "4 is too young"
520
+ * ```
521
+ *
522
+ * @see {@link whenOr} for handling any one of several patterns with the same handler
523
+ * @see {@link whenAnd} for requiring all provided patterns to match before running a handler
524
+ * @see {@link not} for handling inputs that do not match a pattern
525
+ * @see {@link orElse} for providing a fallback when no pattern case matches
526
+ *
527
+ * @category Defining patterns
528
+ * @since 4.0.0
529
+ */
530
+ export const when: <
531
+ R,
532
+ const P extends Types.PatternPrimitive<R> | Types.PatternBase<R>,
533
+ Ret,
534
+ Fn extends (_: Types.WhenMatch<R, P>) => Ret
535
+ >(
536
+ pattern: P,
537
+ f: Fn
538
+ ) => <I, F, A, Pr>(
539
+ self: Matcher<I, F, R, A, Pr, Ret>
540
+ ) => Matcher<
541
+ I,
542
+ Types.AddWithout<F, Types.PForExclude<P>>,
543
+ Types.ApplyFilters<I, Types.AddWithout<F, Types.PForExclude<P>>>,
544
+ A | ReturnType<Fn>,
545
+ Pr,
546
+ Ret
547
+ > = internal.when
548
+
549
+ /**
550
+ * Matches one of multiple patterns in a single condition.
551
+ *
552
+ * **Details**
553
+ *
554
+ * This function allows defining a condition where a value matches any of the
555
+ * provided patterns. If a match is found, the associated function is executed.
556
+ * It simplifies cases where multiple patterns share the same handling logic.
557
+ *
558
+ * Unlike {@link when}, which requires separate conditions for each pattern,
559
+ * this function enables combining them into a single statement, making the
560
+ * matcher more concise.
561
+ *
562
+ * **Example** (Matching one of several patterns)
563
+ *
564
+ * ```ts
565
+ * import { Match } from "effect"
566
+ *
567
+ * type ErrorType =
568
+ * | { readonly _tag: "NetworkError"; readonly message: string }
569
+ * | { readonly _tag: "TimeoutError"; readonly duration: number }
570
+ * | { readonly _tag: "ValidationError"; readonly field: string }
571
+ *
572
+ * const handleError = Match.type<ErrorType>().pipe(
573
+ * Match.whenOr(
574
+ * { _tag: "NetworkError" },
575
+ * { _tag: "TimeoutError" },
576
+ * () => "Retry the request"
577
+ * ),
578
+ * Match.when({ _tag: "ValidationError" }, (_) => `Invalid field: ${_.field}`),
579
+ * Match.exhaustive
580
+ * )
581
+ *
582
+ * console.log(handleError({ _tag: "NetworkError", message: "No connection" }))
583
+ * // Output: "Retry the request"
584
+ *
585
+ * console.log(handleError({ _tag: "ValidationError", field: "email" }))
586
+ * // Output: "Invalid field: email"
587
+ * ```
588
+ *
589
+ * @category Defining patterns
590
+ * @since 4.0.0
591
+ */
592
+ export const whenOr: <
593
+ R,
594
+ const P extends ReadonlyArray<Types.PatternPrimitive<R> | Types.PatternBase<R>>,
595
+ Ret,
596
+ Fn extends (_: Types.WhenMatch<R, P[number]>) => Ret
597
+ >(
598
+ ...args: [...patterns: P, f: Fn]
599
+ ) => <I, F, A, Pr>(
600
+ self: Matcher<I, F, R, A, Pr, Ret>
601
+ ) => Matcher<
602
+ I,
603
+ Types.AddWithout<F, Types.PForExclude<P[number]>>,
604
+ Types.ApplyFilters<I, Types.AddWithout<F, Types.PForExclude<P[number]>>>,
605
+ A | ReturnType<Fn>,
606
+ Pr,
607
+ Ret
608
+ > = internal.whenOr
609
+
610
+ /**
611
+ * Matches a value that satisfies all provided patterns.
612
+ *
613
+ * **Details**
614
+ *
615
+ * This function allows defining a condition where a value must match all the
616
+ * given patterns simultaneously. If the value satisfies every pattern, the
617
+ * associated function is executed.
618
+ *
619
+ * Unlike {@link when}, which matches a single pattern at a time, this function
620
+ * ensures that multiple conditions are met before executing the callback. It is
621
+ * useful when checking for values that need to fulfill multiple criteria at
622
+ * once.
623
+ *
624
+ * **Example** (Matching all provided patterns)
625
+ *
626
+ * ```ts
627
+ * import { Match } from "effect"
628
+ *
629
+ * type User = { readonly age: number; readonly role: "admin" | "user" }
630
+ *
631
+ * const checkUser = Match.type<User>().pipe(
632
+ * Match.whenAnd(
633
+ * { age: (n) => n >= 18 },
634
+ * { role: "admin" },
635
+ * () => "Admin access granted"
636
+ * ),
637
+ * Match.orElse(() => "Access denied")
638
+ * )
639
+ *
640
+ * console.log(checkUser({ age: 20, role: "admin" }))
641
+ * // Output: "Admin access granted"
642
+ *
643
+ * console.log(checkUser({ age: 20, role: "user" }))
644
+ * // Output: "Access denied"
645
+ * ```
646
+ *
647
+ * @category Defining patterns
648
+ * @since 4.0.0
649
+ */
650
+ export const whenAnd: <
651
+ R,
652
+ const P extends ReadonlyArray<Types.PatternPrimitive<R> | Types.PatternBase<R>>,
653
+ Ret,
654
+ Fn extends (_: Types.WhenMatch<R, T.UnionToIntersection<P[number]>>) => Ret
655
+ >(
656
+ ...args: [...patterns: P, f: Fn]
657
+ ) => <I, F, A, Pr>(
658
+ self: Matcher<I, F, R, A, Pr, Ret>
659
+ ) => Matcher<
660
+ I,
661
+ Types.AddWithout<F, Types.PForExclude<T.UnionToIntersection<P[number]>>>,
662
+ Types.ApplyFilters<I, Types.AddWithout<F, Types.PForExclude<T.UnionToIntersection<P[number]>>>>,
663
+ A | ReturnType<Fn>,
664
+ Pr
665
+ > = internal.whenAnd
666
+
667
+ /**
668
+ * Matches values based on a specified discriminant field.
669
+ *
670
+ * **When to use**
671
+ *
672
+ * Use to match one or more exact values of a discriminator field.
673
+ *
674
+ * **Details**
675
+ *
676
+ * This function is used to define pattern matching on objects that follow a
677
+ * **discriminated union** structure, where a specific field (e.g., `type`,
678
+ * `kind`, `_tag`) determines the variant of the object. It allows matching
679
+ * multiple values of the discriminant and provides a function to handle the
680
+ * matched cases.
681
+ *
682
+ * **Example** (Matching on a discriminator field)
683
+ *
684
+ * ```ts
685
+ * import { Match, pipe } from "effect"
686
+ *
687
+ * const match = pipe(
688
+ * Match.type<
689
+ * { type: "A"; a: string } | { type: "B"; b: number } | {
690
+ * type: "C"
691
+ * c: boolean
692
+ * }
693
+ * >(),
694
+ * Match.discriminator("type")("A", "B", (_) => `A or B: ${_.type}`),
695
+ * Match.discriminator("type")("C", (_) => `C(${_.c})`),
696
+ * Match.exhaustive
697
+ * )
698
+ * ```
699
+ *
700
+ * @see {@link discriminators} for defining several discriminator handlers at once
701
+ * @see {@link discriminatorStartsWith} for matching string discriminator values by prefix
702
+ *
703
+ * @category Defining patterns
704
+ * @since 4.0.0
705
+ */
706
+ export const discriminator: <D extends string>(
707
+ field: D
708
+ ) => <R, P extends Types.Tags<D, R> & string, Ret, Fn extends (_: Extract<R, Record<D, P>>) => Ret>(
709
+ ...pattern: [first: P, ...values: Array<P>, f: Fn]
710
+ ) => <I, F, A, Pr>(
711
+ self: Matcher<I, F, R, A, Pr, Ret>
712
+ ) => Matcher<
713
+ I,
714
+ Types.AddWithout<F, Extract<R, Record<D, P>>>,
715
+ Types.ApplyFilters<I, Types.AddWithout<F, Extract<R, Record<D, P>>>>,
716
+ A | ReturnType<Fn>,
717
+ Pr,
718
+ Ret
719
+ > = internal.discriminator
720
+
721
+ /**
722
+ * Matches values where a specified field starts with a given prefix.
723
+ *
724
+ * **When to use**
725
+ *
726
+ * Use to match string discriminator values by prefix instead of exact value.
727
+ *
728
+ * **Details**
729
+ *
730
+ * Instead of checking for exact matches, this helper matches values that share
731
+ * a common prefix. For example, if the discriminant field contains hierarchical
732
+ * names like `"A"`, `"A.A"`, and `"B"`, a single `"A"` rule can match both
733
+ * `"A"` and `"A.A"`.
734
+ *
735
+ * **Example** (Matching discriminator prefixes)
736
+ *
737
+ * ```ts
738
+ * import { Match, pipe } from "effect"
739
+ *
740
+ * const match = pipe(
741
+ * Match.type<{ type: "A" } | { type: "B" } | { type: "A.A" } | {}>(),
742
+ * Match.discriminatorStartsWith("type")("A", (_) => 1 as const),
743
+ * Match.discriminatorStartsWith("type")("B", (_) => 2 as const),
744
+ * Match.orElse((_) => 3 as const)
745
+ * )
746
+ *
747
+ * console.log(match({ type: "A" })) // 1
748
+ * console.log(match({ type: "B" })) // 2
749
+ * console.log(match({ type: "A.A" })) // 1
750
+ * ```
751
+ *
752
+ * @see {@link discriminator} for matching exact discriminator values
753
+ *
754
+ * @category Defining patterns
755
+ * @since 4.0.0
756
+ */
757
+ export const discriminatorStartsWith: <D extends string>(
758
+ field: D
759
+ ) => <R, P extends string, Ret, Fn extends (_: Extract<R, Record<D, `${P}${string}`>>) => Ret>(
760
+ pattern: P,
761
+ f: Fn
762
+ ) => <I, F, A, Pr>(
763
+ self: Matcher<I, F, R, A, Pr, Ret>
764
+ ) => Matcher<
765
+ I,
766
+ Types.AddWithout<F, Extract<R, Record<D, `${P}${string}`>>>,
767
+ Types.ApplyFilters<I, Types.AddWithout<F, Extract<R, Record<D, `${P}${string}`>>>>,
768
+ A | ReturnType<Fn>,
769
+ Pr,
770
+ Ret
771
+ > = internal.discriminatorStartsWith
772
+
773
+ /**
774
+ * Matches values based on a field that serves as a discriminator, mapping each
775
+ * possible value to a corresponding handler.
776
+ *
777
+ * **When to use**
778
+ *
779
+ * Use to define several discriminator handlers at once without finalizing the
780
+ * matcher.
781
+ *
782
+ * **Details**
783
+ *
784
+ * This function simplifies working with discriminated unions by letting you
785
+ * define a set of handlers for each possible value of a given field. Instead of
786
+ * chaining multiple calls to {@link discriminator}, this function allows
787
+ * defining all possible cases at once using an object where the keys are the
788
+ * possible values of the field, and the values are the corresponding handler
789
+ * functions.
790
+ *
791
+ * **Example** (Mapping discriminator handlers)
792
+ *
793
+ * ```ts
794
+ * import { Match, pipe } from "effect"
795
+ *
796
+ * const match = pipe(
797
+ * Match.type<
798
+ * { type: "A"; a: string } | { type: "B"; b: number } | {
799
+ * type: "C"
800
+ * c: boolean
801
+ * }
802
+ * >(),
803
+ * Match.discriminators("type")({
804
+ * A: (a) => a.a,
805
+ * B: (b) => b.b,
806
+ * C: (c) => c.c
807
+ * }),
808
+ * Match.exhaustive
809
+ * )
810
+ * ```
811
+ *
812
+ * @see {@link discriminator} for adding one discriminator case to a matcher pipeline
813
+ * @see {@link discriminatorsExhaustive} for handling every discriminator value and finalizing the matcher
814
+ *
815
+ * @category Defining patterns
816
+ * @since 4.0.0
817
+ */
818
+ export const discriminators: <D extends string>(
819
+ field: D
820
+ ) => <
821
+ R,
822
+ Ret,
823
+ P extends
824
+ & { readonly [Tag in Types.Tags<D, R> & string]?: ((_: Extract<R, Record<D, Tag>>) => Ret) | undefined }
825
+ & { readonly [Tag in Exclude<keyof P, Types.Tags<D, R>>]: never }
826
+ >(
827
+ fields: P
828
+ ) => <I, F, A, Pr>(
829
+ self: Matcher<I, F, R, A, Pr, Ret>
830
+ ) => Matcher<
831
+ I,
832
+ Types.AddWithout<F, Extract<R, Record<D, keyof P>>>,
833
+ Types.ApplyFilters<I, Types.AddWithout<F, Extract<R, Record<D, keyof P>>>>,
834
+ A | ReturnType<P[keyof P] & {}>,
835
+ Pr,
836
+ Ret
837
+ > = internal.discriminators
838
+
839
+ /**
840
+ * Matches values by a discriminator field and requires every possible case to
841
+ * be handled.
842
+ *
843
+ * **When to use**
844
+ *
845
+ * Use to define an exhaustive discriminator handler map that finalizes the
846
+ * matcher.
847
+ *
848
+ * **Details**
849
+ *
850
+ * This is the exhaustive variant of {@link discriminators}. Each possible
851
+ * discriminator value must have a corresponding handler, so the matcher is
852
+ * finalized directly and does not require `Match.exhaustive` at the end of the
853
+ * pipeline.
854
+ *
855
+ * **Example** (Handling all discriminator cases)
856
+ *
857
+ * ```ts
858
+ * import { Match, pipe } from "effect"
859
+ *
860
+ * const match = pipe(
861
+ * Match.type<
862
+ * { type: "A"; a: string } | { type: "B"; b: number } | {
863
+ * type: "C"
864
+ * c: boolean
865
+ * }
866
+ * >(),
867
+ * Match.discriminatorsExhaustive("type")({
868
+ * A: (a) => a.a,
869
+ * B: (b) => b.b,
870
+ * C: (c) => c.c
871
+ * })
872
+ * )
873
+ * ```
874
+ *
875
+ * @see {@link discriminators} for defining discriminator handlers without finalizing the matcher
876
+ *
877
+ * @category Defining patterns
878
+ * @since 4.0.0
879
+ */
880
+ export const discriminatorsExhaustive: <D extends string>(
881
+ field: D
882
+ ) => <
883
+ R,
884
+ Ret,
885
+ P extends
886
+ & { readonly [Tag in Types.Tags<D, R> & string]: (_: Extract<R, Record<D, Tag>>) => Ret }
887
+ & { readonly [Tag in Exclude<keyof P, Types.Tags<D, R>>]: never }
888
+ >(
889
+ fields: P
890
+ ) => <I, F, A, Pr>(
891
+ self: Matcher<I, F, R, A, Pr, Ret>
892
+ ) => [Pr] extends [never] ? (u: I) => Unify<A | ReturnType<P[keyof P]>> : Unify<A | ReturnType<P[keyof P]>> =
893
+ internal.discriminatorsExhaustive
894
+
895
+ /**
896
+ * Matches discriminated union members by their `_tag` field.
897
+ *
898
+ * **When to use**
899
+ *
900
+ * Use to handle one or more `_tag` cases with the same matcher branch.
901
+ *
902
+ * **Details**
903
+ *
904
+ * This helper follows the Effect convention that discriminated unions use
905
+ * `"_tag"` as their discriminator field. Use {@link discriminator} for a
906
+ * different discriminator field.
907
+ *
908
+ * **Example** (Matching a discriminated union by tag)
909
+ *
910
+ * ```ts
911
+ * import { Match } from "effect"
912
+ *
913
+ * type Event =
914
+ * | { readonly _tag: "fetch" }
915
+ * | { readonly _tag: "success"; readonly data: string }
916
+ * | { readonly _tag: "error"; readonly error: Error }
917
+ * | { readonly _tag: "cancel" }
918
+ *
919
+ * const match = Match.type<Event>().pipe(
920
+ * // Match either "fetch" or "success"
921
+ * Match.tag("fetch", "success", () => `Ok!`),
922
+ * // Match "error" and extract the error message
923
+ * Match.tag("error", (event) => `Error: ${event.error.message}`),
924
+ * // Match "cancel"
925
+ * Match.tag("cancel", () => "Cancelled"),
926
+ * Match.exhaustive
927
+ * )
928
+ *
929
+ * console.log(match({ _tag: "success", data: "Hello" }))
930
+ * // Output: "Ok!"
931
+ *
932
+ * console.log(match({ _tag: "error", error: new Error("Oops!") }))
933
+ * // Output: "Error: Oops!"
934
+ * ```
935
+ *
936
+ * @category Defining patterns
937
+ * @since 4.0.0
938
+ */
939
+ export const tag: <
940
+ R,
941
+ P extends Types.Tags<"_tag", R> & string,
942
+ Ret,
943
+ Fn extends (_: Extract<R, Record<"_tag", P>>) => Ret
944
+ >(
945
+ ...pattern: [first: P, ...values: Array<P>, f: Fn]
946
+ ) => <I, F, A, Pr>(
947
+ self: Matcher<I, F, R, A, Pr, Ret>
948
+ ) => Matcher<
949
+ I,
950
+ Types.AddWithout<F, Extract<R, Record<"_tag", P>>>,
951
+ Types.ApplyFilters<I, Types.AddWithout<F, Extract<R, Record<"_tag", P>>>>,
952
+ ReturnType<Fn> | A,
953
+ Pr,
954
+ Ret
955
+ > = internal.tag
956
+
957
+ /**
958
+ * Matches values where the `_tag` field starts with a given prefix.
959
+ *
960
+ * **Details**
961
+ *
962
+ * This function allows you to match on values in a **discriminated union**
963
+ * based on whether the `_tag` field starts with a specified prefix. It is
964
+ * useful for handling hierarchical or namespaced tags, where multiple related
965
+ * cases share a common prefix.
966
+ *
967
+ * **Example** (Matching tag prefixes)
968
+ *
969
+ * ```ts
970
+ * import { Match, pipe } from "effect"
971
+ *
972
+ * const match = pipe(
973
+ * Match.type<{ _tag: "A" } | { _tag: "B" } | { _tag: "A.A" } | {}>(),
974
+ * Match.tagStartsWith("A", (_) => 1 as const),
975
+ * Match.tagStartsWith("B", (_) => 2 as const),
976
+ * Match.orElse((_) => 3 as const)
977
+ * )
978
+ *
979
+ * console.log(match({ _tag: "A" })) // 1
980
+ * console.log(match({ _tag: "B" })) // 2
981
+ * console.log(match({ _tag: "A.A" })) // 1
982
+ * ```
983
+ *
984
+ * @category Defining patterns
985
+ * @since 4.0.0
986
+ */
987
+ export const tagStartsWith: <
988
+ R,
989
+ P extends string,
990
+ Ret,
991
+ Fn extends (_: Extract<R, Record<"_tag", `${P}${string}`>>) => Ret
992
+ >(
993
+ pattern: P,
994
+ f: Fn
995
+ ) => <I, F, A, Pr>(
996
+ self: Matcher<I, F, R, A, Pr, Ret>
997
+ ) => Matcher<
998
+ I,
999
+ Types.AddWithout<F, Extract<R, Record<"_tag", `${P}${string}`>>>,
1000
+ Types.ApplyFilters<I, Types.AddWithout<F, Extract<R, Record<"_tag", `${P}${string}`>>>>,
1001
+ ReturnType<Fn> | A,
1002
+ Pr,
1003
+ Ret
1004
+ > = internal.tagStartsWith
1005
+
1006
+ /**
1007
+ * Matches values based on their `_tag` field, mapping each tag to a
1008
+ * corresponding handler.
1009
+ *
1010
+ * **Details**
1011
+ *
1012
+ * This function provides a way to handle discriminated unions by mapping `_tag`
1013
+ * values to specific functions. Each handler receives the matched value and
1014
+ * returns a transformed result. If all possible tags are handled, you can
1015
+ * enforce exhaustiveness using `Match.exhaustive` to ensure no case is missed.
1016
+ *
1017
+ * **Example** (Mapping tag handlers)
1018
+ *
1019
+ * ```ts
1020
+ * import { Match, pipe } from "effect"
1021
+ *
1022
+ * const match = pipe(
1023
+ * Match.type<
1024
+ * { _tag: "A"; a: string } | { _tag: "B"; b: number } | {
1025
+ * _tag: "C"
1026
+ * c: boolean
1027
+ * }
1028
+ * >(),
1029
+ * Match.tags({
1030
+ * A: (a) => a.a,
1031
+ * B: (b) => b.b,
1032
+ * C: (c) => c.c
1033
+ * }),
1034
+ * Match.exhaustive
1035
+ * )
1036
+ * ```
1037
+ *
1038
+ * @category Defining patterns
1039
+ * @since 4.0.0
1040
+ */
1041
+ export const tags: <
1042
+ R,
1043
+ Ret,
1044
+ P extends
1045
+ & { readonly [Tag in Types.Tags<"_tag", R> & string]?: ((_: Extract<R, Record<"_tag", Tag>>) => Ret) | undefined }
1046
+ & { readonly [Tag in Exclude<keyof P, Types.Tags<"_tag", R>>]: never }
1047
+ >(
1048
+ fields: P
1049
+ ) => <I, F, A, Pr>(
1050
+ self: Matcher<I, F, R, A, Pr, Ret>
1051
+ ) => Matcher<
1052
+ I,
1053
+ Types.AddWithout<F, Extract<R, Record<"_tag", keyof P>>>,
1054
+ Types.ApplyFilters<I, Types.AddWithout<F, Extract<R, Record<"_tag", keyof P>>>>,
1055
+ A | ReturnType<P[keyof P] & {}>,
1056
+ Pr,
1057
+ Ret
1058
+ > = internal.tags
1059
+
1060
+ /**
1061
+ * Matches values based on their `_tag` field and requires handling of all
1062
+ * possible cases.
1063
+ *
1064
+ * **Details**
1065
+ *
1066
+ * This function is designed for **discriminated unions** where every possible
1067
+ * `_tag` value must have a corresponding handler. Unlike {@link tags}, this
1068
+ * function ensures **exhaustiveness**, meaning all cases must be explicitly
1069
+ * handled. If a `_tag` value is missing from the mapping, TypeScript will
1070
+ * report an error.
1071
+ *
1072
+ * **Example** (Handling all tag cases)
1073
+ *
1074
+ * ```ts
1075
+ * import { Match, pipe } from "effect"
1076
+ *
1077
+ * const match = pipe(
1078
+ * Match.type<
1079
+ * { _tag: "A"; a: string } | { _tag: "B"; b: number } | {
1080
+ * _tag: "C"
1081
+ * c: boolean
1082
+ * }
1083
+ * >(),
1084
+ * Match.tagsExhaustive({
1085
+ * A: (a) => a.a,
1086
+ * B: (b) => b.b,
1087
+ * C: (c) => c.c
1088
+ * })
1089
+ * )
1090
+ * ```
1091
+ *
1092
+ * @category Defining patterns
1093
+ * @since 4.0.0
1094
+ */
1095
+ export const tagsExhaustive: <
1096
+ R,
1097
+ Ret,
1098
+ P extends
1099
+ & { readonly [Tag in Types.Tags<"_tag", R> & string]: (_: Extract<R, Record<"_tag", Tag>>) => Ret }
1100
+ & { readonly [Tag in Exclude<keyof P, Types.Tags<"_tag", R>>]: never }
1101
+ >(
1102
+ fields: P
1103
+ ) => <I, F, A, Pr>(
1104
+ self: Matcher<I, F, R, A, Pr, Ret>
1105
+ ) => [Pr] extends [never] ? (u: I) => Unify<A | ReturnType<P[keyof P]>> : Unify<A | ReturnType<P[keyof P]>> =
1106
+ internal.tagsExhaustive
1107
+
1108
+ /**
1109
+ * Creates a pattern that excludes a specific value while allowing all others.
1110
+ *
1111
+ * **When to use**
1112
+ *
1113
+ * Use to add a negative pattern case for inputs that should match when another
1114
+ * pattern does not.
1115
+ *
1116
+ * **Details**
1117
+ *
1118
+ * Any excluded value bypasses the provided function and continues matching
1119
+ * through later cases.
1120
+ *
1121
+ * **Example** (Ignoring a specific value)
1122
+ *
1123
+ * ```ts
1124
+ * import { Match } from "effect"
1125
+ *
1126
+ * // Create a matcher for string or number values
1127
+ * const match = Match.type<string | number>().pipe(
1128
+ * // Match any value except "hi", returning "ok"
1129
+ * Match.not("hi", () => "ok"),
1130
+ * // Fallback case for when the value is "hi"
1131
+ * Match.orElse(() => "fallback")
1132
+ * )
1133
+ *
1134
+ * console.log(match("hello"))
1135
+ * // Output: "ok"
1136
+ *
1137
+ * console.log(match("hi"))
1138
+ * // Output: "fallback"
1139
+ * ```
1140
+ *
1141
+ * @see {@link when} for adding a positive pattern case
1142
+ *
1143
+ * @category Defining patterns
1144
+ * @since 4.0.0
1145
+ */
1146
+ export const not: <
1147
+ R,
1148
+ const P extends Types.PatternPrimitive<R> | Types.PatternBase<R>,
1149
+ Ret,
1150
+ Fn extends (_: Types.NotMatch<R, P>) => Ret
1151
+ >(
1152
+ pattern: P,
1153
+ f: Fn
1154
+ ) => <I, F, A, Pr>(
1155
+ self: Matcher<I, F, R, A, Pr, Ret>
1156
+ ) => Matcher<
1157
+ I,
1158
+ Types.AddOnly<F, Types.WhenMatch<R, P>>,
1159
+ Types.ApplyFilters<I, Types.AddOnly<F, Types.WhenMatch<R, P>>>,
1160
+ A | ReturnType<Fn>,
1161
+ Pr,
1162
+ Ret
1163
+ > = internal.not
1164
+
1165
+ /**
1166
+ * Matches non-empty strings.
1167
+ *
1168
+ * **When to use**
1169
+ *
1170
+ * Use to match strings whose length is greater than zero.
1171
+ *
1172
+ * **Details**
1173
+ *
1174
+ * This predicate matches any string that contains at least one character,
1175
+ * effectively filtering out empty strings ("").
1176
+ *
1177
+ * **Example** (Matching non-empty strings)
1178
+ *
1179
+ * ```ts
1180
+ * import { Match } from "effect"
1181
+ *
1182
+ * const processInput = Match.type<string>()
1183
+ * .pipe(
1184
+ * Match.when(Match.nonEmptyString, (str) => `Valid input: ${str}`),
1185
+ * Match.orElse(() => "Input cannot be empty")
1186
+ * )
1187
+ *
1188
+ * console.log(processInput("hello"))
1189
+ * // Output: "Valid input: hello"
1190
+ *
1191
+ * console.log(processInput(""))
1192
+ * // Output: "Input cannot be empty"
1193
+ *
1194
+ * console.log(processInput(" "))
1195
+ * // Output: "Valid input: " (whitespace-only strings are considered non-empty)
1196
+ * ```
1197
+ *
1198
+ * @see {@link string} for matching any string
1199
+ *
1200
+ * @category predicates
1201
+ * @since 4.0.0
1202
+ */
1203
+ export const nonEmptyString: SafeRefinement<string, never> = internal.nonEmptyString
1204
+
1205
+ /**
1206
+ * Matches a specific set of literal values (e.g., `Match.is("a", 42, true)`).
1207
+ *
1208
+ * **When to use**
1209
+ *
1210
+ * Use to match one of several literal primitive or null values.
1211
+ *
1212
+ * **Details**
1213
+ *
1214
+ * This function creates a predicate that matches any of the provided literal values.
1215
+ * It's useful for matching against multiple specific values in a single pattern.
1216
+ *
1217
+ * **Example** (Matching literal values)
1218
+ *
1219
+ * ```ts
1220
+ * import { Match } from "effect"
1221
+ *
1222
+ * const handleStatus = Match.type<string | number>()
1223
+ * .pipe(
1224
+ * Match.when(Match.is("success", "ok", 200), () => "Operation successful"),
1225
+ * Match.when(Match.is("error", "failed", 500), () => "Operation failed"),
1226
+ * Match.when(Match.is(0, false, null), () => "Falsy value"),
1227
+ * Match.orElse((value) => `Unknown status: ${value}`)
1228
+ * )
1229
+ *
1230
+ * console.log(handleStatus("success"))
1231
+ * // Output: "Operation successful"
1232
+ *
1233
+ * console.log(handleStatus(200))
1234
+ * // Output: "Operation successful"
1235
+ *
1236
+ * console.log(handleStatus("failed"))
1237
+ * // Output: "Operation failed"
1238
+ *
1239
+ * console.log(handleStatus(0))
1240
+ * // Output: "Falsy value"
1241
+ *
1242
+ * console.log(handleStatus("pending"))
1243
+ * // Output: "Unknown status: pending"
1244
+ * ```
1245
+ *
1246
+ * @category predicates
1247
+ * @since 4.0.0
1248
+ */
1249
+ export const is: <
1250
+ Literals extends ReadonlyArray<string | number | bigint | boolean | null>
1251
+ >(...literals: Literals) => SafeRefinement<Literals[number]> = internal.is
1252
+
1253
+ /**
1254
+ * Matches values of type `string`.
1255
+ *
1256
+ * **Details**
1257
+ *
1258
+ * This predicate refines unknown values to strings, allowing pattern matching
1259
+ * on string types. It's commonly used in type-based matchers to handle string cases.
1260
+ *
1261
+ * **Example** (Matching string values)
1262
+ *
1263
+ * ```ts
1264
+ * import { Match } from "effect"
1265
+ *
1266
+ * const processValue = Match.type<string | number | boolean>().pipe(
1267
+ * Match.when(Match.string, (str) => `String: ${str.toUpperCase()}`),
1268
+ * Match.when(Match.number, (num) => `Number: ${num * 2}`),
1269
+ * Match.when(Match.boolean, (bool) => `Boolean: ${bool ? "yes" : "no"}`),
1270
+ * Match.exhaustive
1271
+ * )
1272
+ *
1273
+ * console.log(processValue("hello")) // "String: HELLO"
1274
+ * console.log(processValue(42)) // "Number: 84"
1275
+ * console.log(processValue(true)) // "Boolean: yes"
1276
+ * ```
1277
+ *
1278
+ * @category predicates
1279
+ * @since 4.0.0
1280
+ */
1281
+ export const string: Predicate.Refinement<unknown, string> = Predicate.isString
1282
+
1283
+ /**
1284
+ * Matches values of type `number`.
1285
+ *
1286
+ * **When to use**
1287
+ *
1288
+ * Use to match primitive number values, including `NaN` and infinities.
1289
+ *
1290
+ * **Details**
1291
+ *
1292
+ * This predicate refines unknown values to numbers, allowing pattern matching
1293
+ * on numeric types. It matches all number values including integers, floats,
1294
+ * `Infinity`, `-Infinity`, and `NaN`.
1295
+ *
1296
+ * **Example** (Matching number values)
1297
+ *
1298
+ * ```ts
1299
+ * import { Match } from "effect"
1300
+ *
1301
+ * const categorizeNumber = Match.type<unknown>().pipe(
1302
+ * Match.when(Match.number, (num) => {
1303
+ * if (Number.isNaN(num)) return "Not a number"
1304
+ * if (!Number.isFinite(num)) return "Infinite"
1305
+ * if (Number.isInteger(num)) return `Integer: ${num}`
1306
+ * return `Float: ${num.toFixed(2)}`
1307
+ * }),
1308
+ * Match.orElse(() => "Not a number type")
1309
+ * )
1310
+ *
1311
+ * console.log(categorizeNumber(42)) // "Integer: 42"
1312
+ * console.log(categorizeNumber(3.14)) // "Float: 3.14"
1313
+ * console.log(categorizeNumber(NaN)) // "Not a number"
1314
+ * console.log(categorizeNumber("hello")) // "Not a number type"
1315
+ * ```
1316
+ *
1317
+ * @see {@link bigint} for matching primitive bigint values
1318
+ *
1319
+ * @category predicates
1320
+ * @since 4.0.0
1321
+ */
1322
+ export const number: Predicate.Refinement<unknown, number> = Predicate.isNumber
1323
+
1324
+ /**
1325
+ * Matches any value without restrictions.
1326
+ *
1327
+ * **When to use**
1328
+ *
1329
+ * Use to define an explicit catch-all pattern when the handler should receive
1330
+ * the unmatched value.
1331
+ *
1332
+ * **Details**
1333
+ *
1334
+ * This predicate matches every input, including `undefined`, `null`, objects,
1335
+ * primitives, and functions.
1336
+ *
1337
+ * **Gotchas**
1338
+ *
1339
+ * `Match.any` should usually be last because cases are checked in order and
1340
+ * the first matching case wins.
1341
+ *
1342
+ * **Example** (Matching any remaining value)
1343
+ *
1344
+ * ```ts
1345
+ * import { Match } from "effect"
1346
+ *
1347
+ * const describeValue = Match.type<unknown>()
1348
+ * .pipe(
1349
+ * Match.when(Match.string, (str) => `String: ${str}`),
1350
+ * Match.when(Match.number, (num) => `Number: ${num}`),
1351
+ * Match.when(Match.boolean, (bool) => `Boolean: ${bool}`),
1352
+ * Match.when(Match.any, (value) => `Other: ${typeof value}`),
1353
+ * Match.exhaustive
1354
+ * )
1355
+ *
1356
+ * console.log(describeValue("hello"))
1357
+ * // Output: "String: hello"
1358
+ *
1359
+ * console.log(describeValue(42))
1360
+ * // Output: "Number: 42"
1361
+ *
1362
+ * console.log(describeValue([1, 2, 3]))
1363
+ * // Output: "Other: object"
1364
+ *
1365
+ * console.log(describeValue(null))
1366
+ * // Output: "Other: object"
1367
+ * ```
1368
+ *
1369
+ * @see {@link defined} for matching only non-nullish values
1370
+ * @see {@link orElse} for providing a fallback after earlier cases
1371
+ *
1372
+ * @category predicates
1373
+ * @since 4.0.0
1374
+ */
1375
+ export const any: SafeRefinement<unknown, any> = internal.any
1376
+
1377
+ /**
1378
+ * Matches any defined (non-null and non-undefined) value.
1379
+ *
1380
+ * **When to use**
1381
+ *
1382
+ * Use to exclude only `null` and `undefined` from a match branch.
1383
+ *
1384
+ * **Details**
1385
+ *
1386
+ * This predicate matches values that are neither `null` nor `undefined`,
1387
+ * effectively filtering out nullish values while preserving all other types.
1388
+ *
1389
+ * **Example** (Matching defined values)
1390
+ *
1391
+ * ```ts
1392
+ * import { Match } from "effect"
1393
+ *
1394
+ * const processValue = Match.type<string | number | null | undefined>()
1395
+ * .pipe(
1396
+ * Match.when(Match.defined, (value) => `Defined value: ${value}`),
1397
+ * Match.orElse(() => "Value is null or undefined")
1398
+ * )
1399
+ *
1400
+ * console.log(processValue("hello"))
1401
+ * // Output: "Defined value: hello"
1402
+ *
1403
+ * console.log(processValue(42))
1404
+ * // Output: "Defined value: 42"
1405
+ *
1406
+ * console.log(processValue(0))
1407
+ * // Output: "Defined value: 0"
1408
+ *
1409
+ * console.log(processValue(""))
1410
+ * // Output: "Defined value: "
1411
+ *
1412
+ * console.log(processValue(null))
1413
+ * // Output: "Value is null or undefined"
1414
+ *
1415
+ * console.log(processValue(undefined))
1416
+ * // Output: "Value is null or undefined"
1417
+ * ```
1418
+ *
1419
+ * @see {@link any} for matching every value without excluding nullish inputs
1420
+ *
1421
+ * @category predicates
1422
+ * @since 4.0.0
1423
+ */
1424
+ export const defined: <A>(u: A) => u is A & {} = internal.defined
1425
+
1426
+ /**
1427
+ * Matches values of type `boolean`.
1428
+ *
1429
+ * **When to use**
1430
+ *
1431
+ * Use to match primitive boolean values.
1432
+ *
1433
+ * **Details**
1434
+ *
1435
+ * This predicate refines unknown values to booleans, allowing pattern matching
1436
+ * on boolean types. It only matches the primitive boolean values `true` and `false`.
1437
+ *
1438
+ * **Example** (Matching boolean values)
1439
+ *
1440
+ * ```ts
1441
+ * import { Match } from "effect"
1442
+ *
1443
+ * const describeTruthiness = Match.type<unknown>().pipe(
1444
+ * Match.when(
1445
+ * Match.boolean,
1446
+ * (bool) => bool ? "Definitely true" : "Definitely false"
1447
+ * ),
1448
+ * Match.when(0, () => "Falsy number"),
1449
+ * Match.when("", () => "Empty string"),
1450
+ * Match.when(Match.null, () => "Null value"),
1451
+ * Match.orElse(() => "Some other truthy value")
1452
+ * )
1453
+ *
1454
+ * console.log(describeTruthiness(true)) // "Definitely true"
1455
+ * console.log(describeTruthiness(false)) // "Definitely false"
1456
+ * console.log(describeTruthiness(0)) // "Falsy number"
1457
+ * console.log(describeTruthiness(1)) // "Some other truthy value"
1458
+ * ```
1459
+ *
1460
+ * @see {@link is} for matching specific literal boolean values
1461
+ *
1462
+ * @category predicates
1463
+ * @since 4.0.0
1464
+ */
1465
+ export const boolean: Predicate.Refinement<unknown, boolean> = Predicate.isBoolean
1466
+
1467
+ const _undefined: Predicate.Refinement<unknown, undefined> = Predicate.isUndefined
1468
+ export {
1469
+ /**
1470
+ * Matches the value `undefined`.
1471
+ *
1472
+ * **When to use**
1473
+ *
1474
+ * Use when a matcher should handle only inputs with no defined value.
1475
+ *
1476
+ * **Details**
1477
+ *
1478
+ * This refinement is backed by `Predicate.isUndefined`, which checks
1479
+ * `input === undefined`.
1480
+ *
1481
+ * @see {@link defined} for matching non-nullish values
1482
+ * @see {@link is} for matching literal values
1483
+ *
1484
+ * @category predicates
1485
+ * @since 4.0.0
1486
+ */
1487
+ _undefined as undefined
1488
+ }
1489
+
1490
+ const _null: Predicate.Refinement<unknown, null> = Predicate.isNull
1491
+ export {
1492
+ /**
1493
+ * Matches the value `null`.
1494
+ *
1495
+ * **When to use**
1496
+ *
1497
+ * Use to handle only the `null` literal in a match branch.
1498
+ *
1499
+ * **Details**
1500
+ *
1501
+ * This refinement is backed by `Predicate.isNull`, which checks
1502
+ * `input === null`.
1503
+ *
1504
+ * @see {@link defined} for matching non-nullish values
1505
+ * @see {@link is} for matching literal values
1506
+ *
1507
+ * @category predicates
1508
+ * @since 4.0.0
1509
+ */
1510
+ _null as null
1511
+ }
1512
+
1513
+ /**
1514
+ * Matches values of type `bigint`.
1515
+ *
1516
+ * **When to use**
1517
+ *
1518
+ * Use to match primitive bigint values.
1519
+ *
1520
+ * **Details**
1521
+ *
1522
+ * This predicate refines unknown values to bigints, allowing pattern matching
1523
+ * on bigint types. BigInts are used for representing integers with arbitrary precision.
1524
+ *
1525
+ * **Example** (Matching bigint values)
1526
+ *
1527
+ * ```ts
1528
+ * import { Match } from "effect"
1529
+ *
1530
+ * const processLargeNumber = Match.type<unknown>().pipe(
1531
+ * Match.when(Match.bigint, (big) => {
1532
+ * if (big > 9007199254740991n) {
1533
+ * return `Large integer: ${big.toString()}`
1534
+ * }
1535
+ * return `BigInt: ${big.toString()}`
1536
+ * }),
1537
+ * Match.when(Match.number, (num) => `Regular number: ${num}`),
1538
+ * Match.orElse(() => "Not a numeric type")
1539
+ * )
1540
+ *
1541
+ * console.log(processLargeNumber(123n)) // "BigInt: 123"
1542
+ * console.log(processLargeNumber(9007199254740992n)) // "Large integer: 9007199254740992"
1543
+ * console.log(processLargeNumber(123)) // "Regular number: 123"
1544
+ * console.log(processLargeNumber("123")) // "Not a numeric type"
1545
+ * ```
1546
+ *
1547
+ * @see {@link number} for matching primitive number values
1548
+ *
1549
+ * @category predicates
1550
+ * @since 4.0.0
1551
+ */
1552
+ export const bigint: Predicate.Refinement<unknown, bigint> = Predicate.isBigInt
1553
+
1554
+ /**
1555
+ * Matches values of type `symbol`.
1556
+ *
1557
+ * **Details**
1558
+ *
1559
+ * This predicate refines unknown values to symbols, allowing pattern matching
1560
+ * on symbol types. Symbols are unique identifiers that are often used as
1561
+ * object keys or for creating private properties.
1562
+ *
1563
+ * **Example** (Matching symbol values)
1564
+ *
1565
+ * ```ts
1566
+ * import { Match } from "effect"
1567
+ *
1568
+ * const mySymbol = Symbol("my-symbol")
1569
+ * const globalSymbol = Symbol.for("global-symbol")
1570
+ *
1571
+ * const handleSymbol = Match.type<unknown>().pipe(
1572
+ * Match.when(Match.symbol, (sym) => {
1573
+ * const description = sym.description
1574
+ * if (description) {
1575
+ * return `Symbol with description: ${description}`
1576
+ * }
1577
+ * return "Symbol without description"
1578
+ * }),
1579
+ * Match.orElse(() => "Not a symbol")
1580
+ * )
1581
+ *
1582
+ * console.log(handleSymbol(mySymbol)) // "Symbol with description: my-symbol"
1583
+ * console.log(handleSymbol(Symbol())) // "Symbol without description"
1584
+ * console.log(handleSymbol("string")) // "Not a symbol"
1585
+ * ```
1586
+ *
1587
+ * @category predicates
1588
+ * @since 4.0.0
1589
+ */
1590
+ export const symbol: Predicate.Refinement<unknown, symbol> = Predicate.isSymbol
1591
+
1592
+ /**
1593
+ * Matches values that are instances of `Date`.
1594
+ *
1595
+ * **When to use**
1596
+ *
1597
+ * Use to match `Date` instances.
1598
+ *
1599
+ * **Details**
1600
+ *
1601
+ * This predicate refines unknown values to Date instances, allowing pattern
1602
+ * matching on Date objects. It only matches actual Date instances, not
1603
+ * date strings or timestamps.
1604
+ *
1605
+ * **Example** (Matching Date instances)
1606
+ *
1607
+ * ```ts
1608
+ * import { Match } from "effect"
1609
+ *
1610
+ * const processDateValue = Match.type<unknown>().pipe(
1611
+ * Match.when(Match.date, (date) => {
1612
+ * if (isNaN(date.getTime())) {
1613
+ * return "Invalid date"
1614
+ * }
1615
+ * return `Date: ${date.toISOString().split("T")[0]}`
1616
+ * }),
1617
+ * Match.when(Match.string, (str) => `Date string: ${str}`),
1618
+ * Match.orElse(() => "Not a date-related value")
1619
+ * )
1620
+ *
1621
+ * console.log(processDateValue(new Date("2024-01-01"))) // "Date: 2024-01-01"
1622
+ * console.log(processDateValue(new Date("invalid"))) // "Invalid date"
1623
+ * console.log(processDateValue("2024-01-01")) // "Date string: 2024-01-01"
1624
+ * console.log(processDateValue(1704067200000)) // "Not a date-related value"
1625
+ * ```
1626
+ *
1627
+ * @see {@link instanceOf} for matching instances of any constructor
1628
+ *
1629
+ * @category predicates
1630
+ * @since 4.0.0
1631
+ */
1632
+ export const date: Predicate.Refinement<unknown, Date> = Predicate.isDate
1633
+
1634
+ /**
1635
+ * Matches non-null objects other than arrays.
1636
+ *
1637
+ * **When to use**
1638
+ *
1639
+ * Use to match broad non-null, non-array object values.
1640
+ *
1641
+ * **Details**
1642
+ *
1643
+ * This predicate uses `Predicate.isObject`: it returns `true` for values whose
1644
+ * runtime type is `"object"`, are not `null`, and are not arrays. It can match
1645
+ * `Date`, `RegExp`, and class instances; use `instanceOf` or a more specific
1646
+ * pattern when those cases need to be distinguished.
1647
+ *
1648
+ * **Example** (Matching record objects)
1649
+ *
1650
+ * ```ts
1651
+ * import { Match } from "effect"
1652
+ *
1653
+ * const analyzeValue = Match.type<unknown>().pipe(
1654
+ * Match.when(Match.record, (obj) => {
1655
+ * const keys = Object.keys(obj)
1656
+ * const valueCount = keys.length
1657
+ * return `Object with ${valueCount} properties: [${keys.join(", ")}]`
1658
+ * }),
1659
+ * Match.when(
1660
+ * Match.instanceOf(Array),
1661
+ * (arr) => `Array with ${arr.length} items`
1662
+ * ),
1663
+ * Match.orElse(() => "Not an object")
1664
+ * )
1665
+ *
1666
+ * console.log(analyzeValue({ name: "Alice", age: 30 })) // "Object with 2 properties: [name, age]"
1667
+ * console.log(analyzeValue([1, 2, 3])) // "Array with 3 items"
1668
+ * console.log(analyzeValue(null)) // "Not an object"
1669
+ * console.log(analyzeValue("hello")) // "Not an object"
1670
+ * ```
1671
+ *
1672
+ * @see {@link instanceOf} for matching a specific constructor
1673
+ *
1674
+ * @category predicates
1675
+ * @since 4.0.0
1676
+ */
1677
+ export const record: Predicate.Refinement<unknown, { [x: PropertyKey]: unknown }> = Predicate.isObject
1678
+
1679
+ /**
1680
+ * Matches instances of a given class.
1681
+ *
1682
+ * **When to use**
1683
+ *
1684
+ * Use to match values that are instances of a constructor with type-safe
1685
+ * narrowing.
1686
+ *
1687
+ * **Details**
1688
+ *
1689
+ * This predicate checks if a value is an instance of the specified constructor,
1690
+ * providing type-safe matching for class instances and built-in objects.
1691
+ *
1692
+ * **Example** (Matching class instances)
1693
+ *
1694
+ * ```ts
1695
+ * import { Match } from "effect"
1696
+ *
1697
+ * class CustomError extends Error {
1698
+ * constructor(message: string, public code: number) {
1699
+ * super(message)
1700
+ * }
1701
+ * }
1702
+ *
1703
+ * const handleValue = Match.type<unknown>()
1704
+ * .pipe(
1705
+ * Match.when(
1706
+ * Match.instanceOf(CustomError),
1707
+ * (err) => `Custom error: ${err.message} (code: ${err.code})`
1708
+ * ),
1709
+ * Match.when(
1710
+ * Match.instanceOf(Error),
1711
+ * (err) => `Standard error: ${err.message}`
1712
+ * ),
1713
+ * Match.when(
1714
+ * Match.instanceOf(Array),
1715
+ * (arr) => `Array with ${arr.length} items`
1716
+ * ),
1717
+ * Match.when(
1718
+ * Match.instanceOf(Map),
1719
+ * (map) => `Map with ${map.size} entries`
1720
+ * ),
1721
+ * Match.orElse((value) => `Other: ${typeof value}`)
1722
+ * )
1723
+ *
1724
+ * console.log(handleValue(new CustomError("Failed", 404))) // "Custom error: Failed (code: 404)"
1725
+ * console.log(handleValue(new Error("Generic error"))) // "Standard error: Generic error"
1726
+ * console.log(handleValue([1, 2, 3])) // "Array with 3 items"
1727
+ * console.log(handleValue(new Map([["count", 1]]))) // "Map with 1 entries"
1728
+ * ```
1729
+ *
1730
+ * @see {@link instanceOfUnsafe} for constructor matching without the same type-safety guarantee
1731
+ * @see {@link record} for matching broad non-null, non-array objects
1732
+ *
1733
+ * @category predicates
1734
+ * @since 4.0.0
1735
+ */
1736
+ export const instanceOf: <A extends abstract new(...args: any) => any>(
1737
+ constructor: A
1738
+ ) => SafeRefinement<InstanceType<A>, never> = internal.instanceOf
1739
+
1740
+ /**
1741
+ * Checks whether a value is an instance of a constructor without type-safe narrowing.
1742
+ *
1743
+ * **When to use**
1744
+ *
1745
+ * Use when you need constructor matching to use the unsafe refinement type.
1746
+ *
1747
+ * **Details**
1748
+ *
1749
+ * This predicate checks if a value is an instance of the specified constructor
1750
+ * but doesn't provide the same type safety guarantees as the regular `instanceOf`.
1751
+ * Use this when you need more flexibility but understand the type safety implications.
1752
+ *
1753
+ * **Example** (Matching class instances unsafely)
1754
+ *
1755
+ * ```ts
1756
+ * import { Match } from "effect"
1757
+ *
1758
+ * class CustomError extends Error {
1759
+ * constructor(message: string, public code: number) {
1760
+ * super(message)
1761
+ * }
1762
+ * }
1763
+ *
1764
+ * // When you need to match instances but handle type narrowing manually
1765
+ * const handleError = Match.type<unknown>().pipe(
1766
+ * Match.when(Match.instanceOfUnsafe(CustomError), (err: any) => {
1767
+ * // Manual type assertion needed
1768
+ * const customErr = err as CustomError
1769
+ * return `Custom error ${customErr.code}: ${customErr.message}`
1770
+ * }),
1771
+ * Match.orElse(() => "Not a CustomError")
1772
+ * )
1773
+ * ```
1774
+ *
1775
+ * @see {@link instanceOf} for type-safe constructor matching
1776
+ *
1777
+ * @category predicates
1778
+ * @since 4.0.0
1779
+ */
1780
+ export const instanceOfUnsafe: <A extends abstract new(...args: any) => any>(
1781
+ constructor: A
1782
+ ) => SafeRefinement<InstanceType<A>, InstanceType<A>> = internal.instanceOf
1783
+
1784
+ /**
1785
+ * Provides a fallback value when no patterns match.
1786
+ *
1787
+ * **When to use**
1788
+ *
1789
+ * Use to finalize a matcher with a fallback for unmatched input.
1790
+ *
1791
+ * **Details**
1792
+ *
1793
+ * This function ensures that a matcher always returns a valid result, even if
1794
+ * no defined patterns match. It acts as a default case, similar to the
1795
+ * `default` clause in a `switch` statement or the final `else` in an `if-else`
1796
+ * chain.
1797
+ *
1798
+ * **Example** (Providing a default value when no patterns match)
1799
+ *
1800
+ * ```ts
1801
+ * import { Match } from "effect"
1802
+ *
1803
+ * // Create a matcher for string or number values
1804
+ * const match = Match.type<string | number>().pipe(
1805
+ * // Match when the value is "a"
1806
+ * Match.when("a", () => "ok"),
1807
+ * // Fallback when no patterns match
1808
+ * Match.orElse(() => "fallback")
1809
+ * )
1810
+ *
1811
+ * console.log(match("a"))
1812
+ * // Output: "ok"
1813
+ *
1814
+ * console.log(match("b"))
1815
+ * // Output: "fallback"
1816
+ * ```
1817
+ *
1818
+ * @see {@link option} for finalizing unmatched input as `Option.none`
1819
+ * @see {@link result} for returning unmatched input as a `Result` failure
1820
+ * @see {@link orElseAbsurd} for finalizing when unmatched input should be impossible
1821
+ *
1822
+ * @category completion
1823
+ * @since 4.0.0
1824
+ */
1825
+ export const orElse: <RA, Ret, F extends (_: RA) => Ret>(
1826
+ f: F
1827
+ ) => <I, R, A, Pr>(
1828
+ self: Matcher<I, R, RA, A, Pr, Ret>
1829
+ ) => [Pr] extends [never] ? (input: I) => Unify<ReturnType<F> | A> : Unify<ReturnType<F> | A> = internal.orElse
1830
+
1831
+ // TODO(4.0): Rename to "orThrow"? Like Result.getOrThrow
1832
+ /**
1833
+ * Returns a matcher that throws an error if no pattern matches.
1834
+ *
1835
+ * **When to use**
1836
+ *
1837
+ * Use to finalize a matcher when every remaining unmatched case should be
1838
+ * impossible.
1839
+ *
1840
+ * **Details**
1841
+ *
1842
+ * This function finalizes a matcher by ensuring that if no patterns match, an
1843
+ * error is thrown. It is useful when all cases should be covered, and any
1844
+ * unexpected input should trigger an error instead of returning a default
1845
+ * value.
1846
+ *
1847
+ * When used, this function removes the need for an explicit fallback case and
1848
+ * ensures that an unmatched value is never silently ignored.
1849
+ *
1850
+ * **Example** (Throwing on unmatched input)
1851
+ *
1852
+ * ```ts
1853
+ * import { Match } from "effect"
1854
+ *
1855
+ * const strictMatcher = Match.type<"a" | "b">().pipe(
1856
+ * Match.when("a", () => "Found A"),
1857
+ * Match.when("b", () => "Found B"),
1858
+ * // Will throw if input is neither "a" nor "b"
1859
+ * Match.orElseAbsurd
1860
+ * )
1861
+ *
1862
+ * console.log(strictMatcher("a")) // "Found A"
1863
+ * console.log(strictMatcher("b")) // "Found B"
1864
+ *
1865
+ * // This would throw an error at runtime:
1866
+ * // strictMatcher("c" as any) // throws
1867
+ * ```
1868
+ *
1869
+ * @see {@link exhaustive} for compile-time exhaustive matcher finalization
1870
+ * @see {@link orElse} for providing a fallback for unmatched input
1871
+ *
1872
+ * @category completion
1873
+ * @since 4.0.0
1874
+ */
1875
+ export const orElseAbsurd: <I, R, RA, A, Pr, Ret>(
1876
+ self: Matcher<I, R, RA, A, Pr, Ret>
1877
+ ) => [Pr] extends [never] ? (input: I) => Unify<A> : Unify<A> = internal.orElseAbsurd
1878
+
1879
+ /**
1880
+ * Wraps the match result in a `Result`, distinguishing matched and unmatched
1881
+ * cases.
1882
+ *
1883
+ * **Details**
1884
+ *
1885
+ * This function ensures that the result of a matcher is always wrapped in an
1886
+ * `Result`, allowing clear differentiation between successful matches
1887
+ * (`Ok(value)`) and cases where no pattern matched (`Err(unmatched
1888
+ * value)`).
1889
+ *
1890
+ * This approach is particularly useful when handling optional values or when an
1891
+ * unmatched case should be explicitly handled rather than returning a default
1892
+ * value or throwing an error.
1893
+ *
1894
+ * **Example** (Extracting a user role with `Match.result`)
1895
+ *
1896
+ * ```ts
1897
+ * import { Match } from "effect"
1898
+ *
1899
+ * type User = { readonly role: "admin" | "editor" | "viewer" }
1900
+ *
1901
+ * // Create a matcher to extract user roles
1902
+ * const getRole = Match.type<User>().pipe(
1903
+ * Match.when({ role: "admin" }, () => "Has full access"),
1904
+ * Match.when({ role: "editor" }, () => "Can edit content"),
1905
+ * Match.result // Wrap the result in an Result
1906
+ * )
1907
+ *
1908
+ * console.log(getRole({ role: "admin" }))
1909
+ * // Output: { _id: 'Result', _tag: 'Ok', ok: 'Has full access' }
1910
+ *
1911
+ * console.log(getRole({ role: "viewer" }))
1912
+ * // Output: { _id: 'Result', _tag: 'Err', err: { role: 'viewer' } }
1913
+ * ```
1914
+ *
1915
+ * @category completion
1916
+ * @since 4.0.0
1917
+ */
1918
+ export const result: <I, F, R, A, Pr, Ret>(
1919
+ self: Matcher<I, F, R, A, Pr, Ret>
1920
+ ) => [Pr] extends [never] ? (input: I) => Result.Result<Unify<A>, R> : Result.Result<Unify<A>, R> = internal.result
1921
+
1922
+ /**
1923
+ * Wraps the match result in an `Option`, representing an optional match.
1924
+ *
1925
+ * **When to use**
1926
+ *
1927
+ * Use to finalize a matcher when unmatched input is expected and should become
1928
+ * `Option.none`.
1929
+ *
1930
+ * **Details**
1931
+ *
1932
+ * This function ensures that the result of a matcher is wrapped in an `Option`,
1933
+ * making it easy to handle cases where no pattern matches. If a match is found,
1934
+ * it returns `Some(value)`, otherwise, it returns `None`.
1935
+ *
1936
+ * This is useful in cases where a missing match is expected and should be
1937
+ * handled explicitly rather than throwing an error or returning a default
1938
+ * value.
1939
+ *
1940
+ * **Example** (Extracting a user role with `Match.option`)
1941
+ *
1942
+ * ```ts
1943
+ * import { Match } from "effect"
1944
+ *
1945
+ * type User = { readonly role: "admin" | "editor" | "viewer" }
1946
+ *
1947
+ * // Create a matcher to extract user roles
1948
+ * const getRole = Match.type<User>().pipe(
1949
+ * Match.when({ role: "admin" }, () => "Has full access"),
1950
+ * Match.when({ role: "editor" }, () => "Can edit content"),
1951
+ * Match.option // Wrap the result in an Option
1952
+ * )
1953
+ *
1954
+ * console.log(getRole({ role: "admin" }))
1955
+ * // Output: { _id: 'Option', _tag: 'Some', value: 'Has full access' }
1956
+ *
1957
+ * console.log(getRole({ role: "viewer" }))
1958
+ * // Output: { _id: 'Option', _tag: 'None' }
1959
+ * ```
1960
+ *
1961
+ * @see {@link result} for preserving unmatched input as a `Result` failure
1962
+ * @see {@link orElse} for replacing unmatched input with a fallback value
1963
+ *
1964
+ * @category completion
1965
+ * @since 4.0.0
1966
+ */
1967
+ export const option: <I, F, R, A, Pr, Ret>(
1968
+ self: Matcher<I, F, R, A, Pr, Ret>
1969
+ ) => [Pr] extends [never] ? (input: I) => Option.Option<Unify<A>> : Option.Option<Unify<A>> = internal.option
1970
+
1971
+ /**
1972
+ * Completes a matcher that handles every remaining input case.
1973
+ *
1974
+ * **When to use**
1975
+ *
1976
+ * Use to require TypeScript to reject incomplete matcher definitions before the
1977
+ * matcher is turned into a function.
1978
+ *
1979
+ * **Details**
1980
+ *
1981
+ * If any case is still unmatched, the matcher does not type-check as
1982
+ * exhaustive.
1983
+ *
1984
+ * **Example** (Ensuring all cases are covered)
1985
+ *
1986
+ * ```ts
1987
+ * import { Match } from "effect"
1988
+ *
1989
+ * // Create a matcher for string or number values
1990
+ * const match = Match.type<string | number>().pipe(
1991
+ * // Match when the value is a number
1992
+ * Match.when(Match.number, (n) => `number: ${n}`),
1993
+ * // Mark the match as exhaustive, ensuring all cases are handled
1994
+ * // TypeScript will throw an error if any case is missing
1995
+ * // @ts-expect-error Type 'string' is not assignable to type 'never'
1996
+ * Match.exhaustive
1997
+ * )
1998
+ * ```
1999
+ *
2000
+ * @category completion
2001
+ * @since 4.0.0
2002
+ */
2003
+ export const exhaustive: <I, F, A, Pr, Ret>(
2004
+ self: Matcher<I, F, never, A, Pr, Ret>
2005
+ ) => [Pr] extends [never] ? (u: I) => Unify<A> : Unify<A> = internal.exhaustive
2006
+
2007
+ const SafeRefinementId = "~effect/match/Match/SafeRefinement"
2008
+
2009
+ /**
2010
+ * A safe refinement that narrows types without runtime errors.
2011
+ *
2012
+ * **Details**
2013
+ *
2014
+ * `SafeRefinement` provides a way to refine types in pattern matching while
2015
+ * maintaining type safety. Unlike regular predicates, safe refinements can
2016
+ * transform the matched value's type without throwing runtime errors.
2017
+ *
2018
+ * **Example** (Using safe refinements)
2019
+ *
2020
+ * ```ts
2021
+ * import { Match } from "effect"
2022
+ *
2023
+ * // Built-in safe refinements
2024
+ * const processValue = Match.type<unknown>().pipe(
2025
+ * Match.when(Match.string, (s) => s.toUpperCase()),
2026
+ * Match.when(Match.number, (n) => n * 2),
2027
+ * Match.when(Match.defined, (value) => `Defined: ${value}`),
2028
+ * Match.orElse(() => "Undefined or null")
2029
+ * )
2030
+ *
2031
+ * console.log(processValue("hello")) // "HELLO"
2032
+ * console.log(processValue(21)) // 42
2033
+ * console.log(processValue(true)) // "Defined: true"
2034
+ * console.log(processValue(null)) // "Undefined or null"
2035
+ * ```
2036
+ *
2037
+ * @category models
2038
+ * @since 4.0.0
2039
+ */
2040
+ export interface SafeRefinement<in A, out R = A> {
2041
+ readonly [SafeRefinementId]: (a: A) => R
2042
+ }
2043
+
2044
+ const Fail = Symbol.for("effect/Fail")
2045
+ type Fail = typeof Fail
2046
+
2047
+ /**
2048
+ * A namespace containing utility types for Match operations.
2049
+ *
2050
+ * **Details**
2051
+ *
2052
+ * This namespace provides advanced type-level utilities used internally by the
2053
+ * Match module to perform complex pattern matching, type narrowing, and filter
2054
+ * application. These types enable the sophisticated type inference that makes
2055
+ * pattern matching both type-safe and ergonomic.
2056
+ *
2057
+ * @since 4.0.0
2058
+ */
2059
+ export declare namespace Types {
2060
+ /**
2061
+ * Computes the matched type when a pattern P is applied to type R.
2062
+ *
2063
+ * **Details**
2064
+ *
2065
+ * This utility type determines what type a value will have after successfully
2066
+ * matching against a pattern. It handles refinements, predicates, and complex
2067
+ * object patterns to provide accurate type narrowing.
2068
+ *
2069
+ * **Example** (Computing matched types)
2070
+ *
2071
+ * ```ts
2072
+ * import type { Match } from "effect"
2073
+ *
2074
+ * // WhenMatch computes the narrowed type after pattern matching
2075
+ * type StringMatch = Match.Types.WhenMatch<string | number, typeof Match.string>
2076
+ * // Result: string
2077
+ *
2078
+ * type ObjectMatch = Match.Types.WhenMatch<
2079
+ * { type: "user"; name: string } | {
2080
+ * type: "admin"
2081
+ * permissions: Array<string>
2082
+ * },
2083
+ * { type: "user" }
2084
+ * >
2085
+ * // Result: { type: "user"; name: string }
2086
+ * ```
2087
+ *
2088
+ * @category types
2089
+ * @since 4.0.0
2090
+ */
2091
+ export type WhenMatch<R, P> =
2092
+ // check for any
2093
+ [0] extends [1 & R] ? ResolvePred<P> :
2094
+ P extends SafeRefinement<infer SP, never> ? SP
2095
+ : P extends Predicate.Refinement<infer _R, infer RP>
2096
+ // try to narrow refinement
2097
+ ? [Extract<R, RP>] extends [infer X] ? [X] extends [never]
2098
+ // fallback to original refinement
2099
+ ? RP
2100
+ : X
2101
+ : never
2102
+ : P extends PredicateA<infer PP> ? PP
2103
+ : ExtractMatch<R, P>
2104
+
2105
+ /**
2106
+ * Computes the remaining type when a pattern P is excluded from type R.
2107
+ *
2108
+ * **Details**
2109
+ *
2110
+ * This utility type determines what type remains after a `Match.not` pattern
2111
+ * excludes certain values. It's the complement of `WhenMatch`, calculating
2112
+ * what's left after removing the matched portion.
2113
+ *
2114
+ * **Example** (Computing unmatched types)
2115
+ *
2116
+ * ```ts
2117
+ * import type { Match } from "effect"
2118
+ *
2119
+ * // NotMatch computes what remains after exclusion
2120
+ * type NotString = Match.Types.NotMatch<
2121
+ * string | number | boolean,
2122
+ * typeof Match.string
2123
+ * >
2124
+ * // Result: number | boolean
2125
+ *
2126
+ * type NotSpecificValue = Match.Types.NotMatch<"a" | "b" | "c", "a">
2127
+ * // Result: "b" | "c"
2128
+ * ```
2129
+ *
2130
+ * @category types
2131
+ * @since 4.0.0
2132
+ */
2133
+ export type NotMatch<R, P> = Exclude<R, ExtractMatch<R, PForNotMatch<P>>>
2134
+
2135
+ type PForNotMatch<P> = [ToInvertedRefinement<P>] extends [infer X] ? X
2136
+ : never
2137
+
2138
+ /**
2139
+ * Resolves a pattern to its matched type for use in type computations.
2140
+ *
2141
+ * **Details**
2142
+ *
2143
+ * This utility type processes patterns (predicates, refinements, objects)
2144
+ * and resolves them to their corresponding matched types. It's used internally
2145
+ * to compute type transformations during pattern matching.
2146
+ *
2147
+ * **Example** (Resolving match patterns)
2148
+ *
2149
+ * ```ts
2150
+ * import type { Match } from "effect"
2151
+ *
2152
+ * // PForMatch resolves patterns to their matched types
2153
+ * type StringPattern = Match.Types.PForMatch<typeof Match.string>
2154
+ * // Result: string
2155
+ *
2156
+ * type ObjectPattern = Match.Types.PForMatch<{ name: string }>
2157
+ * // Result: { name: string }
2158
+ * ```
2159
+ *
2160
+ * @category types
2161
+ * @since 4.0.0
2162
+ */
2163
+ export type PForMatch<P> = [ResolvePred<P>] extends [infer X] ? X
2164
+ : never
2165
+
2166
+ /**
2167
+ * Computes the excluded type when a pattern P is used for exclusion.
2168
+ *
2169
+ * **Details**
2170
+ *
2171
+ * This utility type determines what should be excluded from a union type
2172
+ * when a pattern is used in filtering operations. It transforms patterns
2173
+ * into their exclusion-safe representations.
2174
+ *
2175
+ * **Example** (Computing excluded patterns)
2176
+ *
2177
+ * ```ts
2178
+ * import type { Match } from "effect"
2179
+ *
2180
+ * // PForExclude computes what to exclude from type operations
2181
+ * type ExcludeString = Match.Types.PForExclude<typeof Match.string>
2182
+ * // Used internally to filter out string types
2183
+ *
2184
+ * type ExcludeObject = Match.Types.PForExclude<{ type: "admin" }>
2185
+ * // Used internally to filter out admin objects
2186
+ * ```
2187
+ *
2188
+ * @category types
2189
+ * @since 4.0.0
2190
+ */
2191
+ export type PForExclude<P> = [SafeRefinementR<ToSafeRefinement<P>>] extends [infer X] ? X
2192
+ : never
2193
+
2194
+ // utilities
2195
+ type PredicateA<A> = Predicate.Predicate<A> | Predicate.Refinement<A, A>
2196
+
2197
+ type SafeRefinementR<A> = A extends never ? never
2198
+ : A extends SafeRefinement<infer _, infer R> ? R
2199
+ : A extends Function ? A
2200
+ : A extends Record<string, any> ? { [K in keyof A]: SafeRefinementR<A[K]> }
2201
+ : A
2202
+
2203
+ type ResolvePred<A, Input = any> = A extends never ? never
2204
+ : A extends SafeRefinement<infer _A, infer _R> ? _A
2205
+ : A extends Predicate.Refinement<Input, infer P> ? P
2206
+ : A extends Predicate.Predicate<infer P> ? P
2207
+ : A extends Record<string, any> ? { [K in keyof A]: ResolvePred<A[K]> }
2208
+ : A
2209
+
2210
+ type ToSafeRefinement<A> = A extends never ? never
2211
+ : A extends Predicate.Refinement<any, infer P> ? SafeRefinement<P, P>
2212
+ : A extends Predicate.Predicate<infer P> ? SafeRefinement<P, never>
2213
+ : A extends SafeRefinement<any> ? A
2214
+ : A extends Record<string, any> ? { [K in keyof A]: ToSafeRefinement<A[K]> }
2215
+ : NonLiteralsTo<A, never>
2216
+
2217
+ type ToInvertedRefinement<A> = A extends never ? never
2218
+ : A extends Predicate.Refinement<any, infer P> ? SafeRefinement<P>
2219
+ : A extends Predicate.Predicate<infer _P> ? SafeRefinement<never>
2220
+ : A extends SafeRefinement<infer _A, infer _R> ? SafeRefinement<_R>
2221
+ : A extends Record<string, any> ? { [K in keyof A]: ToInvertedRefinement<A[K]> }
2222
+ : NonLiteralsTo<A, never>
2223
+
2224
+ type NonLiteralsTo<A, T> = [A] extends [string | number | boolean | bigint] ? [string] extends [A] ? T
2225
+ : [number] extends [A] ? T
2226
+ : [boolean] extends [A] ? T
2227
+ : [bigint] extends [A] ? T
2228
+ : A
2229
+ : A
2230
+
2231
+ /**
2232
+ * Defines the structure for complex object and array patterns.
2233
+ *
2234
+ * **Details**
2235
+ *
2236
+ * This type represents patterns that can match against complex data structures
2237
+ * like objects and arrays. It supports nested pattern matching and partial
2238
+ * object matching, enabling sophisticated pattern compositions.
2239
+ *
2240
+ * **Example** (Describing complex object patterns)
2241
+ *
2242
+ * ```ts
2243
+ * import { Match } from "effect"
2244
+ *
2245
+ * // PatternBase enables complex object patterns
2246
+ * type UserPattern = Match.Types.PatternBase<{
2247
+ * name: string
2248
+ * age: number
2249
+ * role: "admin" | "user"
2250
+ * }>
2251
+ * // Allows: { name?: string | Predicate, age?: number | Predicate, ... }
2252
+ *
2253
+ * // Example usage:
2254
+ * Match.value({ name: "Alice", age: 30, role: "admin" as const }).pipe(
2255
+ * Match.when(
2256
+ * { age: (n: number) => n >= 18, role: "admin" },
2257
+ * (user: { name: string; age: number; role: "admin" }) =>
2258
+ * `Admin: ${user.name}`
2259
+ * ),
2260
+ * Match.orElse(() => "Not an adult admin")
2261
+ * )
2262
+ * ```
2263
+ *
2264
+ * @category types
2265
+ * @since 4.0.0
2266
+ */
2267
+ export type PatternBase<A> = A extends ReadonlyArray<infer _T> ? ReadonlyArray<any> | PatternPrimitive<A>
2268
+ : A extends Record<string, any> ? Partial<
2269
+ { [K in keyof A]: PatternPrimitive<A[K] & {}> | PatternBase<A[K] & {}> }
2270
+ >
2271
+ : never
2272
+
2273
+ /**
2274
+ * Defines primitive patterns that can match simple values.
2275
+ *
2276
+ * **Details**
2277
+ *
2278
+ * This type represents the building blocks of pattern matching: predicates,
2279
+ * literal values, and safe refinements. These are the atomic patterns that
2280
+ * can be composed into more complex matching logic.
2281
+ *
2282
+ * @category types
2283
+ * @since 4.0.0
2284
+ */
2285
+ export type PatternPrimitive<A> = PredicateA<A> | A | SafeRefinement<any>
2286
+
2287
+ /**
2288
+ * Represents a filter that excludes specific types from a union.
2289
+ *
2290
+ * **Details**
2291
+ *
2292
+ * `Without` is used internally to track which types should be excluded
2293
+ * from consideration during pattern matching. It helps implement the
2294
+ * type-level logic for `Match.not` and other exclusion operations.
2295
+ *
2296
+ * **Example** (Tracking excluded types)
2297
+ *
2298
+ * ```ts
2299
+ * import { Match } from "effect"
2300
+ *
2301
+ * // Without is used internally when you write:
2302
+ * Match.type<string | number | boolean>().pipe(
2303
+ * Match.not(Match.string, (value) => `not string: ${value}`),
2304
+ * // At this point, type system uses Without<string> to track exclusion
2305
+ * Match.orElse(() => "was a string")
2306
+ * )
2307
+ * ```
2308
+ *
2309
+ * @category types
2310
+ * @since 4.0.0
2311
+ */
2312
+ export interface Without<out X> {
2313
+ readonly _tag: "Without"
2314
+ readonly _X: X
2315
+ }
2316
+
2317
+ /**
2318
+ * Represents a filter that includes only specific types from a union.
2319
+ *
2320
+ * **Details**
2321
+ *
2322
+ * `Only` is used internally to track which types should be exclusively
2323
+ * considered during pattern matching. It helps implement the type-level
2324
+ * logic for positive matches and type narrowing.
2325
+ *
2326
+ * **Example** (Tracking included types)
2327
+ *
2328
+ * ```ts
2329
+ * import { Match } from "effect"
2330
+ *
2331
+ * // Only is used internally when you write:
2332
+ * Match.type<string | number | boolean>().pipe(
2333
+ * Match.when(Match.string, (s) => `string: ${s}`),
2334
+ * // At this point, type system uses Only<string> for the match
2335
+ * Match.orElse((value) => `not string: ${value}`)
2336
+ * )
2337
+ * ```
2338
+ *
2339
+ * @category types
2340
+ * @since 4.0.0
2341
+ */
2342
+ export interface Only<out X> {
2343
+ readonly _tag: "Only"
2344
+ readonly _X: X
2345
+ }
2346
+
2347
+ /**
2348
+ * Adds a type to the exclusion filter, expanding what should be filtered out.
2349
+ *
2350
+ * **Details**
2351
+ *
2352
+ * This utility type manages the accumulation of excluded types during
2353
+ * pattern matching. When multiple exclusions are applied, it combines
2354
+ * them into a single filter representation.
2355
+ *
2356
+ * **Example** (Accumulating excluded types)
2357
+ *
2358
+ * ```ts
2359
+ * import { Match } from "effect"
2360
+ *
2361
+ * // AddWithout is used when combining multiple exclusions:
2362
+ * Match.type<string | number | boolean | null>().pipe(
2363
+ * Match.not(Match.string, () => "not string"),
2364
+ * Match.not(Match.number, () => "not number"),
2365
+ * // Type system uses AddWithout to combine exclusions
2366
+ * Match.orElse(() => "was string or number")
2367
+ * )
2368
+ * ```
2369
+ *
2370
+ * @category types
2371
+ * @since 4.0.0
2372
+ */
2373
+ export type AddWithout<A, X> = [A] extends [Without<infer WX>] ? Without<X | WX>
2374
+ : [A] extends [Only<infer OX>] ? Only<Exclude<OX, X>>
2375
+ : never
2376
+
2377
+ /**
2378
+ * Adds a type to the inclusion filter, refining what should be included.
2379
+ *
2380
+ * **Details**
2381
+ *
2382
+ * This utility type manages the refinement of included types during
2383
+ * pattern matching. It ensures that only the most specific type
2384
+ * constraints are maintained when multiple positive matches are applied.
2385
+ *
2386
+ * **Example** (Refining included types)
2387
+ *
2388
+ * ```ts
2389
+ * import { Match } from "effect"
2390
+ *
2391
+ * // AddOnly is used when refining positive matches:
2392
+ * Match.type<{ type: "user" | "admin"; name: string }>().pipe(
2393
+ * Match.when({ type: "admin" }, (admin) => admin.name),
2394
+ * // Type system uses AddOnly to refine the constraint
2395
+ * Match.orElse(() => "not admin")
2396
+ * )
2397
+ * ```
2398
+ *
2399
+ * @category types
2400
+ * @since 4.0.0
2401
+ */
2402
+ export type AddOnly<A, X> = [A] extends [Without<infer WX>] ? [X] extends [WX] ? never
2403
+ : Only<X>
2404
+ : [A] extends [Only<infer OX>] ? [X] extends [OX] ? Only<X>
2405
+ : never
2406
+ : never
2407
+
2408
+ /**
2409
+ * Applies accumulated filters to an input type, producing the final narrowed type.
2410
+ *
2411
+ * **Details**
2412
+ *
2413
+ * This utility type takes the collected inclusion/exclusion filters and
2414
+ * applies them to the input type to compute the final narrowed result.
2415
+ * It's the culmination of the type-level filtering process.
2416
+ *
2417
+ * **Example** (Applying accumulated filters)
2418
+ *
2419
+ * ```ts
2420
+ * import type { Match } from "effect"
2421
+ *
2422
+ * // ApplyFilters computes the final narrowed type:
2423
+ * type Result = Match.Types.ApplyFilters<
2424
+ * string | number | boolean,
2425
+ * Match.Types.Only<string>
2426
+ * >
2427
+ * // Result: string
2428
+ *
2429
+ * type ExclusionResult = Match.Types.ApplyFilters<
2430
+ * string | number | boolean,
2431
+ * Match.Types.Without<string>
2432
+ * >
2433
+ * // Result: number | boolean
2434
+ * ```
2435
+ *
2436
+ * @category types
2437
+ * @since 4.0.0
2438
+ */
2439
+ export type ApplyFilters<I, A> = A extends Only<infer X> ? X
2440
+ : A extends Without<infer X> ? Exclude<I, X>
2441
+ : never
2442
+
2443
+ /**
2444
+ * Extracts tag values from a discriminated union based on a discriminant field.
2445
+ *
2446
+ * **Details**
2447
+ *
2448
+ * This utility type extracts the possible values of a discriminant field
2449
+ * from a union type. It's used internally to implement tag-based pattern
2450
+ * matching for discriminated unions.
2451
+ *
2452
+ * **Example** (Extracting discriminator tags)
2453
+ *
2454
+ * ```ts
2455
+ * import type { Match } from "effect"
2456
+ *
2457
+ * type Events =
2458
+ * | { _tag: "click"; x: number; y: number }
2459
+ * | { _tag: "keypress"; key: string }
2460
+ * | { _tag: "scroll"; delta: number }
2461
+ *
2462
+ * type EventTags = Match.Types.Tags<"_tag", Events>
2463
+ * // Result: "click" | "keypress" | "scroll"
2464
+ *
2465
+ * type CustomTags = Match.Types.Tags<
2466
+ * "type",
2467
+ * | { type: "user"; name: string }
2468
+ * | { type: "admin"; permissions: Array<string> }
2469
+ * >
2470
+ * // Result: "user" | "admin"
2471
+ * ```
2472
+ *
2473
+ * @category types
2474
+ * @since 4.0.0
2475
+ */
2476
+ export type Tags<D extends string, P> = P extends Record<D, infer X> ? X : never
2477
+
2478
+ /**
2479
+ * Converts an array type to an intersection of its element types.
2480
+ *
2481
+ * **Details**
2482
+ *
2483
+ * This utility type takes an array of types and converts them into a single
2484
+ * intersection type. It's used internally when multiple patterns need to
2485
+ * be satisfied simultaneously (like in `Match.whenAnd`).
2486
+ *
2487
+ * **Example** (Converting arrays to intersections)
2488
+ *
2489
+ * ```ts
2490
+ * import type { Match } from "effect"
2491
+ *
2492
+ * type Combined = Match.Types.ArrayToIntersection<[
2493
+ * { name: string },
2494
+ * { age: number },
2495
+ * { active: boolean }
2496
+ * ]>
2497
+ * // Result: { name: string } & { age: number } & { active: boolean }
2498
+ * // = { name: string; age: number; active: boolean }
2499
+ *
2500
+ * // This type utility enables complex type intersections
2501
+ * // Complex type operations are handled by this utility type
2502
+ * // for advanced pattern matching scenarios
2503
+ * ```
2504
+ *
2505
+ * @category types
2506
+ * @since 4.0.0
2507
+ */
2508
+ export type ArrayToIntersection<A extends ReadonlyArray<any>> = T.UnionToIntersection<
2509
+ A[number]
2510
+ >
2511
+
2512
+ /**
2513
+ * Extracts and narrows the matched type from an input type given a pattern.
2514
+ *
2515
+ * **Details**
2516
+ *
2517
+ * This is the core type utility that performs the actual type extraction
2518
+ * and narrowing logic. It handles the complex type-level computation that
2519
+ * determines what type results from applying a pattern to an input type.
2520
+ *
2521
+ * **Example** (Extracting matched types)
2522
+ *
2523
+ * ```ts
2524
+ * import { Match } from "effect"
2525
+ *
2526
+ * type StringExtract = Match.Types.ExtractMatch<
2527
+ * string | number | boolean,
2528
+ * typeof Match.string
2529
+ * >
2530
+ * // Result: string
2531
+ *
2532
+ * type ObjectExtract = Match.Types.ExtractMatch<
2533
+ * { type: "user"; name: string } | { type: "admin"; role: string },
2534
+ * { type: "user" }
2535
+ * >
2536
+ * // Result: { type: "user"; name: string }
2537
+ *
2538
+ * // This powers the type narrowing in:
2539
+ * Match.when(Match.string, (s) => s.toUpperCase())
2540
+ * // ^^^ s is correctly typed as string
2541
+ * ```
2542
+ *
2543
+ * @category types
2544
+ * @since 4.0.0
2545
+ */
2546
+ export type ExtractMatch<I, P> = [ExtractAndNarrow<I, P>] extends [infer EI] ? EI
2547
+ : never
2548
+
2549
+ type Replace<A, B> = A extends Function ? A
2550
+ : A extends Record<string | number, any> ? { [K in keyof A]: K extends keyof B ? Replace<A[K], B[K]> : A[K] }
2551
+ : [B] extends [A] ? B
2552
+ : A
2553
+
2554
+ type MaybeReplace<I, P> = [P] extends [I] ? P
2555
+ : [I] extends [P] ? Replace<I, P>
2556
+ : Fail
2557
+
2558
+ type BuiltInObjects =
2559
+ | Function
2560
+ | Date
2561
+ | RegExp
2562
+ | Generator
2563
+ | { readonly [Symbol.toStringTag]: string }
2564
+
2565
+ type IsPlainObject<T> = T extends BuiltInObjects ? false
2566
+ : T extends Record<string, any> ? true
2567
+ : false
2568
+
2569
+ type Simplify<A> = { [K in keyof A]: A[K] } & {}
2570
+
2571
+ type ExtractAndNarrow<Input, P> = P extends Predicate.Refinement<infer _In, infer _Out> ?
2572
+ _Out extends Input ? Extract<_Out, Input>
2573
+ : Extract<Input, _Out> :
2574
+ P extends SafeRefinement<infer _In, infer _R> ? [0] extends [1 & _R] ? Input
2575
+ : _In extends Input ? Extract<_In, Input>
2576
+ : Extract<Input, _In>
2577
+ : P extends Predicate.Predicate<infer _In> ? Extract<Input, _In>
2578
+ : Input extends infer I ? Exclude<
2579
+ I extends ReadonlyArray<any> ? P extends ReadonlyArray<any> ? {
2580
+ readonly [K in keyof I]: K extends keyof P ? ExtractAndNarrow<I[K], P[K]>
2581
+ : I[K]
2582
+ } extends infer R ? Fail extends R[keyof R] ? never
2583
+ : R
2584
+ : never
2585
+ : never
2586
+ : IsPlainObject<I> extends true ? string extends keyof I ? I extends P ? I
2587
+ : never
2588
+ : symbol extends keyof I ? I extends P ? I
2589
+ : never
2590
+ : Simplify<
2591
+ & { [RK in Extract<keyof I, keyof P>]-?: ExtractAndNarrow<I[RK], P[RK]> }
2592
+ & Omit<I, keyof P>
2593
+ > extends infer R ? keyof P extends NonFailKeys<R> ? R
2594
+ : never
2595
+ : never
2596
+ : MaybeReplace<I, P> extends infer R ? [I] extends [R] ? I
2597
+ : R
2598
+ : never,
2599
+ Fail
2600
+ > :
2601
+ never
2602
+
2603
+ type NonFailKeys<A> = keyof A & {} extends infer K ? K extends keyof A ? A[K] extends Fail ? never : K
2604
+ : never :
2605
+ never
2606
+ }