schemas/libraries/decoders/download_compiled/index/minified.js
schemas/libraries/decoders/download_compiled/index/minified.js
schemas/libraries/decoders/download_compiled/index/minified.js
schemas/libraries/decoders/download_compiled/index/minified.js
function e(e, t) {
return e === 1
? `${e} ${t}`
: `${e} ${t}s`;
}
function t(e) {
return typeof e == `number`;
}
function n(e) {
return typeof e == `string`;
}
function r(e) {
return (
!!e &&
Object.prototype.toString.call(
e,
) === `[object Date]` &&
!isNaN(e)
);
}
function i(e) {
return (
typeof e == `object` &&
!!e &&
`then` in e &&
typeof e.then == `function`
);
}
function a(e) {
return (
typeof e == `object` &&
!!e &&
Object.prototype.toString.call(
e,
) === `[object Object]`
);
}
var o = Symbol.for(
`decoders.kAnnotationRegistry`,
),
s = (globalThis[o] ??=
new WeakSet());
function c(e) {
return (s.add(e), e);
}
function l(e, t) {
return c({
type: `object`,
fields: e,
text: t,
});
}
function u(e, t) {
return c({
type: `array`,
items: e,
text: t,
});
}
function d(e, t) {
return c({
type: `opaque`,
value: e,
text: t,
});
}
function ee(e, t) {
return c({
type: `scalar`,
value: e,
text: t,
});
}
function f(e, t) {
return t === void 0
? e
: c({ ...e, text: t });
}
function p(e, t) {
return l(
new Map([...e.fields, ...t]),
e.text,
);
}
function m(e) {
return s.has(e);
}
function h(e, t, n) {
n.add(e);
let r = [];
for (let t of e)
r.push(_(t, void 0, n));
return u(r, t);
}
function g(e, t, n) {
n.add(e);
let r = new Map();
for (let t of Object.keys(e)) {
let i = e[t];
r.set(t, _(i, void 0, n));
}
return l(r, t);
}
function _(e, t, n) {
return e == null ||
typeof e == `string` ||
typeof e == `number` ||
typeof e == `boolean` ||
typeof e == `symbol` ||
typeof e == `bigint` ||
typeof e.getMonth == `function`
? ee(e, t)
: m(e)
? f(e, t)
: Array.isArray(e)
? n.has(e)
? d(`<circular ref>`, t)
: h(e, t, n)
: a(e)
? n.has(e)
? d(`<circular ref>`, t)
: g(e, t, n)
: typeof e == `function`
? d(`<function>`, t)
: i(e)
? d(`<Promise>`, t)
: e?.constructor?.name
? d(
`<${e.constructor.name}>`,
t,
)
: d(`???`, t);
}
function v(e, t) {
return _(
e,
t,
new WeakSet(),
);
}
function y(e, t) {
return g(
e,
t,
new WeakSet(),
);
}
var b = ` `;
function x(e) {
return e.includes(`
`);
}
function S(e, t = b) {
return x(e)
? e
.split(`
`)
.map((e) => `${t}${e}`).join(`
`)
: `${t}${e}`;
}
var C = /'/g;
function w(e) {
return typeof e == `string`
? `'` + e.replace(C, `\\'`) + `'`
: e === void 0
? `undefined`
: JSON.stringify(e);
}
function T(e, t = []) {
let n = [];
if (e.type === `array`) {
let r = e.items,
i = 0;
for (let e of r)
for (let r of T(
e,
[...t, i++],
))
n.push(r);
} else if (e.type === `object`) {
let r = e.fields;
for (let [e, i] of r)
for (let r of T(
i,
[...t, e],
))
n.push(r);
}
let r = e.text;
if (!r) return n;
let i;
return (
(i =
t.length === 0
? ``
: t.length === 1
? typeof t[0] == `number`
? `Value at index ${t[0]}: `
: `Value at key ${/* @__PURE__ */ w(t[0])}: `
: `Value at keypath ${/* @__PURE__ */ w(t.map(String).join(`.`))}: `),
[...n, `${i}${r}`]
);
}
function te(e, t = 80) {
let n = JSON.stringify(e);
if (n.length <= t) return n;
let r = `${e.substring(0, t - 15)}...`;
return (
(n = `${JSON.stringify(r)} [truncated]`),
n
);
}
function ne(e, t) {
let { items: n } = e;
if (n.length === 0) return `[]`;
let r = [];
for (let e of n) {
let [n, i] = O(e, `${t}${b}`);
(r.push(`${t}${b}${n},`),
i !== void 0 &&
r.push(
S(
i,
`${t}${b}`,
),
));
}
return [`[`, ...r, `${t}]`].join(`
`);
}
function E(e, t) {
let { fields: n } = e;
if (n.size === 0) return `{}`;
let r = [];
for (let [e, i] of n) {
let n = D(e),
a = `${t}${b}${` `.repeat(n.length + 2)}`,
[o, s] = O(i, `${t}${b}`);
(r.push(`${t}${b}${n}: ${o},`),
s !== void 0 &&
r.push(
S(s, a),
));
}
return [`{`, ...r, `${t}}`].join(`
`);
}
function D(e) {
return typeof e == `string`
? te(e)
: typeof e == `number` ||
typeof e == `boolean` ||
typeof e == `symbol`
? e.toString()
: e === null
? `null`
: e === void 0
? `undefined`
: typeof e == `bigint`
? `${e.toString()}n`
: r(e)
? `new Date(${/* @__PURE__ */ w(e.toISOString())})`
: e instanceof Date
? `(Invalid Date)`
: `(unserializable)`;
}
function O(e, t = ``) {
let n;
n =
e.type === `array`
? ne(e, t)
: e.type === `object`
? E(e, t)
: e.type === `scalar`
? D(e.value)
: e.value;
let r = e.text;
if (r !== void 0) {
let e = `^`.repeat(
x(n)
? 1
: n.length,
);
return [
n,
[e, r].join(
x(r)
? `
`
: ` `,
),
];
}
return [n, void 0];
}
function k(e) {
let [t, n] = O(e);
return n === void 0
? t
: `${t}
${n}`;
}
function* A(e, t) {
switch (
(e.text &&
(t.length > 0
? yield {
message: e.text,
path: [...t],
}
: yield { message: e.text }),
e.type)
) {
case `array`: {
let n = 0;
for (let r of e.items)
(t.push(n++),
yield* A(r, t),
t.pop());
break;
}
case `object`:
for (let [n, r] of e.fields)
(t.push(n),
yield* A(r, t),
t.pop());
}
}
function j(e) {
return Array.from(A(e, []));
}
function M(e) {
return {
ok: !0,
value: e,
error: void 0,
};
}
function N(e) {
return {
ok: !1,
value: void 0,
error: e,
};
}
function re(e) {
return (t) => {
try {
return M(e(t));
} catch (e) {
return N(
v(
t,
e instanceof Error
? e.message
: String(e),
),
);
}
};
}
function ie(e, t) {
let n = t(e);
if (typeof n == `string`) {
let e = Error(`
${n}`);
return (
(e.name = `Decoding error`), e
);
}
return n;
}
function P(e) {
function t(t) {
return e(t, M, (e) =>
N(
m(e) ? e : v(t, e),
),
);
}
function n(e, n = k) {
let r = t(e);
if (r.ok) return r.value;
throw ie(r.error, n);
}
function r(e) {
return t(e).value;
}
function i(e) {
return s(re(e));
}
function a(e, t) {
return l((n) => (e(n) ? null : t));
}
function o() {
return d;
}
function s(e) {
return P(
(n, r, i) => {
let a = t(n);
if (!a.ok) return a;
let o = R(e)
? e
: e(a.value, r, i);
return R(o)
? o.decode(a.value)
: o;
},
);
}
function c(e) {
return s(e);
}
function l(e) {
return s((t, n, r) => {
let i = e(t);
return i === null
? n(t)
: r(
typeof i == `string`
? v(t, i)
: i,
);
});
}
function u(e) {
return P(
(n, r, i) => {
let a = t(n);
return a.ok
? a
: i(v(a.error, e));
},
);
}
let d = L({
verify: n,
value: r,
decode: t,
transform: i,
refine: a,
refineType: o,
reject: l,
describe: u,
chain: s,
pipe: c,
"~standard": {
version: 1,
vendor: `decoders`,
validate: (e) => {
let n = t(e);
return n.ok
? { value: n.value }
: { issues: j(n.error) };
},
},
});
return d;
}
var F = Symbol.for(
`decoders.kDecoderRegistry`,
),
I = (globalThis[F] ??=
new WeakSet());
function L(e) {
return (I.add(e), e);
}
function R(e) {
return I.has(e);
}
var z = P((e, t, n) =>
Array.isArray(e)
? t(e)
: n(`Must be an array`),
);
function B(e) {
let t = e.decode;
return z.chain((e, n, r) => {
let i = [];
for (let n = 0; n < e.length; ++n) {
let a = e[n],
o = t(a);
if (o.ok) i.push(o.value);
else {
i.length = 0;
let t = o.error,
a = e.slice();
return (
a.splice(
n,
1,
v(
t,
t.text
? `${t.text} (at index ${n})`
: `index ${n}`,
),
),
r(v(a))
);
}
}
return n(i);
});
}
function V(t) {
let n = t.size,
r = n ?? t.min,
i = n ?? t.max,
a = r === i ? `` : `at least `,
o = r === i ? `` : `at most `;
return (t) => {
let n = t.length ?? t.size;
if (typeof t == `string`) {
if (r !== void 0 && n < r)
return `Too short, must be ${a}${/* @__PURE__ */ e(r, `char`)}`;
if (i !== void 0 && n > i)
return `Too long, must be ${o}${/* @__PURE__ */ e(i, `char`)}`;
} else {
if (r !== void 0 && n < r)
return `Must have ${a}${/* @__PURE__ */ e(r, `item`)}`;
if (i !== void 0 && n > i)
return `Must have ${o}${/* @__PURE__ */ e(i, `item`)}`;
}
return null;
};
}
function H(e, t) {
return e.reject( V(t));
}
function U(e, t) {
let n = new Set();
for (let r of e) t.has(r) || n.add(r);
return n;
}
var W = P((e, t, n) =>
a(e)
? t(e)
: n(`Must be an object`),
);
function G(e) {
let t = new Set(Object.keys(e));
return W.chain((n, r, i) => {
let a = new Set(Object.keys(n)),
o = U(t, a),
s = {},
c = null;
for (let t of Object.keys(e)) {
let r = e[t],
i = n[t],
a = r.decode(i);
if (a.ok) {
let e = a.value;
(e !== void 0 && (s[t] = e),
o.delete(t));
} else {
let e = a.error;
i === void 0
? o.add(t)
: ((c ??=
new Map()),
c.set(t, e));
}
}
if (c || o.size > 0) {
let e = y(n);
if (
(c && (e = p(e, c)), o.size > 0)
) {
let t = Array.from(o)
.map(w)
.join(`, `),
n =
o.size > 1 ? `keys` : `key`;
e = f(e, `Missing ${n}: ${t}`);
}
return i(e);
}
return r(s);
});
}
function K(e) {
return G(e);
}
var q = `Either:
`;
function J(e) {
return `-${/* @__PURE__ */ S(e).substring(1)}`;
}
function ae(e) {
return e.startsWith(q)
? e.substring(q.length)
: J(e);
}
function oe(...e) {
if (e.length === 0)
throw Error(
`Pass at least one decoder to either()`,
);
return P(
(t, n, r) => {
let i = [];
for (let n of e) {
let e = n.decode(t);
if (e.ok) return e;
i.push(e.error);
}
return r(
q +
i.map((e) =>
ae(
T(e)
.join(`
`),
),
).join(`
`),
);
},
);
}
function se(e) {
return P(
(t, n, r) => {
let i = e.indexOf(t);
return i === -1
? r(
`Must be one of ${e.map((e) => w(e)).join(`, `)}`,
)
: n(e[i]);
},
);
}
function ce(e) {
return typeof e == `function`
? e()
: e;
}
var le = de(null);
function ue(e, t) {
let n = oe(le, e);
return arguments.length >= 2
? n.transform((e) => e ?? ce(t))
: n;
}
function de(e) {
return P((t, n, r) =>
t === e
? n(e)
: r(
`Must be ${typeof e == `symbol` ? String(e) : w(e)}`,
),
);
}
var fe =
/^[A-Za-z]{2,12}(?:[+][A-Za-z]{2,12})?:\/\/(?:[^@]*@)?[A-Za-z0-9.-]+(?::[0-9]{2,5})?(?:\/[-+~%/.,!$&'()*:;=@\w]*(?:\?[-+~%/.,!$&'()*:;=@?\w]*)?)?(?:#[^\s#]*)?$/,
Y = P((e, t, r) =>
n(e)
? t(e)
: r(`Must be string`),
);
function pe(e, t) {
return Y.refine((t) => e.test(t), t);
}
var me = pe(
fe,
`Must be URL`,
),
X = P((e, t, n) =>
r(e)
? t(e)
: n(`Must be a Date`),
),
Z = P(
(e, n, r) =>
t(e)
? n(e)
: r(`Must be number`),
).refine(
(e) => Number.isFinite(e),
`Number must be finite`,
);
function Q(e, t, n = Z) {
return n.reject((n) =>
n < e
? `Too low, must be between ${e} and ${t}`
: n > t
? `Too high, must be between ${e} and ${t}`
: null,
);
}
const $ = K({
id: Z,
created: X,
title: H(Y, {
min: 1,
max: 100,
}),
type: se([
`jpg`,
`png`,
]),
size: Z,
url: me,
});
K({
id: Z,
created: X,
title: H(Y, {
min: 1,
max: 100,
}),
brand: H(Y, {
min: 1,
max: 30,
}),
description: H(Y, {
min: 1,
max: 500,
}),
price: Q(1, 1e4),
discount: ue(
Q(1, 100),
),
quantity: Q(0, 10),
tags: B(
H(Y, {
min: 1,
max: 30,
}),
),
images: B($),
ratings: B(
K({
id: Z,
stars: Q(1, 5),
title: H(Y, {
min: 1,
max: 100,
}),
text: H(Y, {
min: 1,
max: 1e3,
}),
images: B($),
}),
),
}).verify({});
function e(e, t) {
return e === 1 ? `${e} ${t}` : `${e} ${t}s`;
}
function t(e) {
return typeof e == `number`;
}
function n(e) {
return typeof e == `string`;
}
function r(e) {
return (
!!e &&
Object.prototype.toString.call(e) === `[object Date]` &&
!isNaN(e)
);
}
function i(e) {
return (
typeof e == `object` &&
!!e &&
`then` in e &&
typeof e.then == `function`
);
}
function a(e) {
return (
typeof e == `object` &&
!!e &&
Object.prototype.toString.call(e) === `[object Object]`
);
}
var o = Symbol.for(
`decoders.kAnnotationRegistry`,
),
s = (globalThis[o] ??= new WeakSet());
function c(e) {
return (s.add(e), e);
}
function l(e, t) {
return c({ type: `object`, fields: e, text: t });
}
function u(e, t) {
return c({ type: `array`, items: e, text: t });
}
function d(e, t) {
return c({ type: `opaque`, value: e, text: t });
}
function ee(e, t) {
return c({ type: `scalar`, value: e, text: t });
}
function f(e, t) {
return t === void 0 ? e : c({ ...e, text: t });
}
function p(e, t) {
return l(new Map([...e.fields, ...t]), e.text);
}
function m(e) {
return s.has(e);
}
function h(e, t, n) {
n.add(e);
let r = [];
for (let t of e) r.push(_(t, void 0, n));
return u(r, t);
}
function g(e, t, n) {
n.add(e);
let r = new Map();
for (let t of Object.keys(e)) {
let i = e[t];
r.set(t, _(i, void 0, n));
}
return l(r, t);
}
function _(e, t, n) {
return e == null ||
typeof e == `string` ||
typeof e == `number` ||
typeof e == `boolean` ||
typeof e == `symbol` ||
typeof e == `bigint` ||
typeof e.getMonth == `function`
? ee(e, t)
: m(e)
? f(e, t)
: Array.isArray(e)
? n.has(e)
? d(`<circular ref>`, t)
: h(e, t, n)
: a(e)
? n.has(e)
? d(`<circular ref>`, t)
: g(e, t, n)
: typeof e == `function`
? d(`<function>`, t)
: i(e)
? d(`<Promise>`, t)
: e?.constructor?.name
? d(`<${e.constructor.name}>`, t)
: d(`???`, t);
}
function v(e, t) {
return _(e, t, new WeakSet());
}
function y(e, t) {
return g(e, t, new WeakSet());
}
var b = ` `;
function x(e) {
return e.includes(`
`);
}
function S(e, t = b) {
return x(e)
? e
.split(`
`)
.map((e) => `${t}${e}`).join(`
`)
: `${t}${e}`;
}
var C = /'/g;
function w(e) {
return typeof e == `string`
? `'` + e.replace(C, `\\'`) + `'`
: e === void 0
? `undefined`
: JSON.stringify(e);
}
function T(e, t = []) {
let n = [];
if (e.type === `array`) {
let r = e.items,
i = 0;
for (let e of r)
for (let r of T(e, [...t, i++]))
n.push(r);
} else if (e.type === `object`) {
let r = e.fields;
for (let [e, i] of r)
for (let r of T(i, [...t, e]))
n.push(r);
}
let r = e.text;
if (!r) return n;
let i;
return (
(i =
t.length === 0
? ``
: t.length === 1
? typeof t[0] == `number`
? `Value at index ${t[0]}: `
: `Value at key ${/* @__PURE__ */ w(t[0])}: `
: `Value at keypath ${/* @__PURE__ */ w(t.map(String).join(`.`))}: `),
[...n, `${i}${r}`]
);
}
function te(e, t = 80) {
let n = JSON.stringify(e);
if (n.length <= t) return n;
let r = `${e.substring(0, t - 15)}...`;
return ((n = `${JSON.stringify(r)} [truncated]`), n);
}
function ne(e, t) {
let { items: n } = e;
if (n.length === 0) return `[]`;
let r = [];
for (let e of n) {
let [n, i] = O(e, `${t}${b}`);
(r.push(`${t}${b}${n},`),
i !== void 0 &&
r.push( S(i, `${t}${b}`)));
}
return [`[`, ...r, `${t}]`].join(`
`);
}
function E(e, t) {
let { fields: n } = e;
if (n.size === 0) return `{}`;
let r = [];
for (let [e, i] of n) {
let n = D(e),
a = `${t}${b}${` `.repeat(n.length + 2)}`,
[o, s] = O(i, `${t}${b}`);
(r.push(`${t}${b}${n}: ${o},`),
s !== void 0 && r.push( S(s, a)));
}
return [`{`, ...r, `${t}}`].join(`
`);
}
function D(e) {
return typeof e == `string`
? te(e)
: typeof e == `number` ||
typeof e == `boolean` ||
typeof e == `symbol`
? e.toString()
: e === null
? `null`
: e === void 0
? `undefined`
: typeof e == `bigint`
? `${e.toString()}n`
: r(e)
? `new Date(${/* @__PURE__ */ w(e.toISOString())})`
: e instanceof Date
? `(Invalid Date)`
: `(unserializable)`;
}
function O(e, t = ``) {
let n;
n =
e.type === `array`
? ne(e, t)
: e.type === `object`
? E(e, t)
: e.type === `scalar`
? D(e.value)
: e.value;
let r = e.text;
if (r !== void 0) {
let e = `^`.repeat( x(n) ? 1 : n.length);
return [
n,
[e, r].join(
x(r)
? `
`
: ` `,
),
];
}
return [n, void 0];
}
function k(e) {
let [t, n] = O(e);
return n === void 0
? t
: `${t}
${n}`;
}
function* A(e, t) {
switch (
(e.text &&
(t.length > 0
? yield { message: e.text, path: [...t] }
: yield { message: e.text }),
e.type)
) {
case `array`: {
let n = 0;
for (let r of e.items)
(t.push(n++), yield* A(r, t), t.pop());
break;
}
case `object`:
for (let [n, r] of e.fields)
(t.push(n), yield* A(r, t), t.pop());
}
}
function j(e) {
return Array.from(A(e, []));
}
function M(e) {
return { ok: !0, value: e, error: void 0 };
}
function N(e) {
return { ok: !1, value: void 0, error: e };
}
function re(e) {
return (t) => {
try {
return M(e(t));
} catch (e) {
return N(
v(t, e instanceof Error ? e.message : String(e)),
);
}
};
}
function ie(e, t) {
let n = t(e);
if (typeof n == `string`) {
let e = Error(`
${n}`);
return ((e.name = `Decoding error`), e);
}
return n;
}
function P(e) {
function t(t) {
return e(t, M, (e) =>
N(m(e) ? e : v(t, e)),
);
}
function n(e, n = k) {
let r = t(e);
if (r.ok) return r.value;
throw ie(r.error, n);
}
function r(e) {
return t(e).value;
}
function i(e) {
return s(re(e));
}
function a(e, t) {
return l((n) => (e(n) ? null : t));
}
function o() {
return d;
}
function s(e) {
return P((n, r, i) => {
let a = t(n);
if (!a.ok) return a;
let o = R(e) ? e : e(a.value, r, i);
return R(o) ? o.decode(a.value) : o;
});
}
function c(e) {
return s(e);
}
function l(e) {
return s((t, n, r) => {
let i = e(t);
return i === null
? n(t)
: r(typeof i == `string` ? v(t, i) : i);
});
}
function u(e) {
return P((n, r, i) => {
let a = t(n);
return a.ok ? a : i(v(a.error, e));
});
}
let d = L({
verify: n,
value: r,
decode: t,
transform: i,
refine: a,
refineType: o,
reject: l,
describe: u,
chain: s,
pipe: c,
"~standard": {
version: 1,
vendor: `decoders`,
validate: (e) => {
let n = t(e);
return n.ok
? { value: n.value }
: { issues: j(n.error) };
},
},
});
return d;
}
var F = Symbol.for(
`decoders.kDecoderRegistry`,
),
I = (globalThis[F] ??= new WeakSet());
function L(e) {
return (I.add(e), e);
}
function R(e) {
return I.has(e);
}
var z = P((e, t, n) =>
Array.isArray(e) ? t(e) : n(`Must be an array`),
);
function B(e) {
let t = e.decode;
return z.chain((e, n, r) => {
let i = [];
for (let n = 0; n < e.length; ++n) {
let a = e[n],
o = t(a);
if (o.ok) i.push(o.value);
else {
i.length = 0;
let t = o.error,
a = e.slice();
return (
a.splice(
n,
1,
v(
t,
t.text
? `${t.text} (at index ${n})`
: `index ${n}`,
),
),
r(v(a))
);
}
}
return n(i);
});
}
function V(t) {
let n = t.size,
r = n ?? t.min,
i = n ?? t.max,
a = r === i ? `` : `at least `,
o = r === i ? `` : `at most `;
return (t) => {
let n = t.length ?? t.size;
if (typeof t == `string`) {
if (r !== void 0 && n < r)
return `Too short, must be ${a}${/* @__PURE__ */ e(r, `char`)}`;
if (i !== void 0 && n > i)
return `Too long, must be ${o}${/* @__PURE__ */ e(i, `char`)}`;
} else {
if (r !== void 0 && n < r)
return `Must have ${a}${/* @__PURE__ */ e(r, `item`)}`;
if (i !== void 0 && n > i)
return `Must have ${o}${/* @__PURE__ */ e(i, `item`)}`;
}
return null;
};
}
function H(e, t) {
return e.reject( V(t));
}
function U(e, t) {
let n = new Set();
for (let r of e) t.has(r) || n.add(r);
return n;
}
var W = P((e, t, n) =>
a(e) ? t(e) : n(`Must be an object`),
);
function G(e) {
let t = new Set(Object.keys(e));
return W.chain((n, r, i) => {
let a = new Set(Object.keys(n)),
o = U(t, a),
s = {},
c = null;
for (let t of Object.keys(e)) {
let r = e[t],
i = n[t],
a = r.decode(i);
if (a.ok) {
let e = a.value;
(e !== void 0 && (s[t] = e), o.delete(t));
} else {
let e = a.error;
i === void 0
? o.add(t)
: ((c ??= new Map()),
c.set(t, e));
}
}
if (c || o.size > 0) {
let e = y(n);
if ((c && (e = p(e, c)), o.size > 0)) {
let t = Array.from(o).map(w).join(`, `),
n = o.size > 1 ? `keys` : `key`;
e = f(e, `Missing ${n}: ${t}`);
}
return i(e);
}
return r(s);
});
}
function K(e) {
return G(e);
}
var q = `Either:
`;
function J(e) {
return `-${/* @__PURE__ */ S(e).substring(1)}`;
}
function ae(e) {
return e.startsWith(q) ? e.substring(q.length) : J(e);
}
function oe(...e) {
if (e.length === 0)
throw Error(`Pass at least one decoder to either()`);
return P((t, n, r) => {
let i = [];
for (let n of e) {
let e = n.decode(t);
if (e.ok) return e;
i.push(e.error);
}
return r(
q +
i.map((e) =>
ae(
T(e).join(`
`),
),
).join(`
`),
);
});
}
function se(e) {
return P((t, n, r) => {
let i = e.indexOf(t);
return i === -1
? r(
`Must be one of ${e.map((e) => w(e)).join(`, `)}`,
)
: n(e[i]);
});
}
function ce(e) {
return typeof e == `function` ? e() : e;
}
var le = de(null);
function ue(e, t) {
let n = oe(le, e);
return arguments.length >= 2
? n.transform((e) => e ?? ce(t))
: n;
}
function de(e) {
return P((t, n, r) =>
t === e
? n(e)
: r(
`Must be ${typeof e == `symbol` ? String(e) : w(e)}`,
),
);
}
var fe =
/^[A-Za-z]{2,12}(?:[+][A-Za-z]{2,12})?:\/\/(?:[^@]*@)?[A-Za-z0-9.-]+(?::[0-9]{2,5})?(?:\/[-+~%/.,!$&'()*:;=@\w]*(?:\?[-+~%/.,!$&'()*:;=@?\w]*)?)?(?:#[^\s#]*)?$/,
Y = P((e, t, r) =>
n(e) ? t(e) : r(`Must be string`),
);
function pe(e, t) {
return Y.refine((t) => e.test(t), t);
}
var me = pe(fe, `Must be URL`),
X = P((e, t, n) =>
r(e) ? t(e) : n(`Must be a Date`),
),
Z = P((e, n, r) =>
t(e) ? n(e) : r(`Must be number`),
).refine(
(e) => Number.isFinite(e),
`Number must be finite`,
);
function Q(e, t, n = Z) {
return n.reject((n) =>
n < e
? `Too low, must be between ${e} and ${t}`
: n > t
? `Too high, must be between ${e} and ${t}`
: null,
);
}
const $ = K({
id: Z,
created: X,
title: H(Y, { min: 1, max: 100 }),
type: se([`jpg`, `png`]),
size: Z,
url: me,
});
K({
id: Z,
created: X,
title: H(Y, { min: 1, max: 100 }),
brand: H(Y, { min: 1, max: 30 }),
description: H(Y, { min: 1, max: 500 }),
price: Q(1, 1e4),
discount: ue( Q(1, 100)),
quantity: Q(0, 10),
tags: B(
H(Y, { min: 1, max: 30 }),
),
images: B($),
ratings: B(
K({
id: Z,
stars: Q(1, 5),
title: H(Y, { min: 1, max: 100 }),
text: H(Y, { min: 1, max: 1e3 }),
images: B($),
}),
),
}).verify({});
function e(e, t) {
return e === 1 ? `${e} ${t}` : `${e} ${t}s`;
}
function t(e) {
return typeof e == `number`;
}
function n(e) {
return typeof e == `string`;
}
function r(e) {
return (
!!e && Object.prototype.toString.call(e) === `[object Date]` && !isNaN(e)
);
}
function i(e) {
return (
typeof e == `object` && !!e && `then` in e && typeof e.then == `function`
);
}
function a(e) {
return (
typeof e == `object` &&
!!e &&
Object.prototype.toString.call(e) === `[object Object]`
);
}
var o = Symbol.for(`decoders.kAnnotationRegistry`),
s = (globalThis[o] ??= new WeakSet());
function c(e) {
return (s.add(e), e);
}
function l(e, t) {
return c({ type: `object`, fields: e, text: t });
}
function u(e, t) {
return c({ type: `array`, items: e, text: t });
}
function d(e, t) {
return c({ type: `opaque`, value: e, text: t });
}
function ee(e, t) {
return c({ type: `scalar`, value: e, text: t });
}
function f(e, t) {
return t === void 0 ? e : c({ ...e, text: t });
}
function p(e, t) {
return l(new Map([...e.fields, ...t]), e.text);
}
function m(e) {
return s.has(e);
}
function h(e, t, n) {
n.add(e);
let r = [];
for (let t of e) r.push(_(t, void 0, n));
return u(r, t);
}
function g(e, t, n) {
n.add(e);
let r = new Map();
for (let t of Object.keys(e)) {
let i = e[t];
r.set(t, _(i, void 0, n));
}
return l(r, t);
}
function _(e, t, n) {
return e == null ||
typeof e == `string` ||
typeof e == `number` ||
typeof e == `boolean` ||
typeof e == `symbol` ||
typeof e == `bigint` ||
typeof e.getMonth == `function`
? ee(e, t)
: m(e)
? f(e, t)
: Array.isArray(e)
? n.has(e)
? d(`<circular ref>`, t)
: h(e, t, n)
: a(e)
? n.has(e)
? d(`<circular ref>`, t)
: g(e, t, n)
: typeof e == `function`
? d(`<function>`, t)
: i(e)
? d(`<Promise>`, t)
: e?.constructor?.name
? d(`<${e.constructor.name}>`, t)
: d(`???`, t);
}
function v(e, t) {
return _(e, t, new WeakSet());
}
function y(e, t) {
return g(e, t, new WeakSet());
}
var b = ` `;
function x(e) {
return e.includes(`
`);
}
function S(e, t = b) {
return x(e)
? e
.split(`
`)
.map((e) => `${t}${e}`).join(`
`)
: `${t}${e}`;
}
var C = /'/g;
function w(e) {
return typeof e == `string`
? `'` + e.replace(C, `\\'`) + `'`
: e === void 0
? `undefined`
: JSON.stringify(e);
}
function T(e, t = []) {
let n = [];
if (e.type === `array`) {
let r = e.items,
i = 0;
for (let e of r) for (let r of T(e, [...t, i++])) n.push(r);
} else if (e.type === `object`) {
let r = e.fields;
for (let [e, i] of r)
for (let r of T(i, [...t, e])) n.push(r);
}
let r = e.text;
if (!r) return n;
let i;
return (
(i =
t.length === 0
? ``
: t.length === 1
? typeof t[0] == `number`
? `Value at index ${t[0]}: `
: `Value at key ${/* @__PURE__ */ w(t[0])}: `
: `Value at keypath ${/* @__PURE__ */ w(t.map(String).join(`.`))}: `),
[...n, `${i}${r}`]
);
}
function te(e, t = 80) {
let n = JSON.stringify(e);
if (n.length <= t) return n;
let r = `${e.substring(0, t - 15)}...`;
return ((n = `${JSON.stringify(r)} [truncated]`), n);
}
function ne(e, t) {
let { items: n } = e;
if (n.length === 0) return `[]`;
let r = [];
for (let e of n) {
let [n, i] = O(e, `${t}${b}`);
(r.push(`${t}${b}${n},`),
i !== void 0 && r.push( S(i, `${t}${b}`)));
}
return [`[`, ...r, `${t}]`].join(`
`);
}
function E(e, t) {
let { fields: n } = e;
if (n.size === 0) return `{}`;
let r = [];
for (let [e, i] of n) {
let n = D(e),
a = `${t}${b}${` `.repeat(n.length + 2)}`,
[o, s] = O(i, `${t}${b}`);
(r.push(`${t}${b}${n}: ${o},`),
s !== void 0 && r.push( S(s, a)));
}
return [`{`, ...r, `${t}}`].join(`
`);
}
function D(e) {
return typeof e == `string`
? te(e)
: typeof e == `number` || typeof e == `boolean` || typeof e == `symbol`
? e.toString()
: e === null
? `null`
: e === void 0
? `undefined`
: typeof e == `bigint`
? `${e.toString()}n`
: r(e)
? `new Date(${/* @__PURE__ */ w(e.toISOString())})`
: e instanceof Date
? `(Invalid Date)`
: `(unserializable)`;
}
function O(e, t = ``) {
let n;
n =
e.type === `array`
? ne(e, t)
: e.type === `object`
? E(e, t)
: e.type === `scalar`
? D(e.value)
: e.value;
let r = e.text;
if (r !== void 0) {
let e = `^`.repeat( x(n) ? 1 : n.length);
return [
n,
[e, r].join(
x(r)
? `
`
: ` `,
),
];
}
return [n, void 0];
}
function k(e) {
let [t, n] = O(e);
return n === void 0
? t
: `${t}
${n}`;
}
function* A(e, t) {
switch (
(e.text &&
(t.length > 0
? yield { message: e.text, path: [...t] }
: yield { message: e.text }),
e.type)
) {
case `array`: {
let n = 0;
for (let r of e.items) (t.push(n++), yield* A(r, t), t.pop());
break;
}
case `object`:
for (let [n, r] of e.fields) (t.push(n), yield* A(r, t), t.pop());
}
}
function j(e) {
return Array.from(A(e, []));
}
function M(e) {
return { ok: !0, value: e, error: void 0 };
}
function N(e) {
return { ok: !1, value: void 0, error: e };
}
function re(e) {
return (t) => {
try {
return M(e(t));
} catch (e) {
return N(
v(t, e instanceof Error ? e.message : String(e)),
);
}
};
}
function ie(e, t) {
let n = t(e);
if (typeof n == `string`) {
let e = Error(`
${n}`);
return ((e.name = `Decoding error`), e);
}
return n;
}
function P(e) {
function t(t) {
return e(t, M, (e) => N(m(e) ? e : v(t, e)));
}
function n(e, n = k) {
let r = t(e);
if (r.ok) return r.value;
throw ie(r.error, n);
}
function r(e) {
return t(e).value;
}
function i(e) {
return s(re(e));
}
function a(e, t) {
return l((n) => (e(n) ? null : t));
}
function o() {
return d;
}
function s(e) {
return P((n, r, i) => {
let a = t(n);
if (!a.ok) return a;
let o = R(e) ? e : e(a.value, r, i);
return R(o) ? o.decode(a.value) : o;
});
}
function c(e) {
return s(e);
}
function l(e) {
return s((t, n, r) => {
let i = e(t);
return i === null ? n(t) : r(typeof i == `string` ? v(t, i) : i);
});
}
function u(e) {
return P((n, r, i) => {
let a = t(n);
return a.ok ? a : i(v(a.error, e));
});
}
let d = L({
verify: n,
value: r,
decode: t,
transform: i,
refine: a,
refineType: o,
reject: l,
describe: u,
chain: s,
pipe: c,
"~standard": {
version: 1,
vendor: `decoders`,
validate: (e) => {
let n = t(e);
return n.ok ? { value: n.value } : { issues: j(n.error) };
},
},
});
return d;
}
var F = Symbol.for(`decoders.kDecoderRegistry`),
I = (globalThis[F] ??= new WeakSet());
function L(e) {
return (I.add(e), e);
}
function R(e) {
return I.has(e);
}
var z = P((e, t, n) =>
Array.isArray(e) ? t(e) : n(`Must be an array`),
);
function B(e) {
let t = e.decode;
return z.chain((e, n, r) => {
let i = [];
for (let n = 0; n < e.length; ++n) {
let a = e[n],
o = t(a);
if (o.ok) i.push(o.value);
else {
i.length = 0;
let t = o.error,
a = e.slice();
return (
a.splice(
n,
1,
v(t, t.text ? `${t.text} (at index ${n})` : `index ${n}`),
),
r(v(a))
);
}
}
return n(i);
});
}
function V(t) {
let n = t.size,
r = n ?? t.min,
i = n ?? t.max,
a = r === i ? `` : `at least `,
o = r === i ? `` : `at most `;
return (t) => {
let n = t.length ?? t.size;
if (typeof t == `string`) {
if (r !== void 0 && n < r)
return `Too short, must be ${a}${/* @__PURE__ */ e(r, `char`)}`;
if (i !== void 0 && n > i)
return `Too long, must be ${o}${/* @__PURE__ */ e(i, `char`)}`;
} else {
if (r !== void 0 && n < r)
return `Must have ${a}${/* @__PURE__ */ e(r, `item`)}`;
if (i !== void 0 && n > i)
return `Must have ${o}${/* @__PURE__ */ e(i, `item`)}`;
}
return null;
};
}
function H(e, t) {
return e.reject( V(t));
}
function U(e, t) {
let n = new Set();
for (let r of e) t.has(r) || n.add(r);
return n;
}
var W = P((e, t, n) =>
a(e) ? t(e) : n(`Must be an object`),
);
function G(e) {
let t = new Set(Object.keys(e));
return W.chain((n, r, i) => {
let a = new Set(Object.keys(n)),
o = U(t, a),
s = {},
c = null;
for (let t of Object.keys(e)) {
let r = e[t],
i = n[t],
a = r.decode(i);
if (a.ok) {
let e = a.value;
(e !== void 0 && (s[t] = e), o.delete(t));
} else {
let e = a.error;
i === void 0
? o.add(t)
: ((c ??= new Map()), c.set(t, e));
}
}
if (c || o.size > 0) {
let e = y(n);
if ((c && (e = p(e, c)), o.size > 0)) {
let t = Array.from(o).map(w).join(`, `),
n = o.size > 1 ? `keys` : `key`;
e = f(e, `Missing ${n}: ${t}`);
}
return i(e);
}
return r(s);
});
}
function K(e) {
return G(e);
}
var q = `Either:
`;
function J(e) {
return `-${/* @__PURE__ */ S(e).substring(1)}`;
}
function ae(e) {
return e.startsWith(q) ? e.substring(q.length) : J(e);
}
function oe(...e) {
if (e.length === 0) throw Error(`Pass at least one decoder to either()`);
return P((t, n, r) => {
let i = [];
for (let n of e) {
let e = n.decode(t);
if (e.ok) return e;
i.push(e.error);
}
return r(
q +
i.map((e) =>
ae(
T(e).join(`
`),
),
).join(`
`),
);
});
}
function se(e) {
return P((t, n, r) => {
let i = e.indexOf(t);
return i === -1
? r(`Must be one of ${e.map((e) => w(e)).join(`, `)}`)
: n(e[i]);
});
}
function ce(e) {
return typeof e == `function` ? e() : e;
}
var le = de(null);
function ue(e, t) {
let n = oe(le, e);
return arguments.length >= 2 ? n.transform((e) => e ?? ce(t)) : n;
}
function de(e) {
return P((t, n, r) =>
t === e
? n(e)
: r(`Must be ${typeof e == `symbol` ? String(e) : w(e)}`),
);
}
var fe =
/^[A-Za-z]{2,12}(?:[+][A-Za-z]{2,12})?:\/\/(?:[^@]*@)?[A-Za-z0-9.-]+(?::[0-9]{2,5})?(?:\/[-+~%/.,!$&'()*:;=@\w]*(?:\?[-+~%/.,!$&'()*:;=@?\w]*)?)?(?:#[^\s#]*)?$/,
Y = P((e, t, r) =>
n(e) ? t(e) : r(`Must be string`),
);
function pe(e, t) {
return Y.refine((t) => e.test(t), t);
}
var me = pe(fe, `Must be URL`),
X = P((e, t, n) =>
r(e) ? t(e) : n(`Must be a Date`),
),
Z = P((e, n, r) =>
t(e) ? n(e) : r(`Must be number`),
).refine((e) => Number.isFinite(e), `Number must be finite`);
function Q(e, t, n = Z) {
return n.reject((n) =>
n < e
? `Too low, must be between ${e} and ${t}`
: n > t
? `Too high, must be between ${e} and ${t}`
: null,
);
}
const $ = K({
id: Z,
created: X,
title: H(Y, { min: 1, max: 100 }),
type: se([`jpg`, `png`]),
size: Z,
url: me,
});
K({
id: Z,
created: X,
title: H(Y, { min: 1, max: 100 }),
brand: H(Y, { min: 1, max: 30 }),
description: H(Y, { min: 1, max: 500 }),
price: Q(1, 1e4),
discount: ue( Q(1, 100)),
quantity: Q(0, 10),
tags: B( H(Y, { min: 1, max: 30 })),
images: B($),
ratings: B(
K({
id: Z,
stars: Q(1, 5),
title: H(Y, { min: 1, max: 100 }),
text: H(Y, { min: 1, max: 1e3 }),
images: B($),
}),
),
}).verify({});
function e(e, t) {
return e === 1 ? `${e} ${t}` : `${e} ${t}s`;
}
function t(e) {
return typeof e == `number`;
}
function n(e) {
return typeof e == `string`;
}
function r(e) {
return !!e && Object.prototype.toString.call(e) === `[object Date]` && !isNaN(e);
}
function i(e) {
return typeof e == `object` && !!e && `then` in e && typeof e.then == `function`;
}
function a(e) {
return typeof e == `object` && !!e && Object.prototype.toString.call(e) === `[object Object]`;
}
var o = Symbol.for(`decoders.kAnnotationRegistry`),
s = (globalThis[o] ??= new WeakSet());
function c(e) {
return (s.add(e), e);
}
function l(e, t) {
return c({ type: `object`, fields: e, text: t });
}
function u(e, t) {
return c({ type: `array`, items: e, text: t });
}
function d(e, t) {
return c({ type: `opaque`, value: e, text: t });
}
function ee(e, t) {
return c({ type: `scalar`, value: e, text: t });
}
function f(e, t) {
return t === void 0 ? e : c({ ...e, text: t });
}
function p(e, t) {
return l(new Map([...e.fields, ...t]), e.text);
}
function m(e) {
return s.has(e);
}
function h(e, t, n) {
n.add(e);
let r = [];
for (let t of e) r.push(_(t, void 0, n));
return u(r, t);
}
function g(e, t, n) {
n.add(e);
let r = new Map();
for (let t of Object.keys(e)) {
let i = e[t];
r.set(t, _(i, void 0, n));
}
return l(r, t);
}
function _(e, t, n) {
return e == null ||
typeof e == `string` ||
typeof e == `number` ||
typeof e == `boolean` ||
typeof e == `symbol` ||
typeof e == `bigint` ||
typeof e.getMonth == `function`
? ee(e, t)
: m(e)
? f(e, t)
: Array.isArray(e)
? n.has(e)
? d(`<circular ref>`, t)
: h(e, t, n)
: a(e)
? n.has(e)
? d(`<circular ref>`, t)
: g(e, t, n)
: typeof e == `function`
? d(`<function>`, t)
: i(e)
? d(`<Promise>`, t)
: e?.constructor?.name
? d(`<${e.constructor.name}>`, t)
: d(`???`, t);
}
function v(e, t) {
return _(e, t, new WeakSet());
}
function y(e, t) {
return g(e, t, new WeakSet());
}
var b = ` `;
function x(e) {
return e.includes(`
`);
}
function S(e, t = b) {
return x(e)
? e
.split(`
`)
.map((e) => `${t}${e}`).join(`
`)
: `${t}${e}`;
}
var C = /'/g;
function w(e) {
return typeof e == `string`
? `'` + e.replace(C, `\\'`) + `'`
: e === void 0
? `undefined`
: JSON.stringify(e);
}
function T(e, t = []) {
let n = [];
if (e.type === `array`) {
let r = e.items,
i = 0;
for (let e of r) for (let r of T(e, [...t, i++])) n.push(r);
} else if (e.type === `object`) {
let r = e.fields;
for (let [e, i] of r) for (let r of T(i, [...t, e])) n.push(r);
}
let r = e.text;
if (!r) return n;
let i;
return (
(i =
t.length === 0
? ``
: t.length === 1
? typeof t[0] == `number`
? `Value at index ${t[0]}: `
: `Value at key ${/* @__PURE__ */ w(t[0])}: `
: `Value at keypath ${/* @__PURE__ */ w(t.map(String).join(`.`))}: `),
[...n, `${i}${r}`]
);
}
function te(e, t = 80) {
let n = JSON.stringify(e);
if (n.length <= t) return n;
let r = `${e.substring(0, t - 15)}...`;
return ((n = `${JSON.stringify(r)} [truncated]`), n);
}
function ne(e, t) {
let { items: n } = e;
if (n.length === 0) return `[]`;
let r = [];
for (let e of n) {
let [n, i] = O(e, `${t}${b}`);
(r.push(`${t}${b}${n},`), i !== void 0 && r.push( S(i, `${t}${b}`)));
}
return [`[`, ...r, `${t}]`].join(`
`);
}
function E(e, t) {
let { fields: n } = e;
if (n.size === 0) return `{}`;
let r = [];
for (let [e, i] of n) {
let n = D(e),
a = `${t}${b}${` `.repeat(n.length + 2)}`,
[o, s] = O(i, `${t}${b}`);
(r.push(`${t}${b}${n}: ${o},`), s !== void 0 && r.push( S(s, a)));
}
return [`{`, ...r, `${t}}`].join(`
`);
}
function D(e) {
return typeof e == `string`
? te(e)
: typeof e == `number` || typeof e == `boolean` || typeof e == `symbol`
? e.toString()
: e === null
? `null`
: e === void 0
? `undefined`
: typeof e == `bigint`
? `${e.toString()}n`
: r(e)
? `new Date(${/* @__PURE__ */ w(e.toISOString())})`
: e instanceof Date
? `(Invalid Date)`
: `(unserializable)`;
}
function O(e, t = ``) {
let n;
n =
e.type === `array`
? ne(e, t)
: e.type === `object`
? E(e, t)
: e.type === `scalar`
? D(e.value)
: e.value;
let r = e.text;
if (r !== void 0) {
let e = `^`.repeat( x(n) ? 1 : n.length);
return [
n,
[e, r].join(
x(r)
? `
`
: ` `,
),
];
}
return [n, void 0];
}
function k(e) {
let [t, n] = O(e);
return n === void 0
? t
: `${t}
${n}`;
}
function* A(e, t) {
switch (
(e.text && (t.length > 0 ? yield { message: e.text, path: [...t] } : yield { message: e.text }),
e.type)
) {
case `array`: {
let n = 0;
for (let r of e.items) (t.push(n++), yield* A(r, t), t.pop());
break;
}
case `object`:
for (let [n, r] of e.fields) (t.push(n), yield* A(r, t), t.pop());
}
}
function j(e) {
return Array.from(A(e, []));
}
function M(e) {
return { ok: !0, value: e, error: void 0 };
}
function N(e) {
return { ok: !1, value: void 0, error: e };
}
function re(e) {
return (t) => {
try {
return M(e(t));
} catch (e) {
return N(v(t, e instanceof Error ? e.message : String(e)));
}
};
}
function ie(e, t) {
let n = t(e);
if (typeof n == `string`) {
let e = Error(`
${n}`);
return ((e.name = `Decoding error`), e);
}
return n;
}
function P(e) {
function t(t) {
return e(t, M, (e) => N(m(e) ? e : v(t, e)));
}
function n(e, n = k) {
let r = t(e);
if (r.ok) return r.value;
throw ie(r.error, n);
}
function r(e) {
return t(e).value;
}
function i(e) {
return s(re(e));
}
function a(e, t) {
return l((n) => (e(n) ? null : t));
}
function o() {
return d;
}
function s(e) {
return P((n, r, i) => {
let a = t(n);
if (!a.ok) return a;
let o = R(e) ? e : e(a.value, r, i);
return R(o) ? o.decode(a.value) : o;
});
}
function c(e) {
return s(e);
}
function l(e) {
return s((t, n, r) => {
let i = e(t);
return i === null ? n(t) : r(typeof i == `string` ? v(t, i) : i);
});
}
function u(e) {
return P((n, r, i) => {
let a = t(n);
return a.ok ? a : i(v(a.error, e));
});
}
let d = L({
verify: n,
value: r,
decode: t,
transform: i,
refine: a,
refineType: o,
reject: l,
describe: u,
chain: s,
pipe: c,
"~standard": {
version: 1,
vendor: `decoders`,
validate: (e) => {
let n = t(e);
return n.ok ? { value: n.value } : { issues: j(n.error) };
},
},
});
return d;
}
var F = Symbol.for(`decoders.kDecoderRegistry`),
I = (globalThis[F] ??= new WeakSet());
function L(e) {
return (I.add(e), e);
}
function R(e) {
return I.has(e);
}
var z = P((e, t, n) => (Array.isArray(e) ? t(e) : n(`Must be an array`)));
function B(e) {
let t = e.decode;
return z.chain((e, n, r) => {
let i = [];
for (let n = 0; n < e.length; ++n) {
let a = e[n],
o = t(a);
if (o.ok) i.push(o.value);
else {
i.length = 0;
let t = o.error,
a = e.slice();
return (a.splice(n, 1, v(t, t.text ? `${t.text} (at index ${n})` : `index ${n}`)), r(v(a)));
}
}
return n(i);
});
}
function V(t) {
let n = t.size,
r = n ?? t.min,
i = n ?? t.max,
a = r === i ? `` : `at least `,
o = r === i ? `` : `at most `;
return (t) => {
let n = t.length ?? t.size;
if (typeof t == `string`) {
if (r !== void 0 && n < r) return `Too short, must be ${a}${/* @__PURE__ */ e(r, `char`)}`;
if (i !== void 0 && n > i) return `Too long, must be ${o}${/* @__PURE__ */ e(i, `char`)}`;
} else {
if (r !== void 0 && n < r) return `Must have ${a}${/* @__PURE__ */ e(r, `item`)}`;
if (i !== void 0 && n > i) return `Must have ${o}${/* @__PURE__ */ e(i, `item`)}`;
}
return null;
};
}
function H(e, t) {
return e.reject( V(t));
}
function U(e, t) {
let n = new Set();
for (let r of e) t.has(r) || n.add(r);
return n;
}
var W = P((e, t, n) => ( a(e) ? t(e) : n(`Must be an object`)));
function G(e) {
let t = new Set(Object.keys(e));
return W.chain((n, r, i) => {
let a = new Set(Object.keys(n)),
o = U(t, a),
s = {},
c = null;
for (let t of Object.keys(e)) {
let r = e[t],
i = n[t],
a = r.decode(i);
if (a.ok) {
let e = a.value;
(e !== void 0 && (s[t] = e), o.delete(t));
} else {
let e = a.error;
i === void 0 ? o.add(t) : ((c ??= new Map()), c.set(t, e));
}
}
if (c || o.size > 0) {
let e = y(n);
if ((c && (e = p(e, c)), o.size > 0)) {
let t = Array.from(o).map(w).join(`, `),
n = o.size > 1 ? `keys` : `key`;
e = f(e, `Missing ${n}: ${t}`);
}
return i(e);
}
return r(s);
});
}
function K(e) {
return G(e);
}
var q = `Either:
`;
function J(e) {
return `-${/* @__PURE__ */ S(e).substring(1)}`;
}
function ae(e) {
return e.startsWith(q) ? e.substring(q.length) : J(e);
}
function oe(...e) {
if (e.length === 0) throw Error(`Pass at least one decoder to either()`);
return P((t, n, r) => {
let i = [];
for (let n of e) {
let e = n.decode(t);
if (e.ok) return e;
i.push(e.error);
}
return r(
q +
i.map((e) =>
ae(
T(e).join(`
`),
),
).join(`
`),
);
});
}
function se(e) {
return P((t, n, r) => {
let i = e.indexOf(t);
return i === -1
? r(`Must be one of ${e.map((e) => w(e)).join(`, `)}`)
: n(e[i]);
});
}
function ce(e) {
return typeof e == `function` ? e() : e;
}
var le = de(null);
function ue(e, t) {
let n = oe(le, e);
return arguments.length >= 2 ? n.transform((e) => e ?? ce(t)) : n;
}
function de(e) {
return P((t, n, r) =>
t === e ? n(e) : r(`Must be ${typeof e == `symbol` ? String(e) : w(e)}`),
);
}
var fe =
/^[A-Za-z]{2,12}(?:[+][A-Za-z]{2,12})?:\/\/(?:[^@]*@)?[A-Za-z0-9.-]+(?::[0-9]{2,5})?(?:\/[-+~%/.,!$&'()*:;=@\w]*(?:\?[-+~%/.,!$&'()*:;=@?\w]*)?)?(?:#[^\s#]*)?$/,
Y = P((e, t, r) => ( n(e) ? t(e) : r(`Must be string`)));
function pe(e, t) {
return Y.refine((t) => e.test(t), t);
}
var me = pe(fe, `Must be URL`),
X = P((e, t, n) => ( r(e) ? t(e) : n(`Must be a Date`))),
Z = P((e, n, r) =>
t(e) ? n(e) : r(`Must be number`),
).refine((e) => Number.isFinite(e), `Number must be finite`);
function Q(e, t, n = Z) {
return n.reject((n) =>
n < e
? `Too low, must be between ${e} and ${t}`
: n > t
? `Too high, must be between ${e} and ${t}`
: null,
);
}
const $ = K({
id: Z,
created: X,
title: H(Y, { min: 1, max: 100 }),
type: se([`jpg`, `png`]),
size: Z,
url: me,
});
K({
id: Z,
created: X,
title: H(Y, { min: 1, max: 100 }),
brand: H(Y, { min: 1, max: 30 }),
description: H(Y, { min: 1, max: 500 }),
price: Q(1, 1e4),
discount: ue( Q(1, 100)),
quantity: Q(0, 10),
tags: B( H(Y, { min: 1, max: 30 })),
images: B($),
ratings: B(
K({
id: Z,
stars: Q(1, 5),
title: H(Y, { min: 1, max: 100 }),
text: H(Y, { min: 1, max: 1e3 }),
images: B($),
}),
),
}).verify({});