mlform 0.1.7 → 0.1.8

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 (218) hide show
  1. package/README.md +39 -12
  2. package/dist/builtins-DegwhFGA.js +3507 -0
  3. package/dist/builtins-ml-9qB2MOxt.js +51 -0
  4. package/dist/{design-system-CrrSGfFB.js → design-system-Dxx1Sh7r.js} +284 -268
  5. package/dist/errors-B3H1wRwj.js +8 -0
  6. package/dist/kit-CuRF6dhL.js +1847 -0
  7. package/dist/mlform/behaviors.mjs +32 -0
  8. package/dist/mlform/builtins-ml.mjs +3 -0
  9. package/dist/mlform/design-system.mjs +1 -1
  10. package/dist/mlform/kit.mjs +3 -3
  11. package/dist/mlform/presentation.mjs +2 -0
  12. package/dist/mlform/primitives.mjs +2 -2
  13. package/dist/mlform/runtime.mjs +5 -0
  14. package/dist/mlform/schema.mjs +102 -0
  15. package/dist/mlform/transport.mjs +2 -2
  16. package/dist/mlform.mjs +8 -4
  17. package/dist/presentation-CkQuYheR.js +200 -0
  18. package/dist/{primitives-BqjFDDhL.js → primitives-Duag8Lj0.js} +1367 -1312
  19. package/dist/runtime-DMjDVo0H.js +1824 -0
  20. package/dist/strings-CWwrrYzz.js +4 -0
  21. package/dist/{transport-A1RsnZhD.js → transport-CtVX8ZUT.js} +311 -336
  22. package/dist/types/src/behaviors/index.d.ts +3 -0
  23. package/dist/types/src/builtins-ml/index.d.ts +5 -0
  24. package/dist/types/src/design-system/runtime/fingerprint.d.ts +8 -0
  25. package/dist/types/src/design-system/runtime/host-observer.d.ts +1 -0
  26. package/dist/types/src/design-system/runtime/hydration-state.d.ts +13 -0
  27. package/dist/types/src/design-system/runtime/inherited-scheme.d.ts +5 -0
  28. package/dist/types/src/design-system/runtime/media.d.ts +19 -0
  29. package/dist/types/src/index.d.ts +10 -4
  30. package/dist/types/src/kit/accordion-root-styles.d.ts +1 -0
  31. package/dist/types/src/kit/accordion-root.d.ts +24 -0
  32. package/dist/types/src/kit/accordion.d.ts +2 -0
  33. package/dist/types/src/kit/constants.d.ts +29 -0
  34. package/dist/types/src/kit/defaults.d.ts +2 -2
  35. package/dist/types/src/kit/index.d.ts +6 -1
  36. package/dist/types/src/kit/layout-helpers.d.ts +29 -0
  37. package/dist/types/src/kit/layout-node-render.d.ts +18 -0
  38. package/dist/types/src/kit/layout-node-resolver.d.ts +3 -0
  39. package/dist/types/src/kit/layout-types.d.ts +124 -0
  40. package/dist/types/src/kit/layout-utils.d.ts +9 -0
  41. package/dist/types/src/kit/layout.d.ts +8 -0
  42. package/dist/types/src/kit/mount-types.d.ts +54 -0
  43. package/dist/types/src/kit/panel-nav.d.ts +9 -0
  44. package/dist/types/src/{questionnaire/primitives/components → kit}/step-indicator.d.ts +3 -3
  45. package/dist/types/src/kit/tabs-root-styles.d.ts +1 -0
  46. package/dist/types/src/kit/tabs-root.d.ts +24 -0
  47. package/dist/types/src/kit/tabs.d.ts +2 -0
  48. package/dist/types/src/kit/types.d.ts +4 -51
  49. package/dist/types/src/kit/view-layout-state.d.ts +14 -0
  50. package/dist/types/src/kit/view-navigation.d.ts +8 -0
  51. package/dist/types/src/kit/view-snapshot-cache.d.ts +14 -0
  52. package/dist/types/src/kit/view-snapshot.d.ts +15 -0
  53. package/dist/types/src/kit/view-types.d.ts +172 -0
  54. package/dist/types/src/kit/view.d.ts +8 -0
  55. package/dist/types/src/kit/wizard-constants.d.ts +19 -0
  56. package/dist/types/src/kit/wizard-root-styles.d.ts +1 -0
  57. package/dist/types/src/kit/wizard-root.d.ts +23 -0
  58. package/dist/types/src/kit/wizard.d.ts +2 -0
  59. package/dist/types/src/packs/default.d.ts +2 -0
  60. package/dist/types/src/packs/index.d.ts +3 -0
  61. package/dist/types/src/packs/ml.d.ts +2 -0
  62. package/dist/types/src/packs/shared.d.ts +25 -0
  63. package/dist/types/src/presentation/define-explanation-kind.d.ts +11 -0
  64. package/dist/types/src/presentation/define-field-kind.d.ts +18 -0
  65. package/dist/types/src/presentation/define-report-kind.d.ts +15 -0
  66. package/dist/types/src/presentation/index.d.ts +10 -0
  67. package/dist/types/src/presentation/register-kind.d.ts +6 -0
  68. package/dist/types/src/presentation/registry.d.ts +15 -0
  69. package/dist/types/src/presentation/types/explanation.d.ts +32 -0
  70. package/dist/types/src/presentation/types/field.d.ts +36 -0
  71. package/dist/types/src/presentation/types/report.d.ts +41 -0
  72. package/dist/types/src/primitives/base-explanation-element.d.ts +2 -1
  73. package/dist/types/src/primitives/base-field-element.d.ts +2 -1
  74. package/dist/types/src/primitives/base-report-element.d.ts +2 -1
  75. package/dist/types/src/primitives/components/explanation-panel.d.ts +4 -2
  76. package/dist/types/src/primitives/components/field-frame-feedback.d.ts +9 -0
  77. package/dist/types/src/primitives/components/field-frame-styles.d.ts +1 -0
  78. package/dist/types/src/primitives/components/field-frame.d.ts +5 -3
  79. package/dist/types/src/primitives/components/form-errors.d.ts +1 -1
  80. package/dist/types/src/primitives/components/form-root-presenters.d.ts +17 -0
  81. package/dist/types/src/primitives/components/form-root-state.d.ts +19 -0
  82. package/dist/types/src/primitives/components/form-root-styles.d.ts +1 -0
  83. package/dist/types/src/primitives/components/form-root-templates.d.ts +42 -0
  84. package/dist/types/src/primitives/components/form-root.d.ts +4 -2
  85. package/dist/types/src/primitives/components/presentation.d.ts +1 -1
  86. package/dist/types/src/primitives/components/report-frame.d.ts +4 -2
  87. package/dist/types/src/primitives/components/submit-button.d.ts +1 -1
  88. package/dist/types/src/primitives/constants.d.ts +1 -1
  89. package/dist/types/src/primitives/fields/series-field-helpers.d.ts +23 -0
  90. package/dist/types/src/primitives/fields/series-field-styles.d.ts +1 -0
  91. package/dist/types/src/primitives/mount-form.d.ts +1 -1
  92. package/dist/types/src/primitives/presentation.d.ts +8 -0
  93. package/dist/types/src/primitives/types.d.ts +4 -1
  94. package/dist/types/src/{engine → runtime}/builtins/index.d.ts +1 -3
  95. package/dist/types/src/{engine → runtime}/builtins/reports/classifier.d.ts +1 -1
  96. package/dist/types/src/{engine → runtime}/builtins/shared.d.ts +2 -0
  97. package/dist/types/src/runtime/declarative/presentation.d.ts +61 -0
  98. package/dist/types/src/runtime/fields/state-calculations.d.ts +25 -0
  99. package/dist/types/src/runtime/fields/state.d.ts +2 -0
  100. package/dist/types/src/runtime/form.d.ts +1 -0
  101. package/dist/types/src/runtime/index.d.ts +16 -0
  102. package/dist/types/src/runtime/registry/index.d.ts +5 -0
  103. package/dist/types/src/runtime/runtime-behaviors.d.ts +23 -0
  104. package/dist/types/src/runtime/runtime-controller.d.ts +34 -0
  105. package/dist/types/src/runtime/runtime-refresh.d.ts +14 -0
  106. package/dist/types/src/runtime/runtime-values.d.ts +19 -0
  107. package/dist/types/src/runtime/submission/create-submitter.d.ts +2 -0
  108. package/dist/types/src/runtime/submission/error-flow.d.ts +19 -0
  109. package/dist/types/src/runtime/submission/field-updates.d.ts +14 -0
  110. package/dist/types/src/runtime/submission/report-updates.d.ts +16 -0
  111. package/dist/types/src/runtime/submission/stream-progress.d.ts +4 -0
  112. package/dist/types/src/runtime/submission/submitter.d.ts +2 -0
  113. package/dist/types/src/runtime/submission/types.d.ts +60 -0
  114. package/dist/types/src/runtime/types/behavior.d.ts +32 -0
  115. package/dist/types/src/runtime/types/explanation.d.ts +22 -0
  116. package/dist/types/src/runtime/types/field.d.ts +24 -0
  117. package/dist/types/src/{engine → runtime}/types/form.d.ts +8 -11
  118. package/dist/types/src/runtime/types/index.d.ts +9 -0
  119. package/dist/types/src/runtime/types/registry.d.ts +6 -0
  120. package/dist/types/src/runtime/types/report.d.ts +23 -0
  121. package/dist/types/src/{engine → runtime}/utils.d.ts +2 -2
  122. package/dist/types/src/{engine/validation/field.d.ts → runtime/validation/field-state.d.ts} +3 -19
  123. package/dist/types/src/runtime/validation/field-validator.d.ts +18 -0
  124. package/dist/types/src/runtime/validation/field.d.ts +2 -0
  125. package/dist/types/src/schema/index.d.ts +7 -0
  126. package/dist/types/src/schema/normalize.d.ts +2 -0
  127. package/dist/types/src/schema/registry.d.ts +9 -0
  128. package/dist/types/src/schema/types/explanation.d.ts +43 -0
  129. package/dist/types/src/{engine → schema}/types/field.d.ts +3 -45
  130. package/dist/types/src/schema/types/form.d.ts +13 -0
  131. package/dist/types/src/schema/types/report.d.ts +43 -0
  132. package/dist/types/src/shared/index.d.ts +2 -0
  133. package/dist/types/src/shared/object.d.ts +1 -0
  134. package/dist/types/src/shared/strings.d.ts +1 -0
  135. package/dist/types/src/transport/composition/fanout-helpers.d.ts +2 -0
  136. package/dist/types/src/transport/composition/fanout.d.ts +1 -2
  137. package/dist/types/src/transport/composition/index.d.ts +1 -0
  138. package/dist/types/src/transport/composition/quorum-fanout.d.ts +2 -0
  139. package/dist/types/src/transport/internal-core.d.ts +21 -0
  140. package/dist/types/src/transport/internal-errors.d.ts +21 -0
  141. package/dist/types/src/transport/internal-request.d.ts +21 -0
  142. package/dist/types/src/transport/internal-routing.d.ts +25 -0
  143. package/dist/types/src/transport/internal-sse.d.ts +14 -0
  144. package/dist/types/src/transport/internal-stream.d.ts +13 -0
  145. package/dist/types/src/transport/internal.d.ts +6 -110
  146. package/dist/types/src/transport/types/options-http.d.ts +85 -0
  147. package/dist/types/src/transport/types/options-middleware.d.ts +96 -0
  148. package/dist/types/src/transport/types/options-routing.d.ts +82 -0
  149. package/dist/types/src/transport/types/options.d.ts +3 -258
  150. package/package.json +20 -8
  151. package/dist/engine-CEy1IX7y.js +0 -5367
  152. package/dist/kit-DrrbtxI2.js +0 -76
  153. package/dist/mlform/engine.mjs +0 -3
  154. package/dist/mlform/questionnaire.mjs +0 -640
  155. package/dist/types/src/engine/index.d.ts +0 -11
  156. package/dist/types/src/engine/registry/index.d.ts +0 -26
  157. package/dist/types/src/engine/submission/submitter.d.ts +0 -40
  158. package/dist/types/src/engine/types/explanation.d.ts +0 -109
  159. package/dist/types/src/engine/types/index.d.ts +0 -9
  160. package/dist/types/src/engine/types/report.d.ts +0 -87
  161. package/dist/types/src/questionnaire/constants.d.ts +0 -31
  162. package/dist/types/src/questionnaire/defaults.d.ts +0 -8
  163. package/dist/types/src/questionnaire/engine/controller.d.ts +0 -12
  164. package/dist/types/src/questionnaire/engine/schema.d.ts +0 -9
  165. package/dist/types/src/questionnaire/errors.d.ts +0 -3
  166. package/dist/types/src/questionnaire/index.d.ts +0 -6
  167. package/dist/types/src/questionnaire/mount.d.ts +0 -3
  168. package/dist/types/src/questionnaire/primitives/components/questionnaire-root.d.ts +0 -23
  169. package/dist/types/src/questionnaire/primitives/register.d.ts +0 -0
  170. package/dist/types/src/questionnaire/types.d.ts +0 -69
  171. package/dist/types/src/{engine/declarative → presentation/types}/presentation.d.ts +0 -0
  172. package/dist/types/src/{engine → runtime}/builtins/fields/boolean.d.ts +0 -0
  173. package/dist/types/src/{engine → runtime}/builtins/fields/category.d.ts +0 -0
  174. package/dist/types/src/{engine → runtime}/builtins/fields/date.d.ts +0 -0
  175. package/dist/types/src/{engine → runtime}/builtins/fields/long-text.d.ts +0 -0
  176. package/dist/types/src/{engine → runtime}/builtins/fields/mapped-category.d.ts +0 -0
  177. package/dist/types/src/{engine → runtime}/builtins/fields/multi-choice.d.ts +0 -0
  178. package/dist/types/src/{engine → runtime}/builtins/fields/number.d.ts +0 -0
  179. package/dist/types/src/{engine → runtime}/builtins/fields/rating.d.ts +0 -0
  180. package/dist/types/src/{engine → runtime}/builtins/fields/series.d.ts +0 -0
  181. package/dist/types/src/{engine → runtime}/builtins/fields/single-choice.d.ts +0 -0
  182. package/dist/types/src/{engine → runtime}/builtins/fields/text.d.ts +0 -0
  183. package/dist/types/src/{engine → runtime}/builtins/reports/regressor.d.ts +0 -0
  184. package/dist/types/src/{engine → runtime}/comparison.d.ts +0 -0
  185. package/dist/types/src/{engine → runtime}/constants.d.ts +0 -0
  186. package/dist/types/src/{engine/form.d.ts → runtime/create-runtime.d.ts} +0 -0
  187. package/dist/types/src/{engine → runtime}/declarative/explanation.d.ts +0 -0
  188. package/dist/types/src/{engine → runtime}/declarative/field.d.ts +0 -0
  189. package/dist/types/src/{engine → runtime}/declarative/report.d.ts +0 -0
  190. package/dist/types/src/{engine → runtime}/equality.d.ts +0 -0
  191. package/dist/types/src/{engine → runtime}/errors.d.ts +0 -0
  192. package/dist/types/src/{engine → runtime}/explanations/controller.d.ts +0 -0
  193. package/dist/types/src/{engine → runtime}/explanations/index.d.ts +0 -0
  194. package/dist/types/src/{engine → runtime}/fields/controller.d.ts +0 -0
  195. package/dist/types/src/{engine → runtime}/fields/index.d.ts +0 -0
  196. package/dist/types/src/{engine → runtime}/paths.d.ts +0 -0
  197. package/dist/types/src/{engine → runtime}/reports/controller.d.ts +0 -0
  198. package/dist/types/src/{engine → runtime}/reports/index.d.ts +0 -0
  199. package/dist/types/src/{engine → runtime}/schema/index.d.ts +0 -0
  200. package/dist/types/src/{engine → runtime}/state/engine.d.ts +0 -0
  201. package/dist/types/src/{engine → runtime}/state/index.d.ts +0 -0
  202. package/dist/types/src/{engine → runtime}/state/snapshots.d.ts +0 -0
  203. package/dist/types/src/{engine → runtime}/state/store.d.ts +0 -0
  204. package/dist/types/src/{engine → runtime}/submission/abort.d.ts +0 -0
  205. package/dist/types/src/{engine → runtime}/submission/explanations.d.ts +0 -0
  206. package/dist/types/src/{engine → runtime}/submission/index.d.ts +0 -0
  207. package/dist/types/src/{engine → runtime}/submission/lifecycle.d.ts +0 -0
  208. package/dist/types/src/{engine → runtime}/submission/pipeline.d.ts +0 -0
  209. package/dist/types/src/{engine → runtime}/submission/reports.d.ts +0 -0
  210. package/dist/types/src/{engine → runtime}/submission/request.d.ts +0 -0
  211. package/dist/types/src/{engine → runtime}/submission/result.d.ts +0 -0
  212. package/dist/types/src/{engine → runtime}/types/pipeline.d.ts +0 -0
  213. package/dist/types/src/{engine → runtime}/types/transport.d.ts +0 -0
  214. package/dist/types/src/{engine → runtime}/validation/conditions.d.ts +0 -0
  215. package/dist/types/src/{engine → runtime}/validation/form.d.ts +0 -0
  216. package/dist/types/src/{engine → runtime}/validation/index.d.ts +0 -0
  217. package/dist/types/src/{engine → runtime}/values.d.ts +0 -0
  218. package/dist/types/src/{engine → schema}/types/registry.d.ts +1 -1
@@ -1,110 +1,6 @@
1
- import { TransportError } from './errors';
2
- import { CapabilityRequirement, MaybePromise, SubmitRequest, Transport, TransportCapabilities, TransportCollection, TransportResponse, TransportSession, TransportSessionEvent, TransportStreamEvent } from './types';
3
- export type TransportEntry = {
4
- id: string | undefined;
5
- index: number;
6
- label: string;
7
- transport: Transport;
8
- };
9
- export type StreamFactory = (request: SubmitRequest) => AsyncIterable<TransportStreamEvent> | PromiseLike<AsyncIterable<TransportStreamEvent>>;
10
- type SessionFactory = (request: SubmitRequest) => TransportSession | PromiseLike<TransportSession>;
11
- export type AsyncQueue<T> = {
12
- push(value: T): void;
13
- close(): void;
14
- [Symbol.asyncIterator](): AsyncIterator<T>;
15
- };
16
- export declare const isRecord: (value: unknown) => value is Record<string, unknown>;
17
- export declare const isAbortError: (error: unknown) => boolean;
18
- export declare const createTransport: (submit: Transport["submit"], stream?: StreamFactory, options?: {
19
- openSession?: SessionFactory;
20
- capabilities?: TransportCapabilities;
21
- }) => Transport;
22
- export declare const createAsyncQueue: <T>() => AsyncQueue<T>;
23
- export declare const resolveStream: (transport: Transport, request: SubmitRequest) => Promise<AsyncIterable<TransportStreamEvent>>;
24
- export declare const mergeHeaders: (baseHeaders: HeadersInit | undefined, extraHeaders: HeadersInit | undefined) => Headers;
25
- export declare const resolveRequestCredentials: (optionsCredentials: RequestCredentials | undefined, request: SubmitRequest) => RequestCredentials | undefined;
26
- export declare const withRequestTransportContext: (request: SubmitRequest, context: NonNullable<SubmitRequest["transport"]>) => SubmitRequest;
27
- export declare const ensureRequestPolicyContext: (request: SubmitRequest) => SubmitRequest;
28
- export declare const withCapabilityRequirement: (request: SubmitRequest, requirement: CapabilityRequirement | undefined, transport: Transport, context: string) => SubmitRequest;
29
- export declare const normalizeRequest: (request: SubmitRequest, transport: Transport, context: string) => SubmitRequest;
30
- export declare const getTransportScope: (request: SubmitRequest, fallback: string) => string;
31
- export declare const withRequestPolicyScope: (request: SubmitRequest, scope: string, extras?: {
32
- source?: string;
33
- backend?: string;
34
- requestId?: string;
35
- }) => SubmitRequest;
36
- export declare const getErrorMessage: (error: unknown) => string;
37
- export declare const toTransportError: (error: unknown, defaults?: {
38
- source?: string;
39
- status?: number;
40
- code?: string;
41
- retryable?: boolean;
42
- response?: unknown;
43
- details?: unknown;
44
- }) => TransportError;
45
- export declare const assertRetrySafe: (transport: Transport, allowUnsafeRetry?: boolean) => void;
46
- export declare const assertCacheSafe: (transport: Transport, allowUnsafeCache?: boolean) => void;
47
- export declare const assertHedgingSafe: (transport: Transport, allowUnsafeHedging?: boolean) => void;
48
- export declare const defaultDedupKey: (request: SubmitRequest) => string;
49
- export declare const normalizeTransportResponse: (response: unknown) => TransportResponse;
50
- export declare const normalizeStreamEvent: (event: unknown) => TransportStreamEvent;
51
- export declare const resolveTransportEntries: (transports: TransportCollection, factoryName: string) => readonly TransportEntry[];
52
- export declare const createAggregateFailure: (message: string, failures: readonly {
53
- label: string;
54
- error: unknown;
55
- }[]) => TransportError;
56
- export declare const combineSignals: (signals: (AbortSignal | undefined)[]) => {
57
- signal: AbortSignal;
58
- cleanup: () => void;
59
- };
60
- export declare const waitForDelay: (ms: number, signal?: AbortSignal) => Promise<void>;
61
- export declare const withEventMeta: (event: TransportStreamEvent, meta: Record<string, unknown>) => TransportStreamEvent;
62
- export declare const toSessionStreamEvent: (event: TransportSessionEvent) => TransportStreamEvent | null;
63
- export declare const createSubmitBackedStream: (transport: Transport, request: SubmitRequest) => AsyncIterable<TransportStreamEvent>;
64
- export declare const resolveStreamOrSubmit: (transport: Transport, request: SubmitRequest) => AsyncIterable<TransportStreamEvent> | PromiseLike<AsyncIterable<TransportStreamEvent>>;
65
- export declare const resolveGraphqlValue: <TValue>(value: TValue | ((request: SubmitRequest) => MaybePromise<TValue>), request: SubmitRequest) => Promise<TValue>;
66
- export declare const parseSseBlocks: (stream: ReadableStream<Uint8Array>) => AsyncIterable<{
67
- id?: string;
68
- event?: string;
69
- data: string;
70
- retry?: number;
71
- }>;
72
- export declare const defaultDecodeSseEvent: (event: {
73
- id?: string;
74
- event?: string;
75
- data: string;
76
- retry?: number;
77
- }) => Promise<TransportStreamEvent>;
78
- export declare const defaultBody: (request: Parameters<Transport["submit"]>[0]) => {
79
- inputs: Record<string, unknown>;
80
- };
81
- export declare const defaultParse: (response: Response) => Promise<unknown>;
82
- export declare const resolveErrorMessage: (status: number, statusText: string, payload: unknown) => string;
83
- export declare const resolveErrorCode: (payload: unknown) => string | undefined;
84
- export declare const resolveMethod: (method: string | undefined) => "POST" | "PUT" | "PATCH" | "DELETE";
85
- export declare const resolveSecret: (value: string | (() => MaybePromise<string>)) => Promise<string>;
86
- export declare const chooseWeightedTransport: <TTransportId extends string>(request: SubmitRequest, transportIds: readonly TTransportId[], weights: Partial<Record<TTransportId, number>> | ((request: SubmitRequest, transportId: TTransportId) => MaybePromise<number>), filter?: (transportId: TTransportId, request: SubmitRequest) => MaybePromise<boolean>) => Promise<TTransportId>;
87
- export declare const toFanoutMeta: (results: readonly {
88
- id: string | undefined;
89
- index: number;
90
- response: TransportResponse;
91
- }[], failures: readonly {
92
- id: string | undefined;
93
- index: number;
94
- error: unknown;
95
- }[]) => Record<string, unknown>;
96
- export declare const toFanoutRaw: (results: readonly {
97
- id: string | undefined;
98
- index: number;
99
- response: TransportResponse;
100
- }[]) => unknown;
101
- export declare const mergeFanoutResponses: (results: readonly {
102
- id: string | undefined;
103
- index: number;
104
- response: TransportResponse;
105
- }[], failures: readonly {
106
- id: string | undefined;
107
- index: number;
108
- error: unknown;
109
- }[]) => TransportResponse;
110
- export {};
1
+ export * from './internal-core';
2
+ export * from './internal-request';
3
+ export * from './internal-errors';
4
+ export * from './internal-stream';
5
+ export * from './internal-sse';
6
+ export * from './internal-routing';
@@ -0,0 +1,85 @@
1
+ import { TransportCapabilities } from './capabilities';
2
+ import { MaybePromise, SubmitRequest } from './core';
3
+ import { TransportStreamEvent } from './events';
4
+ import { TransportSession, TransportSessionMessage } from './session';
5
+ export type JsonTransportMethod = "POST" | "PUT" | "PATCH" | "DELETE";
6
+ export interface JsonTransportOptions {
7
+ endpoint: string | URL;
8
+ source?: string;
9
+ fetch?: typeof globalThis.fetch;
10
+ method?: JsonTransportMethod;
11
+ headers?: HeadersInit | (() => MaybePromise<HeadersInit>);
12
+ credentials?: RequestCredentials;
13
+ body?: (request: SubmitRequest) => BodyInit | null | undefined;
14
+ parse?: (response: Response) => Promise<unknown>;
15
+ stream?: (response: Response, request: SubmitRequest) => MaybePromise<AsyncIterable<TransportStreamEvent>>;
16
+ }
17
+ export interface GraphqlTransportOptions {
18
+ endpoint: string | URL;
19
+ source?: string;
20
+ fetch?: typeof globalThis.fetch;
21
+ query: string | ((request: SubmitRequest) => MaybePromise<string>);
22
+ operationName?: string | ((request: SubmitRequest) => MaybePromise<string | undefined>);
23
+ variables?: (request: SubmitRequest) => MaybePromise<Record<string, unknown>>;
24
+ headers?: HeadersInit | (() => MaybePromise<HeadersInit>);
25
+ credentials?: RequestCredentials;
26
+ parse?: (response: Response) => Promise<unknown>;
27
+ resultPath?: "data" | `data.${string}`;
28
+ resolveResult?: (payload: unknown, request: SubmitRequest) => MaybePromise<unknown>;
29
+ }
30
+ export interface SseTransportOptions {
31
+ endpoint: string | URL;
32
+ source?: string;
33
+ fetch?: typeof globalThis.fetch;
34
+ method?: "POST" | "PUT" | "PATCH";
35
+ headers?: HeadersInit | (() => MaybePromise<HeadersInit>);
36
+ credentials?: RequestCredentials;
37
+ body?: (request: SubmitRequest) => BodyInit | null | undefined;
38
+ decodeEvent?: (event: {
39
+ id?: string;
40
+ event?: string;
41
+ data: string;
42
+ retry?: number;
43
+ }, request: SubmitRequest) => MaybePromise<TransportStreamEvent>;
44
+ resultEvent?: string | ((event: {
45
+ id?: string;
46
+ event?: string;
47
+ data: string;
48
+ retry?: number;
49
+ }) => boolean);
50
+ maxPayloadBytes?: number;
51
+ }
52
+ export interface WebSocketSessionTransportOptions {
53
+ url: string | URL | ((request: SubmitRequest) => MaybePromise<string | URL>);
54
+ source?: string;
55
+ WebSocket?: typeof globalThis.WebSocket;
56
+ protocols?: string | string[] | ((request: SubmitRequest) => MaybePromise<string | string[]>);
57
+ serializeMessage?: (message: unknown) => string | ArrayBuffer | Blob | Uint8Array;
58
+ deserializeMessage?: (data: string | ArrayBuffer | Blob) => MaybePromise<unknown>;
59
+ sessionInit?: TransportSessionMessage | ((request: SubmitRequest) => MaybePromise<TransportSessionMessage | undefined>);
60
+ closeTimeoutMs?: number;
61
+ maxBufferedMessages?: number;
62
+ bufferOverflow?: "close" | "drop-oldest" | "drop-newest" | "error";
63
+ }
64
+ export interface GrpcUnaryTransportOptions {
65
+ source?: string;
66
+ unary?: (request: SubmitRequest) => MaybePromise<unknown>;
67
+ capabilities?: TransportCapabilities;
68
+ }
69
+ export interface GrpcStreamTransportOptions {
70
+ source?: string;
71
+ stream: (request: SubmitRequest) => MaybePromise<AsyncIterable<TransportStreamEvent>>;
72
+ capabilities?: TransportCapabilities;
73
+ }
74
+ export interface GrpcSessionTransportOptions {
75
+ source?: string;
76
+ session: (request: SubmitRequest) => MaybePromise<TransportSession>;
77
+ capabilities?: TransportCapabilities;
78
+ }
79
+ export interface GrpcTransportOptions {
80
+ source?: string;
81
+ unary?: (request: SubmitRequest) => MaybePromise<unknown>;
82
+ stream?: (request: SubmitRequest) => MaybePromise<AsyncIterable<TransportStreamEvent>>;
83
+ session?: (request: SubmitRequest) => MaybePromise<TransportSession>;
84
+ capabilities?: TransportCapabilities;
85
+ }
@@ -0,0 +1,96 @@
1
+ import { MaybePromise, SubmitRequest, Transport, TransportPolicyContext } from './core';
2
+ import { TransportStreamEvent } from './events';
3
+ import { CircuitBreakerSharedState, SharedRateLimiter, TransportCacheStore } from './state';
4
+ export interface SessionTransportOptions {
5
+ submit?: Transport["submit"];
6
+ stream?: Transport["stream"];
7
+ openSession: NonNullable<Transport["openSession"]>;
8
+ capabilities?: import('./capabilities').TransportCapabilities;
9
+ }
10
+ export interface RetryOptions {
11
+ attempts: number;
12
+ backoff?: "exponential" | "linear" | number[] | ((attempt: number) => number);
13
+ baseDelay?: number;
14
+ maxDelay?: number;
15
+ jitter?: boolean;
16
+ allowUnsafeRetry?: boolean;
17
+ retryOn?: (error: unknown, attempt: number) => boolean;
18
+ }
19
+ export interface ApiKeyAuthOptions {
20
+ type: "api-key";
21
+ key: string | (() => MaybePromise<string>);
22
+ header?: string;
23
+ prefix?: string;
24
+ }
25
+ export interface BearerAuthOptions {
26
+ type: "bearer";
27
+ token: string | (() => MaybePromise<string>);
28
+ header?: string;
29
+ prefix?: string;
30
+ }
31
+ export interface CustomAuthOptions {
32
+ type: "custom";
33
+ apply: (request: SubmitRequest) => MaybePromise<SubmitRequest>;
34
+ }
35
+ export interface TransportContextAuthOptions {
36
+ type: "transport-context";
37
+ context: NonNullable<SubmitRequest["transport"]> | (() => MaybePromise<NonNullable<SubmitRequest["transport"]>>);
38
+ }
39
+ export type AuthOptions = ApiKeyAuthOptions | BearerAuthOptions | CustomAuthOptions | TransportContextAuthOptions;
40
+ export interface CircuitBreakerOptions {
41
+ failureThreshold: number;
42
+ resetTimeout: number;
43
+ halfOpenMaxRequests?: number;
44
+ key?: string;
45
+ scope?: string;
46
+ sharedState?: CircuitBreakerSharedState;
47
+ tripOn?: (error: unknown) => boolean;
48
+ onStateChange?: (state: "closed" | "open" | "half-open") => void;
49
+ }
50
+ export interface RateLimitOptions {
51
+ maxConcurrent?: number;
52
+ perSecond?: number;
53
+ queueLimit?: number;
54
+ key?: string;
55
+ scope?: string;
56
+ limiter?: SharedRateLimiter;
57
+ }
58
+ export interface DedupOptions {
59
+ key?: (request: SubmitRequest) => string;
60
+ }
61
+ export interface CacheOptions {
62
+ key: (request: SubmitRequest) => string;
63
+ ttl: number;
64
+ maxEntries?: number;
65
+ scope?: string;
66
+ store?: TransportCacheStore;
67
+ allowUnsafeCache?: boolean;
68
+ shouldCache?: (response: unknown, request: SubmitRequest) => boolean;
69
+ }
70
+ export interface TransportTraceOptions {
71
+ traceparent?: string | ((request: SubmitRequest) => MaybePromise<string | undefined>);
72
+ baggage?: string | ((request: SubmitRequest) => MaybePromise<string | undefined>);
73
+ attributes?: (request: SubmitRequest) => MaybePromise<Record<string, unknown> | undefined>;
74
+ preserveExistingHeaders?: boolean;
75
+ requestId?: string | ((request: SubmitRequest) => MaybePromise<string | undefined>);
76
+ scope?: string | ((request: SubmitRequest) => MaybePromise<string | undefined>);
77
+ }
78
+ export interface TransportTelemetryEvent {
79
+ kind: "request-start" | "request-success" | "request-error" | "stream-event" | "session-open" | "session-close" | "capability-reject" | "policy-block";
80
+ source?: string;
81
+ scope?: string;
82
+ durationMs?: number;
83
+ error?: unknown;
84
+ request: SubmitRequest;
85
+ meta?: Record<string, unknown>;
86
+ }
87
+ export interface TransportMetricsOptions {
88
+ emit(event: TransportTelemetryEvent): void;
89
+ }
90
+ export interface TransportLogOptions {
91
+ onRequest?: (request: SubmitRequest) => void;
92
+ onResponse?: (response: unknown, request: SubmitRequest, durationMs: number) => void;
93
+ onError?: (error: unknown, request: SubmitRequest, durationMs: number) => void;
94
+ onStreamEvent?: (event: TransportStreamEvent, request: SubmitRequest) => void;
95
+ }
96
+ export type TransportContextPolicy = TransportPolicyContext;
@@ -0,0 +1,82 @@
1
+ import { CapabilityRequirement } from './capabilities';
2
+ import { MaybePromise, SubmitRequest, Transport, TransportResponse } from './core';
3
+ import { TransportCollection } from './middleware';
4
+ import { TransportHealthState } from './state';
5
+ export interface RoutingTransportOptions<TTransportId extends string = string> {
6
+ transports: Record<TTransportId, Transport>;
7
+ requiredCapabilities?: CapabilityRequirement;
8
+ selectTransport: (request: SubmitRequest, context: {
9
+ transportIds: readonly TTransportId[];
10
+ }) => MaybePromise<TTransportId>;
11
+ }
12
+ export interface WeightedRoutingTransportOptions<TTransportId extends string = string> {
13
+ transports: Record<TTransportId, Transport>;
14
+ requiredCapabilities?: CapabilityRequirement;
15
+ weights: Partial<Record<TTransportId, number>> | ((request: SubmitRequest, transportId: TTransportId) => MaybePromise<number>);
16
+ filter?: (transportId: TTransportId, request: SubmitRequest) => MaybePromise<boolean>;
17
+ }
18
+ export interface FanoutTransportResult<TTransportId extends string = string> {
19
+ id: TTransportId | undefined;
20
+ index: number;
21
+ response: TransportResponse;
22
+ }
23
+ export interface FanoutTransportFailure<TTransportId extends string = string> {
24
+ id: TTransportId | undefined;
25
+ index: number;
26
+ error: unknown;
27
+ }
28
+ export interface FanoutTransportOptions<TTransportId extends string = string> {
29
+ transports: TransportCollection<TTransportId>;
30
+ requiredCapabilities?: CapabilityRequirement;
31
+ filter?: (transportId: string, request: SubmitRequest) => MaybePromise<boolean>;
32
+ transformRequest?: (transportId: string, request: SubmitRequest) => MaybePromise<SubmitRequest>;
33
+ failurePolicy?: "fail-all" | "partial-success";
34
+ abortPolicy?: "wait-all" | "abort-pending-on-first-failure" | "abort-pending-on-first-success";
35
+ merge?: (context: {
36
+ request: SubmitRequest;
37
+ results: readonly FanoutTransportResult<TTransportId>[];
38
+ failures: readonly FanoutTransportFailure<TTransportId>[];
39
+ }) => MaybePromise<unknown>;
40
+ }
41
+ export interface FallbackTransportFailure<TTransportId extends string = string> {
42
+ id: TTransportId | undefined;
43
+ index: number;
44
+ error: unknown;
45
+ }
46
+ export interface FallbackTransportOptions<TTransportId extends string = string> {
47
+ transports: TransportCollection<TTransportId>;
48
+ shouldFallback?: (error: unknown, context: {
49
+ request: SubmitRequest;
50
+ id: TTransportId | undefined;
51
+ index: number;
52
+ failures: readonly FallbackTransportFailure<TTransportId>[];
53
+ }) => MaybePromise<boolean>;
54
+ }
55
+ export interface PipelineStage {
56
+ id?: string;
57
+ transport: Transport;
58
+ mapToNext?: (response: unknown, originalRequest: SubmitRequest) => MaybePromise<SubmitRequest>;
59
+ nextStageRequirements?: CapabilityRequirement;
60
+ }
61
+ export interface PipelineTransportOptions {
62
+ stages: readonly PipelineStage[];
63
+ }
64
+ export interface RacingTransportOptions {
65
+ transports: TransportCollection;
66
+ }
67
+ export interface HedgedTransportOptions<TTransportId extends string = string> {
68
+ transports: Record<TTransportId, Transport>;
69
+ hedgeDelayMs: number;
70
+ maxAttempts?: number;
71
+ allowUnsafeHedging?: boolean;
72
+ }
73
+ export interface QuorumFanoutTransportOptions<TTransportId extends string = string> extends FanoutTransportOptions<TTransportId> {
74
+ quorum: number;
75
+ }
76
+ export interface LoadBalancingTransportOptions<TTransportId extends string = string> {
77
+ transports: Record<TTransportId, Transport>;
78
+ requiredCapabilities?: CapabilityRequirement;
79
+ strategy?: "round-robin" | "least-loaded" | "random" | "weighted" | "health-weighted";
80
+ weights: Partial<Record<TTransportId, number>> | ((request: SubmitRequest, transportId: TTransportId) => MaybePromise<number>);
81
+ healthState?: TransportHealthState<TTransportId>;
82
+ }
@@ -1,258 +1,3 @@
1
- import { TransportCapabilities, CapabilityRequirement } from './capabilities';
2
- import { MaybePromise, SubmitRequest, Transport, TransportPolicyContext, TransportResponse } from './core';
3
- import { TransportStreamEvent } from './events';
4
- import { TransportSession, TransportSessionMessage } from './session';
5
- import { CircuitBreakerSharedState, SharedRateLimiter, TransportCacheStore, TransportHealthState } from './state';
6
- import { TransportCollection } from './middleware';
7
- export type JsonTransportMethod = "POST" | "PUT" | "PATCH" | "DELETE";
8
- export interface JsonTransportOptions {
9
- endpoint: string | URL;
10
- source?: string;
11
- fetch?: typeof globalThis.fetch;
12
- method?: JsonTransportMethod;
13
- headers?: HeadersInit | (() => MaybePromise<HeadersInit>);
14
- credentials?: RequestCredentials;
15
- body?: (request: SubmitRequest) => BodyInit | null | undefined;
16
- parse?: (response: Response) => Promise<unknown>;
17
- stream?: (response: Response, request: SubmitRequest) => MaybePromise<AsyncIterable<TransportStreamEvent>>;
18
- }
19
- export interface GraphqlTransportOptions {
20
- endpoint: string | URL;
21
- source?: string;
22
- fetch?: typeof globalThis.fetch;
23
- query: string | ((request: SubmitRequest) => MaybePromise<string>);
24
- operationName?: string | ((request: SubmitRequest) => MaybePromise<string | undefined>);
25
- variables?: (request: SubmitRequest) => MaybePromise<Record<string, unknown>>;
26
- headers?: HeadersInit | (() => MaybePromise<HeadersInit>);
27
- credentials?: RequestCredentials;
28
- parse?: (response: Response) => Promise<unknown>;
29
- resultPath?: "data" | `data.${string}`;
30
- resolveResult?: (payload: unknown, request: SubmitRequest) => MaybePromise<unknown>;
31
- }
32
- export interface SseTransportOptions {
33
- endpoint: string | URL;
34
- source?: string;
35
- fetch?: typeof globalThis.fetch;
36
- method?: "POST" | "PUT" | "PATCH";
37
- headers?: HeadersInit | (() => MaybePromise<HeadersInit>);
38
- credentials?: RequestCredentials;
39
- body?: (request: SubmitRequest) => BodyInit | null | undefined;
40
- decodeEvent?: (event: {
41
- id?: string;
42
- event?: string;
43
- data: string;
44
- retry?: number;
45
- }, request: SubmitRequest) => MaybePromise<TransportStreamEvent>;
46
- resultEvent?: string | ((event: {
47
- id?: string;
48
- event?: string;
49
- data: string;
50
- retry?: number;
51
- }) => boolean);
52
- maxPayloadBytes?: number;
53
- }
54
- export interface WebSocketSessionTransportOptions {
55
- url: string | URL | ((request: SubmitRequest) => MaybePromise<string | URL>);
56
- source?: string;
57
- WebSocket?: typeof globalThis.WebSocket;
58
- protocols?: string | string[] | ((request: SubmitRequest) => MaybePromise<string | string[]>);
59
- serializeMessage?: (message: unknown) => string | ArrayBuffer | Blob | Uint8Array;
60
- deserializeMessage?: (data: string | ArrayBuffer | Blob) => MaybePromise<unknown>;
61
- sessionInit?: TransportSessionMessage | ((request: SubmitRequest) => MaybePromise<TransportSessionMessage | undefined>);
62
- closeTimeoutMs?: number;
63
- maxBufferedMessages?: number;
64
- bufferOverflow?: "close" | "drop-oldest" | "drop-newest" | "error";
65
- }
66
- export interface GrpcUnaryTransportOptions {
67
- source?: string;
68
- unary?: (request: SubmitRequest) => MaybePromise<unknown>;
69
- capabilities?: TransportCapabilities;
70
- }
71
- export interface GrpcStreamTransportOptions {
72
- source?: string;
73
- stream: (request: SubmitRequest) => MaybePromise<AsyncIterable<TransportStreamEvent>>;
74
- capabilities?: TransportCapabilities;
75
- }
76
- export interface GrpcSessionTransportOptions {
77
- source?: string;
78
- session: (request: SubmitRequest) => MaybePromise<TransportSession>;
79
- capabilities?: TransportCapabilities;
80
- }
81
- export interface GrpcTransportOptions {
82
- source?: string;
83
- unary?: (request: SubmitRequest) => MaybePromise<unknown>;
84
- stream?: (request: SubmitRequest) => MaybePromise<AsyncIterable<TransportStreamEvent>>;
85
- session?: (request: SubmitRequest) => MaybePromise<TransportSession>;
86
- capabilities?: TransportCapabilities;
87
- }
88
- export interface SessionTransportOptions {
89
- submit?: Transport["submit"];
90
- stream?: Transport["stream"];
91
- openSession: NonNullable<Transport["openSession"]>;
92
- capabilities?: TransportCapabilities;
93
- }
94
- export interface RoutingTransportOptions<TTransportId extends string = string> {
95
- transports: Record<TTransportId, Transport>;
96
- requiredCapabilities?: CapabilityRequirement;
97
- selectTransport: (request: SubmitRequest, context: {
98
- transportIds: readonly TTransportId[];
99
- }) => MaybePromise<TTransportId>;
100
- }
101
- export interface WeightedRoutingTransportOptions<TTransportId extends string = string> {
102
- transports: Record<TTransportId, Transport>;
103
- requiredCapabilities?: CapabilityRequirement;
104
- weights: Partial<Record<TTransportId, number>> | ((request: SubmitRequest, transportId: TTransportId) => MaybePromise<number>);
105
- filter?: (transportId: TTransportId, request: SubmitRequest) => MaybePromise<boolean>;
106
- }
107
- export interface FanoutTransportResult<TTransportId extends string = string> {
108
- id: TTransportId | undefined;
109
- index: number;
110
- response: TransportResponse;
111
- }
112
- export interface FanoutTransportFailure<TTransportId extends string = string> {
113
- id: TTransportId | undefined;
114
- index: number;
115
- error: unknown;
116
- }
117
- export interface FanoutTransportOptions<TTransportId extends string = string> {
118
- transports: TransportCollection<TTransportId>;
119
- requiredCapabilities?: CapabilityRequirement;
120
- filter?: (transportId: string, request: SubmitRequest) => MaybePromise<boolean>;
121
- transformRequest?: (transportId: string, request: SubmitRequest) => MaybePromise<SubmitRequest>;
122
- failurePolicy?: "fail-all" | "partial-success";
123
- abortPolicy?: "wait-all" | "abort-pending-on-first-failure" | "abort-pending-on-first-success";
124
- merge?: (context: {
125
- request: SubmitRequest;
126
- results: readonly FanoutTransportResult<TTransportId>[];
127
- failures: readonly FanoutTransportFailure<TTransportId>[];
128
- }) => MaybePromise<unknown>;
129
- }
130
- export interface FallbackTransportFailure<TTransportId extends string = string> {
131
- id: TTransportId | undefined;
132
- index: number;
133
- error: unknown;
134
- }
135
- export interface FallbackTransportOptions<TTransportId extends string = string> {
136
- transports: TransportCollection<TTransportId>;
137
- shouldFallback?: (error: unknown, context: {
138
- request: SubmitRequest;
139
- id: TTransportId | undefined;
140
- index: number;
141
- failures: readonly FallbackTransportFailure<TTransportId>[];
142
- }) => MaybePromise<boolean>;
143
- }
144
- export interface PipelineStage {
145
- id?: string;
146
- transport: Transport;
147
- mapToNext?: (response: unknown, originalRequest: SubmitRequest) => MaybePromise<SubmitRequest>;
148
- nextStageRequirements?: CapabilityRequirement;
149
- }
150
- export interface PipelineTransportOptions {
151
- stages: readonly PipelineStage[];
152
- }
153
- export interface RacingTransportOptions {
154
- transports: TransportCollection;
155
- }
156
- export interface HedgedTransportOptions<TTransportId extends string = string> {
157
- transports: Record<TTransportId, Transport>;
158
- hedgeDelayMs: number;
159
- maxAttempts?: number;
160
- allowUnsafeHedging?: boolean;
161
- }
162
- export interface QuorumFanoutTransportOptions<TTransportId extends string = string> extends FanoutTransportOptions<TTransportId> {
163
- quorum: number;
164
- }
165
- export interface LoadBalancingTransportOptions<TTransportId extends string = string> {
166
- transports: Record<TTransportId, Transport>;
167
- requiredCapabilities?: CapabilityRequirement;
168
- strategy?: "round-robin" | "least-loaded" | "random" | "weighted" | "health-weighted";
169
- weights?: Partial<Record<TTransportId, number>> | ((request: SubmitRequest, transportId: TTransportId) => MaybePromise<number>);
170
- healthState?: TransportHealthState<TTransportId>;
171
- }
172
- export interface RetryOptions {
173
- attempts: number;
174
- backoff?: "exponential" | "linear" | number[] | ((attempt: number) => number);
175
- baseDelay?: number;
176
- maxDelay?: number;
177
- jitter?: boolean;
178
- allowUnsafeRetry?: boolean;
179
- retryOn?: (error: unknown, attempt: number) => boolean;
180
- }
181
- export interface ApiKeyAuthOptions {
182
- type: "api-key";
183
- key: string | (() => MaybePromise<string>);
184
- header?: string;
185
- prefix?: string;
186
- }
187
- export interface BearerAuthOptions {
188
- type: "bearer";
189
- token: string | (() => MaybePromise<string>);
190
- header?: string;
191
- prefix?: string;
192
- }
193
- export interface CustomAuthOptions {
194
- type: "custom";
195
- apply: (request: SubmitRequest) => MaybePromise<SubmitRequest>;
196
- }
197
- export interface TransportContextAuthOptions {
198
- type: "transport-context";
199
- context: NonNullable<SubmitRequest["transport"]> | (() => MaybePromise<NonNullable<SubmitRequest["transport"]>>);
200
- }
201
- export type AuthOptions = ApiKeyAuthOptions | BearerAuthOptions | CustomAuthOptions | TransportContextAuthOptions;
202
- export interface CircuitBreakerOptions {
203
- failureThreshold: number;
204
- resetTimeout: number;
205
- halfOpenMaxRequests?: number;
206
- key?: string;
207
- scope?: string;
208
- sharedState?: CircuitBreakerSharedState;
209
- tripOn?: (error: unknown) => boolean;
210
- onStateChange?: (state: "closed" | "open" | "half-open") => void;
211
- }
212
- export interface RateLimitOptions {
213
- maxConcurrent?: number;
214
- perSecond?: number;
215
- queueLimit?: number;
216
- key?: string;
217
- scope?: string;
218
- limiter?: SharedRateLimiter;
219
- }
220
- export interface DedupOptions {
221
- key?: (request: SubmitRequest) => string;
222
- }
223
- export interface CacheOptions {
224
- key: (request: SubmitRequest) => string;
225
- ttl: number;
226
- maxEntries?: number;
227
- scope?: string;
228
- store?: TransportCacheStore;
229
- allowUnsafeCache?: boolean;
230
- shouldCache?: (response: unknown, request: SubmitRequest) => boolean;
231
- }
232
- export interface TransportTraceOptions {
233
- traceparent?: string | ((request: SubmitRequest) => MaybePromise<string | undefined>);
234
- baggage?: string | ((request: SubmitRequest) => MaybePromise<string | undefined>);
235
- attributes?: (request: SubmitRequest) => MaybePromise<Record<string, unknown> | undefined>;
236
- preserveExistingHeaders?: boolean;
237
- requestId?: string | ((request: SubmitRequest) => MaybePromise<string | undefined>);
238
- scope?: string | ((request: SubmitRequest) => MaybePromise<string | undefined>);
239
- }
240
- export interface TransportTelemetryEvent {
241
- kind: "request-start" | "request-success" | "request-error" | "stream-event" | "session-open" | "session-close" | "capability-reject" | "policy-block";
242
- source?: string;
243
- scope?: string;
244
- durationMs?: number;
245
- error?: unknown;
246
- request: SubmitRequest;
247
- meta?: Record<string, unknown>;
248
- }
249
- export interface TransportMetricsOptions {
250
- emit(event: TransportTelemetryEvent): void;
251
- }
252
- export interface TransportLogOptions {
253
- onRequest?: (request: SubmitRequest) => void;
254
- onResponse?: (response: unknown, request: SubmitRequest, durationMs: number) => void;
255
- onError?: (error: unknown, request: SubmitRequest, durationMs: number) => void;
256
- onStreamEvent?: (event: TransportStreamEvent, request: SubmitRequest) => void;
257
- }
258
- export type TransportContextPolicy = TransportPolicyContext;
1
+ export type { JsonTransportMethod, JsonTransportOptions, GraphqlTransportOptions, SseTransportOptions, WebSocketSessionTransportOptions, GrpcUnaryTransportOptions, GrpcStreamTransportOptions, GrpcSessionTransportOptions, GrpcTransportOptions, } from './options-http';
2
+ export type { RoutingTransportOptions, WeightedRoutingTransportOptions, FanoutTransportResult, FanoutTransportFailure, FanoutTransportOptions, FallbackTransportFailure, FallbackTransportOptions, PipelineStage, PipelineTransportOptions, RacingTransportOptions, HedgedTransportOptions, QuorumFanoutTransportOptions, LoadBalancingTransportOptions, } from './options-routing';
3
+ export type { SessionTransportOptions, RetryOptions, ApiKeyAuthOptions, BearerAuthOptions, CustomAuthOptions, TransportContextAuthOptions, AuthOptions, CircuitBreakerOptions, RateLimitOptions, DedupOptions, CacheOptions, TransportTraceOptions, TransportTelemetryEvent, TransportMetricsOptions, TransportLogOptions, TransportContextPolicy, } from './options-middleware';