diff --git a/packages/client/src/effect/api/api.ts b/packages/client/src/effect/api/api.ts index ca78d62ead..b83963cf30 100644 --- a/packages/client/src/effect/api/api.ts +++ b/packages/client/src/effect/api/api.ts @@ -1027,21 +1027,27 @@ export interface ProjectCopyApi { readonly refresh: ProjectCopyRefreshOperation } -type Endpoint25_0Request = Parameters[0] +type Endpoint25_0Request = Parameters[0] export type Endpoint25_0Input = { readonly location?: Endpoint25_0Request["query"]["location"] } -export type Endpoint25_0Output = EffectValue> -export type VcsStatusOperation = (input?: Endpoint25_0Input) => Effect.Effect +export type Endpoint25_0Output = EffectValue> +export type VcsGetOperation = (input?: Endpoint25_0Input) => Effect.Effect -type Endpoint25_1Request = Parameters[0] -export type Endpoint25_1Input = { - readonly location?: Endpoint25_1Request["query"]["location"] - readonly mode: Endpoint25_1Request["query"]["mode"] - readonly context?: Endpoint25_1Request["query"]["context"] +type Endpoint25_1Request = Parameters[0] +export type Endpoint25_1Input = { readonly location?: Endpoint25_1Request["query"]["location"] } +export type Endpoint25_1Output = EffectValue> +export type VcsStatusOperation = (input?: Endpoint25_1Input) => Effect.Effect + +type Endpoint25_2Request = Parameters[0] +export type Endpoint25_2Input = { + readonly location?: Endpoint25_2Request["query"]["location"] + readonly mode: Endpoint25_2Request["query"]["mode"] + readonly context?: Endpoint25_2Request["query"]["context"] } -export type Endpoint25_1Output = EffectValue> -export type VcsDiffOperation = (input: Endpoint25_1Input) => Effect.Effect +export type Endpoint25_2Output = EffectValue> +export type VcsDiffOperation = (input: Endpoint25_2Input) => Effect.Effect export interface VcsApi { + readonly get: VcsGetOperation readonly status: VcsStatusOperation readonly diff: VcsDiffOperation } diff --git a/packages/client/src/effect/generated/client.ts b/packages/client/src/effect/generated/client.ts index 01e2791840..66eeed2a78 100644 --- a/packages/client/src/effect/generated/client.ts +++ b/packages/client/src/effect/generated/client.ts @@ -1234,23 +1234,32 @@ const adaptGroup24 = (raw: RawClient["server.projectCopy"]) => ({ refresh: Endpoint24_2(raw), }) -type Endpoint25_0Request = Parameters[0] +type Endpoint25_0Request = Parameters[0] type Endpoint25_0Input = { readonly location?: Endpoint25_0Request["query"]["location"] } const Endpoint25_0 = (raw: RawClient["server.vcs"]) => (input?: Endpoint25_0Input) => + raw["vcs.get"]({ query: { location: input?.["location"] } }).pipe(Effect.mapError(mapClientError)) + +type Endpoint25_1Request = Parameters[0] +type Endpoint25_1Input = { readonly location?: Endpoint25_1Request["query"]["location"] } +const Endpoint25_1 = (raw: RawClient["server.vcs"]) => (input?: Endpoint25_1Input) => raw["vcs.status"]({ query: { location: input?.["location"] } }).pipe(Effect.mapError(mapClientError)) -type Endpoint25_1Request = Parameters[0] -type Endpoint25_1Input = { - readonly location?: Endpoint25_1Request["query"]["location"] - readonly mode: Endpoint25_1Request["query"]["mode"] - readonly context?: Endpoint25_1Request["query"]["context"] +type Endpoint25_2Request = Parameters[0] +type Endpoint25_2Input = { + readonly location?: Endpoint25_2Request["query"]["location"] + readonly mode: Endpoint25_2Request["query"]["mode"] + readonly context?: Endpoint25_2Request["query"]["context"] } -const Endpoint25_1 = (raw: RawClient["server.vcs"]) => (input: Endpoint25_1Input) => +const Endpoint25_2 = (raw: RawClient["server.vcs"]) => (input: Endpoint25_2Input) => raw["vcs.diff"]({ query: { location: input["location"], mode: input["mode"], context: input["context"] } }).pipe( Effect.mapError(mapClientError), ) -const adaptGroup25 = (raw: RawClient["server.vcs"]) => ({ status: Endpoint25_0(raw), diff: Endpoint25_1(raw) }) +const adaptGroup25 = (raw: RawClient["server.vcs"]) => ({ + get: Endpoint25_0(raw), + status: Endpoint25_1(raw), + diff: Endpoint25_2(raw), +}) type Endpoint26_0Request = Parameters[0] type Endpoint26_0Input = { readonly location?: Endpoint26_0Request["query"]["location"] } diff --git a/packages/client/src/promise/generated/client.ts b/packages/client/src/promise/generated/client.ts index 36915d0186..1c35874076 100644 --- a/packages/client/src/promise/generated/client.ts +++ b/packages/client/src/promise/generated/client.ts @@ -204,6 +204,8 @@ import type { ProjectCopyRemoveOutput, ProjectCopyRefreshInput, ProjectCopyRefreshOutput, + VcsGetInput, + VcsGetOutput, VcsStatusInput, VcsStatusOutput, VcsDiffInput, @@ -1714,6 +1716,18 @@ export function make(options: ClientOptions) { ), }, vcs: { + get: (input?: VcsGetInput, requestOptions?: RequestOptions) => + request( + { + method: "GET", + path: `/api/vcs`, + query: { location: input?.["location"] }, + successStatus: 200, + declaredStatuses: [401, 400], + empty: false, + }, + requestOptions, + ), status: (input?: VcsStatusInput, requestOptions?: RequestOptions) => request( { diff --git a/packages/client/src/promise/generated/types.ts b/packages/client/src/promise/generated/types.ts index b55c5e9a08..9151587f8e 100644 --- a/packages/client/src/promise/generated/types.ts +++ b/packages/client/src/promise/generated/types.ts @@ -530,6 +530,8 @@ export type ReferenceGitSource = { export type ProjectCopyCopy = { directory: string } +export type VcsInfo = { branch?: string; defaultBranch?: string } + export type VcsFileStatus = { file: string additions: number @@ -4953,6 +4955,17 @@ export type ProjectCopyRefreshInput = { export type ProjectCopyRefreshOutput = void +export type VcsGetInput = { + readonly location?: { + readonly location?: { readonly directory?: string | undefined; readonly workspace?: string | undefined } | undefined + }["location"] +} + +export type VcsGetOutput = { + location: { directory: string; workspaceID?: string; project: { id: string; directory: string } } + data: VcsInfo +} + export type VcsStatusInput = { readonly location?: { readonly location?: { readonly directory?: string | undefined; readonly workspace?: string | undefined } | undefined diff --git a/packages/client/test/promise.test.ts b/packages/client/test/promise.test.ts index 5845465636..9c43ee4951 100644 --- a/packages/client/test/promise.test.ts +++ b/packages/client/test/promise.test.ts @@ -43,7 +43,7 @@ test("exposes every standard HTTP API group", () => { expect(Object.keys(client.integration.oauth)).toEqual(["connect", "status", "complete", "cancel"]) expect(Object.keys(client.integration.command)).toEqual(["connect", "status", "cancel"]) expect(Object.keys(client.file)).toEqual(["read", "list", "find"]) - expect(Object.keys(client.vcs)).toEqual(["status", "diff"]) + expect(Object.keys(client.vcs)).toEqual(["get", "status", "diff"]) expect(Object.keys(client.pty)).toEqual(["shells", "list", "create", "get", "update", "remove", "connectToken"]) expect(Object.keys(client.shell)).toEqual(["list", "create", "get", "timeout", "output", "remove"]) expect(Object.keys(client.project)).toEqual(["list", "current", "directories"])