@distilled.cloud/core 0.0.0-john
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/README.md +30 -0
- package/lib/category.d.ts +260 -0
- package/lib/category.d.ts.map +1 -0
- package/lib/category.js +264 -0
- package/lib/category.js.map +1 -0
- package/lib/client.d.ts +149 -0
- package/lib/client.d.ts.map +1 -0
- package/lib/client.js +342 -0
- package/lib/client.js.map +1 -0
- package/lib/errors.d.ts +211 -0
- package/lib/errors.d.ts.map +1 -0
- package/lib/errors.js +138 -0
- package/lib/errors.js.map +1 -0
- package/lib/json-patch.d.ts +44 -0
- package/lib/json-patch.d.ts.map +1 -0
- package/lib/json-patch.js +208 -0
- package/lib/json-patch.js.map +1 -0
- package/lib/pagination.d.ts +85 -0
- package/lib/pagination.d.ts.map +1 -0
- package/lib/pagination.js +177 -0
- package/lib/pagination.js.map +1 -0
- package/lib/retry.d.ts +99 -0
- package/lib/retry.d.ts.map +1 -0
- package/lib/retry.js +106 -0
- package/lib/retry.js.map +1 -0
- package/lib/sensitive.d.ts +50 -0
- package/lib/sensitive.d.ts.map +1 -0
- package/lib/sensitive.js +64 -0
- package/lib/sensitive.js.map +1 -0
- package/lib/traits.d.ts +274 -0
- package/lib/traits.d.ts.map +1 -0
- package/lib/traits.js +479 -0
- package/lib/traits.js.map +1 -0
- package/package.json +80 -0
- package/src/category.ts +406 -0
- package/src/client.ts +631 -0
- package/src/errors.ts +178 -0
- package/src/json-patch.ts +261 -0
- package/src/pagination.ts +303 -0
- package/src/retry.ts +177 -0
- package/src/sensitive.ts +74 -0
- package/src/traits.ts +641 -0
package/lib/traits.d.ts
ADDED
|
@@ -0,0 +1,274 @@
|
|
|
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
|
+
/** Content type override (e.g., "multipart") */
|
|
56
|
+
contentType?: string;
|
|
57
|
+
/** Whether the request has a body (used by GCP generator) */
|
|
58
|
+
hasBody?: boolean;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Http trait - defines the HTTP method and path template for an operation.
|
|
62
|
+
* Path parameters are specified using {paramName} syntax.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```ts
|
|
66
|
+
* const GetDatabaseInput = Schema.Struct({
|
|
67
|
+
* organization: Schema.String.pipe(T.PathParam()),
|
|
68
|
+
* database: Schema.String.pipe(T.PathParam()),
|
|
69
|
+
* }).pipe(
|
|
70
|
+
* T.Http({ method: "GET", path: "/organizations/{organization}/databases/{database}" })
|
|
71
|
+
* );
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export declare const Http: (trait: HttpTrait) => Annotation;
|
|
75
|
+
/** Symbol for path parameter annotation */
|
|
76
|
+
export declare const pathParamSymbol: unique symbol;
|
|
77
|
+
/**
|
|
78
|
+
* PathParam trait - marks a field as a path parameter.
|
|
79
|
+
* The field name is used as the placeholder name in the path template.
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```ts
|
|
83
|
+
* const Input = Schema.Struct({
|
|
84
|
+
* organization: Schema.String.pipe(T.PathParam()),
|
|
85
|
+
* }).pipe(
|
|
86
|
+
* T.Http({ method: "GET", path: "/organizations/{organization}" })
|
|
87
|
+
* );
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
export declare const PathParam: () => Annotation;
|
|
91
|
+
/** Symbol for query parameter annotation */
|
|
92
|
+
export declare const queryParamSymbol: unique symbol;
|
|
93
|
+
/**
|
|
94
|
+
* QueryParam trait - marks a field as a query parameter.
|
|
95
|
+
* Optionally specify a different wire name.
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```ts
|
|
99
|
+
* const Input = Schema.Struct({
|
|
100
|
+
* perPage: Schema.optional(Schema.Number).pipe(T.QueryParam("per_page")),
|
|
101
|
+
* });
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
export declare const QueryParam: (name?: string | undefined) => Annotation;
|
|
105
|
+
/** Symbol for header parameter annotation */
|
|
106
|
+
export declare const headerParamSymbol: unique symbol;
|
|
107
|
+
/**
|
|
108
|
+
* HeaderParam trait - marks a field as a header parameter.
|
|
109
|
+
* Specify the header name.
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```ts
|
|
113
|
+
* const Input = Schema.Struct({
|
|
114
|
+
* apiToken: Schema.String.pipe(T.HeaderParam("X-API-Token")),
|
|
115
|
+
* });
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
export declare const HeaderParam: (name: string) => Annotation;
|
|
119
|
+
/**
|
|
120
|
+
* HttpPath - alias for PathParam that also carries the wire name.
|
|
121
|
+
* Used in generated code: `Schema.String.pipe(T.HttpPath("account_id"))`
|
|
122
|
+
*/
|
|
123
|
+
export declare const HttpPath: (name: string) => Annotation;
|
|
124
|
+
/**
|
|
125
|
+
* HttpQuery - alias for QueryParam with an explicit wire name.
|
|
126
|
+
* Used in generated code: `Schema.optional(Schema.String).pipe(T.HttpQuery("per_page"))`
|
|
127
|
+
*/
|
|
128
|
+
export declare const HttpQuery: (name: string) => Annotation;
|
|
129
|
+
/**
|
|
130
|
+
* HttpHeader - alias for HeaderParam.
|
|
131
|
+
* Used in generated code: `Schema.String.pipe(T.HttpHeader("X-Custom-Header"))`
|
|
132
|
+
*/
|
|
133
|
+
export declare const HttpHeader: (name: string) => Annotation;
|
|
134
|
+
/** Symbol for HTTP body annotation */
|
|
135
|
+
export declare const httpBodySymbol: unique symbol;
|
|
136
|
+
/**
|
|
137
|
+
* HttpBody - marks a field as the raw HTTP body.
|
|
138
|
+
* Used for operations where a field IS the entire request body
|
|
139
|
+
* (not a named field within a JSON body).
|
|
140
|
+
*/
|
|
141
|
+
export declare const HttpBody: () => Annotation;
|
|
142
|
+
/** Symbol for response body path transformation */
|
|
143
|
+
export declare const responsePathSymbol: unique symbol;
|
|
144
|
+
/**
|
|
145
|
+
* ResponsePath - decode the response from a nested path within the raw body.
|
|
146
|
+
* Useful for providers that wrap successful responses in envelopes like
|
|
147
|
+
* `{ result: <payload>, result_info: ... }`.
|
|
148
|
+
*/
|
|
149
|
+
export declare const ResponsePath: (path: string) => Annotation;
|
|
150
|
+
/** Symbol for form data file annotation */
|
|
151
|
+
export declare const httpFormDataFileSymbol: unique symbol;
|
|
152
|
+
/**
|
|
153
|
+
* HttpFormDataFile - marks a field as a file upload in multipart form data.
|
|
154
|
+
*/
|
|
155
|
+
export declare const HttpFormDataFile: () => Annotation;
|
|
156
|
+
/** Symbol for API error code mapping */
|
|
157
|
+
export declare const apiErrorCodeSymbol: unique symbol;
|
|
158
|
+
/**
|
|
159
|
+
* ApiErrorCode trait - maps an error class to an API error code.
|
|
160
|
+
* Used to match API error responses to typed error classes.
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* ```ts
|
|
164
|
+
* class NotFoundError extends Schema.TaggedErrorClass<NotFoundError>()(
|
|
165
|
+
* "NotFoundError",
|
|
166
|
+
* { message: Schema.String },
|
|
167
|
+
* ).pipe(T.ApiErrorCode("not_found")) {}
|
|
168
|
+
* ```
|
|
169
|
+
*/
|
|
170
|
+
export declare const ApiErrorCode: (code: string) => Annotation;
|
|
171
|
+
/** Symbol for service metadata */
|
|
172
|
+
export declare const serviceSymbol: unique symbol;
|
|
173
|
+
/** Service metadata */
|
|
174
|
+
export interface ServiceTrait {
|
|
175
|
+
name: string;
|
|
176
|
+
version?: string;
|
|
177
|
+
baseUrl?: string;
|
|
178
|
+
/** GCP-specific: Root URL for the service */
|
|
179
|
+
rootUrl?: string;
|
|
180
|
+
/** GCP-specific: Service path appended to root URL */
|
|
181
|
+
servicePath?: string;
|
|
182
|
+
/** Allow additional properties for provider-specific metadata */
|
|
183
|
+
[key: string]: unknown;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Service trait - attaches service metadata to a schema.
|
|
187
|
+
*/
|
|
188
|
+
export declare const Service: (trait: ServiceTrait) => Annotation;
|
|
189
|
+
/**
|
|
190
|
+
* Get annotation value from an AST node, following encoding chain if needed.
|
|
191
|
+
*/
|
|
192
|
+
export declare const getAnnotation: <T>(ast: AST.AST, symbol: symbol) => T | undefined;
|
|
193
|
+
/**
|
|
194
|
+
* Get HTTP trait from a schema's AST.
|
|
195
|
+
*/
|
|
196
|
+
export declare const getHttpTrait: (ast: AST.AST) => HttpTrait | undefined;
|
|
197
|
+
export declare const getResponsePath: (ast: AST.AST) => string | undefined;
|
|
198
|
+
/**
|
|
199
|
+
* Check if a PropertySignature has the pathParam annotation.
|
|
200
|
+
* Works for both PathParam() (annotation value = true) and HttpPath("wire_name") (annotation value = string).
|
|
201
|
+
*/
|
|
202
|
+
export declare const isPathParam: (prop: AST.PropertySignature) => boolean;
|
|
203
|
+
/**
|
|
204
|
+
* Get query param name from a PropertySignature (returns true if unnamed, string if named).
|
|
205
|
+
*/
|
|
206
|
+
export declare const getQueryParam: (prop: AST.PropertySignature) => string | boolean | undefined;
|
|
207
|
+
/**
|
|
208
|
+
* Get header param name from a PropertySignature.
|
|
209
|
+
*/
|
|
210
|
+
export declare const getHeaderParam: (prop: AST.PropertySignature) => string | undefined;
|
|
211
|
+
/**
|
|
212
|
+
* Get API error code from an error class AST.
|
|
213
|
+
*/
|
|
214
|
+
export declare const getApiErrorCode: (ast: AST.AST) => string | undefined;
|
|
215
|
+
/**
|
|
216
|
+
* Get service metadata from a schema's AST.
|
|
217
|
+
*/
|
|
218
|
+
export declare const getServiceTrait: (ast: AST.AST) => ServiceTrait | undefined;
|
|
219
|
+
/**
|
|
220
|
+
* Extract path parameters from a schema's struct properties.
|
|
221
|
+
* Returns an array of field names that have the PathParam annotation.
|
|
222
|
+
*/
|
|
223
|
+
export declare const getPathParams: (ast: AST.AST) => string[];
|
|
224
|
+
/**
|
|
225
|
+
* Build the request path by substituting path parameters into the template.
|
|
226
|
+
* Simple version that assumes input keys match template placeholders.
|
|
227
|
+
* For schema-aware path building (with camelCase → wire_name mapping), use buildPathFromSchema.
|
|
228
|
+
*/
|
|
229
|
+
export declare const buildPath: (template: string, input: Record<string, unknown>) => string;
|
|
230
|
+
/**
|
|
231
|
+
* Extract AST property signatures from a schema AST, following encoding chain and suspends.
|
|
232
|
+
*/
|
|
233
|
+
export declare const getStructProps: (ast: AST.AST) => AST.PropertySignature[];
|
|
234
|
+
/**
|
|
235
|
+
* Get the path parameter wire name from a PropertySignature.
|
|
236
|
+
* - For HttpPath("wire_name"), returns the wire name string.
|
|
237
|
+
* - For PathParam(), returns the property name (since annotation is `true`).
|
|
238
|
+
* - Returns undefined if not a path param.
|
|
239
|
+
*/
|
|
240
|
+
export declare const getPathParamWireName: (prop: AST.PropertySignature) => string | undefined;
|
|
241
|
+
/**
|
|
242
|
+
* Result of categorizing a schema's input properties by their HTTP binding.
|
|
243
|
+
*/
|
|
244
|
+
export interface RequestParts {
|
|
245
|
+
/** Resolved path with all parameters substituted */
|
|
246
|
+
path: string;
|
|
247
|
+
/** Query parameters: wire_name → string value */
|
|
248
|
+
query: Record<string, string | string[]>;
|
|
249
|
+
/** Header parameters: header-name → string value */
|
|
250
|
+
headers: Record<string, string>;
|
|
251
|
+
/** Body: remaining non-path/query/header properties, with wire-name keys where applicable */
|
|
252
|
+
body: Record<string, unknown> | undefined;
|
|
253
|
+
/** Whether the body should use multipart/form-data */
|
|
254
|
+
isMultipart: boolean;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Schema-aware request builder. Categorizes input properties into path, query, header,
|
|
258
|
+
* and body parts using annotations on the schema AST.
|
|
259
|
+
*
|
|
260
|
+
* Handles camelCase → wire_name mapping for path params (HttpPath), query params (HttpQuery),
|
|
261
|
+
* and header params (HttpHeader).
|
|
262
|
+
*
|
|
263
|
+
* When `inputSchema` is provided, uses `Schema.encodeSync` to encode the input through the
|
|
264
|
+
* schema's encoding pipeline (e.g., `encodeKeys` for camelCase → snake_case mapping).
|
|
265
|
+
* The encoded output is used for body construction, ensuring wire-format key names.
|
|
266
|
+
*/
|
|
267
|
+
export declare const buildRequestParts: (ast: AST.AST, httpTrait: HttpTrait, input: Record<string, unknown>, inputSchema?: any) => RequestParts;
|
|
268
|
+
/**
|
|
269
|
+
* Helper to get a value from an object using a dot-separated path.
|
|
270
|
+
* Used for pagination traits and nested property access.
|
|
271
|
+
*/
|
|
272
|
+
export declare const getPath: (obj: unknown, path: string) => unknown;
|
|
273
|
+
export {};
|
|
274
|
+
//# sourceMappingURL=traits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traits.d.ts","sourceRoot":"","sources":["../src/traits.ts"],"names":[],"mappings":"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"}
|