@jfdevelops/multi-step-form-core 1.0.0-alpha.14 → 1.0.0-alpha.16
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.
- package/dist/index.d.cts +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/internals/step-schema.cjs +80 -29
- package/dist/internals/step-schema.cjs.map +1 -1
- package/dist/internals/step-schema.d.cts +2 -1
- package/dist/internals/step-schema.d.cts.map +1 -1
- package/dist/internals/step-schema.d.mts +2 -1
- package/dist/internals/step-schema.d.mts.map +1 -1
- package/dist/internals/step-schema.mjs +80 -29
- package/dist/internals/step-schema.mjs.map +1 -1
- package/dist/steps/schema.cjs.map +1 -1
- package/dist/steps/schema.d.cts +1 -1
- package/dist/steps/schema.d.cts.map +1 -1
- package/dist/steps/schema.d.mts +1 -1
- package/dist/steps/schema.d.mts.map +1 -1
- package/dist/steps/schema.mjs.map +1 -1
- package/dist/steps/types.cjs.map +1 -1
- package/dist/steps/types.d.cts +60 -8
- package/dist/steps/types.d.cts.map +1 -1
- package/dist/steps/types.d.mts +60 -8
- package/dist/steps/types.d.mts.map +1 -1
- package/dist/steps/types.mjs.map +1 -1
- package/dist/utils/casing.d.cts +1 -1
- package/dist/utils/casing.d.cts.map +1 -1
- package/dist/utils/casing.d.mts +1 -1
- package/dist/utils/casing.d.mts.map +1 -1
- package/dist/utils/path.cjs +61 -2
- package/dist/utils/path.cjs.map +1 -1
- package/dist/utils/path.d.cts +9 -1
- package/dist/utils/path.d.cts.map +1 -1
- package/dist/utils/path.d.mts +9 -1
- package/dist/utils/path.d.mts.map +1 -1
- package/dist/utils/path.mjs +61 -2
- package/dist/utils/path.mjs.map +1 -1
- package/dist/utils/types.d.cts +3 -1
- package/dist/utils/types.d.cts.map +1 -1
- package/dist/utils/types.d.mts +3 -1
- package/dist/utils/types.d.mts.map +1 -1
- package/dist/utils/validator.d.mts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.mts","names":[],"sources":["../../src/steps/types.ts"],"sourcesContent":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../../src/steps/types.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/steps/types.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.mjs","names":[],"sources":["../../src/steps/types.ts"],"sourcesContent":["import type { StorageConfig } from '@/storage';\nimport {\n type CasingType,\n type Constrain,\n type DeepKeys,\n type DefaultCasing,\n type DefaultFieldType,\n type Expand,\n type FieldType,\n type objectHelpers,\n} from '@/utils';\nimport type { path } from '@/utils/path';\nimport type {\n AnyValidator,\n DefaultValidator,\n ResolveValidatorOutput,\n} from '@/utils/validator';\n\nexport interface NameTransformCasingOptions<TCasing extends CasingType> {\n /**\n * How the `name` should be transformed for the `label`.\n *\n * If omitted, the default will be whatever is set during {@linkcode MultiStepFormSchema} initialization.\n */\n nameTransformCasing?: Constrain<TCasing, CasingType>;\n}\nexport interface StepFieldOptions<\n Type extends FieldType,\n Casing extends CasingType,\n DefaultValue\n> extends NameTransformCasingOptions<Casing> {\n defaultValue: DefaultValue;\n /**\n * The type of the field.\n *\n * @default 'string'\n */\n type?: Type;\n /**\n * The text for the label.\n *\n * If omitted, it will default to the specified casing.\n *\n * If `false`, `label` will be `undefined`, meaning there won't\n * be a label for this field.\n */\n label?: string | false;\n}\nexport type AnyStepFieldOption = StepFieldOptions<\n FieldType,\n CasingType,\n unknown\n>;\nexport type AnyStepField = Record<string, AnyStepFieldOption>;\nexport interface StepOptions<\n Casing extends CasingType = CasingType,\n TStepField extends AnyStepField = AnyStepField,\n FieldValidator = unknown\n> extends NameTransformCasingOptions<Casing> {\n title: string;\n description?: string;\n fields: TStepField;\n /**\n * Validator for the fields.\n */\n validateFields?: Constrain<FieldValidator, AnyValidator, DefaultValidator>;\n}\nexport type Step<\n TCasing extends CasingType = CasingType,\n step extends number = number,\n options extends StepOptions<TCasing, AnyStepField, unknown> = StepOptions<\n TCasing,\n AnyStepField,\n unknown\n >\n> = Record<ValidStepKey<step>, options>;\nexport type AnyStep = Step<any, any, any>;\n\nexport type GetFieldsForStep<\n Steps extends InferStepOptions<any>,\n Key extends keyof Steps\n> = Steps[Key] extends {\n fields: infer fields extends AnyStepField;\n}\n ? fields\n : never;\nexport type GetDefaultCasingTransformation<\n Step extends InferStepOptions<any>,\n Key extends keyof Step,\n TDefault extends CasingType = DefaultCasing\n> = Step[Key] extends { nameTransformCasing: infer casing extends CasingType }\n ? casing\n : TDefault;\nexport type SetDefault<T, Defaults> = {\n // All the keys from T\n [K in keyof T]-?: K extends keyof Defaults\n ? undefined extends T[K]\n ? Exclude<T[K], undefined> | Defaults[K] // optional -> upgraded with default\n : T[K] // already required, don't touch\n : T[K];\n} & {\n // Any defaults not in T get added\n [K in Exclude<keyof Defaults, keyof T>]-?: Defaults[K];\n};\nexport type ResolvedFields<\n TInferredSteps extends InferStepOptions<any>,\n TKey extends keyof TInferredSteps,\n TFields extends GetFieldsForStep<TInferredSteps, TKey> = GetFieldsForStep<\n TInferredSteps,\n TKey\n >\n> = {\n [name in keyof TFields]: Expand<\n // current field information for the `name`\n SetDefault<\n TFields[name],\n {\n type: DefaultFieldType;\n nameTransformCasing: GetDefaultCasingTransformation<\n TInferredSteps,\n TKey\n >;\n label: string;\n }\n >\n >;\n};\nexport type ResolvedStepBuilder<\n TStep extends Step,\n TDefaultCasing extends CasingType = DefaultCasing,\n TInferredSteps extends InferStepOptions<TStep> = InferStepOptions<TStep>\n> = Expand<{\n [stepKey in keyof TInferredSteps]: Expand<\n SetDefault<\n Omit<TInferredSteps[stepKey], 'fields' | 'validateFields'>,\n {\n type: DefaultFieldType;\n nameTransformCasing: GetDefaultCasingTransformation<\n TInferredSteps,\n stepKey,\n TDefaultCasing\n >;\n }\n > & {\n fields: Expand<ResolvedFields<TInferredSteps, stepKey>>;\n }\n >;\n}>;\nexport type Updater<TInput, TOutput = TInput> =\n | TOutput\n | ((input: TInput) => TOutput);\n\nexport namespace UpdateFn {\n export type resolvedStep<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends ValidStepKey<TStepNumbers>\n > = Expand<StrippedResolvedStep<TResolvedStep[TTargetStep], true>>;\n\n type resolveAllPropertyPath<\n TCurrentStep extends AnyResolvedStep,\n TField extends chosenFields<TCurrentStep>\n > = TField extends HelperFnChosenSteps.defaultStringOption\n ? Relaxed<TCurrentStep>\n : never;\n type resolveTuplePropertyPath<\n TCurrentStep extends AnyResolvedStep,\n TField extends chosenFields<TCurrentStep>,\n TDeepKeys extends DeepKeys<TCurrentStep> = DeepKeys<TCurrentStep>\n > = TField extends HelperFnChosenSteps.tupleNotation<TDeepKeys>\n ? TField[number] extends DeepKeys<Relaxed<TCurrentStep>>\n ? path.pickBy<Relaxed<TCurrentStep>, TField[number]>\n : never\n : never;\n type resolveObjectPropertyPath<\n TCurrentStep extends AnyResolvedStep,\n TField extends chosenFields<TCurrentStep>,\n TDeepKeys extends DeepKeys<TCurrentStep> = DeepKeys<TCurrentStep>\n > = TField extends path.generateObjectConfig<TField>\n ? path.objectToPath<TField> extends TDeepKeys\n ? path.objectToPath<TField> extends DeepKeys<Relaxed<TCurrentStep>>\n ? path.pickBy<Relaxed<TCurrentStep>, path.objectToPath<TField>>\n : never\n : never\n : never;\n type resolvePathType<\n TCurrentStep extends AnyResolvedStep,\n TField extends chosenFields<TCurrentStep>\n > = TField extends HelperFnChosenSteps.defaultStringOption\n ? 'all'\n : TField extends Array<infer _>\n ? 'tuple'\n : objectHelpers.isObject<TField> extends true\n ? 'object'\n : never;\n type resolvePathMap<\n TCurrentStep extends AnyResolvedStep,\n TField extends chosenFields<TCurrentStep>\n > = {\n all: resolveAllPropertyPath<TCurrentStep, TField>;\n tuple: resolveTuplePropertyPath<TCurrentStep, TField>;\n object: resolveObjectPropertyPath<TCurrentStep, TField>;\n };\n export type resolvedFieldValue<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends ValidStepKey<TStepNumbers>,\n TField extends chosenFields<TCurrentStep>,\n TCurrentStep extends resolvedStep<\n TResolvedStep,\n TStepNumbers,\n TTargetStep\n > = resolvedStep<TResolvedStep, TStepNumbers, TTargetStep>,\n TType extends resolvePathType<TCurrentStep, TField> = resolvePathType<\n TCurrentStep,\n TField\n >\n > = resolvePathMap<TCurrentStep, TField>[TType];\n export type chosenFields<TCurrentStep extends AnyResolvedStep> =\n | HelperFnChosenSteps.defaultStringOption\n | HelperFnChosenSteps.tupleNotation<DeepKeys<TCurrentStep>>\n | path.generateObjectConfig<TCurrentStep>;\n\n export interface SharedOptions<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends ValidStepKey<TStepNumbers>,\n TField extends chosenFields<TCurrentStep>,\n TAdditionalCtx extends Record<string, unknown>,\n TCurrentStep extends resolvedStep<\n TResolvedStep,\n TStepNumbers,\n TTargetStep\n > = resolvedStep<TResolvedStep, TStepNumbers, TTargetStep>\n > {\n /**\n * The step to update.\n */\n targetStep: TTargetStep;\n /**\n * The specific fields to update.\n *\n * Optionally provide a value to narrow the results of the `ctx` in the\n * updater `fn`.\n */\n fields?: TField;\n /**\n * Enables verbose debug logging for this update operation.\n * Set to `true` to output helpful information for troubleshooting.\n */\n debug?: boolean;\n }\n\n export interface UpdateOptions<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends ValidStepKey<TStepNumbers>,\n TField extends chosenFields<TCurrentStep>,\n TAdditionalCtx extends Record<string, unknown>,\n TCurrentStep extends resolvedStep<\n TResolvedStep,\n TStepNumbers,\n TTargetStep\n > = resolvedStep<TResolvedStep, TStepNumbers, TTargetStep>\n > extends SharedOptions<\n TResolvedStep,\n TStepNumbers,\n TTargetStep,\n TField,\n TAdditionalCtx,\n TCurrentStep\n >,\n CtxDataSelector<\n TResolvedStep,\n TStepNumbers,\n [TTargetStep],\n TAdditionalCtx\n > {\n updater: Updater<\n Expand<\n HelperFnInputBase<\n TResolvedStep,\n TStepNumbers,\n [TTargetStep],\n never,\n TAdditionalCtx\n >\n >,\n resolvedFieldValue<\n TResolvedStep,\n TStepNumbers,\n TTargetStep,\n TField,\n TCurrentStep\n >\n >;\n }\n\n export type options<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends ValidStepKey<TStepNumbers>,\n TField extends chosenFields<TCurrentStep>,\n TAdditionalCtx extends Record<string, unknown>,\n TCurrentStep extends resolvedStep<\n TResolvedStep,\n TStepNumbers,\n TTargetStep\n > = resolvedStep<TResolvedStep, TStepNumbers, TTargetStep>\n > = UpdateOptions<\n TResolvedStep,\n TStepNumbers,\n TTargetStep,\n TField,\n TAdditionalCtx,\n TCurrentStep\n >;\n export type availableFields<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends ValidStepKey<TStepNumbers>\n > = HelperFnChosenSteps.build<\n DeepKeys<resolvedStep<TResolvedStep, TStepNumbers, TTargetStep>>\n >;\n\n export type general<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>\n > = <\n targetStep extends ValidStepKey<TStepNumbers>,\n field extends chosenFields<\n resolvedStep<TResolvedStep, TStepNumbers, targetStep>\n > = 'all',\n additionalCtx extends Record<string, unknown> = {}\n >(\n options: options<\n TResolvedStep,\n TStepNumbers,\n targetStep,\n field,\n additionalCtx\n >\n ) => void;\n\n export type stepSpecific<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends ValidStepKey<TStepNumbers>\n > = <\n field extends chosenFields<\n resolvedStep<TResolvedStep, TStepNumbers, TTargetStep>\n > = 'all',\n additionalCtx extends Record<string, unknown> = {}\n >(\n options: Omit<\n options<TResolvedStep, TStepNumbers, TTargetStep, field, additionalCtx>,\n 'targetStep'\n >\n ) => void;\n}\n\nexport namespace ResetFn {\n export interface Options<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends ValidStepKey<TStepNumbers>,\n TField extends UpdateFn.chosenFields<TCurrentStep>,\n TCurrentStep extends UpdateFn.resolvedStep<\n TResolvedStep,\n TStepNumbers,\n TTargetStep\n > = UpdateFn.resolvedStep<TResolvedStep, TStepNumbers, TTargetStep>\n > extends UpdateFn.SharedOptions<\n TResolvedStep,\n TStepNumbers,\n TTargetStep,\n TField,\n {},\n TCurrentStep\n > {\n /**\n * The fields to reset.\n */\n fields: TField;\n }\n\n export type general<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>\n > = <\n targetStep extends ValidStepKey<TStepNumbers>,\n field extends UpdateFn.chosenFields<\n UpdateFn.resolvedStep<TResolvedStep, TStepNumbers, targetStep>\n > = 'all'\n >(\n options: Options<TResolvedStep, TStepNumbers, targetStep, field>\n ) => void;\n\n export type stepSpecific<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends ValidStepKey<TStepNumbers>\n > = <\n field extends UpdateFn.chosenFields<\n UpdateFn.resolvedStep<TResolvedStep, TStepNumbers, TTargetStep>\n > = 'all'\n >(\n options?: Omit<\n Options<TResolvedStep, TStepNumbers, TTargetStep, field>,\n 'targetStep'\n >\n ) => void;\n}\n\nexport type StepSpecificHelperFn<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends TStepNumbers\n> = {\n /**\n * Create a helper function with validated input.\n */\n <validator, additionalCtx extends Record<string, unknown>, response>(\n options: Omit<\n CreateHelperFunctionOptionsWithValidator<\n TResolvedStep,\n TStepNumbers,\n [ValidStepKey<TTargetStep>],\n validator,\n additionalCtx\n >,\n 'stepData'\n >,\n fn: HelperFnWithValidator<\n TResolvedStep,\n TStepNumbers,\n [ValidStepKey<TTargetStep>],\n validator,\n additionalCtx,\n response\n >\n ): CreatedHelperFnWithInput<validator, response>;\n /**\n * Create a helper function without input.\n */\n <additionalCtx extends Record<string, unknown>, response>(\n fn: HelperFnWithoutValidator<\n TResolvedStep,\n TStepNumbers,\n [ValidStepKey<TTargetStep>],\n additionalCtx,\n response\n >\n ): CreatedHelperFnWithoutInput<response>;\n /**\n * Create a helper function without input.\n */\n <response>(\n fn: HelperFnWithoutValidator<\n TResolvedStep,\n TStepNumbers,\n [ValidStepKey<TTargetStep>],\n {},\n response\n >\n ): CreatedHelperFnWithoutInput<response>;\n};\nexport type GeneralHelperFn<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>\n> = {\n /**\n * Create a helper function with validated input.\n */\n <\n const chosenSteps extends HelperFnChosenSteps<TResolvedStep, TStepNumbers>,\n validator,\n additionalCtx extends Record<string, unknown>,\n response\n >(\n options: CreateHelperFunctionOptionsWithValidator<\n TResolvedStep,\n TStepNumbers,\n chosenSteps,\n validator,\n additionalCtx\n >,\n fn: HelperFnWithValidator<\n TResolvedStep,\n TStepNumbers,\n chosenSteps,\n validator,\n additionalCtx,\n response\n >\n ): CreatedHelperFnWithInput<validator, response>;\n /**\n * Create a helper function without input.\n */\n <\n const chosenSteps extends HelperFnChosenSteps<TResolvedStep, TStepNumbers>,\n additionalCtx extends Record<string, unknown>,\n response\n >(\n options: CreateHelperFunctionOptionsWithoutValidator<\n TResolvedStep,\n TStepNumbers,\n chosenSteps\n > &\n CreateHelperFunctionOptionsWithCustomCtxOptions<\n TResolvedStep,\n TStepNumbers,\n chosenSteps,\n additionalCtx\n >,\n fn: HelperFnWithoutValidator<\n TResolvedStep,\n TStepNumbers,\n chosenSteps,\n additionalCtx,\n response\n >\n ): CreatedHelperFnWithoutInput<response>;\n};\nexport type CreateStepHelperFn<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends TStepNumbers = TStepNumbers,\n TForSpecificStep extends boolean = false\n> = TForSpecificStep extends true\n ? StepSpecificHelperFn<TResolvedStep, TStepNumbers, TTargetStep>\n : GeneralHelperFn<TResolvedStep, TStepNumbers>;\nexport type StepSpecificHelperFns<\n TResolvedStep extends AnyResolvedStep,\n TKey extends keyof TResolvedStep\n> = {\n /**\n * A helper function to create a reusable function for the current step.\n */\n createHelperFn: CreateStepHelperFn<\n TResolvedStep,\n StepNumbers<TResolvedStep>,\n ExtractStepFromKey<Constrain<TKey, string>>,\n true\n >;\n} & (TKey extends ValidStepKey<StepNumbers<TResolvedStep>>\n ? {\n /**\n * A helper function to updated the current step's data.\n */\n update: UpdateFn.stepSpecific<\n TResolvedStep,\n StepNumbers<TResolvedStep>,\n TKey\n >;\n /**\n * A helper function to reset the current step's data.\n *\n * If no config is provided, **all** fields for the current step\n * will be reset. If you need to reset a specific field, specify\n * that field in the config.\n */\n reset: ResetFn.stepSpecific<\n TResolvedStep,\n StepNumbers<TResolvedStep>,\n TKey\n >;\n }\n : {});\nexport type ResolvedStep<\n TStep extends Step<TDefaultCasing>,\n TDefaultCasing extends CasingType = DefaultCasing,\n TResolvedStep extends ResolvedStepBuilder<\n TStep,\n TDefaultCasing\n > = ResolvedStepBuilder<TStep, TDefaultCasing>,\n TAdditionalStepProps extends object = {}\n> = TAdditionalStepProps & {\n [stepKey in keyof TResolvedStep]: TResolvedStep[stepKey] &\n StepSpecificHelperFns<TResolvedStep, stepKey>;\n};\nexport type StrippedResolvedStep<\n T extends AnyResolvedStep,\n TStringUpdate extends boolean = false\n> = {\n [_ in keyof T as T[_] extends Function\n ? _ extends 'update'\n ? TStringUpdate extends true\n ? never\n : _\n : never\n : _]: T[_];\n};\nexport type AnyResolvedStep = ResolvedStep<any, any, any>;\n\nexport type ValidStepKey<N extends number = number> = `step${N}`;\nexport type ExtractStepFromKey<T> = T extends string\n ? T extends ValidStepKey<infer N>\n ? N\n : never\n : never;\nexport type InferStepOptions<T> = T extends {\n [K in keyof T extends ValidStepKey ? keyof T : never]: StepOptions<\n infer _casing extends CasingType,\n infer _stepField extends AnyStepField,\n infer _fieldValidator\n >;\n}\n ? T\n : Exclude<keyof T, ValidStepKey>;\nexport type Range = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;\nexport type ClampTo0to10<N extends number> = N extends Range\n ? N\n : // if higher than 10 → 10, if lower than 0 → 0\n number extends N\n ? never // catches the `number` type, not a literal\n : `${N}` extends `-${string}`\n ? 0\n : 10;\nexport type Tuple<\n N extends number,\n R extends any[] = []\n> = R['length'] extends N ? R : Tuple<N, [...R, any]>;\n\nexport type GreaterThan<A extends Range, B extends Range> = Tuple<A> extends [\n ...Tuple<B>,\n ...infer _\n]\n ? Tuple<B> extends [...Tuple<A>, ...infer _]\n ? false\n : true\n : false;\nexport type Max<T extends number[]> = T extends [\n infer A extends number,\n ...infer Rest extends number[]\n]\n ? Rest['length'] extends 0\n ? ClampTo0to10<A>\n : Max<Rest> extends infer M extends Range\n ? GreaterThan<ClampTo0to10<A>, M> extends true\n ? ClampTo0to10<A>\n : M\n : never\n : never;\n\nexport type Min<T extends number[]> = T extends [\n infer A extends number,\n ...infer Rest extends number[]\n]\n ? Rest['length'] extends 0\n ? ClampTo0to10<A>\n : Min<Rest> extends infer M extends Range\n ? GreaterThan<ClampTo0to10<A>, M> extends true\n ? M\n : ClampTo0to10<A>\n : never\n : never;\nexport type UnionToTuple<T> = (\n (T extends any ? (t: T) => T : never) extends infer U\n ? (U extends any ? (u: U) => any : never) extends (v: infer V) => any\n ? V\n : never\n : never\n) extends (_: any) => infer W\n ? [...UnionToTuple<Exclude<T, W>>, W]\n : [];\nexport type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = {\n // For each key K in the desired set of keys...\n [K in Keys]-?: Required<Pick<T, K>> & Partial<Omit<T, K>>;\n // ...create a union of all those possible objects.\n}[Keys];\nexport type LastStep<T extends AnyResolvedStep> = keyof T extends ValidStepKey\n ? Max<\n Constrain<\n UnionToTuple<ExtractStepFromKey<Constrain<keyof T, string>>>,\n number[]\n >\n >\n : never;\nexport type FirstStep<T extends AnyResolvedStep> = keyof T extends ValidStepKey\n ? Min<\n Constrain<\n UnionToTuple<ExtractStepFromKey<Constrain<keyof T, string>>>,\n number[]\n >\n >\n : never;\nexport type GetCurrentStep<\n T extends AnyResolvedStep,\n S extends ExtractStepFromKey<Constrain<keyof T, string>>\n> = ValidStepKey<S> extends Constrain<keyof T, string>\n ? T[ValidStepKey<S>]\n : never;\nexport type StepData<\n T extends AnyResolvedStep,\n Step extends ExtractStepFromKey<Constrain<keyof T, string>>\n> = {\n /**\n * The step number.\n */\n step: Step;\n /**\n * The step data.\n */\n data: GetCurrentStep<T, Step>;\n};\nexport type StepNumbers<TResolvedStep extends AnyResolvedStep> =\n ExtractStepFromKey<Constrain<keyof TResolvedStep, string>>;\ntype WidenSpecial<T> = T extends CasingType\n ? CasingType // e.g. \"title\" → \"camel\" | \"snake\" | \"title\"\n : T extends FieldType\n ? FieldType\n : T;\nexport type Relaxed<T> =\n // If it's an array, recurse into elements\n T extends (infer U)[]\n ? Relaxed<U>[]\n : // If it's a function, leave alone\n T extends (...args: any[]) => any\n ? T\n : // If it's an object (record), recurse into props\n T extends object\n ? { [K in keyof T]: Relaxed<T[K]> }\n : // Otherwise widen scalars\n WidenSpecial<T>;\n\nexport namespace HelperFnChosenSteps {\n export type defaultStringOption = 'all';\n export type stringOption<T extends string> = defaultStringOption | T;\n export type tupleNotation<T extends string> = [T, ...T[]];\n export type objectNotation<T extends string> = RequireAtLeastOne<{\n [_ in T]: true;\n }>;\n export type build<\n TValue extends string,\n TStringOptions = defaultStringOption\n > = TStringOptions | tupleNotation<TValue> | objectNotation<TValue>;\n export type main<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>\n > = build<ValidStepKey<TSteps>>;\n export type extractStepNumber<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<\n TResolvedStep,\n TSteps\n > = HelperFnChosenSteps<TResolvedStep, TSteps>\n > = TChosenSteps extends tupleNotation<ValidStepKey<TSteps>>\n ? keyof { [step in TChosenSteps[number] as ExtractStepFromKey<step>]: step }\n : TChosenSteps extends objectNotation<ValidStepKey<TSteps>>\n ? ExtractStepFromKey<keyof TChosenSteps>\n : TSteps;\n export type resolve<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends main<TResolvedStep, TSteps>\n > = TChosenSteps extends 'all'\n ? keyof TResolvedStep\n : TChosenSteps extends tupleNotation<ValidStepKey<TSteps>>\n ? TChosenSteps[number] extends keyof TResolvedStep\n ? TChosenSteps[number]\n : never\n : TChosenSteps extends objectNotation<ValidStepKey<TSteps>>\n ? keyof TChosenSteps extends keyof TResolvedStep\n ? keyof TChosenSteps\n : never\n : never;\n\n export const CATCH_ALL_MESSAGE =\n 'The chosen steps must either be set to on of the following: \"all\", an array of steps ([\"step1\", \"step2\", ...]), or an object containing the steps to chose ({ step1: true, step2: true, ...})';\n\n export function isAll(value: unknown): value is defaultStringOption {\n return Boolean(value && typeof value === 'string' && value === 'all');\n }\n\n export function isTuple<T extends number>(\n value: unknown,\n validValues?: Array<unknown>\n ): value is tupleNotation<ValidStepKey<T>> {\n if (!Array.isArray(value)) {\n return false;\n }\n\n if (validValues) {\n return value.every((key) => validValues.includes(key));\n }\n\n return true;\n }\n\n export function isObject<T extends number>(\n value: unknown,\n validKeys?: Array<unknown>\n ): value is objectNotation<ValidStepKey<T>> {\n if (!value) {\n return false;\n }\n\n const keys = Object.keys(value);\n\n if (keys.length === 0) {\n return false;\n }\n\n if (validKeys && !keys.every((key) => validKeys.includes(key))) {\n return false;\n }\n\n return Object.entries(value).every(([_, v]) => v === true);\n }\n}\n\nexport type HelperFnChosenSteps<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>\n> = HelperFnChosenSteps.main<TResolvedStep, TSteps>;\n\nexport type CreateHelperFunctionOptionsBase<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TSteps>\n> = {\n /**\n * The step data to use for the function. It can either be an array with the **available**\n * step numbers or `'all'`.\n *\n * - If set to `'all'`, data from **all** the steps will be available.\n * - If an array of the **available** step numbers is provided, only data from those steps will be available.\n */\n stepData: TChosenSteps;\n};\nexport type CreateHelperFunctionOptionsWithoutValidator<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TStepNumbers>\n> = CreateHelperFunctionOptionsBase<TResolvedStep, TStepNumbers, TChosenSteps>;\nexport interface CtxDataSelector<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TStepNumbers>,\n TAdditionalCtx extends Record<string, unknown>\n> {\n /**\n * A function to select the data that will be available in the `fn`'s ctx.\n * @param input The available input to create the context with.\n * @returns The created ctx.\n */\n ctxData?: (\n input: Pick<\n HelperFnInputBase<\n TResolvedStep,\n TStepNumbers,\n 'all',\n HelperFnChosenSteps.resolve<TResolvedStep, TStepNumbers, TChosenSteps>\n >,\n 'ctx'\n >\n ) => TAdditionalCtx;\n}\nexport type CreateHelperFunctionOptionsWithCustomCtxOptions<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TStepNumbers>,\n TAdditionalCtx extends Record<string, unknown>\n> = CreateHelperFunctionOptionsBase<TResolvedStep, TStepNumbers, TChosenSteps> &\n CtxDataSelector<TResolvedStep, TStepNumbers, TChosenSteps, TAdditionalCtx>;\nexport type CreateHelperFunctionOptionsWithValidator<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TStepNumbers>,\n TValidator,\n TAdditionalCtx extends Record<string, unknown>\n> = CreateHelperFunctionOptionsBase<TResolvedStep, TStepNumbers, TChosenSteps> &\n CreateHelperFunctionOptionsWithCustomCtxOptions<\n TResolvedStep,\n TStepNumbers,\n TChosenSteps,\n TAdditionalCtx\n > & {\n /**\n * A validator used to validate the params.\n */\n validator: Constrain<TValidator, AnyValidator, DefaultValidator>;\n };\n// TODO figure out way to make data optional in specific cases\n// example 1: if validateFields === { optionalValue?: string }, then `data` should be\n// optional since there is only one optional field\n// In words: if `validatedFields` only contains optional properties, then `data` should be optional\n// Approach: different interfaces (maybe)\nexport type CreatedHelperFnInput<T> = {\n data: Expand<ResolveValidatorOutput<T>>;\n};\nexport type CreatedHelperFnWithInput<TValidator, TResponse> = (\n input: CreatedHelperFnInput<TValidator>\n) => TResponse;\nexport type CreatedHelperFnWithoutInput<TResponse> = () => TResponse;\ntype isString<T> = T extends string ? T : never;\nexport type HelperFnCtx<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TSteps>,\n TOmitSteps extends HelperFnChosenSteps.resolve<\n TResolvedStep,\n TSteps,\n TChosenSteps\n > = never\n> = TChosenSteps extends 'all'\n ? Expand<\n Omit<\n {\n [key in TSteps as `step${key}`]: StrippedResolvedStep<\n GetCurrentStep<TResolvedStep, key>\n >;\n },\n isString<TOmitSteps>\n >\n >\n : TChosenSteps extends object\n ? keyof TChosenSteps extends ValidStepKey<TSteps>\n ? Expand<\n Omit<\n {\n -readonly [key in keyof TChosenSteps]: StrippedResolvedStep<\n GetCurrentStep<\n TResolvedStep,\n // @ts-ignore\n ExtractStepFromKey<key>\n >\n >;\n },\n isString<TOmitSteps>\n >\n >\n : TChosenSteps extends ValidStepKey<TSteps>[]\n ? Expand<\n Omit<\n {\n [key in TChosenSteps[number]]: StrippedResolvedStep<\n GetCurrentStep<\n TResolvedStep,\n // @ts-ignore\n ExtractStepFromKey<key>\n >\n >;\n },\n isString<TOmitSteps>\n >\n >\n : never\n : never;\n\nexport type helperFnUpdateFn<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TSteps extends ValidStepKey<TStepNumbers>\n> = {\n [step in TSteps]: UpdateFn.stepSpecific<TResolvedStep, TStepNumbers, step>;\n};\nexport type HelperFnUpdateFn<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TSteps>\n> = UpdateFn.general<TResolvedStep, TSteps> &\n (TChosenSteps extends HelperFnChosenSteps.defaultStringOption\n ? helperFnUpdateFn<TResolvedStep, TSteps, ValidStepKey<TSteps>>\n : TChosenSteps extends HelperFnChosenSteps.tupleNotation<\n ValidStepKey<TSteps>\n >\n ? helperFnUpdateFn<TResolvedStep, TSteps, TChosenSteps[number]>\n : TChosenSteps extends HelperFnChosenSteps.objectNotation<\n ValidStepKey<TSteps>\n >\n ? {\n [step in keyof TChosenSteps]: step extends ValidStepKey<TSteps>\n ? helperFnUpdateFn<TResolvedStep, TSteps, step>[step]\n : {};\n }\n : {});\n\nexport type helperFnResetFn<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TSteps extends ValidStepKey<TStepNumbers>\n> = {\n [step in TSteps]: ResetFn.stepSpecific<TResolvedStep, TStepNumbers, step>;\n};\nexport type HelperFnResetFn<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TSteps>\n> = ResetFn.general<TResolvedStep, TSteps> &\n (TChosenSteps extends HelperFnChosenSteps.defaultStringOption\n ? helperFnResetFn<TResolvedStep, TSteps, ValidStepKey<TSteps>>\n : TChosenSteps extends HelperFnChosenSteps.tupleNotation<\n ValidStepKey<TSteps>\n >\n ? helperFnResetFn<TResolvedStep, TSteps, TChosenSteps[number]>\n : TChosenSteps extends HelperFnChosenSteps.objectNotation<\n ValidStepKey<TSteps>\n >\n ? {\n [step in keyof TChosenSteps]: step extends ValidStepKey<TSteps>\n ? helperFnResetFn<TResolvedStep, TSteps, step>[step]\n : {};\n }\n : {});\n\nexport interface HelperFnInputBase<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TSteps>,\n TOmitSteps extends HelperFnChosenSteps.resolve<\n TResolvedStep,\n TSteps,\n TChosenSteps\n > = never,\n TAdditionalCtx extends Record<string, unknown> = {}\n> {\n /**\n * The multi-step form step context.\n */\n // TODO determine if this should be renamed to `steps` since it only has the step data\n ctx: Expand<\n HelperFnCtx<TResolvedStep, TSteps, TChosenSteps, TOmitSteps> &\n TAdditionalCtx\n >;\n /**\n * A function to update parts of the multi-step form schema.\n */\n update: HelperFnUpdateFn<TResolvedStep, TSteps, TChosenSteps>;\n /**\n * A useful wrapper for `update` to reset a specific field's value to its\n * original config value.\n * @resetFn\n */\n reset: HelperFnResetFn<TResolvedStep, TSteps, TChosenSteps>;\n}\nexport type HelperFnInputWithValidator<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TSteps>,\n TValidator,\n TAdditionalCtx extends Record<string, unknown>\n> = HelperFnInputBase<\n TResolvedStep,\n TSteps,\n TChosenSteps,\n never,\n TAdditionalCtx\n> & {\n data: ResolveValidatorOutput<TValidator>;\n};\nexport type HelperFnInputWithoutValidator<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TSteps>,\n TAdditionalCtx extends Record<string, unknown>\n> = HelperFnInputBase<\n TResolvedStep,\n TSteps,\n TChosenSteps,\n never,\n TAdditionalCtx\n>;\n\nexport type HelperFnWithValidator<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TSteps>,\n TValidator,\n TAdditionalCtx extends Record<string, unknown>,\n Response\n> = (\n input: HelperFnInputWithValidator<\n TResolvedStep,\n TSteps,\n TChosenSteps,\n TValidator,\n TAdditionalCtx\n >\n) => Response;\nexport type HelperFnWithoutValidator<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TSteps>,\n TAdditionalCtx extends Record<string, unknown>,\n Response\n> = (\n input: HelperFnInputWithoutValidator<\n TResolvedStep,\n TSteps,\n TChosenSteps,\n TAdditionalCtx\n >\n) => Response;\nexport interface MultiStepFormSchemaStepConfig<\n TStep extends Step<TCasing>,\n TCasing extends CasingType,\n TStorageKey extends string\n> extends NameTransformCasingOptions<TCasing> {\n /**\n * The steps that this multi step form will include.\n */\n steps: InferStepOptions<TStep>;\n /**\n * The options for the storage module.\n */\n storage?: Omit<StorageConfig<any, TStorageKey>, 'data'>;\n}\n"],"mappings":";;;0CAkwBI;CAEK,SAAS,MAAM,OAA8C;AAClE,SAAO,QAAQ,SAAS,OAAO,UAAU,YAAY,UAAU,MAAM;;;CAGhE,SAAS,QACd,OACA,aACyC;AACzC,MAAI,CAAC,MAAM,QAAQ,MAAM,CACvB,QAAO;AAGT,MAAI,YACF,QAAO,MAAM,OAAO,QAAQ,YAAY,SAAS,IAAI,CAAC;AAGxD,SAAO;;;CAGF,SAAS,SACd,OACA,WAC0C;AAC1C,MAAI,CAAC,MACH,QAAO;EAGT,MAAM,OAAO,OAAO,KAAK,MAAM;AAE/B,MAAI,KAAK,WAAW,EAClB,QAAO;AAGT,MAAI,aAAa,CAAC,KAAK,OAAO,QAAQ,UAAU,SAAS,IAAI,CAAC,CAC5D,QAAO;AAGT,SAAO,OAAO,QAAQ,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,MAAM,KAAK"}
|
|
1
|
+
{"version":3,"file":"types.mjs","names":[],"sources":["../../src/steps/types.ts"],"sourcesContent":["import type { StorageConfig } from '@/storage';\nimport {\n type CasingType,\n type Constrain,\n type DeepKeys,\n type DeepPartial,\n type DefaultCasing,\n type DefaultFieldType,\n type Expand,\n type FieldType,\n type objectHelpers,\n} from '@/utils';\nimport type { path } from '@/utils/path';\nimport type {\n AnyValidator,\n DefaultValidator,\n ResolveValidatorOutput,\n} from '@/utils/validator';\n\nexport interface NameTransformCasingOptions<TCasing extends CasingType> {\n /**\n * How the `name` should be transformed for the `label`.\n *\n * If omitted, the default will be whatever is set during {@linkcode MultiStepFormSchema} initialization.\n */\n nameTransformCasing?: Constrain<TCasing, CasingType>;\n}\nexport interface StepFieldOptions<\n Type extends FieldType,\n Casing extends CasingType,\n DefaultValue\n> extends NameTransformCasingOptions<Casing> {\n defaultValue: DefaultValue;\n /**\n * The type of the field.\n *\n * @default 'string'\n */\n type?: Type;\n /**\n * The text for the label.\n *\n * If omitted, it will default to the specified casing.\n *\n * If `false`, `label` will be `undefined`, meaning there won't\n * be a label for this field.\n */\n label?: string | false;\n}\nexport type AnyStepFieldOption = StepFieldOptions<\n FieldType,\n CasingType,\n unknown\n>;\nexport type AnyStepField = Record<string, AnyStepFieldOption>;\nexport interface StepOptions<\n Casing extends CasingType = CasingType,\n TStepField extends AnyStepField = AnyStepField,\n FieldValidator = unknown\n> extends NameTransformCasingOptions<Casing> {\n title: string;\n description?: string;\n fields: TStepField;\n /**\n * Validator for the fields.\n */\n validateFields?: Constrain<FieldValidator, AnyValidator, DefaultValidator>;\n}\nexport type Step<\n TCasing extends CasingType = CasingType,\n step extends number = number,\n options extends StepOptions<TCasing, AnyStepField, unknown> = StepOptions<\n TCasing,\n AnyStepField,\n unknown\n >\n> = Record<ValidStepKey<step>, options>;\nexport type AnyStep = Step<any, any, any>;\n\nexport type GetFieldsForStep<\n Steps extends InferStepOptions<any>,\n Key extends keyof Steps\n> = Steps[Key] extends {\n fields: infer fields extends AnyStepField;\n}\n ? fields\n : never;\nexport type GetDefaultCasingTransformation<\n Step extends InferStepOptions<any>,\n Key extends keyof Step,\n TDefault extends CasingType = DefaultCasing\n> = Step[Key] extends { nameTransformCasing: infer casing extends CasingType }\n ? casing\n : TDefault;\nexport type SetDefault<T, Defaults> = {\n // All the keys from T\n [K in keyof T]-?: K extends keyof Defaults\n ? undefined extends T[K]\n ? Exclude<T[K], undefined> | Defaults[K] // optional -> upgraded with default\n : T[K] // already required, don't touch\n : T[K];\n} & {\n // Any defaults not in T get added\n [K in Exclude<keyof Defaults, keyof T>]-?: Defaults[K];\n};\nexport type ResolvedFields<\n TInferredSteps extends InferStepOptions<any>,\n TKey extends keyof TInferredSteps,\n TFields extends GetFieldsForStep<TInferredSteps, TKey> = GetFieldsForStep<\n TInferredSteps,\n TKey\n >\n> = {\n [name in keyof TFields]: Expand<\n // current field information for the `name`\n SetDefault<\n TFields[name],\n {\n type: DefaultFieldType;\n nameTransformCasing: GetDefaultCasingTransformation<\n TInferredSteps,\n TKey\n >;\n label: string;\n }\n >\n >;\n};\nexport type ResolvedStepBuilder<\n TStep extends Step,\n TDefaultCasing extends CasingType = DefaultCasing,\n TInferredSteps extends InferStepOptions<TStep> = InferStepOptions<TStep>\n> = Expand<{\n [stepKey in keyof TInferredSteps]: Expand<\n SetDefault<\n Omit<TInferredSteps[stepKey], 'fields' | 'validateFields'>,\n {\n type: DefaultFieldType;\n nameTransformCasing: GetDefaultCasingTransformation<\n TInferredSteps,\n stepKey,\n TDefaultCasing\n >;\n }\n > & {\n fields: Expand<ResolvedFields<TInferredSteps, stepKey>>;\n }\n >;\n}>;\nexport type Updater<TInput, TOutput = TInput> =\n | TOutput\n | ((input: TInput) => TOutput);\n\nexport namespace UpdateFn {\n export type resolvedStep<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends ValidStepKey<TStepNumbers>\n > = Expand<StrippedResolvedStep<TResolvedStep[TTargetStep], true>>;\n\n type resolveAllPropertyPath<\n TCurrentStep extends AnyResolvedStep,\n TField extends chosenFields<TCurrentStep>\n > = TField extends HelperFnChosenSteps.defaultStringOption\n ? Relaxed<TCurrentStep>\n : never;\n type resolveTuplePropertyPath<\n TCurrentStep extends AnyResolvedStep,\n TField extends chosenFields<TCurrentStep>,\n TDeepKeys extends DeepKeys<TCurrentStep> = DeepKeys<TCurrentStep>\n > = TField extends HelperFnChosenSteps.tupleNotation<TDeepKeys>\n ? TField[number] extends DeepKeys<Relaxed<TCurrentStep>>\n ? path.pickBy<Relaxed<TCurrentStep>, TField[number]>\n : never\n : never;\n type resolveObjectPropertyPath<\n TCurrentStep extends AnyResolvedStep,\n TField extends chosenFields<TCurrentStep>,\n TDeepKeys extends DeepKeys<TCurrentStep> = DeepKeys<TCurrentStep>\n > = TField extends path.generateObjectConfig<TField>\n ? path.objectToPath<TField> extends TDeepKeys\n ? path.objectToPath<TField> extends DeepKeys<Relaxed<TCurrentStep>>\n ? path.pickBy<Relaxed<TCurrentStep>, path.objectToPath<TField>>\n : never\n : never\n : never;\n type resolvePathType<\n TCurrentStep extends AnyResolvedStep,\n TField extends chosenFields<TCurrentStep>\n > = TField extends HelperFnChosenSteps.defaultStringOption\n ? 'all'\n : TField extends Array<infer _>\n ? 'tuple'\n : objectHelpers.isObject<TField> extends true\n ? 'object'\n : never;\n type resolvePathMap<\n TCurrentStep extends AnyResolvedStep,\n TField extends chosenFields<TCurrentStep>\n > = {\n all: resolveAllPropertyPath<TCurrentStep, TField>;\n tuple: resolveTuplePropertyPath<TCurrentStep, TField>;\n object: resolveObjectPropertyPath<TCurrentStep, TField>;\n };\n export type resolvedFieldValue<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends ValidStepKey<TStepNumbers>,\n TField extends chosenFields<TCurrentStep>,\n TCurrentStep extends resolvedStep<\n TResolvedStep,\n TStepNumbers,\n TTargetStep\n > = resolvedStep<TResolvedStep, TStepNumbers, TTargetStep>,\n TType extends resolvePathType<TCurrentStep, TField> = resolvePathType<\n TCurrentStep,\n TField\n >\n > = resolvePathMap<TCurrentStep, TField>[TType];\n export type chosenFields<TCurrentStep extends AnyResolvedStep> =\n | HelperFnChosenSteps.defaultStringOption\n | HelperFnChosenSteps.tupleNotation<DeepKeys<TCurrentStep>>\n | path.generateObjectConfig<TCurrentStep>;\n\n export type mode = {\n /**\n * Enables strict mode for the update operation.\n *\n * When enabled, you won't be able to add new keys to an object. If\n * you need to add new keys, set to `false`.\n * @default true\n */\n strict: boolean;\n /**\n * Enables partial mode for the update operation.\n *\n * When enabled, you will be required to return the whole object. If\n * you need to return a partial object, set to `false`.\n * @default false\n */\n partial: boolean;\n };\n export type defaultMode = {\n strict: true;\n partial: false;\n };\n export type additionalUpdaterData =\n | Record<string, unknown>\n | (() => Record<string, unknown>);\n export type inferAdditionalUpdaterData<T extends additionalUpdaterData> =\n T extends () => infer _ ? _ : T;\n export type resolvedUpdaterReturnType<\n T,\n TMode extends mode,\n TAdditionalCtx extends additionalUpdaterData\n > = TMode['strict'] extends true\n ? TMode['partial'] extends true\n ? DeepPartial<T>\n : T\n : TMode['partial'] extends true\n ? DeepPartial<T> & TAdditionalCtx\n : T & TAdditionalCtx;\n export interface BaseOptions<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends ValidStepKey<TStepNumbers>,\n TField extends chosenFields<TCurrentStep>,\n TCurrentStep extends resolvedStep<\n TResolvedStep,\n TStepNumbers,\n TTargetStep\n > = resolvedStep<TResolvedStep, TStepNumbers, TTargetStep>\n > {\n /**\n * The step to update.\n */\n targetStep: TTargetStep;\n /**\n * The specific fields to update.\n *\n * Optionally provide a value to narrow the results of the `ctx` in the\n * updater `fn`.\n */\n fields?: TField;\n /**\n * Enables verbose debug logging for this update operation.\n * Set to `true` to output helpful information for troubleshooting.\n */\n debug?: boolean;\n /**\n * Controls whether console errors should be silenced.\n *\n * By default, errors will be silenced when `partial: true` OR `strict: false`.\n *\n */\n silentErrors?: boolean\n }\n\n export interface SharedOptions<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends ValidStepKey<TStepNumbers>,\n TField extends chosenFields<TCurrentStep>,\n TMode extends mode,\n TCurrentStep extends resolvedStep<\n TResolvedStep,\n TStepNumbers,\n TTargetStep\n > = resolvedStep<TResolvedStep, TStepNumbers, TTargetStep>\n > extends BaseOptions<\n TResolvedStep,\n TStepNumbers,\n TTargetStep,\n TField,\n TCurrentStep\n > {\n /**\n * Enables strict mode for the update operation.\n *\n * When enabled, you won't be able to add new keys to an object. If\n * you need to add new keys, set to `false`.\n * @default true\n */\n strict?: TMode['strict'];\n /**\n * Enables partial mode for the update operation.\n *\n * When enabled, you will be required to return the whole object. If\n * you need to return a partial object, set to `false`.\n * @default false\n */\n partial?: TMode['partial'];\n }\n\n export type options<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends ValidStepKey<TStepNumbers>,\n TField extends chosenFields<TCurrentStep>,\n TStrict extends boolean,\n TPartial extends boolean,\n TAdditionalCtx extends Record<string, unknown>,\n TAdditionalUpdaterData extends additionalUpdaterData,\n TCurrentStep extends resolvedStep<\n TResolvedStep,\n TStepNumbers,\n TTargetStep\n > = resolvedStep<TResolvedStep, TStepNumbers, TTargetStep>,\n TMode extends mode = {\n strict: TStrict;\n partial: TPartial;\n }\n > = SharedOptions<\n TResolvedStep,\n TStepNumbers,\n TTargetStep,\n TField,\n TMode,\n TCurrentStep\n > &\n CtxDataSelector<\n TResolvedStep,\n TStepNumbers,\n [TTargetStep],\n TAdditionalCtx\n > & {\n updater: Updater<\n Expand<\n HelperFnInputBase<\n TResolvedStep,\n TStepNumbers,\n [TTargetStep],\n never,\n TAdditionalCtx\n >\n >,\n resolvedUpdaterReturnType<\n resolvedFieldValue<\n TResolvedStep,\n TStepNumbers,\n TTargetStep,\n TField,\n TCurrentStep\n >,\n TMode,\n TAdditionalUpdaterData\n >\n >;\n };\n export type availableFields<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends ValidStepKey<TStepNumbers>\n > = HelperFnChosenSteps.build<\n DeepKeys<resolvedStep<TResolvedStep, TStepNumbers, TTargetStep>>\n >;\n\n export type general<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>\n > = <\n targetStep extends ValidStepKey<TStepNumbers>,\n field extends chosenFields<\n resolvedStep<TResolvedStep, TStepNumbers, targetStep>\n > = 'all',\n strict extends boolean = true,\n partial extends boolean = false,\n additionalCtx extends Record<string, unknown> = {},\n additionalUpdaterData extends Record<string, unknown> = {}\n >(\n options: options<\n TResolvedStep,\n TStepNumbers,\n targetStep,\n field,\n strict,\n partial,\n additionalCtx,\n additionalUpdaterData\n >\n ) => void;\n\n export type stepSpecific<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends ValidStepKey<TStepNumbers>\n > = <\n field extends chosenFields<\n resolvedStep<TResolvedStep, TStepNumbers, TTargetStep>\n > = 'all',\n strict extends boolean = true,\n partial extends boolean = false,\n additionalCtx extends Record<string, unknown> = {},\n additionalUpdaterData extends Record<string, unknown> = {}\n >(\n options: Omit<\n options<\n TResolvedStep,\n TStepNumbers,\n TTargetStep,\n field,\n strict,\n partial,\n additionalCtx,\n additionalUpdaterData\n >,\n 'targetStep'\n >\n ) => void;\n}\n\nexport namespace ResetFn {\n export interface Options<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends ValidStepKey<TStepNumbers>,\n TField extends UpdateFn.chosenFields<TCurrentStep>,\n TCurrentStep extends UpdateFn.resolvedStep<\n TResolvedStep,\n TStepNumbers,\n TTargetStep\n > = UpdateFn.resolvedStep<TResolvedStep, TStepNumbers, TTargetStep>\n > extends UpdateFn.BaseOptions<\n TResolvedStep,\n TStepNumbers,\n TTargetStep,\n TField,\n TCurrentStep\n > {\n /**\n * The fields to reset.\n */\n fields: TField;\n }\n\n export type general<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>\n > = <\n targetStep extends ValidStepKey<TStepNumbers>,\n field extends UpdateFn.chosenFields<\n UpdateFn.resolvedStep<TResolvedStep, TStepNumbers, targetStep>\n > = 'all'\n >(\n options: Options<TResolvedStep, TStepNumbers, targetStep, field>\n ) => void;\n\n export type stepSpecific<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends ValidStepKey<TStepNumbers>\n > = <\n field extends UpdateFn.chosenFields<\n UpdateFn.resolvedStep<TResolvedStep, TStepNumbers, TTargetStep>\n > = 'all'\n >(\n options?: Omit<\n Options<TResolvedStep, TStepNumbers, TTargetStep, field>,\n 'targetStep'\n >\n ) => void;\n}\n\nexport type StepSpecificHelperFn<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends TStepNumbers\n> = {\n /**\n * Create a helper function with validated input.\n */\n <validator, additionalCtx extends Record<string, unknown>, response>(\n options: Omit<\n CreateHelperFunctionOptionsWithValidator<\n TResolvedStep,\n TStepNumbers,\n [ValidStepKey<TTargetStep>],\n validator,\n additionalCtx\n >,\n 'stepData'\n >,\n fn: HelperFnWithValidator<\n TResolvedStep,\n TStepNumbers,\n [ValidStepKey<TTargetStep>],\n validator,\n additionalCtx,\n response\n >\n ): CreatedHelperFnWithInput<validator, response>;\n /**\n * Create a helper function without input.\n */\n <additionalCtx extends Record<string, unknown>, response>(\n fn: HelperFnWithoutValidator<\n TResolvedStep,\n TStepNumbers,\n [ValidStepKey<TTargetStep>],\n additionalCtx,\n response\n >\n ): CreatedHelperFnWithoutInput<response>;\n /**\n * Create a helper function without input.\n */\n <response>(\n fn: HelperFnWithoutValidator<\n TResolvedStep,\n TStepNumbers,\n [ValidStepKey<TTargetStep>],\n {},\n response\n >\n ): CreatedHelperFnWithoutInput<response>;\n};\nexport type GeneralHelperFn<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>\n> = {\n /**\n * Create a helper function with validated input.\n */\n <\n const chosenSteps extends HelperFnChosenSteps<TResolvedStep, TStepNumbers>,\n validator,\n additionalCtx extends Record<string, unknown>,\n response\n >(\n options: CreateHelperFunctionOptionsWithValidator<\n TResolvedStep,\n TStepNumbers,\n chosenSteps,\n validator,\n additionalCtx\n >,\n fn: HelperFnWithValidator<\n TResolvedStep,\n TStepNumbers,\n chosenSteps,\n validator,\n additionalCtx,\n response\n >\n ): CreatedHelperFnWithInput<validator, response>;\n /**\n * Create a helper function without input.\n */\n <\n const chosenSteps extends HelperFnChosenSteps<TResolvedStep, TStepNumbers>,\n additionalCtx extends Record<string, unknown>,\n response\n >(\n options: CreateHelperFunctionOptionsWithoutValidator<\n TResolvedStep,\n TStepNumbers,\n chosenSteps\n > &\n CreateHelperFunctionOptionsWithCustomCtxOptions<\n TResolvedStep,\n TStepNumbers,\n chosenSteps,\n additionalCtx\n >,\n fn: HelperFnWithoutValidator<\n TResolvedStep,\n TStepNumbers,\n chosenSteps,\n additionalCtx,\n response\n >\n ): CreatedHelperFnWithoutInput<response>;\n};\nexport type CreateStepHelperFn<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TTargetStep extends TStepNumbers = TStepNumbers,\n TForSpecificStep extends boolean = false\n> = TForSpecificStep extends true\n ? StepSpecificHelperFn<TResolvedStep, TStepNumbers, TTargetStep>\n : GeneralHelperFn<TResolvedStep, TStepNumbers>;\nexport type StepSpecificHelperFns<\n TResolvedStep extends AnyResolvedStep,\n TKey extends keyof TResolvedStep\n> = {\n /**\n * A helper function to create a reusable function for the current step.\n */\n createHelperFn: CreateStepHelperFn<\n TResolvedStep,\n StepNumbers<TResolvedStep>,\n ExtractStepFromKey<Constrain<TKey, string>>,\n true\n >;\n} & (TKey extends ValidStepKey<StepNumbers<TResolvedStep>>\n ? {\n /**\n * A helper function to updated the current step's data.\n */\n update: UpdateFn.stepSpecific<\n TResolvedStep,\n StepNumbers<TResolvedStep>,\n TKey\n >;\n /**\n * A helper function to reset the current step's data.\n *\n * If no config is provided, **all** fields for the current step\n * will be reset. If you need to reset a specific field, specify\n * that field in the config.\n */\n reset: ResetFn.stepSpecific<\n TResolvedStep,\n StepNumbers<TResolvedStep>,\n TKey\n >;\n }\n : {});\nexport type ResolvedStep<\n TStep extends Step<TDefaultCasing>,\n TDefaultCasing extends CasingType = DefaultCasing,\n TResolvedStep extends ResolvedStepBuilder<\n TStep,\n TDefaultCasing\n > = ResolvedStepBuilder<TStep, TDefaultCasing>,\n TAdditionalStepProps extends object = {}\n> = TAdditionalStepProps & {\n [stepKey in keyof TResolvedStep]: TResolvedStep[stepKey] &\n StepSpecificHelperFns<TResolvedStep, stepKey>;\n};\nexport type StrippedResolvedStep<\n T extends AnyResolvedStep,\n TStringUpdate extends boolean = false\n> = {\n [_ in keyof T as T[_] extends Function\n ? _ extends 'update'\n ? TStringUpdate extends true\n ? never\n : _\n : never\n : _]: T[_];\n};\nexport type AnyResolvedStep = ResolvedStep<any, any, any>;\n\nexport type ValidStepKey<N extends number = number> = `step${N}`;\nexport type ExtractStepFromKey<T> = T extends string\n ? T extends ValidStepKey<infer N>\n ? N\n : never\n : never;\nexport type InferStepOptions<T> = T extends {\n [K in keyof T extends ValidStepKey ? keyof T : never]: StepOptions<\n infer _casing extends CasingType,\n infer _stepField extends AnyStepField,\n infer _fieldValidator\n >;\n}\n ? T\n : Exclude<keyof T, ValidStepKey>;\nexport type Range = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;\nexport type ClampTo0to10<N extends number> = N extends Range\n ? N\n : // if higher than 10 → 10, if lower than 0 → 0\n number extends N\n ? never // catches the `number` type, not a literal\n : `${N}` extends `-${string}`\n ? 0\n : 10;\nexport type Tuple<\n N extends number,\n R extends any[] = []\n> = R['length'] extends N ? R : Tuple<N, [...R, any]>;\n\nexport type GreaterThan<A extends Range, B extends Range> = Tuple<A> extends [\n ...Tuple<B>,\n ...infer _\n]\n ? Tuple<B> extends [...Tuple<A>, ...infer _]\n ? false\n : true\n : false;\nexport type Max<T extends number[]> = T extends [\n infer A extends number,\n ...infer Rest extends number[]\n]\n ? Rest['length'] extends 0\n ? ClampTo0to10<A>\n : Max<Rest> extends infer M extends Range\n ? GreaterThan<ClampTo0to10<A>, M> extends true\n ? ClampTo0to10<A>\n : M\n : never\n : never;\n\nexport type Min<T extends number[]> = T extends [\n infer A extends number,\n ...infer Rest extends number[]\n]\n ? Rest['length'] extends 0\n ? ClampTo0to10<A>\n : Min<Rest> extends infer M extends Range\n ? GreaterThan<ClampTo0to10<A>, M> extends true\n ? M\n : ClampTo0to10<A>\n : never\n : never;\nexport type UnionToTuple<T> = (\n (T extends any ? (t: T) => T : never) extends infer U\n ? (U extends any ? (u: U) => any : never) extends (v: infer V) => any\n ? V\n : never\n : never\n) extends (_: any) => infer W\n ? [...UnionToTuple<Exclude<T, W>>, W]\n : [];\nexport type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = {\n // For each key K in the desired set of keys...\n [K in Keys]-?: Required<Pick<T, K>> & Partial<Omit<T, K>>;\n // ...create a union of all those possible objects.\n}[Keys];\nexport type LastStep<T extends AnyResolvedStep> = keyof T extends ValidStepKey\n ? Max<\n Constrain<\n UnionToTuple<ExtractStepFromKey<Constrain<keyof T, string>>>,\n number[]\n >\n >\n : never;\nexport type FirstStep<T extends AnyResolvedStep> = keyof T extends ValidStepKey\n ? Min<\n Constrain<\n UnionToTuple<ExtractStepFromKey<Constrain<keyof T, string>>>,\n number[]\n >\n >\n : never;\nexport type GetCurrentStep<\n T extends AnyResolvedStep,\n S extends ExtractStepFromKey<Constrain<keyof T, string>>\n> = ValidStepKey<S> extends Constrain<keyof T, string>\n ? T[ValidStepKey<S>]\n : never;\nexport type StepData<\n T extends AnyResolvedStep,\n Step extends ExtractStepFromKey<Constrain<keyof T, string>>\n> = {\n /**\n * The step number.\n */\n step: Step;\n /**\n * The step data.\n */\n data: GetCurrentStep<T, Step>;\n};\nexport type StepNumbers<TResolvedStep extends AnyResolvedStep> =\n ExtractStepFromKey<Constrain<keyof TResolvedStep, string>>;\ntype WidenSpecial<T> = T extends CasingType\n ? CasingType // e.g. \"title\" → \"camel\" | \"snake\" | \"title\"\n : T extends FieldType\n ? FieldType\n : T;\nexport type Relaxed<T> =\n // If it's an array, recurse into elements\n T extends (infer U)[]\n ? Relaxed<U>[]\n : // If it's a function, leave alone\n T extends (...args: any[]) => any\n ? T\n : // If it's an object (record), recurse into props\n T extends object\n ? { [K in keyof T]: Relaxed<T[K]> }\n : // Otherwise widen scalars\n WidenSpecial<T>;\n\nexport namespace HelperFnChosenSteps {\n export type defaultStringOption = 'all';\n export type stringOption<T extends string> = defaultStringOption | T;\n export type tupleNotation<T extends string> = [T, ...T[]];\n export type objectNotation<T extends string> = RequireAtLeastOne<{\n [_ in T]: true;\n }>;\n export type build<\n TValue extends string,\n TStringOptions = defaultStringOption\n > = TStringOptions | tupleNotation<TValue> | objectNotation<TValue>;\n export type main<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>\n > = build<ValidStepKey<TSteps>>;\n export type extractStepNumber<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<\n TResolvedStep,\n TSteps\n > = HelperFnChosenSteps<TResolvedStep, TSteps>\n > = TChosenSteps extends tupleNotation<ValidStepKey<TSteps>>\n ? keyof { [step in TChosenSteps[number] as ExtractStepFromKey<step>]: step }\n : TChosenSteps extends objectNotation<ValidStepKey<TSteps>>\n ? ExtractStepFromKey<keyof TChosenSteps>\n : TSteps;\n export type resolve<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends main<TResolvedStep, TSteps>\n > = TChosenSteps extends 'all'\n ? keyof TResolvedStep\n : TChosenSteps extends tupleNotation<ValidStepKey<TSteps>>\n ? TChosenSteps[number] extends keyof TResolvedStep\n ? TChosenSteps[number]\n : never\n : TChosenSteps extends objectNotation<ValidStepKey<TSteps>>\n ? keyof TChosenSteps extends keyof TResolvedStep\n ? keyof TChosenSteps\n : never\n : never;\n\n export const CATCH_ALL_MESSAGE =\n 'The chosen steps must either be set to on of the following: \"all\", an array of steps ([\"step1\", \"step2\", ...]), or an object containing the steps to chose ({ step1: true, step2: true, ...})';\n\n export function isAll(value: unknown): value is defaultStringOption {\n return Boolean(value && typeof value === 'string' && value === 'all');\n }\n\n export function isTuple<T extends number>(\n value: unknown,\n validValues?: Array<unknown>\n ): value is tupleNotation<ValidStepKey<T>> {\n if (!Array.isArray(value)) {\n return false;\n }\n\n if (validValues) {\n return value.every((key) => validValues.includes(key));\n }\n\n return true;\n }\n\n export function isObject<T extends number>(\n value: unknown,\n validKeys?: Array<unknown>\n ): value is objectNotation<ValidStepKey<T>> {\n if (!value) {\n return false;\n }\n\n const keys = Object.keys(value);\n\n if (keys.length === 0) {\n return false;\n }\n\n if (validKeys && !keys.every((key) => validKeys.includes(key))) {\n return false;\n }\n\n return Object.entries(value).every(([_, v]) => v === true);\n }\n}\n\nexport type HelperFnChosenSteps<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>\n> = HelperFnChosenSteps.main<TResolvedStep, TSteps>;\n\nexport type CreateHelperFunctionOptionsBase<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TSteps>\n> = {\n /**\n * The step data to use for the function. It can either be an array with the **available**\n * step numbers or `'all'`.\n *\n * - If set to `'all'`, data from **all** the steps will be available.\n * - If an array of the **available** step numbers is provided, only data from those steps will be available.\n */\n stepData: TChosenSteps;\n};\nexport type CreateHelperFunctionOptionsWithoutValidator<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TStepNumbers>\n> = CreateHelperFunctionOptionsBase<TResolvedStep, TStepNumbers, TChosenSteps>;\nexport interface CtxDataSelector<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TStepNumbers>,\n TAdditionalCtx extends Record<string, unknown>\n> {\n /**\n * A function to select the data that will be available in the `fn`'s ctx.\n * @param input The available input to create the context with.\n * @returns The created ctx.\n */\n ctxData?: (\n input: Pick<\n HelperFnInputBase<\n TResolvedStep,\n TStepNumbers,\n 'all',\n HelperFnChosenSteps.resolve<TResolvedStep, TStepNumbers, TChosenSteps>\n >,\n 'ctx'\n >\n ) => TAdditionalCtx;\n}\nexport type CreateHelperFunctionOptionsWithCustomCtxOptions<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TStepNumbers>,\n TAdditionalCtx extends Record<string, unknown>\n> = CreateHelperFunctionOptionsBase<TResolvedStep, TStepNumbers, TChosenSteps> &\n CtxDataSelector<TResolvedStep, TStepNumbers, TChosenSteps, TAdditionalCtx>;\nexport type CreateHelperFunctionOptionsWithValidator<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TStepNumbers>,\n TValidator,\n TAdditionalCtx extends Record<string, unknown>\n> = CreateHelperFunctionOptionsBase<TResolvedStep, TStepNumbers, TChosenSteps> &\n CreateHelperFunctionOptionsWithCustomCtxOptions<\n TResolvedStep,\n TStepNumbers,\n TChosenSteps,\n TAdditionalCtx\n > & {\n /**\n * A validator used to validate the params.\n */\n validator: Constrain<TValidator, AnyValidator, DefaultValidator>;\n };\n// TODO figure out way to make data optional in specific cases\n// example 1: if validateFields === { optionalValue?: string }, then `data` should be\n// optional since there is only one optional field\n// In words: if `validatedFields` only contains optional properties, then `data` should be optional\n// Approach: different interfaces (maybe)\nexport type CreatedHelperFnInput<T> = {\n data: Expand<ResolveValidatorOutput<T>>;\n};\nexport type CreatedHelperFnWithInput<TValidator, TResponse> = (\n input: CreatedHelperFnInput<TValidator>\n) => TResponse;\nexport type CreatedHelperFnWithoutInput<TResponse> = () => TResponse;\ntype isString<T> = T extends string ? T : never;\nexport type HelperFnCtx<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TSteps>,\n TOmitSteps extends HelperFnChosenSteps.resolve<\n TResolvedStep,\n TSteps,\n TChosenSteps\n > = never\n> = TChosenSteps extends 'all'\n ? Expand<\n Omit<\n {\n [key in TSteps as `step${key}`]: StrippedResolvedStep<\n GetCurrentStep<TResolvedStep, key>\n >;\n },\n isString<TOmitSteps>\n >\n >\n : TChosenSteps extends object\n ? keyof TChosenSteps extends ValidStepKey<TSteps>\n ? Expand<\n Omit<\n {\n -readonly [key in keyof TChosenSteps]: StrippedResolvedStep<\n GetCurrentStep<\n TResolvedStep,\n // @ts-ignore\n ExtractStepFromKey<key>\n >\n >;\n },\n isString<TOmitSteps>\n >\n >\n : TChosenSteps extends ValidStepKey<TSteps>[]\n ? Expand<\n Omit<\n {\n [key in TChosenSteps[number]]: StrippedResolvedStep<\n GetCurrentStep<\n TResolvedStep,\n // @ts-ignore\n ExtractStepFromKey<key>\n >\n >;\n },\n isString<TOmitSteps>\n >\n >\n : never\n : never;\n\nexport type helperFnUpdateFn<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TSteps extends ValidStepKey<TStepNumbers>\n> = {\n [step in TSteps]: UpdateFn.stepSpecific<TResolvedStep, TStepNumbers, step>;\n};\nexport type HelperFnUpdateFn<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TSteps>\n> = UpdateFn.general<TResolvedStep, TSteps> &\n (TChosenSteps extends HelperFnChosenSteps.defaultStringOption\n ? helperFnUpdateFn<TResolvedStep, TSteps, ValidStepKey<TSteps>>\n : TChosenSteps extends HelperFnChosenSteps.tupleNotation<\n ValidStepKey<TSteps>\n >\n ? helperFnUpdateFn<TResolvedStep, TSteps, TChosenSteps[number]>\n : TChosenSteps extends HelperFnChosenSteps.objectNotation<\n ValidStepKey<TSteps>\n >\n ? {\n [step in keyof TChosenSteps]: step extends ValidStepKey<TSteps>\n ? helperFnUpdateFn<TResolvedStep, TSteps, step>[step]\n : {};\n }\n : {});\n\nexport type helperFnResetFn<\n TResolvedStep extends AnyResolvedStep,\n TStepNumbers extends StepNumbers<TResolvedStep>,\n TSteps extends ValidStepKey<TStepNumbers>\n> = {\n [step in TSteps]: ResetFn.stepSpecific<TResolvedStep, TStepNumbers, step>;\n};\nexport type HelperFnResetFn<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TSteps>\n> = ResetFn.general<TResolvedStep, TSteps> &\n (TChosenSteps extends HelperFnChosenSteps.defaultStringOption\n ? helperFnResetFn<TResolvedStep, TSteps, ValidStepKey<TSteps>>\n : TChosenSteps extends HelperFnChosenSteps.tupleNotation<\n ValidStepKey<TSteps>\n >\n ? helperFnResetFn<TResolvedStep, TSteps, TChosenSteps[number]>\n : TChosenSteps extends HelperFnChosenSteps.objectNotation<\n ValidStepKey<TSteps>\n >\n ? {\n [step in keyof TChosenSteps]: step extends ValidStepKey<TSteps>\n ? helperFnResetFn<TResolvedStep, TSteps, step>[step]\n : {};\n }\n : {});\n\nexport interface HelperFnInputBase<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TSteps>,\n TOmitSteps extends HelperFnChosenSteps.resolve<\n TResolvedStep,\n TSteps,\n TChosenSteps\n > = never,\n TAdditionalCtx extends Record<string, unknown> = {}\n> {\n /**\n * The multi-step form step context.\n */\n // TODO determine if this should be renamed to `steps` since it only has the step data\n ctx: Expand<\n HelperFnCtx<TResolvedStep, TSteps, TChosenSteps, TOmitSteps> &\n TAdditionalCtx\n >;\n /**\n * A function to update parts of the multi-step form schema.\n */\n update: HelperFnUpdateFn<TResolvedStep, TSteps, TChosenSteps>;\n /**\n * A useful wrapper for `update` to reset a specific field's value to its\n * original config value.\n * @resetFn\n */\n reset: HelperFnResetFn<TResolvedStep, TSteps, TChosenSteps>;\n}\nexport type HelperFnInputWithValidator<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TSteps>,\n TValidator,\n TAdditionalCtx extends Record<string, unknown>\n> = HelperFnInputBase<\n TResolvedStep,\n TSteps,\n TChosenSteps,\n never,\n TAdditionalCtx\n> & {\n data: ResolveValidatorOutput<TValidator>;\n};\nexport type HelperFnInputWithoutValidator<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TSteps>,\n TAdditionalCtx extends Record<string, unknown>\n> = HelperFnInputBase<\n TResolvedStep,\n TSteps,\n TChosenSteps,\n never,\n TAdditionalCtx\n>;\n\nexport type HelperFnWithValidator<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TSteps>,\n TValidator,\n TAdditionalCtx extends Record<string, unknown>,\n Response\n> = (\n input: HelperFnInputWithValidator<\n TResolvedStep,\n TSteps,\n TChosenSteps,\n TValidator,\n TAdditionalCtx\n >\n) => Response;\nexport type HelperFnWithoutValidator<\n TResolvedStep extends AnyResolvedStep,\n TSteps extends StepNumbers<TResolvedStep>,\n TChosenSteps extends HelperFnChosenSteps<TResolvedStep, TSteps>,\n TAdditionalCtx extends Record<string, unknown>,\n Response\n> = (\n input: HelperFnInputWithoutValidator<\n TResolvedStep,\n TSteps,\n TChosenSteps,\n TAdditionalCtx\n >\n) => Response;\nexport interface MultiStepFormSchemaStepConfig<\n TStep extends Step<TCasing>,\n TCasing extends CasingType,\n TStorageKey extends string\n> extends NameTransformCasingOptions<TCasing> {\n /**\n * The steps that this multi step form will include.\n */\n steps: InferStepOptions<TStep>;\n /**\n * The options for the storage module.\n */\n storage?: Omit<StorageConfig<any, TStorageKey>, 'data'>;\n}\n"],"mappings":";;;0CA21BI;CAEK,SAAS,MAAM,OAA8C;AAClE,SAAO,QAAQ,SAAS,OAAO,UAAU,YAAY,UAAU,MAAM;;;CAGhE,SAAS,QACd,OACA,aACyC;AACzC,MAAI,CAAC,MAAM,QAAQ,MAAM,CACvB,QAAO;AAGT,MAAI,YACF,QAAO,MAAM,OAAO,QAAQ,YAAY,SAAS,IAAI,CAAC;AAGxD,SAAO;;;CAGF,SAAS,SACd,OACA,WAC0C;AAC1C,MAAI,CAAC,MACH,QAAO;EAGT,MAAM,OAAO,OAAO,KAAK,MAAM;AAE/B,MAAI,KAAK,WAAW,EAClB,QAAO;AAGT,MAAI,aAAa,CAAC,KAAK,OAAO,QAAQ,UAAU,SAAS,IAAI,CAAC,CAC5D,QAAO;AAGT,SAAO,OAAO,QAAQ,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,MAAM,KAAK"}
|
package/dist/utils/casing.d.cts
CHANGED
|
@@ -34,7 +34,7 @@ declare function isCasingValid(value: unknown): value is CasingType;
|
|
|
34
34
|
* @param fallback An optional fallback value if {@linkcode input} is `undefined`.
|
|
35
35
|
* @returns The {@linkcode input} or {@linkcode fallback} if {@linkcode input} is `undefined` or an {@linkcode isCasingValid invalid} {@linkcode CasingType}.
|
|
36
36
|
*/
|
|
37
|
-
declare function setCasingType<TCasing extends CasingType>(input: TCasing | undefined, fallback?: CasingType): "
|
|
37
|
+
declare function setCasingType<TCasing extends CasingType>(input: TCasing | undefined, fallback?: CasingType): "sentence" | "title" | "camel" | "lower" | "upper" | "pascal" | "snake" | "screaming-snake" | "flat" | "kebab";
|
|
38
38
|
//#endregion
|
|
39
39
|
export { CASING_TYPES, CapitalizeWord, CasingType, ChangeCasing, ChangeObjectCasing, DEFAULT_CASING, DefaultCasing, ToLower, changeCasing, isCasingValid, quote, setCasingType };
|
|
40
40
|
//# sourceMappingURL=casing.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"casing.d.cts","names":[],"sources":["../../src/utils/casing.ts"],"sourcesContent":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"casing.d.cts","names":[],"sources":["../../src/utils/casing.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/utils/casing.d.mts
CHANGED
|
@@ -34,7 +34,7 @@ declare function isCasingValid(value: unknown): value is CasingType;
|
|
|
34
34
|
* @param fallback An optional fallback value if {@linkcode input} is `undefined`.
|
|
35
35
|
* @returns The {@linkcode input} or {@linkcode fallback} if {@linkcode input} is `undefined` or an {@linkcode isCasingValid invalid} {@linkcode CasingType}.
|
|
36
36
|
*/
|
|
37
|
-
declare function setCasingType<TCasing extends CasingType>(input: TCasing | undefined, fallback?: CasingType): "
|
|
37
|
+
declare function setCasingType<TCasing extends CasingType>(input: TCasing | undefined, fallback?: CasingType): "sentence" | "title" | "camel" | "lower" | "upper" | "pascal" | "snake" | "screaming-snake" | "flat" | "kebab";
|
|
38
38
|
//#endregion
|
|
39
39
|
export { CASING_TYPES, CapitalizeWord, CasingType, ChangeCasing, ChangeObjectCasing, DEFAULT_CASING, DefaultCasing, ToLower, changeCasing, isCasingValid, quote, setCasingType };
|
|
40
40
|
//# sourceMappingURL=casing.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"casing.d.mts","names":[],"sources":["../../src/utils/casing.ts"],"sourcesContent":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"casing.d.mts","names":[],"sources":["../../src/utils/casing.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/utils/path.cjs
CHANGED
|
@@ -244,13 +244,72 @@ let path;
|
|
|
244
244
|
}
|
|
245
245
|
return helper(root, 0);
|
|
246
246
|
}
|
|
247
|
-
function
|
|
247
|
+
function findMissingPaths(obj, paths, actual) {
|
|
248
|
+
const keys = [];
|
|
249
|
+
for (const path$1 of paths) {
|
|
250
|
+
const expectedKeys = createDeep(pickBy(obj, path$1));
|
|
251
|
+
const actualKeys = createDeep(actual);
|
|
252
|
+
const missingKeys = expectedKeys.filter((key) => !actualKeys.includes(key)).map((key) => `${path$1}.${key}`);
|
|
253
|
+
keys.push(...missingKeys);
|
|
254
|
+
}
|
|
255
|
+
return keys;
|
|
256
|
+
}
|
|
257
|
+
_path.findMissingPaths = findMissingPaths;
|
|
258
|
+
function getPathThatMatter(path$1) {
|
|
259
|
+
const [, ...rest] = path$1.split(".defaultValue.");
|
|
260
|
+
return rest.join(".");
|
|
261
|
+
}
|
|
262
|
+
function joinAtPath(paths, obj, value) {
|
|
263
|
+
if (paths.length === 1) {
|
|
264
|
+
const [path$1] = paths;
|
|
265
|
+
const missingData = pickBy(obj, ...paths);
|
|
266
|
+
return setBy(value, getPathThatMatter(path$1), missingData);
|
|
267
|
+
}
|
|
268
|
+
if (paths.length > 1) {
|
|
269
|
+
let resolvedValue = {};
|
|
270
|
+
for (const path$1 of paths) {
|
|
271
|
+
const pathThatMatters = getPathThatMatter(path$1);
|
|
272
|
+
const missing = joinAtPath([path$1], obj, value);
|
|
273
|
+
const valueAtPathThatMatters = getBy(obj, path$1);
|
|
274
|
+
if (Object.keys(resolvedValue).length > 0 && valueAtPathThatMatters !== "undefined") {
|
|
275
|
+
const dataAtPath = pickBy(obj, path$1);
|
|
276
|
+
const [key] = pathThatMatters.split(".");
|
|
277
|
+
if (typeof dataAtPath === "object") {
|
|
278
|
+
if (missing) resolvedValue = {
|
|
279
|
+
...resolvedValue,
|
|
280
|
+
[key]: {
|
|
281
|
+
...resolvedValue[key],
|
|
282
|
+
...missing
|
|
283
|
+
}
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
continue;
|
|
287
|
+
}
|
|
288
|
+
if (missing) resolvedValue = {
|
|
289
|
+
...resolvedValue,
|
|
290
|
+
...missing
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
return resolvedValue;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
_path.joinAtPath = joinAtPath;
|
|
297
|
+
function updateAt(options) {
|
|
298
|
+
const { obj, partial, paths, value } = options;
|
|
248
299
|
const norm = normalizePaths(...paths);
|
|
249
300
|
if (norm.length === 0) return obj;
|
|
250
301
|
let result = obj;
|
|
302
|
+
let resolvedValue = value;
|
|
303
|
+
if (partial) {
|
|
304
|
+
const missingData = joinAtPath(findMissingPaths(obj, paths, value), obj, resolvedValue);
|
|
305
|
+
resolvedValue = {
|
|
306
|
+
...resolvedValue,
|
|
307
|
+
...missingData
|
|
308
|
+
};
|
|
309
|
+
}
|
|
251
310
|
if (norm.length === 1) {
|
|
252
311
|
const path$1 = norm[0];
|
|
253
|
-
result = setAtImmutable(result, path$1,
|
|
312
|
+
result = setAtImmutable(result, path$1, resolvedValue);
|
|
254
313
|
return result;
|
|
255
314
|
}
|
|
256
315
|
for (const path$1 of norm) {
|
package/dist/utils/path.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path.cjs","names":["path","finalPaths: string[]","result: Record<string, unknown>","paths: string[]","parts: string[]","m: RegExpExecArray | null","node: any","lastFn: ExpectedTransformFn | undefined","mismatches: Mismatch[]","lines: string[]","clone"],"sources":["../../src/utils/path.ts"],"sourcesContent":["import type { DeepKeys, unionHelpers } from './types';\n\nexport namespace path {\n type getBy<T, TPath extends string> = TPath extends `${infer K}.${infer Rest}`\n ? K extends keyof T\n ? getBy<T[K], Rest>\n : never\n : TPath extends keyof T\n ? T[TPath]\n : never;\n\n type buildFromPath<T, P extends string> = P extends `${infer K}.${infer Rest}`\n ? { [Key in K]: buildFromPath<getBy<T, K>, Rest> }\n : P extends keyof T\n ? { [Key in P]: T[P] }\n : never;\n\n /**\n * Does P have any ancestor path in All? (i.e. some Q in All such that Q is a\n * strict prefix of P)\n */\n type hasAncestor<P extends string, All extends string> = true extends (\n All extends string\n ? All extends P\n ? false // same path, not an ancestor\n : P extends `${All}.${string}`\n ? true\n : false\n : never\n )\n ? true\n : false;\n\n /**\n * Normalize a union of paths by removing those that have an ancestor path\n * also in the union.\n *\n * Example:\n * NormalizePaths<'foo.bar.baz' | 'foo.bar'> -> 'foo.bar'\n * NormalizePaths<'foo.bar' | 'other'> -> 'foo.bar' | 'other'\n */\n type normalize<\n Paths extends string,\n All extends string = Paths\n > = Paths extends string\n ? hasAncestor<Paths, All> extends true\n ? never\n : Paths\n : never;\n\n // helper to distribute BuildFromPath over union\n type distributeAndBuild<T, Paths extends string> = Paths extends unknown\n ? buildFromPath<T, Paths>\n : never;\n\n export type generateObjectConfig<T> = {\n [K in keyof T]: T[K] extends object\n ? // K's value is an object: allow stopping at K, or going deeper\n { [P in K]: true } | { [P in K]: generateObjectConfig<T[K]> }\n : // K's value is not object: can only stop at K\n { [P in K]: true };\n }[keyof T];\n export type objectToPath<O> = {\n [K in keyof O]: O[K] extends true\n ? K & string\n : O[K] extends object\n ? `${K & string}.${objectToPath<O[K]>}`\n : never;\n }[keyof O];\n\n /**\n * Pick by paths:\n * - Normalize the paths (remove descendants when parent also present)\n * - If only one normalized path:\n * return GetByPath<T, P> (relative type)\n * - If multiple:\n * intersect root-built shapes for each normalized path\n *\n * @example\n * ```ts\n * type User = {\n * foo: {\n * bar: {\n * baz: number;\n * qux: string;\n * };\n * };\n * other: string;\n * };\n *\n * type Test1 = PickByPaths<User, 'foo.bar'>;\n * // { baz: number; qux: string } ✅ relative object at foo.bar\n *\n * type Test2 = PickByPaths<User, 'foo.bar.baz'>;\n * // number ✅ leaf type\n *\n * type Test3 = PickByPaths<User, 'foo.bar' | 'other'>;\n * // { foo: { bar: { baz: number; qux: string } } } & { other: string } ✅\n *\n * type Test4 = PickByPaths<User, 'foo.bar.baz' | 'foo.bar' | 'other'>;\n * // { baz: number; qux: string } ✅ parent 'foo.bar' wins, relative\n * ```\n */\n export type pickBy<\n T,\n Paths extends DeepKeys<T>\n > = normalize<Paths> extends infer normalized extends string\n ? unionHelpers.is<normalized> extends true\n ? unionHelpers.toIntersection<distributeAndBuild<T, normalized>>\n : getBy<T, normalized>\n : never;\n\n function getBy(obj: any, path: string): any {\n return path\n .split('.')\n .reduce((acc, key) => (acc == null ? undefined : acc[key]), obj);\n }\n export function setBy<\n def extends Record<string, unknown>,\n path extends DeepKeys<def>\n >(target: def, path: path, value: unknown) {\n const keys = path.split('.');\n let current = target;\n\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i];\n if (i === keys.length - 1) {\n // last key -> assign/merge\n if (\n current[k] !== undefined &&\n typeof current[k] === 'object' &&\n typeof value === 'object' &&\n value !== null\n ) {\n Object.assign(current[k] as Record<string, unknown>, value);\n } else {\n (current[k] as any) = value;\n }\n } else {\n if (typeof current[k] !== 'object' || current[k] === null) {\n (current[k] as any) = {};\n }\n (current as any) = current[k];\n }\n }\n\n return current;\n }\n\n // Runtime: normalize paths (drop descendants when ancestor exists)\n export function normalizePaths(...paths: string[]) {\n // Sort by depth (deepest first), so longer paths come before their parents.\n const sorted = [...paths].sort(\n (a, b) => b.split('.').length - a.split('.').length\n );\n\n const finalPaths: string[] = [];\n\n for (const path of sorted) {\n // If the path is contained inside another selected deeper path, skip it\n const isCovered = finalPaths.some((p) => p.startsWith(path + '.'));\n\n if (!isCovered) {\n finalPaths.push(path);\n }\n }\n\n // The order may not matter, but returning in shallow-to-deep order feels natural.\n return finalPaths.reverse();\n }\n\n /**\n * pickByPaths:\n * - paths can be a union of string literals\n * - return type is PickByPaths<T, Paths>\n */\n export function pickBy<def, paths extends DeepKeys<def>>(\n obj: def,\n ...paths: paths[]\n ): pickBy<def, paths> {\n const norm = normalizePaths(...paths);\n\n // Single normalized path -> return relative value at that path\n if (norm.length === 1) {\n return getBy(obj, norm[0]) as pickBy<def, paths>;\n }\n\n // Multiple normalized paths -> build root-based object and intersect\n const result: Record<string, unknown> = {};\n\n for (const p of norm) {\n const value = getBy(obj, p);\n\n setBy(result, p, value);\n }\n\n return result as pickBy<def, paths>;\n }\n\n /**\n * Creates an array of all deep paths in an object.\n * Recursively traverses the object and returns all possible dot-separated paths.\n *\n * @example\n * ```ts\n * const obj = {\n * foo: {\n * bar: {\n * baz: 1,\n * qux: 2\n * }\n * },\n * other: 'value'\n * };\n *\n * createPaths(obj);\n * // ['foo', 'foo.bar', 'foo.bar.baz', 'foo.bar.qux', 'other']\n * ```\n */\n export function createDeep<T>(obj: T): DeepKeys<T>[] {\n const paths: string[] = [];\n\n function traverse(current: any, prefix: string = ''): void {\n if (current === null || current === undefined) {\n return;\n }\n\n if (typeof current !== 'object' || Array.isArray(current)) {\n return;\n }\n\n const keys = Object.keys(current);\n for (const key of keys) {\n const path = prefix ? `${prefix}.${key}` : key;\n paths.push(path);\n\n const value = current[key];\n if (\n value !== null &&\n value !== undefined &&\n typeof value === 'object' &&\n !Array.isArray(value)\n ) {\n traverse(value, path);\n }\n }\n }\n\n traverse(obj);\n return paths as DeepKeys<T>[];\n }\n\n export type MismatchReason =\n | 'value-mismatch'\n | 'type-mismatch'\n | 'missing-key'\n | 'extra-key';\n export interface Mismatch {\n path: string;\n expected: unknown;\n actual: unknown;\n reason: MismatchReason;\n }\n\n export interface CompareResult {\n ok: boolean;\n mismatches: Mismatch[];\n }\n type ExpectedTransformFn<TValue = unknown> = (\n value: TValue,\n path: string\n ) => unknown;\n /**\n * Transform config:\n * - a single function: applies to the whole T\n * - or an object shaped like T, where values are either:\n * - functions (apply at/under that node)\n * - nested objects continuing the shape\n */\n export type ExpectedTransformConfig<T, V = unknown> =\n | ExpectedTransformFn<V>\n | { [K in keyof T]?: ExpectedTransformConfig<T[K], T[K]> };\n export interface EqualsOptions<T> {\n /**\n * How to transform the \"expected\" field in mismatches.\n * If omitted, a default type-ish formatting is used.\n */\n transformExpected?: ExpectedTransformConfig<T>;\n }\n interface DeepCompareOptions<T> {\n includeValueMismatch?: boolean;\n\n transformExpected?: ExpectedTransformConfig<T>;\n }\n\n function defaultExpectedFormat(value: unknown): string {\n if (value === null) return 'null';\n if (Array.isArray(value)) return 'Array';\n const t = typeof value;\n if (t !== 'object') return t; // 'string', 'number', etc.\n const ctor = (value as any)?.constructor?.name;\n return ctor && ctor !== 'Object' ? ctor : 'object';\n }\n\n function splitPath(path: string): string[] {\n if (!path) return [];\n const parts: string[] = [];\n const regex = /[^.[\\]]+|\\[(\\d+)\\]/g;\n let m: RegExpExecArray | null;\n while ((m = regex.exec(path))) {\n parts.push(m[1] ?? m[0]);\n }\n return parts;\n }\n\n function getTransformFunction<T>(\n root: ExpectedTransformConfig<T> | undefined,\n path: string\n ): ExpectedTransformFn | undefined {\n if (!root) return undefined;\n\n if (typeof root === 'function') {\n // TS now knows this is ExpectedTransformFn, but we can be explicit:\n return root as ExpectedTransformFn;\n }\n\n const segments = splitPath(path);\n let node: any = root;\n let lastFn: ExpectedTransformFn | undefined;\n\n for (const seg of segments) {\n if (!node) break;\n\n if (typeof node === 'function') {\n lastFn = node as ExpectedTransformFn;\n break;\n }\n\n node = node[seg];\n\n if (typeof node === 'function') {\n lastFn = node as ExpectedTransformFn;\n break;\n }\n }\n\n return lastFn;\n }\n\n function formatExpected<T>(\n rawExpected: unknown,\n path: string,\n cfg: ExpectedTransformConfig<T> | undefined\n ): unknown {\n const fn = getTransformFunction(cfg, path);\n if (fn) return fn(rawExpected, path);\n return defaultExpectedFormat(rawExpected);\n }\n\n function isObjectLike(v: unknown): v is Record<string, unknown> {\n return typeof v === 'object' && v !== null;\n }\n\n function deepCompare<T>(\n expected: unknown,\n actual: unknown,\n basePath: string,\n mismatches: Mismatch[],\n options: DeepCompareOptions<T>\n ): Mismatch[] {\n // identical (covers primitives + same-ref objects)\n if (expected === actual) {\n return mismatches;\n }\n\n // one is null/undefined OR types not object-like -> primitive / scalar mismatch\n if (\n expected === null ||\n actual === null ||\n typeof expected !== 'object' ||\n typeof actual !== 'object'\n ) {\n const path = basePath || '(root)';\n\n if (typeof expected !== typeof actual) {\n mismatches.push({\n path,\n expected: formatExpected(expected, path, options.transformExpected),\n actual,\n reason: 'type-mismatch',\n });\n return mismatches;\n }\n\n if (options.includeValueMismatch) {\n mismatches.push({\n path,\n expected: formatExpected(expected, path, options.transformExpected),\n actual,\n reason: 'value-mismatch',\n });\n }\n\n return mismatches;\n }\n\n // arrays\n if (Array.isArray(expected) || Array.isArray(actual)) {\n if (!Array.isArray(expected) || !Array.isArray(actual)) {\n const path = basePath || '(root)';\n mismatches.push({\n path,\n expected: formatExpected(expected, path, options.transformExpected),\n actual,\n reason: 'type-mismatch',\n });\n return mismatches;\n }\n\n // Both values are arrays.\n // We *do* compare element structure/types where both have an index, but we\n // intentionally ignore length differences (no missing/extra index errors).\n const maxLen = expected.length;\n\n for (let i = 0; i < maxLen; i++) {\n const expVal = expected[i];\n const actVal = actual[i];\n const path = basePath === '' ? `[${i}]` : `${basePath}[${i}]`;\n\n deepCompare(expVal, actVal, path, mismatches, options);\n }\n\n return mismatches;\n }\n\n // plain objects\n if (isObjectLike(expected) && isObjectLike(actual)) {\n const expKeys = Object.keys(expected);\n const actKeys = Object.keys(actual);\n\n for (const key of expKeys) {\n const expVal = (expected as any)[key];\n const actVal = (actual as any)[key];\n const path = basePath ? `${basePath}.${key}` : key;\n\n if (!(key in actual)) {\n mismatches.push({\n path,\n expected: formatExpected(expVal, path, options.transformExpected),\n actual: undefined,\n reason: 'missing-key',\n });\n continue;\n }\n\n deepCompare(expVal, actVal, path, mismatches, options);\n }\n\n for (const key of actKeys) {\n if (!(key in expected)) {\n const path = basePath ? `${basePath}.${key}` : key;\n mismatches.push({\n path,\n expected: undefined,\n actual: (actual as any)[key],\n reason: 'extra-key',\n });\n }\n }\n\n return mismatches;\n }\n\n const path = basePath || '(root)';\n if (typeof expected !== typeof actual) {\n mismatches.push({\n path,\n expected: formatExpected(expected, path, options.transformExpected),\n actual,\n reason: 'type-mismatch',\n });\n } else if (options.includeValueMismatch) {\n mismatches.push({\n path,\n expected: formatExpected(expected, path, options.transformExpected),\n actual,\n reason: 'value-mismatch',\n });\n }\n\n return mismatches;\n }\n\n export function equalsAtPaths<def, paths extends DeepKeys<def>>(\n obj: def,\n paths: paths[],\n actual: pickBy<def, paths>,\n options?: EqualsOptions<def>\n ): CompareResult {\n // expected comes from obj at the given paths\n const expected = pickBy<def, paths>(obj, ...paths);\n\n const mismatches: Mismatch[] = [];\n\n const basePath = paths.length === 1 ? (paths[0] as string) : '';\n\n deepCompare<def>(expected, actual, basePath, mismatches, {\n transformExpected: options?.transformExpected,\n });\n\n return {\n ok: mismatches.length === 0,\n mismatches,\n };\n }\n\n function formatValue(v: unknown): string {\n if (v === undefined) return 'undefined';\n if (typeof v === 'string') return JSON.stringify(v); // add quotes\n try {\n return JSON.stringify(v, null, 2);\n } catch {\n return String(v);\n }\n }\n\n function formatReason(m: Mismatch): string {\n switch (m.reason) {\n case 'missing-key':\n return 'Missing key';\n case 'extra-key':\n return 'Extra key';\n case 'type-mismatch':\n return 'Type mismatch';\n case 'value-mismatch':\n return 'Value mismatch';\n default:\n return m.reason;\n }\n }\n\n /**\n * Turn a CompareResult into a pretty error string.\n */\n export function formatMismatches(result: CompareResult) {\n if (result.ok || result.mismatches.length === 0) {\n return 'No mismatches.';\n }\n\n const lines: string[] = [];\n\n for (const m of result.mismatches) {\n lines.push(\n `\\n● ${formatReason(m)} at \"${m.path}\":`,\n ` expected: ${formatValue(m.expected)}`,\n ` actual: ${formatValue(m.actual)}`,\n '' // blank line between entries\n );\n }\n\n // trim trailing blank line\n if (lines.at(-1) === '') {\n lines.pop();\n }\n\n return lines.join('\\n');\n }\n\n /**\n * Convenience: log to console.error.\n */\n export function printMismatches(result: CompareResult): void {\n const msg = formatMismatches(result);\n if (msg !== 'No mismatches.') {\n console.error(msg);\n }\n }\n\n function setAtImmutable<\n T extends Record<string, unknown>,\n path extends DeepKeys<T>\n >(root: T, path: path, value: pickBy<T, path>) {\n const keys = path.split('.');\n\n function helper(current: T, idx: number): any {\n const key = keys[idx];\n const resolvedCurrent = Array.isArray(current)\n ? [...current]\n : { ...current };\n\n if (idx === keys.length - 1) {\n let clone =\n current && typeof current === 'object' ? resolvedCurrent : {};\n\n clone = {\n ...clone,\n [key]: value,\n };\n\n return clone;\n }\n\n const next =\n current && typeof current === 'object' ? current[key] : undefined;\n\n const updatedChild = helper((next as T) ?? ({} as T), idx + 1);\n\n let clone = current && typeof current === 'object' ? resolvedCurrent : {};\n\n clone = {\n ...clone,\n [key]: updatedChild,\n };\n\n return clone;\n }\n\n return helper(root, 0);\n }\n\n // ---- main: updateAt ----\n\n // PickByPaths<T, Paths> is your existing type\n // that resolves & normalizes parent paths, etc.\n export function updateAt<\n T extends Record<string, unknown>,\n path extends DeepKeys<T>\n >(obj: T, paths: path[], value: pickBy<T, path>) {\n const norm = normalizePaths(...paths);\n if (norm.length === 0) return obj;\n\n let result = obj;\n\n if (norm.length === 1) {\n // single path: value is relative at that path\n const path = norm[0] as DeepKeys<T>;\n\n result = setAtImmutable(result, path, value as never);\n\n return result;\n }\n\n // multiple paths:\n // value is the root-shaped object that contains all those paths\n for (const path of norm) {\n const sub = getBy(value, path);\n\n result = setAtImmutable(result, path as DeepKeys<T>, sub);\n }\n\n return result;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"path.cjs","names":["path","finalPaths: string[]","result: Record<string, unknown>","paths: string[]","parts: string[]","m: RegExpExecArray | null","node: any","lastFn: ExpectedTransformFn | undefined","mismatches: Mismatch[]","lines: string[]","clone","keys: string[]"],"sources":["../../src/utils/path.ts"],"sourcesContent":["import type { DeepKeys, unionHelpers } from './types';\n\nexport namespace path {\n type getBy<T, TPath extends string> = TPath extends `${infer K}.${infer Rest}`\n ? K extends keyof T\n ? getBy<T[K], Rest>\n : never\n : TPath extends keyof T\n ? T[TPath]\n : never;\n\n type buildFromPath<T, P extends string> = P extends `${infer K}.${infer Rest}`\n ? { [Key in K]: buildFromPath<getBy<T, K>, Rest> }\n : P extends keyof T\n ? { [Key in P]: T[P] }\n : never;\n\n /**\n * Does P have any ancestor path in All? (i.e. some Q in All such that Q is a\n * strict prefix of P)\n */\n type hasAncestor<P extends string, All extends string> = true extends (\n All extends string\n ? All extends P\n ? false // same path, not an ancestor\n : P extends `${All}.${string}`\n ? true\n : false\n : never\n )\n ? true\n : false;\n\n /**\n * Normalize a union of paths by removing those that have an ancestor path\n * also in the union.\n *\n * Example:\n * NormalizePaths<'foo.bar.baz' | 'foo.bar'> -> 'foo.bar'\n * NormalizePaths<'foo.bar' | 'other'> -> 'foo.bar' | 'other'\n */\n type normalize<\n Paths extends string,\n All extends string = Paths\n > = Paths extends string\n ? hasAncestor<Paths, All> extends true\n ? never\n : Paths\n : never;\n\n // helper to distribute BuildFromPath over union\n type distributeAndBuild<T, Paths extends string> = Paths extends unknown\n ? buildFromPath<T, Paths>\n : never;\n\n export type generateObjectConfig<T> = {\n [K in keyof T]: T[K] extends object\n ? // K's value is an object: allow stopping at K, or going deeper\n { [P in K]: true } | { [P in K]: generateObjectConfig<T[K]> }\n : // K's value is not object: can only stop at K\n { [P in K]: true };\n }[keyof T];\n export type objectToPath<O> = {\n [K in keyof O]: O[K] extends true\n ? K & string\n : O[K] extends object\n ? `${K & string}.${objectToPath<O[K]>}`\n : never;\n }[keyof O];\n\n /**\n * Pick by paths:\n * - Normalize the paths (remove descendants when parent also present)\n * - If only one normalized path:\n * return GetByPath<T, P> (relative type)\n * - If multiple:\n * intersect root-built shapes for each normalized path\n *\n * @example\n * ```ts\n * type User = {\n * foo: {\n * bar: {\n * baz: number;\n * qux: string;\n * };\n * };\n * other: string;\n * };\n *\n * type Test1 = PickByPaths<User, 'foo.bar'>;\n * // { baz: number; qux: string } ✅ relative object at foo.bar\n *\n * type Test2 = PickByPaths<User, 'foo.bar.baz'>;\n * // number ✅ leaf type\n *\n * type Test3 = PickByPaths<User, 'foo.bar' | 'other'>;\n * // { foo: { bar: { baz: number; qux: string } } } & { other: string } ✅\n *\n * type Test4 = PickByPaths<User, 'foo.bar.baz' | 'foo.bar' | 'other'>;\n * // { baz: number; qux: string } ✅ parent 'foo.bar' wins, relative\n * ```\n */\n export type pickBy<\n T,\n Paths extends DeepKeys<T>\n > = normalize<Paths> extends infer normalized extends string\n ? unionHelpers.is<normalized> extends true\n ? unionHelpers.toIntersection<distributeAndBuild<T, normalized>>\n : getBy<T, normalized>\n : never;\n\n function getBy(obj: any, path: string): any {\n return path\n .split('.')\n .reduce((acc, key) => (acc == null ? undefined : acc[key]), obj);\n }\n export function setBy<\n def extends Record<string, unknown>,\n path extends DeepKeys<def>\n >(target: def, path: path, value: unknown) {\n const keys = path.split('.');\n let current = target;\n\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i];\n if (i === keys.length - 1) {\n // last key -> assign/merge\n if (\n current[k] !== undefined &&\n typeof current[k] === 'object' &&\n typeof value === 'object' &&\n value !== null\n ) {\n Object.assign(current[k] as Record<string, unknown>, value);\n } else {\n (current[k] as any) = value;\n }\n } else {\n if (typeof current[k] !== 'object' || current[k] === null) {\n (current[k] as any) = {};\n }\n (current as any) = current[k];\n }\n }\n\n return current;\n }\n\n // Runtime: normalize paths (drop descendants when ancestor exists)\n export function normalizePaths(...paths: string[]) {\n // Sort by depth (deepest first), so longer paths come before their parents.\n const sorted = [...paths].sort(\n (a, b) => b.split('.').length - a.split('.').length\n );\n\n const finalPaths: string[] = [];\n\n for (const path of sorted) {\n // If the path is contained inside another selected deeper path, skip it\n const isCovered = finalPaths.some((p) => p.startsWith(path + '.'));\n\n if (!isCovered) {\n finalPaths.push(path);\n }\n }\n\n // The order may not matter, but returning in shallow-to-deep order feels natural.\n return finalPaths.reverse();\n }\n\n /**\n * pickByPaths:\n * - paths can be a union of string literals\n * - return type is PickByPaths<T, Paths>\n */\n export function pickBy<def, paths extends DeepKeys<def>>(\n obj: def,\n ...paths: paths[]\n ): pickBy<def, paths> {\n const norm = normalizePaths(...paths);\n\n // Single normalized path -> return relative value at that path\n if (norm.length === 1) {\n return getBy(obj, norm[0]) as pickBy<def, paths>;\n }\n\n // Multiple normalized paths -> build root-based object and intersect\n const result: Record<string, unknown> = {};\n\n for (const p of norm) {\n const value = getBy(obj, p);\n\n setBy(result, p, value);\n }\n\n return result as pickBy<def, paths>;\n }\n\n /**\n * Creates an array of all deep paths in an object.\n * Recursively traverses the object and returns all possible dot-separated paths.\n *\n * @example\n * ```ts\n * const obj = {\n * foo: {\n * bar: {\n * baz: 1,\n * qux: 2\n * }\n * },\n * other: 'value'\n * };\n *\n * createPaths(obj);\n * // ['foo', 'foo.bar', 'foo.bar.baz', 'foo.bar.qux', 'other']\n * ```\n */\n export function createDeep<T>(obj: T): DeepKeys<T>[] {\n const paths: string[] = [];\n\n function traverse(current: any, prefix: string = ''): void {\n if (current === null || current === undefined) {\n return;\n }\n\n if (typeof current !== 'object' || Array.isArray(current)) {\n return;\n }\n\n const keys = Object.keys(current);\n for (const key of keys) {\n const path = prefix ? `${prefix}.${key}` : key;\n paths.push(path);\n\n const value = current[key];\n if (\n value !== null &&\n value !== undefined &&\n typeof value === 'object' &&\n !Array.isArray(value)\n ) {\n traverse(value, path);\n }\n }\n }\n\n traverse(obj);\n return paths as DeepKeys<T>[];\n }\n\n export type MismatchReason =\n | 'value-mismatch'\n | 'type-mismatch'\n | 'missing-key'\n | 'extra-key';\n export interface Mismatch {\n path: string;\n expected: unknown;\n actual: unknown;\n reason: MismatchReason;\n }\n\n export interface CompareResult {\n ok: boolean;\n mismatches: Mismatch[];\n }\n type ExpectedTransformFn<TValue = unknown> = (\n value: TValue,\n path: string\n ) => unknown;\n /**\n * Transform config:\n * - a single function: applies to the whole T\n * - or an object shaped like T, where values are either:\n * - functions (apply at/under that node)\n * - nested objects continuing the shape\n */\n export type ExpectedTransformConfig<T, V = unknown> =\n | ExpectedTransformFn<V>\n | { [K in keyof T]?: ExpectedTransformConfig<T[K], T[K]> };\n export interface EqualsOptions<T> {\n /**\n * How to transform the \"expected\" field in mismatches.\n * If omitted, a default type-ish formatting is used.\n */\n transformExpected?: ExpectedTransformConfig<T>;\n }\n interface DeepCompareOptions<T> {\n includeValueMismatch?: boolean;\n\n transformExpected?: ExpectedTransformConfig<T>;\n }\n\n function defaultExpectedFormat(value: unknown): string {\n if (value === null) return 'null';\n if (Array.isArray(value)) return 'Array';\n const t = typeof value;\n if (t !== 'object') return t; // 'string', 'number', etc.\n const ctor = (value as any)?.constructor?.name;\n return ctor && ctor !== 'Object' ? ctor : 'object';\n }\n\n function splitPath(path: string): string[] {\n if (!path) return [];\n const parts: string[] = [];\n const regex = /[^.[\\]]+|\\[(\\d+)\\]/g;\n let m: RegExpExecArray | null;\n while ((m = regex.exec(path))) {\n parts.push(m[1] ?? m[0]);\n }\n return parts;\n }\n\n function getTransformFunction<T>(\n root: ExpectedTransformConfig<T> | undefined,\n path: string\n ): ExpectedTransformFn | undefined {\n if (!root) return undefined;\n\n if (typeof root === 'function') {\n // TS now knows this is ExpectedTransformFn, but we can be explicit:\n return root as ExpectedTransformFn;\n }\n\n const segments = splitPath(path);\n let node: any = root;\n let lastFn: ExpectedTransformFn | undefined;\n\n for (const seg of segments) {\n if (!node) break;\n\n if (typeof node === 'function') {\n lastFn = node as ExpectedTransformFn;\n break;\n }\n\n node = node[seg];\n\n if (typeof node === 'function') {\n lastFn = node as ExpectedTransformFn;\n break;\n }\n }\n\n return lastFn;\n }\n\n function formatExpected<T>(\n rawExpected: unknown,\n path: string,\n cfg: ExpectedTransformConfig<T> | undefined\n ): unknown {\n const fn = getTransformFunction(cfg, path);\n if (fn) return fn(rawExpected, path);\n return defaultExpectedFormat(rawExpected);\n }\n\n function isObjectLike(v: unknown): v is Record<string, unknown> {\n return typeof v === 'object' && v !== null;\n }\n\n function deepCompare<T>(\n expected: unknown,\n actual: unknown,\n basePath: string,\n mismatches: Mismatch[],\n options: DeepCompareOptions<T>\n ): Mismatch[] {\n // identical (covers primitives + same-ref objects)\n if (expected === actual) {\n return mismatches;\n }\n\n // one is null/undefined OR types not object-like -> primitive / scalar mismatch\n if (\n expected === null ||\n actual === null ||\n typeof expected !== 'object' ||\n typeof actual !== 'object'\n ) {\n const path = basePath || '(root)';\n\n if (typeof expected !== typeof actual) {\n mismatches.push({\n path,\n expected: formatExpected(expected, path, options.transformExpected),\n actual,\n reason: 'type-mismatch',\n });\n return mismatches;\n }\n\n if (options.includeValueMismatch) {\n mismatches.push({\n path,\n expected: formatExpected(expected, path, options.transformExpected),\n actual,\n reason: 'value-mismatch',\n });\n }\n\n return mismatches;\n }\n\n // arrays\n if (Array.isArray(expected) || Array.isArray(actual)) {\n if (!Array.isArray(expected) || !Array.isArray(actual)) {\n const path = basePath || '(root)';\n mismatches.push({\n path,\n expected: formatExpected(expected, path, options.transformExpected),\n actual,\n reason: 'type-mismatch',\n });\n return mismatches;\n }\n\n // Both values are arrays.\n // We *do* compare element structure/types where both have an index, but we\n // intentionally ignore length differences (no missing/extra index errors).\n const maxLen = expected.length;\n\n for (let i = 0; i < maxLen; i++) {\n const expVal = expected[i];\n const actVal = actual[i];\n const path = basePath === '' ? `[${i}]` : `${basePath}[${i}]`;\n\n deepCompare(expVal, actVal, path, mismatches, options);\n }\n\n return mismatches;\n }\n\n // plain objects\n if (isObjectLike(expected) && isObjectLike(actual)) {\n const expKeys = Object.keys(expected);\n const actKeys = Object.keys(actual);\n\n for (const key of expKeys) {\n const expVal = (expected as any)[key];\n const actVal = (actual as any)[key];\n const path = basePath ? `${basePath}.${key}` : key;\n\n if (!(key in actual)) {\n mismatches.push({\n path,\n expected: formatExpected(expVal, path, options.transformExpected),\n actual: undefined,\n reason: 'missing-key',\n });\n continue;\n }\n\n deepCompare(expVal, actVal, path, mismatches, options);\n }\n\n for (const key of actKeys) {\n if (!(key in expected)) {\n const path = basePath ? `${basePath}.${key}` : key;\n mismatches.push({\n path,\n expected: undefined,\n actual: (actual as any)[key],\n reason: 'extra-key',\n });\n }\n }\n\n return mismatches;\n }\n\n const path = basePath || '(root)';\n if (typeof expected !== typeof actual) {\n mismatches.push({\n path,\n expected: formatExpected(expected, path, options.transformExpected),\n actual,\n reason: 'type-mismatch',\n });\n } else if (options.includeValueMismatch) {\n mismatches.push({\n path,\n expected: formatExpected(expected, path, options.transformExpected),\n actual,\n reason: 'value-mismatch',\n });\n }\n\n return mismatches;\n }\n\n export function equalsAtPaths<def, paths extends DeepKeys<def>>(\n obj: def,\n paths: paths[],\n actual: pickBy<def, paths>,\n options?: EqualsOptions<def>\n ): CompareResult {\n // expected comes from obj at the given paths\n const expected = pickBy<def, paths>(obj, ...paths);\n\n const mismatches: Mismatch[] = [];\n\n const basePath = paths.length === 1 ? (paths[0] as string) : '';\n\n deepCompare<def>(expected, actual, basePath, mismatches, {\n transformExpected: options?.transformExpected,\n });\n\n return {\n ok: mismatches.length === 0,\n mismatches,\n };\n }\n\n function formatValue(v: unknown): string {\n if (v === undefined) return 'undefined';\n if (typeof v === 'string') return JSON.stringify(v); // add quotes\n try {\n return JSON.stringify(v, null, 2);\n } catch {\n return String(v);\n }\n }\n\n function formatReason(m: Mismatch): string {\n switch (m.reason) {\n case 'missing-key':\n return 'Missing key';\n case 'extra-key':\n return 'Extra key';\n case 'type-mismatch':\n return 'Type mismatch';\n case 'value-mismatch':\n return 'Value mismatch';\n default:\n return m.reason;\n }\n }\n\n /**\n * Turn a CompareResult into a pretty error string.\n */\n export function formatMismatches(result: CompareResult) {\n if (result.ok || result.mismatches.length === 0) {\n return 'No mismatches.';\n }\n\n const lines: string[] = [];\n\n for (const m of result.mismatches) {\n lines.push(\n `\\n● ${formatReason(m)} at \"${m.path}\":`,\n ` expected: ${formatValue(m.expected)}`,\n ` actual: ${formatValue(m.actual)}`,\n '' // blank line between entries\n );\n }\n\n // trim trailing blank line\n if (lines.at(-1) === '') {\n lines.pop();\n }\n\n return lines.join('\\n');\n }\n\n /**\n * Convenience: log to console.error.\n */\n export function printMismatches(result: CompareResult): void {\n const msg = formatMismatches(result);\n if (msg !== 'No mismatches.') {\n console.error(msg);\n }\n }\n\n function setAtImmutable<\n T extends Record<string, unknown>,\n path extends DeepKeys<T>\n >(root: T, path: path, value: pickBy<T, path>) {\n const keys = path.split('.');\n\n function helper(current: T, idx: number): any {\n const key = keys[idx];\n const resolvedCurrent = Array.isArray(current)\n ? [...current]\n : { ...current };\n\n if (idx === keys.length - 1) {\n let clone =\n current && typeof current === 'object' ? resolvedCurrent : {};\n\n clone = {\n ...clone,\n [key]: value,\n };\n\n return clone;\n }\n\n const next =\n current && typeof current === 'object' ? current[key] : undefined;\n\n const updatedChild = helper((next as T) ?? ({} as T), idx + 1);\n\n let clone = current && typeof current === 'object' ? resolvedCurrent : {};\n\n clone = {\n ...clone,\n [key]: updatedChild,\n };\n\n return clone;\n }\n\n return helper(root, 0);\n }\n\n export function findMissingPaths<\n obj extends Record<string, unknown>,\n path extends DeepKeys<obj>\n >(obj: obj, paths: Array<path>, actual: pickBy<obj, path>) {\n const keys: string[] = [];\n\n for (const path of paths) {\n const value = pickBy(obj, path);\n const expectedKeys = createDeep(value);\n const actualKeys = createDeep(actual);\n const missingKeys = expectedKeys\n .filter((key) => !actualKeys.includes(key))\n .map((key) => `${path}.${key}`);\n\n keys.push(...missingKeys);\n }\n\n return keys as Array<DeepKeys<obj>>;\n }\n\n export type updateAtOptions<\n T extends Record<string, unknown>,\n path extends DeepKeys<T>\n > = {\n obj: T;\n paths: Array<path>;\n value: pickBy<T, path>;\n partial?: boolean;\n };\n\n function getPathThatMatter(path: string) {\n // Only works when updating a `defaultValue`\n // TODO make this work with the entire object - will need to figure out some way to normalize\n const [, ...rest] = path.split('.defaultValue.');\n\n return rest.join('.');\n }\n function getPathsThatMatter(paths: Array<string>) {\n return paths.map(getPathThatMatter);\n }\n\n export function joinAtPath<\n obj extends Record<string, unknown>,\n path extends DeepKeys<obj>\n >(paths: Array<path>, obj: obj, value: pickBy<obj, path>) {\n if (paths.length === 1) {\n const [path] = paths;\n const missingData = pickBy(obj, ...paths);\n const setPath = getPathThatMatter(path);\n\n // if (last) {\n // const data = setBy(\n // value as Record<string, unknown>,\n // last,\n // missingData\n // ) as pickBy<obj, path>;\n\n // return data;\n // }\n\n const data = setBy(\n value as Record<string, unknown>,\n setPath,\n missingData\n ) as pickBy<obj, path>;\n\n return data;\n }\n\n if (paths.length > 1) {\n let resolvedValue = {} as Record<string, unknown>;\n\n for (const path of paths) {\n const pathThatMatters = getPathThatMatter(path);\n const missing = joinAtPath([path], obj, value);\n const valueAtPathThatMatters = getBy(obj, path);\n\n // This check is here to ensure `resolvedValue` will only have\n // nested properties where they belong.\n if (\n Object.keys(resolvedValue).length > 0 &&\n valueAtPathThatMatters !== 'undefined'\n ) {\n const dataAtPath = pickBy(obj, path);\n const [key] = pathThatMatters.split('.');\n\n if (typeof dataAtPath === 'object') {\n if (missing) {\n resolvedValue = {\n ...resolvedValue,\n [key]: {\n ...(resolvedValue[key] as Record<string, unknown>),\n ...missing,\n },\n };\n }\n }\n\n continue;\n }\n\n if (missing) {\n resolvedValue = {\n ...resolvedValue,\n ...missing,\n };\n }\n }\n\n return resolvedValue as pickBy<obj, path>;\n }\n }\n\n export function updateAt<\n obj extends Record<string, unknown>,\n path extends DeepKeys<obj>\n >(options: updateAtOptions<obj, path>) {\n const { obj, partial, paths, value } = options;\n const norm = normalizePaths(...paths);\n if (norm.length === 0) return obj;\n\n let result = obj;\n let resolvedValue = value;\n\n if (partial) {\n const missingPaths = findMissingPaths(obj, paths, value);\n\n const missingData = joinAtPath(\n missingPaths as Array<path>,\n obj,\n resolvedValue\n );\n\n resolvedValue = {\n ...(resolvedValue as Record<string, unknown>),\n ...(missingData as Record<string, unknown>),\n } as pickBy<obj, path>;\n }\n\n if (norm.length === 1) {\n // single path: value is relative at that path\n const path = norm[0] as DeepKeys<obj>;\n\n result = setAtImmutable(result, path, resolvedValue as never);\n\n return result;\n }\n\n // multiple paths:\n // value is the root-shaped object that contains all those paths\n for (const path of norm) {\n const sub = getBy(value, path);\n\n result = setAtImmutable(result, path as DeepKeys<obj>, sub);\n }\n\n return result;\n }\n}\n"],"mappings":"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"}
|
package/dist/utils/path.d.cts
CHANGED
|
@@ -123,7 +123,15 @@ declare namespace path {
|
|
|
123
123
|
* Convenience: log to console.error.
|
|
124
124
|
*/
|
|
125
125
|
export function printMismatches(result: CompareResult): void;
|
|
126
|
-
export function
|
|
126
|
+
export function findMissingPaths<obj extends Record<string, unknown>, path$1 extends DeepKeys<obj>>(obj: obj, paths: Array<path$1>, actual: pickBy<obj, path$1>): Array<DeepKeys<obj>>;
|
|
127
|
+
export type updateAtOptions<T extends Record<string, unknown>, path$1 extends DeepKeys<T>> = {
|
|
128
|
+
obj: T;
|
|
129
|
+
paths: Array<path$1>;
|
|
130
|
+
value: pickBy<T, path$1>;
|
|
131
|
+
partial?: boolean;
|
|
132
|
+
};
|
|
133
|
+
export function joinAtPath<obj extends Record<string, unknown>, path$1 extends DeepKeys<obj>>(paths: Array<path$1>, obj: obj, value: pickBy<obj, path$1>): pickBy<obj, path$1> | undefined;
|
|
134
|
+
export function updateAt<obj extends Record<string, unknown>, path$1 extends DeepKeys<obj>>(options: updateAtOptions<obj, path$1>): obj;
|
|
127
135
|
export {};
|
|
128
136
|
}
|
|
129
137
|
//#endregion
|