@vulog/aima-business 1.2.39

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 (87) hide show
  1. package/dist/index.cjs +668 -0
  2. package/dist/index.d.cts +346 -0
  3. package/dist/index.d.mts +346 -0
  4. package/dist/index.mjs +609 -0
  5. package/package.json +42 -0
  6. package/src/addBusinessCredit.ts +31 -0
  7. package/src/addStripePayment.ts +18 -0
  8. package/src/addTripNote.test.ts +67 -0
  9. package/src/addTripNote.ts +30 -0
  10. package/src/addUserToBusiness.test.ts +74 -0
  11. package/src/addUserToBusiness.ts +49 -0
  12. package/src/archiveBusinessProfile.ts +28 -0
  13. package/src/bulkAddBusinessUsers.ts +27 -0
  14. package/src/businessDelegatedAdmin.test.ts +68 -0
  15. package/src/businessDelegatedAdmin.ts +32 -0
  16. package/src/businessOwner.test.ts +68 -0
  17. package/src/businessOwner.ts +32 -0
  18. package/src/chargeBusinessProduct.ts +31 -0
  19. package/src/createBusiness.test.ts +54 -0
  20. package/src/createBusiness.ts +23 -0
  21. package/src/createBusinessCostCenter.test.ts +61 -0
  22. package/src/createBusinessCostCenter.ts +34 -0
  23. package/src/deactivateBusinessProfile.ts +22 -0
  24. package/src/deleteBusinessCostCenter.test.ts +45 -0
  25. package/src/deleteBusinessCostCenter.ts +23 -0
  26. package/src/deleteInvitationRequest.test.ts +45 -0
  27. package/src/deleteInvitationRequest.ts +13 -0
  28. package/src/getBillingGroups.ts +9 -0
  29. package/src/getBusinessById.test.ts +47 -0
  30. package/src/getBusinessById.ts +15 -0
  31. package/src/getBusinessContacts.ts +17 -0
  32. package/src/getBusinessCostCenterById.ts +27 -0
  33. package/src/getBusinessCostCenters.ts +18 -0
  34. package/src/getBusinessInviteLink.ts +17 -0
  35. package/src/getBusinessInvoiceProducts.ts +24 -0
  36. package/src/getBusinessInvoiceTrips.ts +20 -0
  37. package/src/getBusinessInvoices.test.ts +92 -0
  38. package/src/getBusinessInvoices.ts +43 -0
  39. package/src/getBusinessPaymentDetails.ts +20 -0
  40. package/src/getBusinessProducts.ts +9 -0
  41. package/src/getBusinessTripById.ts +15 -0
  42. package/src/getBusinessUserById.ts +26 -0
  43. package/src/getBusinessUserGlobalById.ts +15 -0
  44. package/src/getBusinessUsers.test.ts +70 -0
  45. package/src/getBusinessUsers.ts +43 -0
  46. package/src/getBusinessWallet.test.ts +46 -0
  47. package/src/getBusinessWallet.ts +17 -0
  48. package/src/getBusinesses.test.ts +133 -0
  49. package/src/getBusinesses.ts +36 -0
  50. package/src/getEntityBalance.ts +17 -0
  51. package/src/getEntityProducts.ts +15 -0
  52. package/src/getEntityTrips.ts +13 -0
  53. package/src/getEntityTripsCost.ts +17 -0
  54. package/src/getInvitationRequest.test.ts +46 -0
  55. package/src/getInvitationRequest.ts +17 -0
  56. package/src/getInvoicePdf.test.ts +62 -0
  57. package/src/getInvoicePdf.ts +16 -0
  58. package/src/getInvoiceRefundNote.ts +17 -0
  59. package/src/getInvoiceRefundableAmount.ts +20 -0
  60. package/src/getOngoingTripNotes.ts +17 -0
  61. package/src/getOngoingTrips.test.ts +43 -0
  62. package/src/getOngoingTrips.ts +9 -0
  63. package/src/getStripePublishableKey.ts +9 -0
  64. package/src/getStripeSetup.ts +17 -0
  65. package/src/index.ts +58 -0
  66. package/src/inviteBusinessUser.ts +31 -0
  67. package/src/listBusinessUsersGlobal.test.ts +65 -0
  68. package/src/listBusinessUsersGlobal.ts +26 -0
  69. package/src/redeemBusinessPromoCode.ts +18 -0
  70. package/src/refundInvoice.test.ts +72 -0
  71. package/src/refundInvoice.ts +33 -0
  72. package/src/refundInvoiceAmount.ts +20 -0
  73. package/src/searchBusinessUsersByName.ts +27 -0
  74. package/src/searchBusinessUsersGlobal.ts +18 -0
  75. package/src/sendBusinessIban.ts +29 -0
  76. package/src/setInvoiceExternalPayment.ts +33 -0
  77. package/src/types.ts +163 -0
  78. package/src/updateBusiness.test.ts +65 -0
  79. package/src/updateBusiness.ts +35 -0
  80. package/src/updateBusinessCostCenter.ts +41 -0
  81. package/src/updateBusinessProfileStatus.ts +22 -0
  82. package/src/updateBusinessUserProfile.ts +51 -0
  83. package/src/updateInvoiceStatus.test.ts +54 -0
  84. package/src/updateInvoiceStatus.ts +19 -0
  85. package/tsconfig.json +9 -0
  86. package/tsdown.config.ts +8 -0
  87. package/vitest.config.ts +1 -0
package/dist/index.mjs ADDED
@@ -0,0 +1,609 @@
1
+ import { z } from "zod";
2
+ import { createPaginableOptionsSchema } from "@vulog/aima-core";
3
+ //#region src/addBusinessCredit.ts
4
+ const bodySchema$5 = z.object({ amount: z.number().min(0) });
5
+ const addBusinessCredit = async (client, businessId, body) => {
6
+ const parsedId = z.string().trim().min(1).uuid().safeParse(businessId);
7
+ if (!parsedId.success) throw new TypeError("Invalid args", { cause: parsedId.error.issues });
8
+ const result = bodySchema$5.safeParse(body);
9
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
10
+ await client.post(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${parsedId.data}/credit`, result.data);
11
+ };
12
+ //#endregion
13
+ //#region src/addStripePayment.ts
14
+ /** @deprecated */
15
+ const addStripePayment = async (client, businessId) => {
16
+ const result = z.string().trim().min(1).uuid().safeParse(businessId);
17
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
18
+ return client.post(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/stripe/businesses/${result.data}/add`).then(({ data }) => data);
19
+ };
20
+ //#endregion
21
+ //#region src/addTripNote.ts
22
+ const addTripNoteBodySchema = z.object({ content: z.string().trim().min(1) });
23
+ const addTripNote = async (client, tripId, body) => {
24
+ const tripIdResult = z.string().trim().min(1).uuid().safeParse(tripId);
25
+ const bodyResult = addTripNoteBodySchema.safeParse(body);
26
+ if (!tripIdResult.success || !bodyResult.success) throw new TypeError("Invalid args", { cause: [...tripIdResult.error?.issues ?? [], ...bodyResult.error?.issues ?? []] });
27
+ return client.post(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/trip/${tripIdResult.data}/notes`, bodyResult.data).then(({ data }) => data);
28
+ };
29
+ //#endregion
30
+ //#region src/addUserToBusiness.ts
31
+ const uuidSchema$9 = z.string().trim().min(1).uuid();
32
+ const bodySchema$4 = z.object({
33
+ email: z.string().trim().email().optional(),
34
+ emailConsent: z.boolean().optional(),
35
+ requestId: z.string().trim().min(1).uuid().optional(),
36
+ costCenterId: z.string().trim().min(1).uuid().optional()
37
+ }).optional();
38
+ const addUserToBusiness = async (client, businessId, userId, data) => {
39
+ const parsedBusinessId = uuidSchema$9.safeParse(businessId);
40
+ const parsedUserId = uuidSchema$9.safeParse(userId);
41
+ if (!parsedBusinessId.success || !parsedUserId.success) throw new TypeError("Invalid args", { cause: [...parsedBusinessId.error?.issues ?? [], ...parsedUserId.error?.issues ?? []] });
42
+ const result = bodySchema$4.safeParse(data);
43
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
44
+ return client.post(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${parsedBusinessId.data}/user/${parsedUserId.data}`, result.data ?? {}).then(({ data: d }) => d);
45
+ };
46
+ //#endregion
47
+ //#region src/archiveBusinessProfile.ts
48
+ const uuidSchema$8 = z.string().trim().min(1).uuid();
49
+ const archiveBusinessProfile = async (client, businessId, userId, profileId) => {
50
+ const parsedBusinessId = uuidSchema$8.safeParse(businessId);
51
+ const parsedUserId = uuidSchema$8.safeParse(userId);
52
+ const parsedProfileId = uuidSchema$8.safeParse(profileId);
53
+ if (!parsedBusinessId.success || !parsedUserId.success || !parsedProfileId.success) throw new TypeError("Invalid args", { cause: [
54
+ ...parsedBusinessId.error?.issues ?? [],
55
+ ...parsedUserId.error?.issues ?? [],
56
+ ...parsedProfileId.error?.issues ?? []
57
+ ] });
58
+ await client.delete(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${parsedBusinessId.data}/user/${parsedUserId.data}/profile/${parsedProfileId.data}`);
59
+ };
60
+ //#endregion
61
+ //#region src/bulkAddBusinessUsers.ts
62
+ const bulkAddSchema = z.object({
63
+ businessId: z.string().trim().min(1).uuid(),
64
+ userIds: z.array(z.string().trim().min(1).uuid()).min(1)
65
+ });
66
+ const bulkAddBusinessUsers = async (client, businessId, body) => {
67
+ const result = bulkAddSchema.safeParse({
68
+ businessId,
69
+ userIds: body.userIds
70
+ });
71
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
72
+ await client.post(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${result.data.businessId}/user/bulk`, { userIds: result.data.userIds });
73
+ };
74
+ //#endregion
75
+ //#region src/businessDelegatedAdmin.ts
76
+ const uuidSchema$7 = z.string().trim().min(1).uuid();
77
+ const setDelegatedAdmin = async (client, businessId, userId) => {
78
+ const parsedBusinessId = uuidSchema$7.safeParse(businessId);
79
+ const parsedUserId = uuidSchema$7.safeParse(userId);
80
+ if (!parsedBusinessId.success || !parsedUserId.success) throw new TypeError("Invalid args", { cause: [...parsedBusinessId.error?.issues ?? [], ...parsedUserId.error?.issues ?? []] });
81
+ await client.post(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${parsedBusinessId.data}/user/${parsedUserId.data}/delegatedAdmin`);
82
+ };
83
+ const removeDelegatedAdmin = async (client, businessId, userId) => {
84
+ const parsedBusinessId = uuidSchema$7.safeParse(businessId);
85
+ const parsedUserId = uuidSchema$7.safeParse(userId);
86
+ if (!parsedBusinessId.success || !parsedUserId.success) throw new TypeError("Invalid args", { cause: [...parsedBusinessId.error?.issues ?? [], ...parsedUserId.error?.issues ?? []] });
87
+ await client.delete(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${parsedBusinessId.data}/user/${parsedUserId.data}/delegatedAdmin`);
88
+ };
89
+ //#endregion
90
+ //#region src/businessOwner.ts
91
+ const uuidSchema$6 = z.string().trim().min(1).uuid();
92
+ const setBusinessOwner = async (client, businessId, userId) => {
93
+ const parsedBusinessId = uuidSchema$6.safeParse(businessId);
94
+ const parsedUserId = uuidSchema$6.safeParse(userId);
95
+ if (!parsedBusinessId.success || !parsedUserId.success) throw new TypeError("Invalid args", { cause: [...parsedBusinessId.error?.issues ?? [], ...parsedUserId.error?.issues ?? []] });
96
+ await client.post(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${parsedBusinessId.data}/user/${parsedUserId.data}/owner`);
97
+ };
98
+ const removeBusinessOwner = async (client, businessId, userId) => {
99
+ const parsedBusinessId = uuidSchema$6.safeParse(businessId);
100
+ const parsedUserId = uuidSchema$6.safeParse(userId);
101
+ if (!parsedBusinessId.success || !parsedUserId.success) throw new TypeError("Invalid args", { cause: [...parsedBusinessId.error?.issues ?? [], ...parsedUserId.error?.issues ?? []] });
102
+ await client.delete(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${parsedBusinessId.data}/user/${parsedUserId.data}/owner`);
103
+ };
104
+ //#endregion
105
+ //#region src/chargeBusinessProduct.ts
106
+ const bodySchema$3 = z.object({ productId: z.string().trim().min(1) });
107
+ const chargeBusinessProduct = async (client, businessId, body) => {
108
+ const parsedId = z.string().trim().min(1).uuid().safeParse(businessId);
109
+ if (!parsedId.success) throw new TypeError("Invalid args", { cause: parsedId.error.issues });
110
+ const result = bodySchema$3.safeParse(body);
111
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
112
+ await client.post(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${parsedId.data}/product`, result.data);
113
+ };
114
+ //#endregion
115
+ //#region src/createBusiness.ts
116
+ const createBusinessBodySchema = z.object({ name: z.string().trim().min(1).max(255) });
117
+ const createBusiness = async (client, body) => {
118
+ const result = createBusinessBodySchema.safeParse(body);
119
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
120
+ return client.post(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business`, result.data).then(({ data }) => data);
121
+ };
122
+ //#endregion
123
+ //#region src/createBusinessCostCenter.ts
124
+ const schema$8 = z.object({
125
+ businessId: z.string().trim().min(1).uuid(),
126
+ name: z.string().trim().min(1).max(255)
127
+ });
128
+ const createBusinessCostCenter = async (client, businessId, body) => {
129
+ const result = schema$8.safeParse({
130
+ businessId,
131
+ ...body
132
+ });
133
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
134
+ return client.post(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${result.data.businessId}/costcenter`, { name: result.data.name }).then(({ data }) => data);
135
+ };
136
+ //#endregion
137
+ //#region src/deactivateBusinessProfile.ts
138
+ const uuidSchema$5 = z.string().trim().min(1).uuid();
139
+ const deactivateBusinessProfile = async (client, businessId, profileId) => {
140
+ const parsedBusinessId = uuidSchema$5.safeParse(businessId);
141
+ const parsedProfileId = uuidSchema$5.safeParse(profileId);
142
+ if (!parsedBusinessId.success || !parsedProfileId.success) throw new TypeError("Invalid args", { cause: [...parsedBusinessId.error?.issues ?? [], ...parsedProfileId.error?.issues ?? []] });
143
+ await client.post(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${parsedBusinessId.data}/profiles/${parsedProfileId.data}/deactivate`);
144
+ };
145
+ //#endregion
146
+ //#region src/deleteBusinessCostCenter.ts
147
+ const schema$7 = z.object({
148
+ businessId: z.string().trim().min(1).uuid(),
149
+ costCenterId: z.string().trim().min(1).uuid()
150
+ });
151
+ const deleteBusinessCostCenter = async (client, businessId, costCenterId) => {
152
+ const result = schema$7.safeParse({
153
+ businessId,
154
+ costCenterId
155
+ });
156
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
157
+ await client.delete(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${result.data.businessId}/costcenter/${result.data.costCenterId}`);
158
+ };
159
+ //#endregion
160
+ //#region src/deleteInvitationRequest.ts
161
+ const deleteInvitationRequest = async (client, invitationId) => {
162
+ const result = z.string().trim().min(1).uuid().safeParse(invitationId);
163
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
164
+ await client.delete(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/invitationRequest/${result.data}`);
165
+ };
166
+ //#endregion
167
+ //#region src/getBillingGroups.ts
168
+ const getBusinessBillingGroups = async (client) => {
169
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/billing/groups`).then(({ data }) => data);
170
+ };
171
+ //#endregion
172
+ //#region src/getBusinessById.ts
173
+ const getBusinessById = async (client, businessId) => {
174
+ const result = z.string().trim().min(1).uuid().safeParse(businessId);
175
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
176
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${result.data}`).then(({ data }) => data);
177
+ };
178
+ //#endregion
179
+ //#region src/getBusinessContacts.ts
180
+ const getBusinessContacts = async (client, businessId) => {
181
+ const result = z.string().trim().min(1).uuid().safeParse(businessId);
182
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
183
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${result.data}/contacts`).then(({ data }) => data);
184
+ };
185
+ //#endregion
186
+ //#region src/getBusinessCostCenterById.ts
187
+ const schema$6 = z.object({
188
+ businessId: z.string().trim().min(1).uuid(),
189
+ costCenterId: z.string().trim().min(1).uuid()
190
+ });
191
+ const getBusinessCostCenterById = async (client, businessId, costCenterId) => {
192
+ const result = schema$6.safeParse({
193
+ businessId,
194
+ costCenterId
195
+ });
196
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
197
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${result.data.businessId}/costcenter/${result.data.costCenterId}`).then(({ data }) => data);
198
+ };
199
+ //#endregion
200
+ //#region src/getBusinessCostCenters.ts
201
+ const getBusinessCostCenters = async (client, businessId) => {
202
+ const result = z.string().trim().min(1).uuid().safeParse(businessId);
203
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
204
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${result.data}/costcenter`).then(({ data }) => data);
205
+ };
206
+ //#endregion
207
+ //#region src/getBusinesses.ts
208
+ const getBusinesses = async (client, options) => {
209
+ const resultOptions = createPaginableOptionsSchema().safeParse(options ?? {});
210
+ if (!resultOptions.success) throw new TypeError("Invalid options", { cause: resultOptions.error.issues });
211
+ const finalOptions = resultOptions.data;
212
+ const searchParams = new URLSearchParams();
213
+ searchParams.append("page", finalOptions.page.toString());
214
+ searchParams.append("size", finalOptions.pageSize.toString());
215
+ if (finalOptions.sort) searchParams.append("sort", `${finalOptions.sort.toString()},${finalOptions.sortDirection.toString()}`);
216
+ const url = `/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business?${searchParams.toString()}`;
217
+ return client.get(url).then(({ data, headers }) => ({
218
+ data,
219
+ page: headers.number,
220
+ pageSize: headers.size,
221
+ total: headers.totalelements,
222
+ totalPages: headers.totalpages
223
+ }));
224
+ };
225
+ //#endregion
226
+ //#region src/getBusinessInviteLink.ts
227
+ const getBusinessInviteLink = async (client, businessId) => {
228
+ const result = z.string().trim().min(1).uuid().safeParse(businessId);
229
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
230
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${result.data}/user/invite/link`).then(({ data }) => data);
231
+ };
232
+ //#endregion
233
+ //#region src/getBusinessInvoiceProducts.ts
234
+ const uuidSchema$4 = z.string().trim().min(1).uuid();
235
+ const getBusinessInvoiceProducts = async (client, entityId, invoiceId) => {
236
+ const parsedEntityId = uuidSchema$4.safeParse(entityId);
237
+ const parsedInvoiceId = uuidSchema$4.safeParse(invoiceId);
238
+ if (!parsedEntityId.success || !parsedInvoiceId.success) throw new TypeError("Invalid args", { cause: [...parsedEntityId.error?.issues ?? [], ...parsedInvoiceId.error?.issues ?? []] });
239
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/entities/${parsedEntityId.data}/businessInvoices/${parsedInvoiceId.data}/products`).then(({ data }) => data);
240
+ };
241
+ //#endregion
242
+ //#region src/getBusinessInvoices.ts
243
+ const getBusinessInvoices = async (client, entityId, options) => {
244
+ const resultId = z.string().trim().min(1).uuid().safeParse(entityId);
245
+ if (!resultId.success) throw new TypeError("Invalid args", { cause: resultId.error.issues });
246
+ const resultOptions = createPaginableOptionsSchema().safeParse(options ?? {});
247
+ if (!resultOptions.success) throw new TypeError("Invalid options", { cause: resultOptions.error.issues });
248
+ const finalOptions = resultOptions.data;
249
+ const searchParams = new URLSearchParams();
250
+ searchParams.append("page", finalOptions.page.toString());
251
+ searchParams.append("size", finalOptions.pageSize.toString());
252
+ if (finalOptions.sort) searchParams.append("sort", `${finalOptions.sort.toString()},${finalOptions.sortDirection.toString()}`);
253
+ const url = `/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/entities/${resultId.data}/businessInvoices?${searchParams.toString()}`;
254
+ return client.get(url).then(({ data, headers }) => ({
255
+ data,
256
+ page: headers.number,
257
+ pageSize: headers.size,
258
+ total: headers.totalelements,
259
+ totalPages: headers.totalpages
260
+ }));
261
+ };
262
+ //#endregion
263
+ //#region src/getBusinessInvoiceTrips.ts
264
+ const uuidSchema$3 = z.string().trim().min(1).uuid();
265
+ const getBusinessInvoiceTrips = async (client, entityId, invoiceId) => {
266
+ const parsedEntityId = uuidSchema$3.safeParse(entityId);
267
+ const parsedInvoiceId = uuidSchema$3.safeParse(invoiceId);
268
+ if (!parsedEntityId.success || !parsedInvoiceId.success) throw new TypeError("Invalid args", { cause: [...parsedEntityId.error?.issues ?? [], ...parsedInvoiceId.error?.issues ?? []] });
269
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/entities/${parsedEntityId.data}/businessInvoices/${parsedInvoiceId.data}/trips`).then(({ data }) => data);
270
+ };
271
+ //#endregion
272
+ //#region src/getBusinessPaymentDetails.ts
273
+ const getBusinessPaymentDetails = async (client, businessId) => {
274
+ const result = z.string().trim().min(1).uuid().safeParse(businessId);
275
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
276
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${result.data}/paymentDetails`).then(({ data }) => data);
277
+ };
278
+ //#endregion
279
+ //#region src/getBusinessProducts.ts
280
+ const getBusinessProducts = async (client) => {
281
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/product`).then(({ data }) => data);
282
+ };
283
+ //#endregion
284
+ //#region src/getBusinessTripById.ts
285
+ const getBusinessTripById = async (client, tripId) => {
286
+ const result = z.string().trim().min(1).uuid().safeParse(tripId);
287
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
288
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/trip/${result.data}`).then(({ data }) => data);
289
+ };
290
+ //#endregion
291
+ //#region src/getBusinessUserById.ts
292
+ const uuidSchema$2 = z.string().trim().min(1).uuid();
293
+ const getBusinessUserById = async (client, businessId, userId) => {
294
+ const parsedBusinessId = uuidSchema$2.safeParse(businessId);
295
+ const parsedUserId = uuidSchema$2.safeParse(userId);
296
+ if (!parsedBusinessId.success || !parsedUserId.success) throw new TypeError("Invalid args", { cause: [...parsedBusinessId.error?.issues ?? [], ...parsedUserId.error?.issues ?? []] });
297
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${parsedBusinessId.data}/user/${parsedUserId.data}`).then(({ data }) => data);
298
+ };
299
+ //#endregion
300
+ //#region src/getBusinessUserGlobalById.ts
301
+ const getBusinessUserGlobalById = async (client, userId) => {
302
+ const result = z.string().trim().min(1).uuid().safeParse(userId);
303
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
304
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/users/${result.data}`).then(({ data }) => data);
305
+ };
306
+ //#endregion
307
+ //#region src/getBusinessUsers.ts
308
+ const getBusinessUsers = async (client, businessId, options) => {
309
+ const resultId = z.string().trim().min(1).uuid().safeParse(businessId);
310
+ if (!resultId.success) throw new TypeError("Invalid args", { cause: resultId.error.issues });
311
+ const resultOptions = createPaginableOptionsSchema().safeParse(options ?? {});
312
+ if (!resultOptions.success) throw new TypeError("Invalid options", { cause: resultOptions.error.issues });
313
+ const finalOptions = resultOptions.data;
314
+ const searchParams = new URLSearchParams();
315
+ searchParams.append("page", finalOptions.page.toString());
316
+ searchParams.append("size", finalOptions.pageSize.toString());
317
+ if (finalOptions.sort) searchParams.append("sort", `${finalOptions.sort.toString()},${finalOptions.sortDirection.toString()}`);
318
+ const url = `/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${resultId.data}/user?${searchParams.toString()}`;
319
+ return client.get(url).then(({ data, headers }) => ({
320
+ data,
321
+ page: headers.number,
322
+ pageSize: headers.size,
323
+ total: headers.totalelements,
324
+ totalPages: headers.totalpages
325
+ }));
326
+ };
327
+ //#endregion
328
+ //#region src/getBusinessWallet.ts
329
+ const getBusinessWallet = async (client, businessId) => {
330
+ const result = z.string().trim().min(1).uuid().safeParse(businessId);
331
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
332
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${result.data}/wallet`).then(({ data }) => data);
333
+ };
334
+ //#endregion
335
+ //#region src/getEntityBalance.ts
336
+ const getEntityBalance = async (client, entityId) => {
337
+ const result = z.string().trim().min(1).uuid().safeParse(entityId);
338
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
339
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/billing/entity/${result.data}/balance`).then(({ data }) => data);
340
+ };
341
+ //#endregion
342
+ //#region src/getEntityProducts.ts
343
+ const getEntityProducts = async (client, entityId) => {
344
+ const result = z.string().trim().min(1).uuid().safeParse(entityId);
345
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
346
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/billing/entity/${result.data}/product`).then(({ data }) => data);
347
+ };
348
+ //#endregion
349
+ //#region src/getEntityTrips.ts
350
+ const getEntityTrips = async (client, entityId) => {
351
+ const result = z.string().trim().min(1).uuid().safeParse(entityId);
352
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
353
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/billing/entity/${result.data}/trip`).then(({ data }) => data);
354
+ };
355
+ //#endregion
356
+ //#region src/getEntityTripsCost.ts
357
+ const getEntityTripsCost = async (client, entityId) => {
358
+ const result = z.string().trim().min(1).uuid().safeParse(entityId);
359
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
360
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/billing/entity/${result.data}/trips/cost`).then(({ data }) => data);
361
+ };
362
+ //#endregion
363
+ //#region src/getInvitationRequest.ts
364
+ const getInvitationRequest = async (client, invitationId) => {
365
+ const result = z.string().trim().min(1).uuid().safeParse(invitationId);
366
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
367
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/invitationRequest/${result.data}`).then(({ data }) => data);
368
+ };
369
+ //#endregion
370
+ //#region src/getInvoicePdf.ts
371
+ const getInvoicePdf = async (client, invoiceId) => {
372
+ const result = z.string().trim().min(1).uuid().safeParse(invoiceId);
373
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
374
+ const { data } = await client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/invoices/${result.data}/pdf`, { responseType: "arraybuffer" });
375
+ return data && data.byteLength > 0 ? data : null;
376
+ };
377
+ //#endregion
378
+ //#region src/getInvoiceRefundableAmount.ts
379
+ const getInvoiceRefundableAmount = async (client, invoiceId) => {
380
+ const result = z.string().trim().min(1).uuid().safeParse(invoiceId);
381
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
382
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/invoices/${result.data}/refundableAmount`).then(({ data }) => data);
383
+ };
384
+ //#endregion
385
+ //#region src/getInvoiceRefundNote.ts
386
+ const getInvoiceRefundNote = async (client, invoiceId) => {
387
+ const result = z.string().trim().min(1).uuid().safeParse(invoiceId);
388
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
389
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/invoices/${result.data}/refundNote`).then(({ data }) => data);
390
+ };
391
+ //#endregion
392
+ //#region src/getOngoingTripNotes.ts
393
+ const getOngoingTripNotes = async (client, tripId) => {
394
+ const result = z.string().trim().min(1).uuid().safeParse(tripId);
395
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
396
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/ongoingTrip/${result.data}/notes`).then(({ data }) => data);
397
+ };
398
+ //#endregion
399
+ //#region src/getOngoingTrips.ts
400
+ const getOngoingTrips = async (client) => {
401
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/trip/ongoing`).then(({ data }) => data);
402
+ };
403
+ //#endregion
404
+ //#region src/getStripePublishableKey.ts
405
+ const getStripePublishableKey = async (client) => {
406
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/stripe/config/key`).then(({ data }) => data);
407
+ };
408
+ //#endregion
409
+ //#region src/getStripeSetup.ts
410
+ const getStripeSetup = async (client, businessId) => {
411
+ const result = z.string().trim().min(1).uuid().safeParse(businessId);
412
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
413
+ return client.get(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/stripe/businesses/${result.data}/add`).then(({ data }) => data);
414
+ };
415
+ //#endregion
416
+ //#region src/inviteBusinessUser.ts
417
+ const inviteSchema = z.object({
418
+ businessId: z.string().trim().min(1).uuid(),
419
+ email: z.string().trim().email(),
420
+ costCenterId: z.string().trim().min(1).uuid().optional()
421
+ });
422
+ const inviteBusinessUser = async (client, businessId, body) => {
423
+ const result = inviteSchema.safeParse({
424
+ businessId,
425
+ ...body
426
+ });
427
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
428
+ const { businessId: parsedId, ...parsedBody } = result.data;
429
+ await client.post(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${parsedId}/user/invite`, parsedBody);
430
+ };
431
+ //#endregion
432
+ //#region src/listBusinessUsersGlobal.ts
433
+ const schema$5 = z.object({ userIds: z.array(z.string().trim().min(1).uuid()).min(1) });
434
+ const listBusinessUsersGlobal = async (client, body) => {
435
+ const result = schema$5.safeParse(body);
436
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
437
+ return client.post(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/users/list`, result.data).then(({ data }) => data);
438
+ };
439
+ //#endregion
440
+ //#region src/redeemBusinessPromoCode.ts
441
+ const schema$4 = z.object({
442
+ businessId: z.string().trim().min(1).uuid(),
443
+ reference: z.string().trim().min(1)
444
+ });
445
+ const redeemBusinessPromoCode = async (client, businessId, reference) => {
446
+ const result = schema$4.safeParse({
447
+ businessId,
448
+ reference
449
+ });
450
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
451
+ await client.post(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${result.data.businessId}/promoCodes/redeem/${result.data.reference}`);
452
+ };
453
+ //#endregion
454
+ //#region src/refundInvoice.ts
455
+ const refundInvoiceBodySchema = z.object({
456
+ amount: z.number().min(0).optional(),
457
+ note: z.string().trim().nullable().optional()
458
+ });
459
+ const refundInvoice = async (client, invoiceId, body) => {
460
+ const parsedId = z.string().trim().min(1).uuid().safeParse(invoiceId);
461
+ if (!parsedId.success) throw new TypeError("Invalid args", { cause: parsedId.error.issues });
462
+ const result = refundInvoiceBodySchema.safeParse(body ?? {});
463
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
464
+ const filteredData = Object.fromEntries(Object.entries(result.data).filter(([_, value]) => value !== void 0 && value !== null));
465
+ await client.post(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/invoices/${parsedId.data}/refund`, filteredData);
466
+ };
467
+ //#endregion
468
+ //#region src/refundInvoiceAmount.ts
469
+ const schema$3 = z.object({
470
+ invoiceId: z.string().trim().min(1).uuid(),
471
+ amount: z.number().min(0)
472
+ });
473
+ /** @deprecated Use refundInvoice instead */
474
+ const refundInvoiceAmount = async (client, invoiceId, amount) => {
475
+ const result = schema$3.safeParse({
476
+ invoiceId,
477
+ amount
478
+ });
479
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
480
+ await client.post(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/invoices/${result.data.invoiceId}/refund/${result.data.amount}`, {});
481
+ };
482
+ //#endregion
483
+ //#region src/searchBusinessUsersByName.ts
484
+ const searchSchema = z.object({
485
+ businessId: z.string().trim().min(1).uuid(),
486
+ name: z.string().trim().min(1)
487
+ });
488
+ const searchBusinessUsersByName = async (client, businessId, name) => {
489
+ const result = searchSchema.safeParse({
490
+ businessId,
491
+ name
492
+ });
493
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
494
+ const searchParams = new URLSearchParams();
495
+ searchParams.append("name", result.data.name);
496
+ const url = `/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${result.data.businessId}/users/name?${searchParams.toString()}`;
497
+ return client.get(url).then(({ data }) => data);
498
+ };
499
+ //#endregion
500
+ //#region src/searchBusinessUsersGlobal.ts
501
+ const searchBusinessUsersGlobal = async (client, query) => {
502
+ const result = z.string().trim().min(1).safeParse(query);
503
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
504
+ const searchParams = new URLSearchParams();
505
+ searchParams.append("query", result.data);
506
+ const url = `/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/users/search?${searchParams.toString()}`;
507
+ return client.get(url).then(({ data }) => data);
508
+ };
509
+ //#endregion
510
+ //#region src/sendBusinessIban.ts
511
+ const schema$2 = z.object({
512
+ businessId: z.string().trim().min(1).uuid(),
513
+ iban: z.string().trim().min(1)
514
+ });
515
+ const sendBusinessIban = async (client, businessId, body) => {
516
+ const result = schema$2.safeParse({
517
+ businessId,
518
+ ...body
519
+ });
520
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
521
+ const { businessId: parsedId, ...parsedBody } = result.data;
522
+ await client.post(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${parsedId}/paymentDetails/wireTransfer`, parsedBody);
523
+ };
524
+ //#endregion
525
+ //#region src/setInvoiceExternalPayment.ts
526
+ const bodySchema$2 = z.object({
527
+ paymentReference: z.string().trim().min(1).optional(),
528
+ paymentDate: z.string().trim().min(1).optional()
529
+ });
530
+ const setInvoiceExternalPayment = async (client, invoiceId, body) => {
531
+ const parsedId = z.string().trim().min(1).uuid().safeParse(invoiceId);
532
+ if (!parsedId.success) throw new TypeError("Invalid args", { cause: parsedId.error.issues });
533
+ const result = bodySchema$2.safeParse(body);
534
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
535
+ await client.put(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/invoices/${parsedId.data}/externalPayment`, result.data);
536
+ };
537
+ //#endregion
538
+ //#region src/updateBusiness.ts
539
+ const updateBusinessBodySchema = z.object({ name: z.string().trim().min(1).max(255).optional() });
540
+ const updateBusiness = async (client, businessId, body) => {
541
+ const parsedId = z.string().trim().min(1).uuid().safeParse(businessId);
542
+ if (!parsedId.success) throw new TypeError("Invalid args", { cause: parsedId.error.issues });
543
+ const result = updateBusinessBodySchema.safeParse(body);
544
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
545
+ return client.put(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${parsedId.data}`, result.data).then(({ data }) => data);
546
+ };
547
+ //#endregion
548
+ //#region src/updateBusinessCostCenter.ts
549
+ const uuidSchema$1 = z.string().trim().min(1).uuid();
550
+ const bodySchema$1 = z.object({ name: z.string().trim().min(1).max(255).optional() });
551
+ const updateBusinessCostCenter = async (client, businessId, costCenterId, body) => {
552
+ const parsedBusinessId = uuidSchema$1.safeParse(businessId);
553
+ const parsedCostCenterId = uuidSchema$1.safeParse(costCenterId);
554
+ if (!parsedBusinessId.success || !parsedCostCenterId.success) throw new TypeError("Invalid args", { cause: [...parsedBusinessId.error?.issues ?? [], ...parsedCostCenterId.error?.issues ?? []] });
555
+ const result = bodySchema$1.safeParse(body);
556
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
557
+ return client.put(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${parsedBusinessId.data}/costcenter/${parsedCostCenterId.data}`, result.data).then(({ data }) => data);
558
+ };
559
+ //#endregion
560
+ //#region src/updateBusinessProfileStatus.ts
561
+ const schema$1 = z.object({
562
+ businessId: z.string().trim().min(1).uuid(),
563
+ status: z.string().trim().min(1)
564
+ });
565
+ const updateBusinessProfileStatus = async (client, businessId, status) => {
566
+ const result = schema$1.safeParse({
567
+ businessId,
568
+ status
569
+ });
570
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
571
+ await client.put(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${result.data.businessId}/profile/user/profile/status/${result.data.status}`);
572
+ };
573
+ //#endregion
574
+ //#region src/updateBusinessUserProfile.ts
575
+ const uuidSchema = z.string().trim().min(1).uuid();
576
+ const bodySchema = z.object({
577
+ email: z.string().trim().email().optional(),
578
+ emailConsent: z.boolean().optional(),
579
+ costCenterId: z.string().trim().min(1).uuid().optional()
580
+ });
581
+ const updateBusinessUserProfile = async (client, businessId, userId, profileId, body) => {
582
+ const parsedBusinessId = uuidSchema.safeParse(businessId);
583
+ const parsedUserId = uuidSchema.safeParse(userId);
584
+ const parsedProfileId = uuidSchema.safeParse(profileId);
585
+ if (!parsedBusinessId.success || !parsedUserId.success || !parsedProfileId.success) throw new TypeError("Invalid args", { cause: [
586
+ ...parsedBusinessId.error?.issues ?? [],
587
+ ...parsedUserId.error?.issues ?? [],
588
+ ...parsedProfileId.error?.issues ?? []
589
+ ] });
590
+ const result = bodySchema.safeParse(body);
591
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
592
+ return client.put(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/business/${parsedBusinessId.data}/user/${parsedUserId.data}/profile/${parsedProfileId.data}`, result.data).then(({ data }) => data);
593
+ };
594
+ //#endregion
595
+ //#region src/updateInvoiceStatus.ts
596
+ const schema = z.object({
597
+ invoiceId: z.string().trim().min(1).uuid(),
598
+ status: z.string().trim().min(1)
599
+ });
600
+ const updateInvoiceStatus = async (client, invoiceId, status) => {
601
+ const result = schema.safeParse({
602
+ invoiceId,
603
+ status
604
+ });
605
+ if (!result.success) throw new TypeError("Invalid args", { cause: result.error.issues });
606
+ await client.post(`/boapi/proxy/business/fleets/${client.clientOptions.fleetId}/invoices/${result.data.invoiceId}/status/${result.data.status}`, {});
607
+ };
608
+ //#endregion
609
+ export { addBusinessCredit, addStripePayment, addTripNote, addUserToBusiness, archiveBusinessProfile, bulkAddBusinessUsers, chargeBusinessProduct, createBusiness, createBusinessCostCenter, deactivateBusinessProfile, deleteBusinessCostCenter, deleteInvitationRequest, getBusinessBillingGroups, getBusinessById, getBusinessContacts, getBusinessCostCenterById, getBusinessCostCenters, getBusinessInviteLink, getBusinessInvoiceProducts, getBusinessInvoiceTrips, getBusinessInvoices, getBusinessPaymentDetails, getBusinessProducts, getBusinessTripById, getBusinessUserById, getBusinessUserGlobalById, getBusinessUsers, getBusinessWallet, getBusinesses, getEntityBalance, getEntityProducts, getEntityTrips, getEntityTripsCost, getInvitationRequest, getInvoicePdf, getInvoiceRefundNote, getInvoiceRefundableAmount, getOngoingTripNotes, getOngoingTrips, getStripePublishableKey, getStripeSetup, inviteBusinessUser, listBusinessUsersGlobal, redeemBusinessPromoCode, refundInvoice, refundInvoiceAmount, removeBusinessOwner, removeDelegatedAdmin, searchBusinessUsersByName, searchBusinessUsersGlobal, sendBusinessIban, setBusinessOwner, setDelegatedAdmin, setInvoiceExternalPayment, updateBusiness, updateBusinessCostCenter, updateBusinessProfileStatus, updateBusinessUserProfile, updateInvoiceStatus };
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@vulog/aima-business",
3
+ "type": "module",
4
+ "version": "1.2.39",
5
+ "main": "dist/index.cjs",
6
+ "module": "dist/index.mjs",
7
+ "types": "dist/index.d.cts",
8
+ "exports": {
9
+ ".": {
10
+ "import": {
11
+ "types": "./dist/index.d.mts",
12
+ "default": "./dist/index.mjs"
13
+ },
14
+ "require": {
15
+ "types": "./dist/index.d.cts",
16
+ "default": "./dist/index.cjs"
17
+ }
18
+ }
19
+ },
20
+ "scripts": {
21
+ "build": "tsdown",
22
+ "dev": "tsdown --watch",
23
+ "test": "vitest run",
24
+ "test:watch": "vitest",
25
+ "lint": "eslint src/"
26
+ },
27
+ "keywords": [
28
+ "AIMA",
29
+ "VULOG",
30
+ "BUSINESS"
31
+ ],
32
+ "author": "Vulog",
33
+ "license": "MIT",
34
+ "dependencies": {
35
+ "@vulog/aima-client": "1.2.39",
36
+ "@vulog/aima-core": "1.2.39"
37
+ },
38
+ "peerDependencies": {
39
+ "zod": "^4.3.6"
40
+ },
41
+ "description": ""
42
+ }