+74
-47
@@ -79,47 +79,2 @@ //#region ../../node_modules/.pnpm/@standard-schema+spec@1.1.0/node_modules/@standard-schema/spec/dist/index.d.ts | ||
| //#endregion | ||
| //#region src/types/field/raw.d.ts | ||
| type OptionalKeys<T> = { [K in keyof T]-?: undefined extends T[K] ? K : never }[keyof T]; | ||
| type RawFieldsMeta<TFormData, TFieldType, TFieldExtends> = { [K in Exclude<keyof TFormData, OptionalKeys<TFormData>>]: RawFieldMeta<K, TFormData[K], TFieldType, TFieldExtends> } & { [K in OptionalKeys<TFormData>]?: RawFieldMeta<K, NonNullable<TFormData[K]>, TFieldType, TFieldExtends> }; | ||
| type RawFieldMeta<TFieldKey, TFieldValue, TFieldType, TFieldExtends> = PrimitiveFieldMeta<TFieldKey, TFieldValue, TFieldType, TFieldExtends> | ArrayFieldMeta<TFieldKey, TFieldValue, TFieldType, TFieldExtends> | ObjectFieldMeta<TFieldKey, TFieldValue, TFieldType, TFieldExtends>; | ||
| interface CommonFieldMeta<TFieldKey, TFieldValue, TFieldExtends> { | ||
| /** | ||
| * The name of the field. | ||
| * | ||
| * Noneed to specify this manually; it will be set automatically when the field is resolved. | ||
| */ | ||
| name?: TFieldKey; | ||
| /** | ||
| * The schema associated with this field. | ||
| * | ||
| * Support schemas from Standard Schema v1. | ||
| * Meaning you can use third-party libraries which implement this spec (e.g. Zod, Valibot, Yup, etc.). | ||
| */ | ||
| schema?: StandardSchemaV1<TFieldValue>; | ||
| /** | ||
| * The type that this field extends. | ||
| * | ||
| * It is designed for users to create their own custom field meta types. | ||
| */ | ||
| extends?: TFieldExtends; | ||
| /** | ||
| * NOTE Just used for type inference; does not affect runtime behavior. | ||
| */ | ||
| value?: TFieldValue; | ||
| } | ||
| type PrimitiveFieldMeta<TFieldKey, TFieldValue, TFieldType, TFieldExtends> = CommonFieldMeta<TFieldKey, TFieldValue, TFieldExtends> & { | ||
| type: TFieldType; | ||
| nested?: never; | ||
| subfields?: never; | ||
| }; | ||
| type ArrayFieldMeta<TFieldKey, TFieldValue, TFieldType, TFieldExtends> = CommonFieldMeta<TFieldKey, TFieldValue, TFieldExtends> & { | ||
| type?: never; | ||
| nested: 'array'; | ||
| subfields: TFieldValue extends Array<infer U> ? RawFieldsMeta<U, TFieldType, TFieldExtends> : never; | ||
| }; | ||
| type ObjectFieldMeta<TFieldKey, TFieldValue, TFieldType, TFieldExtends> = CommonFieldMeta<TFieldKey, TFieldValue, TFieldExtends> & { | ||
| type?: never; | ||
| nested: 'object'; | ||
| subfields: TFieldValue extends Record<string, any> ? RawFieldsMeta<TFieldValue, TFieldType, TFieldExtends> : never; | ||
| }; | ||
| //#endregion | ||
| //#region ../../node_modules/.pnpm/type-fest@5.3.1/node_modules/type-fest/source/union-to-intersection.d.ts | ||
@@ -1108,2 +1063,4 @@ /** | ||
| } | ||
| type AnyResolvedFieldMeta = ResolvedFieldMeta<any, any, any, any, any, any>; | ||
| type AnyResolvedFieldsMeta = ResolvedFieldsMeta<any, any, any, any>; | ||
| type ResolvedFieldsMeta<TRawFieldsMeta extends RawFieldsMeta<any, any, any>, TFieldType, TFieldExtends, TResolveFieldsMetaOptions extends ResolveFieldsMetaOptions> = ResolvedFieldsMeta_<TRawFieldsMeta, TFieldType, TFieldExtends, ApplyDefaultOptions<ResolveFieldsMetaOptions, DefaultResolveFieldsMetaOptions, TResolveFieldsMetaOptions>>; | ||
@@ -1128,3 +1085,3 @@ type ResolvedFieldsMeta_<TRawFieldsMeta extends RawFieldsMeta<any, any, any>, TFieldType, TFieldExtends, TResolveFieldsMetaOptions extends Required<ResolveFieldsMetaOptions>, TPrefix extends string = ''> = { [K in StringKeys<TRawFieldsMeta> as ArrayIncludes<TResolveFieldsMetaOptions['purge'], NonNullable<TRawFieldsMeta[K]>['nested']> extends true ? never : FieldKey<TPrefix, K, TResolveFieldsMetaOptions>]?: NonNullable<TRawFieldsMeta[K]> extends { | ||
| */ | ||
| parent: ResolvedFieldMeta<any, any, any, any, any, any> | null; | ||
| parent: AnyResolvedFieldMeta | null; | ||
| } | ||
@@ -1153,2 +1110,72 @@ type ResolvedPrimitiveFieldMeta<TFieldKey, TFieldValue, TFieldType, TFieldExtends> = ResolvedCommonFieldMeta<TFieldKey, TFieldValue, TFieldExtends> & { | ||
| //#endregion | ||
| //#region src/types/field/raw.d.ts | ||
| type OptionalKeys<T> = { [K in keyof T]-?: undefined extends T[K] ? K : never }[keyof T]; | ||
| type RawFieldsMeta<TFormData, TFieldType, TFieldExtends, TTopFormData = TFormData, TClosestFieldArrayValue = never> = { [K in Exclude<keyof TFormData, OptionalKeys<TFormData>>]: RawFieldMeta<K, TFormData[K], TFieldType, TFieldExtends, TTopFormData, TClosestFieldArrayValue> } & { [K in OptionalKeys<TFormData>]?: RawFieldMeta<K, NonNullable<TFormData[K]>, TFieldType, TFieldExtends, TTopFormData, TClosestFieldArrayValue> }; | ||
| type RawFieldMeta<TFieldKey, TFieldValue, TFieldType, TFieldExtends, TTopFormData = unknown, TClosestFieldArrayValue = never> = PrimitiveFieldMeta<TFieldKey, TFieldValue, TFieldType, TFieldExtends, TTopFormData, TClosestFieldArrayValue> | ArrayFieldMeta<TFieldKey, TFieldValue, TFieldType, TFieldExtends, TTopFormData, TClosestFieldArrayValue> | ObjectFieldMeta<TFieldKey, TFieldValue, TFieldType, TFieldExtends, TTopFormData, TClosestFieldArrayValue>; | ||
| interface CommonFieldMeta<TFieldKey, TFieldValue, TFieldExtends, TTopFormData = unknown, TClosestFieldArrayValue = unknown> { | ||
| /** | ||
| * The name of the field. | ||
| * | ||
| * Noneed to specify this manually; it will be set automatically when the field is resolved. | ||
| */ | ||
| name?: TFieldKey; | ||
| /** | ||
| * The schema associated with this field. | ||
| * | ||
| * Support schemas from Standard Schema v1. | ||
| * Meaning you can use third-party libraries which implement this spec (e.g. Zod, Valibot, Yup, etc.). | ||
| */ | ||
| schema?: StandardSchemaV1<TFieldValue>; | ||
| /** | ||
| * The type that this field extends. | ||
| * | ||
| * It is designed for users to create their own custom field meta types. | ||
| */ | ||
| extends?: TFieldExtends | ((arg: { | ||
| /** | ||
| * The current field meta. | ||
| */ | ||
| field: AnyResolvedFieldMeta; | ||
| /** | ||
| * All fields meta in the form. | ||
| */ | ||
| fields: AnyResolvedFieldsMeta; | ||
| /** | ||
| * Current field value. | ||
| */ | ||
| value: TFieldValue; | ||
| /** | ||
| * Full form values. | ||
| */ | ||
| values: TTopFormData; | ||
| /** | ||
| * Closest array value if the field is inside an array. | ||
| */ | ||
| closestArrayValue?: TClosestFieldArrayValue; | ||
| /** | ||
| * The indices of the array(s) that this field is in. | ||
| */ | ||
| indices: number[]; | ||
| }) => TFieldExtends); | ||
| /** | ||
| * NOTE Just used for type inference; does not affect runtime behavior. | ||
| */ | ||
| value?: TFieldValue; | ||
| } | ||
| type PrimitiveFieldMeta<TFieldKey, TFieldValue, TFieldType, TFieldExtends, TTopFormData = unknown, TClosestFieldArrayValue = never> = CommonFieldMeta<TFieldKey, TFieldValue, TFieldExtends, TTopFormData, TClosestFieldArrayValue> & { | ||
| type: TFieldType; | ||
| nested?: never; | ||
| subfields?: never; | ||
| }; | ||
| type ArrayFieldMeta<TFieldKey, TFieldValue, TFieldType, TFieldExtends, TTopFormData = unknown, TClosestFieldArrayValue = never> = CommonFieldMeta<TFieldKey, TFieldValue, TFieldExtends, TTopFormData, TClosestFieldArrayValue> & { | ||
| type?: never; | ||
| nested: 'array'; | ||
| subfields: TFieldValue extends Array<infer U> ? RawFieldsMeta<U, TFieldType, TFieldExtends, TTopFormData, TFieldValue> : never; | ||
| }; | ||
| type ObjectFieldMeta<TFieldKey, TFieldValue, TFieldType, TFieldExtends, TTopFormData = TFieldValue, TClosestFieldArrayValue = never> = CommonFieldMeta<TFieldKey, TFieldValue, TFieldExtends, TTopFormData, TClosestFieldArrayValue> & { | ||
| type?: never; | ||
| nested: 'object'; | ||
| subfields: TFieldValue extends Record<string, any> ? RawFieldsMeta<TFieldValue, TFieldType, TFieldExtends, TTopFormData, TClosestFieldArrayValue> : never; | ||
| }; | ||
| //#endregion | ||
| //#region src/field.d.ts | ||
@@ -1178,2 +1205,2 @@ declare class FieldsMeta<TFieldType, TFieldExtends> { | ||
| //#endregion | ||
| export { CommonFieldMeta, DefaultResolveFieldsMetaOptions, FieldsMeta, RawFieldMeta, RawFieldsMeta, ResolveFieldsMetaOptions, ResolvedCommonFieldMeta, ResolvedFieldMeta, ResolvedFieldsMeta, ResolvedPrimitiveFieldMeta }; | ||
| export { AnyResolvedFieldMeta, AnyResolvedFieldsMeta, CommonFieldMeta, DefaultResolveFieldsMetaOptions, FieldsMeta, RawFieldMeta, RawFieldsMeta, ResolveFieldsMetaOptions, ResolvedCommonFieldMeta, ResolvedFieldMeta, ResolvedFieldsMeta, ResolvedPrimitiveFieldMeta }; |
+1
-1
| { | ||
| "name": "form-meta", | ||
| "type": "module", | ||
| "version": "2.0.4", | ||
| "version": "2.1.0", | ||
| "description": "Type-safe form field meta resolver with flatten/purge for nested schemas", | ||
@@ -6,0 +6,0 @@ "author": "Byron <byronogis@outlook.com>", |
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
54191
2.75%