@effect/platform 0.72.2 → 0.73.0
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 +637 -0
- package/Url/package.json +6 -0
- package/dist/cjs/HttpApi.js.map +1 -1
- package/dist/cjs/HttpApiEndpoint.js.map +1 -1
- package/dist/cjs/HttpApiGroup.js.map +1 -1
- package/dist/cjs/OpenApi.js +82 -42
- package/dist/cjs/OpenApi.js.map +1 -1
- package/dist/cjs/Runtime.js.map +1 -1
- package/dist/cjs/Url.js +259 -0
- package/dist/cjs/Url.js.map +1 -0
- package/dist/cjs/index.js +3 -1
- package/dist/dts/HttpApi.d.ts +1 -2
- package/dist/dts/HttpApi.d.ts.map +1 -1
- package/dist/dts/HttpApiBuilder.d.ts +1 -1
- package/dist/dts/HttpApiBuilder.d.ts.map +1 -1
- package/dist/dts/HttpApiEndpoint.d.ts +16 -8
- package/dist/dts/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/dts/HttpApiGroup.d.ts +1 -2
- package/dist/dts/HttpApiGroup.d.ts.map +1 -1
- package/dist/dts/OpenApi.d.ts +100 -110
- package/dist/dts/OpenApi.d.ts.map +1 -1
- package/dist/dts/Runtime.d.ts +48 -0
- package/dist/dts/Runtime.d.ts.map +1 -1
- package/dist/dts/Url.d.ts +591 -0
- package/dist/dts/Url.d.ts.map +1 -0
- package/dist/dts/index.d.ts +4 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/esm/HttpApi.js.map +1 -1
- package/dist/esm/HttpApiEndpoint.js.map +1 -1
- package/dist/esm/HttpApiGroup.js.map +1 -1
- package/dist/esm/OpenApi.js +82 -41
- package/dist/esm/OpenApi.js.map +1 -1
- package/dist/esm/Runtime.js.map +1 -1
- package/dist/esm/Url.js +248 -0
- package/dist/esm/Url.js.map +1 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/package.json +10 -2
- package/src/HttpApi.ts +2 -3
- package/src/HttpApiBuilder.ts +1 -1
- package/src/HttpApiEndpoint.ts +22 -13
- package/src/HttpApiGroup.ts +2 -3
- package/src/OpenApi.ts +174 -181
- package/src/Runtime.ts +48 -0
- package/src/Url.ts +632 -0
- package/src/index.ts +5 -0
package/dist/dts/OpenApi.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
+
import type { NonEmptyArray } from "effect/Array";
|
|
4
5
|
import * as Context from "effect/Context";
|
|
5
|
-
import type { ReadonlyRecord } from "effect/Record";
|
|
6
6
|
import * as HttpApi from "./HttpApi.js";
|
|
7
|
+
import type { HttpApiGroup } from "./HttpApiGroup.js";
|
|
7
8
|
import * as JsonSchema from "./OpenApiJsonSchema.js";
|
|
8
9
|
declare const Identifier_base: Context.TagClass<Identifier, "@effect/platform/OpenApi/Identifier", string>;
|
|
9
10
|
/**
|
|
@@ -117,83 +118,120 @@ export declare const annotations: (options: {
|
|
|
117
118
|
readonly transform?: ((openApiSpec: Record<string, any>) => Record<string, any>) | undefined;
|
|
118
119
|
}) => Context.Context<never>;
|
|
119
120
|
/**
|
|
121
|
+
* Converts an `HttpApi` instance into an OpenAPI Specification object.
|
|
122
|
+
*
|
|
123
|
+
* **Details**
|
|
124
|
+
*
|
|
125
|
+
* This function takes an `HttpApi` instance, which defines a structured API,
|
|
126
|
+
* and generates an OpenAPI Specification (`OpenAPISpec`). The resulting spec
|
|
127
|
+
* adheres to the OpenAPI 3.1.0 standard and includes detailed metadata such as
|
|
128
|
+
* paths, operations, security schemes, and components. The function processes
|
|
129
|
+
* the API's annotations, middleware, groups, and endpoints to build a complete
|
|
130
|
+
* and accurate representation of the API in OpenAPI format.
|
|
131
|
+
*
|
|
132
|
+
* The function also deduplicates schemas, applies transformations, and
|
|
133
|
+
* integrates annotations like descriptions, summaries, external documentation,
|
|
134
|
+
* and overrides. Cached results are used for better performance when the same
|
|
135
|
+
* `HttpApi` instance is processed multiple times.
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```ts
|
|
139
|
+
* import { HttpApi, HttpApiEndpoint, HttpApiGroup, OpenApi } from "@effect/platform"
|
|
140
|
+
* import { Schema } from "effect"
|
|
141
|
+
*
|
|
142
|
+
* const api = HttpApi.make("api").add(
|
|
143
|
+
* HttpApiGroup.make("group").add(
|
|
144
|
+
* HttpApiEndpoint.get("get", "/items")
|
|
145
|
+
* .addSuccess(Schema.Array(Schema.String))
|
|
146
|
+
* )
|
|
147
|
+
* )
|
|
148
|
+
*
|
|
149
|
+
* const spec = OpenApi.fromApi(api)
|
|
150
|
+
*
|
|
151
|
+
* // console.log(JSON.stringify(spec, null, 2))
|
|
152
|
+
* // Output: OpenAPI specification in JSON format
|
|
153
|
+
* ```
|
|
154
|
+
*
|
|
120
155
|
* @category constructors
|
|
121
156
|
* @since 1.0.0
|
|
122
157
|
*/
|
|
123
|
-
export declare const fromApi: <
|
|
158
|
+
export declare const fromApi: <Id extends string, Groups extends HttpApiGroup.Any, E, R>(api: HttpApi.HttpApi<Id, Groups, E, R>) => OpenAPISpec;
|
|
124
159
|
/**
|
|
160
|
+
* This model describes the OpenAPI specification (version 3.1.0) returned by
|
|
161
|
+
* {@link fromApi}. It is not intended to describe the entire OpenAPI
|
|
162
|
+
* specification, only the output of `fromApi`.
|
|
163
|
+
*
|
|
125
164
|
* @category models
|
|
126
165
|
* @since 1.0.0
|
|
127
166
|
*/
|
|
128
167
|
export interface OpenAPISpec {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
readonly externalDocs?: OpenAPISpecExternalDocs;
|
|
168
|
+
openapi: "3.1.0";
|
|
169
|
+
info: OpenAPISpecInfo;
|
|
170
|
+
paths: OpenAPISpecPaths;
|
|
171
|
+
components: OpenAPIComponents;
|
|
172
|
+
security: Array<OpenAPISecurityRequirement>;
|
|
173
|
+
tags: Array<OpenAPISpecTag>;
|
|
174
|
+
servers?: Array<OpenAPISpecServer>;
|
|
137
175
|
}
|
|
138
176
|
/**
|
|
139
177
|
* @category models
|
|
140
178
|
* @since 1.0.0
|
|
141
179
|
*/
|
|
142
180
|
export interface OpenAPISpecInfo {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
181
|
+
title: string;
|
|
182
|
+
version: string;
|
|
183
|
+
description?: string;
|
|
184
|
+
license?: OpenAPISpecLicense;
|
|
185
|
+
summary?: string;
|
|
148
186
|
}
|
|
149
187
|
/**
|
|
150
188
|
* @category models
|
|
151
189
|
* @since 1.0.0
|
|
152
190
|
*/
|
|
153
191
|
export interface OpenAPISpecTag {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
192
|
+
name: string;
|
|
193
|
+
description?: string;
|
|
194
|
+
externalDocs?: OpenAPISpecExternalDocs;
|
|
157
195
|
}
|
|
158
196
|
/**
|
|
159
197
|
* @category models
|
|
160
198
|
* @since 1.0.0
|
|
161
199
|
*/
|
|
162
200
|
export interface OpenAPISpecExternalDocs {
|
|
163
|
-
|
|
164
|
-
|
|
201
|
+
url: string;
|
|
202
|
+
description?: string;
|
|
165
203
|
}
|
|
166
204
|
/**
|
|
167
205
|
* @category models
|
|
168
206
|
* @since 1.0.0
|
|
169
207
|
*/
|
|
170
208
|
export interface OpenAPISpecLicense {
|
|
171
|
-
|
|
172
|
-
|
|
209
|
+
name: string;
|
|
210
|
+
url?: string;
|
|
173
211
|
}
|
|
174
212
|
/**
|
|
175
213
|
* @category models
|
|
176
214
|
* @since 1.0.0
|
|
177
215
|
*/
|
|
178
216
|
export interface OpenAPISpecServer {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
217
|
+
url: string;
|
|
218
|
+
description?: string;
|
|
219
|
+
variables?: Record<string, OpenAPISpecServerVariable>;
|
|
182
220
|
}
|
|
183
221
|
/**
|
|
184
222
|
* @category models
|
|
185
223
|
* @since 1.0.0
|
|
186
224
|
*/
|
|
187
225
|
export interface OpenAPISpecServerVariable {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
226
|
+
default: string;
|
|
227
|
+
enum?: NonEmptyArray<string>;
|
|
228
|
+
description?: string;
|
|
191
229
|
}
|
|
192
230
|
/**
|
|
193
231
|
* @category models
|
|
194
232
|
* @since 1.0.0
|
|
195
233
|
*/
|
|
196
|
-
export type OpenAPISpecPaths =
|
|
234
|
+
export type OpenAPISpecPaths = Record<string, OpenAPISpecPathItem>;
|
|
197
235
|
/**
|
|
198
236
|
* @category models
|
|
199
237
|
* @since 1.0.0
|
|
@@ -204,24 +242,18 @@ export type OpenAPISpecMethodName = "get" | "put" | "post" | "delete" | "options
|
|
|
204
242
|
* @since 1.0.0
|
|
205
243
|
*/
|
|
206
244
|
export type OpenAPISpecPathItem = {
|
|
207
|
-
|
|
208
|
-
} & {
|
|
209
|
-
readonly summary?: string;
|
|
210
|
-
readonly description?: string;
|
|
211
|
-
readonly parameters?: Array<OpenAPISpecParameter>;
|
|
245
|
+
[K in OpenAPISpecMethodName]?: OpenAPISpecOperation;
|
|
212
246
|
};
|
|
213
247
|
/**
|
|
214
248
|
* @category models
|
|
215
249
|
* @since 1.0.0
|
|
216
250
|
*/
|
|
217
251
|
export interface OpenAPISpecParameter {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
readonly deprecated?: boolean;
|
|
224
|
-
readonly allowEmptyValue?: boolean;
|
|
252
|
+
name: string;
|
|
253
|
+
in: "query" | "header" | "path" | "cookie";
|
|
254
|
+
schema: JsonSchema.JsonSchema;
|
|
255
|
+
required: boolean;
|
|
256
|
+
description?: string;
|
|
225
257
|
}
|
|
226
258
|
/**
|
|
227
259
|
* @category models
|
|
@@ -238,55 +270,38 @@ export type OpenApiSpecContentType = "application/json" | "application/xml" | "a
|
|
|
238
270
|
* @since 1.0.0
|
|
239
271
|
*/
|
|
240
272
|
export type OpenApiSpecContent = {
|
|
241
|
-
|
|
273
|
+
[K in OpenApiSpecContentType]?: OpenApiSpecMediaType;
|
|
242
274
|
};
|
|
243
|
-
/**
|
|
244
|
-
* @category models
|
|
245
|
-
* @since 1.0.0
|
|
246
|
-
*/
|
|
247
|
-
export interface OpenApiSpecResponseHeader {
|
|
248
|
-
readonly description?: string;
|
|
249
|
-
readonly schema: JsonSchema.JsonSchema;
|
|
250
|
-
}
|
|
251
|
-
/**
|
|
252
|
-
* @category models
|
|
253
|
-
* @since 1.0.0
|
|
254
|
-
*/
|
|
255
|
-
export type OpenApiSpecResponseHeaders = ReadonlyRecord<string, OpenApiSpecResponseHeader>;
|
|
256
275
|
/**
|
|
257
276
|
* @category models
|
|
258
277
|
* @since 1.0.0
|
|
259
278
|
*/
|
|
260
279
|
export interface OpenApiSpecResponse {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
readonly description: string;
|
|
280
|
+
description: string;
|
|
281
|
+
content?: OpenApiSpecContent;
|
|
264
282
|
}
|
|
265
283
|
/**
|
|
266
284
|
* @category models
|
|
267
285
|
* @since 1.0.0
|
|
268
286
|
*/
|
|
269
287
|
export interface OpenApiSpecMediaType {
|
|
270
|
-
|
|
271
|
-
readonly example?: object;
|
|
272
|
-
readonly description?: string;
|
|
288
|
+
schema: JsonSchema.JsonSchema;
|
|
273
289
|
}
|
|
274
290
|
/**
|
|
275
291
|
* @category models
|
|
276
292
|
* @since 1.0.0
|
|
277
293
|
*/
|
|
278
294
|
export interface OpenAPISpecRequestBody {
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
readonly required?: boolean;
|
|
295
|
+
content: OpenApiSpecContent;
|
|
296
|
+
required: true;
|
|
282
297
|
}
|
|
283
298
|
/**
|
|
284
299
|
* @category models
|
|
285
300
|
* @since 1.0.0
|
|
286
301
|
*/
|
|
287
302
|
export interface OpenAPIComponents {
|
|
288
|
-
|
|
289
|
-
|
|
303
|
+
schemas: Record<string, JsonSchema.JsonSchema>;
|
|
304
|
+
securitySchemes: Record<string, OpenAPISecurityScheme>;
|
|
290
305
|
}
|
|
291
306
|
/**
|
|
292
307
|
* @category models
|
|
@@ -294,9 +309,9 @@ export interface OpenAPIComponents {
|
|
|
294
309
|
*/
|
|
295
310
|
export interface OpenAPIHTTPSecurityScheme {
|
|
296
311
|
readonly type: "http";
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
312
|
+
scheme: "bearer" | "basic" | string;
|
|
313
|
+
description?: string;
|
|
314
|
+
bearerFormat?: string;
|
|
300
315
|
}
|
|
301
316
|
/**
|
|
302
317
|
* @category models
|
|
@@ -304,61 +319,36 @@ export interface OpenAPIHTTPSecurityScheme {
|
|
|
304
319
|
*/
|
|
305
320
|
export interface OpenAPIApiKeySecurityScheme {
|
|
306
321
|
readonly type: "apiKey";
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
}
|
|
311
|
-
/**
|
|
312
|
-
* @category models
|
|
313
|
-
* @since 1.0.0
|
|
314
|
-
*/
|
|
315
|
-
export interface OpenAPIMutualTLSSecurityScheme {
|
|
316
|
-
readonly type: "mutualTLS";
|
|
317
|
-
readonly description?: string;
|
|
318
|
-
}
|
|
319
|
-
/**
|
|
320
|
-
* @category models
|
|
321
|
-
* @since 1.0.0
|
|
322
|
-
*/
|
|
323
|
-
export interface OpenAPIOAuth2SecurityScheme {
|
|
324
|
-
readonly type: "oauth2";
|
|
325
|
-
readonly description?: string;
|
|
326
|
-
readonly flows: ReadonlyRecord<"implicit" | "password" | "clientCredentials" | "authorizationCode", ReadonlyRecord<string, unknown>>;
|
|
327
|
-
}
|
|
328
|
-
/**
|
|
329
|
-
* @category models
|
|
330
|
-
* @since 1.0.0
|
|
331
|
-
*/
|
|
332
|
-
export interface OpenAPIOpenIdConnectSecurityScheme {
|
|
333
|
-
readonly type: "openIdConnect";
|
|
334
|
-
readonly description?: string;
|
|
335
|
-
readonly openIdConnectUrl: string;
|
|
322
|
+
name: string;
|
|
323
|
+
in: "query" | "header" | "cookie";
|
|
324
|
+
description?: string;
|
|
336
325
|
}
|
|
337
326
|
/**
|
|
338
327
|
* @category models
|
|
339
328
|
* @since 1.0.0
|
|
340
329
|
*/
|
|
341
|
-
export type OpenAPISecurityScheme = OpenAPIHTTPSecurityScheme | OpenAPIApiKeySecurityScheme
|
|
330
|
+
export type OpenAPISecurityScheme = OpenAPIHTTPSecurityScheme | OpenAPIApiKeySecurityScheme;
|
|
342
331
|
/**
|
|
343
332
|
* @category models
|
|
344
333
|
* @since 1.0.0
|
|
345
334
|
*/
|
|
346
|
-
export type OpenAPISecurityRequirement =
|
|
335
|
+
export type OpenAPISecurityRequirement = Record<string, Array<string>>;
|
|
347
336
|
/**
|
|
348
337
|
* @category models
|
|
349
338
|
* @since 1.0.0
|
|
350
339
|
*/
|
|
351
340
|
export interface OpenAPISpecOperation {
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
341
|
+
operationId: string;
|
|
342
|
+
parameters: Array<OpenAPISpecParameter>;
|
|
343
|
+
responses: OpenAPISpecResponses;
|
|
344
|
+
/** Always contains at least the title annotation or the group identifier */
|
|
345
|
+
tags: NonEmptyArray<string>;
|
|
346
|
+
security: Array<OpenAPISecurityRequirement>;
|
|
347
|
+
requestBody?: OpenAPISpecRequestBody;
|
|
348
|
+
description?: string;
|
|
349
|
+
summary?: string;
|
|
350
|
+
deprecated?: boolean;
|
|
351
|
+
externalDocs?: OpenAPISpecExternalDocs;
|
|
362
352
|
}
|
|
363
353
|
export {};
|
|
364
354
|
//# sourceMappingURL=OpenApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenApi.d.ts","sourceRoot":"","sources":["../../src/OpenApi.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"OpenApi.d.ts","sourceRoot":"","sources":["../../src/OpenApi.ts"],"names":[],"mappings":"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"}
|
package/dist/dts/Runtime.d.ts
CHANGED
|
@@ -18,11 +18,59 @@ export declare const defaultTeardown: Teardown;
|
|
|
18
18
|
* @since 1.0.0
|
|
19
19
|
*/
|
|
20
20
|
export interface RunMain {
|
|
21
|
+
/**
|
|
22
|
+
* Helps you run a main effect with built-in error handling, logging, and signal management.
|
|
23
|
+
*
|
|
24
|
+
* **Details**
|
|
25
|
+
*
|
|
26
|
+
* This function launches an Effect as the main entry point, setting exit codes
|
|
27
|
+
* based on success or failure, handling interrupts (e.g., Ctrl+C), and optionally
|
|
28
|
+
* logging errors. By default, it logs errors and uses a "pretty" format, but both
|
|
29
|
+
* behaviors can be turned off. You can also provide custom teardown logic to
|
|
30
|
+
* finalize resources or produce different exit codes.
|
|
31
|
+
*
|
|
32
|
+
* **Options**
|
|
33
|
+
*
|
|
34
|
+
* An optional object that can include:
|
|
35
|
+
* - `disableErrorReporting`: Turn off automatic error logging.
|
|
36
|
+
* - `disablePrettyLogger`: Avoid adding the pretty logger.
|
|
37
|
+
* - `teardown`: Provide custom finalization logic.
|
|
38
|
+
*
|
|
39
|
+
* **When to Use**
|
|
40
|
+
*
|
|
41
|
+
* Use this function to run an Effect as your application’s main program, especially
|
|
42
|
+
* when you need structured error handling, log management, interrupt support,
|
|
43
|
+
* or advanced teardown capabilities.
|
|
44
|
+
*/
|
|
21
45
|
(options?: {
|
|
22
46
|
readonly disableErrorReporting?: boolean | undefined;
|
|
23
47
|
readonly disablePrettyLogger?: boolean | undefined;
|
|
24
48
|
readonly teardown?: Teardown | undefined;
|
|
25
49
|
}): <E, A>(effect: Effect.Effect<A, E>) => void;
|
|
50
|
+
/**
|
|
51
|
+
* Helps you run a main effect with built-in error handling, logging, and signal management.
|
|
52
|
+
*
|
|
53
|
+
* **Details**
|
|
54
|
+
*
|
|
55
|
+
* This function launches an Effect as the main entry point, setting exit codes
|
|
56
|
+
* based on success or failure, handling interrupts (e.g., Ctrl+C), and optionally
|
|
57
|
+
* logging errors. By default, it logs errors and uses a "pretty" format, but both
|
|
58
|
+
* behaviors can be turned off. You can also provide custom teardown logic to
|
|
59
|
+
* finalize resources or produce different exit codes.
|
|
60
|
+
*
|
|
61
|
+
* **Options**
|
|
62
|
+
*
|
|
63
|
+
* An optional object that can include:
|
|
64
|
+
* - `disableErrorReporting`: Turn off automatic error logging.
|
|
65
|
+
* - `disablePrettyLogger`: Avoid adding the pretty logger.
|
|
66
|
+
* - `teardown`: Provide custom finalization logic.
|
|
67
|
+
*
|
|
68
|
+
* **When to Use**
|
|
69
|
+
*
|
|
70
|
+
* Use this function to run an Effect as your application’s main program, especially
|
|
71
|
+
* when you need structured error handling, log management, interrupt support,
|
|
72
|
+
* or advanced teardown capabilities.
|
|
73
|
+
*/
|
|
26
74
|
<E, A>(effect: Effect.Effect<A, E>, options?: {
|
|
27
75
|
readonly disableErrorReporting?: boolean | undefined;
|
|
28
76
|
readonly disablePrettyLogger?: boolean | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Runtime.d.ts","sourceRoot":"","sources":["../../src/Runtime.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAQ1C;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAA;CACpE;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,QAK7B,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,CACE,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACpD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;KACzC,GACA,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAA;IAC9C,CAAC,CAAC,EAAE,CAAC,EACH,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3B,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACpD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;KACzC,GACA,IAAI,CAAA;CACR;AAiBD;;;GAGG;AACH,eAAO,MAAM,WAAW,MACnB,CAAC,CAAC,EAAE,CAAC,EACN,OAAO,EAAE;IACP,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACxC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;CAC5B,KACE,IAAI,KACR,OAuBC,CAAA"}
|
|
1
|
+
{"version":3,"file":"Runtime.d.ts","sourceRoot":"","sources":["../../src/Runtime.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAQ1C;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAA;CACpE;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,QAK7B,CAAA;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,CACE,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACpD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;KACzC,GACA,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAA;IAC9C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,CAAC,CAAC,EAAE,CAAC,EACH,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3B,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QACpD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;QAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAA;KACzC,GACA,IAAI,CAAA;CACR;AAiBD;;;GAGG;AACH,eAAO,MAAM,WAAW,MACnB,CAAC,CAAC,EAAE,CAAC,EACN,OAAO,EAAE;IACP,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACxC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;CAC5B,KACE,IAAI,KACR,OAuBC,CAAA"}
|