You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

form-meta

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

form-meta - npm Package Compare versions

Comparing version
2.0.4
to
2.1.0
+74
-47
dist/index.d.mts

@@ -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 };
{
"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>",