mlform 0.1.2 → 0.1.4

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 (299) hide show
  1. package/README.md +241 -88
  2. package/dist/design-system-CrrSGfFB.js +1352 -0
  3. package/dist/engine-nnhWPT2L.js +5301 -0
  4. package/dist/kit-Dt_1Fxlc.js +76 -0
  5. package/dist/mlform/design-system.mjs +2 -0
  6. package/dist/mlform/engine.mjs +3 -0
  7. package/dist/mlform/kit.mjs +3 -0
  8. package/dist/mlform/primitives.mjs +2 -0
  9. package/dist/mlform/questionnaire.mjs +640 -0
  10. package/dist/mlform/transport.mjs +2 -0
  11. package/dist/mlform.mjs +4 -709
  12. package/dist/primitives-Pi-ztAr6.js +5063 -0
  13. package/dist/transport-A1RsnZhD.js +2143 -0
  14. package/dist/types/src/design-system/constants.d.ts +34 -0
  15. package/dist/types/src/design-system/contract/component-keys.d.ts +2 -0
  16. package/dist/types/src/design-system/contract/component-tokens.d.ts +5 -0
  17. package/dist/types/src/design-system/contract/global-tokens.d.ts +7 -0
  18. package/dist/types/src/design-system/contract/index.d.ts +4 -0
  19. package/dist/types/src/design-system/contract/token-keys.d.ts +12 -0
  20. package/dist/types/src/design-system/index.d.ts +8 -0
  21. package/dist/types/src/design-system/recipes/contrast.d.ts +2 -0
  22. package/dist/types/src/design-system/recipes/default.d.ts +2 -0
  23. package/dist/types/src/design-system/recipes/index.d.ts +4 -0
  24. package/dist/types/src/design-system/recipes/minimal.d.ts +2 -0
  25. package/dist/types/src/design-system/recipes/soft.d.ts +2 -0
  26. package/dist/types/src/design-system/registry/builtins.d.ts +5 -0
  27. package/dist/types/src/design-system/registry/create-registry.d.ts +2 -0
  28. package/dist/types/src/design-system/registry/deep-freeze.d.ts +5 -0
  29. package/dist/types/src/design-system/registry/define-recipe.d.ts +2 -0
  30. package/dist/types/src/design-system/registry/define-theme.d.ts +2 -0
  31. package/dist/types/src/design-system/registry/define-token-maps.d.ts +6 -0
  32. package/dist/types/src/design-system/registry/index.d.ts +5 -0
  33. package/dist/types/src/design-system/resolve/diagnostics.d.ts +9 -0
  34. package/dist/types/src/design-system/resolve/index.d.ts +5 -0
  35. package/dist/types/src/design-system/resolve/merge-config.d.ts +2 -0
  36. package/dist/types/src/design-system/resolve/migrate-tokens.d.ts +44 -0
  37. package/dist/types/src/design-system/resolve/resolve-mode.d.ts +6 -0
  38. package/dist/types/src/design-system/resolve/resolve-recipe.d.ts +2 -0
  39. package/dist/types/src/design-system/resolve/resolve-theme.d.ts +2 -0
  40. package/dist/types/src/design-system/resolve/resolve-tokens.d.ts +2 -0
  41. package/dist/types/src/design-system/runtime/apply-tokens.d.ts +4 -0
  42. package/dist/types/src/design-system/runtime/attach-design-system.d.ts +11 -0
  43. package/dist/types/src/design-system/runtime/create-stylesheet.d.ts +11 -0
  44. package/dist/types/src/design-system/runtime/declarations.d.ts +5 -0
  45. package/dist/types/src/design-system/runtime/design-system-controller.d.ts +9 -0
  46. package/dist/types/src/design-system/runtime/host-state.d.ts +3 -0
  47. package/dist/types/src/design-system/runtime/hydrate-design-system.d.ts +25 -0
  48. package/dist/types/src/design-system/runtime/index.d.ts +8 -0
  49. package/dist/types/src/design-system/themes/cobalt.d.ts +2 -0
  50. package/dist/types/src/design-system/themes/graphite.d.ts +2 -0
  51. package/dist/types/src/design-system/themes/index.d.ts +5 -0
  52. package/dist/types/src/design-system/themes/neutral.d.ts +2 -0
  53. package/dist/types/src/design-system/themes/sage.d.ts +2 -0
  54. package/dist/types/src/design-system/themes/sunset.d.ts +2 -0
  55. package/dist/types/src/design-system/tokens/base.d.ts +5 -0
  56. package/dist/types/src/design-system/tokens/contrast.d.ts +8 -0
  57. package/dist/types/src/design-system/tokens/density.d.ts +9 -0
  58. package/dist/types/src/design-system/tokens/forced-colors.d.ts +12 -0
  59. package/dist/types/src/design-system/tokens/index.d.ts +5 -0
  60. package/dist/types/src/design-system/tokens/motion.d.ts +2 -0
  61. package/dist/types/src/design-system/types.d.ts +225 -0
  62. package/dist/types/src/engine/builtins/fields/boolean.d.ts +8 -0
  63. package/dist/types/src/engine/builtins/fields/category.d.ts +11 -0
  64. package/dist/types/src/engine/builtins/fields/date.d.ts +9 -0
  65. package/dist/types/src/engine/builtins/fields/long-text.d.ts +10 -0
  66. package/dist/types/src/engine/builtins/fields/multi-choice.d.ts +12 -0
  67. package/dist/types/src/engine/builtins/fields/number.d.ts +11 -0
  68. package/dist/types/src/engine/builtins/fields/rating.d.ts +9 -0
  69. package/dist/types/src/engine/builtins/fields/series.d.ts +20 -0
  70. package/dist/types/src/engine/builtins/fields/single-choice.d.ts +12 -0
  71. package/dist/types/src/engine/builtins/fields/text.d.ts +10 -0
  72. package/dist/types/src/engine/builtins/index.d.ts +97 -0
  73. package/dist/types/src/engine/builtins/reports/classifier.d.ts +8 -0
  74. package/dist/types/src/engine/builtins/reports/regressor.d.ts +8 -0
  75. package/dist/types/src/engine/builtins/shared.d.ts +49 -0
  76. package/dist/types/src/engine/comparison.d.ts +2 -0
  77. package/dist/types/src/engine/constants.d.ts +51 -0
  78. package/dist/types/src/engine/declarative/explanation.d.ts +2 -0
  79. package/dist/types/src/engine/declarative/field.d.ts +2 -0
  80. package/dist/types/src/engine/declarative/presentation.d.ts +61 -0
  81. package/dist/types/src/engine/declarative/report.d.ts +2 -0
  82. package/dist/types/src/engine/equality.d.ts +4 -0
  83. package/dist/types/src/engine/errors.d.ts +28 -0
  84. package/dist/types/src/engine/explanations/controller.d.ts +13 -0
  85. package/dist/types/src/engine/explanations/index.d.ts +1 -0
  86. package/dist/types/src/engine/fields/controller.d.ts +30 -0
  87. package/dist/types/src/engine/fields/index.d.ts +1 -0
  88. package/dist/types/src/engine/form.d.ts +2 -0
  89. package/dist/types/src/engine/index.d.ts +11 -0
  90. package/dist/types/src/engine/paths.d.ts +2 -0
  91. package/dist/types/src/engine/registry/index.d.ts +26 -0
  92. package/dist/types/src/engine/reports/controller.d.ts +19 -0
  93. package/dist/types/src/engine/reports/index.d.ts +1 -0
  94. package/dist/types/src/engine/schema/index.d.ts +7 -0
  95. package/dist/types/src/engine/state/engine.d.ts +60 -0
  96. package/dist/types/src/engine/state/index.d.ts +3 -0
  97. package/dist/types/src/engine/state/snapshots.d.ts +5 -0
  98. package/dist/types/src/engine/state/store.d.ts +13 -0
  99. package/dist/types/src/engine/submission/abort.d.ts +15 -0
  100. package/dist/types/src/engine/submission/explanations.d.ts +2 -0
  101. package/dist/types/src/engine/submission/index.d.ts +5 -0
  102. package/dist/types/src/engine/submission/lifecycle.d.ts +16 -0
  103. package/dist/types/src/engine/submission/pipeline.d.ts +2 -0
  104. package/dist/types/src/engine/submission/reports.d.ts +12 -0
  105. package/dist/types/src/engine/submission/request.d.ts +23 -0
  106. package/dist/types/src/engine/submission/result.d.ts +4 -0
  107. package/dist/types/src/engine/submission/submitter.d.ts +40 -0
  108. package/dist/types/src/engine/types/explanation.d.ts +109 -0
  109. package/dist/types/src/engine/types/field.d.ts +172 -0
  110. package/dist/types/src/engine/types/form.d.ts +120 -0
  111. package/dist/types/src/engine/types/index.d.ts +9 -0
  112. package/dist/types/src/engine/types/pipeline.d.ts +31 -0
  113. package/dist/types/src/engine/types/registry.d.ts +17 -0
  114. package/dist/types/src/engine/types/report.d.ts +87 -0
  115. package/dist/types/src/engine/types/transport.d.ts +41 -0
  116. package/dist/types/src/engine/utils.d.ts +9 -0
  117. package/dist/types/src/engine/validation/conditions.d.ts +11 -0
  118. package/dist/types/src/engine/validation/field.d.ts +29 -0
  119. package/dist/types/src/engine/validation/form.d.ts +35 -0
  120. package/dist/types/src/engine/validation/index.d.ts +3 -0
  121. package/dist/types/src/engine/values.d.ts +2 -0
  122. package/dist/types/src/index.d.ts +7 -0
  123. package/dist/types/src/kit/constants.d.ts +4 -0
  124. package/dist/types/src/kit/defaults.d.ts +11 -0
  125. package/dist/types/src/kit/index.d.ts +4 -0
  126. package/dist/types/src/kit/mount-form.d.ts +3 -0
  127. package/dist/types/src/kit/types.d.ts +52 -0
  128. package/dist/types/src/primitives/base-async-report-element.d.ts +19 -0
  129. package/dist/types/src/primitives/base-explanation-element.d.ts +21 -0
  130. package/dist/types/src/primitives/base-field-element.d.ts +21 -0
  131. package/dist/types/src/primitives/base-report-element.d.ts +15 -0
  132. package/dist/types/src/primitives/components/declarative-explanation.d.ts +5 -0
  133. package/dist/types/src/primitives/components/declarative-field.d.ts +6 -0
  134. package/dist/types/src/primitives/components/declarative-report.d.ts +5 -0
  135. package/dist/types/src/primitives/components/explanation-panel.d.ts +22 -0
  136. package/dist/types/src/primitives/components/field-frame.d.ts +21 -0
  137. package/dist/types/src/primitives/components/form-errors.d.ts +19 -0
  138. package/dist/types/src/primitives/components/form-root.d.ts +29 -0
  139. package/dist/types/src/primitives/components/presentation.d.ts +4 -0
  140. package/dist/types/src/primitives/components/report-frame.d.ts +22 -0
  141. package/dist/types/src/primitives/components/submit-button.d.ts +21 -0
  142. package/dist/types/src/primitives/components/unsupported-component.d.ts +14 -0
  143. package/dist/types/src/primitives/constants.d.ts +94 -0
  144. package/dist/types/src/primitives/controller-binding.d.ts +32 -0
  145. package/dist/types/src/primitives/fields/boolean-field.d.ts +6 -0
  146. package/dist/types/src/primitives/fields/category-field.d.ts +6 -0
  147. package/dist/types/src/primitives/fields/date-field.d.ts +6 -0
  148. package/dist/types/src/primitives/fields/long-text-field.d.ts +6 -0
  149. package/dist/types/src/primitives/fields/multi-choice-field.d.ts +6 -0
  150. package/dist/types/src/primitives/fields/number-field.d.ts +8 -0
  151. package/dist/types/src/primitives/fields/rating-field.d.ts +6 -0
  152. package/dist/types/src/primitives/fields/series-field.d.ts +8 -0
  153. package/dist/types/src/primitives/fields/single-choice-field.d.ts +6 -0
  154. package/dist/types/src/primitives/fields/text-field.d.ts +6 -0
  155. package/dist/types/src/primitives/index.d.ts +8 -0
  156. package/dist/types/src/primitives/mount-form.d.ts +4 -0
  157. package/dist/types/src/primitives/register.d.ts +0 -0
  158. package/dist/types/src/primitives/registry.d.ts +3 -0
  159. package/dist/types/src/primitives/reports/classifier-report.d.ts +5 -0
  160. package/dist/types/src/primitives/reports/regressor-report.d.ts +5 -0
  161. package/dist/types/src/primitives/types.d.ts +128 -0
  162. package/dist/types/src/primitives/utils.d.ts +3 -0
  163. package/dist/types/src/questionnaire/constants.d.ts +31 -0
  164. package/dist/types/src/questionnaire/defaults.d.ts +8 -0
  165. package/dist/types/src/questionnaire/engine/controller.d.ts +12 -0
  166. package/dist/types/src/questionnaire/engine/schema.d.ts +9 -0
  167. package/dist/types/src/questionnaire/errors.d.ts +3 -0
  168. package/dist/types/src/questionnaire/index.d.ts +6 -0
  169. package/dist/types/src/questionnaire/mount.d.ts +3 -0
  170. package/dist/types/src/questionnaire/primitives/components/questionnaire-root.d.ts +23 -0
  171. package/dist/types/src/questionnaire/primitives/components/step-indicator.d.ts +14 -0
  172. package/dist/types/src/questionnaire/primitives/register.d.ts +0 -0
  173. package/dist/types/src/questionnaire/types.d.ts +69 -0
  174. package/dist/types/src/shared/errors.d.ts +3 -0
  175. package/dist/types/src/shared/index.d.ts +1 -0
  176. package/dist/types/src/transport/capabilities.d.ts +7 -0
  177. package/dist/types/src/transport/clone.d.ts +6 -0
  178. package/dist/types/src/transport/composition/fallback.d.ts +2 -0
  179. package/dist/types/src/transport/composition/fanout.d.ts +3 -0
  180. package/dist/types/src/transport/composition/hedged.d.ts +2 -0
  181. package/dist/types/src/transport/composition/index.d.ts +7 -0
  182. package/dist/types/src/transport/composition/load-balancing.d.ts +2 -0
  183. package/dist/types/src/transport/composition/pipeline.d.ts +2 -0
  184. package/dist/types/src/transport/composition/racing.d.ts +2 -0
  185. package/dist/types/src/transport/composition/routing.d.ts +3 -0
  186. package/dist/types/src/transport/constants.d.ts +34 -0
  187. package/dist/types/src/transport/errors.d.ts +36 -0
  188. package/dist/types/src/transport/index.d.ts +9 -0
  189. package/dist/types/src/transport/internal.d.ts +110 -0
  190. package/dist/types/src/transport/middleware/auth.d.ts +2 -0
  191. package/dist/types/src/transport/middleware/cache.d.ts +2 -0
  192. package/dist/types/src/transport/middleware/circuit-breaker.d.ts +2 -0
  193. package/dist/types/src/transport/middleware/dedup.d.ts +2 -0
  194. package/dist/types/src/transport/middleware/index.d.ts +12 -0
  195. package/dist/types/src/transport/middleware/logging.d.ts +2 -0
  196. package/dist/types/src/transport/middleware/metrics.d.ts +2 -0
  197. package/dist/types/src/transport/middleware/pipe.d.ts +2 -0
  198. package/dist/types/src/transport/middleware/rate-limit.d.ts +2 -0
  199. package/dist/types/src/transport/middleware/retry.d.ts +2 -0
  200. package/dist/types/src/transport/middleware/timeout.d.ts +2 -0
  201. package/dist/types/src/transport/middleware/tracing.d.ts +2 -0
  202. package/dist/types/src/transport/middleware/transform.d.ts +3 -0
  203. package/dist/types/src/transport/policy-context.d.ts +3 -0
  204. package/dist/types/src/transport/protocols/graphql.d.ts +2 -0
  205. package/dist/types/src/transport/protocols/grpc.d.ts +5 -0
  206. package/dist/types/src/transport/protocols/index.d.ts +5 -0
  207. package/dist/types/src/transport/protocols/json.d.ts +2 -0
  208. package/dist/types/src/transport/protocols/sse.d.ts +2 -0
  209. package/dist/types/src/transport/protocols/websocket.d.ts +2 -0
  210. package/dist/types/src/transport/runtime.d.ts +4 -0
  211. package/dist/types/src/transport/state/cache-store.d.ts +2 -0
  212. package/dist/types/src/transport/state/circuit-breaker.d.ts +2 -0
  213. package/dist/types/src/transport/state/health.d.ts +2 -0
  214. package/dist/types/src/transport/state/index.d.ts +5 -0
  215. package/dist/types/src/transport/state/rate-limiter.d.ts +2 -0
  216. package/dist/types/src/transport/state/session.d.ts +2 -0
  217. package/dist/types/src/transport/types/capabilities.d.ts +35 -0
  218. package/dist/types/src/transport/types/core.d.ts +57 -0
  219. package/dist/types/src/transport/types/events.d.ts +50 -0
  220. package/dist/types/src/transport/types/index.d.ts +7 -0
  221. package/dist/types/src/transport/types/middleware.d.ts +3 -0
  222. package/dist/types/src/transport/types/options.d.ts +258 -0
  223. package/dist/types/src/transport/types/session.d.ts +48 -0
  224. package/dist/types/src/transport/types/state.d.ts +46 -0
  225. package/package.json +93 -37
  226. package/dist/FieldStrategy-pPekBtH-.js +0 -2318
  227. package/dist/ModelTypes-B9_veCKB.js +0 -5
  228. package/dist/ReportStrategy-DY3GC_mJ.js +0 -23
  229. package/dist/boolean-field-Cd3uhIPj.js +0 -104
  230. package/dist/category-field-D_Ms1x9u.js +0 -73
  231. package/dist/classifier-prediction-C5QzorTo.js +0 -193
  232. package/dist/custom-element-ttkHUa8w.js +0 -13
  233. package/dist/date-field-Cg_ja679.js +0 -162
  234. package/dist/error-card-BwjPChwf.js +0 -195
  235. package/dist/field-wrapper-DqIQl76d.js +0 -177
  236. package/dist/ml-layout-Dx63KKf7.js +0 -332
  237. package/dist/mlform/extensions.mjs +0 -38
  238. package/dist/mlform/strategies.mjs +0 -292
  239. package/dist/number-field-CC2DrVEb.js +0 -165
  240. package/dist/property-jKFNMQpR.js +0 -561
  241. package/dist/range-field-Cr7LEtsJ.js +0 -98
  242. package/dist/regressor-prediction-C18dHlfK.js +0 -236
  243. package/dist/src/core/app/DescriptorItem.d.ts +0 -6
  244. package/dist/src/core/app/DescriptorRegistry.d.ts +0 -13
  245. package/dist/src/core/app/DescriptorService.d.ts +0 -22
  246. package/dist/src/core/app/DescriptorStrategy.d.ts +0 -11
  247. package/dist/src/core/app/index.d.ts +0 -4
  248. package/dist/src/core/domain/index.d.ts +0 -24
  249. package/dist/src/core/index.d.ts +0 -3
  250. package/dist/src/core/ui/error-card.d.ts +0 -38
  251. package/dist/src/core/ui/field-wrapper.d.ts +0 -23
  252. package/dist/src/core/ui/index.d.ts +0 -3
  253. package/dist/src/core/ui/ml-layout.d.ts +0 -23
  254. package/dist/src/extensions/app/FieldStrategy.d.ts +0 -10
  255. package/dist/src/extensions/app/ReportStrategy.d.ts +0 -9
  256. package/dist/src/extensions/app/index.d.ts +0 -2
  257. package/dist/src/extensions/domain/BaseField.d.ts +0 -7
  258. package/dist/src/extensions/domain/BaseModel.d.ts +0 -6
  259. package/dist/src/extensions/domain/index.d.ts +0 -2
  260. package/dist/src/extensions/index.d.ts +0 -3
  261. package/dist/src/extensions/ui/field-element.d.ts +0 -9
  262. package/dist/src/extensions/ui/index.d.ts +0 -1
  263. package/dist/src/index.d.ts +0 -1
  264. package/dist/src/mlform/index.d.ts +0 -1
  265. package/dist/src/mlform/mlform.d.ts +0 -27
  266. package/dist/src/mlform/mlform.types.d.ts +0 -11
  267. package/dist/src/strategies/app/BooleanStrategy.d.ts +0 -12
  268. package/dist/src/strategies/app/CategoryStrategy.d.ts +0 -13
  269. package/dist/src/strategies/app/ClassifierStrategy.d.ts +0 -15
  270. package/dist/src/strategies/app/DateStrategy.d.ts +0 -15
  271. package/dist/src/strategies/app/NumberStrategy.d.ts +0 -29
  272. package/dist/src/strategies/app/RegressorStrategy.d.ts +0 -15
  273. package/dist/src/strategies/app/TextStrategy.d.ts +0 -16
  274. package/dist/src/strategies/app/index.d.ts +0 -7
  275. package/dist/src/strategies/domain/BooleanField.d.ts +0 -10
  276. package/dist/src/strategies/domain/CategoryField.d.ts +0 -11
  277. package/dist/src/strategies/domain/ClassifierModel.d.ts +0 -11
  278. package/dist/src/strategies/domain/DateField.d.ts +0 -13
  279. package/dist/src/strategies/domain/FieldTypes.d.ts +0 -7
  280. package/dist/src/strategies/domain/ModelTypes.d.ts +0 -4
  281. package/dist/src/strategies/domain/NumberField.d.ts +0 -15
  282. package/dist/src/strategies/domain/RegressorModel.d.ts +0 -11
  283. package/dist/src/strategies/domain/TextField.d.ts +0 -14
  284. package/dist/src/strategies/domain/index.d.ts +0 -9
  285. package/dist/src/strategies/index.d.ts +0 -1
  286. package/dist/src/strategies/ui/boolean-field.d.ts +0 -13
  287. package/dist/src/strategies/ui/category-field.d.ts +0 -14
  288. package/dist/src/strategies/ui/classifier-prediction.d.ts +0 -39
  289. package/dist/src/strategies/ui/date-field.d.ts +0 -18
  290. package/dist/src/strategies/ui/index.d.ts +0 -8
  291. package/dist/src/strategies/ui/number-field.d.ts +0 -19
  292. package/dist/src/strategies/ui/range-field.d.ts +0 -17
  293. package/dist/src/strategies/ui/regressor-prediction.d.ts +0 -29
  294. package/dist/src/strategies/ui/text-field.d.ts +0 -17
  295. package/dist/state-CLlTRyl1.js +0 -12
  296. package/dist/test/_fixtures/DummyField.d.ts +0 -9
  297. package/dist/test/setup.d.ts +0 -1
  298. package/dist/test/unit/DummyField.test.d.ts +0 -1
  299. package/dist/text-field-DwP-Fa1w.js +0 -114
@@ -0,0 +1,2143 @@
1
+ //#region src/shared/errors.ts
2
+ var e = class extends Error {
3
+ constructor(e) {
4
+ super(e), this.name = "MLFormError";
5
+ }
6
+ }, t = {
7
+ TIMEOUT: "TIMEOUT",
8
+ AUTH_FAILED: "AUTH_FAILED",
9
+ RATE_LIMITED: "RATE_LIMITED",
10
+ OPEN_CIRCUIT: "OPEN_CIRCUIT",
11
+ PARSE_FAILED: "PARSE_FAILED",
12
+ UPSTREAM_5XX: "UPSTREAM_5XX",
13
+ ABORTED: "ABORTED",
14
+ CAPABILITY_MISMATCH: "CAPABILITY_MISMATCH",
15
+ PAYLOAD_TOO_LARGE: "PAYLOAD_TOO_LARGE",
16
+ SESSION_RESULT_MISSING: "SESSION_RESULT_MISSING",
17
+ GRAPHQL_ERROR: "GRAPHQL_ERROR",
18
+ WEBSOCKET_BUFFER_OVERFLOW: "WEBSOCKET_BUFFER_OVERFLOW",
19
+ POLICY_STORE_CONFLICT: "POLICY_STORE_CONFLICT",
20
+ QUORUM_NOT_REACHED: "QUORUM_NOT_REACHED"
21
+ }, n = class extends e {
22
+ cause;
23
+ source;
24
+ status;
25
+ code;
26
+ retryable;
27
+ details;
28
+ response;
29
+ constructor(e, t = {}) {
30
+ super(e), this.name = "TransportError", this.cause = t.cause, this.source = t.source, this.status = t.status, this.code = t.code, this.retryable = t.retryable, this.details = t.details, this.response = t.response;
31
+ }
32
+ }, r = {
33
+ method: "POST",
34
+ acceptHeader: "application/json",
35
+ contentTypeHeader: "application/json",
36
+ requestBodyKey: "inputs"
37
+ }, i = {
38
+ missingFetch: "A fetch implementation is required to use the default transport.",
39
+ unsupportedMethod: (e) => `Unsupported HTTP method "${e}" for createJsonTransport. Use POST, PUT, PATCH, or DELETE.`,
40
+ requestFailed: (e, t) => `Request failed with status ${e}${t ? ` ${t}` : ""}.`,
41
+ emptyComposedTransport: (e) => `${e} requires at least one transport.`,
42
+ unknownComposedTransport: (e, t, n) => `${e} selected unknown transport "${t}". Available transports: ${n.join(", ")}.`,
43
+ duplicateFanoutReport: (e, t, n) => `createFanoutTransport received report "${e}" from both ${t} and ${n}. Provide unique report ids or a custom merge implementation.`,
44
+ fanoutFailed: (e) => `createFanoutTransport failed for ${e.join(", ")}.`,
45
+ fanoutEmpty: "createFanoutTransport: all transports filtered out. No submissions dispatched.",
46
+ fallbackFailed: (e) => `createFallbackTransport exhausted all transports: ${e.join(", ")}.`,
47
+ emptyPipeline: "createPipelineTransport requires at least one stage.",
48
+ pipelineAborted: (e) => `createPipelineTransport: aborted during stage "${e}".`,
49
+ racingAllFailed: "createRacingTransport: all transports failed.",
50
+ missingStream: (e) => `${e} does not support streaming.`,
51
+ retryInvalidAttempts: "withRetry: attempts must be at least 1.",
52
+ timeoutInvalid: "withTimeout: timeout must be a positive number.",
53
+ retryUnsafe: "withRetry: transport declares retrySafe=false. Pass `allowUnsafeRetry: true` to override.",
54
+ cacheUnsafe: "withCache: transport declares cacheable=false. Pass `allowUnsafeCache: true` to override.",
55
+ circuitInvalidFailureThreshold: "withCircuitBreaker: failureThreshold must be at least 1.",
56
+ circuitInvalidResetTimeout: "withCircuitBreaker: resetTimeout must be a positive number.",
57
+ rateLimitInvalid: "withRateLimit: provide at least one positive maxConcurrent or perSecond limit.",
58
+ rateLimitQueueFull: "withRateLimit: queue limit exceeded.",
59
+ cacheInvalidTtl: "withCache: ttl must be a positive number.",
60
+ circuitOpen: (e) => `Transport circuit is open for ${e}.`,
61
+ hedgedUnsafe: "createHedgedTransport: every transport must declare retrySafe !== false or allowUnsafeHedging must be true.",
62
+ sseInvalidEvent: "createSseTransport: failed to parse SSE event payload.",
63
+ websocketMissing: "createWebSocketSessionTransport requires a WebSocket implementation in this environment."
64
+ }, a = {
65
+ modes: {
66
+ submit: !0,
67
+ stream: !1,
68
+ session: !1
69
+ },
70
+ safety: {
71
+ idempotent: !1,
72
+ retrySafe: !1,
73
+ cacheable: !1,
74
+ hedgeSafe: !1
75
+ },
76
+ limits: {},
77
+ auth: { kinds: ["none"] },
78
+ delivery: {
79
+ mode: "request-response",
80
+ consistency: "unknown",
81
+ backpressure: "none"
82
+ }
83
+ }, o = (e) => [...new Set(e)], s = (e, t) => {
84
+ let n = e ?? {}, r = t ?? {}, i = {
85
+ ...a.modes,
86
+ ...r.modes,
87
+ ...n.modes
88
+ }, s = !!i.session, c = !!i.stream;
89
+ return {
90
+ modes: {
91
+ submit: i.submit !== !1,
92
+ stream: c,
93
+ session: s
94
+ },
95
+ safety: {
96
+ ...a.safety,
97
+ ...r.safety,
98
+ ...n.safety
99
+ },
100
+ limits: {
101
+ ...a.limits,
102
+ ...r.limits,
103
+ ...n.limits
104
+ },
105
+ auth: { kinds: o([...r.auth?.kinds ?? [], ...n.auth?.kinds ?? a.auth.kinds]) },
106
+ delivery: {
107
+ mode: n.delivery?.mode ?? r.delivery?.mode ?? (s ? "session" : c ? "stream" : "request-response"),
108
+ consistency: n.delivery?.consistency ?? r.delivery?.consistency ?? a.delivery.consistency,
109
+ backpressure: n.delivery?.backpressure ?? r.delivery?.backpressure ?? a.delivery.backpressure
110
+ }
111
+ };
112
+ }, c = (e, t) => {
113
+ if (!(!e && !t)) return s({
114
+ modes: {
115
+ submit: e?.modes.submit !== !1 && t?.modes.submit !== !1,
116
+ stream: !!(e?.modes.stream || t?.modes.stream),
117
+ session: !!(e?.modes.session || t?.modes.session)
118
+ },
119
+ safety: {
120
+ idempotent: !!(e?.safety.idempotent && t?.safety.idempotent),
121
+ retrySafe: !!(e?.safety.retrySafe && t?.safety.retrySafe),
122
+ cacheable: !!(e?.safety.cacheable && t?.safety.cacheable),
123
+ hedgeSafe: !!(e?.safety.hedgeSafe && t?.safety.hedgeSafe)
124
+ },
125
+ limits: {
126
+ maxPayloadBytes: e?.limits.maxPayloadBytes === void 0 ? t?.limits.maxPayloadBytes : t?.limits.maxPayloadBytes === void 0 ? e.limits.maxPayloadBytes : Math.min(e.limits.maxPayloadBytes, t.limits.maxPayloadBytes),
127
+ maxBufferedMessages: e?.limits.maxBufferedMessages === void 0 ? t?.limits.maxBufferedMessages : t?.limits.maxBufferedMessages === void 0 ? e.limits.maxBufferedMessages : Math.min(e.limits.maxBufferedMessages, t.limits.maxBufferedMessages)
128
+ },
129
+ auth: { kinds: o([...e?.auth.kinds ?? [], ...t?.auth.kinds ?? []]) },
130
+ delivery: {
131
+ mode: t?.delivery.mode ?? e?.delivery.mode ?? a.delivery.mode,
132
+ consistency: t?.delivery.consistency ?? e?.delivery.consistency ?? a.delivery.consistency,
133
+ backpressure: t?.delivery.backpressure ?? e?.delivery.backpressure ?? a.delivery.backpressure
134
+ }
135
+ }, { modes: {
136
+ submit: e?.modes.submit !== !1 && t?.modes.submit !== !1,
137
+ stream: !!(e?.modes.stream || t?.modes.stream),
138
+ session: !!(e?.modes.session || t?.modes.session)
139
+ } });
140
+ }, l = (e) => s(e.capabilities, {
141
+ modes: {
142
+ submit: !0,
143
+ stream: e.stream !== void 0,
144
+ session: e.openSession !== void 0
145
+ },
146
+ delivery: {
147
+ mode: e.openSession ? "session" : e.stream ? "stream" : "request-response",
148
+ backpressure: e.openSession ? "bounded-buffer" : "none",
149
+ consistency: "unknown"
150
+ }
151
+ }), u = (e) => e ? s(JSON.parse(JSON.stringify(e))) : void 0, d = (e, r, i) => {
152
+ let a = l(e);
153
+ if (r.modes) {
154
+ for (let [e, o] of Object.entries(r.modes)) if (o !== void 0 && a.modes[e] !== o) throw new n(`${i}: transport does not satisfy mode "${e}=${o}".`, {
155
+ code: t.CAPABILITY_MISMATCH,
156
+ retryable: !1,
157
+ details: {
158
+ requirement: r,
159
+ capabilities: a
160
+ }
161
+ });
162
+ }
163
+ if (r.safety) {
164
+ for (let [e, o] of Object.entries(r.safety)) if (o !== void 0 && a.safety[e] !== o) throw new n(`${i}: transport does not satisfy safety "${e}=${o}".`, {
165
+ code: t.CAPABILITY_MISMATCH,
166
+ retryable: !1,
167
+ details: {
168
+ requirement: r,
169
+ capabilities: a
170
+ }
171
+ });
172
+ }
173
+ if (r.authKinds?.length) {
174
+ let e = new Set(a.auth.kinds);
175
+ for (let o of r.authKinds) if (!e.has(o)) throw new n(`${i}: transport does not support auth kind "${o}".`, {
176
+ code: t.CAPABILITY_MISMATCH,
177
+ retryable: !1,
178
+ details: {
179
+ requirement: r,
180
+ capabilities: a
181
+ }
182
+ });
183
+ }
184
+ let o = r.maxPayloadBytes;
185
+ if (o !== void 0 && a.limits.maxPayloadBytes !== void 0 && a.limits.maxPayloadBytes < o) throw new n(`${i}: transport maxPayloadBytes ${a.limits.maxPayloadBytes} is below required ${o}.`, {
186
+ code: t.CAPABILITY_MISMATCH,
187
+ retryable: !1,
188
+ details: {
189
+ requirement: r,
190
+ capabilities: a
191
+ }
192
+ });
193
+ }, f = (e, r, i) => {
194
+ let a = l(e), o = a.limits.maxPayloadBytes, s = r.metadata?.estimatedPayloadBytes;
195
+ if (o !== void 0 && s !== void 0 && s > o) throw new n(`${i}: estimated payload ${s} exceeds maxPayloadBytes ${o}.`, {
196
+ code: t.PAYLOAD_TOO_LARGE,
197
+ retryable: !1,
198
+ details: {
199
+ estimatedPayloadBytes: s,
200
+ maxPayloadBytes: o,
201
+ capabilities: a
202
+ }
203
+ });
204
+ }, p = "__policy", m = (e) => ({ ...e }), h = (e) => {
205
+ let t = e.transport?.attributes?.[p], n = e.transport?.policy ?? (typeof t == "object" && t ? t : void 0) ?? {
206
+ scope: e.backend ?? "transport",
207
+ backend: e.backend
208
+ };
209
+ return {
210
+ scope: n.scope || e.backend || "transport",
211
+ source: n.source,
212
+ backend: n.backend ?? e.backend,
213
+ requestId: n.requestId
214
+ };
215
+ }, g = (e, t) => {
216
+ let n = h(e), r = {
217
+ ...n,
218
+ ...t,
219
+ scope: t.scope ?? n.scope,
220
+ backend: t.backend ?? n.backend ?? e.backend
221
+ }, i = {
222
+ ...e.transport,
223
+ policy: r,
224
+ attributes: {
225
+ ...m(e.transport?.attributes),
226
+ [p]: r
227
+ }
228
+ };
229
+ return {
230
+ ...e,
231
+ transport: i
232
+ };
233
+ }, _ = (e) => typeof e == "object" && !!e && !Array.isArray(e), v = (e) => {
234
+ if (typeof e != "object" || !e) return e;
235
+ if (e instanceof Date) return new Date(e.getTime());
236
+ if (e instanceof Map) return new Map(Array.from(e.entries(), ([e, t]) => [v(e), v(t)]));
237
+ if (e instanceof Set) return new Set(Array.from(e, (e) => v(e)));
238
+ if (Array.isArray(e)) return e.map((e) => v(e));
239
+ if (_(e)) {
240
+ let t = {};
241
+ for (let n of Object.keys(e)) t[n] = v(e[n]);
242
+ return t;
243
+ }
244
+ return e;
245
+ }, y = (e) => typeof e == "object" && !!e && !Array.isArray(e), b = (e) => e instanceof Error && (e.name === "AbortError" || e.message.toLowerCase().includes("aborted")), x = (e, t, n) => {
246
+ let r = { submit: e };
247
+ return t && (r.stream = t), n?.openSession && (r.openSession = n.openSession), r.capabilities = s(n?.capabilities, {
248
+ modes: {
249
+ submit: !0,
250
+ stream: !!t,
251
+ session: !!n?.openSession
252
+ },
253
+ delivery: {
254
+ mode: n?.openSession ? "session" : t ? "stream" : "request-response",
255
+ consistency: "unknown",
256
+ backpressure: n?.openSession ? "bounded-buffer" : "none"
257
+ }
258
+ }), r;
259
+ }, S = () => {
260
+ let e = [], t = [], n = !1;
261
+ return {
262
+ push(r) {
263
+ if (n) return;
264
+ let i = t.shift();
265
+ if (i) {
266
+ i({
267
+ value: r,
268
+ done: !1
269
+ });
270
+ return;
271
+ }
272
+ e.push(r);
273
+ },
274
+ close() {
275
+ if (!n) for (n = !0; t.length > 0;) t.shift()?.({
276
+ value: void 0,
277
+ done: !0
278
+ });
279
+ },
280
+ [Symbol.asyncIterator]() {
281
+ return { next: () => {
282
+ let r = e.shift();
283
+ return r === void 0 ? n ? Promise.resolve({
284
+ value: void 0,
285
+ done: !0
286
+ }) : new Promise((e) => {
287
+ t.push(e);
288
+ }) : Promise.resolve({
289
+ value: r,
290
+ done: !1
291
+ });
292
+ } };
293
+ }
294
+ };
295
+ }, C = async (e, t) => {
296
+ if (d(e, { modes: { stream: !0 } }, "resolveStream"), f(e, t, "resolveStream"), !e.stream) throw new n(i.missingStream("Transport"), {
297
+ code: "STREAM_UNSUPPORTED",
298
+ retryable: !1
299
+ });
300
+ return e.stream(t);
301
+ }, w = (e, t) => {
302
+ let n = new Headers(e);
303
+ if (!t) return n;
304
+ for (let [e, r] of new Headers(t).entries()) n.set(e, r);
305
+ return n;
306
+ }, T = (e, t) => t.transport?.credentials ?? e, E = (e, t) => g({
307
+ ...e,
308
+ transport: {
309
+ ...e.transport,
310
+ ...t,
311
+ headers: w(e.transport?.headers, t.headers),
312
+ attributes: {
313
+ ...e.transport?.attributes,
314
+ ...t.attributes
315
+ },
316
+ policy: t.policy ?? e.transport?.policy
317
+ }
318
+ }, t.policy ?? {}), D = (e) => g(e, h(e)), O = (e, t, n, r) => {
319
+ t && d(n, t, r);
320
+ let i = D(e);
321
+ return f(n, i, r), i;
322
+ }, k = (e, t, n) => {
323
+ let r = D(e);
324
+ return f(t, r, n), r;
325
+ }, A = (e, t) => h(e).scope || t, ee = (e, t, n) => g(e, {
326
+ scope: t,
327
+ source: n?.source,
328
+ backend: n?.backend,
329
+ requestId: n?.requestId
330
+ }), j = (e) => e instanceof Error && e.message ? e.message : String(e), M = (e, t = {}) => e instanceof n ? new n(e.message, {
331
+ cause: e.cause,
332
+ source: t.source ?? e.source,
333
+ status: t.status ?? e.status,
334
+ code: t.code ?? e.code,
335
+ retryable: t.retryable ?? e.retryable,
336
+ response: t.response ?? e.response,
337
+ details: t.details ?? e.details
338
+ }) : new n(j(e), {
339
+ cause: e,
340
+ ...t
341
+ }), te = (e, r = !1) => {
342
+ if (!r) {
343
+ try {
344
+ d(e, { safety: { retrySafe: !0 } }, "withRetry");
345
+ return;
346
+ } catch {}
347
+ throw new n(i.retryUnsafe, {
348
+ code: t.CAPABILITY_MISMATCH,
349
+ retryable: !1,
350
+ details: { capabilities: l(e) }
351
+ });
352
+ }
353
+ }, ne = (e, r = !1) => {
354
+ if (!r) {
355
+ try {
356
+ d(e, { safety: { cacheable: !0 } }, "withCache");
357
+ return;
358
+ } catch {}
359
+ throw new n(i.cacheUnsafe, {
360
+ code: t.CAPABILITY_MISMATCH,
361
+ retryable: !1,
362
+ details: { capabilities: l(e) }
363
+ });
364
+ }
365
+ }, re = (e, r = !1) => {
366
+ if (!r) {
367
+ try {
368
+ d(e, { safety: { hedgeSafe: !0 } }, "createHedgedTransport");
369
+ return;
370
+ } catch {}
371
+ throw new n(i.hedgedUnsafe, {
372
+ code: t.CAPABILITY_MISMATCH,
373
+ retryable: !1,
374
+ details: { capabilities: l(e) }
375
+ });
376
+ }
377
+ }, ie = (e) => JSON.stringify({
378
+ backend: e.backend,
379
+ serializedValues: e.serializedValues,
380
+ reports: e.reports.map((e) => e.id)
381
+ }), N = (e) => y(e) ? {
382
+ reports: y(e.reports) ? e.reports : void 0,
383
+ meta: y(e.meta) ? e.meta : void 0,
384
+ raw: "raw" in e ? e.raw : e
385
+ } : { raw: e }, P = (e) => y(e) && typeof e.type == "string" ? e : {
386
+ type: "chunk",
387
+ chunk: v(e)
388
+ }, F = (e, t) => {
389
+ let n = Array.isArray(e) ? e.map((e, t) => ({
390
+ id: void 0,
391
+ index: t,
392
+ label: `transport[${t}]`,
393
+ transport: e
394
+ })) : Object.entries(e).map(([e, t], n) => ({
395
+ id: e,
396
+ index: n,
397
+ label: e,
398
+ transport: t
399
+ }));
400
+ if (n.length === 0) throw TypeError(i.emptyComposedTransport(t));
401
+ return n;
402
+ }, I = (e, t) => {
403
+ let r = t.map(({ label: e, error: t }) => {
404
+ let n = M(t, { source: e });
405
+ return {
406
+ source: e,
407
+ message: n.message,
408
+ status: n.status,
409
+ code: n.code,
410
+ retryable: n.retryable,
411
+ details: n.details
412
+ };
413
+ });
414
+ return new n(e, {
415
+ cause: AggregateError(t.map(({ error: e, label: t }) => e instanceof Error ? e : /* @__PURE__ */ Error(`${t}: ${String(e)}`)), e),
416
+ code: "COMPOSITE_TRANSPORT_ERROR",
417
+ retryable: r.every((e) => e.retryable !== !1),
418
+ details: { failures: r }
419
+ });
420
+ }, L = (e) => {
421
+ let t = new AbortController(), n = [];
422
+ for (let r of e) {
423
+ if (!r) continue;
424
+ if (r.aborted) return t.abort(r.reason), {
425
+ signal: t.signal,
426
+ cleanup: () => {}
427
+ };
428
+ let e = () => t.abort(r.reason);
429
+ r.addEventListener("abort", e, { once: !0 }), n.push(() => r.removeEventListener("abort", e));
430
+ }
431
+ return {
432
+ signal: t.signal,
433
+ cleanup: () => {
434
+ for (let e of n) e();
435
+ }
436
+ };
437
+ }, R = (e, t) => new Promise((n, r) => {
438
+ if (t?.aborted) {
439
+ r(t.reason);
440
+ return;
441
+ }
442
+ let i = setTimeout(() => {
443
+ t?.removeEventListener("abort", a), n();
444
+ }, e), a = () => {
445
+ clearTimeout(i), r(t?.reason);
446
+ };
447
+ t?.addEventListener("abort", a, { once: !0 });
448
+ }), z = (e, t) => ({
449
+ ...e,
450
+ meta: {
451
+ ...e.meta,
452
+ ...t
453
+ }
454
+ }), ae = (e) => {
455
+ switch (e.type) {
456
+ case "progress": return e;
457
+ case "meta": return e;
458
+ case "result": return e;
459
+ case "error": return e;
460
+ case "message": return {
461
+ type: "chunk",
462
+ chunk: e.message,
463
+ meta: {
464
+ ...e.meta,
465
+ session: !0,
466
+ messageType: e.message.type
467
+ }
468
+ };
469
+ case "close": return {
470
+ type: "meta",
471
+ meta: {
472
+ ...e.meta,
473
+ sessionClosed: !0,
474
+ reason: e.reason
475
+ }
476
+ };
477
+ }
478
+ }, oe = async function* (e, t) {
479
+ yield {
480
+ type: "result",
481
+ result: await e.submit(t)
482
+ };
483
+ }, B = (e, t) => e.stream ? e.stream(t) : oe(e, t), V = async (e, t) => typeof e == "function" ? e(t) : e, se = async function* (e) {
484
+ let t = e.getReader(), n = new TextDecoder(), r = "";
485
+ for (;;) {
486
+ let { value: e, done: i } = await t.read();
487
+ if (i) break;
488
+ for (r += n.decode(e, { stream: !0 });;) {
489
+ let e = r.indexOf("\n\n");
490
+ if (e === -1) break;
491
+ let t = r.slice(0, e);
492
+ r = r.slice(e + 2);
493
+ let n, i, a, o = [];
494
+ for (let e of t.split(/\r?\n/)) {
495
+ if (!e || e.startsWith(":")) continue;
496
+ let t = e.indexOf(":"), r = t === -1 ? e : e.slice(0, t), s = t === -1 ? "" : e.slice(t + 1).trimStart();
497
+ r === "id" ? n = s : r === "event" ? i = s : r === "retry" ? a = Number.parseInt(s, 10) : r === "data" && o.push(s);
498
+ }
499
+ yield {
500
+ id: n,
501
+ event: i,
502
+ data: o.join("\n"),
503
+ retry: Number.isFinite(a) ? a : void 0
504
+ };
505
+ }
506
+ }
507
+ r.trim() && (yield { data: r.trim() });
508
+ }, ce = async (e) => {
509
+ let t = e.data;
510
+ if (e.data) try {
511
+ t = JSON.parse(e.data);
512
+ } catch {
513
+ t = e.data;
514
+ }
515
+ return e.event === "progress" && y(t) ? {
516
+ type: "progress",
517
+ loaded: typeof t.loaded == "number" ? t.loaded : void 0,
518
+ total: typeof t.total == "number" ? t.total : void 0,
519
+ message: typeof t.message == "string" ? t.message : void 0,
520
+ meta: {
521
+ event: e.event,
522
+ id: e.id,
523
+ retry: e.retry
524
+ }
525
+ } : e.event === "result" || y(t) && t.type === "result" ? {
526
+ type: "result",
527
+ result: y(t) && "result" in t ? t.result : t,
528
+ meta: {
529
+ event: e.event,
530
+ id: e.id,
531
+ retry: e.retry
532
+ }
533
+ } : e.event === "error" || y(t) && t.type === "error" ? {
534
+ type: "error",
535
+ error: y(t) && "error" in t ? t.error : t,
536
+ meta: {
537
+ event: e.event,
538
+ id: e.id,
539
+ retry: e.retry
540
+ }
541
+ } : y(t) && typeof t.type == "string" ? t : {
542
+ type: "chunk",
543
+ chunk: t,
544
+ meta: {
545
+ event: e.event,
546
+ id: e.id,
547
+ retry: e.retry
548
+ }
549
+ };
550
+ }, H = (e) => ({ [r.requestBodyKey]: e.serializedValues }), U = async (e) => {
551
+ if (e.status === 204) return null;
552
+ if ((e.headers.get("content-type") ?? "").includes("application/json")) return e.json();
553
+ let t = await e.text();
554
+ if (!t) return null;
555
+ try {
556
+ return JSON.parse(t);
557
+ } catch {
558
+ return t;
559
+ }
560
+ }, W = (e, t, n) => {
561
+ if (n && typeof n == "object" && "message" in n) {
562
+ let e = n.message;
563
+ if (typeof e == "string" && e.trim()) return e;
564
+ }
565
+ return i.requestFailed(e, t);
566
+ }, G = (e) => {
567
+ if (!(!y(e) || typeof e.code != "string" || !e.code.trim())) return e.code;
568
+ }, le = (e) => {
569
+ let t = (e ?? r.method).toUpperCase();
570
+ if (t === "POST" || t === "PUT" || t === "PATCH" || t === "DELETE") return t;
571
+ throw TypeError(i.unsupportedMethod(t));
572
+ }, ue = async (e) => typeof e == "function" ? e() : e, K = async (e, t, r, i) => {
573
+ let a = [];
574
+ for (let n of t) {
575
+ if (i && !await i(n, e)) continue;
576
+ let t = typeof r == "function" ? await r(e, n) : r[n];
577
+ (t ?? 0) > 0 && a.push({
578
+ id: n,
579
+ weight: t ?? 0
580
+ });
581
+ }
582
+ if (a.length === 0) throw new n("No eligible transport available for weighted routing.", {
583
+ code: "NO_ELIGIBLE_TRANSPORT",
584
+ retryable: !1
585
+ });
586
+ let o = a.reduce((e, t) => e + t.weight, 0), s = Math.random() * o;
587
+ for (let e of a) if (s -= e.weight, s <= 0) return e.id;
588
+ return a.at(-1).id;
589
+ }, de = (e, t) => {
590
+ let n = { transports: e.some((e) => e.id !== void 0) ? Object.fromEntries(e.map((e) => [e.id ?? String(e.index), e.response.meta ?? {}])) : e.map((e) => e.response.meta ?? {}) };
591
+ return t.length > 0 && (n.failures = t.map((e) => ({
592
+ id: e.id ?? String(e.index),
593
+ error: e.error instanceof Error ? e.error.message : String(e.error)
594
+ }))), n;
595
+ }, fe = (e) => e.some((e) => e.id !== void 0) ? Object.fromEntries(e.map((e) => [e.id ?? String(e.index), e.response.raw])) : e.map((e) => e.response.raw), q = (e, t) => {
596
+ let n = {}, r = /* @__PURE__ */ new Map();
597
+ for (let t of e) for (let [e, a] of Object.entries(t.response.reports ?? {})) {
598
+ let o = t.id ?? `transport[${t.index}]`, s = r.get(e);
599
+ if (s) throw Error(i.duplicateFanoutReport(e, s, o));
600
+ r.set(e, o), n[e] = a;
601
+ }
602
+ return {
603
+ reports: n,
604
+ meta: de(e, t),
605
+ raw: fe(e)
606
+ };
607
+ }, pe = (e) => {
608
+ let a = le(e.method), o = e.source ?? String(e.endpoint), c = e.stream, l = x(async (s) => {
609
+ s = k(s, l, "createJsonTransport");
610
+ let c = e.fetch ?? globalThis.fetch;
611
+ if (typeof c != "function") throw new n(i.missingFetch, {
612
+ source: o,
613
+ code: "FETCH_MISSING",
614
+ retryable: !1
615
+ });
616
+ let u = w(typeof e.headers == "function" ? await e.headers() : e.headers, s.transport?.headers), d = typeof e.body == "function" ? e.body(s) : JSON.stringify(H(s));
617
+ u.has("accept") || u.set("accept", r.acceptHeader), typeof e.body != "function" && !u.has("content-type") && u.set("content-type", r.contentTypeHeader);
618
+ let f;
619
+ try {
620
+ f = await c(String(e.endpoint), {
621
+ method: a,
622
+ headers: u,
623
+ credentials: T(e.credentials, s),
624
+ body: d,
625
+ signal: s.signal
626
+ });
627
+ } catch (e) {
628
+ throw M(e, {
629
+ source: o,
630
+ code: b(e) ? t.ABORTED : "TRANSPORT_REQUEST_FAILED",
631
+ retryable: !b(e)
632
+ });
633
+ }
634
+ let p = e.parse ?? U;
635
+ if (!f.ok) {
636
+ let e = null;
637
+ try {
638
+ e = await p(f);
639
+ } catch {
640
+ e = null;
641
+ }
642
+ throw new n(W(f.status, f.statusText, e), {
643
+ source: o,
644
+ status: f.status,
645
+ code: G(e) ?? (f.status >= 500 ? t.UPSTREAM_5XX : void 0),
646
+ retryable: f.status >= 500 || f.status === 429,
647
+ response: e
648
+ });
649
+ }
650
+ try {
651
+ return await p(f);
652
+ } catch (e) {
653
+ throw M(e, {
654
+ source: o,
655
+ code: t.PARSE_FAILED,
656
+ retryable: !1
657
+ });
658
+ }
659
+ }, c ? async (s) => {
660
+ s = O(s, { modes: { stream: !0 } }, l, "createJsonTransport.stream");
661
+ let u = e.fetch ?? globalThis.fetch;
662
+ if (typeof u != "function") throw new n(i.missingFetch, {
663
+ source: o,
664
+ code: "FETCH_MISSING",
665
+ retryable: !1
666
+ });
667
+ let d = w(typeof e.headers == "function" ? await e.headers() : e.headers, s.transport?.headers), f = typeof e.body == "function" ? e.body(s) : JSON.stringify(H(s));
668
+ d.has("accept") || d.set("accept", r.acceptHeader), typeof e.body != "function" && !d.has("content-type") && d.set("content-type", r.contentTypeHeader);
669
+ let p;
670
+ try {
671
+ p = await u(String(e.endpoint), {
672
+ method: a,
673
+ headers: d,
674
+ credentials: T(e.credentials, s),
675
+ body: f,
676
+ signal: s.signal
677
+ });
678
+ } catch (e) {
679
+ throw M(e, {
680
+ source: o,
681
+ code: b(e) ? t.ABORTED : "TRANSPORT_REQUEST_FAILED",
682
+ retryable: !b(e)
683
+ });
684
+ }
685
+ if (!p.ok) {
686
+ let r = e.parse ?? U, i = null;
687
+ try {
688
+ i = await r(p);
689
+ } catch {
690
+ i = null;
691
+ }
692
+ throw new n(W(p.status, p.statusText, i), {
693
+ source: o,
694
+ status: p.status,
695
+ code: G(i) ?? (p.status >= 500 ? t.UPSTREAM_5XX : void 0),
696
+ retryable: p.status >= 500 || p.status === 429,
697
+ response: i
698
+ });
699
+ }
700
+ return c(p, s);
701
+ } : void 0, { capabilities: s(void 0, {
702
+ modes: {
703
+ submit: !0,
704
+ stream: !!c,
705
+ session: !1
706
+ },
707
+ safety: {
708
+ idempotent: a === "PUT" || a === "DELETE",
709
+ retrySafe: a === "PUT" || a === "DELETE",
710
+ cacheable: !1,
711
+ hedgeSafe: a === "PUT" || a === "DELETE"
712
+ },
713
+ auth: { kinds: [
714
+ "none",
715
+ "api-key",
716
+ "bearer",
717
+ "transport-context",
718
+ "custom"
719
+ ] },
720
+ delivery: {
721
+ mode: c ? "stream" : "request-response",
722
+ consistency: "best-effort",
723
+ backpressure: "consumer-pull"
724
+ }
725
+ }) });
726
+ return l;
727
+ }, me = (e) => {
728
+ let a = e.source ?? String(e.endpoint), o = x(async (s) => {
729
+ s = k(s, o, "createGraphqlTransport");
730
+ let c = e.fetch ?? globalThis.fetch;
731
+ if (typeof c != "function") throw new n(i.missingFetch, {
732
+ source: a,
733
+ code: "FETCH_MISSING",
734
+ retryable: !1
735
+ });
736
+ let l = w(typeof e.headers == "function" ? await e.headers() : e.headers, s.transport?.headers);
737
+ l.has("accept") || l.set("accept", r.acceptHeader), l.has("content-type") || l.set("content-type", r.contentTypeHeader);
738
+ let u = await V(e.query, s), d = e.operationName ? await V(e.operationName, s) : void 0, f = e.variables ? await e.variables(s) : s.serializedValues, p = await c(String(e.endpoint), {
739
+ method: "POST",
740
+ headers: l,
741
+ credentials: T(e.credentials, s),
742
+ body: JSON.stringify({
743
+ query: u,
744
+ variables: f,
745
+ operationName: d
746
+ }),
747
+ signal: s.signal
748
+ }), m = await (e.parse ?? U)(p);
749
+ if (!p.ok) throw new n(W(p.status, p.statusText, m), {
750
+ source: a,
751
+ status: p.status,
752
+ code: G(m) ?? (p.status >= 500 ? t.UPSTREAM_5XX : void 0),
753
+ retryable: p.status >= 500,
754
+ response: m
755
+ });
756
+ if (y(m) && Array.isArray(m.errors) && m.errors.length > 0) throw new n(String(m.errors.map((e) => y(e) && typeof e.message == "string" ? e.message : String(e)).join(", ")), {
757
+ source: a,
758
+ code: t.GRAPHQL_ERROR,
759
+ retryable: !1,
760
+ response: m
761
+ });
762
+ if (e.resolveResult) return e.resolveResult(m, s);
763
+ let h = e.resultPath ?? "data";
764
+ if (h === "data") return y(m) && "data" in m ? m.data : m;
765
+ let g = h.split(".").slice(1), _ = y(m) ? m.data : void 0;
766
+ for (let e of g) {
767
+ if (!y(_) || !(e in _)) {
768
+ _ = void 0;
769
+ break;
770
+ }
771
+ _ = _[e];
772
+ }
773
+ return _;
774
+ }, void 0, { capabilities: s(void 0, {
775
+ modes: {
776
+ submit: !0,
777
+ stream: !1,
778
+ session: !1
779
+ },
780
+ safety: {
781
+ idempotent: !1,
782
+ retrySafe: !1,
783
+ cacheable: !0,
784
+ hedgeSafe: !1
785
+ },
786
+ auth: { kinds: [
787
+ "none",
788
+ "api-key",
789
+ "bearer",
790
+ "transport-context",
791
+ "custom"
792
+ ] },
793
+ delivery: {
794
+ mode: "request-response",
795
+ consistency: "best-effort",
796
+ backpressure: "none"
797
+ }
798
+ }) });
799
+ return o;
800
+ }, he = (e) => {
801
+ let a = e.source ?? String(e.endpoint), o = e.method ?? "POST", c = async function* (s) {
802
+ s = k(s, l, "createSseTransport");
803
+ let c = e.fetch ?? globalThis.fetch;
804
+ if (typeof c != "function") throw new n(i.missingFetch, {
805
+ source: a,
806
+ code: "FETCH_MISSING",
807
+ retryable: !1
808
+ });
809
+ let u = w(typeof e.headers == "function" ? await e.headers() : e.headers, s.transport?.headers);
810
+ u.set("accept", "text/event-stream"), u.has("content-type") || u.set("content-type", r.contentTypeHeader);
811
+ let d = typeof e.body == "function" ? e.body(s) : JSON.stringify(H(s)), f = await c(String(e.endpoint), {
812
+ method: o,
813
+ headers: u,
814
+ credentials: T(e.credentials, s),
815
+ body: d,
816
+ signal: s.signal
817
+ });
818
+ if (!f.ok) throw new n(i.requestFailed(f.status, f.statusText), {
819
+ source: a,
820
+ status: f.status,
821
+ code: f.status >= 500 ? t.UPSTREAM_5XX : void 0,
822
+ retryable: f.status >= 500
823
+ });
824
+ if (!f.body) throw new n(i.missingStream(a), {
825
+ source: a,
826
+ code: "STREAM_BODY_MISSING",
827
+ retryable: !1
828
+ });
829
+ let p = e.decodeEvent ?? ce;
830
+ for await (let r of se(f.body)) try {
831
+ let t = await p(r, s);
832
+ yield t, e.resultEvent && (typeof e.resultEvent == "string" && r.event === e.resultEvent || typeof e.resultEvent == "function" && e.resultEvent(r)) && (yield {
833
+ type: "result",
834
+ result: t.type === "chunk" ? t.chunk : t.type === "meta" ? t.meta : t.type === "result" ? t.result : t,
835
+ meta: { event: r.event }
836
+ });
837
+ } catch (e) {
838
+ throw new n(i.sseInvalidEvent, {
839
+ source: a,
840
+ cause: e,
841
+ code: t.PARSE_FAILED,
842
+ retryable: !1
843
+ });
844
+ }
845
+ }, l = x(async (e) => {
846
+ e = k(e, l, "createSseTransport.submit");
847
+ let r, i = !1;
848
+ for await (let t of c(e)) if (t.type === "result") r = t.result, i = !0;
849
+ else if (t.type === "error") throw t.error;
850
+ if (!i) throw new n("createSseTransport: stream completed without a result event.", {
851
+ source: a,
852
+ code: t.SESSION_RESULT_MISSING,
853
+ retryable: !1
854
+ });
855
+ return r;
856
+ }, async function* (e) {
857
+ e = O(e, { modes: { stream: !0 } }, l, "createSseTransport.stream");
858
+ for await (let t of c(e)) yield t;
859
+ }, { capabilities: s(void 0, {
860
+ modes: {
861
+ submit: !!e.resultEvent,
862
+ stream: !0,
863
+ session: !1
864
+ },
865
+ safety: {
866
+ idempotent: o === "PUT",
867
+ retrySafe: o === "PUT",
868
+ cacheable: !1,
869
+ hedgeSafe: o === "PUT"
870
+ },
871
+ limits: { maxPayloadBytes: e.maxPayloadBytes },
872
+ auth: { kinds: [
873
+ "none",
874
+ "api-key",
875
+ "bearer",
876
+ "transport-context",
877
+ "custom"
878
+ ] },
879
+ delivery: {
880
+ mode: "stream",
881
+ consistency: "best-effort",
882
+ backpressure: "consumer-pull"
883
+ }
884
+ }) });
885
+ return l;
886
+ }, J = (e) => x(e.submit ?? (async (r) => {
887
+ let i = await e.openSession(r);
888
+ try {
889
+ for await (let e of await i.receive()) {
890
+ if (e.type === "result") return e.result;
891
+ if (e.type === "error") throw e.error;
892
+ }
893
+ throw new n("createSessionTransport: session closed without a result.", {
894
+ code: t.SESSION_RESULT_MISSING,
895
+ retryable: !1
896
+ });
897
+ } finally {
898
+ await i.close("submit-complete");
899
+ }
900
+ }), e.stream ?? async function* (t) {
901
+ let n = await e.openSession(t);
902
+ try {
903
+ yield {
904
+ type: "meta",
905
+ meta: {
906
+ sessionOpen: !0,
907
+ bufferedMessages: n.capabilities?.bufferedMessages
908
+ }
909
+ };
910
+ for await (let e of await n.receive()) {
911
+ let t = ae(e);
912
+ t && (yield t);
913
+ }
914
+ } finally {
915
+ yield {
916
+ type: "meta",
917
+ meta: { sessionClosing: !0 }
918
+ }, await n.close("stream-complete");
919
+ }
920
+ }, {
921
+ openSession: e.openSession,
922
+ capabilities: c(s(e.capabilities), s(void 0, {
923
+ modes: {
924
+ submit: !0,
925
+ stream: !0,
926
+ session: !0
927
+ },
928
+ delivery: {
929
+ mode: "session",
930
+ consistency: "unknown",
931
+ backpressure: "bounded-buffer"
932
+ }
933
+ }))
934
+ }), ge = (e) => {
935
+ let r = e.source ?? "websocket";
936
+ return J({
937
+ async openSession(a) {
938
+ let o = e.WebSocket ?? globalThis.WebSocket;
939
+ if (typeof o != "function") throw new n(i.websocketMissing, {
940
+ source: r,
941
+ code: "WEBSOCKET_MISSING",
942
+ retryable: !1
943
+ });
944
+ let s = e.url instanceof Function ? await e.url(a) : e.url, c = typeof e.protocols == "function" ? await e.protocols(a) : e.protocols, l = e.serializeMessage ?? ((e) => JSON.stringify(e)), u = e.deserializeMessage ?? (async (e) => {
945
+ if (typeof e == "string") try {
946
+ return JSON.parse(e);
947
+ } catch {
948
+ return e;
949
+ }
950
+ if (e instanceof Blob) {
951
+ let t = await e.text();
952
+ try {
953
+ return JSON.parse(t);
954
+ } catch {
955
+ return t;
956
+ }
957
+ }
958
+ let t = new TextDecoder().decode(e);
959
+ try {
960
+ return JSON.parse(t);
961
+ } catch {
962
+ return t;
963
+ }
964
+ }), d = new o(String(s), c), f = S(), p = [], m = e.maxBufferedMessages ?? 1e3, h = e.bufferOverflow ?? "error", g = (e) => {
965
+ if (typeof e == "string" || e instanceof Blob || e instanceof ArrayBuffer) {
966
+ d.send(e);
967
+ return;
968
+ }
969
+ d.send(e.buffer);
970
+ }, _ = (e) => {
971
+ if (p.length < m) {
972
+ p.push(e), f.push(e);
973
+ return;
974
+ }
975
+ if (h === "drop-oldest") {
976
+ p.shift(), p.push(e), f.push(e);
977
+ return;
978
+ }
979
+ if (h !== "drop-newest") {
980
+ if (h === "close") {
981
+ d.close(1013, "buffer-overflow");
982
+ return;
983
+ }
984
+ f.push({
985
+ type: "error",
986
+ error: new n("WebSocket session buffer exceeded.", {
987
+ source: r,
988
+ code: t.WEBSOCKET_BUFFER_OVERFLOW,
989
+ retryable: !1
990
+ })
991
+ });
992
+ }
993
+ };
994
+ await new Promise((e, t) => {
995
+ d.addEventListener("open", () => e(), { once: !0 }), d.addEventListener("error", () => t(new n("WebSocket failed to open.", {
996
+ source: r,
997
+ code: "WEBSOCKET_OPEN_FAILED",
998
+ retryable: !0
999
+ })), { once: !0 });
1000
+ }), d.addEventListener("message", (e) => {
1001
+ (async () => {
1002
+ let t = await u(e.data);
1003
+ if (y(t) && typeof t.type == "string") {
1004
+ let e = t;
1005
+ if (e.type === "progress" || e.type === "meta" || e.type === "result" || e.type === "error") {
1006
+ _(t);
1007
+ return;
1008
+ }
1009
+ }
1010
+ _({
1011
+ type: "message",
1012
+ message: {
1013
+ type: "message",
1014
+ data: t
1015
+ },
1016
+ meta: { session: !0 }
1017
+ });
1018
+ })().catch((e) => {
1019
+ f.push({
1020
+ type: "error",
1021
+ error: e
1022
+ });
1023
+ });
1024
+ }), d.addEventListener("close", (e) => {
1025
+ f.push({
1026
+ type: "close",
1027
+ reason: e.reason,
1028
+ meta: {
1029
+ code: e.code,
1030
+ wasClean: e.wasClean
1031
+ }
1032
+ }), f.close();
1033
+ });
1034
+ let v = typeof e.sessionInit == "function" ? await e.sessionInit(a) : e.sessionInit;
1035
+ return v && g(l(v)), {
1036
+ async send(e) {
1037
+ g(l(e));
1038
+ },
1039
+ async *receive() {
1040
+ for await (let e of f) yield e;
1041
+ },
1042
+ async close(t) {
1043
+ d.readyState === d.CLOSING || d.readyState === d.CLOSED || (d.close(1e3, t), (e.closeTimeoutMs ?? 0) > 0 && await R(e.closeTimeoutMs ?? 0));
1044
+ },
1045
+ capabilities: {
1046
+ bufferedMessages: p.length,
1047
+ backpressure: "bounded-buffer"
1048
+ }
1049
+ };
1050
+ },
1051
+ capabilities: s(void 0, {
1052
+ modes: {
1053
+ submit: !0,
1054
+ stream: !0,
1055
+ session: !0
1056
+ },
1057
+ safety: {
1058
+ idempotent: !1,
1059
+ retrySafe: !1,
1060
+ cacheable: !1,
1061
+ hedgeSafe: !1
1062
+ },
1063
+ limits: { maxBufferedMessages: e.maxBufferedMessages },
1064
+ auth: { kinds: [
1065
+ "none",
1066
+ "bearer",
1067
+ "api-key",
1068
+ "transport-context",
1069
+ "custom"
1070
+ ] },
1071
+ delivery: {
1072
+ mode: "session",
1073
+ consistency: "best-effort",
1074
+ backpressure: "bounded-buffer"
1075
+ }
1076
+ })
1077
+ });
1078
+ }, _e = (e) => {
1079
+ if (!e.unary) throw TypeError("createGrpcUnaryTransport requires a unary handler.");
1080
+ let t = x(async (n) => e.unary(k(n, t, "createGrpcUnaryTransport")), void 0, { capabilities: c(s(e.capabilities), s(void 0, {
1081
+ modes: {
1082
+ submit: !0,
1083
+ stream: !1,
1084
+ session: !1
1085
+ },
1086
+ auth: { kinds: [
1087
+ "transport-context",
1088
+ "custom",
1089
+ "bearer",
1090
+ "api-key"
1091
+ ] }
1092
+ })) });
1093
+ return t;
1094
+ }, ve = (e) => {
1095
+ let t = x(async (n) => {
1096
+ n = k(n, t, "createGrpcStreamTransport");
1097
+ let r;
1098
+ for await (let t of await e.stream(n)) {
1099
+ let e = P(t);
1100
+ if (e.type === "result") r = e.result;
1101
+ else if (e.type === "error") throw e.error;
1102
+ }
1103
+ return r;
1104
+ }, async function* (n) {
1105
+ n = O(n, { modes: { stream: !0 } }, t, "createGrpcStreamTransport.stream");
1106
+ let r = await e.stream(n);
1107
+ for await (let e of r) yield P(e);
1108
+ }, { capabilities: c(s(e.capabilities), s(void 0, {
1109
+ modes: {
1110
+ submit: !0,
1111
+ stream: !0,
1112
+ session: !1
1113
+ },
1114
+ auth: { kinds: [
1115
+ "transport-context",
1116
+ "custom",
1117
+ "bearer",
1118
+ "api-key"
1119
+ ] },
1120
+ delivery: {
1121
+ mode: "stream",
1122
+ consistency: "best-effort",
1123
+ backpressure: "consumer-pull"
1124
+ }
1125
+ })) });
1126
+ return t;
1127
+ }, ye = (e) => J({
1128
+ openSession: e.session,
1129
+ capabilities: c(s(e.capabilities), s(void 0, {
1130
+ modes: {
1131
+ submit: !0,
1132
+ stream: !0,
1133
+ session: !0
1134
+ },
1135
+ auth: { kinds: [
1136
+ "transport-context",
1137
+ "custom",
1138
+ "bearer",
1139
+ "api-key"
1140
+ ] },
1141
+ delivery: {
1142
+ mode: "session",
1143
+ consistency: "best-effort",
1144
+ backpressure: "bounded-buffer"
1145
+ }
1146
+ }))
1147
+ }), be = (e) => {
1148
+ if (!e.unary && !e.stream && !e.session) throw TypeError("createGrpcTransport requires at least unary, stream, or session.");
1149
+ let t = x(e.unary ? async (n) => e.unary(k(n, t, "createGrpcTransport")) : async (n) => {
1150
+ n = k(n, t, "createGrpcTransport");
1151
+ let r = null;
1152
+ if (!e.stream) return r;
1153
+ for await (let t of await e.stream(n)) {
1154
+ let e = P(t);
1155
+ if (e.type === "result") r = e.result;
1156
+ else if (e.type === "error") throw e.error;
1157
+ }
1158
+ return r;
1159
+ }, e.stream ? async function* (n) {
1160
+ n = O(n, { modes: { stream: !0 } }, t, "createGrpcTransport.stream");
1161
+ let r = await e.stream(n);
1162
+ for await (let e of r) yield P(e);
1163
+ } : void 0, {
1164
+ openSession: e.session,
1165
+ capabilities: c(s(e.capabilities), s(void 0, {
1166
+ auth: { kinds: [
1167
+ "transport-context",
1168
+ "custom",
1169
+ "bearer",
1170
+ "api-key"
1171
+ ] },
1172
+ modes: {
1173
+ submit: !0,
1174
+ stream: !!e.stream,
1175
+ session: !!e.session
1176
+ },
1177
+ delivery: {
1178
+ mode: e.session ? "session" : e.stream ? "stream" : "request-response",
1179
+ consistency: "best-effort",
1180
+ backpressure: e.session ? "bounded-buffer" : e.stream ? "consumer-pull" : "none"
1181
+ }
1182
+ }))
1183
+ });
1184
+ return t;
1185
+ }, xe = (e, ...t) => t.reduce((e, t) => t(e), e), Y = (e, t) => {
1186
+ let n = e.baseDelay ?? 1e3, r = e.maxDelay ?? 3e4, { backoff: i = "exponential" } = e, a;
1187
+ return a = typeof i == "function" ? i(t) : Array.isArray(i) ? i[Math.min(t, i.length - 1)] ?? n : i === "linear" ? n * (t + 1) : n * 2 ** t, a = Math.min(a, r), e.jitter && (a = Math.floor(a * Math.random())), a;
1188
+ }, Se = (e) => {
1189
+ if (e.attempts < 1) throw TypeError(i.retryInvalidAttempts);
1190
+ return (t) => (te(t, e.allowUnsafeRetry), x(async (n) => {
1191
+ let r;
1192
+ for (let i = 0; i < e.attempts; i++) try {
1193
+ return await t.submit(n);
1194
+ } catch (t) {
1195
+ if (r = t, n.signal?.aborted || e.retryOn && !e.retryOn(t, i)) throw t;
1196
+ i < e.attempts - 1 && await R(Y(e, i), n.signal);
1197
+ }
1198
+ throw r;
1199
+ }, t.stream ? async function* (n) {
1200
+ let r;
1201
+ for (let i = 0; i < e.attempts; i++) {
1202
+ let a = !1;
1203
+ try {
1204
+ let e = await C(t, n);
1205
+ for await (let t of e) a = !0, yield t;
1206
+ return;
1207
+ } catch (t) {
1208
+ if (r = t, n.signal?.aborted || a || e.retryOn && !e.retryOn(t, i)) throw t;
1209
+ i < e.attempts - 1 && await R(Y(e, i), n.signal);
1210
+ }
1211
+ }
1212
+ throw r;
1213
+ } : void 0, {
1214
+ openSession: t.openSession,
1215
+ capabilities: u(l(t))
1216
+ }));
1217
+ }, Ce = (e) => {
1218
+ if (e <= 0 || !Number.isFinite(e)) throw TypeError(i.timeoutInvalid);
1219
+ return (r) => x(async (i) => {
1220
+ let a = new AbortController(), o = setTimeout(() => a.abort(`Transport timed out after ${e}ms`), e), { signal: s, cleanup: c } = L([i.signal, a.signal]);
1221
+ try {
1222
+ return await r.submit({
1223
+ ...i,
1224
+ signal: s
1225
+ });
1226
+ } catch (r) {
1227
+ throw a.signal.aborted && !i.signal?.aborted ? new n(`Transport timed out after ${e}ms`, {
1228
+ cause: r,
1229
+ code: t.TIMEOUT,
1230
+ retryable: !0
1231
+ }) : r;
1232
+ } finally {
1233
+ clearTimeout(o), c();
1234
+ }
1235
+ }, r.stream ? async function* (i) {
1236
+ let a = new AbortController(), o = setTimeout(() => a.abort(`Transport timed out after ${e}ms`), e), { signal: s, cleanup: c } = L([i.signal, a.signal]);
1237
+ try {
1238
+ let e = await C(r, {
1239
+ ...i,
1240
+ signal: s
1241
+ });
1242
+ for await (let t of e) yield t;
1243
+ } catch (r) {
1244
+ throw a.signal.aborted && !i.signal?.aborted ? new n(`Transport timed out after ${e}ms`, {
1245
+ cause: r,
1246
+ code: t.TIMEOUT,
1247
+ retryable: !0
1248
+ }) : r;
1249
+ } finally {
1250
+ clearTimeout(o), c();
1251
+ }
1252
+ } : void 0, {
1253
+ openSession: r.openSession ? async (i) => {
1254
+ let a = new AbortController(), o = setTimeout(() => a.abort(`Transport timed out after ${e}ms`), e), { signal: s, cleanup: c } = L([i.signal, a.signal]);
1255
+ try {
1256
+ let e = await r.openSession({
1257
+ ...i,
1258
+ signal: s
1259
+ });
1260
+ return {
1261
+ send: e.send,
1262
+ receive: e.receive,
1263
+ close: async (t) => {
1264
+ clearTimeout(o), c(), await e.close(t);
1265
+ },
1266
+ capabilities: e.capabilities
1267
+ };
1268
+ } catch (r) {
1269
+ throw clearTimeout(o), c(), a.signal.aborted && !i.signal?.aborted ? new n(`Transport timed out after ${e}ms`, {
1270
+ cause: r,
1271
+ code: t.TIMEOUT,
1272
+ retryable: !0
1273
+ }) : r;
1274
+ }
1275
+ } : void 0,
1276
+ capabilities: u(l(r))
1277
+ });
1278
+ }, X = (e) => (t) => x(async (n) => {
1279
+ let r = await e(n);
1280
+ return t.submit(r);
1281
+ }, t.stream ? async function* (n) {
1282
+ let r = await C(t, await e(n));
1283
+ for await (let e of r) yield e;
1284
+ } : void 0, {
1285
+ openSession: t.openSession ? async (n) => t.openSession(await e(n)) : void 0,
1286
+ capabilities: u(l(t))
1287
+ }), we = (e) => (t) => x(async (n) => e(await t.submit(n), n), t.stream ? async function* (n) {
1288
+ let r = await C(t, n);
1289
+ for await (let t of r) {
1290
+ if (t.type === "result") {
1291
+ yield {
1292
+ type: "result",
1293
+ result: await e(t.result, n)
1294
+ };
1295
+ continue;
1296
+ }
1297
+ yield t;
1298
+ }
1299
+ } : void 0, {
1300
+ openSession: t.openSession,
1301
+ capabilities: u(l(t))
1302
+ }), Te = (e) => (t) => x(async (n) => {
1303
+ e.onRequest?.(n);
1304
+ let r = Date.now();
1305
+ try {
1306
+ let i = await t.submit(n);
1307
+ return e.onResponse?.(i, n, Date.now() - r), i;
1308
+ } catch (t) {
1309
+ throw e.onError?.(t, n, Date.now() - r), t;
1310
+ }
1311
+ }, t.stream ? async function* (n) {
1312
+ e.onRequest?.(n);
1313
+ let r = Date.now();
1314
+ try {
1315
+ let i = await C(t, n);
1316
+ for await (let t of i) e.onStreamEvent?.(t, n), t.type === "result" && e.onResponse?.(t.result, n, Date.now() - r), yield t;
1317
+ } catch (t) {
1318
+ throw e.onError?.(t, n, Date.now() - r), t;
1319
+ }
1320
+ } : void 0, {
1321
+ openSession: t.openSession ? async (n) => (e.onRequest?.(n), t.openSession(n)) : void 0,
1322
+ capabilities: u(l(t))
1323
+ }), Ee = (e) => X(async (t) => {
1324
+ let n = e.traceparent ? await V(e.traceparent, t) : void 0, r = e.baggage ? await V(e.baggage, t) : void 0, i = e.attributes ? await e.attributes(t) : void 0, a = e.requestId ? await V(e.requestId, t) : void 0, o = e.scope ? await V(e.scope, t) : void 0, s = new Headers(t.transport?.headers), c = new Headers(e.preserveExistingHeaders === !1 ? void 0 : s);
1325
+ return n && (!e.preserveExistingHeaders || !c.has("traceparent")) && c.set("traceparent", n), r && (!e.preserveExistingHeaders || !c.has("baggage")) && c.set("baggage", r), ee(E(t, {
1326
+ headers: c,
1327
+ attributes: {
1328
+ ...i,
1329
+ traceparent: n,
1330
+ baggage: r,
1331
+ requestId: a
1332
+ }
1333
+ }), o ?? A(t, "transport"), {
1334
+ source: h(t).source,
1335
+ backend: t.backend,
1336
+ requestId: a
1337
+ });
1338
+ }), De = (e) => (t) => x(async (n) => {
1339
+ n = k(n, t, "withMetrics");
1340
+ let r = A(n, "transport");
1341
+ e.emit({
1342
+ kind: "request-start",
1343
+ request: n,
1344
+ scope: r
1345
+ });
1346
+ let i = Date.now();
1347
+ try {
1348
+ let a = await t.submit(n);
1349
+ return e.emit({
1350
+ kind: "request-success",
1351
+ request: n,
1352
+ scope: r,
1353
+ durationMs: Date.now() - i,
1354
+ meta: { response: a }
1355
+ }), a;
1356
+ } catch (t) {
1357
+ throw e.emit({
1358
+ kind: "request-error",
1359
+ request: n,
1360
+ scope: r,
1361
+ durationMs: Date.now() - i,
1362
+ error: t
1363
+ }), t;
1364
+ }
1365
+ }, t.stream ? async function* (n) {
1366
+ n = k(n, t, "withMetrics.stream");
1367
+ let r = A(n, "transport");
1368
+ e.emit({
1369
+ kind: "request-start",
1370
+ request: n,
1371
+ scope: r
1372
+ });
1373
+ let i = Date.now();
1374
+ try {
1375
+ let a = await C(t, n);
1376
+ for await (let t of a) e.emit({
1377
+ kind: "stream-event",
1378
+ request: n,
1379
+ scope: r,
1380
+ meta: { event: t }
1381
+ }), t.type === "result" && e.emit({
1382
+ kind: "request-success",
1383
+ request: n,
1384
+ scope: r,
1385
+ durationMs: Date.now() - i,
1386
+ meta: { response: t.result }
1387
+ }), yield t;
1388
+ } catch (t) {
1389
+ throw e.emit({
1390
+ kind: "request-error",
1391
+ request: n,
1392
+ scope: r,
1393
+ durationMs: Date.now() - i,
1394
+ error: t
1395
+ }), t;
1396
+ }
1397
+ } : void 0, {
1398
+ openSession: t.openSession ? async (n) => {
1399
+ n = k(n, t, "withMetrics.session");
1400
+ let r = A(n, "transport");
1401
+ e.emit({
1402
+ kind: "session-open",
1403
+ request: n,
1404
+ scope: r
1405
+ });
1406
+ let i = await t.openSession(n);
1407
+ return {
1408
+ send: i.send,
1409
+ receive: i.receive,
1410
+ close: async (t) => {
1411
+ e.emit({
1412
+ kind: "session-close",
1413
+ request: n,
1414
+ scope: r,
1415
+ meta: t ? { reason: t } : void 0
1416
+ }), await i.close(t);
1417
+ },
1418
+ capabilities: i.capabilities
1419
+ };
1420
+ } : void 0,
1421
+ capabilities: u(l(t))
1422
+ }), Oe = (e) => e.type === "custom" ? X(async (r) => {
1423
+ try {
1424
+ return await e.apply(r);
1425
+ } catch (e) {
1426
+ throw new n(j(e), {
1427
+ cause: e,
1428
+ code: t.AUTH_FAILED,
1429
+ retryable: !1
1430
+ });
1431
+ }
1432
+ }) : e.type === "transport-context" ? X(async (t) => E(t, typeof e.context == "function" ? await e.context() : e.context)) : X(async (r) => {
1433
+ try {
1434
+ let t = e.header ?? (e.type === "bearer" ? "authorization" : "x-api-key"), n = e.type === "bearer" ? e.prefix ?? "Bearer " : e.prefix ?? "", i = await ue(e.type === "bearer" ? e.token : e.key);
1435
+ return E(r, { headers: new Headers([[t, `${n}${i}`]]) });
1436
+ } catch (e) {
1437
+ throw new n(j(e), {
1438
+ cause: e,
1439
+ code: t.AUTH_FAILED,
1440
+ retryable: !1
1441
+ });
1442
+ }
1443
+ }), Z = () => {
1444
+ let e = /* @__PURE__ */ new Map();
1445
+ return {
1446
+ async get(t) {
1447
+ return e.get(t);
1448
+ },
1449
+ async compareAndSet(t, n, r) {
1450
+ let i = e.get(t);
1451
+ return JSON.stringify(i) === JSON.stringify(n) ? (e.set(t, v(r)), !0) : !1;
1452
+ },
1453
+ async set(t, n) {
1454
+ e.set(t, v(n));
1455
+ }
1456
+ };
1457
+ }, ke = (e) => {
1458
+ if (e.failureThreshold < 1) throw TypeError(i.circuitInvalidFailureThreshold);
1459
+ if (e.resetTimeout <= 0 || !Number.isFinite(e.resetTimeout)) throw TypeError(i.circuitInvalidResetTimeout);
1460
+ let r = e.sharedState ?? Z(), a = (t) => e.scope ?? e.key ?? (t ? A(t, "transport") : "transport"), o = async (e) => await r.get(a(e)) ?? {
1461
+ state: "closed",
1462
+ failureCount: 0,
1463
+ openUntil: 0,
1464
+ halfOpenActive: 0
1465
+ }, s = async (i, o) => {
1466
+ e.onStateChange?.(i.state);
1467
+ let s = a(o);
1468
+ if (r.compareAndSet) {
1469
+ let e = await r.get(s);
1470
+ if (!await r.compareAndSet(s, e, i)) throw new n("withCircuitBreaker: shared state compare-and-set failed.", {
1471
+ code: t.POLICY_STORE_CONFLICT,
1472
+ retryable: !0
1473
+ });
1474
+ return;
1475
+ }
1476
+ await r.set(s, i);
1477
+ }, c = async (r) => {
1478
+ let a = await o(r), c = Date.now();
1479
+ if (a.state === "open") {
1480
+ if (c >= a.openUntil) {
1481
+ let e = {
1482
+ ...a,
1483
+ state: "half-open"
1484
+ };
1485
+ return await s(e, r), e;
1486
+ }
1487
+ throw new n(i.circuitOpen("transport"), {
1488
+ code: t.OPEN_CIRCUIT,
1489
+ retryable: !0
1490
+ });
1491
+ }
1492
+ if (a.state === "half-open") {
1493
+ let o = e.halfOpenMaxRequests ?? 1;
1494
+ if (a.halfOpenActive >= o) throw new n(i.circuitOpen("transport"), {
1495
+ code: t.OPEN_CIRCUIT,
1496
+ retryable: !0
1497
+ });
1498
+ let c = {
1499
+ ...a,
1500
+ halfOpenActive: a.halfOpenActive + 1
1501
+ };
1502
+ return await s(c, r), c;
1503
+ }
1504
+ return a;
1505
+ }, d = async (e) => {
1506
+ await s({
1507
+ state: "closed",
1508
+ failureCount: 0,
1509
+ openUntil: 0,
1510
+ halfOpenActive: 0
1511
+ }, e);
1512
+ }, f = async (t, n) => {
1513
+ if (e.tripOn && !e.tripOn(n)) return;
1514
+ let r = await o(t), i = r.failureCount + 1;
1515
+ if (r.state === "half-open" || i >= e.failureThreshold) {
1516
+ await s({
1517
+ state: "open",
1518
+ failureCount: i,
1519
+ openUntil: Date.now() + e.resetTimeout,
1520
+ halfOpenActive: 0
1521
+ }, t);
1522
+ return;
1523
+ }
1524
+ await s({
1525
+ ...r,
1526
+ failureCount: i
1527
+ }, t);
1528
+ };
1529
+ return (e) => x(async (t) => {
1530
+ t = k(t, e, "withCircuitBreaker"), await c(t);
1531
+ try {
1532
+ let n = await e.submit(t);
1533
+ return await d(t), n;
1534
+ } catch (e) {
1535
+ throw await f(t, e), e;
1536
+ }
1537
+ }, e.stream ? async function* (t) {
1538
+ t = k(t, e, "withCircuitBreaker.stream"), await c(t);
1539
+ try {
1540
+ let n = await C(e, t);
1541
+ for await (let e of n) yield e;
1542
+ await d(t);
1543
+ } catch (e) {
1544
+ throw await f(t, e), e;
1545
+ }
1546
+ } : void 0, {
1547
+ openSession: e.openSession,
1548
+ capabilities: u(l(e))
1549
+ });
1550
+ }, Q = () => {
1551
+ let e = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map(), o = (e) => {
1552
+ let t = a.get(e) ?? [], n = Date.now() - 1e3;
1553
+ for (; t.length > 0 && t[0] !== void 0 && t[0] < n;) t.shift();
1554
+ a.set(e, t);
1555
+ }, s = async (e, t) => {
1556
+ let n = (a.get(e) ?? [])[0] ?? Date.now();
1557
+ await R(Math.max(0, 1e3 - (Date.now() - n)), t);
1558
+ };
1559
+ return { async acquire(c, l) {
1560
+ let u = l.request, d = c, f = l, p = r.get(d) ?? [];
1561
+ for (r.set(d, p); f.maxConcurrent && (e.get(d) ?? 0) >= f.maxConcurrent;) {
1562
+ if (f.queueLimit !== void 0 && p.length >= f.queueLimit) throw new n(i.rateLimitQueueFull, {
1563
+ code: t.RATE_LIMITED,
1564
+ retryable: !0
1565
+ });
1566
+ await new Promise((e, t) => {
1567
+ if (u.signal?.aborted) {
1568
+ t(u.signal.reason);
1569
+ return;
1570
+ }
1571
+ let n = () => {
1572
+ u.signal?.removeEventListener("abort", r), e();
1573
+ }, r = () => t(u.signal?.reason);
1574
+ u.signal?.addEventListener("abort", r, { once: !0 }), p.push(n);
1575
+ });
1576
+ }
1577
+ if (e.set(d, (e.get(d) ?? 0) + 1), f.perSecond) for (;;) {
1578
+ o(d);
1579
+ let e = a.get(d) ?? [];
1580
+ if (e.length < f.perSecond) {
1581
+ e.push(Date.now()), a.set(d, e);
1582
+ break;
1583
+ }
1584
+ await s(d, u.signal);
1585
+ }
1586
+ let m = !1;
1587
+ return { async release() {
1588
+ m || (m = !0, e.set(d, Math.max(0, (e.get(d) ?? 1) - 1)), p.shift()?.());
1589
+ } };
1590
+ } };
1591
+ }, Ae = (e) => {
1592
+ if ((!e.maxConcurrent || e.maxConcurrent < 1) && (!e.perSecond || e.perSecond < 1)) throw TypeError(i.rateLimitInvalid);
1593
+ let t = e.limiter ?? Q();
1594
+ return (n) => x(async (r) => {
1595
+ r = k(r, n, "withRateLimit");
1596
+ let i = e.scope ?? e.key ?? A(r, "transport"), a = await t.acquire(i, {
1597
+ request: r,
1598
+ maxConcurrent: e.maxConcurrent,
1599
+ perSecond: e.perSecond,
1600
+ queueLimit: e.queueLimit
1601
+ });
1602
+ try {
1603
+ return await n.submit(r);
1604
+ } finally {
1605
+ await a.release();
1606
+ }
1607
+ }, n.stream ? async function* (r) {
1608
+ r = k(r, n, "withRateLimit.stream");
1609
+ let i = e.scope ?? e.key ?? A(r, "transport"), a = await t.acquire(i, {
1610
+ request: r,
1611
+ maxConcurrent: e.maxConcurrent,
1612
+ perSecond: e.perSecond,
1613
+ queueLimit: e.queueLimit
1614
+ });
1615
+ try {
1616
+ let e = await C(n, r);
1617
+ for await (let t of e) yield t;
1618
+ } finally {
1619
+ await a.release();
1620
+ }
1621
+ } : void 0, {
1622
+ openSession: n.openSession,
1623
+ capabilities: u(l(n))
1624
+ });
1625
+ }, je = (e = {}) => {
1626
+ let t = e.key ?? ie, n = /* @__PURE__ */ new Map();
1627
+ return (e) => x(async (r) => {
1628
+ let i = t(r), a = n.get(i);
1629
+ if (a) return a;
1630
+ let o = e.submit(r).finally(() => {
1631
+ n.delete(i);
1632
+ });
1633
+ return n.set(i, o), o;
1634
+ }, e.stream, {
1635
+ openSession: e.openSession,
1636
+ capabilities: u(l(e))
1637
+ });
1638
+ }, $ = () => {
1639
+ let e = /* @__PURE__ */ new Map(), t = (t) => {
1640
+ let n = e.get(t) ?? /* @__PURE__ */ new Map();
1641
+ return e.set(t, n), n;
1642
+ };
1643
+ return {
1644
+ async get(e, n) {
1645
+ return t(e).get(n);
1646
+ },
1647
+ async set(e, n, r) {
1648
+ t(e).set(n, v(r));
1649
+ },
1650
+ async delete(e, n) {
1651
+ t(e).delete(n);
1652
+ },
1653
+ async evictExpired(e, n) {
1654
+ let r = t(e);
1655
+ for (let [e, t] of r.entries()) t.expiresAt <= n && r.delete(e);
1656
+ },
1657
+ async keys(e) {
1658
+ return [...t(e).keys()];
1659
+ }
1660
+ };
1661
+ }, Me = (e) => {
1662
+ if (e.ttl <= 0 || !Number.isFinite(e.ttl)) throw TypeError(i.cacheInvalidTtl);
1663
+ let t = e.store ?? $();
1664
+ return (n) => (ne(n, e.allowUnsafeCache), x(async (r) => {
1665
+ r = k(r, n, "withCache");
1666
+ let i = e.scope ?? A(r, "transport"), a = e.key(r), o = await t.get(i, a);
1667
+ if (o && o.expiresAt > Date.now()) return v(o.response);
1668
+ o && await t.delete(i, a);
1669
+ let s = await n.submit(r);
1670
+ if ((e.shouldCache?.(s, r) ?? !0) === !0 && (await t.set(i, a, {
1671
+ expiresAt: Date.now() + e.ttl,
1672
+ response: v(s)
1673
+ }), t.evictExpired && await t.evictExpired(i, Date.now()), e.maxEntries && t.keys)) {
1674
+ let n = await t.keys(i);
1675
+ if (n.length > e.maxEntries) {
1676
+ let e = n[0];
1677
+ e && await t.delete(i, e);
1678
+ }
1679
+ }
1680
+ return v(s);
1681
+ }, n.stream, {
1682
+ openSession: n.openSession,
1683
+ capabilities: c(u(l(n)), s(void 0, { safety: {
1684
+ cacheable: !0,
1685
+ idempotent: l(n).safety.idempotent,
1686
+ retrySafe: l(n).safety.retrySafe,
1687
+ hedgeSafe: l(n).safety.hedgeSafe
1688
+ } }))
1689
+ }));
1690
+ }, Ne = (e) => {
1691
+ let t = F(e.transports, "createRoutingTransport"), n = t.map((e) => e.id);
1692
+ return x(async (t) => {
1693
+ let r = await e.selectTransport(t, { transportIds: n }), a = e.transports[r];
1694
+ if (!a) throw Error(i.unknownComposedTransport("createRoutingTransport", String(r), n));
1695
+ return t = O(t, e.requiredCapabilities, a, "createRoutingTransport"), a.submit(t);
1696
+ }, async (t) => {
1697
+ let r = await e.selectTransport(t, { transportIds: n }), a = e.transports[r];
1698
+ if (!a) throw Error(i.unknownComposedTransport("createRoutingTransport", String(r), n));
1699
+ return t = O(t, e.requiredCapabilities, a, "createRoutingTransport.stream"), B(a, t);
1700
+ }, { capabilities: t.reduce((e, t) => c(e, l(t.transport)), void 0) });
1701
+ }, Pe = (e) => {
1702
+ let t = Object.keys(e.transports);
1703
+ return Ne({
1704
+ transports: e.transports,
1705
+ requiredCapabilities: e.requiredCapabilities,
1706
+ selectTransport: (n) => K(n, t, e.weights, e.filter)
1707
+ });
1708
+ }, Fe = (e) => {
1709
+ let r = F(e.transports, "createLoadBalancedTransport"), i = /* @__PURE__ */ new Map(), a = 0, o = async (t, n) => e.weights ? typeof e.weights == "function" ? e.weights(t, n) : e.weights[n] ?? 1 : 1, s = async (t, n) => {
1710
+ let r = await o(t, n), i = await e.healthState?.getSnapshot(A(t, "transport"), n), a = (i?.consecutiveFailures ?? 0) * .25;
1711
+ return i ? Math.max(.05, r - a) : r;
1712
+ }, u = async (c) => {
1713
+ let l = r.filter((t) => {
1714
+ if (!e.requiredCapabilities) return !0;
1715
+ try {
1716
+ return d(t.transport, e.requiredCapabilities, "createLoadBalancedTransport"), !0;
1717
+ } catch {
1718
+ return !1;
1719
+ }
1720
+ });
1721
+ if (l.length === 0) throw new n("createLoadBalancedTransport: no eligible transport available.", {
1722
+ code: t.CAPABILITY_MISMATCH,
1723
+ retryable: !1
1724
+ });
1725
+ let u = e.strategy ?? "round-robin";
1726
+ if (u === "random") return l[Math.floor(Math.random() * l.length)];
1727
+ if (u === "least-loaded") return [...l].sort((e, t) => (i.get(e.id) ?? 0) - (i.get(t.id) ?? 0))[0];
1728
+ if (u === "weighted" || u === "health-weighted") {
1729
+ let e = await Promise.all(l.map(async (e) => ({
1730
+ id: e.id,
1731
+ weight: u === "health-weighted" ? await s(c, e.id) : await o(c, e.id)
1732
+ }))), t = await K(c, l.map((e) => e.id), Object.fromEntries(e.map((e) => [e.id, e.weight])));
1733
+ return l.find((e) => e.id === t);
1734
+ }
1735
+ let f = l[a % l.length];
1736
+ return a += 1, f;
1737
+ }, f = async (t, n, r) => {
1738
+ i.set(n, Math.max(0, (i.get(n) ?? 1) - 1)), await e.healthState?.recordSuccess(A(t, "transport"), n, Date.now() - r);
1739
+ }, p = async (t, n, r, a) => {
1740
+ i.set(n, Math.max(0, (i.get(n) ?? 1) - 1)), await e.healthState?.recordFailure(A(t, "transport"), n, a);
1741
+ };
1742
+ return x(async (t) => {
1743
+ let n = await u(t), r = Date.now();
1744
+ i.set(n.id, (i.get(n.id) ?? 0) + 1);
1745
+ try {
1746
+ t = O(t, e.requiredCapabilities, n.transport, "createLoadBalancedTransport");
1747
+ let i = await n.transport.submit(t);
1748
+ return await f(t, n.id, r), i;
1749
+ } catch (e) {
1750
+ throw await p(t, n.id, r, e), e;
1751
+ }
1752
+ }, async function* (t) {
1753
+ let n = await u(t), r = Date.now();
1754
+ i.set(n.id, (i.get(n.id) ?? 0) + 1);
1755
+ try {
1756
+ t = O(t, e.requiredCapabilities, n.transport, "createLoadBalancedTransport.stream");
1757
+ let i = await B(n.transport, t);
1758
+ for await (let e of i) yield z(e, { source: n.id });
1759
+ await f(t, n.id, r);
1760
+ } catch (e) {
1761
+ throw await p(t, n.id, r, e), e;
1762
+ }
1763
+ }, { capabilities: r.reduce((e, t) => c(e, l(t.transport)), void 0) });
1764
+ }, Ie = (e) => {
1765
+ let t = F(e.transports, "createFanoutTransport"), n = async (n) => {
1766
+ let r = t;
1767
+ return e.filter && (r = (await Promise.all(t.map(async (t) => ({
1768
+ entry: t,
1769
+ include: await e.filter(t.id ?? String(t.index), n)
1770
+ })))).filter((e) => e.include).map((e) => e.entry)), e.requiredCapabilities && (r = r.filter((t) => {
1771
+ try {
1772
+ return d(t.transport, e.requiredCapabilities, "createFanoutTransport"), !0;
1773
+ } catch {
1774
+ return !1;
1775
+ }
1776
+ })), r;
1777
+ };
1778
+ return x(async (t) => {
1779
+ let r = await n(t);
1780
+ if (r.length === 0) return {
1781
+ reports: {},
1782
+ meta: {},
1783
+ raw: null
1784
+ };
1785
+ let i = e.abortPolicy ?? "wait-all", a = r.map(() => new AbortController()), o = !1, s = (e, t) => {
1786
+ if (!o) {
1787
+ o = !0;
1788
+ for (let [n, r] of a.entries()) n !== t && r.abort(e);
1789
+ }
1790
+ }, c = await Promise.allSettled(r.map(async (n, r) => {
1791
+ let o = O(e.transformRequest ? await e.transformRequest(n.id ?? String(n.index), t) : t, e.requiredCapabilities, n.transport, "createFanoutTransport"), { signal: c, cleanup: l } = L([o.signal, a[r]?.signal]);
1792
+ try {
1793
+ let e = N(await n.transport.submit({
1794
+ ...o,
1795
+ signal: c
1796
+ }));
1797
+ return i === "abort-pending-on-first-success" && s("fanout-first-success", r), {
1798
+ id: n.id,
1799
+ index: n.index,
1800
+ response: e
1801
+ };
1802
+ } catch (e) {
1803
+ throw i === "abort-pending-on-first-failure" && !(a[r]?.signal.aborted ?? !1) && s("fanout-first-failure", r), e;
1804
+ } finally {
1805
+ l();
1806
+ }
1807
+ })), l = c.filter((e) => e.status === "fulfilled").map((e) => e.value), u = c.flatMap((e, t) => e.status === "rejected" ? [{
1808
+ id: r[t]?.id,
1809
+ index: r[t]?.index ?? t,
1810
+ error: e.reason
1811
+ }] : []), d = e.failurePolicy ?? "fail-all";
1812
+ if (u.length > 0 && d === "fail-all" || l.length === 0 && u.length > 0) throw I(`createFanoutTransport failed for ${u.map((e) => e.id ?? `transport[${e.index}]`).join(", ")}.`, u.map((e) => ({
1813
+ label: e.id ?? `transport[${e.index}]`,
1814
+ error: e.error
1815
+ })));
1816
+ return e.merge ? e.merge({
1817
+ request: t,
1818
+ results: l,
1819
+ failures: u
1820
+ }) : q(l, u);
1821
+ }, async function* (t) {
1822
+ let r = await n(t);
1823
+ if (r.length === 0) {
1824
+ yield {
1825
+ type: "result",
1826
+ result: {
1827
+ reports: {},
1828
+ meta: {},
1829
+ raw: null
1830
+ }
1831
+ };
1832
+ return;
1833
+ }
1834
+ let i = e.abortPolicy ?? "wait-all", a = e.failurePolicy ?? "fail-all", o = S(), s = r.map(() => new AbortController()), c = [], l = [], u = r.length, d = !1, f = (e, t) => {
1835
+ if (!d) {
1836
+ d = !0;
1837
+ for (let [n, r] of s.entries()) n !== t && r.abort(e);
1838
+ }
1839
+ }, p = () => {
1840
+ --u, u === 0 && o.close();
1841
+ };
1842
+ r.forEach((n, r) => {
1843
+ (async () => {
1844
+ let a = n.id ?? `transport[${n.index}]`, u = O(e.transformRequest ? await e.transformRequest(a, t) : t, e.requiredCapabilities, n.transport, "createFanoutTransport.stream"), { signal: d, cleanup: m } = L([u.signal, s[r]?.signal]);
1845
+ try {
1846
+ let e = await B(n.transport, {
1847
+ ...u,
1848
+ signal: d
1849
+ });
1850
+ for await (let t of e) {
1851
+ let e = z(t, { source: a });
1852
+ if (t.type === "result") {
1853
+ c.push({
1854
+ id: n.id,
1855
+ index: n.index,
1856
+ response: N(t.result)
1857
+ }), o.push(e), i === "abort-pending-on-first-success" && f("fanout-first-success", r);
1858
+ break;
1859
+ }
1860
+ if (t.type === "error") throw t.error;
1861
+ o.push(e);
1862
+ }
1863
+ } catch (e) {
1864
+ l.push({
1865
+ id: n.id,
1866
+ index: n.index,
1867
+ error: e
1868
+ }), o.push(z({
1869
+ type: "error",
1870
+ error: e
1871
+ }, { source: a })), i === "abort-pending-on-first-failure" && f("fanout-first-failure", r);
1872
+ } finally {
1873
+ m(), p();
1874
+ }
1875
+ })().catch((e) => {
1876
+ o.push({
1877
+ type: "error",
1878
+ error: e,
1879
+ meta: { source: n.id ?? `transport[${n.index}]` }
1880
+ }), p();
1881
+ });
1882
+ });
1883
+ for await (let e of o) yield e;
1884
+ if (l.length > 0 && a === "fail-all" || c.length === 0 && l.length > 0) throw I(`createFanoutTransport failed for ${l.map((e) => e.id ?? `transport[${e.index}]`).join(", ")}.`, l.map((e) => ({
1885
+ label: e.id ?? `transport[${e.index}]`,
1886
+ error: e.error
1887
+ })));
1888
+ yield {
1889
+ type: "result",
1890
+ result: e.merge ? await e.merge({
1891
+ request: t,
1892
+ results: c,
1893
+ failures: l
1894
+ }) : q(c, l),
1895
+ meta: { source: "fanout" }
1896
+ };
1897
+ }, { capabilities: t.reduce((e, t) => c(e, l(t.transport)), void 0) });
1898
+ }, Le = (e) => {
1899
+ let t = Ie({
1900
+ ...e,
1901
+ failurePolicy: "partial-success"
1902
+ }), r = (t) => {
1903
+ let r = N(t).meta?.transports, i = Array.isArray(r) ? r.length : y(r) ? Object.keys(r).length : 0;
1904
+ if (i < e.quorum) throw new n(`createQuorumFanoutTransport: quorum ${e.quorum} not reached.`, {
1905
+ code: "QUORUM_NOT_REACHED",
1906
+ retryable: !0,
1907
+ details: {
1908
+ required: e.quorum,
1909
+ actual: i
1910
+ }
1911
+ });
1912
+ return t;
1913
+ };
1914
+ return x(async (e) => r(await t.submit(e)), async function* (e) {
1915
+ let n = await B(t, e);
1916
+ for await (let e of n) {
1917
+ if (e.type === "result") {
1918
+ yield {
1919
+ ...e,
1920
+ result: r(e.result)
1921
+ };
1922
+ continue;
1923
+ }
1924
+ yield e;
1925
+ }
1926
+ }, { capabilities: u(t.capabilities) });
1927
+ }, Re = (e) => {
1928
+ let t = F(e.transports, "createFallbackTransport");
1929
+ return x(async (n) => {
1930
+ let r = [];
1931
+ for (let i of t) {
1932
+ if (n.signal?.aborted) throw Error(String(n.signal.reason ?? "Submission aborted."));
1933
+ try {
1934
+ return await i.transport.submit(n);
1935
+ } catch (t) {
1936
+ if (n.signal?.aborted) throw t;
1937
+ let a = {
1938
+ id: i.id,
1939
+ index: i.index,
1940
+ error: t
1941
+ };
1942
+ if (r.push(a), !(await e.shouldFallback?.(t, {
1943
+ request: n,
1944
+ id: a.id,
1945
+ index: a.index,
1946
+ failures: r
1947
+ }) ?? !0)) throw t;
1948
+ }
1949
+ }
1950
+ throw I(`createFallbackTransport exhausted all transports: ${t.map((e) => e.label).join(", ")}.`, r.map((e) => ({
1951
+ label: e.id ?? `transport[${e.index}]`,
1952
+ error: e.error
1953
+ })));
1954
+ }, async function* (n) {
1955
+ let r = [];
1956
+ for (let i of t) {
1957
+ if (n.signal?.aborted) throw Error(String(n.signal.reason ?? "Submission aborted."));
1958
+ try {
1959
+ let e = await B(i.transport, n);
1960
+ for await (let t of e) yield t;
1961
+ return;
1962
+ } catch (t) {
1963
+ if (n.signal?.aborted) throw t;
1964
+ let a = {
1965
+ id: i.id,
1966
+ index: i.index,
1967
+ error: t
1968
+ };
1969
+ if (r.push(a), !(await e.shouldFallback?.(t, {
1970
+ request: n,
1971
+ id: a.id,
1972
+ index: a.index,
1973
+ failures: r
1974
+ }) ?? !0)) throw t;
1975
+ }
1976
+ }
1977
+ throw I(`createFallbackTransport exhausted all transports: ${t.map((e) => e.label).join(", ")}.`, r.map((e) => ({
1978
+ label: e.id ?? `transport[${e.index}]`,
1979
+ error: e.error
1980
+ })));
1981
+ }, { capabilities: t.reduce((e, t) => c(e, l(t.transport)), void 0) });
1982
+ }, ze = (e) => {
1983
+ if (e.stages.length === 0) throw TypeError(i.emptyPipeline);
1984
+ return x(async (t) => {
1985
+ let n = t, r;
1986
+ for (let a of e.stages) {
1987
+ if (t.signal?.aborted) throw Error(i.pipelineAborted(a.id ?? `stage[${e.stages.indexOf(a)}]`));
1988
+ if (n = k(n, a.transport, "createPipelineTransport"), r = await a.transport.submit(n), a.mapToNext) {
1989
+ n = await a.mapToNext(r, t);
1990
+ let i = e.stages[e.stages.indexOf(a) + 1];
1991
+ i?.nextStageRequirements && (n = O(n, i.nextStageRequirements, i.transport, "createPipelineTransport.nextStage"));
1992
+ }
1993
+ }
1994
+ return r;
1995
+ }, async function* (t) {
1996
+ let n = t, r;
1997
+ for (let [a, o] of e.stages.entries()) {
1998
+ if (t.signal?.aborted) throw Error(i.pipelineAborted(o.id ?? `stage[${a}]`));
1999
+ n = O(n, void 0, o.transport, "createPipelineTransport.stream");
2000
+ let s = await B(o.transport, n);
2001
+ for await (let e of s) {
2002
+ let t = z(e, { stage: o.id ?? `stage[${a}]` });
2003
+ if (e.type === "result") {
2004
+ r = e.result, yield t;
2005
+ break;
2006
+ }
2007
+ if (e.type === "error") throw e.error;
2008
+ yield t;
2009
+ }
2010
+ if (o.mapToNext) {
2011
+ n = await o.mapToNext(r, t);
2012
+ let i = e.stages[a + 1];
2013
+ i?.nextStageRequirements && (n = O(n, i.nextStageRequirements, i.transport, "createPipelineTransport.nextStage"));
2014
+ }
2015
+ }
2016
+ yield {
2017
+ type: "result",
2018
+ result: r,
2019
+ meta: { source: "pipeline" }
2020
+ };
2021
+ }, { capabilities: e.stages.reduce((e, t) => c(e, l(t.transport)), void 0) });
2022
+ }, Be = (e) => {
2023
+ let t = F(e.transports, "createRacingTransport");
2024
+ return x(async (e) => {
2025
+ let n = new AbortController(), { signal: r, cleanup: a } = L([e.signal, n.signal]);
2026
+ try {
2027
+ let n = await Promise.any(t.map((t) => t.transport.submit({
2028
+ ...e,
2029
+ signal: r
2030
+ })));
2031
+ return y(n) ? {
2032
+ ...n,
2033
+ meta: {
2034
+ ...y(n.meta) ? n.meta : {},
2035
+ selection: "first-success"
2036
+ }
2037
+ } : n;
2038
+ } catch (e) {
2039
+ throw e instanceof AggregateError ? I(i.racingAllFailed, t.map((t, n) => ({
2040
+ label: t.id ?? `transport[${t.index}]`,
2041
+ error: e.errors[n] ?? /* @__PURE__ */ Error("Unknown transport failure.")
2042
+ }))) : e;
2043
+ } finally {
2044
+ n.abort("racing-complete"), a();
2045
+ }
2046
+ }, async function* (e) {
2047
+ let n = new AbortController(), { signal: r, cleanup: a } = L([e.signal, n.signal]), o = S(), s = [], c = t.length, l = !1, u = () => {
2048
+ --c, c === 0 && o.close();
2049
+ };
2050
+ for (let i of t) (async () => {
2051
+ try {
2052
+ let t = await B(i.transport, {
2053
+ ...e,
2054
+ signal: r
2055
+ });
2056
+ for await (let e of t) {
2057
+ let t = z(e, { source: i.id ?? `transport[${i.index}]` });
2058
+ if (e.type === "result") {
2059
+ l || (l = !0, o.push(z(t, { selection: "first-success" })), n.abort("racing-complete"));
2060
+ break;
2061
+ }
2062
+ if (e.type === "error") throw e.error;
2063
+ l || o.push(t);
2064
+ }
2065
+ } catch (e) {
2066
+ r.aborted && l || s.push({
2067
+ label: i.id ?? `transport[${i.index}]`,
2068
+ error: e
2069
+ });
2070
+ } finally {
2071
+ u();
2072
+ }
2073
+ })();
2074
+ for await (let e of o) yield e;
2075
+ if (a(), !l) throw I(i.racingAllFailed, s.length > 0 ? s : t.map((e) => ({
2076
+ label: e.id ?? `transport[${e.index}]`,
2077
+ error: /* @__PURE__ */ Error("No transport produced a result.")
2078
+ })));
2079
+ }, { capabilities: t.reduce((e, t) => c(e, l(t.transport)), void 0) });
2080
+ }, Ve = (e) => {
2081
+ let t = F(e.transports, "createHedgedTransport"), n = Math.min(e.maxAttempts ?? t.length, t.length);
2082
+ if (e.hedgeDelayMs < 0) throw TypeError("createHedgedTransport: hedgeDelayMs must be non-negative.");
2083
+ for (let n of t) re(n.transport, e.allowUnsafeHedging);
2084
+ return x(async (r) => {
2085
+ let i = new AbortController(), { signal: a, cleanup: o } = L([r.signal, i.signal]), s = [];
2086
+ try {
2087
+ return await new Promise((o, c) => {
2088
+ let l = !1, u = 0, d = (e, t) => {
2089
+ setTimeout(async () => {
2090
+ if (!l) try {
2091
+ let t = await e.transport.submit({
2092
+ ...r,
2093
+ signal: a
2094
+ });
2095
+ l || (l = !0, i.abort("hedged-complete"), o(t));
2096
+ } catch (t) {
2097
+ s.push({
2098
+ label: e.id,
2099
+ error: t
2100
+ }), u += 1, !l && u >= n && c(I("createHedgedTransport: all attempts failed.", s));
2101
+ }
2102
+ }, t);
2103
+ };
2104
+ for (let [r, i] of t.slice(0, n).entries()) d(i, r * e.hedgeDelayMs);
2105
+ });
2106
+ } finally {
2107
+ o();
2108
+ }
2109
+ }, async function* (e) {
2110
+ let r = await Be({ transports: Object.fromEntries(t.slice(0, n).map((e) => [e.id, e.transport])) }).stream(e);
2111
+ for await (let e of r) yield e;
2112
+ }, { capabilities: t.reduce((e, t) => c(e, l(t.transport)), void 0) });
2113
+ }, He = () => {
2114
+ let e = /* @__PURE__ */ new Map(), t = (t) => {
2115
+ let n = e.get(t) ?? /* @__PURE__ */ new Map();
2116
+ return e.set(t, n), n;
2117
+ };
2118
+ return {
2119
+ async getSnapshot(e, n) {
2120
+ return t(e).get(n);
2121
+ },
2122
+ async recordSuccess(e, n, r) {
2123
+ let i = t(e), a = i.get(n);
2124
+ i.set(n, {
2125
+ consecutiveFailures: 0,
2126
+ lastFailureAt: a?.lastFailureAt,
2127
+ lastSuccessAt: Date.now(),
2128
+ averageLatencyMs: a?.averageLatencyMs === void 0 ? r : (a.averageLatencyMs + r) / 2
2129
+ });
2130
+ },
2131
+ async recordFailure(e, n) {
2132
+ let r = t(e), i = r.get(n);
2133
+ r.set(n, {
2134
+ consecutiveFailures: (i?.consecutiveFailures ?? 0) + 1,
2135
+ lastFailureAt: Date.now(),
2136
+ lastSuccessAt: i?.lastSuccessAt,
2137
+ averageLatencyMs: i?.averageLatencyMs
2138
+ });
2139
+ }
2140
+ };
2141
+ };
2142
+ //#endregion
2143
+ export { _e as A, u as B, we as C, ye as D, xe as E, pe as F, i as G, c as H, h as I, e as J, n as K, g as L, J as M, he as N, ve as O, me as P, f as R, X as S, Se as T, s as U, l as V, r as W, Z as _, Re as a, Ee as b, Fe as c, Me as d, $ as f, ke as g, Q as h, ze as i, ge as j, be as k, Ne as l, Ae as m, Ve as n, Ie as o, je as p, t as q, Be as r, Le as s, He as t, Pe as u, Oe as v, Ce as w, Te as x, De as y, d as z };