@driveflux/api-functions 1.0.135 → 1.0.136

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 (48) hide show
  1. package/dist/auth/confirm.js +24 -24
  2. package/dist/auth/consent.js +22 -27
  3. package/dist/auth/emails.js +12 -13
  4. package/dist/auth/formatter.js +5 -5
  5. package/dist/auth/otp.js +66 -50
  6. package/dist/auth/register.js +48 -35
  7. package/dist/auth/tokens.js +58 -55
  8. package/dist/auth/verifications.js +53 -52
  9. package/dist/constants.js +0 -1
  10. package/dist/create-logger.js +1 -2
  11. package/dist/mailjet/calls/manage-contacts-in-list.js +5 -6
  12. package/dist/mailjet/calls/manage-subscription-status.js +4 -5
  13. package/dist/mailjet/calls/request-service.js +7 -6
  14. package/dist/mailjet/refresh-email-preferences.js +11 -12
  15. package/dist/mailjet/set-contact.js +11 -12
  16. package/dist/mailjet/types.js +1 -2
  17. package/dist/mailjet/utils/convert-to-array.js +8 -6
  18. package/dist/mailjet/utils/extract-email-preferences.js +14 -15
  19. package/dist/mailjet/utils/lists.js +7 -8
  20. package/dist/mailjet/utils/update-email-references.js +16 -15
  21. package/dist/notion/client.js +22 -19
  22. package/dist/notion/helpful.js +6 -9
  23. package/dist/notion/schemas/block.js +42 -48
  24. package/dist/notion/schemas/common.js +9 -14
  25. package/dist/notion/schemas/database.js +62 -60
  26. package/dist/notion/schemas/emoji.js +1 -2
  27. package/dist/notion/schemas/file.js +9 -9
  28. package/dist/notion/schemas/kb.js +5 -6
  29. package/dist/notion/schemas/page.js +72 -61
  30. package/dist/notion/schemas/parent.js +4 -5
  31. package/dist/notion/schemas/user.js +18 -19
  32. package/dist/reservation/agree.js +2 -3
  33. package/dist/reservation/checks.js +3 -4
  34. package/dist/reservation/display-vehicle.js +73 -83
  35. package/dist/reservation/ensure-user-billing-address.js +9 -11
  36. package/dist/reservation/fetch-or-create.js +49 -56
  37. package/dist/reservation/invoice.js +77 -88
  38. package/dist/reservation/payer.js +5 -6
  39. package/dist/reservation/payment-intent-sync.js +4 -6
  40. package/dist/reservation/reserve.js +3 -4
  41. package/dist/reservation/types.js +1 -2
  42. package/dist/reservation/vehicle.js +13 -16
  43. package/dist/slack.js +24 -29
  44. package/dist/validation.js +77 -79
  45. package/dist/vehicle/vehicle-pricing/constants.js +22 -19
  46. package/dist/vehicle/vehicle-pricing/index.js +28 -42
  47. package/dist/vehicle/vehicle-pricing/types.js +1 -2
  48. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
- import { notionDatabasePropertyCheckboxSchema, notionDatabasePropertyCreatedBySchema, notionDatabasePropertyCreatedTimeSchema, notionDatabasePropertyDateSchema, notionDatabasePropertyFormulaSchema, notionDatabasePropertyLastEditedBySchema, notionDatabasePropertyLastEditedTimeSchema, notionDatabasePropertyMultiSelectSchema, notionDatabasePropertyNumberSchema, notionDatabasePropertyRelationSchema, notionDatabasePropertySelectSchema, notionDatabasePropertyStatusSchema, notionDatabasePropertyTitleSchema, notionDatabasePropertyUniqueIdSchema, notionDatabaseSchema, } from './database.js';
3
- import { notionPagePropertyCheckboxSchema, notionPagePropertyCreatedBySchema, notionPagePropertyCreatedTimeSchema, notionPagePropertyDateSchema, notionPagePropertyFormulaSchema, notionPagePropertyLastEditedBySchema, notionPagePropertyLastEditedTimeSchema, notionPagePropertyMultiSelectSchema, notionPagePropertyNumberSchema, notionPagePropertyRelationSchema, notionPagePropertyRichTextSchema, notionPagePropertySelectSchema, notionPagePropertyStatusSchema, notionPagePropertyTitleSchema, notionPagePropertyUniqueIdSchema, notionPageSchema, notionPagesSchema, } from './page.js';
2
+ import { notionDatabasePropertyCheckboxSchema, notionDatabasePropertyCreatedBySchema, notionDatabasePropertyCreatedTimeSchema, notionDatabasePropertyDateSchema, notionDatabasePropertyFormulaSchema, notionDatabasePropertyLastEditedBySchema, notionDatabasePropertyLastEditedTimeSchema, notionDatabasePropertyMultiSelectSchema, notionDatabasePropertyNumberSchema, notionDatabasePropertyRelationSchema, notionDatabasePropertySelectSchema, notionDatabasePropertyStatusSchema, notionDatabasePropertyTitleSchema, notionDatabasePropertyUniqueIdSchema, notionDatabaseSchema } from './database.js';
3
+ import { notionPagePropertyCheckboxSchema, notionPagePropertyCreatedBySchema, notionPagePropertyCreatedTimeSchema, notionPagePropertyDateSchema, notionPagePropertyFormulaSchema, notionPagePropertyLastEditedBySchema, notionPagePropertyLastEditedTimeSchema, notionPagePropertyMultiSelectSchema, notionPagePropertyNumberSchema, notionPagePropertyRelationSchema, notionPagePropertyRichTextSchema, notionPagePropertySelectSchema, notionPagePropertyStatusSchema, notionPagePropertyTitleSchema, notionPagePropertyUniqueIdSchema, notionPageSchema, notionPagesSchema } from './page.js';
4
4
  export const knowledgeBaseRetrieveDatabaseSchema = notionDatabaseSchema(z.object({
5
5
  Title: notionDatabasePropertyTitleSchema,
6
6
  Status: notionDatabasePropertyStatusSchema,
@@ -22,7 +22,7 @@ export const knowledgeBaseRetrieveDatabaseSchema = notionDatabaseSchema(z.object
22
22
  'Section Slug': notionDatabasePropertyFormulaSchema,
23
23
  'Topic Slug': notionDatabasePropertyFormulaSchema,
24
24
  Helpful: notionDatabasePropertyNumberSchema,
25
- Unhelpful: notionDatabasePropertyNumberSchema,
25
+ Unhelpful: notionDatabasePropertyNumberSchema
26
26
  }));
27
27
  export const knowledgeBaseRetrievePageSchema = notionPageSchema(z.object({
28
28
  Title: notionPagePropertyTitleSchema,
@@ -46,7 +46,7 @@ export const knowledgeBaseRetrievePageSchema = notionPageSchema(z.object({
46
46
  'Section Slug': notionPagePropertyFormulaSchema,
47
47
  'Topic Slug': notionPagePropertyFormulaSchema,
48
48
  Helpful: notionPagePropertyNumberSchema,
49
- Unhelpful: notionPagePropertyNumberSchema,
49
+ Unhelpful: notionPagePropertyNumberSchema
50
50
  }));
51
51
  export const knowledgeBaseQueryDatabaseSchema = notionPagesSchema(z.object({
52
52
  Title: notionPagePropertyTitleSchema,
@@ -69,6 +69,5 @@ export const knowledgeBaseQueryDatabaseSchema = notionPagesSchema(z.object({
69
69
  'Section Slug': notionPagePropertyFormulaSchema,
70
70
  'Topic Slug': notionPagePropertyFormulaSchema,
71
71
  Helpful: notionPagePropertyNumberSchema,
72
- Unhelpful: notionPagePropertyNumberSchema,
72
+ Unhelpful: notionPagePropertyNumberSchema
73
73
  }));
74
- //# sourceMappingURL=kb.js.map
@@ -1,78 +1,83 @@
1
1
  import { z } from 'zod';
2
2
  import { notionRichTextSchema } from './block.js';
3
- import { commonPropertyValues, notionCommonColorEnum, notionDateFormat, notionDateSchema, notionTimeFormat, } from './common.js';
3
+ import { commonPropertyValues, notionCommonColorEnum, notionDateFormat, notionDateSchema, notionTimeFormat } from './common.js';
4
4
  import { notionEmojiSchema } from './emoji.js';
5
5
  import { notionFileSchema } from './file.js';
6
6
  import { notionDatabaseParentSchema } from './parent.js';
7
7
  import { notionPartialUserSchema, notionUserSchema } from './user.js';
8
8
  export const notionPagePropertyCheckboxSchema = z.object({
9
9
  ...commonPropertyValues('checkbox'),
10
- checkbox: z.boolean(),
10
+ checkbox: z.boolean()
11
11
  });
12
12
  export const notionPagePropertyCreatedBySchema = z.object({
13
13
  ...commonPropertyValues('created_by'),
14
- created_by: notionUserSchema,
14
+ created_by: notionUserSchema
15
15
  });
16
16
  export const notionPagePropertyCreatedTimeSchema = z.object({
17
17
  ...commonPropertyValues('created_time'),
18
- created_time: notionTimeFormat,
18
+ created_time: notionTimeFormat
19
19
  });
20
20
  export const notionPagePropertyDateSchema = z.object({
21
21
  ...commonPropertyValues('date'),
22
- date: notionDateSchema.nullable(),
22
+ date: notionDateSchema.nullable()
23
23
  });
24
24
  export const notionPagePropertyEmailSchema = z.object({
25
25
  ...commonPropertyValues('email'),
26
- email: z.string(),
26
+ email: z.string()
27
27
  });
28
28
  export const notionPagePropertyFilesSchema = z.object({
29
29
  ...commonPropertyValues('files'),
30
- files: z.array(notionFileSchema),
30
+ files: z.array(notionFileSchema)
31
31
  });
32
32
  export const notionPagePropertyFormulaSchema = z.object({
33
33
  ...commonPropertyValues('formula'),
34
34
  formula: z.object({
35
- type: z.enum(['boolean', 'date', 'number', 'string']),
35
+ type: z.enum([
36
+ 'boolean',
37
+ 'date',
38
+ 'number',
39
+ 'string'
40
+ ]),
36
41
  boolean: z.boolean().optional(),
37
42
  date: notionDateFormat.optional(),
38
43
  number: z.number().optional(),
39
- string: z.string().optional(),
40
- }),
44
+ string: z.string().optional()
45
+ })
41
46
  });
42
47
  export const notionPagePropertyLastEditedBySchema = z.object({
43
48
  ...commonPropertyValues('last_edited_by'),
44
- last_edited_by: notionUserSchema,
49
+ last_edited_by: notionUserSchema
45
50
  });
46
51
  export const notionPagePropertyLastEditedTimeSchema = z.object({
47
52
  ...commonPropertyValues('last_edited_time'),
48
- last_edited_time: notionTimeFormat,
53
+ last_edited_time: notionTimeFormat
49
54
  });
50
55
  export const notionPagePropertyMultiSelectSchema = z.object({
51
56
  ...commonPropertyValues('multi_select'),
52
57
  multi_select: z.array(z.object({
53
58
  id: z.string(),
54
59
  name: z.string(),
55
- color: notionCommonColorEnum,
56
- })),
60
+ color: notionCommonColorEnum
61
+ }))
57
62
  });
58
63
  export const notionPagePropertyNumberSchema = z.object({
59
64
  ...commonPropertyValues('number'),
60
- number: z.number().nullable(),
65
+ number: z.number().nullable()
61
66
  });
62
67
  export const notionPagePropertyPeopleSchema = z.object({
63
68
  ...commonPropertyValues('people'),
64
- people: z.array(notionUserSchema),
69
+ people: z.array(notionUserSchema)
65
70
  });
66
71
  export const notionPagePropertyPhoneNumberSchema = z.object({
67
72
  ...commonPropertyValues('phone_number'),
68
- phone_number: z.string(),
73
+ phone_number: z.string()
69
74
  });
70
75
  export const notionPagePropertyRelationSchema = z.object({
71
76
  ...commonPropertyValues('relation'),
72
77
  relation: z.array(z.object({
73
- id: z.string(),
78
+ id: z.string()
74
79
  })),
75
- has_more: z.boolean(),
80
+ has_more: z.boolean()
76
81
  });
77
82
  export const notionPagePropertyRollupSchema = z.object({
78
83
  ...commonPropertyValues('rollup'),
@@ -106,76 +111,82 @@ export const notionPagePropertyRollupSchema = z.object({
106
111
  'show_unique',
107
112
  'sum',
108
113
  'unchecked',
109
- 'unique',
114
+ 'unique'
110
115
  ]),
111
- type: z.enum(['array', 'date', 'incomplete', 'number', 'unsupported']),
112
- }),
116
+ type: z.enum([
117
+ 'array',
118
+ 'date',
119
+ 'incomplete',
120
+ 'number',
121
+ 'unsupported'
122
+ ])
123
+ })
113
124
  });
114
125
  export const notionPagePropertyRichTextSchema = z.object({
115
126
  ...commonPropertyValues('rich_text'),
116
- rich_text: z.array(notionRichTextSchema),
127
+ rich_text: z.array(notionRichTextSchema)
117
128
  });
118
129
  export const notionPagePropertySelectSchema = z.object({
119
130
  ...commonPropertyValues('select'),
120
- select: z
121
- .object({
131
+ select: z.object({
122
132
  id: z.string(),
123
133
  name: z.string(),
124
- color: notionCommonColorEnum,
125
- })
126
- .nullable(),
134
+ color: notionCommonColorEnum
135
+ }).nullable()
127
136
  });
128
137
  export const notionPagePropertyStatusSchema = z.object({
129
138
  ...commonPropertyValues('status'),
130
139
  status: z.object({
131
140
  id: z.string(),
132
141
  name: z.string(),
133
- color: notionCommonColorEnum,
134
- }),
142
+ color: notionCommonColorEnum
143
+ })
135
144
  });
136
145
  export const notionPagePropertyTitleSchema = z.object({
137
146
  ...commonPropertyValues('title'),
138
- title: z.array(notionRichTextSchema),
147
+ title: z.array(notionRichTextSchema)
139
148
  });
140
149
  export const notionPagePropertyUrlSchema = z.object({
141
150
  ...commonPropertyValues('url'),
142
- url: z.string().url().nullable(),
151
+ url: z.string().url().nullable()
143
152
  });
144
153
  export const notionPagePropertyUniqueIdSchema = z.object({
145
154
  ...commonPropertyValues('unique_id'),
146
155
  unique_id: z.object({
147
156
  number: z.number(),
148
- prefix: z.string().nullable().optional(),
149
- }),
157
+ prefix: z.string().nullable().optional()
158
+ })
150
159
  });
151
160
  export const notionPagePropertyVerificationSchema = z.object({
152
161
  ...commonPropertyValues('verification'),
153
162
  verification: z.object({
154
- state: z.enum(['verified', 'unverified']),
163
+ state: z.enum([
164
+ 'verified',
165
+ 'unverified'
166
+ ]),
155
167
  verified_by: notionUserSchema.nullable(),
156
- date: notionDateSchema,
157
- }),
158
- });
159
- export const notionPageSchema = (properties) => z.object({
160
- object: z.literal('page'),
161
- id: z.string(),
162
- created_time: notionTimeFormat,
163
- created_by: notionPartialUserSchema,
164
- last_edited_time: notionTimeFormat,
165
- last_edited_by: notionPartialUserSchema,
166
- archived: z.boolean(),
167
- icon: notionFileSchema.or(notionEmojiSchema).nullable(),
168
- properties,
169
- parent: notionDatabaseParentSchema,
170
- url: z.string().url(),
171
- public_url: z.string().nullable(),
172
- });
173
- export const notionPagesSchema = (properties) => z.object({
174
- has_more: z.boolean(),
175
- next_cursor: z.string().nullable(),
176
- object: z.literal('list'),
177
- page_or_database: z.object({}),
178
- type: z.literal('page_or_database'),
179
- results: z.array(notionPageSchema(properties)),
180
- });
181
- //# sourceMappingURL=page.js.map
168
+ date: notionDateSchema
169
+ })
170
+ });
171
+ export const notionPageSchema = (properties)=>z.object({
172
+ object: z.literal('page'),
173
+ id: z.string(),
174
+ created_time: notionTimeFormat,
175
+ created_by: notionPartialUserSchema,
176
+ last_edited_time: notionTimeFormat,
177
+ last_edited_by: notionPartialUserSchema,
178
+ archived: z.boolean(),
179
+ icon: notionFileSchema.or(notionEmojiSchema).nullable(),
180
+ properties,
181
+ parent: notionDatabaseParentSchema,
182
+ url: z.string().url(),
183
+ public_url: z.string().nullable()
184
+ });
185
+ export const notionPagesSchema = (properties)=>z.object({
186
+ has_more: z.boolean(),
187
+ next_cursor: z.string().nullable(),
188
+ object: z.literal('list'),
189
+ page_or_database: z.object({}),
190
+ type: z.literal('page_or_database'),
191
+ results: z.array(notionPageSchema(properties))
192
+ });
@@ -1,18 +1,17 @@
1
1
  import { z } from 'zod';
2
2
  export const notionDatabaseParentSchema = z.object({
3
3
  type: z.literal('database_id'),
4
- database_id: z.string(),
4
+ database_id: z.string()
5
5
  });
6
6
  export const notionPageParentSchema = z.object({
7
7
  type: z.literal('page_id'),
8
- page_id: z.string(),
8
+ page_id: z.string()
9
9
  });
10
10
  export const notionWorkspaceParentSchema = z.object({
11
11
  type: z.literal('workspace'),
12
- workspace: z.literal(true),
12
+ workspace: z.literal(true)
13
13
  });
14
14
  export const notionBlockParentSchema = z.object({
15
15
  type: z.literal('block_id'),
16
- block_id: z.string(),
16
+ block_id: z.string()
17
17
  });
18
- //# sourceMappingURL=parent.js.map
@@ -1,31 +1,30 @@
1
1
  import { z } from 'zod';
2
2
  export const notionPartialUserSchema = z.object({
3
3
  object: z.literal('user'),
4
- user: z.string().optional(),
4
+ user: z.string().optional()
5
5
  });
6
6
  export const notionUserSchema = z.object({
7
7
  object: z.literal('user'),
8
8
  id: z.string(),
9
- type: z.enum(['person', 'bot']).optional(),
9
+ type: z.enum([
10
+ 'person',
11
+ 'bot'
12
+ ]).optional(),
10
13
  name: z.string().optional(),
11
14
  avatar_url: z.string().nullable().optional(),
12
15
  // type person
13
- person: z
14
- .object({
15
- email: z.string().email(),
16
- })
17
- .optional(),
16
+ person: z.object({
17
+ email: z.string().email()
18
+ }).optional(),
18
19
  // type bot
19
- bot: z
20
- .object({
21
- owner: z
22
- .object({
23
- type: z.enum(['workspace', 'user']),
24
- workspace: z.boolean(),
25
- })
26
- .optional(),
27
- workspace_name: z.string().optional(),
28
- })
29
- .optional(),
20
+ bot: z.object({
21
+ owner: z.object({
22
+ type: z.enum([
23
+ 'workspace',
24
+ 'user'
25
+ ]),
26
+ workspace: z.boolean()
27
+ }).optional(),
28
+ workspace_name: z.string().optional()
29
+ }).optional()
30
30
  });
31
- //# sourceMappingURL=user.js.map
@@ -1,7 +1,7 @@
1
1
  import { makeProblem, PROBLEM_INVALID_DATA } from '@driveflux/problem';
2
2
  import { Err, Ok } from '@driveflux/result';
3
3
  import { checkUserConsent, createConsent } from '../auth/consent.js';
4
- export const handleAgreeToTerms = async ({ agreedToTerms, subscribingUser, consentData, }) => {
4
+ export const handleAgreeToTerms = async ({ agreedToTerms, subscribingUser, consentData })=>{
5
5
  // Get consent first
6
6
  const didConsent = await checkUserConsent(subscribingUser.id);
7
7
  // All good, user has consented
@@ -18,8 +18,7 @@ export const handleAgreeToTerms = async ({ agreedToTerms, subscribingUser, conse
18
18
  ipAddress: consentData.ipAddress,
19
19
  userAgent: consentData.userAgent,
20
20
  sessionToken: consentData.sessionToken,
21
- consentType: 'terms',
21
+ consentType: 'terms'
22
22
  });
23
23
  return new Ok(subscribingUser);
24
24
  };
25
- //# sourceMappingURL=agree.js.map
@@ -1,12 +1,12 @@
1
1
  import { buildOrDefineAbility } from '@driveflux/auth/authorization';
2
- import { makeProblem, PROBLEM_CONDITION_FAILED, PROBLEM_RESOURCE_BUSY, } from '@driveflux/problem';
2
+ import { makeProblem, PROBLEM_CONDITION_FAILED, PROBLEM_RESOURCE_BUSY } from '@driveflux/problem';
3
3
  import { Err, Ok } from '@driveflux/result';
4
- export const getUserAbility = async ({ requestUser, }) => {
4
+ export const getUserAbility = async ({ requestUser })=>{
5
5
  // Check if the user can reserve
6
6
  const requestUserAbility = await buildOrDefineAbility(requestUser);
7
7
  return requestUserAbility;
8
8
  };
9
- export const checkIfVehicleIsAvailableForReservation = async (vehicle, plan, allowDelisted) => {
9
+ export const checkIfVehicleIsAvailableForReservation = async (vehicle, plan, allowDelisted)=>{
10
10
  if (!vehicle.pricing) {
11
11
  return new Err(makeProblem(PROBLEM_RESOURCE_BUSY, 'This vehicle is not available for reservation'));
12
12
  }
@@ -22,4 +22,3 @@ export const checkIfVehicleIsAvailableForReservation = async (vehicle, plan, all
22
22
  }
23
23
  return new Ok(vehicle);
24
24
  };
25
- //# sourceMappingURL=checks.js.map