@jfdevelops/multi-step-form-core 1.0.0-alpha.22 → 1.0.0-alpha.24

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.
Files changed (149) hide show
  1. package/dist/_internals.cjs +0 -4
  2. package/dist/_internals.d.cts +2 -3
  3. package/dist/_internals.d.mts +2 -3
  4. package/dist/_internals.mjs +1 -2
  5. package/dist/index.cjs +17 -17
  6. package/dist/index.d.cts +12 -11
  7. package/dist/index.d.mts +12 -11
  8. package/dist/index.mjs +8 -10
  9. package/dist/internals/step-schema.cjs +120 -71
  10. package/dist/internals/step-schema.cjs.map +1 -1
  11. package/dist/internals/step-schema.d.cts +47 -29
  12. package/dist/internals/step-schema.d.cts.map +1 -1
  13. package/dist/internals/step-schema.d.mts +47 -29
  14. package/dist/internals/step-schema.d.mts.map +1 -1
  15. package/dist/internals/step-schema.mjs +120 -71
  16. package/dist/internals/step-schema.mjs.map +1 -1
  17. package/dist/schema.cjs +14 -10
  18. package/dist/schema.cjs.map +1 -1
  19. package/dist/schema.d.cts +11 -13
  20. package/dist/schema.d.cts.map +1 -1
  21. package/dist/schema.d.mts +11 -13
  22. package/dist/schema.d.mts.map +1 -1
  23. package/dist/schema.mjs +14 -10
  24. package/dist/schema.mjs.map +1 -1
  25. package/dist/steps/fields.cjs +80 -0
  26. package/dist/steps/fields.cjs.map +1 -1
  27. package/dist/steps/fields.d.cts +117 -9
  28. package/dist/steps/fields.d.cts.map +1 -1
  29. package/dist/steps/fields.d.mts +117 -9
  30. package/dist/steps/fields.d.mts.map +1 -1
  31. package/dist/steps/fields.mjs +80 -0
  32. package/dist/steps/fields.mjs.map +1 -1
  33. package/dist/steps/fn-utils/helper-fn/index.cjs +81 -0
  34. package/dist/steps/fn-utils/helper-fn/index.cjs.map +1 -0
  35. package/dist/steps/fn-utils/helper-fn/index.d.cts +146 -0
  36. package/dist/steps/fn-utils/helper-fn/index.d.cts.map +1 -0
  37. package/dist/steps/fn-utils/helper-fn/index.d.mts +146 -0
  38. package/dist/steps/fn-utils/helper-fn/index.d.mts.map +1 -0
  39. package/dist/steps/fn-utils/helper-fn/index.mjs +75 -0
  40. package/dist/steps/fn-utils/helper-fn/index.mjs.map +1 -0
  41. package/dist/steps/fn-utils/helper-fn/utils.d.cts +81 -0
  42. package/dist/steps/fn-utils/helper-fn/utils.d.cts.map +1 -0
  43. package/dist/steps/fn-utils/helper-fn/utils.d.mts +81 -0
  44. package/dist/steps/fn-utils/helper-fn/utils.d.mts.map +1 -0
  45. package/dist/steps/fn-utils/index.cjs +1 -0
  46. package/dist/steps/fn-utils/index.mjs +3 -0
  47. package/dist/steps/fn-utils/reset-fn.d.cts +30 -0
  48. package/dist/steps/fn-utils/reset-fn.d.cts.map +1 -0
  49. package/dist/steps/fn-utils/reset-fn.d.mts +30 -0
  50. package/dist/steps/fn-utils/reset-fn.d.mts.map +1 -0
  51. package/dist/steps/fn-utils/update-fn.d.cts +121 -0
  52. package/dist/steps/fn-utils/update-fn.d.cts.map +1 -0
  53. package/dist/steps/fn-utils/update-fn.d.mts +121 -0
  54. package/dist/steps/fn-utils/update-fn.d.mts.map +1 -0
  55. package/dist/steps/index.cjs +4 -2
  56. package/dist/steps/index.mjs +5 -3
  57. package/dist/steps/schema.cjs +61 -84
  58. package/dist/steps/schema.cjs.map +1 -1
  59. package/dist/steps/schema.d.cts +66 -67
  60. package/dist/steps/schema.d.cts.map +1 -1
  61. package/dist/steps/schema.d.mts +66 -67
  62. package/dist/steps/schema.d.mts.map +1 -1
  63. package/dist/steps/schema.mjs +62 -86
  64. package/dist/steps/schema.mjs.map +1 -1
  65. package/dist/steps/steps.cjs +83 -0
  66. package/dist/steps/steps.cjs.map +1 -0
  67. package/dist/steps/steps.d.cts +81 -0
  68. package/dist/steps/steps.d.cts.map +1 -0
  69. package/dist/steps/steps.d.mts +81 -0
  70. package/dist/steps/steps.d.mts.map +1 -0
  71. package/dist/steps/steps.mjs +76 -0
  72. package/dist/steps/steps.mjs.map +1 -0
  73. package/dist/steps/utils.cjs +40 -30
  74. package/dist/steps/utils.cjs.map +1 -1
  75. package/dist/steps/utils.d.cts +8 -5
  76. package/dist/steps/utils.d.cts.map +1 -1
  77. package/dist/steps/utils.d.mts +8 -5
  78. package/dist/steps/utils.d.mts.map +1 -1
  79. package/dist/steps/utils.mjs +40 -31
  80. package/dist/steps/utils.mjs.map +1 -1
  81. package/dist/storage.cjs +1 -1
  82. package/dist/storage.cjs.map +1 -1
  83. package/dist/storage.d.cts +9 -7
  84. package/dist/storage.d.cts.map +1 -1
  85. package/dist/storage.d.mts +9 -7
  86. package/dist/storage.d.mts.map +1 -1
  87. package/dist/storage.mjs +1 -1
  88. package/dist/storage.mjs.map +1 -1
  89. package/dist/utils/casing.cjs +1 -1
  90. package/dist/utils/casing.cjs.map +1 -1
  91. package/dist/utils/casing.d.cts +27 -11
  92. package/dist/utils/casing.d.cts.map +1 -1
  93. package/dist/utils/casing.d.mts +27 -11
  94. package/dist/utils/casing.d.mts.map +1 -1
  95. package/dist/utils/casing.mjs +1 -1
  96. package/dist/utils/casing.mjs.map +1 -1
  97. package/dist/utils/helpers.cjs +8 -0
  98. package/dist/utils/helpers.cjs.map +1 -1
  99. package/dist/utils/helpers.mjs +7 -1
  100. package/dist/utils/helpers.mjs.map +1 -1
  101. package/dist/utils/index.cjs +3 -0
  102. package/dist/utils/index.mjs +5 -0
  103. package/dist/utils/invariant.cjs +28 -8
  104. package/dist/utils/invariant.cjs.map +1 -1
  105. package/dist/utils/invariant.d.cts +12 -2
  106. package/dist/utils/invariant.d.cts.map +1 -1
  107. package/dist/utils/invariant.d.mts +12 -2
  108. package/dist/utils/invariant.d.mts.map +1 -1
  109. package/dist/utils/invariant.mjs +28 -9
  110. package/dist/utils/invariant.mjs.map +1 -1
  111. package/dist/utils/types.d.cts +15 -3
  112. package/dist/utils/types.d.cts.map +1 -1
  113. package/dist/utils/types.d.mts +15 -3
  114. package/dist/utils/types.d.mts.map +1 -1
  115. package/dist/utils/validator.d.cts.map +1 -1
  116. package/dist/utils/validator.d.mts.map +1 -1
  117. package/package.json +1 -1
  118. package/dist/internals/utils.cjs +0 -94
  119. package/dist/internals/utils.cjs.map +0 -1
  120. package/dist/internals/utils.d.cts +0 -33
  121. package/dist/internals/utils.d.cts.map +0 -1
  122. package/dist/internals/utils.d.mts +0 -33
  123. package/dist/internals/utils.d.mts.map +0 -1
  124. package/dist/internals/utils.mjs +0 -91
  125. package/dist/internals/utils.mjs.map +0 -1
  126. package/dist/observable.cjs +0 -44
  127. package/dist/observable.cjs.map +0 -1
  128. package/dist/observable.d.cts +0 -26
  129. package/dist/observable.d.cts.map +0 -1
  130. package/dist/observable.d.mts +0 -26
  131. package/dist/observable.d.mts.map +0 -1
  132. package/dist/observable.mjs +0 -44
  133. package/dist/observable.mjs.map +0 -1
  134. package/dist/steps/types.cjs +0 -33
  135. package/dist/steps/types.cjs.map +0 -1
  136. package/dist/steps/types.d.cts +0 -354
  137. package/dist/steps/types.d.cts.map +0 -1
  138. package/dist/steps/types.d.mts +0 -354
  139. package/dist/steps/types.d.mts.map +0 -1
  140. package/dist/steps/types.mjs +0 -27
  141. package/dist/steps/types.mjs.map +0 -1
  142. package/dist/utils/field-types.cjs +0 -23
  143. package/dist/utils/field-types.cjs.map +0 -1
  144. package/dist/utils/field-types.d.cts +0 -39
  145. package/dist/utils/field-types.d.cts.map +0 -1
  146. package/dist/utils/field-types.d.mts +0 -39
  147. package/dist/utils/field-types.d.mts.map +0 -1
  148. package/dist/utils/field-types.mjs +0 -20
  149. package/dist/utils/field-types.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/steps/fn-utils/helper-fn/index.ts"],"sourcesContent":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ //#region src/steps/fn-utils/helper-fn/index.ts
2
+ let HelperFnChosenSteps;
3
+ (function(_HelperFnChosenSteps) {
4
+ function createCatchAllMessage(availableSteps, type = "chosen") {
5
+ return `The ${type} steps must either be set to on of the following: "all", an array of steps (${new Intl.ListFormat("en", {
6
+ style: "long",
7
+ type: "disjunction"
8
+ }).format(availableSteps.map((step) => `"${step}"`))}), or an object containing the steps to chose ({ ${availableSteps.map((step) => `${step}: true`).join(", ")} })`;
9
+ }
10
+ _HelperFnChosenSteps.createCatchAllMessage = createCatchAllMessage;
11
+ function isAll(value) {
12
+ return Boolean(value && typeof value === "string" && value === "all");
13
+ }
14
+ _HelperFnChosenSteps.isAll = isAll;
15
+ function isTuple(value, validValues) {
16
+ if (!Array.isArray(value)) return false;
17
+ if (validValues) return value.every((key) => validValues.includes(key));
18
+ return true;
19
+ }
20
+ _HelperFnChosenSteps.isTuple = isTuple;
21
+ function isObject(value, validKeys) {
22
+ if (!value) return false;
23
+ const keys = Object.keys(value);
24
+ if (keys.length === 0) return false;
25
+ if (validKeys && !keys.every((key) => validKeys.includes(key))) return false;
26
+ return Object.entries(value).every(([_, v]) => v === true);
27
+ }
28
+ _HelperFnChosenSteps.isObject = isObject;
29
+ function isValid(value, validValues) {
30
+ if (isAll(value)) return true;
31
+ if (isTuple(value, validValues)) return true;
32
+ if (isObject(value, validValues)) return true;
33
+ return false;
34
+ }
35
+ _HelperFnChosenSteps.isValid = isValid;
36
+ function resolveType(chosenSteps, validValues) {
37
+ if (isAll(chosenSteps)) return "all";
38
+ if (isTuple(chosenSteps, validValues)) return "tuple";
39
+ if (isObject(chosenSteps, validValues)) return "object";
40
+ throw new Error("Unable to resolve the type of the chosen steps. Valid values are: \"all\", an array of steps, or an object containing the steps to chose.");
41
+ }
42
+ _HelperFnChosenSteps.resolveType = resolveType;
43
+ function match(options) {
44
+ const { meta, validValues, default: defaultHandler, ...handlers } = options;
45
+ return (chosenSteps) => {
46
+ let context = { chosenSteps };
47
+ let defaultContext = context;
48
+ if (meta) context = {
49
+ ...context,
50
+ meta
51
+ };
52
+ if (validValues) context = {
53
+ ...context,
54
+ validValues
55
+ };
56
+ const values = validValues?.(context);
57
+ if (values) defaultContext = {
58
+ ...defaultContext,
59
+ errorMessage: createCatchAllMessage(values)
60
+ };
61
+ const handler = handlers[resolveType(chosenSteps, values)];
62
+ return handler?.(context) ?? defaultHandler(defaultContext);
63
+ };
64
+ }
65
+ _HelperFnChosenSteps.match = match;
66
+ function createTupleNotation(...values) {
67
+ const [value, ...rest] = values;
68
+ return [value, ...rest];
69
+ }
70
+ _HelperFnChosenSteps.createTupleNotation = createTupleNotation;
71
+ })(HelperFnChosenSteps || (HelperFnChosenSteps = {}));
72
+
73
+ //#endregion
74
+ export { HelperFnChosenSteps };
75
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["context: Record<string, unknown>","defaultContext: Record<string, unknown>"],"sources":["../../../../src/steps/fn-utils/helper-fn/index.ts"],"sourcesContent":["import type { steps } from '@/steps/steps';\nimport type {\n Expand,\n IsString,\n RequireAtLeastOne,\n stripFunctions,\n} from '@/utils';\n\nexport * from './utils';\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\n export type build<\n value extends string,\n stringOptions = defaultStringOption\n > = stringOptions | tupleNotation<value> | objectNotation<value>;\n export type main<\n value extends steps.instantiateSteps,\n stepNumbers extends steps.StepNumbers<value>\n > = build<stepNumbers>;\n export type resolveAll<\n value extends steps.instantiateSteps,\n chosenSteps extends main<value, steps.StepNumbers<value>>\n > = chosenSteps extends 'all' ? steps.StepNumbers<value> : never;\n export type resolveTuple<\n value extends steps.instantiateSteps,\n chosenSteps extends main<value, steps.StepNumbers<value>>\n > = chosenSteps extends tupleNotation<steps.StepNumbers<value>>\n ? chosenSteps[number] extends steps.StepNumbers<value>\n ? chosenSteps[number]\n : never\n : never;\n export type resolveObject<\n value extends steps.instantiateSteps,\n chosenSteps extends main<value, steps.StepNumbers<value>>\n > = chosenSteps extends objectNotation<steps.StepNumbers<value>>\n ? steps.StepNumbers<value> extends keyof chosenSteps\n ? steps.StepNumbers<value>\n : never\n : never;\n export type resolve<\n value extends steps.instantiateSteps,\n chosenSteps extends main<value, steps.StepNumbers<value>>\n > =\n | resolveAll<value, chosenSteps>\n | resolveTuple<value, chosenSteps>\n | resolveObject<value, chosenSteps>;\n export type resolveType<\n value extends steps.instantiateSteps,\n chosenSteps extends main<value, steps.StepNumbers<value>>\n > = chosenSteps extends 'all'\n ? 'all'\n : chosenSteps extends tupleNotation<steps.StepNumbers<value>>\n ? 'tuple'\n : chosenSteps extends objectNotation<steps.StepNumbers<value>>\n ? 'object'\n : never;\n\n export type currentStep<\n value extends steps.instantiateSteps,\n chosenSteps extends main<value, steps.StepNumbers<value>>\n > = value[resolve<value, chosenSteps>];\n\n export function createCatchAllMessage(\n availableSteps: string[],\n type: 'chosen' | 'enabledFor' = 'chosen'\n ) {\n const formatter = new Intl.ListFormat('en', {\n style: 'long',\n type: 'disjunction',\n });\n\n return `The ${type} steps must either be set to on of the following: \"all\", an array of steps (${formatter.format(\n availableSteps.map((step) => `\"${step}\"`)\n )}), or an object containing the steps to chose ({ ${availableSteps\n .map((step) => `${step}: true`)\n .join(', ')} })`;\n }\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>(\n value: unknown\n ): value is tupleNotation<steps.StepNumbers<t>>;\n export function isTuple<def, steps extends steps.instantiateSteps<def>>(\n value: unknown,\n validValues?: Array<unknown>\n ): value is tupleNotation<steps.StepNumbers<steps>>;\n export function isTuple(value: unknown, validValues?: Array<unknown>) {\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<def, steps extends steps.instantiateSteps<def>>(\n value: unknown,\n validKeys?: Array<unknown>\n ): value is objectNotation<steps.StepNumbers<steps>> {\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 export function isValid<\n value extends steps.instantiateSteps,\n chosenSteps extends main<value, steps.StepNumbers<value>>\n >(value: unknown, validValues?: Array<string>): value is chosenSteps {\n if (isAll(value)) {\n return true;\n }\n\n if (isTuple(value, validValues)) {\n return true;\n }\n\n if (isObject(value, validValues)) {\n return true;\n }\n\n return false;\n }\n\n export function resolveType<\n value extends steps.instantiateSteps,\n chosenSteps extends main<value, steps.StepNumbers<value>>\n >(chosenSteps: chosenSteps, validValues?: Array<string>) {\n if (isAll(chosenSteps)) {\n return 'all';\n }\n\n if (isTuple(chosenSteps, validValues)) {\n return 'tuple';\n }\n\n if (isObject(chosenSteps, validValues)) {\n return 'object';\n }\n\n throw new Error(\n 'Unable to resolve the type of the chosen steps. Valid values are: \"all\", an array of steps, or an object containing the steps to chose.'\n );\n }\n\n export interface MatchContextBase {\n /**\n * The chosen steps.\n */\n chosenSteps: main<\n steps.instantiateSteps,\n steps.StepNumbers<steps.instantiateSteps>\n >;\n }\n export interface AllMatchContext extends MatchContextBase {\n chosenSteps: 'all';\n }\n export interface TupleMatchContext extends MatchContextBase {\n chosenSteps: tupleNotation<steps.StepNumbers<steps.instantiateSteps>>;\n }\n export interface ObjectMatchContext extends MatchContextBase {\n chosenSteps: objectNotation<steps.StepNumbers<steps.instantiateSteps>>;\n }\n export type MatchContextWithMeta<meta extends Record<string, unknown>> = [\n meta\n ] extends [never]\n ? {}\n : {\n /**\n * Meta data that's available in the match function.\n */\n meta: meta;\n };\n export type MatchContextWithValidValues<validValues extends Array<string>> = [\n validValues\n ] extends [never]\n ? {}\n : validValues extends Array<infer value>\n ? value extends string\n ? {\n /**\n * The values that the tuple or object keys can be.\n */\n validValues: validValues;\n }\n : {}\n : {};\n export type MatchContext<\n meta extends Record<string, unknown>,\n validValues extends Array<string>,\n additionalCtx = {}\n > = Expand<\n MatchContextWithMeta<meta> &\n MatchContextWithValidValues<validValues> &\n additionalCtx\n >;\n export type MatchHandlerWithoutValidValues<\n meta extends Record<string, unknown>,\n ret = void\n > = [meta] extends [never]\n ? () => ret\n : (context: MatchContext<meta, never>) => ret;\n export type DefaultMatchContext<\n meta extends Record<string, unknown>,\n validValues extends Array<string>\n > = MatchContext<\n meta,\n validValues,\n MatchContextBase &\n ([validValues] extends [never]\n ? {}\n : {\n /**\n * A detailed error message that includes all ways to match the chosen steps.\n *\n * This is derived from {@linkcode createCatchAllMessage}.\n */\n errorMessage: string;\n })\n >;\n export type DefaultMatchHandler<\n meta extends Record<string, unknown>,\n validValues extends Array<string>,\n ret = void\n > = (context: DefaultMatchContext<meta, validValues>) => ret;\n export type MatchHandler<\n meta extends Record<string, unknown>,\n validValues extends Array<string>,\n ret = void\n > = (context: MatchContext<meta, validValues>) => ret;\n type AllMatchHandler<\n meta extends Record<string, unknown>,\n validValues extends Array<string>,\n ret = void\n > = (context: MatchContext<meta, validValues, AllMatchContext>) => ret;\n type TupleMatchHandler<\n meta extends Record<string, unknown>,\n validValues extends Array<string>,\n ret = void\n > = (context: MatchContext<meta, validValues, TupleMatchContext>) => ret;\n type ObjectMatchHandler<\n meta extends Record<string, unknown>,\n validValues extends Array<string>,\n ret = void\n > = (context: MatchContext<meta, validValues, ObjectMatchContext>) => ret;\n export type MatchOptions<\n meta extends Record<string, unknown> = never,\n validValues extends Array<string> = never,\n ret = void,\n defaultMatch = void\n > = {\n /**\n * Optionally provide data that will be available in the match functions.\n */\n meta?: meta;\n /**\n * Optionally provide valid values that will be used to validate the chosen steps.\n *\n * Note: if provided, the values will be used to match against `tuple` and `object` handlers.\n */\n validValues?: MatchHandlerWithoutValidValues<meta, validValues>;\n /**\n * A function to match against when the chosen steps are set to `'all'`.\n * @param meta The meta data to match against.\n * @returns\n */\n all?: AllMatchHandler<meta, validValues, ret>;\n /**\n * A function to match against when the chosen steps are set to a tuple.\n * @param meta The meta data to match against.\n * @returns\n */\n tuple?: TupleMatchHandler<meta, validValues, ret>;\n /**\n * A function to match against when the chosen steps are set to an object.\n * @param meta The meta data to match against.\n * @returns\n */\n object?: ObjectMatchHandler<meta, validValues, ret>;\n /**\n * The default handler to match against when no other handler matches.\n */\n default: DefaultMatchHandler<meta, validValues, defaultMatch>;\n };\n export type inferMatch<reg, defaultMatch> = [defaultMatch] extends [never]\n ? reg\n : reg | defaultMatch;\n\n export function match<\n meta extends Record<string, unknown> = never,\n validValues extends Array<string> = never,\n ret = void,\n defaultMatch = void\n >(options: MatchOptions<meta, validValues, ret, defaultMatch>) {\n const { meta, validValues, default: defaultHandler, ...handlers } = options;\n\n return <\n value extends steps.instantiateSteps,\n chosenSteps extends main<value, steps.StepNumbers<value>>\n >(\n chosenSteps: chosenSteps\n ) => {\n let context: Record<string, unknown> = { chosenSteps };\n let defaultContext: Record<string, unknown> = context;\n\n if (meta) {\n context = { ...context, meta };\n }\n\n if (validValues) {\n context = { ...context, validValues };\n }\n\n const values = validValues?.(context as never);\n\n if (values) {\n defaultContext = {\n ...defaultContext,\n errorMessage: createCatchAllMessage(values),\n };\n }\n\n const type = resolveType<value, chosenSteps>(chosenSteps, values);\n const handler = handlers[type];\n\n return (\n handler?.(context as never) ??\n (defaultHandler(defaultContext as never) as inferMatch<\n ret,\n defaultMatch\n >)\n );\n };\n }\n\n export function createTupleNotation<T extends string>(...values: T[]) {\n const [value, ...rest] = values;\n\n return [value, ...rest] as tupleNotation<T>;\n }\n}\n\nexport namespace HelperFn {\n export type buildAllCtx<\n value extends steps.instantiateSteps,\n chosenSteps extends HelperFnChosenSteps.main<\n value,\n steps.StepNumbers<value>\n >,\n omitSteps extends HelperFnChosenSteps.resolve<value, chosenSteps>\n > = Expand<\n Omit<\n {\n [key in steps.StepNumbers<value>]: stripFunctions<\n steps.getCurrent<value, key>\n >;\n },\n IsString<omitSteps>\n >\n >;\n export type buildTupleCtx<\n value extends steps.instantiateSteps,\n chosenSteps extends HelperFnChosenSteps.main<\n value,\n steps.StepNumbers<value>\n >,\n omitSteps extends HelperFnChosenSteps.resolve<value, chosenSteps>\n > = chosenSteps extends HelperFnChosenSteps.tupleNotation<\n steps.StepNumbers<value>\n >\n ? Expand<\n Omit<\n {\n -readonly [key in chosenSteps[number]]: key extends steps.StepNumbers<value>\n ? stripFunctions<steps.getCurrent<value, key>>\n : never;\n },\n IsString<omitSteps>\n >\n >\n : never;\n export type buildObjectCtx<\n value extends steps.instantiateSteps,\n chosenSteps extends HelperFnChosenSteps.main<\n value,\n steps.StepNumbers<value>\n >,\n omitSteps extends HelperFnChosenSteps.resolve<value, chosenSteps>\n > = chosenSteps extends HelperFnChosenSteps.objectNotation<\n steps.StepNumbers<value>\n >\n ? Expand<\n Omit<\n {\n [key in keyof chosenSteps]: key extends steps.StepNumbers<value>\n ? stripFunctions<steps.getCurrent<value, key>>\n : never;\n },\n IsString<omitSteps>\n >\n >\n : never;\n type CtxMap<\n value extends steps.instantiateSteps,\n chosenSteps extends HelperFnChosenSteps.main<\n value,\n steps.StepNumbers<value>\n >,\n omitSteps extends HelperFnChosenSteps.resolve<value, chosenSteps>\n > = {\n all: buildAllCtx<value, chosenSteps, omitSteps>;\n tuple: buildTupleCtx<value, chosenSteps, omitSteps>;\n // tuple: buildTupleCtx<value, chosenSteps, omitSteps>;\n object: buildObjectCtx<value, chosenSteps, omitSteps>;\n };\n export type buildCtx<\n value extends steps.instantiateSteps,\n chosenSteps extends HelperFnChosenSteps.main<\n value,\n steps.StepNumbers<value>\n >,\n omitSteps extends HelperFnChosenSteps.resolve<value, chosenSteps> = never\n > = CtxMap<value, chosenSteps, omitSteps>[HelperFnChosenSteps.resolveType<\n value,\n chosenSteps\n >];\n export interface BaseOptions<\n value extends steps.instantiateSteps,\n chosenSteps extends HelperFnChosenSteps.main<\n value,\n steps.StepNumbers<value>\n >\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: chosenSteps;\n }\n export interface BaseInput<\n value extends steps.instantiateSteps,\n chosenSteps extends HelperFnChosenSteps.main<\n value,\n steps.StepNumbers<value>\n >,\n omitSteps extends HelperFnChosenSteps.resolve<value, chosenSteps> = never,\n TAdditionalCtx extends Record<string, unknown> = {}\n > {\n /**\n * The multi-step form step context.\n */\n ctx: Expand<buildCtx<value, chosenSteps, omitSteps> & TAdditionalCtx>;\n }\n export interface CtxDataSelector<\n value extends steps.instantiateSteps,\n chosenSteps extends HelperFnChosenSteps.main<\n value,\n steps.StepNumbers<value>\n >,\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: BaseInput<\n value,\n 'all',\n HelperFnChosenSteps.resolve<value, chosenSteps>\n >\n ) => TAdditionalCtx;\n }\n}\nexport type createStepSpecificHelperFn<\n value extends steps.instantiateSteps,\n chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>\n> = HelperFnChosenSteps.resolve<value, chosenSteps>;\n"],"mappings":";;;CAoES,SAAS,sBACd,gBACA,OAAgC,UAChC;AAMA,SAAO,OAAO,KAAK,8EALD,IAAI,KAAK,WAAW,MAAM;GAC1C,OAAO;GACP,MAAM;GACP,CAAC,CAEyG,OACzG,eAAe,KAAK,SAAS,IAAI,KAAK,GAAG,CAC1C,CAAC,mDAAmD,eAClD,KAAK,SAAS,GAAG,KAAK,QAAQ,CAC9B,KAAK,KAAK,CAAC;;;CAGT,SAAS,MAAM,OAA8C;AAClE,SAAO,QAAQ,SAAS,OAAO,UAAU,YAAY,UAAU,MAAM;;;CAUhE,SAAS,QAAQ,OAAgB,aAA8B;AACpE,MAAI,CAAC,MAAM,QAAQ,MAAM,CACvB,QAAO;AAGT,MAAI,YACF,QAAO,MAAM,OAAO,QAAQ,YAAY,SAAS,IAAI,CAAC;AAGxD,SAAO;;;CAGF,SAAS,SACd,OACA,WACmD;AACnD,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;;;CAGrD,SAAS,QAGd,OAAgB,aAAmD;AACnE,MAAI,MAAM,MAAM,CACd,QAAO;AAGT,MAAI,QAAQ,OAAO,YAAY,CAC7B,QAAO;AAGT,MAAI,SAAS,OAAO,YAAY,CAC9B,QAAO;AAGT,SAAO;;;CAGF,SAAS,YAGd,aAA0B,aAA6B;AACvD,MAAI,MAAM,YAAY,CACpB,QAAO;AAGT,MAAI,QAAQ,aAAa,YAAY,CACnC,QAAO;AAGT,MAAI,SAAS,aAAa,YAAY,CACpC,QAAO;AAGT,QAAM,IAAI,MACR,4IACD;;;CAkJI,SAAS,MAKd,SAA6D;EAC7D,MAAM,EAAE,MAAM,aAAa,SAAS,gBAAgB,GAAG,aAAa;AAEpE,UAIE,gBACG;GACH,IAAIA,UAAmC,EAAE,aAAa;GACtD,IAAIC,iBAA0C;AAE9C,OAAI,KACF,WAAU;IAAE,GAAG;IAAS;IAAM;AAGhC,OAAI,YACF,WAAU;IAAE,GAAG;IAAS;IAAa;GAGvC,MAAM,SAAS,cAAc,QAAiB;AAE9C,OAAI,OACF,kBAAiB;IACf,GAAG;IACH,cAAc,sBAAsB,OAAO;IAC5C;GAIH,MAAM,UAAU,SADH,YAAgC,aAAa,OAAO;AAGjE,UACE,UAAU,QAAiB,IAC1B,eAAe,eAAwB;;;;CAQvC,SAAS,oBAAsC,GAAG,QAAa;EACpE,MAAM,CAAC,OAAO,GAAG,QAAQ;AAEzB,SAAO,CAAC,OAAO,GAAG,KAAK"}
@@ -0,0 +1,81 @@
1
+ import { Constrain, Expand } from "../../../utils/types.cjs";
2
+ import { AnyValidator, DefaultValidator, ResolveValidatorOutput } from "../../../utils/validator.cjs";
3
+ import { UpdateFn } from "../update-fn.cjs";
4
+ import { ResetFn } from "../reset-fn.cjs";
5
+ import { steps } from "../../steps.cjs";
6
+ import { HelperFn, HelperFnChosenSteps } from "./index.cjs";
7
+
8
+ //#region src/steps/fn-utils/helper-fn/utils.d.ts
9
+ type RequiredInputFn<input, response> = (input: input) => response;
10
+ type OptionalInputFn<input, response> = (input?: input) => response;
11
+ type AllKeysRequired<T extends object> = keyof T extends never ? false : { [K in keyof T]-?: {} extends Pick<T, K> ? false : true }[keyof T] extends false ? false : true;
12
+ declare namespace HelperFnInput {
13
+ interface BaseInput<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>, omitSteps extends HelperFnChosenSteps.resolve<value, chosenSteps> = never, TAdditionalCtx extends Record<string, unknown> = {}> extends HelperFn.BaseInput<value, chosenSteps, omitSteps, TAdditionalCtx> {
14
+ /**
15
+ * A function to update parts of the multi-step form schema.
16
+ */
17
+ update: UpdateFn.HelperFn<value, chosenSteps>;
18
+ /**
19
+ * A useful wrapper for `update` to reset a specific field's value to its
20
+ * original config value.
21
+ */
22
+ reset: ResetFn.HelperFn<value, chosenSteps>;
23
+ }
24
+ interface InputWithValidator<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>, validator, additionalCtx extends Record<string, unknown> = {}> extends BaseInput<value, chosenSteps, never, additionalCtx> {
25
+ /**
26
+ * The validated data from the validator.
27
+ */
28
+ data: ResolveValidatorOutput<validator>;
29
+ }
30
+ interface InputWithoutValidator<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>, additionalCtx extends Record<string, unknown> = {}> extends BaseInput<value, chosenSteps, never, additionalCtx> {}
31
+ type WithValidator<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>, validator, additionalCtx extends Record<string, unknown>, response> = RequiredInputFn<InputWithValidator<value, chosenSteps, validator, additionalCtx>, response>;
32
+ type WithoutValidator<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>, additionalCtx extends Record<string, unknown>, response> = RequiredInputFn<InputWithoutValidator<value, chosenSteps, additionalCtx>, response>;
33
+ }
34
+ declare namespace HelperFnOptions {
35
+ interface WithCustomCtx<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>, additionalCtx extends Record<string, unknown>> extends HelperFn.BaseOptions<value, chosenSteps>, HelperFn.CtxDataSelector<value, chosenSteps, additionalCtx> {}
36
+ interface WithValidator<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>, validator, additionalCtx extends Record<string, unknown>> extends WithCustomCtx<value, chosenSteps, additionalCtx> {
37
+ /**
38
+ * A validator used to validate the params.
39
+ */
40
+ validator: Constrain<validator, AnyValidator, DefaultValidator>;
41
+ }
42
+ interface WithoutValidator<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>, additionalCtx extends Record<string, unknown>> extends WithCustomCtx<value, chosenSteps, additionalCtx> {}
43
+ }
44
+ declare namespace HelperFnOutput {
45
+ type Input<t, data = Expand<ResolveValidatorOutput<t>>> = [t] extends [object] ? AllKeysRequired<t> extends true ? {
46
+ data: data;
47
+ } : {
48
+ data?: data;
49
+ } : {
50
+ data: data;
51
+ };
52
+ type WithValidator<validator, response, data = Expand<ResolveValidatorOutput<validator>>> = [data] extends [object] ? AllKeysRequired<data> extends true ? RequiredInputFn<Input<data>, response> : OptionalInputFn<Input<data>, response> : RequiredInputFn<Input<data>, response>;
53
+ type WithoutInput<response> = () => response;
54
+ }
55
+ type StepSpecificHelperFn<value extends steps.instantiateSteps, targetStep extends steps.StepNumbers<value>> = {
56
+ /**
57
+ * Create a helper function with validated input.
58
+ */
59
+ <validator, additionalCtx extends Record<string, unknown>, response>(options: Omit<HelperFnOptions.WithValidator<value, [targetStep], validator, additionalCtx>, 'stepData'>, fn: HelperFnInput.WithValidator<value, [targetStep], validator, additionalCtx, response>): HelperFnOutput.WithValidator<validator, response>;
60
+ /**
61
+ * Create a helper function without input.
62
+ */
63
+ <additionalCtx extends Record<string, unknown>, response>(fn: HelperFnInput.WithoutValidator<value, [targetStep], additionalCtx, response>): HelperFnOutput.WithoutInput<response>;
64
+ /**
65
+ * Create a helper function without input.
66
+ */
67
+ <response>(fn: HelperFnInput.WithoutValidator<value, [targetStep], {}, response>): HelperFnOutput.WithoutInput<response>;
68
+ };
69
+ type GeneralHelperFn<value extends steps.instantiateSteps, stepNumbers extends steps.StepNumbers<value> = steps.StepNumbers<value>> = {
70
+ /**
71
+ * Create a helper function with validated input.
72
+ */
73
+ <const chosenSteps extends HelperFnChosenSteps.main<value, stepNumbers>, validator, additionalCtx extends Record<string, unknown>, response>(options: HelperFnOptions.WithValidator<value, chosenSteps, validator, additionalCtx>, fn: HelperFnInput.WithValidator<value, chosenSteps, validator, additionalCtx, response>): HelperFnOutput.WithValidator<validator, response>;
74
+ /**
75
+ * Create a helper function without input.
76
+ */
77
+ <const chosenSteps extends HelperFnChosenSteps.main<value, stepNumbers>, additionalCtx extends Record<string, unknown>, response>(options: HelperFnOptions.WithoutValidator<value, chosenSteps, additionalCtx>, fn: HelperFnInput.WithoutValidator<value, chosenSteps, additionalCtx, response>): HelperFnOutput.WithoutInput<response>;
78
+ };
79
+ //#endregion
80
+ export { GeneralHelperFn, HelperFnInput, HelperFnOptions, HelperFnOutput, StepSpecificHelperFn };
81
+ //# sourceMappingURL=utils.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.cts","names":[],"sources":["../../../../src/steps/fn-utils/helper-fn/utils.ts"],"sourcesContent":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import { Constrain, Expand } from "../../../utils/types.mjs";
2
+ import { AnyValidator, DefaultValidator, ResolveValidatorOutput } from "../../../utils/validator.mjs";
3
+ import { UpdateFn } from "../update-fn.mjs";
4
+ import { ResetFn } from "../reset-fn.mjs";
5
+ import { steps } from "../../steps.mjs";
6
+ import { HelperFn, HelperFnChosenSteps } from "./index.mjs";
7
+
8
+ //#region src/steps/fn-utils/helper-fn/utils.d.ts
9
+ type RequiredInputFn<input, response> = (input: input) => response;
10
+ type OptionalInputFn<input, response> = (input?: input) => response;
11
+ type AllKeysRequired<T extends object> = keyof T extends never ? false : { [K in keyof T]-?: {} extends Pick<T, K> ? false : true }[keyof T] extends false ? false : true;
12
+ declare namespace HelperFnInput {
13
+ interface BaseInput<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>, omitSteps extends HelperFnChosenSteps.resolve<value, chosenSteps> = never, TAdditionalCtx extends Record<string, unknown> = {}> extends HelperFn.BaseInput<value, chosenSteps, omitSteps, TAdditionalCtx> {
14
+ /**
15
+ * A function to update parts of the multi-step form schema.
16
+ */
17
+ update: UpdateFn.HelperFn<value, chosenSteps>;
18
+ /**
19
+ * A useful wrapper for `update` to reset a specific field's value to its
20
+ * original config value.
21
+ */
22
+ reset: ResetFn.HelperFn<value, chosenSteps>;
23
+ }
24
+ interface InputWithValidator<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>, validator, additionalCtx extends Record<string, unknown> = {}> extends BaseInput<value, chosenSteps, never, additionalCtx> {
25
+ /**
26
+ * The validated data from the validator.
27
+ */
28
+ data: ResolveValidatorOutput<validator>;
29
+ }
30
+ interface InputWithoutValidator<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>, additionalCtx extends Record<string, unknown> = {}> extends BaseInput<value, chosenSteps, never, additionalCtx> {}
31
+ type WithValidator<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>, validator, additionalCtx extends Record<string, unknown>, response> = RequiredInputFn<InputWithValidator<value, chosenSteps, validator, additionalCtx>, response>;
32
+ type WithoutValidator<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>, additionalCtx extends Record<string, unknown>, response> = RequiredInputFn<InputWithoutValidator<value, chosenSteps, additionalCtx>, response>;
33
+ }
34
+ declare namespace HelperFnOptions {
35
+ interface WithCustomCtx<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>, additionalCtx extends Record<string, unknown>> extends HelperFn.BaseOptions<value, chosenSteps>, HelperFn.CtxDataSelector<value, chosenSteps, additionalCtx> {}
36
+ interface WithValidator<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>, validator, additionalCtx extends Record<string, unknown>> extends WithCustomCtx<value, chosenSteps, additionalCtx> {
37
+ /**
38
+ * A validator used to validate the params.
39
+ */
40
+ validator: Constrain<validator, AnyValidator, DefaultValidator>;
41
+ }
42
+ interface WithoutValidator<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>, additionalCtx extends Record<string, unknown>> extends WithCustomCtx<value, chosenSteps, additionalCtx> {}
43
+ }
44
+ declare namespace HelperFnOutput {
45
+ type Input<t, data = Expand<ResolveValidatorOutput<t>>> = [t] extends [object] ? AllKeysRequired<t> extends true ? {
46
+ data: data;
47
+ } : {
48
+ data?: data;
49
+ } : {
50
+ data: data;
51
+ };
52
+ type WithValidator<validator, response, data = Expand<ResolveValidatorOutput<validator>>> = [data] extends [object] ? AllKeysRequired<data> extends true ? RequiredInputFn<Input<data>, response> : OptionalInputFn<Input<data>, response> : RequiredInputFn<Input<data>, response>;
53
+ type WithoutInput<response> = () => response;
54
+ }
55
+ type StepSpecificHelperFn<value extends steps.instantiateSteps, targetStep extends steps.StepNumbers<value>> = {
56
+ /**
57
+ * Create a helper function with validated input.
58
+ */
59
+ <validator, additionalCtx extends Record<string, unknown>, response>(options: Omit<HelperFnOptions.WithValidator<value, [targetStep], validator, additionalCtx>, 'stepData'>, fn: HelperFnInput.WithValidator<value, [targetStep], validator, additionalCtx, response>): HelperFnOutput.WithValidator<validator, response>;
60
+ /**
61
+ * Create a helper function without input.
62
+ */
63
+ <additionalCtx extends Record<string, unknown>, response>(fn: HelperFnInput.WithoutValidator<value, [targetStep], additionalCtx, response>): HelperFnOutput.WithoutInput<response>;
64
+ /**
65
+ * Create a helper function without input.
66
+ */
67
+ <response>(fn: HelperFnInput.WithoutValidator<value, [targetStep], {}, response>): HelperFnOutput.WithoutInput<response>;
68
+ };
69
+ type GeneralHelperFn<value extends steps.instantiateSteps, stepNumbers extends steps.StepNumbers<value> = steps.StepNumbers<value>> = {
70
+ /**
71
+ * Create a helper function with validated input.
72
+ */
73
+ <const chosenSteps extends HelperFnChosenSteps.main<value, stepNumbers>, validator, additionalCtx extends Record<string, unknown>, response>(options: HelperFnOptions.WithValidator<value, chosenSteps, validator, additionalCtx>, fn: HelperFnInput.WithValidator<value, chosenSteps, validator, additionalCtx, response>): HelperFnOutput.WithValidator<validator, response>;
74
+ /**
75
+ * Create a helper function without input.
76
+ */
77
+ <const chosenSteps extends HelperFnChosenSteps.main<value, stepNumbers>, additionalCtx extends Record<string, unknown>, response>(options: HelperFnOptions.WithoutValidator<value, chosenSteps, additionalCtx>, fn: HelperFnInput.WithoutValidator<value, chosenSteps, additionalCtx, response>): HelperFnOutput.WithoutInput<response>;
78
+ };
79
+ //#endregion
80
+ export { GeneralHelperFn, HelperFnInput, HelperFnOptions, HelperFnOutput, StepSpecificHelperFn };
81
+ //# sourceMappingURL=utils.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.mts","names":[],"sources":["../../../../src/steps/fn-utils/helper-fn/utils.ts"],"sourcesContent":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ const require_index = require('./helper-fn/index.cjs');
@@ -0,0 +1,3 @@
1
+ import { HelperFnChosenSteps } from "./helper-fn/index.mjs";
2
+
3
+ export { };
@@ -0,0 +1,30 @@
1
+ import { UpdateFn } from "./update-fn.cjs";
2
+ import { steps } from "../steps.cjs";
3
+ import { HelperFnChosenSteps } from "./helper-fn/index.cjs";
4
+
5
+ //#region src/steps/fn-utils/reset-fn.d.ts
6
+ declare namespace ResetFn {
7
+ export interface Options<value extends steps.instantiateSteps, targetStep extends steps.StepNumbers<value>, fields extends UpdateFn.chosenFields<currentStep>, currentStep extends UpdateFn.resolvedStep<value, targetStep> = UpdateFn.resolvedStep<value, targetStep>> extends UpdateFn.BaseOptions<value, targetStep, fields, currentStep> {
8
+ /**
9
+ * The specific fields to reset. If no fields are provided, all fields for
10
+ * the current step will be reset.
11
+ */
12
+ fields?: fields;
13
+ }
14
+ export type general<value extends steps.instantiateSteps> = <targetStep extends steps.StepNumbers<value>, fields extends UpdateFn.chosenFields<UpdateFn.resolvedStep<value, targetStep>> = 'all'>(options: Options<value, targetStep, fields>) => void;
15
+ export type stepSpecific<value extends steps.instantiateSteps, targetStep extends steps.StepNumbers<value>> = <fields extends UpdateFn.chosenFields<UpdateFn.resolvedStep<value, targetStep>> = 'all'>(options?: Omit<Options<value, targetStep, fields>, 'targetStep'>) => void;
16
+ export type StepSpecificHelperFn<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = { [key in HelperFnChosenSteps.resolve<value, chosenSteps>]: stepSpecific<value, key> };
17
+ export type createHelperFnForAllSteps<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = chosenSteps extends HelperFnChosenSteps.defaultStringOption ? StepSpecificHelperFn<value, chosenSteps> : never;
18
+ export type createHelperFnForTupleSteps<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = chosenSteps extends HelperFnChosenSteps.tupleNotation<steps.StepNumbers<value>> ? StepSpecificHelperFn<value, chosenSteps> : never;
19
+ export type createHelperFnForObjectSteps<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = chosenSteps extends HelperFnChosenSteps.objectNotation<steps.StepNumbers<value>> ? { [key in keyof chosenSteps]: key extends HelperFnChosenSteps.resolve<value, chosenSteps> ? StepSpecificHelperFn<value, chosenSteps>[key] : never } : never;
20
+ type HelperFnMap<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = {
21
+ all: createHelperFnForAllSteps<value, chosenSteps>;
22
+ tuple: createHelperFnForTupleSteps<value, chosenSteps>;
23
+ object: createHelperFnForObjectSteps<value, chosenSteps>;
24
+ };
25
+ export type HelperFn<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = general<value> & HelperFnMap<value, chosenSteps>[HelperFnChosenSteps.resolveType<value, chosenSteps>];
26
+ export {};
27
+ }
28
+ //#endregion
29
+ export { ResetFn };
30
+ //# sourceMappingURL=reset-fn.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset-fn.d.cts","names":[],"sources":["../../../src/steps/fn-utils/reset-fn.ts"],"sourcesContent":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { UpdateFn } from "./update-fn.mjs";
2
+ import { steps } from "../steps.mjs";
3
+ import { HelperFnChosenSteps } from "./helper-fn/index.mjs";
4
+
5
+ //#region src/steps/fn-utils/reset-fn.d.ts
6
+ declare namespace ResetFn {
7
+ export interface Options<value extends steps.instantiateSteps, targetStep extends steps.StepNumbers<value>, fields extends UpdateFn.chosenFields<currentStep>, currentStep extends UpdateFn.resolvedStep<value, targetStep> = UpdateFn.resolvedStep<value, targetStep>> extends UpdateFn.BaseOptions<value, targetStep, fields, currentStep> {
8
+ /**
9
+ * The specific fields to reset. If no fields are provided, all fields for
10
+ * the current step will be reset.
11
+ */
12
+ fields?: fields;
13
+ }
14
+ export type general<value extends steps.instantiateSteps> = <targetStep extends steps.StepNumbers<value>, fields extends UpdateFn.chosenFields<UpdateFn.resolvedStep<value, targetStep>> = 'all'>(options: Options<value, targetStep, fields>) => void;
15
+ export type stepSpecific<value extends steps.instantiateSteps, targetStep extends steps.StepNumbers<value>> = <fields extends UpdateFn.chosenFields<UpdateFn.resolvedStep<value, targetStep>> = 'all'>(options?: Omit<Options<value, targetStep, fields>, 'targetStep'>) => void;
16
+ export type StepSpecificHelperFn<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = { [key in HelperFnChosenSteps.resolve<value, chosenSteps>]: stepSpecific<value, key> };
17
+ export type createHelperFnForAllSteps<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = chosenSteps extends HelperFnChosenSteps.defaultStringOption ? StepSpecificHelperFn<value, chosenSteps> : never;
18
+ export type createHelperFnForTupleSteps<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = chosenSteps extends HelperFnChosenSteps.tupleNotation<steps.StepNumbers<value>> ? StepSpecificHelperFn<value, chosenSteps> : never;
19
+ export type createHelperFnForObjectSteps<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = chosenSteps extends HelperFnChosenSteps.objectNotation<steps.StepNumbers<value>> ? { [key in keyof chosenSteps]: key extends HelperFnChosenSteps.resolve<value, chosenSteps> ? StepSpecificHelperFn<value, chosenSteps>[key] : never } : never;
20
+ type HelperFnMap<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = {
21
+ all: createHelperFnForAllSteps<value, chosenSteps>;
22
+ tuple: createHelperFnForTupleSteps<value, chosenSteps>;
23
+ object: createHelperFnForObjectSteps<value, chosenSteps>;
24
+ };
25
+ export type HelperFn<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = general<value> & HelperFnMap<value, chosenSteps>[HelperFnChosenSteps.resolveType<value, chosenSteps>];
26
+ export {};
27
+ }
28
+ //#endregion
29
+ export { ResetFn };
30
+ //# sourceMappingURL=reset-fn.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset-fn.d.mts","names":[],"sources":["../../../src/steps/fn-utils/reset-fn.ts"],"sourcesContent":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ import { DeepKeys, DeepPartial, Expand, Relaxed, Updater, objectHelpers, stripFunctions } from "../../utils/types.cjs";
2
+ import { path } from "../../utils/path.cjs";
3
+ import { steps } from "../steps.cjs";
4
+ import { HelperFn, HelperFnChosenSteps } from "./helper-fn/index.cjs";
5
+
6
+ //#region src/steps/fn-utils/update-fn.d.ts
7
+ declare namespace UpdateFn {
8
+ export type chosenFields<TCurrentStep extends steps.Any> = HelperFnChosenSteps.defaultStringOption | HelperFnChosenSteps.tupleNotation<DeepKeys<TCurrentStep>> | path.generateObjectConfig<TCurrentStep>;
9
+ type resolveAllPropertyPath<TCurrentStep extends steps.Any, TField extends chosenFields<TCurrentStep>> = TField extends HelperFnChosenSteps.defaultStringOption ? Relaxed<TCurrentStep> : never;
10
+ type resolveTuplePropertyPath<TCurrentStep extends steps.Any, TField extends chosenFields<TCurrentStep>, TDeepKeys extends DeepKeys<TCurrentStep> = DeepKeys<TCurrentStep>> = TField extends HelperFnChosenSteps.tupleNotation<TDeepKeys> ? TField[number] extends DeepKeys<Relaxed<TCurrentStep>> ? path.pickBy<Relaxed<TCurrentStep>, TField[number]> : never : never;
11
+ type resolveObjectPropertyPath<TCurrentStep extends steps.Any, TField extends chosenFields<TCurrentStep>, TDeepKeys extends DeepKeys<TCurrentStep> = DeepKeys<TCurrentStep>> = TField extends path.generateObjectConfig<TField> ? path.objectToPath<TField> extends TDeepKeys ? path.objectToPath<TField> extends DeepKeys<Relaxed<TCurrentStep>> ? path.pickBy<Relaxed<TCurrentStep>, path.objectToPath<TField>> : never : never : never;
12
+ type resolvePathType<TCurrentStep extends steps.Any, TField extends chosenFields<TCurrentStep>> = TField extends HelperFnChosenSteps.defaultStringOption ? 'all' : TField extends Array<infer _> ? 'tuple' : objectHelpers.isObject<TField> extends true ? 'object' : never;
13
+ type resolvePathMap<TCurrentStep extends steps.Any, TField extends chosenFields<TCurrentStep>> = {
14
+ all: resolveAllPropertyPath<TCurrentStep, TField>;
15
+ tuple: resolveTuplePropertyPath<TCurrentStep, TField>;
16
+ object: resolveObjectPropertyPath<TCurrentStep, TField>;
17
+ };
18
+ export type resolvedStep<value extends steps.instantiateSteps, targetStep extends steps.StepNumbers<value>> = stripFunctions<value[targetStep]>;
19
+ export type resolvedFieldValue<value extends steps.instantiateSteps, targetStep extends steps.StepNumbers<value>, field extends chosenFields<currentStep>, currentStep extends resolvedStep<value, targetStep> = resolvedStep<value, targetStep>, pathType extends resolvePathType<currentStep, field> = resolvePathType<currentStep, field>> = resolvePathMap<currentStep, field>[pathType];
20
+ export type mode = {
21
+ /**
22
+ * Enables strict mode for the update operation.
23
+ *
24
+ * When enabled, you won't be able to add new keys to an object. If
25
+ * you need to add new keys, set to `false`.
26
+ * @default true
27
+ */
28
+ strict: boolean;
29
+ /**
30
+ * Enables partial mode for the update operation.
31
+ *
32
+ * When enabled, you will be required to return the whole object. If
33
+ * you need to return a partial object, set to `false`.
34
+ * @default false
35
+ */
36
+ partial: boolean;
37
+ };
38
+ export type additionalUpdaterData = Record<string, unknown> | (() => Record<string, unknown>);
39
+ export type inferAdditionalUpdaterData<T extends additionalUpdaterData> = T extends (() => infer _) ? _ : T;
40
+ export type resolvedUpdaterReturnType<T, TMode extends mode, TAdditionalCtx extends additionalUpdaterData> = TMode['strict'] extends true ? TMode['partial'] extends true ? DeepPartial<T> : T : TMode['partial'] extends true ? DeepPartial<T> & TAdditionalCtx : T & TAdditionalCtx;
41
+ export interface DebugOptions {
42
+ /**
43
+ * Enables verbose debug logging for this update operation.
44
+ * Set to `true` to output helpful information for troubleshooting.
45
+ */
46
+ debug?: boolean;
47
+ /**
48
+ * Controls whether console errors should be silenced.
49
+ *
50
+ * By default, errors will be silenced when `partial: true` OR `strict: false`.
51
+ *
52
+ */
53
+ silentErrors?: boolean;
54
+ }
55
+ export interface BaseOptions<value extends steps.instantiateSteps, targetStep extends steps.StepNumbers<value>, fields extends chosenFields<currentStep>, currentStep extends resolvedStep<value, targetStep> = resolvedStep<value, targetStep>> extends DebugOptions {
56
+ /**
57
+ * The step to update.
58
+ */
59
+ targetStep: targetStep;
60
+ /**
61
+ * The specific fields to update.
62
+ *
63
+ * Optionally provide a value to narrow the results of the `ctx` in the
64
+ * updater `fn`.
65
+ */
66
+ fields?: fields;
67
+ }
68
+ export interface ModeOptions<TMode extends mode> {
69
+ /**
70
+ * Enables verbose debug logging for this update operation.
71
+ * Set to `true` to output helpful information for troubleshooting.
72
+ */
73
+ debug?: boolean;
74
+ /**
75
+ * Controls whether console errors should be silenced.
76
+ *
77
+ * By default, errors will be silenced when `partial: true` OR `strict: false`.
78
+ *
79
+ */
80
+ silentErrors?: boolean;
81
+ /**
82
+ * Enables strict mode for the update operation.
83
+ *
84
+ * When enabled, you won't be able to add new keys to an object. If
85
+ * you need to add new keys, set to `false`.
86
+ * @default true
87
+ */
88
+ strict?: TMode['strict'];
89
+ /**
90
+ * Enables partial mode for the update operation.
91
+ *
92
+ * When enabled, you will be required to return the whole object. If
93
+ * you need to return a partial object, set to `false`.
94
+ * @default false
95
+ */
96
+ partial?: TMode['partial'];
97
+ }
98
+ export interface SharedOptions<value extends steps.instantiateSteps, targetStep extends steps.StepNumbers<value>, fields extends chosenFields<currentStep>, updateMode extends mode, currentStep extends resolvedStep<value, targetStep> = resolvedStep<value, targetStep>> extends BaseOptions<value, targetStep, fields, currentStep>, ModeOptions<updateMode> {}
99
+ export type options<value extends steps.instantiateSteps, targetStep extends steps.StepNumbers<value>, field extends chosenFields<TCurrentStep>, strict extends boolean, partial extends boolean, additionalCtx extends Record<string, unknown>, updaterData extends additionalUpdaterData, TCurrentStep extends resolvedStep<value, targetStep> = resolvedStep<value, targetStep>, TMode extends mode = {
100
+ strict: strict;
101
+ partial: partial;
102
+ }> = SharedOptions<value, targetStep, field, TMode, TCurrentStep> & HelperFn.CtxDataSelector<value, [targetStep], additionalCtx> & {
103
+ updater: Updater<Expand<HelperFn.BaseInput<value, [targetStep], never, additionalCtx>>, resolvedUpdaterReturnType<resolvedFieldValue<value, targetStep, field, TCurrentStep>, TMode, updaterData>>;
104
+ };
105
+ export type general<value extends steps.instantiateSteps> = <targetStep extends steps.StepNumbers<value>, field extends chosenFields<resolvedStep<value, targetStep>> = 'all', strict extends boolean = true, partial extends boolean = false, additionalCtx extends Record<string, unknown> = {}, additionalUpdaterData extends Record<string, unknown> = {}>(options: options<value, targetStep, field, strict, partial, additionalCtx, additionalUpdaterData>) => void;
106
+ export type stepSpecific<value extends steps.instantiateSteps, targetStep extends stepNumbers, stepNumbers extends steps.StepNumbers<value> = steps.StepNumbers<value>> = <field extends chosenFields<resolvedStep<value, targetStep>> = 'all', strict extends boolean = true, partial extends boolean = false, additionalCtx extends Record<string, unknown> = {}, additionalUpdaterData extends Record<string, unknown> = {}>(options: Omit<options<value, targetStep, field, strict, partial, additionalCtx, additionalUpdaterData>, 'targetStep'>) => void;
107
+ export type StepSpecificHelperFn<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = { [key in HelperFnChosenSteps.resolve<value, chosenSteps>]: stepSpecific<value, key> };
108
+ export type createHelperFnForAllSteps<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = chosenSteps extends HelperFnChosenSteps.defaultStringOption ? StepSpecificHelperFn<value, chosenSteps> : never;
109
+ export type createHelperFnForTupleSteps<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = chosenSteps extends HelperFnChosenSteps.tupleNotation<steps.StepNumbers<value>> ? StepSpecificHelperFn<value, chosenSteps> : never;
110
+ export type createHelperFnForObjectSteps<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = chosenSteps extends HelperFnChosenSteps.objectNotation<steps.StepNumbers<value>> ? { [key in keyof chosenSteps]: key extends HelperFnChosenSteps.resolve<value, chosenSteps> ? StepSpecificHelperFn<value, chosenSteps>[key] : never } : never;
111
+ type HelperFnMap<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = {
112
+ all: createHelperFnForAllSteps<value, chosenSteps>;
113
+ tuple: createHelperFnForTupleSteps<value, chosenSteps>;
114
+ object: createHelperFnForObjectSteps<value, chosenSteps>;
115
+ };
116
+ export type HelperFn<value extends steps.instantiateSteps, chosenSteps extends HelperFnChosenSteps.main<value, steps.StepNumbers<value>>> = general<value> & HelperFnMap<value, chosenSteps>[HelperFnChosenSteps.resolveType<value, chosenSteps>];
117
+ export {};
118
+ }
119
+ //#endregion
120
+ export { UpdateFn };
121
+ //# sourceMappingURL=update-fn.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-fn.d.cts","names":[],"sources":["../../../src/steps/fn-utils/update-fn.ts"],"sourcesContent":[],"mappings":"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"}