@qundus/qform
Version:
The only form library you'll ever need :)
26 lines (24 loc) • 105 kB
TypeScript
import { F as Fields, O as Options, P as PluginProps, a as FieldCondition, B as Basics, A as AtomsPrepared, b as FormButton, c as PLACEHOLDERS, d as FormObject, e as OptionsMerged } from './_model-Cl5-fEzV.js';
export { _ as _QFORM } from './_model-Cl5-fEzV.js';
import { _QSTATE } from '@qundus/qstate';
import '@qundus/qstate/addons';
import '@qundus/qstate/hooks';
type CamelToSnakeCase<S extends string, Sep extends string = "_", UppercaseIsNewWord extends boolean = false, Start extends boolean = true, PreviousLetterIsCapital = false> = S extends `${infer T}${infer U}` ? `${T extends Capitalize<T> ? Start extends false ? UppercaseIsNewWord extends true ? Sep : PreviousLetterIsCapital extends false ? Sep : "" : "" : ""}${Lowercase<T>}${T extends Capitalize<T> ? CamelToSnakeCase<U, Sep, UppercaseIsNewWord, false, true> : CamelToSnakeCase<U, Sep, UppercaseIsNewWord, false, false>}` : S;
type FormActions<F extends Fields, O extends Options<F>> = ReturnType<typeof formActions<F, O>>;
declare function formActions<F extends Fields, O extends Options<F>>(props: PluginProps<F, O>): {
canSubmit: () => boolean;
startSubmitting: () => (() => void) | null;
submit: (props: {
runner: () => Promise<void>;
cannotSubmit?: <G>() => void;
error?: <G>(e: G) => void;
}) => Promise<void>;
updateValues: <G extends Object>(values: G, paths?: Record<string, string | {
value: string;
key?: string;
}>) => void;
updateConditions: <G extends Record<keyof F, Partial<FieldCondition>>>(conditions: G) => void;
getValues<O_1 extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }>(special?: O_1 | undefined): { [K_1 in keyof F as (unknown extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? false : (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) extends infer T ? T extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? T extends "snake" ? true : false : never : never) extends true ? CamelToSnakeCase<string & K_1, "_", false, true, false> : (unknown extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? false : (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) extends infer T_1 ? T_1 extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? T_1 extends "snake_aggressive" ? true : false : never : never) extends true ? CamelToSnakeCase<string & K_1, "_", true, true, false> : (unknown extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? false : (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) extends infer T_2 ? T_2 extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? T_2 extends "kebab_aggressive" ? true : false : never : never) extends true ? CamelToSnakeCase<string & K_1, "-", true, true, false> : (unknown extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? false : (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) extends infer T_3 ? T_3 extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? T_3 extends "kebab" ? true : false : never : never) extends true ? CamelToSnakeCase<string & K_1, "-", false, true, false> : (unknown extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? false : (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) extends infer T_4 ? T_4 extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? T_4 extends "lowercase" ? true : false : never : never) extends true ? Lowercase<string & K_1> : (unknown extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? false : (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) extends infer T_5 ? T_5 extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? T_5 extends "uppercase" ? true : false : never : never) extends true ? Uppercase<string & K_1> : K_1]: F[K_1]["value"]; };
getValuesLowercase<O_1 extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }>(special?: O_1 | undefined): { [K_1 in keyof F as (unknown extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? false : (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) extends infer T ? T extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? T extends "snake" ? true : false : never : never) extends true ? CamelToSnakeCase<string & K_1, "_", false, true, false> : (unknown extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? false : (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) extends infer T_1 ? T_1 extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? T_1 extends "snake_aggressive" ? true : false : never : never) extends true ? CamelToSnakeCase<string & K_1, "_", true, true, false> : (unknown extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? false : (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) extends infer T_2 ? T_2 extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? T_2 extends "kebab_aggressive" ? true : false : never : never) extends true ? CamelToSnakeCase<string & K_1, "-", true, true, false> : (unknown extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? false : (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) extends infer T_3 ? T_3 extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? T_3 extends "kebab" ? true : false : never : never) extends true ? CamelToSnakeCase<string & K_1, "-", false, true, false> : (unknown extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? false : (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) extends infer T_4 ? T_4 extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? T_4 extends "lowercase" ? true : false : never : never) extends true ? Lowercase<string & K_1> : (unknown extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? false : (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) extends infer T_5 ? T_5 extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? T_5 extends "uppercase" ? true : false : never : never) extends true ? Uppercase<string & K_1> : K_1]: F[K_1]["value"]; };
getValuesUppercase<O_1 extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }>(special?: O_1 | undefined): { [K_1 in keyof F as (unknown extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? false : (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) extends infer T ? T extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? T extends "snake" ? true : false : never : never) extends true ? CamelToSnakeCase<string & K_1, "_", false, true, false> : (unknown extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? false : (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) extends infer T_1 ? T_1 extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? T_1 extends "snake_aggressive" ? true : false : never : never) extends true ? CamelToSnakeCase<string & K_1, "_", true, true, false> : (unknown extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? false : (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) extends infer T_2 ? T_2 extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? T_2 extends "kebab_aggressive" ? true : false : never : never) extends true ? CamelToSnakeCase<string & K_1, "-", true, true, false> : (unknown extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? false : (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) extends infer T_3 ? T_3 extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? T_3 extends "kebab" ? true : false : never : never) extends true ? CamelToSnakeCase<string & K_1, "-", false, true, false> : (unknown extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? false : (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) extends infer T_4 ? T_4 extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? T_4 extends "lowercase" ? true : false : never : never) extends true ? Lowercase<string & K_1> : (unknown extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? false : (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) extends infer T_5 ? T_5 extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? T_5 extends "uppercase" ? true : false : never : never) extends true ? Uppercase<string & K_1> : K_1]: F[K_1]["value"]; };
getValuesSnakecase<O_1 extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }>(special?: O_1 | undefined): { [K_1 in keyof F as (unknown extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? false : (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) extends infer T ? T extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? T extends "snake" ? true : false : never : never) extends true ? CamelToSnakeCase<string & K_1, "_", false, true, false> : (unknown extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) ? false : (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1]) extends infer T_1 ? T_1 extends (unknown extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase") | undefined; }[K_1] ? "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" : "same" | "snake" | "snake_aggressive" | "kebab" | "kebab_aggressive" | "lowercase" | "uppercase" extends { [K in keyof F]?: ("same" | "snake" | "snake_aggressive" | "keb