@code-plate/iran-cities 1.1.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +55 -0
- package/LICENSE +21 -0
- package/MIGRATION.fa.md +277 -0
- package/MIGRATION.md +272 -0
- package/NOTICE.md +38 -0
- package/README.fa.md +528 -201
- package/README.md +524 -201
- package/dist/boundaries.cjs +9218 -0
- package/dist/boundaries.cjs.map +1 -0
- package/dist/boundaries.d.cts +30 -0
- package/dist/boundaries.d.mts +30 -0
- package/dist/boundaries.mjs +9215 -0
- package/dist/boundaries.mjs.map +1 -0
- package/dist/changes-B-wz9-Gy.cjs +841 -0
- package/dist/changes-B-wz9-Gy.cjs.map +1 -0
- package/dist/changes-CMVZbfZO.d.mts +8 -0
- package/dist/changes-DLZkHBwZ.mjs +800 -0
- package/dist/changes-DLZkHBwZ.mjs.map +1 -0
- package/dist/changes-DnnwRAKl.d.cts +8 -0
- package/dist/components-B7060em0.mjs +240 -0
- package/dist/components-B7060em0.mjs.map +1 -0
- package/dist/components-BuMUB7XT.d.cts +47 -0
- package/dist/components-DZz72pd1.d.mts +47 -0
- package/dist/components-grWmOsaV.cjs +247 -0
- package/dist/components-grWmOsaV.cjs.map +1 -0
- package/dist/components.css +251 -0
- package/dist/data/cities.csv +1253 -0
- package/dist/data/cities.json +23305 -0
- package/dist/data/iran-cities.sql +1487 -0
- package/dist/data/iran-provinces.geojson +1 -0
- package/dist/data/provinces.csv +32 -0
- package/dist/data/provinces.json +460 -0
- package/dist/hooks-C6kjWLIE.mjs +134 -0
- package/dist/hooks-C6kjWLIE.mjs.map +1 -0
- package/dist/hooks-K7pTMF2R.cjs +139 -0
- package/dist/hooks-K7pTMF2R.cjs.map +1 -0
- package/dist/index.cjs +30 -7550
- package/dist/index.d.cts +25 -0
- package/dist/index.d.mts +25 -25
- package/dist/index.mjs +3 -7507
- package/dist/lite-CtNPRhU-.mjs +1926 -0
- package/dist/lite-CtNPRhU-.mjs.map +1 -0
- package/dist/lite-CutarzAc.cjs +2051 -0
- package/dist/lite-CutarzAc.cjs.map +1 -0
- package/dist/lite-react-1HVWJOWt.cjs +55 -0
- package/dist/lite-react-1HVWJOWt.cjs.map +1 -0
- package/dist/lite-react-Ds-DNmEi.mjs +20 -0
- package/dist/lite-react-Ds-DNmEi.mjs.map +1 -0
- package/dist/lite-react-components.cjs +12 -0
- package/dist/lite-react-components.cjs.map +1 -0
- package/dist/lite-react-components.d.cts +5 -0
- package/dist/lite-react-components.d.mts +5 -0
- package/dist/lite-react-components.mjs +11 -0
- package/dist/lite-react-components.mjs.map +1 -0
- package/dist/lite-react.cjs +8 -0
- package/dist/lite-react.d.cts +7 -0
- package/dist/lite-react.d.mts +7 -0
- package/dist/lite-react.mjs +2 -0
- package/dist/lite.cjs +28 -0
- package/dist/lite.d.cts +23 -0
- package/dist/lite.d.mts +23 -0
- package/dist/lite.mjs +3 -0
- package/dist/react-BKmJ476x.mjs +20 -0
- package/dist/react-BKmJ476x.mjs.map +1 -0
- package/dist/react-BZV3TkXB.cjs +55 -0
- package/dist/react-BZV3TkXB.cjs.map +1 -0
- package/dist/react-components.cjs +12 -0
- package/dist/react-components.cjs.map +1 -0
- package/dist/react-components.d.cts +5 -0
- package/dist/react-components.d.mts +5 -0
- package/dist/react-components.mjs +11 -0
- package/dist/react-components.mjs.map +1 -0
- package/dist/react.cjs +8 -7553
- package/dist/react.d.cts +7 -0
- package/dist/react.d.mts +7 -30
- package/dist/react.mjs +2 -7524
- package/dist/rolldown-runtime-78lK1XfQ.cjs +42 -0
- package/dist/rolldown-runtime-D3KUYPsf.mjs +12 -0
- package/dist/src-DRaUVbc4.mjs +4302 -0
- package/dist/src-DRaUVbc4.mjs.map +1 -0
- package/dist/src-mqZTwJfQ.cjs +4439 -0
- package/dist/src-mqZTwJfQ.cjs.map +1 -0
- package/dist/types/boundaries.d.ts +30 -0
- package/dist/types/changes.d.ts +4 -0
- package/dist/types/components.d.ts +47 -0
- package/dist/types/core.d.ts +25 -0
- package/dist/types/geo.d.ts +2 -0
- package/dist/types/hooks.d.ts +2 -0
- package/dist/types/index.d.ts +28 -0
- package/dist/types/keyboard.d.ts +3 -0
- package/dist/types/lite-react-components.d.ts +5 -0
- package/dist/types/lite-react.d.ts +7 -0
- package/dist/types/lite.d.ts +26 -0
- package/dist/types/normalize.d.ts +1 -0
- package/dist/types/packed.d.ts +16 -0
- package/dist/types/react-components.d.ts +5 -0
- package/dist/types/react.d.ts +7 -0
- package/dist/types/types.d.ts +149 -0
- package/dist/types/valibot.d.ts +23 -0
- package/dist/types/validation-shared.d.ts +11 -0
- package/dist/types/zod.d.ts +23 -0
- package/dist/types-Ds_b0yHP.d.cts +150 -0
- package/dist/types-Ds_b0yHP.d.mts +150 -0
- package/dist/valibot.cjs +47 -0
- package/dist/valibot.cjs.map +1 -0
- package/dist/valibot.d.cts +21 -0
- package/dist/valibot.d.mts +21 -0
- package/dist/valibot.mjs +38 -0
- package/dist/valibot.mjs.map +1 -0
- package/dist/validation-shared-BFilTuY1.cjs +58 -0
- package/dist/validation-shared-BFilTuY1.cjs.map +1 -0
- package/dist/validation-shared-C7l2cv4e.d.cts +8 -0
- package/dist/validation-shared-CJjGRx8p.d.mts +7 -0
- package/dist/validation-shared-mh_saZne.mjs +29 -0
- package/dist/validation-shared-mh_saZne.mjs.map +1 -0
- package/dist/zod.cjs +49 -0
- package/dist/zod.cjs.map +1 -0
- package/dist/zod.d.cts +21 -0
- package/dist/zod.d.mts +21 -0
- package/dist/zod.mjs +42 -0
- package/dist/zod.mjs.map +1 -0
- package/package.json +177 -29
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.ts +0 -25
- package/dist/index.mjs.map +0 -1
- package/dist/react.cjs.map +0 -1
- package/dist/react.d.ts +0 -30
- package/dist/react.mjs.map +0 -1
- package/dist/types-DzSw8Uw2.d.mts +0 -52
- package/dist/types-DzSw8Uw2.d.ts +0 -52
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
type CityId = number;
|
|
2
|
+
type ProvinceId = number;
|
|
3
|
+
type CityKey = string;
|
|
4
|
+
type Query = string | number;
|
|
5
|
+
type Locale = "en" | "fa";
|
|
6
|
+
type CoordinateConfidence = "high" | "medium" | "low";
|
|
7
|
+
interface LatLng {
|
|
8
|
+
readonly lat: number;
|
|
9
|
+
readonly lng: number;
|
|
10
|
+
}
|
|
11
|
+
interface Coordinates extends LatLng {
|
|
12
|
+
readonly confidence: CoordinateConfidence;
|
|
13
|
+
}
|
|
14
|
+
interface City {
|
|
15
|
+
readonly id: CityId;
|
|
16
|
+
readonly isCapital: boolean;
|
|
17
|
+
readonly coordinates?: Coordinates;
|
|
18
|
+
readonly slug: CityKey;
|
|
19
|
+
readonly en: string;
|
|
20
|
+
readonly fa: string;
|
|
21
|
+
readonly nameEn: string;
|
|
22
|
+
readonly aliases: readonly string[];
|
|
23
|
+
}
|
|
24
|
+
interface Province {
|
|
25
|
+
readonly id: ProvinceId;
|
|
26
|
+
readonly en: string;
|
|
27
|
+
readonly fa: string;
|
|
28
|
+
readonly nameEn: string;
|
|
29
|
+
readonly phoneCode: string;
|
|
30
|
+
readonly capitalId: CityId;
|
|
31
|
+
readonly neighborIds: readonly ProvinceId[];
|
|
32
|
+
readonly cities: readonly City[];
|
|
33
|
+
}
|
|
34
|
+
interface ProvinceListItem {
|
|
35
|
+
id: ProvinceId;
|
|
36
|
+
en: string;
|
|
37
|
+
fa: string;
|
|
38
|
+
nameEn: string;
|
|
39
|
+
phoneCode: string;
|
|
40
|
+
capitalId: CityId;
|
|
41
|
+
}
|
|
42
|
+
interface FlatCity extends City {
|
|
43
|
+
readonly provinceId: ProvinceId;
|
|
44
|
+
readonly provinceEn: string;
|
|
45
|
+
readonly provinceFa: string;
|
|
46
|
+
readonly provinceNameEn: string;
|
|
47
|
+
readonly phoneCode: string;
|
|
48
|
+
}
|
|
49
|
+
interface SearchOptions {
|
|
50
|
+
limit?: number;
|
|
51
|
+
locale?: Locale | "both";
|
|
52
|
+
fuzzy?: boolean;
|
|
53
|
+
maxDistance?: number;
|
|
54
|
+
emptyQuery?: "all" | "none";
|
|
55
|
+
keyboardFix?: boolean;
|
|
56
|
+
}
|
|
57
|
+
interface NearestCitiesOptions {
|
|
58
|
+
limit?: number;
|
|
59
|
+
minConfidence?: CoordinateConfidence;
|
|
60
|
+
maxDistanceKm?: number;
|
|
61
|
+
}
|
|
62
|
+
interface NearestCity {
|
|
63
|
+
readonly city: FlatCity;
|
|
64
|
+
readonly distanceKm: number;
|
|
65
|
+
}
|
|
66
|
+
type DataChangeType = "renamed" | "spelling" | "removed" | "coordinates";
|
|
67
|
+
interface DataChange {
|
|
68
|
+
readonly version: string;
|
|
69
|
+
readonly type: DataChangeType;
|
|
70
|
+
readonly cityId?: CityId;
|
|
71
|
+
readonly provinceId?: ProvinceId;
|
|
72
|
+
readonly before?: {
|
|
73
|
+
readonly en?: string;
|
|
74
|
+
readonly fa?: string;
|
|
75
|
+
readonly slug?: CityKey;
|
|
76
|
+
};
|
|
77
|
+
readonly after?: {
|
|
78
|
+
readonly en?: string;
|
|
79
|
+
readonly fa?: string;
|
|
80
|
+
readonly slug?: CityKey;
|
|
81
|
+
};
|
|
82
|
+
readonly note: string;
|
|
83
|
+
}
|
|
84
|
+
interface Stats {
|
|
85
|
+
readonly provinceCount: number;
|
|
86
|
+
readonly cityCount: number;
|
|
87
|
+
}
|
|
88
|
+
interface IranCities {
|
|
89
|
+
getProvinces(): readonly Province[];
|
|
90
|
+
getProvincesList(): ProvinceListItem[];
|
|
91
|
+
getProvinceById(id: ProvinceId): Province | undefined;
|
|
92
|
+
getProvince(query: Query): Province | undefined;
|
|
93
|
+
getCities(provinceQuery: Query): readonly City[];
|
|
94
|
+
getAllCities(): readonly FlatCity[];
|
|
95
|
+
getCityById(id: CityId): FlatCity | undefined;
|
|
96
|
+
getCityBySlug(slug: CityKey): FlatCity | undefined;
|
|
97
|
+
getCity(cityQuery: Query, provinceQuery?: Query): FlatCity | undefined;
|
|
98
|
+
getCitiesByName(cityQuery: string): readonly FlatCity[];
|
|
99
|
+
isAmbiguousCityName(cityQuery: string): boolean;
|
|
100
|
+
getProvinceOfCity(cityQuery: Query): Province | undefined;
|
|
101
|
+
getCapital(provinceQuery: Query): FlatCity | undefined;
|
|
102
|
+
getCapitals(): FlatCity[];
|
|
103
|
+
getProvinceByPhoneCode(code: string | number): Province | undefined;
|
|
104
|
+
searchProvinces(query: string, options?: SearchOptions): Province[];
|
|
105
|
+
searchCities(query: string, options?: SearchOptions): FlatCity[];
|
|
106
|
+
getNeighborProvinces(provinceQuery: Query): Province[];
|
|
107
|
+
areNeighborProvinces(a: Query, b: Query): boolean;
|
|
108
|
+
getStats(): Stats;
|
|
109
|
+
}
|
|
110
|
+
interface IranCitiesGeo {
|
|
111
|
+
getDistance(from: LatLng | Query, to: LatLng | Query): number | undefined;
|
|
112
|
+
getNearestCities(point: LatLng | Query, options?: NearestCitiesOptions): NearestCity[];
|
|
113
|
+
}
|
|
114
|
+
interface ProvinceCityValue {
|
|
115
|
+
provinceId?: ProvinceId;
|
|
116
|
+
cityId?: CityId;
|
|
117
|
+
}
|
|
118
|
+
interface ProvinceCitySelectOptions {
|
|
119
|
+
initialProvince?: Query;
|
|
120
|
+
initialCity?: Query;
|
|
121
|
+
value?: ProvinceCityValue;
|
|
122
|
+
onChange?: (value: ProvinceCityValue) => void;
|
|
123
|
+
}
|
|
124
|
+
interface ProvinceCitySelect {
|
|
125
|
+
provinces: ProvinceListItem[];
|
|
126
|
+
cities: readonly City[];
|
|
127
|
+
province: string;
|
|
128
|
+
city: string;
|
|
129
|
+
provinceId: ProvinceId | undefined;
|
|
130
|
+
cityId: CityId | undefined;
|
|
131
|
+
value: ProvinceCityValue;
|
|
132
|
+
selectedProvince: Province | undefined;
|
|
133
|
+
selectedCity: FlatCity | undefined;
|
|
134
|
+
setProvince: (value: Query) => void;
|
|
135
|
+
setCity: (value: Query) => void;
|
|
136
|
+
reset: () => void;
|
|
137
|
+
}
|
|
138
|
+
interface SearchState<T> {
|
|
139
|
+
query: string;
|
|
140
|
+
setQuery: (query: string | ((previous: string) => string)) => void;
|
|
141
|
+
results: T[];
|
|
142
|
+
}
|
|
143
|
+
interface IranCitiesHooks {
|
|
144
|
+
useProvinces(): ProvinceListItem[];
|
|
145
|
+
useCities(provinceQuery: Query | undefined | null): readonly City[];
|
|
146
|
+
useProvinceCitySelect(options?: ProvinceCitySelectOptions): ProvinceCitySelect;
|
|
147
|
+
useCitySearch(initialQuery?: string, options?: SearchOptions): SearchState<FlatCity>;
|
|
148
|
+
useProvinceSearch(initialQuery?: string, options?: SearchOptions): SearchState<Province>;
|
|
149
|
+
}
|
|
150
|
+
export { SearchOptions as C, Query as S, Stats as T, ProvinceCitySelect as _, Coordinates as a, ProvinceId as b, FlatCity as c, IranCitiesHooks as d, LatLng as f, Province as g, NearestCity as h, CoordinateConfidence as i, IranCities as l, NearestCitiesOptions as m, CityId as n, DataChange as o, Locale as p, CityKey as r, DataChangeType as s, City as t, IranCitiesGeo as u, ProvinceCitySelectOptions as v, SearchState as w, ProvinceListItem as x, ProvinceCityValue as y };
|
package/dist/valibot.cjs
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_rolldown_runtime = require("./rolldown-runtime-78lK1XfQ.cjs");
|
|
3
|
+
const require_lite = require("./lite-CutarzAc.cjs");
|
|
4
|
+
const require_validation_shared = require("./validation-shared-BFilTuY1.cjs");
|
|
5
|
+
let valibot = require("valibot");
|
|
6
|
+
valibot = require_rolldown_runtime.__toESM(valibot);
|
|
7
|
+
// src/valibot.ts
|
|
8
|
+
const api = require_lite.lite_exports;
|
|
9
|
+
function createValibotSchemas(messages = {}) {
|
|
10
|
+
const m = {
|
|
11
|
+
...require_validation_shared.DEFAULT_MESSAGES,
|
|
12
|
+
...messages
|
|
13
|
+
};
|
|
14
|
+
const provinceId = valibot.pipe(valibot.unknown(), valibot.transform((value) => {
|
|
15
|
+
var _toId;
|
|
16
|
+
return (_toId = require_validation_shared.toId(value)) !== null && _toId !== void 0 ? _toId : NaN;
|
|
17
|
+
}), valibot.check((id) => require_validation_shared.isProvinceId(api, id), m.province));
|
|
18
|
+
const cityId = valibot.pipe(valibot.unknown(), valibot.transform((value) => {
|
|
19
|
+
var _toId2;
|
|
20
|
+
return (_toId2 = require_validation_shared.toId(value)) !== null && _toId2 !== void 0 ? _toId2 : NaN;
|
|
21
|
+
}), valibot.check((id) => require_validation_shared.isCityId(api, id), m.city));
|
|
22
|
+
return {
|
|
23
|
+
provinceId,
|
|
24
|
+
cityId,
|
|
25
|
+
province: valibot.pipe(valibot.union([valibot.string(), valibot.number()], m.province), valibot.check((value) => api.getProvince(value) !== void 0, m.province), valibot.transform((value) => api.getProvince(value))),
|
|
26
|
+
city: valibot.pipe(valibot.union([valibot.string(), valibot.number()], m.city), valibot.check((value) => api.getCity(value) !== void 0, m.city), valibot.transform((value) => api.getCity(value))),
|
|
27
|
+
provinceCity: valibot.pipe(valibot.object({
|
|
28
|
+
provinceId,
|
|
29
|
+
cityId
|
|
30
|
+
}), valibot.forward(valibot.check((value) => require_validation_shared.cityBelongsToProvince(api, value.cityId, value.provinceId), m.cityNotInProvince), ["cityId"]))
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
const schemas = createValibotSchemas();
|
|
34
|
+
const provinceIdSchema = schemas.provinceId;
|
|
35
|
+
const cityIdSchema = schemas.cityId;
|
|
36
|
+
const provinceSchema = schemas.province;
|
|
37
|
+
const citySchema = schemas.city;
|
|
38
|
+
const provinceCitySchema = schemas.provinceCity;
|
|
39
|
+
exports.cityIdSchema = cityIdSchema;
|
|
40
|
+
exports.citySchema = citySchema;
|
|
41
|
+
exports.createValibotSchemas = createValibotSchemas;
|
|
42
|
+
exports.provinceCitySchema = provinceCitySchema;
|
|
43
|
+
exports.provinceIdSchema = provinceIdSchema;
|
|
44
|
+
exports.provinceSchema = provinceSchema;
|
|
45
|
+
exports.toId = require_validation_shared.toId;
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=valibot.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valibot.cjs","names":["lite","DEFAULT_MESSAGES","v","toId","isProvinceId","isCityId","cityBelongsToProvince"],"sources":["../src/valibot.ts"],"sourcesContent":["import * as v from 'valibot';\r\nimport * as lite from './lite';\r\nimport type { FlatCity, IranCities, Province, Query } from './types';\r\nimport { DEFAULT_MESSAGES, cityBelongsToProvince, isCityId, isProvinceId, toId } from './validation-shared';\r\nimport type { ValidationMessages } from './validation-shared';\r\n\r\nexport interface ProvinceCityIds {\r\n provinceId: number;\r\n cityId: number;\r\n}\r\n\r\nexport interface IranCitiesValibotSchemas {\r\n provinceId: v.GenericSchema<unknown, number>;\r\n cityId: v.GenericSchema<unknown, number>;\r\n province: v.GenericSchema<unknown, Province>;\r\n city: v.GenericSchema<unknown, FlatCity>;\r\n provinceCity: v.GenericSchema<unknown, ProvinceCityIds>;\r\n}\r\n\r\nconst api: IranCities = lite;\r\n\r\nexport function createValibotSchemas(messages: Partial<ValidationMessages> = {}): IranCitiesValibotSchemas {\r\n const m: ValidationMessages = { ...DEFAULT_MESSAGES, ...messages };\r\n\r\n const provinceId = v.pipe(\r\n v.unknown(),\r\n v.transform((value) => toId(value) ?? NaN),\r\n v.check((id) => isProvinceId(api, id), m.province),\r\n ) as unknown as v.GenericSchema<unknown, number>;\r\n\r\n const cityId = v.pipe(\r\n v.unknown(),\r\n v.transform((value) => toId(value) ?? NaN),\r\n v.check((id) => isCityId(api, id), m.city),\r\n ) as unknown as v.GenericSchema<unknown, number>;\r\n\r\n const province = v.pipe(\r\n v.union([v.string(), v.number()], m.province),\r\n v.check((value) => api.getProvince(value as Query) !== undefined, m.province),\r\n v.transform((value) => api.getProvince(value as Query) as Province),\r\n ) as unknown as v.GenericSchema<unknown, Province>;\r\n\r\n const city = v.pipe(\r\n v.union([v.string(), v.number()], m.city),\r\n v.check((value) => api.getCity(value as Query) !== undefined, m.city),\r\n v.transform((value) => api.getCity(value as Query) as FlatCity),\r\n ) as unknown as v.GenericSchema<unknown, FlatCity>;\r\n\r\n const provinceCity = v.pipe(\r\n v.object({ provinceId, cityId }),\r\n v.forward(\r\n v.check((value) => cityBelongsToProvince(api, value.cityId, value.provinceId), m.cityNotInProvince),\r\n ['cityId'],\r\n ),\r\n ) as unknown as v.GenericSchema<unknown, ProvinceCityIds>;\r\n\r\n return { provinceId, cityId, province, city, provinceCity };\r\n}\r\n\r\nconst schemas: IranCitiesValibotSchemas = createValibotSchemas();\r\n\r\nexport const provinceIdSchema: v.GenericSchema<unknown, number> = schemas.provinceId;\r\nexport const cityIdSchema: v.GenericSchema<unknown, number> = schemas.cityId;\r\nexport const provinceSchema: v.GenericSchema<unknown, Province> = schemas.province;\r\nexport const citySchema: v.GenericSchema<unknown, FlatCity> = schemas.city;\r\nexport const provinceCitySchema: v.GenericSchema<unknown, ProvinceCityIds> = schemas.provinceCity;\r\n\r\nexport { toId };\r\nexport type { ValidationMessages };\r\n"],"mappings":";;;;;;;AAmBA,MAAM,MAAkBA,aAAAA;AAExB,SAAgB,qBAAqB,WAAwC,CAAC,GAA6B;CACzG,MAAM,IAAwB;EAAE,GAAGC,0BAAAA;EAAkB,GAAG;CAAS;CAEjE,MAAM,aAAaC,QAAE,KACnBA,QAAE,QAAQ,GACVA,QAAE,WAAW,UAAUC;;EAAK,QAAA,QAAA,0BAAA,KAAA,KAAK,OAAA,QAAA,UAAA,KAAA,IAAA,QAAK;CAAE,CAAC,GACzCD,QAAE,OAAO,OAAOE,0BAAAA,aAAa,KAAK,EAAE,GAAG,EAAE,QAAQ,CACnD;CAEA,MAAM,SAASF,QAAE,KACfA,QAAE,QAAQ,GACVA,QAAE,WAAW,UAAUC;;EAAK,QAAA,SAAA,0BAAA,KAAA,KAAK,OAAA,QAAA,WAAA,KAAA,IAAA,SAAK;CAAE,CAAC,GACzCD,QAAE,OAAO,OAAOG,0BAAAA,SAAS,KAAK,EAAE,GAAG,EAAE,IAAI,CAC3C;CAsBA,OAAO;EAAE;EAAY;EAAQ,UApBZH,QAAE,KACjBA,QAAE,MAAM,CAACA,QAAE,OAAO,GAAGA,QAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,GAC5CA,QAAE,OAAO,UAAU,IAAI,YAAY,KAAc,MAAM,KAAA,GAAW,EAAE,QAAQ,GAC5EA,QAAE,WAAW,UAAU,IAAI,YAAY,KAAc,CAAa,CAiBhC;EAAG,MAd1BA,QAAE,KACbA,QAAE,MAAM,CAACA,QAAE,OAAO,GAAGA,QAAE,OAAO,CAAC,GAAG,EAAE,IAAI,GACxCA,QAAE,OAAO,UAAU,IAAI,QAAQ,KAAc,MAAM,KAAA,GAAW,EAAE,IAAI,GACpEA,QAAE,WAAW,UAAU,IAAI,QAAQ,KAAc,CAAa,CAWtB;EAAG,cARxBA,QAAE,KACrBA,QAAE,OAAO;GAAE;GAAY;EAAO,CAAC,GAC/BA,QAAE,QACAA,QAAE,OAAO,UAAUI,0BAAAA,sBAAsB,KAAK,MAAM,QAAQ,MAAM,UAAU,GAAG,EAAE,iBAAiB,GAClG,CAAC,QAAQ,CACX,CAGsD;CAAE;AAC5D;AAEA,MAAM,UAAoC,qBAAqB;AAE/D,MAAa,mBAAqD,QAAQ;AAC1E,MAAa,eAAiD,QAAQ;AACtE,MAAa,iBAAqD,QAAQ;AAC1E,MAAa,aAAiD,QAAQ;AACtE,MAAa,qBAAgE,QAAQ"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { c as FlatCity, g as Province } from "./types-Ds_b0yHP.cjs";
|
|
2
|
+
import { n as toId, t as ValidationMessages } from "./validation-shared-C7l2cv4e.cjs";
|
|
3
|
+
import * as v from "valibot";
|
|
4
|
+
export interface ProvinceCityIds {
|
|
5
|
+
provinceId: number;
|
|
6
|
+
cityId: number;
|
|
7
|
+
}
|
|
8
|
+
export interface IranCitiesValibotSchemas {
|
|
9
|
+
provinceId: v.GenericSchema<unknown, number>;
|
|
10
|
+
cityId: v.GenericSchema<unknown, number>;
|
|
11
|
+
province: v.GenericSchema<unknown, Province>;
|
|
12
|
+
city: v.GenericSchema<unknown, FlatCity>;
|
|
13
|
+
provinceCity: v.GenericSchema<unknown, ProvinceCityIds>;
|
|
14
|
+
}
|
|
15
|
+
export declare function createValibotSchemas(messages?: Partial<ValidationMessages>): IranCitiesValibotSchemas;
|
|
16
|
+
export declare const provinceIdSchema: v.GenericSchema<unknown, number>;
|
|
17
|
+
export declare const cityIdSchema: v.GenericSchema<unknown, number>;
|
|
18
|
+
export declare const provinceSchema: v.GenericSchema<unknown, Province>;
|
|
19
|
+
export declare const citySchema: v.GenericSchema<unknown, FlatCity>;
|
|
20
|
+
export declare const provinceCitySchema: v.GenericSchema<unknown, ProvinceCityIds>;
|
|
21
|
+
export { type ValidationMessages, toId };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { c as FlatCity, g as Province } from "./types-Ds_b0yHP.mjs";
|
|
2
|
+
import { n as toId, t as ValidationMessages } from "./validation-shared-CJjGRx8p.mjs";
|
|
3
|
+
import * as v from "valibot";
|
|
4
|
+
export interface ProvinceCityIds {
|
|
5
|
+
provinceId: number;
|
|
6
|
+
cityId: number;
|
|
7
|
+
}
|
|
8
|
+
export interface IranCitiesValibotSchemas {
|
|
9
|
+
provinceId: v.GenericSchema<unknown, number>;
|
|
10
|
+
cityId: v.GenericSchema<unknown, number>;
|
|
11
|
+
province: v.GenericSchema<unknown, Province>;
|
|
12
|
+
city: v.GenericSchema<unknown, FlatCity>;
|
|
13
|
+
provinceCity: v.GenericSchema<unknown, ProvinceCityIds>;
|
|
14
|
+
}
|
|
15
|
+
export declare function createValibotSchemas(messages?: Partial<ValidationMessages>): IranCitiesValibotSchemas;
|
|
16
|
+
export declare const provinceIdSchema: v.GenericSchema<unknown, number>;
|
|
17
|
+
export declare const cityIdSchema: v.GenericSchema<unknown, number>;
|
|
18
|
+
export declare const provinceSchema: v.GenericSchema<unknown, Province>;
|
|
19
|
+
export declare const citySchema: v.GenericSchema<unknown, FlatCity>;
|
|
20
|
+
export declare const provinceCitySchema: v.GenericSchema<unknown, ProvinceCityIds>;
|
|
21
|
+
export { type ValidationMessages, toId };
|
package/dist/valibot.mjs
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { y as lite_exports } from "./lite-CtNPRhU-.mjs";
|
|
2
|
+
import { a as toId, i as isProvinceId, n as cityBelongsToProvince, r as isCityId, t as DEFAULT_MESSAGES } from "./validation-shared-mh_saZne.mjs";
|
|
3
|
+
import * as v from "valibot";
|
|
4
|
+
// src/valibot.ts
|
|
5
|
+
const api = lite_exports;
|
|
6
|
+
function createValibotSchemas(messages = {}) {
|
|
7
|
+
const m = {
|
|
8
|
+
...DEFAULT_MESSAGES,
|
|
9
|
+
...messages
|
|
10
|
+
};
|
|
11
|
+
const provinceId = v.pipe(v.unknown(), v.transform((value) => {
|
|
12
|
+
var _toId;
|
|
13
|
+
return (_toId = toId(value)) !== null && _toId !== void 0 ? _toId : NaN;
|
|
14
|
+
}), v.check((id) => isProvinceId(api, id), m.province));
|
|
15
|
+
const cityId = v.pipe(v.unknown(), v.transform((value) => {
|
|
16
|
+
var _toId2;
|
|
17
|
+
return (_toId2 = toId(value)) !== null && _toId2 !== void 0 ? _toId2 : NaN;
|
|
18
|
+
}), v.check((id) => isCityId(api, id), m.city));
|
|
19
|
+
return {
|
|
20
|
+
provinceId,
|
|
21
|
+
cityId,
|
|
22
|
+
province: v.pipe(v.union([v.string(), v.number()], m.province), v.check((value) => api.getProvince(value) !== void 0, m.province), v.transform((value) => api.getProvince(value))),
|
|
23
|
+
city: v.pipe(v.union([v.string(), v.number()], m.city), v.check((value) => api.getCity(value) !== void 0, m.city), v.transform((value) => api.getCity(value))),
|
|
24
|
+
provinceCity: v.pipe(v.object({
|
|
25
|
+
provinceId,
|
|
26
|
+
cityId
|
|
27
|
+
}), v.forward(v.check((value) => cityBelongsToProvince(api, value.cityId, value.provinceId), m.cityNotInProvince), ["cityId"]))
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const schemas = createValibotSchemas();
|
|
31
|
+
const provinceIdSchema = schemas.provinceId;
|
|
32
|
+
const cityIdSchema = schemas.cityId;
|
|
33
|
+
const provinceSchema = schemas.province;
|
|
34
|
+
const citySchema = schemas.city;
|
|
35
|
+
const provinceCitySchema = schemas.provinceCity;
|
|
36
|
+
export { cityIdSchema, citySchema, createValibotSchemas, provinceCitySchema, provinceIdSchema, provinceSchema, toId };
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=valibot.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valibot.mjs","names":["lite"],"sources":["../src/valibot.ts"],"sourcesContent":["import * as v from 'valibot';\r\nimport * as lite from './lite';\r\nimport type { FlatCity, IranCities, Province, Query } from './types';\r\nimport { DEFAULT_MESSAGES, cityBelongsToProvince, isCityId, isProvinceId, toId } from './validation-shared';\r\nimport type { ValidationMessages } from './validation-shared';\r\n\r\nexport interface ProvinceCityIds {\r\n provinceId: number;\r\n cityId: number;\r\n}\r\n\r\nexport interface IranCitiesValibotSchemas {\r\n provinceId: v.GenericSchema<unknown, number>;\r\n cityId: v.GenericSchema<unknown, number>;\r\n province: v.GenericSchema<unknown, Province>;\r\n city: v.GenericSchema<unknown, FlatCity>;\r\n provinceCity: v.GenericSchema<unknown, ProvinceCityIds>;\r\n}\r\n\r\nconst api: IranCities = lite;\r\n\r\nexport function createValibotSchemas(messages: Partial<ValidationMessages> = {}): IranCitiesValibotSchemas {\r\n const m: ValidationMessages = { ...DEFAULT_MESSAGES, ...messages };\r\n\r\n const provinceId = v.pipe(\r\n v.unknown(),\r\n v.transform((value) => toId(value) ?? NaN),\r\n v.check((id) => isProvinceId(api, id), m.province),\r\n ) as unknown as v.GenericSchema<unknown, number>;\r\n\r\n const cityId = v.pipe(\r\n v.unknown(),\r\n v.transform((value) => toId(value) ?? NaN),\r\n v.check((id) => isCityId(api, id), m.city),\r\n ) as unknown as v.GenericSchema<unknown, number>;\r\n\r\n const province = v.pipe(\r\n v.union([v.string(), v.number()], m.province),\r\n v.check((value) => api.getProvince(value as Query) !== undefined, m.province),\r\n v.transform((value) => api.getProvince(value as Query) as Province),\r\n ) as unknown as v.GenericSchema<unknown, Province>;\r\n\r\n const city = v.pipe(\r\n v.union([v.string(), v.number()], m.city),\r\n v.check((value) => api.getCity(value as Query) !== undefined, m.city),\r\n v.transform((value) => api.getCity(value as Query) as FlatCity),\r\n ) as unknown as v.GenericSchema<unknown, FlatCity>;\r\n\r\n const provinceCity = v.pipe(\r\n v.object({ provinceId, cityId }),\r\n v.forward(\r\n v.check((value) => cityBelongsToProvince(api, value.cityId, value.provinceId), m.cityNotInProvince),\r\n ['cityId'],\r\n ),\r\n ) as unknown as v.GenericSchema<unknown, ProvinceCityIds>;\r\n\r\n return { provinceId, cityId, province, city, provinceCity };\r\n}\r\n\r\nconst schemas: IranCitiesValibotSchemas = createValibotSchemas();\r\n\r\nexport const provinceIdSchema: v.GenericSchema<unknown, number> = schemas.provinceId;\r\nexport const cityIdSchema: v.GenericSchema<unknown, number> = schemas.cityId;\r\nexport const provinceSchema: v.GenericSchema<unknown, Province> = schemas.province;\r\nexport const citySchema: v.GenericSchema<unknown, FlatCity> = schemas.city;\r\nexport const provinceCitySchema: v.GenericSchema<unknown, ProvinceCityIds> = schemas.provinceCity;\r\n\r\nexport { toId };\r\nexport type { ValidationMessages };\r\n"],"mappings":";;;;AAmBA,MAAM,MAAkBA;AAExB,SAAgB,qBAAqB,WAAwC,CAAC,GAA6B;CACzG,MAAM,IAAwB;EAAE,GAAG;EAAkB,GAAG;CAAS;CAEjE,MAAM,aAAa,EAAE,KACnB,EAAE,QAAQ,GACV,EAAE,WAAW,UAAU;;EAAK,QAAA,QAAA,KAAA,KAAK,OAAA,QAAA,UAAA,KAAA,IAAA,QAAK;CAAE,CAAC,GACzC,EAAE,OAAO,OAAO,aAAa,KAAK,EAAE,GAAG,EAAE,QAAQ,CACnD;CAEA,MAAM,SAAS,EAAE,KACf,EAAE,QAAQ,GACV,EAAE,WAAW,UAAU;;EAAK,QAAA,SAAA,KAAA,KAAK,OAAA,QAAA,WAAA,KAAA,IAAA,SAAK;CAAE,CAAC,GACzC,EAAE,OAAO,OAAO,SAAS,KAAK,EAAE,GAAG,EAAE,IAAI,CAC3C;CAsBA,OAAO;EAAE;EAAY;EAAQ,UApBZ,EAAE,KACjB,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,GAC5C,EAAE,OAAO,UAAU,IAAI,YAAY,KAAc,MAAM,KAAA,GAAW,EAAE,QAAQ,GAC5E,EAAE,WAAW,UAAU,IAAI,YAAY,KAAc,CAAa,CAiBhC;EAAG,MAd1B,EAAE,KACb,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,GACxC,EAAE,OAAO,UAAU,IAAI,QAAQ,KAAc,MAAM,KAAA,GAAW,EAAE,IAAI,GACpE,EAAE,WAAW,UAAU,IAAI,QAAQ,KAAc,CAAa,CAWtB;EAAG,cARxB,EAAE,KACrB,EAAE,OAAO;GAAE;GAAY;EAAO,CAAC,GAC/B,EAAE,QACA,EAAE,OAAO,UAAU,sBAAsB,KAAK,MAAM,QAAQ,MAAM,UAAU,GAAG,EAAE,iBAAiB,GAClG,CAAC,QAAQ,CACX,CAGsD;CAAE;AAC5D;AAEA,MAAM,UAAoC,qBAAqB;AAE/D,MAAa,mBAAqD,QAAQ;AAC1E,MAAa,eAAiD,QAAQ;AACtE,MAAa,iBAAqD,QAAQ;AAC1E,MAAa,aAAiD,QAAQ;AACtE,MAAa,qBAAgE,QAAQ"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
const require_changes = require("./changes-B-wz9-Gy.cjs");
|
|
2
|
+
// src/validation-shared.ts
|
|
3
|
+
const DEFAULT_MESSAGES = {
|
|
4
|
+
province: "استان انتخابشده معتبر نیست.",
|
|
5
|
+
city: "شهر انتخابشده معتبر نیست.",
|
|
6
|
+
cityNotInProvince: "این شهر در استان انتخابشده نیست."
|
|
7
|
+
};
|
|
8
|
+
function toId(value) {
|
|
9
|
+
if (typeof value === "number") return Number.isInteger(value) ? value : void 0;
|
|
10
|
+
if (typeof value !== "string") return void 0;
|
|
11
|
+
const text = require_changes.normalize(value);
|
|
12
|
+
return /^\d+$/.test(text) ? Number(text) : void 0;
|
|
13
|
+
}
|
|
14
|
+
function isProvinceId(api, value) {
|
|
15
|
+
const id = toId(value);
|
|
16
|
+
return id !== void 0 && api.getProvinceById(id) !== void 0;
|
|
17
|
+
}
|
|
18
|
+
function isCityId(api, value) {
|
|
19
|
+
const id = toId(value);
|
|
20
|
+
return id !== void 0 && api.getCityById(id) !== void 0;
|
|
21
|
+
}
|
|
22
|
+
function cityBelongsToProvince(api, cityId, provinceId) {
|
|
23
|
+
var _toId;
|
|
24
|
+
const city = api.getCityById((_toId = toId(cityId)) !== null && _toId !== void 0 ? _toId : -1);
|
|
25
|
+
return !!city && city.provinceId === toId(provinceId);
|
|
26
|
+
}
|
|
27
|
+
Object.defineProperty(exports, "DEFAULT_MESSAGES", {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
get: function() {
|
|
30
|
+
return DEFAULT_MESSAGES;
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
Object.defineProperty(exports, "cityBelongsToProvince", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
get: function() {
|
|
36
|
+
return cityBelongsToProvince;
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(exports, "isCityId", {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
get: function() {
|
|
42
|
+
return isCityId;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
Object.defineProperty(exports, "isProvinceId", {
|
|
46
|
+
enumerable: true,
|
|
47
|
+
get: function() {
|
|
48
|
+
return isProvinceId;
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
Object.defineProperty(exports, "toId", {
|
|
52
|
+
enumerable: true,
|
|
53
|
+
get: function() {
|
|
54
|
+
return toId;
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=validation-shared-BFilTuY1.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-shared-BFilTuY1.cjs","names":["normalize"],"sources":["../src/validation-shared.ts"],"sourcesContent":["import { normalize } from './normalize';\r\nimport type { IranCities } from './types';\r\n\r\nexport interface ValidationMessages {\r\n province: string;\r\n city: string;\r\n cityNotInProvince: string;\r\n}\r\n\r\nexport const DEFAULT_MESSAGES: ValidationMessages = {\r\n province: 'استان انتخابشده معتبر نیست.',\r\n city: 'شهر انتخابشده معتبر نیست.',\r\n cityNotInProvince: 'این شهر در استان انتخابشده نیست.',\r\n};\r\n\r\nexport function toId(value: unknown): number | undefined {\r\n if (typeof value === 'number') return Number.isInteger(value) ? value : undefined;\r\n if (typeof value !== 'string') return undefined;\r\n const text = normalize(value);\r\n return /^\\d+$/.test(text) ? Number(text) : undefined;\r\n}\r\n\r\nexport function isProvinceId(api: IranCities, value: unknown): boolean {\r\n const id = toId(value);\r\n return id !== undefined && api.getProvinceById(id) !== undefined;\r\n}\r\n\r\nexport function isCityId(api: IranCities, value: unknown): boolean {\r\n const id = toId(value);\r\n return id !== undefined && api.getCityById(id) !== undefined;\r\n}\r\n\r\nexport function cityBelongsToProvince(api: IranCities, cityId: unknown, provinceId: unknown): boolean {\r\n const city = api.getCityById(toId(cityId) ?? -1);\r\n return !!city && city.provinceId === toId(provinceId);\r\n}\r\n"],"mappings":";;AASA,MAAa,mBAAuC;CAClD,UAAU;CACV,MAAM;CACN,mBAAmB;AACrB;AAEA,SAAgB,KAAK,OAAoC;CACvD,IAAI,OAAO,UAAU,UAAU,OAAO,OAAO,UAAU,KAAK,IAAI,QAAQ,KAAA;CACxE,IAAI,OAAO,UAAU,UAAU,OAAO,KAAA;CACtC,MAAM,OAAOA,gBAAAA,UAAU,KAAK;CAC5B,OAAO,QAAQ,KAAK,IAAI,IAAI,OAAO,IAAI,IAAI,KAAA;AAC7C;AAEA,SAAgB,aAAa,KAAiB,OAAyB;CACrE,MAAM,KAAK,KAAK,KAAK;CACrB,OAAO,OAAO,KAAA,KAAa,IAAI,gBAAgB,EAAE,MAAM,KAAA;AACzD;AAEA,SAAgB,SAAS,KAAiB,OAAyB;CACjE,MAAM,KAAK,KAAK,KAAK;CACrB,OAAO,OAAO,KAAA,KAAa,IAAI,YAAY,EAAE,MAAM,KAAA;AACrD;AAEA,SAAgB,sBAAsB,KAAiB,QAAiB,YAA8B;;CACpG,MAAM,OAAO,IAAI,aAAA,QAAY,KAAK,MAAM,OAAA,QAAA,UAAA,KAAA,IAAA,QAAK,EAAE;CAC/C,OAAO,CAAC,CAAC,QAAQ,KAAK,eAAe,KAAK,UAAU;AACtD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { o as normalize } from "./changes-DLZkHBwZ.mjs";
|
|
2
|
+
// src/validation-shared.ts
|
|
3
|
+
const DEFAULT_MESSAGES = {
|
|
4
|
+
province: "استان انتخابشده معتبر نیست.",
|
|
5
|
+
city: "شهر انتخابشده معتبر نیست.",
|
|
6
|
+
cityNotInProvince: "این شهر در استان انتخابشده نیست."
|
|
7
|
+
};
|
|
8
|
+
function toId(value) {
|
|
9
|
+
if (typeof value === "number") return Number.isInteger(value) ? value : void 0;
|
|
10
|
+
if (typeof value !== "string") return void 0;
|
|
11
|
+
const text = normalize(value);
|
|
12
|
+
return /^\d+$/.test(text) ? Number(text) : void 0;
|
|
13
|
+
}
|
|
14
|
+
function isProvinceId(api, value) {
|
|
15
|
+
const id = toId(value);
|
|
16
|
+
return id !== void 0 && api.getProvinceById(id) !== void 0;
|
|
17
|
+
}
|
|
18
|
+
function isCityId(api, value) {
|
|
19
|
+
const id = toId(value);
|
|
20
|
+
return id !== void 0 && api.getCityById(id) !== void 0;
|
|
21
|
+
}
|
|
22
|
+
function cityBelongsToProvince(api, cityId, provinceId) {
|
|
23
|
+
var _toId;
|
|
24
|
+
const city = api.getCityById((_toId = toId(cityId)) !== null && _toId !== void 0 ? _toId : -1);
|
|
25
|
+
return !!city && city.provinceId === toId(provinceId);
|
|
26
|
+
}
|
|
27
|
+
export { toId as a, isProvinceId as i, cityBelongsToProvince as n, isCityId as r, DEFAULT_MESSAGES as t };
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=validation-shared-mh_saZne.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-shared-mh_saZne.mjs","names":[],"sources":["../src/validation-shared.ts"],"sourcesContent":["import { normalize } from './normalize';\r\nimport type { IranCities } from './types';\r\n\r\nexport interface ValidationMessages {\r\n province: string;\r\n city: string;\r\n cityNotInProvince: string;\r\n}\r\n\r\nexport const DEFAULT_MESSAGES: ValidationMessages = {\r\n province: 'استان انتخابشده معتبر نیست.',\r\n city: 'شهر انتخابشده معتبر نیست.',\r\n cityNotInProvince: 'این شهر در استان انتخابشده نیست.',\r\n};\r\n\r\nexport function toId(value: unknown): number | undefined {\r\n if (typeof value === 'number') return Number.isInteger(value) ? value : undefined;\r\n if (typeof value !== 'string') return undefined;\r\n const text = normalize(value);\r\n return /^\\d+$/.test(text) ? Number(text) : undefined;\r\n}\r\n\r\nexport function isProvinceId(api: IranCities, value: unknown): boolean {\r\n const id = toId(value);\r\n return id !== undefined && api.getProvinceById(id) !== undefined;\r\n}\r\n\r\nexport function isCityId(api: IranCities, value: unknown): boolean {\r\n const id = toId(value);\r\n return id !== undefined && api.getCityById(id) !== undefined;\r\n}\r\n\r\nexport function cityBelongsToProvince(api: IranCities, cityId: unknown, provinceId: unknown): boolean {\r\n const city = api.getCityById(toId(cityId) ?? -1);\r\n return !!city && city.provinceId === toId(provinceId);\r\n}\r\n"],"mappings":";;AASA,MAAa,mBAAuC;CAClD,UAAU;CACV,MAAM;CACN,mBAAmB;AACrB;AAEA,SAAgB,KAAK,OAAoC;CACvD,IAAI,OAAO,UAAU,UAAU,OAAO,OAAO,UAAU,KAAK,IAAI,QAAQ,KAAA;CACxE,IAAI,OAAO,UAAU,UAAU,OAAO,KAAA;CACtC,MAAM,OAAO,UAAU,KAAK;CAC5B,OAAO,QAAQ,KAAK,IAAI,IAAI,OAAO,IAAI,IAAI,KAAA;AAC7C;AAEA,SAAgB,aAAa,KAAiB,OAAyB;CACrE,MAAM,KAAK,KAAK,KAAK;CACrB,OAAO,OAAO,KAAA,KAAa,IAAI,gBAAgB,EAAE,MAAM,KAAA;AACzD;AAEA,SAAgB,SAAS,KAAiB,OAAyB;CACjE,MAAM,KAAK,KAAK,KAAK;CACrB,OAAO,OAAO,KAAA,KAAa,IAAI,YAAY,EAAE,MAAM,KAAA;AACrD;AAEA,SAAgB,sBAAsB,KAAiB,QAAiB,YAA8B;;CACpG,MAAM,OAAO,IAAI,aAAA,QAAY,KAAK,MAAM,OAAA,QAAA,UAAA,KAAA,IAAA,QAAK,EAAE;CAC/C,OAAO,CAAC,CAAC,QAAQ,KAAK,eAAe,KAAK,UAAU;AACtD"}
|
package/dist/zod.cjs
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_lite = require("./lite-CutarzAc.cjs");
|
|
3
|
+
const require_validation_shared = require("./validation-shared-BFilTuY1.cjs");
|
|
4
|
+
let zod = require("zod");
|
|
5
|
+
// src/zod.ts
|
|
6
|
+
const api = require_lite.lite_exports;
|
|
7
|
+
function createZodSchemas(messages = {}) {
|
|
8
|
+
const m = {
|
|
9
|
+
...require_validation_shared.DEFAULT_MESSAGES,
|
|
10
|
+
...messages
|
|
11
|
+
};
|
|
12
|
+
const query = zod.z.union([zod.z.string(), zod.z.number()]);
|
|
13
|
+
const provinceId = zod.z.preprocess((value) => {
|
|
14
|
+
var _toId;
|
|
15
|
+
return (_toId = require_validation_shared.toId(value)) !== null && _toId !== void 0 ? _toId : value;
|
|
16
|
+
}, zod.z.number({ message: m.province }).refine((id) => require_validation_shared.isProvinceId(api, id), { message: m.province }));
|
|
17
|
+
const cityId = zod.z.preprocess((value) => {
|
|
18
|
+
var _toId2;
|
|
19
|
+
return (_toId2 = require_validation_shared.toId(value)) !== null && _toId2 !== void 0 ? _toId2 : value;
|
|
20
|
+
}, zod.z.number({ message: m.city }).refine((id) => require_validation_shared.isCityId(api, id), { message: m.city }));
|
|
21
|
+
return {
|
|
22
|
+
provinceId,
|
|
23
|
+
cityId,
|
|
24
|
+
province: query.refine((value) => api.getProvince(value) !== void 0, { message: m.province }).transform((value) => api.getProvince(value)),
|
|
25
|
+
city: query.refine((value) => api.getCity(value) !== void 0, { message: m.city }).transform((value) => api.getCity(value)),
|
|
26
|
+
provinceCity: zod.z.object({
|
|
27
|
+
provinceId,
|
|
28
|
+
cityId
|
|
29
|
+
}).refine((value) => require_validation_shared.cityBelongsToProvince(api, value.cityId, value.provinceId), {
|
|
30
|
+
message: m.cityNotInProvince,
|
|
31
|
+
path: ["cityId"]
|
|
32
|
+
})
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
const schemas = createZodSchemas();
|
|
36
|
+
const provinceIdSchema = schemas.provinceId;
|
|
37
|
+
const cityIdSchema = schemas.cityId;
|
|
38
|
+
const provinceSchema = schemas.province;
|
|
39
|
+
const citySchema = schemas.city;
|
|
40
|
+
const provinceCitySchema = schemas.provinceCity;
|
|
41
|
+
exports.cityIdSchema = cityIdSchema;
|
|
42
|
+
exports.citySchema = citySchema;
|
|
43
|
+
exports.createZodSchemas = createZodSchemas;
|
|
44
|
+
exports.provinceCitySchema = provinceCitySchema;
|
|
45
|
+
exports.provinceIdSchema = provinceIdSchema;
|
|
46
|
+
exports.provinceSchema = provinceSchema;
|
|
47
|
+
exports.toId = require_validation_shared.toId;
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=zod.cjs.map
|
package/dist/zod.cjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod.cjs","names":["lite","DEFAULT_MESSAGES","z","toId","isProvinceId","isCityId","cityBelongsToProvince"],"sources":["../src/zod.ts"],"sourcesContent":["import { z } from 'zod';\r\nimport * as lite from './lite';\r\nimport type { FlatCity, IranCities, Province, Query } from './types';\r\nimport { DEFAULT_MESSAGES, cityBelongsToProvince, isCityId, isProvinceId, toId } from './validation-shared';\r\nimport type { ValidationMessages } from './validation-shared';\r\n\r\nexport interface ProvinceCityIds {\r\n provinceId: number;\r\n cityId: number;\r\n}\r\n\r\nexport interface IranCitiesZodSchemas {\r\n provinceId: z.ZodType<number>;\r\n cityId: z.ZodType<number>;\r\n province: z.ZodType<Province>;\r\n city: z.ZodType<FlatCity>;\r\n provinceCity: z.ZodType<ProvinceCityIds>;\r\n}\r\n\r\nconst api: IranCities = lite;\r\n\r\nexport function createZodSchemas(messages: Partial<ValidationMessages> = {}): IranCitiesZodSchemas {\r\n const m: ValidationMessages = { ...DEFAULT_MESSAGES, ...messages };\r\n const query = z.union([z.string(), z.number()]);\r\n\r\n const provinceId = z.preprocess(\r\n (value) => toId(value) ?? value,\r\n z.number({ message: m.province }).refine((id) => isProvinceId(api, id), { message: m.province }),\r\n ) as unknown as z.ZodType<number>;\r\n\r\n const cityId = z.preprocess(\r\n (value) => toId(value) ?? value,\r\n z.number({ message: m.city }).refine((id) => isCityId(api, id), { message: m.city }),\r\n ) as unknown as z.ZodType<number>;\r\n\r\n const province = query\r\n .refine((value) => api.getProvince(value as Query) !== undefined, { message: m.province })\r\n .transform((value) => api.getProvince(value as Query) as Province) as unknown as z.ZodType<Province>;\r\n\r\n const city = query\r\n .refine((value) => api.getCity(value as Query) !== undefined, { message: m.city })\r\n .transform((value) => api.getCity(value as Query) as FlatCity) as unknown as z.ZodType<FlatCity>;\r\n\r\n const provinceCity = z\r\n .object({ provinceId, cityId })\r\n .refine((value) => cityBelongsToProvince(api, value.cityId, value.provinceId), {\r\n message: m.cityNotInProvince,\r\n path: ['cityId'],\r\n }) as unknown as z.ZodType<ProvinceCityIds>;\r\n\r\n return { provinceId, cityId, province, city, provinceCity };\r\n}\r\n\r\nconst schemas: IranCitiesZodSchemas = createZodSchemas();\r\n\r\nexport const provinceIdSchema: z.ZodType<number> = schemas.provinceId;\r\nexport const cityIdSchema: z.ZodType<number> = schemas.cityId;\r\nexport const provinceSchema: z.ZodType<Province> = schemas.province;\r\nexport const citySchema: z.ZodType<FlatCity> = schemas.city;\r\nexport const provinceCitySchema: z.ZodType<ProvinceCityIds> = schemas.provinceCity;\r\n\r\nexport { toId };\r\nexport type { ValidationMessages };\r\n"],"mappings":";;;;;AAmBA,MAAM,MAAkBA,aAAAA;AAExB,SAAgB,iBAAiB,WAAwC,CAAC,GAAyB;CACjG,MAAM,IAAwB;EAAE,GAAGC,0BAAAA;EAAkB,GAAG;CAAS;CACjE,MAAM,QAAQC,IAAAA,EAAE,MAAM,CAACA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,OAAO,CAAC,CAAC;CAE9C,MAAM,aAAaA,IAAAA,EAAE,YAClB,UAAUC;;EAAK,QAAA,QAAA,0BAAA,KAAA,KAAK,OAAA,QAAA,UAAA,KAAA,IAAA,QAAK;CAAI,GAC9BD,IAAAA,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,OAAOE,0BAAAA,aAAa,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CACjG;CAEA,MAAM,SAASF,IAAAA,EAAE,YACd,UAAUC;;EAAK,QAAA,SAAA,0BAAA,KAAA,KAAK,OAAA,QAAA,WAAA,KAAA,IAAA,SAAK;CAAI,GAC9BD,IAAAA,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,OAAOG,0BAAAA,SAAS,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CACrF;CAiBA,OAAO;EAAE;EAAY;EAAQ,UAfZ,MACd,QAAQ,UAAU,IAAI,YAAY,KAAc,MAAM,KAAA,GAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CACzF,WAAW,UAAU,IAAI,YAAY,KAAc,CAalB;EAAG,MAX1B,MACV,QAAQ,UAAU,IAAI,QAAQ,KAAc,MAAM,KAAA,GAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CACjF,WAAW,UAAU,IAAI,QAAQ,KAAc,CASR;EAAG,cAPxBH,IAAAA,EAClB,OAAO;GAAE;GAAY;EAAO,CAAC,CAAC,CAC9B,QAAQ,UAAUI,0BAAAA,sBAAsB,KAAK,MAAM,QAAQ,MAAM,UAAU,GAAG;GAC7E,SAAS,EAAE;GACX,MAAM,CAAC,QAAQ;EACjB,CAEsD;CAAE;AAC5D;AAEA,MAAM,UAAgC,iBAAiB;AAEvD,MAAa,mBAAsC,QAAQ;AAC3D,MAAa,eAAkC,QAAQ;AACvD,MAAa,iBAAsC,QAAQ;AAC3D,MAAa,aAAkC,QAAQ;AACvD,MAAa,qBAAiD,QAAQ"}
|
package/dist/zod.d.cts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { c as FlatCity, g as Province } from "./types-Ds_b0yHP.cjs";
|
|
2
|
+
import { n as toId, t as ValidationMessages } from "./validation-shared-C7l2cv4e.cjs";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
export interface ProvinceCityIds {
|
|
5
|
+
provinceId: number;
|
|
6
|
+
cityId: number;
|
|
7
|
+
}
|
|
8
|
+
export interface IranCitiesZodSchemas {
|
|
9
|
+
provinceId: z.ZodType<number>;
|
|
10
|
+
cityId: z.ZodType<number>;
|
|
11
|
+
province: z.ZodType<Province>;
|
|
12
|
+
city: z.ZodType<FlatCity>;
|
|
13
|
+
provinceCity: z.ZodType<ProvinceCityIds>;
|
|
14
|
+
}
|
|
15
|
+
export declare function createZodSchemas(messages?: Partial<ValidationMessages>): IranCitiesZodSchemas;
|
|
16
|
+
export declare const provinceIdSchema: z.ZodType<number>;
|
|
17
|
+
export declare const cityIdSchema: z.ZodType<number>;
|
|
18
|
+
export declare const provinceSchema: z.ZodType<Province>;
|
|
19
|
+
export declare const citySchema: z.ZodType<FlatCity>;
|
|
20
|
+
export declare const provinceCitySchema: z.ZodType<ProvinceCityIds>;
|
|
21
|
+
export { type ValidationMessages, toId };
|
package/dist/zod.d.mts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { c as FlatCity, g as Province } from "./types-Ds_b0yHP.mjs";
|
|
2
|
+
import { n as toId, t as ValidationMessages } from "./validation-shared-CJjGRx8p.mjs";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
export interface ProvinceCityIds {
|
|
5
|
+
provinceId: number;
|
|
6
|
+
cityId: number;
|
|
7
|
+
}
|
|
8
|
+
export interface IranCitiesZodSchemas {
|
|
9
|
+
provinceId: z.ZodType<number>;
|
|
10
|
+
cityId: z.ZodType<number>;
|
|
11
|
+
province: z.ZodType<Province>;
|
|
12
|
+
city: z.ZodType<FlatCity>;
|
|
13
|
+
provinceCity: z.ZodType<ProvinceCityIds>;
|
|
14
|
+
}
|
|
15
|
+
export declare function createZodSchemas(messages?: Partial<ValidationMessages>): IranCitiesZodSchemas;
|
|
16
|
+
export declare const provinceIdSchema: z.ZodType<number>;
|
|
17
|
+
export declare const cityIdSchema: z.ZodType<number>;
|
|
18
|
+
export declare const provinceSchema: z.ZodType<Province>;
|
|
19
|
+
export declare const citySchema: z.ZodType<FlatCity>;
|
|
20
|
+
export declare const provinceCitySchema: z.ZodType<ProvinceCityIds>;
|
|
21
|
+
export { type ValidationMessages, toId };
|
package/dist/zod.mjs
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { y as lite_exports } from "./lite-CtNPRhU-.mjs";
|
|
2
|
+
import { a as toId, i as isProvinceId, n as cityBelongsToProvince, r as isCityId, t as DEFAULT_MESSAGES } from "./validation-shared-mh_saZne.mjs";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
// src/zod.ts
|
|
5
|
+
const api = lite_exports;
|
|
6
|
+
function createZodSchemas(messages = {}) {
|
|
7
|
+
const m = {
|
|
8
|
+
...DEFAULT_MESSAGES,
|
|
9
|
+
...messages
|
|
10
|
+
};
|
|
11
|
+
const query = z.union([z.string(), z.number()]);
|
|
12
|
+
const provinceId = z.preprocess((value) => {
|
|
13
|
+
var _toId;
|
|
14
|
+
return (_toId = toId(value)) !== null && _toId !== void 0 ? _toId : value;
|
|
15
|
+
}, z.number({ message: m.province }).refine((id) => isProvinceId(api, id), { message: m.province }));
|
|
16
|
+
const cityId = z.preprocess((value) => {
|
|
17
|
+
var _toId2;
|
|
18
|
+
return (_toId2 = toId(value)) !== null && _toId2 !== void 0 ? _toId2 : value;
|
|
19
|
+
}, z.number({ message: m.city }).refine((id) => isCityId(api, id), { message: m.city }));
|
|
20
|
+
return {
|
|
21
|
+
provinceId,
|
|
22
|
+
cityId,
|
|
23
|
+
province: query.refine((value) => api.getProvince(value) !== void 0, { message: m.province }).transform((value) => api.getProvince(value)),
|
|
24
|
+
city: query.refine((value) => api.getCity(value) !== void 0, { message: m.city }).transform((value) => api.getCity(value)),
|
|
25
|
+
provinceCity: z.object({
|
|
26
|
+
provinceId,
|
|
27
|
+
cityId
|
|
28
|
+
}).refine((value) => cityBelongsToProvince(api, value.cityId, value.provinceId), {
|
|
29
|
+
message: m.cityNotInProvince,
|
|
30
|
+
path: ["cityId"]
|
|
31
|
+
})
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const schemas = createZodSchemas();
|
|
35
|
+
const provinceIdSchema = schemas.provinceId;
|
|
36
|
+
const cityIdSchema = schemas.cityId;
|
|
37
|
+
const provinceSchema = schemas.province;
|
|
38
|
+
const citySchema = schemas.city;
|
|
39
|
+
const provinceCitySchema = schemas.provinceCity;
|
|
40
|
+
export { cityIdSchema, citySchema, createZodSchemas, provinceCitySchema, provinceIdSchema, provinceSchema, toId };
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=zod.mjs.map
|
package/dist/zod.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod.mjs","names":["lite"],"sources":["../src/zod.ts"],"sourcesContent":["import { z } from 'zod';\r\nimport * as lite from './lite';\r\nimport type { FlatCity, IranCities, Province, Query } from './types';\r\nimport { DEFAULT_MESSAGES, cityBelongsToProvince, isCityId, isProvinceId, toId } from './validation-shared';\r\nimport type { ValidationMessages } from './validation-shared';\r\n\r\nexport interface ProvinceCityIds {\r\n provinceId: number;\r\n cityId: number;\r\n}\r\n\r\nexport interface IranCitiesZodSchemas {\r\n provinceId: z.ZodType<number>;\r\n cityId: z.ZodType<number>;\r\n province: z.ZodType<Province>;\r\n city: z.ZodType<FlatCity>;\r\n provinceCity: z.ZodType<ProvinceCityIds>;\r\n}\r\n\r\nconst api: IranCities = lite;\r\n\r\nexport function createZodSchemas(messages: Partial<ValidationMessages> = {}): IranCitiesZodSchemas {\r\n const m: ValidationMessages = { ...DEFAULT_MESSAGES, ...messages };\r\n const query = z.union([z.string(), z.number()]);\r\n\r\n const provinceId = z.preprocess(\r\n (value) => toId(value) ?? value,\r\n z.number({ message: m.province }).refine((id) => isProvinceId(api, id), { message: m.province }),\r\n ) as unknown as z.ZodType<number>;\r\n\r\n const cityId = z.preprocess(\r\n (value) => toId(value) ?? value,\r\n z.number({ message: m.city }).refine((id) => isCityId(api, id), { message: m.city }),\r\n ) as unknown as z.ZodType<number>;\r\n\r\n const province = query\r\n .refine((value) => api.getProvince(value as Query) !== undefined, { message: m.province })\r\n .transform((value) => api.getProvince(value as Query) as Province) as unknown as z.ZodType<Province>;\r\n\r\n const city = query\r\n .refine((value) => api.getCity(value as Query) !== undefined, { message: m.city })\r\n .transform((value) => api.getCity(value as Query) as FlatCity) as unknown as z.ZodType<FlatCity>;\r\n\r\n const provinceCity = z\r\n .object({ provinceId, cityId })\r\n .refine((value) => cityBelongsToProvince(api, value.cityId, value.provinceId), {\r\n message: m.cityNotInProvince,\r\n path: ['cityId'],\r\n }) as unknown as z.ZodType<ProvinceCityIds>;\r\n\r\n return { provinceId, cityId, province, city, provinceCity };\r\n}\r\n\r\nconst schemas: IranCitiesZodSchemas = createZodSchemas();\r\n\r\nexport const provinceIdSchema: z.ZodType<number> = schemas.provinceId;\r\nexport const cityIdSchema: z.ZodType<number> = schemas.cityId;\r\nexport const provinceSchema: z.ZodType<Province> = schemas.province;\r\nexport const citySchema: z.ZodType<FlatCity> = schemas.city;\r\nexport const provinceCitySchema: z.ZodType<ProvinceCityIds> = schemas.provinceCity;\r\n\r\nexport { toId };\r\nexport type { ValidationMessages };\r\n"],"mappings":";;;;AAmBA,MAAM,MAAkBA;AAExB,SAAgB,iBAAiB,WAAwC,CAAC,GAAyB;CACjG,MAAM,IAAwB;EAAE,GAAG;EAAkB,GAAG;CAAS;CACjE,MAAM,QAAQ,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,CAAC;CAE9C,MAAM,aAAa,EAAE,YAClB,UAAU;;EAAK,QAAA,QAAA,KAAA,KAAK,OAAA,QAAA,UAAA,KAAA,IAAA,QAAK;CAAI,GAC9B,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,OAAO,aAAa,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CACjG;CAEA,MAAM,SAAS,EAAE,YACd,UAAU;;EAAK,QAAA,SAAA,KAAA,KAAK,OAAA,QAAA,WAAA,KAAA,IAAA,SAAK;CAAI,GAC9B,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,OAAO,SAAS,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CACrF;CAiBA,OAAO;EAAE;EAAY;EAAQ,UAfZ,MACd,QAAQ,UAAU,IAAI,YAAY,KAAc,MAAM,KAAA,GAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CACzF,WAAW,UAAU,IAAI,YAAY,KAAc,CAalB;EAAG,MAX1B,MACV,QAAQ,UAAU,IAAI,QAAQ,KAAc,MAAM,KAAA,GAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CACjF,WAAW,UAAU,IAAI,QAAQ,KAAc,CASR;EAAG,cAPxB,EAClB,OAAO;GAAE;GAAY;EAAO,CAAC,CAAC,CAC9B,QAAQ,UAAU,sBAAsB,KAAK,MAAM,QAAQ,MAAM,UAAU,GAAG;GAC7E,SAAS,EAAE;GACX,MAAM,CAAC,QAAQ;EACjB,CAEsD;CAAE;AAC5D;AAEA,MAAM,UAAgC,iBAAiB;AAEvD,MAAa,mBAAsC,QAAQ;AAC3D,MAAa,eAAkC,QAAQ;AACvD,MAAa,iBAAsC,QAAQ;AAC3D,MAAa,aAAkC,QAAQ;AACvD,MAAa,qBAAiD,QAAQ"}
|