@bisondesk/website-commons-sdk 1.0.1

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vehicle.d.ts","sourceRoot":"/","sources":["types/vehicle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ export var VehicleTachoTypes;
2
+ (function (VehicleTachoTypes) {
3
+ VehicleTachoTypes["Analog"] = "ANALOG";
4
+ VehicleTachoTypes["Digital"] = "DIGITAL";
5
+ VehicleTachoTypes["SmartTacho1"] = "SMART_TACHO_1";
6
+ VehicleTachoTypes["SmartTacho2"] = "SMART_TACHO_2";
7
+ })(VehicleTachoTypes || (VehicleTachoTypes = {}));
8
+ export var VehicleFuelType;
9
+ (function (VehicleFuelType) {
10
+ VehicleFuelType["Petrol"] = "PETROL";
11
+ VehicleFuelType["Diesel"] = "DIESEL";
12
+ VehicleFuelType["LPG"] = "LPG";
13
+ VehicleFuelType["LPG_G3"] = "LPG_G3";
14
+ VehicleFuelType["Electric"] = "ELECTRIC";
15
+ VehicleFuelType["CNG"] = "CNG";
16
+ VehicleFuelType["Hydrogen"] = "HYDROGEN";
17
+ VehicleFuelType["BioEthanol"] = "BIO_ETHANOL";
18
+ VehicleFuelType["BioDiesel"] = "BIO_DIESEL";
19
+ VehicleFuelType["E85"] = "E85";
20
+ VehicleFuelType["HCNG"] = "HCNG";
21
+ VehicleFuelType["LPG_Petrol"] = "LPG_PETROL";
22
+ VehicleFuelType["LPG_Diesel"] = "LPG_DIESEL";
23
+ VehicleFuelType["LPG_G3_Petrol"] = "LPG_G3_PETROL";
24
+ VehicleFuelType["LPG_G3_Diesel"] = "LPG_G3_DIESEL";
25
+ VehicleFuelType["Electric_Diesel"] = "ELECTRIC_DIESEL";
26
+ VehicleFuelType["Electric_Petrol"] = "ELECTRIC_PETROL";
27
+ VehicleFuelType["Hybrid"] = "HYBRID";
28
+ VehicleFuelType["Other"] = "OTHER";
29
+ })(VehicleFuelType || (VehicleFuelType = {}));
30
+ //# sourceMappingURL=vehicle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vehicle.js","sourceRoot":"/","sources":["types/vehicle.ts"],"names":[],"mappings":"AA+OA,MAAM,CAAN,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,sCAAiB,CAAA;IACjB,wCAAmB,CAAA;IACnB,kDAA6B,CAAA;IAC7B,kDAA6B,CAAA;AAC/B,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,QAK5B;AAED,MAAM,CAAN,IAAY,eAoBX;AApBD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IACjB,8BAAW,CAAA;IACX,oCAAiB,CAAA;IACjB,wCAAqB,CAAA;IACrB,8BAAW,CAAA;IACX,wCAAqB,CAAA;IACrB,6CAA0B,CAAA;IAC1B,2CAAwB,CAAA;IACxB,8BAAW,CAAA;IACX,gCAAa,CAAA;IACb,4CAAyB,CAAA;IACzB,4CAAyB,CAAA;IACzB,kDAA+B,CAAA;IAC/B,kDAA+B,CAAA;IAC/B,sDAAmC,CAAA;IACnC,sDAAmC,CAAA;IACnC,oCAAiB,CAAA;IACjB,kCAAe,CAAA;AACjB,CAAC,EApBW,eAAe,KAAf,eAAe,QAoB1B","sourcesContent":["export type WebsiteVehicle = {\n id: string;\n external: VehicleExternalInfo;\n};\n\nexport type VehicleExternalInfo = {\n body?: {\n cabin?: {\n type: 'Day' | 'Sleep / Small' | 'Sleep / Medium' | 'Sleep / Large';\n model?: string;\n };\n colour?: string;\n dimensions?: {\n height?: number;\n length?: number;\n width?: number;\n };\n doorCount?: number;\n interior?: {\n bedCount?: number;\n seatCount?: number;\n };\n };\n mainPicture?: AttachmentValue;\n pictures?: AttachmentValue[];\n videos?: AttachmentValue[];\n condition?: {\n damaged?: boolean;\n odometer?: {\n km?: number;\n };\n used?: boolean;\n };\n general: {\n bodystyle?: string;\n category: string;\n make?: string;\n model?: string;\n modelName?: string;\n type?: string;\n typeName?: string;\n tacho?: VehicleTachoTypes;\n };\n history?: {\n advertisingYear?: number;\n constructionYear?: number;\n currentRegistration?: {\n country?: string;\n technicalInspectionEndDate?: string;\n carpassUrl?: string;\n carpassAvailable?: boolean;\n };\n firstRegistration?: string;\n cocPvg?: string;\n };\n identification: {\n licensePlate?: string;\n stockNumber?: string;\n vin?: string;\n buildStockNumber?: string;\n engineNumber?: string;\n };\n powertrain?: {\n axles?: VehicleAxlesInfo;\n emissions?: {\n class?: string;\n };\n engine?: {\n cylinderCount?: number;\n energy?: { type?: VehicleFuelType };\n power?: {\n hp?: number;\n };\n displacement?: number;\n };\n transmission?: {\n gearCount?: number;\n make?: string;\n model?: string;\n type?: 'Automatic' | 'Manual' | 'Semi-Automatic';\n };\n };\n salesConditions: {\n leasing?: boolean;\n expected?: boolean;\n price?: string | undefined;\n currency?: string | undefined;\n marginScheme?: boolean;\n manufacturerWarranty?: {\n remarks?: string;\n available?: boolean;\n };\n };\n superstructure?: VehicleSuperstructure;\n weights?: {\n gvw?: number;\n massEmpty?: number;\n };\n accessories: {\n abs?: boolean;\n adr?: boolean;\n airco?: boolean;\n alloyWheels?: boolean;\n aluminiumFuelTank?: boolean;\n cdPlayer?: boolean;\n centralLocking?: boolean;\n centralLubrication?: boolean;\n cruiseControl?: boolean;\n electricDoorMirrors?: boolean;\n electricWindows?: boolean;\n engineBrake?: boolean;\n forklift?: boolean;\n navigationSystem?: boolean;\n hydraulicTipperKit?: boolean;\n lowDeck?: boolean;\n lowNoise?: boolean;\n parkingHeater?: boolean;\n particleFilter?: boolean;\n powerTakeOff?: boolean;\n refrigerator?: boolean;\n retarderIntarder?: boolean;\n reversingCamera?: boolean;\n roofSpoiler?: boolean;\n sideSkirts?: boolean;\n spareKey?: boolean;\n spareWheel?: boolean;\n speedLimiter?: boolean;\n spoilers?: boolean;\n spotlights?: boolean;\n stabilityControl?: boolean;\n standardAirco?: boolean;\n television?: boolean;\n toolbox?: boolean;\n trailerCoupling?: boolean;\n twinFuelTank?: boolean;\n visor?: boolean;\n xenonLights?: boolean;\n };\n publicLink?: string;\n};\n\nexport type AttachmentValue = {\n contentType: string;\n fileName: string;\n id: string;\n previewSrc?: string;\n size: number;\n uploadedAt: string;\n uploadedBy: string;\n url: string;\n descriptions?: string | MultiLangValue;\n};\n\nexport type MultiLangValue = { key?: string } & { [languageCode: string]: string };\n\nexport type VehicleAxlesInfo = {\n details: VehicleAxle[];\n configuration?: string;\n count?: number;\n poweredAxlesCount?: number;\n wheelbase?: number;\n suspension?: 'Air' | 'Air/Steel' | 'Steel';\n};\n\nexport type VehicleAxle = {\n make?: string;\n alloyWheels?: boolean;\n brakes?: 'Disc' | 'Drum';\n differentialLock?: boolean;\n liftAxle?: boolean;\n maxLoad?: number;\n nr: number;\n position?: string;\n powered?: boolean;\n reduction?: string;\n steering?: boolean;\n suspension?: 'Steel' | 'Air' | 'Hydraulic';\n twinWheels?: boolean;\n tyreSize?: string;\n tyreConditionType?: 'mm' | '%';\n tyreConditionMmLeftInside?: number;\n tyreConditionMmLeftOutside?: number;\n tyreConditionMmRightInside?: number;\n tyreConditionMmRightOutside?: number;\n tyreConditionPercLeftInside?: number;\n tyreConditionPercLeftOutside?: number;\n tyreConditionPercRightInside?: number;\n tyreConditionPercRightOutside?: number;\n};\n\ntype VehicleSuperstructure = {\n carCapacity?: number;\n compartmentCount?: number;\n counter?: boolean;\n crane?: {\n make?: string;\n model?: string;\n position?: 'Behind the cabin' | 'Rear';\n present?: boolean;\n year?: number;\n };\n dimensions?: {\n height?: number;\n length?: number;\n width?: number;\n extended?: string; // L1, L2, ...\n heightened?: string; // H1, H2, ...\n };\n baseVehicle?: SuperstructureBaseVehicle;\n extendable?: boolean;\n highPressurePump?: boolean;\n loadingPlatformHeight?: number;\n pump?: boolean;\n slidingRoof?: boolean;\n tailgate?: {\n capacity?: number;\n make?: string;\n model?: string;\n present?: boolean;\n type?: 'slider_lift' | 'cantilever' | 'column_lift';\n };\n tank?: {\n capacity: number;\n };\n temperatureControl?: {\n engineType?: 'diesel' | 'electric' | 'diesel+electric' | 'engine';\n make?: string;\n runningHours?: {\n diesel?: number;\n electric?: number;\n };\n };\n tipper?: {\n tipsBack?: boolean;\n tipsLeft?: boolean;\n tipsRight?: boolean;\n };\n};\n\nexport enum VehicleTachoTypes {\n Analog = 'ANALOG',\n Digital = 'DIGITAL',\n SmartTacho1 = 'SMART_TACHO_1',\n SmartTacho2 = 'SMART_TACHO_2',\n}\n\nexport enum VehicleFuelType {\n Petrol = 'PETROL',\n Diesel = 'DIESEL',\n LPG = 'LPG',\n LPG_G3 = 'LPG_G3',\n Electric = 'ELECTRIC',\n CNG = 'CNG',\n Hydrogen = 'HYDROGEN',\n BioEthanol = 'BIO_ETHANOL',\n BioDiesel = 'BIO_DIESEL',\n E85 = 'E85',\n HCNG = 'HCNG',\n LPG_Petrol = 'LPG_PETROL',\n LPG_Diesel = 'LPG_DIESEL',\n LPG_G3_Petrol = 'LPG_G3_PETROL',\n LPG_G3_Diesel = 'LPG_G3_DIESEL',\n Electric_Diesel = 'ELECTRIC_DIESEL',\n Electric_Petrol = 'ELECTRIC_PETROL',\n Hybrid = 'HYBRID',\n Other = 'OTHER',\n}\n\nexport type SuperstructureBaseVehicle = {\n category: string;\n make: string;\n model?: string;\n type?: string;\n axlesConfiguration?: string;\n emissionsClass?: string;\n transmissionType?: 'Automatic' | 'Manual' | 'Semi-Automatic';\n vin?: string;\n currentRegistration?: {\n country?: string;\n };\n suspension?: 'Air' | 'Air/Steel' | 'Steel';\n constructionYear?: number;\n firstRegistration?: string;\n odometerKm?: number;\n powerHp?: number;\n bodystyle?: string;\n accessories: VehicleExternalInfo['accessories'];\n superstructure?: Pick<VehicleSuperstructure, 'crane' | 'tailgate'>;\n};\n"]}
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "@bisondesk/website-commons-sdk",
3
+ "version": "1.0.1",
4
+ "type": "module",
5
+ "scripts": {
6
+ "build": "npx tsc --build",
7
+ "clean": "rm -rf node_modules lib *.tsbuildinfo",
8
+ "preinstall": "node -e 'if(!/yarn\\.js$/.test(process.env.npm_execpath))throw new Error(\"Use yarn\")'",
9
+ "test": "node --test src/**"
10
+ },
11
+ "dependencies": {
12
+ "@aws-sdk/client-ses": "3.738.0",
13
+ "joi": "17.13.3",
14
+ "lodash-es": "4.17.21",
15
+ "node-fetch": "3.3.2",
16
+ "pino": "9.1.0",
17
+ "pino-pretty": "10.3.1",
18
+ "slugify": "1.6.6"
19
+ },
20
+ "devDependencies": {
21
+ "@types/lodash-es": "4.17.12",
22
+ "typescript": "5.7.3"
23
+ },
24
+ "typesVersions": {
25
+ "*": {
26
+ "*": [
27
+ "lib/*.d.ts"
28
+ ]
29
+ }
30
+ },
31
+ "exports": {
32
+ "./*": [
33
+ "./lib/*.js"
34
+ ]
35
+ }
36
+ }
@@ -0,0 +1,6 @@
1
+ export const SUPPORTED_LANGUAGES = ['en', 'es', 'fr', 'nl', 'pl', 'ro'] as const;
2
+
3
+ //
4
+ // Headers
5
+ //
6
+ export const TENANT_ID_HEADER = 'tenant-id';
File without changes
@@ -0,0 +1,38 @@
1
+ import { SUPPORTED_LANGUAGES } from '../constants.js';
2
+ import { FieldTypes } from './fields.js';
3
+ import { Aggregation } from './search.js';
4
+
5
+ export type EsDefinitionField = {
6
+ esMapping: unknown;
7
+ sortKey?: string;
8
+ };
9
+
10
+ export type EsDefinition = {
11
+ name: string;
12
+ nestedEsPaths: string[];
13
+ fields: {
14
+ [fieldId: string]: EsDefinitionField;
15
+ };
16
+ };
17
+
18
+ export type EsFullTextSearchDefinition = ((lang: string) => string)[];
19
+
20
+ export type EsAggregationsDefinition = Aggregation[];
21
+
22
+ export type PublicSearchDefinition = {
23
+ aggs: Aggregation[];
24
+ };
25
+
26
+ export type SearchField = {
27
+ id: string;
28
+ titles: { [lang: string]: string } & (
29
+ | { [local in (typeof SUPPORTED_LANGUAGES)[number]]: string }
30
+ | { key: string }
31
+ );
32
+ } & FieldTypeInfo;
33
+
34
+ export type FieldTypeInfo =
35
+ | { type: FieldTypes.checkbox }
36
+ | { type: FieldTypes.boolean }
37
+ | { type: FieldTypes.chip }
38
+ | { type: FieldTypes.singleselect };
@@ -0,0 +1,73 @@
1
+ export enum FieldTypes {
2
+ singleselect = 'singleselect',
3
+ checkbox = 'checkbox',
4
+ chip = 'chip',
5
+ boolean = 'boolean',
6
+ }
7
+
8
+ //
9
+ // Field metas
10
+ //
11
+ type BaseMeta = {};
12
+
13
+ type NumberUnit =
14
+ | 'acre'
15
+ | 'bit'
16
+ | 'byte'
17
+ | 'celsius'
18
+ | 'centimeter'
19
+ | 'day'
20
+ | 'degree'
21
+ | 'fahrenheit'
22
+ | 'fluid-ounce'
23
+ | 'foot'
24
+ | 'gallon'
25
+ | 'gigabit'
26
+ | 'gigabyte'
27
+ | 'gram'
28
+ | 'hectare'
29
+ | 'hour'
30
+ | 'inch'
31
+ | 'kilobit'
32
+ | 'kilobyte'
33
+ | 'kilogram'
34
+ | 'kilometer'
35
+ | 'liter'
36
+ | 'megabit'
37
+ | 'megabyte'
38
+ | 'meter'
39
+ | 'mile'
40
+ | 'mile-scandinavian'
41
+ | 'milliliter'
42
+ | 'millimeter'
43
+ | 'millisecond'
44
+ | 'minute'
45
+ | 'month'
46
+ | 'ounce'
47
+ | 'percent'
48
+ | 'petabyte'
49
+ | 'pound'
50
+ | 'second'
51
+ | 'stone'
52
+ | 'terabit'
53
+ | 'terabyte'
54
+ | 'week'
55
+ | 'yard'
56
+ | 'year';
57
+
58
+ type BaseNumberMeta = {
59
+ minimumFractionDigits?: number;
60
+ maximumFractionDigits?: number;
61
+ useGrouping?: boolean;
62
+ } & (
63
+ | {
64
+ style: 'unit';
65
+ unit: NumberUnit;
66
+ }
67
+ | {
68
+ style?: 'currency' | 'decimal' | 'percent';
69
+ unit?: NumberUnit;
70
+ }
71
+ );
72
+
73
+ export type NumberMeta = BaseMeta & BaseNumberMeta;
@@ -0,0 +1,44 @@
1
+ export type EmailRequest = {
2
+ subject: string;
3
+ references?: string[] | string;
4
+ destinations: EmailDestination[];
5
+ source: EmailAddress;
6
+ replyTo?: EmailAddress;
7
+ inReplyTo?: string;
8
+ body:
9
+ | {
10
+ text?: string;
11
+ html: string;
12
+ }
13
+ | {
14
+ html?: string;
15
+ text: string;
16
+ };
17
+ };
18
+
19
+ export type EmailDestination = EmailAddress & {
20
+ addressType: 'TO' | 'CC' | 'BCC';
21
+ };
22
+
23
+ export type EmailAddress = {
24
+ name?: string;
25
+ email: string;
26
+ };
27
+
28
+ export type EmailMessage = {
29
+ id: string;
30
+ sentAt: string;
31
+ subject: string;
32
+ source: EmailAddress;
33
+ replyTo?: EmailAddress;
34
+ destinations: EmailDestination[];
35
+ };
36
+
37
+ export type ContactForm = {
38
+ content: string;
39
+ email: string;
40
+ name?: string;
41
+ phone: string;
42
+ reference: string;
43
+ type: string;
44
+ };
@@ -0,0 +1,182 @@
1
+ ///////////////////////////////////////////////////////
2
+ // Generic stuff
3
+ ///////////////////////////////////////////////////////
4
+
5
+ import { FieldTypes, NumberMeta } from './fields.js';
6
+
7
+ export enum ConditionType {
8
+ and = 'AND',
9
+ or = 'OR',
10
+ }
11
+
12
+ export enum ElasticsearchOperator {
13
+ // all properties
14
+ empty = 'EMPTY',
15
+ notEmpty = 'NOT_EMPTY',
16
+ is = 'IS',
17
+ isNot = 'IS_NOT',
18
+ // number, date properties
19
+ greaterThanOrEqual = 'GTE',
20
+ greaterThan = 'GT',
21
+ lessThanEqual = 'LTE',
22
+ lessThan = 'LT',
23
+ between = 'BETWEEN',
24
+ // string properties
25
+ contains = 'CONTAINS',
26
+ notContains = 'NOT_CONTAINS',
27
+ startsWith = 'STARTS_WITH',
28
+ endsWith = 'ENDS_WITH',
29
+ }
30
+
31
+ export type Filter<OP = ElasticsearchOperator> = {
32
+ data: string;
33
+ fieldId: string;
34
+ operator: OP;
35
+ };
36
+
37
+ export type ComplexFilter<OP = ElasticsearchOperator> = {
38
+ condition: ConditionType;
39
+ filters: Array<Filter<OP> | ComplexFilter<OP>>;
40
+ };
41
+
42
+ export type SearchResponse<T = any> = {
43
+ took: number;
44
+ timed_out: boolean;
45
+ _scroll_id?: string;
46
+ _shards: unknown;
47
+ hits: {
48
+ total: {
49
+ value: number;
50
+ relation: 'eq' | 'gte';
51
+ };
52
+ max_score: number;
53
+ hits: Array<{
54
+ _index: string;
55
+ _type: string;
56
+ _id: string;
57
+ _score: number;
58
+ _source?: T;
59
+ _version?: number;
60
+ _explanation?: unknown;
61
+ fields?: any;
62
+ highlight?: any;
63
+ inner_hits?: any;
64
+ matched_queries?: string[];
65
+ sort?: Array<string | number>;
66
+ }>;
67
+ };
68
+ aggregations?: { [aggName: string]: object };
69
+ };
70
+
71
+ ///////////////////////////////////////////////////////
72
+ // Search
73
+ ///////////////////////////////////////////////////////
74
+
75
+ export type PaginatedList<T> = {
76
+ results: T[];
77
+ totalCount: number;
78
+ };
79
+
80
+ export enum SortOrder {
81
+ asc = 'asc',
82
+ desc = 'desc',
83
+ }
84
+
85
+ export type SortFilter = {
86
+ fieldId: string;
87
+ order: SortOrder;
88
+ };
89
+
90
+ export type SearchRequest = {
91
+ fullText?: string;
92
+ limit: number;
93
+ offset?: number;
94
+ query?: ComplexFilter<ElasticsearchOperator>;
95
+ sortBy?: SortFilter[];
96
+ };
97
+
98
+ ///////////////////////////////////////////////////////
99
+ // Simulations
100
+ ///////////////////////////////////////////////////////
101
+
102
+ export type LeasingSimulationRequest = {
103
+ deposit: number;
104
+ residual: number;
105
+ durationInMonths: number;
106
+ vehicleId: string;
107
+ };
108
+
109
+ export type LeasingSimulationResponse = {
110
+ monthly: string;
111
+ };
112
+
113
+ ///////////////////////////////////////////////////////
114
+ // Aggregations
115
+ ///////////////////////////////////////////////////////
116
+
117
+ export type AggFilterOperator =
118
+ | ElasticsearchOperator.is
119
+ | ElasticsearchOperator.greaterThan
120
+ | ElasticsearchOperator.lessThan
121
+ | ElasticsearchOperator.greaterThanOrEqual
122
+ | ElasticsearchOperator.lessThanEqual;
123
+
124
+ export enum AggregationType {
125
+ term = 'TERM',
126
+ range = 'RANGE',
127
+ }
128
+
129
+ export type TermAggregation = {
130
+ field: string;
131
+ type: AggregationType.term;
132
+ fieldType: FieldTypes;
133
+ orderBy?: 'count' | 'field';
134
+ };
135
+
136
+ export type Range =
137
+ | {
138
+ start: number;
139
+ end?: number;
140
+ }
141
+ | {
142
+ start?: number;
143
+ end: number;
144
+ }
145
+ | {
146
+ start: number;
147
+ end: number;
148
+ };
149
+
150
+ export type RangeAggregation = {
151
+ field: string;
152
+ type: AggregationType.range;
153
+ ranges: Range[];
154
+ format?: NumberMeta;
155
+ };
156
+
157
+ export type Aggregation = TermAggregation | RangeAggregation;
158
+
159
+ export type AggregationSpecs = {
160
+ aggregations: Aggregation[];
161
+ };
162
+
163
+ export type AggregationRequest = {
164
+ fullText?: string;
165
+ filters: Filter<AggFilterOperator>[];
166
+ };
167
+
168
+ export type AggregationResult = {
169
+ value: string;
170
+ count: number;
171
+ from?: number;
172
+ to?: number;
173
+ };
174
+
175
+ export type AggregationResultSet = {
176
+ [field: string]: AggregationResult[];
177
+ };
178
+
179
+ export type EsDefinitionField = {
180
+ esMapping: unknown;
181
+ sortKey?: string;
182
+ };