@cat-factory/contracts 0.33.0 → 0.35.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.
Files changed (228) hide show
  1. package/dist/api-keys.d.ts +17 -0
  2. package/dist/api-keys.d.ts.map +1 -1
  3. package/dist/api-keys.js +2 -0
  4. package/dist/api-keys.js.map +1 -1
  5. package/dist/entities.d.ts +135 -0
  6. package/dist/entities.d.ts.map +1 -1
  7. package/dist/entities.js +46 -0
  8. package/dist/entities.js.map +1 -1
  9. package/dist/github.d.ts +14 -0
  10. package/dist/github.d.ts.map +1 -1
  11. package/dist/github.js +13 -0
  12. package/dist/github.js.map +1 -1
  13. package/dist/human-review.d.ts +8 -0
  14. package/dist/human-review.d.ts.map +1 -0
  15. package/dist/human-review.js +12 -0
  16. package/dist/human-review.js.map +1 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +2 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/merge.d.ts +9 -0
  22. package/dist/merge.d.ts.map +1 -1
  23. package/dist/merge.js +10 -0
  24. package/dist/merge.js.map +1 -1
  25. package/dist/notifications.d.ts +2 -2
  26. package/dist/notifications.d.ts.map +1 -1
  27. package/dist/notifications.js +6 -0
  28. package/dist/notifications.js.map +1 -1
  29. package/dist/observability.d.ts +63 -0
  30. package/dist/observability.d.ts.map +1 -1
  31. package/dist/observability.js +57 -0
  32. package/dist/observability.js.map +1 -1
  33. package/dist/requests.d.ts +7 -0
  34. package/dist/requests.d.ts.map +1 -1
  35. package/dist/requests.js +2 -0
  36. package/dist/requests.js.map +1 -1
  37. package/dist/routes/_shared.d.ts +49 -0
  38. package/dist/routes/_shared.d.ts.map +1 -0
  39. package/dist/routes/_shared.js +34 -0
  40. package/dist/routes/_shared.js.map +1 -0
  41. package/dist/routes/accounts.d.ts +775 -0
  42. package/dist/routes/accounts.d.ts.map +1 -0
  43. package/dist/routes/accounts.js +145 -0
  44. package/dist/routes/accounts.js.map +1 -0
  45. package/dist/routes/agent-runs.d.ts +659 -0
  46. package/dist/routes/agent-runs.d.ts.map +1 -0
  47. package/dist/routes/agent-runs.js +33 -0
  48. package/dist/routes/agent-runs.js.map +1 -0
  49. package/dist/routes/api-keys.d.ts +245 -0
  50. package/dist/routes/api-keys.d.ts.map +1 -0
  51. package/dist/routes/api-keys.js +49 -0
  52. package/dist/routes/api-keys.js.map +1 -0
  53. package/dist/routes/auth.d.ts +411 -0
  54. package/dist/routes/auth.d.ts.map +1 -0
  55. package/dist/routes/auth.js +129 -0
  56. package/dist/routes/auth.js.map +1 -0
  57. package/dist/routes/board.d.ts +1260 -0
  58. package/dist/routes/board.d.ts.map +1 -0
  59. package/dist/routes/board.js +85 -0
  60. package/dist/routes/board.js.map +1 -0
  61. package/dist/routes/bootstrap.d.ts +395 -0
  62. package/dist/routes/bootstrap.d.ts.map +1 -0
  63. package/dist/routes/bootstrap.js +56 -0
  64. package/dist/routes/bootstrap.js.map +1 -0
  65. package/dist/routes/brainstorm.d.ts +482 -0
  66. package/dist/routes/brainstorm.d.ts.map +1 -0
  67. package/dist/routes/brainstorm.js +69 -0
  68. package/dist/routes/brainstorm.js.map +1 -0
  69. package/dist/routes/clarity.d.ts +462 -0
  70. package/dist/routes/clarity.d.ts.map +1 -0
  71. package/dist/routes/clarity.js +67 -0
  72. package/dist/routes/clarity.js.map +1 -0
  73. package/dist/routes/consensus.d.ts +71 -0
  74. package/dist/routes/consensus.d.ts.map +1 -0
  75. package/dist/routes/consensus.js +23 -0
  76. package/dist/routes/consensus.js.map +1 -0
  77. package/dist/routes/documents.d.ts +449 -0
  78. package/dist/routes/documents.d.ts.map +1 -0
  79. package/dist/routes/documents.js +89 -0
  80. package/dist/routes/documents.js.map +1 -0
  81. package/dist/routes/environments.d.ts +715 -0
  82. package/dist/routes/environments.d.ts.map +1 -0
  83. package/dist/routes/environments.js +82 -0
  84. package/dist/routes/environments.js.map +1 -0
  85. package/dist/routes/execution.d.ts +2768 -0
  86. package/dist/routes/execution.d.ts.map +1 -0
  87. package/dist/routes/execution.js +119 -0
  88. package/dist/routes/execution.js.map +1 -0
  89. package/dist/routes/followUp.d.ts +277 -0
  90. package/dist/routes/followUp.d.ts.map +1 -0
  91. package/dist/routes/followUp.js +47 -0
  92. package/dist/routes/followUp.js.map +1 -0
  93. package/dist/routes/fragment-library.d.ts +594 -0
  94. package/dist/routes/fragment-library.d.ts.map +1 -0
  95. package/dist/routes/fragment-library.js +102 -0
  96. package/dist/routes/fragment-library.js.map +1 -0
  97. package/dist/routes/github.d.ts +807 -0
  98. package/dist/routes/github.d.ts.map +1 -0
  99. package/dist/routes/github.js +157 -0
  100. package/dist/routes/github.js.map +1 -0
  101. package/dist/routes/human-review.d.ts +290 -0
  102. package/dist/routes/human-review.d.ts.map +1 -0
  103. package/dist/routes/human-review.js +20 -0
  104. package/dist/routes/human-review.js.map +1 -0
  105. package/dist/routes/human-test.d.ts +1435 -0
  106. package/dist/routes/human-test.d.ts.map +1 -0
  107. package/dist/routes/human-test.js +48 -0
  108. package/dist/routes/human-test.js.map +1 -0
  109. package/dist/routes/incident-enrichment.d.ts +110 -0
  110. package/dist/routes/incident-enrichment.d.ts.map +1 -0
  111. package/dist/routes/incident-enrichment.js +26 -0
  112. package/dist/routes/incident-enrichment.js.map +1 -0
  113. package/dist/routes/index.d.ts +47 -0
  114. package/dist/routes/index.d.ts.map +1 -0
  115. package/dist/routes/index.js +50 -0
  116. package/dist/routes/index.js.map +1 -0
  117. package/dist/routes/kaizen.d.ts +113 -0
  118. package/dist/routes/kaizen.d.ts.map +1 -0
  119. package/dist/routes/kaizen.js +22 -0
  120. package/dist/routes/kaizen.js.map +1 -0
  121. package/dist/routes/localModels.d.ts +163 -0
  122. package/dist/routes/localModels.d.ts.map +1 -0
  123. package/dist/routes/localModels.js +41 -0
  124. package/dist/routes/localModels.js.map +1 -0
  125. package/dist/routes/localSettings.d.ts +93 -0
  126. package/dist/routes/localSettings.d.ts.map +1 -0
  127. package/dist/routes/localSettings.js +22 -0
  128. package/dist/routes/localSettings.js.map +1 -0
  129. package/dist/routes/merge.d.ts +197 -0
  130. package/dist/routes/merge.d.ts.map +1 -0
  131. package/dist/routes/merge.js +36 -0
  132. package/dist/routes/merge.js.map +1 -0
  133. package/dist/routes/model-presets.d.ts +162 -0
  134. package/dist/routes/model-presets.d.ts.map +1 -0
  135. package/dist/routes/model-presets.js +36 -0
  136. package/dist/routes/model-presets.js.map +1 -0
  137. package/dist/routes/models.d.ts +123 -0
  138. package/dist/routes/models.d.ts.map +1 -0
  139. package/dist/routes/models.js +25 -0
  140. package/dist/routes/models.js.map +1 -0
  141. package/dist/routes/notifications.d.ts +213 -0
  142. package/dist/routes/notifications.d.ts.map +1 -0
  143. package/dist/routes/notifications.js +31 -0
  144. package/dist/routes/notifications.js.map +1 -0
  145. package/dist/routes/openrouter.d.ts +145 -0
  146. package/dist/routes/openrouter.d.ts.map +1 -0
  147. package/dist/routes/openrouter.js +32 -0
  148. package/dist/routes/openrouter.js.map +1 -0
  149. package/dist/routes/personal-subscriptions.d.ts +124 -0
  150. package/dist/routes/personal-subscriptions.d.ts.map +1 -0
  151. package/dist/routes/personal-subscriptions.js +32 -0
  152. package/dist/routes/personal-subscriptions.js.map +1 -0
  153. package/dist/routes/pipelines.d.ts +457 -0
  154. package/dist/routes/pipelines.d.ts.map +1 -0
  155. package/dist/routes/pipelines.js +51 -0
  156. package/dist/routes/pipelines.js.map +1 -0
  157. package/dist/routes/prompt-fragments.d.ts +52 -0
  158. package/dist/routes/prompt-fragments.d.ts.map +1 -0
  159. package/dist/routes/prompt-fragments.js +14 -0
  160. package/dist/routes/prompt-fragments.js.map +1 -0
  161. package/dist/routes/provisioning-logs.d.ts +45 -0
  162. package/dist/routes/provisioning-logs.d.ts.map +1 -0
  163. package/dist/routes/provisioning-logs.js +14 -0
  164. package/dist/routes/provisioning-logs.js.map +1 -0
  165. package/dist/routes/recurring.d.ts +309 -0
  166. package/dist/routes/recurring.d.ts.map +1 -0
  167. package/dist/routes/recurring.js +50 -0
  168. package/dist/routes/recurring.js.map +1 -0
  169. package/dist/routes/release.d.ts +218 -0
  170. package/dist/routes/release.d.ts.map +1 -0
  171. package/dist/routes/release.js +47 -0
  172. package/dist/routes/release.js.map +1 -0
  173. package/dist/routes/requirements.d.ts +901 -0
  174. package/dist/routes/requirements.d.ts.map +1 -0
  175. package/dist/routes/requirements.js +96 -0
  176. package/dist/routes/requirements.js.map +1 -0
  177. package/dist/routes/runners.d.ts +442 -0
  178. package/dist/routes/runners.d.ts.map +1 -0
  179. package/dist/routes/runners.js +47 -0
  180. package/dist/routes/runners.js.map +1 -0
  181. package/dist/routes/sandbox.d.ts +898 -0
  182. package/dist/routes/sandbox.d.ts.map +1 -0
  183. package/dist/routes/sandbox.js +119 -0
  184. package/dist/routes/sandbox.js.map +1 -0
  185. package/dist/routes/service-fragment-defaults.d.ts +66 -0
  186. package/dist/routes/service-fragment-defaults.d.ts.map +1 -0
  187. package/dist/routes/service-fragment-defaults.js +20 -0
  188. package/dist/routes/service-fragment-defaults.js.map +1 -0
  189. package/dist/routes/services.d.ts +224 -0
  190. package/dist/routes/services.d.ts.map +1 -0
  191. package/dist/routes/services.js +44 -0
  192. package/dist/routes/services.js.map +1 -0
  193. package/dist/routes/slack.d.ts +332 -0
  194. package/dist/routes/slack.d.ts.map +1 -0
  195. package/dist/routes/slack.js +72 -0
  196. package/dist/routes/slack.js.map +1 -0
  197. package/dist/routes/spec.d.ts +76 -0
  198. package/dist/routes/spec.d.ts.map +1 -0
  199. package/dist/routes/spec.js +17 -0
  200. package/dist/routes/spec.js.map +1 -0
  201. package/dist/routes/tasks.d.ts +723 -0
  202. package/dist/routes/tasks.d.ts.map +1 -0
  203. package/dist/routes/tasks.js +108 -0
  204. package/dist/routes/tasks.js.map +1 -0
  205. package/dist/routes/tracker.d.ts +77 -0
  206. package/dist/routes/tracker.d.ts.map +1 -0
  207. package/dist/routes/tracker.js +20 -0
  208. package/dist/routes/tracker.js.map +1 -0
  209. package/dist/routes/user-secret.d.ts +231 -0
  210. package/dist/routes/user-secret.d.ts.map +1 -0
  211. package/dist/routes/user-secret.js +49 -0
  212. package/dist/routes/user-secret.js.map +1 -0
  213. package/dist/routes/vendor-credentials.d.ts +120 -0
  214. package/dist/routes/vendor-credentials.d.ts.map +1 -0
  215. package/dist/routes/vendor-credentials.js +33 -0
  216. package/dist/routes/vendor-credentials.js.map +1 -0
  217. package/dist/routes/workspace-settings.d.ts +93 -0
  218. package/dist/routes/workspace-settings.d.ts.map +1 -0
  219. package/dist/routes/workspace-settings.js +20 -0
  220. package/dist/routes/workspace-settings.js.map +1 -0
  221. package/dist/routes/workspaces.d.ts +1309 -0
  222. package/dist/routes/workspaces.d.ts.map +1 -0
  223. package/dist/routes/workspaces.js +45 -0
  224. package/dist/routes/workspaces.js.map +1 -0
  225. package/dist/slack.d.ts +2 -2
  226. package/dist/snapshot.d.ts +11 -1
  227. package/dist/snapshot.d.ts.map +1 -1
  228. package/package.json +3 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/routes/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqC,MAAM,yBAAyB,CAAA;AAC3F,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAyD5B,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIlC,CAAA;AAIF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKpC,CAAA;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMzC,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKvC,CAAA;AAIF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAItC,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKvC,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKvC,CAAA;AAIF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIzC,CAAA;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK1C,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKvC,CAAA;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM1C,CAAA"}
@@ -0,0 +1,119 @@
1
+ import { ContractNoBody, defineApiContract, withObjectKeys } from '@toad-contracts/valibot';
2
+ import * as v from 'valibot';
3
+ import { cloneSandboxPromptSchema, createSandboxExperimentSchema, createSandboxFixtureSchema, sandboxExperimentSchema, sandboxFixtureKindSchema, sandboxFixtureSchema, sandboxGradeSchema, sandboxPromptVersionSchema, sandboxRunSchema, saveSandboxVersionSchema, setSandboxLabelsSchema, } from '../sandbox.js';
4
+ import { errorResponses } from './_shared.js';
5
+ // ---------------------------------------------------------------------------
6
+ // Sandbox route contracts (the parallel prompt/model testing surface). Mounted
7
+ // under `/workspaces/:workspaceId`, so the paths here are relative to that prefix.
8
+ // See SandboxController in @cat-factory/server.
9
+ // ---------------------------------------------------------------------------
10
+ // Response wrappers that exist only inline / as service types today (the overview
11
+ // the UI loads on open and the composed experiment detail = experiment + grid).
12
+ const sandboxAgentKindMetaSchema = v.object({
13
+ agentKind: v.string(),
14
+ label: v.string(),
15
+ bucket: v.string(),
16
+ rubric: v.string(),
17
+ fixtureKinds: v.array(sandboxFixtureKindSchema),
18
+ basePromptId: v.nullable(v.string()),
19
+ });
20
+ const sandboxOverviewSchema = v.object({
21
+ agentKinds: v.array(sandboxAgentKindMetaSchema),
22
+ prompts: v.array(sandboxPromptVersionSchema),
23
+ fixtures: v.array(sandboxFixtureSchema),
24
+ experiments: v.array(sandboxExperimentSchema),
25
+ maxCells: v.number(),
26
+ });
27
+ const sandboxExperimentDetailSchema = v.object({
28
+ experiment: sandboxExperimentSchema,
29
+ runs: v.array(sandboxRunSchema),
30
+ grades: v.array(sandboxGradeSchema),
31
+ });
32
+ const sandboxPromptListSchema = v.array(sandboxPromptVersionSchema);
33
+ const sandboxFixtureListSchema = v.array(sandboxFixtureSchema);
34
+ const sandboxExperimentListSchema = v.array(sandboxExperimentSchema);
35
+ const promptIdParams = withObjectKeys(v.object({ promptId: v.string() }));
36
+ const fixtureIdParams = withObjectKeys(v.object({ fixtureId: v.string() }));
37
+ const experimentIdParams = withObjectKeys(v.object({ experimentId: v.string() }));
38
+ // ---- overview -------------------------------------------------------------
39
+ export const sandboxOverviewContract = defineApiContract({
40
+ method: 'get',
41
+ pathResolver: () => '/sandbox/overview',
42
+ responsesByStatusCode: { 200: sandboxOverviewSchema, ...errorResponses },
43
+ });
44
+ // ---- prompt versions ------------------------------------------------------
45
+ export const listSandboxPromptsContract = defineApiContract({
46
+ method: 'get',
47
+ pathResolver: () => '/sandbox/prompts',
48
+ requestQuerySchema: v.object({ agentKind: v.optional(v.string()) }),
49
+ responsesByStatusCode: { 200: sandboxPromptListSchema, ...errorResponses },
50
+ });
51
+ export const cloneSandboxPromptContract = defineApiContract({
52
+ method: 'post',
53
+ pathResolver: () => '/sandbox/prompts/clone',
54
+ requestBodySchema: cloneSandboxPromptSchema,
55
+ responsesByStatusCode: { 201: sandboxPromptVersionSchema, ...errorResponses },
56
+ });
57
+ export const saveSandboxPromptContract = defineApiContract({
58
+ method: 'post',
59
+ pathResolver: () => '/sandbox/prompts',
60
+ requestBodySchema: saveSandboxVersionSchema,
61
+ responsesByStatusCode: { 201: sandboxPromptVersionSchema, ...errorResponses },
62
+ });
63
+ export const setSandboxPromptLabelsContract = defineApiContract({
64
+ method: 'patch',
65
+ requestPathParamsSchema: promptIdParams,
66
+ pathResolver: ({ promptId }) => `/sandbox/prompts/${promptId}/labels`,
67
+ requestBodySchema: setSandboxLabelsSchema,
68
+ responsesByStatusCode: { 200: sandboxPromptVersionSchema, ...errorResponses },
69
+ });
70
+ export const archiveSandboxPromptContract = defineApiContract({
71
+ method: 'delete',
72
+ requestPathParamsSchema: promptIdParams,
73
+ pathResolver: ({ promptId }) => `/sandbox/prompts/${promptId}`,
74
+ responsesByStatusCode: { 204: ContractNoBody, ...errorResponses },
75
+ });
76
+ // ---- fixtures -------------------------------------------------------------
77
+ export const listSandboxFixturesContract = defineApiContract({
78
+ method: 'get',
79
+ pathResolver: () => '/sandbox/fixtures',
80
+ responsesByStatusCode: { 200: sandboxFixtureListSchema, ...errorResponses },
81
+ });
82
+ export const createSandboxFixtureContract = defineApiContract({
83
+ method: 'post',
84
+ pathResolver: () => '/sandbox/fixtures',
85
+ requestBodySchema: createSandboxFixtureSchema,
86
+ responsesByStatusCode: { 201: sandboxFixtureSchema, ...errorResponses },
87
+ });
88
+ export const removeSandboxFixtureContract = defineApiContract({
89
+ method: 'delete',
90
+ requestPathParamsSchema: fixtureIdParams,
91
+ pathResolver: ({ fixtureId }) => `/sandbox/fixtures/${fixtureId}`,
92
+ responsesByStatusCode: { 204: ContractNoBody, ...errorResponses },
93
+ });
94
+ // ---- experiments ----------------------------------------------------------
95
+ export const listSandboxExperimentsContract = defineApiContract({
96
+ method: 'get',
97
+ pathResolver: () => '/sandbox/experiments',
98
+ responsesByStatusCode: { 200: sandboxExperimentListSchema, ...errorResponses },
99
+ });
100
+ export const createSandboxExperimentContract = defineApiContract({
101
+ method: 'post',
102
+ pathResolver: () => '/sandbox/experiments',
103
+ requestBodySchema: createSandboxExperimentSchema,
104
+ responsesByStatusCode: { 201: sandboxExperimentSchema, ...errorResponses },
105
+ });
106
+ export const getSandboxExperimentContract = defineApiContract({
107
+ method: 'get',
108
+ requestPathParamsSchema: experimentIdParams,
109
+ pathResolver: ({ experimentId }) => `/sandbox/experiments/${experimentId}`,
110
+ responsesByStatusCode: { 200: sandboxExperimentDetailSchema, ...errorResponses },
111
+ });
112
+ export const launchSandboxExperimentContract = defineApiContract({
113
+ method: 'post',
114
+ requestPathParamsSchema: experimentIdParams,
115
+ pathResolver: ({ experimentId }) => `/sandbox/experiments/${experimentId}/launch`,
116
+ requestBodySchema: ContractNoBody,
117
+ responsesByStatusCode: { 200: sandboxExperimentDetailSchema, ...errorResponses },
118
+ });
119
+ //# sourceMappingURL=sandbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/routes/sandbox.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ export declare const getServiceFragmentDefaultsContract: {
2
+ readonly method: "get";
3
+ readonly pathResolver: () => string;
4
+ readonly responsesByStatusCode: {
5
+ readonly '4xx': import("valibot").ObjectSchema<{
6
+ readonly error: import("valibot").ObjectSchema<{
7
+ readonly code: import("valibot").StringSchema<undefined>;
8
+ readonly message: import("valibot").StringSchema<undefined>;
9
+ readonly details: import("valibot").OptionalSchema<import("valibot").UnknownSchema, undefined>;
10
+ readonly issues: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
11
+ readonly path: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
12
+ readonly message: import("valibot").StringSchema<undefined>;
13
+ }, undefined>, undefined>, undefined>;
14
+ }, undefined>;
15
+ }, undefined>;
16
+ readonly '5xx': import("valibot").ObjectSchema<{
17
+ readonly error: import("valibot").ObjectSchema<{
18
+ readonly code: import("valibot").StringSchema<undefined>;
19
+ readonly message: import("valibot").StringSchema<undefined>;
20
+ readonly details: import("valibot").OptionalSchema<import("valibot").UnknownSchema, undefined>;
21
+ readonly issues: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
22
+ readonly path: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
23
+ readonly message: import("valibot").StringSchema<undefined>;
24
+ }, undefined>, undefined>, undefined>;
25
+ }, undefined>;
26
+ }, undefined>;
27
+ readonly 200: import("valibot").ObjectSchema<{
28
+ readonly fragmentIds: import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>;
29
+ }, undefined>;
30
+ };
31
+ };
32
+ export declare const setServiceFragmentDefaultsContract: {
33
+ readonly method: "put";
34
+ readonly pathResolver: () => string;
35
+ readonly requestBodySchema: import("valibot").ObjectSchema<{
36
+ readonly fragmentIds: import("valibot").ArraySchema<import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").TrimAction, import("valibot").MinLengthAction<string, 1, undefined>]>, undefined>;
37
+ }, undefined>;
38
+ readonly responsesByStatusCode: {
39
+ readonly '4xx': import("valibot").ObjectSchema<{
40
+ readonly error: import("valibot").ObjectSchema<{
41
+ readonly code: import("valibot").StringSchema<undefined>;
42
+ readonly message: import("valibot").StringSchema<undefined>;
43
+ readonly details: import("valibot").OptionalSchema<import("valibot").UnknownSchema, undefined>;
44
+ readonly issues: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
45
+ readonly path: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
46
+ readonly message: import("valibot").StringSchema<undefined>;
47
+ }, undefined>, undefined>, undefined>;
48
+ }, undefined>;
49
+ }, undefined>;
50
+ readonly '5xx': import("valibot").ObjectSchema<{
51
+ readonly error: import("valibot").ObjectSchema<{
52
+ readonly code: import("valibot").StringSchema<undefined>;
53
+ readonly message: import("valibot").StringSchema<undefined>;
54
+ readonly details: import("valibot").OptionalSchema<import("valibot").UnknownSchema, undefined>;
55
+ readonly issues: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
56
+ readonly path: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
57
+ readonly message: import("valibot").StringSchema<undefined>;
58
+ }, undefined>, undefined>, undefined>;
59
+ }, undefined>;
60
+ }, undefined>;
61
+ readonly 200: import("valibot").ObjectSchema<{
62
+ readonly fragmentIds: import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>;
63
+ }, undefined>;
64
+ };
65
+ };
66
+ //# sourceMappingURL=service-fragment-defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-fragment-defaults.d.ts","sourceRoot":"","sources":["../../src/routes/service-fragment-defaults.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI7C,CAAA;AAEF,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAK7C,CAAA"}
@@ -0,0 +1,20 @@
1
+ import { defineApiContract } from '@toad-contracts/valibot';
2
+ import { serviceFragmentDefaultsSchema, setServiceFragmentDefaultsSchema, } from '../service-fragment-defaults.js';
3
+ import { errorResponses } from './_shared.js';
4
+ // ---------------------------------------------------------------------------
5
+ // Service-fragment-defaults route contracts. Mounted under `/workspaces/:workspaceId`,
6
+ // so the paths here are relative to that prefix. See ServiceFragmentDefaultsController
7
+ // in @cat-factory/server.
8
+ // ---------------------------------------------------------------------------
9
+ export const getServiceFragmentDefaultsContract = defineApiContract({
10
+ method: 'get',
11
+ pathResolver: () => '/service-fragment-defaults',
12
+ responsesByStatusCode: { 200: serviceFragmentDefaultsSchema, ...errorResponses },
13
+ });
14
+ export const setServiceFragmentDefaultsContract = defineApiContract({
15
+ method: 'put',
16
+ pathResolver: () => '/service-fragment-defaults',
17
+ requestBodySchema: setServiceFragmentDefaultsSchema,
18
+ responsesByStatusCode: { 200: serviceFragmentDefaultsSchema, ...errorResponses },
19
+ });
20
+ //# sourceMappingURL=service-fragment-defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-fragment-defaults.js","sourceRoot":"","sources":["../../src/routes/service-fragment-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EACL,6BAA6B,EAC7B,gCAAgC,GACjC,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,8EAA8E;AAC9E,uFAAuF;AACvF,uFAAuF;AACvF,0BAA0B;AAC1B,8EAA8E;AAE9E,MAAM,CAAC,MAAM,kCAAkC,GAAG,iBAAiB,CAAC;IAClE,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,GAAG,EAAE,CAAC,4BAA4B;IAChD,qBAAqB,EAAE,EAAE,GAAG,EAAE,6BAA6B,EAAE,GAAG,cAAc,EAAE;CACjF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,kCAAkC,GAAG,iBAAiB,CAAC;IAClE,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,GAAG,EAAE,CAAC,4BAA4B;IAChD,iBAAiB,EAAE,gCAAgC;IACnD,qBAAqB,EAAE,EAAE,GAAG,EAAE,6BAA6B,EAAE,GAAG,cAAc,EAAE;CACjF,CAAC,CAAA"}
@@ -0,0 +1,224 @@
1
+ import { ContractNoBody } from '@toad-contracts/valibot';
2
+ import * as v from 'valibot';
3
+ export declare const listServiceMountsContract: {
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.ArraySchema<v.ObjectSchema<{
30
+ readonly workspaceId: v.StringSchema<undefined>;
31
+ readonly serviceId: v.StringSchema<undefined>;
32
+ readonly position: v.ObjectSchema<{
33
+ readonly x: v.NumberSchema<undefined>;
34
+ readonly y: v.NumberSchema<undefined>;
35
+ }, undefined>;
36
+ readonly size: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
37
+ readonly w: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 1, undefined>]>;
38
+ readonly h: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 1, undefined>]>;
39
+ }, undefined>, undefined>, undefined>;
40
+ readonly createdAt: v.NumberSchema<undefined>;
41
+ }, undefined>, undefined>;
42
+ };
43
+ };
44
+ export declare const listServiceCatalogContract: {
45
+ readonly method: "get";
46
+ readonly pathResolver: () => string;
47
+ readonly responsesByStatusCode: {
48
+ readonly '4xx': v.ObjectSchema<{
49
+ readonly error: v.ObjectSchema<{
50
+ readonly code: v.StringSchema<undefined>;
51
+ readonly message: v.StringSchema<undefined>;
52
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
53
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
54
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
55
+ readonly message: v.StringSchema<undefined>;
56
+ }, undefined>, undefined>, undefined>;
57
+ }, undefined>;
58
+ }, undefined>;
59
+ readonly '5xx': v.ObjectSchema<{
60
+ readonly error: v.ObjectSchema<{
61
+ readonly code: v.StringSchema<undefined>;
62
+ readonly message: v.StringSchema<undefined>;
63
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
64
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
65
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
66
+ readonly message: v.StringSchema<undefined>;
67
+ }, undefined>, undefined>, undefined>;
68
+ }, undefined>;
69
+ }, undefined>;
70
+ readonly 200: v.ArraySchema<v.ObjectSchema<{
71
+ readonly id: v.StringSchema<undefined>;
72
+ readonly accountId: v.NullableSchema<v.StringSchema<undefined>, undefined>;
73
+ readonly frameBlockId: v.StringSchema<undefined>;
74
+ readonly installationId: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
75
+ readonly repoGithubId: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
76
+ readonly directory: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
77
+ readonly createdAt: v.NumberSchema<undefined>;
78
+ readonly mountCount: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
79
+ }, undefined>, undefined>;
80
+ };
81
+ };
82
+ export declare const mountServiceContract: {
83
+ readonly method: "post";
84
+ readonly requestPathParamsSchema: v.ObjectSchema<{
85
+ readonly serviceId: v.StringSchema<undefined>;
86
+ }, undefined> & import("@toad-contracts/core").ObjectKeysCarrier;
87
+ readonly pathResolver: ({ serviceId }: {
88
+ serviceId: string;
89
+ }) => string;
90
+ readonly requestBodySchema: v.ObjectSchema<{
91
+ readonly position: v.OptionalSchema<v.ObjectSchema<{
92
+ readonly x: v.NumberSchema<undefined>;
93
+ readonly y: v.NumberSchema<undefined>;
94
+ }, undefined>, undefined>;
95
+ }, undefined>;
96
+ readonly responsesByStatusCode: {
97
+ readonly '4xx': v.ObjectSchema<{
98
+ readonly error: v.ObjectSchema<{
99
+ readonly code: v.StringSchema<undefined>;
100
+ readonly message: v.StringSchema<undefined>;
101
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
102
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
103
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
104
+ readonly message: v.StringSchema<undefined>;
105
+ }, undefined>, undefined>, undefined>;
106
+ }, undefined>;
107
+ }, undefined>;
108
+ readonly '5xx': v.ObjectSchema<{
109
+ readonly error: v.ObjectSchema<{
110
+ readonly code: v.StringSchema<undefined>;
111
+ readonly message: v.StringSchema<undefined>;
112
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
113
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
114
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
115
+ readonly message: v.StringSchema<undefined>;
116
+ }, undefined>, undefined>, undefined>;
117
+ }, undefined>;
118
+ }, undefined>;
119
+ readonly 201: v.ObjectSchema<{
120
+ readonly workspaceId: v.StringSchema<undefined>;
121
+ readonly serviceId: v.StringSchema<undefined>;
122
+ readonly position: v.ObjectSchema<{
123
+ readonly x: v.NumberSchema<undefined>;
124
+ readonly y: v.NumberSchema<undefined>;
125
+ }, undefined>;
126
+ readonly size: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
127
+ readonly w: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 1, undefined>]>;
128
+ readonly h: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 1, undefined>]>;
129
+ }, undefined>, undefined>, undefined>;
130
+ readonly createdAt: v.NumberSchema<undefined>;
131
+ }, undefined>;
132
+ };
133
+ };
134
+ export declare const updateServiceMountLayoutContract: {
135
+ readonly method: "patch";
136
+ readonly requestPathParamsSchema: v.ObjectSchema<{
137
+ readonly serviceId: v.StringSchema<undefined>;
138
+ }, undefined> & import("@toad-contracts/core").ObjectKeysCarrier;
139
+ readonly pathResolver: ({ serviceId }: {
140
+ serviceId: string;
141
+ }) => string;
142
+ readonly requestBodySchema: v.ObjectSchema<{
143
+ readonly position: v.OptionalSchema<v.ObjectSchema<{
144
+ readonly x: v.NumberSchema<undefined>;
145
+ readonly y: v.NumberSchema<undefined>;
146
+ }, undefined>, undefined>;
147
+ readonly size: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
148
+ readonly w: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 1, undefined>]>;
149
+ readonly h: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 1, undefined>]>;
150
+ }, undefined>, undefined>, undefined>;
151
+ }, undefined>;
152
+ readonly responsesByStatusCode: {
153
+ readonly '4xx': v.ObjectSchema<{
154
+ readonly error: v.ObjectSchema<{
155
+ readonly code: v.StringSchema<undefined>;
156
+ readonly message: v.StringSchema<undefined>;
157
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
158
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
159
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
160
+ readonly message: v.StringSchema<undefined>;
161
+ }, undefined>, undefined>, undefined>;
162
+ }, undefined>;
163
+ }, undefined>;
164
+ readonly '5xx': v.ObjectSchema<{
165
+ readonly error: v.ObjectSchema<{
166
+ readonly code: v.StringSchema<undefined>;
167
+ readonly message: v.StringSchema<undefined>;
168
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
169
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
170
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
171
+ readonly message: v.StringSchema<undefined>;
172
+ }, undefined>, undefined>, undefined>;
173
+ }, undefined>;
174
+ }, undefined>;
175
+ readonly 200: v.ObjectSchema<{
176
+ readonly workspaceId: v.StringSchema<undefined>;
177
+ readonly serviceId: v.StringSchema<undefined>;
178
+ readonly position: v.ObjectSchema<{
179
+ readonly x: v.NumberSchema<undefined>;
180
+ readonly y: v.NumberSchema<undefined>;
181
+ }, undefined>;
182
+ readonly size: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
183
+ readonly w: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 1, undefined>]>;
184
+ readonly h: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 1, undefined>]>;
185
+ }, undefined>, undefined>, undefined>;
186
+ readonly createdAt: v.NumberSchema<undefined>;
187
+ }, undefined>;
188
+ };
189
+ };
190
+ export declare const unmountServiceContract: {
191
+ readonly method: "delete";
192
+ readonly requestPathParamsSchema: v.ObjectSchema<{
193
+ readonly serviceId: v.StringSchema<undefined>;
194
+ }, undefined> & import("@toad-contracts/core").ObjectKeysCarrier;
195
+ readonly pathResolver: ({ serviceId }: {
196
+ serviceId: string;
197
+ }) => string;
198
+ readonly responsesByStatusCode: {
199
+ readonly '4xx': v.ObjectSchema<{
200
+ readonly error: v.ObjectSchema<{
201
+ readonly code: v.StringSchema<undefined>;
202
+ readonly message: v.StringSchema<undefined>;
203
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
204
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
205
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
206
+ readonly message: v.StringSchema<undefined>;
207
+ }, undefined>, undefined>, undefined>;
208
+ }, undefined>;
209
+ }, undefined>;
210
+ readonly '5xx': v.ObjectSchema<{
211
+ readonly error: v.ObjectSchema<{
212
+ readonly code: v.StringSchema<undefined>;
213
+ readonly message: v.StringSchema<undefined>;
214
+ readonly details: v.OptionalSchema<v.UnknownSchema, undefined>;
215
+ readonly issues: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
216
+ readonly path: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
217
+ readonly message: v.StringSchema<undefined>;
218
+ }, undefined>, undefined>, undefined>;
219
+ }, undefined>;
220
+ }, undefined>;
221
+ readonly 204: typeof ContractNoBody;
222
+ };
223
+ };
224
+ //# sourceMappingURL=services.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../src/routes/services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqC,MAAM,yBAAyB,CAAA;AAC3F,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAoB5B,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIpC,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIrC,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM/B,CAAA;AAEF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM3C,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKjC,CAAA"}
@@ -0,0 +1,44 @@
1
+ import { ContractNoBody, defineApiContract, withObjectKeys } from '@toad-contracts/valibot';
2
+ import * as v from 'valibot';
3
+ import { mountServiceInputSchema, serviceSchema, updateMountInputSchema, workspaceMountSchema, } from '../services.js';
4
+ import { errorResponses } from './_shared.js';
5
+ // ---------------------------------------------------------------------------
6
+ // In-org shared service mount route contracts. See ServiceMountController in
7
+ // @cat-factory/server. Mounted under `/workspaces/:workspaceId`, so the paths
8
+ // here are relative to that prefix and `workspaceId` is NOT a contract param (the
9
+ // handler reads it via `param(c, 'workspaceId')`).
10
+ // ---------------------------------------------------------------------------
11
+ const workspaceMountListSchema = v.array(workspaceMountSchema);
12
+ const serviceListSchema = v.array(serviceSchema);
13
+ const serviceIdParams = withObjectKeys(v.object({ serviceId: v.string() }));
14
+ export const listServiceMountsContract = defineApiContract({
15
+ method: 'get',
16
+ pathResolver: () => '/services',
17
+ responsesByStatusCode: { 200: workspaceMountListSchema, ...errorResponses },
18
+ });
19
+ export const listServiceCatalogContract = defineApiContract({
20
+ method: 'get',
21
+ pathResolver: () => '/services/catalog',
22
+ responsesByStatusCode: { 200: serviceListSchema, ...errorResponses },
23
+ });
24
+ export const mountServiceContract = defineApiContract({
25
+ method: 'post',
26
+ requestPathParamsSchema: serviceIdParams,
27
+ pathResolver: ({ serviceId }) => `/services/${serviceId}`,
28
+ requestBodySchema: mountServiceInputSchema,
29
+ responsesByStatusCode: { 201: workspaceMountSchema, ...errorResponses },
30
+ });
31
+ export const updateServiceMountLayoutContract = defineApiContract({
32
+ method: 'patch',
33
+ requestPathParamsSchema: serviceIdParams,
34
+ pathResolver: ({ serviceId }) => `/services/${serviceId}/layout`,
35
+ requestBodySchema: updateMountInputSchema,
36
+ responsesByStatusCode: { 200: workspaceMountSchema, ...errorResponses },
37
+ });
38
+ export const unmountServiceContract = defineApiContract({
39
+ method: 'delete',
40
+ requestPathParamsSchema: serviceIdParams,
41
+ pathResolver: ({ serviceId }) => `/services/${serviceId}`,
42
+ responsesByStatusCode: { 204: ContractNoBody, ...errorResponses },
43
+ });
44
+ //# sourceMappingURL=services.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/routes/services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC3F,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAC9E,kFAAkF;AAClF,mDAAmD;AACnD,8EAA8E;AAE9E,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;AAC9D,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;AAChD,MAAM,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;AAE3E,MAAM,CAAC,MAAM,yBAAyB,GAAG,iBAAiB,CAAC;IACzD,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,GAAG,EAAE,CAAC,WAAW;IAC/B,qBAAqB,EAAE,EAAE,GAAG,EAAE,wBAAwB,EAAE,GAAG,cAAc,EAAE;CAC5E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;IAC1D,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,GAAG,EAAE,CAAC,mBAAmB;IACvC,qBAAqB,EAAE,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,cAAc,EAAE;CACrE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;IACpD,MAAM,EAAE,MAAM;IACd,uBAAuB,EAAE,eAAe;IACxC,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,aAAa,SAAS,EAAE;IACzD,iBAAiB,EAAE,uBAAuB;IAC1C,qBAAqB,EAAE,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,cAAc,EAAE;CACxE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG,iBAAiB,CAAC;IAChE,MAAM,EAAE,OAAO;IACf,uBAAuB,EAAE,eAAe;IACxC,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,aAAa,SAAS,SAAS;IAChE,iBAAiB,EAAE,sBAAsB;IACzC,qBAAqB,EAAE,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,cAAc,EAAE;CACxE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;IACtD,MAAM,EAAE,QAAQ;IAChB,uBAAuB,EAAE,eAAe;IACxC,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,aAAa,SAAS,EAAE;IACzD,qBAAqB,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE;CAClE,CAAC,CAAA"}