@driveflux/api-functions 0.0.7-next.3 → 0.0.7-next.30

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 (95) hide show
  1. package/dist/auth/confirm.js +24 -29
  2. package/dist/auth/emails.js +12 -13
  3. package/dist/auth/formatter.js +5 -5
  4. package/dist/auth/otp.js +66 -50
  5. package/dist/auth/register.d.ts +1 -1
  6. package/dist/auth/register.js +44 -36
  7. package/dist/auth/register.js.map +1 -1
  8. package/dist/auth/tokens.js +58 -55
  9. package/dist/auth/verifications.js +53 -52
  10. package/dist/constants.js +0 -1
  11. package/dist/mailjet/calls/manage-contacts-in-list.d.ts +2 -2
  12. package/dist/mailjet/calls/manage-contacts-in-list.d.ts.map +1 -1
  13. package/dist/mailjet/calls/manage-contacts-in-list.js +7 -8
  14. package/dist/mailjet/calls/manage-contacts-in-list.js.map +1 -1
  15. package/dist/mailjet/calls/manage-subscription-status.d.ts +2 -2
  16. package/dist/mailjet/calls/manage-subscription-status.d.ts.map +1 -1
  17. package/dist/mailjet/calls/manage-subscription-status.js +6 -7
  18. package/dist/mailjet/calls/manage-subscription-status.js.map +1 -1
  19. package/dist/mailjet/calls/request-service.d.ts +1 -1
  20. package/dist/mailjet/calls/request-service.d.ts.map +1 -1
  21. package/dist/mailjet/calls/request-service.js +7 -6
  22. package/dist/mailjet/refresh-email-preferences.js +11 -12
  23. package/dist/mailjet/set-contact.d.ts +2 -2
  24. package/dist/mailjet/set-contact.d.ts.map +1 -1
  25. package/dist/mailjet/set-contact.js +14 -15
  26. package/dist/mailjet/set-contact.js.map +1 -1
  27. package/dist/mailjet/types.d.ts +2 -2
  28. package/dist/mailjet/types.d.ts.map +1 -1
  29. package/dist/mailjet/types.js +1 -2
  30. package/dist/mailjet/utils/convert-to-array.d.ts +1 -1
  31. package/dist/mailjet/utils/convert-to-array.d.ts.map +1 -1
  32. package/dist/mailjet/utils/convert-to-array.js +8 -6
  33. package/dist/mailjet/utils/extract-email-preferences.d.ts +1 -1
  34. package/dist/mailjet/utils/extract-email-preferences.d.ts.map +1 -1
  35. package/dist/mailjet/utils/extract-email-preferences.js +14 -15
  36. package/dist/mailjet/utils/lists.js +7 -8
  37. package/dist/mailjet/utils/update-email-references.d.ts +2 -2
  38. package/dist/mailjet/utils/update-email-references.d.ts.map +1 -1
  39. package/dist/mailjet/utils/update-email-references.js +16 -15
  40. package/dist/mailjet/utils/update-email-references.js.map +1 -1
  41. package/dist/notion/client.js +22 -19
  42. package/dist/notion/helpful.js +6 -9
  43. package/dist/notion/schemas/block.js +42 -48
  44. package/dist/notion/schemas/common.js +9 -14
  45. package/dist/notion/schemas/database.js +62 -60
  46. package/dist/notion/schemas/emoji.js +1 -2
  47. package/dist/notion/schemas/file.js +9 -9
  48. package/dist/notion/schemas/kb.js +5 -6
  49. package/dist/notion/schemas/page.js +72 -61
  50. package/dist/notion/schemas/parent.js +4 -5
  51. package/dist/notion/schemas/user.js +18 -19
  52. package/dist/reservation/agree.d.ts +1 -1
  53. package/dist/reservation/agree.d.ts.map +1 -1
  54. package/dist/reservation/agree.js +6 -7
  55. package/dist/reservation/checks.d.ts +1 -1
  56. package/dist/reservation/checks.d.ts.map +1 -1
  57. package/dist/reservation/checks.js +3 -4
  58. package/dist/reservation/display-vehicle.js +65 -71
  59. package/dist/reservation/display-vehicle.js.map +1 -1
  60. package/dist/reservation/fetch-or-create.d.ts +1 -1
  61. package/dist/reservation/fetch-or-create.d.ts.map +1 -1
  62. package/dist/reservation/fetch-or-create.js +51 -55
  63. package/dist/reservation/fetch-or-create.js.map +1 -1
  64. package/dist/reservation/invoice.d.ts +3 -2
  65. package/dist/reservation/invoice.d.ts.map +1 -1
  66. package/dist/reservation/invoice.js +64 -76
  67. package/dist/reservation/invoice.js.map +1 -1
  68. package/dist/reservation/payer.d.ts +1 -1
  69. package/dist/reservation/payer.d.ts.map +1 -1
  70. package/dist/reservation/payer.js +5 -6
  71. package/dist/reservation/reserve.d.ts +1 -1
  72. package/dist/reservation/reserve.d.ts.map +1 -1
  73. package/dist/reservation/reserve.js +8 -9
  74. package/dist/reservation/reserve.js.map +1 -1
  75. package/dist/reservation/types.js +1 -2
  76. package/dist/reservation/vehicle.d.ts +1 -1
  77. package/dist/reservation/vehicle.d.ts.map +1 -1
  78. package/dist/reservation/vehicle.js +15 -18
  79. package/dist/reservation/vehicle.js.map +1 -1
  80. package/dist/slack.d.ts +2 -2
  81. package/dist/slack.d.ts.map +1 -1
  82. package/dist/slack.js +24 -29
  83. package/dist/validation.d.ts +4 -4
  84. package/dist/validation.d.ts.map +1 -1
  85. package/dist/validation.js +77 -71
  86. package/dist/validation.js.map +1 -1
  87. package/dist/vehicle/vehicle-pricing/constants.d.ts +1 -1
  88. package/dist/vehicle/vehicle-pricing/constants.d.ts.map +1 -1
  89. package/dist/vehicle/vehicle-pricing/constants.js +22 -19
  90. package/dist/vehicle/vehicle-pricing/index.d.ts +1 -1
  91. package/dist/vehicle/vehicle-pricing/index.d.ts.map +1 -1
  92. package/dist/vehicle/vehicle-pricing/index.js +30 -44
  93. package/dist/vehicle/vehicle-pricing/index.js.map +1 -1
  94. package/dist/vehicle/vehicle-pricing/types.js +1 -2
  95. package/package.json +21 -21
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) => channel ? slackBlocks.get(channel) : slackBlocks;
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
- export function slackLater(blocks, channel) {
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
- else {
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: [...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
@@ -19,8 +19,8 @@ export declare const addressValidation: z.ZodObject<{
19
19
  postalCode: z.ZodString;
20
20
  country: z.ZodString;
21
21
  }, z.core.$strip>;
22
- export declare const getIsoDatetimeToDate: (dateValidation?: ZodDate) => ZodCodec<z.ZodISODateTime, ZodDate>;
23
- export declare const dateValidation: ZodCodec<z.ZodISODateTime, ZodDate>;
22
+ export declare const getIsoDatetimeToDate: (dateValidation?: ZodDate) => ZodCodec<z.ZodString, ZodDate>;
23
+ export declare const dateValidation: ZodCodec<z.ZodString, ZodDate>;
24
24
  export declare const enhancedImageValidation: z.ZodObject<{
25
25
  default: z.ZodString;
26
26
  blurBase64: z.ZodOptional<z.ZodString>;
@@ -54,8 +54,8 @@ export declare const documentFileValidation: z.ZodObject<{
54
54
  }>>>;
55
55
  mimeType: z.ZodOptional<z.ZodString>;
56
56
  uploaded: z.ZodDefault<z.ZodBoolean>;
57
- createdAt: z.ZodOptional<z.ZodNullable<ZodCodec<z.ZodISODateTime, ZodDate>>>;
58
- updatedAt: z.ZodOptional<z.ZodNullable<ZodCodec<z.ZodISODateTime, ZodDate>>>;
57
+ createdAt: z.ZodOptional<z.ZodNullable<ZodCodec<z.ZodString, ZodDate>>>;
58
+ updatedAt: z.ZodOptional<z.ZodNullable<ZodCodec<z.ZodString, ZodDate>>>;
59
59
  metadata: z.ZodOptional<z.ZodNullable<z.ZodObject<{}, z.core.$catchall<ZodUnion<readonly [z.ZodString, ZodNumber, z.ZodBoolean, ZodArray<z.ZodString>, ZodArray<ZodNumber>, ZodArray<z.ZodBoolean>, z.ZodNull, z.ZodUndefined]>>>>>;
60
60
  }, z.core.$strip>;
61
61
  export declare const queryBooleanValidator: ZodCodec<z.ZodString, z.ZodBoolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EACN,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,QAAQ,EAEb,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,CAAC,EACD,MAAM,KAAK,CAAA;AAEZ,eAAO,MAAM,yBAAyB,GACrC,UAAU,QAAQ,CAAC,OAAO,CAAC,KACzB,cAAc,CAAC,KAAK,CAatB,CAAA;AAED,eAAO,MAAM,uBAAuB,GACnC,UAAU,SAAS,MAAM,EACzB,sBAAsB,SAAS,CAAC,CAAC,WAAW,EAE5C,QAAQ,UAAU,EAClB,yBAAyB,sBAAsB;;gCAiB9C,CAAA;AAEF,eAAO,MAAM,uBAAuB,aAAoB,CAAA;AAExD,eAAO,MAAM,kBAAkB,6LAa7B,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;iBAe5B,CAAA;AAEF,eAAO,MAAM,oBAAoB,GAAI,iBAAiB,OAAO,wCAI1D,CAAA;AAEH,eAAO,MAAM,cAAc,qCAAyB,CAAA;AAEpD,eAAO,MAAM,uBAAuB;;;;;;;;iBAQlC,CAAA;AAEF,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,MAAM,EAAE,GAAG,CAAC,2GACnC,CAAA;AAEvB,eAAO,MAAM,iBAAiB;QACW,CAAC,CAAC,SAAS;;;;;;;iBAWlD,CAAA;AAEF,eAAO,MAAM,sBAAsB;QACM,CAAC,CAAC,SAAS;;;;;;;;;;;;;;;;iBAalD,CAAA;AAEF,eAAO,MAAM,qBAAqB,qCAGhC,CAAA;AAOF,eAAO,MAAM,oBAAoB,kCAAsB,CAAA;AAEvD,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,EACxE,SAAS,EAAE,CAAC,GACV,QAAQ,CACV;IACC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CAC3C,CACD,CAAA;AACD,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,EACtE,OAAO,EAAE,CAAC,GACR,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAChF,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,EACtE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,GACpB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EACN,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,QAAQ,EAEb,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,CAAC,EACD,MAAM,KAAK,CAAA;AAEZ,eAAO,MAAM,yBAAyB,GACrC,UAAU,QAAQ,CAAC,OAAO,CAAC,KACzB,cAAc,CAAC,KAAK,CAatB,CAAA;AAED,eAAO,MAAM,uBAAuB,GACnC,UAAU,SAAS,MAAM,EACzB,sBAAsB,SAAS,CAAC,CAAC,WAAW,EAE5C,QAAQ,UAAU,EAClB,yBAAyB,sBAAsB;;gCAiB9C,CAAA;AAEF,eAAO,MAAM,uBAAuB,aAAoB,CAAA;AAExD,eAAO,MAAM,kBAAkB,6LAa7B,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;iBAe5B,CAAA;AAEF,eAAO,MAAM,oBAAoB,GAAI,iBAAiB,OAAO,mCAe1D,CAAA;AAEH,eAAO,MAAM,cAAc,gCAAyB,CAAA;AAEpD,eAAO,MAAM,uBAAuB;;;;;;;;iBAQlC,CAAA;AAEF,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,MAAM,EAAE,GAAG,CAAC,2GACnC,CAAA;AAEvB,eAAO,MAAM,iBAAiB;QACW,CAAC,CAAC,SAAS;;;;;;;iBAWlD,CAAA;AAEF,eAAO,MAAM,sBAAsB;QACM,CAAC,CAAC,SAAS;;;;;;;;;;;;;;;;iBAalD,CAAA;AAEF,eAAO,MAAM,qBAAqB,qCAGhC,CAAA;AAOF,eAAO,MAAM,oBAAoB,kCAAsB,CAAA;AAEvD,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,EACxE,SAAS,EAAE,CAAC,GACV,QAAQ,CACV;IACC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CAC3C,CACD,CAAA;AACD,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,EACtE,OAAO,EAAE,CAAC,GACR,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAChF,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,EACtE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,GACpB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA"}
@@ -1,34 +1,32 @@
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
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
- });
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,33 @@ 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.string(), dateValidation ?? z.date(), {
53
+ decode: (isoString)=>new Date(isoString),
54
+ encode: (date)=>date.toISOString()
55
+ }).refine((d)=>{
56
+ const date = new Date(d);
57
+ return !Number.isNaN(date.getTime());
58
+ }, {
59
+ message: 'Invalid date',
60
+ path: [
61
+ 'date'
62
+ ]
63
+ });
61
64
  export const dateValidation = getIsoDatetimeToDate();
62
65
  export const enhancedImageValidation = z.object({
63
66
  default: z.string(),
@@ -66,64 +69,67 @@ export const enhancedImageValidation = z.object({
66
69
  small: z.string().optional(),
67
70
  medium: z.string().optional(),
68
71
  large: z.string().optional(),
69
- description: z.string().optional(),
72
+ description: z.string().optional()
70
73
  });
71
- export const getObjectValidation = (o) => z.enum([o]).optional();
74
+ export const getObjectValidation = (o)=>z.enum([
75
+ o
76
+ ]).optional();
72
77
  export const contactValidation = z.object({
73
78
  id: z.string().optional(),
74
79
  firstName: z.string(),
75
80
  lastName: z.string(),
76
81
  jobTitle: z.string().optional(),
77
- email: z
78
- .string()
79
- .email()
80
- .optional()
81
- .transform((email) => email?.toLowerCase().trim()),
82
+ email: z.string().email().optional().transform((email)=>email?.toLowerCase().trim()),
82
83
  phoneNumber: z.string().optional(),
83
- remarks: z.string().default(''),
84
+ remarks: z.string().default('')
84
85
  });
85
86
  export const documentFileValidation = z.object({
86
87
  id: z.string().optional(),
87
88
  name: z.string(),
88
89
  description: z.string().nullable().optional(),
89
90
  url: z.string(),
90
- fileType: z.preprocess((f) => (typeof f === 'string' ? f.toLowerCase() : f), z.enum(['jpg', 'jpeg', 'png', 'pdf', 'image']).optional()),
91
+ fileType: z.preprocess((f)=>typeof f === 'string' ? f.toLowerCase() : f, z.enum([
92
+ 'jpg',
93
+ 'jpeg',
94
+ 'png',
95
+ 'pdf',
96
+ 'image'
97
+ ]).optional()),
91
98
  mimeType: z.string().optional(),
92
99
  uploaded: z.boolean().default(true),
93
100
  createdAt: dateValidation.nullable().optional(),
94
101
  updatedAt: dateValidation.nullable().optional(),
95
- metadata: metadataValidation.nullable().optional(),
102
+ metadata: metadataValidation.nullable().optional()
96
103
  });
97
104
  export const queryBooleanValidator = z.stringbool({
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(),
105
+ truthy: [
106
+ '1',
107
+ 'true',
108
+ 'yes'
109
+ ],
110
+ falsy: [
111
+ '0',
112
+ 'false',
113
+ 'no'
114
+ ]
104
115
  });
116
+ const getStringToNumber = (numberValidation)=>z.codec(z.string().regex(z.regexes.number), numberValidation ?? z.number(), {
117
+ decode: (str)=>Number.parseFloat(str),
118
+ encode: (num)=>num.toString()
119
+ });
105
120
  export const queryNumberValidator = getStringToNumber();
106
121
  export function queryEnumArrayValidator(enumOrValidation) {
107
122
  // Handle ZodEnum case
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));
123
+ if (enumOrValidation && typeof enumOrValidation === 'object' && '_zod' in enumOrValidation) {
124
+ return z.codec(z.string(), z.array(enumOrValidation), {
125
+ encode: (value)=>value.join(','),
126
+ decode: (value)=>value.split(',')
127
+ }).or(z.array(enumOrValidation));
117
128
  }
118
129
  // Handle array or enum-like object case
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));
130
+ const enumSchema = Array.isArray(enumOrValidation) ? z.enum(enumOrValidation) : z.enum(Object.values(enumOrValidation));
131
+ return z.codec(z.string(), z.array(enumSchema), {
132
+ encode: (value)=>value.join(','),
133
+ decode: (value)=>value.split(',')
134
+ }).or(z.array(enumSchema));
128
135
  }
129
- //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
@@ -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,SAAS,CAAA;AAIhB,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
+ {"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 = { lite: 0, standard: 0, plus: 0, unlimited: 0 };
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,SAAS,CAAA;AAE3D,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"}
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"}