@distilled.cloud/core 0.30.2 → 1.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api.d.ts +165 -0
- package/lib/api.d.ts.map +1 -0
- package/lib/api.js +178 -0
- package/lib/api.js.map +1 -0
- package/lib/codegen/cli.d.ts +29 -0
- package/lib/codegen/cli.d.ts.map +1 -0
- package/lib/codegen/cli.js +165 -0
- package/lib/codegen/cli.js.map +1 -0
- package/lib/codegen/emit.d.ts +129 -0
- package/lib/codegen/emit.d.ts.map +1 -0
- package/lib/codegen/emit.js +105 -0
- package/lib/codegen/emit.js.map +1 -0
- package/lib/codegen/format.d.ts +23 -0
- package/lib/codegen/format.d.ts.map +1 -0
- package/lib/codegen/format.js +28 -0
- package/lib/codegen/format.js.map +1 -0
- package/lib/codegen/generator.d.ts +334 -0
- package/lib/codegen/generator.d.ts.map +1 -0
- package/lib/codegen/generator.js +691 -0
- package/lib/codegen/generator.js.map +1 -0
- package/lib/codegen/graph.d.ts +36 -0
- package/lib/codegen/graph.d.ts.map +1 -0
- package/lib/codegen/graph.js +136 -0
- package/lib/codegen/graph.js.map +1 -0
- package/lib/codegen/members.d.ts +25 -0
- package/lib/codegen/members.d.ts.map +1 -0
- package/lib/codegen/members.js +55 -0
- package/lib/codegen/members.js.map +1 -0
- package/lib/codegen/naming.d.ts +29 -0
- package/lib/codegen/naming.d.ts.map +1 -0
- package/lib/codegen/naming.js +74 -0
- package/lib/codegen/naming.js.map +1 -0
- package/lib/codegen/openapi-cli.d.ts +38 -0
- package/lib/codegen/openapi-cli.d.ts.map +1 -0
- package/lib/codegen/openapi-cli.js +107 -0
- package/lib/codegen/openapi-cli.js.map +1 -0
- package/lib/codegen/openapi.d.ts +115 -0
- package/lib/codegen/openapi.d.ts.map +1 -0
- package/lib/codegen/openapi.js +1220 -0
- package/lib/codegen/openapi.js.map +1 -0
- package/lib/codegen/operations.d.ts +24 -0
- package/lib/codegen/operations.d.ts.map +1 -0
- package/lib/codegen/operations.js +56 -0
- package/lib/codegen/operations.js.map +1 -0
- package/lib/codegen/pagination.d.ts +39 -0
- package/lib/codegen/pagination.d.ts.map +1 -0
- package/lib/codegen/pagination.js +33 -0
- package/lib/codegen/pagination.js.map +1 -0
- package/lib/codegen/prelude.d.ts +15 -0
- package/lib/codegen/prelude.d.ts.map +1 -0
- package/lib/codegen/prelude.js +60 -0
- package/lib/codegen/prelude.js.map +1 -0
- package/lib/error-category.d.ts +28 -0
- package/lib/error-category.d.ts.map +1 -0
- package/lib/error-category.js +46 -0
- package/lib/error-category.js.map +1 -0
- package/lib/errors.d.ts +1 -0
- package/lib/errors.d.ts.map +1 -1
- package/lib/errors.js +1 -0
- package/lib/errors.js.map +1 -1
- package/lib/json-patch.d.ts +25 -32
- package/lib/json-patch.d.ts.map +1 -1
- package/lib/json-patch.js +23 -95
- package/lib/json-patch.js.map +1 -1
- package/lib/pagination.d.ts +37 -51
- package/lib/pagination.d.ts.map +1 -1
- package/lib/pagination.js +72 -90
- package/lib/pagination.js.map +1 -1
- package/lib/protocol-http.d.ts +74 -0
- package/lib/protocol-http.d.ts.map +1 -0
- package/lib/protocol-http.js +554 -0
- package/lib/protocol-http.js.map +1 -0
- package/lib/protocol-rest.d.ts +124 -0
- package/lib/protocol-rest.d.ts.map +1 -0
- package/lib/protocol-rest.js +242 -0
- package/lib/protocol-rest.js.map +1 -0
- package/lib/retry.d.ts +8 -2
- package/lib/retry.d.ts.map +1 -1
- package/lib/retry.js +21 -15
- package/lib/retry.js.map +1 -1
- package/lib/schema.d.ts +7 -8
- package/lib/schema.d.ts.map +1 -1
- package/lib/schema.js +7 -8
- package/lib/schema.js.map +1 -1
- package/lib/trait.d.ts +150 -0
- package/lib/trait.d.ts.map +1 -0
- package/lib/trait.js +107 -0
- package/lib/trait.js.map +1 -0
- package/package.json +18 -75
- package/src/api.ts +446 -0
- package/src/codegen/cli.ts +268 -0
- package/src/codegen/emit.ts +207 -0
- package/src/codegen/format.ts +47 -0
- package/src/codegen/generator.ts +1153 -0
- package/src/codegen/graph.ts +151 -0
- package/src/codegen/members.ts +71 -0
- package/src/codegen/naming.ts +86 -0
- package/src/codegen/openapi-cli.ts +166 -0
- package/src/codegen/openapi.ts +1450 -0
- package/src/codegen/operations.ts +76 -0
- package/src/codegen/pagination.ts +71 -0
- package/src/codegen/prelude.ts +70 -0
- package/src/error-category.ts +84 -0
- package/src/errors.ts +2 -0
- package/src/json-patch.ts +26 -110
- package/src/pagination.ts +86 -142
- package/src/protocol-http.ts +699 -0
- package/src/protocol-rest.ts +367 -0
- package/src/retry.ts +20 -21
- package/src/schema.ts +7 -8
- package/src/trait.ts +238 -0
- package/README.md +0 -30
- package/lib/client.d.ts +0 -167
- package/lib/client.d.ts.map +0 -1
- package/lib/client.js +0 -659
- package/lib/client.js.map +0 -1
- package/lib/schemas.d.ts +0 -60
- package/lib/schemas.d.ts.map +0 -1
- package/lib/schemas.js +0 -79
- package/lib/schemas.js.map +0 -1
- package/lib/sensitive.d.ts +0 -71
- package/lib/sensitive.d.ts.map +0 -1
- package/lib/sensitive.js +0 -96
- package/lib/sensitive.js.map +0 -1
- package/lib/traits.d.ts +0 -421
- package/lib/traits.d.ts.map +0 -1
- package/lib/traits.js +0 -737
- package/lib/traits.js.map +0 -1
- package/src/client.ts +0 -1177
- package/src/schemas.ts +0 -128
- package/src/sensitive.ts +0 -119
- package/src/traits.ts +0 -996
package/lib/traits.d.ts
DELETED
|
@@ -1,421 +0,0 @@
|
|
|
1
|
-
import * as AST from "effect/SchemaAST";
|
|
2
|
-
/**
|
|
3
|
-
* Internal symbol for annotation metadata storage.
|
|
4
|
-
*/
|
|
5
|
-
declare const annotationMetaSymbol: unique symbol;
|
|
6
|
-
/**
|
|
7
|
-
* Any type that has an .annotate() method returning itself.
|
|
8
|
-
* This includes Schema.Schema and Schema.PropertySignature.
|
|
9
|
-
*/
|
|
10
|
-
type Annotatable = {
|
|
11
|
-
annotate(annotations: unknown): Annotatable;
|
|
12
|
-
};
|
|
13
|
-
/**
|
|
14
|
-
* An Annotation is a callable that can be used with .pipe() AND
|
|
15
|
-
* has symbol properties so it works directly with Schema.Struct/Class.
|
|
16
|
-
*
|
|
17
|
-
* The index signatures allow TypeScript to accept this as a valid annotations object.
|
|
18
|
-
*/
|
|
19
|
-
export interface Annotation {
|
|
20
|
-
<A extends Annotatable>(schema: A): A;
|
|
21
|
-
readonly [annotationMetaSymbol]: Array<{
|
|
22
|
-
symbol: symbol;
|
|
23
|
-
value: unknown;
|
|
24
|
-
}>;
|
|
25
|
-
readonly [key: symbol]: unknown;
|
|
26
|
-
readonly [key: string]: unknown;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Create an annotation builder for a given symbol and value.
|
|
30
|
-
* This is the core primitive used to build all trait annotations.
|
|
31
|
-
*/
|
|
32
|
-
export declare function makeAnnotation<T>(sym: symbol, value: T): Annotation;
|
|
33
|
-
/**
|
|
34
|
-
* Combine multiple annotations into one.
|
|
35
|
-
* Use when you need multiple annotations on the same schema.
|
|
36
|
-
*
|
|
37
|
-
* @example
|
|
38
|
-
* ```ts
|
|
39
|
-
* const MyInput = Schema.Struct({
|
|
40
|
-
* id: Schema.String.pipe(T.all(T.PathParam(), T.Required())),
|
|
41
|
-
* });
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
export declare function all(...annotations: Annotation[]): Annotation;
|
|
45
|
-
/** Symbol for HTTP operation metadata (method + path template) */
|
|
46
|
-
export declare const httpSymbol: unique symbol;
|
|
47
|
-
/** HTTP method type */
|
|
48
|
-
export type HttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD";
|
|
49
|
-
/** HTTP trait configuration */
|
|
50
|
-
export interface HttpTrait {
|
|
51
|
-
/** HTTP method */
|
|
52
|
-
method: HttpMethod;
|
|
53
|
-
/** Path template with {param} placeholders */
|
|
54
|
-
path: string;
|
|
55
|
-
/**
|
|
56
|
-
* Request body content type. Recognized values:
|
|
57
|
-
* - `"multipart"` — `multipart/form-data` (file uploads)
|
|
58
|
-
* - `"form-urlencoded"` — `application/x-www-form-urlencoded`
|
|
59
|
-
* - `"binary"` — `application/octet-stream` (raw byte body
|
|
60
|
-
* accepting `Blob | Uint8Array | ArrayBuffer |
|
|
61
|
-
* string | Stream<Uint8Array> | ReadableStream`)
|
|
62
|
-
* - `undefined` — JSON
|
|
63
|
-
*/
|
|
64
|
-
contentType?: string;
|
|
65
|
-
/**
|
|
66
|
-
* Explicit `Content-Type` for a `contentType: "binary"` request body when the
|
|
67
|
-
* API requires a specific media type rather than the generic
|
|
68
|
-
* `application/octet-stream` (e.g. `application/x-ndjson` for Vectorize
|
|
69
|
-
* insert/upsert). Ignored unless `contentType === "binary"`; a caller-supplied
|
|
70
|
-
* `content-type` header still wins.
|
|
71
|
-
*/
|
|
72
|
-
bodyMediaType?: string;
|
|
73
|
-
/**
|
|
74
|
-
* Response body content type. Recognized values:
|
|
75
|
-
* - `"binary"` — `application/octet-stream` download. The runtime
|
|
76
|
-
* bypasses JSON decoding and returns the body as an
|
|
77
|
-
* Effect `Stream.Stream<Uint8Array>`.
|
|
78
|
-
* - `undefined` — JSON / text decoded through the operation's output
|
|
79
|
-
* schema.
|
|
80
|
-
*/
|
|
81
|
-
responseContentType?: string;
|
|
82
|
-
/** Whether the request has a body (used by GCP generator) */
|
|
83
|
-
hasBody?: boolean;
|
|
84
|
-
/**
|
|
85
|
-
* Default value for a versioned API's `api-version` query parameter, baked in
|
|
86
|
-
* at generation time. When set, the client injects `?api-version=<value>` on
|
|
87
|
-
* every request for this operation unless the caller already supplied one.
|
|
88
|
-
* Used by APIs like Azure ARM where `api-version` is required on every call
|
|
89
|
-
* and differs per resource provider.
|
|
90
|
-
*/
|
|
91
|
-
apiVersion?: string;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Http trait - defines the HTTP method and path template for an operation.
|
|
95
|
-
* Path parameters are specified using {paramName} syntax.
|
|
96
|
-
*
|
|
97
|
-
* @example
|
|
98
|
-
* ```ts
|
|
99
|
-
* const GetDatabaseInput = Schema.Struct({
|
|
100
|
-
* organization: Schema.String.pipe(T.PathParam()),
|
|
101
|
-
* database: Schema.String.pipe(T.PathParam()),
|
|
102
|
-
* }).pipe(
|
|
103
|
-
* T.Http({ method: "GET", path: "/organizations/{organization}/databases/{database}" })
|
|
104
|
-
* );
|
|
105
|
-
* ```
|
|
106
|
-
*/
|
|
107
|
-
export declare const Http: (trait: HttpTrait) => Annotation;
|
|
108
|
-
/** Symbol for path parameter annotation */
|
|
109
|
-
export declare const pathParamSymbol: unique symbol;
|
|
110
|
-
/**
|
|
111
|
-
* PathParam trait - marks a field as a path parameter.
|
|
112
|
-
* The field name is used as the placeholder name in the path template.
|
|
113
|
-
*
|
|
114
|
-
* @example
|
|
115
|
-
* ```ts
|
|
116
|
-
* const Input = Schema.Struct({
|
|
117
|
-
* organization: Schema.String.pipe(T.PathParam()),
|
|
118
|
-
* }).pipe(
|
|
119
|
-
* T.Http({ method: "GET", path: "/organizations/{organization}" })
|
|
120
|
-
* );
|
|
121
|
-
* ```
|
|
122
|
-
*/
|
|
123
|
-
export declare const PathParam: () => Annotation;
|
|
124
|
-
/** Symbol for query parameter annotation */
|
|
125
|
-
export declare const queryParamSymbol: unique symbol;
|
|
126
|
-
/**
|
|
127
|
-
* QueryParam trait - marks a field as a query parameter.
|
|
128
|
-
* Optionally specify a different wire name.
|
|
129
|
-
*
|
|
130
|
-
* @example
|
|
131
|
-
* ```ts
|
|
132
|
-
* const Input = Schema.Struct({
|
|
133
|
-
* perPage: Schema.optional(Schema.Number).pipe(T.QueryParam("per_page")),
|
|
134
|
-
* });
|
|
135
|
-
* ```
|
|
136
|
-
*/
|
|
137
|
-
export declare const QueryParam: (name?: string) => Annotation;
|
|
138
|
-
/** Symbol for header parameter annotation */
|
|
139
|
-
export declare const headerParamSymbol: unique symbol;
|
|
140
|
-
/**
|
|
141
|
-
* HeaderParam trait - marks a field as a header parameter.
|
|
142
|
-
* Specify the header name.
|
|
143
|
-
*
|
|
144
|
-
* @example
|
|
145
|
-
* ```ts
|
|
146
|
-
* const Input = Schema.Struct({
|
|
147
|
-
* apiToken: Schema.String.pipe(T.HeaderParam("X-API-Token")),
|
|
148
|
-
* });
|
|
149
|
-
* ```
|
|
150
|
-
*/
|
|
151
|
-
export declare const HeaderParam: (name: string) => Annotation;
|
|
152
|
-
/**
|
|
153
|
-
* HttpPath - alias for PathParam that also carries the wire name.
|
|
154
|
-
* Used in generated code: `Schema.String.pipe(T.HttpPath("account_id"))`
|
|
155
|
-
*/
|
|
156
|
-
export declare const HttpPath: (name: string) => Annotation;
|
|
157
|
-
/**
|
|
158
|
-
* HttpQuery - alias for QueryParam with an explicit wire name.
|
|
159
|
-
* Used in generated code: `Schema.optional(Schema.String).pipe(T.HttpQuery("per_page"))`
|
|
160
|
-
*/
|
|
161
|
-
export declare const HttpQuery: (name: string) => Annotation;
|
|
162
|
-
/**
|
|
163
|
-
* HttpHeader - alias for HeaderParam.
|
|
164
|
-
* Used in generated code: `Schema.String.pipe(T.HttpHeader("X-Custom-Header"))`
|
|
165
|
-
*/
|
|
166
|
-
export declare const HttpHeader: (name: string) => Annotation;
|
|
167
|
-
/** Symbol for HTTP body annotation */
|
|
168
|
-
export declare const httpBodySymbol: unique symbol;
|
|
169
|
-
/**
|
|
170
|
-
* HttpBody - marks a field as the raw HTTP body.
|
|
171
|
-
* Used for operations where a field IS the entire request body
|
|
172
|
-
* (not a named field within a JSON body).
|
|
173
|
-
*/
|
|
174
|
-
export declare const HttpBody: () => Annotation;
|
|
175
|
-
/** Symbol for binary response body annotation */
|
|
176
|
-
export declare const binaryResponseBodySymbol: unique symbol;
|
|
177
|
-
/**
|
|
178
|
-
* BinaryResponseBody - marks a response struct field as the raw binary body
|
|
179
|
-
* of an `application/octet-stream` download. The runtime fills the field
|
|
180
|
-
* with an Effect `Stream.Stream<Uint8Array>` of the response body. Sibling
|
|
181
|
-
* fields annotated with `T.HttpResponseHeader` are populated from the
|
|
182
|
-
* matching response headers.
|
|
183
|
-
*/
|
|
184
|
-
export declare const BinaryResponseBody: () => Annotation;
|
|
185
|
-
/** Symbol for response header annotation */
|
|
186
|
-
export declare const responseHeaderSymbol: unique symbol;
|
|
187
|
-
/**
|
|
188
|
-
* HttpResponseHeader - marks a response struct field as a value pulled from
|
|
189
|
-
* a named HTTP response header (e.g. `etag`, `content-type`). The runtime
|
|
190
|
-
* populates the field with the (lowercased) header value if present, and
|
|
191
|
-
* leaves it `undefined` otherwise. Mirror of `T.HttpHeader` for response-
|
|
192
|
-
* side header extraction.
|
|
193
|
-
*
|
|
194
|
-
* Currently consumed by binary-download operations (operations whose
|
|
195
|
-
* `T.Http({ responseContentType: "binary" })` trait is set), where the
|
|
196
|
-
* response struct's shape is `{ body: Stream.Stream<Uint8Array>, ...headers }`.
|
|
197
|
-
*/
|
|
198
|
-
export declare const HttpResponseHeader: (name: string) => Annotation;
|
|
199
|
-
/** Symbol for GraphQL operation metadata (query string + operation name) */
|
|
200
|
-
export declare const graphqlOpSymbol: unique symbol;
|
|
201
|
-
/** GraphQL operation type */
|
|
202
|
-
export type GraphQLOpType = "query" | "mutation";
|
|
203
|
-
/** GraphQL operation trait configuration */
|
|
204
|
-
export interface GraphQLOpTrait {
|
|
205
|
-
/** The full GraphQL operation document (e.g., `query getUser($id: ID!) { ... }`) */
|
|
206
|
-
query: string;
|
|
207
|
-
/** The operation name — used to extract the response from `data.<operationName>` */
|
|
208
|
-
operationName: string;
|
|
209
|
-
/** Whether this is a query or a mutation */
|
|
210
|
-
type: GraphQLOpType;
|
|
211
|
-
}
|
|
212
|
-
/**
|
|
213
|
-
* GraphQLOp trait - declares an operation as GraphQL. When present, the client
|
|
214
|
-
* wraps the request body as `{ query, operationName, variables: <inputs> }` and
|
|
215
|
-
* extracts the response from `data.<operationName>`. The Http trait's path is
|
|
216
|
-
* still used as the GraphQL endpoint (typically `/graphql`).
|
|
217
|
-
*
|
|
218
|
-
* @example
|
|
219
|
-
* ```ts
|
|
220
|
-
* const GetUserInput = Schema.Struct({
|
|
221
|
-
* id: Schema.String,
|
|
222
|
-
* }).pipe(
|
|
223
|
-
* T.Http({ method: "POST", path: "/graphql" }),
|
|
224
|
-
* T.GraphQLOp({
|
|
225
|
-
* query: "query getUser($id: ID!) { user(id: $id) { id name } }",
|
|
226
|
-
* operationName: "getUser",
|
|
227
|
-
* type: "query",
|
|
228
|
-
* }),
|
|
229
|
-
* );
|
|
230
|
-
* ```
|
|
231
|
-
*/
|
|
232
|
-
export declare const GraphQLOp: (trait: GraphQLOpTrait) => Annotation;
|
|
233
|
-
/** Symbol for response body path transformation */
|
|
234
|
-
export declare const responsePathSymbol: unique symbol;
|
|
235
|
-
/**
|
|
236
|
-
* ResponsePath - decode the response from a nested path within the raw body.
|
|
237
|
-
* Useful for providers that wrap successful responses in envelopes like
|
|
238
|
-
* `{ result: <payload>, result_info: ... }`.
|
|
239
|
-
*/
|
|
240
|
-
export declare const ResponsePath: (path: string) => Annotation;
|
|
241
|
-
/** Symbol for form data file annotation */
|
|
242
|
-
export declare const httpFormDataFileSymbol: unique symbol;
|
|
243
|
-
/**
|
|
244
|
-
* HttpFormDataFile - marks a field as a file upload in multipart form data.
|
|
245
|
-
*/
|
|
246
|
-
export declare const HttpFormDataFile: () => Annotation;
|
|
247
|
-
/** Symbol for "do not follow redirects; treat 3xx Location header as success body" */
|
|
248
|
-
export declare const httpNoFollowRedirectSymbol: unique symbol;
|
|
249
|
-
/**
|
|
250
|
-
* Configuration for the `NoFollowRedirect` trait.
|
|
251
|
-
*/
|
|
252
|
-
export interface NoFollowRedirectTrait {
|
|
253
|
-
/**
|
|
254
|
-
* The field name on the success-side output schema that should receive the
|
|
255
|
-
* value of the response's `Location` header when the server returns a
|
|
256
|
-
* 3xx redirect. Defaults to `"url"`.
|
|
257
|
-
*
|
|
258
|
-
* Concretely: when an operation carrying this trait gets a 3xx response,
|
|
259
|
-
* the runtime client constructs `{ [locationField]: <Location header> }`
|
|
260
|
-
* and feeds that into the output schema decoder, instead of trying to
|
|
261
|
-
* decode the redirect body (which would normally be HTML or empty).
|
|
262
|
-
*/
|
|
263
|
-
locationField?: string;
|
|
264
|
-
}
|
|
265
|
-
/**
|
|
266
|
-
* NoFollowRedirect trait - opts an operation out of the underlying HTTP
|
|
267
|
-
* client's automatic redirect-following.
|
|
268
|
-
*
|
|
269
|
-
* Some endpoints — notably OAuth/SSO authorize endpoints — return their
|
|
270
|
-
* useful result as a `Location` header on a 302 response. The default
|
|
271
|
-
* `fetch` follows that redirect to the IdP's HTML login page, so by the
|
|
272
|
-
* time the client sees a body it's no longer the SDK's expected JSON.
|
|
273
|
-
*
|
|
274
|
-
* Marking an operation with this trait makes the runtime client:
|
|
275
|
-
* 1. Issue the request with `redirect: "manual"` so the 3xx surfaces
|
|
276
|
-
* to user code.
|
|
277
|
-
* 2. On a 3xx, build a synthetic body `{ [locationField]: <Location> }`
|
|
278
|
-
* and decode that into the output schema (default field name `"url"`).
|
|
279
|
-
*
|
|
280
|
-
* @example
|
|
281
|
-
* ```ts
|
|
282
|
-
* const SsoAuthorizeInput = Schema.Struct({...}).pipe(
|
|
283
|
-
* T.Http({ method: "GET", path: "/sso/authorize" }),
|
|
284
|
-
* T.NoFollowRedirect(),
|
|
285
|
-
* );
|
|
286
|
-
* const SsoAuthorizeOutput = Schema.Struct({ url: Schema.String });
|
|
287
|
-
* ```
|
|
288
|
-
*/
|
|
289
|
-
export declare const NoFollowRedirect: (trait?: NoFollowRedirectTrait) => Annotation;
|
|
290
|
-
/** Symbol for API error code mapping */
|
|
291
|
-
export declare const apiErrorCodeSymbol: unique symbol;
|
|
292
|
-
/**
|
|
293
|
-
* ApiErrorCode trait - maps an error class to an API error code.
|
|
294
|
-
* Used to match API error responses to typed error classes.
|
|
295
|
-
*
|
|
296
|
-
* @example
|
|
297
|
-
* ```ts
|
|
298
|
-
* class NotFoundError extends Schema.TaggedErrorClass<NotFoundError>()(
|
|
299
|
-
* "NotFoundError",
|
|
300
|
-
* { message: Schema.String },
|
|
301
|
-
* ).pipe(T.ApiErrorCode("not_found")) {}
|
|
302
|
-
* ```
|
|
303
|
-
*/
|
|
304
|
-
export declare const ApiErrorCode: (code: string) => Annotation;
|
|
305
|
-
/** Symbol for service metadata */
|
|
306
|
-
export declare const serviceSymbol: unique symbol;
|
|
307
|
-
/** Service metadata */
|
|
308
|
-
export interface ServiceTrait {
|
|
309
|
-
name: string;
|
|
310
|
-
version?: string;
|
|
311
|
-
baseUrl?: string;
|
|
312
|
-
/** GCP-specific: Root URL for the service */
|
|
313
|
-
rootUrl?: string;
|
|
314
|
-
/** GCP-specific: Service path appended to root URL */
|
|
315
|
-
servicePath?: string;
|
|
316
|
-
/** Allow additional properties for provider-specific metadata */
|
|
317
|
-
[key: string]: unknown;
|
|
318
|
-
}
|
|
319
|
-
/**
|
|
320
|
-
* Service trait - attaches service metadata to a schema.
|
|
321
|
-
*/
|
|
322
|
-
export declare const Service: (trait: ServiceTrait) => Annotation;
|
|
323
|
-
/**
|
|
324
|
-
* Get annotation value from an AST node, following encoding chain if needed.
|
|
325
|
-
*/
|
|
326
|
-
export declare const getAnnotation: <T>(ast: AST.AST, symbol: symbol) => T | undefined;
|
|
327
|
-
/**
|
|
328
|
-
* Get HTTP trait from a schema's AST.
|
|
329
|
-
*/
|
|
330
|
-
export declare const getHttpTrait: (ast: AST.AST) => HttpTrait | undefined;
|
|
331
|
-
export declare const getResponsePath: (ast: AST.AST) => string | undefined;
|
|
332
|
-
/**
|
|
333
|
-
* Get GraphQL operation trait from a schema's AST.
|
|
334
|
-
*/
|
|
335
|
-
export declare const getGraphQLOp: (ast: AST.AST) => GraphQLOpTrait | undefined;
|
|
336
|
-
/**
|
|
337
|
-
* Get the `NoFollowRedirect` trait config from an input schema's AST, if any.
|
|
338
|
-
*/
|
|
339
|
-
export declare const getNoFollowRedirect: (ast: AST.AST) => NoFollowRedirectTrait | undefined;
|
|
340
|
-
/**
|
|
341
|
-
* Check if a PropertySignature has the pathParam annotation.
|
|
342
|
-
* Works for both PathParam() (annotation value = true) and HttpPath("wire_name") (annotation value = string).
|
|
343
|
-
*/
|
|
344
|
-
export declare const isPathParam: (prop: AST.PropertySignature) => boolean;
|
|
345
|
-
/**
|
|
346
|
-
* Get query param name from a PropertySignature (returns true if unnamed, string if named).
|
|
347
|
-
*/
|
|
348
|
-
export declare const getQueryParam: (prop: AST.PropertySignature) => string | boolean | undefined;
|
|
349
|
-
/**
|
|
350
|
-
* Get header param name from a PropertySignature.
|
|
351
|
-
*/
|
|
352
|
-
export declare const getHeaderParam: (prop: AST.PropertySignature) => string | undefined;
|
|
353
|
-
/**
|
|
354
|
-
* Get API error code from an error class AST.
|
|
355
|
-
*/
|
|
356
|
-
export declare const getApiErrorCode: (ast: AST.AST) => string | undefined;
|
|
357
|
-
/**
|
|
358
|
-
* Get service metadata from a schema's AST.
|
|
359
|
-
*/
|
|
360
|
-
export declare const getServiceTrait: (ast: AST.AST) => ServiceTrait | undefined;
|
|
361
|
-
/**
|
|
362
|
-
* Extract path parameters from a schema's struct properties.
|
|
363
|
-
* Returns an array of field names that have the PathParam annotation.
|
|
364
|
-
*/
|
|
365
|
-
export declare const getPathParams: (ast: AST.AST) => string[];
|
|
366
|
-
/**
|
|
367
|
-
* Build the request path by substituting path parameters into the template.
|
|
368
|
-
* Simple version that assumes input keys match template placeholders.
|
|
369
|
-
* For schema-aware path building (with camelCase → wire_name mapping), use buildPathFromSchema.
|
|
370
|
-
*/
|
|
371
|
-
export declare const buildPath: (template: string, input: Record<string, unknown>) => string;
|
|
372
|
-
/**
|
|
373
|
-
* Extract AST property signatures from a schema AST, following encoding chain and suspends.
|
|
374
|
-
*/
|
|
375
|
-
export declare const getStructProps: (ast: AST.AST) => AST.PropertySignature[];
|
|
376
|
-
/**
|
|
377
|
-
* Get the path parameter wire name from a PropertySignature.
|
|
378
|
-
* - For HttpPath("wire_name"), returns the wire name string.
|
|
379
|
-
* - For PathParam(), returns the property name (since annotation is `true`).
|
|
380
|
-
* - Returns undefined if not a path param.
|
|
381
|
-
*/
|
|
382
|
-
export declare const getPathParamWireName: (prop: AST.PropertySignature) => string | undefined;
|
|
383
|
-
/**
|
|
384
|
-
* Result of categorizing a schema's input properties by their HTTP binding.
|
|
385
|
-
*/
|
|
386
|
-
export interface RequestParts {
|
|
387
|
-
/** Resolved path with all parameters substituted */
|
|
388
|
-
path: string;
|
|
389
|
-
/** Query parameters: wire_name → string value */
|
|
390
|
-
query: Record<string, string | string[]>;
|
|
391
|
-
/** Header parameters: header-name → string value */
|
|
392
|
-
headers: Record<string, string>;
|
|
393
|
-
/** Body: remaining non-path/query/header properties, with wire-name keys where applicable */
|
|
394
|
-
body: Record<string, unknown> | undefined;
|
|
395
|
-
/** Whether the body should use multipart/form-data */
|
|
396
|
-
isMultipart: boolean;
|
|
397
|
-
}
|
|
398
|
-
export declare const buildRequestParts: (ast: AST.AST, httpTrait: HttpTrait, rawInput: Record<string, unknown>, inputSchema?: any) => RequestParts;
|
|
399
|
-
/**
|
|
400
|
-
* Build the response object for a binary-download operation
|
|
401
|
-
* (`T.Http({ responseContentType: "binary" })`).
|
|
402
|
-
*
|
|
403
|
-
* The output schema is expected to be a Struct with one field annotated
|
|
404
|
-
* `T.BinaryResponseBody()` (the `body` field — populated with the supplied
|
|
405
|
-
* `Stream`) and zero-or-more sibling fields annotated
|
|
406
|
-
* `T.HttpResponseHeader(name)` (populated by reading the named response
|
|
407
|
-
* header). Header lookups are case-insensitive.
|
|
408
|
-
*
|
|
409
|
-
* Header values are coerced to the field's declared primitive type so that
|
|
410
|
-
* `content-length` lands as a `number`, `last-modified` as a `Date` (when
|
|
411
|
-
* the schema declares `Schema.Date`), etc. Anything more exotic stays a
|
|
412
|
-
* raw string.
|
|
413
|
-
*/
|
|
414
|
-
export declare const buildBinaryResponse: (ast: AST.AST, body: unknown, responseHeaders: Record<string, string>) => Record<string, unknown>;
|
|
415
|
-
/**
|
|
416
|
-
* Helper to get a value from an object using a dot-separated path.
|
|
417
|
-
* Used for pagination traits and nested property access.
|
|
418
|
-
*/
|
|
419
|
-
export declare const getPath: (obj: unknown, path: string) => unknown;
|
|
420
|
-
export {};
|
|
421
|
-
//# sourceMappingURL=traits.d.ts.map
|
package/lib/traits.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"traits.d.ts","sourceRoot":"","sources":["../src/traits.ts"],"names":[],"mappings":"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"}
|