import {z} from 'zod' export type GetApiPluginChartPluginInstallIdPluginPanelPositionIdQueryArgs = {pluginInstallId: string, positionId: string, tableId: string, cellFormat?: ('json' | 'text') | undefined}; export type GetApiPluginChartPluginInstallIdPluginPanelPositionIdQueryOptions = {baseUrl?: string | undefined, bearerAuth?: string | undefined, fetch?: typeof fetch | undefined}; export const getApiPluginChartPluginInstallIdPluginPanelPositionIdQueryResponse = z.object({rows: z.array(z.record(z.string(), z.unknown())), columns: z.array(z.object({name: z.string(), column: z.string(), type: z.enum(["aggregation", "field"]), fieldSource: z.object({id: z.string(), name: z.string(), type: z.enum(["singleLineText", "longText", "user", "attachment", "checkbox", "multipleSelect", "singleSelect", "date", "number", "rating", "formula", "rollup", "conditionalRollup", "link", "createdTime", "lastModifiedTime", "createdBy", "lastModifiedBy", "autoNumber", "button"]), description: z.string().optional(), options: z.union([z.object({expression: z.enum(["countall({values})", "counta({values})", "count({values})", "sum({values})", "average({values})", "max({values})", "min({values})", "and({values})", "or({values})", "xor({values})", "array_join({values})", "array_unique({values})", "array_compact({values})", "concatenate({values})"]), timeZone: z.string().optional(), formatting: z.unknown(), showAs: z.union([z.object({type: z.enum(["url", "email", "phone"])}), z.object({type: z.enum(["bar", "ring"]), color: z.enum(["blueLight2", "blueLight1", "blueBright", "blue", "blueDark1", "cyanLight2", "cyanLight1", "cyanBright", "cyan", "cyanDark1", "grayLight2", "grayLight1", "grayBright", "gray", "grayDark1", "greenLight2", "greenLight1", "greenBright", "green", "greenDark1", "orangeLight2", "orangeLight1", "orangeBright", "orange", "orangeDark1", "pinkLight2", "pinkLight1", "pinkBright", "pink", "pinkDark1", "purpleLight2", "purpleLight1", "purpleBright", "purple", "purpleDark1", "redLight2", "redLight1", "redBright", "red", "redDark1", "tealLight2", "tealLight1", "tealBright", "teal", "tealDark1", "yellowLight2", "yellowLight1", "yellowBright", "yellow", "yellowDark1"]), showValue: z.boolean(), maxValue: z.number()}), z.object({type: z.enum(["bar", "line"]), color: z.enum(["blueLight2", "blueLight1", "blueBright", "blue", "blueDark1", "cyanLight2", "cyanLight1", "cyanBright", "cyan", "cyanDark1", "grayLight2", "grayLight1", "grayBright", "gray", "grayDark1", "greenLight2", "greenLight1", "greenBright", "green", "greenDark1", "orangeLight2", "orangeLight1", "orangeBright", "orange", "orangeDark1", "pinkLight2", "pinkLight1", "pinkBright", "pink", "pinkDark1", "purpleLight2", "purpleLight1", "purpleBright", "purple", "purpleDark1", "redLight2", "redLight1", "redBright", "red", "redDark1", "tealLight2", "tealLight1", "tealBright", "teal", "tealDark1", "yellowLight2", "yellowLight1", "yellowBright", "yellow", "yellowDark1"])})]).optional()}), z.object({expression: z.enum(["countall({values})", "counta({values})", "count({values})", "sum({values})", "average({values})", "max({values})", "min({values})", "and({values})", "or({values})", "xor({values})", "array_join({values})", "array_unique({values})", "array_compact({values})", "concatenate({values})"]), timeZone: z.string().optional(), formatting: z.unknown(), showAs: z.union([z.object({type: z.enum(["url", "email", "phone"])}), z.object({type: z.enum(["bar", "ring"]), color: z.enum(["blueLight2", "blueLight1", "blueBright", "blue", "blueDark1", "cyanLight2", "cyanLight1", "cyanBright", "cyan", "cyanDark1", "grayLight2", "grayLight1", "grayBright", "gray", "grayDark1", "greenLight2", "greenLight1", "greenBright", "green", "greenDark1", "orangeLight2", "orangeLight1", "orangeBright", "orange", "orangeDark1", "pinkLight2", "pinkLight1", "pinkBright", "pink", "pinkDark1", "purpleLight2", "purpleLight1", "purpleBright", "purple", "purpleDark1", "redLight2", "redLight1", "redBright", "red", "redDark1", "tealLight2", "tealLight1", "tealBright", "teal", "tealDark1", "yellowLight2", "yellowLight1", "yellowBright", "yellow", "yellowDark1"]), showValue: z.boolean(), maxValue: z.number()}), z.object({type: z.enum(["bar", "line"]), color: z.enum(["blueLight2", "blueLight1", "blueBright", "blue", "blueDark1", "cyanLight2", "cyanLight1", "cyanBright", "cyan", "cyanDark1", "grayLight2", "grayLight1", "grayBright", "gray", "grayDark1", "greenLight2", "greenLight1", "greenBright", "green", "greenDark1", "orangeLight2", "orangeLight1", "orangeBright", "orange", "orangeDark1", "pinkLight2", "pinkLight1", "pinkBright", "pink", "pinkDark1", "purpleLight2", "purpleLight1", "purpleBright", "purple", "purpleDark1", "redLight2", "redLight1", "redBright", "red", "redDark1", "tealLight2", "tealLight1", "tealBright", "teal", "tealDark1", "yellowLight2", "yellowLight1", "yellowBright", "yellow", "yellowDark1"])})]).optional(), baseId: z.string().optional(), foreignTableId: z.string().optional(), lookupFieldId: z.string().optional(), filter: z.object({}).optional(), sort: z.object({fieldId: z.string(), order: z.enum(["asc", "desc"])}).optional(), limit: z.number().int().gt(0).lte(5000).optional()}), z.object({expression: z.string(), timeZone: z.string().optional(), formatting: z.unknown(), showAs: z.union([z.object({type: z.enum(["url", "email", "phone"])}), z.object({type: z.enum(["bar", "ring"]), color: z.enum(["blueLight2", "blueLight1", "blueBright", "blue", "blueDark1", "cyanLight2", "cyanLight1", "cyanBright", "cyan", "cyanDark1", "grayLight2", "grayLight1", "grayBright", "gray", "grayDark1", "greenLight2", "greenLight1", "greenBright", "green", "greenDark1", "orangeLight2", "orangeLight1", "orangeBright", "orange", "orangeDark1", "pinkLight2", "pinkLight1", "pinkBright", "pink", "pinkDark1", "purpleLight2", "purpleLight1", "purpleBright", "purple", "purpleDark1", "redLight2", "redLight1", "redBright", "red", "redDark1", "tealLight2", "tealLight1", "tealBright", "teal", "tealDark1", "yellowLight2", "yellowLight1", "yellowBright", "yellow", "yellowDark1"]), showValue: z.boolean(), maxValue: z.number()}), z.object({type: z.enum(["bar", "line"]), color: z.enum(["blueLight2", "blueLight1", "blueBright", "blue", "blueDark1", "cyanLight2", "cyanLight1", "cyanBright", "cyan", "cyanDark1", "grayLight2", "grayLight1", "grayBright", "gray", "grayDark1", "greenLight2", "greenLight1", "greenBright", "green", "greenDark1", "orangeLight2", "orangeLight1", "orangeBright", "orange", "orangeDark1", "pinkLight2", "pinkLight1", "pinkBright", "pink", "pinkDark1", "purpleLight2", "purpleLight1", "purpleBright", "purple", "purpleDark1", "redLight2", "redLight1", "redBright", "red", "redDark1", "tealLight2", "tealLight1", "tealBright", "teal", "tealDark1", "yellowLight2", "yellowLight1", "yellowBright", "yellow", "yellowDark1"])})]).optional()}), z.object({baseId: z.string().optional(), relationship: z.enum(["oneOne", "manyMany", "oneMany", "manyOne"]), foreignTableId: z.string(), lookupFieldId: z.string(), isOneWay: z.boolean().optional(), fkHostTableName: z.string(), selfKeyName: z.string(), foreignKeyName: z.string(), symmetricFieldId: z.string().optional(), filterByViewId: z.string().nullable().optional(), visibleFieldIds: z.array(z.string()).nullable().optional(), filter: z.object({}).optional()}), z.object({formatting: z.object({date: z.string(), time: z.enum(["HH:mm", "hh:mm A", "None"]), timeZone: z.string()}), defaultValue: z.literal("now").nullable().optional()}), z.object({defaultValue: z.boolean().nullable().optional()}), z.object({}), z.object({showAs: z.object({type: z.enum(["url", "email", "phone"])}).optional(), defaultValue: z.string().nullable().optional()}), z.object({icon: z.enum(["star", "moon", "sun", "zap", "flame", "heart", "apple", "thumb-up"]), color: z.enum(["yellowBright", "redBright", "tealBright"]), max: z.number().int().gte(1).lte(10)}), z.object({isMultiple: z.boolean().optional(), shouldNotify: z.boolean().optional(), defaultValue: z.union([z.string(), z.literal("me"), z.array(z.union([z.string(), z.literal("me")])), z.unknown()]).optional()}), z.object({}), z.object({trackedFieldIds: z.array(z.string()).optional()}), z.object({label: z.string(), color: z.enum(["blueLight2", "blueLight1", "blueBright", "blue", "blueDark1", "cyanLight2", "cyanLight1", "cyanBright", "cyan", "cyanDark1", "grayLight2", "grayLight1", "grayBright", "gray", "grayDark1", "greenLight2", "greenLight1", "greenBright", "green", "greenDark1", "orangeLight2", "orangeLight1", "orangeBright", "orange", "orangeDark1", "pinkLight2", "pinkLight1", "pinkBright", "pink", "pinkDark1", "purpleLight2", "purpleLight1", "purpleBright", "purple", "purpleDark1", "redLight2", "redLight1", "redBright", "red", "redDark1", "tealLight2", "tealLight1", "tealBright", "teal", "tealDark1", "yellowLight2", "yellowLight1", "yellowBright", "yellow", "yellowDark1"]), maxCount: z.number().optional(), resetCount: z.boolean().optional(), workflow: z.object({id: z.string().optional(), name: z.string().optional(), isActive: z.boolean().optional()}).nullable().optional(), confirm: z.object({title: z.string().optional(), description: z.string().optional(), confirmText: z.string().optional()}).nullable().optional()}), z.object({expression: z.enum(["countall({values})", "counta({values})", "count({values})", "sum({values})", "average({values})", "max({values})", "min({values})", "and({values})", "or({values})", "xor({values})", "array_join({values})", "array_unique({values})", "array_compact({values})", "concatenate({values})"]), timeZone: z.string().optional(), formatting: z.unknown(), showAs: z.union([z.object({type: z.enum(["url", "email", "phone"])}), z.object({type: z.enum(["bar", "ring"]), color: z.enum(["blueLight2", "blueLight1", "blueBright", "blue", "blueDark1", "cyanLight2", "cyanLight1", "cyanBright", "cyan", "cyanDark1", "grayLight2", "grayLight1", "grayBright", "gray", "grayDark1", "greenLight2", "greenLight1", "greenBright", "green", "greenDark1", "orangeLight2", "orangeLight1", "orangeBright", "orange", "orangeDark1", "pinkLight2", "pinkLight1", "pinkBright", "pink", "pinkDark1", "purpleLight2", "purpleLight1", "purpleBright", "purple", "purpleDark1", "redLight2", "redLight1", "redBright", "red", "redDark1", "tealLight2", "tealLight1", "tealBright", "teal", "tealDark1", "yellowLight2", "yellowLight1", "yellowBright", "yellow", "yellowDark1"]), showValue: z.boolean(), maxValue: z.number()}), z.object({type: z.enum(["bar", "line"]), color: z.enum(["blueLight2", "blueLight1", "blueBright", "blue", "blueDark1", "cyanLight2", "cyanLight1", "cyanBright", "cyan", "cyanDark1", "grayLight2", "grayLight1", "grayBright", "gray", "grayDark1", "greenLight2", "greenLight1", "greenBright", "green", "greenDark1", "orangeLight2", "orangeLight1", "orangeBright", "orange", "orangeDark1", "pinkLight2", "pinkLight1", "pinkBright", "pink", "pinkDark1", "purpleLight2", "purpleLight1", "purpleBright", "purple", "purpleDark1", "redLight2", "redLight1", "redBright", "red", "redDark1", "tealLight2", "tealLight1", "tealBright", "teal", "tealDark1", "yellowLight2", "yellowLight1", "yellowBright", "yellow", "yellowDark1"])})]).optional(), baseId: z.string().optional(), foreignTableId: z.string().optional(), lookupFieldId: z.string().optional(), filter: z.object({}).optional(), sort: z.object({fieldId: z.string(), order: z.enum(["asc", "desc"])}).optional(), limit: z.number().int().gt(0).lte(5000).optional()}), z.object({baseId: z.string().optional(), relationship: z.enum(["oneOne", "manyMany", "oneMany", "manyOne"]), foreignTableId: z.string(), lookupFieldId: z.string(), isOneWay: z.boolean().optional(), fkHostTableName: z.string(), selfKeyName: z.string(), foreignKeyName: z.string(), symmetricFieldId: z.string().optional(), filterByViewId: z.string().nullable().optional(), visibleFieldIds: z.array(z.string()).nullable().optional(), filter: z.object({}).optional()}), z.object({choices: z.array(z.object({id: z.string(), name: z.string(), color: z.string()})), defaultValue: z.union([z.string(), z.array(z.string()), z.unknown()]).optional(), preventAutoNewOptions: z.boolean().optional()}), z.object({formatting: z.union([z.object({precision: z.number().gte(0).lte(5), type: z.literal("decimal")}), z.object({precision: z.number().gte(0).lte(5), type: z.literal("percent")}), z.object({precision: z.number().gte(0).lte(5), type: z.literal("currency"), symbol: z.string()})]), showAs: z.union([z.object({type: z.enum(["bar", "ring"]), color: z.enum(["blueLight2", "blueLight1", "blueBright", "blue", "blueDark1", "cyanLight2", "cyanLight1", "cyanBright", "cyan", "cyanDark1", "grayLight2", "grayLight1", "grayBright", "gray", "grayDark1", "greenLight2", "greenLight1", "greenBright", "green", "greenDark1", "orangeLight2", "orangeLight1", "orangeBright", "orange", "orangeDark1", "pinkLight2", "pinkLight1", "pinkBright", "pink", "pinkDark1", "purpleLight2", "purpleLight1", "purpleBright", "purple", "purpleDark1", "redLight2", "redLight1", "redBright", "red", "redDark1", "tealLight2", "tealLight1", "tealBright", "teal", "tealDark1", "yellowLight2", "yellowLight1", "yellowBright", "yellow", "yellowDark1"]), showValue: z.boolean(), maxValue: z.number()}), z.object({type: z.enum(["bar", "line"]), color: z.enum(["blueLight2", "blueLight1", "blueBright", "blue", "blueDark1", "cyanLight2", "cyanLight1", "cyanBright", "cyan", "cyanDark1", "grayLight2", "grayLight1", "grayBright", "gray", "grayDark1", "greenLight2", "greenLight1", "greenBright", "green", "greenDark1", "orangeLight2", "orangeLight1", "orangeBright", "orange", "orangeDark1", "pinkLight2", "pinkLight1", "pinkBright", "pink", "pinkDark1", "purpleLight2", "purpleLight1", "purpleBright", "purple", "purpleDark1", "redLight2", "redLight1", "redBright", "red", "redDark1", "tealLight2", "tealLight1", "tealBright", "teal", "tealDark1", "yellowLight2", "yellowLight1", "yellowBright", "yellow", "yellowDark1"])})]).optional(), defaultValue: z.number().nullable().optional()}), z.object({expression: z.literal("AUTO_NUMBER()")}), z.object({expression: z.literal("CREATED_TIME()"), formatting: z.object({date: z.string(), time: z.enum(["HH:mm", "hh:mm A", "None"]), timeZone: z.string()})}), z.object({expression: z.literal("LAST_MODIFIED_TIME()").optional(), formatting: z.object({date: z.string(), time: z.enum(["HH:mm", "hh:mm A", "None"]), timeZone: z.string()}).optional(), trackedFieldIds: z.array(z.string()).optional()}).and(z.record(z.string(), z.unknown()))]), meta: z.union([z.object({persistedAsGeneratedColumn: z.boolean().optional()}), z.object({hasOrderColumn: z.boolean().optional()})]).optional(), aiConfig: z.union([z.object({modelKey: z.string(), isAutoFill: z.boolean().nullable().optional(), attachPrompt: z.string().optional(), type: z.literal("extraction"), sourceFieldId: z.string()}), z.object({modelKey: z.string(), isAutoFill: z.boolean().nullable().optional(), attachPrompt: z.string().optional(), type: z.literal("summary"), sourceFieldId: z.string()}), z.object({modelKey: z.string(), isAutoFill: z.boolean().nullable().optional(), attachPrompt: z.string().optional(), type: z.literal("translation"), sourceFieldId: z.string(), targetLanguage: z.string()}), z.object({modelKey: z.string(), isAutoFill: z.boolean().nullable().optional(), attachPrompt: z.string().optional(), type: z.literal("improvement"), sourceFieldId: z.string()}), z.object({modelKey: z.string(), isAutoFill: z.boolean().nullable().optional(), attachPrompt: z.string().optional(), type: z.literal("customization"), prompt: z.string()}), z.object({modelKey: z.string(), isAutoFill: z.boolean().nullable().optional(), attachPrompt: z.string().optional(), type: z.literal("classification"), sourceFieldId: z.string()}), z.object({modelKey: z.string(), isAutoFill: z.boolean().nullable().optional(), attachPrompt: z.string().optional(), type: z.literal("customization"), prompt: z.string(), onlyAllowConfiguredOptions: z.boolean().optional()}), z.object({modelKey: z.string(), isAutoFill: z.boolean().nullable().optional(), attachPrompt: z.string().optional(), type: z.literal("tag"), sourceFieldId: z.string()}), z.object({modelKey: z.string(), isAutoFill: z.boolean().nullable().optional(), attachPrompt: z.string().optional(), type: z.literal("customization"), prompt: z.string(), onlyAllowConfiguredOptions: z.boolean().optional()}), z.object({modelKey: z.string(), isAutoFill: z.boolean().nullable().optional(), attachPrompt: z.string().optional(), n: z.number().gte(1).lte(10).optional(), size: z.string().optional(), quality: z.enum(["low", "medium", "high"]).optional(), aspectRatio: z.string().optional(), resolution: z.enum(["1K", "2K", "4K"]).optional(), type: z.literal("imageGeneration"), sourceFieldId: z.string()}), z.object({modelKey: z.string(), isAutoFill: z.boolean().nullable().optional(), attachPrompt: z.string().optional(), n: z.number().gte(1).lte(10).optional(), size: z.string().optional(), quality: z.enum(["low", "medium", "high"]).optional(), aspectRatio: z.string().optional(), resolution: z.enum(["1K", "2K", "4K"]).optional(), type: z.literal("imageCustomization"), prompt: z.string()}), z.object({modelKey: z.string(), isAutoFill: z.boolean().nullable().optional(), attachPrompt: z.string().optional(), type: z.literal("rating"), sourceFieldId: z.string()}), z.object({modelKey: z.string(), isAutoFill: z.boolean().nullable().optional(), attachPrompt: z.string().optional(), type: z.literal("customization"), prompt: z.string()}), z.object({modelKey: z.string(), isAutoFill: z.boolean().nullable().optional(), attachPrompt: z.string().optional(), type: z.literal("extraction"), sourceFieldId: z.string()}), z.object({modelKey: z.string(), isAutoFill: z.boolean().nullable().optional(), attachPrompt: z.string().optional(), type: z.literal("customization"), prompt: z.string()}), z.unknown()]).optional(), isLookup: z.boolean().optional(), isConditionalLookup: z.boolean().optional(), lookupOptions: z.union([z.object({baseId: z.string().optional(), relationship: z.enum(["oneOne", "manyMany", "oneMany", "manyOne"]), foreignTableId: z.string(), lookupFieldId: z.string(), fkHostTableName: z.string(), selfKeyName: z.string(), foreignKeyName: z.string(), filter: z.object({}).optional(), linkFieldId: z.string()}), z.object({baseId: z.string().optional(), foreignTableId: z.string(), lookupFieldId: z.string(), filter: z.object({}), sort: z.object({fieldId: z.string(), order: z.enum(["asc", "desc"])}).optional(), limit: z.number().int().gt(0).lte(5000).optional()})]).optional(), notNull: z.boolean().optional(), unique: z.boolean().optional(), isPrimary: z.boolean().optional(), isComputed: z.boolean().optional(), isPending: z.boolean().optional(), hasError: z.boolean().optional(), cellValueType: z.enum(["string", "number", "boolean", "dateTime"]), isMultipleCellValue: z.boolean().optional(), dbFieldType: z.enum(["TEXT", "INTEGER", "DATETIME", "REAL", "BLOB", "JSON", "BOOLEAN"]), dbFieldName: z.string().min(1), recordRead: z.boolean().optional(), recordCreate: z.boolean().optional()}).optional()}))}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Get a plugin panel install plugin query by id * * GET /plugin/chart/{pluginInstallId}/plugin-panel/{positionId}/query */ export const getApiPluginChartPluginInstallIdPluginPanelPositionIdQuery = async (args: GetApiPluginChartPluginInstallIdPluginPanelPositionIdQueryArgs, options?: GetApiPluginChartPluginInstallIdPluginPanelPositionIdQueryOptions) => { const {baseUrl = "https://app.teable.ai/api", fetch: fetchFn = fetch, bearerAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (args.tableId != null) query.append("tableId", String(args.tableId)) if (args.cellFormat != null) query.append("cellFormat", String(args.cellFormat)) if (bearerAuth !== undefined) headers.set('authorization', `Bearer ${bearerAuth}`) const url = `${baseUrl.replace(/\/+$/, '')}/plugin/chart/${encodeURIComponent(String(args.pluginInstallId))}/plugin-panel/${encodeURIComponent(String(args.positionId))}/query${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(getApiPluginChartPluginInstallIdPluginPanelPositionIdQueryResponse, await res.json()) };