@cat-factory/contracts 0.34.0 → 0.36.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/api-keys.d.ts +17 -0
- package/dist/api-keys.d.ts.map +1 -1
- package/dist/api-keys.js +2 -0
- package/dist/api-keys.js.map +1 -1
- package/dist/github.d.ts +14 -0
- package/dist/github.d.ts.map +1 -1
- package/dist/github.js +13 -0
- package/dist/github.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/observability.d.ts +63 -0
- package/dist/observability.d.ts.map +1 -1
- package/dist/observability.js +57 -0
- package/dist/observability.js.map +1 -1
- package/dist/requests.d.ts +7 -0
- package/dist/requests.d.ts.map +1 -1
- package/dist/requests.js +2 -0
- package/dist/requests.js.map +1 -1
- package/dist/routes/_shared.d.ts +58 -0
- package/dist/routes/_shared.d.ts.map +1 -0
- package/dist/routes/_shared.js +46 -0
- package/dist/routes/_shared.js.map +1 -0
- package/dist/routes/accounts.d.ts +775 -0
- package/dist/routes/accounts.d.ts.map +1 -0
- package/dist/routes/accounts.js +145 -0
- package/dist/routes/accounts.js.map +1 -0
- package/dist/routes/agent-runs.d.ts +659 -0
- package/dist/routes/agent-runs.d.ts.map +1 -0
- package/dist/routes/agent-runs.js +33 -0
- package/dist/routes/agent-runs.js.map +1 -0
- package/dist/routes/api-keys.d.ts +244 -0
- package/dist/routes/api-keys.d.ts.map +1 -0
- package/dist/routes/api-keys.js +48 -0
- package/dist/routes/api-keys.js.map +1 -0
- package/dist/routes/auth.d.ts +411 -0
- package/dist/routes/auth.d.ts.map +1 -0
- package/dist/routes/auth.js +129 -0
- package/dist/routes/auth.js.map +1 -0
- package/dist/routes/board.d.ts +1259 -0
- package/dist/routes/board.d.ts.map +1 -0
- package/dist/routes/board.js +84 -0
- package/dist/routes/board.js.map +1 -0
- package/dist/routes/bootstrap.d.ts +395 -0
- package/dist/routes/bootstrap.d.ts.map +1 -0
- package/dist/routes/bootstrap.js +56 -0
- package/dist/routes/bootstrap.js.map +1 -0
- package/dist/routes/brainstorm.d.ts +482 -0
- package/dist/routes/brainstorm.d.ts.map +1 -0
- package/dist/routes/brainstorm.js +69 -0
- package/dist/routes/brainstorm.js.map +1 -0
- package/dist/routes/clarity.d.ts +462 -0
- package/dist/routes/clarity.d.ts.map +1 -0
- package/dist/routes/clarity.js +67 -0
- package/dist/routes/clarity.js.map +1 -0
- package/dist/routes/consensus.d.ts +71 -0
- package/dist/routes/consensus.d.ts.map +1 -0
- package/dist/routes/consensus.js +23 -0
- package/dist/routes/consensus.js.map +1 -0
- package/dist/routes/documents.d.ts +449 -0
- package/dist/routes/documents.d.ts.map +1 -0
- package/dist/routes/documents.js +89 -0
- package/dist/routes/documents.js.map +1 -0
- package/dist/routes/environments.d.ts +715 -0
- package/dist/routes/environments.d.ts.map +1 -0
- package/dist/routes/environments.js +82 -0
- package/dist/routes/environments.js.map +1 -0
- package/dist/routes/execution.d.ts +2768 -0
- package/dist/routes/execution.d.ts.map +1 -0
- package/dist/routes/execution.js +119 -0
- package/dist/routes/execution.js.map +1 -0
- package/dist/routes/followUp.d.ts +277 -0
- package/dist/routes/followUp.d.ts.map +1 -0
- package/dist/routes/followUp.js +47 -0
- package/dist/routes/followUp.js.map +1 -0
- package/dist/routes/fragment-library.d.ts +594 -0
- package/dist/routes/fragment-library.d.ts.map +1 -0
- package/dist/routes/fragment-library.js +102 -0
- package/dist/routes/fragment-library.js.map +1 -0
- package/dist/routes/github.d.ts +807 -0
- package/dist/routes/github.d.ts.map +1 -0
- package/dist/routes/github.js +157 -0
- package/dist/routes/github.js.map +1 -0
- package/dist/routes/human-review.d.ts +289 -0
- package/dist/routes/human-review.d.ts.map +1 -0
- package/dist/routes/human-review.js +19 -0
- package/dist/routes/human-review.js.map +1 -0
- package/dist/routes/human-test.d.ts +1434 -0
- package/dist/routes/human-test.d.ts.map +1 -0
- package/dist/routes/human-test.js +47 -0
- package/dist/routes/human-test.js.map +1 -0
- package/dist/routes/incident-enrichment.d.ts +110 -0
- package/dist/routes/incident-enrichment.d.ts.map +1 -0
- package/dist/routes/incident-enrichment.js +26 -0
- package/dist/routes/incident-enrichment.js.map +1 -0
- package/dist/routes/index.d.ts +47 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +50 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/kaizen.d.ts +112 -0
- package/dist/routes/kaizen.d.ts.map +1 -0
- package/dist/routes/kaizen.js +21 -0
- package/dist/routes/kaizen.js.map +1 -0
- package/dist/routes/localModels.d.ts +163 -0
- package/dist/routes/localModels.d.ts.map +1 -0
- package/dist/routes/localModels.js +41 -0
- package/dist/routes/localModels.js.map +1 -0
- package/dist/routes/localSettings.d.ts +93 -0
- package/dist/routes/localSettings.d.ts.map +1 -0
- package/dist/routes/localSettings.js +22 -0
- package/dist/routes/localSettings.js.map +1 -0
- package/dist/routes/merge.d.ts +197 -0
- package/dist/routes/merge.d.ts.map +1 -0
- package/dist/routes/merge.js +36 -0
- package/dist/routes/merge.js.map +1 -0
- package/dist/routes/model-presets.d.ts +162 -0
- package/dist/routes/model-presets.d.ts.map +1 -0
- package/dist/routes/model-presets.js +36 -0
- package/dist/routes/model-presets.js.map +1 -0
- package/dist/routes/models.d.ts +122 -0
- package/dist/routes/models.d.ts.map +1 -0
- package/dist/routes/models.js +24 -0
- package/dist/routes/models.js.map +1 -0
- package/dist/routes/notifications.d.ts +213 -0
- package/dist/routes/notifications.d.ts.map +1 -0
- package/dist/routes/notifications.js +31 -0
- package/dist/routes/notifications.js.map +1 -0
- package/dist/routes/openrouter.d.ts +144 -0
- package/dist/routes/openrouter.d.ts.map +1 -0
- package/dist/routes/openrouter.js +31 -0
- package/dist/routes/openrouter.js.map +1 -0
- package/dist/routes/personal-subscriptions.d.ts +124 -0
- package/dist/routes/personal-subscriptions.d.ts.map +1 -0
- package/dist/routes/personal-subscriptions.js +32 -0
- package/dist/routes/personal-subscriptions.js.map +1 -0
- package/dist/routes/pipelines.d.ts +457 -0
- package/dist/routes/pipelines.d.ts.map +1 -0
- package/dist/routes/pipelines.js +51 -0
- package/dist/routes/pipelines.js.map +1 -0
- package/dist/routes/prompt-fragments.d.ts +52 -0
- package/dist/routes/prompt-fragments.d.ts.map +1 -0
- package/dist/routes/prompt-fragments.js +14 -0
- package/dist/routes/prompt-fragments.js.map +1 -0
- package/dist/routes/provisioning-logs.d.ts +45 -0
- package/dist/routes/provisioning-logs.d.ts.map +1 -0
- package/dist/routes/provisioning-logs.js +14 -0
- package/dist/routes/provisioning-logs.js.map +1 -0
- package/dist/routes/recurring.d.ts +309 -0
- package/dist/routes/recurring.d.ts.map +1 -0
- package/dist/routes/recurring.js +50 -0
- package/dist/routes/recurring.js.map +1 -0
- package/dist/routes/release.d.ts +218 -0
- package/dist/routes/release.d.ts.map +1 -0
- package/dist/routes/release.js +47 -0
- package/dist/routes/release.js.map +1 -0
- package/dist/routes/requirements.d.ts +901 -0
- package/dist/routes/requirements.d.ts.map +1 -0
- package/dist/routes/requirements.js +96 -0
- package/dist/routes/requirements.js.map +1 -0
- package/dist/routes/runners.d.ts +442 -0
- package/dist/routes/runners.d.ts.map +1 -0
- package/dist/routes/runners.js +47 -0
- package/dist/routes/runners.js.map +1 -0
- package/dist/routes/sandbox.d.ts +898 -0
- package/dist/routes/sandbox.d.ts.map +1 -0
- package/dist/routes/sandbox.js +119 -0
- package/dist/routes/sandbox.js.map +1 -0
- package/dist/routes/service-fragment-defaults.d.ts +66 -0
- package/dist/routes/service-fragment-defaults.d.ts.map +1 -0
- package/dist/routes/service-fragment-defaults.js +20 -0
- package/dist/routes/service-fragment-defaults.js.map +1 -0
- package/dist/routes/services.d.ts +224 -0
- package/dist/routes/services.d.ts.map +1 -0
- package/dist/routes/services.js +44 -0
- package/dist/routes/services.js.map +1 -0
- package/dist/routes/slack.d.ts +332 -0
- package/dist/routes/slack.d.ts.map +1 -0
- package/dist/routes/slack.js +72 -0
- package/dist/routes/slack.js.map +1 -0
- package/dist/routes/spec.d.ts +75 -0
- package/dist/routes/spec.d.ts.map +1 -0
- package/dist/routes/spec.js +16 -0
- package/dist/routes/spec.js.map +1 -0
- package/dist/routes/tasks.d.ts +723 -0
- package/dist/routes/tasks.d.ts.map +1 -0
- package/dist/routes/tasks.js +108 -0
- package/dist/routes/tasks.js.map +1 -0
- package/dist/routes/tracker.d.ts +77 -0
- package/dist/routes/tracker.d.ts.map +1 -0
- package/dist/routes/tracker.js +20 -0
- package/dist/routes/tracker.js.map +1 -0
- package/dist/routes/user-secret.d.ts +231 -0
- package/dist/routes/user-secret.d.ts.map +1 -0
- package/dist/routes/user-secret.js +49 -0
- package/dist/routes/user-secret.js.map +1 -0
- package/dist/routes/vendor-credentials.d.ts +120 -0
- package/dist/routes/vendor-credentials.d.ts.map +1 -0
- package/dist/routes/vendor-credentials.js +33 -0
- package/dist/routes/vendor-credentials.js.map +1 -0
- package/dist/routes/workspace-settings.d.ts +93 -0
- package/dist/routes/workspace-settings.d.ts.map +1 -0
- package/dist/routes/workspace-settings.js +20 -0
- package/dist/routes/workspace-settings.js.map +1 -0
- package/dist/routes/workspaces.d.ts +1309 -0
- package/dist/routes/workspaces.d.ts.map +1 -0
- package/dist/routes/workspaces.js +45 -0
- package/dist/routes/workspaces.js.map +1 -0
- package/package.json +3 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ContractNoBody, defineApiContract } from '@toad-contracts/valibot';
|
|
2
|
+
import { openRouterCatalogSchema, openRouterRefreshResultSchema, upsertOpenRouterCatalogSchema, } from '../openrouter.js';
|
|
3
|
+
import { errorResponses, singleStringParam } from './_shared.js';
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
// Per-workspace OpenRouter dynamic-catalog route contracts. The
|
|
6
|
+
// OpenRouterCatalogController is mounted at `/`, so the paths are absolute and
|
|
7
|
+
// `workspaceId` IS a path param. See OpenRouterCatalogController in
|
|
8
|
+
// @cat-factory/server.
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
const workspaceIdParams = singleStringParam('workspaceId');
|
|
11
|
+
export const getOpenRouterCatalogContract = defineApiContract({
|
|
12
|
+
method: 'get',
|
|
13
|
+
requestPathParamsSchema: workspaceIdParams,
|
|
14
|
+
pathResolver: ({ workspaceId }) => `/workspaces/${workspaceId}/openrouter/catalog`,
|
|
15
|
+
responsesByStatusCode: { 200: openRouterCatalogSchema, ...errorResponses },
|
|
16
|
+
});
|
|
17
|
+
export const upsertOpenRouterCatalogContract = defineApiContract({
|
|
18
|
+
method: 'put',
|
|
19
|
+
requestPathParamsSchema: workspaceIdParams,
|
|
20
|
+
pathResolver: ({ workspaceId }) => `/workspaces/${workspaceId}/openrouter/catalog`,
|
|
21
|
+
requestBodySchema: upsertOpenRouterCatalogSchema,
|
|
22
|
+
responsesByStatusCode: { 200: openRouterCatalogSchema, ...errorResponses },
|
|
23
|
+
});
|
|
24
|
+
export const refreshOpenRouterCatalogContract = defineApiContract({
|
|
25
|
+
method: 'post',
|
|
26
|
+
requestPathParamsSchema: workspaceIdParams,
|
|
27
|
+
pathResolver: ({ workspaceId }) => `/workspaces/${workspaceId}/openrouter/refresh`,
|
|
28
|
+
requestBodySchema: ContractNoBody,
|
|
29
|
+
responsesByStatusCode: { 200: openRouterRefreshResultSchema, ...errorResponses },
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=openrouter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../src/routes/openrouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3E,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhE,8EAA8E;AAC9E,gEAAgE;AAChE,+EAA+E;AAC/E,oEAAoE;AACpE,uBAAuB;AACvB,8EAA8E;AAE9E,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAA;AAE1D,MAAM,CAAC,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;IAC5D,MAAM,EAAE,KAAK;IACb,uBAAuB,EAAE,iBAAiB;IAC1C,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,eAAe,WAAW,qBAAqB;IAClF,qBAAqB,EAAE,EAAE,GAAG,EAAE,uBAAuB,EAAE,GAAG,cAAc,EAAE;CAC3E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,iBAAiB,CAAC;IAC/D,MAAM,EAAE,KAAK;IACb,uBAAuB,EAAE,iBAAiB;IAC1C,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,eAAe,WAAW,qBAAqB;IAClF,iBAAiB,EAAE,6BAA6B;IAChD,qBAAqB,EAAE,EAAE,GAAG,EAAE,uBAAuB,EAAE,GAAG,cAAc,EAAE;CAC3E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG,iBAAiB,CAAC;IAChE,MAAM,EAAE,MAAM;IACd,uBAAuB,EAAE,iBAAiB;IAC1C,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,eAAe,WAAW,qBAAqB;IAClF,iBAAiB,EAAE,cAAc;IACjC,qBAAqB,EAAE,EAAE,GAAG,EAAE,6BAA6B,EAAE,GAAG,cAAc,EAAE;CACjF,CAAC,CAAA"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { ContractNoBody } from '@toad-contracts/valibot';
|
|
2
|
+
import * as v from 'valibot';
|
|
3
|
+
export declare const listPersonalSubscriptionsContract: {
|
|
4
|
+
readonly method: "get";
|
|
5
|
+
readonly pathResolver: () => string;
|
|
6
|
+
readonly responsesByStatusCode: {
|
|
7
|
+
readonly '4xx': v.ObjectSchema<{
|
|
8
|
+
readonly error: v.ObjectSchema<{
|
|
9
|
+
readonly code: v.StringSchema<undefined>;
|
|
10
|
+
readonly message: v.StringSchema<undefined>;
|
|
11
|
+
readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
|
|
12
|
+
readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
13
|
+
readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
14
|
+
readonly message: v.StringSchema<undefined>;
|
|
15
|
+
}, undefined>, undefined>, undefined>;
|
|
16
|
+
}, undefined>;
|
|
17
|
+
}, undefined>;
|
|
18
|
+
readonly '5xx': v.ObjectSchema<{
|
|
19
|
+
readonly error: v.ObjectSchema<{
|
|
20
|
+
readonly code: v.StringSchema<undefined>;
|
|
21
|
+
readonly message: v.StringSchema<undefined>;
|
|
22
|
+
readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
|
|
23
|
+
readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
24
|
+
readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
25
|
+
readonly message: v.StringSchema<undefined>;
|
|
26
|
+
}, undefined>, undefined>, undefined>;
|
|
27
|
+
}, undefined>;
|
|
28
|
+
}, undefined>;
|
|
29
|
+
readonly 200: v.ObjectSchema<{
|
|
30
|
+
readonly subscriptions: v.ArraySchema<v.ObjectSchema<{
|
|
31
|
+
readonly vendor: v.PicklistSchema<["claude", "codex", "glm", "kimi", "deepseek"], undefined>;
|
|
32
|
+
readonly label: v.StringSchema<undefined>;
|
|
33
|
+
readonly createdAt: v.NumberSchema<undefined>;
|
|
34
|
+
readonly updatedAt: v.NumberSchema<undefined>;
|
|
35
|
+
readonly lastUsedAt: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
|
|
36
|
+
readonly expiresAt: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
|
|
37
|
+
readonly expiresInDays: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
|
|
38
|
+
readonly expired: v.BooleanSchema<undefined>;
|
|
39
|
+
readonly renewSoon: v.BooleanSchema<undefined>;
|
|
40
|
+
}, undefined>, undefined>;
|
|
41
|
+
}, undefined>;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
export declare const storePersonalSubscriptionContract: {
|
|
45
|
+
readonly method: "post";
|
|
46
|
+
readonly pathResolver: () => string;
|
|
47
|
+
readonly requestBodySchema: v.ObjectSchema<{
|
|
48
|
+
readonly vendor: v.PicklistSchema<["claude", "codex", "glm", "kimi", "deepseek"], undefined>;
|
|
49
|
+
readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
|
|
50
|
+
readonly token: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
|
|
51
|
+
readonly password: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 8, undefined>, v.MaxLengthAction<string, 256, undefined>, v.RegexAction<string, "Password must use printable ASCII characters (no tabs/newlines).">]>;
|
|
52
|
+
readonly expiresAt: v.OptionalSchema<v.NullableSchema<v.NumberSchema<undefined>, undefined>, undefined>;
|
|
53
|
+
}, undefined>;
|
|
54
|
+
readonly responsesByStatusCode: {
|
|
55
|
+
readonly '4xx': v.ObjectSchema<{
|
|
56
|
+
readonly error: v.ObjectSchema<{
|
|
57
|
+
readonly code: v.StringSchema<undefined>;
|
|
58
|
+
readonly message: v.StringSchema<undefined>;
|
|
59
|
+
readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
|
|
60
|
+
readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
61
|
+
readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
62
|
+
readonly message: v.StringSchema<undefined>;
|
|
63
|
+
}, undefined>, undefined>, undefined>;
|
|
64
|
+
}, undefined>;
|
|
65
|
+
}, undefined>;
|
|
66
|
+
readonly '5xx': v.ObjectSchema<{
|
|
67
|
+
readonly error: v.ObjectSchema<{
|
|
68
|
+
readonly code: v.StringSchema<undefined>;
|
|
69
|
+
readonly message: v.StringSchema<undefined>;
|
|
70
|
+
readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
|
|
71
|
+
readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
72
|
+
readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
73
|
+
readonly message: v.StringSchema<undefined>;
|
|
74
|
+
}, undefined>, undefined>, undefined>;
|
|
75
|
+
}, undefined>;
|
|
76
|
+
}, undefined>;
|
|
77
|
+
readonly 201: v.ObjectSchema<{
|
|
78
|
+
readonly vendor: v.PicklistSchema<["claude", "codex", "glm", "kimi", "deepseek"], undefined>;
|
|
79
|
+
readonly label: v.StringSchema<undefined>;
|
|
80
|
+
readonly createdAt: v.NumberSchema<undefined>;
|
|
81
|
+
readonly updatedAt: v.NumberSchema<undefined>;
|
|
82
|
+
readonly lastUsedAt: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
|
|
83
|
+
readonly expiresAt: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
|
|
84
|
+
readonly expiresInDays: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
|
|
85
|
+
readonly expired: v.BooleanSchema<undefined>;
|
|
86
|
+
readonly renewSoon: v.BooleanSchema<undefined>;
|
|
87
|
+
}, undefined>;
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
export declare const removePersonalSubscriptionContract: {
|
|
91
|
+
readonly method: "delete";
|
|
92
|
+
readonly requestPathParamsSchema: v.ObjectSchema<{
|
|
93
|
+
vendor: v.StringSchema<undefined>;
|
|
94
|
+
}, undefined> & import("@toad-contracts/core").ObjectKeysCarrier;
|
|
95
|
+
readonly pathResolver: ({ vendor }: {
|
|
96
|
+
vendor: string;
|
|
97
|
+
}) => string;
|
|
98
|
+
readonly responsesByStatusCode: {
|
|
99
|
+
readonly '4xx': v.ObjectSchema<{
|
|
100
|
+
readonly error: v.ObjectSchema<{
|
|
101
|
+
readonly code: v.StringSchema<undefined>;
|
|
102
|
+
readonly message: v.StringSchema<undefined>;
|
|
103
|
+
readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
|
|
104
|
+
readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
105
|
+
readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
106
|
+
readonly message: v.StringSchema<undefined>;
|
|
107
|
+
}, undefined>, undefined>, undefined>;
|
|
108
|
+
}, undefined>;
|
|
109
|
+
}, undefined>;
|
|
110
|
+
readonly '5xx': v.ObjectSchema<{
|
|
111
|
+
readonly error: v.ObjectSchema<{
|
|
112
|
+
readonly code: v.StringSchema<undefined>;
|
|
113
|
+
readonly message: v.StringSchema<undefined>;
|
|
114
|
+
readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
|
|
115
|
+
readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
|
|
116
|
+
readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
117
|
+
readonly message: v.StringSchema<undefined>;
|
|
118
|
+
}, undefined>, undefined>, undefined>;
|
|
119
|
+
}, undefined>;
|
|
120
|
+
}, undefined>;
|
|
121
|
+
readonly 204: typeof ContractNoBody;
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
//# sourceMappingURL=personal-subscriptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"personal-subscriptions.d.ts","sourceRoot":"","sources":["../../src/routes/personal-subscriptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAoB5B,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI5C,CAAA;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK5C,CAAA;AAEF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK7C,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ContractNoBody, defineApiContract } from '@toad-contracts/valibot';
|
|
2
|
+
import * as v from 'valibot';
|
|
3
|
+
import { personalSubscriptionStatusSchema, storePersonalSubscriptionSchema, } from '../personal-subscriptions.js';
|
|
4
|
+
import { errorResponses, singleStringParam } from './_shared.js';
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// Per-USER individual-usage subscription route contracts. Scoped to the
|
|
7
|
+
// signed-in user (not a workspace) and mounted at the root, so the paths here
|
|
8
|
+
// are absolute. See PersonalSubscriptionController in @cat-factory/server.
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
// Response wrapper that exists only inline in the controller today.
|
|
11
|
+
const personalSubscriptionsViewSchema = v.object({
|
|
12
|
+
subscriptions: v.array(personalSubscriptionStatusSchema),
|
|
13
|
+
});
|
|
14
|
+
const vendorParams = singleStringParam('vendor');
|
|
15
|
+
export const listPersonalSubscriptionsContract = defineApiContract({
|
|
16
|
+
method: 'get',
|
|
17
|
+
pathResolver: () => '/personal-subscriptions',
|
|
18
|
+
responsesByStatusCode: { 200: personalSubscriptionsViewSchema, ...errorResponses },
|
|
19
|
+
});
|
|
20
|
+
export const storePersonalSubscriptionContract = defineApiContract({
|
|
21
|
+
method: 'post',
|
|
22
|
+
pathResolver: () => '/personal-subscriptions',
|
|
23
|
+
requestBodySchema: storePersonalSubscriptionSchema,
|
|
24
|
+
responsesByStatusCode: { 201: personalSubscriptionStatusSchema, ...errorResponses },
|
|
25
|
+
});
|
|
26
|
+
export const removePersonalSubscriptionContract = defineApiContract({
|
|
27
|
+
method: 'delete',
|
|
28
|
+
requestPathParamsSchema: vendorParams,
|
|
29
|
+
pathResolver: ({ vendor }) => `/personal-subscriptions/${vendor}`,
|
|
30
|
+
responsesByStatusCode: { 204: ContractNoBody, ...errorResponses },
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=personal-subscriptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"personal-subscriptions.js","sourceRoot":"","sources":["../../src/routes/personal-subscriptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EACL,gCAAgC,EAChC,+BAA+B,GAChC,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhE,8EAA8E;AAC9E,wEAAwE;AACxE,8EAA8E;AAC9E,2EAA2E;AAC3E,8EAA8E;AAE9E,oEAAoE;AACpE,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,gCAAgC,CAAC;CACzD,CAAC,CAAA;AAEF,MAAM,YAAY,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;AAEhD,MAAM,CAAC,MAAM,iCAAiC,GAAG,iBAAiB,CAAC;IACjE,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,GAAG,EAAE,CAAC,yBAAyB;IAC7C,qBAAqB,EAAE,EAAE,GAAG,EAAE,+BAA+B,EAAE,GAAG,cAAc,EAAE;CACnF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAG,iBAAiB,CAAC;IACjE,MAAM,EAAE,MAAM;IACd,YAAY,EAAE,GAAG,EAAE,CAAC,yBAAyB;IAC7C,iBAAiB,EAAE,+BAA+B;IAClD,qBAAqB,EAAE,EAAE,GAAG,EAAE,gCAAgC,EAAE,GAAG,cAAc,EAAE;CACpF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAAG,iBAAiB,CAAC;IAClE,MAAM,EAAE,QAAQ;IAChB,uBAAuB,EAAE,YAAY;IACrC,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,2BAA2B,MAAM,EAAE;IACjE,qBAAqB,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE;CAClE,CAAC,CAAA"}
|