@deliverart/sdk-js-delivery 2.1.50 → 2.1.51

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 (2) hide show
  1. package/README.md +585 -0
  2. package/package.json +6 -6
package/README.md ADDED
@@ -0,0 +1,585 @@
1
+ # @deliverart/sdk-js-delivery
2
+
3
+ Delivery management package for the DeliverArt JavaScript SDK.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @deliverart/sdk-js-delivery @deliverart/sdk-js-core
9
+ ```
10
+
11
+ ## Exported Types
12
+
13
+ ### Core Types
14
+ - `Delivery` - Delivery information
15
+ - `DeliveryDetails` - Extended delivery with order and driver
16
+ - `DeliveryPosition` - GPS tracking position
17
+ - `DeliveryFee` - Delivery fee configuration
18
+ - `DeliveryStatus` - Delivery status
19
+
20
+ ### Delivery Status Types
21
+ ```typescript
22
+ type DeliveryStatus =
23
+ | 'PENDING'
24
+ | 'ASSIGNED'
25
+ | 'PICKING_UP'
26
+ | 'IN_TRANSIT'
27
+ | 'DELIVERED'
28
+ | 'FAILED'
29
+ | 'CANCELLED'
30
+ ```
31
+
32
+ ### IRI Types
33
+ - `DeliveryIri` - Delivery IRI (`/deliveries/:id`)
34
+ - `DeliveryPositionIri` - Position IRI (`/delivery_positions/:id`)
35
+ - `DeliveryFeeIri` - Fee IRI (`/delivery_fees/:id`)
36
+
37
+ ## Available Requests
38
+
39
+ ### Deliveries
40
+
41
+ #### CreateDelivery
42
+ ```typescript
43
+ import { CreateDelivery } from '@deliverart/sdk-js-delivery';
44
+
45
+ const delivery = await sdk.call(new CreateDelivery({
46
+ order: '/orders/123',
47
+ driver: '/users/456',
48
+ pickupAddress: {
49
+ street: 'Via Restaurant 1',
50
+ city: 'Milano',
51
+ postalCode: '20100',
52
+ country: 'IT',
53
+ location: {
54
+ latitude: 45.464664,
55
+ longitude: 9.188540
56
+ }
57
+ },
58
+ deliveryAddress: {
59
+ street: 'Via Customer 10',
60
+ city: 'Milano',
61
+ postalCode: '20100',
62
+ country: 'IT',
63
+ location: {
64
+ latitude: 45.478664,
65
+ longitude: 9.201540
66
+ }
67
+ },
68
+ estimatedPickupTime: '2024-12-25T19:00:00+00:00',
69
+ estimatedDeliveryTime: '2024-12-25T19:30:00+00:00'
70
+ }));
71
+ ```
72
+
73
+ **Input Parameters:**
74
+ - `order: string` (required) - Order IRI
75
+ - `driver?: string` (optional) - Driver user IRI
76
+ - `pickupAddress: Address` (required) - Restaurant/pickup address
77
+ - `deliveryAddress: Address` (required) - Customer delivery address
78
+ - `estimatedPickupTime?: string` (optional) - Estimated pickup time (ISO 8601)
79
+ - `estimatedDeliveryTime?: string` (optional) - Estimated delivery time (ISO 8601)
80
+ - `distance?: number` (optional) - Distance in meters
81
+ - `fee?: number` (optional) - Delivery fee in cents
82
+
83
+ #### GetDeliveries
84
+ ```typescript
85
+ import { GetDeliveries } from '@deliverart/sdk-js-delivery';
86
+
87
+ const deliveries = await sdk.call(new GetDeliveries({
88
+ query: {
89
+ 'status[]': ['IN_TRANSIT', 'ASSIGNED'],
90
+ driver: '/users/456',
91
+ 'order[estimatedDeliveryTime]': 'asc',
92
+ page: 1
93
+ }
94
+ }));
95
+ ```
96
+
97
+ **Query Parameters:**
98
+ - `order?: string` - Filter by order
99
+ - `driver?: string` - Filter by driver
100
+ - `status[]?: DeliveryStatus[]` - Filter by statuses
101
+ - `createdAt[before]?: string` - Created before date
102
+ - `createdAt[after]?: string` - Created after date
103
+ - `order[estimatedDeliveryTime]?: 'asc' | 'desc'` - Sort by delivery time
104
+ - `page?: number` - Page number
105
+
106
+ #### GetDeliveryDetails
107
+ ```typescript
108
+ import { GetDeliveryDetails } from '@deliverart/sdk-js-delivery';
109
+
110
+ const delivery = await sdk.call(new GetDeliveryDetails('delivery-123'));
111
+ ```
112
+
113
+ #### UpdateDelivery
114
+ ```typescript
115
+ import { UpdateDelivery } from '@deliverart/sdk-js-delivery';
116
+
117
+ const updated = await sdk.call(new UpdateDelivery('delivery-123', {
118
+ status: 'IN_TRANSIT',
119
+ actualPickupTime: '2024-12-25T19:05:00+00:00'
120
+ }));
121
+ ```
122
+
123
+ ---
124
+
125
+ ### Delivery Positions (GPS Tracking)
126
+
127
+ #### CreateDeliveryPosition
128
+ ```typescript
129
+ import { CreateDeliveryPosition } from '@deliverart/sdk-js-delivery';
130
+
131
+ const position = await sdk.call(new CreateDeliveryPosition({
132
+ delivery: '/deliveries/123',
133
+ latitude: 45.470664,
134
+ longitude: 9.195540,
135
+ accuracy: 10,
136
+ heading: 45,
137
+ speed: 15
138
+ }));
139
+ ```
140
+
141
+ **Input Parameters:**
142
+ - `delivery: string` (required) - Delivery IRI
143
+ - `latitude: number` (required) - GPS latitude
144
+ - `longitude: number` (required) - GPS longitude
145
+ - `accuracy?: number` (optional) - Position accuracy in meters
146
+ - `heading?: number` (optional) - Direction in degrees (0-360)
147
+ - `speed?: number` (optional) - Speed in km/h
148
+
149
+ #### GetDeliveryPositions
150
+ ```typescript
151
+ import { GetDeliveryPositions } from '@deliverart/sdk-js-delivery';
152
+
153
+ const positions = await sdk.call(new GetDeliveryPositions({
154
+ query: {
155
+ delivery: '/deliveries/123',
156
+ 'order[createdAt]': 'asc'
157
+ }
158
+ }));
159
+ ```
160
+
161
+ ---
162
+
163
+ ### Delivery Fees
164
+
165
+ #### CreateDeliveryFee
166
+ ```typescript
167
+ import { CreateDeliveryFee } from '@deliverart/sdk-js-delivery';
168
+
169
+ const fee = await sdk.call(new CreateDeliveryFee({
170
+ pointOfSale: '/point_of_sales/123',
171
+ minDistance: 0,
172
+ maxDistance: 5000, // 5km in meters
173
+ baseFee: 300, // 3 EUR in cents
174
+ perKmFee: 50 // 0.50 EUR per km
175
+ }));
176
+ ```
177
+
178
+ #### GetDeliveryFees
179
+ ```typescript
180
+ import { GetDeliveryFees } from '@deliverart/sdk-js-delivery';
181
+
182
+ const fees = await sdk.call(new GetDeliveryFees({
183
+ query: {
184
+ pointOfSale: '/point_of_sales/123'
185
+ }
186
+ }));
187
+ ```
188
+
189
+ ---
190
+
191
+ ## Complete Usage Example
192
+
193
+ ```typescript
194
+ import { sdk } from './lib/sdk';
195
+ import {
196
+ CreateDelivery,
197
+ UpdateDelivery,
198
+ CreateDeliveryPosition,
199
+ GetDeliveries
200
+ } from '@deliverart/sdk-js-delivery';
201
+
202
+ async function deliveryWorkflow() {
203
+ // Create delivery
204
+ const delivery = await sdk.call(new CreateDelivery({
205
+ order: '/orders/123',
206
+ driver: '/users/456',
207
+ pickupAddress: {
208
+ street: 'Via Restaurant 1',
209
+ city: 'Milano',
210
+ postalCode: '20100',
211
+ country: 'IT',
212
+ location: { latitude: 45.464664, longitude: 9.188540 }
213
+ },
214
+ deliveryAddress: {
215
+ street: 'Via Customer 10',
216
+ city: 'Milano',
217
+ postalCode: '20100',
218
+ country: 'IT',
219
+ location: { latitude: 45.478664, longitude: 9.201540 }
220
+ }
221
+ }));
222
+
223
+ // Driver picks up order
224
+ await sdk.call(new UpdateDelivery(delivery.id, {
225
+ status: 'PICKING_UP',
226
+ actualPickupTime: new Date().toISOString()
227
+ }));
228
+
229
+ // Driver starts delivery
230
+ await sdk.call(new UpdateDelivery(delivery.id, {
231
+ status: 'IN_TRANSIT'
232
+ }));
233
+
234
+ // Track position
235
+ await sdk.call(new CreateDeliveryPosition({
236
+ delivery: `/deliveries/${delivery.id}`,
237
+ latitude: 45.470664,
238
+ longitude: 9.195540,
239
+ speed: 25,
240
+ heading: 90
241
+ }));
242
+
243
+ // Complete delivery
244
+ await sdk.call(new UpdateDelivery(delivery.id, {
245
+ status: 'DELIVERED',
246
+ actualDeliveryTime: new Date().toISOString()
247
+ }));
248
+ }
249
+ ```
250
+
251
+ ## License
252
+
253
+ MIT
254
+ # @deliverart/sdk-js-menu
255
+
256
+ Menu and menu items management package for the DeliverArt JavaScript SDK.
257
+
258
+ ## Installation
259
+
260
+ ```bash
261
+ npm install @deliverart/sdk-js-menu @deliverart/sdk-js-core
262
+ ```
263
+
264
+ ## Exported Types
265
+
266
+ ### Core Types
267
+ - `MenuItem` - Menu item basic information
268
+ - `MenuItemDetails` - Extended menu item with variants and modifiers
269
+ - `MenuItemCategory` - Menu item category
270
+ - `MenuItemModifier` - Item modifier (e.g., extra cheese, no onions)
271
+ - `MenuItemPriceOverride` - Price variant for menu items
272
+ - `MenuVersion` - Menu version for point of sale
273
+
274
+ ### IRI Types
275
+ - `MenuItemIri` - Menu item IRI (`/menu_items/:id`)
276
+ - `MenuItemCategoryIri` - Category IRI (`/menu_item_categories/:id`)
277
+ - `MenuItemModifierIri` - Modifier IRI (`/menu_item_modifiers/:id`)
278
+ - `MenuItemPriceOverrideIri` - Price override IRI (`/menu_item_price_overrides/:id`)
279
+ - `MenuVersionIri` - Menu version IRI (`/menu_versions/:id`)
280
+
281
+ ## Available Requests
282
+
283
+ ### Menu Items
284
+
285
+ #### CreateMenuItem
286
+ ```typescript
287
+ import { CreateMenuItem } from '@deliverart/sdk-js-menu';
288
+
289
+ const item = await sdk.call(new CreateMenuItem({
290
+ name: [
291
+ { locale: 'it_IT', text: 'Margherita' },
292
+ { locale: 'en_US', text: 'Margherita' }
293
+ ],
294
+ description: [
295
+ { locale: 'it_IT', text: 'Pizza con pomodoro e mozzarella' },
296
+ { locale: 'en_US', text: 'Pizza with tomato and mozzarella' }
297
+ ],
298
+ type: 'PIZZA',
299
+ category: '/menu_item_categories/123',
300
+ company: '/companies/456',
301
+ price: 850, // In cents
302
+ taxRate: 10,
303
+ available: true
304
+ }));
305
+ ```
306
+
307
+ **Input Parameters:**
308
+ - `name: LocaleItem[]` (required) - Localized names
309
+ - `description: LocaleItem[]` (optional) - Localized descriptions
310
+ - `type: string` (required) - Item type (e.g., 'PIZZA', 'PASTA', 'DRINK')
311
+ - `category: string` (required) - Category IRI
312
+ - `company: string` (required) - Company IRI
313
+ - `price: number` (required) - Base price in cents
314
+ - `taxRate: number` (required) - Tax rate percentage
315
+ - `available: boolean` (optional) - Availability status
316
+ - `image?: string` (optional) - Image IRI
317
+
318
+ #### GetMenuItems
319
+ ```typescript
320
+ import { GetMenuItems } from '@deliverart/sdk-js-menu';
321
+
322
+ const items = await sdk.call(new GetMenuItems({
323
+ query: {
324
+ company: '/companies/123',
325
+ category: '/menu_item_categories/456',
326
+ available: true,
327
+ 'order[name]': 'asc',
328
+ page: 1
329
+ }
330
+ }));
331
+ ```
332
+
333
+ **Query Parameters:**
334
+ - `company?: string` - Filter by company
335
+ - `category?: string` - Filter by category
336
+ - `type?: string` - Filter by type
337
+ - `available?: boolean` - Filter by availability
338
+ - `order[name]?: 'asc' | 'desc'` - Sort by name
339
+ - `order[price]?: 'asc' | 'desc'` - Sort by price
340
+ - `page?: number` - Page number
341
+
342
+ #### GetMenuItemDetails
343
+ ```typescript
344
+ import { GetMenuItemDetails } from '@deliverart/sdk-js-menu';
345
+
346
+ const item = await sdk.call(new GetMenuItemDetails('item-123'));
347
+ ```
348
+
349
+ #### UpdateMenuItem
350
+ ```typescript
351
+ import { UpdateMenuItem } from '@deliverart/sdk-js-menu';
352
+
353
+ const updated = await sdk.call(new UpdateMenuItem('item-123', {
354
+ price: 900,
355
+ available: false
356
+ }));
357
+ ```
358
+
359
+ #### DeleteMenuItem
360
+ ```typescript
361
+ import { DeleteMenuItem } from '@deliverart/sdk-js-menu';
362
+
363
+ await sdk.call(new DeleteMenuItem('item-123'));
364
+ ```
365
+
366
+ ---
367
+
368
+ ### Menu Item Categories
369
+
370
+ #### CreateMenuItemCategory
371
+ ```typescript
372
+ import { CreateMenuItemCategory } from '@deliverart/sdk-js-menu';
373
+
374
+ const category = await sdk.call(new CreateMenuItemCategory({
375
+ name: [
376
+ { locale: 'it_IT', text: 'Pizze' },
377
+ { locale: 'en_US', text: 'Pizzas' }
378
+ ],
379
+ company: '/companies/123',
380
+ position: 1
381
+ }));
382
+ ```
383
+
384
+ #### GetMenuItemCategories
385
+ ```typescript
386
+ import { GetMenuItemCategories } from '@deliverart/sdk-js-menu';
387
+
388
+ const categories = await sdk.call(new GetMenuItemCategories({
389
+ query: {
390
+ company: '/companies/123',
391
+ 'order[position]': 'asc'
392
+ }
393
+ }));
394
+ ```
395
+
396
+ #### UpdateMenuItemCategory
397
+ ```typescript
398
+ import { UpdateMenuItemCategory } from '@deliverart/sdk-js-menu';
399
+
400
+ const updated = await sdk.call(new UpdateMenuItemCategory('category-123', {
401
+ position: 2
402
+ }));
403
+ ```
404
+
405
+ #### DeleteMenuItemCategory
406
+ ```typescript
407
+ import { DeleteMenuItemCategory } from '@deliverart/sdk-js-menu';
408
+
409
+ await sdk.call(new DeleteMenuItemCategory('category-123'));
410
+ ```
411
+
412
+ ---
413
+
414
+ ### Menu Item Modifiers
415
+
416
+ #### CreateMenuItemModifier
417
+ ```typescript
418
+ import { CreateMenuItemModifier } from '@deliverart/sdk-js-menu';
419
+
420
+ const modifier = await sdk.call(new CreateMenuItemModifier({
421
+ name: [
422
+ { locale: 'it_IT', text: 'Mozzarella extra' },
423
+ { locale: 'en_US', text: 'Extra mozzarella' }
424
+ ],
425
+ company: '/companies/123',
426
+ price: 150, // In cents
427
+ taxRate: 10,
428
+ available: true
429
+ }));
430
+ ```
431
+
432
+ #### GetMenuItemModifiers
433
+ ```typescript
434
+ import { GetMenuItemModifiers } from '@deliverart/sdk-js-menu';
435
+
436
+ const modifiers = await sdk.call(new GetMenuItemModifiers({
437
+ query: {
438
+ company: '/companies/123',
439
+ available: true
440
+ }
441
+ }));
442
+ ```
443
+
444
+ ---
445
+
446
+ ### Menu Item Price Overrides (Variants)
447
+
448
+ #### CreateMenuItemPriceOverride
449
+ ```typescript
450
+ import { CreateMenuItemPriceOverride } from '@deliverart/sdk-js-menu';
451
+
452
+ const variant = await sdk.call(new CreateMenuItemPriceOverride({
453
+ menuItem: '/menu_items/123',
454
+ name: [
455
+ { locale: 'it_IT', text: 'Grande' },
456
+ { locale: 'en_US', text: 'Large' }
457
+ ],
458
+ price: 1200,
459
+ available: true
460
+ }));
461
+ ```
462
+
463
+ #### GetMenuItemPriceOverrides
464
+ ```typescript
465
+ import { GetMenuItemPriceOverrides } from '@deliverart/sdk-js-menu';
466
+
467
+ const variants = await sdk.call(new GetMenuItemPriceOverrides({
468
+ query: {
469
+ menuItem: '/menu_items/123'
470
+ }
471
+ }));
472
+ ```
473
+
474
+ ---
475
+
476
+ ### Menu Versions
477
+
478
+ Menu versions allow you to assign different menus to different sales modes or points of sale.
479
+
480
+ #### CreateMenuVersion
481
+ ```typescript
482
+ import { CreateMenuVersion } from '@deliverart/sdk-js-menu';
483
+
484
+ const version = await sdk.call(new CreateMenuVersion({
485
+ name: 'Delivery Menu',
486
+ pointOfSale: '/point_of_sales/123',
487
+ salesMode: '/sales_modes/456',
488
+ items: [
489
+ '/menu_items/1',
490
+ '/menu_items/2',
491
+ '/menu_items/3'
492
+ ]
493
+ }));
494
+ ```
495
+
496
+ #### GetMenuVersions
497
+ ```typescript
498
+ import { GetMenuVersions } from '@deliverart/sdk-js-menu';
499
+
500
+ const versions = await sdk.call(new GetMenuVersions({
501
+ query: {
502
+ pointOfSale: '/point_of_sales/123'
503
+ }
504
+ }));
505
+ ```
506
+
507
+ ---
508
+
509
+ ## Complete Usage Example
510
+
511
+ ```typescript
512
+ import { sdk } from './lib/sdk';
513
+ import {
514
+ CreateMenuItemCategory,
515
+ CreateMenuItem,
516
+ CreateMenuItemModifier,
517
+ CreateMenuItemPriceOverride,
518
+ GetMenuItems
519
+ } from '@deliverart/sdk-js-menu';
520
+
521
+ async function setupMenu() {
522
+ // Create category
523
+ const category = await sdk.call(new CreateMenuItemCategory({
524
+ name: [
525
+ { locale: 'it_IT', text: 'Pizze' },
526
+ { locale: 'en_US', text: 'Pizzas' }
527
+ ],
528
+ company: '/companies/123',
529
+ position: 1
530
+ }));
531
+
532
+ // Create menu item
533
+ const pizza = await sdk.call(new CreateMenuItem({
534
+ name: [
535
+ { locale: 'it_IT', text: 'Margherita' },
536
+ { locale: 'en_US', text: 'Margherita' }
537
+ ],
538
+ description: [
539
+ { locale: 'it_IT', text: 'Pomodoro e mozzarella' }
540
+ ],
541
+ type: 'PIZZA',
542
+ category: `/menu_item_categories/${category.id}`,
543
+ company: '/companies/123',
544
+ price: 850,
545
+ taxRate: 10,
546
+ available: true
547
+ }));
548
+
549
+ // Create modifier
550
+ const modifier = await sdk.call(new CreateMenuItemModifier({
551
+ name: [
552
+ { locale: 'it_IT', text: 'Mozzarella extra' }
553
+ ],
554
+ company: '/companies/123',
555
+ price: 150,
556
+ taxRate: 10,
557
+ available: true
558
+ }));
559
+
560
+ // Create size variant
561
+ const largeVariant = await sdk.call(new CreateMenuItemPriceOverride({
562
+ menuItem: `/menu_items/${pizza.id}`,
563
+ name: [
564
+ { locale: 'it_IT', text: 'Grande' }
565
+ ],
566
+ price: 1200,
567
+ available: true
568
+ }));
569
+
570
+ // Get all pizzas
571
+ const pizzas = await sdk.call(new GetMenuItems({
572
+ query: {
573
+ category: `/menu_item_categories/${category.id}`,
574
+ available: true
575
+ }
576
+ }));
577
+
578
+ console.log(`Found ${pizzas.pagination.totalItems} pizzas`);
579
+ }
580
+ ```
581
+
582
+ ## License
583
+
584
+ MIT
585
+
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deliverart/sdk-js-delivery",
3
3
  "description": "Deliverart JavaScript SDK for Delivery Management",
4
- "version": "2.1.50",
4
+ "version": "2.1.51",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -18,11 +18,11 @@
18
18
  "dist"
19
19
  ],
20
20
  "dependencies": {
21
- "@deliverart/sdk-js-point-of-sale": "2.1.50",
22
- "@deliverart/sdk-js-global-types": "2.1.50",
23
- "@deliverart/sdk-js-core": "2.1.50",
24
- "@deliverart/sdk-js-order": "2.1.50",
25
- "@deliverart/sdk-js-user": "2.1.50"
21
+ "@deliverart/sdk-js-global-types": "2.1.51",
22
+ "@deliverart/sdk-js-core": "2.1.51",
23
+ "@deliverart/sdk-js-user": "2.1.51",
24
+ "@deliverart/sdk-js-point-of-sale": "2.1.51",
25
+ "@deliverart/sdk-js-order": "2.1.51"
26
26
  },
27
27
  "publishConfig": {
28
28
  "access": "public"