schemas/libraries/@paseri/compiler/download_compiled/index/unminified.js
schemas/libraries/@paseri/compiler/download_compiled/index/unminified.js
schemas/libraries/@paseri/compiler/download_compiled/index/unminified.js
schemas/libraries/@paseri/compiler/download_compiled/index/unminified.js
const issueCodes = {
INVALID_TYPE: "invalid_type",
TOO_SHORT: "too_short",
TOO_LONG: "too_long",
DUPLICATE_KEY: "duplicate_key",
TOO_DEEP: "too_deep",
INVALID_EMAIL: "invalid_email",
INVALID_EMOJI: "invalid_emoji",
INVALID_UUID: "invalid_uuid",
INVALID_NANOID: "invalid_nanoid",
DOES_NOT_INCLUDE: "does_not_include",
DOES_NOT_START_WITH:
"does_not_start_with",
DOES_NOT_END_WITH:
"does_not_end_with",
INVALID_DATE_STRING:
"invalid_date_string",
INVALID_TIME_STRING:
"invalid_time_string",
INVALID_DATE_TIME_STRING:
"invalid_date_time_string",
INVALID_IP_ADDRESS:
"invalid_ip_address",
INVALID_IP_ADDRESS_RANGE:
"invalid_ip_address_range",
INVALID_URL: "invalid_url",
DOES_NOT_MATCH_REGEX:
"does_not_match_regex",
TOO_SMALL: "too_small",
TOO_LARGE: "too_large",
INVALID_INTEGER: "invalid_integer",
INVALID_FINITE: "invalid_finite",
INVALID_SAFE_INTEGER:
"invalid_safe_integer",
INVALID_VALUE: "invalid_value",
INVALID_DISCRIMINATOR_VALUE:
"invalid_discriminator_value",
INVALID_ENUM_VALUE:
"invalid_enum_value",
UNRECOGNIZED_KEY: "unrecognized_key",
MISSING_VALUE: "missing_value",
INVALID_DATE: "invalid_date",
TOO_RECENT: "too_recent",
TOO_DATED: "too_dated",
};
function addIssue(
node,
newNode,
) {
if (!node) return newNode;
return {
type: "join",
left: node,
right: newNode,
};
}
function messageList(node, locale) {
const messages = [];
const missingCodes =
new Set();
const stack = [];
let current = [node, []];
while (current) {
const [currentNode, currentPath] =
current;
switch (currentNode.type) {
case "leaf": {
let text;
if (locale === void 0)
text = currentNode.code;
else {
const formatter =
locale[currentNode.code];
if (formatter === void 0) {
missingCodes.add(
currentNode.code,
);
break;
}
const {
code,
type,
...placeholders
} = currentNode;
text = formatter(
placeholders,
);
}
messages.push({
path: currentPath,
message: text,
});
break;
}
case "join":
stack.push(
[
currentNode.right,
currentPath,
],
[
currentNode.left,
currentPath,
],
);
break;
case "nest":
stack.push([
currentNode.child,
[
...currentPath,
currentNode.key,
],
]);
}
current = stack.pop();
}
if (missingCodes.size > 0) {
const sorted = [
...missingCodes,
].sort();
throw new Error(
`No messages for codes: ${sorted.join(", ")}.`,
);
}
return messages;
}
var ParseErrorResult = class {
ok = false;
_issue;
constructor(issue) {
this._issue = issue;
}
get issue() {
return this._issue;
}
messages(locale) {
return messageList(
this._issue,
locale,
);
}
};
var PaseriError = class extends Error {
_issue;
constructor(issue) {
super(
"Failed to parse. See `e.messages()` for details.",
);
this._issue = issue;
}
messages(locale) {
return messageList(
this._issue,
locale,
);
}
};
function isParseSuccess(
value,
) {
return value.ok === true;
}
function isPlainObject(value) {
if (
typeof value !== "object" ||
value === null ||
Array.isArray(value)
)
return false;
if (value.constructor === Object)
return true;
if (value.constructor === void 0)
return (
Object.getPrototypeOf(value) ===
null
);
if (
!Object.hasOwn(value, "constructor")
)
return false;
return (
Object.getPrototypeOf(value) ===
Object.prototype ||
Object.getPrototypeOf(value) ===
null
);
}
const _enum20 = new Set(
["jpg", "png"],
);
const _regex21 = new RegExp(
"^(?:(?:(?:[hH][tT][tT][pP][sS]?|[fF][tT][pP]|[wW][sS][sS]?):\\/\\/(?:(?:(?:(?![xX][nN]--)[a-zA-Z\\d_\\-]+)\\.)*(?:(?!(?:\\d+|0[xX]\\p{AHex}*)(?:[\\:\\/\\?\\#]|$))(?:(?![xX][nN]--)[a-zA-Z\\d_\\-]+)))(?::(?:6553[0-5]|655[0-2]\\d|65[0-4]\\d\\d|6[0-4]\\d{3}|[1-5]\\d{4}|\\d{1,4}))?(?:(?:[\\/\\?\\#].*)?))|(?:(?!(?:(?:(?:[hH][tT][tT][pP][sS]?|[fF][tT][pP]|[wW][sS][sS]?)|[fF][iI][lL][eE]):))[a-zA-Z](?:(?=([a-zA-Z\\d\\+\\.\\-]*))\\1):(?!\\/\\/).*))$",
"v",
);
function _shapeArray15(_arr13) {
for (
let _i14 = 0;
_i14 < _arr13.length;
_i14++
) {
const _el10 = _arr13[_i14];
if (
!(
typeof _el10 === "string" &&
_el10.length >= 1 &&
_el10.length <= 30
)
)
return false;
}
return true;
}
function _extrasOk25(_obj22) {
let _count23 = 0;
for (const _k24 in _obj22) _count23++;
return _count23 <= 6;
}
function _shapeArray28(_arr26) {
for (
let _i27 = 0;
_i27 < _arr26.length;
_i27++
) {
const _el17 = _arr26[_i27];
if (
!(
isPlainObject(_el17) &&
typeof _el17["id"] ===
"number" &&
!Number.isNaN(_el17["id"]) &&
_el17["created"] instanceof
Date &&
!Number.isNaN(
_el17["created"].getTime(),
) &&
typeof _el17["title"] ===
"string" &&
_el17["title"].length >= 1 &&
_el17["title"].length <= 100 &&
_enum20.has(_el17["type"]) &&
typeof _el17["size"] ===
"number" &&
!Number.isNaN(_el17["size"]) &&
typeof _el17["url"] ===
"string" &&
(_regex21.test(_el17["url"]) ||
URL.canParse(_el17["url"])) &&
_extrasOk25(_el17)
)
)
return false;
}
return true;
}
function _extrasOk46(_obj43) {
let _count44 = 0;
for (const _k45 in _obj43) _count44++;
return _count44 <= 5;
}
function _shapeArray49(_arr47) {
for (
let _i48 = 0;
_i48 < _arr47.length;
_i48++
) {
const _el30 = _arr47[_i48];
if (
!(
isPlainObject(_el30) &&
typeof _el30["id"] ===
"number" &&
!Number.isNaN(_el30["id"]) &&
typeof _el30["stars"] ===
"number" &&
!Number.isNaN(_el30["stars"]) &&
_el30["stars"] >= 1 &&
_el30["stars"] <= 5 &&
typeof _el30["title"] ===
"string" &&
_el30["title"].length >= 1 &&
_el30["title"].length <= 100 &&
typeof _el30["text"] ===
"string" &&
_el30["text"].length >= 1 &&
_el30["text"].length <= 1e3 &&
Array.isArray(
_el30["images"],
) &&
_shapeArray28(
_el30["images"],
) &&
_extrasOk46(_el30)
)
)
return false;
}
return true;
}
function _objectIssues108(_val87) {
let _issue88;
if (!isPlainObject(_val87))
_issue88 = addIssue(_issue88, {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "object",
});
else {
let _issue89;
let _value90;
const _has91 = "id" in _val87;
if (_has91) {
_value90 = _val87["id"];
if (
!(
typeof _value90 ===
"number" &&
!Number.isNaN(_value90)
)
)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
}
let _value92;
const _has93 = "created" in _val87;
if (_has93) {
_value92 = _val87["created"];
if (!(_value92 instanceof Date))
_issue89 = addIssue(_issue89, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "Date",
},
});
else {
const _time94 =
_value92.getTime();
if (Number.isNaN(_time94))
_issue89 = addIssue(
_issue89,
{
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.INVALID_DATE,
},
},
);
}
}
let _value95;
const _has96 = "title" in _val87;
if (_has96) {
_value95 = _val87["title"];
if (
!(typeof _value95 === "string")
)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck97: {
if (!(_value95.length >= 1)) {
_issue89 = addIssue(
_issue89,
{
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
},
);
break _labelCheck97;
}
if (
!(_value95.length <= 100)
) {
_issue89 = addIssue(
_issue89,
{
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
},
);
break _labelCheck97;
}
}
}
let _value98;
const _has99 = "type" in _val87;
if (_has99) {
_value98 = _val87["type"];
if (!_enum20.has(_value98))
_issue89 = addIssue(_issue89, {
type: "nest",
key: "type",
child: {
type: "leaf",
code: issueCodes.INVALID_ENUM_VALUE,
expected: [
"'jpg'",
"'png'",
],
},
});
}
let _value100;
const _has101 = "size" in _val87;
if (_has101) {
_value100 = _val87["size"];
if (
!(
typeof _value100 ===
"number" &&
!Number.isNaN(_value100)
)
)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "size",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
}
let _value102;
const _has103 = "url" in _val87;
if (_has103) {
_value102 = _val87["url"];
if (
!(typeof _value102 === "string")
)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "url",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck104: if (
!(
_regex21.test(_value102) ||
URL.canParse(_value102)
)
) {
_issue89 = addIssue(
_issue89,
{
type: "nest",
key: "url",
child: {
type: "leaf",
code: issueCodes.INVALID_URL,
},
},
);
break _labelCheck104;
}
}
if (!_has91)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has93)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has96)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has99)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "type",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has101)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "size",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has103)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "url",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
let _count106 = 0;
for (const _k107 in _val87)
_count106++;
if (
_count106 !== 6 ||
!_has91 ||
!_has93 ||
!_has96 ||
!_has99 ||
!_has101 ||
!_has103
) {
for (const _key105 in _val87)
if (
!(
_key105 === "id" ||
_key105 === "created" ||
_key105 === "title" ||
_key105 === "type" ||
_key105 === "size" ||
_key105 === "url"
)
)
_issue89 = addIssue(
_issue89,
{
type: "nest",
key: _key105,
child: {
type: "leaf",
code: issueCodes.UNRECOGNIZED_KEY,
},
},
);
}
if (_issue89 !== void 0)
_issue88 = addIssue(
_issue88,
_issue89,
);
}
return _issue88;
}
function _objectIssues160(_val115) {
let _issue116;
if (!isPlainObject(_val115))
_issue116 = addIssue(_issue116, {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "object",
});
else {
let _issue117;
let _value118;
const _has119 = "id" in _val115;
if (_has119) {
_value118 = _val115["id"];
if (
!(
typeof _value118 ===
"number" &&
!Number.isNaN(_value118)
)
)
_issue117 = addIssue(
_issue117,
{
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
},
);
}
let _value120;
const _has121 = "stars" in _val115;
if (_has121) {
_value120 = _val115["stars"];
if (
!(
typeof _value120 ===
"number" &&
!Number.isNaN(_value120)
)
)
_issue117 = addIssue(
_issue117,
{
type: "nest",
key: "stars",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
},
);
else
_labelCheck122: {
if (!(_value120 >= 1)) {
_issue117 = addIssue(
_issue117,
{
type: "nest",
key: "stars",
child: {
type: "leaf",
code: issueCodes.TOO_SMALL,
},
},
);
break _labelCheck122;
}
if (!(_value120 <= 5)) {
_issue117 = addIssue(
_issue117,
{
type: "nest",
key: "stars",
child: {
type: "leaf",
code: issueCodes.TOO_LARGE,
},
},
);
break _labelCheck122;
}
}
}
let _value123;
const _has124 = "title" in _val115;
if (_has124) {
_value123 = _val115["title"];
if (
!(typeof _value123 === "string")
)
_issue117 = addIssue(
_issue117,
{
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
},
);
else
_labelCheck125: {
if (
!(_value123.length >= 1)
) {
_issue117 = addIssue(
_issue117,
{
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
},
);
break _labelCheck125;
}
if (
!(_value123.length <= 100)
) {
_issue117 = addIssue(
_issue117,
{
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
},
);
break _labelCheck125;
}
}
}
let _value126;
const _has127 = "text" in _val115;
if (_has127) {
_value126 = _val115["text"];
if (
!(typeof _value126 === "string")
)
_issue117 = addIssue(
_issue117,
{
type: "nest",
key: "text",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
},
);
else
_labelCheck128: {
if (
!(_value126.length >= 1)
) {
_issue117 = addIssue(
_issue117,
{
type: "nest",
key: "text",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
},
);
break _labelCheck128;
}
if (
!(_value126.length <= 1e3)
) {
_issue117 = addIssue(
_issue117,
{
type: "nest",
key: "text",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
},
);
break _labelCheck128;
}
}
}
let _value129;
const _has130 = "images" in _val115;
if (_has130) {
_value129 = _val115["images"];
if (!Array.isArray(_value129))
_issue117 = addIssue(
_issue117,
{
type: "nest",
key: "images",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "array",
},
},
);
else {
let _issue131;
for (
let _index132 = 0;
_index132 < _value129.length;
_index132++
) {
let _element133 =
_value129[_index132];
const _childIssue156 =
_objectIssues108(
_element133,
);
if (_childIssue156 !== void 0)
_issue131 = addIssue(
_issue131,
{
type: "nest",
key: _index132,
child: _childIssue156,
},
);
}
if (_issue131 !== void 0)
_issue117 = addIssue(
_issue117,
{
type: "nest",
key: "images",
child: _issue131,
},
);
}
}
if (!_has119)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has121)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "stars",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has124)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has127)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "text",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has130)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "images",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
let _count158 = 0;
for (const _k159 in _val115)
_count158++;
if (
_count158 !== 5 ||
!_has119 ||
!_has121 ||
!_has124 ||
!_has127 ||
!_has130
) {
for (const _key157 in _val115)
if (
!(
_key157 === "id" ||
_key157 === "stars" ||
_key157 === "title" ||
_key157 === "text" ||
_key157 === "images"
)
)
_issue117 = addIssue(
_issue117,
{
type: "nest",
key: _key157,
child: {
type: "leaf",
code: issueCodes.UNRECOGNIZED_KEY,
},
},
);
}
if (_issue117 !== void 0)
_issue116 = addIssue(
_issue116,
_issue117,
);
}
return _issue116;
}
function _slowProduct(value, options) {
const maxDepth =
options?.maxDepth ?? 1e3;
if (
!Number.isInteger(maxDepth) ||
maxDepth < 1
)
throw new Error(
"maxDepth must be a positive integer.",
);
if (!isPlainObject(value))
return {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "object",
};
let _issue52;
let _value53;
const _has54 = "id" in value;
if (_has54) {
_value53 = value["id"];
if (
!(
typeof _value53 === "number" &&
!Number.isNaN(_value53)
)
)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
}
let _value55;
const _has56 = "created" in value;
if (_has56) {
_value55 = value["created"];
if (!(_value55 instanceof Date))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "Date",
},
});
else {
const _time57 =
_value55.getTime();
if (Number.isNaN(_time57))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.INVALID_DATE,
},
});
}
}
let _value58;
const _has59 = "title" in value;
if (_has59) {
_value58 = value["title"];
if (!(typeof _value58 === "string"))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck60: {
if (!(_value58.length >= 1)) {
_issue52 = addIssue(
_issue52,
{
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
},
);
break _labelCheck60;
}
if (!(_value58.length <= 100)) {
_issue52 = addIssue(
_issue52,
{
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
},
);
break _labelCheck60;
}
}
}
let _value61;
const _has62 = "brand" in value;
if (_has62) {
_value61 = value["brand"];
if (!(typeof _value61 === "string"))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "brand",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck63: {
if (!(_value61.length >= 1)) {
_issue52 = addIssue(
_issue52,
{
type: "nest",
key: "brand",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
},
);
break _labelCheck63;
}
if (!(_value61.length <= 30)) {
_issue52 = addIssue(
_issue52,
{
type: "nest",
key: "brand",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
},
);
break _labelCheck63;
}
}
}
let _value64;
const _has65 = "description" in value;
if (_has65) {
_value64 = value["description"];
if (!(typeof _value64 === "string"))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "description",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck66: {
if (!(_value64.length >= 1)) {
_issue52 = addIssue(
_issue52,
{
type: "nest",
key: "description",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
},
);
break _labelCheck66;
}
if (!(_value64.length <= 500)) {
_issue52 = addIssue(
_issue52,
{
type: "nest",
key: "description",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
},
);
break _labelCheck66;
}
}
}
let _value67;
const _has68 = "price" in value;
if (_has68) {
_value67 = value["price"];
if (
!(
typeof _value67 === "number" &&
!Number.isNaN(_value67)
)
)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "price",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
else
_labelCheck69: {
if (!(_value67 >= 1)) {
_issue52 = addIssue(
_issue52,
{
type: "nest",
key: "price",
child: {
type: "leaf",
code: issueCodes.TOO_SMALL,
},
},
);
break _labelCheck69;
}
if (!(_value67 <= 1e4)) {
_issue52 = addIssue(
_issue52,
{
type: "nest",
key: "price",
child: {
type: "leaf",
code: issueCodes.TOO_LARGE,
},
},
);
break _labelCheck69;
}
}
}
let _value70;
const _has71 = "discount" in value;
if (_has71) {
_value70 = value["discount"];
if (_value70 !== null) {
if (
!(
typeof _value70 ===
"number" &&
!Number.isNaN(_value70)
)
)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "discount",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
else
_labelCheck72: {
if (!(_value70 >= 1)) {
_issue52 = addIssue(
_issue52,
{
type: "nest",
key: "discount",
child: {
type: "leaf",
code: issueCodes.TOO_SMALL,
},
},
);
break _labelCheck72;
}
if (!(_value70 <= 100)) {
_issue52 = addIssue(
_issue52,
{
type: "nest",
key: "discount",
child: {
type: "leaf",
code: issueCodes.TOO_LARGE,
},
},
);
break _labelCheck72;
}
}
}
}
let _value73;
const _has74 = "quantity" in value;
if (_has74) {
_value73 = value["quantity"];
if (
!(
typeof _value73 === "number" &&
!Number.isNaN(_value73)
)
)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "quantity",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
else
_labelCheck75: {
if (!(_value73 >= 0)) {
_issue52 = addIssue(
_issue52,
{
type: "nest",
key: "quantity",
child: {
type: "leaf",
code: issueCodes.TOO_SMALL,
},
},
);
break _labelCheck75;
}
if (!(_value73 <= 10)) {
_issue52 = addIssue(
_issue52,
{
type: "nest",
key: "quantity",
child: {
type: "leaf",
code: issueCodes.TOO_LARGE,
},
},
);
break _labelCheck75;
}
}
}
let _value76;
const _has77 = "tags" in value;
if (_has77) {
_value76 = value["tags"];
if (!Array.isArray(_value76))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "tags",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "array",
},
});
else {
let _issue78;
for (
let _index79 = 0;
_index79 < _value76.length;
_index79++
) {
let _element80 =
_value76[_index79];
if (
!(
typeof _element80 ===
"string"
)
)
_issue78 = addIssue(
_issue78,
{
type: "nest",
key: _index79,
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
},
);
else
_labelCheck81: {
if (
!(_element80.length >= 1)
) {
_issue78 = addIssue(
_issue78,
{
type: "nest",
key: _index79,
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
},
);
break _labelCheck81;
}
if (
!(_element80.length <= 30)
) {
_issue78 = addIssue(
_issue78,
{
type: "nest",
key: _index79,
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
},
);
break _labelCheck81;
}
}
}
if (_issue78 !== void 0)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "tags",
child: _issue78,
});
}
}
let _value82;
const _has83 = "images" in value;
if (_has83) {
_value82 = value["images"];
if (!Array.isArray(_value82))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "images",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "array",
},
});
else {
let _issue84;
for (
let _index85 = 0;
_index85 < _value82.length;
_index85++
) {
let _element86 =
_value82[_index85];
const _childIssue109 =
_objectIssues108(_element86);
if (_childIssue109 !== void 0)
_issue84 = addIssue(
_issue84,
{
type: "nest",
key: _index85,
child: _childIssue109,
},
);
}
if (_issue84 !== void 0)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "images",
child: _issue84,
});
}
}
let _value110;
const _has111 = "ratings" in value;
if (_has111) {
_value110 = value["ratings"];
if (!Array.isArray(_value110))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "ratings",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "array",
},
});
else {
let _issue112;
for (
let _index113 = 0;
_index113 < _value110.length;
_index113++
) {
let _element114 =
_value110[_index113];
const _childIssue161 =
_objectIssues160(_element114);
if (_childIssue161 !== void 0)
_issue112 = addIssue(
_issue112,
{
type: "nest",
key: _index113,
child: _childIssue161,
},
);
}
if (_issue112 !== void 0)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "ratings",
child: _issue112,
});
}
}
if (!_has54)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has56)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has59)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has62)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "brand",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has65)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "description",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has68)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "price",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has71)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "discount",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has74)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "quantity",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has77)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "tags",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has83)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "images",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has111)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "ratings",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
let _count163 = 0;
for (const _k164 in value)
_count163++;
if (
_count163 !== 11 ||
!_has54 ||
!_has56 ||
!_has59 ||
!_has62 ||
!_has65 ||
!_has68 ||
!_has71 ||
!_has74 ||
!_has77 ||
!_has83 ||
!_has111
) {
for (const _key162 in value)
if (
!(
_key162 === "id" ||
_key162 === "created" ||
_key162 === "title" ||
_key162 === "brand" ||
_key162 === "description" ||
_key162 === "price" ||
_key162 === "discount" ||
_key162 === "quantity" ||
_key162 === "tags" ||
_key162 === "images" ||
_key162 === "ratings"
)
)
_issue52 = addIssue(_issue52, {
type: "nest",
key: _key162,
child: {
type: "leaf",
code: issueCodes.UNRECOGNIZED_KEY,
},
});
}
if (_issue52 !== void 0)
return _issue52;
}
function _validateProduct(
value,
options,
) {
const maxDepth =
options?.maxDepth ?? 1e3;
if (
!Number.isInteger(maxDepth) ||
maxDepth < 1
)
throw new Error(
"maxDepth must be a positive integer.",
);
if (!isPlainObject(value))
return _slowProduct(value, options);
const _field1 = value["id"];
if (
!(
typeof _field1 === "number" &&
!Number.isNaN(_field1)
)
)
return _slowProduct(value, options);
const _field2 = value["created"];
if (
!(
_field2 instanceof Date &&
!Number.isNaN(_field2.getTime())
)
)
return _slowProduct(value, options);
const _field3 = value["title"];
if (
!(
typeof _field3 === "string" &&
_field3.length >= 1 &&
_field3.length <= 100
)
)
return _slowProduct(value, options);
const _field4 = value["brand"];
if (
!(
typeof _field4 === "string" &&
_field4.length >= 1 &&
_field4.length <= 30
)
)
return _slowProduct(value, options);
const _field5 = value["description"];
if (
!(
typeof _field5 === "string" &&
_field5.length >= 1 &&
_field5.length <= 500
)
)
return _slowProduct(value, options);
const _field6 = value["price"];
if (
!(
typeof _field6 === "number" &&
!Number.isNaN(_field6) &&
_field6 >= 1 &&
_field6 <= 1e4
)
)
return _slowProduct(value, options);
const _field7 = value["discount"];
if (
!(
_field7 === null ||
(typeof _field7 === "number" &&
!Number.isNaN(_field7) &&
_field7 >= 1 &&
_field7 <= 100)
)
)
return _slowProduct(value, options);
const _field8 = value["quantity"];
if (
!(
typeof _field8 === "number" &&
!Number.isNaN(_field8) &&
_field8 >= 0 &&
_field8 <= 10
)
)
return _slowProduct(value, options);
const _field9 = value["tags"];
if (
!(
Array.isArray(_field9) &&
_shapeArray15(_field9)
)
)
return _slowProduct(value, options);
const _field16 = value["images"];
if (
!(
Array.isArray(_field16) &&
_shapeArray28(_field16)
)
)
return _slowProduct(value, options);
const _field29 = value["ratings"];
if (
!(
Array.isArray(_field29) &&
_shapeArray49(_field29)
)
)
return _slowProduct(value, options);
let _count50 = 0;
for (const _k51 in value) _count50++;
if (_count50 > 11)
return _slowProduct(value, options);
}
function safeParseProduct(
value,
options,
) {
const result = _validateProduct(
value,
options,
);
if (result === void 0)
return {
ok: true,
value,
};
if (isParseSuccess(result))
return result;
return new ParseErrorResult(result);
}
function parseProduct(value, options) {
const result = safeParseProduct(
value,
options,
);
if (result.ok) return result.value;
throw new PaseriError(result.issue);
}
({
"~standard": Object.freeze({
version: 1,
vendor: "paseri",
validate(value, options) {
const result =
_validateProduct(value);
if (result === void 0)
return { value };
if (result.ok === true)
return { value: result.value };
return {
issues: new ParseErrorResult(
result,
).messages(
options?.libraryOptions
?.locale,
),
};
},
}),
safeParse: safeParseProduct,
parse: parseProduct,
}).safeParse({});
const issueCodes = {
INVALID_TYPE: "invalid_type",
TOO_SHORT: "too_short",
TOO_LONG: "too_long",
DUPLICATE_KEY: "duplicate_key",
TOO_DEEP: "too_deep",
INVALID_EMAIL: "invalid_email",
INVALID_EMOJI: "invalid_emoji",
INVALID_UUID: "invalid_uuid",
INVALID_NANOID: "invalid_nanoid",
DOES_NOT_INCLUDE: "does_not_include",
DOES_NOT_START_WITH: "does_not_start_with",
DOES_NOT_END_WITH: "does_not_end_with",
INVALID_DATE_STRING: "invalid_date_string",
INVALID_TIME_STRING: "invalid_time_string",
INVALID_DATE_TIME_STRING: "invalid_date_time_string",
INVALID_IP_ADDRESS: "invalid_ip_address",
INVALID_IP_ADDRESS_RANGE: "invalid_ip_address_range",
INVALID_URL: "invalid_url",
DOES_NOT_MATCH_REGEX: "does_not_match_regex",
TOO_SMALL: "too_small",
TOO_LARGE: "too_large",
INVALID_INTEGER: "invalid_integer",
INVALID_FINITE: "invalid_finite",
INVALID_SAFE_INTEGER: "invalid_safe_integer",
INVALID_VALUE: "invalid_value",
INVALID_DISCRIMINATOR_VALUE:
"invalid_discriminator_value",
INVALID_ENUM_VALUE: "invalid_enum_value",
UNRECOGNIZED_KEY: "unrecognized_key",
MISSING_VALUE: "missing_value",
INVALID_DATE: "invalid_date",
TOO_RECENT: "too_recent",
TOO_DATED: "too_dated",
};
function addIssue(node, newNode) {
if (!node) return newNode;
return {
type: "join",
left: node,
right: newNode,
};
}
function messageList(node, locale) {
const messages = [];
const missingCodes = new Set();
const stack = [];
let current = [node, []];
while (current) {
const [currentNode, currentPath] = current;
switch (currentNode.type) {
case "leaf": {
let text;
if (locale === void 0) text = currentNode.code;
else {
const formatter = locale[currentNode.code];
if (formatter === void 0) {
missingCodes.add(currentNode.code);
break;
}
const { code, type, ...placeholders } =
currentNode;
text = formatter(placeholders);
}
messages.push({
path: currentPath,
message: text,
});
break;
}
case "join":
stack.push(
[currentNode.right, currentPath],
[currentNode.left, currentPath],
);
break;
case "nest":
stack.push([
currentNode.child,
[...currentPath, currentNode.key],
]);
}
current = stack.pop();
}
if (missingCodes.size > 0) {
const sorted = [...missingCodes].sort();
throw new Error(
`No messages for codes: ${sorted.join(", ")}.`,
);
}
return messages;
}
var ParseErrorResult = class {
ok = false;
_issue;
constructor(issue) {
this._issue = issue;
}
get issue() {
return this._issue;
}
messages(locale) {
return messageList(this._issue, locale);
}
};
var PaseriError = class extends Error {
_issue;
constructor(issue) {
super(
"Failed to parse. See `e.messages()` for details.",
);
this._issue = issue;
}
messages(locale) {
return messageList(this._issue, locale);
}
};
function isParseSuccess(value) {
return value.ok === true;
}
function isPlainObject(value) {
if (
typeof value !== "object" ||
value === null ||
Array.isArray(value)
)
return false;
if (value.constructor === Object) return true;
if (value.constructor === void 0)
return Object.getPrototypeOf(value) === null;
if (!Object.hasOwn(value, "constructor")) return false;
return (
Object.getPrototypeOf(value) === Object.prototype ||
Object.getPrototypeOf(value) === null
);
}
const _enum20 = new Set(["jpg", "png"]);
const _regex21 = new RegExp(
"^(?:(?:(?:[hH][tT][tT][pP][sS]?|[fF][tT][pP]|[wW][sS][sS]?):\\/\\/(?:(?:(?:(?![xX][nN]--)[a-zA-Z\\d_\\-]+)\\.)*(?:(?!(?:\\d+|0[xX]\\p{AHex}*)(?:[\\:\\/\\?\\#]|$))(?:(?![xX][nN]--)[a-zA-Z\\d_\\-]+)))(?::(?:6553[0-5]|655[0-2]\\d|65[0-4]\\d\\d|6[0-4]\\d{3}|[1-5]\\d{4}|\\d{1,4}))?(?:(?:[\\/\\?\\#].*)?))|(?:(?!(?:(?:(?:[hH][tT][tT][pP][sS]?|[fF][tT][pP]|[wW][sS][sS]?)|[fF][iI][lL][eE]):))[a-zA-Z](?:(?=([a-zA-Z\\d\\+\\.\\-]*))\\1):(?!\\/\\/).*))$",
"v",
);
function _shapeArray15(_arr13) {
for (let _i14 = 0; _i14 < _arr13.length; _i14++) {
const _el10 = _arr13[_i14];
if (
!(
typeof _el10 === "string" &&
_el10.length >= 1 &&
_el10.length <= 30
)
)
return false;
}
return true;
}
function _extrasOk25(_obj22) {
let _count23 = 0;
for (const _k24 in _obj22) _count23++;
return _count23 <= 6;
}
function _shapeArray28(_arr26) {
for (let _i27 = 0; _i27 < _arr26.length; _i27++) {
const _el17 = _arr26[_i27];
if (
!(
isPlainObject(_el17) &&
typeof _el17["id"] === "number" &&
!Number.isNaN(_el17["id"]) &&
_el17["created"] instanceof Date &&
!Number.isNaN(_el17["created"].getTime()) &&
typeof _el17["title"] === "string" &&
_el17["title"].length >= 1 &&
_el17["title"].length <= 100 &&
_enum20.has(_el17["type"]) &&
typeof _el17["size"] === "number" &&
!Number.isNaN(_el17["size"]) &&
typeof _el17["url"] === "string" &&
(_regex21.test(_el17["url"]) ||
URL.canParse(_el17["url"])) &&
_extrasOk25(_el17)
)
)
return false;
}
return true;
}
function _extrasOk46(_obj43) {
let _count44 = 0;
for (const _k45 in _obj43) _count44++;
return _count44 <= 5;
}
function _shapeArray49(_arr47) {
for (let _i48 = 0; _i48 < _arr47.length; _i48++) {
const _el30 = _arr47[_i48];
if (
!(
isPlainObject(_el30) &&
typeof _el30["id"] === "number" &&
!Number.isNaN(_el30["id"]) &&
typeof _el30["stars"] === "number" &&
!Number.isNaN(_el30["stars"]) &&
_el30["stars"] >= 1 &&
_el30["stars"] <= 5 &&
typeof _el30["title"] === "string" &&
_el30["title"].length >= 1 &&
_el30["title"].length <= 100 &&
typeof _el30["text"] === "string" &&
_el30["text"].length >= 1 &&
_el30["text"].length <= 1e3 &&
Array.isArray(_el30["images"]) &&
_shapeArray28(_el30["images"]) &&
_extrasOk46(_el30)
)
)
return false;
}
return true;
}
function _objectIssues108(_val87) {
let _issue88;
if (!isPlainObject(_val87))
_issue88 = addIssue(_issue88, {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "object",
});
else {
let _issue89;
let _value90;
const _has91 = "id" in _val87;
if (_has91) {
_value90 = _val87["id"];
if (
!(
typeof _value90 === "number" &&
!Number.isNaN(_value90)
)
)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
}
let _value92;
const _has93 = "created" in _val87;
if (_has93) {
_value92 = _val87["created"];
if (!(_value92 instanceof Date))
_issue89 = addIssue(_issue89, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "Date",
},
});
else {
const _time94 = _value92.getTime();
if (Number.isNaN(_time94))
_issue89 = addIssue(_issue89, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.INVALID_DATE,
},
});
}
}
let _value95;
const _has96 = "title" in _val87;
if (_has96) {
_value95 = _val87["title"];
if (!(typeof _value95 === "string"))
_issue89 = addIssue(_issue89, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck97: {
if (!(_value95.length >= 1)) {
_issue89 = addIssue(_issue89, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
});
break _labelCheck97;
}
if (!(_value95.length <= 100)) {
_issue89 = addIssue(_issue89, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
});
break _labelCheck97;
}
}
}
let _value98;
const _has99 = "type" in _val87;
if (_has99) {
_value98 = _val87["type"];
if (!_enum20.has(_value98))
_issue89 = addIssue(_issue89, {
type: "nest",
key: "type",
child: {
type: "leaf",
code: issueCodes.INVALID_ENUM_VALUE,
expected: ["'jpg'", "'png'"],
},
});
}
let _value100;
const _has101 = "size" in _val87;
if (_has101) {
_value100 = _val87["size"];
if (
!(
typeof _value100 === "number" &&
!Number.isNaN(_value100)
)
)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "size",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
}
let _value102;
const _has103 = "url" in _val87;
if (_has103) {
_value102 = _val87["url"];
if (!(typeof _value102 === "string"))
_issue89 = addIssue(_issue89, {
type: "nest",
key: "url",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck104: if (
!(
_regex21.test(_value102) ||
URL.canParse(_value102)
)
) {
_issue89 = addIssue(_issue89, {
type: "nest",
key: "url",
child: {
type: "leaf",
code: issueCodes.INVALID_URL,
},
});
break _labelCheck104;
}
}
if (!_has91)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has93)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has96)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has99)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "type",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has101)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "size",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has103)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "url",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
let _count106 = 0;
for (const _k107 in _val87) _count106++;
if (
_count106 !== 6 ||
!_has91 ||
!_has93 ||
!_has96 ||
!_has99 ||
!_has101 ||
!_has103
) {
for (const _key105 in _val87)
if (
!(
_key105 === "id" ||
_key105 === "created" ||
_key105 === "title" ||
_key105 === "type" ||
_key105 === "size" ||
_key105 === "url"
)
)
_issue89 = addIssue(_issue89, {
type: "nest",
key: _key105,
child: {
type: "leaf",
code: issueCodes.UNRECOGNIZED_KEY,
},
});
}
if (_issue89 !== void 0)
_issue88 = addIssue(_issue88, _issue89);
}
return _issue88;
}
function _objectIssues160(_val115) {
let _issue116;
if (!isPlainObject(_val115))
_issue116 = addIssue(_issue116, {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "object",
});
else {
let _issue117;
let _value118;
const _has119 = "id" in _val115;
if (_has119) {
_value118 = _val115["id"];
if (
!(
typeof _value118 === "number" &&
!Number.isNaN(_value118)
)
)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
}
let _value120;
const _has121 = "stars" in _val115;
if (_has121) {
_value120 = _val115["stars"];
if (
!(
typeof _value120 === "number" &&
!Number.isNaN(_value120)
)
)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "stars",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
else
_labelCheck122: {
if (!(_value120 >= 1)) {
_issue117 = addIssue(_issue117, {
type: "nest",
key: "stars",
child: {
type: "leaf",
code: issueCodes.TOO_SMALL,
},
});
break _labelCheck122;
}
if (!(_value120 <= 5)) {
_issue117 = addIssue(_issue117, {
type: "nest",
key: "stars",
child: {
type: "leaf",
code: issueCodes.TOO_LARGE,
},
});
break _labelCheck122;
}
}
}
let _value123;
const _has124 = "title" in _val115;
if (_has124) {
_value123 = _val115["title"];
if (!(typeof _value123 === "string"))
_issue117 = addIssue(_issue117, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck125: {
if (!(_value123.length >= 1)) {
_issue117 = addIssue(_issue117, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
});
break _labelCheck125;
}
if (!(_value123.length <= 100)) {
_issue117 = addIssue(_issue117, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
});
break _labelCheck125;
}
}
}
let _value126;
const _has127 = "text" in _val115;
if (_has127) {
_value126 = _val115["text"];
if (!(typeof _value126 === "string"))
_issue117 = addIssue(_issue117, {
type: "nest",
key: "text",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck128: {
if (!(_value126.length >= 1)) {
_issue117 = addIssue(_issue117, {
type: "nest",
key: "text",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
});
break _labelCheck128;
}
if (!(_value126.length <= 1e3)) {
_issue117 = addIssue(_issue117, {
type: "nest",
key: "text",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
});
break _labelCheck128;
}
}
}
let _value129;
const _has130 = "images" in _val115;
if (_has130) {
_value129 = _val115["images"];
if (!Array.isArray(_value129))
_issue117 = addIssue(_issue117, {
type: "nest",
key: "images",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "array",
},
});
else {
let _issue131;
for (
let _index132 = 0;
_index132 < _value129.length;
_index132++
) {
let _element133 = _value129[_index132];
const _childIssue156 =
_objectIssues108(_element133);
if (_childIssue156 !== void 0)
_issue131 = addIssue(_issue131, {
type: "nest",
key: _index132,
child: _childIssue156,
});
}
if (_issue131 !== void 0)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "images",
child: _issue131,
});
}
}
if (!_has119)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has121)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "stars",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has124)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has127)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "text",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has130)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "images",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
let _count158 = 0;
for (const _k159 in _val115) _count158++;
if (
_count158 !== 5 ||
!_has119 ||
!_has121 ||
!_has124 ||
!_has127 ||
!_has130
) {
for (const _key157 in _val115)
if (
!(
_key157 === "id" ||
_key157 === "stars" ||
_key157 === "title" ||
_key157 === "text" ||
_key157 === "images"
)
)
_issue117 = addIssue(_issue117, {
type: "nest",
key: _key157,
child: {
type: "leaf",
code: issueCodes.UNRECOGNIZED_KEY,
},
});
}
if (_issue117 !== void 0)
_issue116 = addIssue(_issue116, _issue117);
}
return _issue116;
}
function _slowProduct(value, options) {
const maxDepth = options?.maxDepth ?? 1e3;
if (!Number.isInteger(maxDepth) || maxDepth < 1)
throw new Error("maxDepth must be a positive integer.");
if (!isPlainObject(value))
return {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "object",
};
let _issue52;
let _value53;
const _has54 = "id" in value;
if (_has54) {
_value53 = value["id"];
if (
!(
typeof _value53 === "number" &&
!Number.isNaN(_value53)
)
)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
}
let _value55;
const _has56 = "created" in value;
if (_has56) {
_value55 = value["created"];
if (!(_value55 instanceof Date))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "Date",
},
});
else {
const _time57 = _value55.getTime();
if (Number.isNaN(_time57))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.INVALID_DATE,
},
});
}
}
let _value58;
const _has59 = "title" in value;
if (_has59) {
_value58 = value["title"];
if (!(typeof _value58 === "string"))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck60: {
if (!(_value58.length >= 1)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
});
break _labelCheck60;
}
if (!(_value58.length <= 100)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
});
break _labelCheck60;
}
}
}
let _value61;
const _has62 = "brand" in value;
if (_has62) {
_value61 = value["brand"];
if (!(typeof _value61 === "string"))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "brand",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck63: {
if (!(_value61.length >= 1)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "brand",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
});
break _labelCheck63;
}
if (!(_value61.length <= 30)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "brand",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
});
break _labelCheck63;
}
}
}
let _value64;
const _has65 = "description" in value;
if (_has65) {
_value64 = value["description"];
if (!(typeof _value64 === "string"))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "description",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck66: {
if (!(_value64.length >= 1)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "description",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
});
break _labelCheck66;
}
if (!(_value64.length <= 500)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "description",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
});
break _labelCheck66;
}
}
}
let _value67;
const _has68 = "price" in value;
if (_has68) {
_value67 = value["price"];
if (
!(
typeof _value67 === "number" &&
!Number.isNaN(_value67)
)
)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "price",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
else
_labelCheck69: {
if (!(_value67 >= 1)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "price",
child: {
type: "leaf",
code: issueCodes.TOO_SMALL,
},
});
break _labelCheck69;
}
if (!(_value67 <= 1e4)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "price",
child: {
type: "leaf",
code: issueCodes.TOO_LARGE,
},
});
break _labelCheck69;
}
}
}
let _value70;
const _has71 = "discount" in value;
if (_has71) {
_value70 = value["discount"];
if (_value70 !== null) {
if (
!(
typeof _value70 === "number" &&
!Number.isNaN(_value70)
)
)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "discount",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
else
_labelCheck72: {
if (!(_value70 >= 1)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "discount",
child: {
type: "leaf",
code: issueCodes.TOO_SMALL,
},
});
break _labelCheck72;
}
if (!(_value70 <= 100)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "discount",
child: {
type: "leaf",
code: issueCodes.TOO_LARGE,
},
});
break _labelCheck72;
}
}
}
}
let _value73;
const _has74 = "quantity" in value;
if (_has74) {
_value73 = value["quantity"];
if (
!(
typeof _value73 === "number" &&
!Number.isNaN(_value73)
)
)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "quantity",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
else
_labelCheck75: {
if (!(_value73 >= 0)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "quantity",
child: {
type: "leaf",
code: issueCodes.TOO_SMALL,
},
});
break _labelCheck75;
}
if (!(_value73 <= 10)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "quantity",
child: {
type: "leaf",
code: issueCodes.TOO_LARGE,
},
});
break _labelCheck75;
}
}
}
let _value76;
const _has77 = "tags" in value;
if (_has77) {
_value76 = value["tags"];
if (!Array.isArray(_value76))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "tags",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "array",
},
});
else {
let _issue78;
for (
let _index79 = 0;
_index79 < _value76.length;
_index79++
) {
let _element80 = _value76[_index79];
if (!(typeof _element80 === "string"))
_issue78 = addIssue(_issue78, {
type: "nest",
key: _index79,
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck81: {
if (!(_element80.length >= 1)) {
_issue78 = addIssue(_issue78, {
type: "nest",
key: _index79,
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
});
break _labelCheck81;
}
if (!(_element80.length <= 30)) {
_issue78 = addIssue(_issue78, {
type: "nest",
key: _index79,
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
});
break _labelCheck81;
}
}
}
if (_issue78 !== void 0)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "tags",
child: _issue78,
});
}
}
let _value82;
const _has83 = "images" in value;
if (_has83) {
_value82 = value["images"];
if (!Array.isArray(_value82))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "images",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "array",
},
});
else {
let _issue84;
for (
let _index85 = 0;
_index85 < _value82.length;
_index85++
) {
let _element86 = _value82[_index85];
const _childIssue109 = _objectIssues108(_element86);
if (_childIssue109 !== void 0)
_issue84 = addIssue(_issue84, {
type: "nest",
key: _index85,
child: _childIssue109,
});
}
if (_issue84 !== void 0)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "images",
child: _issue84,
});
}
}
let _value110;
const _has111 = "ratings" in value;
if (_has111) {
_value110 = value["ratings"];
if (!Array.isArray(_value110))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "ratings",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "array",
},
});
else {
let _issue112;
for (
let _index113 = 0;
_index113 < _value110.length;
_index113++
) {
let _element114 = _value110[_index113];
const _childIssue161 =
_objectIssues160(_element114);
if (_childIssue161 !== void 0)
_issue112 = addIssue(_issue112, {
type: "nest",
key: _index113,
child: _childIssue161,
});
}
if (_issue112 !== void 0)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "ratings",
child: _issue112,
});
}
}
if (!_has54)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has56)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has59)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has62)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "brand",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has65)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "description",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has68)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "price",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has71)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "discount",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has74)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "quantity",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has77)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "tags",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has83)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "images",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has111)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "ratings",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
let _count163 = 0;
for (const _k164 in value) _count163++;
if (
_count163 !== 11 ||
!_has54 ||
!_has56 ||
!_has59 ||
!_has62 ||
!_has65 ||
!_has68 ||
!_has71 ||
!_has74 ||
!_has77 ||
!_has83 ||
!_has111
) {
for (const _key162 in value)
if (
!(
_key162 === "id" ||
_key162 === "created" ||
_key162 === "title" ||
_key162 === "brand" ||
_key162 === "description" ||
_key162 === "price" ||
_key162 === "discount" ||
_key162 === "quantity" ||
_key162 === "tags" ||
_key162 === "images" ||
_key162 === "ratings"
)
)
_issue52 = addIssue(_issue52, {
type: "nest",
key: _key162,
child: {
type: "leaf",
code: issueCodes.UNRECOGNIZED_KEY,
},
});
}
if (_issue52 !== void 0) return _issue52;
}
function _validateProduct(value, options) {
const maxDepth = options?.maxDepth ?? 1e3;
if (!Number.isInteger(maxDepth) || maxDepth < 1)
throw new Error("maxDepth must be a positive integer.");
if (!isPlainObject(value))
return _slowProduct(value, options);
const _field1 = value["id"];
if (
!(typeof _field1 === "number" && !Number.isNaN(_field1))
)
return _slowProduct(value, options);
const _field2 = value["created"];
if (
!(
_field2 instanceof Date &&
!Number.isNaN(_field2.getTime())
)
)
return _slowProduct(value, options);
const _field3 = value["title"];
if (
!(
typeof _field3 === "string" &&
_field3.length >= 1 &&
_field3.length <= 100
)
)
return _slowProduct(value, options);
const _field4 = value["brand"];
if (
!(
typeof _field4 === "string" &&
_field4.length >= 1 &&
_field4.length <= 30
)
)
return _slowProduct(value, options);
const _field5 = value["description"];
if (
!(
typeof _field5 === "string" &&
_field5.length >= 1 &&
_field5.length <= 500
)
)
return _slowProduct(value, options);
const _field6 = value["price"];
if (
!(
typeof _field6 === "number" &&
!Number.isNaN(_field6) &&
_field6 >= 1 &&
_field6 <= 1e4
)
)
return _slowProduct(value, options);
const _field7 = value["discount"];
if (
!(
_field7 === null ||
(typeof _field7 === "number" &&
!Number.isNaN(_field7) &&
_field7 >= 1 &&
_field7 <= 100)
)
)
return _slowProduct(value, options);
const _field8 = value["quantity"];
if (
!(
typeof _field8 === "number" &&
!Number.isNaN(_field8) &&
_field8 >= 0 &&
_field8 <= 10
)
)
return _slowProduct(value, options);
const _field9 = value["tags"];
if (!(Array.isArray(_field9) && _shapeArray15(_field9)))
return _slowProduct(value, options);
const _field16 = value["images"];
if (!(Array.isArray(_field16) && _shapeArray28(_field16)))
return _slowProduct(value, options);
const _field29 = value["ratings"];
if (!(Array.isArray(_field29) && _shapeArray49(_field29)))
return _slowProduct(value, options);
let _count50 = 0;
for (const _k51 in value) _count50++;
if (_count50 > 11) return _slowProduct(value, options);
}
function safeParseProduct(value, options) {
const result = _validateProduct(value, options);
if (result === void 0)
return {
ok: true,
value,
};
if (isParseSuccess(result)) return result;
return new ParseErrorResult(result);
}
function parseProduct(value, options) {
const result = safeParseProduct(value, options);
if (result.ok) return result.value;
throw new PaseriError(result.issue);
}
({
"~standard": Object.freeze({
version: 1,
vendor: "paseri",
validate(value, options) {
const result = _validateProduct(value);
if (result === void 0) return { value };
if (result.ok === true)
return { value: result.value };
return {
issues: new ParseErrorResult(result).messages(
options?.libraryOptions?.locale,
),
};
},
}),
safeParse: safeParseProduct,
parse: parseProduct,
}).safeParse({});
const issueCodes = {
INVALID_TYPE: "invalid_type",
TOO_SHORT: "too_short",
TOO_LONG: "too_long",
DUPLICATE_KEY: "duplicate_key",
TOO_DEEP: "too_deep",
INVALID_EMAIL: "invalid_email",
INVALID_EMOJI: "invalid_emoji",
INVALID_UUID: "invalid_uuid",
INVALID_NANOID: "invalid_nanoid",
DOES_NOT_INCLUDE: "does_not_include",
DOES_NOT_START_WITH: "does_not_start_with",
DOES_NOT_END_WITH: "does_not_end_with",
INVALID_DATE_STRING: "invalid_date_string",
INVALID_TIME_STRING: "invalid_time_string",
INVALID_DATE_TIME_STRING: "invalid_date_time_string",
INVALID_IP_ADDRESS: "invalid_ip_address",
INVALID_IP_ADDRESS_RANGE: "invalid_ip_address_range",
INVALID_URL: "invalid_url",
DOES_NOT_MATCH_REGEX: "does_not_match_regex",
TOO_SMALL: "too_small",
TOO_LARGE: "too_large",
INVALID_INTEGER: "invalid_integer",
INVALID_FINITE: "invalid_finite",
INVALID_SAFE_INTEGER: "invalid_safe_integer",
INVALID_VALUE: "invalid_value",
INVALID_DISCRIMINATOR_VALUE: "invalid_discriminator_value",
INVALID_ENUM_VALUE: "invalid_enum_value",
UNRECOGNIZED_KEY: "unrecognized_key",
MISSING_VALUE: "missing_value",
INVALID_DATE: "invalid_date",
TOO_RECENT: "too_recent",
TOO_DATED: "too_dated",
};
function addIssue(node, newNode) {
if (!node) return newNode;
return {
type: "join",
left: node,
right: newNode,
};
}
function messageList(node, locale) {
const messages = [];
const missingCodes = new Set();
const stack = [];
let current = [node, []];
while (current) {
const [currentNode, currentPath] = current;
switch (currentNode.type) {
case "leaf": {
let text;
if (locale === void 0) text = currentNode.code;
else {
const formatter = locale[currentNode.code];
if (formatter === void 0) {
missingCodes.add(currentNode.code);
break;
}
const { code, type, ...placeholders } = currentNode;
text = formatter(placeholders);
}
messages.push({
path: currentPath,
message: text,
});
break;
}
case "join":
stack.push(
[currentNode.right, currentPath],
[currentNode.left, currentPath],
);
break;
case "nest":
stack.push([currentNode.child, [...currentPath, currentNode.key]]);
}
current = stack.pop();
}
if (missingCodes.size > 0) {
const sorted = [...missingCodes].sort();
throw new Error(`No messages for codes: ${sorted.join(", ")}.`);
}
return messages;
}
var ParseErrorResult = class {
ok = false;
_issue;
constructor(issue) {
this._issue = issue;
}
get issue() {
return this._issue;
}
messages(locale) {
return messageList(this._issue, locale);
}
};
var PaseriError = class extends Error {
_issue;
constructor(issue) {
super("Failed to parse. See `e.messages()` for details.");
this._issue = issue;
}
messages(locale) {
return messageList(this._issue, locale);
}
};
function isParseSuccess(value) {
return value.ok === true;
}
function isPlainObject(value) {
if (typeof value !== "object" || value === null || Array.isArray(value))
return false;
if (value.constructor === Object) return true;
if (value.constructor === void 0)
return Object.getPrototypeOf(value) === null;
if (!Object.hasOwn(value, "constructor")) return false;
return (
Object.getPrototypeOf(value) === Object.prototype ||
Object.getPrototypeOf(value) === null
);
}
const _enum20 = new Set(["jpg", "png"]);
const _regex21 = new RegExp(
"^(?:(?:(?:[hH][tT][tT][pP][sS]?|[fF][tT][pP]|[wW][sS][sS]?):\\/\\/(?:(?:(?:(?![xX][nN]--)[a-zA-Z\\d_\\-]+)\\.)*(?:(?!(?:\\d+|0[xX]\\p{AHex}*)(?:[\\:\\/\\?\\#]|$))(?:(?![xX][nN]--)[a-zA-Z\\d_\\-]+)))(?::(?:6553[0-5]|655[0-2]\\d|65[0-4]\\d\\d|6[0-4]\\d{3}|[1-5]\\d{4}|\\d{1,4}))?(?:(?:[\\/\\?\\#].*)?))|(?:(?!(?:(?:(?:[hH][tT][tT][pP][sS]?|[fF][tT][pP]|[wW][sS][sS]?)|[fF][iI][lL][eE]):))[a-zA-Z](?:(?=([a-zA-Z\\d\\+\\.\\-]*))\\1):(?!\\/\\/).*))$",
"v",
);
function _shapeArray15(_arr13) {
for (let _i14 = 0; _i14 < _arr13.length; _i14++) {
const _el10 = _arr13[_i14];
if (!(typeof _el10 === "string" && _el10.length >= 1 && _el10.length <= 30))
return false;
}
return true;
}
function _extrasOk25(_obj22) {
let _count23 = 0;
for (const _k24 in _obj22) _count23++;
return _count23 <= 6;
}
function _shapeArray28(_arr26) {
for (let _i27 = 0; _i27 < _arr26.length; _i27++) {
const _el17 = _arr26[_i27];
if (
!(
isPlainObject(_el17) &&
typeof _el17["id"] === "number" &&
!Number.isNaN(_el17["id"]) &&
_el17["created"] instanceof Date &&
!Number.isNaN(_el17["created"].getTime()) &&
typeof _el17["title"] === "string" &&
_el17["title"].length >= 1 &&
_el17["title"].length <= 100 &&
_enum20.has(_el17["type"]) &&
typeof _el17["size"] === "number" &&
!Number.isNaN(_el17["size"]) &&
typeof _el17["url"] === "string" &&
(_regex21.test(_el17["url"]) || URL.canParse(_el17["url"])) &&
_extrasOk25(_el17)
)
)
return false;
}
return true;
}
function _extrasOk46(_obj43) {
let _count44 = 0;
for (const _k45 in _obj43) _count44++;
return _count44 <= 5;
}
function _shapeArray49(_arr47) {
for (let _i48 = 0; _i48 < _arr47.length; _i48++) {
const _el30 = _arr47[_i48];
if (
!(
isPlainObject(_el30) &&
typeof _el30["id"] === "number" &&
!Number.isNaN(_el30["id"]) &&
typeof _el30["stars"] === "number" &&
!Number.isNaN(_el30["stars"]) &&
_el30["stars"] >= 1 &&
_el30["stars"] <= 5 &&
typeof _el30["title"] === "string" &&
_el30["title"].length >= 1 &&
_el30["title"].length <= 100 &&
typeof _el30["text"] === "string" &&
_el30["text"].length >= 1 &&
_el30["text"].length <= 1e3 &&
Array.isArray(_el30["images"]) &&
_shapeArray28(_el30["images"]) &&
_extrasOk46(_el30)
)
)
return false;
}
return true;
}
function _objectIssues108(_val87) {
let _issue88;
if (!isPlainObject(_val87))
_issue88 = addIssue(_issue88, {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "object",
});
else {
let _issue89;
let _value90;
const _has91 = "id" in _val87;
if (_has91) {
_value90 = _val87["id"];
if (!(typeof _value90 === "number" && !Number.isNaN(_value90)))
_issue89 = addIssue(_issue89, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
}
let _value92;
const _has93 = "created" in _val87;
if (_has93) {
_value92 = _val87["created"];
if (!(_value92 instanceof Date))
_issue89 = addIssue(_issue89, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "Date",
},
});
else {
const _time94 = _value92.getTime();
if (Number.isNaN(_time94))
_issue89 = addIssue(_issue89, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.INVALID_DATE,
},
});
}
}
let _value95;
const _has96 = "title" in _val87;
if (_has96) {
_value95 = _val87["title"];
if (!(typeof _value95 === "string"))
_issue89 = addIssue(_issue89, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck97: {
if (!(_value95.length >= 1)) {
_issue89 = addIssue(_issue89, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
});
break _labelCheck97;
}
if (!(_value95.length <= 100)) {
_issue89 = addIssue(_issue89, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
});
break _labelCheck97;
}
}
}
let _value98;
const _has99 = "type" in _val87;
if (_has99) {
_value98 = _val87["type"];
if (!_enum20.has(_value98))
_issue89 = addIssue(_issue89, {
type: "nest",
key: "type",
child: {
type: "leaf",
code: issueCodes.INVALID_ENUM_VALUE,
expected: ["'jpg'", "'png'"],
},
});
}
let _value100;
const _has101 = "size" in _val87;
if (_has101) {
_value100 = _val87["size"];
if (!(typeof _value100 === "number" && !Number.isNaN(_value100)))
_issue89 = addIssue(_issue89, {
type: "nest",
key: "size",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
}
let _value102;
const _has103 = "url" in _val87;
if (_has103) {
_value102 = _val87["url"];
if (!(typeof _value102 === "string"))
_issue89 = addIssue(_issue89, {
type: "nest",
key: "url",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck104: if (
!(_regex21.test(_value102) || URL.canParse(_value102))
) {
_issue89 = addIssue(_issue89, {
type: "nest",
key: "url",
child: {
type: "leaf",
code: issueCodes.INVALID_URL,
},
});
break _labelCheck104;
}
}
if (!_has91)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has93)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has96)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has99)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "type",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has101)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "size",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has103)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "url",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
let _count106 = 0;
for (const _k107 in _val87) _count106++;
if (
_count106 !== 6 ||
!_has91 ||
!_has93 ||
!_has96 ||
!_has99 ||
!_has101 ||
!_has103
) {
for (const _key105 in _val87)
if (
!(
_key105 === "id" ||
_key105 === "created" ||
_key105 === "title" ||
_key105 === "type" ||
_key105 === "size" ||
_key105 === "url"
)
)
_issue89 = addIssue(_issue89, {
type: "nest",
key: _key105,
child: {
type: "leaf",
code: issueCodes.UNRECOGNIZED_KEY,
},
});
}
if (_issue89 !== void 0) _issue88 = addIssue(_issue88, _issue89);
}
return _issue88;
}
function _objectIssues160(_val115) {
let _issue116;
if (!isPlainObject(_val115))
_issue116 = addIssue(_issue116, {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "object",
});
else {
let _issue117;
let _value118;
const _has119 = "id" in _val115;
if (_has119) {
_value118 = _val115["id"];
if (!(typeof _value118 === "number" && !Number.isNaN(_value118)))
_issue117 = addIssue(_issue117, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
}
let _value120;
const _has121 = "stars" in _val115;
if (_has121) {
_value120 = _val115["stars"];
if (!(typeof _value120 === "number" && !Number.isNaN(_value120)))
_issue117 = addIssue(_issue117, {
type: "nest",
key: "stars",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
else
_labelCheck122: {
if (!(_value120 >= 1)) {
_issue117 = addIssue(_issue117, {
type: "nest",
key: "stars",
child: {
type: "leaf",
code: issueCodes.TOO_SMALL,
},
});
break _labelCheck122;
}
if (!(_value120 <= 5)) {
_issue117 = addIssue(_issue117, {
type: "nest",
key: "stars",
child: {
type: "leaf",
code: issueCodes.TOO_LARGE,
},
});
break _labelCheck122;
}
}
}
let _value123;
const _has124 = "title" in _val115;
if (_has124) {
_value123 = _val115["title"];
if (!(typeof _value123 === "string"))
_issue117 = addIssue(_issue117, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck125: {
if (!(_value123.length >= 1)) {
_issue117 = addIssue(_issue117, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
});
break _labelCheck125;
}
if (!(_value123.length <= 100)) {
_issue117 = addIssue(_issue117, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
});
break _labelCheck125;
}
}
}
let _value126;
const _has127 = "text" in _val115;
if (_has127) {
_value126 = _val115["text"];
if (!(typeof _value126 === "string"))
_issue117 = addIssue(_issue117, {
type: "nest",
key: "text",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck128: {
if (!(_value126.length >= 1)) {
_issue117 = addIssue(_issue117, {
type: "nest",
key: "text",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
});
break _labelCheck128;
}
if (!(_value126.length <= 1e3)) {
_issue117 = addIssue(_issue117, {
type: "nest",
key: "text",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
});
break _labelCheck128;
}
}
}
let _value129;
const _has130 = "images" in _val115;
if (_has130) {
_value129 = _val115["images"];
if (!Array.isArray(_value129))
_issue117 = addIssue(_issue117, {
type: "nest",
key: "images",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "array",
},
});
else {
let _issue131;
for (let _index132 = 0; _index132 < _value129.length; _index132++) {
let _element133 = _value129[_index132];
const _childIssue156 = _objectIssues108(_element133);
if (_childIssue156 !== void 0)
_issue131 = addIssue(_issue131, {
type: "nest",
key: _index132,
child: _childIssue156,
});
}
if (_issue131 !== void 0)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "images",
child: _issue131,
});
}
}
if (!_has119)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has121)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "stars",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has124)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has127)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "text",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has130)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "images",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
let _count158 = 0;
for (const _k159 in _val115) _count158++;
if (
_count158 !== 5 ||
!_has119 ||
!_has121 ||
!_has124 ||
!_has127 ||
!_has130
) {
for (const _key157 in _val115)
if (
!(
_key157 === "id" ||
_key157 === "stars" ||
_key157 === "title" ||
_key157 === "text" ||
_key157 === "images"
)
)
_issue117 = addIssue(_issue117, {
type: "nest",
key: _key157,
child: {
type: "leaf",
code: issueCodes.UNRECOGNIZED_KEY,
},
});
}
if (_issue117 !== void 0) _issue116 = addIssue(_issue116, _issue117);
}
return _issue116;
}
function _slowProduct(value, options) {
const maxDepth = options?.maxDepth ?? 1e3;
if (!Number.isInteger(maxDepth) || maxDepth < 1)
throw new Error("maxDepth must be a positive integer.");
if (!isPlainObject(value))
return {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "object",
};
let _issue52;
let _value53;
const _has54 = "id" in value;
if (_has54) {
_value53 = value["id"];
if (!(typeof _value53 === "number" && !Number.isNaN(_value53)))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
}
let _value55;
const _has56 = "created" in value;
if (_has56) {
_value55 = value["created"];
if (!(_value55 instanceof Date))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "Date",
},
});
else {
const _time57 = _value55.getTime();
if (Number.isNaN(_time57))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.INVALID_DATE,
},
});
}
}
let _value58;
const _has59 = "title" in value;
if (_has59) {
_value58 = value["title"];
if (!(typeof _value58 === "string"))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck60: {
if (!(_value58.length >= 1)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
});
break _labelCheck60;
}
if (!(_value58.length <= 100)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
});
break _labelCheck60;
}
}
}
let _value61;
const _has62 = "brand" in value;
if (_has62) {
_value61 = value["brand"];
if (!(typeof _value61 === "string"))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "brand",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck63: {
if (!(_value61.length >= 1)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "brand",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
});
break _labelCheck63;
}
if (!(_value61.length <= 30)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "brand",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
});
break _labelCheck63;
}
}
}
let _value64;
const _has65 = "description" in value;
if (_has65) {
_value64 = value["description"];
if (!(typeof _value64 === "string"))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "description",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck66: {
if (!(_value64.length >= 1)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "description",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
});
break _labelCheck66;
}
if (!(_value64.length <= 500)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "description",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
});
break _labelCheck66;
}
}
}
let _value67;
const _has68 = "price" in value;
if (_has68) {
_value67 = value["price"];
if (!(typeof _value67 === "number" && !Number.isNaN(_value67)))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "price",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
else
_labelCheck69: {
if (!(_value67 >= 1)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "price",
child: {
type: "leaf",
code: issueCodes.TOO_SMALL,
},
});
break _labelCheck69;
}
if (!(_value67 <= 1e4)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "price",
child: {
type: "leaf",
code: issueCodes.TOO_LARGE,
},
});
break _labelCheck69;
}
}
}
let _value70;
const _has71 = "discount" in value;
if (_has71) {
_value70 = value["discount"];
if (_value70 !== null) {
if (!(typeof _value70 === "number" && !Number.isNaN(_value70)))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "discount",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
else
_labelCheck72: {
if (!(_value70 >= 1)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "discount",
child: {
type: "leaf",
code: issueCodes.TOO_SMALL,
},
});
break _labelCheck72;
}
if (!(_value70 <= 100)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "discount",
child: {
type: "leaf",
code: issueCodes.TOO_LARGE,
},
});
break _labelCheck72;
}
}
}
}
let _value73;
const _has74 = "quantity" in value;
if (_has74) {
_value73 = value["quantity"];
if (!(typeof _value73 === "number" && !Number.isNaN(_value73)))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "quantity",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
else
_labelCheck75: {
if (!(_value73 >= 0)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "quantity",
child: {
type: "leaf",
code: issueCodes.TOO_SMALL,
},
});
break _labelCheck75;
}
if (!(_value73 <= 10)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "quantity",
child: {
type: "leaf",
code: issueCodes.TOO_LARGE,
},
});
break _labelCheck75;
}
}
}
let _value76;
const _has77 = "tags" in value;
if (_has77) {
_value76 = value["tags"];
if (!Array.isArray(_value76))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "tags",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "array",
},
});
else {
let _issue78;
for (let _index79 = 0; _index79 < _value76.length; _index79++) {
let _element80 = _value76[_index79];
if (!(typeof _element80 === "string"))
_issue78 = addIssue(_issue78, {
type: "nest",
key: _index79,
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck81: {
if (!(_element80.length >= 1)) {
_issue78 = addIssue(_issue78, {
type: "nest",
key: _index79,
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
});
break _labelCheck81;
}
if (!(_element80.length <= 30)) {
_issue78 = addIssue(_issue78, {
type: "nest",
key: _index79,
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
});
break _labelCheck81;
}
}
}
if (_issue78 !== void 0)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "tags",
child: _issue78,
});
}
}
let _value82;
const _has83 = "images" in value;
if (_has83) {
_value82 = value["images"];
if (!Array.isArray(_value82))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "images",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "array",
},
});
else {
let _issue84;
for (let _index85 = 0; _index85 < _value82.length; _index85++) {
let _element86 = _value82[_index85];
const _childIssue109 = _objectIssues108(_element86);
if (_childIssue109 !== void 0)
_issue84 = addIssue(_issue84, {
type: "nest",
key: _index85,
child: _childIssue109,
});
}
if (_issue84 !== void 0)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "images",
child: _issue84,
});
}
}
let _value110;
const _has111 = "ratings" in value;
if (_has111) {
_value110 = value["ratings"];
if (!Array.isArray(_value110))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "ratings",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "array",
},
});
else {
let _issue112;
for (let _index113 = 0; _index113 < _value110.length; _index113++) {
let _element114 = _value110[_index113];
const _childIssue161 = _objectIssues160(_element114);
if (_childIssue161 !== void 0)
_issue112 = addIssue(_issue112, {
type: "nest",
key: _index113,
child: _childIssue161,
});
}
if (_issue112 !== void 0)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "ratings",
child: _issue112,
});
}
}
if (!_has54)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has56)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has59)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has62)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "brand",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has65)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "description",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has68)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "price",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has71)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "discount",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has74)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "quantity",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has77)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "tags",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has83)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "images",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has111)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "ratings",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
let _count163 = 0;
for (const _k164 in value) _count163++;
if (
_count163 !== 11 ||
!_has54 ||
!_has56 ||
!_has59 ||
!_has62 ||
!_has65 ||
!_has68 ||
!_has71 ||
!_has74 ||
!_has77 ||
!_has83 ||
!_has111
) {
for (const _key162 in value)
if (
!(
_key162 === "id" ||
_key162 === "created" ||
_key162 === "title" ||
_key162 === "brand" ||
_key162 === "description" ||
_key162 === "price" ||
_key162 === "discount" ||
_key162 === "quantity" ||
_key162 === "tags" ||
_key162 === "images" ||
_key162 === "ratings"
)
)
_issue52 = addIssue(_issue52, {
type: "nest",
key: _key162,
child: {
type: "leaf",
code: issueCodes.UNRECOGNIZED_KEY,
},
});
}
if (_issue52 !== void 0) return _issue52;
}
function _validateProduct(value, options) {
const maxDepth = options?.maxDepth ?? 1e3;
if (!Number.isInteger(maxDepth) || maxDepth < 1)
throw new Error("maxDepth must be a positive integer.");
if (!isPlainObject(value)) return _slowProduct(value, options);
const _field1 = value["id"];
if (!(typeof _field1 === "number" && !Number.isNaN(_field1)))
return _slowProduct(value, options);
const _field2 = value["created"];
if (!(_field2 instanceof Date && !Number.isNaN(_field2.getTime())))
return _slowProduct(value, options);
const _field3 = value["title"];
if (
!(
typeof _field3 === "string" &&
_field3.length >= 1 &&
_field3.length <= 100
)
)
return _slowProduct(value, options);
const _field4 = value["brand"];
if (
!(
typeof _field4 === "string" &&
_field4.length >= 1 &&
_field4.length <= 30
)
)
return _slowProduct(value, options);
const _field5 = value["description"];
if (
!(
typeof _field5 === "string" &&
_field5.length >= 1 &&
_field5.length <= 500
)
)
return _slowProduct(value, options);
const _field6 = value["price"];
if (
!(
typeof _field6 === "number" &&
!Number.isNaN(_field6) &&
_field6 >= 1 &&
_field6 <= 1e4
)
)
return _slowProduct(value, options);
const _field7 = value["discount"];
if (
!(
_field7 === null ||
(typeof _field7 === "number" &&
!Number.isNaN(_field7) &&
_field7 >= 1 &&
_field7 <= 100)
)
)
return _slowProduct(value, options);
const _field8 = value["quantity"];
if (
!(
typeof _field8 === "number" &&
!Number.isNaN(_field8) &&
_field8 >= 0 &&
_field8 <= 10
)
)
return _slowProduct(value, options);
const _field9 = value["tags"];
if (!(Array.isArray(_field9) && _shapeArray15(_field9)))
return _slowProduct(value, options);
const _field16 = value["images"];
if (!(Array.isArray(_field16) && _shapeArray28(_field16)))
return _slowProduct(value, options);
const _field29 = value["ratings"];
if (!(Array.isArray(_field29) && _shapeArray49(_field29)))
return _slowProduct(value, options);
let _count50 = 0;
for (const _k51 in value) _count50++;
if (_count50 > 11) return _slowProduct(value, options);
}
function safeParseProduct(value, options) {
const result = _validateProduct(value, options);
if (result === void 0)
return {
ok: true,
value,
};
if (isParseSuccess(result)) return result;
return new ParseErrorResult(result);
}
function parseProduct(value, options) {
const result = safeParseProduct(value, options);
if (result.ok) return result.value;
throw new PaseriError(result.issue);
}
({
"~standard": Object.freeze({
version: 1,
vendor: "paseri",
validate(value, options) {
const result = _validateProduct(value);
if (result === void 0) return { value };
if (result.ok === true) return { value: result.value };
return {
issues: new ParseErrorResult(result).messages(
options?.libraryOptions?.locale,
),
};
},
}),
safeParse: safeParseProduct,
parse: parseProduct,
}).safeParse({});
const issueCodes = {
INVALID_TYPE: "invalid_type",
TOO_SHORT: "too_short",
TOO_LONG: "too_long",
DUPLICATE_KEY: "duplicate_key",
TOO_DEEP: "too_deep",
INVALID_EMAIL: "invalid_email",
INVALID_EMOJI: "invalid_emoji",
INVALID_UUID: "invalid_uuid",
INVALID_NANOID: "invalid_nanoid",
DOES_NOT_INCLUDE: "does_not_include",
DOES_NOT_START_WITH: "does_not_start_with",
DOES_NOT_END_WITH: "does_not_end_with",
INVALID_DATE_STRING: "invalid_date_string",
INVALID_TIME_STRING: "invalid_time_string",
INVALID_DATE_TIME_STRING: "invalid_date_time_string",
INVALID_IP_ADDRESS: "invalid_ip_address",
INVALID_IP_ADDRESS_RANGE: "invalid_ip_address_range",
INVALID_URL: "invalid_url",
DOES_NOT_MATCH_REGEX: "does_not_match_regex",
TOO_SMALL: "too_small",
TOO_LARGE: "too_large",
INVALID_INTEGER: "invalid_integer",
INVALID_FINITE: "invalid_finite",
INVALID_SAFE_INTEGER: "invalid_safe_integer",
INVALID_VALUE: "invalid_value",
INVALID_DISCRIMINATOR_VALUE: "invalid_discriminator_value",
INVALID_ENUM_VALUE: "invalid_enum_value",
UNRECOGNIZED_KEY: "unrecognized_key",
MISSING_VALUE: "missing_value",
INVALID_DATE: "invalid_date",
TOO_RECENT: "too_recent",
TOO_DATED: "too_dated",
};
function addIssue(node, newNode) {
if (!node) return newNode;
return {
type: "join",
left: node,
right: newNode,
};
}
function messageList(node, locale) {
const messages = [];
const missingCodes = new Set();
const stack = [];
let current = [node, []];
while (current) {
const [currentNode, currentPath] = current;
switch (currentNode.type) {
case "leaf": {
let text;
if (locale === void 0) text = currentNode.code;
else {
const formatter = locale[currentNode.code];
if (formatter === void 0) {
missingCodes.add(currentNode.code);
break;
}
const { code, type, ...placeholders } = currentNode;
text = formatter(placeholders);
}
messages.push({
path: currentPath,
message: text,
});
break;
}
case "join":
stack.push([currentNode.right, currentPath], [currentNode.left, currentPath]);
break;
case "nest":
stack.push([currentNode.child, [...currentPath, currentNode.key]]);
}
current = stack.pop();
}
if (missingCodes.size > 0) {
const sorted = [...missingCodes].sort();
throw new Error(`No messages for codes: ${sorted.join(", ")}.`);
}
return messages;
}
var ParseErrorResult = class {
ok = false;
_issue;
constructor(issue) {
this._issue = issue;
}
get issue() {
return this._issue;
}
messages(locale) {
return messageList(this._issue, locale);
}
};
var PaseriError = class extends Error {
_issue;
constructor(issue) {
super("Failed to parse. See `e.messages()` for details.");
this._issue = issue;
}
messages(locale) {
return messageList(this._issue, locale);
}
};
function isParseSuccess(value) {
return value.ok === true;
}
function isPlainObject(value) {
if (typeof value !== "object" || value === null || Array.isArray(value)) return false;
if (value.constructor === Object) return true;
if (value.constructor === void 0) return Object.getPrototypeOf(value) === null;
if (!Object.hasOwn(value, "constructor")) return false;
return Object.getPrototypeOf(value) === Object.prototype || Object.getPrototypeOf(value) === null;
}
const _enum20 = new Set(["jpg", "png"]);
const _regex21 = new RegExp(
"^(?:(?:(?:[hH][tT][tT][pP][sS]?|[fF][tT][pP]|[wW][sS][sS]?):\\/\\/(?:(?:(?:(?![xX][nN]--)[a-zA-Z\\d_\\-]+)\\.)*(?:(?!(?:\\d+|0[xX]\\p{AHex}*)(?:[\\:\\/\\?\\#]|$))(?:(?![xX][nN]--)[a-zA-Z\\d_\\-]+)))(?::(?:6553[0-5]|655[0-2]\\d|65[0-4]\\d\\d|6[0-4]\\d{3}|[1-5]\\d{4}|\\d{1,4}))?(?:(?:[\\/\\?\\#].*)?))|(?:(?!(?:(?:(?:[hH][tT][tT][pP][sS]?|[fF][tT][pP]|[wW][sS][sS]?)|[fF][iI][lL][eE]):))[a-zA-Z](?:(?=([a-zA-Z\\d\\+\\.\\-]*))\\1):(?!\\/\\/).*))$",
"v",
);
function _shapeArray15(_arr13) {
for (let _i14 = 0; _i14 < _arr13.length; _i14++) {
const _el10 = _arr13[_i14];
if (!(typeof _el10 === "string" && _el10.length >= 1 && _el10.length <= 30)) return false;
}
return true;
}
function _extrasOk25(_obj22) {
let _count23 = 0;
for (const _k24 in _obj22) _count23++;
return _count23 <= 6;
}
function _shapeArray28(_arr26) {
for (let _i27 = 0; _i27 < _arr26.length; _i27++) {
const _el17 = _arr26[_i27];
if (
!(
isPlainObject(_el17) &&
typeof _el17["id"] === "number" &&
!Number.isNaN(_el17["id"]) &&
_el17["created"] instanceof Date &&
!Number.isNaN(_el17["created"].getTime()) &&
typeof _el17["title"] === "string" &&
_el17["title"].length >= 1 &&
_el17["title"].length <= 100 &&
_enum20.has(_el17["type"]) &&
typeof _el17["size"] === "number" &&
!Number.isNaN(_el17["size"]) &&
typeof _el17["url"] === "string" &&
(_regex21.test(_el17["url"]) || URL.canParse(_el17["url"])) &&
_extrasOk25(_el17)
)
)
return false;
}
return true;
}
function _extrasOk46(_obj43) {
let _count44 = 0;
for (const _k45 in _obj43) _count44++;
return _count44 <= 5;
}
function _shapeArray49(_arr47) {
for (let _i48 = 0; _i48 < _arr47.length; _i48++) {
const _el30 = _arr47[_i48];
if (
!(
isPlainObject(_el30) &&
typeof _el30["id"] === "number" &&
!Number.isNaN(_el30["id"]) &&
typeof _el30["stars"] === "number" &&
!Number.isNaN(_el30["stars"]) &&
_el30["stars"] >= 1 &&
_el30["stars"] <= 5 &&
typeof _el30["title"] === "string" &&
_el30["title"].length >= 1 &&
_el30["title"].length <= 100 &&
typeof _el30["text"] === "string" &&
_el30["text"].length >= 1 &&
_el30["text"].length <= 1e3 &&
Array.isArray(_el30["images"]) &&
_shapeArray28(_el30["images"]) &&
_extrasOk46(_el30)
)
)
return false;
}
return true;
}
function _objectIssues108(_val87) {
let _issue88;
if (!isPlainObject(_val87))
_issue88 = addIssue(_issue88, {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "object",
});
else {
let _issue89;
let _value90;
const _has91 = "id" in _val87;
if (_has91) {
_value90 = _val87["id"];
if (!(typeof _value90 === "number" && !Number.isNaN(_value90)))
_issue89 = addIssue(_issue89, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
}
let _value92;
const _has93 = "created" in _val87;
if (_has93) {
_value92 = _val87["created"];
if (!(_value92 instanceof Date))
_issue89 = addIssue(_issue89, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "Date",
},
});
else {
const _time94 = _value92.getTime();
if (Number.isNaN(_time94))
_issue89 = addIssue(_issue89, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.INVALID_DATE,
},
});
}
}
let _value95;
const _has96 = "title" in _val87;
if (_has96) {
_value95 = _val87["title"];
if (!(typeof _value95 === "string"))
_issue89 = addIssue(_issue89, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck97: {
if (!(_value95.length >= 1)) {
_issue89 = addIssue(_issue89, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
});
break _labelCheck97;
}
if (!(_value95.length <= 100)) {
_issue89 = addIssue(_issue89, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
});
break _labelCheck97;
}
}
}
let _value98;
const _has99 = "type" in _val87;
if (_has99) {
_value98 = _val87["type"];
if (!_enum20.has(_value98))
_issue89 = addIssue(_issue89, {
type: "nest",
key: "type",
child: {
type: "leaf",
code: issueCodes.INVALID_ENUM_VALUE,
expected: ["'jpg'", "'png'"],
},
});
}
let _value100;
const _has101 = "size" in _val87;
if (_has101) {
_value100 = _val87["size"];
if (!(typeof _value100 === "number" && !Number.isNaN(_value100)))
_issue89 = addIssue(_issue89, {
type: "nest",
key: "size",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
}
let _value102;
const _has103 = "url" in _val87;
if (_has103) {
_value102 = _val87["url"];
if (!(typeof _value102 === "string"))
_issue89 = addIssue(_issue89, {
type: "nest",
key: "url",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck104: if (!(_regex21.test(_value102) || URL.canParse(_value102))) {
_issue89 = addIssue(_issue89, {
type: "nest",
key: "url",
child: {
type: "leaf",
code: issueCodes.INVALID_URL,
},
});
break _labelCheck104;
}
}
if (!_has91)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has93)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has96)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has99)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "type",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has101)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "size",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has103)
_issue89 = addIssue(_issue89, {
type: "nest",
key: "url",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
let _count106 = 0;
for (const _k107 in _val87) _count106++;
if (_count106 !== 6 || !_has91 || !_has93 || !_has96 || !_has99 || !_has101 || !_has103) {
for (const _key105 in _val87)
if (
!(
_key105 === "id" ||
_key105 === "created" ||
_key105 === "title" ||
_key105 === "type" ||
_key105 === "size" ||
_key105 === "url"
)
)
_issue89 = addIssue(_issue89, {
type: "nest",
key: _key105,
child: {
type: "leaf",
code: issueCodes.UNRECOGNIZED_KEY,
},
});
}
if (_issue89 !== void 0) _issue88 = addIssue(_issue88, _issue89);
}
return _issue88;
}
function _objectIssues160(_val115) {
let _issue116;
if (!isPlainObject(_val115))
_issue116 = addIssue(_issue116, {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "object",
});
else {
let _issue117;
let _value118;
const _has119 = "id" in _val115;
if (_has119) {
_value118 = _val115["id"];
if (!(typeof _value118 === "number" && !Number.isNaN(_value118)))
_issue117 = addIssue(_issue117, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
}
let _value120;
const _has121 = "stars" in _val115;
if (_has121) {
_value120 = _val115["stars"];
if (!(typeof _value120 === "number" && !Number.isNaN(_value120)))
_issue117 = addIssue(_issue117, {
type: "nest",
key: "stars",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
else
_labelCheck122: {
if (!(_value120 >= 1)) {
_issue117 = addIssue(_issue117, {
type: "nest",
key: "stars",
child: {
type: "leaf",
code: issueCodes.TOO_SMALL,
},
});
break _labelCheck122;
}
if (!(_value120 <= 5)) {
_issue117 = addIssue(_issue117, {
type: "nest",
key: "stars",
child: {
type: "leaf",
code: issueCodes.TOO_LARGE,
},
});
break _labelCheck122;
}
}
}
let _value123;
const _has124 = "title" in _val115;
if (_has124) {
_value123 = _val115["title"];
if (!(typeof _value123 === "string"))
_issue117 = addIssue(_issue117, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck125: {
if (!(_value123.length >= 1)) {
_issue117 = addIssue(_issue117, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
});
break _labelCheck125;
}
if (!(_value123.length <= 100)) {
_issue117 = addIssue(_issue117, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
});
break _labelCheck125;
}
}
}
let _value126;
const _has127 = "text" in _val115;
if (_has127) {
_value126 = _val115["text"];
if (!(typeof _value126 === "string"))
_issue117 = addIssue(_issue117, {
type: "nest",
key: "text",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck128: {
if (!(_value126.length >= 1)) {
_issue117 = addIssue(_issue117, {
type: "nest",
key: "text",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
});
break _labelCheck128;
}
if (!(_value126.length <= 1e3)) {
_issue117 = addIssue(_issue117, {
type: "nest",
key: "text",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
});
break _labelCheck128;
}
}
}
let _value129;
const _has130 = "images" in _val115;
if (_has130) {
_value129 = _val115["images"];
if (!Array.isArray(_value129))
_issue117 = addIssue(_issue117, {
type: "nest",
key: "images",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "array",
},
});
else {
let _issue131;
for (let _index132 = 0; _index132 < _value129.length; _index132++) {
let _element133 = _value129[_index132];
const _childIssue156 = _objectIssues108(_element133);
if (_childIssue156 !== void 0)
_issue131 = addIssue(_issue131, {
type: "nest",
key: _index132,
child: _childIssue156,
});
}
if (_issue131 !== void 0)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "images",
child: _issue131,
});
}
}
if (!_has119)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has121)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "stars",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has124)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has127)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "text",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has130)
_issue117 = addIssue(_issue117, {
type: "nest",
key: "images",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
let _count158 = 0;
for (const _k159 in _val115) _count158++;
if (_count158 !== 5 || !_has119 || !_has121 || !_has124 || !_has127 || !_has130) {
for (const _key157 in _val115)
if (
!(
_key157 === "id" ||
_key157 === "stars" ||
_key157 === "title" ||
_key157 === "text" ||
_key157 === "images"
)
)
_issue117 = addIssue(_issue117, {
type: "nest",
key: _key157,
child: {
type: "leaf",
code: issueCodes.UNRECOGNIZED_KEY,
},
});
}
if (_issue117 !== void 0) _issue116 = addIssue(_issue116, _issue117);
}
return _issue116;
}
function _slowProduct(value, options) {
const maxDepth = options?.maxDepth ?? 1e3;
if (!Number.isInteger(maxDepth) || maxDepth < 1)
throw new Error("maxDepth must be a positive integer.");
if (!isPlainObject(value))
return {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "object",
};
let _issue52;
let _value53;
const _has54 = "id" in value;
if (_has54) {
_value53 = value["id"];
if (!(typeof _value53 === "number" && !Number.isNaN(_value53)))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
}
let _value55;
const _has56 = "created" in value;
if (_has56) {
_value55 = value["created"];
if (!(_value55 instanceof Date))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "Date",
},
});
else {
const _time57 = _value55.getTime();
if (Number.isNaN(_time57))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.INVALID_DATE,
},
});
}
}
let _value58;
const _has59 = "title" in value;
if (_has59) {
_value58 = value["title"];
if (!(typeof _value58 === "string"))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck60: {
if (!(_value58.length >= 1)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
});
break _labelCheck60;
}
if (!(_value58.length <= 100)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
});
break _labelCheck60;
}
}
}
let _value61;
const _has62 = "brand" in value;
if (_has62) {
_value61 = value["brand"];
if (!(typeof _value61 === "string"))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "brand",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck63: {
if (!(_value61.length >= 1)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "brand",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
});
break _labelCheck63;
}
if (!(_value61.length <= 30)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "brand",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
});
break _labelCheck63;
}
}
}
let _value64;
const _has65 = "description" in value;
if (_has65) {
_value64 = value["description"];
if (!(typeof _value64 === "string"))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "description",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck66: {
if (!(_value64.length >= 1)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "description",
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
});
break _labelCheck66;
}
if (!(_value64.length <= 500)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "description",
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
});
break _labelCheck66;
}
}
}
let _value67;
const _has68 = "price" in value;
if (_has68) {
_value67 = value["price"];
if (!(typeof _value67 === "number" && !Number.isNaN(_value67)))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "price",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
else
_labelCheck69: {
if (!(_value67 >= 1)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "price",
child: {
type: "leaf",
code: issueCodes.TOO_SMALL,
},
});
break _labelCheck69;
}
if (!(_value67 <= 1e4)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "price",
child: {
type: "leaf",
code: issueCodes.TOO_LARGE,
},
});
break _labelCheck69;
}
}
}
let _value70;
const _has71 = "discount" in value;
if (_has71) {
_value70 = value["discount"];
if (_value70 !== null) {
if (!(typeof _value70 === "number" && !Number.isNaN(_value70)))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "discount",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
else
_labelCheck72: {
if (!(_value70 >= 1)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "discount",
child: {
type: "leaf",
code: issueCodes.TOO_SMALL,
},
});
break _labelCheck72;
}
if (!(_value70 <= 100)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "discount",
child: {
type: "leaf",
code: issueCodes.TOO_LARGE,
},
});
break _labelCheck72;
}
}
}
}
let _value73;
const _has74 = "quantity" in value;
if (_has74) {
_value73 = value["quantity"];
if (!(typeof _value73 === "number" && !Number.isNaN(_value73)))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "quantity",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "number",
},
});
else
_labelCheck75: {
if (!(_value73 >= 0)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "quantity",
child: {
type: "leaf",
code: issueCodes.TOO_SMALL,
},
});
break _labelCheck75;
}
if (!(_value73 <= 10)) {
_issue52 = addIssue(_issue52, {
type: "nest",
key: "quantity",
child: {
type: "leaf",
code: issueCodes.TOO_LARGE,
},
});
break _labelCheck75;
}
}
}
let _value76;
const _has77 = "tags" in value;
if (_has77) {
_value76 = value["tags"];
if (!Array.isArray(_value76))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "tags",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "array",
},
});
else {
let _issue78;
for (let _index79 = 0; _index79 < _value76.length; _index79++) {
let _element80 = _value76[_index79];
if (!(typeof _element80 === "string"))
_issue78 = addIssue(_issue78, {
type: "nest",
key: _index79,
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "string",
},
});
else
_labelCheck81: {
if (!(_element80.length >= 1)) {
_issue78 = addIssue(_issue78, {
type: "nest",
key: _index79,
child: {
type: "leaf",
code: issueCodes.TOO_SHORT,
},
});
break _labelCheck81;
}
if (!(_element80.length <= 30)) {
_issue78 = addIssue(_issue78, {
type: "nest",
key: _index79,
child: {
type: "leaf",
code: issueCodes.TOO_LONG,
},
});
break _labelCheck81;
}
}
}
if (_issue78 !== void 0)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "tags",
child: _issue78,
});
}
}
let _value82;
const _has83 = "images" in value;
if (_has83) {
_value82 = value["images"];
if (!Array.isArray(_value82))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "images",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "array",
},
});
else {
let _issue84;
for (let _index85 = 0; _index85 < _value82.length; _index85++) {
let _element86 = _value82[_index85];
const _childIssue109 = _objectIssues108(_element86);
if (_childIssue109 !== void 0)
_issue84 = addIssue(_issue84, {
type: "nest",
key: _index85,
child: _childIssue109,
});
}
if (_issue84 !== void 0)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "images",
child: _issue84,
});
}
}
let _value110;
const _has111 = "ratings" in value;
if (_has111) {
_value110 = value["ratings"];
if (!Array.isArray(_value110))
_issue52 = addIssue(_issue52, {
type: "nest",
key: "ratings",
child: {
type: "leaf",
code: issueCodes.INVALID_TYPE,
expected: "array",
},
});
else {
let _issue112;
for (let _index113 = 0; _index113 < _value110.length; _index113++) {
let _element114 = _value110[_index113];
const _childIssue161 = _objectIssues160(_element114);
if (_childIssue161 !== void 0)
_issue112 = addIssue(_issue112, {
type: "nest",
key: _index113,
child: _childIssue161,
});
}
if (_issue112 !== void 0)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "ratings",
child: _issue112,
});
}
}
if (!_has54)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "id",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has56)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "created",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has59)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "title",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has62)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "brand",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has65)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "description",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has68)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "price",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has71)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "discount",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has74)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "quantity",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has77)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "tags",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has83)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "images",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
if (!_has111)
_issue52 = addIssue(_issue52, {
type: "nest",
key: "ratings",
child: {
type: "leaf",
code: issueCodes.MISSING_VALUE,
},
});
let _count163 = 0;
for (const _k164 in value) _count163++;
if (
_count163 !== 11 ||
!_has54 ||
!_has56 ||
!_has59 ||
!_has62 ||
!_has65 ||
!_has68 ||
!_has71 ||
!_has74 ||
!_has77 ||
!_has83 ||
!_has111
) {
for (const _key162 in value)
if (
!(
_key162 === "id" ||
_key162 === "created" ||
_key162 === "title" ||
_key162 === "brand" ||
_key162 === "description" ||
_key162 === "price" ||
_key162 === "discount" ||
_key162 === "quantity" ||
_key162 === "tags" ||
_key162 === "images" ||
_key162 === "ratings"
)
)
_issue52 = addIssue(_issue52, {
type: "nest",
key: _key162,
child: {
type: "leaf",
code: issueCodes.UNRECOGNIZED_KEY,
},
});
}
if (_issue52 !== void 0) return _issue52;
}
function _validateProduct(value, options) {
const maxDepth = options?.maxDepth ?? 1e3;
if (!Number.isInteger(maxDepth) || maxDepth < 1)
throw new Error("maxDepth must be a positive integer.");
if (!isPlainObject(value)) return _slowProduct(value, options);
const _field1 = value["id"];
if (!(typeof _field1 === "number" && !Number.isNaN(_field1))) return _slowProduct(value, options);
const _field2 = value["created"];
if (!(_field2 instanceof Date && !Number.isNaN(_field2.getTime())))
return _slowProduct(value, options);
const _field3 = value["title"];
if (!(typeof _field3 === "string" && _field3.length >= 1 && _field3.length <= 100))
return _slowProduct(value, options);
const _field4 = value["brand"];
if (!(typeof _field4 === "string" && _field4.length >= 1 && _field4.length <= 30))
return _slowProduct(value, options);
const _field5 = value["description"];
if (!(typeof _field5 === "string" && _field5.length >= 1 && _field5.length <= 500))
return _slowProduct(value, options);
const _field6 = value["price"];
if (!(typeof _field6 === "number" && !Number.isNaN(_field6) && _field6 >= 1 && _field6 <= 1e4))
return _slowProduct(value, options);
const _field7 = value["discount"];
if (
!(
_field7 === null ||
(typeof _field7 === "number" && !Number.isNaN(_field7) && _field7 >= 1 && _field7 <= 100)
)
)
return _slowProduct(value, options);
const _field8 = value["quantity"];
if (!(typeof _field8 === "number" && !Number.isNaN(_field8) && _field8 >= 0 && _field8 <= 10))
return _slowProduct(value, options);
const _field9 = value["tags"];
if (!(Array.isArray(_field9) && _shapeArray15(_field9))) return _slowProduct(value, options);
const _field16 = value["images"];
if (!(Array.isArray(_field16) && _shapeArray28(_field16))) return _slowProduct(value, options);
const _field29 = value["ratings"];
if (!(Array.isArray(_field29) && _shapeArray49(_field29))) return _slowProduct(value, options);
let _count50 = 0;
for (const _k51 in value) _count50++;
if (_count50 > 11) return _slowProduct(value, options);
}
function safeParseProduct(value, options) {
const result = _validateProduct(value, options);
if (result === void 0)
return {
ok: true,
value,
};
if (isParseSuccess(result)) return result;
return new ParseErrorResult(result);
}
function parseProduct(value, options) {
const result = safeParseProduct(value, options);
if (result.ok) return result.value;
throw new PaseriError(result.issue);
}
({
"~standard": Object.freeze({
version: 1,
vendor: "paseri",
validate(value, options) {
const result = _validateProduct(value);
if (result === void 0) return { value };
if (result.ok === true) return { value: result.value };
return { issues: new ParseErrorResult(result).messages(options?.libraryOptions?.locale) };
},
}),
safeParse: safeParseProduct,
parse: parseProduct,
}).safeParse({});