schemas/libraries/valibot/download_compiled/index/unminified.js
schemas/libraries/valibot/download_compiled/index/unminified.js
schemas/libraries/valibot/download_compiled/index/unminified.js
schemas/libraries/valibot/download_compiled/index/unminified.js
const DEFAULT_CONFIG = {
lang: void 0,
message: void 0,
abortEarly: void 0,
abortPipeEarly: void 0,
};
function getGlobalConfig(config$1) {
if (!config$1 && true)
return DEFAULT_CONFIG;
return {
lang: config$1?.lang ?? void 0,
message: config$1?.message,
abortEarly:
config$1?.abortEarly ?? void 0,
abortPipeEarly:
config$1?.abortPipeEarly ??
void 0,
};
}
function _stringify(input) {
const type = typeof input;
if (type === "string")
return `"${input}"`;
if (
type === "number" ||
type === "bigint" ||
type === "boolean"
)
return `${input}`;
if (
type === "object" ||
type === "function"
)
return (
(input &&
Object.getPrototypeOf(input)
?.constructor?.name) ??
"null"
);
return type;
}
function _addIssue(
context,
label,
dataset,
config$1,
other,
) {
const input =
other && "input" in other
? other.input
: dataset.value;
const expected =
other?.expected ??
context.expects ??
null;
const received =
other?.received ??
_stringify(input);
const issue = {
kind: context.kind,
type: context.type,
input,
expected,
received,
message: `Invalid ${label}: ${expected ? `Expected ${expected} but r` : "R"}eceived ${received}`,
requirement: context.requirement,
path: other?.path,
issues: other?.issues,
lang: config$1.lang,
abortEarly: config$1.abortEarly,
abortPipeEarly:
config$1.abortPipeEarly,
};
const isSchema =
context.kind === "schema";
const message$1 =
other?.message ??
context.message ??
(context.reference,
issue.lang,
void 0) ??
(isSchema
? (issue.lang, void 0)
: null) ??
config$1.message ??
(issue.lang, void 0);
if (message$1 !== void 0)
issue.message =
typeof message$1 === "function"
? message$1(issue)
: message$1;
if (isSchema) dataset.typed = false;
if (dataset.issues)
dataset.issues.push(issue);
else dataset.issues = [issue];
}
function _joinExpects(
values$1,
separator,
) {
const list = [...new Set(values$1)];
if (list.length > 1)
return `(${list.join(` ${separator} `)})`;
return list[0] ?? "never";
}
function _standardSchema(schema) {
schema["~standard"] = {
version: 1,
vendor: "valibot",
validate: (value$1) =>
schema["~run"](
{ value: value$1 },
getGlobalConfig(),
),
};
return schema;
}
var ValiError = class extends Error {
constructor(issues) {
super(issues[0].message);
this.name = "ValiError";
this.issues = issues;
}
};
function maxLength(
requirement,
message$1,
) {
return {
kind: "validation",
type: "max_length",
reference: maxLength,
async: false,
expects: `<=${requirement}`,
requirement,
message: message$1,
"~run"(dataset, config$1) {
if (
dataset.typed &&
dataset.value.length >
this.requirement
)
_addIssue(
this,
"length",
dataset,
config$1,
{
received: `${dataset.value.length}`,
},
);
return dataset;
},
};
}
function maxValue(
requirement,
message$1,
) {
return {
kind: "validation",
type: "max_value",
reference: maxValue,
async: false,
expects: `<=${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`,
requirement,
message: message$1,
"~run"(dataset, config$1) {
if (
dataset.typed &&
!(
dataset.value <=
this.requirement
)
)
_addIssue(
this,
"value",
dataset,
config$1,
{
received:
dataset.value instanceof
Date
? dataset.value.toJSON()
: _stringify(
dataset.value,
),
},
);
return dataset;
},
};
}
function minLength(
requirement,
message$1,
) {
return {
kind: "validation",
type: "min_length",
reference: minLength,
async: false,
expects: `>=${requirement}`,
requirement,
message: message$1,
"~run"(dataset, config$1) {
if (
dataset.typed &&
dataset.value.length <
this.requirement
)
_addIssue(
this,
"length",
dataset,
config$1,
{
received: `${dataset.value.length}`,
},
);
return dataset;
},
};
}
function minValue(
requirement,
message$1,
) {
return {
kind: "validation",
type: "min_value",
reference: minValue,
async: false,
expects: `>=${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`,
requirement,
message: message$1,
"~run"(dataset, config$1) {
if (
dataset.typed &&
!(
dataset.value >=
this.requirement
)
)
_addIssue(
this,
"value",
dataset,
config$1,
{
received:
dataset.value instanceof
Date
? dataset.value.toJSON()
: _stringify(
dataset.value,
),
},
);
return dataset;
},
};
}
function url(message$1) {
return {
kind: "validation",
type: "url",
reference: url,
async: false,
expects: null,
requirement(input) {
try {
if (URL.canParse)
return URL.canParse(input);
new URL(input);
return true;
} catch {
return false;
}
},
message: message$1,
"~run"(dataset, config$1) {
if (
dataset.typed &&
!this.requirement(dataset.value)
)
_addIssue(
this,
"URL",
dataset,
config$1,
);
return dataset;
},
};
}
function getFallback(
schema,
dataset,
config$1,
) {
return typeof schema.fallback ===
"function"
? schema.fallback(dataset, config$1)
: schema.fallback;
}
function getDefault(
schema,
dataset,
config$1,
) {
return typeof schema.default ===
"function"
? schema.default(dataset, config$1)
: schema.default;
}
function array(item, message$1) {
return _standardSchema({
kind: "schema",
type: "array",
reference: array,
expects: "Array",
async: false,
item,
message: message$1,
"~run"(dataset, config$1) {
const input = dataset.value;
if (Array.isArray(input)) {
dataset.typed = true;
dataset.value = [];
for (
let key = 0;
key < input.length;
key++
) {
const value$1 = input[key];
const itemDataset = this.item[
"~run"
](
{ value: value$1 },
config$1,
);
if (itemDataset.issues) {
const pathItem = {
type: "array",
origin: "value",
input,
key,
value: value$1,
};
for (const issue of itemDataset.issues) {
if (issue.path)
issue.path.unshift(
pathItem,
);
else
issue.path = [pathItem];
dataset.issues?.push(
issue,
);
}
if (!dataset.issues)
dataset.issues =
itemDataset.issues;
if (config$1.abortEarly) {
dataset.typed = false;
break;
}
}
if (!itemDataset.typed)
dataset.typed = false;
dataset.value.push(
itemDataset.value,
);
}
} else
_addIssue(
this,
"type",
dataset,
config$1,
);
return dataset;
},
});
}
function date(message$1) {
return _standardSchema({
kind: "schema",
type: "date",
reference: date,
expects: "Date",
async: false,
message: message$1,
"~run"(dataset, config$1) {
if (dataset.value instanceof Date)
if (!isNaN(dataset.value))
dataset.typed = true;
else
_addIssue(
this,
"type",
dataset,
config$1,
{
received:
'"Invalid Date"',
},
);
else
_addIssue(
this,
"type",
dataset,
config$1,
);
return dataset;
},
});
}
function nullable(wrapped, default_) {
return _standardSchema({
kind: "schema",
type: "nullable",
reference: nullable,
expects: `(${wrapped.expects} | null)`,
async: false,
wrapped,
default: default_,
"~run"(dataset, config$1) {
if (dataset.value === null) {
if (this.default !== void 0)
dataset.value =
getDefault(
this,
dataset,
config$1,
);
if (dataset.value === null) {
dataset.typed = true;
return dataset;
}
}
return this.wrapped["~run"](
dataset,
config$1,
);
},
});
}
function number(message$1) {
return _standardSchema({
kind: "schema",
type: "number",
reference: number,
expects: "number",
async: false,
message: message$1,
"~run"(dataset, config$1) {
if (
typeof dataset.value ===
"number" &&
!isNaN(dataset.value)
)
dataset.typed = true;
else
_addIssue(
this,
"type",
dataset,
config$1,
);
return dataset;
},
});
}
function object(entries$1, message$1) {
return _standardSchema({
kind: "schema",
type: "object",
reference: object,
expects: "Object",
async: false,
entries: entries$1,
message: message$1,
"~run"(dataset, config$1) {
const input = dataset.value;
if (
input &&
typeof input === "object"
) {
dataset.typed = true;
dataset.value = {};
for (const key in this
.entries) {
const valueSchema =
this.entries[key];
if (
key in input ||
((valueSchema.type ===
"exact_optional" ||
valueSchema.type ===
"optional" ||
valueSchema.type ===
"nullish") &&
valueSchema.default !==
void 0)
) {
const value$1 =
key in input
? input[key]
: getDefault(
valueSchema,
);
const valueDataset =
valueSchema["~run"](
{ value: value$1 },
config$1,
);
if (valueDataset.issues) {
const pathItem = {
type: "object",
origin: "value",
input,
key,
value: value$1,
};
for (const issue of valueDataset.issues) {
if (issue.path)
issue.path.unshift(
pathItem,
);
else
issue.path = [
pathItem,
];
dataset.issues?.push(
issue,
);
}
if (!dataset.issues)
dataset.issues =
valueDataset.issues;
if (config$1.abortEarly) {
dataset.typed = false;
break;
}
}
if (!valueDataset.typed)
dataset.typed = false;
dataset.value[key] =
valueDataset.value;
} else if (
valueSchema.fallback !==
void 0
)
dataset.value[key] =
getFallback(
valueSchema,
);
else if (
valueSchema.type !==
"exact_optional" &&
valueSchema.type !==
"optional" &&
valueSchema.type !==
"nullish"
) {
_addIssue(
this,
"key",
dataset,
config$1,
{
input: void 0,
expected: `"${key}"`,
path: [
{
type: "object",
origin: "key",
input,
key,
value: input[key],
},
],
},
);
if (config$1.abortEarly)
break;
}
}
} else
_addIssue(
this,
"type",
dataset,
config$1,
);
return dataset;
},
});
}
function picklist(options, message$1) {
return _standardSchema({
kind: "schema",
type: "picklist",
reference: picklist,
expects:
_joinExpects(
options.map(_stringify),
"|",
),
async: false,
options,
message: message$1,
"~run"(dataset, config$1) {
if (
this.options.includes(
dataset.value,
)
)
dataset.typed = true;
else
_addIssue(
this,
"type",
dataset,
config$1,
);
return dataset;
},
});
}
function string(message$1) {
return _standardSchema({
kind: "schema",
type: "string",
reference: string,
expects: "string",
async: false,
message: message$1,
"~run"(dataset, config$1) {
if (
typeof dataset.value ===
"string"
)
dataset.typed = true;
else
_addIssue(
this,
"type",
dataset,
config$1,
);
return dataset;
},
});
}
function parse(
schema,
input,
config$1,
) {
const dataset = schema["~run"](
{ value: input },
getGlobalConfig(
config$1,
),
);
if (dataset.issues)
throw new ValiError(dataset.issues);
return dataset.value;
}
function pipe(...pipe$1) {
return _standardSchema({
...pipe$1[0],
pipe: pipe$1,
"~run"(dataset, config$1) {
for (const item of pipe$1)
if (item.kind !== "metadata") {
if (
dataset.issues &&
(item.kind === "schema" ||
item.kind ===
"transformation")
) {
dataset.typed = false;
break;
}
if (
!dataset.issues ||
(!config$1.abortEarly &&
!config$1.abortPipeEarly)
)
dataset = item["~run"](
dataset,
config$1,
);
}
return dataset;
},
});
}
const imageSchema =
object({
id: number(),
created: date(),
title: pipe(
string(),
minLength(1),
maxLength(100),
),
type: picklist([
"jpg",
"png",
]),
size: number(),
url: pipe(
string(),
url(),
),
});
parse(
object({
id: number(),
created: date(),
title: pipe(
string(),
minLength(1),
maxLength(100),
),
brand: pipe(
string(),
minLength(1),
maxLength(30),
),
description: pipe(
string(),
minLength(1),
maxLength(500),
),
price: pipe(
number(),
minValue(1),
maxValue(1e4),
),
discount: nullable(
pipe(
number(),
minValue(1),
maxValue(100),
),
),
quantity: pipe(
number(),
minValue(0),
maxValue(10),
),
tags: array(
pipe(
string(),
minLength(1),
maxLength(30),
),
),
images: array(
imageSchema,
),
ratings: array(
object({
id: number(),
stars: pipe(
number(),
minValue(1),
maxValue(5),
),
title: pipe(
string(),
minLength(1),
maxLength(
100,
),
),
text: pipe(
string(),
minLength(1),
maxLength(
1e3,
),
),
images: array(
imageSchema,
),
}),
),
}),
{},
);
const DEFAULT_CONFIG = {
lang: void 0,
message: void 0,
abortEarly: void 0,
abortPipeEarly: void 0,
};
function getGlobalConfig(config$1) {
if (!config$1 && true) return DEFAULT_CONFIG;
return {
lang: config$1?.lang ?? void 0,
message: config$1?.message,
abortEarly: config$1?.abortEarly ?? void 0,
abortPipeEarly: config$1?.abortPipeEarly ?? void 0,
};
}
function _stringify(input) {
const type = typeof input;
if (type === "string") return `"${input}"`;
if (
type === "number" ||
type === "bigint" ||
type === "boolean"
)
return `${input}`;
if (type === "object" || type === "function")
return (
(input &&
Object.getPrototypeOf(input)?.constructor?.name) ??
"null"
);
return type;
}
function _addIssue(
context,
label,
dataset,
config$1,
other,
) {
const input =
other && "input" in other ? other.input : dataset.value;
const expected =
other?.expected ?? context.expects ?? null;
const received =
other?.received ?? _stringify(input);
const issue = {
kind: context.kind,
type: context.type,
input,
expected,
received,
message: `Invalid ${label}: ${expected ? `Expected ${expected} but r` : "R"}eceived ${received}`,
requirement: context.requirement,
path: other?.path,
issues: other?.issues,
lang: config$1.lang,
abortEarly: config$1.abortEarly,
abortPipeEarly: config$1.abortPipeEarly,
};
const isSchema = context.kind === "schema";
const message$1 =
other?.message ??
context.message ??
(context.reference, issue.lang, void 0) ??
(isSchema ? (issue.lang, void 0) : null) ??
config$1.message ??
(issue.lang, void 0);
if (message$1 !== void 0)
issue.message =
typeof message$1 === "function"
? message$1(issue)
: message$1;
if (isSchema) dataset.typed = false;
if (dataset.issues) dataset.issues.push(issue);
else dataset.issues = [issue];
}
function _joinExpects(values$1, separator) {
const list = [...new Set(values$1)];
if (list.length > 1)
return `(${list.join(` ${separator} `)})`;
return list[0] ?? "never";
}
function _standardSchema(schema) {
schema["~standard"] = {
version: 1,
vendor: "valibot",
validate: (value$1) =>
schema["~run"](
{ value: value$1 },
getGlobalConfig(),
),
};
return schema;
}
var ValiError = class extends Error {
constructor(issues) {
super(issues[0].message);
this.name = "ValiError";
this.issues = issues;
}
};
function maxLength(requirement, message$1) {
return {
kind: "validation",
type: "max_length",
reference: maxLength,
async: false,
expects: `<=${requirement}`,
requirement,
message: message$1,
"~run"(dataset, config$1) {
if (
dataset.typed &&
dataset.value.length > this.requirement
)
_addIssue(this, "length", dataset, config$1, {
received: `${dataset.value.length}`,
});
return dataset;
},
};
}
function maxValue(requirement, message$1) {
return {
kind: "validation",
type: "max_value",
reference: maxValue,
async: false,
expects: `<=${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`,
requirement,
message: message$1,
"~run"(dataset, config$1) {
if (
dataset.typed &&
!(dataset.value <= this.requirement)
)
_addIssue(this, "value", dataset, config$1, {
received:
dataset.value instanceof Date
? dataset.value.toJSON()
: _stringify(dataset.value),
});
return dataset;
},
};
}
function minLength(requirement, message$1) {
return {
kind: "validation",
type: "min_length",
reference: minLength,
async: false,
expects: `>=${requirement}`,
requirement,
message: message$1,
"~run"(dataset, config$1) {
if (
dataset.typed &&
dataset.value.length < this.requirement
)
_addIssue(this, "length", dataset, config$1, {
received: `${dataset.value.length}`,
});
return dataset;
},
};
}
function minValue(requirement, message$1) {
return {
kind: "validation",
type: "min_value",
reference: minValue,
async: false,
expects: `>=${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`,
requirement,
message: message$1,
"~run"(dataset, config$1) {
if (
dataset.typed &&
!(dataset.value >= this.requirement)
)
_addIssue(this, "value", dataset, config$1, {
received:
dataset.value instanceof Date
? dataset.value.toJSON()
: _stringify(dataset.value),
});
return dataset;
},
};
}
function url(message$1) {
return {
kind: "validation",
type: "url",
reference: url,
async: false,
expects: null,
requirement(input) {
try {
if (URL.canParse) return URL.canParse(input);
new URL(input);
return true;
} catch {
return false;
}
},
message: message$1,
"~run"(dataset, config$1) {
if (dataset.typed && !this.requirement(dataset.value))
_addIssue(this, "URL", dataset, config$1);
return dataset;
},
};
}
function getFallback(schema, dataset, config$1) {
return typeof schema.fallback === "function"
? schema.fallback(dataset, config$1)
: schema.fallback;
}
function getDefault(schema, dataset, config$1) {
return typeof schema.default === "function"
? schema.default(dataset, config$1)
: schema.default;
}
function array(item, message$1) {
return _standardSchema({
kind: "schema",
type: "array",
reference: array,
expects: "Array",
async: false,
item,
message: message$1,
"~run"(dataset, config$1) {
const input = dataset.value;
if (Array.isArray(input)) {
dataset.typed = true;
dataset.value = [];
for (let key = 0; key < input.length; key++) {
const value$1 = input[key];
const itemDataset = this.item["~run"](
{ value: value$1 },
config$1,
);
if (itemDataset.issues) {
const pathItem = {
type: "array",
origin: "value",
input,
key,
value: value$1,
};
for (const issue of itemDataset.issues) {
if (issue.path) issue.path.unshift(pathItem);
else issue.path = [pathItem];
dataset.issues?.push(issue);
}
if (!dataset.issues)
dataset.issues = itemDataset.issues;
if (config$1.abortEarly) {
dataset.typed = false;
break;
}
}
if (!itemDataset.typed) dataset.typed = false;
dataset.value.push(itemDataset.value);
}
} else _addIssue(this, "type", dataset, config$1);
return dataset;
},
});
}
function date(message$1) {
return _standardSchema({
kind: "schema",
type: "date",
reference: date,
expects: "Date",
async: false,
message: message$1,
"~run"(dataset, config$1) {
if (dataset.value instanceof Date)
if (!isNaN(dataset.value)) dataset.typed = true;
else
_addIssue(this, "type", dataset, config$1, {
received: '"Invalid Date"',
});
else _addIssue(this, "type", dataset, config$1);
return dataset;
},
});
}
function nullable(wrapped, default_) {
return _standardSchema({
kind: "schema",
type: "nullable",
reference: nullable,
expects: `(${wrapped.expects} | null)`,
async: false,
wrapped,
default: default_,
"~run"(dataset, config$1) {
if (dataset.value === null) {
if (this.default !== void 0)
dataset.value = getDefault(
this,
dataset,
config$1,
);
if (dataset.value === null) {
dataset.typed = true;
return dataset;
}
}
return this.wrapped["~run"](dataset, config$1);
},
});
}
function number(message$1) {
return _standardSchema({
kind: "schema",
type: "number",
reference: number,
expects: "number",
async: false,
message: message$1,
"~run"(dataset, config$1) {
if (
typeof dataset.value === "number" &&
!isNaN(dataset.value)
)
dataset.typed = true;
else _addIssue(this, "type", dataset, config$1);
return dataset;
},
});
}
function object(entries$1, message$1) {
return _standardSchema({
kind: "schema",
type: "object",
reference: object,
expects: "Object",
async: false,
entries: entries$1,
message: message$1,
"~run"(dataset, config$1) {
const input = dataset.value;
if (input && typeof input === "object") {
dataset.typed = true;
dataset.value = {};
for (const key in this.entries) {
const valueSchema = this.entries[key];
if (
key in input ||
((valueSchema.type === "exact_optional" ||
valueSchema.type === "optional" ||
valueSchema.type === "nullish") &&
valueSchema.default !== void 0)
) {
const value$1 =
key in input
? input[key]
: getDefault(valueSchema);
const valueDataset = valueSchema["~run"](
{ value: value$1 },
config$1,
);
if (valueDataset.issues) {
const pathItem = {
type: "object",
origin: "value",
input,
key,
value: value$1,
};
for (const issue of valueDataset.issues) {
if (issue.path)
issue.path.unshift(pathItem);
else issue.path = [pathItem];
dataset.issues?.push(issue);
}
if (!dataset.issues)
dataset.issues = valueDataset.issues;
if (config$1.abortEarly) {
dataset.typed = false;
break;
}
}
if (!valueDataset.typed) dataset.typed = false;
dataset.value[key] = valueDataset.value;
} else if (valueSchema.fallback !== void 0)
dataset.value[key] =
getFallback(valueSchema);
else if (
valueSchema.type !== "exact_optional" &&
valueSchema.type !== "optional" &&
valueSchema.type !== "nullish"
) {
_addIssue(this, "key", dataset, config$1, {
input: void 0,
expected: `"${key}"`,
path: [
{
type: "object",
origin: "key",
input,
key,
value: input[key],
},
],
});
if (config$1.abortEarly) break;
}
}
} else _addIssue(this, "type", dataset, config$1);
return dataset;
},
});
}
function picklist(options, message$1) {
return _standardSchema({
kind: "schema",
type: "picklist",
reference: picklist,
expects: _joinExpects(
options.map(_stringify),
"|",
),
async: false,
options,
message: message$1,
"~run"(dataset, config$1) {
if (this.options.includes(dataset.value))
dataset.typed = true;
else _addIssue(this, "type", dataset, config$1);
return dataset;
},
});
}
function string(message$1) {
return _standardSchema({
kind: "schema",
type: "string",
reference: string,
expects: "string",
async: false,
message: message$1,
"~run"(dataset, config$1) {
if (typeof dataset.value === "string")
dataset.typed = true;
else _addIssue(this, "type", dataset, config$1);
return dataset;
},
});
}
function parse(schema, input, config$1) {
const dataset = schema["~run"](
{ value: input },
getGlobalConfig(config$1),
);
if (dataset.issues) throw new ValiError(dataset.issues);
return dataset.value;
}
function pipe(...pipe$1) {
return _standardSchema({
...pipe$1[0],
pipe: pipe$1,
"~run"(dataset, config$1) {
for (const item of pipe$1)
if (item.kind !== "metadata") {
if (
dataset.issues &&
(item.kind === "schema" ||
item.kind === "transformation")
) {
dataset.typed = false;
break;
}
if (
!dataset.issues ||
(!config$1.abortEarly &&
!config$1.abortPipeEarly)
)
dataset = item["~run"](dataset, config$1);
}
return dataset;
},
});
}
const imageSchema = object({
id: number(),
created: date(),
title: pipe(
string(),
minLength(1),
maxLength(100),
),
type: picklist(["jpg", "png"]),
size: number(),
url: pipe(
string(),
url(),
),
});
parse(
object({
id: number(),
created: date(),
title: pipe(
string(),
minLength(1),
maxLength(100),
),
brand: pipe(
string(),
minLength(1),
maxLength(30),
),
description: pipe(
string(),
minLength(1),
maxLength(500),
),
price: pipe(
number(),
minValue(1),
maxValue(1e4),
),
discount: nullable(
pipe(
number(),
minValue(1),
maxValue(100),
),
),
quantity: pipe(
number(),
minValue(0),
maxValue(10),
),
tags: array(
pipe(
string(),
minLength(1),
maxLength(30),
),
),
images: array(imageSchema),
ratings: array(
object({
id: number(),
stars: pipe(
number(),
minValue(1),
maxValue(5),
),
title: pipe(
string(),
minLength(1),
maxLength(100),
),
text: pipe(
string(),
minLength(1),
maxLength(1e3),
),
images: array(imageSchema),
}),
),
}),
{},
);
const DEFAULT_CONFIG = {
lang: void 0,
message: void 0,
abortEarly: void 0,
abortPipeEarly: void 0,
};
function getGlobalConfig(config$1) {
if (!config$1 && true) return DEFAULT_CONFIG;
return {
lang: config$1?.lang ?? void 0,
message: config$1?.message,
abortEarly: config$1?.abortEarly ?? void 0,
abortPipeEarly: config$1?.abortPipeEarly ?? void 0,
};
}
function _stringify(input) {
const type = typeof input;
if (type === "string") return `"${input}"`;
if (type === "number" || type === "bigint" || type === "boolean")
return `${input}`;
if (type === "object" || type === "function")
return (input && Object.getPrototypeOf(input)?.constructor?.name) ?? "null";
return type;
}
function _addIssue(context, label, dataset, config$1, other) {
const input = other && "input" in other ? other.input : dataset.value;
const expected = other?.expected ?? context.expects ?? null;
const received = other?.received ?? _stringify(input);
const issue = {
kind: context.kind,
type: context.type,
input,
expected,
received,
message: `Invalid ${label}: ${expected ? `Expected ${expected} but r` : "R"}eceived ${received}`,
requirement: context.requirement,
path: other?.path,
issues: other?.issues,
lang: config$1.lang,
abortEarly: config$1.abortEarly,
abortPipeEarly: config$1.abortPipeEarly,
};
const isSchema = context.kind === "schema";
const message$1 =
other?.message ??
context.message ??
(context.reference, issue.lang, void 0) ??
(isSchema ? (issue.lang, void 0) : null) ??
config$1.message ??
(issue.lang, void 0);
if (message$1 !== void 0)
issue.message =
typeof message$1 === "function" ? message$1(issue) : message$1;
if (isSchema) dataset.typed = false;
if (dataset.issues) dataset.issues.push(issue);
else dataset.issues = [issue];
}
function _joinExpects(values$1, separator) {
const list = [...new Set(values$1)];
if (list.length > 1) return `(${list.join(` ${separator} `)})`;
return list[0] ?? "never";
}
function _standardSchema(schema) {
schema["~standard"] = {
version: 1,
vendor: "valibot",
validate: (value$1) =>
schema["~run"]({ value: value$1 }, getGlobalConfig()),
};
return schema;
}
var ValiError = class extends Error {
constructor(issues) {
super(issues[0].message);
this.name = "ValiError";
this.issues = issues;
}
};
function maxLength(requirement, message$1) {
return {
kind: "validation",
type: "max_length",
reference: maxLength,
async: false,
expects: `<=${requirement}`,
requirement,
message: message$1,
"~run"(dataset, config$1) {
if (dataset.typed && dataset.value.length > this.requirement)
_addIssue(this, "length", dataset, config$1, {
received: `${dataset.value.length}`,
});
return dataset;
},
};
}
function maxValue(requirement, message$1) {
return {
kind: "validation",
type: "max_value",
reference: maxValue,
async: false,
expects: `<=${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`,
requirement,
message: message$1,
"~run"(dataset, config$1) {
if (dataset.typed && !(dataset.value <= this.requirement))
_addIssue(this, "value", dataset, config$1, {
received:
dataset.value instanceof Date
? dataset.value.toJSON()
: _stringify(dataset.value),
});
return dataset;
},
};
}
function minLength(requirement, message$1) {
return {
kind: "validation",
type: "min_length",
reference: minLength,
async: false,
expects: `>=${requirement}`,
requirement,
message: message$1,
"~run"(dataset, config$1) {
if (dataset.typed && dataset.value.length < this.requirement)
_addIssue(this, "length", dataset, config$1, {
received: `${dataset.value.length}`,
});
return dataset;
},
};
}
function minValue(requirement, message$1) {
return {
kind: "validation",
type: "min_value",
reference: minValue,
async: false,
expects: `>=${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`,
requirement,
message: message$1,
"~run"(dataset, config$1) {
if (dataset.typed && !(dataset.value >= this.requirement))
_addIssue(this, "value", dataset, config$1, {
received:
dataset.value instanceof Date
? dataset.value.toJSON()
: _stringify(dataset.value),
});
return dataset;
},
};
}
function url(message$1) {
return {
kind: "validation",
type: "url",
reference: url,
async: false,
expects: null,
requirement(input) {
try {
if (URL.canParse) return URL.canParse(input);
new URL(input);
return true;
} catch {
return false;
}
},
message: message$1,
"~run"(dataset, config$1) {
if (dataset.typed && !this.requirement(dataset.value))
_addIssue(this, "URL", dataset, config$1);
return dataset;
},
};
}
function getFallback(schema, dataset, config$1) {
return typeof schema.fallback === "function"
? schema.fallback(dataset, config$1)
: schema.fallback;
}
function getDefault(schema, dataset, config$1) {
return typeof schema.default === "function"
? schema.default(dataset, config$1)
: schema.default;
}
function array(item, message$1) {
return _standardSchema({
kind: "schema",
type: "array",
reference: array,
expects: "Array",
async: false,
item,
message: message$1,
"~run"(dataset, config$1) {
const input = dataset.value;
if (Array.isArray(input)) {
dataset.typed = true;
dataset.value = [];
for (let key = 0; key < input.length; key++) {
const value$1 = input[key];
const itemDataset = this.item["~run"]({ value: value$1 }, config$1);
if (itemDataset.issues) {
const pathItem = {
type: "array",
origin: "value",
input,
key,
value: value$1,
};
for (const issue of itemDataset.issues) {
if (issue.path) issue.path.unshift(pathItem);
else issue.path = [pathItem];
dataset.issues?.push(issue);
}
if (!dataset.issues) dataset.issues = itemDataset.issues;
if (config$1.abortEarly) {
dataset.typed = false;
break;
}
}
if (!itemDataset.typed) dataset.typed = false;
dataset.value.push(itemDataset.value);
}
} else _addIssue(this, "type", dataset, config$1);
return dataset;
},
});
}
function date(message$1) {
return _standardSchema({
kind: "schema",
type: "date",
reference: date,
expects: "Date",
async: false,
message: message$1,
"~run"(dataset, config$1) {
if (dataset.value instanceof Date)
if (!isNaN(dataset.value)) dataset.typed = true;
else
_addIssue(this, "type", dataset, config$1, {
received: '"Invalid Date"',
});
else _addIssue(this, "type", dataset, config$1);
return dataset;
},
});
}
function nullable(wrapped, default_) {
return _standardSchema({
kind: "schema",
type: "nullable",
reference: nullable,
expects: `(${wrapped.expects} | null)`,
async: false,
wrapped,
default: default_,
"~run"(dataset, config$1) {
if (dataset.value === null) {
if (this.default !== void 0)
dataset.value = getDefault(this, dataset, config$1);
if (dataset.value === null) {
dataset.typed = true;
return dataset;
}
}
return this.wrapped["~run"](dataset, config$1);
},
});
}
function number(message$1) {
return _standardSchema({
kind: "schema",
type: "number",
reference: number,
expects: "number",
async: false,
message: message$1,
"~run"(dataset, config$1) {
if (typeof dataset.value === "number" && !isNaN(dataset.value))
dataset.typed = true;
else _addIssue(this, "type", dataset, config$1);
return dataset;
},
});
}
function object(entries$1, message$1) {
return _standardSchema({
kind: "schema",
type: "object",
reference: object,
expects: "Object",
async: false,
entries: entries$1,
message: message$1,
"~run"(dataset, config$1) {
const input = dataset.value;
if (input && typeof input === "object") {
dataset.typed = true;
dataset.value = {};
for (const key in this.entries) {
const valueSchema = this.entries[key];
if (
key in input ||
((valueSchema.type === "exact_optional" ||
valueSchema.type === "optional" ||
valueSchema.type === "nullish") &&
valueSchema.default !== void 0)
) {
const value$1 =
key in input
? input[key]
: getDefault(valueSchema);
const valueDataset = valueSchema["~run"](
{ value: value$1 },
config$1,
);
if (valueDataset.issues) {
const pathItem = {
type: "object",
origin: "value",
input,
key,
value: value$1,
};
for (const issue of valueDataset.issues) {
if (issue.path) issue.path.unshift(pathItem);
else issue.path = [pathItem];
dataset.issues?.push(issue);
}
if (!dataset.issues) dataset.issues = valueDataset.issues;
if (config$1.abortEarly) {
dataset.typed = false;
break;
}
}
if (!valueDataset.typed) dataset.typed = false;
dataset.value[key] = valueDataset.value;
} else if (valueSchema.fallback !== void 0)
dataset.value[key] = getFallback(valueSchema);
else if (
valueSchema.type !== "exact_optional" &&
valueSchema.type !== "optional" &&
valueSchema.type !== "nullish"
) {
_addIssue(this, "key", dataset, config$1, {
input: void 0,
expected: `"${key}"`,
path: [
{
type: "object",
origin: "key",
input,
key,
value: input[key],
},
],
});
if (config$1.abortEarly) break;
}
}
} else _addIssue(this, "type", dataset, config$1);
return dataset;
},
});
}
function picklist(options, message$1) {
return _standardSchema({
kind: "schema",
type: "picklist",
reference: picklist,
expects: _joinExpects(options.map(_stringify), "|"),
async: false,
options,
message: message$1,
"~run"(dataset, config$1) {
if (this.options.includes(dataset.value)) dataset.typed = true;
else _addIssue(this, "type", dataset, config$1);
return dataset;
},
});
}
function string(message$1) {
return _standardSchema({
kind: "schema",
type: "string",
reference: string,
expects: "string",
async: false,
message: message$1,
"~run"(dataset, config$1) {
if (typeof dataset.value === "string") dataset.typed = true;
else _addIssue(this, "type", dataset, config$1);
return dataset;
},
});
}
function parse(schema, input, config$1) {
const dataset = schema["~run"](
{ value: input },
getGlobalConfig(config$1),
);
if (dataset.issues) throw new ValiError(dataset.issues);
return dataset.value;
}
function pipe(...pipe$1) {
return _standardSchema({
...pipe$1[0],
pipe: pipe$1,
"~run"(dataset, config$1) {
for (const item of pipe$1)
if (item.kind !== "metadata") {
if (
dataset.issues &&
(item.kind === "schema" || item.kind === "transformation")
) {
dataset.typed = false;
break;
}
if (
!dataset.issues ||
(!config$1.abortEarly && !config$1.abortPipeEarly)
)
dataset = item["~run"](dataset, config$1);
}
return dataset;
},
});
}
const imageSchema = object({
id: number(),
created: date(),
title: pipe(
string(),
minLength(1),
maxLength(100),
),
type: picklist(["jpg", "png"]),
size: number(),
url: pipe( string(), url()),
});
parse(
object({
id: number(),
created: date(),
title: pipe(
string(),
minLength(1),
maxLength(100),
),
brand: pipe(
string(),
minLength(1),
maxLength(30),
),
description: pipe(
string(),
minLength(1),
maxLength(500),
),
price: pipe(
number(),
minValue(1),
maxValue(1e4),
),
discount: nullable(
pipe(
number(),
minValue(1),
maxValue(100),
),
),
quantity: pipe(
number(),
minValue(0),
maxValue(10),
),
tags: array(
pipe(
string(),
minLength(1),
maxLength(30),
),
),
images: array(imageSchema),
ratings: array(
object({
id: number(),
stars: pipe(
number(),
minValue(1),
maxValue(5),
),
title: pipe(
string(),
minLength(1),
maxLength(100),
),
text: pipe(
string(),
minLength(1),
maxLength(1e3),
),
images: array(imageSchema),
}),
),
}),
{},
);
const DEFAULT_CONFIG = {
lang: void 0,
message: void 0,
abortEarly: void 0,
abortPipeEarly: void 0,
};
function getGlobalConfig(config$1) {
if (!config$1 && true) return DEFAULT_CONFIG;
return {
lang: config$1?.lang ?? void 0,
message: config$1?.message,
abortEarly: config$1?.abortEarly ?? void 0,
abortPipeEarly: config$1?.abortPipeEarly ?? void 0,
};
}
function _stringify(input) {
const type = typeof input;
if (type === "string") return `"${input}"`;
if (type === "number" || type === "bigint" || type === "boolean") return `${input}`;
if (type === "object" || type === "function")
return (input && Object.getPrototypeOf(input)?.constructor?.name) ?? "null";
return type;
}
function _addIssue(context, label, dataset, config$1, other) {
const input = other && "input" in other ? other.input : dataset.value;
const expected = other?.expected ?? context.expects ?? null;
const received = other?.received ?? _stringify(input);
const issue = {
kind: context.kind,
type: context.type,
input,
expected,
received,
message: `Invalid ${label}: ${expected ? `Expected ${expected} but r` : "R"}eceived ${received}`,
requirement: context.requirement,
path: other?.path,
issues: other?.issues,
lang: config$1.lang,
abortEarly: config$1.abortEarly,
abortPipeEarly: config$1.abortPipeEarly,
};
const isSchema = context.kind === "schema";
const message$1 =
other?.message ??
context.message ??
(context.reference, issue.lang, void 0) ??
(isSchema ? (issue.lang, void 0) : null) ??
config$1.message ??
(issue.lang, void 0);
if (message$1 !== void 0)
issue.message = typeof message$1 === "function" ? message$1(issue) : message$1;
if (isSchema) dataset.typed = false;
if (dataset.issues) dataset.issues.push(issue);
else dataset.issues = [issue];
}
function _joinExpects(values$1, separator) {
const list = [...new Set(values$1)];
if (list.length > 1) return `(${list.join(` ${separator} `)})`;
return list[0] ?? "never";
}
function _standardSchema(schema) {
schema["~standard"] = {
version: 1,
vendor: "valibot",
validate: (value$1) => schema["~run"]({ value: value$1 }, getGlobalConfig()),
};
return schema;
}
var ValiError = class extends Error {
constructor(issues) {
super(issues[0].message);
this.name = "ValiError";
this.issues = issues;
}
};
function maxLength(requirement, message$1) {
return {
kind: "validation",
type: "max_length",
reference: maxLength,
async: false,
expects: `<=${requirement}`,
requirement,
message: message$1,
"~run"(dataset, config$1) {
if (dataset.typed && dataset.value.length > this.requirement)
_addIssue(this, "length", dataset, config$1, { received: `${dataset.value.length}` });
return dataset;
},
};
}
function maxValue(requirement, message$1) {
return {
kind: "validation",
type: "max_value",
reference: maxValue,
async: false,
expects: `<=${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`,
requirement,
message: message$1,
"~run"(dataset, config$1) {
if (dataset.typed && !(dataset.value <= this.requirement))
_addIssue(this, "value", dataset, config$1, {
received:
dataset.value instanceof Date
? dataset.value.toJSON()
: _stringify(dataset.value),
});
return dataset;
},
};
}
function minLength(requirement, message$1) {
return {
kind: "validation",
type: "min_length",
reference: minLength,
async: false,
expects: `>=${requirement}`,
requirement,
message: message$1,
"~run"(dataset, config$1) {
if (dataset.typed && dataset.value.length < this.requirement)
_addIssue(this, "length", dataset, config$1, { received: `${dataset.value.length}` });
return dataset;
},
};
}
function minValue(requirement, message$1) {
return {
kind: "validation",
type: "min_value",
reference: minValue,
async: false,
expects: `>=${requirement instanceof Date ? requirement.toJSON() : _stringify(requirement)}`,
requirement,
message: message$1,
"~run"(dataset, config$1) {
if (dataset.typed && !(dataset.value >= this.requirement))
_addIssue(this, "value", dataset, config$1, {
received:
dataset.value instanceof Date
? dataset.value.toJSON()
: _stringify(dataset.value),
});
return dataset;
},
};
}
function url(message$1) {
return {
kind: "validation",
type: "url",
reference: url,
async: false,
expects: null,
requirement(input) {
try {
if (URL.canParse) return URL.canParse(input);
new URL(input);
return true;
} catch {
return false;
}
},
message: message$1,
"~run"(dataset, config$1) {
if (dataset.typed && !this.requirement(dataset.value))
_addIssue(this, "URL", dataset, config$1);
return dataset;
},
};
}
function getFallback(schema, dataset, config$1) {
return typeof schema.fallback === "function"
? schema.fallback(dataset, config$1)
: schema.fallback;
}
function getDefault(schema, dataset, config$1) {
return typeof schema.default === "function" ? schema.default(dataset, config$1) : schema.default;
}
function array(item, message$1) {
return _standardSchema({
kind: "schema",
type: "array",
reference: array,
expects: "Array",
async: false,
item,
message: message$1,
"~run"(dataset, config$1) {
const input = dataset.value;
if (Array.isArray(input)) {
dataset.typed = true;
dataset.value = [];
for (let key = 0; key < input.length; key++) {
const value$1 = input[key];
const itemDataset = this.item["~run"]({ value: value$1 }, config$1);
if (itemDataset.issues) {
const pathItem = {
type: "array",
origin: "value",
input,
key,
value: value$1,
};
for (const issue of itemDataset.issues) {
if (issue.path) issue.path.unshift(pathItem);
else issue.path = [pathItem];
dataset.issues?.push(issue);
}
if (!dataset.issues) dataset.issues = itemDataset.issues;
if (config$1.abortEarly) {
dataset.typed = false;
break;
}
}
if (!itemDataset.typed) dataset.typed = false;
dataset.value.push(itemDataset.value);
}
} else _addIssue(this, "type", dataset, config$1);
return dataset;
},
});
}
function date(message$1) {
return _standardSchema({
kind: "schema",
type: "date",
reference: date,
expects: "Date",
async: false,
message: message$1,
"~run"(dataset, config$1) {
if (dataset.value instanceof Date)
if (!isNaN(dataset.value)) dataset.typed = true;
else _addIssue(this, "type", dataset, config$1, { received: '"Invalid Date"' });
else _addIssue(this, "type", dataset, config$1);
return dataset;
},
});
}
function nullable(wrapped, default_) {
return _standardSchema({
kind: "schema",
type: "nullable",
reference: nullable,
expects: `(${wrapped.expects} | null)`,
async: false,
wrapped,
default: default_,
"~run"(dataset, config$1) {
if (dataset.value === null) {
if (this.default !== void 0)
dataset.value = getDefault(this, dataset, config$1);
if (dataset.value === null) {
dataset.typed = true;
return dataset;
}
}
return this.wrapped["~run"](dataset, config$1);
},
});
}
function number(message$1) {
return _standardSchema({
kind: "schema",
type: "number",
reference: number,
expects: "number",
async: false,
message: message$1,
"~run"(dataset, config$1) {
if (typeof dataset.value === "number" && !isNaN(dataset.value)) dataset.typed = true;
else _addIssue(this, "type", dataset, config$1);
return dataset;
},
});
}
function object(entries$1, message$1) {
return _standardSchema({
kind: "schema",
type: "object",
reference: object,
expects: "Object",
async: false,
entries: entries$1,
message: message$1,
"~run"(dataset, config$1) {
const input = dataset.value;
if (input && typeof input === "object") {
dataset.typed = true;
dataset.value = {};
for (const key in this.entries) {
const valueSchema = this.entries[key];
if (
key in input ||
((valueSchema.type === "exact_optional" ||
valueSchema.type === "optional" ||
valueSchema.type === "nullish") &&
valueSchema.default !== void 0)
) {
const value$1 = key in input ? input[key] : getDefault(valueSchema);
const valueDataset = valueSchema["~run"]({ value: value$1 }, config$1);
if (valueDataset.issues) {
const pathItem = {
type: "object",
origin: "value",
input,
key,
value: value$1,
};
for (const issue of valueDataset.issues) {
if (issue.path) issue.path.unshift(pathItem);
else issue.path = [pathItem];
dataset.issues?.push(issue);
}
if (!dataset.issues) dataset.issues = valueDataset.issues;
if (config$1.abortEarly) {
dataset.typed = false;
break;
}
}
if (!valueDataset.typed) dataset.typed = false;
dataset.value[key] = valueDataset.value;
} else if (valueSchema.fallback !== void 0)
dataset.value[key] = getFallback(valueSchema);
else if (
valueSchema.type !== "exact_optional" &&
valueSchema.type !== "optional" &&
valueSchema.type !== "nullish"
) {
_addIssue(this, "key", dataset, config$1, {
input: void 0,
expected: `"${key}"`,
path: [
{
type: "object",
origin: "key",
input,
key,
value: input[key],
},
],
});
if (config$1.abortEarly) break;
}
}
} else _addIssue(this, "type", dataset, config$1);
return dataset;
},
});
}
function picklist(options, message$1) {
return _standardSchema({
kind: "schema",
type: "picklist",
reference: picklist,
expects: _joinExpects(options.map(_stringify), "|"),
async: false,
options,
message: message$1,
"~run"(dataset, config$1) {
if (this.options.includes(dataset.value)) dataset.typed = true;
else _addIssue(this, "type", dataset, config$1);
return dataset;
},
});
}
function string(message$1) {
return _standardSchema({
kind: "schema",
type: "string",
reference: string,
expects: "string",
async: false,
message: message$1,
"~run"(dataset, config$1) {
if (typeof dataset.value === "string") dataset.typed = true;
else _addIssue(this, "type", dataset, config$1);
return dataset;
},
});
}
function parse(schema, input, config$1) {
const dataset = schema["~run"]({ value: input }, getGlobalConfig(config$1));
if (dataset.issues) throw new ValiError(dataset.issues);
return dataset.value;
}
function pipe(...pipe$1) {
return _standardSchema({
...pipe$1[0],
pipe: pipe$1,
"~run"(dataset, config$1) {
for (const item of pipe$1)
if (item.kind !== "metadata") {
if (dataset.issues && (item.kind === "schema" || item.kind === "transformation")) {
dataset.typed = false;
break;
}
if (!dataset.issues || (!config$1.abortEarly && !config$1.abortPipeEarly))
dataset = item["~run"](dataset, config$1);
}
return dataset;
},
});
}
const imageSchema = object({
id: number(),
created: date(),
title: pipe(
string(),
minLength(1),
maxLength(100),
),
type: picklist(["jpg", "png"]),
size: number(),
url: pipe( string(), url()),
});
parse(
object({
id: number(),
created: date(),
title: pipe(
string(),
minLength(1),
maxLength(100),
),
brand: pipe(
string(),
minLength(1),
maxLength(30),
),
description: pipe(
string(),
minLength(1),
maxLength(500),
),
price: pipe(
number(),
minValue(1),
maxValue(1e4),
),
discount: nullable(
pipe(
number(),
minValue(1),
maxValue(100),
),
),
quantity: pipe(
number(),
minValue(0),
maxValue(10),
),
tags: array(
pipe(
string(),
minLength(1),
maxLength(30),
),
),
images: array(imageSchema),
ratings: array(
object({
id: number(),
stars: pipe(
number(),
minValue(1),
maxValue(5),
),
title: pipe(
string(),
minLength(1),
maxLength(100),
),
text: pipe(
string(),
minLength(1),
maxLength(1e3),
),
images: array(imageSchema),
}),
),
}),
{},
);