@driveflux/api-functions 0.0.7-next.7 → 0.0.7-next.9

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.
Files changed (52) hide show
  1. package/dist/auth/confirm.js +29 -24
  2. package/dist/auth/emails.js +13 -12
  3. package/dist/auth/formatter.js +5 -5
  4. package/dist/auth/otp.js +50 -66
  5. package/dist/auth/register.js +34 -42
  6. package/dist/auth/tokens.js +55 -58
  7. package/dist/auth/verifications.js +52 -53
  8. package/dist/constants.js +1 -0
  9. package/dist/mailjet/calls/manage-contacts-in-list.js +6 -5
  10. package/dist/mailjet/calls/manage-subscription-status.js +5 -4
  11. package/dist/mailjet/calls/request-service.js +6 -7
  12. package/dist/mailjet/refresh-email-preferences.js +12 -11
  13. package/dist/mailjet/set-contact.js +12 -11
  14. package/dist/mailjet/types.js +2 -1
  15. package/dist/mailjet/utils/convert-to-array.js +6 -8
  16. package/dist/mailjet/utils/extract-email-preferences.js +15 -14
  17. package/dist/mailjet/utils/lists.js +8 -7
  18. package/dist/mailjet/utils/update-email-references.js +15 -16
  19. package/dist/notion/client.js +19 -22
  20. package/dist/notion/helpful.js +9 -6
  21. package/dist/notion/schemas/block.js +48 -42
  22. package/dist/notion/schemas/common.js +14 -9
  23. package/dist/notion/schemas/database.js +60 -62
  24. package/dist/notion/schemas/emoji.js +2 -1
  25. package/dist/notion/schemas/file.js +9 -9
  26. package/dist/notion/schemas/kb.js +6 -5
  27. package/dist/notion/schemas/page.js +61 -72
  28. package/dist/notion/schemas/parent.js +5 -4
  29. package/dist/notion/schemas/user.js +19 -18
  30. package/dist/reservation/agree.js +7 -6
  31. package/dist/reservation/checks.js +4 -3
  32. package/dist/reservation/display-vehicle.d.ts +35 -35
  33. package/dist/reservation/fetch-or-create.d.ts +1 -1
  34. package/dist/reservation/fetch-or-create.d.ts.map +1 -1
  35. package/dist/reservation/fetch-or-create.js +62 -48
  36. package/dist/reservation/fetch-or-create.js.map +1 -1
  37. package/dist/reservation/invoice.d.ts +2 -2
  38. package/dist/reservation/invoice.d.ts.map +1 -1
  39. package/dist/reservation/invoice.js +76 -64
  40. package/dist/reservation/invoice.js.map +1 -1
  41. package/dist/reservation/payer.js +6 -5
  42. package/dist/reservation/reserve.js +4 -3
  43. package/dist/reservation/types.d.ts +1 -0
  44. package/dist/reservation/types.d.ts.map +1 -1
  45. package/dist/reservation/types.js +2 -1
  46. package/dist/reservation/vehicle.js +16 -13
  47. package/dist/slack.js +29 -24
  48. package/dist/validation.js +71 -69
  49. package/dist/vehicle/vehicle-pricing/constants.js +19 -22
  50. package/dist/vehicle/vehicle-pricing/index.js +42 -28
  51. package/dist/vehicle/vehicle-pricing/types.js +2 -1
  52. package/package.json +9 -9
@@ -4,14 +4,14 @@ import { checkIfUserCanReserve } from './checks.js';
4
4
  import { fetchOrCreateReservation } from './fetch-or-create.js';
5
5
  import { getPayer } from './payer.js';
6
6
  import { getVehicle } from './vehicle.js';
7
- const processBody = (body)=>{
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,3 +41,4 @@ 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,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 +1,2 @@
1
- export { };
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -4,19 +4,21 @@ import { makeProblem, PROBLEM_NOT_FOUND } from '@driveflux/problem';
4
4
  import { Err, Ok } from '@driveflux/result';
5
5
  import { checkIfVehicleIsAvailableForReservation } from './checks.js';
6
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
- });
7
+ export const getVehicle = async (id, { selectedColor, plan, requestUser, }, requesterAbility) => {
8
+ const vehicle = id.startsWith('DV_')
9
+ ? await createVehicleFromDisplayVehicle(id, selectedColor || undefined)
10
+ : await prisma.vehicle.findUnique({
11
+ where: {
12
+ id,
13
+ },
14
+ include: {
15
+ host: {
16
+ select: {
17
+ id: true,
18
+ },
19
+ },
20
+ },
21
+ });
20
22
  if (!vehicle) {
21
23
  return new Err(makeProblem(PROBLEM_NOT_FOUND, 'Vehicle not found'));
22
24
  }
@@ -27,3 +29,4 @@ export const getVehicle = async (id, { selectedColor, plan, requestUser }, reque
27
29
  }
28
30
  return new Ok(vehicle);
29
31
  };
32
+ //# sourceMappingURL=vehicle.js.map
package/dist/slack.js CHANGED
@@ -10,11 +10,12 @@ const slackBlocks = global.__slackBlocks;
10
10
  /**
11
11
  *
12
12
  * @deprecated Use slackLater instead and commitSlack to commit
13
- */ export const slack = async (message, channel = config.slack.defaultChannelId)=>{
13
+ */
14
+ export const slack = async (message, channel = config.slack.defaultChannelId) => {
14
15
  return await enhancedFetch('https://slack.com/api/chat.postMessage', {
15
16
  method: 'POST',
16
17
  headers: {
17
- Authorization: `Bearer ${config.slack.token}`
18
+ Authorization: `Bearer ${config.slack.token}`,
18
19
  },
19
20
  body: JSON.stringify({
20
21
  channel,
@@ -23,20 +24,23 @@ const slackBlocks = global.__slackBlocks;
23
24
  type: 'section',
24
25
  text: {
25
26
  type: 'mrkdwn',
26
- text: message
27
- }
28
- }
29
- ]
30
- })
27
+ text: message,
28
+ },
29
+ },
30
+ ],
31
+ }),
31
32
  });
32
33
  };
33
- export const getSlackBlocks = (channel)=>channel ? slackBlocks.get(channel) : slackBlocks;
34
+ export const getSlackBlocks = (channel) => channel ? slackBlocks.get(channel) : slackBlocks;
34
35
  /**
35
36
  * Naive implementation, however, for now (uncrowded serverless env), this works
36
37
  * @param blocks
37
38
  * @param channel
38
- */ export function slackLater(blocks, channel) {
39
- const targetChannel = (config.appEnv === 'production' ? channel : config.slack.defaultChannelId) || config.slack.defaultChannelId;
39
+ */
40
+ export function slackLater(blocks, channel) {
41
+ const targetChannel = (config.appEnv === 'production'
42
+ ? channel
43
+ : config.slack.defaultChannelId) || config.slack.defaultChannelId;
40
44
  if (!targetChannel || !blocks) {
41
45
  return;
42
46
  }
@@ -46,13 +50,15 @@ export const getSlackBlocks = (channel)=>channel ? slackBlocks.get(channel) : sl
46
50
  type: 'section',
47
51
  text: {
48
52
  type: 'mrkdwn',
49
- text: blocks
50
- }
53
+ text: blocks,
54
+ },
51
55
  });
52
- } else if (!Array.isArray(blocks)) {
56
+ }
57
+ else if (!Array.isArray(blocks)) {
53
58
  messages.add(blocks);
54
- } else {
55
- for (const b of blocks){
59
+ }
60
+ else {
61
+ for (const b of blocks) {
56
62
  messages.add(b);
57
63
  }
58
64
  }
@@ -63,22 +69,22 @@ export async function sendSlackMessages(channel, blocks) {
63
69
  return await enhancedFetch('https://slack.com/api/chat.postMessage', {
64
70
  method: 'POST',
65
71
  headers: {
66
- Authorization: `Bearer ${config.slack.token}`
72
+ Authorization: `Bearer ${config.slack.token}`,
67
73
  },
68
74
  body: JSON.stringify({
69
75
  channel: targetChannel,
70
- blocks: Array.from(blocks)
71
- })
76
+ blocks: Array.from(blocks),
77
+ }),
72
78
  });
73
79
  }
74
- export const commitSlack = ()=>{
80
+ export const commitSlack = () => {
75
81
  if (!slackBlocks.size) {
76
82
  return;
77
83
  }
78
84
  const channels = slackBlocks.keys();
79
85
  let i = 1;
80
86
  const baseUrl = config.appEnv === 'development' ? config.tunnelUrl : config.appUrl;
81
- for (const channel of channels){
87
+ for (const channel of channels) {
82
88
  const blocks = slackBlocks.get(channel);
83
89
  if (!blocks?.size) {
84
90
  continue;
@@ -88,13 +94,12 @@ export const commitSlack = ()=>{
88
94
  name: TASK_COMMIT_SLACK_CHANNEL,
89
95
  metadata: {
90
96
  channel,
91
- blocks: [
92
- ...blocks
93
- ]
97
+ blocks: [...blocks],
94
98
  },
95
99
  taskHandlerUrl: `${baseUrl || config.appUrl}/api/hooks/slack-pipeline`,
96
- scheduledAt: addSeconds(new Date(), i++)
100
+ scheduledAt: addSeconds(new Date(), i++),
97
101
  });
98
102
  }
99
103
  slackBlocks.clear();
100
104
  };
105
+ //# sourceMappingURL=slack.js.map
@@ -1,32 +1,34 @@
1
1
  import { makeProblem } from '@driveflux/problem';
2
2
  import { Err } from '@driveflux/result';
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
- }));
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)=>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
- });
15
+ export const getIdOrObjectValidation = (object, extendObjectValidation) => z.union([
16
+ z.string(),
17
+ z
18
+ .object({ object: z.literal(object), ...extendObjectValidation })
19
+ .passthrough()
20
+ .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.object({}).catchall(z.union([
29
+ export const metadataValidation = z
30
+ .object({})
31
+ .catchall(z.union([
30
32
  z.string(),
31
33
  z.number(),
32
34
  z.boolean(),
@@ -34,25 +36,28 @@ export const metadataValidation = z.object({}).catchall(z.union([
34
36
  z.array(z.number()),
35
37
  z.array(z.boolean()),
36
38
  z.null(),
37
- z.undefined()
39
+ z.undefined(),
38
40
  ]));
39
41
  export const addressValidation = z.object({
40
42
  name: z.string().optional().nullable(),
41
- coordinates: z.object({
43
+ coordinates: z
44
+ .object({
42
45
  lat: z.number().min(-90).max(90),
43
- lng: z.number().min(-180).max(180)
44
- }).nullable().optional(),
46
+ lng: z.number().min(-180).max(180),
47
+ })
48
+ .nullable()
49
+ .optional(),
45
50
  street1: nonEmptyStringValidator,
46
51
  street2: z.string().nullable().optional(),
47
52
  city: nonEmptyStringValidator,
48
53
  state: nonEmptyStringValidator,
49
54
  postalCode: z.string().min(3).max(11),
50
- country: nonEmptyStringValidator
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(),
51
60
  });
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
- });
56
61
  export const dateValidation = getIsoDatetimeToDate();
57
62
  export const enhancedImageValidation = z.object({
58
63
  default: z.string(),
@@ -61,67 +66,64 @@ export const enhancedImageValidation = z.object({
61
66
  small: z.string().optional(),
62
67
  medium: z.string().optional(),
63
68
  large: z.string().optional(),
64
- description: z.string().optional()
69
+ description: z.string().optional(),
65
70
  });
66
- export const getObjectValidation = (o)=>z.enum([
67
- o
68
- ]).optional();
71
+ export const getObjectValidation = (o) => z.enum([o]).optional();
69
72
  export const contactValidation = z.object({
70
73
  id: z.string().optional(),
71
74
  firstName: z.string(),
72
75
  lastName: z.string(),
73
76
  jobTitle: z.string().optional(),
74
- email: z.string().email().optional().transform((email)=>email?.toLowerCase().trim()),
77
+ email: z
78
+ .string()
79
+ .email()
80
+ .optional()
81
+ .transform((email) => email?.toLowerCase().trim()),
75
82
  phoneNumber: z.string().optional(),
76
- remarks: z.string().default('')
83
+ remarks: z.string().default(''),
77
84
  });
78
85
  export const documentFileValidation = z.object({
79
86
  id: z.string().optional(),
80
87
  name: z.string(),
81
88
  description: z.string().nullable().optional(),
82
89
  url: z.string(),
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()),
90
+ fileType: z.preprocess((f) => (typeof f === 'string' ? f.toLowerCase() : f), z.enum(['jpg', 'jpeg', 'png', 'pdf', 'image']).optional()),
90
91
  mimeType: z.string().optional(),
91
92
  uploaded: z.boolean().default(true),
92
93
  createdAt: dateValidation.nullable().optional(),
93
94
  updatedAt: dateValidation.nullable().optional(),
94
- metadata: metadataValidation.nullable().optional()
95
+ metadata: metadataValidation.nullable().optional(),
95
96
  });
96
97
  export const queryBooleanValidator = z.stringbool({
97
- truthy: [
98
- '1',
99
- 'true',
100
- 'yes'
101
- ],
102
- falsy: [
103
- '0',
104
- 'false',
105
- 'no'
106
- ]
98
+ truthy: ['1', 'true', 'yes'],
99
+ falsy: ['0', 'false', 'no'],
100
+ });
101
+ const getStringToNumber = (numberValidation) => z.codec(z.string().regex(z.regexes.number), numberValidation ?? z.number(), {
102
+ decode: (str) => Number.parseFloat(str),
103
+ encode: (num) => num.toString(),
107
104
  });
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
- });
112
105
  export const queryNumberValidator = getStringToNumber();
113
106
  export function queryEnumArrayValidator(enumOrValidation) {
114
107
  // Handle ZodEnum case
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));
108
+ if (enumOrValidation &&
109
+ typeof enumOrValidation === 'object' &&
110
+ '_zod' in enumOrValidation) {
111
+ return z
112
+ .codec(z.string(), z.array(enumOrValidation), {
113
+ encode: (value) => value.join(','),
114
+ decode: (value) => value.split(','),
115
+ })
116
+ .or(z.array(enumOrValidation));
120
117
  }
121
118
  // Handle array or enum-like object case
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));
119
+ const enumSchema = Array.isArray(enumOrValidation)
120
+ ? z.enum(enumOrValidation)
121
+ : z.enum(Object.values(enumOrValidation));
122
+ return z
123
+ .codec(z.string(), z.array(enumSchema), {
124
+ encode: (value) => value.join(','),
125
+ decode: (value) => value.split(','),
126
+ })
127
+ .or(z.array(enumSchema));
127
128
  }
129
+ //# sourceMappingURL=validation.js.map
@@ -1,23 +1,18 @@
1
- const DEFAUALT_MILEAGE_MATRIX = {
2
- lite: 0,
3
- standard: 0,
4
- plus: 0,
5
- unlimited: 0
6
- };
1
+ const DEFAUALT_MILEAGE_MATRIX = { lite: 0, standard: 0, plus: 0, unlimited: 0 };
7
2
  export const DEFAULT_MATRIX = {
8
3
  plan1: DEFAUALT_MILEAGE_MATRIX,
9
4
  plan12: DEFAUALT_MILEAGE_MATRIX,
10
5
  plan24: DEFAUALT_MILEAGE_MATRIX,
11
6
  plan36: DEFAUALT_MILEAGE_MATRIX,
12
7
  plan60: DEFAUALT_MILEAGE_MATRIX,
13
- planWeekly: DEFAUALT_MILEAGE_MATRIX
8
+ planWeekly: DEFAUALT_MILEAGE_MATRIX,
14
9
  };
15
10
  export const FLUX_MIN_TAKE = 200;
16
11
  const EMPTY_MILEAGE_PACKAGES = {
17
12
  lite: 0,
18
13
  standard: 0,
19
14
  plus: 0,
20
- unlimited: 0
15
+ unlimited: 0,
21
16
  };
22
17
  export const EMPTY_FLUX_PRICING_MATRIX_CONTROLLER = {
23
18
  plan60: 0,
@@ -27,7 +22,7 @@ export const EMPTY_FLUX_PRICING_MATRIX_CONTROLLER = {
27
22
  plan1: 0,
28
23
  planWeekly: 0,
29
24
  add: EMPTY_MILEAGE_PACKAGES,
30
- excessMileage: 0
25
+ excessMileage: 0,
31
26
  };
32
27
  export const EMPTY_FLUX_START_FEE_MATRIX_CONTROLLER = {
33
28
  plan60: EMPTY_MILEAGE_PACKAGES,
@@ -35,7 +30,7 @@ export const EMPTY_FLUX_START_FEE_MATRIX_CONTROLLER = {
35
30
  plan24: EMPTY_MILEAGE_PACKAGES,
36
31
  plan12: EMPTY_MILEAGE_PACKAGES,
37
32
  plan1: EMPTY_MILEAGE_PACKAGES,
38
- planWeekly: EMPTY_MILEAGE_PACKAGES
33
+ planWeekly: EMPTY_MILEAGE_PACKAGES,
39
34
  };
40
35
  export const EMPTY_ULTRA_TIERS = {
41
36
  tier1: 0,
@@ -52,7 +47,7 @@ export const EMPTY_ULTRA_TIERS = {
52
47
  tier12: 0,
53
48
  tier13: 0,
54
49
  tier14: 0,
55
- tier15: 0
50
+ tier15: 0,
56
51
  };
57
52
  export const EMPTY_MATRIX = {
58
53
  plan60: EMPTY_MILEAGE_PACKAGES,
@@ -60,49 +55,50 @@ export const EMPTY_MATRIX = {
60
55
  plan24: EMPTY_MILEAGE_PACKAGES,
61
56
  plan12: EMPTY_MILEAGE_PACKAGES,
62
57
  plan1: EMPTY_MILEAGE_PACKAGES,
63
- planWeekly: EMPTY_MILEAGE_PACKAGES
58
+ planWeekly: EMPTY_MILEAGE_PACKAGES,
64
59
  };
65
60
  /**
66
61
  * Matrix representing the dealership's take in percentages
67
62
  *
68
63
  * @see https://docs.google.com/spreadsheets/d/1lYYMdQgnzG53lCGf_dKJY9pEue5suJuo3O3-zegIOT0/edit#gid=819271234
69
- */ export const HOST_MATRIX_COEFFICIENTS = {
64
+ */
65
+ export const HOST_MATRIX_COEFFICIENTS = {
70
66
  plan60: {
71
67
  lite: 0.8,
72
68
  standard: 0.9,
73
69
  plus: 1,
74
- unlimited: 1.25
70
+ unlimited: 1.25,
75
71
  },
76
72
  plan36: {
77
73
  lite: 1,
78
74
  standard: 1.1,
79
75
  plus: 1.2,
80
- unlimited: 1.45
76
+ unlimited: 1.45,
81
77
  },
82
78
  plan24: {
83
79
  lite: 1.1,
84
80
  standard: 1.2,
85
81
  plus: 1.3,
86
- unlimited: 1.55
82
+ unlimited: 1.55,
87
83
  },
88
84
  plan12: {
89
85
  lite: 1.2,
90
86
  standard: 1.3,
91
87
  plus: 1.4,
92
- unlimited: 1.65
88
+ unlimited: 1.65,
93
89
  },
94
90
  plan1: {
95
91
  lite: 0,
96
92
  standard: 0,
97
93
  plus: 0,
98
- unlimited: 0
94
+ unlimited: 0,
99
95
  },
100
96
  planWeekly: {
101
97
  lite: 0,
102
98
  standard: 0,
103
99
  plus: 0,
104
- unlimited: 0
105
- }
100
+ unlimited: 0,
101
+ },
106
102
  };
107
103
  export const ULTRA_HOST_TIERS_PRICING = {
108
104
  tier1: 800,
@@ -119,7 +115,7 @@ export const ULTRA_HOST_TIERS_PRICING = {
119
115
  tier12: 8500,
120
116
  tier13: 10500,
121
117
  tier14: 12800,
122
- tier15: 15000
118
+ tier15: 15000,
123
119
  };
124
120
  export const ULTRA_FLUX_TIERS_PRICING = {
125
121
  tier1: 999,
@@ -136,10 +132,11 @@ export const ULTRA_FLUX_TIERS_PRICING = {
136
132
  tier12: 9999,
137
133
  tier13: 12599,
138
134
  tier14: 14999,
139
- tier15: 17999
135
+ tier15: 17999,
140
136
  };
141
137
  export const HOST_EXCESS_MILEAGE_COEFFICIENT = 0.00048;
142
138
  export const MAX_HOST_EXCESS_MILEAGE = 4;
143
139
  export const MIN_HOST_EXCESS_MILEAGE = 0.52;
144
140
  export const MAX_FLUX_EXCESS_MILEAGE = 5;
145
141
  export const MIN_FLUX_EXCESS_MILEAGE = 0.65;
142
+ //# sourceMappingURL=constants.js.map