@vaadin/hilla-lit-form 24.5.0 → 24.5.2
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.
- package/Validation.d.ts.map +1 -1
- package/Validation.js +3 -2
- package/Validation.js.map +2 -2
- package/index.js +1 -1
- package/package.json +2 -2
package/Validation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Validation.d.ts","sourceRoot":"","sources":["src/Validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Validation.d.ts","sourceRoot":"","sources":["src/Validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAe,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAGrE,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,CAAC,CAAC;IACT,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,aAAa,GAAG,MAAM,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;gBAElB,MAAM,EAAE,SAAS,UAAU,EAAE;CAa1C;AAED,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,aAAa,IAAI,CAChE,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC9B,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,KACtB,MAAM,CAAC;AAEZ,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,OAAO;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CACN,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,UAAU,GAEhB,OAAO,CAAC,gBAAgB,GAAG,OAAO,GAAG,SAAS,gBAAgB,EAAE,CAAC,GACjE,gBAAgB,GAChB,OAAO,GACP,SAAS,gBAAgB,EAAE,CAAC;CACjC;AAED,qBAAa,eAAgB,YAAW,SAAS;IAC/C,IAAI,SAAqB;IACzB,OAAO,EAAE,MAAM,CAAC;gBAEJ,OAAO,EAAE,MAAM;IAI3B,QAAQ,QAAO,OAAO,CAAU;CACjC;AAUD,wBAAsB,YAAY,CAAC,CAAC,SAAS,aAAa,EACxD,KAAK,EAAE,CAAC,EACR,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC9B,0BAA0B,CAAC,EAAE,0BAA0B,CAAC,CAAC,CAAC,GACzD,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CA8D9C"}
|
package/Validation.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import isNumeric from "validator/es/lib/isNumeric.js";
|
|
1
2
|
import { getBinderNode } from "./BinderNode.js";
|
|
2
3
|
import { AbstractModel, NumberModel } from "./Models.js";
|
|
3
|
-
import { Required } from "./Validators.js";
|
|
4
|
+
import { IsNumber, Required, ValidityStateValidator } from "./Validators.js";
|
|
4
5
|
class ValidationError extends Error {
|
|
5
6
|
errors;
|
|
6
7
|
constructor(errors) {
|
|
@@ -40,7 +41,7 @@ async function runValidator(model, validator, interpolateMessageCallback) {
|
|
|
40
41
|
}
|
|
41
42
|
return interpolateMessageCallback(message, validator, binderNode);
|
|
42
43
|
};
|
|
43
|
-
if (!binderNode.required && !new Required().validate(value) && !(
|
|
44
|
+
if (!binderNode.required && !new Required().validate(value) && !(validator instanceof IsNumber) && !(validator instanceof ValidityStateValidator)) {
|
|
44
45
|
return [];
|
|
45
46
|
}
|
|
46
47
|
try {
|
package/Validation.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["src/Validation.ts"],
|
|
4
|
-
"sourcesContent": ["import type { BinderNode } from './BinderNode.js';\nimport { getBinderNode } from './BinderNode.js';\nimport type { BinderRoot } from './BinderRoot.js';\nimport { AbstractModel, NumberModel, type Value } from './Models.js';\nimport { Required } from './Validators.js';\n\nexport interface ValueError<T = unknown> {\n property: AbstractModel | string;\n message: string;\n value: T;\n validator: Validator<T>;\n validatorMessage?: string;\n}\n\nexport interface ValidationResult {\n property: AbstractModel | string;\n message?: string;\n}\n\nexport class ValidationError extends Error {\n errors: readonly ValueError[];\n\n constructor(errors: readonly ValueError[]) {\n super(\n [\n 'There are validation errors in the form.',\n ...errors.map((e) => {\n const property = e.property instanceof AbstractModel ? String(getBinderNode(e.property).value) : e.property;\n return `${property} - ${e.validator.constructor.name}${e.message ? `: ${e.message}` : ''}`;\n }),\n ].join('\\n - '),\n );\n this.errors = errors;\n this.name = this.constructor.name;\n }\n}\n\nexport type InterpolateMessageCallback<M extends AbstractModel> = (\n message: string,\n validator: Validator<Value<M>>,\n binderNode: BinderNode<M>,\n) => string;\n\nexport interface Validator<T = unknown> {\n message: string;\n impliesRequired?: boolean;\n name?: string;\n validate(\n value: T,\n binder: BinderRoot,\n ):\n | Promise<ValidationResult | boolean | readonly ValidationResult[]>\n | ValidationResult\n | boolean\n | readonly ValidationResult[];\n}\n\nexport class ServerValidator implements Validator {\n name = 'ServerValidator';\n message: string;\n\n constructor(message: string) {\n this.message = message;\n }\n\n validate = (): boolean => false;\n}\n\n// The `property` field of `ValidationResult`s is a path relative to the parent.\nfunction setPropertyAbsolutePath(binderNodeName: string, result: ValidationResult): ValidationResult {\n if (typeof result.property === 'string' && binderNodeName.length > 0) {\n result.property = `${binderNodeName}.${result.property}`;\n }\n return result;\n}\n\nexport async function runValidator<M extends AbstractModel>(\n model: M,\n validator: Validator<Value<M>>,\n interpolateMessageCallback?: InterpolateMessageCallback<M>,\n): Promise<ReadonlyArray<ValueError<Value<M>>>> {\n const binderNode = getBinderNode(model);\n const value = binderNode.value as Value<M>;\n\n const interpolateMessage = (message: string) => {\n if (!interpolateMessageCallback) {\n return message;\n }\n return interpolateMessageCallback(message, validator, binderNode);\n };\n\n // If model is not required and value empty, do not run any validator. Except\n // always validate NumberModel, which has a mandatory builtin validator\n // to indicate NaN input.\n if (!binderNode.required
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import isNumeric from 'validator/es/lib/isNumeric.js';\nimport type { BinderNode } from './BinderNode.js';\nimport { getBinderNode } from './BinderNode.js';\nimport type { BinderRoot } from './BinderRoot.js';\nimport { AbstractModel, NumberModel, type Value } from './Models.js';\nimport { IsNumber, Required, ValidityStateValidator } from './Validators.js';\n\nexport interface ValueError<T = unknown> {\n property: AbstractModel | string;\n message: string;\n value: T;\n validator: Validator<T>;\n validatorMessage?: string;\n}\n\nexport interface ValidationResult {\n property: AbstractModel | string;\n message?: string;\n}\n\nexport class ValidationError extends Error {\n errors: readonly ValueError[];\n\n constructor(errors: readonly ValueError[]) {\n super(\n [\n 'There are validation errors in the form.',\n ...errors.map((e) => {\n const property = e.property instanceof AbstractModel ? String(getBinderNode(e.property).value) : e.property;\n return `${property} - ${e.validator.constructor.name}${e.message ? `: ${e.message}` : ''}`;\n }),\n ].join('\\n - '),\n );\n this.errors = errors;\n this.name = this.constructor.name;\n }\n}\n\nexport type InterpolateMessageCallback<M extends AbstractModel> = (\n message: string,\n validator: Validator<Value<M>>,\n binderNode: BinderNode<M>,\n) => string;\n\nexport interface Validator<T = unknown> {\n message: string;\n impliesRequired?: boolean;\n name?: string;\n validate(\n value: T,\n binder: BinderRoot,\n ):\n | Promise<ValidationResult | boolean | readonly ValidationResult[]>\n | ValidationResult\n | boolean\n | readonly ValidationResult[];\n}\n\nexport class ServerValidator implements Validator {\n name = 'ServerValidator';\n message: string;\n\n constructor(message: string) {\n this.message = message;\n }\n\n validate = (): boolean => false;\n}\n\n// The `property` field of `ValidationResult`s is a path relative to the parent.\nfunction setPropertyAbsolutePath(binderNodeName: string, result: ValidationResult): ValidationResult {\n if (typeof result.property === 'string' && binderNodeName.length > 0) {\n result.property = `${binderNodeName}.${result.property}`;\n }\n return result;\n}\n\nexport async function runValidator<M extends AbstractModel>(\n model: M,\n validator: Validator<Value<M>>,\n interpolateMessageCallback?: InterpolateMessageCallback<M>,\n): Promise<ReadonlyArray<ValueError<Value<M>>>> {\n const binderNode = getBinderNode(model);\n const value = binderNode.value as Value<M>;\n\n const interpolateMessage = (message: string) => {\n if (!interpolateMessageCallback) {\n return message;\n }\n return interpolateMessageCallback(message, validator, binderNode);\n };\n\n // If model is not required and value empty, do not run any validator. Except\n // always validate NumberModel, which has a mandatory builtin validator\n // to indicate NaN input.\n if (\n !binderNode.required &&\n !new Required().validate(value) &&\n !(validator instanceof IsNumber) &&\n !(validator instanceof ValidityStateValidator)\n ) {\n return [];\n }\n\n try {\n const result = await validator.validate(value, binderNode.binder);\n\n if (result === false) {\n return [\n {\n message: interpolateMessage(validator.message),\n property: binderNode.name,\n validator,\n value,\n },\n ];\n }\n\n if (result === true || (Array.isArray(result) && result.length === 0)) {\n return [];\n }\n\n if (Array.isArray(result)) {\n return result.map((result2) => ({\n message: interpolateMessage(validator.message),\n ...setPropertyAbsolutePath(binderNode.name, result2),\n validator,\n value,\n }));\n }\n\n return [\n {\n message: interpolateMessage(validator.message),\n ...setPropertyAbsolutePath(binderNode.name, result as ValidationResult),\n validator,\n value,\n },\n ];\n } catch (error: unknown) {\n console.error(`${binderNode.name} - Validator ${validator.constructor.name} threw an error:`, error);\n return [{ message: 'Validator threw an error', property: binderNode.name, validator, value }];\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,OAAO,eAAe;AAEtB,SAAS,qBAAqB;AAE9B,SAAS,eAAe,mBAA+B;AACvD,SAAS,UAAU,UAAU,8BAA8B;AAepD,MAAM,wBAAwB,MAAM;AAAA,EACzC;AAAA,EAEA,YAAY,QAA+B;AACzC;AAAA,MACE;AAAA,QACE;AAAA,QACA,GAAG,OAAO,IAAI,CAAC,MAAM;AACnB,gBAAM,WAAW,EAAE,oBAAoB,gBAAgB,OAAO,cAAc,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE;AACnG,iBAAO,GAAG,QAAQ,MAAM,EAAE,UAAU,YAAY,IAAI,GAAG,EAAE,UAAU,KAAK,EAAE,OAAO,KAAK,EAAE;AAAA,QAC1F,CAAC;AAAA,MACH,EAAE,KAAK,OAAO;AAAA,IAChB;AACA,SAAK,SAAS;AACd,SAAK,OAAO,KAAK,YAAY;AAAA,EAC/B;AACF;AAsBO,MAAM,gBAAqC;AAAA,EAChD,OAAO;AAAA,EACP;AAAA,EAEA,YAAY,SAAiB;AAC3B,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,WAAW,MAAe;AAC5B;AAGA,SAAS,wBAAwB,gBAAwB,QAA4C;AACnG,MAAI,OAAO,OAAO,aAAa,YAAY,eAAe,SAAS,GAAG;AACpE,WAAO,WAAW,GAAG,cAAc,IAAI,OAAO,QAAQ;AAAA,EACxD;AACA,SAAO;AACT;AAEA,eAAsB,aACpB,OACA,WACA,4BAC8C;AAC9C,QAAM,aAAa,cAAc,KAAK;AACtC,QAAM,QAAQ,WAAW;AAEzB,QAAM,qBAAqB,CAAC,YAAoB;AAC9C,QAAI,CAAC,4BAA4B;AAC/B,aAAO;AAAA,IACT;AACA,WAAO,2BAA2B,SAAS,WAAW,UAAU;AAAA,EAClE;AAKA,MACE,CAAC,WAAW,YACZ,CAAC,IAAI,SAAS,EAAE,SAAS,KAAK,KAC9B,EAAE,qBAAqB,aACvB,EAAE,qBAAqB,yBACvB;AACA,WAAO,CAAC;AAAA,EACV;AAEA,MAAI;AACF,UAAM,SAAS,MAAM,UAAU,SAAS,OAAO,WAAW,MAAM;AAEhE,QAAI,WAAW,OAAO;AACpB,aAAO;AAAA,QACL;AAAA,UACE,SAAS,mBAAmB,UAAU,OAAO;AAAA,UAC7C,UAAU,WAAW;AAAA,UACrB;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,QAAI,WAAW,QAAS,MAAM,QAAQ,MAAM,KAAK,OAAO,WAAW,GAAI;AACrE,aAAO,CAAC;AAAA,IACV;AAEA,QAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,aAAO,OAAO,IAAI,CAAC,aAAa;AAAA,QAC9B,SAAS,mBAAmB,UAAU,OAAO;AAAA,QAC7C,GAAG,wBAAwB,WAAW,MAAM,OAAO;AAAA,QACnD;AAAA,QACA;AAAA,MACF,EAAE;AAAA,IACJ;AAEA,WAAO;AAAA,MACL;AAAA,QACE,SAAS,mBAAmB,UAAU,OAAO;AAAA,QAC7C,GAAG,wBAAwB,WAAW,MAAM,MAA0B;AAAA,QACtE;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF,SAAS,OAAgB;AACvB,YAAQ,MAAM,GAAG,WAAW,IAAI,gBAAgB,UAAU,YAAY,IAAI,oBAAoB,KAAK;AACnG,WAAO,CAAC,EAAE,SAAS,4BAA4B,UAAU,WAAW,MAAM,WAAW,MAAM,CAAC;AAAA,EAC9F;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/index.js
CHANGED
|
@@ -2,7 +2,7 @@ function __REGISTER__(feature, vaadinObj = window.Vaadin ??= {}) {
|
|
|
2
2
|
vaadinObj.registrations ??= [];
|
|
3
3
|
vaadinObj.registrations.push({
|
|
4
4
|
is: feature ? `${"@vaadin/hilla-lit-form"}/${feature}` : "@vaadin/hilla-lit-form",
|
|
5
|
-
version: "24.5.
|
|
5
|
+
version: "24.5.2"
|
|
6
6
|
});
|
|
7
7
|
}
|
|
8
8
|
export * from "./Binder.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/hilla-lit-form",
|
|
3
|
-
"version": "24.5.
|
|
3
|
+
"version": "24.5.2",
|
|
4
4
|
"description": "Hilla form utils",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"module": "index.js",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"access": "public"
|
|
72
72
|
},
|
|
73
73
|
"dependencies": {
|
|
74
|
-
"@vaadin/hilla-frontend": "24.5.
|
|
74
|
+
"@vaadin/hilla-frontend": "24.5.2",
|
|
75
75
|
"validator": "^13.11.0"
|
|
76
76
|
},
|
|
77
77
|
"peerDependencies": {
|