@wasto/sdk 1.0.3 → 1.0.4

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 (56) hide show
  1. package/dist/index.d.mts +17 -1
  2. package/dist/index.d.ts +17 -1
  3. package/dist/index.js +7 -0
  4. package/dist/index.mjs +7 -0
  5. package/package.json +1 -1
  6. package/src/client.ts +701 -692
  7. package/src/dashboard-apps.ts +350 -350
  8. package/src/dto/cms-app-settings.ts +91 -91
  9. package/src/enums.ts +298 -298
  10. package/src/free-tier.ts +56 -56
  11. package/src/index.ts +35 -35
  12. package/src/opening-hours/constants.ts +48 -48
  13. package/src/opening-hours/convert.ts +276 -276
  14. package/src/opening-hours/format.ts +99 -99
  15. package/src/opening-hours/index.ts +9 -9
  16. package/src/opening-hours/is-open-now.ts +38 -38
  17. package/src/opening-hours/resolve.ts +71 -71
  18. package/src/opening-hours/time.ts +74 -74
  19. package/src/opening-hours/timezone.ts +34 -34
  20. package/src/opening-hours/types.ts +53 -53
  21. package/src/opening-hours/validate.ts +182 -182
  22. package/src/roi/calculations.ts +732 -732
  23. package/src/roi/index.ts +1 -1
  24. package/src/types/app-preload.types.ts +10 -0
  25. package/src/types/asset-bookings.types.ts +19 -19
  26. package/src/types/asset-interventions.types.ts +24 -24
  27. package/src/types/assets.types.ts +68 -68
  28. package/src/types/auth.types.ts +37 -37
  29. package/src/types/blog-posts.types.ts +19 -19
  30. package/src/types/calendar-pdf.types.ts +24 -24
  31. package/src/types/calendo-events.types.ts +64 -64
  32. package/src/types/challenges.types.ts +30 -30
  33. package/src/types/chatbot.types.ts +82 -82
  34. package/src/types/cities.types.ts +27 -27
  35. package/src/types/city-groups.types.ts +46 -46
  36. package/src/types/cms.types.ts +87 -87
  37. package/src/types/field-reports.types.ts +66 -66
  38. package/src/types/free-tier.types.ts +54 -54
  39. package/src/types/index.ts +33 -32
  40. package/src/types/iot.types.ts +31 -31
  41. package/src/types/maintenance.types.ts +44 -44
  42. package/src/types/mapso.types.ts +146 -146
  43. package/src/types/notifications.types.ts +68 -68
  44. package/src/types/onboarding.types.ts +117 -117
  45. package/src/types/operational-zones.types.ts +70 -70
  46. package/src/types/pagination.types.ts +33 -33
  47. package/src/types/providers.types.ts +29 -29
  48. package/src/types/quiz-questions.types.ts +59 -59
  49. package/src/types/recycling-points.types.ts +47 -47
  50. package/src/types/roi.types.ts +60 -60
  51. package/src/types/surveys.types.ts +103 -103
  52. package/src/types/tickets.types.ts +65 -65
  53. package/src/types/users.types.ts +30 -30
  54. package/src/types/waste-collection-places-query.types.ts +4 -4
  55. package/src/types/waste-collection-places.types.ts +33 -33
  56. package/src/types/waste-types.types.ts +21 -21
package/src/roi/index.ts CHANGED
@@ -1 +1 @@
1
- export * from './calculations'
1
+ export * from './calculations'
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Payload agrégé pour le cold-start des apps générées (events, calendrier, tri, carte).
3
+ * Route : `GET /public/cities/:id/app-preload`
4
+ */
5
+ export type CityAppPreload = {
6
+ city: unknown;
7
+ wasteTypes: unknown[];
8
+ wasteCollectionPlaces: unknown[];
9
+ recyclingPoints: unknown[];
10
+ };
@@ -1,19 +1,19 @@
1
- import type { BookingStatus } from '../enums';
2
-
3
- export interface CreateAssetBookingRequest {
4
- assetId: string;
5
- startDate: string;
6
- endDate?: string;
7
- notes?: string;
8
- }
9
-
10
- export interface UpdateAssetBookingRequest {
11
- startDate?: string;
12
- endDate?: string;
13
- status?: BookingStatus;
14
- notes?: string;
15
- }
16
-
17
- export interface CancelAssetBookingRequest {
18
- reason?: string;
19
- }
1
+ import type { BookingStatus } from '../enums';
2
+
3
+ export interface CreateAssetBookingRequest {
4
+ assetId: string;
5
+ startDate: string;
6
+ endDate?: string;
7
+ notes?: string;
8
+ }
9
+
10
+ export interface UpdateAssetBookingRequest {
11
+ startDate?: string;
12
+ endDate?: string;
13
+ status?: BookingStatus;
14
+ notes?: string;
15
+ }
16
+
17
+ export interface CancelAssetBookingRequest {
18
+ reason?: string;
19
+ }
@@ -1,24 +1,24 @@
1
- import type { InterventionStatus, InterventionType } from '../enums';
2
-
3
- export interface CreateAssetInterventionRequest {
4
- assetId?: string;
5
- type: InterventionType;
6
- plannedStart: string;
7
- plannedEnd: string;
8
- title?: string;
9
- description?: string;
10
- assigneeId?: string;
11
- notes?: string;
12
- }
13
-
14
- export interface UpdateAssetInterventionRequest {
15
- assetId?: string;
16
- type?: InterventionType;
17
- status?: InterventionStatus;
18
- plannedStart?: string;
19
- plannedEnd?: string;
20
- title?: string;
21
- description?: string;
22
- assigneeId?: string;
23
- notes?: string;
24
- }
1
+ import type { InterventionStatus, InterventionType } from '../enums';
2
+
3
+ export interface CreateAssetInterventionRequest {
4
+ assetId?: string;
5
+ type: InterventionType;
6
+ plannedStart: string;
7
+ plannedEnd: string;
8
+ title?: string;
9
+ description?: string;
10
+ assigneeId?: string;
11
+ notes?: string;
12
+ }
13
+
14
+ export interface UpdateAssetInterventionRequest {
15
+ assetId?: string;
16
+ type?: InterventionType;
17
+ status?: InterventionStatus;
18
+ plannedStart?: string;
19
+ plannedEnd?: string;
20
+ title?: string;
21
+ description?: string;
22
+ assigneeId?: string;
23
+ notes?: string;
24
+ }
@@ -1,68 +1,68 @@
1
- import type { AssetEventType, AssetStatus, AssetType } from '../enums';
2
-
3
- export interface CreateAssetRequest {
4
- uniqueIdentifier: string;
5
- type: AssetType;
6
- status?: AssetStatus;
7
- name: string;
8
- description?: string;
9
- capacity?: number;
10
- dimensions?: { length?: number; width?: number; height?: number };
11
- cityId?: string;
12
- cityGroupId?: string;
13
- locationStartDate?: string;
14
- locationEndDate?: string;
15
- wasteTypeIds?: string[];
16
- fuelType?: string;
17
- consumptionRate?: number;
18
- consumptionUnit?: string;
19
- color?: string;
20
- ownedById?: string;
21
- isBookable?: boolean;
22
- }
23
-
24
- export interface UpdateAssetRequest {
25
- uniqueIdentifier?: string;
26
- type?: AssetType;
27
- status?: AssetStatus;
28
- name?: string;
29
- description?: string;
30
- capacity?: number;
31
- dimensions?: { length?: number; width?: number; height?: number };
32
- cityId?: string;
33
- cityGroupId?: string;
34
- locationStartDate?: string;
35
- locationEndDate?: string;
36
- wasteTypeIds?: string[];
37
- fuelType?: string;
38
- consumptionRate?: number;
39
- consumptionUnit?: string;
40
- color?: string;
41
- ownedById?: string;
42
- isBookable?: boolean;
43
- }
44
-
45
- export interface CreateAssetEventRequest {
46
- eventType: AssetEventType;
47
- title: string;
48
- description?: string;
49
- latitude?: number;
50
- longitude?: number;
51
- metadata?: Record<string, unknown>;
52
- }
53
-
54
- export interface UpdateAssetStatusRequest {
55
- status: AssetStatus;
56
- latitude?: number;
57
- longitude?: number;
58
- notes?: string;
59
- }
60
-
61
- export interface CreateAssetConsumptionRecordRequest {
62
- periodStart: string;
63
- periodEnd: string;
64
- value: number;
65
- unit: string;
66
- source: 'IOT' | 'MANUAL';
67
- metadata?: Record<string, unknown>;
68
- }
1
+ import type { AssetEventType, AssetStatus, AssetType } from '../enums';
2
+
3
+ export interface CreateAssetRequest {
4
+ uniqueIdentifier: string;
5
+ type: AssetType;
6
+ status?: AssetStatus;
7
+ name: string;
8
+ description?: string;
9
+ capacity?: number;
10
+ dimensions?: { length?: number; width?: number; height?: number };
11
+ cityId?: string;
12
+ cityGroupId?: string;
13
+ locationStartDate?: string;
14
+ locationEndDate?: string;
15
+ wasteTypeIds?: string[];
16
+ fuelType?: string;
17
+ consumptionRate?: number;
18
+ consumptionUnit?: string;
19
+ color?: string;
20
+ ownedById?: string;
21
+ isBookable?: boolean;
22
+ }
23
+
24
+ export interface UpdateAssetRequest {
25
+ uniqueIdentifier?: string;
26
+ type?: AssetType;
27
+ status?: AssetStatus;
28
+ name?: string;
29
+ description?: string;
30
+ capacity?: number;
31
+ dimensions?: { length?: number; width?: number; height?: number };
32
+ cityId?: string;
33
+ cityGroupId?: string;
34
+ locationStartDate?: string;
35
+ locationEndDate?: string;
36
+ wasteTypeIds?: string[];
37
+ fuelType?: string;
38
+ consumptionRate?: number;
39
+ consumptionUnit?: string;
40
+ color?: string;
41
+ ownedById?: string;
42
+ isBookable?: boolean;
43
+ }
44
+
45
+ export interface CreateAssetEventRequest {
46
+ eventType: AssetEventType;
47
+ title: string;
48
+ description?: string;
49
+ latitude?: number;
50
+ longitude?: number;
51
+ metadata?: Record<string, unknown>;
52
+ }
53
+
54
+ export interface UpdateAssetStatusRequest {
55
+ status: AssetStatus;
56
+ latitude?: number;
57
+ longitude?: number;
58
+ notes?: string;
59
+ }
60
+
61
+ export interface CreateAssetConsumptionRecordRequest {
62
+ periodStart: string;
63
+ periodEnd: string;
64
+ value: number;
65
+ unit: string;
66
+ source: 'IOT' | 'MANUAL';
67
+ metadata?: Record<string, unknown>;
68
+ }
@@ -1,37 +1,37 @@
1
- export interface LoginRequest {
2
- email: string;
3
- password: string;
4
- }
5
-
6
- export interface RegisterRequest {
7
- email: string;
8
- password: string;
9
- firstName?: string;
10
- lastName?: string;
11
- }
12
-
13
- export interface ForgotPasswordRequest {
14
- email: string;
15
- }
16
-
17
- export interface ResetPasswordRequest {
18
- token: string;
19
- password: string;
20
- }
21
-
22
- export interface AcceptInviteRequest {
23
- token: string;
24
- password: string;
25
- firstName?: string;
26
- lastName?: string;
27
- }
28
-
29
- export interface LoginResponse {
30
- access_token: string;
31
- user?: unknown;
32
- }
33
-
34
- export interface LoginTwoFactorChallenge {
35
- requiresTwoFactor: true;
36
- pendingToken: string;
37
- }
1
+ export interface LoginRequest {
2
+ email: string;
3
+ password: string;
4
+ }
5
+
6
+ export interface RegisterRequest {
7
+ email: string;
8
+ password: string;
9
+ firstName?: string;
10
+ lastName?: string;
11
+ }
12
+
13
+ export interface ForgotPasswordRequest {
14
+ email: string;
15
+ }
16
+
17
+ export interface ResetPasswordRequest {
18
+ token: string;
19
+ password: string;
20
+ }
21
+
22
+ export interface AcceptInviteRequest {
23
+ token: string;
24
+ password: string;
25
+ firstName?: string;
26
+ lastName?: string;
27
+ }
28
+
29
+ export interface LoginResponse {
30
+ access_token: string;
31
+ user?: unknown;
32
+ }
33
+
34
+ export interface LoginTwoFactorChallenge {
35
+ requiresTwoFactor: true;
36
+ pendingToken: string;
37
+ }
@@ -1,19 +1,19 @@
1
- export interface CreateBlogPostRequest {
2
- cityGroupId: string;
3
- title: string;
4
- content: string;
5
- published?: boolean;
6
- publishedAt?: string;
7
- /** ID d’un média CMS (image de couverture) */
8
- coverMediaId?: string | null;
9
- }
10
-
11
- export interface UpdateBlogPostRequest {
12
- cityGroupId?: string;
13
- title?: string;
14
- content?: string;
15
- published?: boolean;
16
- publishedAt?: string;
17
- /** ID d’un média CMS (image de couverture). `null` pour retirer. */
18
- coverMediaId?: string | null;
19
- }
1
+ export interface CreateBlogPostRequest {
2
+ cityGroupId: string;
3
+ title: string;
4
+ content: string;
5
+ published?: boolean;
6
+ publishedAt?: string;
7
+ /** ID d’un média CMS (image de couverture) */
8
+ coverMediaId?: string | null;
9
+ }
10
+
11
+ export interface UpdateBlogPostRequest {
12
+ cityGroupId?: string;
13
+ title?: string;
14
+ content?: string;
15
+ published?: boolean;
16
+ publishedAt?: string;
17
+ /** ID d’un média CMS (image de couverture). `null` pour retirer. */
18
+ coverMediaId?: string | null;
19
+ }
@@ -1,24 +1,24 @@
1
- export interface CalendarPdfSector {
2
- id: string;
3
- name: string;
4
- label: string | null;
5
- cityId: string;
6
- cityName: string;
7
- }
8
-
9
- export interface StreetSectorMatch {
10
- streetId: string;
11
- streetName: string;
12
- cityId: string;
13
- cityName: string;
14
- sectors: CalendarPdfSector[];
15
- }
16
-
17
- export interface SearchStreetSectorsQuery {
18
- q: string;
19
- cityGroupId?: string;
20
- }
21
-
22
- export interface SearchStreetSectorsResponse {
23
- data: StreetSectorMatch[];
24
- }
1
+ export interface CalendarPdfSector {
2
+ id: string;
3
+ name: string;
4
+ label: string | null;
5
+ cityId: string;
6
+ cityName: string;
7
+ }
8
+
9
+ export interface StreetSectorMatch {
10
+ streetId: string;
11
+ streetName: string;
12
+ cityId: string;
13
+ cityName: string;
14
+ sectors: CalendarPdfSector[];
15
+ }
16
+
17
+ export interface SearchStreetSectorsQuery {
18
+ q: string;
19
+ cityGroupId?: string;
20
+ }
21
+
22
+ export interface SearchStreetSectorsResponse {
23
+ data: StreetSectorMatch[];
24
+ }
@@ -1,64 +1,64 @@
1
- import type {
2
- CalendoEventStatus,
3
- CalendoEventType,
4
- CalendoTicketSaleStatus,
5
- } from '../enums';
6
-
7
- export interface CreateCalendoEventRequest {
8
- title: string;
9
- description?: string;
10
- type?: CalendoEventType;
11
- status?: CalendoEventStatus;
12
- venue: string;
13
- startDate: string;
14
- endDate?: string;
15
- cityId?: string;
16
- cityGroupId?: string;
17
- ticketingEnabled?: boolean;
18
- capacity?: number;
19
- priceCents?: number;
20
- }
21
-
22
- export interface UpdateCalendoEventRequest {
23
- title?: string;
24
- description?: string;
25
- type?: CalendoEventType;
26
- status?: CalendoEventStatus;
27
- venue?: string;
28
- startDate?: string;
29
- endDate?: string | null;
30
- cityId?: string | null;
31
- cityGroupId?: string | null;
32
- ticketingEnabled?: boolean;
33
- capacity?: number | null;
34
- priceCents?: number | null;
35
- }
36
-
37
- export interface CreateCalendoTicketSaleRequest {
38
- quantity?: number;
39
- purchaserName?: string;
40
- purchaserEmail?: string;
41
- notes?: string;
42
- }
43
-
44
- export interface UpdateCalendoTicketSaleRequest {
45
- status?: CalendoTicketSaleStatus;
46
- notes?: string;
47
- }
48
-
49
- export interface CalendoTicketingOverview {
50
- eventsOnSale: number;
51
- totalSold: number;
52
- totalRevenueCents: number;
53
- events: Array<{
54
- id: string;
55
- title: string;
56
- venue: string;
57
- startDate: string;
58
- status: CalendoEventStatus;
59
- capacity: number | null;
60
- soldCount: number;
61
- priceCents: number | null;
62
- revenueCents: number;
63
- }>;
64
- }
1
+ import type {
2
+ CalendoEventStatus,
3
+ CalendoEventType,
4
+ CalendoTicketSaleStatus,
5
+ } from '../enums';
6
+
7
+ export interface CreateCalendoEventRequest {
8
+ title: string;
9
+ description?: string;
10
+ type?: CalendoEventType;
11
+ status?: CalendoEventStatus;
12
+ venue: string;
13
+ startDate: string;
14
+ endDate?: string;
15
+ cityId?: string;
16
+ cityGroupId?: string;
17
+ ticketingEnabled?: boolean;
18
+ capacity?: number;
19
+ priceCents?: number;
20
+ }
21
+
22
+ export interface UpdateCalendoEventRequest {
23
+ title?: string;
24
+ description?: string;
25
+ type?: CalendoEventType;
26
+ status?: CalendoEventStatus;
27
+ venue?: string;
28
+ startDate?: string;
29
+ endDate?: string | null;
30
+ cityId?: string | null;
31
+ cityGroupId?: string | null;
32
+ ticketingEnabled?: boolean;
33
+ capacity?: number | null;
34
+ priceCents?: number | null;
35
+ }
36
+
37
+ export interface CreateCalendoTicketSaleRequest {
38
+ quantity?: number;
39
+ purchaserName?: string;
40
+ purchaserEmail?: string;
41
+ notes?: string;
42
+ }
43
+
44
+ export interface UpdateCalendoTicketSaleRequest {
45
+ status?: CalendoTicketSaleStatus;
46
+ notes?: string;
47
+ }
48
+
49
+ export interface CalendoTicketingOverview {
50
+ eventsOnSale: number;
51
+ totalSold: number;
52
+ totalRevenueCents: number;
53
+ events: Array<{
54
+ id: string;
55
+ title: string;
56
+ venue: string;
57
+ startDate: string;
58
+ status: CalendoEventStatus;
59
+ capacity: number | null;
60
+ soldCount: number;
61
+ priceCents: number | null;
62
+ revenueCents: number;
63
+ }>;
64
+ }
@@ -1,30 +1,30 @@
1
- export interface CreateChallengeRequest {
2
- name: string;
3
- description?: string;
4
- cityId?: string;
5
- imageUrl?: string;
6
- imageBase64?: string;
7
- enabled?: boolean;
8
- startDate?: string;
9
- endDate?: string;
10
- order?: number;
11
- requiredChallengeId?: string;
12
- }
13
-
14
- export interface CreateSerieRequest {
15
- challengeId: string;
16
- name: string;
17
- description?: string;
18
- imageUrl?: string;
19
- imageBase64?: string;
20
- order?: number;
21
- }
22
-
23
- export interface CreateBadgeRequest {
24
- challengeId: string;
25
- name: string;
26
- description?: string;
27
- imageUrl?: string;
28
- imageBase64?: string;
29
- icon?: string;
30
- }
1
+ export interface CreateChallengeRequest {
2
+ name: string;
3
+ description?: string;
4
+ cityId?: string;
5
+ imageUrl?: string;
6
+ imageBase64?: string;
7
+ enabled?: boolean;
8
+ startDate?: string;
9
+ endDate?: string;
10
+ order?: number;
11
+ requiredChallengeId?: string;
12
+ }
13
+
14
+ export interface CreateSerieRequest {
15
+ challengeId: string;
16
+ name: string;
17
+ description?: string;
18
+ imageUrl?: string;
19
+ imageBase64?: string;
20
+ order?: number;
21
+ }
22
+
23
+ export interface CreateBadgeRequest {
24
+ challengeId: string;
25
+ name: string;
26
+ description?: string;
27
+ imageUrl?: string;
28
+ imageBase64?: string;
29
+ icon?: string;
30
+ }