@restauproche/core 0.0.1

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 (42) hide show
  1. package/README.md +227 -0
  2. package/dist/enums/restaurant-status.enum.d.ts +6 -0
  3. package/dist/enums/restaurant-status.enum.d.ts.map +1 -0
  4. package/dist/enums/restaurant-status.enum.js +10 -0
  5. package/dist/enums/restaurant-status.enum.js.map +1 -0
  6. package/dist/enums/user-role.enum.d.ts +8 -0
  7. package/dist/enums/user-role.enum.d.ts.map +1 -0
  8. package/dist/enums/user-role.enum.js +12 -0
  9. package/dist/enums/user-role.enum.js.map +1 -0
  10. package/dist/enums/user-status.enum.d.ts +7 -0
  11. package/dist/enums/user-status.enum.d.ts.map +1 -0
  12. package/dist/enums/user-status.enum.js +11 -0
  13. package/dist/enums/user-status.enum.js.map +1 -0
  14. package/dist/index.d.ts +10 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +30 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/interfaces/address.interface.d.ts +14 -0
  19. package/dist/interfaces/address.interface.d.ts.map +1 -0
  20. package/dist/interfaces/address.interface.js +3 -0
  21. package/dist/interfaces/address.interface.js.map +1 -0
  22. package/dist/interfaces/pagination.interface.d.ts +13 -0
  23. package/dist/interfaces/pagination.interface.d.ts.map +1 -0
  24. package/dist/interfaces/pagination.interface.js +3 -0
  25. package/dist/interfaces/pagination.interface.js.map +1 -0
  26. package/dist/interfaces/restaurant.interface.d.ts +14 -0
  27. package/dist/interfaces/restaurant.interface.d.ts.map +1 -0
  28. package/dist/interfaces/restaurant.interface.js +3 -0
  29. package/dist/interfaces/restaurant.interface.js.map +1 -0
  30. package/dist/interfaces/user.interface.d.ts +31 -0
  31. package/dist/interfaces/user.interface.d.ts.map +1 -0
  32. package/dist/interfaces/user.interface.js +3 -0
  33. package/dist/interfaces/user.interface.js.map +1 -0
  34. package/dist/sdk/sdk-creator.d.ts +45 -0
  35. package/dist/sdk/sdk-creator.d.ts.map +1 -0
  36. package/dist/sdk/sdk-creator.js +104 -0
  37. package/dist/sdk/sdk-creator.js.map +1 -0
  38. package/dist/types/user-info.type.d.ts +6 -0
  39. package/dist/types/user-info.type.d.ts.map +1 -0
  40. package/dist/types/user-info.type.js +3 -0
  41. package/dist/types/user-info.type.js.map +1 -0
  42. package/package.json +17 -0
package/README.md ADDED
@@ -0,0 +1,227 @@
1
+ # @restauproche/core
2
+
3
+ Types, interfaces et utilitaires fondamentaux partagés entre tous les services RestauProche.
4
+
5
+ **Zéro dépendance runtime** — TypeScript pur.
6
+
7
+ ---
8
+
9
+ ## Installation
10
+
11
+ ```bash
12
+ pnpm add @restauproche/core
13
+ ```
14
+
15
+ ---
16
+
17
+ ## Enums
18
+
19
+ ### `UserRole`
20
+
21
+ ```typescript
22
+ import { UserRole } from '@restauproche/core'
23
+ ```
24
+
25
+ | Valeur | Description |
26
+ |--------|-------------|
27
+ | `CUSTOMER` | Client |
28
+ | `ADMIN` | Administrateur |
29
+ | `MERCHANT` | Restaurateur |
30
+ | `DELIVERY` | Livreur |
31
+ | `ROOT` | Super-administrateur |
32
+
33
+ ### `UserStatus`
34
+
35
+ ```typescript
36
+ import { UserStatus } from '@restauproche/core'
37
+ ```
38
+
39
+ | Valeur | Description |
40
+ |--------|-------------|
41
+ | `VERIFIED` | Compte vérifié |
42
+ | `NOT_VERIFIED` | En attente de vérification |
43
+ | `INACTIVE` | Désactivé |
44
+ | `DELETED` | Supprimé |
45
+
46
+ ### `RestaurantStatus`
47
+
48
+ ```typescript
49
+ import { RestaurantStatus } from '@restauproche/core'
50
+ ```
51
+
52
+ | Valeur | Description |
53
+ |--------|-------------|
54
+ | `UNAUTHORIZED` | Non autorisé |
55
+ | `PENDING` | En attente de validation |
56
+ | `VERIFIED` | Validé |
57
+
58
+ ---
59
+
60
+ ## Interfaces
61
+
62
+ ### `IUser`
63
+
64
+ ```typescript
65
+ interface IUser {
66
+ uuid: string
67
+ firstName: string
68
+ lastName?: string | null
69
+ email?: string | null
70
+ phoneNumber?: string | null
71
+ status?: UserStatus | null
72
+ roleUuid: string
73
+ createdAt?: Date | null
74
+ updatedAt?: Date | null
75
+ }
76
+ ```
77
+
78
+ Variantes spécialisées :
79
+
80
+ | Interface | Champs supplémentaires |
81
+ |-----------|----------------------|
82
+ | `IAdmin` | — |
83
+ | `IMerchant` | `restaurants?: IRestaurant[]` |
84
+ | `ICustomer` | `customer?: { uuid: string }` |
85
+ | `IDeliveryman` | `deliveryman?: { uuid: string }` |
86
+
87
+ ### `IRestaurant`
88
+
89
+ ```typescript
90
+ interface IRestaurant {
91
+ uuid: string
92
+ name: string
93
+ description?: string | null
94
+ phoneNumber?: string | null
95
+ status?: RestaurantStatus | null
96
+ rating?: number | null
97
+ userUuid: string
98
+ addressUuid?: string | null
99
+ createdAt?: Date | null
100
+ updatedAt?: Date | null
101
+ }
102
+ ```
103
+
104
+ ### `IAddress`
105
+
106
+ ```typescript
107
+ interface IAddress {
108
+ uuid: string
109
+ title?: string | null
110
+ town?: string | null
111
+ district?: string | null
112
+ addressSupplement?: string | null
113
+ lat?: number | null
114
+ lng?: number | null
115
+ isDefault?: boolean
116
+ customerUuid?: string | null
117
+ createdAt?: Date | null
118
+ updatedAt?: Date | null
119
+ }
120
+ ```
121
+
122
+ ### `IPaginationMeta` / `IPaginationResult<T>`
123
+
124
+ ```typescript
125
+ interface IPaginationMeta {
126
+ total: number
127
+ page: number
128
+ limit: number
129
+ pageCount: number
130
+ hasPreviousPage: boolean
131
+ hasNextPage: boolean
132
+ }
133
+
134
+ interface IPaginationResult<T> {
135
+ data: T[]
136
+ meta: IPaginationMeta
137
+ }
138
+ ```
139
+
140
+ ---
141
+
142
+ ## Types
143
+
144
+ ### `JwtPayload`
145
+
146
+ Payload attendu dans les tokens JWT.
147
+
148
+ ```typescript
149
+ type JwtPayload = {
150
+ user: { uuid: string }
151
+ }
152
+ ```
153
+
154
+ ### `UserInfo`
155
+
156
+ Info utilisateur transmise aux appels de service.
157
+
158
+ ```typescript
159
+ type UserInfo = {
160
+ token?: string
161
+ ip?: string
162
+ }
163
+ ```
164
+
165
+ ---
166
+
167
+ ## SDK Creator
168
+
169
+ Utilitaire pour instancier et proxifier des clients API générés (OpenAPI). Gère automatiquement les headers d'authentification et la gestion d'erreurs inter-services.
170
+
171
+ ### `createService<T>(config)`
172
+
173
+ ```typescript
174
+ import { createService } from '@restauproche/core'
175
+
176
+ const service = createService({
177
+ name: 'backend',
178
+ basePath: 'http://localhost:3000',
179
+ apis: { usersApi: UsersApi },
180
+ logger: myLogger,
181
+ application: 'my-app',
182
+ user: async () => ({ token: 'jwt...', ip: '1.2.3.4' }),
183
+ })
184
+
185
+ await service.usersApi.getUser(uuid)
186
+ ```
187
+
188
+ **Comportement du proxy :**
189
+
190
+ | Cas | Comportement |
191
+ |-----|-------------|
192
+ | Erreur HTTP `< 500` | Relance `ProxyApiError` avec le message métier |
193
+ | Erreur HTTP `>= 500` | Relance `ProxyApiError` générique |
194
+ | Service inaccessible | Relance `ProxyApiError("Un service n'est pas accessible")` |
195
+
196
+ Headers injectés automatiquement :
197
+ - `Authorization: Bearer <token>`
198
+ - `x-forwarded-for: <ip>,<application>`
199
+
200
+ ### `ServiceConfiguration<T>`
201
+
202
+ | Champ | Type | Description |
203
+ |-------|------|-------------|
204
+ | `name` | `string` | Nom du service (pour les logs) |
205
+ | `basePath` | `string` | URL de base de l'API |
206
+ | `apis` | `T` | Map nom → constructeur d'API généré |
207
+ | `logger` | `ILogger` | Instance de logger |
208
+ | `application` | `string` | Nom de l'application appelante |
209
+ | `user` | `UserInfo \| () => Promise<UserInfo>` | Credentials statiques ou dynamiques |
210
+ | `formDataCtor` | `new () => unknown` | Constructeur FormData (optionnel) |
211
+ | `axiosInstance` | `any` | Instance Axios personnalisée (optionnel) |
212
+
213
+ ### `ProxyApiError`
214
+
215
+ Classe d'erreur dédiée aux appels inter-services.
216
+
217
+ ```typescript
218
+ import { ProxyApiError } from '@restauproche/core'
219
+
220
+ try {
221
+ await service.usersApi.getUser(uuid)
222
+ } catch (e) {
223
+ if (e instanceof ProxyApiError) {
224
+ // erreur métier depuis le service distant
225
+ }
226
+ }
227
+ ```
@@ -0,0 +1,6 @@
1
+ export declare enum RestaurantStatus {
2
+ UNAUTHORIZED = "UNAUTHORIZED",
3
+ PENDING = "PENDING",
4
+ VERIFIED = "VERIFIED"
5
+ }
6
+ //# sourceMappingURL=restaurant-status.enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restaurant-status.enum.d.ts","sourceRoot":"","sources":["../../src/enums/restaurant-status.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,gBAAgB;IAC1B,YAAY,iBAAiB;IAC7B,OAAO,YAAY;IACnB,QAAQ,aAAa;CACtB"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RestaurantStatus = void 0;
4
+ var RestaurantStatus;
5
+ (function (RestaurantStatus) {
6
+ RestaurantStatus["UNAUTHORIZED"] = "UNAUTHORIZED";
7
+ RestaurantStatus["PENDING"] = "PENDING";
8
+ RestaurantStatus["VERIFIED"] = "VERIFIED";
9
+ })(RestaurantStatus || (exports.RestaurantStatus = RestaurantStatus = {}));
10
+ //# sourceMappingURL=restaurant-status.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restaurant-status.enum.js","sourceRoot":"","sources":["../../src/enums/restaurant-status.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,iDAA6B,CAAA;IAC7B,uCAAmB,CAAA;IACnB,yCAAqB,CAAA;AACvB,CAAC,EAJW,gBAAgB,gCAAhB,gBAAgB,QAI3B"}
@@ -0,0 +1,8 @@
1
+ export declare enum UserRole {
2
+ CUSTOMER = "CUSTOMER",
3
+ ADMIN = "ADMIN",
4
+ MERCHANT = "MERCHANT",
5
+ DELIVERY = "DELIVERY",
6
+ ROOT = "ROOT"
7
+ }
8
+ //# sourceMappingURL=user-role.enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-role.enum.d.ts","sourceRoot":"","sources":["../../src/enums/user-role.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserRole = void 0;
4
+ var UserRole;
5
+ (function (UserRole) {
6
+ UserRole["CUSTOMER"] = "CUSTOMER";
7
+ UserRole["ADMIN"] = "ADMIN";
8
+ UserRole["MERCHANT"] = "MERCHANT";
9
+ UserRole["DELIVERY"] = "DELIVERY";
10
+ UserRole["ROOT"] = "ROOT";
11
+ })(UserRole || (exports.UserRole = UserRole = {}));
12
+ //# sourceMappingURL=user-role.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-role.enum.js","sourceRoot":"","sources":["../../src/enums/user-role.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,iCAAqB,CAAA;IACrB,2BAAe,CAAA;IACf,iCAAqB,CAAA;IACrB,iCAAqB,CAAA;IACrB,yBAAa,CAAA;AACf,CAAC,EANW,QAAQ,wBAAR,QAAQ,QAMnB"}
@@ -0,0 +1,7 @@
1
+ export declare enum UserStatus {
2
+ VERIFIED = "VERIFIED",
3
+ NOT_VERIFIED = "NOT_VERIFIED",
4
+ INACTIVE = "INACTIVE",
5
+ DELETED = "DELETED"
6
+ }
7
+ //# sourceMappingURL=user-status.enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-status.enum.d.ts","sourceRoot":"","sources":["../../src/enums/user-status.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IACpB,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,QAAQ,aAAa;IACrB,OAAO,YAAY;CACpB"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserStatus = void 0;
4
+ var UserStatus;
5
+ (function (UserStatus) {
6
+ UserStatus["VERIFIED"] = "VERIFIED";
7
+ UserStatus["NOT_VERIFIED"] = "NOT_VERIFIED";
8
+ UserStatus["INACTIVE"] = "INACTIVE";
9
+ UserStatus["DELETED"] = "DELETED";
10
+ })(UserStatus || (exports.UserStatus = UserStatus = {}));
11
+ //# sourceMappingURL=user-status.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-status.enum.js","sourceRoot":"","sources":["../../src/enums/user-status.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,mCAAqB,CAAA;IACrB,2CAA6B,CAAA;IAC7B,mCAAqB,CAAA;IACrB,iCAAmB,CAAA;AACrB,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB"}
@@ -0,0 +1,10 @@
1
+ export * from './sdk/sdk-creator';
2
+ export * from './enums/user-status.enum';
3
+ export * from './enums/user-role.enum';
4
+ export * from './enums/restaurant-status.enum';
5
+ export * from './interfaces/user.interface';
6
+ export * from './interfaces/address.interface';
7
+ export * from './interfaces/restaurant.interface';
8
+ export * from './interfaces/pagination.interface';
9
+ export * from './types/user-info.type';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAGlC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAG/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,mCAAmC,CAAC;AAGlD,cAAc,wBAAwB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ // SDK
18
+ __exportStar(require("./sdk/sdk-creator"), exports);
19
+ // Enums
20
+ __exportStar(require("./enums/user-status.enum"), exports);
21
+ __exportStar(require("./enums/user-role.enum"), exports);
22
+ __exportStar(require("./enums/restaurant-status.enum"), exports);
23
+ // Interfaces
24
+ __exportStar(require("./interfaces/user.interface"), exports);
25
+ __exportStar(require("./interfaces/address.interface"), exports);
26
+ __exportStar(require("./interfaces/restaurant.interface"), exports);
27
+ __exportStar(require("./interfaces/pagination.interface"), exports);
28
+ // Types
29
+ __exportStar(require("./types/user-info.type"), exports);
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,MAAM;AACN,oDAAkC;AAElC,QAAQ;AACR,2DAAyC;AACzC,yDAAuC;AACvC,iEAA+C;AAE/C,aAAa;AACb,8DAA4C;AAC5C,iEAA+C;AAC/C,oEAAkD;AAClD,oEAAkD;AAElD,QAAQ;AACR,yDAAuC"}
@@ -0,0 +1,14 @@
1
+ export interface IAddress {
2
+ uuid: string;
3
+ title?: string | null;
4
+ town?: string | null;
5
+ district?: string | null;
6
+ addressSupplement?: string | null;
7
+ lat?: number | null;
8
+ lng?: number | null;
9
+ isDefault?: boolean;
10
+ customerUuid?: string | null;
11
+ createdAt?: Date | null;
12
+ updatedAt?: Date | null;
13
+ }
14
+ //# sourceMappingURL=address.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/address.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACzB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=address.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.interface.js","sourceRoot":"","sources":["../../src/interfaces/address.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ export interface IPaginationMeta {
2
+ total: number;
3
+ page: number;
4
+ limit: number;
5
+ pageCount: number;
6
+ hasPreviousPage: boolean;
7
+ hasNextPage: boolean;
8
+ }
9
+ export interface IPaginationResult<T> {
10
+ data: T[];
11
+ meta: IPaginationMeta;
12
+ }
13
+ //# sourceMappingURL=pagination.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/pagination.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,IAAI,EAAE,eAAe,CAAC;CACvB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=pagination.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.interface.js","sourceRoot":"","sources":["../../src/interfaces/pagination.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import { RestaurantStatus } from '../enums/restaurant-status.enum';
2
+ export interface IRestaurant {
3
+ uuid: string;
4
+ name: string;
5
+ description?: string | null;
6
+ phoneNumber?: string | null;
7
+ status?: RestaurantStatus | null;
8
+ rating?: number | null;
9
+ userUuid: string;
10
+ addressUuid?: string | null;
11
+ createdAt?: Date | null;
12
+ updatedAt?: Date | null;
13
+ }
14
+ //# sourceMappingURL=restaurant.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restaurant.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/restaurant.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACzB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=restaurant.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restaurant.interface.js","sourceRoot":"","sources":["../../src/interfaces/restaurant.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,31 @@
1
+ import { UserStatus } from '../enums/user-status.enum';
2
+ import { IRestaurant } from './restaurant.interface';
3
+ export interface IUser {
4
+ uuid: string;
5
+ firstName: string;
6
+ lastName?: string | null;
7
+ email?: string | null;
8
+ phoneNumber?: string | null;
9
+ status?: UserStatus | null;
10
+ roleUuid: string;
11
+ createdAt?: Date | null;
12
+ updatedAt?: Date | null;
13
+ }
14
+ export interface IAdmin extends IUser {
15
+ }
16
+ export interface ICustomerRef {
17
+ uuid: string;
18
+ }
19
+ export interface IDeliverymanRef {
20
+ uuid: string;
21
+ }
22
+ export interface IMerchant extends IUser {
23
+ restaurants?: IRestaurant[];
24
+ }
25
+ export interface ICustomer extends IUser {
26
+ customer?: ICustomerRef;
27
+ }
28
+ export interface IDeliveryman extends IUser {
29
+ deliveryman?: IDeliverymanRef;
30
+ }
31
+ //# sourceMappingURL=user.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/user.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,MAAO,SAAQ,KAAK;CAAG;AAExC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAU,SAAQ,KAAK;IACtC,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,SAAU,SAAQ,KAAK;IACtC,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK;IACzC,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=user.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.interface.js","sourceRoot":"","sources":["../../src/interfaces/user.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,45 @@
1
+ export declare const HEADER_IP = "x-forwarded-for";
2
+ export declare const HEADER_AUTH = "authorization";
3
+ export interface ILogger {
4
+ debug?(message: unknown, ...optionalParams: unknown[]): unknown;
5
+ verbose?(message: unknown, ...optionalParams: unknown[]): unknown;
6
+ log(message: unknown, ...optionalParams: unknown[]): unknown;
7
+ warn(message: unknown, ...optionalParams: unknown[]): unknown;
8
+ error(message: unknown, ...optionalParams: unknown[]): unknown;
9
+ fatal?(message: unknown, ...optionalParams: unknown[]): unknown;
10
+ }
11
+ export declare const BASE_PATH: string;
12
+ export declare class ProxyApiError extends Error {
13
+ constructor(message: string);
14
+ }
15
+ export declare const proxyApi: <T extends object>(nameService: string, classApi: T, logger: ILogger, getOptions?: () => Promise<unknown>) => T;
16
+ export declare class BaseAPIConfiguration {
17
+ apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
18
+ username?: string;
19
+ password?: string;
20
+ accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
21
+ basePath?: string;
22
+ serverIndex?: number;
23
+ baseOptions?: unknown;
24
+ formDataCtor?: new () => unknown;
25
+ isJsonMime: () => boolean;
26
+ }
27
+ export type BaseAPIConstructor = new (configuration?: Partial<BaseAPIConfiguration>, basePath?: string, axiosInstance?: unknown) => object;
28
+ export type UserInfo = {
29
+ token?: string;
30
+ ip?: string;
31
+ };
32
+ export type ServiceConfiguration<T> = {
33
+ name: string;
34
+ basePath: string;
35
+ apis: T;
36
+ logger: ILogger;
37
+ application: string;
38
+ formDataCtor?: new () => unknown;
39
+ options?: Partial<BaseAPIConfiguration>;
40
+ axiosInstance?: any;
41
+ user?: UserInfo | (() => Promise<UserInfo>);
42
+ };
43
+ export declare const getHeaders: (config: ServiceConfiguration<Record<string, BaseAPIConstructor>>) => Record<string, string>;
44
+ export declare const createService: <T extends Record<string, BaseAPIConstructor>>(config: ServiceConfiguration<T>) => { [K in keyof T]: InstanceType<T[K]>; };
45
+ //# sourceMappingURL=sdk-creator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-creator.d.ts","sourceRoot":"","sources":["../../src/sdk/sdk-creator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createService = exports.getHeaders = exports.BaseAPIConfiguration = exports.proxyApi = exports.ProxyApiError = exports.BASE_PATH = exports.HEADER_AUTH = exports.HEADER_IP = void 0;
4
+ exports.HEADER_IP = 'x-forwarded-for';
5
+ exports.HEADER_AUTH = 'authorization';
6
+ exports.BASE_PATH = 'http://localhost'.replace(/\/+$/, '');
7
+ class ProxyApiError extends Error {
8
+ constructor(message) {
9
+ super(message);
10
+ this.name = 'ProxyApiError';
11
+ }
12
+ }
13
+ exports.ProxyApiError = ProxyApiError;
14
+ const proxyApi = (nameService, classApi, logger, getOptions) => {
15
+ return new Proxy(classApi, {
16
+ get: (target, name) => {
17
+ if (typeof name === 'string' && typeof target[name] === 'function') {
18
+ return async function (...args) {
19
+ var _a, _b, _c;
20
+ try {
21
+ const options = getOptions ? await getOptions() : {};
22
+ return await target[name](...args.concat([options]));
23
+ }
24
+ catch (error) {
25
+ if (error.response) {
26
+ const message = Array.isArray((_a = error.response.data) === null || _a === void 0 ? void 0 : _a.message)
27
+ ? error.response.data.message.join('\n')
28
+ : ((_c = (_b = error.response.data) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : error.message);
29
+ logger.error(`Réponse non valide (${nameService}/${target.constructor.name}/${name}) : ${error.response.status} / ${message}`);
30
+ if (!error.response.data) {
31
+ logger.error(error);
32
+ }
33
+ if (error.response.status < 500) {
34
+ throw new ProxyApiError(message);
35
+ }
36
+ throw new ProxyApiError('Un service a renvoyé une erreur');
37
+ }
38
+ else if (error.request) {
39
+ logger.error(`Le service ${nameService} n'est pas accessible : ${error.message}.`);
40
+ throw new ProxyApiError("Un service n'est pas accessible");
41
+ }
42
+ else {
43
+ logger.error(error.message);
44
+ throw new ProxyApiError("Une erreur inconnue s'est produite");
45
+ }
46
+ }
47
+ };
48
+ }
49
+ return target[name];
50
+ },
51
+ });
52
+ };
53
+ exports.proxyApi = proxyApi;
54
+ class BaseAPIConfiguration {
55
+ constructor() {
56
+ this.isJsonMime = () => true;
57
+ }
58
+ }
59
+ exports.BaseAPIConfiguration = BaseAPIConfiguration;
60
+ const getHeaders = (config) => {
61
+ var _a, _b;
62
+ const headers = {};
63
+ if (typeof config.user !== 'function') {
64
+ if ((_a = config.user) === null || _a === void 0 ? void 0 : _a.token) {
65
+ Object.assign(headers, {
66
+ [exports.HEADER_AUTH]: `Bearer ${config.user.token}`,
67
+ });
68
+ }
69
+ if ((_b = config.user) === null || _b === void 0 ? void 0 : _b.ip) {
70
+ Object.assign(headers, {
71
+ [exports.HEADER_IP]: config.user.ip + ',' + config.application,
72
+ });
73
+ }
74
+ }
75
+ return headers;
76
+ };
77
+ exports.getHeaders = getHeaders;
78
+ const createService = (config) => {
79
+ let headers;
80
+ let getOptions;
81
+ if (typeof config.user !== 'function') {
82
+ headers = (0, exports.getHeaders)(config);
83
+ }
84
+ else if (config.user) {
85
+ getOptions = async () => {
86
+ const utilisateur = await config.user();
87
+ return {
88
+ headers: (0, exports.getHeaders)(Object.assign(Object.assign({}, config), { user: utilisateur })),
89
+ };
90
+ };
91
+ }
92
+ const apiArguments = [
93
+ Object.assign(Object.assign({ basePath: config.basePath, isJsonMime: () => true, formDataCtor: config.formDataCtor }, config.options), { baseOptions: {
94
+ headers,
95
+ } }),
96
+ undefined,
97
+ config.axiosInstance,
98
+ ];
99
+ return Object.entries(config.apis).reduce((acc, [name, api]) => {
100
+ return Object.assign(Object.assign({}, acc), { [name]: (0, exports.proxyApi)(config.name, new api(...apiArguments), config.logger, getOptions) });
101
+ }, {});
102
+ };
103
+ exports.createService = createService;
104
+ //# sourceMappingURL=sdk-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-creator.js","sourceRoot":"","sources":["../../src/sdk/sdk-creator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export type JwtPayload = {
2
+ user: {
3
+ uuid: string;
4
+ };
5
+ };
6
+ //# sourceMappingURL=user-info.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-info.type.d.ts","sourceRoot":"","sources":["../../src/types/user-info.type.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=user-info.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-info.type.js","sourceRoot":"","sources":["../../src/types/user-info.type.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "@restauproche/core",
3
+ "version": "0.0.1",
4
+ "description": "Core types, interfaces and utilities for RestauProche (zero runtime deps)",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist"
9
+ ],
10
+ "devDependencies": {
11
+ "typescript": "^5.8.2"
12
+ },
13
+ "scripts": {
14
+ "build": "tsc -p tsconfig.build.json",
15
+ "build:watch": "tsc -p tsconfig.build.json --watch"
16
+ }
17
+ }