@bisondesk/website-commons-sdk 1.0.36 → 1.0.38
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/lib/types/fields.d.ts +3 -1
- package/lib/types/fields.d.ts.map +1 -1
- package/lib/types/fields.js +1 -0
- package/lib/types/fields.js.map +1 -1
- package/lib/types/mailing-list.d.ts +78 -0
- package/lib/types/mailing-list.d.ts.map +1 -0
- package/lib/types/mailing-list.js +26 -0
- package/lib/types/mailing-list.js.map +1 -0
- package/lib/types/search.d.ts +1 -0
- package/lib/types/search.d.ts.map +1 -1
- package/lib/types/search.js.map +1 -1
- package/lib/types/user-searches.d.ts +49 -6
- package/lib/types/user-searches.d.ts.map +1 -1
- package/lib/types/user-searches.js +1 -1
- package/lib/types/user-searches.js.map +1 -1
- package/lib/types/user.d.ts +73 -10
- package/lib/types/user.d.ts.map +1 -1
- package/lib/types/user.js +82 -0
- package/lib/types/user.js.map +1 -1
- package/lib/utils/index.d.ts.map +1 -1
- package/lib/utils/vehicle.d.ts.map +1 -1
- package/package.json +6 -3
- package/src/types/fields.ts +2 -0
- package/src/types/mailing-list.ts +53 -0
- package/src/types/search.ts +1 -0
- package/src/types/user-searches.ts +1 -1
- package/src/types/user.test.ts +128 -0
- package/src/types/user.ts +110 -16
- package/tsconfig.tsbuildinfo +1 -1
package/lib/types/fields.d.ts
CHANGED
|
@@ -3,7 +3,8 @@ export declare enum FieldTypes {
|
|
|
3
3
|
checkbox = "checkbox",
|
|
4
4
|
chip = "chip",
|
|
5
5
|
boolean = "boolean",
|
|
6
|
-
country = "country"
|
|
6
|
+
country = "country",
|
|
7
|
+
color = "color"
|
|
7
8
|
}
|
|
8
9
|
type BaseMeta = {};
|
|
9
10
|
type NumberUnit = 'acre' | 'bit' | 'byte' | 'celsius' | 'centimeter' | 'day' | 'degree' | 'fahrenheit' | 'fluid-ounce' | 'foot' | 'gallon' | 'gigabit' | 'gigabyte' | 'gram' | 'hectare' | 'hour' | 'inch' | 'kilobit' | 'kilobyte' | 'kilogram' | 'kilometer' | 'liter' | 'megabit' | 'megabyte' | 'meter' | 'mile' | 'mile-scandinavian' | 'milliliter' | 'millimeter' | 'millisecond' | 'minute' | 'month' | 'ounce' | 'percent' | 'petabyte' | 'pound' | 'second' | 'stone' | 'terabit' | 'terabyte' | 'week' | 'yard' | 'year';
|
|
@@ -14,6 +15,7 @@ type BaseNumberMeta = {
|
|
|
14
15
|
} & ({
|
|
15
16
|
style: 'unit';
|
|
16
17
|
unit: NumberUnit;
|
|
18
|
+
unitDisplay?: 'long' | 'short' | 'narrow';
|
|
17
19
|
} | {
|
|
18
20
|
style?: 'currency' | 'decimal' | 'percent';
|
|
19
21
|
unit?: NumberUnit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.d.ts","sourceRoot":"/","sources":["types/fields.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,YAAY,iBAAiB;IAC7B,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,OAAO,YAAY;
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"/","sources":["types/fields.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,YAAY,iBAAiB;IAC7B,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAKD,KAAK,QAAQ,GAAG,EAAE,CAAC;AAEnB,KAAK,UAAU,GACX,MAAM,GACN,KAAK,GACL,MAAM,GACN,SAAS,GACT,YAAY,GACZ,KAAK,GACL,QAAQ,GACR,YAAY,GACZ,aAAa,GACb,MAAM,GACN,QAAQ,GACR,SAAS,GACT,UAAU,GACV,MAAM,GACN,SAAS,GACT,MAAM,GACN,MAAM,GACN,SAAS,GACT,UAAU,GACV,UAAU,GACV,WAAW,GACX,OAAO,GACP,SAAS,GACT,UAAU,GACV,OAAO,GACP,MAAM,GACN,mBAAmB,GACnB,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,QAAQ,GACR,OAAO,GACP,OAAO,GACP,SAAS,GACT,UAAU,GACV,OAAO,GACP,QAAQ,GACR,OAAO,GACP,SAAS,GACT,UAAU,GACV,MAAM,GACN,MAAM,GACN,MAAM,CAAC;AAEX,KAAK,cAAc,GAAG;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GAAG,CACA;IACE,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;CAC3C,GACD;IACE,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IAC3C,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,CACJ,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,cAAc,CAAC"}
|
package/lib/types/fields.js
CHANGED
package/lib/types/fields.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.js","sourceRoot":"/","sources":["types/fields.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"/","sources":["types/fields.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,2CAA6B,CAAA;IAC7B,mCAAqB,CAAA;IACrB,2BAAa,CAAA;IACb,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;IACnB,6BAAe,CAAA;AACjB,CAAC,EAPW,UAAU,KAAV,UAAU,QAOrB","sourcesContent":["export enum FieldTypes {\n singleselect = 'singleselect',\n checkbox = 'checkbox',\n chip = 'chip',\n boolean = 'boolean',\n country = 'country',\n color = 'color',\n}\n\n//\n// Field metas\n//\ntype BaseMeta = {};\n\ntype NumberUnit =\n | 'acre'\n | 'bit'\n | 'byte'\n | 'celsius'\n | 'centimeter'\n | 'day'\n | 'degree'\n | 'fahrenheit'\n | 'fluid-ounce'\n | 'foot'\n | 'gallon'\n | 'gigabit'\n | 'gigabyte'\n | 'gram'\n | 'hectare'\n | 'hour'\n | 'inch'\n | 'kilobit'\n | 'kilobyte'\n | 'kilogram'\n | 'kilometer'\n | 'liter'\n | 'megabit'\n | 'megabyte'\n | 'meter'\n | 'mile'\n | 'mile-scandinavian'\n | 'milliliter'\n | 'millimeter'\n | 'millisecond'\n | 'minute'\n | 'month'\n | 'ounce'\n | 'percent'\n | 'petabyte'\n | 'pound'\n | 'second'\n | 'stone'\n | 'terabit'\n | 'terabyte'\n | 'week'\n | 'yard'\n | 'year';\n\ntype BaseNumberMeta = {\n minimumFractionDigits?: number;\n maximumFractionDigits?: number;\n useGrouping?: boolean;\n} & (\n | {\n style: 'unit';\n unit: NumberUnit;\n unitDisplay?: 'long' | 'short' | 'narrow';\n }\n | {\n style?: 'currency' | 'decimal' | 'percent';\n unit?: NumberUnit;\n }\n);\n\nexport type NumberMeta = BaseMeta & BaseNumberMeta;\n"]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const Contact: z.ZodObject<{
|
|
3
|
+
email: z.ZodString;
|
|
4
|
+
status: z.ZodOptional<z.ZodEnum<["unsubscribed", "subscribed", "pending"]>>;
|
|
5
|
+
fields: z.ZodEffects<z.ZodObject<{
|
|
6
|
+
Country: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
7
|
+
PreferredLanguage: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
8
|
+
FirstName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
9
|
+
LastName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
10
|
+
}, "strip", z.ZodTypeAny, {
|
|
11
|
+
Country?: string | null | undefined;
|
|
12
|
+
PreferredLanguage?: string | null | undefined;
|
|
13
|
+
FirstName?: string | null | undefined;
|
|
14
|
+
LastName?: string | null | undefined;
|
|
15
|
+
}, {
|
|
16
|
+
Country?: string | null | undefined;
|
|
17
|
+
PreferredLanguage?: string | null | undefined;
|
|
18
|
+
FirstName?: string | null | undefined;
|
|
19
|
+
LastName?: string | null | undefined;
|
|
20
|
+
}>, {
|
|
21
|
+
[k: string]: string | null;
|
|
22
|
+
}, {
|
|
23
|
+
Country?: string | null | undefined;
|
|
24
|
+
PreferredLanguage?: string | null | undefined;
|
|
25
|
+
FirstName?: string | null | undefined;
|
|
26
|
+
LastName?: string | null | undefined;
|
|
27
|
+
}>;
|
|
28
|
+
tags: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
|
|
29
|
+
}, "strip", z.ZodTypeAny, {
|
|
30
|
+
email: string;
|
|
31
|
+
fields: {
|
|
32
|
+
[k: string]: string | null;
|
|
33
|
+
};
|
|
34
|
+
status?: "unsubscribed" | "subscribed" | "pending" | undefined;
|
|
35
|
+
tags?: Record<string, boolean> | undefined;
|
|
36
|
+
}, {
|
|
37
|
+
email: string;
|
|
38
|
+
fields: {
|
|
39
|
+
Country?: string | null | undefined;
|
|
40
|
+
PreferredLanguage?: string | null | undefined;
|
|
41
|
+
FirstName?: string | null | undefined;
|
|
42
|
+
LastName?: string | null | undefined;
|
|
43
|
+
};
|
|
44
|
+
status?: "unsubscribed" | "subscribed" | "pending" | undefined;
|
|
45
|
+
tags?: Record<string, boolean> | undefined;
|
|
46
|
+
}>;
|
|
47
|
+
export type Contact = z.input<typeof Contact>;
|
|
48
|
+
export declare const CheckUserIsSubscribedRequest: z.ZodObject<{
|
|
49
|
+
email: z.ZodString;
|
|
50
|
+
}, "strip", z.ZodTypeAny, {
|
|
51
|
+
email: string;
|
|
52
|
+
}, {
|
|
53
|
+
email: string;
|
|
54
|
+
}>;
|
|
55
|
+
export type CheckUserIsSubscribedRequest = z.infer<typeof CheckUserIsSubscribedRequest>;
|
|
56
|
+
export type ContactStatus = z.infer<typeof Contact.shape.status>;
|
|
57
|
+
export type CheckUserIsSubscribedResponse = {
|
|
58
|
+
createdAt?: string;
|
|
59
|
+
status?: 'unsubscribed' | 'subscribed' | 'pending';
|
|
60
|
+
};
|
|
61
|
+
export type UpsertContactResponse = {
|
|
62
|
+
subscribed: boolean;
|
|
63
|
+
};
|
|
64
|
+
export declare const SubscribeContactRequest: z.ZodObject<{
|
|
65
|
+
email: z.ZodString;
|
|
66
|
+
language: z.ZodString;
|
|
67
|
+
}, "strip", z.ZodTypeAny, {
|
|
68
|
+
email: string;
|
|
69
|
+
language: string;
|
|
70
|
+
}, {
|
|
71
|
+
email: string;
|
|
72
|
+
language: string;
|
|
73
|
+
}>;
|
|
74
|
+
export type SubscribeContactRequest = z.infer<typeof SubscribeContactRequest>;
|
|
75
|
+
export type SubscribeContactResponse = {
|
|
76
|
+
subscribedAt: string;
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=mailing-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailing-list.d.ts","sourceRoot":"/","sources":["types/mailing-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBlB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;AAE9C,eAAO,MAAM,4BAA4B;;;;;;EAEvC,CAAC;AAEH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAExF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAEjE,MAAM,MAAM,6BAA6B,GAAG;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,cAAc,GAAG,YAAY,GAAG,SAAS,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;EAGlC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE9E,MAAM,MAAM,wBAAwB,GAAG;IACrC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
const emailSchema = z.string().email().min(1).toLowerCase();
|
|
3
|
+
export const Contact = z.object({
|
|
4
|
+
email: emailSchema,
|
|
5
|
+
status: z.enum(['unsubscribed', 'subscribed', 'pending']).optional(),
|
|
6
|
+
fields: z
|
|
7
|
+
.object({
|
|
8
|
+
Country: z.string().nullable().optional(),
|
|
9
|
+
PreferredLanguage: z.string().nullable().optional(),
|
|
10
|
+
FirstName: z.string().nullable().optional(),
|
|
11
|
+
LastName: z.string().nullable().optional(),
|
|
12
|
+
})
|
|
13
|
+
.transform((data) => {
|
|
14
|
+
const normalizedData = Object.fromEntries(Object.entries(data).filter(([, value]) => value !== undefined));
|
|
15
|
+
return normalizedData;
|
|
16
|
+
}),
|
|
17
|
+
tags: z.record(z.string(), z.boolean()).optional(),
|
|
18
|
+
});
|
|
19
|
+
export const CheckUserIsSubscribedRequest = z.object({
|
|
20
|
+
email: emailSchema,
|
|
21
|
+
});
|
|
22
|
+
export const SubscribeContactRequest = z.object({
|
|
23
|
+
email: emailSchema,
|
|
24
|
+
language: z.string(),
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=mailing-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailing-list.js","sourceRoot":"/","sources":["types/mailing-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAE5D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpE,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACzC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACnD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAC3C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;KAC3C,CAAC;SACD,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;QAClB,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CACvC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAChE,CAAC;QAEF,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC;IACJ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CACnD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,KAAK,EAAE,WAAW;CACnB,CAAC,CAAC;AAeH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,KAAK,EAAE,WAAW;IAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\n\nconst emailSchema = z.string().email().min(1).toLowerCase();\n\nexport const Contact = z.object({\n email: emailSchema,\n status: z.enum(['unsubscribed', 'subscribed', 'pending']).optional(),\n fields: z\n .object({\n Country: z.string().nullable().optional(),\n PreferredLanguage: z.string().nullable().optional(),\n FirstName: z.string().nullable().optional(),\n LastName: z.string().nullable().optional(),\n })\n .transform((data) => {\n const normalizedData = Object.fromEntries(\n Object.entries(data).filter(([, value]) => value !== undefined)\n );\n\n return normalizedData;\n }),\n tags: z.record(z.string(), z.boolean()).optional(),\n});\n\nexport type Contact = z.input<typeof Contact>;\n\nexport const CheckUserIsSubscribedRequest = z.object({\n email: emailSchema,\n});\n\nexport type CheckUserIsSubscribedRequest = z.infer<typeof CheckUserIsSubscribedRequest>;\n\nexport type ContactStatus = z.infer<typeof Contact.shape.status>;\n\nexport type CheckUserIsSubscribedResponse = {\n createdAt?: string;\n status?: 'unsubscribed' | 'subscribed' | 'pending';\n};\n\nexport type UpsertContactResponse = {\n subscribed: boolean;\n};\n\nexport const SubscribeContactRequest = z.object({\n email: emailSchema,\n language: z.string(),\n});\n\nexport type SubscribeContactRequest = z.infer<typeof SubscribeContactRequest>;\n\nexport type SubscribeContactResponse = {\n subscribedAt: string;\n};\n"]}
|
package/lib/types/search.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"/","sources":["types/search.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErD,oBAAY,aAAa;IACvB,GAAG,QAAQ;IACX,EAAE,OAAO;CACV;AAED,oBAAY,qBAAqB;IAE/B,KAAK,UAAU;IACf,QAAQ,cAAc;IACtB,EAAE,OAAO;IACT,KAAK,WAAW;IAEhB,kBAAkB,QAAQ;IAC1B,WAAW,OAAO;IAClB,aAAa,QAAQ;IACrB,QAAQ,OAAO;IACf,OAAO,YAAY;IAEnB,QAAQ,aAAa;IACrB,WAAW,iBAAiB;IAC5B,UAAU,gBAAgB;IAC1B,QAAQ,cAAc;CACvB;AAED,MAAM,MAAM,MAAM,CAAC,EAAE,GAAG,qBAAqB,EAAE,CAAC,GAAG,MAAM,IAAI;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,CAAC;IACX,QAAQ,EAAE,EAAE,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,EAAE,GAAG,qBAAqB,EAAE,CAAC,GAAG,MAAM,IAAI;IAClE,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;CACtD,CAAC;AAMF,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC7B,OAAO,EAAE,CAAC,EAAE,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,oBAAY,SAAS;IACnB,GAAG,QAAQ;IACX,IAAI,SAAS;CACd;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,MAAM,IAAI;IACnC,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,MAAM,IAAI;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,aAAa,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;CAC1B,CAAC;AAMF,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAMF,MAAM,MAAM,iBAAiB,GACzB,qBAAqB,CAAC,EAAE,GACxB,qBAAqB,CAAC,WAAW,GACjC,qBAAqB,CAAC,QAAQ,GAC9B,qBAAqB,CAAC,kBAAkB,GACxC,qBAAqB,CAAC,aAAa,CAAC;AAExC,oBAAY,eAAe;IACzB,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,MAAM,IAAI;IACxC,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC;IAC3B,SAAS,EAAE,UAAU,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"/","sources":["types/search.ts"],"names":[],"mappings":"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"}
|
package/lib/types/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"/","sources":["types/search.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,4BAAW,CAAA;IACX,0BAAS,CAAA;AACX,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAED,MAAM,CAAN,IAAY,qBAiBX;AAjBD,WAAY,qBAAqB;IAE/B,wCAAe,CAAA;IACf,+CAAsB,CAAA;IACtB,kCAAS,CAAA;IACT,yCAAgB,CAAA;IAEhB,mDAA0B,CAAA;IAC1B,2CAAkB,CAAA;IAClB,8CAAqB,CAAA;IACrB,wCAAe,CAAA;IACf,4CAAmB,CAAA;IAEnB,8CAAqB,CAAA;IACrB,qDAA4B,CAAA;IAC5B,mDAA0B,CAAA;IAC1B,+CAAsB,CAAA;AACxB,CAAC,EAjBW,qBAAqB,KAArB,qBAAqB,QAiBhC;AAsBD,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,0BAAa,CAAA;AACf,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAyCD,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,kCAAe,CAAA;AACjB,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B","sourcesContent":["///////////////////////////////////////////////////////\n// Generic stuff\n///////////////////////////////////////////////////////\n\nimport { FieldTypes, NumberMeta } from './fields.js';\n\nexport enum ConditionType {\n and = 'AND',\n or = 'OR',\n}\n\nexport enum ElasticsearchOperator {\n // all properties\n empty = 'EMPTY',\n notEmpty = 'NOT_EMPTY',\n is = 'IS',\n isNot = 'IS_NOT',\n // number, date properties\n greaterThanOrEqual = 'GTE',\n greaterThan = 'GT',\n lessThanEqual = 'LTE',\n lessThan = 'LT',\n between = 'BETWEEN',\n // string properties\n contains = 'CONTAINS',\n notContains = 'NOT_CONTAINS',\n startsWith = 'STARTS_WITH',\n endsWith = 'ENDS_WITH',\n}\n\nexport type Filter<OP = ElasticsearchOperator, F = string> = {\n data: string;\n fieldId: F;\n operator: OP;\n};\n\nexport type ComplexFilter<OP = ElasticsearchOperator, F = string> = {\n condition: ConditionType;\n filters: Array<Filter<OP, F> | ComplexFilter<OP, F>>;\n};\n\n///////////////////////////////////////////////////////\n// Search\n///////////////////////////////////////////////////////\n\nexport type PaginatedList<T> = {\n results: T[];\n totalCount: number;\n};\n\nexport enum SortOrder {\n asc = 'asc',\n desc = 'desc',\n}\n\nexport type SortFilter<F = string> = {\n fieldId: F;\n order: SortOrder;\n};\n\nexport type SearchRequest<F = string> = {\n fullText?: string;\n limit: number;\n offset?: number;\n query?: ComplexFilter<ElasticsearchOperator, F>;\n sortBy?: SortFilter<F>[];\n};\n\n///////////////////////////////////////////////////////\n// Simulations\n///////////////////////////////////////////////////////\n\nexport type LeasingSimulationRequest = {\n deposit: number;\n residual: number;\n durationInMonths: number;\n vehicleId: string;\n};\n\nexport type LeasingSimulationResponse = {\n monthly: string;\n};\n\n///////////////////////////////////////////////////////\n// Aggregations\n///////////////////////////////////////////////////////\n\nexport type AggFilterOperator =\n | ElasticsearchOperator.is\n | ElasticsearchOperator.greaterThan\n | ElasticsearchOperator.lessThan\n | ElasticsearchOperator.greaterThanOrEqual\n | ElasticsearchOperator.lessThanEqual;\n\nexport enum AggregationType {\n term = 'TERM',\n range = 'RANGE',\n}\n\nexport type TermAggregation<T = string> = {\n fieldId: T;\n type: AggregationType.term;\n fieldType: FieldTypes;\n orderBy?: 'count' | 'field';\n};\n\nexport type Range =\n | {\n start: number;\n end?: number;\n }\n | {\n start?: number;\n end: number;\n }\n | {\n start: number;\n end: number;\n };\n\nexport type RangeAggregation<T = string> = {\n fieldId: T;\n type: AggregationType.range;\n ranges: Range[];\n format?: NumberMeta;\n};\n\nexport type Aggregation<T = string> = TermAggregation<T> | RangeAggregation<T>;\n\nexport type AggregationSpecs = {\n aggregations: Aggregation[];\n};\n\nexport type AggregationRequest = {\n fullText?: string;\n filters: ComplexFilter<AggFilterOperator>[];\n};\n\nexport type AggregationResult = {\n value: string;\n count: number;\n from?: number;\n to?: number;\n};\n\nexport type AggregationResultSet = {\n [field: string]: AggregationResult[];\n};\n\nexport type EsDefinitionField = {\n esMapping: unknown;\n sortKey?: string;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"/","sources":["types/search.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,4BAAW,CAAA;IACX,0BAAS,CAAA;AACX,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAED,MAAM,CAAN,IAAY,qBAiBX;AAjBD,WAAY,qBAAqB;IAE/B,wCAAe,CAAA;IACf,+CAAsB,CAAA;IACtB,kCAAS,CAAA;IACT,yCAAgB,CAAA;IAEhB,mDAA0B,CAAA;IAC1B,2CAAkB,CAAA;IAClB,8CAAqB,CAAA;IACrB,wCAAe,CAAA;IACf,4CAAmB,CAAA;IAEnB,8CAAqB,CAAA;IACrB,qDAA4B,CAAA;IAC5B,mDAA0B,CAAA;IAC1B,+CAAsB,CAAA;AACxB,CAAC,EAjBW,qBAAqB,KAArB,qBAAqB,QAiBhC;AAsBD,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,0BAAa,CAAA;AACf,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAyCD,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,gCAAa,CAAA;IACb,kCAAe,CAAA;AACjB,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B","sourcesContent":["///////////////////////////////////////////////////////\n// Generic stuff\n///////////////////////////////////////////////////////\n\nimport { FieldTypes, NumberMeta } from './fields.js';\n\nexport enum ConditionType {\n and = 'AND',\n or = 'OR',\n}\n\nexport enum ElasticsearchOperator {\n // all properties\n empty = 'EMPTY',\n notEmpty = 'NOT_EMPTY',\n is = 'IS',\n isNot = 'IS_NOT',\n // number, date properties\n greaterThanOrEqual = 'GTE',\n greaterThan = 'GT',\n lessThanEqual = 'LTE',\n lessThan = 'LT',\n between = 'BETWEEN',\n // string properties\n contains = 'CONTAINS',\n notContains = 'NOT_CONTAINS',\n startsWith = 'STARTS_WITH',\n endsWith = 'ENDS_WITH',\n}\n\nexport type Filter<OP = ElasticsearchOperator, F = string> = {\n data: string;\n fieldId: F;\n operator: OP;\n};\n\nexport type ComplexFilter<OP = ElasticsearchOperator, F = string> = {\n condition: ConditionType;\n filters: Array<Filter<OP, F> | ComplexFilter<OP, F>>;\n};\n\n///////////////////////////////////////////////////////\n// Search\n///////////////////////////////////////////////////////\n\nexport type PaginatedList<T> = {\n results: T[];\n totalCount: number;\n};\n\nexport enum SortOrder {\n asc = 'asc',\n desc = 'desc',\n}\n\nexport type SortFilter<F = string> = {\n fieldId: F;\n order: SortOrder;\n};\n\nexport type SearchRequest<F = string> = {\n fullText?: string;\n limit: number;\n offset?: number;\n query?: ComplexFilter<ElasticsearchOperator, F>;\n sortBy?: SortFilter<F>[];\n};\n\n///////////////////////////////////////////////////////\n// Simulations\n///////////////////////////////////////////////////////\n\nexport type LeasingSimulationRequest = {\n deposit: number;\n residual: number;\n durationInMonths: number;\n vehicleId: string;\n};\n\nexport type LeasingSimulationResponse = {\n monthly: string;\n};\n\n///////////////////////////////////////////////////////\n// Aggregations\n///////////////////////////////////////////////////////\n\nexport type AggFilterOperator =\n | ElasticsearchOperator.is\n | ElasticsearchOperator.greaterThan\n | ElasticsearchOperator.lessThan\n | ElasticsearchOperator.greaterThanOrEqual\n | ElasticsearchOperator.lessThanEqual;\n\nexport enum AggregationType {\n term = 'TERM',\n range = 'RANGE',\n}\n\nexport type TermAggregation<T = string> = {\n fieldId: T;\n type: AggregationType.term;\n fieldType: FieldTypes;\n orderBy?: 'count' | 'field';\n format?: NumberMeta;\n};\n\nexport type Range =\n | {\n start: number;\n end?: number;\n }\n | {\n start?: number;\n end: number;\n }\n | {\n start: number;\n end: number;\n };\n\nexport type RangeAggregation<T = string> = {\n fieldId: T;\n type: AggregationType.range;\n ranges: Range[];\n format?: NumberMeta;\n};\n\nexport type Aggregation<T = string> = TermAggregation<T> | RangeAggregation<T>;\n\nexport type AggregationSpecs = {\n aggregations: Aggregation[];\n};\n\nexport type AggregationRequest = {\n fullText?: string;\n filters: ComplexFilter<AggFilterOperator>[];\n};\n\nexport type AggregationResult = {\n value: string;\n count: number;\n from?: number;\n to?: number;\n};\n\nexport type AggregationResultSet = {\n [field: string]: AggregationResult[];\n};\n\nexport type EsDefinitionField = {\n esMapping: unknown;\n sortKey?: string;\n};\n"]}
|
|
@@ -1,27 +1,70 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export declare const UserSearch: z.ZodObject<{
|
|
2
|
+
export declare const UserSearch: z.ZodObject<z.objectUtil.extendShape<{
|
|
3
3
|
sessionId: z.ZodOptional<z.ZodString>;
|
|
4
|
-
filters: z.ZodRecord<z.ZodString, z.ZodUnknown
|
|
4
|
+
filters: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>;
|
|
5
5
|
queryString: z.ZodString;
|
|
6
6
|
resultCount: z.ZodNumber;
|
|
7
7
|
countryCode: z.ZodOptional<z.ZodString>;
|
|
8
8
|
language: z.ZodOptional<z.ZodString>;
|
|
9
9
|
browserLocale: z.ZodOptional<z.ZodString>;
|
|
10
10
|
origin: z.ZodOptional<z.ZodString>;
|
|
11
|
-
|
|
11
|
+
}, {
|
|
12
|
+
id: z.ZodString;
|
|
12
13
|
createdBy: z.ZodString;
|
|
13
14
|
createdAt: z.ZodString;
|
|
14
|
-
}, z.
|
|
15
|
+
}>, "strict", z.ZodTypeAny, {
|
|
16
|
+
filters: Record<string, unknown>;
|
|
17
|
+
queryString: string;
|
|
18
|
+
resultCount: number;
|
|
19
|
+
id: string;
|
|
20
|
+
createdBy: string;
|
|
21
|
+
createdAt: string;
|
|
22
|
+
language?: string | undefined;
|
|
23
|
+
sessionId?: string | undefined;
|
|
24
|
+
countryCode?: string | undefined;
|
|
25
|
+
browserLocale?: string | undefined;
|
|
26
|
+
origin?: string | undefined;
|
|
27
|
+
}, {
|
|
28
|
+
filters: Record<string, unknown>;
|
|
29
|
+
queryString: string;
|
|
30
|
+
resultCount: number;
|
|
31
|
+
id: string;
|
|
32
|
+
createdBy: string;
|
|
33
|
+
createdAt: string;
|
|
34
|
+
language?: string | undefined;
|
|
35
|
+
sessionId?: string | undefined;
|
|
36
|
+
countryCode?: string | undefined;
|
|
37
|
+
browserLocale?: string | undefined;
|
|
38
|
+
origin?: string | undefined;
|
|
39
|
+
}>;
|
|
15
40
|
export type UserSearch = z.infer<typeof UserSearch>;
|
|
16
41
|
export declare const NewUserSearch: z.ZodObject<{
|
|
17
42
|
sessionId: z.ZodOptional<z.ZodString>;
|
|
18
|
-
filters: z.ZodRecord<z.ZodString, z.ZodUnknown
|
|
43
|
+
filters: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>;
|
|
19
44
|
queryString: z.ZodString;
|
|
20
45
|
resultCount: z.ZodNumber;
|
|
21
46
|
countryCode: z.ZodOptional<z.ZodString>;
|
|
22
47
|
language: z.ZodOptional<z.ZodString>;
|
|
23
48
|
browserLocale: z.ZodOptional<z.ZodString>;
|
|
24
49
|
origin: z.ZodOptional<z.ZodString>;
|
|
25
|
-
}, z.
|
|
50
|
+
}, "strict", z.ZodTypeAny, {
|
|
51
|
+
filters: Record<string, unknown>;
|
|
52
|
+
queryString: string;
|
|
53
|
+
resultCount: number;
|
|
54
|
+
language?: string | undefined;
|
|
55
|
+
sessionId?: string | undefined;
|
|
56
|
+
countryCode?: string | undefined;
|
|
57
|
+
browserLocale?: string | undefined;
|
|
58
|
+
origin?: string | undefined;
|
|
59
|
+
}, {
|
|
60
|
+
filters: Record<string, unknown>;
|
|
61
|
+
queryString: string;
|
|
62
|
+
resultCount: number;
|
|
63
|
+
language?: string | undefined;
|
|
64
|
+
sessionId?: string | undefined;
|
|
65
|
+
countryCode?: string | undefined;
|
|
66
|
+
browserLocale?: string | undefined;
|
|
67
|
+
origin?: string | undefined;
|
|
68
|
+
}>;
|
|
26
69
|
export type NewUserSearch = z.infer<typeof NewUserSearch>;
|
|
27
70
|
//# sourceMappingURL=user-searches.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-searches.d.ts","sourceRoot":"/","sources":["types/user-searches.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmBxB,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"user-searches.d.ts","sourceRoot":"/","sources":["types/user-searches.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmBxB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIrB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAiB,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-searches.js","sourceRoot":"/","sources":["types/user-searches.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,CAAC;IACN,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,OAAO,EAAE,CAAC;SACP,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;SAC/B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;IACvF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC;KACD,MAAM,EAAE,CAAC;AAIZ,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC;IAC9C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"user-searches.js","sourceRoot":"/","sources":["types/user-searches.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,cAAc,GAAG,CAAC;KACrB,MAAM,CAAC;IACN,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,OAAO,EAAE,CAAC;SACP,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;SAC/B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;IACvF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC;KACD,MAAM,EAAE,CAAC;AAIZ,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC;IAC9C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CAAC","sourcesContent":["import { z } from 'zod';\n\nconst BaseUserSearch = z\n .object({\n sessionId: z.string().optional(),\n filters: z\n .record(z.string(), z.unknown())\n .refine((obj) => Object.keys(obj).length > 0, { message: 'filters cannot be empty' }),\n queryString: z.string(),\n resultCount: z.number(),\n countryCode: z.string().optional(),\n language: z.string().optional(),\n browserLocale: z.string().optional(),\n origin: z.string().optional(),\n })\n .strict();\n\ntype BaseUserSearch = z.infer<typeof BaseUserSearch>;\n\nexport const UserSearch = BaseUserSearch.extend({\n id: z.string().uuid(),\n createdBy: z.string(),\n createdAt: z.string(),\n});\n\nexport type UserSearch = z.infer<typeof UserSearch>;\n\nexport const NewUserSearch = BaseUserSearch;\n\nexport type NewUserSearch = z.infer<typeof NewUserSearch>;\n"]}
|
package/lib/types/user.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
1
2
|
import { MarketingChannel } from './index.js';
|
|
2
3
|
export type AuthRequest = {
|
|
3
4
|
userId: string;
|
|
@@ -7,21 +8,83 @@ export declare enum FleetSize {
|
|
|
7
8
|
Medium = "2-5",
|
|
8
9
|
Large = "6+"
|
|
9
10
|
}
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
export declare const VatSchema: z.ZodString;
|
|
12
|
+
export declare const isValidVatForCountry: ({ vat, country, }: {
|
|
13
|
+
vat: string;
|
|
14
|
+
country: string;
|
|
15
|
+
}) => boolean;
|
|
16
|
+
export declare const UserDetails: z.ZodObject<{
|
|
17
|
+
firstName: z.ZodOptional<z.ZodString>;
|
|
18
|
+
lastName: z.ZodOptional<z.ZodString>;
|
|
19
|
+
phone: z.ZodOptional<z.ZodString>;
|
|
20
|
+
preferredLanguage: z.ZodOptional<z.ZodString>;
|
|
21
|
+
fleetSize: z.ZodOptional<z.ZodNativeEnum<typeof FleetSize>>;
|
|
22
|
+
trader: z.ZodOptional<z.ZodBoolean>;
|
|
23
|
+
email: z.ZodString;
|
|
24
|
+
company: z.ZodEffects<z.ZodObject<{
|
|
25
|
+
country: z.ZodOptional<z.ZodString>;
|
|
26
|
+
city: z.ZodOptional<z.ZodString>;
|
|
27
|
+
name: z.ZodOptional<z.ZodString>;
|
|
28
|
+
vat: z.ZodOptional<z.ZodString>;
|
|
29
|
+
postalCode: z.ZodOptional<z.ZodString>;
|
|
30
|
+
}, "strip", z.ZodTypeAny, {
|
|
31
|
+
country?: string | undefined;
|
|
32
|
+
vat?: string | undefined;
|
|
33
|
+
city?: string | undefined;
|
|
34
|
+
name?: string | undefined;
|
|
35
|
+
postalCode?: string | undefined;
|
|
36
|
+
}, {
|
|
37
|
+
country?: string | undefined;
|
|
38
|
+
vat?: string | undefined;
|
|
39
|
+
city?: string | undefined;
|
|
40
|
+
name?: string | undefined;
|
|
41
|
+
postalCode?: string | undefined;
|
|
42
|
+
}>, {
|
|
43
|
+
country?: string | undefined;
|
|
44
|
+
vat?: string | undefined;
|
|
45
|
+
city?: string | undefined;
|
|
46
|
+
name?: string | undefined;
|
|
47
|
+
postalCode?: string | undefined;
|
|
48
|
+
}, {
|
|
49
|
+
country?: string | undefined;
|
|
50
|
+
vat?: string | undefined;
|
|
51
|
+
city?: string | undefined;
|
|
52
|
+
name?: string | undefined;
|
|
53
|
+
postalCode?: string | undefined;
|
|
54
|
+
}>;
|
|
55
|
+
marketingChannels: z.ZodArray<z.ZodNativeEnum<typeof MarketingChannel>, "many">;
|
|
56
|
+
}, "strip", z.ZodTypeAny, {
|
|
57
|
+
email: string;
|
|
18
58
|
company: {
|
|
19
|
-
country?: string;
|
|
59
|
+
country?: string | undefined;
|
|
60
|
+
vat?: string | undefined;
|
|
20
61
|
city?: string | undefined;
|
|
21
62
|
name?: string | undefined;
|
|
63
|
+
postalCode?: string | undefined;
|
|
64
|
+
};
|
|
65
|
+
marketingChannels: MarketingChannel[];
|
|
66
|
+
phone?: string | undefined;
|
|
67
|
+
firstName?: string | undefined;
|
|
68
|
+
lastName?: string | undefined;
|
|
69
|
+
preferredLanguage?: string | undefined;
|
|
70
|
+
fleetSize?: FleetSize | undefined;
|
|
71
|
+
trader?: boolean | undefined;
|
|
72
|
+
}, {
|
|
73
|
+
email: string;
|
|
74
|
+
company: {
|
|
75
|
+
country?: string | undefined;
|
|
22
76
|
vat?: string | undefined;
|
|
77
|
+
city?: string | undefined;
|
|
78
|
+
name?: string | undefined;
|
|
23
79
|
postalCode?: string | undefined;
|
|
24
80
|
};
|
|
25
81
|
marketingChannels: MarketingChannel[];
|
|
26
|
-
|
|
82
|
+
phone?: string | undefined;
|
|
83
|
+
firstName?: string | undefined;
|
|
84
|
+
lastName?: string | undefined;
|
|
85
|
+
preferredLanguage?: string | undefined;
|
|
86
|
+
fleetSize?: FleetSize | undefined;
|
|
87
|
+
trader?: boolean | undefined;
|
|
88
|
+
}>;
|
|
89
|
+
export type UserDetails = z.infer<typeof UserDetails>;
|
|
27
90
|
//# sourceMappingURL=user.d.ts.map
|
package/lib/types/user.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.d.ts","sourceRoot":"/","sources":["types/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,oBAAY,SAAS;IACnB,KAAK,MAAM;IACX,MAAM,QAAQ;IACd,KAAK,OAAO;CACb;AAED,
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"/","sources":["types/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,oBAAY,SAAS;IACnB,KAAK,MAAM;IACX,MAAM,QAAQ;IACd,KAAK,OAAO;CACb;AAED,eAAO,MAAM,SAAS,aAA2B,CAAC;AAiDlD,eAAO,MAAM,oBAAoB,GAAI,mBAGlC;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB,KAAG,OAMH,CAAC;AAWF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCtB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC"}
|
package/lib/types/user.js
CHANGED
|
@@ -1,7 +1,89 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MarketingChannel } from './index.js';
|
|
1
3
|
export var FleetSize;
|
|
2
4
|
(function (FleetSize) {
|
|
3
5
|
FleetSize["Small"] = "1";
|
|
4
6
|
FleetSize["Medium"] = "2-5";
|
|
5
7
|
FleetSize["Large"] = "6+";
|
|
6
8
|
})(FleetSize || (FleetSize = {}));
|
|
9
|
+
export const VatSchema = z.string().toUpperCase();
|
|
10
|
+
const VAT_PATTERNS = {
|
|
11
|
+
AT: /^AT.+/,
|
|
12
|
+
BE: /^BE.+/,
|
|
13
|
+
BG: /^BG.+/,
|
|
14
|
+
CY: /^CY.+/,
|
|
15
|
+
CZ: /^CZ.+/,
|
|
16
|
+
DE: /^DE.+/,
|
|
17
|
+
DK: /^DK.+/,
|
|
18
|
+
EE: /^EE.+/,
|
|
19
|
+
ES: /^ES.+/,
|
|
20
|
+
FI: /^FI.+/,
|
|
21
|
+
FR: /^FR.+/,
|
|
22
|
+
GR: /^EL.+/,
|
|
23
|
+
HR: /^HR.+/,
|
|
24
|
+
HU: /^HU.+/,
|
|
25
|
+
IE: /^IE.+/,
|
|
26
|
+
IT: /^IT.+/,
|
|
27
|
+
LT: /^LT.+/,
|
|
28
|
+
LU: /^LU.+/,
|
|
29
|
+
LV: /^LV.+/,
|
|
30
|
+
MT: /^MT.+/,
|
|
31
|
+
NL: /^NL.+/,
|
|
32
|
+
PL: /^PL.+/,
|
|
33
|
+
PT: /^PT.+/,
|
|
34
|
+
RO: /^RO.+/,
|
|
35
|
+
SE: /^SE.+/,
|
|
36
|
+
SI: /^SI.+/,
|
|
37
|
+
SK: /^SK.+/,
|
|
38
|
+
NO: /^NO.+/,
|
|
39
|
+
IS: /^IS.+/,
|
|
40
|
+
CH: /^CHE.+/,
|
|
41
|
+
GB: /^(GB|XI).+/,
|
|
42
|
+
};
|
|
43
|
+
export const isValidVatForCountry = ({ vat, country, }) => {
|
|
44
|
+
const pattern = VAT_PATTERNS[country.toUpperCase()];
|
|
45
|
+
if (!pattern) {
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
return pattern.test(vat);
|
|
49
|
+
};
|
|
50
|
+
const getVatPrefix = (country) => {
|
|
51
|
+
const pattern = VAT_PATTERNS[country.toUpperCase()];
|
|
52
|
+
if (!pattern) {
|
|
53
|
+
return '';
|
|
54
|
+
}
|
|
55
|
+
const match = pattern.toString().match(/\^(\w+)/);
|
|
56
|
+
return match ? match[1] : '';
|
|
57
|
+
};
|
|
58
|
+
export const UserDetails = z.object({
|
|
59
|
+
firstName: z.string().optional(),
|
|
60
|
+
lastName: z.string().optional(),
|
|
61
|
+
phone: z.string().optional(),
|
|
62
|
+
preferredLanguage: z.string().optional(),
|
|
63
|
+
fleetSize: z.nativeEnum(FleetSize).optional(),
|
|
64
|
+
trader: z.boolean().optional(),
|
|
65
|
+
email: z.string().email().toLowerCase(),
|
|
66
|
+
company: z
|
|
67
|
+
.object({
|
|
68
|
+
country: z.string().optional(),
|
|
69
|
+
city: z.string().optional(),
|
|
70
|
+
name: z.string().optional(),
|
|
71
|
+
vat: VatSchema.optional(),
|
|
72
|
+
postalCode: z.string().optional(),
|
|
73
|
+
})
|
|
74
|
+
.superRefine((data, ctx) => {
|
|
75
|
+
if (!data.vat || !data.country) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (!isValidVatForCountry({ vat: data.vat, country: data.country })) {
|
|
79
|
+
const prefix = getVatPrefix(data.country);
|
|
80
|
+
ctx.addIssue({
|
|
81
|
+
code: z.ZodIssueCode.custom,
|
|
82
|
+
path: ['vat'],
|
|
83
|
+
params: { prefix, messageKey: 'vat.invalidFormat' },
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}),
|
|
87
|
+
marketingChannels: z.array(z.nativeEnum(MarketingChannel)),
|
|
88
|
+
});
|
|
7
89
|
//# sourceMappingURL=user.js.map
|
package/lib/types/user.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"/","sources":["types/user.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"/","sources":["types/user.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { MarketingChannel } from './index.js';\n\nexport type AuthRequest = {\n userId: string;\n};\n\nexport enum FleetSize {\n Small = '1',\n Medium = '2-5',\n Large = '6+',\n}\n\nexport const VatSchema = z.string().toUpperCase();\n\n/**\n * Light VAT-number validation patterns by country.\n *\n * Countries without an entry accept any VAT number (no validation).\n *\n * Includes EU-27, EEA non-EU (NO, IS), Switzerland (CH), and the UK (GB).\n * Note: Liechtenstein shares the Swiss CHE VAT system and is intentionally\n * excluded — its numbers don't start with \"LI\".\n */\nconst VAT_PATTERNS: Record<string, RegExp> = {\n // EU-27\n AT: /^AT.+/,\n BE: /^BE.+/,\n BG: /^BG.+/,\n CY: /^CY.+/,\n CZ: /^CZ.+/,\n DE: /^DE.+/,\n DK: /^DK.+/,\n EE: /^EE.+/,\n ES: /^ES.+/,\n FI: /^FI.+/,\n FR: /^FR.+/,\n GR: /^EL.+/,\n HR: /^HR.+/,\n HU: /^HU.+/,\n IE: /^IE.+/,\n IT: /^IT.+/,\n LT: /^LT.+/,\n LU: /^LU.+/,\n LV: /^LV.+/,\n MT: /^MT.+/,\n NL: /^NL.+/,\n PL: /^PL.+/,\n PT: /^PT.+/,\n RO: /^RO.+/,\n SE: /^SE.+/,\n SI: /^SI.+/,\n SK: /^SK.+/,\n // EEA non-EU\n NO: /^NO.+/,\n IS: /^IS.+/,\n // Switzerland — 3-letter CHE prefix\n CH: /^CHE.+/,\n // United Kingdom + Northern Ireland (XI prefix post-Brexit)\n GB: /^(GB|XI).+/,\n};\n\nexport const isValidVatForCountry = ({\n vat,\n country,\n}: {\n vat: string;\n country: string;\n}): boolean => {\n const pattern = VAT_PATTERNS[country.toUpperCase()];\n if (!pattern) {\n return true;\n }\n return pattern.test(vat);\n};\n\nconst getVatPrefix = (country: string): string => {\n const pattern = VAT_PATTERNS[country.toUpperCase()];\n if (!pattern) {\n return '';\n }\n const match = pattern.toString().match(/\\^(\\w+)/);\n return match ? match[1] : '';\n};\n\nexport const UserDetails = z.object({\n firstName: z.string().optional(),\n lastName: z.string().optional(),\n phone: z.string().optional(),\n preferredLanguage: z.string().optional(),\n fleetSize: z.nativeEnum(FleetSize).optional(),\n trader: z.boolean().optional(),\n email: z.string().email().toLowerCase(),\n company: z\n .object({\n country: z.string().optional(),\n city: z.string().optional(),\n name: z.string().optional(),\n vat: VatSchema.optional(),\n postalCode: z.string().optional(),\n })\n /* TODO when updating to zod v4, change addIssue options to \n message: 'vat.invalidFormat',\n path: ['vat'],\n */\n .superRefine((data, ctx) => {\n if (!data.vat || !data.country) {\n return;\n }\n if (!isValidVatForCountry({ vat: data.vat, country: data.country })) {\n const prefix = getVatPrefix(data.country);\n\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['vat'],\n params: { prefix, messageKey: 'vat.invalidFormat' },\n });\n }\n }),\n marketingChannels: z.array(z.nativeEnum(MarketingChannel)),\n});\n\nexport type UserDetails = z.infer<typeof UserDetails>;\n"]}
|
package/lib/utils/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["utils/index.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,oBAAY,QAAQ;IAClB,IAAI,oEAAoE;IACxE,YAAY,mEAAmE;IAC/E,SAAS,+BAA+B;IACxC,iBAAiB,yCAAyC;IAC1D,aAAa,qCAAqC;CACnD;AAED,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["utils/index.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,oBAAY,QAAQ;IAClB,IAAI,oEAAoE;IACxE,YAAY,mEAAmE;IAC/E,SAAS,+BAA+B;IACxC,iBAAiB,yCAAyC;IAC1D,aAAa,qCAAqC;CACnD;AAED,eAAO,MAAM,UAAU,GAAI,WAAU,MAAW,EAAE,WAAU,QAAwB,KAAG,MAQtF,CAAC;AA2DF,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,EAAE,OAAO,IAAI,CAAC,OAAO,WAMpD,CAAC;AAEL,eAAO,MAAM,aAAa,GAAI,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE,SAAS,MAAM,aACkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vehicle.d.ts","sourceRoot":"/","sources":["utils/vehicle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"vehicle.d.ts","sourceRoot":"/","sources":["utils/vehicle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,eAAO,MAAM,qBAAqB,GAAI,WAAW,MAAM,WAA0B,CAAC;AAElF,eAAO,MAAM,iBAAiB,GAAI,SAAS,cAAc,YAGV,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bisondesk/website-commons-sdk",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.38",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "npx tsc --build",
|
|
@@ -19,12 +19,15 @@
|
|
|
19
19
|
"pino": "9.8.0",
|
|
20
20
|
"pino-pretty": "13.1.1",
|
|
21
21
|
"slug": "11.0.1",
|
|
22
|
-
"zod": "
|
|
22
|
+
"zod": "3.23.8"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@types/lodash-es": "4.17.12",
|
|
26
26
|
"@types/slug": "5.0.9",
|
|
27
|
-
"typescript": "5.
|
|
27
|
+
"typescript": "5.8.3"
|
|
28
|
+
},
|
|
29
|
+
"peerDependencies": {
|
|
30
|
+
"zod": ">=3.23.8 <4.0.0"
|
|
28
31
|
},
|
|
29
32
|
"typesVersions": {
|
|
30
33
|
"*": {
|
package/src/types/fields.ts
CHANGED
|
@@ -4,6 +4,7 @@ export enum FieldTypes {
|
|
|
4
4
|
chip = 'chip',
|
|
5
5
|
boolean = 'boolean',
|
|
6
6
|
country = 'country',
|
|
7
|
+
color = 'color',
|
|
7
8
|
}
|
|
8
9
|
|
|
9
10
|
//
|
|
@@ -64,6 +65,7 @@ type BaseNumberMeta = {
|
|
|
64
65
|
| {
|
|
65
66
|
style: 'unit';
|
|
66
67
|
unit: NumberUnit;
|
|
68
|
+
unitDisplay?: 'long' | 'short' | 'narrow';
|
|
67
69
|
}
|
|
68
70
|
| {
|
|
69
71
|
style?: 'currency' | 'decimal' | 'percent';
|