@driveflux/api-functions 0.0.7-next.1 → 0.0.7-next.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/confirm.d.ts +3 -17
- package/dist/auth/confirm.js +24 -29
- package/dist/auth/emails.js +12 -13
- package/dist/auth/formatter.js +5 -5
- package/dist/auth/otp.js +66 -50
- package/dist/auth/register.js +44 -36
- package/dist/auth/register.js.map +1 -1
- package/dist/auth/tokens.js +58 -55
- package/dist/auth/verifications.d.ts +2 -8
- package/dist/auth/verifications.js +53 -52
- package/dist/constants.js +0 -1
- package/dist/mailjet/calls/manage-contacts-in-list.d.ts +2 -2
- package/dist/mailjet/calls/manage-contacts-in-list.d.ts.map +1 -1
- package/dist/mailjet/calls/manage-contacts-in-list.js +7 -8
- package/dist/mailjet/calls/manage-contacts-in-list.js.map +1 -1
- package/dist/mailjet/calls/manage-subscription-status.d.ts +2 -2
- package/dist/mailjet/calls/manage-subscription-status.d.ts.map +1 -1
- package/dist/mailjet/calls/manage-subscription-status.js +6 -7
- package/dist/mailjet/calls/manage-subscription-status.js.map +1 -1
- package/dist/mailjet/calls/request-service.js +7 -6
- package/dist/mailjet/refresh-email-preferences.js +11 -12
- package/dist/mailjet/set-contact.d.ts +2 -2
- package/dist/mailjet/set-contact.d.ts.map +1 -1
- package/dist/mailjet/set-contact.js +14 -15
- package/dist/mailjet/set-contact.js.map +1 -1
- package/dist/mailjet/types.d.ts +2 -2
- package/dist/mailjet/types.d.ts.map +1 -1
- package/dist/mailjet/types.js +1 -2
- package/dist/mailjet/utils/convert-to-array.d.ts +1 -1
- package/dist/mailjet/utils/convert-to-array.d.ts.map +1 -1
- package/dist/mailjet/utils/convert-to-array.js +8 -6
- package/dist/mailjet/utils/extract-email-preferences.d.ts +1 -1
- package/dist/mailjet/utils/extract-email-preferences.d.ts.map +1 -1
- package/dist/mailjet/utils/extract-email-preferences.js +14 -15
- package/dist/mailjet/utils/lists.js +7 -8
- package/dist/mailjet/utils/update-email-references.d.ts +2 -2
- package/dist/mailjet/utils/update-email-references.d.ts.map +1 -1
- package/dist/mailjet/utils/update-email-references.js +16 -15
- package/dist/mailjet/utils/update-email-references.js.map +1 -1
- package/dist/notion/client.js +22 -19
- package/dist/notion/helpful.js +6 -9
- package/dist/notion/schemas/block.js +42 -48
- package/dist/notion/schemas/common.d.ts +13 -10
- package/dist/notion/schemas/common.js +9 -14
- package/dist/notion/schemas/database.js +62 -60
- package/dist/notion/schemas/emoji.d.ts +1 -7
- package/dist/notion/schemas/emoji.js +1 -2
- package/dist/notion/schemas/file.d.ts +7 -34
- package/dist/notion/schemas/file.js +9 -9
- package/dist/notion/schemas/kb.js +5 -6
- package/dist/notion/schemas/page.js +72 -61
- package/dist/notion/schemas/parent.d.ts +4 -28
- package/dist/notion/schemas/parent.js +4 -5
- package/dist/notion/schemas/user.d.ts +13 -67
- package/dist/notion/schemas/user.js +18 -19
- package/dist/reservation/agree.d.ts +1 -1
- package/dist/reservation/agree.d.ts.map +1 -1
- package/dist/reservation/agree.js +6 -7
- package/dist/reservation/checks.d.ts +1 -1
- package/dist/reservation/checks.d.ts.map +1 -1
- package/dist/reservation/checks.js +3 -4
- package/dist/reservation/display-vehicle.js +65 -71
- package/dist/reservation/display-vehicle.js.map +1 -1
- package/dist/reservation/fetch-or-create.d.ts +2 -2
- package/dist/reservation/fetch-or-create.d.ts.map +1 -1
- package/dist/reservation/fetch-or-create.js +55 -55
- package/dist/reservation/fetch-or-create.js.map +1 -1
- package/dist/reservation/invoice.d.ts +3 -3
- package/dist/reservation/invoice.d.ts.map +1 -1
- package/dist/reservation/invoice.js +64 -76
- package/dist/reservation/invoice.js.map +1 -1
- package/dist/reservation/payer.d.ts +1 -1
- package/dist/reservation/payer.d.ts.map +1 -1
- package/dist/reservation/payer.js +5 -6
- package/dist/reservation/reserve.d.ts +1 -1
- package/dist/reservation/reserve.d.ts.map +1 -1
- package/dist/reservation/reserve.js +8 -9
- package/dist/reservation/reserve.js.map +1 -1
- package/dist/reservation/types.d.ts +1 -0
- package/dist/reservation/types.d.ts.map +1 -1
- package/dist/reservation/types.js +1 -2
- package/dist/reservation/vehicle.d.ts +1 -1
- package/dist/reservation/vehicle.d.ts.map +1 -1
- package/dist/reservation/vehicle.js +15 -18
- package/dist/reservation/vehicle.js.map +1 -1
- package/dist/slack.js +24 -29
- package/dist/validation.js +69 -71
- package/dist/vehicle/vehicle-pricing/constants.d.ts +1 -1
- package/dist/vehicle/vehicle-pricing/constants.d.ts.map +1 -1
- package/dist/vehicle/vehicle-pricing/constants.js +22 -19
- package/dist/vehicle/vehicle-pricing/index.d.ts +1 -1
- package/dist/vehicle/vehicle-pricing/index.d.ts.map +1 -1
- package/dist/vehicle/vehicle-pricing/index.js +30 -44
- package/dist/vehicle/vehicle-pricing/index.js.map +1 -1
- package/dist/vehicle/vehicle-pricing/types.js +1 -2
- package/package.json +12 -12
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SubscriptionReservation } from '@driveflux/db';
|
|
2
2
|
import { type PromisedResult } from '@driveflux/result';
|
|
3
|
-
import type { ReserveVehicleParams } from './types';
|
|
3
|
+
import type { ReserveVehicleParams } from './types.js';
|
|
4
4
|
export declare const reserveVehicle: (vehicleId: string, unprocessed: ReserveVehicleParams) => PromisedResult<SubscriptionReservation>;
|
|
5
5
|
//# sourceMappingURL=reserve.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reserve.d.ts","sourceRoot":"","sources":["../../src/reservation/reserve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAM,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAK3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"reserve.d.ts","sourceRoot":"","sources":["../../src/reservation/reserve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAM,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAK3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAYtD,eAAO,MAAM,cAAc,GAC1B,WAAW,MAAM,EACjB,aAAa,oBAAoB,KAC/B,cAAc,CAAC,uBAAuB,CAkCxC,CAAA"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { Ok } from '@driveflux/result';
|
|
2
|
-
import { handleAgreeToTerms } from './agree';
|
|
3
|
-
import { checkIfUserCanReserve } from './checks';
|
|
4
|
-
import { fetchOrCreateReservation } from './fetch-or-create';
|
|
5
|
-
import { getPayer } from './payer';
|
|
6
|
-
import { getVehicle } from './vehicle';
|
|
7
|
-
const processBody = (body)
|
|
2
|
+
import { handleAgreeToTerms } from './agree.js';
|
|
3
|
+
import { checkIfUserCanReserve } from './checks.js';
|
|
4
|
+
import { fetchOrCreateReservation } from './fetch-or-create.js';
|
|
5
|
+
import { getPayer } from './payer.js';
|
|
6
|
+
import { getVehicle } from './vehicle.js';
|
|
7
|
+
const processBody = (body)=>{
|
|
8
8
|
// Switch mileage package
|
|
9
9
|
if (body.plan === 'plan1' || body.plan === 'planWeekly') {
|
|
10
10
|
body.mileagePackage = 'unlimited';
|
|
11
11
|
}
|
|
12
12
|
return body;
|
|
13
13
|
};
|
|
14
|
-
export const reserveVehicle = async (vehicleId, unprocessed)
|
|
14
|
+
export const reserveVehicle = async (vehicleId, unprocessed)=>{
|
|
15
15
|
const body = processBody(unprocessed);
|
|
16
16
|
// Agree to terms if not done yet
|
|
17
17
|
await handleAgreeToTerms(body);
|
|
@@ -33,7 +33,7 @@ export const reserveVehicle = async (vehicleId, unprocessed) => {
|
|
|
33
33
|
const reservationResult = await fetchOrCreateReservation({
|
|
34
34
|
vehicle,
|
|
35
35
|
payer,
|
|
36
|
-
body
|
|
36
|
+
body
|
|
37
37
|
});
|
|
38
38
|
if (reservationResult.err) {
|
|
39
39
|
return reservationResult;
|
|
@@ -41,4 +41,3 @@ export const reserveVehicle = async (vehicleId, unprocessed) => {
|
|
|
41
41
|
const reservation = reservationResult.val;
|
|
42
42
|
return new Ok(reservation);
|
|
43
43
|
};
|
|
44
|
-
//# sourceMappingURL=reserve.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reserve.js","sourceRoot":"","sources":["../../src/reservation/reserve.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAuB,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"reserve.js","sourceRoot":"","sources":["../../src/reservation/reserve.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAuB,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,WAAW,GAAG,CAAC,IAA0B,EAAwB,EAAE;IACxE,yBAAyB;IACzB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACzD,IAAI,CAAC,cAAc,GAAG,WAAW,CAAA;IAClC,CAAC;IAED,OAAO,IAAI,CAAA;AACZ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAClC,SAAiB,EACjB,WAAiC,EACS,EAAE;IAC5C,MAAM,IAAI,GAAG,WAAW,CAAC,WAAW,CAAC,CAAA;IAErC,iCAAiC;IACjC,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAE9B,gCAAgC;IAChC,MAAM,gBAAgB,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAA;IAE1D,QAAQ;IACR,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAA;IACxC,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC;QACrB,OAAO,WAAW,CAAA;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAA;IAE7B,UAAU;IACV,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAA;IACzE,IAAI,aAAa,CAAC,GAAG,EAAE,CAAC;QACvB,OAAO,aAAa,CAAA;IACrB,CAAC;IACD,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAA;IACjC,gCAAgC;IAChC,MAAM,iBAAiB,GAAG,MAAM,wBAAwB,CAAC;QACxD,OAAO;QACP,KAAK;QACL,IAAI;KACJ,CAAC,CAAA;IACF,IAAI,iBAAiB,CAAC,GAAG,EAAE,CAAC;QAC3B,OAAO,iBAAiB,CAAA;IACzB,CAAC;IACD,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAA;IAEzC,OAAO,IAAI,EAAE,CAAC,WAAW,CAAC,CAAA;AAC3B,CAAC,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { MileagePackage, PlanType, ReservationSource, User } from '@driveflux/db';
|
|
2
2
|
import type { Address } from '@driveflux/db/types/helpers';
|
|
3
3
|
export type ReserveVehicleParams = {
|
|
4
|
+
invoiceId?: string;
|
|
4
5
|
plan: PlanType;
|
|
5
6
|
mileagePackage: MileagePackage;
|
|
6
7
|
asBusiness?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/reservation/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,cAAc,EACd,QAAQ,EACR,iBAAiB,EACjB,IAAI,EACJ,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAE1D,MAAM,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,QAAQ,CAAA;IACd,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE;QACX,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,WAAW,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,iBAAiB,CAAC,EAAE;QACnB,IAAI,EAAE,OAAO,CAAA;QACb,OAAO,EAAE,OAAO,CAAA;KAChB,CAAA;IACD,YAAY,CAAC,EAAE,IAAI,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,MAAM,EAAE,iBAAiB,CAAA;IACzB,eAAe,EAAE,IAAI,CAAA;IACrB,WAAW,EAAE,IAAI,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/reservation/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,cAAc,EACd,QAAQ,EACR,iBAAiB,EACjB,IAAI,EACJ,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAE1D,MAAM,MAAM,oBAAoB,GAAG;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,QAAQ,CAAA;IACd,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE;QACX,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,WAAW,CAAC,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,iBAAiB,CAAC,EAAE;QACnB,IAAI,EAAE,OAAO,CAAA;QACb,OAAO,EAAE,OAAO,CAAA;KAChB,CAAA;IACD,YAAY,CAAC,EAAE,IAAI,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,MAAM,EAAE,iBAAiB,CAAA;IACzB,eAAe,EAAE,IAAI,CAAA;IACrB,WAAW,EAAE,IAAI,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA"}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=types.js.map
|
|
1
|
+
export { };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AppAbility } from '@driveflux/auth/authorization/types';
|
|
2
2
|
import type { Vehicle } from '@driveflux/db';
|
|
3
3
|
import { type PromisedResult } from '@driveflux/result';
|
|
4
|
-
import type { ReserveVehicleParams } from './types';
|
|
4
|
+
import type { ReserveVehicleParams } from './types.js';
|
|
5
5
|
export declare const getVehicle: (id: string, { selectedColor, plan, requestUser, }: Pick<ReserveVehicleParams, "selectedColor" | "plan" | "requestUser">, requesterAbility: AppAbility) => PromisedResult<Vehicle>;
|
|
6
6
|
//# sourceMappingURL=vehicle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vehicle.d.ts","sourceRoot":"","sources":["../../src/reservation/vehicle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAG5C,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGhE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"vehicle.d.ts","sourceRoot":"","sources":["../../src/reservation/vehicle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAG5C,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGhE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEtD,eAAO,MAAM,UAAU,GACtB,IAAI,MAAM,EACV,uCAIG,IAAI,CAAC,oBAAoB,EAAE,eAAe,GAAG,MAAM,GAAG,aAAa,CAAC,EACvE,kBAAkB,UAAU,KAC1B,cAAc,CAAC,OAAO,CAmCxB,CAAA"}
|
|
@@ -2,23 +2,21 @@ import { subject } from '@casl/ability';
|
|
|
2
2
|
import { prisma } from '@driveflux/db';
|
|
3
3
|
import { makeProblem, PROBLEM_NOT_FOUND } from '@driveflux/problem';
|
|
4
4
|
import { Err, Ok } from '@driveflux/result';
|
|
5
|
-
import { checkIfVehicleIsAvailableForReservation } from './checks';
|
|
6
|
-
import { createVehicleFromDisplayVehicle } from './display-vehicle';
|
|
7
|
-
export const getVehicle = async (id, { selectedColor, plan, requestUser
|
|
8
|
-
const vehicle = id.startsWith('DV_')
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
},
|
|
21
|
-
});
|
|
5
|
+
import { checkIfVehicleIsAvailableForReservation } from './checks.js';
|
|
6
|
+
import { createVehicleFromDisplayVehicle } from './display-vehicle.js';
|
|
7
|
+
export const getVehicle = async (id, { selectedColor, plan, requestUser }, requesterAbility)=>{
|
|
8
|
+
const vehicle = id.startsWith('DV_') ? await createVehicleFromDisplayVehicle(id, selectedColor || undefined) : await prisma.vehicle.findUnique({
|
|
9
|
+
where: {
|
|
10
|
+
id
|
|
11
|
+
},
|
|
12
|
+
include: {
|
|
13
|
+
host: {
|
|
14
|
+
select: {
|
|
15
|
+
id: true
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
});
|
|
22
20
|
if (!vehicle) {
|
|
23
21
|
return new Err(makeProblem(PROBLEM_NOT_FOUND, 'Vehicle not found'));
|
|
24
22
|
}
|
|
@@ -29,4 +27,3 @@ export const getVehicle = async (id, { selectedColor, plan, requestUser, }, requ
|
|
|
29
27
|
}
|
|
30
28
|
return new Ok(vehicle);
|
|
31
29
|
};
|
|
32
|
-
//# sourceMappingURL=vehicle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vehicle.js","sourceRoot":"","sources":["../../src/reservation/vehicle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAGvC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAuB,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,uCAAuC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"vehicle.js","sourceRoot":"","sources":["../../src/reservation/vehicle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAGvC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAuB,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,uCAAuC,EAAE,MAAM,aAAa,CAAA;AACrE,OAAO,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAA;AAGtE,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC9B,EAAU,EACV,EACC,aAAa,EACb,IAAI,EACJ,WAAW,GAC2D,EACvE,gBAA4B,EACF,EAAE;IAC5B,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;QACnC,CAAC,CAAC,MAAM,+BAA+B,CAAC,EAAE,EAAE,aAAa,IAAI,SAAS,CAAC;QACvE,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;YAChC,KAAK,EAAE;gBACN,EAAE;aACF;YACD,OAAO,EAAE;gBACR,IAAI,EAAE;oBACL,MAAM,EAAE;wBACP,EAAE,EAAE,IAAI;qBACR;iBACD;aACD;SACD,CAAC,CAAA;IAEJ,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,IAAI,GAAG,CAAC,WAAW,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,CAAA;IACpE,CAAC;IAED,uCAAuC;IACvC,MAAM,aAAa,GAAG,MAAM,uCAAuC,CAClE,OAAO,EACP,IAAI,EACJ,gBAAgB,CAAC,GAAG,CACnB,wBAAwB,EACxB,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAC5B,CACD,CAAA;IAED,IAAI,aAAa,CAAC,GAAG,EAAE,CAAC;QACvB,OAAO,aAAa,CAAA;IACrB,CAAC;IAED,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,CAAA;AACvB,CAAC,CAAA"}
|
package/dist/slack.js
CHANGED
|
@@ -10,12 +10,11 @@ const slackBlocks = global.__slackBlocks;
|
|
|
10
10
|
/**
|
|
11
11
|
*
|
|
12
12
|
* @deprecated Use slackLater instead and commitSlack to commit
|
|
13
|
-
*/
|
|
14
|
-
export const slack = async (message, channel = config.slack.defaultChannelId) => {
|
|
13
|
+
*/ export const slack = async (message, channel = config.slack.defaultChannelId)=>{
|
|
15
14
|
return await enhancedFetch('https://slack.com/api/chat.postMessage', {
|
|
16
15
|
method: 'POST',
|
|
17
16
|
headers: {
|
|
18
|
-
Authorization: `Bearer ${config.slack.token}
|
|
17
|
+
Authorization: `Bearer ${config.slack.token}`
|
|
19
18
|
},
|
|
20
19
|
body: JSON.stringify({
|
|
21
20
|
channel,
|
|
@@ -24,23 +23,20 @@ export const slack = async (message, channel = config.slack.defaultChannelId) =>
|
|
|
24
23
|
type: 'section',
|
|
25
24
|
text: {
|
|
26
25
|
type: 'mrkdwn',
|
|
27
|
-
text: message
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
]
|
|
31
|
-
})
|
|
26
|
+
text: message
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
]
|
|
30
|
+
})
|
|
32
31
|
});
|
|
33
32
|
};
|
|
34
|
-
export const getSlackBlocks = (channel)
|
|
33
|
+
export const getSlackBlocks = (channel)=>channel ? slackBlocks.get(channel) : slackBlocks;
|
|
35
34
|
/**
|
|
36
35
|
* Naive implementation, however, for now (uncrowded serverless env), this works
|
|
37
36
|
* @param blocks
|
|
38
37
|
* @param channel
|
|
39
|
-
*/
|
|
40
|
-
|
|
41
|
-
const targetChannel = (config.appEnv === 'production'
|
|
42
|
-
? channel
|
|
43
|
-
: config.slack.defaultChannelId) || config.slack.defaultChannelId;
|
|
38
|
+
*/ export function slackLater(blocks, channel) {
|
|
39
|
+
const targetChannel = (config.appEnv === 'production' ? channel : config.slack.defaultChannelId) || config.slack.defaultChannelId;
|
|
44
40
|
if (!targetChannel || !blocks) {
|
|
45
41
|
return;
|
|
46
42
|
}
|
|
@@ -50,15 +46,13 @@ export function slackLater(blocks, channel) {
|
|
|
50
46
|
type: 'section',
|
|
51
47
|
text: {
|
|
52
48
|
type: 'mrkdwn',
|
|
53
|
-
text: blocks
|
|
54
|
-
}
|
|
49
|
+
text: blocks
|
|
50
|
+
}
|
|
55
51
|
});
|
|
56
|
-
}
|
|
57
|
-
else if (!Array.isArray(blocks)) {
|
|
52
|
+
} else if (!Array.isArray(blocks)) {
|
|
58
53
|
messages.add(blocks);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
for (const b of blocks) {
|
|
54
|
+
} else {
|
|
55
|
+
for (const b of blocks){
|
|
62
56
|
messages.add(b);
|
|
63
57
|
}
|
|
64
58
|
}
|
|
@@ -69,22 +63,22 @@ export async function sendSlackMessages(channel, blocks) {
|
|
|
69
63
|
return await enhancedFetch('https://slack.com/api/chat.postMessage', {
|
|
70
64
|
method: 'POST',
|
|
71
65
|
headers: {
|
|
72
|
-
Authorization: `Bearer ${config.slack.token}
|
|
66
|
+
Authorization: `Bearer ${config.slack.token}`
|
|
73
67
|
},
|
|
74
68
|
body: JSON.stringify({
|
|
75
69
|
channel: targetChannel,
|
|
76
|
-
blocks: Array.from(blocks)
|
|
77
|
-
})
|
|
70
|
+
blocks: Array.from(blocks)
|
|
71
|
+
})
|
|
78
72
|
});
|
|
79
73
|
}
|
|
80
|
-
export const commitSlack = ()
|
|
74
|
+
export const commitSlack = ()=>{
|
|
81
75
|
if (!slackBlocks.size) {
|
|
82
76
|
return;
|
|
83
77
|
}
|
|
84
78
|
const channels = slackBlocks.keys();
|
|
85
79
|
let i = 1;
|
|
86
80
|
const baseUrl = config.appEnv === 'development' ? config.tunnelUrl : config.appUrl;
|
|
87
|
-
for (const channel of channels)
|
|
81
|
+
for (const channel of channels){
|
|
88
82
|
const blocks = slackBlocks.get(channel);
|
|
89
83
|
if (!blocks?.size) {
|
|
90
84
|
continue;
|
|
@@ -94,12 +88,13 @@ export const commitSlack = () => {
|
|
|
94
88
|
name: TASK_COMMIT_SLACK_CHANNEL,
|
|
95
89
|
metadata: {
|
|
96
90
|
channel,
|
|
97
|
-
blocks: [
|
|
91
|
+
blocks: [
|
|
92
|
+
...blocks
|
|
93
|
+
]
|
|
98
94
|
},
|
|
99
95
|
taskHandlerUrl: `${baseUrl || config.appUrl}/api/hooks/slack-pipeline`,
|
|
100
|
-
scheduledAt: addSeconds(new Date(), i++)
|
|
96
|
+
scheduledAt: addSeconds(new Date(), i++)
|
|
101
97
|
});
|
|
102
98
|
}
|
|
103
99
|
slackBlocks.clear();
|
|
104
100
|
};
|
|
105
|
-
//# sourceMappingURL=slack.js.map
|
package/dist/validation.js
CHANGED
|
@@ -1,34 +1,32 @@
|
|
|
1
1
|
import { makeProblem } from '@driveflux/problem';
|
|
2
2
|
import { Err } from '@driveflux/result';
|
|
3
|
-
import { z
|
|
4
|
-
export const makeValidationErrorResult = (zodError)
|
|
5
|
-
const validation = zodError.flatten((i)
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
export const makeValidationErrorResult = (zodError)=>{
|
|
5
|
+
const validation = zodError.flatten((i)=>({
|
|
6
|
+
message: i.message,
|
|
7
|
+
code: i.code,
|
|
8
|
+
path: i.path
|
|
9
|
+
}));
|
|
10
10
|
return new Err(makeProblem({
|
|
11
11
|
object: 'validation-issues',
|
|
12
|
-
...validation
|
|
12
|
+
...validation
|
|
13
13
|
}));
|
|
14
14
|
};
|
|
15
|
-
export const getIdOrObjectValidation = (object, extendObjectValidation)
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
.catchall(z.any())
|
|
21
|
-
], {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
});
|
|
15
|
+
export const getIdOrObjectValidation = (object, extendObjectValidation)=>z.union([
|
|
16
|
+
z.string(),
|
|
17
|
+
z.object({
|
|
18
|
+
object: z.literal(object),
|
|
19
|
+
...extendObjectValidation
|
|
20
|
+
}).passthrough().catchall(z.any())
|
|
21
|
+
], {
|
|
22
|
+
error: ()=>{
|
|
23
|
+
return {
|
|
24
|
+
message: `Invalid details. Please provide an id as a string or an object of type ${object}`
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
28
|
export const nonEmptyStringValidator = z.string().min(1);
|
|
29
|
-
export const metadataValidation = z
|
|
30
|
-
.object({})
|
|
31
|
-
.catchall(z.union([
|
|
29
|
+
export const metadataValidation = z.object({}).catchall(z.union([
|
|
32
30
|
z.string(),
|
|
33
31
|
z.number(),
|
|
34
32
|
z.boolean(),
|
|
@@ -36,28 +34,25 @@ export const metadataValidation = z
|
|
|
36
34
|
z.array(z.number()),
|
|
37
35
|
z.array(z.boolean()),
|
|
38
36
|
z.null(),
|
|
39
|
-
z.undefined()
|
|
37
|
+
z.undefined()
|
|
40
38
|
]));
|
|
41
39
|
export const addressValidation = z.object({
|
|
42
40
|
name: z.string().optional().nullable(),
|
|
43
|
-
coordinates: z
|
|
44
|
-
.object({
|
|
41
|
+
coordinates: z.object({
|
|
45
42
|
lat: z.number().min(-90).max(90),
|
|
46
|
-
lng: z.number().min(-180).max(180)
|
|
47
|
-
})
|
|
48
|
-
.nullable()
|
|
49
|
-
.optional(),
|
|
43
|
+
lng: z.number().min(-180).max(180)
|
|
44
|
+
}).nullable().optional(),
|
|
50
45
|
street1: nonEmptyStringValidator,
|
|
51
46
|
street2: z.string().nullable().optional(),
|
|
52
47
|
city: nonEmptyStringValidator,
|
|
53
48
|
state: nonEmptyStringValidator,
|
|
54
49
|
postalCode: z.string().min(3).max(11),
|
|
55
|
-
country: nonEmptyStringValidator
|
|
56
|
-
});
|
|
57
|
-
export const getIsoDatetimeToDate = (dateValidation) => z.codec(z.iso.datetime(), dateValidation ?? z.date(), {
|
|
58
|
-
decode: (isoString) => new Date(isoString),
|
|
59
|
-
encode: (date) => date.toISOString(),
|
|
50
|
+
country: nonEmptyStringValidator
|
|
60
51
|
});
|
|
52
|
+
export const getIsoDatetimeToDate = (dateValidation)=>z.codec(z.iso.datetime(), dateValidation ?? z.date(), {
|
|
53
|
+
decode: (isoString)=>new Date(isoString),
|
|
54
|
+
encode: (date)=>date.toISOString()
|
|
55
|
+
});
|
|
61
56
|
export const dateValidation = getIsoDatetimeToDate();
|
|
62
57
|
export const enhancedImageValidation = z.object({
|
|
63
58
|
default: z.string(),
|
|
@@ -66,64 +61,67 @@ export const enhancedImageValidation = z.object({
|
|
|
66
61
|
small: z.string().optional(),
|
|
67
62
|
medium: z.string().optional(),
|
|
68
63
|
large: z.string().optional(),
|
|
69
|
-
description: z.string().optional()
|
|
64
|
+
description: z.string().optional()
|
|
70
65
|
});
|
|
71
|
-
export const getObjectValidation = (o)
|
|
66
|
+
export const getObjectValidation = (o)=>z.enum([
|
|
67
|
+
o
|
|
68
|
+
]).optional();
|
|
72
69
|
export const contactValidation = z.object({
|
|
73
70
|
id: z.string().optional(),
|
|
74
71
|
firstName: z.string(),
|
|
75
72
|
lastName: z.string(),
|
|
76
73
|
jobTitle: z.string().optional(),
|
|
77
|
-
email: z
|
|
78
|
-
.string()
|
|
79
|
-
.email()
|
|
80
|
-
.optional()
|
|
81
|
-
.transform((email) => email?.toLowerCase().trim()),
|
|
74
|
+
email: z.string().email().optional().transform((email)=>email?.toLowerCase().trim()),
|
|
82
75
|
phoneNumber: z.string().optional(),
|
|
83
|
-
remarks: z.string().default('')
|
|
76
|
+
remarks: z.string().default('')
|
|
84
77
|
});
|
|
85
78
|
export const documentFileValidation = z.object({
|
|
86
79
|
id: z.string().optional(),
|
|
87
80
|
name: z.string(),
|
|
88
81
|
description: z.string().nullable().optional(),
|
|
89
82
|
url: z.string(),
|
|
90
|
-
fileType: z.preprocess((f)
|
|
83
|
+
fileType: z.preprocess((f)=>typeof f === 'string' ? f.toLowerCase() : f, z.enum([
|
|
84
|
+
'jpg',
|
|
85
|
+
'jpeg',
|
|
86
|
+
'png',
|
|
87
|
+
'pdf',
|
|
88
|
+
'image'
|
|
89
|
+
]).optional()),
|
|
91
90
|
mimeType: z.string().optional(),
|
|
92
91
|
uploaded: z.boolean().default(true),
|
|
93
92
|
createdAt: dateValidation.nullable().optional(),
|
|
94
93
|
updatedAt: dateValidation.nullable().optional(),
|
|
95
|
-
metadata: metadataValidation.nullable().optional()
|
|
94
|
+
metadata: metadataValidation.nullable().optional()
|
|
96
95
|
});
|
|
97
96
|
export const queryBooleanValidator = z.stringbool({
|
|
98
|
-
truthy: [
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
97
|
+
truthy: [
|
|
98
|
+
'1',
|
|
99
|
+
'true',
|
|
100
|
+
'yes'
|
|
101
|
+
],
|
|
102
|
+
falsy: [
|
|
103
|
+
'0',
|
|
104
|
+
'false',
|
|
105
|
+
'no'
|
|
106
|
+
]
|
|
104
107
|
});
|
|
108
|
+
const getStringToNumber = (numberValidation)=>z.codec(z.string().regex(z.regexes.number), numberValidation ?? z.number(), {
|
|
109
|
+
decode: (str)=>Number.parseFloat(str),
|
|
110
|
+
encode: (num)=>num.toString()
|
|
111
|
+
});
|
|
105
112
|
export const queryNumberValidator = getStringToNumber();
|
|
106
113
|
export function queryEnumArrayValidator(enumOrValidation) {
|
|
107
114
|
// Handle ZodEnum case
|
|
108
|
-
if (enumOrValidation &&
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
encode: (value) => value.join(','),
|
|
114
|
-
decode: (value) => value.split(','),
|
|
115
|
-
})
|
|
116
|
-
.or(z.array(enumOrValidation));
|
|
115
|
+
if (enumOrValidation && typeof enumOrValidation === 'object' && '_zod' in enumOrValidation) {
|
|
116
|
+
return z.codec(z.string(), z.array(enumOrValidation), {
|
|
117
|
+
encode: (value)=>value.join(','),
|
|
118
|
+
decode: (value)=>value.split(',')
|
|
119
|
+
}).or(z.array(enumOrValidation));
|
|
117
120
|
}
|
|
118
121
|
// Handle array or enum-like object case
|
|
119
|
-
const enumSchema = Array.isArray(enumOrValidation)
|
|
120
|
-
|
|
121
|
-
:
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
encode: (value) => value.join(','),
|
|
125
|
-
decode: (value) => value.split(','),
|
|
126
|
-
})
|
|
127
|
-
.or(z.array(enumSchema));
|
|
122
|
+
const enumSchema = Array.isArray(enumOrValidation) ? z.enum(enumOrValidation) : z.enum(Object.values(enumOrValidation));
|
|
123
|
+
return z.codec(z.string(), z.array(enumSchema), {
|
|
124
|
+
encode: (value)=>value.join(','),
|
|
125
|
+
decode: (value)=>value.split(',')
|
|
126
|
+
}).or(z.array(enumSchema));
|
|
128
127
|
}
|
|
129
|
-
//# sourceMappingURL=validation.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { VehiclePriceMatrix } from '@driveflux/db/types/frontend';
|
|
2
|
-
import type { FluxPriceMatrixCoefficients, StartFeeMatrixCoefficients, TiersPricing } from './types';
|
|
2
|
+
import type { FluxPriceMatrixCoefficients, StartFeeMatrixCoefficients, TiersPricing } from './types.js';
|
|
3
3
|
export declare const DEFAULT_MATRIX: {
|
|
4
4
|
plan1: {
|
|
5
5
|
lite: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/vehicle/vehicle-pricing/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,KAAK,EACX,2BAA2B,EAC3B,0BAA0B,EAC1B,YAAY,EACZ,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/vehicle/vehicle-pricing/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,KAAK,EACX,2BAA2B,EAC3B,0BAA0B,EAC1B,YAAY,EACZ,MAAM,YAAY,CAAA;AAInB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAO1B,CAAA;AAED,eAAO,MAAM,aAAa,MAAM,CAAA;AAShC,eAAO,MAAM,oCAAoC,EAAE,2BAUxC,CAAA;AAEX,eAAO,MAAM,sCAAsC,EAAE,0BAQ1C,CAAA;AAEX,eAAO,MAAM,iBAAiB,EAAE,YAgBtB,CAAA;AAEV,eAAO,MAAM,YAAY,EAAE,kBAO1B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,kBAqC7B,CAAA;AAEV,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;CAgBpC,CAAA;AAED,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;CAgB3B,CAAA;AAEV,eAAO,MAAM,+BAA+B,UAAU,CAAA;AACtD,eAAO,MAAM,uBAAuB,IAAI,CAAA;AACxC,eAAO,MAAM,uBAAuB,OAAO,CAAA;AAE3C,eAAO,MAAM,uBAAuB,IAAI,CAAA;AACxC,eAAO,MAAM,uBAAuB,OAAO,CAAA"}
|
|
@@ -1,18 +1,23 @@
|
|
|
1
|
-
const DEFAUALT_MILEAGE_MATRIX = {
|
|
1
|
+
const DEFAUALT_MILEAGE_MATRIX = {
|
|
2
|
+
lite: 0,
|
|
3
|
+
standard: 0,
|
|
4
|
+
plus: 0,
|
|
5
|
+
unlimited: 0
|
|
6
|
+
};
|
|
2
7
|
export const DEFAULT_MATRIX = {
|
|
3
8
|
plan1: DEFAUALT_MILEAGE_MATRIX,
|
|
4
9
|
plan12: DEFAUALT_MILEAGE_MATRIX,
|
|
5
10
|
plan24: DEFAUALT_MILEAGE_MATRIX,
|
|
6
11
|
plan36: DEFAUALT_MILEAGE_MATRIX,
|
|
7
12
|
plan60: DEFAUALT_MILEAGE_MATRIX,
|
|
8
|
-
planWeekly: DEFAUALT_MILEAGE_MATRIX
|
|
13
|
+
planWeekly: DEFAUALT_MILEAGE_MATRIX
|
|
9
14
|
};
|
|
10
15
|
export const FLUX_MIN_TAKE = 200;
|
|
11
16
|
const EMPTY_MILEAGE_PACKAGES = {
|
|
12
17
|
lite: 0,
|
|
13
18
|
standard: 0,
|
|
14
19
|
plus: 0,
|
|
15
|
-
unlimited: 0
|
|
20
|
+
unlimited: 0
|
|
16
21
|
};
|
|
17
22
|
export const EMPTY_FLUX_PRICING_MATRIX_CONTROLLER = {
|
|
18
23
|
plan60: 0,
|
|
@@ -22,7 +27,7 @@ export const EMPTY_FLUX_PRICING_MATRIX_CONTROLLER = {
|
|
|
22
27
|
plan1: 0,
|
|
23
28
|
planWeekly: 0,
|
|
24
29
|
add: EMPTY_MILEAGE_PACKAGES,
|
|
25
|
-
excessMileage: 0
|
|
30
|
+
excessMileage: 0
|
|
26
31
|
};
|
|
27
32
|
export const EMPTY_FLUX_START_FEE_MATRIX_CONTROLLER = {
|
|
28
33
|
plan60: EMPTY_MILEAGE_PACKAGES,
|
|
@@ -30,7 +35,7 @@ export const EMPTY_FLUX_START_FEE_MATRIX_CONTROLLER = {
|
|
|
30
35
|
plan24: EMPTY_MILEAGE_PACKAGES,
|
|
31
36
|
plan12: EMPTY_MILEAGE_PACKAGES,
|
|
32
37
|
plan1: EMPTY_MILEAGE_PACKAGES,
|
|
33
|
-
planWeekly: EMPTY_MILEAGE_PACKAGES
|
|
38
|
+
planWeekly: EMPTY_MILEAGE_PACKAGES
|
|
34
39
|
};
|
|
35
40
|
export const EMPTY_ULTRA_TIERS = {
|
|
36
41
|
tier1: 0,
|
|
@@ -47,7 +52,7 @@ export const EMPTY_ULTRA_TIERS = {
|
|
|
47
52
|
tier12: 0,
|
|
48
53
|
tier13: 0,
|
|
49
54
|
tier14: 0,
|
|
50
|
-
tier15: 0
|
|
55
|
+
tier15: 0
|
|
51
56
|
};
|
|
52
57
|
export const EMPTY_MATRIX = {
|
|
53
58
|
plan60: EMPTY_MILEAGE_PACKAGES,
|
|
@@ -55,50 +60,49 @@ export const EMPTY_MATRIX = {
|
|
|
55
60
|
plan24: EMPTY_MILEAGE_PACKAGES,
|
|
56
61
|
plan12: EMPTY_MILEAGE_PACKAGES,
|
|
57
62
|
plan1: EMPTY_MILEAGE_PACKAGES,
|
|
58
|
-
planWeekly: EMPTY_MILEAGE_PACKAGES
|
|
63
|
+
planWeekly: EMPTY_MILEAGE_PACKAGES
|
|
59
64
|
};
|
|
60
65
|
/**
|
|
61
66
|
* Matrix representing the dealership's take in percentages
|
|
62
67
|
*
|
|
63
68
|
* @see https://docs.google.com/spreadsheets/d/1lYYMdQgnzG53lCGf_dKJY9pEue5suJuo3O3-zegIOT0/edit#gid=819271234
|
|
64
|
-
*/
|
|
65
|
-
export const HOST_MATRIX_COEFFICIENTS = {
|
|
69
|
+
*/ export const HOST_MATRIX_COEFFICIENTS = {
|
|
66
70
|
plan60: {
|
|
67
71
|
lite: 0.8,
|
|
68
72
|
standard: 0.9,
|
|
69
73
|
plus: 1,
|
|
70
|
-
unlimited: 1.25
|
|
74
|
+
unlimited: 1.25
|
|
71
75
|
},
|
|
72
76
|
plan36: {
|
|
73
77
|
lite: 1,
|
|
74
78
|
standard: 1.1,
|
|
75
79
|
plus: 1.2,
|
|
76
|
-
unlimited: 1.45
|
|
80
|
+
unlimited: 1.45
|
|
77
81
|
},
|
|
78
82
|
plan24: {
|
|
79
83
|
lite: 1.1,
|
|
80
84
|
standard: 1.2,
|
|
81
85
|
plus: 1.3,
|
|
82
|
-
unlimited: 1.55
|
|
86
|
+
unlimited: 1.55
|
|
83
87
|
},
|
|
84
88
|
plan12: {
|
|
85
89
|
lite: 1.2,
|
|
86
90
|
standard: 1.3,
|
|
87
91
|
plus: 1.4,
|
|
88
|
-
unlimited: 1.65
|
|
92
|
+
unlimited: 1.65
|
|
89
93
|
},
|
|
90
94
|
plan1: {
|
|
91
95
|
lite: 0,
|
|
92
96
|
standard: 0,
|
|
93
97
|
plus: 0,
|
|
94
|
-
unlimited: 0
|
|
98
|
+
unlimited: 0
|
|
95
99
|
},
|
|
96
100
|
planWeekly: {
|
|
97
101
|
lite: 0,
|
|
98
102
|
standard: 0,
|
|
99
103
|
plus: 0,
|
|
100
|
-
unlimited: 0
|
|
101
|
-
}
|
|
104
|
+
unlimited: 0
|
|
105
|
+
}
|
|
102
106
|
};
|
|
103
107
|
export const ULTRA_HOST_TIERS_PRICING = {
|
|
104
108
|
tier1: 800,
|
|
@@ -115,7 +119,7 @@ export const ULTRA_HOST_TIERS_PRICING = {
|
|
|
115
119
|
tier12: 8500,
|
|
116
120
|
tier13: 10500,
|
|
117
121
|
tier14: 12800,
|
|
118
|
-
tier15: 15000
|
|
122
|
+
tier15: 15000
|
|
119
123
|
};
|
|
120
124
|
export const ULTRA_FLUX_TIERS_PRICING = {
|
|
121
125
|
tier1: 999,
|
|
@@ -132,11 +136,10 @@ export const ULTRA_FLUX_TIERS_PRICING = {
|
|
|
132
136
|
tier12: 9999,
|
|
133
137
|
tier13: 12599,
|
|
134
138
|
tier14: 14999,
|
|
135
|
-
tier15: 17999
|
|
139
|
+
tier15: 17999
|
|
136
140
|
};
|
|
137
141
|
export const HOST_EXCESS_MILEAGE_COEFFICIENT = 0.00048;
|
|
138
142
|
export const MAX_HOST_EXCESS_MILEAGE = 4;
|
|
139
143
|
export const MIN_HOST_EXCESS_MILEAGE = 0.52;
|
|
140
144
|
export const MAX_FLUX_EXCESS_MILEAGE = 5;
|
|
141
145
|
export const MIN_FLUX_EXCESS_MILEAGE = 0.65;
|
|
142
|
-
//# sourceMappingURL=constants.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { UltraTier, VehiclePriceMatrix, VehiclePricing, VehicleType } from '@driveflux/db';
|
|
2
|
-
import type { FluxVehiclePricingController } from './types';
|
|
2
|
+
import type { FluxVehiclePricingController } from './types.js';
|
|
3
3
|
type CustomLitePricing = {
|
|
4
4
|
plan60?: number;
|
|
5
5
|
plan36?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vehicle/vehicle-pricing/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGX,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,MAAM,eAAe,CAAA;AAMtB,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vehicle/vehicle-pricing/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGX,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,MAAM,eAAe,CAAA;AAMtB,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAA;AAE9D,KAAK,iBAAiB,GAAG;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,+BAA+B,GAAI,UAAU,MAAM,WAE/D,CAAA;AAED,eAAO,MAAM,cAAc,GAC1B,aAAa,4BAA4B,EACzC,UAAU,MAAM,EAChB,MAAM,SAAS,EACf,aAAa,OAAO,KAClB,kBAgCF,CAAA;AAED,eAAO,MAAM,oBAAoB,GAChC,aAAa,4BAA4B,EACzC,UAAU,MAAM,WAWhB,CAAA;AAED,eAAO,MAAM,cAAc,QAAO,kBAEjC,CAAA;AAED,eAAO,MAAM,UAAU,GACtB,iBAAiB,kBAAkB,KACjC,kBAiBF,CAAA;AAMD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,GAC7B,aAAa,4BAA4B,EACzC,aAAa,WAAW,EACxB,UAAU,MAAM,EAChB,uBAAuB,kBAAkB,EACzC,MAAM,SAAS,EACf,aAAa,OAAO,EACpB,uBAAuB,cAAc,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EACzD,mBAAmB,iBAAiB,KAClC,kBAmFF,CAAA;AAED,eAAO,MAAM,8BAA8B,GAC1C,QAAQ,kBAAkB,EAC1B,KAAK,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,KAClD,kBAsBF,CAAA;AAED,eAAO,MAAM,oBAAoB,GAChC,aAAa,4BAA4B,EACzC,UAAU,MAAM,WAWhB,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAC7B,aAAa,4BAA4B,EACzC,UAAU,MAAM,EAChB,aAAa,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoBpB,CAAA"}
|