Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@rpcbase/form

Package Overview
Dependencies
Maintainers
1
Versions
112
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@rpcbase/form - npm Package Compare versions

Comparing version
0.92.0
to
0.93.0
+261
-266
dist/index.js

@@ -1,3 +0,2 @@

import { useFormState, useForm as useForm$1, get, set, appendErrors } from "react-hook-form";
export * from "react-hook-form";
import { appendErrors, get, set, useForm as useForm$1, useFormState } from "react-hook-form";
import { c } from "react/compiler-runtime";

@@ -7,276 +6,272 @@ import { useId } from "react";

import env from "@rpcbase/env";
import * as n$1 from "zod/v4/core";
const isFormNavigationGuardDisabledByEnv = () => {
const raw = env.RB_PUBLIC_DISABLE_FORM_GUARD;
if (typeof raw !== "string") return false;
const val = raw.trim().toLowerCase();
return val === "1" || val === "true" || val === "yes";
import * as n from "zod/v4/core";
export * from "react-hook-form";
//#region src/navigationGuard.ts
var isFormNavigationGuardDisabledByEnv = () => {
const raw = env.RB_PUBLIC_DISABLE_FORM_GUARD;
if (typeof raw !== "string") return false;
const val = raw.trim().toLowerCase();
return val === "1" || val === "true" || val === "yes";
};
const normalizeFormNavigationGuardOptions = (input) => {
if (isFormNavigationGuardDisabledByEnv()) {
return {
enabled: false,
blockOnSearch: false
};
}
if (input === false) {
return {
enabled: false,
blockOnSearch: false
};
}
return {
enabled: input?.enabled ?? true,
message: input?.message,
blockOnSearch: input?.blockOnSearch ?? false,
priority: input?.priority
};
var normalizeFormNavigationGuardOptions = (input) => {
if (isFormNavigationGuardDisabledByEnv()) return {
enabled: false,
blockOnSearch: false
};
if (input === false) return {
enabled: false,
blockOnSearch: false
};
return {
enabled: input?.enabled ?? true,
message: input?.message,
blockOnSearch: input?.blockOnSearch ?? false,
priority: input?.priority
};
};
const shouldBlockFormNavigation = ({
args,
shouldBlockUnload,
blockOnSearch
}) => {
if (!shouldBlockUnload) return false;
if (args.currentLocation.pathname !== args.nextLocation.pathname) return true;
if (blockOnSearch && args.currentLocation.search !== args.nextLocation.search) return true;
return false;
var shouldBlockFormNavigation = ({ args, shouldBlockUnload, blockOnSearch }) => {
if (!shouldBlockUnload) return false;
if (args.currentLocation.pathname !== args.nextLocation.pathname) return true;
if (blockOnSearch && args.currentLocation.search !== args.nextLocation.search) return true;
return false;
};
const DEFAULT_FORM_NAVIGATION_GUARD_MESSAGE = "You have unsaved changes. Leave without saving?";
const useFormNavigationGuard = (form, opts) => {
const $ = c(15);
let t0;
if ($[0] !== form.control) {
t0 = {
control: form.control
};
$[0] = form.control;
$[1] = t0;
} else {
t0 = $[1];
}
const {
isDirty,
isSubmitting
} = useFormState(t0);
let t1;
if ($[2] !== opts) {
t1 = normalizeFormNavigationGuardOptions(opts);
$[2] = opts;
$[3] = t1;
} else {
t1 = $[3];
}
const normalized = t1;
const reactId = useId();
const id = `rpcbase:form:${reactId}`;
const shouldBlockUnload = normalized.enabled && isDirty && !isSubmitting;
let t2;
if ($[4] !== normalized.blockOnSearch || $[5] !== shouldBlockUnload) {
t2 = (args) => shouldBlockFormNavigation({
args,
shouldBlockUnload,
blockOnSearch: normalized.blockOnSearch
});
$[4] = normalized.blockOnSearch;
$[5] = shouldBlockUnload;
$[6] = t2;
} else {
t2 = $[6];
}
const shouldBlockNavigation = t2;
const t3 = normalized.message ?? DEFAULT_FORM_NAVIGATION_GUARD_MESSAGE;
let t4;
if ($[7] !== id || $[8] !== normalized.blockOnSearch || $[9] !== normalized.enabled || $[10] !== normalized.priority || $[11] !== shouldBlockNavigation || $[12] !== shouldBlockUnload || $[13] !== t3) {
t4 = {
id,
enabled: normalized.enabled,
priority: normalized.priority,
message: t3,
blockOnSearch: normalized.blockOnSearch,
shouldBlockNavigation,
shouldBlockUnload
};
$[7] = id;
$[8] = normalized.blockOnSearch;
$[9] = normalized.enabled;
$[10] = normalized.priority;
$[11] = shouldBlockNavigation;
$[12] = shouldBlockUnload;
$[13] = t3;
$[14] = t4;
} else {
t4 = $[14];
}
useRegisterNavigationGuard(t4);
//#endregion
//#region src/useFormNavigationGuard.ts
var DEFAULT_FORM_NAVIGATION_GUARD_MESSAGE = "You have unsaved changes. Leave without saving?";
var useFormNavigationGuard = (form, opts) => {
const $ = c(15);
let t0;
if ($[0] !== form.control) {
t0 = { control: form.control };
$[0] = form.control;
$[1] = t0;
} else t0 = $[1];
const { isDirty, isSubmitting } = useFormState(t0);
let t1;
if ($[2] !== opts) {
t1 = normalizeFormNavigationGuardOptions(opts);
$[2] = opts;
$[3] = t1;
} else t1 = $[3];
const normalized = t1;
const id = `rpcbase:form:${useId()}`;
const shouldBlockUnload = normalized.enabled && isDirty && !isSubmitting;
let t2;
if ($[4] !== normalized.blockOnSearch || $[5] !== shouldBlockUnload) {
t2 = (args) => shouldBlockFormNavigation({
args,
shouldBlockUnload,
blockOnSearch: normalized.blockOnSearch
});
$[4] = normalized.blockOnSearch;
$[5] = shouldBlockUnload;
$[6] = t2;
} else t2 = $[6];
const shouldBlockNavigation = t2;
const t3 = normalized.message ?? "You have unsaved changes. Leave without saving?";
let t4;
if ($[7] !== id || $[8] !== normalized.blockOnSearch || $[9] !== normalized.enabled || $[10] !== normalized.priority || $[11] !== shouldBlockNavigation || $[12] !== shouldBlockUnload || $[13] !== t3) {
t4 = {
id,
enabled: normalized.enabled,
priority: normalized.priority,
message: t3,
blockOnSearch: normalized.blockOnSearch,
shouldBlockNavigation,
shouldBlockUnload
};
$[7] = id;
$[8] = normalized.blockOnSearch;
$[9] = normalized.enabled;
$[10] = normalized.priority;
$[11] = shouldBlockNavigation;
$[12] = shouldBlockUnload;
$[13] = t3;
$[14] = t4;
} else t4 = $[14];
useRegisterNavigationGuard(t4);
};
const useForm = (props) => {
const $ = c(10);
let t0;
if ($[0] !== props) {
t0 = props ?? {};
$[0] = props;
$[1] = t0;
} else {
t0 = $[1];
}
let navigationGuard;
let rhfProps;
if ($[2] !== t0) {
({
navigationGuard,
...rhfProps
} = t0);
$[2] = t0;
$[3] = navigationGuard;
$[4] = rhfProps;
} else {
navigationGuard = $[3];
rhfProps = $[4];
}
const form = useForm$1(rhfProps);
let t1;
if ($[5] !== navigationGuard) {
t1 = normalizeFormNavigationGuardOptions(navigationGuard);
$[5] = navigationGuard;
$[6] = t1;
} else {
t1 = $[6];
}
const normalized = t1;
let t2;
if ($[7] !== navigationGuard || $[8] !== normalized.enabled) {
t2 = normalized.enabled ? navigationGuard : {
enabled: false
};
$[7] = navigationGuard;
$[8] = normalized.enabled;
$[9] = t2;
} else {
t2 = $[9];
}
useFormNavigationGuard(form, t2);
return form;
//#endregion
//#region src/useForm.ts
var useForm = (props) => {
const $ = c(10);
let t0;
if ($[0] !== props) {
t0 = props ?? {};
$[0] = props;
$[1] = t0;
} else t0 = $[1];
let navigationGuard;
let rhfProps;
if ($[2] !== t0) {
({navigationGuard, ...rhfProps} = t0);
$[2] = t0;
$[3] = navigationGuard;
$[4] = rhfProps;
} else {
navigationGuard = $[3];
rhfProps = $[4];
}
const form = useForm$1(rhfProps);
let t1;
if ($[5] !== navigationGuard) {
t1 = normalizeFormNavigationGuardOptions(navigationGuard);
$[5] = navigationGuard;
$[6] = t1;
} else t1 = $[6];
const normalized = t1;
let t2;
if ($[7] !== navigationGuard || $[8] !== normalized.enabled) {
t2 = normalized.enabled ? navigationGuard : { enabled: false };
$[7] = navigationGuard;
$[8] = normalized.enabled;
$[9] = t2;
} else t2 = $[9];
useFormNavigationGuard(form, t2);
return form;
};
const r = (t2, r2, o2) => {
if (t2 && "reportValidity" in t2) {
const s2 = get(o2, r2);
t2.setCustomValidity(s2 && s2.message || ""), t2.reportValidity();
}
}, o = (e, t2) => {
for (const o2 in t2.fields) {
const s2 = t2.fields[o2];
s2 && s2.ref && "reportValidity" in s2.ref ? r(s2.ref, o2, e) : s2 && s2.refs && s2.refs.forEach((t3) => r(t3, o2, e));
}
}, s$1 = (r2, s2) => {
s2.shouldUseNativeValidation && o(r2, s2);
const n2 = {};
for (const o2 in r2) {
const f = get(s2.fields, o2), c2 = Object.assign(r2[o2] || {}, { ref: f && f.ref });
if (i$1(s2.names || Object.keys(r2), o2)) {
const r3 = Object.assign({}, get(n2, o2));
set(r3, "root", c2), set(n2, o2, r3);
} else set(n2, o2, c2);
}
return n2;
}, i$1 = (e, t2) => {
const r2 = n(t2);
return e.some((e2) => n(e2).match(`^${r2}\\.\\d+`));
//#endregion
//#region ../../node_modules/@hookform/resolvers/dist/resolvers.mjs
var r = (t, r, o) => {
if (t && "reportValidity" in t) {
const s = get(o, r);
t.setCustomValidity(s && s.message || ""), t.reportValidity();
}
}, o = (e, t) => {
for (const o in t.fields) {
const s = t.fields[o];
s && s.ref && "reportValidity" in s.ref ? r(s.ref, o, e) : s && s.refs && s.refs.forEach((t) => r(t, o, e));
}
}, s$1 = (r, s) => {
s.shouldUseNativeValidation && o(r, s);
const n = {};
for (const o in r) {
const f = get(s.fields, o), c = Object.assign(r[o] || {}, { ref: f && f.ref });
if (i$1(s.names || Object.keys(r), o)) {
const r = Object.assign({}, get(n, o));
set(r, "root", c), set(n, o, r);
} else set(n, o, c);
}
return n;
}, i$1 = (e, t) => {
const r = n$1(t);
return e.some((e) => n$1(e).match(`^${r}\\.\\d+`));
};
function n(e) {
return e.replace(/\]|\[/g, "");
function n$1(e) {
return e.replace(/\]|\[/g, "");
}
function t(r2, e) {
try {
var o2 = r2();
} catch (r3) {
return e(r3);
}
return o2 && o2.then ? o2.then(void 0, e) : o2;
//#endregion
//#region ../../node_modules/@hookform/resolvers/zod/dist/zod.mjs
function t(r, e) {
try {
var o = r();
} catch (r) {
return e(r);
}
return o && o.then ? o.then(void 0, e) : o;
}
function s(r2, e) {
for (var n2 = {}; r2.length; ) {
var t2 = r2[0], s2 = t2.code, i2 = t2.message, a2 = t2.path.join(".");
if (!n2[a2]) if ("unionErrors" in t2) {
var u = t2.unionErrors[0].errors[0];
n2[a2] = { message: u.message, type: u.code };
} else n2[a2] = { message: i2, type: s2 };
if ("unionErrors" in t2 && t2.unionErrors.forEach(function(e2) {
return e2.errors.forEach(function(e3) {
return r2.push(e3);
});
}), e) {
var c2 = n2[a2].types, f = c2 && c2[t2.code];
n2[a2] = appendErrors(a2, e, n2, s2, f ? [].concat(f, t2.message) : t2.message);
}
r2.shift();
}
return n2;
function s(r, e) {
for (var n = {}; r.length;) {
var t = r[0], s = t.code, i = t.message, a = t.path.join(".");
if (!n[a]) if ("unionErrors" in t) {
var u = t.unionErrors[0].errors[0];
n[a] = {
message: u.message,
type: u.code
};
} else n[a] = {
message: i,
type: s
};
if ("unionErrors" in t && t.unionErrors.forEach(function(e) {
return e.errors.forEach(function(e) {
return r.push(e);
});
}), e) {
var c = n[a].types, f = c && c[t.code];
n[a] = appendErrors(a, e, n, s, f ? [].concat(f, t.message) : t.message);
}
r.shift();
}
return n;
}
function i(r2, e) {
for (var n2 = {}; r2.length; ) {
var t2 = r2[0], s2 = t2.code, i2 = t2.message, a2 = t2.path.join(".");
if (!n2[a2]) if ("invalid_union" === t2.code && t2.errors.length > 0) {
var u = t2.errors[0][0];
n2[a2] = { message: u.message, type: u.code };
} else n2[a2] = { message: i2, type: s2 };
if ("invalid_union" === t2.code && t2.errors.forEach(function(e2) {
return e2.forEach(function(e3) {
return r2.push(e3);
});
}), e) {
var c2 = n2[a2].types, f = c2 && c2[t2.code];
n2[a2] = appendErrors(a2, e, n2, s2, f ? [].concat(f, t2.message) : t2.message);
}
r2.shift();
}
return n2;
function i(r, e) {
for (var n = {}; r.length;) {
var t = r[0], s = t.code, i = t.message, a = t.path.join(".");
if (!n[a]) if ("invalid_union" === t.code && t.errors.length > 0) {
var u = t.errors[0][0];
n[a] = {
message: u.message,
type: u.code
};
} else n[a] = {
message: i,
type: s
};
if ("invalid_union" === t.code && t.errors.forEach(function(e) {
return e.forEach(function(e) {
return r.push(e);
});
}), e) {
var c = n[a].types, f = c && c[t.code];
n[a] = appendErrors(a, e, n, s, f ? [].concat(f, t.message) : t.message);
}
r.shift();
}
return n;
}
function a(o$1, a2, u) {
if (void 0 === u && (u = {}), (function(r2) {
return "_def" in r2 && "object" == typeof r2._def && "typeName" in r2._def;
})(o$1)) return function(n2, i2, c2) {
try {
return Promise.resolve(t(function() {
return Promise.resolve(o$1["sync" === u.mode ? "parse" : "parseAsync"](n2, a2)).then(function(e) {
return c2.shouldUseNativeValidation && o({}, c2), { errors: {}, values: u.raw ? Object.assign({}, n2) : e };
});
}, function(r2) {
if ((function(r3) {
return Array.isArray(null == r3 ? void 0 : r3.issues);
})(r2)) return { values: {}, errors: s$1(s(r2.errors, !c2.shouldUseNativeValidation && "all" === c2.criteriaMode), c2) };
throw r2;
}));
} catch (r2) {
return Promise.reject(r2);
}
};
if ((function(r2) {
return "_zod" in r2 && "object" == typeof r2._zod;
})(o$1)) return function(s2, c2, f) {
try {
return Promise.resolve(t(function() {
return Promise.resolve(("sync" === u.mode ? n$1.parse : n$1.parseAsync)(o$1, s2, a2)).then(function(e) {
return f.shouldUseNativeValidation && o({}, f), { errors: {}, values: u.raw ? Object.assign({}, s2) : e };
});
}, function(r2) {
if ((function(r3) {
return r3 instanceof n$1.$ZodError;
})(r2)) return { values: {}, errors: s$1(i(r2.issues, !f.shouldUseNativeValidation && "all" === f.criteriaMode), f) };
throw r2;
}));
} catch (r2) {
return Promise.reject(r2);
}
};
throw new Error("Invalid input: not a Zod schema");
function a(o$1, a, u) {
if (void 0 === u && (u = {}), function(r) {
return "_def" in r && "object" == typeof r._def && "typeName" in r._def;
}(o$1)) return function(n, i, c) {
try {
return Promise.resolve(t(function() {
return Promise.resolve(o$1["sync" === u.mode ? "parse" : "parseAsync"](n, a)).then(function(e) {
return c.shouldUseNativeValidation && o({}, c), {
errors: {},
values: u.raw ? Object.assign({}, n) : e
};
});
}, function(r) {
if (function(r) {
return Array.isArray(null == r ? void 0 : r.issues);
}(r)) return {
values: {},
errors: s$1(s(r.errors, !c.shouldUseNativeValidation && "all" === c.criteriaMode), c)
};
throw r;
}));
} catch (r) {
return Promise.reject(r);
}
};
if (function(r) {
return "_zod" in r && "object" == typeof r._zod;
}(o$1)) return function(s, c, f) {
try {
return Promise.resolve(t(function() {
return Promise.resolve(("sync" === u.mode ? n.parse : n.parseAsync)(o$1, s, a)).then(function(e) {
return f.shouldUseNativeValidation && o({}, f), {
errors: {},
values: u.raw ? Object.assign({}, s) : e
};
});
}, function(r) {
if (function(r) {
return r instanceof n.$ZodError;
}(r)) return {
values: {},
errors: s$1(i(r.issues, !f.shouldUseNativeValidation && "all" === f.criteriaMode), f)
};
throw r;
}));
} catch (r) {
return Promise.reject(r);
}
};
throw new Error("Invalid input: not a Zod schema");
}
export {
DEFAULT_FORM_NAVIGATION_GUARD_MESSAGE,
normalizeFormNavigationGuardOptions,
shouldBlockFormNavigation,
useForm,
useFormNavigationGuard,
a as zodResolver
};
//# sourceMappingURL=index.js.map
//#endregion
export { DEFAULT_FORM_NAVIGATION_GUARD_MESSAGE, normalizeFormNavigationGuardOptions, shouldBlockFormNavigation, useForm, useFormNavigationGuard, a as zodResolver };
//# sourceMappingURL=index.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sources":["../src/navigationGuard.ts","../src/useFormNavigationGuard.ts","../src/useForm.ts","../../../node_modules/@hookform/resolvers/dist/resolvers.mjs","../../../node_modules/@hookform/resolvers/zod/dist/zod.mjs"],"sourcesContent":["import type { BlockerFunction } from \"@rpcbase/router\"\nimport env from \"@rpcbase/env\"\n\n\nconst isFormNavigationGuardDisabledByEnv = (): boolean => {\n const raw = env.RB_PUBLIC_DISABLE_FORM_GUARD\n\n if (typeof raw !== \"string\") return false\n\n const val = raw.trim().toLowerCase()\n return val === \"1\" || val === \"true\" || val === \"yes\"\n}\n\n\nexport type FormNavigationGuardOptions =\n | false\n | {\n enabled?: boolean\n message?: string\n blockOnSearch?: boolean\n priority?: number\n }\n\nexport type NormalizedFormNavigationGuardOptions = {\n enabled: boolean\n message?: string\n blockOnSearch: boolean\n priority?: number\n}\n\nexport const normalizeFormNavigationGuardOptions = (\n input: FormNavigationGuardOptions | undefined,\n): NormalizedFormNavigationGuardOptions => {\n if (isFormNavigationGuardDisabledByEnv()) {\n return { enabled: false, blockOnSearch: false }\n }\n\n if (input === false) {\n return { enabled: false, blockOnSearch: false }\n }\n\n return {\n enabled: input?.enabled ?? true,\n message: input?.message,\n blockOnSearch: input?.blockOnSearch ?? false,\n priority: input?.priority,\n }\n}\n\nexport const shouldBlockFormNavigation = ({\n args,\n shouldBlockUnload,\n blockOnSearch,\n}: {\n args: Parameters<BlockerFunction>[0]\n shouldBlockUnload: boolean\n blockOnSearch: boolean\n}): boolean => {\n if (!shouldBlockUnload) return false\n if (args.currentLocation.pathname !== args.nextLocation.pathname) return true\n if (blockOnSearch && args.currentLocation.search !== args.nextLocation.search) return true\n return false\n}\n","import { useCallback, useId, useMemo } from \"react\"\nimport type { FieldValues, UseFormReturn } from \"react-hook-form\"\nimport { useFormState } from \"react-hook-form\"\nimport { useRegisterNavigationGuard } from \"@rpcbase/router\"\n\nimport {\n normalizeFormNavigationGuardOptions,\n shouldBlockFormNavigation,\n type FormNavigationGuardOptions,\n} from \"./navigationGuard\"\n\n\nexport const DEFAULT_FORM_NAVIGATION_GUARD_MESSAGE =\n \"You have unsaved changes. Leave without saving?\"\n\nexport const useFormNavigationGuard = <\n TFieldValues extends FieldValues,\n TContext = any,\n TTransformedValues = TFieldValues,\n>(\n form: UseFormReturn<TFieldValues, TContext, TTransformedValues>,\n opts?: FormNavigationGuardOptions,\n): void => {\n const { isDirty, isSubmitting } = useFormState({ control: form.control })\n\n const normalized = normalizeFormNavigationGuardOptions(opts)\n\n const reactId = useId()\n const id = useMemo(() => `rpcbase:form:${reactId}`, [reactId])\n\n const shouldBlockUnload = normalized.enabled && isDirty && !isSubmitting\n\n const shouldBlockNavigation = useCallback(\n (args: Parameters<typeof shouldBlockFormNavigation>[0][\"args\"]) =>\n shouldBlockFormNavigation({\n args,\n shouldBlockUnload,\n blockOnSearch: normalized.blockOnSearch,\n }),\n [normalized.blockOnSearch, shouldBlockUnload],\n )\n\n useRegisterNavigationGuard({\n id,\n enabled: normalized.enabled,\n priority: normalized.priority,\n message: normalized.message ?? DEFAULT_FORM_NAVIGATION_GUARD_MESSAGE,\n blockOnSearch: normalized.blockOnSearch,\n shouldBlockNavigation,\n shouldBlockUnload,\n })\n}\n","import { useForm as rhfUseForm } from \"react-hook-form\"\nimport type { FieldValues, UseFormProps, UseFormReturn } from \"react-hook-form\"\n\nimport { useFormNavigationGuard } from \"./useFormNavigationGuard\"\nimport {\n normalizeFormNavigationGuardOptions,\n type FormNavigationGuardOptions,\n} from \"./navigationGuard\"\n\n\nexport type UseFormPropsWithNavigationGuard<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n TTransformedValues = TFieldValues,\n> = UseFormProps<TFieldValues, TContext, TTransformedValues> & {\n navigationGuard?: FormNavigationGuardOptions\n}\n\nexport const useForm = <\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n TTransformedValues = TFieldValues,\n>(\n props?: UseFormPropsWithNavigationGuard<TFieldValues, TContext, TTransformedValues>,\n): UseFormReturn<TFieldValues, TContext, TTransformedValues> => {\n const { navigationGuard, ...rhfProps } = props ?? {}\n\n const form = rhfUseForm<TFieldValues, TContext, TTransformedValues>(\n rhfProps as UseFormProps<TFieldValues, TContext, TTransformedValues>,\n )\n\n const normalized = normalizeFormNavigationGuardOptions(navigationGuard)\n useFormNavigationGuard(form, normalized.enabled ? navigationGuard : { enabled: false })\n\n return form\n}\n","import{get as e,set as t}from\"react-hook-form\";const r=(t,r,o)=>{if(t&&\"reportValidity\"in t){const s=e(o,r);t.setCustomValidity(s&&s.message||\"\"),t.reportValidity()}},o=(e,t)=>{for(const o in t.fields){const s=t.fields[o];s&&s.ref&&\"reportValidity\"in s.ref?r(s.ref,o,e):s&&s.refs&&s.refs.forEach(t=>r(t,o,e))}},s=(r,s)=>{s.shouldUseNativeValidation&&o(r,s);const n={};for(const o in r){const f=e(s.fields,o),c=Object.assign(r[o]||{},{ref:f&&f.ref});if(i(s.names||Object.keys(r),o)){const r=Object.assign({},e(n,o));t(r,\"root\",c),t(n,o,r)}else t(n,o,c)}return n},i=(e,t)=>{const r=n(t);return e.some(e=>n(e).match(`^${r}\\\\.\\\\d+`))};function n(e){return e.replace(/\\]|\\[/g,\"\")}export{s as toNestErrors,o as validateFieldsNatively};\n//# sourceMappingURL=resolvers.mjs.map\n","import{validateFieldsNatively as r,toNestErrors as e}from\"@hookform/resolvers\";import{appendErrors as o}from\"react-hook-form\";import*as n from\"zod/v4/core\";function t(r,e){try{var o=r()}catch(r){return e(r)}return o&&o.then?o.then(void 0,e):o}function s(r,e){for(var n={};r.length;){var t=r[0],s=t.code,i=t.message,a=t.path.join(\".\");if(!n[a])if(\"unionErrors\"in t){var u=t.unionErrors[0].errors[0];n[a]={message:u.message,type:u.code}}else n[a]={message:i,type:s};if(\"unionErrors\"in t&&t.unionErrors.forEach(function(e){return e.errors.forEach(function(e){return r.push(e)})}),e){var c=n[a].types,f=c&&c[t.code];n[a]=o(a,e,n,s,f?[].concat(f,t.message):t.message)}r.shift()}return n}function i(r,e){for(var n={};r.length;){var t=r[0],s=t.code,i=t.message,a=t.path.join(\".\");if(!n[a])if(\"invalid_union\"===t.code&&t.errors.length>0){var u=t.errors[0][0];n[a]={message:u.message,type:u.code}}else n[a]={message:i,type:s};if(\"invalid_union\"===t.code&&t.errors.forEach(function(e){return e.forEach(function(e){return r.push(e)})}),e){var c=n[a].types,f=c&&c[t.code];n[a]=o(a,e,n,s,f?[].concat(f,t.message):t.message)}r.shift()}return n}function a(o,a,u){if(void 0===u&&(u={}),function(r){return\"_def\"in r&&\"object\"==typeof r._def&&\"typeName\"in r._def}(o))return function(n,i,c){try{return Promise.resolve(t(function(){return Promise.resolve(o[\"sync\"===u.mode?\"parse\":\"parseAsync\"](n,a)).then(function(e){return c.shouldUseNativeValidation&&r({},c),{errors:{},values:u.raw?Object.assign({},n):e}})},function(r){if(function(r){return Array.isArray(null==r?void 0:r.issues)}(r))return{values:{},errors:e(s(r.errors,!c.shouldUseNativeValidation&&\"all\"===c.criteriaMode),c)};throw r}))}catch(r){return Promise.reject(r)}};if(function(r){return\"_zod\"in r&&\"object\"==typeof r._zod}(o))return function(s,c,f){try{return Promise.resolve(t(function(){return Promise.resolve((\"sync\"===u.mode?n.parse:n.parseAsync)(o,s,a)).then(function(e){return f.shouldUseNativeValidation&&r({},f),{errors:{},values:u.raw?Object.assign({},s):e}})},function(r){if(function(r){return r instanceof n.$ZodError}(r))return{values:{},errors:e(i(r.issues,!f.shouldUseNativeValidation&&\"all\"===f.criteriaMode),f)};throw r}))}catch(r){return Promise.reject(r)}};throw new Error(\"Invalid input: not a Zod schema\")}export{a as zodResolver};\n//# sourceMappingURL=zod.module.js.map\n"],"names":["isFormNavigationGuardDisabledByEnv","raw","env","RB_PUBLIC_DISABLE_FORM_GUARD","val","trim","toLowerCase","normalizeFormNavigationGuardOptions","input","enabled","blockOnSearch","message","priority","shouldBlockFormNavigation","args","shouldBlockUnload","currentLocation","pathname","nextLocation","search","DEFAULT_FORM_NAVIGATION_GUARD_MESSAGE","useFormNavigationGuard","form","opts","$","_c","t0","control","isDirty","isSubmitting","useFormState","t1","normalized","reactId","useId","id","t2","shouldBlockNavigation","t3","t4","useRegisterNavigationGuard","useForm","props","navigationGuard","rhfProps","rhfUseForm","t","r","o","s","e","n","c","i","a"],"mappings":"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","x_google_ignoreList":[3,4]}
{"version":3,"file":"index.js","names":["BlockerFunction","env","isFormNavigationGuardDisabledByEnv","raw","RB_PUBLIC_DISABLE_FORM_GUARD","val","trim","toLowerCase","FormNavigationGuardOptions","enabled","message","blockOnSearch","priority","NormalizedFormNavigationGuardOptions","normalizeFormNavigationGuardOptions","input","shouldBlockFormNavigation","args","shouldBlockUnload","Parameters","currentLocation","pathname","nextLocation","search","useCallback","useId","useMemo","FieldValues","UseFormReturn","useFormState","useRegisterNavigationGuard","normalizeFormNavigationGuardOptions","shouldBlockFormNavigation","FormNavigationGuardOptions","DEFAULT_FORM_NAVIGATION_GUARD_MESSAGE","useFormNavigationGuard","form","opts","$","_c","t0","control","isDirty","isSubmitting","t1","normalized","reactId","id","shouldBlockUnload","enabled","t2","blockOnSearch","args","shouldBlockNavigation","t3","message","t4","priority","useForm","rhfUseForm","FieldValues","UseFormProps","UseFormReturn","useFormNavigationGuard","normalizeFormNavigationGuardOptions","FormNavigationGuardOptions","UseFormPropsWithNavigationGuard","TFieldValues","TContext","TTransformedValues","navigationGuard","props","$","_c","t0","rhfProps","form","t1","normalized","t2","enabled","e","s","i","t","n","o","r","e"],"sources":["../src/navigationGuard.ts","../src/useFormNavigationGuard.ts","../src/useForm.ts","../../../node_modules/@hookform/resolvers/dist/resolvers.mjs","../../../node_modules/@hookform/resolvers/zod/dist/zod.mjs"],"sourcesContent":["import type { BlockerFunction } from \"@rpcbase/router\"\nimport env from \"@rpcbase/env\"\n\n\nconst isFormNavigationGuardDisabledByEnv = (): boolean => {\n const raw = env.RB_PUBLIC_DISABLE_FORM_GUARD\n\n if (typeof raw !== \"string\") return false\n\n const val = raw.trim().toLowerCase()\n return val === \"1\" || val === \"true\" || val === \"yes\"\n}\n\n\nexport type FormNavigationGuardOptions =\n | false\n | {\n enabled?: boolean\n message?: string\n blockOnSearch?: boolean\n priority?: number\n }\n\nexport type NormalizedFormNavigationGuardOptions = {\n enabled: boolean\n message?: string\n blockOnSearch: boolean\n priority?: number\n}\n\nexport const normalizeFormNavigationGuardOptions = (\n input: FormNavigationGuardOptions | undefined,\n): NormalizedFormNavigationGuardOptions => {\n if (isFormNavigationGuardDisabledByEnv()) {\n return { enabled: false, blockOnSearch: false }\n }\n\n if (input === false) {\n return { enabled: false, blockOnSearch: false }\n }\n\n return {\n enabled: input?.enabled ?? true,\n message: input?.message,\n blockOnSearch: input?.blockOnSearch ?? false,\n priority: input?.priority,\n }\n}\n\nexport const shouldBlockFormNavigation = ({\n args,\n shouldBlockUnload,\n blockOnSearch,\n}: {\n args: Parameters<BlockerFunction>[0]\n shouldBlockUnload: boolean\n blockOnSearch: boolean\n}): boolean => {\n if (!shouldBlockUnload) return false\n if (args.currentLocation.pathname !== args.nextLocation.pathname) return true\n if (blockOnSearch && args.currentLocation.search !== args.nextLocation.search) return true\n return false\n}\n","import { useCallback, useId, useMemo } from \"react\"\nimport type { FieldValues, UseFormReturn } from \"react-hook-form\"\nimport { useFormState } from \"react-hook-form\"\nimport { useRegisterNavigationGuard } from \"@rpcbase/router\"\n\nimport {\n normalizeFormNavigationGuardOptions,\n shouldBlockFormNavigation,\n type FormNavigationGuardOptions,\n} from \"./navigationGuard\"\n\n\nexport const DEFAULT_FORM_NAVIGATION_GUARD_MESSAGE =\n \"You have unsaved changes. Leave without saving?\"\n\nexport const useFormNavigationGuard = <\n TFieldValues extends FieldValues,\n TContext = any,\n TTransformedValues = TFieldValues,\n>(\n form: UseFormReturn<TFieldValues, TContext, TTransformedValues>,\n opts?: FormNavigationGuardOptions,\n): void => {\n const { isDirty, isSubmitting } = useFormState({ control: form.control })\n\n const normalized = normalizeFormNavigationGuardOptions(opts)\n\n const reactId = useId()\n const id = useMemo(() => `rpcbase:form:${reactId}`, [reactId])\n\n const shouldBlockUnload = normalized.enabled && isDirty && !isSubmitting\n\n const shouldBlockNavigation = useCallback(\n (args: Parameters<typeof shouldBlockFormNavigation>[0][\"args\"]) =>\n shouldBlockFormNavigation({\n args,\n shouldBlockUnload,\n blockOnSearch: normalized.blockOnSearch,\n }),\n [normalized.blockOnSearch, shouldBlockUnload],\n )\n\n useRegisterNavigationGuard({\n id,\n enabled: normalized.enabled,\n priority: normalized.priority,\n message: normalized.message ?? DEFAULT_FORM_NAVIGATION_GUARD_MESSAGE,\n blockOnSearch: normalized.blockOnSearch,\n shouldBlockNavigation,\n shouldBlockUnload,\n })\n}\n","import { useForm as rhfUseForm } from \"react-hook-form\"\nimport type { FieldValues, UseFormProps, UseFormReturn } from \"react-hook-form\"\n\nimport { useFormNavigationGuard } from \"./useFormNavigationGuard\"\nimport {\n normalizeFormNavigationGuardOptions,\n type FormNavigationGuardOptions,\n} from \"./navigationGuard\"\n\n\nexport type UseFormPropsWithNavigationGuard<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n TTransformedValues = TFieldValues,\n> = UseFormProps<TFieldValues, TContext, TTransformedValues> & {\n navigationGuard?: FormNavigationGuardOptions\n}\n\nexport const useForm = <\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n TTransformedValues = TFieldValues,\n>(\n props?: UseFormPropsWithNavigationGuard<TFieldValues, TContext, TTransformedValues>,\n): UseFormReturn<TFieldValues, TContext, TTransformedValues> => {\n const { navigationGuard, ...rhfProps } = props ?? {}\n\n const form = rhfUseForm<TFieldValues, TContext, TTransformedValues>(\n rhfProps as UseFormProps<TFieldValues, TContext, TTransformedValues>,\n )\n\n const normalized = normalizeFormNavigationGuardOptions(navigationGuard)\n useFormNavigationGuard(form, normalized.enabled ? navigationGuard : { enabled: false })\n\n return form\n}\n","import{get as e,set as t}from\"react-hook-form\";const r=(t,r,o)=>{if(t&&\"reportValidity\"in t){const s=e(o,r);t.setCustomValidity(s&&s.message||\"\"),t.reportValidity()}},o=(e,t)=>{for(const o in t.fields){const s=t.fields[o];s&&s.ref&&\"reportValidity\"in s.ref?r(s.ref,o,e):s&&s.refs&&s.refs.forEach(t=>r(t,o,e))}},s=(r,s)=>{s.shouldUseNativeValidation&&o(r,s);const n={};for(const o in r){const f=e(s.fields,o),c=Object.assign(r[o]||{},{ref:f&&f.ref});if(i(s.names||Object.keys(r),o)){const r=Object.assign({},e(n,o));t(r,\"root\",c),t(n,o,r)}else t(n,o,c)}return n},i=(e,t)=>{const r=n(t);return e.some(e=>n(e).match(`^${r}\\\\.\\\\d+`))};function n(e){return e.replace(/\\]|\\[/g,\"\")}export{s as toNestErrors,o as validateFieldsNatively};\n//# sourceMappingURL=resolvers.mjs.map\n","import{validateFieldsNatively as r,toNestErrors as e}from\"@hookform/resolvers\";import{appendErrors as o}from\"react-hook-form\";import*as n from\"zod/v4/core\";function t(r,e){try{var o=r()}catch(r){return e(r)}return o&&o.then?o.then(void 0,e):o}function s(r,e){for(var n={};r.length;){var t=r[0],s=t.code,i=t.message,a=t.path.join(\".\");if(!n[a])if(\"unionErrors\"in t){var u=t.unionErrors[0].errors[0];n[a]={message:u.message,type:u.code}}else n[a]={message:i,type:s};if(\"unionErrors\"in t&&t.unionErrors.forEach(function(e){return e.errors.forEach(function(e){return r.push(e)})}),e){var c=n[a].types,f=c&&c[t.code];n[a]=o(a,e,n,s,f?[].concat(f,t.message):t.message)}r.shift()}return n}function i(r,e){for(var n={};r.length;){var t=r[0],s=t.code,i=t.message,a=t.path.join(\".\");if(!n[a])if(\"invalid_union\"===t.code&&t.errors.length>0){var u=t.errors[0][0];n[a]={message:u.message,type:u.code}}else n[a]={message:i,type:s};if(\"invalid_union\"===t.code&&t.errors.forEach(function(e){return e.forEach(function(e){return r.push(e)})}),e){var c=n[a].types,f=c&&c[t.code];n[a]=o(a,e,n,s,f?[].concat(f,t.message):t.message)}r.shift()}return n}function a(o,a,u){if(void 0===u&&(u={}),function(r){return\"_def\"in r&&\"object\"==typeof r._def&&\"typeName\"in r._def}(o))return function(n,i,c){try{return Promise.resolve(t(function(){return Promise.resolve(o[\"sync\"===u.mode?\"parse\":\"parseAsync\"](n,a)).then(function(e){return c.shouldUseNativeValidation&&r({},c),{errors:{},values:u.raw?Object.assign({},n):e}})},function(r){if(function(r){return Array.isArray(null==r?void 0:r.issues)}(r))return{values:{},errors:e(s(r.errors,!c.shouldUseNativeValidation&&\"all\"===c.criteriaMode),c)};throw r}))}catch(r){return Promise.reject(r)}};if(function(r){return\"_zod\"in r&&\"object\"==typeof r._zod}(o))return function(s,c,f){try{return Promise.resolve(t(function(){return Promise.resolve((\"sync\"===u.mode?n.parse:n.parseAsync)(o,s,a)).then(function(e){return f.shouldUseNativeValidation&&r({},f),{errors:{},values:u.raw?Object.assign({},s):e}})},function(r){if(function(r){return r instanceof n.$ZodError}(r))return{values:{},errors:e(i(r.issues,!f.shouldUseNativeValidation&&\"all\"===f.criteriaMode),f)};throw r}))}catch(r){return Promise.reject(r)}};throw new Error(\"Invalid input: not a Zod schema\")}export{a as zodResolver};\n//# sourceMappingURL=zod.module.js.map\n"],"x_google_ignoreList":[3,4],"mappings":"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"}
{
"name": "@rpcbase/form",
"version": "0.92.0",
"version": "0.93.0",
"type": "module",

@@ -5,0 +5,0 @@ "files": [