@cat-factory/contracts 0.334.0 → 0.335.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/dist/binary-generators.d.ts +4 -4
- package/dist/cache-policy.d.ts +22 -0
- package/dist/cache-policy.d.ts.map +1 -0
- package/dist/cache-policy.js +111 -0
- package/dist/cache-policy.js.map +1 -0
- package/dist/errors.d.ts +24 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +27 -1
- package/dist/errors.js.map +1 -1
- package/dist/foundational-services.d.ts +16 -9
- package/dist/foundational-services.d.ts.map +1 -1
- package/dist/foundational-services.js +20 -1
- package/dist/foundational-services.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/observability.d.ts +57 -0
- package/dist/observability.d.ts.map +1 -1
- package/dist/observability.js +19 -0
- package/dist/observability.js.map +1 -1
- package/dist/openrouter.d.ts +111 -4
- package/dist/openrouter.d.ts.map +1 -1
- package/dist/openrouter.js +39 -1
- package/dist/openrouter.js.map +1 -1
- package/dist/reserved-env-keys.d.ts.map +1 -1
- package/dist/reserved-env-keys.js +6 -0
- package/dist/reserved-env-keys.js.map +1 -1
- package/dist/routes/execution.d.ts +4 -0
- package/dist/routes/execution.d.ts.map +1 -1
- package/dist/routes/foundational-services.d.ts +8 -8
- package/dist/routes/index.d.ts +1 -0
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +1 -0
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/openrouter.d.ts +16 -0
- package/dist/routes/openrouter.d.ts.map +1 -1
- package/dist/routes/service-catalog.d.ts +298 -0
- package/dist/routes/service-catalog.d.ts.map +1 -0
- package/dist/routes/service-catalog.js +77 -0
- package/dist/routes/service-catalog.js.map +1 -0
- package/dist/service-catalog.d.ts +223 -0
- package/dist/service-catalog.d.ts.map +1 -0
- package/dist/service-catalog.js +234 -0
- package/dist/service-catalog.js.map +1 -0
- package/package.json +1 -1
|
@@ -35,7 +35,7 @@ export declare const listFoundationalServicesContract: {
|
|
|
35
35
|
readonly capabilities: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
36
36
|
readonly contracts: v.ArraySchema<v.ObjectSchema<{
|
|
37
37
|
readonly contractId: v.StringSchema<undefined>;
|
|
38
|
-
readonly format: v.PicklistSchema<["openapi", "toad-contract", "lokalise-api-contract"], undefined>;
|
|
38
|
+
readonly format: v.PicklistSchema<["openapi", "toad-contract", "lokalise-api-contract", "asyncapi", "graphql", "grpc"], undefined>;
|
|
39
39
|
readonly title: v.StringSchema<undefined>;
|
|
40
40
|
readonly size: v.NumberSchema<undefined>;
|
|
41
41
|
readonly path: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
@@ -61,7 +61,7 @@ export declare const createFoundationalServiceContract: {
|
|
|
61
61
|
readonly capabilities: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>, undefined>, undefined>;
|
|
62
62
|
readonly contracts: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
63
63
|
readonly contractId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>, v.RegexAction<string, "must be a lower-kebab slug">]>;
|
|
64
|
-
readonly format: v.PicklistSchema<["openapi", "toad-contract", "lokalise-api-contract"], undefined>;
|
|
64
|
+
readonly format: v.PicklistSchema<["openapi", "toad-contract", "lokalise-api-contract", "asyncapi", "graphql", "grpc"], undefined>;
|
|
65
65
|
readonly title: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
|
|
66
66
|
readonly body: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 1000000, undefined>]>;
|
|
67
67
|
}, undefined>, undefined>, undefined>;
|
|
@@ -79,7 +79,7 @@ export declare const createFoundationalServiceContract: {
|
|
|
79
79
|
capabilities?: string[] | undefined;
|
|
80
80
|
contracts?: {
|
|
81
81
|
contractId: string;
|
|
82
|
-
format: "lokalise-api-contract" | "openapi" | "toad-contract";
|
|
82
|
+
format: "asyncapi" | "graphql" | "grpc" | "lokalise-api-contract" | "openapi" | "toad-contract";
|
|
83
83
|
title: string;
|
|
84
84
|
body: string;
|
|
85
85
|
}[] | undefined;
|
|
@@ -122,7 +122,7 @@ export declare const createFoundationalServiceContract: {
|
|
|
122
122
|
readonly capabilities: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
123
123
|
readonly contracts: v.ArraySchema<v.ObjectSchema<{
|
|
124
124
|
readonly contractId: v.StringSchema<undefined>;
|
|
125
|
-
readonly format: v.PicklistSchema<["openapi", "toad-contract", "lokalise-api-contract"], undefined>;
|
|
125
|
+
readonly format: v.PicklistSchema<["openapi", "toad-contract", "lokalise-api-contract", "asyncapi", "graphql", "grpc"], undefined>;
|
|
126
126
|
readonly title: v.StringSchema<undefined>;
|
|
127
127
|
readonly size: v.NumberSchema<undefined>;
|
|
128
128
|
readonly path: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
@@ -152,7 +152,7 @@ export declare const updateFoundationalServiceContract: {
|
|
|
152
152
|
readonly capabilities: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>]>, undefined>, undefined>;
|
|
153
153
|
readonly contracts: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
154
154
|
readonly contractId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 64, undefined>, v.RegexAction<string, "must be a lower-kebab slug">]>;
|
|
155
|
-
readonly format: v.PicklistSchema<["openapi", "toad-contract", "lokalise-api-contract"], undefined>;
|
|
155
|
+
readonly format: v.PicklistSchema<["openapi", "toad-contract", "lokalise-api-contract", "asyncapi", "graphql", "grpc"], undefined>;
|
|
156
156
|
readonly title: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
|
|
157
157
|
readonly body: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 1000000, undefined>]>;
|
|
158
158
|
}, undefined>, undefined>, undefined>;
|
|
@@ -195,7 +195,7 @@ export declare const updateFoundationalServiceContract: {
|
|
|
195
195
|
readonly capabilities: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
196
196
|
readonly contracts: v.ArraySchema<v.ObjectSchema<{
|
|
197
197
|
readonly contractId: v.StringSchema<undefined>;
|
|
198
|
-
readonly format: v.PicklistSchema<["openapi", "toad-contract", "lokalise-api-contract"], undefined>;
|
|
198
|
+
readonly format: v.PicklistSchema<["openapi", "toad-contract", "lokalise-api-contract", "asyncapi", "graphql", "grpc"], undefined>;
|
|
199
199
|
readonly title: v.StringSchema<undefined>;
|
|
200
200
|
readonly size: v.NumberSchema<undefined>;
|
|
201
201
|
readonly path: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
@@ -283,7 +283,7 @@ export declare const getFoundationalServiceContractsContract: {
|
|
|
283
283
|
}, undefined>;
|
|
284
284
|
readonly 200: v.ArraySchema<v.ObjectSchema<{
|
|
285
285
|
readonly contractId: v.StringSchema<undefined>;
|
|
286
|
-
readonly format: v.PicklistSchema<["openapi", "toad-contract", "lokalise-api-contract"], undefined>;
|
|
286
|
+
readonly format: v.PicklistSchema<["openapi", "toad-contract", "lokalise-api-contract", "asyncapi", "graphql", "grpc"], undefined>;
|
|
287
287
|
readonly title: v.StringSchema<undefined>;
|
|
288
288
|
readonly size: v.NumberSchema<undefined>;
|
|
289
289
|
readonly path: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
@@ -332,7 +332,7 @@ export declare const resolvedFoundationalServicesContract: {
|
|
|
332
332
|
readonly capabilities: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
333
333
|
readonly contracts: v.ArraySchema<v.ObjectSchema<{
|
|
334
334
|
readonly contractId: v.StringSchema<undefined>;
|
|
335
|
-
readonly format: v.PicklistSchema<["openapi", "toad-contract", "lokalise-api-contract"], undefined>;
|
|
335
|
+
readonly format: v.PicklistSchema<["openapi", "toad-contract", "lokalise-api-contract", "asyncapi", "graphql", "grpc"], undefined>;
|
|
336
336
|
readonly title: v.StringSchema<undefined>;
|
|
337
337
|
readonly size: v.NumberSchema<undefined>;
|
|
338
338
|
readonly path: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
package/dist/routes/index.d.ts
CHANGED
|
@@ -66,6 +66,7 @@ export * from './release.js';
|
|
|
66
66
|
export * from './requirements.js';
|
|
67
67
|
export * from './runners.js';
|
|
68
68
|
export * from './sandbox.js';
|
|
69
|
+
export * from './service-catalog.js';
|
|
69
70
|
export * from './service-fragment-defaults.js';
|
|
70
71
|
export * from './services.js';
|
|
71
72
|
export * from './test-secrets.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAGA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gCAAgC,CAAA;AAC9C,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAGA,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA"}
|
package/dist/routes/index.js
CHANGED
|
@@ -69,6 +69,7 @@ export * from './release.js';
|
|
|
69
69
|
export * from './requirements.js';
|
|
70
70
|
export * from './runners.js';
|
|
71
71
|
export * from './sandbox.js';
|
|
72
|
+
export * from './service-catalog.js';
|
|
72
73
|
export * from './service-fragment-defaults.js';
|
|
73
74
|
export * from './services.js';
|
|
74
75
|
export * from './test-secrets.js';
|
package/dist/routes/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,+EAA+E;AAC/E,oDAAoD;AACpD,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,gCAAgC,CAAA;AAC9C,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,+EAA+E;AAC/E,oDAAoD;AACpD,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,iBAAiB,CAAA"}
|
|
@@ -37,6 +37,10 @@ export declare const getOpenRouterCatalogContract: {
|
|
|
37
37
|
readonly contextLength: import("valibot").OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
38
38
|
readonly inputPerMillion: import("valibot").NumberSchema<undefined>;
|
|
39
39
|
readonly outputPerMillion: import("valibot").NumberSchema<undefined>;
|
|
40
|
+
readonly cachedInputPerMillion: import("valibot").OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
41
|
+
readonly cacheWritePerMillion: import("valibot").OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
42
|
+
readonly expirationDate: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").TrimAction, import("valibot").MinLengthAction<string, 1, undefined>, import("valibot").MaxLengthAction<string, 40, undefined>]>, undefined>;
|
|
43
|
+
readonly canonicalSlug: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").TrimAction, import("valibot").MinLengthAction<string, 1, undefined>, import("valibot").MaxLengthAction<string, 200, undefined>]>, undefined>;
|
|
40
44
|
}, undefined>, undefined>;
|
|
41
45
|
readonly createdAt: import("valibot").NumberSchema<undefined>;
|
|
42
46
|
readonly updatedAt: import("valibot").NumberSchema<undefined>;
|
|
@@ -58,6 +62,10 @@ export declare const upsertOpenRouterCatalogContract: {
|
|
|
58
62
|
readonly contextLength: import("valibot").OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
59
63
|
readonly inputPerMillion: import("valibot").NumberSchema<undefined>;
|
|
60
64
|
readonly outputPerMillion: import("valibot").NumberSchema<undefined>;
|
|
65
|
+
readonly cachedInputPerMillion: import("valibot").OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
66
|
+
readonly cacheWritePerMillion: import("valibot").OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
67
|
+
readonly expirationDate: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").TrimAction, import("valibot").MinLengthAction<string, 1, undefined>, import("valibot").MaxLengthAction<string, 40, undefined>]>, undefined>;
|
|
68
|
+
readonly canonicalSlug: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").TrimAction, import("valibot").MinLengthAction<string, 1, undefined>, import("valibot").MaxLengthAction<string, 200, undefined>]>, undefined>;
|
|
61
69
|
}, undefined>, undefined>;
|
|
62
70
|
}, undefined>;
|
|
63
71
|
readonly responsesByStatusCode: {
|
|
@@ -90,6 +98,10 @@ export declare const upsertOpenRouterCatalogContract: {
|
|
|
90
98
|
readonly contextLength: import("valibot").OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
91
99
|
readonly inputPerMillion: import("valibot").NumberSchema<undefined>;
|
|
92
100
|
readonly outputPerMillion: import("valibot").NumberSchema<undefined>;
|
|
101
|
+
readonly cachedInputPerMillion: import("valibot").OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
102
|
+
readonly cacheWritePerMillion: import("valibot").OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
103
|
+
readonly expirationDate: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").TrimAction, import("valibot").MinLengthAction<string, 1, undefined>, import("valibot").MaxLengthAction<string, 40, undefined>]>, undefined>;
|
|
104
|
+
readonly canonicalSlug: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").TrimAction, import("valibot").MinLengthAction<string, 1, undefined>, import("valibot").MaxLengthAction<string, 200, undefined>]>, undefined>;
|
|
93
105
|
}, undefined>, undefined>;
|
|
94
106
|
readonly createdAt: import("valibot").NumberSchema<undefined>;
|
|
95
107
|
readonly updatedAt: import("valibot").NumberSchema<undefined>;
|
|
@@ -136,6 +148,10 @@ export declare const refreshOpenRouterCatalogContract: {
|
|
|
136
148
|
readonly contextLength: import("valibot").OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
137
149
|
readonly inputPerMillion: import("valibot").NumberSchema<undefined>;
|
|
138
150
|
readonly outputPerMillion: import("valibot").NumberSchema<undefined>;
|
|
151
|
+
readonly cachedInputPerMillion: import("valibot").OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
152
|
+
readonly cacheWritePerMillion: import("valibot").OptionalSchema<import("valibot").NumberSchema<undefined>, undefined>;
|
|
153
|
+
readonly expirationDate: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").TrimAction, import("valibot").MinLengthAction<string, 1, undefined>, import("valibot").MaxLengthAction<string, 40, undefined>]>, undefined>;
|
|
154
|
+
readonly canonicalSlug: import("valibot").OptionalSchema<import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").TrimAction, import("valibot").MinLengthAction<string, 1, undefined>, import("valibot").MaxLengthAction<string, 200, undefined>]>, undefined>;
|
|
139
155
|
}, undefined>, undefined>;
|
|
140
156
|
readonly error: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
|
|
141
157
|
}, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../src/routes/openrouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAiB3E,eAAO,MAAM,4BAA4B
|
|
1
|
+
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../src/routes/openrouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAiB3E,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKvC,CAAA;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM1C,CAAA;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM3C,CAAA"}
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
import { ContractNoBody } from '@toad-contracts/valibot';
|
|
2
|
+
import * as v from 'valibot';
|
|
3
|
+
/**
|
|
4
|
+
* The connection, or null when the workspace has none.
|
|
5
|
+
*
|
|
6
|
+
* Null rather than a 404, because the SPA renders the connect FORM off this read: a 404 there
|
|
7
|
+
* would make "not connected yet" indistinguishable from "wrong workspace id" at exactly the
|
|
8
|
+
* moment the panel has to decide which of the two to show.
|
|
9
|
+
*/
|
|
10
|
+
export declare const getServiceCatalogContract: {
|
|
11
|
+
readonly method: "get";
|
|
12
|
+
readonly pathResolver: () => string;
|
|
13
|
+
readonly responsesByStatusCode: {
|
|
14
|
+
readonly '4xx': v.ObjectSchema<{
|
|
15
|
+
readonly error: v.ObjectSchema<{
|
|
16
|
+
readonly code: v.StringSchema<undefined>;
|
|
17
|
+
readonly message: v.StringSchema<undefined>;
|
|
18
|
+
readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
|
|
19
|
+
readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
20
|
+
readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
21
|
+
readonly message: v.StringSchema<undefined>;
|
|
22
|
+
}, undefined>, undefined>, undefined>;
|
|
23
|
+
}, undefined>;
|
|
24
|
+
}, undefined>;
|
|
25
|
+
readonly '5xx': v.ObjectSchema<{
|
|
26
|
+
readonly error: v.ObjectSchema<{
|
|
27
|
+
readonly code: v.StringSchema<undefined>;
|
|
28
|
+
readonly message: v.StringSchema<undefined>;
|
|
29
|
+
readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
|
|
30
|
+
readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
31
|
+
readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
32
|
+
readonly message: v.StringSchema<undefined>;
|
|
33
|
+
}, undefined>, undefined>, undefined>;
|
|
34
|
+
}, undefined>;
|
|
35
|
+
}, undefined>;
|
|
36
|
+
readonly 200: v.NullableSchema<v.ObjectSchema<{
|
|
37
|
+
readonly provider: v.PicklistSchema<["backstage"], undefined>;
|
|
38
|
+
readonly baseUrl: v.StringSchema<undefined>;
|
|
39
|
+
readonly authMode: v.PicklistSchema<["none", "static-token", "legacy-shared-secret", "oauth2-client-credentials", "basic", "headers"], undefined>;
|
|
40
|
+
readonly entityFilter: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
41
|
+
readonly includeApis: v.BooleanSchema<undefined>;
|
|
42
|
+
readonly maxServices: v.NumberSchema<undefined>;
|
|
43
|
+
readonly lastSyncedAt: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
|
|
44
|
+
readonly lastSyncStatus: v.NullableSchema<v.PicklistSchema<["ok", "partial", "failed"], undefined>, undefined>;
|
|
45
|
+
readonly lastSyncMessage: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
46
|
+
readonly connectedAt: v.NumberSchema<undefined>;
|
|
47
|
+
}, undefined>, undefined>;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Connect or REPLACE the workspace's catalog connection.
|
|
52
|
+
*
|
|
53
|
+
* `PUT` rather than `POST`, because a credential has no meaningful partial edit and a second
|
|
54
|
+
* connection has no meaning: the workspace either points at a portal or it does not. Replacing
|
|
55
|
+
* deliberately does NOT drop what a prior connection imported: the next import reconciles
|
|
56
|
+
* against it, so re-entering a rotated token costs no catalog.
|
|
57
|
+
*/
|
|
58
|
+
export declare const connectServiceCatalogContract: {
|
|
59
|
+
readonly method: "put";
|
|
60
|
+
readonly pathResolver: () => string;
|
|
61
|
+
readonly requestBodySchema: v.ObjectSchema<{
|
|
62
|
+
readonly provider: v.OptionalSchema<v.PicklistSchema<["backstage"], undefined>, undefined>;
|
|
63
|
+
readonly baseUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
|
|
64
|
+
readonly auth: v.VariantSchema<"mode", [v.ObjectSchema<{
|
|
65
|
+
readonly mode: v.LiteralSchema<"none", undefined>;
|
|
66
|
+
}, undefined>, v.ObjectSchema<{
|
|
67
|
+
readonly mode: v.LiteralSchema<"static-token", undefined>;
|
|
68
|
+
readonly token: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8000, undefined>]>;
|
|
69
|
+
}, undefined>, v.ObjectSchema<{
|
|
70
|
+
readonly mode: v.LiteralSchema<"legacy-shared-secret", undefined>;
|
|
71
|
+
readonly sharedSecret: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8000, undefined>]>;
|
|
72
|
+
}, undefined>, v.ObjectSchema<{
|
|
73
|
+
readonly mode: v.LiteralSchema<"oauth2-client-credentials", undefined>;
|
|
74
|
+
readonly tokenUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
|
|
75
|
+
readonly clientId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
|
|
76
|
+
readonly clientSecret: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8000, undefined>]>;
|
|
77
|
+
readonly scope: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
78
|
+
readonly audience: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
79
|
+
}, undefined>, v.ObjectSchema<{
|
|
80
|
+
readonly mode: v.LiteralSchema<"basic", undefined>;
|
|
81
|
+
readonly username: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
|
|
82
|
+
readonly password: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8000, undefined>]>;
|
|
83
|
+
}, undefined>, v.ObjectSchema<{
|
|
84
|
+
readonly mode: v.LiteralSchema<"headers", undefined>;
|
|
85
|
+
readonly headers: v.SchemaWithPipe<readonly [v.ArraySchema<v.ObjectSchema<{
|
|
86
|
+
readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 100, undefined>, v.RegexAction<string, "must be a valid HTTP header name">]>;
|
|
87
|
+
readonly value: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8000, undefined>, v.RegexAction<string, "must not contain a line break">]>;
|
|
88
|
+
}, undefined>, undefined>, v.MinLengthAction<{
|
|
89
|
+
name: string;
|
|
90
|
+
value: string;
|
|
91
|
+
}[], 1, undefined>, v.MaxLengthAction<{
|
|
92
|
+
name: string;
|
|
93
|
+
value: string;
|
|
94
|
+
}[], 5, undefined>]>;
|
|
95
|
+
}, undefined>], undefined>;
|
|
96
|
+
readonly entityFilter: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 3, undefined>, v.MaxLengthAction<string, 200, undefined>, v.RegexAction<string, "must be a single `key=value` term (letters, digits and `_.-:/@`)">]>, undefined>, v.MaxLengthAction<string[], 10, undefined>]>, undefined>;
|
|
97
|
+
readonly includeApis: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
|
98
|
+
readonly maxServices: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>]>, undefined>;
|
|
99
|
+
}, undefined>;
|
|
100
|
+
readonly responsesByStatusCode: {
|
|
101
|
+
readonly '4xx': v.ObjectSchema<{
|
|
102
|
+
readonly error: v.ObjectSchema<{
|
|
103
|
+
readonly code: v.StringSchema<undefined>;
|
|
104
|
+
readonly message: v.StringSchema<undefined>;
|
|
105
|
+
readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
|
|
106
|
+
readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
107
|
+
readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
108
|
+
readonly message: v.StringSchema<undefined>;
|
|
109
|
+
}, undefined>, undefined>, undefined>;
|
|
110
|
+
}, undefined>;
|
|
111
|
+
}, undefined>;
|
|
112
|
+
readonly '5xx': v.ObjectSchema<{
|
|
113
|
+
readonly error: v.ObjectSchema<{
|
|
114
|
+
readonly code: v.StringSchema<undefined>;
|
|
115
|
+
readonly message: v.StringSchema<undefined>;
|
|
116
|
+
readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
|
|
117
|
+
readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
118
|
+
readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
119
|
+
readonly message: v.StringSchema<undefined>;
|
|
120
|
+
}, undefined>, undefined>, undefined>;
|
|
121
|
+
}, undefined>;
|
|
122
|
+
}, undefined>;
|
|
123
|
+
readonly 200: v.ObjectSchema<{
|
|
124
|
+
readonly provider: v.PicklistSchema<["backstage"], undefined>;
|
|
125
|
+
readonly baseUrl: v.StringSchema<undefined>;
|
|
126
|
+
readonly authMode: v.PicklistSchema<["none", "static-token", "legacy-shared-secret", "oauth2-client-credentials", "basic", "headers"], undefined>;
|
|
127
|
+
readonly entityFilter: v.ArraySchema<v.StringSchema<undefined>, undefined>;
|
|
128
|
+
readonly includeApis: v.BooleanSchema<undefined>;
|
|
129
|
+
readonly maxServices: v.NumberSchema<undefined>;
|
|
130
|
+
readonly lastSyncedAt: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
|
|
131
|
+
readonly lastSyncStatus: v.NullableSchema<v.PicklistSchema<["ok", "partial", "failed"], undefined>, undefined>;
|
|
132
|
+
readonly lastSyncMessage: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
133
|
+
readonly connectedAt: v.NumberSchema<undefined>;
|
|
134
|
+
}, undefined>;
|
|
135
|
+
};
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Disconnect: forget the credential AND tombstone every foundational service the connection
|
|
139
|
+
* produced.
|
|
140
|
+
*
|
|
141
|
+
* Tombstoning is the point rather than a side effect. Leaving the imported services behind
|
|
142
|
+
* would keep handing agents an estate nothing refreshes and nothing can explain the provenance
|
|
143
|
+
* of, which is worse than an empty catalog because it still reads as current.
|
|
144
|
+
*/
|
|
145
|
+
export declare const disconnectServiceCatalogContract: {
|
|
146
|
+
readonly method: "delete";
|
|
147
|
+
readonly pathResolver: () => string;
|
|
148
|
+
readonly responsesByStatusCode: {
|
|
149
|
+
readonly '4xx': v.ObjectSchema<{
|
|
150
|
+
readonly error: v.ObjectSchema<{
|
|
151
|
+
readonly code: v.StringSchema<undefined>;
|
|
152
|
+
readonly message: v.StringSchema<undefined>;
|
|
153
|
+
readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
|
|
154
|
+
readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
155
|
+
readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
156
|
+
readonly message: v.StringSchema<undefined>;
|
|
157
|
+
}, undefined>, undefined>, undefined>;
|
|
158
|
+
}, undefined>;
|
|
159
|
+
}, undefined>;
|
|
160
|
+
readonly '5xx': v.ObjectSchema<{
|
|
161
|
+
readonly error: v.ObjectSchema<{
|
|
162
|
+
readonly code: v.StringSchema<undefined>;
|
|
163
|
+
readonly message: v.StringSchema<undefined>;
|
|
164
|
+
readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
|
|
165
|
+
readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
166
|
+
readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
167
|
+
readonly message: v.StringSchema<undefined>;
|
|
168
|
+
}, undefined>, undefined>, undefined>;
|
|
169
|
+
}, undefined>;
|
|
170
|
+
}, undefined>;
|
|
171
|
+
readonly 204: typeof ContractNoBody;
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
/**
|
|
175
|
+
* Probe the portal with the SUBMITTED credentials, before they are stored.
|
|
176
|
+
*
|
|
177
|
+
* Takes a body rather than reading the stored row, so the operator finds out that a token is
|
|
178
|
+
* wrong while they still have it on screen. It answers a result rather than throwing for the
|
|
179
|
+
* same reason every other connection test does: a refused connection is the answer.
|
|
180
|
+
*/
|
|
181
|
+
export declare const probeServiceCatalogContract: {
|
|
182
|
+
readonly method: "post";
|
|
183
|
+
readonly pathResolver: () => string;
|
|
184
|
+
readonly requestBodySchema: v.ObjectSchema<{
|
|
185
|
+
readonly provider: v.OptionalSchema<v.PicklistSchema<["backstage"], undefined>, undefined>;
|
|
186
|
+
readonly baseUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
|
|
187
|
+
readonly auth: v.VariantSchema<"mode", [v.ObjectSchema<{
|
|
188
|
+
readonly mode: v.LiteralSchema<"none", undefined>;
|
|
189
|
+
}, undefined>, v.ObjectSchema<{
|
|
190
|
+
readonly mode: v.LiteralSchema<"static-token", undefined>;
|
|
191
|
+
readonly token: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8000, undefined>]>;
|
|
192
|
+
}, undefined>, v.ObjectSchema<{
|
|
193
|
+
readonly mode: v.LiteralSchema<"legacy-shared-secret", undefined>;
|
|
194
|
+
readonly sharedSecret: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8000, undefined>]>;
|
|
195
|
+
}, undefined>, v.ObjectSchema<{
|
|
196
|
+
readonly mode: v.LiteralSchema<"oauth2-client-credentials", undefined>;
|
|
197
|
+
readonly tokenUrl: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 500, undefined>]>;
|
|
198
|
+
readonly clientId: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
|
|
199
|
+
readonly clientSecret: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8000, undefined>]>;
|
|
200
|
+
readonly scope: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
201
|
+
readonly audience: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MaxLengthAction<string, 500, undefined>]>, undefined>;
|
|
202
|
+
}, undefined>, v.ObjectSchema<{
|
|
203
|
+
readonly mode: v.LiteralSchema<"basic", undefined>;
|
|
204
|
+
readonly username: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 200, undefined>]>;
|
|
205
|
+
readonly password: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8000, undefined>]>;
|
|
206
|
+
}, undefined>, v.ObjectSchema<{
|
|
207
|
+
readonly mode: v.LiteralSchema<"headers", undefined>;
|
|
208
|
+
readonly headers: v.SchemaWithPipe<readonly [v.ArraySchema<v.ObjectSchema<{
|
|
209
|
+
readonly name: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 100, undefined>, v.RegexAction<string, "must be a valid HTTP header name">]>;
|
|
210
|
+
readonly value: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 8000, undefined>, v.RegexAction<string, "must not contain a line break">]>;
|
|
211
|
+
}, undefined>, undefined>, v.MinLengthAction<{
|
|
212
|
+
name: string;
|
|
213
|
+
value: string;
|
|
214
|
+
}[], 1, undefined>, v.MaxLengthAction<{
|
|
215
|
+
name: string;
|
|
216
|
+
value: string;
|
|
217
|
+
}[], 5, undefined>]>;
|
|
218
|
+
}, undefined>], undefined>;
|
|
219
|
+
readonly entityFilter: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 3, undefined>, v.MaxLengthAction<string, 200, undefined>, v.RegexAction<string, "must be a single `key=value` term (letters, digits and `_.-:/@`)">]>, undefined>, v.MaxLengthAction<string[], 10, undefined>]>, undefined>;
|
|
220
|
+
readonly includeApis: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
|
221
|
+
readonly maxServices: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 1000, undefined>]>, undefined>;
|
|
222
|
+
}, undefined>;
|
|
223
|
+
readonly responsesByStatusCode: {
|
|
224
|
+
readonly '4xx': v.ObjectSchema<{
|
|
225
|
+
readonly error: v.ObjectSchema<{
|
|
226
|
+
readonly code: v.StringSchema<undefined>;
|
|
227
|
+
readonly message: v.StringSchema<undefined>;
|
|
228
|
+
readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
|
|
229
|
+
readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
230
|
+
readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
231
|
+
readonly message: v.StringSchema<undefined>;
|
|
232
|
+
}, undefined>, undefined>, undefined>;
|
|
233
|
+
}, undefined>;
|
|
234
|
+
}, undefined>;
|
|
235
|
+
readonly '5xx': v.ObjectSchema<{
|
|
236
|
+
readonly error: v.ObjectSchema<{
|
|
237
|
+
readonly code: v.StringSchema<undefined>;
|
|
238
|
+
readonly message: v.StringSchema<undefined>;
|
|
239
|
+
readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
|
|
240
|
+
readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
241
|
+
readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
242
|
+
readonly message: v.StringSchema<undefined>;
|
|
243
|
+
}, undefined>, undefined>, undefined>;
|
|
244
|
+
}, undefined>;
|
|
245
|
+
}, undefined>;
|
|
246
|
+
readonly 200: v.ObjectSchema<{
|
|
247
|
+
readonly ok: v.BooleanSchema<undefined>;
|
|
248
|
+
readonly message: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
249
|
+
readonly failureCause: v.OptionalSchema<v.PicklistSchema<["refused", "dns", "timeout", "aborted", "unreachable", "reset", "tls-untrusted", "tls-expired", "tls-hostname", "tls-protocol", "invalid-header", "unknown"], undefined>, undefined>;
|
|
250
|
+
readonly warnings: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
251
|
+
readonly code: v.PicklistSchema<["runner_manifest_no_release", "runner_manifest_no_status_path", "github_pat_classic_account_wide", "github_pat_scopes_beyond_need", "github_pat_scope_unreadable", "github_pat_no_scopes"], undefined>;
|
|
252
|
+
readonly message: v.StringSchema<undefined>;
|
|
253
|
+
}, undefined>, undefined>, undefined>;
|
|
254
|
+
}, undefined>;
|
|
255
|
+
};
|
|
256
|
+
};
|
|
257
|
+
/** Import now, rather than waiting out the autorefresh sweep's staleness window. */
|
|
258
|
+
export declare const syncServiceCatalogContract: {
|
|
259
|
+
readonly method: "post";
|
|
260
|
+
readonly pathResolver: () => string;
|
|
261
|
+
readonly requestBodySchema: typeof ContractNoBody;
|
|
262
|
+
readonly responsesByStatusCode: {
|
|
263
|
+
readonly '4xx': v.ObjectSchema<{
|
|
264
|
+
readonly error: v.ObjectSchema<{
|
|
265
|
+
readonly code: v.StringSchema<undefined>;
|
|
266
|
+
readonly message: v.StringSchema<undefined>;
|
|
267
|
+
readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
|
|
268
|
+
readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
269
|
+
readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
270
|
+
readonly message: v.StringSchema<undefined>;
|
|
271
|
+
}, undefined>, undefined>, undefined>;
|
|
272
|
+
}, undefined>;
|
|
273
|
+
}, undefined>;
|
|
274
|
+
readonly '5xx': v.ObjectSchema<{
|
|
275
|
+
readonly error: v.ObjectSchema<{
|
|
276
|
+
readonly code: v.StringSchema<undefined>;
|
|
277
|
+
readonly message: v.StringSchema<undefined>;
|
|
278
|
+
readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
|
|
279
|
+
readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
280
|
+
readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
281
|
+
readonly message: v.StringSchema<undefined>;
|
|
282
|
+
}, undefined>, undefined>, undefined>;
|
|
283
|
+
}, undefined>;
|
|
284
|
+
}, undefined>;
|
|
285
|
+
readonly 200: v.ObjectSchema<{
|
|
286
|
+
readonly upserted: v.NumberSchema<undefined>;
|
|
287
|
+
readonly tombstoned: v.NumberSchema<undefined>;
|
|
288
|
+
readonly unchanged: v.NumberSchema<undefined>;
|
|
289
|
+
readonly contracts: v.NumberSchema<undefined>;
|
|
290
|
+
readonly coverage: v.PicklistSchema<["complete", "truncated", "empty"], undefined>;
|
|
291
|
+
readonly skippedServices: v.NumberSchema<undefined>;
|
|
292
|
+
readonly skippedConflicts: v.NumberSchema<undefined>;
|
|
293
|
+
readonly skippedApis: v.NumberSchema<undefined>;
|
|
294
|
+
readonly status: v.PicklistSchema<["ok", "partial", "failed"], undefined>;
|
|
295
|
+
}, undefined>;
|
|
296
|
+
};
|
|
297
|
+
};
|
|
298
|
+
//# sourceMappingURL=service-catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-catalog.d.ts","sourceRoot":"","sources":["../../src/routes/service-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAmB5B;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOpC,CAAA;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKxC,CAAA;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI3C,CAAA;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKtC,CAAA;AAEF,oFAAoF;AACpF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { ContractNoBody, defineApiContract } from '@toad-contracts/valibot';
|
|
2
|
+
import * as v from 'valibot';
|
|
3
|
+
import { connectionTestResultSchema } from '../provider-config.js';
|
|
4
|
+
import { connectServiceCatalogSchema, serviceCatalogConnectionSchema, serviceCatalogSyncResultSchema, } from '../service-catalog.js';
|
|
5
|
+
import { errorResponses } from './_shared.js';
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
// Service-catalog route contracts. See ServiceCatalogController in
|
|
8
|
+
// @cat-factory/server. Mounted under `/workspaces/:workspaceId` only, so these literals
|
|
9
|
+
// are relative to that prefix and the workspace id is read by the handler.
|
|
10
|
+
//
|
|
11
|
+
// One connection per workspace, so the resource is a SINGLETON: `PUT` replaces it, `GET`
|
|
12
|
+
// reads it, `DELETE` disconnects. There is no id in any path, which is what keeps the
|
|
13
|
+
// import's provenance a fact about the workspace rather than a row a caller has to track.
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
/**
|
|
16
|
+
* The connection, or null when the workspace has none.
|
|
17
|
+
*
|
|
18
|
+
* Null rather than a 404, because the SPA renders the connect FORM off this read: a 404 there
|
|
19
|
+
* would make "not connected yet" indistinguishable from "wrong workspace id" at exactly the
|
|
20
|
+
* moment the panel has to decide which of the two to show.
|
|
21
|
+
*/
|
|
22
|
+
export const getServiceCatalogContract = defineApiContract({
|
|
23
|
+
method: 'get',
|
|
24
|
+
pathResolver: () => '/service-catalog',
|
|
25
|
+
responsesByStatusCode: {
|
|
26
|
+
200: v.nullable(serviceCatalogConnectionSchema),
|
|
27
|
+
...errorResponses,
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
/**
|
|
31
|
+
* Connect or REPLACE the workspace's catalog connection.
|
|
32
|
+
*
|
|
33
|
+
* `PUT` rather than `POST`, because a credential has no meaningful partial edit and a second
|
|
34
|
+
* connection has no meaning: the workspace either points at a portal or it does not. Replacing
|
|
35
|
+
* deliberately does NOT drop what a prior connection imported: the next import reconciles
|
|
36
|
+
* against it, so re-entering a rotated token costs no catalog.
|
|
37
|
+
*/
|
|
38
|
+
export const connectServiceCatalogContract = defineApiContract({
|
|
39
|
+
method: 'put',
|
|
40
|
+
pathResolver: () => '/service-catalog',
|
|
41
|
+
requestBodySchema: connectServiceCatalogSchema,
|
|
42
|
+
responsesByStatusCode: { 200: serviceCatalogConnectionSchema, ...errorResponses },
|
|
43
|
+
});
|
|
44
|
+
/**
|
|
45
|
+
* Disconnect: forget the credential AND tombstone every foundational service the connection
|
|
46
|
+
* produced.
|
|
47
|
+
*
|
|
48
|
+
* Tombstoning is the point rather than a side effect. Leaving the imported services behind
|
|
49
|
+
* would keep handing agents an estate nothing refreshes and nothing can explain the provenance
|
|
50
|
+
* of, which is worse than an empty catalog because it still reads as current.
|
|
51
|
+
*/
|
|
52
|
+
export const disconnectServiceCatalogContract = defineApiContract({
|
|
53
|
+
method: 'delete',
|
|
54
|
+
pathResolver: () => '/service-catalog',
|
|
55
|
+
responsesByStatusCode: { 204: ContractNoBody, ...errorResponses },
|
|
56
|
+
});
|
|
57
|
+
/**
|
|
58
|
+
* Probe the portal with the SUBMITTED credentials, before they are stored.
|
|
59
|
+
*
|
|
60
|
+
* Takes a body rather than reading the stored row, so the operator finds out that a token is
|
|
61
|
+
* wrong while they still have it on screen. It answers a result rather than throwing for the
|
|
62
|
+
* same reason every other connection test does: a refused connection is the answer.
|
|
63
|
+
*/
|
|
64
|
+
export const probeServiceCatalogContract = defineApiContract({
|
|
65
|
+
method: 'post',
|
|
66
|
+
pathResolver: () => '/service-catalog/probe',
|
|
67
|
+
requestBodySchema: connectServiceCatalogSchema,
|
|
68
|
+
responsesByStatusCode: { 200: connectionTestResultSchema, ...errorResponses },
|
|
69
|
+
});
|
|
70
|
+
/** Import now, rather than waiting out the autorefresh sweep's staleness window. */
|
|
71
|
+
export const syncServiceCatalogContract = defineApiContract({
|
|
72
|
+
method: 'post',
|
|
73
|
+
pathResolver: () => '/service-catalog/sync',
|
|
74
|
+
requestBodySchema: ContractNoBody,
|
|
75
|
+
responsesByStatusCode: { 200: serviceCatalogSyncResultSchema, ...errorResponses },
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=service-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-catalog.js","sourceRoot":"","sources":["../../src/routes/service-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,8EAA8E;AAC9E,mEAAmE;AACnE,wFAAwF;AACxF,2EAA2E;AAC3E,EAAE;AACF,yFAAyF;AACzF,sFAAsF;AACtF,0FAA0F;AAC1F,8EAA8E;AAE9E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,iBAAiB,CAAC;IACzD,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,GAAG,EAAE,CAAC,kBAAkB;IACtC,qBAAqB,EAAE;QACrB,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QAC/C,GAAG,cAAc;KAClB;CACF,CAAC,CAAA;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,iBAAiB,CAAC;IAC7D,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,GAAG,EAAE,CAAC,kBAAkB;IACtC,iBAAiB,EAAE,2BAA2B;IAC9C,qBAAqB,EAAE,EAAE,GAAG,EAAE,8BAA8B,EAAE,GAAG,cAAc,EAAE;CAClF,CAAC,CAAA;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,iBAAiB,CAAC;IAChE,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,GAAG,EAAE,CAAC,kBAAkB;IACtC,qBAAqB,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE;CAClE,CAAC,CAAA;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,iBAAiB,CAAC;IAC3D,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,GAAG,EAAE,CAAC,wBAAwB;IAC5C,iBAAiB,EAAE,2BAA2B;IAC9C,qBAAqB,EAAE,EAAE,GAAG,EAAE,0BAA0B,EAAE,GAAG,cAAc,EAAE;CAC9E,CAAC,CAAA;AAEF,oFAAoF;AACpF,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;IAC1D,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,GAAG,EAAE,CAAC,uBAAuB;IAC3C,iBAAiB,EAAE,cAAc;IACjC,qBAAqB,EAAE,EAAE,GAAG,EAAE,8BAA8B,EAAE,GAAG,cAAc,EAAE;CAClF,CAAC,CAAA"}
|