codeforlife 2.15.0 → 2.15.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Countdown-CawuOdYd.js → Countdown-7u1DzDR6.js} +2 -2
- package/dist/{Countdown-CawuOdYd.js.map → Countdown-7u1DzDR6.js.map} +1 -1
- package/dist/{Countdown-BlWW6v4w.cjs → Countdown-DcpBiBvm.cjs} +2 -2
- package/dist/{Countdown-BlWW6v4w.cjs.map → Countdown-DcpBiBvm.cjs.map} +1 -1
- package/dist/{LinkButton-CT5GnUkH.cjs → LinkButton-BckDwGNE.cjs} +2 -2
- package/dist/{LinkButton-CT5GnUkH.cjs.map → LinkButton-BckDwGNE.cjs.map} +1 -1
- package/dist/{LinkButton-BeFBbR7x.js → LinkButton-Bx0ZVW3I.js} +2 -2
- package/dist/{LinkButton-BeFBbR7x.js.map → LinkButton-Bx0ZVW3I.js.map} +1 -1
- package/dist/{Navigate-DBH0qlzU.js → Navigate-CCGSrY0W.js} +2 -2
- package/dist/{Navigate-DBH0qlzU.js.map → Navigate-CCGSrY0W.js.map} +1 -1
- package/dist/{Navigate-w-jtzle_.cjs → Navigate-CsNv1-lV.cjs} +2 -2
- package/dist/{Navigate-w-jtzle_.cjs.map → Navigate-CsNv1-lV.cjs.map} +1 -1
- package/dist/api/endpoints/index.cjs.js +1 -1
- package/dist/api/endpoints/index.es.js +2 -2
- package/dist/api/index.cjs.js +1 -1
- package/dist/api/index.es.js +3 -3
- package/dist/{api-CaEovEUU.cjs → api-B0rgE7_-.cjs} +2 -2
- package/dist/{api-CaEovEUU.cjs.map → api-B0rgE7_-.cjs.map} +1 -1
- package/dist/{api-r7TLkejc.js → api-vqkeMjJB.js} +2 -2
- package/dist/{api-r7TLkejc.js.map → api-vqkeMjJB.js.map} +1 -1
- package/dist/{auth-DdbHSDCh.cjs → auth-BLHTLvd6.cjs} +2 -2
- package/dist/{auth-DdbHSDCh.cjs.map → auth-BLHTLvd6.cjs.map} +1 -1
- package/dist/{auth-BXLedrZH.js → auth-gIOzqmde.js} +3 -3
- package/dist/{auth-BXLedrZH.js.map → auth-gIOzqmde.js.map} +1 -1
- package/dist/components/form/index.cjs.js +1 -1
- package/dist/components/form/index.es.js +1 -1
- package/dist/components/index.cjs.js +1 -1
- package/dist/components/index.es.js +7 -7
- package/dist/components/page/index.cjs.js +1 -1
- package/dist/components/page/index.es.js +1 -1
- package/dist/components/router/index.cjs.js +1 -1
- package/dist/components/router/index.es.js +2 -2
- package/dist/features/index.cjs.js +1 -1
- package/dist/features/index.es.js +4 -4
- package/dist/hooks/index.cjs.js +1 -1
- package/dist/hooks/index.es.js +1 -1
- package/dist/{index-CTYVnDkQ.js → index-BE-uSkLK.js} +18 -17
- package/dist/{index-CTYVnDkQ.js.map → index-BE-uSkLK.js.map} +1 -1
- package/dist/index-BGw9SbMr.cjs +2 -0
- package/dist/{index-CgShi-oQ.cjs.map → index-BGw9SbMr.cjs.map} +1 -1
- package/dist/{index-BepQQq9P.cjs → index-BsALQkcn.cjs} +2 -2
- package/dist/{index-BepQQq9P.cjs.map → index-BsALQkcn.cjs.map} +1 -1
- package/dist/{index-DeEIS6R8.js → index-jajHW612.js} +3 -3
- package/dist/{index-DeEIS6R8.js.map → index-jajHW612.js.map} +1 -1
- package/dist/schemas-B6wutboj.cjs +2 -0
- package/dist/schemas-B6wutboj.cjs.map +1 -0
- package/dist/schemas-XzwqFsHM.js +162 -0
- package/dist/schemas-XzwqFsHM.js.map +1 -0
- package/dist/src/utils/general.d.ts +2 -0
- package/dist/src/utils/object.d.ts +38 -4
- package/dist/{urls-DJiVb_ID.cjs → urls-CKKSekE9.cjs} +2 -2
- package/dist/{urls-DJiVb_ID.cjs.map → urls-CKKSekE9.cjs.map} +1 -1
- package/dist/{urls-CQ1fgrB1.js → urls-DCXZ2b50.js} +2 -2
- package/dist/{urls-CQ1fgrB1.js.map → urls-DCXZ2b50.js.map} +1 -1
- package/dist/utils/api.cjs.js +1 -1
- package/dist/utils/api.es.js +2 -2
- package/dist/utils/form.cjs.js +1 -1
- package/dist/utils/form.cjs.js.map +1 -1
- package/dist/utils/form.es.js +16 -16
- package/dist/utils/general.cjs.js.map +1 -1
- package/dist/utils/general.es.js.map +1 -1
- package/dist/utils/location.cjs.js +2 -0
- package/dist/utils/location.cjs.js.map +1 -0
- package/dist/utils/location.d.ts +2 -0
- package/dist/{schemas-BEK79Cdh.js → utils/location.es.js} +259 -165
- package/dist/utils/location.es.js.map +1 -0
- package/dist/utils/object.cjs.js +2 -0
- package/dist/utils/object.cjs.js.map +1 -0
- package/dist/utils/object.d.ts +2 -0
- package/dist/utils/object.es.js +98 -0
- package/dist/utils/object.es.js.map +1 -0
- package/dist/utils/router.cjs.js +1 -1
- package/dist/utils/router.es.js +1 -1
- package/package.json +11 -1
- package/dist/index-CgShi-oQ.cjs +0 -2
- package/dist/object-C0ukOmY8.cjs +0 -2
- package/dist/object-C0ukOmY8.cjs.map +0 -1
- package/dist/object-CcXAH2vY.js +0 -34
- package/dist/object-CcXAH2vY.js.map +0 -1
- package/dist/schemas-B1L2Knka.cjs +0 -2
- package/dist/schemas-B1L2Knka.cjs.map +0 -1
- package/dist/schemas-BEK79Cdh.js.map +0 -1
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import * as e from "yup";
|
|
2
|
+
import { UK_COUNTIES as m, COUNTRY_ISO_CODES as p } from "./utils/location.es.js";
|
|
3
|
+
import { numericId as t, uppercaseAsciiAlphanumericString as _, unicodeAlphanumericString as i, lowercaseAsciiAlphanumericString as q } from "./utils/schema.es.js";
|
|
4
|
+
import "react/jsx-runtime";
|
|
5
|
+
import "@mui/material";
|
|
6
|
+
import "react";
|
|
7
|
+
import "@mui/icons-material";
|
|
8
|
+
const s = {
|
|
9
|
+
user: t(),
|
|
10
|
+
teacher: t(),
|
|
11
|
+
student: t(),
|
|
12
|
+
school: t(),
|
|
13
|
+
klass: _().length(5),
|
|
14
|
+
authFactor: t(),
|
|
15
|
+
otpBypassToken: t()
|
|
16
|
+
}, a = {
|
|
17
|
+
id: s.teacher.required(),
|
|
18
|
+
school: s.school,
|
|
19
|
+
is_admin: e.bool().required()
|
|
20
|
+
}, u = {
|
|
21
|
+
id: s.student.required(),
|
|
22
|
+
school: s.school.required(),
|
|
23
|
+
klass: s.klass.required(),
|
|
24
|
+
auto_gen_password: e.string().required()
|
|
25
|
+
}, r = {
|
|
26
|
+
id: s.user.required(),
|
|
27
|
+
requesting_to_join_class: s.klass,
|
|
28
|
+
first_name: i({
|
|
29
|
+
spaces: !0,
|
|
30
|
+
specialChars: "-'"
|
|
31
|
+
}).required().max(150),
|
|
32
|
+
last_name: i({
|
|
33
|
+
spaces: !0,
|
|
34
|
+
specialChars: "-'"
|
|
35
|
+
}).max(150),
|
|
36
|
+
last_login: e.date(),
|
|
37
|
+
email: e.string().email(),
|
|
38
|
+
password: e.string().required(),
|
|
39
|
+
is_staff: e.bool().required(),
|
|
40
|
+
is_active: e.bool().required(),
|
|
41
|
+
date_joined: e.date().required(),
|
|
42
|
+
teacher: e.object(a).optional(),
|
|
43
|
+
student: e.object(u).optional()
|
|
44
|
+
}, n = {
|
|
45
|
+
...r,
|
|
46
|
+
password: r.password.min(10, "must be at least 10 characters long").matches(/[A-Z]/, "must contain at least one uppercase letter").matches(/[a-z]/, "must contain at least one lowercase letter").matches(/[0-9]/, "must contain at least one digit").matches(
|
|
47
|
+
/[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]/,
|
|
48
|
+
"must contain at least one special character"
|
|
49
|
+
),
|
|
50
|
+
email: r.email.required(),
|
|
51
|
+
last_name: r.last_name.required(),
|
|
52
|
+
teacher: r.teacher.required(),
|
|
53
|
+
student: e.string().oneOf([void 0])
|
|
54
|
+
}, o = {
|
|
55
|
+
...a,
|
|
56
|
+
school: a.school.required()
|
|
57
|
+
}, c = {
|
|
58
|
+
...n,
|
|
59
|
+
teacher: e.object(o)
|
|
60
|
+
}, d = {
|
|
61
|
+
...o,
|
|
62
|
+
is_admin: o.is_admin.isTrue()
|
|
63
|
+
}, g = {
|
|
64
|
+
...c,
|
|
65
|
+
teacher: e.object(d)
|
|
66
|
+
}, l = {
|
|
67
|
+
...o,
|
|
68
|
+
is_admin: o.is_admin.isFalse()
|
|
69
|
+
}, T = {
|
|
70
|
+
...c,
|
|
71
|
+
teacher: e.object(l)
|
|
72
|
+
}, h = {
|
|
73
|
+
...a,
|
|
74
|
+
school: e.string().oneOf([void 0]),
|
|
75
|
+
is_admin: a.is_admin.isFalse()
|
|
76
|
+
}, S = {
|
|
77
|
+
...n,
|
|
78
|
+
teacher: e.object(h)
|
|
79
|
+
}, f = {
|
|
80
|
+
...r,
|
|
81
|
+
password: r.password.min(6, "must be at least 6 characters long"),
|
|
82
|
+
email: r.email.oneOf([void 0]),
|
|
83
|
+
last_name: r.last_name.oneOf([void 0]),
|
|
84
|
+
teacher: e.string().oneOf([void 0]),
|
|
85
|
+
student: r.student.required()
|
|
86
|
+
}, b = {
|
|
87
|
+
...r,
|
|
88
|
+
password: r.password.min(8, "must be at least 8 characters long").matches(/[A-Z]/, "must contain at least one uppercase letter").matches(/[a-z]/, "must contain at least one lowercase letter").matches(/[0-9]/, "must contain at least one digit"),
|
|
89
|
+
email: r.email.required(),
|
|
90
|
+
last_name: r.last_name.required(),
|
|
91
|
+
teacher: e.string().oneOf([void 0]),
|
|
92
|
+
student: e.string().oneOf([void 0])
|
|
93
|
+
}, O = {
|
|
94
|
+
...a,
|
|
95
|
+
user: s.user.required()
|
|
96
|
+
}, k = {
|
|
97
|
+
...o,
|
|
98
|
+
user: s.user.required()
|
|
99
|
+
}, w = {
|
|
100
|
+
...d,
|
|
101
|
+
user: s.user.required()
|
|
102
|
+
}, A = {
|
|
103
|
+
...l,
|
|
104
|
+
user: s.user.required()
|
|
105
|
+
}, j = {
|
|
106
|
+
...h,
|
|
107
|
+
user: s.user.required()
|
|
108
|
+
}, v = {
|
|
109
|
+
...u,
|
|
110
|
+
user: s.user.required()
|
|
111
|
+
}, y = {
|
|
112
|
+
id: s.school.required(),
|
|
113
|
+
name: i({
|
|
114
|
+
spaces: !0,
|
|
115
|
+
specialChars: "'."
|
|
116
|
+
}).required().max(200),
|
|
117
|
+
country: e.string().oneOf(p),
|
|
118
|
+
uk_county: e.string().oneOf(m)
|
|
119
|
+
}, U = {
|
|
120
|
+
id: s.klass.required(),
|
|
121
|
+
teacher: s.teacher.required(),
|
|
122
|
+
school: s.school.required(),
|
|
123
|
+
name: i({
|
|
124
|
+
spaces: !0,
|
|
125
|
+
specialChars: "-_"
|
|
126
|
+
}).required().max(200),
|
|
127
|
+
read_classmates_data: e.bool().required(),
|
|
128
|
+
receive_requests_until: e.date()
|
|
129
|
+
}, C = {
|
|
130
|
+
id: s.authFactor.required(),
|
|
131
|
+
user: s.user.required(),
|
|
132
|
+
type: e.string().oneOf(["otp"]).required()
|
|
133
|
+
}, x = {
|
|
134
|
+
id: s.otpBypassToken.required(),
|
|
135
|
+
user: s.user.required(),
|
|
136
|
+
token: q().required().length(8)
|
|
137
|
+
}, Z = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
138
|
+
__proto__: null,
|
|
139
|
+
adminSchoolTeacher: w,
|
|
140
|
+
adminSchoolTeacherUser: g,
|
|
141
|
+
authFactor: C,
|
|
142
|
+
indyUser: b,
|
|
143
|
+
klass: U,
|
|
144
|
+
nonAdminSchoolTeacher: A,
|
|
145
|
+
nonAdminSchoolTeacherUser: T,
|
|
146
|
+
nonSchoolTeacher: j,
|
|
147
|
+
nonSchoolTeacherUser: S,
|
|
148
|
+
otpBypassToken: x,
|
|
149
|
+
school: y,
|
|
150
|
+
schoolTeacher: k,
|
|
151
|
+
schoolTeacherUser: c,
|
|
152
|
+
student: v,
|
|
153
|
+
studentUser: f,
|
|
154
|
+
teacher: O,
|
|
155
|
+
teacherUser: n,
|
|
156
|
+
user: r
|
|
157
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
158
|
+
export {
|
|
159
|
+
Z as s,
|
|
160
|
+
r as u
|
|
161
|
+
};
|
|
162
|
+
//# sourceMappingURL=schemas-XzwqFsHM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas-XzwqFsHM.js","sources":["../src/api/schemas.ts"],"sourcesContent":["import * as yup from \"yup\"\n\nimport type {\n AdminSchoolTeacher,\n AdminSchoolTeacherUser,\n AuthFactor,\n Class,\n IndependentUser,\n NonAdminSchoolTeacher,\n NonAdminSchoolTeacherUser,\n NonSchoolTeacher,\n NonSchoolTeacherUser,\n OtpBypassToken,\n School,\n SchoolTeacher,\n SchoolTeacherUser,\n Student,\n StudentUser,\n Teacher,\n TeacherUser,\n User,\n} from \"./models\"\nimport { COUNTRY_ISO_CODES, UK_COUNTIES } from \"../utils/location\"\nimport {\n lowercaseAsciiAlphanumericString,\n numericId,\n unicodeAlphanumericString,\n uppercaseAsciiAlphanumericString,\n} from \"../utils/schema\"\nimport { type Schemas } from \"../utils/api\"\n\n// NOTE: do not use .required() here.\nconst id = {\n user: numericId(),\n teacher: numericId(),\n student: numericId(),\n school: numericId(),\n klass: uppercaseAsciiAlphanumericString().length(5),\n authFactor: numericId(),\n otpBypassToken: numericId(),\n}\n\n// -----------------------------------------------------------------------------\n// User Schemas\n// -----------------------------------------------------------------------------\n\nconst _userTeacher: Omit<Schemas<Teacher>, \"user\"> = {\n id: id.teacher.required(),\n school: id.school,\n is_admin: yup.bool().required(),\n}\n\nconst _userStudent: Omit<Schemas<Student>, \"user\"> = {\n id: id.student.required(),\n school: id.school.required(),\n klass: id.klass.required(),\n auto_gen_password: yup.string().required(),\n}\n\nexport const user: Schemas<User> = {\n id: id.user.required(),\n requesting_to_join_class: id.klass,\n first_name: unicodeAlphanumericString({\n spaces: true,\n specialChars: \"-'\",\n })\n .required()\n .max(150),\n last_name: unicodeAlphanumericString({\n spaces: true,\n specialChars: \"-'\",\n }).max(150),\n last_login: yup.date(),\n email: yup.string().email(),\n password: yup.string().required(),\n is_staff: yup.bool().required(),\n is_active: yup.bool().required(),\n date_joined: yup.date().required(),\n teacher: yup.object(_userTeacher).optional(),\n student: yup.object(_userStudent).optional(),\n}\n\nexport const teacherUser: Schemas<TeacherUser> = {\n ...user,\n password: user.password\n .min(10, \"must be at least 10 characters long\")\n .matches(/[A-Z]/, \"must contain at least one uppercase letter\")\n .matches(/[a-z]/, \"must contain at least one lowercase letter\")\n .matches(/[0-9]/, \"must contain at least one digit\")\n .matches(\n /[!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?]/,\n \"must contain at least one special character\",\n ),\n email: user.email.required(),\n last_name: user.last_name.required(),\n teacher: user.teacher.required(),\n student: yup.string().oneOf([undefined]),\n}\n\nconst _userSchoolTeacher: Omit<Schemas<SchoolTeacher>, \"user\"> = {\n ..._userTeacher,\n school: _userTeacher.school.required(),\n}\n\nexport const schoolTeacherUser: Schemas<SchoolTeacherUser> = {\n ...teacherUser,\n teacher: yup.object(_userSchoolTeacher),\n}\n\nconst _userAdminSchoolTeacher: Omit<Schemas<AdminSchoolTeacher>, \"user\"> = {\n ..._userSchoolTeacher,\n is_admin: _userSchoolTeacher.is_admin.isTrue(),\n}\n\nexport const adminSchoolTeacherUser: Schemas<AdminSchoolTeacherUser> = {\n ...schoolTeacherUser,\n teacher: yup.object(_userAdminSchoolTeacher),\n}\n\nconst _userNonAdminSchoolTeacher: Omit<\n Schemas<NonAdminSchoolTeacher>,\n \"user\"\n> = {\n ..._userSchoolTeacher,\n is_admin: _userSchoolTeacher.is_admin.isFalse(),\n}\n\nexport const nonAdminSchoolTeacherUser: Schemas<NonAdminSchoolTeacherUser> = {\n ...schoolTeacherUser,\n teacher: yup.object(_userNonAdminSchoolTeacher),\n}\n\nconst _userNonSchoolTeacher: Omit<Schemas<NonSchoolTeacher>, \"user\"> = {\n ..._userTeacher,\n school: yup.string().oneOf([undefined]),\n is_admin: _userTeacher.is_admin.isFalse(),\n}\n\nexport const nonSchoolTeacherUser: Schemas<NonSchoolTeacherUser> = {\n ...teacherUser,\n teacher: yup.object(_userNonSchoolTeacher),\n}\n\nexport const studentUser: Schemas<StudentUser> = {\n ...user,\n password: user.password.min(6, \"must be at least 6 characters long\"),\n email: user.email.oneOf([undefined]),\n last_name: user.last_name.oneOf([undefined]),\n teacher: yup.string().oneOf([undefined]),\n student: user.student.required(),\n}\n\nexport const indyUser: Schemas<IndependentUser> = {\n ...user,\n password: user.password\n .min(8, \"must be at least 8 characters long\")\n .matches(/[A-Z]/, \"must contain at least one uppercase letter\")\n .matches(/[a-z]/, \"must contain at least one lowercase letter\")\n .matches(/[0-9]/, \"must contain at least one digit\"),\n email: user.email.required(),\n last_name: user.last_name.required(),\n teacher: yup.string().oneOf([undefined]),\n student: yup.string().oneOf([undefined]),\n}\n\n// -----------------------------------------------------------------------------\n// Teacher Schemas\n// -----------------------------------------------------------------------------\n\nexport const teacher: Schemas<Teacher> = {\n ..._userTeacher,\n user: id.user.required(),\n}\n\nexport const schoolTeacher: Schemas<SchoolTeacher> = {\n ..._userSchoolTeacher,\n user: id.user.required(),\n}\n\nexport const adminSchoolTeacher: Schemas<AdminSchoolTeacher> = {\n ..._userAdminSchoolTeacher,\n user: id.user.required(),\n}\n\nexport const nonAdminSchoolTeacher: Schemas<NonAdminSchoolTeacher> = {\n ..._userNonAdminSchoolTeacher,\n user: id.user.required(),\n}\n\nexport const nonSchoolTeacher: Schemas<NonSchoolTeacher> = {\n ..._userNonSchoolTeacher,\n user: id.user.required(),\n}\n\n// -----------------------------------------------------------------------------\n// Other Schemas\n// -----------------------------------------------------------------------------\n\nexport const student: Schemas<Student> = {\n ..._userStudent,\n user: id.user.required(),\n}\n\nexport const school: Schemas<School> = {\n id: id.school.required(),\n name: unicodeAlphanumericString({\n spaces: true,\n specialChars: \"'.\",\n })\n .required()\n .max(200),\n country: yup.string().oneOf(COUNTRY_ISO_CODES),\n uk_county: yup.string().oneOf(UK_COUNTIES),\n}\n\nexport const klass: Schemas<Class> = {\n id: id.klass.required(),\n teacher: id.teacher.required(),\n school: id.school.required(),\n name: unicodeAlphanumericString({\n spaces: true,\n specialChars: \"-_\",\n })\n .required()\n .max(200),\n read_classmates_data: yup.bool().required(),\n receive_requests_until: yup.date(),\n}\n\nexport const authFactor: Schemas<AuthFactor> = {\n id: id.authFactor.required(),\n user: id.user.required(),\n type: yup\n .string()\n .oneOf([\"otp\"] as const)\n .required(),\n}\n\nexport const otpBypassToken: Schemas<OtpBypassToken> = {\n id: id.otpBypassToken.required(),\n user: id.user.required(),\n token: lowercaseAsciiAlphanumericString().required().length(8),\n}\n"],"names":["id","numericId","uppercaseAsciiAlphanumericString","_userTeacher","yup","_userStudent","user","unicodeAlphanumericString","teacherUser","_userSchoolTeacher","schoolTeacherUser","_userAdminSchoolTeacher","adminSchoolTeacherUser","_userNonAdminSchoolTeacher","nonAdminSchoolTeacherUser","_userNonSchoolTeacher","nonSchoolTeacherUser","studentUser","indyUser","teacher","schoolTeacher","adminSchoolTeacher","nonAdminSchoolTeacher","nonSchoolTeacher","student","school","COUNTRY_ISO_CODES","UK_COUNTIES","klass","authFactor","otpBypassToken","lowercaseAsciiAlphanumericString"],"mappings":"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"}
|
|
@@ -8,6 +8,8 @@ export type OptionalPropertyNames<T> = {
|
|
|
8
8
|
} ? K : never;
|
|
9
9
|
}[keyof T];
|
|
10
10
|
export type IsOptional<T, K extends keyof T> = K extends OptionalPropertyNames<T> ? true : false;
|
|
11
|
+
/** Creates a tuple type of length N with elements of type T. */
|
|
12
|
+
export type Tuple<T, N extends number, A extends T[] = []> = A["length"] extends N ? A : Tuple<T, N, [...A, T]>;
|
|
11
13
|
export declare function openInNewTab(url: string, target?: string): void;
|
|
12
14
|
export declare function wrap(newFn: {
|
|
13
15
|
before?: (...args: any[]) => void;
|
|
@@ -1,11 +1,45 @@
|
|
|
1
|
+
/** Recursively extracts all numeric values from a nested object structure. */
|
|
2
|
+
export type DeepNumbersOf<T> = T extends number ? T : T extends object ? DeepNumbersOf<T[keyof T]> : never;
|
|
3
|
+
/** Recursively extracts all string values from a nested object structure. */
|
|
4
|
+
export type DeepStringsOf<T> = T extends string ? T : T extends object ? DeepStringsOf<T[keyof T]> : never;
|
|
5
|
+
export declare function flattenNumberValues<T extends object>(obj: T): DeepNumbersOf<T>[];
|
|
6
|
+
export declare function flattenStringValues<T extends object>(obj: T): DeepStringsOf<T>[];
|
|
1
7
|
export declare function getNestedProperty(obj: Record<string, any>, dotPath: string | string[]): any;
|
|
2
8
|
export declare function withKeyPaths(obj: object, delimiter?: string): object;
|
|
3
9
|
export declare function getKeyPaths(obj: object, delimiter?: string): string[];
|
|
4
10
|
export declare function excludeKeyPaths(obj: object, exclude: string[], delimiter?: string): any;
|
|
5
11
|
type JoinPath<A extends string, B extends string, D extends string> = A extends "" ? B : `${A}${D}${B}`;
|
|
6
|
-
type
|
|
7
|
-
[
|
|
12
|
+
export type PathStringMap<T extends object, Path extends string = "", D extends string = "."> = T extends readonly (infer E extends string)[] ? {
|
|
13
|
+
[V in E]: JoinPath<Path, V, D>;
|
|
14
|
+
} : {
|
|
15
|
+
[K in keyof T & string]: T[K] extends readonly (infer E extends string)[] ? {
|
|
16
|
+
[V in E]: JoinPath<JoinPath<Path, K, D>, V, D>;
|
|
17
|
+
} : T[K] extends object ? PathStringMap<T[K] & object, JoinPath<Path, K, D>, D> : T[K] extends string ? {
|
|
18
|
+
[V in T[K]]: JoinPath<JoinPath<Path, K, D>, V, D>;
|
|
19
|
+
} : never;
|
|
8
20
|
};
|
|
9
|
-
export declare function
|
|
10
|
-
export declare function
|
|
21
|
+
export declare function createPathStrings<const T extends object>(obj: T): PathStringMap<T>;
|
|
22
|
+
export declare function createPathStrings<const T extends object, D extends string>(obj: T, delimiter: D): PathStringMap<T, "", D>;
|
|
23
|
+
type PathSpec = string | {
|
|
24
|
+
readonly [key: string]: PathSpec;
|
|
25
|
+
};
|
|
26
|
+
type ResolvePathSpec<T, ID extends number | string> = T extends string ? Record<T, ID> : {
|
|
27
|
+
[K in keyof T]: ResolvePathSpec<T[K], ID>;
|
|
28
|
+
};
|
|
29
|
+
type UnionToIntersection<U> = (U extends unknown ? (x: U) => void : never) extends (x: infer I) => void ? I : never;
|
|
30
|
+
export type IdRegistryResult<T extends Record<number | string, PathSpec>> = UnionToIntersection<{
|
|
31
|
+
[K in keyof T]: K extends number | string ? ResolvePathSpec<T[K], K> : never;
|
|
32
|
+
}[keyof T]>;
|
|
33
|
+
/**
|
|
34
|
+
* Converts a mapping of numeric or string keys to path specifications into a
|
|
35
|
+
* nested object structure where each path specification is replaced with the
|
|
36
|
+
* corresponding numeric or string key. This allows to create a global registry
|
|
37
|
+
* of unique keys that can be easily referenced in the code.
|
|
38
|
+
*
|
|
39
|
+
* @param specs A mapping of numeric or string keys to path specifications,
|
|
40
|
+
* where each path specification can be a string or a nested object of strings.
|
|
41
|
+
* @returns A nested object structure where each path specification is replaced
|
|
42
|
+
* with the corresponding numeric or string key.
|
|
43
|
+
*/
|
|
44
|
+
export declare function createIdRegistry<T extends Record<number | string, PathSpec>>(specs: T): IdRegistryResult<T>;
|
|
11
45
|
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const s=require("./api-
|
|
2
|
-
//# sourceMappingURL=urls-
|
|
1
|
+
"use strict";const s=require("./api-B0rgE7_-.cjs"),e={user:s.modelUrls("users/","users/<id>/"),teacher:s.modelUrls("users/teachers/","users/teachers/<id>/"),student:s.modelUrls("users/students/","users/students/<id>/"),school:s.modelUrls("schools/","schools/<id>/"),class:s.modelUrls("classes/","classes/<id>/"),otpBypassToken:s.modelUrls("otp-bypass-tokens/","otp-bypass-tokens/<id>/"),authFactor:s.modelUrls("auth-factors/","auth-factors/<id>/")};exports.urls=e;
|
|
2
|
+
//# sourceMappingURL=urls-CKKSekE9.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urls-
|
|
1
|
+
{"version":3,"file":"urls-CKKSekE9.cjs","sources":["../src/api/urls.ts"],"sourcesContent":["import { modelUrls } from \"../utils/api\"\n\nconst urls = {\n user: modelUrls(\"users/\", \"users/<id>/\"),\n teacher: modelUrls(\"users/teachers/\", \"users/teachers/<id>/\"),\n student: modelUrls(\"users/students/\", \"users/students/<id>/\"),\n school: modelUrls(\"schools/\", \"schools/<id>/\"),\n class: modelUrls(\"classes/\", \"classes/<id>/\"),\n otpBypassToken: modelUrls(\"otp-bypass-tokens/\", \"otp-bypass-tokens/<id>/\"),\n authFactor: modelUrls(\"auth-factors/\", \"auth-factors/<id>/\"),\n}\n\nexport default urls\n"],"names":["urls","modelUrls"],"mappings":"mDAEMA,EAAO,CACX,KAAMC,EAAAA,UAAU,SAAU,aAAa,EACvC,QAASA,EAAAA,UAAU,kBAAmB,sBAAsB,EAC5D,QAASA,EAAAA,UAAU,kBAAmB,sBAAsB,EAC5D,OAAQA,EAAAA,UAAU,WAAY,eAAe,EAC7C,MAAOA,EAAAA,UAAU,WAAY,eAAe,EAC5C,eAAgBA,EAAAA,UAAU,qBAAsB,yBAAyB,EACzE,WAAYA,EAAAA,UAAU,gBAAiB,oBAAoB,CAC7D"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { m as s } from "./api-
|
|
1
|
+
import { m as s } from "./api-vqkeMjJB.js";
|
|
2
2
|
const t = {
|
|
3
3
|
user: s("users/", "users/<id>/"),
|
|
4
4
|
teacher: s("users/teachers/", "users/teachers/<id>/"),
|
|
@@ -11,4 +11,4 @@ const t = {
|
|
|
11
11
|
export {
|
|
12
12
|
t as u
|
|
13
13
|
};
|
|
14
|
-
//# sourceMappingURL=urls-
|
|
14
|
+
//# sourceMappingURL=urls-DCXZ2b50.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urls-
|
|
1
|
+
{"version":3,"file":"urls-DCXZ2b50.js","sources":["../src/api/urls.ts"],"sourcesContent":["import { modelUrls } from \"../utils/api\"\n\nconst urls = {\n user: modelUrls(\"users/\", \"users/<id>/\"),\n teacher: modelUrls(\"users/teachers/\", \"users/teachers/<id>/\"),\n student: modelUrls(\"users/students/\", \"users/students/<id>/\"),\n school: modelUrls(\"schools/\", \"schools/<id>/\"),\n class: modelUrls(\"classes/\", \"classes/<id>/\"),\n otpBypassToken: modelUrls(\"otp-bypass-tokens/\", \"otp-bypass-tokens/<id>/\"),\n authFactor: modelUrls(\"auth-factors/\", \"auth-factors/<id>/\"),\n}\n\nexport default urls\n"],"names":["urls","modelUrls"],"mappings":";AAEA,MAAMA,IAAO;AAAA,EACX,MAAMC,EAAU,UAAU,aAAa;AAAA,EACvC,SAASA,EAAU,mBAAmB,sBAAsB;AAAA,EAC5D,SAASA,EAAU,mBAAmB,sBAAsB;AAAA,EAC5D,QAAQA,EAAU,YAAY,eAAe;AAAA,EAC7C,OAAOA,EAAU,YAAY,eAAe;AAAA,EAC5C,gBAAgBA,EAAU,sBAAsB,yBAAyB;AAAA,EACzE,YAAYA,EAAU,iBAAiB,oBAAoB;AAC7D;"}
|
package/dist/utils/api.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("react/jsx-runtime");require("@mui/material");require("react");require("yup");const e=require("../api-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("react/jsx-runtime");require("@mui/material");require("react");require("yup");const e=require("../api-B0rgE7_-.cjs");require("./object.cjs.js");exports.buildUrl=e.buildUrl;exports.handleResultState=e.handleResultState;exports.isModelId=e.isModelId;exports.isSafeHttpMethod=e.isSafeHttpMethod;exports.listTag=e.listTag;exports.modelUrls=e.modelUrls;exports.tagData=e.tagData;
|
|
2
2
|
//# sourceMappingURL=api.cjs.js.map
|
package/dist/utils/api.es.js
CHANGED
|
@@ -2,8 +2,8 @@ import "react/jsx-runtime";
|
|
|
2
2
|
import "@mui/material";
|
|
3
3
|
import "react";
|
|
4
4
|
import "yup";
|
|
5
|
-
import { b as e, h as m, a as p, i as d, l as h, m as b, t as f } from "../api-
|
|
6
|
-
import "
|
|
5
|
+
import { b as e, h as m, a as p, i as d, l as h, m as b, t as f } from "../api-vqkeMjJB.js";
|
|
6
|
+
import "./object.es.js";
|
|
7
7
|
export {
|
|
8
8
|
e as buildUrl,
|
|
9
9
|
m as handleResultState,
|
package/dist/utils/form.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("yup"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("yup"),u=require("./object.cjs.js");function m(t){return typeof t=="object"&&t!==null&&"status"in t&&t.status===400&&"data"in t&&typeof t.data=="object"&&t.data!==null}function b(t,n){if(!m(t))throw t;const i=Object.fromEntries(Object.entries(t.data).map(([e,a])=>(Array.isArray(a)&&(a=a.join(". ")),[e,a])));n(i)}function F(t,n,i){const{include:e,onlyDirtyValues:a=!1,then:s,catch:y,finally:d}=i||{};let{exclude:c=[]}=i||{};return(l,o)=>{let f=i&&i.clean?i.clean(l):l;a&&(c=[...c,...j(l,n).filter(r=>!c.includes(r))]),e&&(c=c.filter(r=>!e.includes(r))),c.length&&(f=u.excludeKeyPaths(f,c)),t(f).unwrap().then(r=>{s&&s(r,l,o)}).catch(r=>{y&&y(r,l,o),b(r,o.setErrors)}).finally(()=>{d&&d(l,o)})}}function D(t,n){return async i=>{try{await t.validate(i,n)}catch(e){if(e instanceof E.ValidationError)return e.errors.join(". ");throw e}}}function g(t,n,i){return i||(i=u.getKeyPaths(t)),Object.fromEntries(i.map(e=>[e,h(t,n,e)]))}function h(t,n,i){const e=u.getNestedProperty(t,i),a=u.getNestedProperty(n,i);return e!==a}function j(t,n,i){return Object.entries(g(t,n,i)).filter(([e,a])=>!a).map(([e])=>e)}exports.getCleanNames=j;exports.getDirty=g;exports.isDirty=h;exports.isFormError=m;exports.schemaToFieldValidator=D;exports.setFormErrors=b;exports.submitForm=F;
|
|
2
2
|
//# sourceMappingURL=form.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.cjs.js","sources":["../../src/utils/form.ts"],"sourcesContent":["import type { FieldValidator, FormikHelpers } from \"formik\"\nimport { type Schema, type ValidateOptions, ValidationError } from \"yup\"\nimport type { TypedMutationTrigger } from \"@reduxjs/toolkit/query/react\"\n\nimport { excludeKeyPaths, getKeyPaths, getNestedProperty } from \"./object\"\n\nexport type FormValues = Record<string, any>\n\nexport function isFormError(error: unknown): boolean {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"status\" in error &&\n error.status === 400 &&\n \"data\" in error &&\n typeof error.data === \"object\" &&\n error.data !== null\n )\n}\n\nexport function setFormErrors(\n error: unknown,\n setErrors: (errors: object) => void,\n): void {\n if (!isFormError(error)) throw error\n\n const data = Object.fromEntries(\n Object.entries((error as { data: object }).data).map(([field, errors]) => {\n if (Array.isArray(errors)) errors = errors.join(\". \")\n return [field, errors]\n }),\n )\n\n setErrors(data)\n}\n\nexport type SubmitFormOptions<\n Values extends FormValues,\n QueryArg extends FormValues,\n ResultType,\n> = Partial<{\n exclude: string[]\n include: string[]\n onlyDirtyValues: boolean\n then: (\n result: ResultType,\n values: Values,\n helpers: FormikHelpers<Values>,\n ) => void\n catch: (\n error: unknown,\n values: Values,\n helpers: FormikHelpers<Values>,\n ) => void\n finally: (values: Values, helpers: FormikHelpers<Values>) => void\n}> &\n (Values extends QueryArg\n ? { clean?: (values: Values) => QueryArg }\n : { clean: (values: Values) => QueryArg })\n\nexport type SubmitFormHandler<Values extends FormValues> = (\n values: Values,\n helpers: FormikHelpers<Values>,\n) => void | Promise<any>\n\nexport function submitForm<\n Values extends QueryArg,\n QueryArg extends FormValues,\n ResultType,\n>(\n trigger: TypedMutationTrigger<ResultType, QueryArg, any>,\n initialValues: Values,\n options?: SubmitFormOptions<Values, QueryArg, ResultType>,\n): SubmitFormHandler<Values>\n\nexport function submitForm<\n Values extends FormValues,\n QueryArg extends FormValues,\n ResultType,\n>(\n trigger: TypedMutationTrigger<ResultType, QueryArg, any>,\n initialValues: Values,\n options: SubmitFormOptions<Values, QueryArg, ResultType>,\n): SubmitFormHandler<Values>\n\nexport function submitForm<\n Values extends FormValues,\n QueryArg extends FormValues,\n ResultType,\n>(\n trigger: TypedMutationTrigger<ResultType, QueryArg, any>,\n initialValues: Values,\n options?: SubmitFormOptions<Values, QueryArg, ResultType>,\n): SubmitFormHandler<Values> {\n const {\n include,\n onlyDirtyValues = false,\n then,\n catch: _catch,\n finally: _finally,\n } = options || {}\n let { exclude = [] } = options || {}\n\n return (values, helpers) => {\n let arg =\n options && options.clean\n ? options.clean(values as QueryArg & FormValues)\n : (values as unknown as QueryArg)\n\n if (onlyDirtyValues) {\n exclude = [\n ...exclude,\n ...getCleanNames(values, initialValues).filter(\n cleanName => !exclude.includes(cleanName),\n ),\n ]\n }\n\n if (include) exclude = exclude.filter(name => !include.includes(name))\n\n if (exclude.length) arg = excludeKeyPaths(arg, exclude) as QueryArg\n\n trigger(arg)\n .unwrap()\n .then(result => {\n if (then) then(result, values, helpers)\n })\n .catch(error => {\n if (_catch) _catch(error, values, helpers)\n setFormErrors(error, helpers.setErrors)\n })\n .finally(() => {\n if (_finally) _finally(values, helpers)\n })\n }\n}\n\nexport function schemaToFieldValidator(\n schema: Schema,\n options?: ValidateOptions,\n): FieldValidator {\n return async value => {\n try {\n await schema.validate(value, options)\n } catch (error) {\n if (error instanceof ValidationError) {\n return error.errors.join(\". \")\n }\n\n throw error\n }\n }\n}\n\n// Checking if individual fields are dirty is not currently supported.\n// https://github.com/jaredpalmer/formik/issues/1421\nexport function getDirty<Values extends FormValues>(\n values: Values,\n initialValues: Values,\n names?: string[],\n): Record<string, boolean> {\n if (!names) names = getKeyPaths(values)\n\n return Object.fromEntries(\n names.map(name => [name, isDirty(values, initialValues, name)]),\n )\n}\n\nexport function isDirty<Values extends FormValues>(\n values: Values,\n initialValues: Values,\n name: string,\n): boolean {\n const value: unknown = getNestedProperty(values, name)\n const initialValue: unknown = getNestedProperty(initialValues, name)\n\n return value !== initialValue\n}\n\nexport function getCleanNames<Values extends FormValues>(\n values: Values,\n initialValues: Values,\n names?: string[],\n): string[] {\n return Object.entries(getDirty(values, initialValues, names))\n .filter(\n ([\n _, // eslint-disable-line @typescript-eslint/no-unused-vars\n isDirty,\n ]) => !isDirty,\n )\n .map(([name]) => name)\n}\n"],"names":["isFormError","error","setFormErrors","setErrors","data","field","errors","submitForm","trigger","initialValues","options","include","onlyDirtyValues","then","_catch","_finally","exclude","values","helpers","arg","getCleanNames","cleanName","name","excludeKeyPaths","result","schemaToFieldValidator","schema","value","ValidationError","getDirty","names","getKeyPaths","isDirty","getNestedProperty","initialValue","_"],"mappings":"
|
|
1
|
+
{"version":3,"file":"form.cjs.js","sources":["../../src/utils/form.ts"],"sourcesContent":["import type { FieldValidator, FormikHelpers } from \"formik\"\nimport { type Schema, type ValidateOptions, ValidationError } from \"yup\"\nimport type { TypedMutationTrigger } from \"@reduxjs/toolkit/query/react\"\n\nimport { excludeKeyPaths, getKeyPaths, getNestedProperty } from \"./object\"\n\nexport type FormValues = Record<string, any>\n\nexport function isFormError(error: unknown): boolean {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"status\" in error &&\n error.status === 400 &&\n \"data\" in error &&\n typeof error.data === \"object\" &&\n error.data !== null\n )\n}\n\nexport function setFormErrors(\n error: unknown,\n setErrors: (errors: object) => void,\n): void {\n if (!isFormError(error)) throw error\n\n const data = Object.fromEntries(\n Object.entries((error as { data: object }).data).map(([field, errors]) => {\n if (Array.isArray(errors)) errors = errors.join(\". \")\n return [field, errors]\n }),\n )\n\n setErrors(data)\n}\n\nexport type SubmitFormOptions<\n Values extends FormValues,\n QueryArg extends FormValues,\n ResultType,\n> = Partial<{\n exclude: string[]\n include: string[]\n onlyDirtyValues: boolean\n then: (\n result: ResultType,\n values: Values,\n helpers: FormikHelpers<Values>,\n ) => void\n catch: (\n error: unknown,\n values: Values,\n helpers: FormikHelpers<Values>,\n ) => void\n finally: (values: Values, helpers: FormikHelpers<Values>) => void\n}> &\n (Values extends QueryArg\n ? { clean?: (values: Values) => QueryArg }\n : { clean: (values: Values) => QueryArg })\n\nexport type SubmitFormHandler<Values extends FormValues> = (\n values: Values,\n helpers: FormikHelpers<Values>,\n) => void | Promise<any>\n\nexport function submitForm<\n Values extends QueryArg,\n QueryArg extends FormValues,\n ResultType,\n>(\n trigger: TypedMutationTrigger<ResultType, QueryArg, any>,\n initialValues: Values,\n options?: SubmitFormOptions<Values, QueryArg, ResultType>,\n): SubmitFormHandler<Values>\n\nexport function submitForm<\n Values extends FormValues,\n QueryArg extends FormValues,\n ResultType,\n>(\n trigger: TypedMutationTrigger<ResultType, QueryArg, any>,\n initialValues: Values,\n options: SubmitFormOptions<Values, QueryArg, ResultType>,\n): SubmitFormHandler<Values>\n\nexport function submitForm<\n Values extends FormValues,\n QueryArg extends FormValues,\n ResultType,\n>(\n trigger: TypedMutationTrigger<ResultType, QueryArg, any>,\n initialValues: Values,\n options?: SubmitFormOptions<Values, QueryArg, ResultType>,\n): SubmitFormHandler<Values> {\n const {\n include,\n onlyDirtyValues = false,\n then,\n catch: _catch,\n finally: _finally,\n } = options || {}\n let { exclude = [] } = options || {}\n\n return (values, helpers) => {\n let arg =\n options && options.clean\n ? options.clean(values as QueryArg & FormValues)\n : (values as unknown as QueryArg)\n\n if (onlyDirtyValues) {\n exclude = [\n ...exclude,\n ...getCleanNames(values, initialValues).filter(\n cleanName => !exclude.includes(cleanName),\n ),\n ]\n }\n\n if (include) exclude = exclude.filter(name => !include.includes(name))\n\n if (exclude.length) arg = excludeKeyPaths(arg, exclude) as QueryArg\n\n trigger(arg)\n .unwrap()\n .then(result => {\n if (then) then(result, values, helpers)\n })\n .catch(error => {\n if (_catch) _catch(error, values, helpers)\n setFormErrors(error, helpers.setErrors)\n })\n .finally(() => {\n if (_finally) _finally(values, helpers)\n })\n }\n}\n\nexport function schemaToFieldValidator(\n schema: Schema,\n options?: ValidateOptions,\n): FieldValidator {\n return async value => {\n try {\n await schema.validate(value, options)\n } catch (error) {\n if (error instanceof ValidationError) {\n return error.errors.join(\". \")\n }\n\n throw error\n }\n }\n}\n\n// Checking if individual fields are dirty is not currently supported.\n// https://github.com/jaredpalmer/formik/issues/1421\nexport function getDirty<Values extends FormValues>(\n values: Values,\n initialValues: Values,\n names?: string[],\n): Record<string, boolean> {\n if (!names) names = getKeyPaths(values)\n\n return Object.fromEntries(\n names.map(name => [name, isDirty(values, initialValues, name)]),\n )\n}\n\nexport function isDirty<Values extends FormValues>(\n values: Values,\n initialValues: Values,\n name: string,\n): boolean {\n const value: unknown = getNestedProperty(values, name)\n const initialValue: unknown = getNestedProperty(initialValues, name)\n\n return value !== initialValue\n}\n\nexport function getCleanNames<Values extends FormValues>(\n values: Values,\n initialValues: Values,\n names?: string[],\n): string[] {\n return Object.entries(getDirty(values, initialValues, names))\n .filter(\n ([\n _, // eslint-disable-line @typescript-eslint/no-unused-vars\n isDirty,\n ]) => !isDirty,\n )\n .map(([name]) => name)\n}\n"],"names":["isFormError","error","setFormErrors","setErrors","data","field","errors","submitForm","trigger","initialValues","options","include","onlyDirtyValues","then","_catch","_finally","exclude","values","helpers","arg","getCleanNames","cleanName","name","excludeKeyPaths","result","schemaToFieldValidator","schema","value","ValidationError","getDirty","names","getKeyPaths","isDirty","getNestedProperty","initialValue","_"],"mappings":"oIAQO,SAASA,EAAYC,EAAyB,CACnD,OACE,OAAOA,GAAU,UACjBA,IAAU,MACV,WAAYA,GACZA,EAAM,SAAW,KACjB,SAAUA,GACV,OAAOA,EAAM,MAAS,UACtBA,EAAM,OAAS,IAEnB,CAEO,SAASC,EACdD,EACAE,EACM,CACN,GAAI,CAACH,EAAYC,CAAK,EAAG,MAAMA,EAE/B,MAAMG,EAAO,OAAO,YAClB,OAAO,QAASH,EAA2B,IAAI,EAAE,IAAI,CAAC,CAACI,EAAOC,CAAM,KAC9D,MAAM,QAAQA,CAAM,IAAGA,EAASA,EAAO,KAAK,IAAI,GAC7C,CAACD,EAAOC,CAAM,EACtB,CAAA,EAGHH,EAAUC,CAAI,CAChB,CAmDO,SAASG,EAKdC,EACAC,EACAC,EAC2B,CAC3B,KAAM,CACJ,QAAAC,EACA,gBAAAC,EAAkB,GAClB,KAAAC,EACA,MAAOC,EACP,QAASC,CAAA,EACPL,GAAW,CAAA,EACf,GAAI,CAAE,QAAAM,EAAU,EAAC,EAAMN,GAAW,CAAA,EAElC,MAAO,CAACO,EAAQC,IAAY,CAC1B,IAAIC,EACFT,GAAWA,EAAQ,MACfA,EAAQ,MAAMO,CAA+B,EAC5CA,EAEHL,IACFI,EAAU,CACR,GAAGA,EACH,GAAGI,EAAcH,EAAQR,CAAa,EAAE,OACtCY,GAAa,CAACL,EAAQ,SAASK,CAAS,CAAA,CAC1C,GAIAV,MAAmBK,EAAQ,UAAe,CAACL,EAAQ,SAASW,CAAI,CAAC,GAEjEN,EAAQ,SAAQG,EAAMI,EAAAA,gBAAgBJ,EAAKH,CAAO,GAEtDR,EAAQW,CAAG,EACR,OAAA,EACA,KAAKK,GAAU,CACVX,GAAMA,EAAKW,EAAQP,EAAQC,CAAO,CACxC,CAAC,EACA,MAAMjB,GAAS,CACVa,GAAQA,EAAOb,EAAOgB,EAAQC,CAAO,EACzChB,EAAcD,EAAOiB,EAAQ,SAAS,CACxC,CAAC,EACA,QAAQ,IAAM,CACTH,GAAUA,EAASE,EAAQC,CAAO,CACxC,CAAC,CACL,CACF,CAEO,SAASO,EACdC,EACAhB,EACgB,CAChB,MAAO,OAAMiB,GAAS,CACpB,GAAI,CACF,MAAMD,EAAO,SAASC,EAAOjB,CAAO,CACtC,OAAST,EAAO,CACd,GAAIA,aAAiB2B,EAAAA,gBACnB,OAAO3B,EAAM,OAAO,KAAK,IAAI,EAG/B,MAAMA,CACR,CACF,CACF,CAIO,SAAS4B,EACdZ,EACAR,EACAqB,EACyB,CACzB,OAAKA,IAAOA,EAAQC,EAAAA,YAAYd,CAAM,GAE/B,OAAO,YACZa,EAAM,IAAIR,GAAQ,CAACA,EAAMU,EAAQf,EAAQR,EAAea,CAAI,CAAC,CAAC,CAAA,CAElE,CAEO,SAASU,EACdf,EACAR,EACAa,EACS,CACT,MAAMK,EAAiBM,EAAAA,kBAAkBhB,EAAQK,CAAI,EAC/CY,EAAwBD,EAAAA,kBAAkBxB,EAAea,CAAI,EAEnE,OAAOK,IAAUO,CACnB,CAEO,SAASd,EACdH,EACAR,EACAqB,EACU,CACV,OAAO,OAAO,QAAQD,EAASZ,EAAQR,EAAeqB,CAAK,CAAC,EACzD,OACC,CAAC,CACCK,EACAH,CAAA,IACI,CAACA,CAAA,EAER,IAAI,CAAC,CAACV,CAAI,IAAMA,CAAI,CACzB"}
|
package/dist/utils/form.es.js
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
1
|
import { ValidationError as m } from "yup";
|
|
2
|
-
import {
|
|
2
|
+
import { excludeKeyPaths as h, getKeyPaths as j, getNestedProperty as s } from "./object.es.js";
|
|
3
3
|
function b(t) {
|
|
4
4
|
return typeof t == "object" && t !== null && "status" in t && t.status === 400 && "data" in t && typeof t.data == "object" && t.data !== null;
|
|
5
5
|
}
|
|
6
6
|
function g(t, a) {
|
|
7
7
|
if (!b(t)) throw t;
|
|
8
8
|
const i = Object.fromEntries(
|
|
9
|
-
Object.entries(t.data).map(([n,
|
|
9
|
+
Object.entries(t.data).map(([n, c]) => (Array.isArray(c) && (c = c.join(". ")), [n, c]))
|
|
10
10
|
);
|
|
11
11
|
a(i);
|
|
12
12
|
}
|
|
13
13
|
function p(t, a, i) {
|
|
14
14
|
const {
|
|
15
15
|
include: n,
|
|
16
|
-
onlyDirtyValues:
|
|
16
|
+
onlyDirtyValues: c = !1,
|
|
17
17
|
then: o,
|
|
18
|
-
catch:
|
|
19
|
-
finally:
|
|
18
|
+
catch: y,
|
|
19
|
+
finally: d
|
|
20
20
|
} = i || {};
|
|
21
21
|
let { exclude: f = [] } = i || {};
|
|
22
22
|
return (r, l) => {
|
|
23
23
|
let u = i && i.clean ? i.clean(r) : r;
|
|
24
|
-
|
|
24
|
+
c && (f = [
|
|
25
25
|
...f,
|
|
26
26
|
...F(r, a).filter(
|
|
27
|
-
(
|
|
27
|
+
(e) => !f.includes(e)
|
|
28
28
|
)
|
|
29
|
-
]), n && (f = f.filter((
|
|
30
|
-
o && o(
|
|
31
|
-
}).catch((
|
|
32
|
-
|
|
29
|
+
]), n && (f = f.filter((e) => !n.includes(e))), f.length && (u = h(u, f)), t(u).unwrap().then((e) => {
|
|
30
|
+
o && o(e, r, l);
|
|
31
|
+
}).catch((e) => {
|
|
32
|
+
y && y(e, r, l), g(e, l.setErrors);
|
|
33
33
|
}).finally(() => {
|
|
34
|
-
|
|
34
|
+
d && d(r, l);
|
|
35
35
|
});
|
|
36
36
|
};
|
|
37
37
|
}
|
|
@@ -52,16 +52,16 @@ function E(t, a, i) {
|
|
|
52
52
|
);
|
|
53
53
|
}
|
|
54
54
|
function w(t, a, i) {
|
|
55
|
-
const n =
|
|
56
|
-
return n !==
|
|
55
|
+
const n = s(t, i), c = s(a, i);
|
|
56
|
+
return n !== c;
|
|
57
57
|
}
|
|
58
58
|
function F(t, a, i) {
|
|
59
59
|
return Object.entries(E(t, a, i)).filter(
|
|
60
60
|
([
|
|
61
61
|
n,
|
|
62
62
|
// eslint-disable-line @typescript-eslint/no-unused-vars
|
|
63
|
-
|
|
64
|
-
]) => !
|
|
63
|
+
c
|
|
64
|
+
]) => !c
|
|
65
65
|
).map(([n]) => n);
|
|
66
66
|
}
|
|
67
67
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"general.cjs.js","sources":["../../src/utils/general.ts"],"sourcesContent":["export type Required<T, K extends keyof T> = { [P in K]-?: T[P] }\nexport type Optional<T, K extends keyof T> = Partial<Pick<T, K>>\nexport type OptionalPropertyNames<T> = {\n [K in keyof T]-?: {} extends { [P in K]: T[K] } ? K : never\n}[keyof T]\nexport type IsOptional<T, K extends keyof T> =\n K extends OptionalPropertyNames<T> ? true : false\n\nexport function openInNewTab(url: string, target = \"_blank\"): void {\n window.open(url, target)\n}\n\nexport function wrap(\n newFn: {\n before?: (...args: any[]) => void\n after?: (...args: any[]) => void\n },\n fn?: (...args: any[]) => any,\n): (...args: any[]) => any {\n return (...args) => {\n if (newFn.before !== undefined) {\n newFn.before(...(args as unknown[]))\n }\n let value\n if (fn !== undefined) {\n value = fn(...(args as unknown[])) as unknown\n }\n if (newFn.after !== undefined) {\n newFn.after(...(args as unknown[]))\n }\n return value\n }\n}\n\nexport function snakeCaseToCamelCase(obj: Record<string, any>): void {\n Object.entries(obj).forEach(([snakeKey, value]) => {\n if (typeof value === \"object\") snakeCaseToCamelCase(value as object)\n\n const camelKey = snakeKey.replace(/_+[a-z]/g, _char =>\n _char[_char.length - 1].toUpperCase(),\n )\n\n delete obj[snakeKey]\n obj[camelKey] = value as unknown\n })\n}\n\nexport function camelCaseToSnakeCase(obj: Record<string, any>): void {\n Object.entries(obj).forEach(([camelKey, value]) => {\n if (typeof value === \"object\") camelCaseToSnakeCase(value as object)\n\n const snakeKey = camelKey.replace(\n /[A-Z]/g,\n char => `_${char.toLowerCase()}`,\n )\n\n delete obj[camelKey]\n obj[snakeKey] = value as unknown\n })\n}\n\nexport const MIN_DATE = new Date(0, 0, 0)\n\nexport function generateSecureRandomString(\n length: number,\n charSet: string = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\",\n) {\n // Create an array of 32-bit unsigned integers\n const randomValues = window.crypto.getRandomValues(new Uint8Array(length))\n\n // Map the random values to characters from our string\n let result = \"\"\n for (let i = 0; i < length; i++) {\n result += charSet.charAt(randomValues[i] % charSet.length)\n }\n\n return result\n}\n"],"names":["openInNewTab","url","target","wrap","newFn","fn","args","value","snakeCaseToCamelCase","obj","snakeKey","camelKey","_char","camelCaseToSnakeCase","char","MIN_DATE","generateSecureRandomString","length","charSet","randomValues","result","i"],"mappings":"
|
|
1
|
+
{"version":3,"file":"general.cjs.js","sources":["../../src/utils/general.ts"],"sourcesContent":["export type Required<T, K extends keyof T> = { [P in K]-?: T[P] }\nexport type Optional<T, K extends keyof T> = Partial<Pick<T, K>>\nexport type OptionalPropertyNames<T> = {\n [K in keyof T]-?: {} extends { [P in K]: T[K] } ? K : never\n}[keyof T]\nexport type IsOptional<T, K extends keyof T> =\n K extends OptionalPropertyNames<T> ? true : false\n\n/** Creates a tuple type of length N with elements of type T. */\nexport type Tuple<\n T,\n N extends number,\n A extends T[] = [],\n> = A[\"length\"] extends N ? A : Tuple<T, N, [...A, T]>\n\nexport function openInNewTab(url: string, target = \"_blank\"): void {\n window.open(url, target)\n}\n\nexport function wrap(\n newFn: {\n before?: (...args: any[]) => void\n after?: (...args: any[]) => void\n },\n fn?: (...args: any[]) => any,\n): (...args: any[]) => any {\n return (...args) => {\n if (newFn.before !== undefined) {\n newFn.before(...(args as unknown[]))\n }\n let value\n if (fn !== undefined) {\n value = fn(...(args as unknown[])) as unknown\n }\n if (newFn.after !== undefined) {\n newFn.after(...(args as unknown[]))\n }\n return value\n }\n}\n\nexport function snakeCaseToCamelCase(obj: Record<string, any>): void {\n Object.entries(obj).forEach(([snakeKey, value]) => {\n if (typeof value === \"object\") snakeCaseToCamelCase(value as object)\n\n const camelKey = snakeKey.replace(/_+[a-z]/g, _char =>\n _char[_char.length - 1].toUpperCase(),\n )\n\n delete obj[snakeKey]\n obj[camelKey] = value as unknown\n })\n}\n\nexport function camelCaseToSnakeCase(obj: Record<string, any>): void {\n Object.entries(obj).forEach(([camelKey, value]) => {\n if (typeof value === \"object\") camelCaseToSnakeCase(value as object)\n\n const snakeKey = camelKey.replace(\n /[A-Z]/g,\n char => `_${char.toLowerCase()}`,\n )\n\n delete obj[camelKey]\n obj[snakeKey] = value as unknown\n })\n}\n\nexport const MIN_DATE = new Date(0, 0, 0)\n\nexport function generateSecureRandomString(\n length: number,\n charSet: string = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\",\n) {\n // Create an array of 32-bit unsigned integers\n const randomValues = window.crypto.getRandomValues(new Uint8Array(length))\n\n // Map the random values to characters from our string\n let result = \"\"\n for (let i = 0; i < length; i++) {\n result += charSet.charAt(randomValues[i] % charSet.length)\n }\n\n return result\n}\n"],"names":["openInNewTab","url","target","wrap","newFn","fn","args","value","snakeCaseToCamelCase","obj","snakeKey","camelKey","_char","camelCaseToSnakeCase","char","MIN_DATE","generateSecureRandomString","length","charSet","randomValues","result","i"],"mappings":"gFAeO,SAASA,EAAaC,EAAaC,EAAS,SAAgB,CACjE,OAAO,KAAKD,EAAKC,CAAM,CACzB,CAEO,SAASC,EACdC,EAIAC,EACyB,CACzB,MAAO,IAAIC,IAAS,CACdF,EAAM,SAAW,QACnBA,EAAM,OAAO,GAAIE,CAAkB,EAErC,IAAIC,EACJ,OAAIF,IAAO,SACTE,EAAQF,EAAG,GAAIC,CAAkB,GAE/BF,EAAM,QAAU,QAClBA,EAAM,MAAM,GAAIE,CAAkB,EAE7BC,CACT,CACF,CAEO,SAASC,EAAqBC,EAAgC,CACnE,OAAO,QAAQA,CAAG,EAAE,QAAQ,CAAC,CAACC,EAAUH,CAAK,IAAM,CAC7C,OAAOA,GAAU,UAAUC,EAAqBD,CAAe,EAEnE,MAAMI,EAAWD,EAAS,QAAQ,cAChCE,EAAMA,EAAM,OAAS,CAAC,EAAE,YAAA,CAAY,EAGtC,OAAOH,EAAIC,CAAQ,EACnBD,EAAIE,CAAQ,EAAIJ,CAClB,CAAC,CACH,CAEO,SAASM,EAAqBJ,EAAgC,CACnE,OAAO,QAAQA,CAAG,EAAE,QAAQ,CAAC,CAACE,EAAUJ,CAAK,IAAM,CAC7C,OAAOA,GAAU,UAAUM,EAAqBN,CAAe,EAEnE,MAAMG,EAAWC,EAAS,QACxB,SACAG,GAAQ,IAAIA,EAAK,YAAA,CAAa,EAAA,EAGhC,OAAOL,EAAIE,CAAQ,EACnBF,EAAIC,CAAQ,EAAIH,CAClB,CAAC,CACH,CAEO,MAAMQ,EAAW,IAAI,KAAK,EAAG,EAAG,CAAC,EAEjC,SAASC,EACdC,EACAC,EAAkB,iEAClB,CAEA,MAAMC,EAAe,OAAO,OAAO,gBAAgB,IAAI,WAAWF,CAAM,CAAC,EAGzE,IAAIG,EAAS,GACb,QAASC,EAAI,EAAGA,EAAIJ,EAAQI,IAC1BD,GAAUF,EAAQ,OAAOC,EAAaE,CAAC,EAAIH,EAAQ,MAAM,EAG3D,OAAOE,CACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"general.es.js","sources":["../../src/utils/general.ts"],"sourcesContent":["export type Required<T, K extends keyof T> = { [P in K]-?: T[P] }\nexport type Optional<T, K extends keyof T> = Partial<Pick<T, K>>\nexport type OptionalPropertyNames<T> = {\n [K in keyof T]-?: {} extends { [P in K]: T[K] } ? K : never\n}[keyof T]\nexport type IsOptional<T, K extends keyof T> =\n K extends OptionalPropertyNames<T> ? true : false\n\nexport function openInNewTab(url: string, target = \"_blank\"): void {\n window.open(url, target)\n}\n\nexport function wrap(\n newFn: {\n before?: (...args: any[]) => void\n after?: (...args: any[]) => void\n },\n fn?: (...args: any[]) => any,\n): (...args: any[]) => any {\n return (...args) => {\n if (newFn.before !== undefined) {\n newFn.before(...(args as unknown[]))\n }\n let value\n if (fn !== undefined) {\n value = fn(...(args as unknown[])) as unknown\n }\n if (newFn.after !== undefined) {\n newFn.after(...(args as unknown[]))\n }\n return value\n }\n}\n\nexport function snakeCaseToCamelCase(obj: Record<string, any>): void {\n Object.entries(obj).forEach(([snakeKey, value]) => {\n if (typeof value === \"object\") snakeCaseToCamelCase(value as object)\n\n const camelKey = snakeKey.replace(/_+[a-z]/g, _char =>\n _char[_char.length - 1].toUpperCase(),\n )\n\n delete obj[snakeKey]\n obj[camelKey] = value as unknown\n })\n}\n\nexport function camelCaseToSnakeCase(obj: Record<string, any>): void {\n Object.entries(obj).forEach(([camelKey, value]) => {\n if (typeof value === \"object\") camelCaseToSnakeCase(value as object)\n\n const snakeKey = camelKey.replace(\n /[A-Z]/g,\n char => `_${char.toLowerCase()}`,\n )\n\n delete obj[camelKey]\n obj[snakeKey] = value as unknown\n })\n}\n\nexport const MIN_DATE = new Date(0, 0, 0)\n\nexport function generateSecureRandomString(\n length: number,\n charSet: string = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\",\n) {\n // Create an array of 32-bit unsigned integers\n const randomValues = window.crypto.getRandomValues(new Uint8Array(length))\n\n // Map the random values to characters from our string\n let result = \"\"\n for (let i = 0; i < length; i++) {\n result += charSet.charAt(randomValues[i] % charSet.length)\n }\n\n return result\n}\n"],"names":["openInNewTab","url","target","wrap","newFn","fn","args","value","snakeCaseToCamelCase","obj","snakeKey","camelKey","_char","camelCaseToSnakeCase","char","MIN_DATE","generateSecureRandomString","length","charSet","randomValues","result","i"],"mappings":"
|
|
1
|
+
{"version":3,"file":"general.es.js","sources":["../../src/utils/general.ts"],"sourcesContent":["export type Required<T, K extends keyof T> = { [P in K]-?: T[P] }\nexport type Optional<T, K extends keyof T> = Partial<Pick<T, K>>\nexport type OptionalPropertyNames<T> = {\n [K in keyof T]-?: {} extends { [P in K]: T[K] } ? K : never\n}[keyof T]\nexport type IsOptional<T, K extends keyof T> =\n K extends OptionalPropertyNames<T> ? true : false\n\n/** Creates a tuple type of length N with elements of type T. */\nexport type Tuple<\n T,\n N extends number,\n A extends T[] = [],\n> = A[\"length\"] extends N ? A : Tuple<T, N, [...A, T]>\n\nexport function openInNewTab(url: string, target = \"_blank\"): void {\n window.open(url, target)\n}\n\nexport function wrap(\n newFn: {\n before?: (...args: any[]) => void\n after?: (...args: any[]) => void\n },\n fn?: (...args: any[]) => any,\n): (...args: any[]) => any {\n return (...args) => {\n if (newFn.before !== undefined) {\n newFn.before(...(args as unknown[]))\n }\n let value\n if (fn !== undefined) {\n value = fn(...(args as unknown[])) as unknown\n }\n if (newFn.after !== undefined) {\n newFn.after(...(args as unknown[]))\n }\n return value\n }\n}\n\nexport function snakeCaseToCamelCase(obj: Record<string, any>): void {\n Object.entries(obj).forEach(([snakeKey, value]) => {\n if (typeof value === \"object\") snakeCaseToCamelCase(value as object)\n\n const camelKey = snakeKey.replace(/_+[a-z]/g, _char =>\n _char[_char.length - 1].toUpperCase(),\n )\n\n delete obj[snakeKey]\n obj[camelKey] = value as unknown\n })\n}\n\nexport function camelCaseToSnakeCase(obj: Record<string, any>): void {\n Object.entries(obj).forEach(([camelKey, value]) => {\n if (typeof value === \"object\") camelCaseToSnakeCase(value as object)\n\n const snakeKey = camelKey.replace(\n /[A-Z]/g,\n char => `_${char.toLowerCase()}`,\n )\n\n delete obj[camelKey]\n obj[snakeKey] = value as unknown\n })\n}\n\nexport const MIN_DATE = new Date(0, 0, 0)\n\nexport function generateSecureRandomString(\n length: number,\n charSet: string = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\",\n) {\n // Create an array of 32-bit unsigned integers\n const randomValues = window.crypto.getRandomValues(new Uint8Array(length))\n\n // Map the random values to characters from our string\n let result = \"\"\n for (let i = 0; i < length; i++) {\n result += charSet.charAt(randomValues[i] % charSet.length)\n }\n\n return result\n}\n"],"names":["openInNewTab","url","target","wrap","newFn","fn","args","value","snakeCaseToCamelCase","obj","snakeKey","camelKey","_char","camelCaseToSnakeCase","char","MIN_DATE","generateSecureRandomString","length","charSet","randomValues","result","i"],"mappings":"AAeO,SAASA,EAAaC,GAAaC,IAAS,UAAgB;AACjE,SAAO,KAAKD,GAAKC,CAAM;AACzB;AAEO,SAASC,EACdC,GAIAC,GACyB;AACzB,SAAO,IAAIC,MAAS;AAClB,IAAIF,EAAM,WAAW,UACnBA,EAAM,OAAO,GAAIE,CAAkB;AAErC,QAAIC;AACJ,WAAIF,MAAO,WACTE,IAAQF,EAAG,GAAIC,CAAkB,IAE/BF,EAAM,UAAU,UAClBA,EAAM,MAAM,GAAIE,CAAkB,GAE7BC;AAAA,EACT;AACF;AAEO,SAASC,EAAqBC,GAAgC;AACnE,SAAO,QAAQA,CAAG,EAAE,QAAQ,CAAC,CAACC,GAAUH,CAAK,MAAM;AACjD,IAAI,OAAOA,KAAU,YAAUC,EAAqBD,CAAe;AAEnE,UAAMI,IAAWD,EAAS;AAAA,MAAQ;AAAA,MAAY,OAC5CE,EAAMA,EAAM,SAAS,CAAC,EAAE,YAAA;AAAA,IAAY;AAGtC,WAAOH,EAAIC,CAAQ,GACnBD,EAAIE,CAAQ,IAAIJ;AAAA,EAClB,CAAC;AACH;AAEO,SAASM,EAAqBJ,GAAgC;AACnE,SAAO,QAAQA,CAAG,EAAE,QAAQ,CAAC,CAACE,GAAUJ,CAAK,MAAM;AACjD,IAAI,OAAOA,KAAU,YAAUM,EAAqBN,CAAe;AAEnE,UAAMG,IAAWC,EAAS;AAAA,MACxB;AAAA,MACA,CAAAG,MAAQ,IAAIA,EAAK,YAAA,CAAa;AAAA,IAAA;AAGhC,WAAOL,EAAIE,CAAQ,GACnBF,EAAIC,CAAQ,IAAIH;AAAA,EAClB,CAAC;AACH;AAEO,MAAMQ,IAAW,IAAI,KAAK,GAAG,GAAG,CAAC;AAEjC,SAASC,EACdC,GACAC,IAAkB,kEAClB;AAEA,QAAMC,IAAe,OAAO,OAAO,gBAAgB,IAAI,WAAWF,CAAM,CAAC;AAGzE,MAAIG,IAAS;AACb,WAASC,IAAI,GAAGA,IAAIJ,GAAQI;AAC1B,IAAAD,KAAUF,EAAQ,OAAOC,EAAaE,CAAC,IAAIH,EAAQ,MAAM;AAG3D,SAAOE;AACT;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"],e=["Andorra","United Arab Emirates (the)","Afghanistan","Antigua and Barbuda","Anguilla","Albania","Armenia","Angola","Antarctica","Argentina","American Samoa","Austria","Australia","Aruba","Åland Islands","Azerbaijan","Bosnia and Herzegovina","Barbados","Bangladesh","Belgium","Burkina Faso","Bulgaria","Bahrain","Burundi","Benin","Saint Barthélemy","Bermuda","Brunei Darussalam","Bolivia (Plurinational State of)","Bonaire, Sint Eustatius and Saba","Brazil","Bahamas (the)","Bhutan","Bouvet Island","Botswana","Belarus","Belize","Canada","Cocos (Keeling) Islands (the)","Congo (the Democratic Republic of the)","Central African Republic (the)","Congo (the)","Switzerland","Côte d'Ivoire","Cook Islands (the)","Chile","Cameroon","China","Colombia","Costa Rica","Cuba","Cabo Verde","Curaçao","Christmas Island","Cyprus","Czechia","Germany","Djibouti","Denmark","Dominica","Dominican Republic (the","Algeria","Ecuador","Estonia","Egypt","Western Sahara","Eritrea","Spain","Ethiopia","Finland","Fiji","Falkland Islands (the) [Malvinas]","Micronesia (Federated States of)","Faroe Islands (the)","France","Gabon","United Kingdom of Great Britain and Northern Ireland (the)","Grenada","Georgia","French Guiana","Guernsey","Ghana","Gibraltar","Greenland","Gambia (the)","Guinea","Guadeloupe","Equatorial Guinea","Greece","South Georgia and the South Sandwich Islands","Guatemala","Guam","Guinea-Bissau","Guyana","Hong Kong","Heard Island and McDonald Islands","Honduras","Croatia","Haiti","Hungary","Indonesia","Ireland","Israel","Isle of Man","India","British Indian Ocean Territory (the)","Iraq","Iran (Islamic Republic of)","Iceland","Italy","Jersey","Jamaica","Jordan","Japan","Kenya","Kyrgyzstan","Cambodia","Kiribati","Comoros (the)","Saint Kitts and Nevis","Korea (the Democratic People's Republic of)","Korea (the Republic of)","Kuwait","Cayman Islands (the)","Kazakhstan","Lao People's Democratic Republic (the)","Lebanon","Saint Lucia","Liechtenstein","Sri Lanka","Liberia","Lesotho","Lithuania","Luxembourg","Latvia","Libya","Morocco","Monaco","Moldova (the Republic of)","Montenegro","Saint Martin (French part)","Madagascar","Marshall Islands (the)","Republic of North Macedonia","Mali","Myanmar","Mongolia","Macao","Northern Mariana Islands (the)","Martinique","Mauritania","Montserrat","Malta","Mauritius","Maldives","Malawi","Mexico","Malaysia","Mozambique","Namibia","New Caledonia","Niger (the)","Norfolk Island","Nigeria","Nicaragua","Netherlands (the)","Norway","Nepal","Nauru","Niue","New Zealand","Oman","Panama","Peru","French Polynesia","Papua New Guinea","Philippines (the)","Pakistan","Poland","Saint Pierre and Miquelon","Pitcairn","Puerto Rico","Palestine, State of","Portugal","Palau","Paraguay","Qatar","Réunion","Romania","Serbia","Russian Federation (the)","Rwanda","Saudi Arabia","Solomon Islands","Seychelles","Sudan (the)","Sweden","Singapore","Saint Helena, Ascension and Tristan da Cunha","Slovenia","Svalbard and Jan Mayen","Slovakia","Sierra Leone","San Marino","Senegal","Somalia","Suriname","South Sudan","Sao Tome and Principe","El Salvador","Sint Maarten (Dutch part)","Syrian Arab Republic","Eswatini","Turks and Caicos Islands (the)","Chad","French Southern Territories (the)","Togo","Thailand","Tajikistan","Tokelau","Timor-Leste","Turkmenistan","Tunisia","Tonga","Turkey","Trinidad and Tobago","Tuvalu","Taiwan (Province of China)","Tanzania, United Republic of","Ukraine","Uganda","United States Minor Outlying Islands (the)","United States of America (the)","Uruguay","Uzbekistan","Holy See (the)","Saint Vincent and the Grenadines","Venezuela (Bolivarian Republic of)","Virgin Islands (British)","Virgin Islands (U.S.)","Viet Nam","Vanuatu","Wallis and Futuna","Samoa","Yemen","Mayotte","South Africa","Zambia","Zimbabwe"],n={AD:"Andorra",AE:"United Arab Emirates (the)",AF:"Afghanistan",AG:"Antigua and Barbuda",AI:"Anguilla",AL:"Albania",AM:"Armenia",AO:"Angola",AQ:"Antarctica",AR:"Argentina",AS:"American Samoa",AT:"Austria",AU:"Australia",AW:"Aruba",AX:"Åland Islands",AZ:"Azerbaijan",BA:"Bosnia and Herzegovina",BB:"Barbados",BD:"Bangladesh",BE:"Belgium",BF:"Burkina Faso",BG:"Bulgaria",BH:"Bahrain",BI:"Burundi",BJ:"Benin",BL:"Saint Barthélemy",BM:"Bermuda",BN:"Brunei Darussalam",BO:"Bolivia (Plurinational State of)",BQ:"Bonaire, Sint Eustatius and Saba",BR:"Brazil",BS:"Bahamas (the)",BT:"Bhutan",BV:"Bouvet Island",BW:"Botswana",BY:"Belarus",BZ:"Belize",CA:"Canada",CC:"Cocos (Keeling) Islands (the)",CD:"Congo (the Democratic Republic of the)",CF:"Central African Republic (the)",CG:"Congo (the)",CH:"Switzerland",CI:"Côte d'Ivoire",CK:"Cook Islands (the)",CL:"Chile",CM:"Cameroon",CN:"China",CO:"Colombia",CR:"Costa Rica",CU:"Cuba",CV:"Cabo Verde",CW:"Curaçao",CX:"Christmas Island",CY:"Cyprus",CZ:"Czechia",DE:"Germany",DJ:"Djibouti",DK:"Denmark",DM:"Dominica",DO:"Dominican Republic (the",DZ:"Algeria",EC:"Ecuador",EE:"Estonia",EG:"Egypt",EH:"Western Sahara",ER:"Eritrea",ES:"Spain",ET:"Ethiopia",FI:"Finland",FJ:"Fiji",FK:"Falkland Islands (the) [Malvinas]",FM:"Micronesia (Federated States of)",FO:"Faroe Islands (the)",FR:"France",GA:"Gabon",GB:"United Kingdom of Great Britain and Northern Ireland (the)",GD:"Grenada",GE:"Georgia",GF:"French Guiana",GG:"Guernsey",GH:"Ghana",GI:"Gibraltar",GL:"Greenland",GM:"Gambia (the)",GN:"Guinea",GP:"Guadeloupe",GQ:"Equatorial Guinea",GR:"Greece",GS:"South Georgia and the South Sandwich Islands",GT:"Guatemala",GU:"Guam",GW:"Guinea-Bissau",GY:"Guyana",HK:"Hong Kong",HM:"Heard Island and McDonald Islands",HN:"Honduras",HR:"Croatia",HT:"Haiti",HU:"Hungary",ID:"Indonesia",IE:"Ireland",IL:"Israel",IM:"Isle of Man",IN:"India",IO:"British Indian Ocean Territory (the)",IQ:"Iraq",IR:"Iran (Islamic Republic of)",IS:"Iceland",IT:"Italy",JE:"Jersey",JM:"Jamaica",JO:"Jordan",JP:"Japan",KE:"Kenya",KG:"Kyrgyzstan",KH:"Cambodia",KI:"Kiribati",KM:"Comoros (the)",KN:"Saint Kitts and Nevis",KP:"Korea (the Democratic People's Republic of)",KR:"Korea (the Republic of)",KW:"Kuwait",KY:"Cayman Islands (the)",KZ:"Kazakhstan",LA:"Lao People's Democratic Republic (the)",LB:"Lebanon",LC:"Saint Lucia",LI:"Liechtenstein",LK:"Sri Lanka",LR:"Liberia",LS:"Lesotho",LT:"Lithuania",LU:"Luxembourg",LV:"Latvia",LY:"Libya",MA:"Morocco",MC:"Monaco",MD:"Moldova (the Republic of)",ME:"Montenegro",MF:"Saint Martin (French part)",MG:"Madagascar",MH:"Marshall Islands (the)",MK:"Republic of North Macedonia",ML:"Mali",MM:"Myanmar",MN:"Mongolia",MO:"Macao",MP:"Northern Mariana Islands (the)",MQ:"Martinique",MR:"Mauritania",MS:"Montserrat",MT:"Malta",MU:"Mauritius",MV:"Maldives",MW:"Malawi",MX:"Mexico",MY:"Malaysia",MZ:"Mozambique",NA:"Namibia",NC:"New Caledonia",NE:"Niger (the)",NF:"Norfolk Island",NG:"Nigeria",NI:"Nicaragua",NL:"Netherlands (the)",NO:"Norway",NP:"Nepal",NR:"Nauru",NU:"Niue",NZ:"New Zealand",OM:"Oman",PA:"Panama",PE:"Peru",PF:"French Polynesia",PG:"Papua New Guinea",PH:"Philippines (the)",PK:"Pakistan",PL:"Poland",PM:"Saint Pierre and Miquelon",PN:"Pitcairn",PR:"Puerto Rico",PS:"Palestine, State of",PT:"Portugal",PW:"Palau",PY:"Paraguay",QA:"Qatar",RE:"Réunion",RO:"Romania",RS:"Serbia",RU:"Russian Federation (the)",RW:"Rwanda",SA:"Saudi Arabia",SB:"Solomon Islands",SC:"Seychelles",SD:"Sudan (the)",SE:"Sweden",SG:"Singapore",SH:"Saint Helena, Ascension and Tristan da Cunha",SI:"Slovenia",SJ:"Svalbard and Jan Mayen",SK:"Slovakia",SL:"Sierra Leone",SM:"San Marino",SN:"Senegal",SO:"Somalia",SR:"Suriname",SS:"South Sudan",ST:"Sao Tome and Principe",SV:"El Salvador",SX:"Sint Maarten (Dutch part)",SY:"Syrian Arab Republic",SZ:"Eswatini",TC:"Turks and Caicos Islands (the)",TD:"Chad",TF:"French Southern Territories (the)",TG:"Togo",TH:"Thailand",TJ:"Tajikistan",TK:"Tokelau",TL:"Timor-Leste",TM:"Turkmenistan",TN:"Tunisia",TO:"Tonga",TR:"Turkey",TT:"Trinidad and Tobago",TV:"Tuvalu",TW:"Taiwan (Province of China)",TZ:"Tanzania, United Republic of",UA:"Ukraine",UG:"Uganda",UM:"United States Minor Outlying Islands (the)",US:"United States of America (the)",UY:"Uruguay",UZ:"Uzbekistan",VA:"Holy See (the)",VC:"Saint Vincent and the Grenadines",VE:"Venezuela (Bolivarian Republic of)",VG:"Virgin Islands (British)",VI:"Virgin Islands (U.S.)",VN:"Viet Nam",VU:"Vanuatu",WF:"Wallis and Futuna",WS:"Samoa",YE:"Yemen",YT:"Mayotte",ZA:"South Africa",ZM:"Zambia",ZW:"Zimbabwe"},i=["Aberdeen City","Aberdeenshire","Angus","Argyll and Bute","Bedfordshire","Belfast","Belfast Greater","Berkshire","Blaenau Gwent","Bridgend","Buckinghamshire","Caerphilly","Cambridgeshire","Cardiff","Carmarthenshire","Ceredigion","Channel Islands","Cheshire","City of Edinburgh","Clackmannanshire","Conwy","Cornwall","County Antrim","County Armagh","County Down","County Fermanagh","County Londonderry","County Tyrone","County of Bristol","Cumbria","Denbighshire","Derbyshire","Devon","Dorset","Dumfries and Galloway","Dunbartonshire","Dundee City","Durham","East Ayrshire","East Dunbartonshire","East Lothian","East Renfrewshire","East Riding of Yorkshire","East Sussex","Essex","Falkirk","Fife","Flintshire","Glasgow City","Gloucestershire","Greater London","Greater Manchester","Guernsey Channel Islands","Gwynedd","Hampshire","Hereford and Worcester","Herefordshire","Hertfordshire","Highland","Inverclyde","Inverness","Isle of Anglesey","Isle of Barra","Isle of Man","Isle of Wight","Jersey Channel Islands","Kent","Lancashire","Leicestershire","Lincolnshire","Merseyside","Merthyr Tydfil","Midlothian","Monmouthshire","Moray","Neath Port Talbot","Newport","Norfolk","North Ayrshire","North Lanarkshire","North Yorkshire","Northamptonshire","Northumberland","Nottinghamshire","Orkney","Orkney Islands","Oxfordshire","Pembrokeshire","Perth and Kinross","Powys","Renfrewshire","Rhondda Cynon Taff","Rutland","Scottish Borders","Shetland Islands","Shropshire","Somerset","South Ayrshire","South Lanarkshire","South Yorkshire","Staffordshire","Stirling","Suffolk","Surrey","Swansea","Torfaen","Tyne and Wear","Vale of Glamorgan","Warwickshire","West Dunbart","West Lothian","West Midlands","West Sussex","West Yorkshire","Western Isles","Wiltshire","Worcestershire","Wrexham"];exports.COUNTRIES=e;exports.COUNTRY_ISO_CODES=a;exports.COUNTRY_ISO_CODE_MAPPING=n;exports.UK_COUNTIES=i;
|
|
2
|
+
//# sourceMappingURL=location.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"location.cjs.js","sources":["../../src/utils/location.ts"],"sourcesContent":["export const COUNTRY_ISO_CODES = [\n \"AD\",\n \"AE\",\n \"AF\",\n \"AG\",\n \"AI\",\n \"AL\",\n \"AM\",\n \"AO\",\n \"AQ\",\n \"AR\",\n \"AS\",\n \"AT\",\n \"AU\",\n \"AW\",\n \"AX\",\n \"AZ\",\n \"BA\",\n \"BB\",\n \"BD\",\n \"BE\",\n \"BF\",\n \"BG\",\n \"BH\",\n \"BI\",\n \"BJ\",\n \"BL\",\n \"BM\",\n \"BN\",\n \"BO\",\n \"BQ\",\n \"BR\",\n \"BS\",\n \"BT\",\n \"BV\",\n \"BW\",\n \"BY\",\n \"BZ\",\n \"CA\",\n \"CC\",\n \"CD\",\n \"CF\",\n \"CG\",\n \"CH\",\n \"CI\",\n \"CK\",\n \"CL\",\n \"CM\",\n \"CN\",\n \"CO\",\n \"CR\",\n \"CU\",\n \"CV\",\n \"CW\",\n \"CX\",\n \"CY\",\n \"CZ\",\n \"DE\",\n \"DJ\",\n \"DK\",\n \"DM\",\n \"DO\",\n \"DZ\",\n \"EC\",\n \"EE\",\n \"EG\",\n \"EH\",\n \"ER\",\n \"ES\",\n \"ET\",\n \"FI\",\n \"FJ\",\n \"FK\",\n \"FM\",\n \"FO\",\n \"FR\",\n \"GA\",\n \"GB\",\n \"GD\",\n \"GE\",\n \"GF\",\n \"GG\",\n \"GH\",\n \"GI\",\n \"GL\",\n \"GM\",\n \"GN\",\n \"GP\",\n \"GQ\",\n \"GR\",\n \"GS\",\n \"GT\",\n \"GU\",\n \"GW\",\n \"GY\",\n \"HK\",\n \"HM\",\n \"HN\",\n \"HR\",\n \"HT\",\n \"HU\",\n \"ID\",\n \"IE\",\n \"IL\",\n \"IM\",\n \"IN\",\n \"IO\",\n \"IQ\",\n \"IR\",\n \"IS\",\n \"IT\",\n \"JE\",\n \"JM\",\n \"JO\",\n \"JP\",\n \"KE\",\n \"KG\",\n \"KH\",\n \"KI\",\n \"KM\",\n \"KN\",\n \"KP\",\n \"KR\",\n \"KW\",\n \"KY\",\n \"KZ\",\n \"LA\",\n \"LB\",\n \"LC\",\n \"LI\",\n \"LK\",\n \"LR\",\n \"LS\",\n \"LT\",\n \"LU\",\n \"LV\",\n \"LY\",\n \"MA\",\n \"MC\",\n \"MD\",\n \"ME\",\n \"MF\",\n \"MG\",\n \"MH\",\n \"MK\",\n \"ML\",\n \"MM\",\n \"MN\",\n \"MO\",\n \"MP\",\n \"MQ\",\n \"MR\",\n \"MS\",\n \"MT\",\n \"MU\",\n \"MV\",\n \"MW\",\n \"MX\",\n \"MY\",\n \"MZ\",\n \"NA\",\n \"NC\",\n \"NE\",\n \"NF\",\n \"NG\",\n \"NI\",\n \"NL\",\n \"NO\",\n \"NP\",\n \"NR\",\n \"NU\",\n \"NZ\",\n \"OM\",\n \"PA\",\n \"PE\",\n \"PF\",\n \"PG\",\n \"PH\",\n \"PK\",\n \"PL\",\n \"PM\",\n \"PN\",\n \"PR\",\n \"PS\",\n \"PT\",\n \"PW\",\n \"PY\",\n \"QA\",\n \"RE\",\n \"RO\",\n \"RS\",\n \"RU\",\n \"RW\",\n \"SA\",\n \"SB\",\n \"SC\",\n \"SD\",\n \"SE\",\n \"SG\",\n \"SH\",\n \"SI\",\n \"SJ\",\n \"SK\",\n \"SL\",\n \"SM\",\n \"SN\",\n \"SO\",\n \"SR\",\n \"SS\",\n \"ST\",\n \"SV\",\n \"SX\",\n \"SY\",\n \"SZ\",\n \"TC\",\n \"TD\",\n \"TF\",\n \"TG\",\n \"TH\",\n \"TJ\",\n \"TK\",\n \"TL\",\n \"TM\",\n \"TN\",\n \"TO\",\n \"TR\",\n \"TT\",\n \"TV\",\n \"TW\",\n \"TZ\",\n \"UA\",\n \"UG\",\n \"UM\",\n \"US\",\n \"UY\",\n \"UZ\",\n \"VA\",\n \"VC\",\n \"VE\",\n \"VG\",\n \"VI\",\n \"VN\",\n \"VU\",\n \"WF\",\n \"WS\",\n \"YE\",\n \"YT\",\n \"ZA\",\n \"ZM\",\n \"ZW\",\n] as const\n\nexport type CountryIsoCodes = (typeof COUNTRY_ISO_CODES)[number]\n\nexport const COUNTRIES = [\n \"Andorra\",\n \"United Arab Emirates (the)\",\n \"Afghanistan\",\n \"Antigua and Barbuda\",\n \"Anguilla\",\n \"Albania\",\n \"Armenia\",\n \"Angola\",\n \"Antarctica\",\n \"Argentina\",\n \"American Samoa\",\n \"Austria\",\n \"Australia\",\n \"Aruba\",\n \"Åland Islands\",\n \"Azerbaijan\",\n \"Bosnia and Herzegovina\",\n \"Barbados\",\n \"Bangladesh\",\n \"Belgium\",\n \"Burkina Faso\",\n \"Bulgaria\",\n \"Bahrain\",\n \"Burundi\",\n \"Benin\",\n \"Saint Barthélemy\",\n \"Bermuda\",\n \"Brunei Darussalam\",\n \"Bolivia (Plurinational State of)\",\n \"Bonaire, Sint Eustatius and Saba\",\n \"Brazil\",\n \"Bahamas (the)\",\n \"Bhutan\",\n \"Bouvet Island\",\n \"Botswana\",\n \"Belarus\",\n \"Belize\",\n \"Canada\",\n \"Cocos (Keeling) Islands (the)\",\n \"Congo (the Democratic Republic of the)\",\n \"Central African Republic (the)\",\n \"Congo (the)\",\n \"Switzerland\",\n \"Côte d'Ivoire\",\n \"Cook Islands (the)\",\n \"Chile\",\n \"Cameroon\",\n \"China\",\n \"Colombia\",\n \"Costa Rica\",\n \"Cuba\",\n \"Cabo Verde\",\n \"Curaçao\",\n \"Christmas Island\",\n \"Cyprus\",\n \"Czechia\",\n \"Germany\",\n \"Djibouti\",\n \"Denmark\",\n \"Dominica\",\n \"Dominican Republic (the\",\n \"Algeria\",\n \"Ecuador\",\n \"Estonia\",\n \"Egypt\",\n \"Western Sahara\",\n \"Eritrea\",\n \"Spain\",\n \"Ethiopia\",\n \"Finland\",\n \"Fiji\",\n \"Falkland Islands (the) [Malvinas]\",\n \"Micronesia (Federated States of)\",\n \"Faroe Islands (the)\",\n \"France\",\n \"Gabon\",\n \"United Kingdom of Great Britain and Northern Ireland (the)\",\n \"Grenada\",\n \"Georgia\",\n \"French Guiana\",\n \"Guernsey\",\n \"Ghana\",\n \"Gibraltar\",\n \"Greenland\",\n \"Gambia (the)\",\n \"Guinea\",\n \"Guadeloupe\",\n \"Equatorial Guinea\",\n \"Greece\",\n \"South Georgia and the South Sandwich Islands\",\n \"Guatemala\",\n \"Guam\",\n \"Guinea-Bissau\",\n \"Guyana\",\n \"Hong Kong\",\n \"Heard Island and McDonald Islands\",\n \"Honduras\",\n \"Croatia\",\n \"Haiti\",\n \"Hungary\",\n \"Indonesia\",\n \"Ireland\",\n \"Israel\",\n \"Isle of Man\",\n \"India\",\n \"British Indian Ocean Territory (the)\",\n \"Iraq\",\n \"Iran (Islamic Republic of)\",\n \"Iceland\",\n \"Italy\",\n \"Jersey\",\n \"Jamaica\",\n \"Jordan\",\n \"Japan\",\n \"Kenya\",\n \"Kyrgyzstan\",\n \"Cambodia\",\n \"Kiribati\",\n \"Comoros (the)\",\n \"Saint Kitts and Nevis\",\n \"Korea (the Democratic People's Republic of)\",\n \"Korea (the Republic of)\",\n \"Kuwait\",\n \"Cayman Islands (the)\",\n \"Kazakhstan\",\n \"Lao People's Democratic Republic (the)\",\n \"Lebanon\",\n \"Saint Lucia\",\n \"Liechtenstein\",\n \"Sri Lanka\",\n \"Liberia\",\n \"Lesotho\",\n \"Lithuania\",\n \"Luxembourg\",\n \"Latvia\",\n \"Libya\",\n \"Morocco\",\n \"Monaco\",\n \"Moldova (the Republic of)\",\n \"Montenegro\",\n \"Saint Martin (French part)\",\n \"Madagascar\",\n \"Marshall Islands (the)\",\n \"Republic of North Macedonia\",\n \"Mali\",\n \"Myanmar\",\n \"Mongolia\",\n \"Macao\",\n \"Northern Mariana Islands (the)\",\n \"Martinique\",\n \"Mauritania\",\n \"Montserrat\",\n \"Malta\",\n \"Mauritius\",\n \"Maldives\",\n \"Malawi\",\n \"Mexico\",\n \"Malaysia\",\n \"Mozambique\",\n \"Namibia\",\n \"New Caledonia\",\n \"Niger (the)\",\n \"Norfolk Island\",\n \"Nigeria\",\n \"Nicaragua\",\n \"Netherlands (the)\",\n \"Norway\",\n \"Nepal\",\n \"Nauru\",\n \"Niue\",\n \"New Zealand\",\n \"Oman\",\n \"Panama\",\n \"Peru\",\n \"French Polynesia\",\n \"Papua New Guinea\",\n \"Philippines (the)\",\n \"Pakistan\",\n \"Poland\",\n \"Saint Pierre and Miquelon\",\n \"Pitcairn\",\n \"Puerto Rico\",\n \"Palestine, State of\",\n \"Portugal\",\n \"Palau\",\n \"Paraguay\",\n \"Qatar\",\n \"Réunion\",\n \"Romania\",\n \"Serbia\",\n \"Russian Federation (the)\",\n \"Rwanda\",\n \"Saudi Arabia\",\n \"Solomon Islands\",\n \"Seychelles\",\n \"Sudan (the)\",\n \"Sweden\",\n \"Singapore\",\n \"Saint Helena, Ascension and Tristan da Cunha\",\n \"Slovenia\",\n \"Svalbard and Jan Mayen\",\n \"Slovakia\",\n \"Sierra Leone\",\n \"San Marino\",\n \"Senegal\",\n \"Somalia\",\n \"Suriname\",\n \"South Sudan\",\n \"Sao Tome and Principe\",\n \"El Salvador\",\n \"Sint Maarten (Dutch part)\",\n \"Syrian Arab Republic\",\n \"Eswatini\",\n \"Turks and Caicos Islands (the)\",\n \"Chad\",\n \"French Southern Territories (the)\",\n \"Togo\",\n \"Thailand\",\n \"Tajikistan\",\n \"Tokelau\",\n \"Timor-Leste\",\n \"Turkmenistan\",\n \"Tunisia\",\n \"Tonga\",\n \"Turkey\",\n \"Trinidad and Tobago\",\n \"Tuvalu\",\n \"Taiwan (Province of China)\",\n \"Tanzania, United Republic of\",\n \"Ukraine\",\n \"Uganda\",\n \"United States Minor Outlying Islands (the)\",\n \"United States of America (the)\",\n \"Uruguay\",\n \"Uzbekistan\",\n \"Holy See (the)\",\n \"Saint Vincent and the Grenadines\",\n \"Venezuela (Bolivarian Republic of)\",\n \"Virgin Islands (British)\",\n \"Virgin Islands (U.S.)\",\n \"Viet Nam\",\n \"Vanuatu\",\n \"Wallis and Futuna\",\n \"Samoa\",\n \"Yemen\",\n \"Mayotte\",\n \"South Africa\",\n \"Zambia\",\n \"Zimbabwe\",\n] as const\n\nexport type Countries = (typeof COUNTRIES)[number]\n\nexport const COUNTRY_ISO_CODE_MAPPING: Record<CountryIsoCodes, Countries> = {\n AD: \"Andorra\",\n AE: \"United Arab Emirates (the)\",\n AF: \"Afghanistan\",\n AG: \"Antigua and Barbuda\",\n AI: \"Anguilla\",\n AL: \"Albania\",\n AM: \"Armenia\",\n AO: \"Angola\",\n AQ: \"Antarctica\",\n AR: \"Argentina\",\n AS: \"American Samoa\",\n AT: \"Austria\",\n AU: \"Australia\",\n AW: \"Aruba\",\n AX: \"Åland Islands\",\n AZ: \"Azerbaijan\",\n BA: \"Bosnia and Herzegovina\",\n BB: \"Barbados\",\n BD: \"Bangladesh\",\n BE: \"Belgium\",\n BF: \"Burkina Faso\",\n BG: \"Bulgaria\",\n BH: \"Bahrain\",\n BI: \"Burundi\",\n BJ: \"Benin\",\n BL: \"Saint Barthélemy\",\n BM: \"Bermuda\",\n BN: \"Brunei Darussalam\",\n BO: \"Bolivia (Plurinational State of)\",\n BQ: \"Bonaire, Sint Eustatius and Saba\",\n BR: \"Brazil\",\n BS: \"Bahamas (the)\",\n BT: \"Bhutan\",\n BV: \"Bouvet Island\",\n BW: \"Botswana\",\n BY: \"Belarus\",\n BZ: \"Belize\",\n CA: \"Canada\",\n CC: \"Cocos (Keeling) Islands (the)\",\n CD: \"Congo (the Democratic Republic of the)\",\n CF: \"Central African Republic (the)\",\n CG: \"Congo (the)\",\n CH: \"Switzerland\",\n CI: \"Côte d'Ivoire\",\n CK: \"Cook Islands (the)\",\n CL: \"Chile\",\n CM: \"Cameroon\",\n CN: \"China\",\n CO: \"Colombia\",\n CR: \"Costa Rica\",\n CU: \"Cuba\",\n CV: \"Cabo Verde\",\n CW: \"Curaçao\",\n CX: \"Christmas Island\",\n CY: \"Cyprus\",\n CZ: \"Czechia\",\n DE: \"Germany\",\n DJ: \"Djibouti\",\n DK: \"Denmark\",\n DM: \"Dominica\",\n DO: \"Dominican Republic (the\",\n DZ: \"Algeria\",\n EC: \"Ecuador\",\n EE: \"Estonia\",\n EG: \"Egypt\",\n EH: \"Western Sahara\",\n ER: \"Eritrea\",\n ES: \"Spain\",\n ET: \"Ethiopia\",\n FI: \"Finland\",\n FJ: \"Fiji\",\n FK: \"Falkland Islands (the) [Malvinas]\",\n FM: \"Micronesia (Federated States of)\",\n FO: \"Faroe Islands (the)\",\n FR: \"France\",\n GA: \"Gabon\",\n GB: \"United Kingdom of Great Britain and Northern Ireland (the)\",\n GD: \"Grenada\",\n GE: \"Georgia\",\n GF: \"French Guiana\",\n GG: \"Guernsey\",\n GH: \"Ghana\",\n GI: \"Gibraltar\",\n GL: \"Greenland\",\n GM: \"Gambia (the)\",\n GN: \"Guinea\",\n GP: \"Guadeloupe\",\n GQ: \"Equatorial Guinea\",\n GR: \"Greece\",\n GS: \"South Georgia and the South Sandwich Islands\",\n GT: \"Guatemala\",\n GU: \"Guam\",\n GW: \"Guinea-Bissau\",\n GY: \"Guyana\",\n HK: \"Hong Kong\",\n HM: \"Heard Island and McDonald Islands\",\n HN: \"Honduras\",\n HR: \"Croatia\",\n HT: \"Haiti\",\n HU: \"Hungary\",\n ID: \"Indonesia\",\n IE: \"Ireland\",\n IL: \"Israel\",\n IM: \"Isle of Man\",\n IN: \"India\",\n IO: \"British Indian Ocean Territory (the)\",\n IQ: \"Iraq\",\n IR: \"Iran (Islamic Republic of)\",\n IS: \"Iceland\",\n IT: \"Italy\",\n JE: \"Jersey\",\n JM: \"Jamaica\",\n JO: \"Jordan\",\n JP: \"Japan\",\n KE: \"Kenya\",\n KG: \"Kyrgyzstan\",\n KH: \"Cambodia\",\n KI: \"Kiribati\",\n KM: \"Comoros (the)\",\n KN: \"Saint Kitts and Nevis\",\n KP: \"Korea (the Democratic People's Republic of)\",\n KR: \"Korea (the Republic of)\",\n KW: \"Kuwait\",\n KY: \"Cayman Islands (the)\",\n KZ: \"Kazakhstan\",\n LA: \"Lao People's Democratic Republic (the)\",\n LB: \"Lebanon\",\n LC: \"Saint Lucia\",\n LI: \"Liechtenstein\",\n LK: \"Sri Lanka\",\n LR: \"Liberia\",\n LS: \"Lesotho\",\n LT: \"Lithuania\",\n LU: \"Luxembourg\",\n LV: \"Latvia\",\n LY: \"Libya\",\n MA: \"Morocco\",\n MC: \"Monaco\",\n MD: \"Moldova (the Republic of)\",\n ME: \"Montenegro\",\n MF: \"Saint Martin (French part)\",\n MG: \"Madagascar\",\n MH: \"Marshall Islands (the)\",\n MK: \"Republic of North Macedonia\",\n ML: \"Mali\",\n MM: \"Myanmar\",\n MN: \"Mongolia\",\n MO: \"Macao\",\n MP: \"Northern Mariana Islands (the)\",\n MQ: \"Martinique\",\n MR: \"Mauritania\",\n MS: \"Montserrat\",\n MT: \"Malta\",\n MU: \"Mauritius\",\n MV: \"Maldives\",\n MW: \"Malawi\",\n MX: \"Mexico\",\n MY: \"Malaysia\",\n MZ: \"Mozambique\",\n NA: \"Namibia\",\n NC: \"New Caledonia\",\n NE: \"Niger (the)\",\n NF: \"Norfolk Island\",\n NG: \"Nigeria\",\n NI: \"Nicaragua\",\n NL: \"Netherlands (the)\",\n NO: \"Norway\",\n NP: \"Nepal\",\n NR: \"Nauru\",\n NU: \"Niue\",\n NZ: \"New Zealand\",\n OM: \"Oman\",\n PA: \"Panama\",\n PE: \"Peru\",\n PF: \"French Polynesia\",\n PG: \"Papua New Guinea\",\n PH: \"Philippines (the)\",\n PK: \"Pakistan\",\n PL: \"Poland\",\n PM: \"Saint Pierre and Miquelon\",\n PN: \"Pitcairn\",\n PR: \"Puerto Rico\",\n PS: \"Palestine, State of\",\n PT: \"Portugal\",\n PW: \"Palau\",\n PY: \"Paraguay\",\n QA: \"Qatar\",\n RE: \"Réunion\",\n RO: \"Romania\",\n RS: \"Serbia\",\n RU: \"Russian Federation (the)\",\n RW: \"Rwanda\",\n SA: \"Saudi Arabia\",\n SB: \"Solomon Islands\",\n SC: \"Seychelles\",\n SD: \"Sudan (the)\",\n SE: \"Sweden\",\n SG: \"Singapore\",\n SH: \"Saint Helena, Ascension and Tristan da Cunha\",\n SI: \"Slovenia\",\n SJ: \"Svalbard and Jan Mayen\",\n SK: \"Slovakia\",\n SL: \"Sierra Leone\",\n SM: \"San Marino\",\n SN: \"Senegal\",\n SO: \"Somalia\",\n SR: \"Suriname\",\n SS: \"South Sudan\",\n ST: \"Sao Tome and Principe\",\n SV: \"El Salvador\",\n SX: \"Sint Maarten (Dutch part)\",\n SY: \"Syrian Arab Republic\",\n SZ: \"Eswatini\",\n TC: \"Turks and Caicos Islands (the)\",\n TD: \"Chad\",\n TF: \"French Southern Territories (the)\",\n TG: \"Togo\",\n TH: \"Thailand\",\n TJ: \"Tajikistan\",\n TK: \"Tokelau\",\n TL: \"Timor-Leste\",\n TM: \"Turkmenistan\",\n TN: \"Tunisia\",\n TO: \"Tonga\",\n TR: \"Turkey\",\n TT: \"Trinidad and Tobago\",\n TV: \"Tuvalu\",\n TW: \"Taiwan (Province of China)\",\n TZ: \"Tanzania, United Republic of\",\n UA: \"Ukraine\",\n UG: \"Uganda\",\n UM: \"United States Minor Outlying Islands (the)\",\n US: \"United States of America (the)\",\n UY: \"Uruguay\",\n UZ: \"Uzbekistan\",\n VA: \"Holy See (the)\",\n VC: \"Saint Vincent and the Grenadines\",\n VE: \"Venezuela (Bolivarian Republic of)\",\n VG: \"Virgin Islands (British)\",\n VI: \"Virgin Islands (U.S.)\",\n VN: \"Viet Nam\",\n VU: \"Vanuatu\",\n WF: \"Wallis and Futuna\",\n WS: \"Samoa\",\n YE: \"Yemen\",\n YT: \"Mayotte\",\n ZA: \"South Africa\",\n ZM: \"Zambia\",\n ZW: \"Zimbabwe\",\n}\n\nexport const UK_COUNTIES = [\n \"Aberdeen City\",\n \"Aberdeenshire\",\n \"Angus\",\n \"Argyll and Bute\",\n \"Bedfordshire\",\n \"Belfast\",\n \"Belfast Greater\",\n \"Berkshire\",\n \"Blaenau Gwent\",\n \"Bridgend\",\n \"Buckinghamshire\",\n \"Caerphilly\",\n \"Cambridgeshire\",\n \"Cardiff\",\n \"Carmarthenshire\",\n \"Ceredigion\",\n \"Channel Islands\",\n \"Cheshire\",\n \"City of Edinburgh\",\n \"Clackmannanshire\",\n \"Conwy\",\n \"Cornwall\",\n \"County Antrim\",\n \"County Armagh\",\n \"County Down\",\n \"County Fermanagh\",\n \"County Londonderry\",\n \"County Tyrone\",\n \"County of Bristol\",\n \"Cumbria\",\n \"Denbighshire\",\n \"Derbyshire\",\n \"Devon\",\n \"Dorset\",\n \"Dumfries and Galloway\",\n \"Dunbartonshire\",\n \"Dundee City\",\n \"Durham\",\n \"East Ayrshire\",\n \"East Dunbartonshire\",\n \"East Lothian\",\n \"East Renfrewshire\",\n \"East Riding of Yorkshire\",\n \"East Sussex\",\n \"Essex\",\n \"Falkirk\",\n \"Fife\",\n \"Flintshire\",\n \"Glasgow City\",\n \"Gloucestershire\",\n \"Greater London\",\n \"Greater Manchester\",\n \"Guernsey Channel Islands\",\n \"Gwynedd\",\n \"Hampshire\",\n \"Hereford and Worcester\",\n \"Herefordshire\",\n \"Hertfordshire\",\n \"Highland\",\n \"Inverclyde\",\n \"Inverness\",\n \"Isle of Anglesey\",\n \"Isle of Barra\",\n \"Isle of Man\",\n \"Isle of Wight\",\n \"Jersey Channel Islands\",\n \"Kent\",\n \"Lancashire\",\n \"Leicestershire\",\n \"Lincolnshire\",\n \"Merseyside\",\n \"Merthyr Tydfil\",\n \"Midlothian\",\n \"Monmouthshire\",\n \"Moray\",\n \"Neath Port Talbot\",\n \"Newport\",\n \"Norfolk\",\n \"North Ayrshire\",\n \"North Lanarkshire\",\n \"North Yorkshire\",\n \"Northamptonshire\",\n \"Northumberland\",\n \"Nottinghamshire\",\n \"Orkney\",\n \"Orkney Islands\",\n \"Oxfordshire\",\n \"Pembrokeshire\",\n \"Perth and Kinross\",\n \"Powys\",\n \"Renfrewshire\",\n \"Rhondda Cynon Taff\",\n \"Rutland\",\n \"Scottish Borders\",\n \"Shetland Islands\",\n \"Shropshire\",\n \"Somerset\",\n \"South Ayrshire\",\n \"South Lanarkshire\",\n \"South Yorkshire\",\n \"Staffordshire\",\n \"Stirling\",\n \"Suffolk\",\n \"Surrey\",\n \"Swansea\",\n \"Torfaen\",\n \"Tyne and Wear\",\n \"Vale of Glamorgan\",\n \"Warwickshire\",\n \"West Dunbart\",\n \"West Lothian\",\n \"West Midlands\",\n \"West Sussex\",\n \"West Yorkshire\",\n \"Western Isles\",\n \"Wiltshire\",\n \"Worcestershire\",\n \"Wrexham\",\n] as const\n\nexport type UkCounties = (typeof UK_COUNTIES)[number]\n"],"names":["COUNTRY_ISO_CODES","COUNTRIES","COUNTRY_ISO_CODE_MAPPING","UK_COUNTIES"],"mappings":"gFAAO,MAAMA,EAAoB,CAC/B,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACF,EAIaC,EAAY,CACvB,UACA,6BACA,cACA,sBACA,WACA,UACA,UACA,SACA,aACA,YACA,iBACA,UACA,YACA,QACA,gBACA,aACA,yBACA,WACA,aACA,UACA,eACA,WACA,UACA,UACA,QACA,mBACA,UACA,oBACA,mCACA,mCACA,SACA,gBACA,SACA,gBACA,WACA,UACA,SACA,SACA,gCACA,yCACA,iCACA,cACA,cACA,gBACA,qBACA,QACA,WACA,QACA,WACA,aACA,OACA,aACA,UACA,mBACA,SACA,UACA,UACA,WACA,UACA,WACA,0BACA,UACA,UACA,UACA,QACA,iBACA,UACA,QACA,WACA,UACA,OACA,oCACA,mCACA,sBACA,SACA,QACA,6DACA,UACA,UACA,gBACA,WACA,QACA,YACA,YACA,eACA,SACA,aACA,oBACA,SACA,+CACA,YACA,OACA,gBACA,SACA,YACA,oCACA,WACA,UACA,QACA,UACA,YACA,UACA,SACA,cACA,QACA,uCACA,OACA,6BACA,UACA,QACA,SACA,UACA,SACA,QACA,QACA,aACA,WACA,WACA,gBACA,wBACA,8CACA,0BACA,SACA,uBACA,aACA,yCACA,UACA,cACA,gBACA,YACA,UACA,UACA,YACA,aACA,SACA,QACA,UACA,SACA,4BACA,aACA,6BACA,aACA,yBACA,8BACA,OACA,UACA,WACA,QACA,iCACA,aACA,aACA,aACA,QACA,YACA,WACA,SACA,SACA,WACA,aACA,UACA,gBACA,cACA,iBACA,UACA,YACA,oBACA,SACA,QACA,QACA,OACA,cACA,OACA,SACA,OACA,mBACA,mBACA,oBACA,WACA,SACA,4BACA,WACA,cACA,sBACA,WACA,QACA,WACA,QACA,UACA,UACA,SACA,2BACA,SACA,eACA,kBACA,aACA,cACA,SACA,YACA,+CACA,WACA,yBACA,WACA,eACA,aACA,UACA,UACA,WACA,cACA,wBACA,cACA,4BACA,uBA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,WACJ,GAAI,iCACJ,GAAI,OACJ,GAAI,oCACJ,GAAI,OACJ,GAAI,WACJ,GAAI,aACJ,GAAI,UACJ,GAAI,cACJ,GAAI,eACJ,GAAI,UACJ,GAAI,QACJ,GAAI,SACJ,GAAI,sBACJ,GAAI,SACJ,GAAI,6BACJ,GAAI,+BACJ,GAAI,UACJ,GAAI,SACJ,GAAI,6CACJ,GAAI,iCACJ,GAAI,UACJ,GAAI,aACJ,GAAI,iBACJ,GAAI,mCACJ,GAAI,qCACJ,GAAI,2BACJ,GAAI,wBACJ,GAAI,WACJ,GAAI,UACJ,GAAI,oBACJ,GAAI,QACJ,GAAI,QACJ,GAAI,UACJ,GAAI,eACJ,GAAI,SACJ,GAAI,UACN,EAEaC,EAAc,CACzB,gBACA,gBACA,QACA,kBACA,eACA,UACA,kBACA,YACA,gBACA,WACA,kBACA,aACA,iBACA,UACA,kBACA,aACA,kBACA,WACA,oBACA,mBACA,QACA,WACA,gBACA,gBACA,cACA,mBACA,qBACA,gBACA,oBACA,UACA,eACA,aACA,QACA,SACA,wBACA,iBACA,cACA,SACA,gBACA,sBACA,eACA,oBACA,2BACA,cACA,QACA,UACA,OACA,aACA,eACA,kBACA,iBACA,qBACA,2BACA,UACA,YACA,yBACA,gBACA,gBACA,WACA,aACA,YACA,mBACA,gBACA,cACA,gBACA,yBACA,OACA,aACA,iBACA,eACA,aACA,iBACA,aACA,gBACA,QACA,oBACA,UACA,UACA,iBACA,oBACA,kBACA,mBACA,iBACA,kBACA,SACA,iBACA,cACA,gBACA,oBACA,QACA,eACA,qBACA,UACA,mBACA,mBACA,aACA,WACA,iBACA,oBACA,kBACA,gBACA,WACA,UACA,SACA,UACA,UACA,gBACA,oBACA,eACA,eACA,eACA,gBACA,cACA,iBACA,gBACA,YACA,iBACA,SACF"}
|