@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.
@@ -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;CACpB;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;CAClB,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"}
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"}
@@ -5,5 +5,6 @@ export var FieldTypes;
5
5
  FieldTypes["chip"] = "chip";
6
6
  FieldTypes["boolean"] = "boolean";
7
7
  FieldTypes["country"] = "country";
8
+ FieldTypes["color"] = "color";
8
9
  })(FieldTypes || (FieldTypes = {}));
9
10
  //# sourceMappingURL=fields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fields.js","sourceRoot":"/","sources":["types/fields.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,2CAA6B,CAAA;IAC7B,mCAAqB,CAAA;IACrB,2BAAa,CAAA;IACb,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;AACrB,CAAC,EANW,UAAU,KAAV,UAAU,QAMrB","sourcesContent":["export enum FieldTypes {\n singleselect = 'singleselect',\n checkbox = 'checkbox',\n chip = 'chip',\n boolean = 'boolean',\n country = 'country',\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 }\n | {\n style?: 'currency' | 'decimal' | 'percent';\n unit?: NumberUnit;\n }\n);\n\nexport type NumberMeta = BaseMeta & BaseNumberMeta;\n"]}
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"]}
@@ -65,6 +65,7 @@ export type TermAggregation<T = string> = {
65
65
  type: AggregationType.term;
66
66
  fieldType: FieldTypes;
67
67
  orderBy?: 'count' | 'field';
68
+ format?: NumberMeta;
68
69
  };
69
70
  export type Range = {
70
71
  start: number;
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"/","sources":["types/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"/","sources":["types/search.ts"],"names":[],"mappings":"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"}
@@ -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
- id: z.ZodUUID;
11
+ }, {
12
+ id: z.ZodString;
12
13
  createdBy: z.ZodString;
13
14
  createdAt: z.ZodString;
14
- }, z.core.$strict>;
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.core.$strict>;
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;;;;;;;;;;;;kBAIrB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD,eAAO,MAAM,aAAa;;;;;;;;;kBAAiB,CAAC;AAE5C,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
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"}
@@ -14,7 +14,7 @@ const BaseUserSearch = z
14
14
  })
15
15
  .strict();
16
16
  export const UserSearch = BaseUserSearch.extend({
17
- id: z.uuidv7(),
17
+ id: z.string().uuid(),
18
18
  createdBy: z.string(),
19
19
  createdAt: z.string(),
20
20
  });
@@ -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;IACd,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.uuidv7(),\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"]}
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"]}
@@ -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 type UserDetails = {
11
- firstName?: string;
12
- lastName?: string;
13
- phone?: string;
14
- preferredLanguage?: string;
15
- fleetSize?: FleetSize;
16
- trader?: boolean;
17
- email?: string;
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
@@ -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,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC1B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KACjC,CAAC;IACF,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;CACvC,CAAC"}
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
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"/","sources":["types/user.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,2BAAc,CAAA;IACd,yBAAY,CAAA;AACd,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB","sourcesContent":["import { 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 type UserDetails = {\n firstName?: string;\n lastName?: string;\n phone?: string;\n preferredLanguage?: string;\n fleetSize?: FleetSize;\n trader?: boolean;\n email?: string;\n company: {\n country?: string;\n city?: string | undefined;\n name?: string | undefined;\n vat?: string | undefined;\n postalCode?: string | undefined;\n };\n marketingChannels: MarketingChannel[];\n};\n"]}
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"]}
@@ -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,cAAc,MAAM,aAAiB,QAAQ,KAAmB,MAQtF,CAAC;AA2DF,eAAO,MAAM,OAAO,QAAS,MAAM,SAAS,IAAI,CAAC,OAAO,WAMpD,CAAC;AAEL,eAAO,MAAM,aAAa,SAAU,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,WAAW,MAAM,aACkB,CAAC"}
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,cAAe,MAAM,WAA0B,CAAC;AAElF,eAAO,MAAM,iBAAiB,YAAa,cAAc,YAGV,CAAC"}
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.36",
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": "4.1.12"
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.7.3"
27
+ "typescript": "5.8.3"
28
+ },
29
+ "peerDependencies": {
30
+ "zod": ">=3.23.8 <4.0.0"
28
31
  },
29
32
  "typesVersions": {
30
33
  "*": {
@@ -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';