86 lines · 2.6 KB · TypeScript
RawDownload
import * as Schema from "effect/Schema"; import { IsoDateTime, TrimmedNonEmptyString } from "./baseSchemas.ts";import { ProviderDriverKind, ProviderInstanceId } from "./providerInstance.ts"; export const ProviderSetupInput = Schema.Struct({  instanceId: ProviderInstanceId,});export type ProviderSetupInput = typeof ProviderSetupInput.Type; const SetupOperationId = TrimmedNonEmptyString.check(Schema.isMaxLength(128)); export const ProviderAuthState = Schema.Struct({  instanceId: ProviderInstanceId,  phase: Schema.Literals([    "idle",    "starting",    "waiting",    "verifying",    "succeeded",    "failed",    "cancelled",  ]),  flowId: Schema.NullOr(SetupOperationId),  authorizationUrl: Schema.NullOr(Schema.String),  expiresAt: Schema.NullOr(IsoDateTime),  message: Schema.NullOr(Schema.String),});export type ProviderAuthState = typeof ProviderAuthState.Type; export const ProviderAuthCompleteInput = Schema.Struct({  instanceId: ProviderInstanceId,  flowId: SetupOperationId,  callbackUrl: TrimmedNonEmptyString.check(Schema.isMaxLength(16_384)),});export type ProviderAuthCompleteInput = typeof ProviderAuthCompleteInput.Type; export const ProviderAuthCancelInput = Schema.Struct({  instanceId: ProviderInstanceId,  flowId: SetupOperationId,});export type ProviderAuthCancelInput = typeof ProviderAuthCancelInput.Type; const ByteCount = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)); export const ProviderInstallState = Schema.Struct({  driver: ProviderDriverKind,  operationId: Schema.NullOr(SetupOperationId),  phase: Schema.Literals([    "idle",    "downloading",    "extracting",    "verifying",    "succeeded",    "failed",    "cancelled",  ]),  downloadedBytes: ByteCount,  totalBytes: Schema.NullOr(ByteCount),  version: Schema.NullOr(TrimmedNonEmptyString),  installedVersion: Schema.NullOr(TrimmedNonEmptyString),  canRemove: Schema.Boolean,  message: Schema.NullOr(Schema.String),});export type ProviderInstallState = typeof ProviderInstallState.Type; export const ProviderInstallCancelInput = Schema.Struct({  instanceId: ProviderInstanceId,  operationId: SetupOperationId,});export type ProviderInstallCancelInput = typeof ProviderInstallCancelInput.Type; /** Safe setup failure text. Never include OAuth codes, URLs, or native token data. */export class ProviderSetupError extends Schema.TaggedError<ProviderSetupError>()(  "ProviderSetupError",  {    instanceId: ProviderInstanceId,    operation: Schema.String,    detail: Schema.String,    cause: Schema.optional(Schema.Defect()),  },) {  override get message(): string {    return this.detail;  }}