@jcoreio/zod-forms 2.0.0-beta.4 → 2.1.0

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 (151) hide show
  1. package/ConditionalValidator.d.ts.map +1 -1
  2. package/ConditionalValidator.js +4 -2
  3. package/ConditionalValidator.js.map +1 -1
  4. package/ConditionalValidator.mjs +3 -1
  5. package/ConditionalValidator.mjs.map +1 -1
  6. package/FieldPath.d.ts.map +1 -1
  7. package/FieldPath.js +1 -0
  8. package/FieldPath.js.map +1 -1
  9. package/FieldPath.mjs.map +1 -1
  10. package/FormState.d.ts +7 -4
  11. package/FormState.d.ts.map +1 -1
  12. package/FormState.js.map +1 -1
  13. package/FormState.mjs.map +1 -1
  14. package/actions/arrayActions.js.map +1 -1
  15. package/actions/arrayActions.mjs.map +1 -1
  16. package/actions/setSubmitStatus.d.ts +1 -1
  17. package/createFormMiddleware.js +3 -3
  18. package/createFormMiddleware.js.map +1 -1
  19. package/createFormMiddleware.mjs.map +1 -1
  20. package/createFormProvider.d.ts +9 -3
  21. package/createFormProvider.d.ts.map +1 -1
  22. package/createFormProvider.js +10 -3
  23. package/createFormProvider.js.map +1 -1
  24. package/createFormProvider.mjs +53 -44
  25. package/createFormProvider.mjs.map +1 -1
  26. package/createFormReducer.js +16 -16
  27. package/createFormReducer.js.map +1 -1
  28. package/createSelectFieldErrorMap.d.ts +3 -3
  29. package/createSelectFieldErrorMap.js.map +1 -1
  30. package/createSelectFieldErrorMap.mjs.map +1 -1
  31. package/createSelectFormStatus.d.ts +10 -10
  32. package/createSelectFormStatus.d.ts.map +1 -1
  33. package/createSelectFormStatus.js +2 -2
  34. package/createSelectFormStatus.js.map +1 -1
  35. package/createSelectFormStatus.mjs +1 -1
  36. package/createSelectFormStatus.mjs.map +1 -1
  37. package/createSelectFormValues.js.map +1 -1
  38. package/createZodForm.d.ts +10 -5
  39. package/createZodForm.d.ts.map +1 -1
  40. package/package.json +5 -4
  41. package/reducers/addHandlers.d.ts +2 -2
  42. package/reducers/addHandlers.d.ts.map +1 -1
  43. package/reducers/arrayMove.js.map +1 -1
  44. package/reducers/arrayMove.mjs.map +1 -1
  45. package/reducers/initialize.d.ts +4 -4
  46. package/reducers/initialize.d.ts.map +1 -1
  47. package/reducers/initialize.js.map +1 -1
  48. package/reducers/initialize.mjs.map +1 -1
  49. package/reducers/removeHandlers.d.ts +2 -2
  50. package/reducers/removeHandlers.d.ts.map +1 -1
  51. package/reducers/setMeta.d.ts.map +1 -1
  52. package/reducers/setMeta.js +4 -1
  53. package/reducers/setMeta.js.map +1 -1
  54. package/reducers/setMeta.mjs +4 -1
  55. package/reducers/setMeta.mjs.map +1 -1
  56. package/reducers/setParsedValue.d.ts +2 -2
  57. package/reducers/setParsedValue.d.ts.map +1 -1
  58. package/reducers/setParsedValue.js +1 -1
  59. package/reducers/setParsedValue.js.map +1 -1
  60. package/reducers/setParsedValue.mjs +1 -1
  61. package/reducers/setParsedValue.mjs.map +1 -1
  62. package/reducers/setSubmitStatus.d.ts +2 -2
  63. package/reducers/setSubmitStatus.d.ts.map +1 -1
  64. package/reducers/setValue.d.ts +1 -1
  65. package/reducers/setValue.d.ts.map +1 -1
  66. package/reducers/submitSucceeded.d.ts +1 -1
  67. package/reducers/submitSucceeded.d.ts.map +1 -1
  68. package/reducers/util/updateRawArray.js.map +1 -1
  69. package/reducers/util/updateRawArray.mjs.map +1 -1
  70. package/src/ConditionalValidator.ts +11 -12
  71. package/src/FieldPath.ts +34 -54
  72. package/src/FormState.ts +5 -4
  73. package/src/actions/arrayActions.ts +4 -4
  74. package/src/createFormMiddleware.ts +2 -2
  75. package/src/createFormProvider.tsx +14 -2
  76. package/src/createSelectFieldErrorMap.ts +12 -10
  77. package/src/createSelectFormStatus.ts +3 -1
  78. package/src/reducers/arrayMove.ts +2 -2
  79. package/src/reducers/initialize.ts +3 -3
  80. package/src/reducers/setMeta.ts +4 -1
  81. package/src/reducers/setParsedValue.ts +10 -9
  82. package/src/reducers/util/updateRawArray.ts +4 -4
  83. package/src/useArrayField.ts +39 -28
  84. package/src/useField.ts +92 -27
  85. package/src/useFormContext.ts +2 -2
  86. package/src/useFormDispatch.ts +3 -7
  87. package/src/useHtmlField.ts +47 -41
  88. package/src/useInitialize.ts +1 -1
  89. package/src/util/DeepPartial.ts +2 -3
  90. package/src/util/PathInType.ts +16 -16
  91. package/src/util/SchemaAt.ts +38 -49
  92. package/src/util/bindActionsToField.ts +6 -7
  93. package/src/util/parsePathstring.ts +47 -41
  94. package/src/util/pathstring.ts +9 -13
  95. package/src/util/set.ts +4 -1
  96. package/useArrayField.d.ts +2 -2
  97. package/useArrayField.d.ts.map +1 -1
  98. package/useArrayField.js +22 -8
  99. package/useArrayField.js.map +1 -1
  100. package/useArrayField.mjs +12 -2
  101. package/useArrayField.mjs.map +1 -1
  102. package/useField.d.ts +6 -3
  103. package/useField.d.ts.map +1 -1
  104. package/useField.js +55 -22
  105. package/useField.js.map +1 -1
  106. package/useField.mjs +34 -16
  107. package/useField.mjs.map +1 -1
  108. package/useFormContext.js.map +1 -1
  109. package/useFormContext.mjs.map +1 -1
  110. package/useFormDispatch.d.ts +1 -3
  111. package/useFormDispatch.d.ts.map +1 -1
  112. package/useFormDispatch.js.map +1 -1
  113. package/useFormDispatch.mjs.map +1 -1
  114. package/useFormStatus.d.ts +1 -1
  115. package/useHtmlField.d.ts +2 -1
  116. package/useHtmlField.d.ts.map +1 -1
  117. package/useHtmlField.js +35 -24
  118. package/useHtmlField.js.map +1 -1
  119. package/useHtmlField.mjs +36 -21
  120. package/useHtmlField.mjs.map +1 -1
  121. package/useInitialize.js.map +1 -1
  122. package/useInitialize.mjs.map +1 -1
  123. package/useSubmit.js.map +1 -1
  124. package/util/DeepPartial.d.ts.map +1 -1
  125. package/util/DeepPartial.js.map +1 -1
  126. package/util/DeepPartial.mjs.map +1 -1
  127. package/util/PathInType.d.ts +2 -1
  128. package/util/PathInType.d.ts.map +1 -1
  129. package/util/PathInType.js.map +1 -1
  130. package/util/PathInType.mjs.map +1 -1
  131. package/util/SchemaAt.d.ts +1 -1
  132. package/util/SchemaAt.d.ts.map +1 -1
  133. package/util/SchemaAt.js.map +1 -1
  134. package/util/SchemaAt.mjs.map +1 -1
  135. package/util/bindActionsToField.d.ts +1 -1
  136. package/util/bindActionsToField.d.ts.map +1 -1
  137. package/util/bindActionsToField.js.map +1 -1
  138. package/util/bindActionsToField.mjs.map +1 -1
  139. package/util/parsePathstring.d.ts +23 -6
  140. package/util/parsePathstring.d.ts.map +1 -1
  141. package/util/parsePathstring.js.map +1 -1
  142. package/util/parsePathstring.mjs.map +1 -1
  143. package/util/pathstring.d.ts +2 -8
  144. package/util/pathstring.d.ts.map +1 -1
  145. package/util/pathstring.js.map +1 -1
  146. package/util/pathstring.mjs.map +1 -1
  147. package/util/set.d.ts.map +1 -1
  148. package/util/set.js +1 -4
  149. package/util/set.js.map +1 -1
  150. package/util/set.mjs +1 -3
  151. package/util/set.mjs.map +1 -1
package/useHtmlField.mjs CHANGED
@@ -1,3 +1,4 @@
1
+ import z from 'zod';
1
2
  import { FieldPath } from "./FieldPath.mjs";
2
3
  import { useField } from "./useField.mjs";
3
4
  import React from 'react';
@@ -5,13 +6,21 @@ import { invert } from 'zod-invertible';
5
6
  import { useFormContext } from "./useFormContext.mjs";
6
7
  import { acceptsNumber } from "./util/acceptsNumber.mjs";
7
8
  import { acceptsBigint } from "./util/acceptsBigint.mjs";
9
+ import isEqual from 'fast-deep-equal';
10
+ const customMetaSchema = z.object({
11
+ value: z.unknown(),
12
+ stringValue: z.string()
13
+ });
8
14
  function useHtmlFieldBase(options) {
9
15
  const {
10
16
  field,
11
17
  type,
18
+ normalizeOnMount,
12
19
  normalizeOnBlur = true
13
20
  } = options;
14
- const props = useField(field);
21
+ const props = useField(field, {
22
+ normalizeOnMount
23
+ });
15
24
  const {
16
25
  parsedValue,
17
26
  value,
@@ -22,16 +31,18 @@ function useHtmlFieldBase(options) {
22
31
  setMeta,
23
32
  ...meta
24
33
  } = props;
25
- const {
26
- schema
27
- } = field;
28
34
 
29
- // tempValue is used for storing blank text when we've coerced the
30
- // value to null or undefined, or storing numeric text when we've
31
- // coerced the value to a number or bigint.
35
+ // we've coerced the value to null or undefined, or storing numeric
36
+ // text when we've coerced the value to a number or bigint.
32
37
  // This way we can set a value that will parse better in the form
33
38
  // state without interfering with the text the user is typing.
34
- const [tempValue, setTempValue] = React.useState(value);
39
+ const customMeta = React.useMemo(() => {
40
+ const parsedCustomMeta = customMetaSchema.safeParse(meta.customMeta);
41
+ return parsedCustomMeta.success ? parsedCustomMeta.data : undefined;
42
+ }, [meta.customMeta]);
43
+ const {
44
+ schema
45
+ } = field;
35
46
  const tryNumber = React.useMemo(() => acceptsNumber(schema), [schema]);
36
47
  const tryBigint = React.useMemo(() => acceptsBigint(schema), [schema]);
37
48
  const onChange = React.useCallback(e => {
@@ -42,7 +53,12 @@ function useHtmlFieldBase(options) {
42
53
  tryBigint
43
54
  });
44
55
  if (typeof value === 'string' && typeof normalized !== 'string') {
45
- setTempValue(value);
56
+ setMeta({
57
+ customMeta: {
58
+ stringValue: value,
59
+ value: normalized
60
+ }
61
+ });
46
62
  }
47
63
  setValue(normalized);
48
64
  }, [getValue, setValue, schema]);
@@ -52,28 +68,27 @@ function useHtmlFieldBase(options) {
52
68
  });
53
69
  }, []);
54
70
  const onBlur = React.useCallback(e => {
55
- let value = normalizeValue(getValue(e), {
56
- schema,
57
- tryNumber,
58
- tryBigint
59
- });
60
71
  if (normalizeOnBlur) {
72
+ const value = normalizeValue(getValue(e), {
73
+ schema,
74
+ tryNumber,
75
+ tryBigint
76
+ });
61
77
  const parsed = field.schema.safeParse(value);
62
78
  const formatted = parsed.success ? invert(field.schema).safeParse(parsed.data) : undefined;
63
- if (formatted !== null && formatted !== void 0 && formatted.success) value = formatted.data;
64
- setValue(value);
79
+ setValue(formatted !== null && formatted !== void 0 && formatted.success ? formatted.data : value);
65
80
  }
66
- setTempValue(undefined);
67
81
  setMeta({
68
82
  visited: true,
69
- touched: true
83
+ touched: true,
84
+ customMeta: undefined
70
85
  });
71
86
  }, [getValue, setValue, schema]);
72
87
  return React.useMemo(() => ({
73
88
  input: {
74
89
  name: field.pathstring,
75
90
  type,
76
- value: typeof value === 'boolean' ? String(value) : typeof value === 'string' ? value || tempValue || '' : tempValue || (value == null ? '' : String(value) || ''),
91
+ value: typeof value === 'boolean' ? String(value) : typeof value === 'string' ? value || (customMeta === null || customMeta === void 0 ? void 0 : customMeta.stringValue) || '' : customMeta && isEqual(customMeta.value, value) ? customMeta.stringValue : value == null ? '' : String(value) || '',
77
92
  ...(type === 'checkbox' && {
78
93
  checked: Boolean(value)
79
94
  }),
@@ -91,7 +106,7 @@ function useHtmlFieldBase(options) {
91
106
  setValue,
92
107
  setMeta
93
108
  }
94
- }), [props, tempValue, onChange]);
109
+ }), [props, customMeta, onChange]);
95
110
  }
96
111
  function getValue(e) {
97
112
  const {
@@ -110,7 +125,7 @@ function normalizeBlank(schema) {
110
125
  function safeBigInt(value) {
111
126
  try {
112
127
  return BigInt(value);
113
- } catch (error) {
128
+ } catch {
114
129
  return undefined;
115
130
  }
116
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useHtmlField.mjs","names":["FieldPath","useField","React","invert","useFormContext","acceptsNumber","acceptsBigint","useHtmlFieldBase","options","field","type","normalizeOnBlur","props","parsedValue","value","initialParsedValue","initialValue","setParsedValue","setValue","setMeta","meta","schema","tempValue","setTempValue","useState","tryNumber","useMemo","tryBigint","onChange","useCallback","e","getValue","normalized","normalizeValue","onFocus","visited","onBlur","parsed","safeParse","formatted","success","data","undefined","touched","input","name","pathstring","String","checked","Boolean","target","HTMLInputElement","normalizeBlank","safeBigInt","BigInt","error","test","num","Number","isNaN","bigint","useHtmlField","rest","root","get"],"sources":["src/useHtmlField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath } from './FieldPath'\nimport { useField, UseFieldProps } from './useField'\nimport React, { ChangeEvent, HTMLInputTypeAttribute } from 'react'\nimport { invert } from 'zod-invertible'\nimport { useFormContext } from './useFormContext'\nimport { acceptsNumber } from './util/acceptsNumber'\nimport { acceptsBigint } from './util/acceptsBigint'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type HtmlFieldInputProps = {\n name: string\n type: HTMLInputTypeAttribute\n value: string\n checked?: boolean\n onChange: React.ChangeEventHandler\n onFocus: React.FocusEventHandler\n onBlur: React.FocusEventHandler\n}\n\nexport type ValidUseHtmlFieldProps<Field extends FieldPath> = {\n input: HtmlFieldInputProps\n meta: UseFieldProps<Field>\n}\n\nexport type UseHtmlFieldProps<Field extends FieldPath> = z.input<\n Field['schema']\n> extends string | number | bigint | boolean | null | undefined\n ? {\n input: HtmlFieldInputProps\n meta: UseFieldProps<Field>\n }\n : {\n ERROR: 'field schema input must be a nullish string, number, boolean or bigint'\n }\n\nexport type UseHtmlFieldOptions<\n Field,\n Schema extends z.ZodTypeAny = Field extends FieldPath<infer S>\n ? S\n : z.ZodTypeAny\n> = {\n field: Field\n type: z.input<Schema> extends boolean | null | undefined\n ? 'checkbox'\n : Exclude<HTMLInputTypeAttribute, 'checkbox'>\n normalizeOnBlur?: boolean\n}\n\nexport interface TypedUseHtmlField<T extends z.ZodTypeAny> {\n <Field extends FieldPath>(\n options: UseHtmlFieldOptions<Field, Field['schema']>\n ): UseHtmlFieldProps<Field>\n <Path extends PathInSchema<T>>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, Path>>\n ): UseHtmlFieldProps<FieldPath<SchemaAt<T, Path>>>\n <Path extends PathstringInSchema<T>>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, parsePathstring<Path>>>\n ): UseHtmlFieldProps<FieldPath<SchemaAt<T, parsePathstring<Path>>>>\n}\n\nfunction useHtmlFieldBase<Field extends FieldPath>(\n options: UseHtmlFieldOptions<Field, Field['schema']>\n): UseHtmlFieldProps<Field> {\n const { field, type, normalizeOnBlur = true } = options\n const props = useField(field)\n const {\n parsedValue,\n value,\n initialParsedValue,\n initialValue,\n setParsedValue,\n setValue,\n setMeta,\n ...meta\n } = props\n\n const { schema } = field\n\n // tempValue is used for storing blank text when we've coerced the\n // value to null or undefined, or storing numeric text when we've\n // coerced the value to a number or bigint.\n // This way we can set a value that will parse better in the form\n // state without interfering with the text the user is typing.\n const [tempValue, setTempValue] = React.useState(\n value as string | null | undefined\n )\n\n const tryNumber = React.useMemo(() => acceptsNumber(schema), [schema])\n const tryBigint = React.useMemo(() => acceptsBigint(schema), [schema])\n\n const onChange = React.useCallback(\n (e: React.ChangeEvent) => {\n const value = getValue(e)\n const normalized = normalizeValue(value, {\n schema,\n tryNumber,\n tryBigint,\n })\n if (typeof value === 'string' && typeof normalized !== 'string') {\n setTempValue(value)\n }\n setValue(normalized)\n },\n [getValue, setValue, schema]\n )\n\n const onFocus = React.useCallback(() => {\n setMeta({ visited: true })\n }, [])\n\n const onBlur = React.useCallback(\n (e: React.FocusEvent) => {\n let value = normalizeValue(getValue(e), {\n schema,\n tryNumber,\n tryBigint,\n })\n if (normalizeOnBlur) {\n const parsed = field.schema.safeParse(value)\n const formatted = parsed.success\n ? invert(field.schema).safeParse(parsed.data)\n : undefined\n if (formatted?.success) value = formatted.data\n setValue(value)\n }\n setTempValue(undefined)\n setMeta({ visited: true, touched: true })\n },\n [getValue, setValue, schema]\n )\n\n return React.useMemo(\n (): ValidUseHtmlFieldProps<Field> => ({\n input: {\n name: field.pathstring,\n type,\n value:\n typeof value === 'boolean'\n ? String(value)\n : typeof value === 'string'\n ? value || tempValue || ''\n : tempValue || (value == null ? '' : String(value) || ''),\n ...(type === 'checkbox' && { checked: Boolean(value) }),\n onChange,\n onFocus,\n onBlur,\n },\n meta: {\n ...meta,\n parsedValue,\n value,\n initialParsedValue,\n initialValue,\n setParsedValue,\n setValue,\n setMeta,\n },\n }),\n [props, tempValue, onChange]\n ) as any\n}\n\nfunction getValue(e: ChangeEvent) {\n const { target } = e\n if (target instanceof HTMLInputElement) {\n return target.type === 'checkbox' ? target.checked : target.value\n }\n return (target as any).value\n}\n\nfunction normalizeBlank(schema: z.ZodTypeAny): any {\n if (schema.safeParse(undefined).success) return undefined\n if (schema.safeParse(null).success) return null\n return undefined\n}\n\nfunction safeBigInt(value: string): bigint | undefined {\n try {\n return BigInt(value)\n } catch (error) {\n return undefined\n }\n}\n\nfunction normalizeValue<T extends z.ZodTypeAny>(\n value: string | boolean,\n {\n schema,\n tryNumber,\n tryBigint,\n }: { schema: T; tryNumber: boolean; tryBigint: boolean }\n): DeepPartial<z.input<T>> | undefined {\n if (typeof value === 'boolean') return value as any\n if (typeof value === 'string' && !/\\S/.test(value)) {\n return normalizeBlank(schema)\n }\n if (typeof value === 'string' && !schema.safeParse(value).success) {\n if (tryNumber) {\n const num = Number(value)\n if (!isNaN(num)) return num as any\n }\n if (tryBigint) {\n const bigint = safeBigInt(value)\n if (bigint != null) return bigint as any\n }\n }\n return value as any\n}\n\nexport function useHtmlField<Field extends FieldPath>(\n options: UseHtmlFieldOptions<Field, Field['schema']>\n): UseHtmlFieldProps<Field>\nexport function useHtmlField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseHtmlField<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any\n>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, Path>>\n): UseHtmlFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useHtmlField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseHtmlField<T> to pass a pathstring'\n >,\n Path extends PathstringInSchema<T> = any\n>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, parsePathstring<Path>>>\n): UseHtmlFieldProps<FieldPath<SchemaAt<T, parsePathstring<Path>>>>\nexport function useHtmlField<T extends z.ZodTypeAny>({\n field,\n ...rest\n}: UseHtmlFieldOptions<FieldPath | BasePath, T>): UseHtmlFieldProps<any> {\n const { root } = useFormContext<T>()\n return useHtmlFieldBase({\n field: field instanceof FieldPath ? field : root.get(field as any),\n ...rest,\n })\n}\n"],"mappings":"AACA,SAAmBA,SAAS;AAC5B,SAASC,QAAQ;AACjB,OAAOC,KAAK,MAA+C,OAAO;AAClE,SAASC,MAAM,QAAQ,gBAAgB;AACvC,SAASC,cAAc;AACvB,SAASC,aAAa;AACtB,SAASC,aAAa;AAyDtB,SAASC,gBAAgBA,CACvBC,OAAoD,EAC1B;EAC1B,MAAM;IAAEC,KAAK;IAAEC,IAAI;IAAEC,eAAe,GAAG;EAAK,CAAC,GAAGH,OAAO;EACvD,MAAMI,KAAK,GAAGX,QAAQ,CAACQ,KAAK,CAAC;EAC7B,MAAM;IACJI,WAAW;IACXC,KAAK;IACLC,kBAAkB;IAClBC,YAAY;IACZC,cAAc;IACdC,QAAQ;IACRC,OAAO;IACP,GAAGC;EACL,CAAC,GAAGR,KAAK;EAET,MAAM;IAAES;EAAO,CAAC,GAAGZ,KAAK;;EAExB;EACA;EACA;EACA;EACA;EACA,MAAM,CAACa,SAAS,EAAEC,YAAY,CAAC,GAAGrB,KAAK,CAACsB,QAAQ,CAC9CV,KACF,CAAC;EAED,MAAMW,SAAS,GAAGvB,KAAK,CAACwB,OAAO,CAAC,MAAMrB,aAAa,CAACgB,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EACtE,MAAMM,SAAS,GAAGzB,KAAK,CAACwB,OAAO,CAAC,MAAMpB,aAAa,CAACe,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEtE,MAAMO,QAAQ,GAAG1B,KAAK,CAAC2B,WAAW,CAC/BC,CAAoB,IAAK;IACxB,MAAMhB,KAAK,GAAGiB,QAAQ,CAACD,CAAC,CAAC;IACzB,MAAME,UAAU,GAAGC,cAAc,CAACnB,KAAK,EAAE;MACvCO,MAAM;MACNI,SAAS;MACTE;IACF,CAAC,CAAC;IACF,IAAI,OAAOb,KAAK,KAAK,QAAQ,IAAI,OAAOkB,UAAU,KAAK,QAAQ,EAAE;MAC/DT,YAAY,CAACT,KAAK,CAAC;IACrB;IACAI,QAAQ,CAACc,UAAU,CAAC;EACtB,CAAC,EACD,CAACD,QAAQ,EAAEb,QAAQ,EAAEG,MAAM,CAC7B,CAAC;EAED,MAAMa,OAAO,GAAGhC,KAAK,CAAC2B,WAAW,CAAC,MAAM;IACtCV,OAAO,CAAC;MAAEgB,OAAO,EAAE;IAAK,CAAC,CAAC;EAC5B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,MAAM,GAAGlC,KAAK,CAAC2B,WAAW,CAC7BC,CAAmB,IAAK;IACvB,IAAIhB,KAAK,GAAGmB,cAAc,CAACF,QAAQ,CAACD,CAAC,CAAC,EAAE;MACtCT,MAAM;MACNI,SAAS;MACTE;IACF,CAAC,CAAC;IACF,IAAIhB,eAAe,EAAE;MACnB,MAAM0B,MAAM,GAAG5B,KAAK,CAACY,MAAM,CAACiB,SAAS,CAACxB,KAAK,CAAC;MAC5C,MAAMyB,SAAS,GAAGF,MAAM,CAACG,OAAO,GAC5BrC,MAAM,CAACM,KAAK,CAACY,MAAM,CAAC,CAACiB,SAAS,CAACD,MAAM,CAACI,IAAI,CAAC,GAC3CC,SAAS;MACb,IAAIH,SAAS,aAATA,SAAS,eAATA,SAAS,CAAEC,OAAO,EAAE1B,KAAK,GAAGyB,SAAS,CAACE,IAAI;MAC9CvB,QAAQ,CAACJ,KAAK,CAAC;IACjB;IACAS,YAAY,CAACmB,SAAS,CAAC;IACvBvB,OAAO,CAAC;MAAEgB,OAAO,EAAE,IAAI;MAAEQ,OAAO,EAAE;IAAK,CAAC,CAAC;EAC3C,CAAC,EACD,CAACZ,QAAQ,EAAEb,QAAQ,EAAEG,MAAM,CAC7B,CAAC;EAED,OAAOnB,KAAK,CAACwB,OAAO,CAClB,OAAsC;IACpCkB,KAAK,EAAE;MACLC,IAAI,EAAEpC,KAAK,CAACqC,UAAU;MACtBpC,IAAI;MACJI,KAAK,EACH,OAAOA,KAAK,KAAK,SAAS,GACtBiC,MAAM,CAACjC,KAAK,CAAC,GACb,OAAOA,KAAK,KAAK,QAAQ,GACzBA,KAAK,IAAIQ,SAAS,IAAI,EAAE,GACxBA,SAAS,KAAKR,KAAK,IAAI,IAAI,GAAG,EAAE,GAAGiC,MAAM,CAACjC,KAAK,CAAC,IAAI,EAAE,CAAC;MAC7D,IAAIJ,IAAI,KAAK,UAAU,IAAI;QAAEsC,OAAO,EAAEC,OAAO,CAACnC,KAAK;MAAE,CAAC,CAAC;MACvDc,QAAQ;MACRM,OAAO;MACPE;IACF,CAAC;IACDhB,IAAI,EAAE;MACJ,GAAGA,IAAI;MACPP,WAAW;MACXC,KAAK;MACLC,kBAAkB;MAClBC,YAAY;MACZC,cAAc;MACdC,QAAQ;MACRC;IACF;EACF,CAAC,CAAC,EACF,CAACP,KAAK,EAAEU,SAAS,EAAEM,QAAQ,CAC7B,CAAC;AACH;AAEA,SAASG,QAAQA,CAACD,CAAc,EAAE;EAChC,MAAM;IAAEoB;EAAO,CAAC,GAAGpB,CAAC;EACpB,IAAIoB,MAAM,YAAYC,gBAAgB,EAAE;IACtC,OAAOD,MAAM,CAACxC,IAAI,KAAK,UAAU,GAAGwC,MAAM,CAACF,OAAO,GAAGE,MAAM,CAACpC,KAAK;EACnE;EACA,OAAQoC,MAAM,CAASpC,KAAK;AAC9B;AAEA,SAASsC,cAAcA,CAAC/B,MAAoB,EAAO;EACjD,IAAIA,MAAM,CAACiB,SAAS,CAACI,SAAS,CAAC,CAACF,OAAO,EAAE,OAAOE,SAAS;EACzD,IAAIrB,MAAM,CAACiB,SAAS,CAAC,IAAI,CAAC,CAACE,OAAO,EAAE,OAAO,IAAI;EAC/C,OAAOE,SAAS;AAClB;AAEA,SAASW,UAAUA,CAACvC,KAAa,EAAsB;EACrD,IAAI;IACF,OAAOwC,MAAM,CAACxC,KAAK,CAAC;EACtB,CAAC,CAAC,OAAOyC,KAAK,EAAE;IACd,OAAOb,SAAS;EAClB;AACF;AAEA,SAAST,cAAcA,CACrBnB,KAAuB,EACvB;EACEO,MAAM;EACNI,SAAS;EACTE;AACqD,CAAC,EACnB;EACrC,IAAI,OAAOb,KAAK,KAAK,SAAS,EAAE,OAAOA,KAAK;EAC5C,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC0C,IAAI,CAAC1C,KAAK,CAAC,EAAE;IAClD,OAAOsC,cAAc,CAAC/B,MAAM,CAAC;EAC/B;EACA,IAAI,OAAOP,KAAK,KAAK,QAAQ,IAAI,CAACO,MAAM,CAACiB,SAAS,CAACxB,KAAK,CAAC,CAAC0B,OAAO,EAAE;IACjE,IAAIf,SAAS,EAAE;MACb,MAAMgC,GAAG,GAAGC,MAAM,CAAC5C,KAAK,CAAC;MACzB,IAAI,CAAC6C,KAAK,CAACF,GAAG,CAAC,EAAE,OAAOA,GAAG;IAC7B;IACA,IAAI9B,SAAS,EAAE;MACb,MAAMiC,MAAM,GAAGP,UAAU,CAACvC,KAAK,CAAC;MAChC,IAAI8C,MAAM,IAAI,IAAI,EAAE,OAAOA,MAAM;IACnC;EACF;EACA,OAAO9C,KAAK;AACd;AAuBA,OAAO,SAAS+C,YAAYA,CAAyB;EACnDpD,KAAK;EACL,GAAGqD;AACyC,CAAC,EAA0B;EACvE,MAAM;IAAEC;EAAK,CAAC,GAAG3D,cAAc,CAAI,CAAC;EACpC,OAAOG,gBAAgB,CAAC;IACtBE,KAAK,EAAEA,KAAK,YAAYT,SAAS,GAAGS,KAAK,GAAGsD,IAAI,CAACC,GAAG,CAACvD,KAAY,CAAC;IAClE,GAAGqD;EACL,CAAC,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"useHtmlField.mjs","names":["z","FieldPath","useField","React","invert","useFormContext","acceptsNumber","acceptsBigint","isEqual","customMetaSchema","object","value","unknown","stringValue","string","useHtmlFieldBase","options","field","type","normalizeOnMount","normalizeOnBlur","props","parsedValue","initialParsedValue","initialValue","setParsedValue","setValue","setMeta","meta","customMeta","useMemo","parsedCustomMeta","safeParse","success","data","undefined","schema","tryNumber","tryBigint","onChange","useCallback","e","getValue","normalized","normalizeValue","onFocus","visited","onBlur","parsed","formatted","touched","input","name","pathstring","String","checked","Boolean","target","HTMLInputElement","normalizeBlank","safeBigInt","BigInt","test","num","Number","isNaN","bigint","useHtmlField","rest","root","get"],"sources":["src/useHtmlField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath } from './FieldPath'\nimport { useField, UseFieldProps } from './useField'\nimport React, { ChangeEvent, HTMLInputTypeAttribute } from 'react'\nimport { invert } from 'zod-invertible'\nimport { useFormContext } from './useFormContext'\nimport { acceptsNumber } from './util/acceptsNumber'\nimport { acceptsBigint } from './util/acceptsBigint'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { DeepPartial } from './util/DeepPartial'\nimport isEqual from 'fast-deep-equal'\n\nexport type HtmlFieldInputProps = {\n name: string\n type: HTMLInputTypeAttribute\n value: string\n checked?: boolean\n onChange: React.ChangeEventHandler\n onFocus: React.FocusEventHandler\n onBlur: React.FocusEventHandler\n}\n\nexport type ValidUseHtmlFieldProps<Field extends FieldPath> = {\n input: HtmlFieldInputProps\n meta: UseFieldProps<Field>\n}\n\nexport type UseHtmlFieldProps<Field extends FieldPath> =\n z.input<Field['schema']> extends (\n string | number | bigint | boolean | null | undefined\n ) ?\n {\n input: HtmlFieldInputProps\n meta: UseFieldProps<Field>\n }\n : {\n ERROR: 'field schema input must be a nullish string, number, boolean or bigint'\n }\n\nexport type UseHtmlFieldOptions<\n Field,\n Schema extends z.ZodTypeAny = Field extends FieldPath<infer S> ? S\n : z.ZodTypeAny,\n> = {\n field: Field\n type: z.input<Schema> extends boolean | null | undefined ? 'checkbox'\n : Exclude<HTMLInputTypeAttribute, 'checkbox'>\n normalizeOnMount?: boolean\n normalizeOnBlur?: boolean\n}\n\nexport interface TypedUseHtmlField<T extends z.ZodTypeAny> {\n <Field extends FieldPath>(\n options: UseHtmlFieldOptions<Field, Field['schema']>\n ): UseHtmlFieldProps<Field>\n <Path extends PathInSchema<T>>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, Path>>\n ): UseHtmlFieldProps<FieldPath<SchemaAt<T, Path>>>\n <Path extends PathstringInSchema<T>>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, parsePathstring<Path>>>\n ): UseHtmlFieldProps<FieldPath<SchemaAt<T, parsePathstring<Path>>>>\n}\n\nconst customMetaSchema = z.object({\n value: z.unknown(),\n stringValue: z.string(),\n})\n\nfunction useHtmlFieldBase<Field extends FieldPath>(\n options: UseHtmlFieldOptions<Field, Field['schema']>\n): UseHtmlFieldProps<Field> {\n const { field, type, normalizeOnMount, normalizeOnBlur = true } = options\n const props = useField(field, { normalizeOnMount })\n const {\n parsedValue,\n value,\n initialParsedValue,\n initialValue,\n setParsedValue,\n setValue,\n setMeta,\n ...meta\n } = props\n\n // we've coerced the value to null or undefined, or storing numeric\n // text when we've coerced the value to a number or bigint.\n // This way we can set a value that will parse better in the form\n // state without interfering with the text the user is typing.\n const customMeta = React.useMemo(() => {\n const parsedCustomMeta = customMetaSchema.safeParse(meta.customMeta)\n return parsedCustomMeta.success ? parsedCustomMeta.data : undefined\n }, [meta.customMeta])\n\n const { schema } = field\n\n const tryNumber = React.useMemo(() => acceptsNumber(schema), [schema])\n const tryBigint = React.useMemo(() => acceptsBigint(schema), [schema])\n\n const onChange = React.useCallback(\n (e: React.ChangeEvent) => {\n const value = getValue(e)\n const normalized = normalizeValue(value, {\n schema,\n tryNumber,\n tryBigint,\n })\n if (typeof value === 'string' && typeof normalized !== 'string') {\n setMeta({ customMeta: { stringValue: value, value: normalized } })\n }\n setValue(normalized)\n },\n [getValue, setValue, schema]\n )\n\n const onFocus = React.useCallback(() => {\n setMeta({ visited: true })\n }, [])\n\n const onBlur = React.useCallback(\n (e: React.FocusEvent) => {\n if (normalizeOnBlur) {\n const value = normalizeValue(getValue(e), {\n schema,\n tryNumber,\n tryBigint,\n })\n const parsed = field.schema.safeParse(value)\n const formatted =\n parsed.success ?\n invert(field.schema).safeParse(parsed.data)\n : undefined\n setValue(formatted?.success ? formatted.data : value)\n }\n setMeta({ visited: true, touched: true, customMeta: undefined })\n },\n [getValue, setValue, schema]\n )\n\n return React.useMemo(\n (): ValidUseHtmlFieldProps<Field> => ({\n input: {\n name: field.pathstring,\n type,\n value:\n typeof value === 'boolean' ? String(value)\n : typeof value === 'string' ? value || customMeta?.stringValue || ''\n : customMeta && isEqual(customMeta.value, value) ?\n customMeta.stringValue\n : value == null ? ''\n : String(value) || '',\n ...(type === 'checkbox' && { checked: Boolean(value) }),\n onChange,\n onFocus,\n onBlur,\n },\n meta: {\n ...meta,\n parsedValue,\n value,\n initialParsedValue,\n initialValue,\n setParsedValue,\n setValue,\n setMeta,\n },\n }),\n [props, customMeta, onChange]\n ) as any\n}\n\nfunction getValue(e: ChangeEvent) {\n const { target } = e\n if (target instanceof HTMLInputElement) {\n return target.type === 'checkbox' ? target.checked : target.value\n }\n return (target as any).value\n}\n\nfunction normalizeBlank(schema: z.ZodTypeAny): any {\n if (schema.safeParse(undefined).success) return undefined\n if (schema.safeParse(null).success) return null\n return undefined\n}\n\nfunction safeBigInt(value: string): bigint | undefined {\n try {\n return BigInt(value)\n } catch {\n return undefined\n }\n}\n\nfunction normalizeValue<T extends z.ZodTypeAny>(\n value: string | boolean,\n {\n schema,\n tryNumber,\n tryBigint,\n }: { schema: T; tryNumber: boolean; tryBigint: boolean }\n): DeepPartial<z.input<T>> | undefined {\n if (typeof value === 'boolean') return value as any\n if (typeof value === 'string' && !/\\S/.test(value)) {\n return normalizeBlank(schema)\n }\n if (typeof value === 'string' && !schema.safeParse(value).success) {\n if (tryNumber) {\n const num = Number(value)\n if (!isNaN(num)) return num as any\n }\n if (tryBigint) {\n const bigint = safeBigInt(value)\n if (bigint != null) return bigint as any\n }\n }\n return value as any\n}\n\nexport function useHtmlField<Field extends FieldPath>(\n options: UseHtmlFieldOptions<Field, Field['schema']>\n): UseHtmlFieldProps<Field>\nexport function useHtmlField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseHtmlField<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any,\n>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, Path>>\n): UseHtmlFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useHtmlField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseHtmlField<T> to pass a pathstring'\n >,\n Path extends PathstringInSchema<T> = any,\n>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, parsePathstring<Path>>>\n): UseHtmlFieldProps<FieldPath<SchemaAt<T, parsePathstring<Path>>>>\nexport function useHtmlField<T extends z.ZodTypeAny>({\n field,\n ...rest\n}: UseHtmlFieldOptions<FieldPath | BasePath, T>): UseHtmlFieldProps<any> {\n const { root } = useFormContext<T>()\n return useHtmlFieldBase({\n field: field instanceof FieldPath ? field : root.get(field as any),\n ...rest,\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useInitialize.js","names":["_react","_interopRequireDefault","require","_useFormContext2","useInitialize","options","deps","arguments","length","undefined","parsedValues","values","_useFormContext","useFormContext","initialize","React","useEffect"],"sources":["src/useInitialize.ts"],"sourcesContent":["import z from 'zod'\nimport React, { DependencyList } from 'react'\nimport { useFormContext } from './useFormContext'\nimport { InitializeAction } from './actions/initialize'\n\nexport function useInitialize<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'you must pass a schema type'\n >\n>(\n options: Omit<InitializeAction<T>, 'type'>,\n deps: DependencyList = [options.parsedValues, options.values]\n) {\n const { initialize } = useFormContext<T>()\n React.useEffect(() => {\n initialize(options)\n }, deps)\n}\n"],"mappings":";;;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAGO,SAASE,aAAaA,CAM3BC,OAA0C,EAE1C;EAAA,IADAC,IAAoB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAACF,OAAO,CAACK,YAAY,EAAEL,OAAO,CAACM,MAAM,CAAC;EAE7D,IAAAC,eAAA,GAAuB,IAAAC,+BAAc,EAAI,CAAC;IAAlCC,UAAU,GAAAF,eAAA,CAAVE,UAAU;EAClBC,iBAAK,CAACC,SAAS,CAAC,YAAM;IACpBF,UAAU,CAACT,OAAO,CAAC;EACrB,CAAC,EAAEC,IAAI,CAAC;AACV","ignoreList":[]}
1
+ {"version":3,"file":"useInitialize.js","names":["_react","_interopRequireDefault","require","_useFormContext2","useInitialize","options","deps","arguments","length","undefined","parsedValues","values","_useFormContext","useFormContext","initialize","React","useEffect"],"sources":["src/useInitialize.ts"],"sourcesContent":["import z from 'zod'\nimport React, { DependencyList } from 'react'\nimport { useFormContext } from './useFormContext'\nimport { InitializeAction } from './actions/initialize'\n\nexport function useInitialize<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'you must pass a schema type'\n >,\n>(\n options: Omit<InitializeAction<T>, 'type'>,\n deps: DependencyList = [options.parsedValues, options.values]\n) {\n const { initialize } = useFormContext<T>()\n React.useEffect(() => {\n initialize(options)\n }, deps)\n}\n"],"mappings":";;;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAGO,SAASE,aAAaA,CAM3BC,OAA0C,EAE1C;EAAA,IADAC,IAAoB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAACF,OAAO,CAACK,YAAY,EAAEL,OAAO,CAACM,MAAM,CAAC;EAE7D,IAAAC,eAAA,GAAuB,IAAAC,+BAAc,EAAI,CAAC;IAAlCC,UAAU,GAAAF,eAAA,CAAVE,UAAU;EAClBC,iBAAK,CAACC,SAAS,CAAC,YAAM;IACpBF,UAAU,CAACT,OAAO,CAAC;EACrB,CAAC,EAAEC,IAAI,CAAC;AACV","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useInitialize.mjs","names":["React","useFormContext","useInitialize","options","deps","parsedValues","values","initialize","useEffect"],"sources":["src/useInitialize.ts"],"sourcesContent":["import z from 'zod'\nimport React, { DependencyList } from 'react'\nimport { useFormContext } from './useFormContext'\nimport { InitializeAction } from './actions/initialize'\n\nexport function useInitialize<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'you must pass a schema type'\n >\n>(\n options: Omit<InitializeAction<T>, 'type'>,\n deps: DependencyList = [options.parsedValues, options.values]\n) {\n const { initialize } = useFormContext<T>()\n React.useEffect(() => {\n initialize(options)\n }, deps)\n}\n"],"mappings":"AACA,OAAOA,KAAK,MAA0B,OAAO;AAC7C,SAASC,cAAc;AAGvB,OAAO,SAASC,aAAaA,CAM3BC,OAA0C,EAC1CC,IAAoB,GAAG,CAACD,OAAO,CAACE,YAAY,EAAEF,OAAO,CAACG,MAAM,CAAC,EAC7D;EACA,MAAM;IAAEC;EAAW,CAAC,GAAGN,cAAc,CAAI,CAAC;EAC1CD,KAAK,CAACQ,SAAS,CAAC,MAAM;IACpBD,UAAU,CAACJ,OAAO,CAAC;EACrB,CAAC,EAAEC,IAAI,CAAC;AACV","ignoreList":[]}
1
+ {"version":3,"file":"useInitialize.mjs","names":["React","useFormContext","useInitialize","options","deps","parsedValues","values","initialize","useEffect"],"sources":["src/useInitialize.ts"],"sourcesContent":["import z from 'zod'\nimport React, { DependencyList } from 'react'\nimport { useFormContext } from './useFormContext'\nimport { InitializeAction } from './actions/initialize'\n\nexport function useInitialize<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'you must pass a schema type'\n >,\n>(\n options: Omit<InitializeAction<T>, 'type'>,\n deps: DependencyList = [options.parsedValues, options.values]\n) {\n const { initialize } = useFormContext<T>()\n React.useEffect(() => {\n initialize(options)\n }, deps)\n}\n"],"mappings":"AACA,OAAOA,KAAK,MAA0B,OAAO;AAC7C,SAASC,cAAc;AAGvB,OAAO,SAASC,aAAaA,CAM3BC,OAA0C,EAC1CC,IAAoB,GAAG,CAACD,OAAO,CAACE,YAAY,EAAEF,OAAO,CAACG,MAAM,CAAC,EAC7D;EACA,MAAM;IAAEC;EAAW,CAAC,GAAGN,cAAc,CAAI,CAAC;EAC1CD,KAAK,CAACQ,SAAS,CAAC,MAAM;IACpBD,UAAU,CAACJ,OAAO,CAAC;EACrB,CAAC,EAAEC,IAAI,CAAC;AACV","ignoreList":[]}
package/useSubmit.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"useSubmit.js","names":["_react","_interopRequireDefault","require","_useFormContext3","useSubmit","handlers","handlersRef","React","useRef","current","_useFormContext","useFormContext","addHandlers","removeHandlers","useEffect","onSubmit","_handlersRef$current","_handlersRef$current$","_len","arguments","length","args","Array","_key","call","apply","concat","onSubmitSucceeded","_handlersRef$current2","_handlersRef$current3","_len2","_key2","onSubmitFailed","_handlersRef$current4","_handlersRef$current5","_len3","_key3","_useFormContext2","submit","useCallback","e","preventDefault","stopPropagation"],"sources":["src/useSubmit.ts"],"sourcesContent":["import z from 'zod'\nimport { Handlers } from './actions/addHandlers'\nimport React from 'react'\nimport { useFormContext } from './useFormContext'\n\nexport function useSubmit<T extends z.ZodTypeAny = z.ZodUnknown>(\n handlers?: Handlers<T>\n) {\n const handlersRef = React.useRef<Handlers<T> | undefined>(handlers)\n handlersRef.current = handlers\n const { addHandlers, removeHandlers } = useFormContext<T>()\n React.useEffect(() => {\n const handlers: Handlers<T> = {\n onSubmit: (...args) => handlersRef.current?.onSubmit?.(...args),\n onSubmitSucceeded: (...args) =>\n handlersRef.current?.onSubmitSucceeded?.(...args),\n onSubmitFailed: (...args) =>\n handlersRef.current?.onSubmitFailed?.(...args),\n }\n addHandlers(handlers)\n return () => {\n removeHandlers(handlers)\n }\n }, [])\n const { submit } = useFormContext()\n return React.useCallback((e: React.FormEvent) => {\n e.preventDefault()\n e.stopPropagation()\n submit()\n }, [])\n}\n"],"mappings":";;;;;;;AAEA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAEO,SAASE,SAASA,CACvBC,QAAsB,EACtB;EACA,IAAMC,WAAW,GAAGC,iBAAK,CAACC,MAAM,CAA0BH,QAAQ,CAAC;EACnEC,WAAW,CAACG,OAAO,GAAGJ,QAAQ;EAC9B,IAAAK,eAAA,GAAwC,IAAAC,+BAAc,EAAI,CAAC;IAAnDC,WAAW,GAAAF,eAAA,CAAXE,WAAW;IAAEC,cAAc,GAAAH,eAAA,CAAdG,cAAc;EACnCN,iBAAK,CAACO,SAAS,CAAC,YAAM;IACpB,IAAMT,QAAqB,GAAG;MAC5BU,QAAQ,EAAE,SAAAA,SAAA;QAAA,IAAAC,oBAAA,EAAAC,qBAAA;QAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAIC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;UAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;QAAA;QAAA,QAAAP,oBAAA,GAAKV,WAAW,CAACG,OAAO,cAAAO,oBAAA,gBAAAC,qBAAA,GAAnBD,oBAAA,CAAqBD,QAAQ,cAAAE,qBAAA,uBAA7BA,qBAAA,CAAAO,IAAA,CAAAC,KAAA,CAAAR,qBAAA,GAAAD,oBAAA,EAAAU,MAAA,CAAmCL,IAAI,EAAC;MAAA;MAC/DM,iBAAiB,EAAE,SAAAA,kBAAA;QAAA,IAAAC,qBAAA,EAAAC,qBAAA;QAAA,SAAAC,KAAA,GAAAX,SAAA,CAAAC,MAAA,EAAIC,IAAI,OAAAC,KAAA,CAAAQ,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;UAAJV,IAAI,CAAAU,KAAA,IAAAZ,SAAA,CAAAY,KAAA;QAAA;QAAA,QAAAH,qBAAA,GACzBtB,WAAW,CAACG,OAAO,cAAAmB,qBAAA,gBAAAC,qBAAA,GAAnBD,qBAAA,CAAqBD,iBAAiB,cAAAE,qBAAA,uBAAtCA,qBAAA,CAAAL,IAAA,CAAAC,KAAA,CAAAI,qBAAA,GAAAD,qBAAA,EAAAF,MAAA,CAA4CL,IAAI,EAAC;MAAA;MACnDW,cAAc,EAAE,SAAAA,eAAA;QAAA,IAAAC,qBAAA,EAAAC,qBAAA;QAAA,SAAAC,KAAA,GAAAhB,SAAA,CAAAC,MAAA,EAAIC,IAAI,OAAAC,KAAA,CAAAa,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;UAAJf,IAAI,CAAAe,KAAA,IAAAjB,SAAA,CAAAiB,KAAA;QAAA;QAAA,QAAAH,qBAAA,GACtB3B,WAAW,CAACG,OAAO,cAAAwB,qBAAA,gBAAAC,qBAAA,GAAnBD,qBAAA,CAAqBD,cAAc,cAAAE,qBAAA,uBAAnCA,qBAAA,CAAAV,IAAA,CAAAC,KAAA,CAAAS,qBAAA,GAAAD,qBAAA,EAAAP,MAAA,CAAyCL,IAAI,EAAC;MAAA;IAClD,CAAC;IACDT,WAAW,CAACP,QAAQ,CAAC;IACrB,OAAO,YAAM;MACXQ,cAAc,CAACR,QAAQ,CAAC;IAC1B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EACN,IAAAgC,gBAAA,GAAmB,IAAA1B,+BAAc,EAAC,CAAC;IAA3B2B,MAAM,GAAAD,gBAAA,CAANC,MAAM;EACd,OAAO/B,iBAAK,CAACgC,WAAW,CAAC,UAACC,CAAkB,EAAK;IAC/CA,CAAC,CAACC,cAAc,CAAC,CAAC;IAClBD,CAAC,CAACE,eAAe,CAAC,CAAC;IACnBJ,MAAM,CAAC,CAAC;EACV,CAAC,EAAE,EAAE,CAAC;AACR","ignoreList":[]}
1
+ {"version":3,"file":"useSubmit.js","names":["_react","_interopRequireDefault","require","_useFormContext3","useSubmit","handlers","handlersRef","React","useRef","current","_useFormContext","useFormContext","addHandlers","removeHandlers","useEffect","onSubmit","_handlersRef$current","_handlersRef$current$","_len","arguments","length","args","Array","_key","call","apply","concat","onSubmitSucceeded","_handlersRef$current2","_handlersRef$current3","_len2","_key2","onSubmitFailed","_handlersRef$current4","_handlersRef$current5","_len3","_key3","_useFormContext2","submit","useCallback","e","preventDefault","stopPropagation"],"sources":["src/useSubmit.ts"],"sourcesContent":["import z from 'zod'\nimport { Handlers } from './actions/addHandlers'\nimport React from 'react'\nimport { useFormContext } from './useFormContext'\n\nexport function useSubmit<T extends z.ZodTypeAny = z.ZodUnknown>(\n handlers?: Handlers<T>\n) {\n const handlersRef = React.useRef<Handlers<T> | undefined>(handlers)\n handlersRef.current = handlers\n const { addHandlers, removeHandlers } = useFormContext<T>()\n React.useEffect(() => {\n const handlers: Handlers<T> = {\n onSubmit: (...args) => handlersRef.current?.onSubmit?.(...args),\n onSubmitSucceeded: (...args) =>\n handlersRef.current?.onSubmitSucceeded?.(...args),\n onSubmitFailed: (...args) =>\n handlersRef.current?.onSubmitFailed?.(...args),\n }\n addHandlers(handlers)\n return () => {\n removeHandlers(handlers)\n }\n }, [])\n const { submit } = useFormContext()\n return React.useCallback((e: React.FormEvent) => {\n e.preventDefault()\n e.stopPropagation()\n submit()\n }, [])\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DeepPartial.d.ts","sourceRoot":"","sources":["../../src/util/DeepPartial.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,GAAG,EAAE,GACjD;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACtC,CAAC,CAAA"}
1
+ {"version":3,"file":"DeepPartial.d.ts","sourceRoot":"","sources":["../../src/util/DeepPartial.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,CAAC,CAAC,IACvB,CAAC,SAAS,MAAM,GAAG,GAAG,EAAE,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"DeepPartial.js","names":[],"sources":["../../src/util/DeepPartial.ts"],"sourcesContent":["export type DeepPartial<T> = T extends object | any[]\n ? { [K in keyof T]?: DeepPartial<T[K]> }\n : T\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"DeepPartial.js","names":[],"sources":["../../src/util/DeepPartial.ts"],"sourcesContent":["export type DeepPartial<T> =\n T extends object | any[] ? { [K in keyof T]?: DeepPartial<T[K]> } : T\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DeepPartial.mjs","names":[],"sources":["../../src/util/DeepPartial.ts"],"sourcesContent":["export type DeepPartial<T> = T extends object | any[]\n ? { [K in keyof T]?: DeepPartial<T[K]> }\n : T\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"DeepPartial.mjs","names":[],"sources":["../../src/util/DeepPartial.ts"],"sourcesContent":["export type DeepPartial<T> =\n T extends object | any[] ? { [K in keyof T]?: DeepPartial<T[K]> } : T\n"],"mappings":"","ignoreList":[]}
@@ -1,7 +1,8 @@
1
1
  import { BasePath } from '../FieldPath';
2
2
  import { pathstring } from './pathstring';
3
3
  export type PathInType<T> = [] | SubPathInType<T>;
4
- type SubPathInType<T> = 0 extends 1 & T ? BasePath : T extends string | number | boolean | bigint | symbol | null | undefined | void | never | ((...args: any[]) => any) ? [] : T extends readonly any[] ? {
4
+ type SubPathInType<T> = 0 extends 1 & T ? BasePath : T extends (string | number | boolean | bigint | symbol | null | undefined | void | ((...args: any[]) => any)) ? [
5
+ ] : T extends readonly any[] ? {
5
6
  [K in keyof T & number]-?: [K, ...PathInType<T[K]>];
6
7
  }[keyof T & number] : {
7
8
  [K in keyof T]-?: K extends symbol ? never : [K, ...PathInType<T[K]>];
@@ -1 +1 @@
1
- {"version":3,"file":"PathInType.d.ts","sourceRoot":"","sources":["../../src/util/PathInType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;AAEjD,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GACnC,QAAQ,GACR,CAAC,SACG,MAAM,GACN,MAAM,GACN,OAAO,GACP,MAAM,GACN,MAAM,GACN,IAAI,GACJ,SAAS,GACT,IAAI,GACJ,KAAK,GACL,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAC7B,EAAE,GACF,CAAC,SAAS,SAAS,GAAG,EAAE,GACxB;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GACzE;KACG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACtE,CAAC,MAAM,CAAC,CAAC,CAAA;AAEd,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"PathInType.d.ts","sourceRoot":"","sources":["../../src/util/PathInType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;AAEjD,KAAK,aAAa,CAAC,CAAC,IAClB,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,QAAQ,GACxB,CAAC,SAAS,CACR,MAAM,GACN,MAAM,GACN,OAAO,GACP,MAAM,GACN,MAAM,GACN,IAAI,GACJ,SAAS,GACT,IAAI,GACJ,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAC5B,GACC;CAAE,GACF,CAAC,SAAS,SAAS,GAAG,EAAE,GACxB;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GACzE;KACG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACtE,CAAC,MAAM,CAAC,CAAC,CAAA;AAEd,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"PathInType.js","names":[],"sources":["../../src/util/PathInType.ts"],"sourcesContent":["import { BasePath } from '../FieldPath'\nimport { pathstring } from './pathstring'\n\nexport type PathInType<T> = [] | SubPathInType<T>\n\ntype SubPathInType<T> = 0 extends 1 & T\n ? BasePath\n : T extends\n | string\n | number\n | boolean\n | bigint\n | symbol\n | null\n | undefined\n | void\n | never\n | ((...args: any[]) => any)\n ? []\n : T extends readonly any[]\n ? { [K in keyof T & number]-?: [K, ...PathInType<T[K]>] }[keyof T & number]\n : {\n [K in keyof T]-?: K extends symbol ? never : [K, ...PathInType<T[K]>]\n }[keyof T]\n\nexport type PathstringInType<T> = pathstring<PathInType<T>>\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"PathInType.js","names":[],"sources":["../../src/util/PathInType.ts"],"sourcesContent":["import { BasePath } from '../FieldPath'\nimport { pathstring } from './pathstring'\n\nexport type PathInType<T> = [] | SubPathInType<T>\n\ntype SubPathInType<T> =\n 0 extends 1 & T ? BasePath\n : T extends (\n | string\n | number\n | boolean\n | bigint\n | symbol\n | null\n | undefined\n | void\n | ((...args: any[]) => any)\n ) ?\n []\n : T extends readonly any[] ?\n { [K in keyof T & number]-?: [K, ...PathInType<T[K]>] }[keyof T & number]\n : {\n [K in keyof T]-?: K extends symbol ? never : [K, ...PathInType<T[K]>]\n }[keyof T]\n\nexport type PathstringInType<T> = pathstring<PathInType<T>>\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"PathInType.mjs","names":[],"sources":["../../src/util/PathInType.ts"],"sourcesContent":["import { BasePath } from '../FieldPath'\nimport { pathstring } from './pathstring'\n\nexport type PathInType<T> = [] | SubPathInType<T>\n\ntype SubPathInType<T> = 0 extends 1 & T\n ? BasePath\n : T extends\n | string\n | number\n | boolean\n | bigint\n | symbol\n | null\n | undefined\n | void\n | never\n | ((...args: any[]) => any)\n ? []\n : T extends readonly any[]\n ? { [K in keyof T & number]-?: [K, ...PathInType<T[K]>] }[keyof T & number]\n : {\n [K in keyof T]-?: K extends symbol ? never : [K, ...PathInType<T[K]>]\n }[keyof T]\n\nexport type PathstringInType<T> = pathstring<PathInType<T>>\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"PathInType.mjs","names":[],"sources":["../../src/util/PathInType.ts"],"sourcesContent":["import { BasePath } from '../FieldPath'\nimport { pathstring } from './pathstring'\n\nexport type PathInType<T> = [] | SubPathInType<T>\n\ntype SubPathInType<T> =\n 0 extends 1 & T ? BasePath\n : T extends (\n | string\n | number\n | boolean\n | bigint\n | symbol\n | null\n | undefined\n | void\n | ((...args: any[]) => any)\n ) ?\n []\n : T extends readonly any[] ?\n { [K in keyof T & number]-?: [K, ...PathInType<T[K]>] }[keyof T & number]\n : {\n [K in keyof T]-?: K extends symbol ? never : [K, ...PathInType<T[K]>]\n }[keyof T]\n\nexport type PathstringInType<T> = pathstring<PathInType<T>>\n"],"mappings":"","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import z from 'zod';
2
2
  type BasePath = (string | number)[];
3
- export type SchemaAt<T extends z.ZodTypeAny, Path> = 0 extends 1 & Path ? z.ZodTypeAny : 0 extends 1 & T ? z.ZodTypeAny : 0 extends 1 & z.input<T> ? z.ZodTypeAny : Path extends [infer Head, ...infer Tail extends BasePath] ? T extends z.ZodLazy<infer U> ? SchemaAt<U, Path> : T extends z.ZodCatch<infer U> ? SchemaAt<U, Path> : T extends z.ZodBranded<infer U, any> ? SchemaAt<U, Path> : T extends z.ZodOptional<infer U> ? SchemaAt<U, Path> : T extends z.ZodDefault<infer U> ? SchemaAt<U, Path> : T extends z.ZodNullable<infer U> ? SchemaAt<U, Path> : T extends z.ZodUnion<infer Options> ? SchemaAt<Options[number], Path> : T extends z.ZodDiscriminatedUnion<any, infer Options> ? SchemaAt<Options[number], Path> : T extends z.ZodPipeline<infer In, any> ? SchemaAt<In, Path> : T extends z.ZodEffects<infer U> ? SchemaAt<U, Path> : T extends z.ZodReadonly<infer U> ? SchemaAt<U, Path> : T extends z.ZodRecord<infer Key, infer Value> ? Head extends z.input<Key> ? SchemaAt<Value, Tail> : never : T extends z.ZodMap<infer Key, infer Value> ? Head extends z.input<Key> ? SchemaAt<Value, Tail> : never : T extends z.ZodObject<infer Shape, infer UnknownKeys, infer Catchall extends z.ZodTypeAny> ? Head extends keyof Shape ? SchemaAt<Shape[Head], Tail> : UnknownKeys extends 'passthrough' ? SchemaAt<Catchall, Tail> : never : T extends z.ZodTuple<infer Elements extends [z.ZodTypeAny, ...z.ZodTypeAny[]], infer Rest> ? Head extends number & keyof Elements ? SchemaAt<Elements[Head], Tail> : Rest extends z.ZodTypeAny ? Head extends number ? SchemaAt<Rest, Tail> : never : never : T extends z.ZodArray<infer Element> ? Head extends number ? SchemaAt<Element, Tail> : never : never : T;
3
+ export type SchemaAt<T extends z.ZodTypeAny, Path> = 0 extends 1 & Path ? z.ZodTypeAny : 0 extends 1 & T ? z.ZodTypeAny : 0 extends 1 & z.input<T> ? z.ZodTypeAny : Path extends [infer Head, ...infer Tail extends BasePath] ? T extends z.ZodLazy<infer U> ? SchemaAt<U, Path> : T extends z.ZodCatch<infer U> ? SchemaAt<U, Path> : T extends z.ZodBranded<infer U, any> ? SchemaAt<U, Path> : T extends z.ZodOptional<infer U> ? SchemaAt<U, Path> : T extends z.ZodDefault<infer U> ? SchemaAt<U, Path> : T extends z.ZodNullable<infer U> ? SchemaAt<U, Path> : T extends z.ZodUnion<infer Options> ? SchemaAt<Options[number], Path> : T extends z.ZodDiscriminatedUnion<any, infer Options> ? SchemaAt<Options[number], Path> : T extends z.ZodPipeline<infer In, any> ? SchemaAt<In, Path> : T extends z.ZodEffects<infer U> ? SchemaAt<U, Path> : T extends z.ZodReadonly<infer U> ? SchemaAt<U, Path> : T extends z.ZodRecord<infer Key, infer Value> ? Head extends z.input<Key> ? SchemaAt<Value, Tail> : never : T extends z.ZodMap<infer Key, infer Value> ? Head extends z.input<Key> ? SchemaAt<Value, Tail> : never : T extends (z.ZodObject<infer Shape, infer UnknownKeys, infer Catchall extends z.ZodTypeAny>) ? Head extends keyof Shape ? SchemaAt<Shape[Head], Tail> : UnknownKeys extends 'passthrough' ? SchemaAt<Catchall, Tail> : never : T extends (z.ZodTuple<infer Elements extends [z.ZodTypeAny, ...z.ZodTypeAny[]], infer Rest>) ? Head extends number & keyof Elements ? SchemaAt<Elements[Head], Tail> : Rest extends z.ZodTypeAny ? Head extends number ? SchemaAt<Rest, Tail> : never : never : T extends z.ZodArray<infer Element> ? Head extends number ? SchemaAt<Element, Tail> : never : never : T;
4
4
  export {};
5
5
  //# sourceMappingURL=SchemaAt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaAt.d.ts","sourceRoot":"","sources":["../../src/util/SchemaAt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SchemaAt.d.ts","sourceRoot":"","sources":["../../src/util/SchemaAt.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaAt.js","names":[],"sources":["../../src/util/SchemaAt.ts"],"sourcesContent":["import z from 'zod'\n\ntype BasePath = (string | number)[]\n\nexport type SchemaAt<T extends z.ZodTypeAny, Path> = 0 extends 1 & Path\n ? z.ZodTypeAny\n : 0 extends 1 & T\n ? z.ZodTypeAny\n : 0 extends 1 & z.input<T>\n ? z.ZodTypeAny\n : Path extends [infer Head, ...infer Tail extends BasePath]\n ? T extends z.ZodLazy<infer U>\n ? SchemaAt<U, Path>\n : T extends z.ZodCatch<infer U>\n ? SchemaAt<U, Path>\n : T extends z.ZodBranded<infer U, any>\n ? SchemaAt<U, Path>\n : T extends z.ZodOptional<infer U>\n ? SchemaAt<U, Path>\n : T extends z.ZodDefault<infer U>\n ? SchemaAt<U, Path>\n : T extends z.ZodNullable<infer U>\n ? SchemaAt<U, Path>\n : T extends z.ZodUnion<infer Options>\n ? SchemaAt<Options[number], Path>\n : T extends z.ZodDiscriminatedUnion<any, infer Options>\n ? SchemaAt<Options[number], Path>\n : T extends z.ZodPipeline<infer In, any>\n ? SchemaAt<In, Path>\n : T extends z.ZodEffects<infer U>\n ? SchemaAt<U, Path>\n : T extends z.ZodReadonly<infer U>\n ? SchemaAt<U, Path>\n : T extends z.ZodRecord<infer Key, infer Value>\n ? Head extends z.input<Key>\n ? SchemaAt<Value, Tail>\n : never\n : T extends z.ZodMap<infer Key, infer Value>\n ? Head extends z.input<Key>\n ? SchemaAt<Value, Tail>\n : never\n : T extends z.ZodObject<\n infer Shape,\n infer UnknownKeys,\n infer Catchall extends z.ZodTypeAny\n >\n ? Head extends keyof Shape\n ? SchemaAt<Shape[Head], Tail>\n : UnknownKeys extends 'passthrough'\n ? SchemaAt<Catchall, Tail>\n : never\n : T extends z.ZodTuple<\n infer Elements extends [z.ZodTypeAny, ...z.ZodTypeAny[]],\n infer Rest\n >\n ? Head extends number & keyof Elements\n ? SchemaAt<Elements[Head], Tail>\n : Rest extends z.ZodTypeAny\n ? Head extends number\n ? SchemaAt<Rest, Tail>\n : never\n : never\n : T extends z.ZodArray<infer Element>\n ? Head extends number\n ? SchemaAt<Element, Tail>\n : never\n : never\n : T\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"SchemaAt.js","names":[],"sources":["../../src/util/SchemaAt.ts"],"sourcesContent":["import z from 'zod'\n\ntype BasePath = (string | number)[]\n\nexport type SchemaAt<T extends z.ZodTypeAny, Path> =\n 0 extends 1 & Path ? z.ZodTypeAny\n : 0 extends 1 & T ? z.ZodTypeAny\n : 0 extends 1 & z.input<T> ? z.ZodTypeAny\n : Path extends [infer Head, ...infer Tail extends BasePath] ?\n T extends z.ZodLazy<infer U> ? SchemaAt<U, Path>\n : T extends z.ZodCatch<infer U> ? SchemaAt<U, Path>\n : T extends z.ZodBranded<infer U, any> ? SchemaAt<U, Path>\n : T extends z.ZodOptional<infer U> ? SchemaAt<U, Path>\n : T extends z.ZodDefault<infer U> ? SchemaAt<U, Path>\n : T extends z.ZodNullable<infer U> ? SchemaAt<U, Path>\n : T extends z.ZodUnion<infer Options> ? SchemaAt<Options[number], Path>\n : T extends z.ZodDiscriminatedUnion<any, infer Options> ?\n SchemaAt<Options[number], Path>\n : T extends z.ZodPipeline<infer In, any> ? SchemaAt<In, Path>\n : T extends z.ZodEffects<infer U> ? SchemaAt<U, Path>\n : T extends z.ZodReadonly<infer U> ? SchemaAt<U, Path>\n : T extends z.ZodRecord<infer Key, infer Value> ?\n Head extends z.input<Key> ?\n SchemaAt<Value, Tail>\n : never\n : T extends z.ZodMap<infer Key, infer Value> ?\n Head extends z.input<Key> ?\n SchemaAt<Value, Tail>\n : never\n : T extends (\n z.ZodObject<\n infer Shape,\n infer UnknownKeys,\n infer Catchall extends z.ZodTypeAny\n >\n ) ?\n Head extends keyof Shape ? SchemaAt<Shape[Head], Tail>\n : UnknownKeys extends 'passthrough' ? SchemaAt<Catchall, Tail>\n : never\n : T extends (\n z.ZodTuple<\n infer Elements extends [z.ZodTypeAny, ...z.ZodTypeAny[]],\n infer Rest\n >\n ) ?\n Head extends number & keyof Elements ? SchemaAt<Elements[Head], Tail>\n : Rest extends z.ZodTypeAny ?\n Head extends number ?\n SchemaAt<Rest, Tail>\n : never\n : never\n : T extends z.ZodArray<infer Element> ?\n Head extends number ?\n SchemaAt<Element, Tail>\n : never\n : never\n : T\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaAt.mjs","names":[],"sources":["../../src/util/SchemaAt.ts"],"sourcesContent":["import z from 'zod'\n\ntype BasePath = (string | number)[]\n\nexport type SchemaAt<T extends z.ZodTypeAny, Path> = 0 extends 1 & Path\n ? z.ZodTypeAny\n : 0 extends 1 & T\n ? z.ZodTypeAny\n : 0 extends 1 & z.input<T>\n ? z.ZodTypeAny\n : Path extends [infer Head, ...infer Tail extends BasePath]\n ? T extends z.ZodLazy<infer U>\n ? SchemaAt<U, Path>\n : T extends z.ZodCatch<infer U>\n ? SchemaAt<U, Path>\n : T extends z.ZodBranded<infer U, any>\n ? SchemaAt<U, Path>\n : T extends z.ZodOptional<infer U>\n ? SchemaAt<U, Path>\n : T extends z.ZodDefault<infer U>\n ? SchemaAt<U, Path>\n : T extends z.ZodNullable<infer U>\n ? SchemaAt<U, Path>\n : T extends z.ZodUnion<infer Options>\n ? SchemaAt<Options[number], Path>\n : T extends z.ZodDiscriminatedUnion<any, infer Options>\n ? SchemaAt<Options[number], Path>\n : T extends z.ZodPipeline<infer In, any>\n ? SchemaAt<In, Path>\n : T extends z.ZodEffects<infer U>\n ? SchemaAt<U, Path>\n : T extends z.ZodReadonly<infer U>\n ? SchemaAt<U, Path>\n : T extends z.ZodRecord<infer Key, infer Value>\n ? Head extends z.input<Key>\n ? SchemaAt<Value, Tail>\n : never\n : T extends z.ZodMap<infer Key, infer Value>\n ? Head extends z.input<Key>\n ? SchemaAt<Value, Tail>\n : never\n : T extends z.ZodObject<\n infer Shape,\n infer UnknownKeys,\n infer Catchall extends z.ZodTypeAny\n >\n ? Head extends keyof Shape\n ? SchemaAt<Shape[Head], Tail>\n : UnknownKeys extends 'passthrough'\n ? SchemaAt<Catchall, Tail>\n : never\n : T extends z.ZodTuple<\n infer Elements extends [z.ZodTypeAny, ...z.ZodTypeAny[]],\n infer Rest\n >\n ? Head extends number & keyof Elements\n ? SchemaAt<Elements[Head], Tail>\n : Rest extends z.ZodTypeAny\n ? Head extends number\n ? SchemaAt<Rest, Tail>\n : never\n : never\n : T extends z.ZodArray<infer Element>\n ? Head extends number\n ? SchemaAt<Element, Tail>\n : never\n : never\n : T\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"SchemaAt.mjs","names":[],"sources":["../../src/util/SchemaAt.ts"],"sourcesContent":["import z from 'zod'\n\ntype BasePath = (string | number)[]\n\nexport type SchemaAt<T extends z.ZodTypeAny, Path> =\n 0 extends 1 & Path ? z.ZodTypeAny\n : 0 extends 1 & T ? z.ZodTypeAny\n : 0 extends 1 & z.input<T> ? z.ZodTypeAny\n : Path extends [infer Head, ...infer Tail extends BasePath] ?\n T extends z.ZodLazy<infer U> ? SchemaAt<U, Path>\n : T extends z.ZodCatch<infer U> ? SchemaAt<U, Path>\n : T extends z.ZodBranded<infer U, any> ? SchemaAt<U, Path>\n : T extends z.ZodOptional<infer U> ? SchemaAt<U, Path>\n : T extends z.ZodDefault<infer U> ? SchemaAt<U, Path>\n : T extends z.ZodNullable<infer U> ? SchemaAt<U, Path>\n : T extends z.ZodUnion<infer Options> ? SchemaAt<Options[number], Path>\n : T extends z.ZodDiscriminatedUnion<any, infer Options> ?\n SchemaAt<Options[number], Path>\n : T extends z.ZodPipeline<infer In, any> ? SchemaAt<In, Path>\n : T extends z.ZodEffects<infer U> ? SchemaAt<U, Path>\n : T extends z.ZodReadonly<infer U> ? SchemaAt<U, Path>\n : T extends z.ZodRecord<infer Key, infer Value> ?\n Head extends z.input<Key> ?\n SchemaAt<Value, Tail>\n : never\n : T extends z.ZodMap<infer Key, infer Value> ?\n Head extends z.input<Key> ?\n SchemaAt<Value, Tail>\n : never\n : T extends (\n z.ZodObject<\n infer Shape,\n infer UnknownKeys,\n infer Catchall extends z.ZodTypeAny\n >\n ) ?\n Head extends keyof Shape ? SchemaAt<Shape[Head], Tail>\n : UnknownKeys extends 'passthrough' ? SchemaAt<Catchall, Tail>\n : never\n : T extends (\n z.ZodTuple<\n infer Elements extends [z.ZodTypeAny, ...z.ZodTypeAny[]],\n infer Rest\n >\n ) ?\n Head extends number & keyof Elements ? SchemaAt<Elements[Head], Tail>\n : Rest extends z.ZodTypeAny ?\n Head extends number ?\n SchemaAt<Rest, Tail>\n : never\n : never\n : T extends z.ZodArray<infer Element> ?\n Head extends number ?\n SchemaAt<Element, Tail>\n : never\n : never\n : T\n"],"mappings":"","ignoreList":[]}
@@ -2,6 +2,6 @@ import { FieldPath } from '../FieldPath';
2
2
  export declare function bindActionsToField<Field extends FieldPath, Actions extends {
3
3
  [K in string]: (field: Field, ...rest: any[]) => any;
4
4
  }>(actions: Actions, field: Field): {
5
- [K in keyof Actions]: Actions[K] extends (field: Field, ...rest: infer Rest) => infer Return ? (...rest: Rest) => Return : never;
5
+ [K in keyof Actions]: Actions[K] extends ((field: Field, ...rest: infer Rest) => infer Return) ? (...rest: Rest) => Return : never;
6
6
  };
7
7
  //# sourceMappingURL=bindActionsToField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bindActionsToField.d.ts","sourceRoot":"","sources":["../../src/util/bindActionsToField.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,wBAAgB,kBAAkB,CAChC,KAAK,SAAS,SAAS,EACvB,OAAO,SAAS;KACb,CAAC,IAAI,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;CACrD,EAED,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,GACX;KACA,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CACvC,KAAK,EAAE,KAAK,EACZ,GAAG,IAAI,EAAE,MAAM,IAAI,KAChB,MAAM,MAAM,GACb,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,GACzB,KAAK;CACV,CAOA"}
1
+ {"version":3,"file":"bindActionsToField.d.ts","sourceRoot":"","sources":["../../src/util/bindActionsToField.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,wBAAgB,kBAAkB,CAChC,KAAK,SAAS,SAAS,EACvB,OAAO,SAAS;KACb,CAAC,IAAI,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;CACrD,EAED,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,GACX;KACA,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CACvC,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,MAAM,MAAM,CACpD,GACC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,GACzB,KAAK;CACR,CAOA"}
@@ -1 +1 @@
1
- {"version":3,"file":"bindActionsToField.js","names":["bindActionsToField","actions","field","Object","fromEntries","entries","map","_ref","_ref2","_slicedToArray2","key","action","_len","arguments","length","args","Array","_key","apply","concat"],"sources":["../../src/util/bindActionsToField.ts"],"sourcesContent":["import { FieldPath } from '../FieldPath'\n\nexport function bindActionsToField<\n Field extends FieldPath,\n Actions extends {\n [K in string]: (field: Field, ...rest: any[]) => any\n }\n>(\n actions: Actions,\n field: Field\n): {\n [K in keyof Actions]: Actions[K] extends (\n field: Field,\n ...rest: infer Rest\n ) => infer Return\n ? (...rest: Rest) => Return\n : never\n} {\n return Object.fromEntries(\n Object.entries(actions).map(([key, action]: any) => [\n key,\n (...args: any[]) => action(field, ...args),\n ])\n ) as any\n}\n"],"mappings":";;;;;;;;AAEO,SAASA,kBAAkBA,CAMhCC,OAAgB,EAChBC,KAAY,EAQZ;EACA,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACJ,OAAO,CAAC,CAACK,GAAG,CAAC,UAAAC,IAAA;IAAA,IAAAC,KAAA,OAAAC,eAAA,aAAAF,IAAA;MAAEG,GAAG,GAAAF,KAAA;MAAEG,MAAM,GAAAH,KAAA;IAAA,OAAW,CAClDE,GAAG,EACH;MAAA,SAAAE,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAIC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;QAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;MAAA;MAAA,OAAYN,MAAM,CAAAO,KAAA,UAAChB,KAAK,EAAAiB,MAAA,CAAKJ,IAAI,EAAC;IAAA,EAC3C;EAAA,EACH,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"bindActionsToField.js","names":["bindActionsToField","actions","field","Object","fromEntries","entries","map","_ref","_ref2","_slicedToArray2","key","action","_len","arguments","length","args","Array","_key","apply","concat"],"sources":["../../src/util/bindActionsToField.ts"],"sourcesContent":["import { FieldPath } from '../FieldPath'\n\nexport function bindActionsToField<\n Field extends FieldPath,\n Actions extends {\n [K in string]: (field: Field, ...rest: any[]) => any\n },\n>(\n actions: Actions,\n field: Field\n): {\n [K in keyof Actions]: Actions[K] extends (\n (field: Field, ...rest: infer Rest) => infer Return\n ) ?\n (...rest: Rest) => Return\n : never\n} {\n return Object.fromEntries(\n Object.entries(actions).map(([key, action]: any) => [\n key,\n (...args: any[]) => action(field, ...args),\n ])\n )\n}\n"],"mappings":";;;;;;;;AAEO,SAASA,kBAAkBA,CAMhCC,OAAgB,EAChBC,KAAY,EAOZ;EACA,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACJ,OAAO,CAAC,CAACK,GAAG,CAAC,UAAAC,IAAA;IAAA,IAAAC,KAAA,OAAAC,eAAA,aAAAF,IAAA;MAAEG,GAAG,GAAAF,KAAA;MAAEG,MAAM,GAAAH,KAAA;IAAA,OAAW,CAClDE,GAAG,EACH;MAAA,SAAAE,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAIC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;QAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;MAAA;MAAA,OAAYN,MAAM,CAAAO,KAAA,UAAChB,KAAK,EAAAiB,MAAA,CAAKJ,IAAI,EAAC;IAAA,EAC3C;EAAA,EACH,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"bindActionsToField.mjs","names":["bindActionsToField","actions","field","Object","fromEntries","entries","map","key","action","args"],"sources":["../../src/util/bindActionsToField.ts"],"sourcesContent":["import { FieldPath } from '../FieldPath'\n\nexport function bindActionsToField<\n Field extends FieldPath,\n Actions extends {\n [K in string]: (field: Field, ...rest: any[]) => any\n }\n>(\n actions: Actions,\n field: Field\n): {\n [K in keyof Actions]: Actions[K] extends (\n field: Field,\n ...rest: infer Rest\n ) => infer Return\n ? (...rest: Rest) => Return\n : never\n} {\n return Object.fromEntries(\n Object.entries(actions).map(([key, action]: any) => [\n key,\n (...args: any[]) => action(field, ...args),\n ])\n ) as any\n}\n"],"mappings":"AAEA,OAAO,SAASA,kBAAkBA,CAMhCC,OAAgB,EAChBC,KAAY,EAQZ;EACA,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACJ,OAAO,CAAC,CAACK,GAAG,CAAC,CAAC,CAACC,GAAG,EAAEC,MAAM,CAAM,KAAK,CAClDD,GAAG,EACH,CAAC,GAAGE,IAAW,KAAKD,MAAM,CAACN,KAAK,EAAE,GAAGO,IAAI,CAAC,CAC3C,CACH,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"bindActionsToField.mjs","names":["bindActionsToField","actions","field","Object","fromEntries","entries","map","key","action","args"],"sources":["../../src/util/bindActionsToField.ts"],"sourcesContent":["import { FieldPath } from '../FieldPath'\n\nexport function bindActionsToField<\n Field extends FieldPath,\n Actions extends {\n [K in string]: (field: Field, ...rest: any[]) => any\n },\n>(\n actions: Actions,\n field: Field\n): {\n [K in keyof Actions]: Actions[K] extends (\n (field: Field, ...rest: infer Rest) => infer Return\n ) ?\n (...rest: Rest) => Return\n : never\n} {\n return Object.fromEntries(\n Object.entries(actions).map(([key, action]: any) => [\n key,\n (...args: any[]) => action(field, ...args),\n ])\n )\n}\n"],"mappings":"AAEA,OAAO,SAASA,kBAAkBA,CAMhCC,OAAgB,EAChBC,KAAY,EAOZ;EACA,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACJ,OAAO,CAAC,CAACK,GAAG,CAAC,CAAC,CAACC,GAAG,EAAEC,MAAM,CAAM,KAAK,CAClDD,GAAG,EACH,CAAC,GAAGE,IAAW,KAAKD,MAAM,CAACN,KAAK,EAAE,GAAGO,IAAI,CAAC,CAC3C,CACH,CAAC;AACH","ignoreList":[]}
@@ -1,17 +1,30 @@
1
1
  import { BasePath } from '../FieldPath';
2
2
  export type parsePathstring<Path extends string, IsTail = false> = [
3
3
  Path
4
- ] extends [''] ? [] : [Path] extends [`[${infer Rest}`] ? Rest extends `${infer N extends number}]${infer Tail}` ? [N, ...parsePathstring<Tail, true>] : ExtractInitialStringLiteral<Rest> extends infer StringLiteral extends string ? [
4
+ ] extends [''] ? [] : [Path] extends [`[${infer Rest}`] ? Rest extends `${infer N extends number}]${infer Tail}` ? [
5
+ N,
6
+ ...parsePathstring<Tail, true>
7
+ ] : ExtractInitialStringLiteral<Rest> extends (infer StringLiteral extends string) ? [
5
8
  ProcessStringLiteral<StringLiteral>,
6
9
  ...(Rest extends `${StringLiteral}]${infer Tail}` ? parsePathstring<Tail, true> : never)
7
- ] : never : [IsTail] extends [true] ? [Path] extends [`.${infer Rest}`] ? parsePathstring<Rest> : never : [Path] extends [`${infer Head}[${infer Tail}`] ? [Path] extends [`${infer Head2}.${infer Tail2}`] ? Head2 extends `${Head}[${string}` ? [Head, ...parsePathstring<`[${Tail}`, true>] : [Head2, ...parsePathstring<`.${Tail2}`, true>] : [Head, ...parsePathstring<`[${Tail}`, true>] : [Path] extends [`${infer Head}.${infer Tail}`] ? [Head, ...parsePathstring<`.${Tail}`, true>] : [Path];
10
+ ] : never : [IsTail] extends [true] ? [
11
+ Path
12
+ ] extends [`.${infer Rest}`] ? parsePathstring<Rest> : never : [Path] extends [`${infer Head}[${infer Tail}`] ? [
13
+ Path
14
+ ] extends [`${infer Head2}.${infer Tail2}`] ? Head2 extends (`${Head}[${string}`) ? [
15
+ Head,
16
+ ...parsePathstring<`[${Tail}`, true>
17
+ ] : [Head2, ...parsePathstring<`.${Tail2}`, true>] : [Head, ...parsePathstring<`[${Tail}`, true>] : [Path] extends [`${infer Head}.${infer Tail}`] ? [
18
+ Head,
19
+ ...parsePathstring<`.${Tail}`, true>
20
+ ] : [Path];
8
21
  /**
9
22
  * If T starts with a quoted string literal, returns that string literal.
10
23
  * Otherwise returns never
11
24
  */
12
- type ExtractInitialStringLiteral<T extends string> = [T] extends [
13
- `"${infer Rest}`
14
- ] ? `"${RestOfStringLiteral<Rest, '"'>}` : [T] extends [`'${infer Rest}`] ? `'${RestOfStringLiteral<Rest, "'">}` : never;
25
+ type ExtractInitialStringLiteral<T extends string> = [
26
+ T
27
+ ] extends [`"${infer Rest}`] ? `"${RestOfStringLiteral<Rest, '"'>}` : [T] extends [`'${infer Rest}`] ? `'${RestOfStringLiteral<Rest, "'">}` : never;
15
28
  type RestOfStringLiteral<
16
29
  /**
17
30
  * A substring right after an opening quote
@@ -20,7 +33,11 @@ T extends string,
20
33
  /**
21
34
  * The opening quote type
22
35
  */
23
- Q extends '"' | "'"> = [T] extends [`${infer A}${Q}${infer B}`] ? A extends `${infer C}\\${infer D}` ? D extends '' ? `${A}${Q}${RestOfStringLiteral<B, Q>}` : D extends `${infer E extends keyof EscapeChars}${infer F}` ? `${C}\\${E}${RestOfStringLiteral<`${F}${Q}${B}`, Q>}` : never : `${A}${Q}` : never;
36
+ Q extends '"' | "'"> = [
37
+ T
38
+ ] extends ([
39
+ `${infer A}${Q}${infer B}`
40
+ ]) ? A extends (`${infer C}\\${infer D}`) ? D extends ('') ? `${A}${Q}${RestOfStringLiteral<B, Q>}` : D extends `${infer E extends keyof EscapeChars}${infer F}` ? `${C}\\${E}${RestOfStringLiteral<`${F}${Q}${B}`, Q>}` : never : `${A}${Q}` : never;
24
41
  type EscapeChars = typeof EscapeChars;
25
42
  declare const EscapeChars: {
26
43
  readonly "'": "'";
@@ -1 +1 @@
1
- {"version":3,"file":"parsePathstring.d.ts","sourceRoot":"","sources":["../../src/util/parsePathstring.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parsePathstring.d.ts","sourceRoot":"","sources":["../../src/util/parsePathstring.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parsePathstring.js","names":["EscapeChars","b","f","n","r","t","v","pathstringRx","parsePathstring","pathstring","path","lastIndex","_iterator","_createForOfIteratorHelper","matchAll","_step","s","done","match","value","index","Error","concat","length","push","parseInt","substring","replace","m","err","e"],"sources":["../../src/util/parsePathstring.ts"],"sourcesContent":["import { BasePath } from '../FieldPath'\n\nexport type parsePathstring<Path extends string, IsTail = false> = [\n Path\n] extends ['']\n ? []\n : [Path] extends [`[${infer Rest}`]\n ? Rest extends `${infer N extends number}]${infer Tail}`\n ? [N, ...parsePathstring<Tail, true>]\n : ExtractInitialStringLiteral<Rest> extends infer StringLiteral extends string\n ? [\n ProcessStringLiteral<StringLiteral>,\n ...(Rest extends `${StringLiteral}]${infer Tail}`\n ? parsePathstring<Tail, true>\n : never)\n ]\n : never\n : [IsTail] extends [true]\n ? [Path] extends [`.${infer Rest}`]\n ? parsePathstring<Rest>\n : never\n : [Path] extends [`${infer Head}[${infer Tail}`]\n ? [Path] extends [`${infer Head2}.${infer Tail2}`]\n ? Head2 extends `${Head}[${string}` // make sure we pick up to . or [, whichever comes first\n ? [Head, ...parsePathstring<`[${Tail}`, true>]\n : [Head2, ...parsePathstring<`.${Tail2}`, true>]\n : [Head, ...parsePathstring<`[${Tail}`, true>]\n : [Path] extends [`${infer Head}.${infer Tail}`]\n ? [Head, ...parsePathstring<`.${Tail}`, true>]\n : [Path]\n\n/**\n * If T starts with a quoted string literal, returns that string literal.\n * Otherwise returns never\n */\ntype ExtractInitialStringLiteral<T extends string> = [T] extends [\n `\"${infer Rest}`\n]\n ? `\"${RestOfStringLiteral<Rest, '\"'>}`\n : [T] extends [`'${infer Rest}`]\n ? `'${RestOfStringLiteral<Rest, \"'\">}`\n : never\n\ntype RestOfStringLiteral<\n /**\n * A substring right after an opening quote\n */\n T extends string,\n /**\n * The opening quote type\n */\n Q extends '\"' | \"'\"\n> = [T] extends [`${infer A}${Q}${infer B}`] // find the next quote\n ? A extends `${infer C}\\\\${infer D}` // the quote may be escaped, so find the first backslash\n ? D extends '' // nothing after the backslash, so it escapes the quote Q\n ? `${A}${Q}${RestOfStringLiteral<B, Q>}` // keep scanning until the closing quote\n : D extends `${infer E extends keyof EscapeChars}${infer F}`\n ? `${C}\\\\${E}${RestOfStringLiteral<`${F}${Q}${B}`, Q>}` // keep scanning until the closing quote\n : never\n : `${A}${Q}` // no backslash, Q is a closing quote and we're done!\n : never\n\ntype EscapeChars = typeof EscapeChars\nconst EscapeChars = {\n \"'\": \"'\",\n '\"': '\"',\n '\\\\': '\\\\',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t',\n v: '\\v',\n} as const\n\ntype ProcessEscapes<T extends string> = T extends `${infer A}\\\\${infer B}`\n ? B extends `${infer C extends keyof EscapeChars}${infer D}`\n ? `${A}${EscapeChars[C]}${ProcessEscapes<D>}`\n : never\n : T\n\ntype ProcessStringLiteral<T extends string> = T extends `\"${infer Content}\"`\n ? ProcessEscapes<Content>\n : T extends `'${infer Content}'`\n ? ProcessEscapes<Content>\n : never\n\nconst pathstringRx =\n /((?:^|\\.)([^.[\\]]+))|\\[((\\d+)|(\"(?:[^\\\\\"]|\\\\['\"\\\\bfnrtv])+\"|'(?:[^\\\\']|\\\\['\"\\\\bfnrtv])+'))\\]/g\n\nexport function parsePathstring(pathstring: string): BasePath {\n const path: BasePath = []\n let lastIndex = 0\n for (const match of pathstring.matchAll(pathstringRx)) {\n if (\n match.index !== lastIndex ||\n (match.index === 0 && match[0][0] === '.')\n ) {\n throw new Error(`invalid pathstring: ${pathstring} (at ${match.index})`)\n }\n lastIndex = match.index + match[0].length\n if (match[2]) path.push(match[2])\n else if (match[4]) path.push(parseInt(match[4]))\n else if (match[5]) {\n path.push(\n match[5]\n .substring(1, match[5].length - 1)\n .replace(\n /\\\\['\"\\\\bfnrtv]/g,\n (m) => EscapeChars[m[1] as keyof EscapeChars]\n )\n )\n }\n }\n if (lastIndex !== pathstring.length) {\n throw new Error(`invalid pathstring: ${pathstring} (at ${lastIndex})`)\n }\n return path\n}\n"],"mappings":";;;;;;;;;AA+BA;AACA;AACA;AACA;;AA6BA,IAAMA,WAAW,GAAG;EAClB,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,IAAI,EAAE,IAAI;EACVC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE;AACL,CAAU;AAcV,IAAMC,YAAY,GAChB,+FAA+F;AAE1F,SAASC,eAAeA,CAACC,UAAkB,EAAY;EAC5D,IAAMC,IAAc,GAAG,EAAE;EACzB,IAAIC,SAAS,GAAG,CAAC;EAAA,IAAAC,SAAA,GAAAC,0BAAA,CACGJ,UAAU,CAACK,QAAQ,CAACP,YAAY,CAAC;IAAAQ,KAAA;EAAA;IAArD,KAAAH,SAAA,CAAAI,CAAA,MAAAD,KAAA,GAAAH,SAAA,CAAAT,CAAA,IAAAc,IAAA,GAAuD;MAAA,IAA5CC,KAAK,GAAAH,KAAA,CAAAI,KAAA;MACd,IACED,KAAK,CAACE,KAAK,KAAKT,SAAS,IACxBO,KAAK,CAACE,KAAK,KAAK,CAAC,IAAIF,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAI,EAC1C;QACA,MAAM,IAAIG,KAAK,wBAAAC,MAAA,CAAwBb,UAAU,WAAAa,MAAA,CAAQJ,KAAK,CAACE,KAAK,MAAG,CAAC;MAC1E;MACAT,SAAS,GAAGO,KAAK,CAACE,KAAK,GAAGF,KAAK,CAAC,CAAC,CAAC,CAACK,MAAM;MACzC,IAAIL,KAAK,CAAC,CAAC,CAAC,EAAER,IAAI,CAACc,IAAI,CAACN,KAAK,CAAC,CAAC,CAAC,CAAC,MAC5B,IAAIA,KAAK,CAAC,CAAC,CAAC,EAAER,IAAI,CAACc,IAAI,CAACC,QAAQ,CAACP,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAC3C,IAAIA,KAAK,CAAC,CAAC,CAAC,EAAE;QACjBR,IAAI,CAACc,IAAI,CACPN,KAAK,CAAC,CAAC,CAAC,CACLQ,SAAS,CAAC,CAAC,EAAER,KAAK,CAAC,CAAC,CAAC,CAACK,MAAM,GAAG,CAAC,CAAC,CACjCI,OAAO,CACN,iBAAiB,EACjB,UAACC,CAAC;UAAA,OAAK5B,WAAW,CAAC4B,CAAC,CAAC,CAAC,CAAC,CAAsB;QAAA,CAC/C,CACJ,CAAC;MACH;IACF;EAAC,SAAAC,GAAA;IAAAjB,SAAA,CAAAkB,CAAA,CAAAD,GAAA;EAAA;IAAAjB,SAAA,CAAAV,CAAA;EAAA;EACD,IAAIS,SAAS,KAAKF,UAAU,CAACc,MAAM,EAAE;IACnC,MAAM,IAAIF,KAAK,wBAAAC,MAAA,CAAwBb,UAAU,WAAAa,MAAA,CAAQX,SAAS,MAAG,CAAC;EACxE;EACA,OAAOD,IAAI;AACb","ignoreList":[]}
1
+ {"version":3,"file":"parsePathstring.js","names":["EscapeChars","b","f","n","r","t","v","pathstringRx","parsePathstring","pathstring","path","lastIndex","_iterator","_createForOfIteratorHelper","matchAll","_step","s","done","match","value","index","Error","concat","length","push","parseInt","substring","replace","m","err","e"],"sources":["../../src/util/parsePathstring.ts"],"sourcesContent":["import { BasePath } from '../FieldPath'\n\nexport type parsePathstring<Path extends string, IsTail = false> =\n [Path] extends [''] ? []\n : [Path] extends [`[${infer Rest}`] ?\n Rest extends `${infer N extends number}]${infer Tail}` ?\n [N, ...parsePathstring<Tail, true>]\n : ExtractInitialStringLiteral<Rest> extends (\n infer StringLiteral extends string\n ) ?\n [\n ProcessStringLiteral<StringLiteral>,\n ...(Rest extends `${StringLiteral}]${infer Tail}` ?\n parsePathstring<Tail, true>\n : never),\n ]\n : never\n : [IsTail] extends [true] ?\n [Path] extends [`.${infer Rest}`] ?\n parsePathstring<Rest>\n : never\n : [Path] extends [`${infer Head}[${infer Tail}`] ?\n [Path] extends [`${infer Head2}.${infer Tail2}`] ?\n Head2 extends (\n `${Head}[${string}` // make sure we pick up to . or [, whichever comes first\n ) ?\n [Head, ...parsePathstring<`[${Tail}`, true>]\n : [Head2, ...parsePathstring<`.${Tail2}`, true>]\n : [Head, ...parsePathstring<`[${Tail}`, true>]\n : [Path] extends [`${infer Head}.${infer Tail}`] ?\n [Head, ...parsePathstring<`.${Tail}`, true>]\n : [Path]\n\n/**\n * If T starts with a quoted string literal, returns that string literal.\n * Otherwise returns never\n */\ntype ExtractInitialStringLiteral<T extends string> =\n [T] extends [`\"${infer Rest}`] ? `\"${RestOfStringLiteral<Rest, '\"'>}`\n : [T] extends [`'${infer Rest}`] ? `'${RestOfStringLiteral<Rest, \"'\">}`\n : never\n\ntype RestOfStringLiteral<\n /**\n * A substring right after an opening quote\n */\n T extends string,\n /**\n * The opening quote type\n */\n Q extends '\"' | \"'\",\n> =\n [T] extends (\n [`${infer A}${Q}${infer B}`] // find the next quote\n ) ?\n A extends (\n `${infer C}\\\\${infer D}` // the quote may be escaped, so find the first backslash\n ) ?\n D extends (\n '' // nothing after the backslash, so it escapes the quote Q\n ) ?\n `${A}${Q}${RestOfStringLiteral<B, Q>}` // keep scanning until the closing quote\n : D extends `${infer E extends keyof EscapeChars}${infer F}` ?\n `${C}\\\\${E}${RestOfStringLiteral<`${F}${Q}${B}`, Q>}` // keep scanning until the closing quote\n : never\n : `${A}${Q}` // no backslash, Q is a closing quote and we're done!\n : never\n\ntype EscapeChars = typeof EscapeChars\nconst EscapeChars = {\n \"'\": \"'\",\n '\"': '\"',\n '\\\\': '\\\\',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t',\n v: '\\v',\n} as const\n\ntype ProcessEscapes<T extends string> =\n T extends `${infer A}\\\\${infer B}` ?\n B extends `${infer C extends keyof EscapeChars}${infer D}` ?\n `${A}${EscapeChars[C]}${ProcessEscapes<D>}`\n : never\n : T\n\ntype ProcessStringLiteral<T extends string> =\n T extends `\"${infer Content}\"` ? ProcessEscapes<Content>\n : T extends `'${infer Content}'` ? ProcessEscapes<Content>\n : never\n\nconst pathstringRx =\n /((?:^|\\.)([^.[\\]]+))|\\[((\\d+)|(\"(?:[^\\\\\"]|\\\\['\"\\\\bfnrtv])+\"|'(?:[^\\\\']|\\\\['\"\\\\bfnrtv])+'))\\]/g\n\nexport function parsePathstring(pathstring: string): BasePath {\n const path: BasePath = []\n let lastIndex = 0\n for (const match of pathstring.matchAll(pathstringRx)) {\n if (\n match.index !== lastIndex ||\n (match.index === 0 && match[0][0] === '.')\n ) {\n throw new Error(`invalid pathstring: ${pathstring} (at ${match.index})`)\n }\n lastIndex = match.index + match[0].length\n if (match[2]) path.push(match[2])\n else if (match[4]) path.push(parseInt(match[4]))\n else if (match[5]) {\n path.push(\n match[5]\n .substring(1, match[5].length - 1)\n .replace(\n /\\\\['\"\\\\bfnrtv]/g,\n (m) => EscapeChars[m[1] as keyof EscapeChars]\n )\n )\n }\n }\n if (lastIndex !== pathstring.length) {\n throw new Error(`invalid pathstring: ${pathstring} (at ${lastIndex})`)\n }\n return path\n}\n"],"mappings":";;;;;;;;;AAiCA;AACA;AACA;AACA;;AAiCA,IAAMA,WAAW,GAAG;EAClB,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,IAAI,EAAE,IAAI;EACVC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE;AACL,CAAU;AAcV,IAAMC,YAAY,GAChB,+FAA+F;AAE1F,SAASC,eAAeA,CAACC,UAAkB,EAAY;EAC5D,IAAMC,IAAc,GAAG,EAAE;EACzB,IAAIC,SAAS,GAAG,CAAC;EAAA,IAAAC,SAAA,GAAAC,0BAAA,CACGJ,UAAU,CAACK,QAAQ,CAACP,YAAY,CAAC;IAAAQ,KAAA;EAAA;IAArD,KAAAH,SAAA,CAAAI,CAAA,MAAAD,KAAA,GAAAH,SAAA,CAAAT,CAAA,IAAAc,IAAA,GAAuD;MAAA,IAA5CC,KAAK,GAAAH,KAAA,CAAAI,KAAA;MACd,IACED,KAAK,CAACE,KAAK,KAAKT,SAAS,IACxBO,KAAK,CAACE,KAAK,KAAK,CAAC,IAAIF,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAI,EAC1C;QACA,MAAM,IAAIG,KAAK,wBAAAC,MAAA,CAAwBb,UAAU,WAAAa,MAAA,CAAQJ,KAAK,CAACE,KAAK,MAAG,CAAC;MAC1E;MACAT,SAAS,GAAGO,KAAK,CAACE,KAAK,GAAGF,KAAK,CAAC,CAAC,CAAC,CAACK,MAAM;MACzC,IAAIL,KAAK,CAAC,CAAC,CAAC,EAAER,IAAI,CAACc,IAAI,CAACN,KAAK,CAAC,CAAC,CAAC,CAAC,MAC5B,IAAIA,KAAK,CAAC,CAAC,CAAC,EAAER,IAAI,CAACc,IAAI,CAACC,QAAQ,CAACP,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAC3C,IAAIA,KAAK,CAAC,CAAC,CAAC,EAAE;QACjBR,IAAI,CAACc,IAAI,CACPN,KAAK,CAAC,CAAC,CAAC,CACLQ,SAAS,CAAC,CAAC,EAAER,KAAK,CAAC,CAAC,CAAC,CAACK,MAAM,GAAG,CAAC,CAAC,CACjCI,OAAO,CACN,iBAAiB,EACjB,UAACC,CAAC;UAAA,OAAK5B,WAAW,CAAC4B,CAAC,CAAC,CAAC,CAAC,CAAsB;QAAA,CAC/C,CACJ,CAAC;MACH;IACF;EAAC,SAAAC,GAAA;IAAAjB,SAAA,CAAAkB,CAAA,CAAAD,GAAA;EAAA;IAAAjB,SAAA,CAAAV,CAAA;EAAA;EACD,IAAIS,SAAS,KAAKF,UAAU,CAACc,MAAM,EAAE;IACnC,MAAM,IAAIF,KAAK,wBAAAC,MAAA,CAAwBb,UAAU,WAAAa,MAAA,CAAQX,SAAS,MAAG,CAAC;EACxE;EACA,OAAOD,IAAI;AACb","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"parsePathstring.mjs","names":["EscapeChars","b","f","n","r","t","v","pathstringRx","parsePathstring","pathstring","path","lastIndex","match","matchAll","index","Error","length","push","parseInt","substring","replace","m"],"sources":["../../src/util/parsePathstring.ts"],"sourcesContent":["import { BasePath } from '../FieldPath'\n\nexport type parsePathstring<Path extends string, IsTail = false> = [\n Path\n] extends ['']\n ? []\n : [Path] extends [`[${infer Rest}`]\n ? Rest extends `${infer N extends number}]${infer Tail}`\n ? [N, ...parsePathstring<Tail, true>]\n : ExtractInitialStringLiteral<Rest> extends infer StringLiteral extends string\n ? [\n ProcessStringLiteral<StringLiteral>,\n ...(Rest extends `${StringLiteral}]${infer Tail}`\n ? parsePathstring<Tail, true>\n : never)\n ]\n : never\n : [IsTail] extends [true]\n ? [Path] extends [`.${infer Rest}`]\n ? parsePathstring<Rest>\n : never\n : [Path] extends [`${infer Head}[${infer Tail}`]\n ? [Path] extends [`${infer Head2}.${infer Tail2}`]\n ? Head2 extends `${Head}[${string}` // make sure we pick up to . or [, whichever comes first\n ? [Head, ...parsePathstring<`[${Tail}`, true>]\n : [Head2, ...parsePathstring<`.${Tail2}`, true>]\n : [Head, ...parsePathstring<`[${Tail}`, true>]\n : [Path] extends [`${infer Head}.${infer Tail}`]\n ? [Head, ...parsePathstring<`.${Tail}`, true>]\n : [Path]\n\n/**\n * If T starts with a quoted string literal, returns that string literal.\n * Otherwise returns never\n */\ntype ExtractInitialStringLiteral<T extends string> = [T] extends [\n `\"${infer Rest}`\n]\n ? `\"${RestOfStringLiteral<Rest, '\"'>}`\n : [T] extends [`'${infer Rest}`]\n ? `'${RestOfStringLiteral<Rest, \"'\">}`\n : never\n\ntype RestOfStringLiteral<\n /**\n * A substring right after an opening quote\n */\n T extends string,\n /**\n * The opening quote type\n */\n Q extends '\"' | \"'\"\n> = [T] extends [`${infer A}${Q}${infer B}`] // find the next quote\n ? A extends `${infer C}\\\\${infer D}` // the quote may be escaped, so find the first backslash\n ? D extends '' // nothing after the backslash, so it escapes the quote Q\n ? `${A}${Q}${RestOfStringLiteral<B, Q>}` // keep scanning until the closing quote\n : D extends `${infer E extends keyof EscapeChars}${infer F}`\n ? `${C}\\\\${E}${RestOfStringLiteral<`${F}${Q}${B}`, Q>}` // keep scanning until the closing quote\n : never\n : `${A}${Q}` // no backslash, Q is a closing quote and we're done!\n : never\n\ntype EscapeChars = typeof EscapeChars\nconst EscapeChars = {\n \"'\": \"'\",\n '\"': '\"',\n '\\\\': '\\\\',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t',\n v: '\\v',\n} as const\n\ntype ProcessEscapes<T extends string> = T extends `${infer A}\\\\${infer B}`\n ? B extends `${infer C extends keyof EscapeChars}${infer D}`\n ? `${A}${EscapeChars[C]}${ProcessEscapes<D>}`\n : never\n : T\n\ntype ProcessStringLiteral<T extends string> = T extends `\"${infer Content}\"`\n ? ProcessEscapes<Content>\n : T extends `'${infer Content}'`\n ? ProcessEscapes<Content>\n : never\n\nconst pathstringRx =\n /((?:^|\\.)([^.[\\]]+))|\\[((\\d+)|(\"(?:[^\\\\\"]|\\\\['\"\\\\bfnrtv])+\"|'(?:[^\\\\']|\\\\['\"\\\\bfnrtv])+'))\\]/g\n\nexport function parsePathstring(pathstring: string): BasePath {\n const path: BasePath = []\n let lastIndex = 0\n for (const match of pathstring.matchAll(pathstringRx)) {\n if (\n match.index !== lastIndex ||\n (match.index === 0 && match[0][0] === '.')\n ) {\n throw new Error(`invalid pathstring: ${pathstring} (at ${match.index})`)\n }\n lastIndex = match.index + match[0].length\n if (match[2]) path.push(match[2])\n else if (match[4]) path.push(parseInt(match[4]))\n else if (match[5]) {\n path.push(\n match[5]\n .substring(1, match[5].length - 1)\n .replace(\n /\\\\['\"\\\\bfnrtv]/g,\n (m) => EscapeChars[m[1] as keyof EscapeChars]\n )\n )\n }\n }\n if (lastIndex !== pathstring.length) {\n throw new Error(`invalid pathstring: ${pathstring} (at ${lastIndex})`)\n }\n return path\n}\n"],"mappings":"AA+BA;AACA;AACA;AACA;;AA6BA,MAAMA,WAAW,GAAG;EAClB,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,IAAI,EAAE,IAAI;EACVC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE;AACL,CAAU;AAcV,MAAMC,YAAY,GAChB,+FAA+F;AAEjG,OAAO,SAASC,eAAeA,CAACC,UAAkB,EAAY;EAC5D,MAAMC,IAAc,GAAG,EAAE;EACzB,IAAIC,SAAS,GAAG,CAAC;EACjB,KAAK,MAAMC,KAAK,IAAIH,UAAU,CAACI,QAAQ,CAACN,YAAY,CAAC,EAAE;IACrD,IACEK,KAAK,CAACE,KAAK,KAAKH,SAAS,IACxBC,KAAK,CAACE,KAAK,KAAK,CAAC,IAAIF,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAI,EAC1C;MACA,MAAM,IAAIG,KAAK,CAAC,uBAAuBN,UAAU,QAAQG,KAAK,CAACE,KAAK,GAAG,CAAC;IAC1E;IACAH,SAAS,GAAGC,KAAK,CAACE,KAAK,GAAGF,KAAK,CAAC,CAAC,CAAC,CAACI,MAAM;IACzC,IAAIJ,KAAK,CAAC,CAAC,CAAC,EAAEF,IAAI,CAACO,IAAI,CAACL,KAAK,CAAC,CAAC,CAAC,CAAC,MAC5B,IAAIA,KAAK,CAAC,CAAC,CAAC,EAAEF,IAAI,CAACO,IAAI,CAACC,QAAQ,CAACN,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAC3C,IAAIA,KAAK,CAAC,CAAC,CAAC,EAAE;MACjBF,IAAI,CAACO,IAAI,CACPL,KAAK,CAAC,CAAC,CAAC,CACLO,SAAS,CAAC,CAAC,EAAEP,KAAK,CAAC,CAAC,CAAC,CAACI,MAAM,GAAG,CAAC,CAAC,CACjCI,OAAO,CACN,iBAAiB,EAChBC,CAAC,IAAKrB,WAAW,CAACqB,CAAC,CAAC,CAAC,CAAC,CACzB,CACJ,CAAC;IACH;EACF;EACA,IAAIV,SAAS,KAAKF,UAAU,CAACO,MAAM,EAAE;IACnC,MAAM,IAAID,KAAK,CAAC,uBAAuBN,UAAU,QAAQE,SAAS,GAAG,CAAC;EACxE;EACA,OAAOD,IAAI;AACb","ignoreList":[]}
1
+ {"version":3,"file":"parsePathstring.mjs","names":["EscapeChars","b","f","n","r","t","v","pathstringRx","parsePathstring","pathstring","path","lastIndex","match","matchAll","index","Error","length","push","parseInt","substring","replace","m"],"sources":["../../src/util/parsePathstring.ts"],"sourcesContent":["import { BasePath } from '../FieldPath'\n\nexport type parsePathstring<Path extends string, IsTail = false> =\n [Path] extends [''] ? []\n : [Path] extends [`[${infer Rest}`] ?\n Rest extends `${infer N extends number}]${infer Tail}` ?\n [N, ...parsePathstring<Tail, true>]\n : ExtractInitialStringLiteral<Rest> extends (\n infer StringLiteral extends string\n ) ?\n [\n ProcessStringLiteral<StringLiteral>,\n ...(Rest extends `${StringLiteral}]${infer Tail}` ?\n parsePathstring<Tail, true>\n : never),\n ]\n : never\n : [IsTail] extends [true] ?\n [Path] extends [`.${infer Rest}`] ?\n parsePathstring<Rest>\n : never\n : [Path] extends [`${infer Head}[${infer Tail}`] ?\n [Path] extends [`${infer Head2}.${infer Tail2}`] ?\n Head2 extends (\n `${Head}[${string}` // make sure we pick up to . or [, whichever comes first\n ) ?\n [Head, ...parsePathstring<`[${Tail}`, true>]\n : [Head2, ...parsePathstring<`.${Tail2}`, true>]\n : [Head, ...parsePathstring<`[${Tail}`, true>]\n : [Path] extends [`${infer Head}.${infer Tail}`] ?\n [Head, ...parsePathstring<`.${Tail}`, true>]\n : [Path]\n\n/**\n * If T starts with a quoted string literal, returns that string literal.\n * Otherwise returns never\n */\ntype ExtractInitialStringLiteral<T extends string> =\n [T] extends [`\"${infer Rest}`] ? `\"${RestOfStringLiteral<Rest, '\"'>}`\n : [T] extends [`'${infer Rest}`] ? `'${RestOfStringLiteral<Rest, \"'\">}`\n : never\n\ntype RestOfStringLiteral<\n /**\n * A substring right after an opening quote\n */\n T extends string,\n /**\n * The opening quote type\n */\n Q extends '\"' | \"'\",\n> =\n [T] extends (\n [`${infer A}${Q}${infer B}`] // find the next quote\n ) ?\n A extends (\n `${infer C}\\\\${infer D}` // the quote may be escaped, so find the first backslash\n ) ?\n D extends (\n '' // nothing after the backslash, so it escapes the quote Q\n ) ?\n `${A}${Q}${RestOfStringLiteral<B, Q>}` // keep scanning until the closing quote\n : D extends `${infer E extends keyof EscapeChars}${infer F}` ?\n `${C}\\\\${E}${RestOfStringLiteral<`${F}${Q}${B}`, Q>}` // keep scanning until the closing quote\n : never\n : `${A}${Q}` // no backslash, Q is a closing quote and we're done!\n : never\n\ntype EscapeChars = typeof EscapeChars\nconst EscapeChars = {\n \"'\": \"'\",\n '\"': '\"',\n '\\\\': '\\\\',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t',\n v: '\\v',\n} as const\n\ntype ProcessEscapes<T extends string> =\n T extends `${infer A}\\\\${infer B}` ?\n B extends `${infer C extends keyof EscapeChars}${infer D}` ?\n `${A}${EscapeChars[C]}${ProcessEscapes<D>}`\n : never\n : T\n\ntype ProcessStringLiteral<T extends string> =\n T extends `\"${infer Content}\"` ? ProcessEscapes<Content>\n : T extends `'${infer Content}'` ? ProcessEscapes<Content>\n : never\n\nconst pathstringRx =\n /((?:^|\\.)([^.[\\]]+))|\\[((\\d+)|(\"(?:[^\\\\\"]|\\\\['\"\\\\bfnrtv])+\"|'(?:[^\\\\']|\\\\['\"\\\\bfnrtv])+'))\\]/g\n\nexport function parsePathstring(pathstring: string): BasePath {\n const path: BasePath = []\n let lastIndex = 0\n for (const match of pathstring.matchAll(pathstringRx)) {\n if (\n match.index !== lastIndex ||\n (match.index === 0 && match[0][0] === '.')\n ) {\n throw new Error(`invalid pathstring: ${pathstring} (at ${match.index})`)\n }\n lastIndex = match.index + match[0].length\n if (match[2]) path.push(match[2])\n else if (match[4]) path.push(parseInt(match[4]))\n else if (match[5]) {\n path.push(\n match[5]\n .substring(1, match[5].length - 1)\n .replace(\n /\\\\['\"\\\\bfnrtv]/g,\n (m) => EscapeChars[m[1] as keyof EscapeChars]\n )\n )\n }\n }\n if (lastIndex !== pathstring.length) {\n throw new Error(`invalid pathstring: ${pathstring} (at ${lastIndex})`)\n }\n return path\n}\n"],"mappings":"AAiCA;AACA;AACA;AACA;;AAiCA,MAAMA,WAAW,GAAG;EAClB,GAAG,EAAE,GAAG;EACR,GAAG,EAAE,GAAG;EACR,IAAI,EAAE,IAAI;EACVC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE;AACL,CAAU;AAcV,MAAMC,YAAY,GAChB,+FAA+F;AAEjG,OAAO,SAASC,eAAeA,CAACC,UAAkB,EAAY;EAC5D,MAAMC,IAAc,GAAG,EAAE;EACzB,IAAIC,SAAS,GAAG,CAAC;EACjB,KAAK,MAAMC,KAAK,IAAIH,UAAU,CAACI,QAAQ,CAACN,YAAY,CAAC,EAAE;IACrD,IACEK,KAAK,CAACE,KAAK,KAAKH,SAAS,IACxBC,KAAK,CAACE,KAAK,KAAK,CAAC,IAAIF,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAI,EAC1C;MACA,MAAM,IAAIG,KAAK,CAAC,uBAAuBN,UAAU,QAAQG,KAAK,CAACE,KAAK,GAAG,CAAC;IAC1E;IACAH,SAAS,GAAGC,KAAK,CAACE,KAAK,GAAGF,KAAK,CAAC,CAAC,CAAC,CAACI,MAAM;IACzC,IAAIJ,KAAK,CAAC,CAAC,CAAC,EAAEF,IAAI,CAACO,IAAI,CAACL,KAAK,CAAC,CAAC,CAAC,CAAC,MAC5B,IAAIA,KAAK,CAAC,CAAC,CAAC,EAAEF,IAAI,CAACO,IAAI,CAACC,QAAQ,CAACN,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAC3C,IAAIA,KAAK,CAAC,CAAC,CAAC,EAAE;MACjBF,IAAI,CAACO,IAAI,CACPL,KAAK,CAAC,CAAC,CAAC,CACLO,SAAS,CAAC,CAAC,EAAEP,KAAK,CAAC,CAAC,CAAC,CAACI,MAAM,GAAG,CAAC,CAAC,CACjCI,OAAO,CACN,iBAAiB,EAChBC,CAAC,IAAKrB,WAAW,CAACqB,CAAC,CAAC,CAAC,CAAC,CACzB,CACJ,CAAC;IACH;EACF;EACA,IAAIV,SAAS,KAAKF,UAAU,CAACO,MAAM,EAAE;IACnC,MAAM,IAAID,KAAK,CAAC,uBAAuBN,UAAU,QAAQE,SAAS,GAAG,CAAC;EACxE;EACA,OAAOD,IAAI;AACb","ignoreList":[]}
@@ -1,13 +1,7 @@
1
1
  type PathElem = string | number;
2
2
  type BasePath = PathElem[];
3
- export type pathstring<Path> = Path extends [
4
- infer Head extends PathElem,
5
- ...infer Tail extends PathElem[]
6
- ] ? `${Head extends number ? `[${Head}]` : Head}${pathstringTail<Tail>}` : '';
7
- type pathstringTail<Path extends BasePath> = Path extends [
8
- infer Head extends PathElem,
9
- ...infer Tail extends PathElem[]
10
- ] ? `${Head extends number ? `[${Head}]` : `.${Head}`}${pathstringTail<Tail>}` : '';
3
+ export type pathstring<Path> = Path extends [infer Head extends PathElem, ...infer Tail extends PathElem[]] ? `${Head extends number ? `[${Head}]` : Head}${pathstringTail<Tail>}` : '';
4
+ type pathstringTail<Path extends BasePath> = Path extends [infer Head extends PathElem, ...infer Tail extends PathElem[]] ? `${Head extends number ? `[${Head}]` : `.${Head}`}${pathstringTail<Tail>}` : '';
11
5
  export declare function pathstring<Path extends BasePath>(path: Path): pathstring<Path>;
12
6
  export {};
13
7
  //# sourceMappingURL=pathstring.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pathstring.d.ts","sourceRoot":"","sources":["../../src/util/pathstring.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;AAC/B,KAAK,QAAQ,GAAG,QAAQ,EAAE,CAAA;AAE1B,MAAM,MAAM,UAAU,CAAC,IAAI,IAAI,IAAI,SAAS;IAC1C,MAAM,IAAI,SAAS,QAAQ;IAC3B,GAAG,MAAM,IAAI,SAAS,QAAQ,EAAE;CACjC,GACG,GAAG,IAAI,SAAS,MAAM,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,GACpE,EAAE,CAAA;AAEN,KAAK,cAAc,CAAC,IAAI,SAAS,QAAQ,IAAI,IAAI,SAAS;IACxD,MAAM,IAAI,SAAS,QAAQ;IAC3B,GAAG,MAAM,IAAI,SAAS,QAAQ,EAAE;CACjC,GACG,GAAG,IAAI,SAAS,MAAM,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,GAC1E,EAAE,CAAA;AAEN,wBAAgB,UAAU,CAAC,IAAI,SAAS,QAAQ,EAC9C,IAAI,EAAE,IAAI,GACT,UAAU,CAAC,IAAI,CAAC,CAQlB"}
1
+ {"version":3,"file":"pathstring.d.ts","sourceRoot":"","sources":["../../src/util/pathstring.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;AAC/B,KAAK,QAAQ,GAAG,QAAQ,EAAE,CAAA;AAE1B,MAAM,MAAM,UAAU,CAAC,IAAI,IACzB,IAAI,SAAS,CAAC,MAAM,IAAI,SAAS,QAAQ,EAAE,GAAG,MAAM,IAAI,SAAS,QAAQ,EAAE,CAAC,GAC1E,GAAG,IAAI,SAAS,MAAM,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,GACpE,EAAE,CAAA;AAEN,KAAK,cAAc,CAAC,IAAI,SAAS,QAAQ,IACvC,IAAI,SAAS,CAAC,MAAM,IAAI,SAAS,QAAQ,EAAE,GAAG,MAAM,IAAI,SAAS,QAAQ,EAAE,CAAC,GAC1E,GAAG,IAAI,SAAS,MAAM,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,GAC1E,EAAE,CAAA;AAEN,wBAAgB,UAAU,CAAC,IAAI,SAAS,QAAQ,EAC9C,IAAI,EAAE,IAAI,GACT,UAAU,CAAC,IAAI,CAAC,CAQlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"pathstring.js","names":["pathstring","path","map","elem","index","isValidIdentifier","concat","JSON","stringify","join","s","test"],"sources":["../../src/util/pathstring.ts"],"sourcesContent":["type PathElem = string | number\ntype BasePath = PathElem[]\n\nexport type pathstring<Path> = Path extends [\n infer Head extends PathElem,\n ...infer Tail extends PathElem[]\n]\n ? `${Head extends number ? `[${Head}]` : Head}${pathstringTail<Tail>}`\n : ''\n\ntype pathstringTail<Path extends BasePath> = Path extends [\n infer Head extends PathElem,\n ...infer Tail extends PathElem[]\n]\n ? `${Head extends number ? `[${Head}]` : `.${Head}`}${pathstringTail<Tail>}`\n : ''\n\nexport function pathstring<Path extends BasePath>(\n path: Path\n): pathstring<Path> {\n return path\n .map((elem, index) =>\n typeof elem === 'string' && isValidIdentifier(elem)\n ? `${index > 0 ? '.' : ''}${elem}`\n : `[${JSON.stringify(elem)}]`\n )\n .join('') as any\n}\n\nfunction isValidIdentifier(s: string): boolean {\n return /^[_$a-z][_$a-z0-9]*$/i.test(s)\n}\n"],"mappings":";;;;;;AAiBO,SAASA,UAAUA,CACxBC,IAAU,EACQ;EAClB,OAAOA,IAAI,CACRC,GAAG,CAAC,UAACC,IAAI,EAAEC,KAAK;IAAA,OACf,OAAOD,IAAI,KAAK,QAAQ,IAAIE,iBAAiB,CAACF,IAAI,CAAC,MAAAG,MAAA,CAC5CF,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,EAAAE,MAAA,CAAGH,IAAI,QAAAG,MAAA,CAC1BC,IAAI,CAACC,SAAS,CAACL,IAAI,CAAC,MAAG;EAAA,CACjC,CAAC,CACAM,IAAI,CAAC,EAAE,CAAC;AACb;AAEA,SAASJ,iBAAiBA,CAACK,CAAS,EAAW;EAC7C,OAAO,uBAAuB,CAACC,IAAI,CAACD,CAAC,CAAC;AACxC","ignoreList":[]}
1
+ {"version":3,"file":"pathstring.js","names":["pathstring","path","map","elem","index","isValidIdentifier","concat","JSON","stringify","join","s","test"],"sources":["../../src/util/pathstring.ts"],"sourcesContent":["type PathElem = string | number\ntype BasePath = PathElem[]\n\nexport type pathstring<Path> =\n Path extends [infer Head extends PathElem, ...infer Tail extends PathElem[]] ?\n `${Head extends number ? `[${Head}]` : Head}${pathstringTail<Tail>}`\n : ''\n\ntype pathstringTail<Path extends BasePath> =\n Path extends [infer Head extends PathElem, ...infer Tail extends PathElem[]] ?\n `${Head extends number ? `[${Head}]` : `.${Head}`}${pathstringTail<Tail>}`\n : ''\n\nexport function pathstring<Path extends BasePath>(\n path: Path\n): pathstring<Path> {\n return path\n .map((elem, index) =>\n typeof elem === 'string' && isValidIdentifier(elem) ?\n `${index > 0 ? '.' : ''}${elem}`\n : `[${JSON.stringify(elem)}]`\n )\n .join('') as any\n}\n\nfunction isValidIdentifier(s: string): boolean {\n return /^[_$a-z][_$a-z0-9]*$/i.test(s)\n}\n"],"mappings":";;;;;;AAaO,SAASA,UAAUA,CACxBC,IAAU,EACQ;EAClB,OAAOA,IAAI,CACRC,GAAG,CAAC,UAACC,IAAI,EAAEC,KAAK;IAAA,OACf,OAAOD,IAAI,KAAK,QAAQ,IAAIE,iBAAiB,CAACF,IAAI,CAAC,MAAAG,MAAA,CAC9CF,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,EAAAE,MAAA,CAAGH,IAAI,QAAAG,MAAA,CAC1BC,IAAI,CAACC,SAAS,CAACL,IAAI,CAAC,MAAG;EAAA,CAC/B,CAAC,CACAM,IAAI,CAAC,EAAE,CAAC;AACb;AAEA,SAASJ,iBAAiBA,CAACK,CAAS,EAAW;EAC7C,OAAO,uBAAuB,CAACC,IAAI,CAACD,CAAC,CAAC;AACxC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"pathstring.mjs","names":["pathstring","path","map","elem","index","isValidIdentifier","JSON","stringify","join","s","test"],"sources":["../../src/util/pathstring.ts"],"sourcesContent":["type PathElem = string | number\ntype BasePath = PathElem[]\n\nexport type pathstring<Path> = Path extends [\n infer Head extends PathElem,\n ...infer Tail extends PathElem[]\n]\n ? `${Head extends number ? `[${Head}]` : Head}${pathstringTail<Tail>}`\n : ''\n\ntype pathstringTail<Path extends BasePath> = Path extends [\n infer Head extends PathElem,\n ...infer Tail extends PathElem[]\n]\n ? `${Head extends number ? `[${Head}]` : `.${Head}`}${pathstringTail<Tail>}`\n : ''\n\nexport function pathstring<Path extends BasePath>(\n path: Path\n): pathstring<Path> {\n return path\n .map((elem, index) =>\n typeof elem === 'string' && isValidIdentifier(elem)\n ? `${index > 0 ? '.' : ''}${elem}`\n : `[${JSON.stringify(elem)}]`\n )\n .join('') as any\n}\n\nfunction isValidIdentifier(s: string): boolean {\n return /^[_$a-z][_$a-z0-9]*$/i.test(s)\n}\n"],"mappings":"AAiBA,OAAO,SAASA,UAAUA,CACxBC,IAAU,EACQ;EAClB,OAAOA,IAAI,CACRC,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KACf,OAAOD,IAAI,KAAK,QAAQ,IAAIE,iBAAiB,CAACF,IAAI,CAAC,GAC/C,GAAGC,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,GAAGD,IAAI,EAAE,GAChC,IAAIG,IAAI,CAACC,SAAS,CAACJ,IAAI,CAAC,GAC9B,CAAC,CACAK,IAAI,CAAC,EAAE,CAAC;AACb;AAEA,SAASH,iBAAiBA,CAACI,CAAS,EAAW;EAC7C,OAAO,uBAAuB,CAACC,IAAI,CAACD,CAAC,CAAC;AACxC","ignoreList":[]}
1
+ {"version":3,"file":"pathstring.mjs","names":["pathstring","path","map","elem","index","isValidIdentifier","JSON","stringify","join","s","test"],"sources":["../../src/util/pathstring.ts"],"sourcesContent":["type PathElem = string | number\ntype BasePath = PathElem[]\n\nexport type pathstring<Path> =\n Path extends [infer Head extends PathElem, ...infer Tail extends PathElem[]] ?\n `${Head extends number ? `[${Head}]` : Head}${pathstringTail<Tail>}`\n : ''\n\ntype pathstringTail<Path extends BasePath> =\n Path extends [infer Head extends PathElem, ...infer Tail extends PathElem[]] ?\n `${Head extends number ? `[${Head}]` : `.${Head}`}${pathstringTail<Tail>}`\n : ''\n\nexport function pathstring<Path extends BasePath>(\n path: Path\n): pathstring<Path> {\n return path\n .map((elem, index) =>\n typeof elem === 'string' && isValidIdentifier(elem) ?\n `${index > 0 ? '.' : ''}${elem}`\n : `[${JSON.stringify(elem)}]`\n )\n .join('') as any\n}\n\nfunction isValidIdentifier(s: string): boolean {\n return /^[_$a-z][_$a-z0-9]*$/i.test(s)\n}\n"],"mappings":"AAaA,OAAO,SAASA,UAAUA,CACxBC,IAAU,EACQ;EAClB,OAAOA,IAAI,CACRC,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KACf,OAAOD,IAAI,KAAK,QAAQ,IAAIE,iBAAiB,CAACF,IAAI,CAAC,GACjD,GAAGC,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,GAAGD,IAAI,EAAE,GAChC,IAAIG,IAAI,CAACC,SAAS,CAACJ,IAAI,CAAC,GAC5B,CAAC,CACAK,IAAI,CAAC,EAAE,CAAC;AACb;AAEA,SAASH,iBAAiBA,CAACI,CAAS,EAAW;EAC7C,OAAO,uBAAuB,CAACC,IAAI,CAACD,CAAC,CAAC;AACxC","ignoreList":[]}
package/util/set.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/util/set.ts"],"names":[],"mappings":"AAAA,wBAAgB,GAAG,CACjB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,EAClC,KAAK,EAAE,OAAO,EACd,KAAK,SAAI,GACR,OAAO,CAmBT"}
1
+ {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../src/util/set.ts"],"names":[],"mappings":"AAAA,wBAAgB,GAAG,CACjB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,EAClC,KAAK,EAAE,OAAO,EACd,KAAK,SAAI,GACR,OAAO,CAsBT"}