@ysk-kit/contracts 1.0.0

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 (174) hide show
  1. package/LICENSE +21 -0
  2. package/dist/api/api-keys.d.ts +220 -0
  3. package/dist/api/api-keys.d.ts.map +1 -0
  4. package/dist/api/api-keys.js +38 -0
  5. package/dist/api/api-keys.js.map +1 -0
  6. package/dist/api/audit.d.ts +75 -0
  7. package/dist/api/audit.d.ts.map +1 -0
  8. package/dist/api/audit.js +19 -0
  9. package/dist/api/audit.js.map +1 -0
  10. package/dist/api/auth.d.ts +602 -0
  11. package/dist/api/auth.d.ts.map +1 -0
  12. package/dist/api/auth.js +85 -0
  13. package/dist/api/auth.js.map +1 -0
  14. package/dist/api/billing.d.ts +398 -0
  15. package/dist/api/billing.d.ts.map +1 -0
  16. package/dist/api/billing.js +75 -0
  17. package/dist/api/billing.js.map +1 -0
  18. package/dist/api/devices.d.ts +150 -0
  19. package/dist/api/devices.d.ts.map +1 -0
  20. package/dist/api/devices.js +32 -0
  21. package/dist/api/devices.js.map +1 -0
  22. package/dist/api/files.d.ts +74 -0
  23. package/dist/api/files.d.ts.map +1 -0
  24. package/dist/api/files.js +19 -0
  25. package/dist/api/files.js.map +1 -0
  26. package/dist/api/health.d.ts +53 -0
  27. package/dist/api/health.d.ts.map +1 -0
  28. package/dist/api/health.js +26 -0
  29. package/dist/api/health.js.map +1 -0
  30. package/dist/api/index.d.ts +2777 -0
  31. package/dist/api/index.d.ts.map +1 -0
  32. package/dist/api/index.js +38 -0
  33. package/dist/api/index.js.map +1 -0
  34. package/dist/api/llm.d.ts +133 -0
  35. package/dist/api/llm.d.ts.map +1 -0
  36. package/dist/api/llm.js +25 -0
  37. package/dist/api/llm.js.map +1 -0
  38. package/dist/api/notifications.d.ts +102 -0
  39. package/dist/api/notifications.d.ts.map +1 -0
  40. package/dist/api/notifications.js +28 -0
  41. package/dist/api/notifications.js.map +1 -0
  42. package/dist/api/organizations.d.ts +787 -0
  43. package/dist/api/organizations.d.ts.map +1 -0
  44. package/dist/api/organizations.js +144 -0
  45. package/dist/api/organizations.js.map +1 -0
  46. package/dist/api/users.d.ts +193 -0
  47. package/dist/api/users.d.ts.map +1 -0
  48. package/dist/api/users.js +41 -0
  49. package/dist/api/users.js.map +1 -0
  50. package/dist/constants/hk.d.ts +6 -0
  51. package/dist/constants/hk.d.ts.map +1 -0
  52. package/dist/constants/hk.js +6 -0
  53. package/dist/constants/hk.js.map +1 -0
  54. package/dist/dto/api-key.d.ts +49 -0
  55. package/dist/dto/api-key.d.ts.map +1 -0
  56. package/dist/dto/api-key.js +19 -0
  57. package/dist/dto/api-key.js.map +1 -0
  58. package/dist/dto/audit.d.ts +49 -0
  59. package/dist/dto/audit.d.ts.map +1 -0
  60. package/dist/dto/audit.js +13 -0
  61. package/dist/dto/audit.js.map +1 -0
  62. package/dist/dto/auth.d.ts +76 -0
  63. package/dist/dto/auth.d.ts.map +1 -0
  64. package/dist/dto/auth.js +46 -0
  65. package/dist/dto/auth.js.map +1 -0
  66. package/dist/dto/billing.d.ts +63 -0
  67. package/dist/dto/billing.d.ts.map +1 -0
  68. package/dist/dto/billing.js +44 -0
  69. package/dist/dto/billing.js.map +1 -0
  70. package/dist/dto/device.d.ts +25 -0
  71. package/dist/dto/device.d.ts.map +1 -0
  72. package/dist/dto/device.js +13 -0
  73. package/dist/dto/device.js.map +1 -0
  74. package/dist/dto/file.d.ts +14 -0
  75. package/dist/dto/file.d.ts.map +1 -0
  76. package/dist/dto/file.js +16 -0
  77. package/dist/dto/file.js.map +1 -0
  78. package/dist/dto/index.d.ts +11 -0
  79. package/dist/dto/index.d.ts.map +1 -0
  80. package/dist/dto/index.js +11 -0
  81. package/dist/dto/index.js.map +1 -0
  82. package/dist/dto/llm.d.ts +45 -0
  83. package/dist/dto/llm.d.ts.map +1 -0
  84. package/dist/dto/llm.js +24 -0
  85. package/dist/dto/llm.js.map +1 -0
  86. package/dist/dto/notification.d.ts +33 -0
  87. package/dist/dto/notification.d.ts.map +1 -0
  88. package/dist/dto/notification.js +13 -0
  89. package/dist/dto/notification.js.map +1 -0
  90. package/dist/dto/organization.d.ts +60 -0
  91. package/dist/dto/organization.d.ts.map +1 -0
  92. package/dist/dto/organization.js +43 -0
  93. package/dist/dto/organization.js.map +1 -0
  94. package/dist/dto/user.d.ts +63 -0
  95. package/dist/dto/user.d.ts.map +1 -0
  96. package/dist/dto/user.js +31 -0
  97. package/dist/dto/user.js.map +1 -0
  98. package/dist/enums/audit-action.d.ts +32 -0
  99. package/dist/enums/audit-action.d.ts.map +1 -0
  100. package/dist/enums/audit-action.js +18 -0
  101. package/dist/enums/audit-action.js.map +1 -0
  102. package/dist/enums/auth-method.d.ts +12 -0
  103. package/dist/enums/auth-method.d.ts.map +1 -0
  104. package/dist/enums/auth-method.js +8 -0
  105. package/dist/enums/auth-method.js.map +1 -0
  106. package/dist/enums/billing-plan.d.ts +29 -0
  107. package/dist/enums/billing-plan.d.ts.map +1 -0
  108. package/dist/enums/billing-plan.js +18 -0
  109. package/dist/enums/billing-plan.js.map +1 -0
  110. package/dist/enums/index.d.ts +14 -0
  111. package/dist/enums/index.d.ts.map +1 -0
  112. package/dist/enums/index.js +14 -0
  113. package/dist/enums/index.js.map +1 -0
  114. package/dist/enums/job-name.d.ts +86 -0
  115. package/dist/enums/job-name.d.ts.map +1 -0
  116. package/dist/enums/job-name.js +34 -0
  117. package/dist/enums/job-name.js.map +1 -0
  118. package/dist/enums/llm-role.d.ts +14 -0
  119. package/dist/enums/llm-role.d.ts.map +1 -0
  120. package/dist/enums/llm-role.js +9 -0
  121. package/dist/enums/llm-role.js.map +1 -0
  122. package/dist/enums/mail-template.d.ts +21 -0
  123. package/dist/enums/mail-template.d.ts.map +1 -0
  124. package/dist/enums/mail-template.js +40 -0
  125. package/dist/enums/mail-template.js.map +1 -0
  126. package/dist/enums/notification-type.d.ts +16 -0
  127. package/dist/enums/notification-type.d.ts.map +1 -0
  128. package/dist/enums/notification-type.js +10 -0
  129. package/dist/enums/notification-type.js.map +1 -0
  130. package/dist/enums/org-role.d.ts +39 -0
  131. package/dist/enums/org-role.d.ts.map +1 -0
  132. package/dist/enums/org-role.js +40 -0
  133. package/dist/enums/org-role.js.map +1 -0
  134. package/dist/enums/permission.d.ts +27 -0
  135. package/dist/enums/permission.d.ts.map +1 -0
  136. package/dist/enums/permission.js +36 -0
  137. package/dist/enums/permission.js.map +1 -0
  138. package/dist/enums/platform.d.ts +20 -0
  139. package/dist/enums/platform.d.ts.map +1 -0
  140. package/dist/enums/platform.js +12 -0
  141. package/dist/enums/platform.js.map +1 -0
  142. package/dist/enums/realtime-event.d.ts +10 -0
  143. package/dist/enums/realtime-event.d.ts.map +1 -0
  144. package/dist/enums/realtime-event.js +7 -0
  145. package/dist/enums/realtime-event.js.map +1 -0
  146. package/dist/enums/user-role.d.ts +18 -0
  147. package/dist/enums/user-role.d.ts.map +1 -0
  148. package/dist/enums/user-role.js +14 -0
  149. package/dist/enums/user-role.js.map +1 -0
  150. package/dist/enums/user-status.d.ts +20 -0
  151. package/dist/enums/user-status.d.ts.map +1 -0
  152. package/dist/enums/user-status.js +16 -0
  153. package/dist/enums/user-status.js.map +1 -0
  154. package/dist/errors/codes.d.ts +12 -0
  155. package/dist/errors/codes.d.ts.map +1 -0
  156. package/dist/errors/codes.js +11 -0
  157. package/dist/errors/codes.js.map +1 -0
  158. package/dist/errors/envelope.d.ts +43 -0
  159. package/dist/errors/envelope.d.ts.map +1 -0
  160. package/dist/errors/envelope.js +14 -0
  161. package/dist/errors/envelope.js.map +1 -0
  162. package/dist/errors/index.d.ts +4 -0
  163. package/dist/errors/index.d.ts.map +1 -0
  164. package/dist/errors/index.js +4 -0
  165. package/dist/errors/index.js.map +1 -0
  166. package/dist/errors/messages.d.ts +6 -0
  167. package/dist/errors/messages.d.ts.map +1 -0
  168. package/dist/errors/messages.js +10 -0
  169. package/dist/errors/messages.js.map +1 -0
  170. package/dist/index.d.ts +6 -0
  171. package/dist/index.d.ts.map +1 -0
  172. package/dist/index.js +6 -0
  173. package/dist/index.js.map +1 -0
  174. package/package.json +34 -0
@@ -0,0 +1,602 @@
1
+ import { z } from 'zod';
2
+ export declare const authContract: {
3
+ register: {
4
+ summary: "Register with email";
5
+ method: "POST";
6
+ body: z.ZodObject<{
7
+ email: z.ZodString;
8
+ password: z.ZodString;
9
+ displayName: z.ZodString;
10
+ }, z.core.$strip>;
11
+ path: "/v1/auth/register";
12
+ responses: {
13
+ 201: z.ZodObject<{
14
+ ok: z.ZodLiteral<true>;
15
+ data: z.ZodObject<{
16
+ accessToken: z.ZodString;
17
+ refreshToken: z.ZodString;
18
+ expiresIn: z.ZodNumber;
19
+ user: z.ZodObject<{
20
+ id: z.ZodString;
21
+ email: z.ZodNullable<z.ZodString>;
22
+ phone: z.ZodNullable<z.ZodString>;
23
+ displayName: z.ZodString;
24
+ role: z.ZodEnum<{
25
+ USER: "USER";
26
+ ADMIN: "ADMIN";
27
+ OPS: "OPS";
28
+ }>;
29
+ status: z.ZodEnum<{
30
+ ACTIVE: "ACTIVE";
31
+ INVITED: "INVITED";
32
+ SUSPENDED: "SUSPENDED";
33
+ DELETED: "DELETED";
34
+ }>;
35
+ createdAt: z.ZodISODateTime;
36
+ }, z.core.$strip>;
37
+ }, z.core.$strip>;
38
+ }, z.core.$strip>;
39
+ 409: z.ZodObject<{
40
+ ok: z.ZodLiteral<false>;
41
+ error: z.ZodObject<{
42
+ code: z.ZodEnum<{
43
+ VALIDATION_FAILED: "VALIDATION_FAILED";
44
+ UNAUTHENTICATED: "UNAUTHENTICATED";
45
+ FORBIDDEN: "FORBIDDEN";
46
+ NOT_FOUND: "NOT_FOUND";
47
+ CONFLICT: "CONFLICT";
48
+ RATE_LIMITED: "RATE_LIMITED";
49
+ INTERNAL: "INTERNAL";
50
+ }>;
51
+ message: z.ZodString;
52
+ details: z.ZodOptional<z.ZodUnknown>;
53
+ requestId: z.ZodOptional<z.ZodString>;
54
+ }, z.core.$strip>;
55
+ }, z.core.$strip>;
56
+ 422: z.ZodObject<{
57
+ ok: z.ZodLiteral<false>;
58
+ error: z.ZodObject<{
59
+ code: z.ZodEnum<{
60
+ VALIDATION_FAILED: "VALIDATION_FAILED";
61
+ UNAUTHENTICATED: "UNAUTHENTICATED";
62
+ FORBIDDEN: "FORBIDDEN";
63
+ NOT_FOUND: "NOT_FOUND";
64
+ CONFLICT: "CONFLICT";
65
+ RATE_LIMITED: "RATE_LIMITED";
66
+ INTERNAL: "INTERNAL";
67
+ }>;
68
+ message: z.ZodString;
69
+ details: z.ZodOptional<z.ZodUnknown>;
70
+ requestId: z.ZodOptional<z.ZodString>;
71
+ }, z.core.$strip>;
72
+ }, z.core.$strip>;
73
+ };
74
+ };
75
+ login: {
76
+ summary: "Login with email and password";
77
+ method: "POST";
78
+ body: z.ZodObject<{
79
+ email: z.ZodString;
80
+ password: z.ZodString;
81
+ }, z.core.$strip>;
82
+ path: "/v1/auth/login";
83
+ responses: {
84
+ 200: z.ZodObject<{
85
+ ok: z.ZodLiteral<true>;
86
+ data: z.ZodObject<{
87
+ accessToken: z.ZodString;
88
+ refreshToken: z.ZodString;
89
+ expiresIn: z.ZodNumber;
90
+ user: z.ZodObject<{
91
+ id: z.ZodString;
92
+ email: z.ZodNullable<z.ZodString>;
93
+ phone: z.ZodNullable<z.ZodString>;
94
+ displayName: z.ZodString;
95
+ role: z.ZodEnum<{
96
+ USER: "USER";
97
+ ADMIN: "ADMIN";
98
+ OPS: "OPS";
99
+ }>;
100
+ status: z.ZodEnum<{
101
+ ACTIVE: "ACTIVE";
102
+ INVITED: "INVITED";
103
+ SUSPENDED: "SUSPENDED";
104
+ DELETED: "DELETED";
105
+ }>;
106
+ createdAt: z.ZodISODateTime;
107
+ }, z.core.$strip>;
108
+ }, z.core.$strip>;
109
+ }, z.core.$strip>;
110
+ 401: z.ZodObject<{
111
+ ok: z.ZodLiteral<false>;
112
+ error: z.ZodObject<{
113
+ code: z.ZodEnum<{
114
+ VALIDATION_FAILED: "VALIDATION_FAILED";
115
+ UNAUTHENTICATED: "UNAUTHENTICATED";
116
+ FORBIDDEN: "FORBIDDEN";
117
+ NOT_FOUND: "NOT_FOUND";
118
+ CONFLICT: "CONFLICT";
119
+ RATE_LIMITED: "RATE_LIMITED";
120
+ INTERNAL: "INTERNAL";
121
+ }>;
122
+ message: z.ZodString;
123
+ details: z.ZodOptional<z.ZodUnknown>;
124
+ requestId: z.ZodOptional<z.ZodString>;
125
+ }, z.core.$strip>;
126
+ }, z.core.$strip>;
127
+ 422: z.ZodObject<{
128
+ ok: z.ZodLiteral<false>;
129
+ error: z.ZodObject<{
130
+ code: z.ZodEnum<{
131
+ VALIDATION_FAILED: "VALIDATION_FAILED";
132
+ UNAUTHENTICATED: "UNAUTHENTICATED";
133
+ FORBIDDEN: "FORBIDDEN";
134
+ NOT_FOUND: "NOT_FOUND";
135
+ CONFLICT: "CONFLICT";
136
+ RATE_LIMITED: "RATE_LIMITED";
137
+ INTERNAL: "INTERNAL";
138
+ }>;
139
+ message: z.ZodString;
140
+ details: z.ZodOptional<z.ZodUnknown>;
141
+ requestId: z.ZodOptional<z.ZodString>;
142
+ }, z.core.$strip>;
143
+ }, z.core.$strip>;
144
+ };
145
+ };
146
+ requestOtp: {
147
+ summary: "Request SMS OTP";
148
+ method: "POST";
149
+ body: z.ZodObject<{
150
+ phone: z.ZodString;
151
+ }, z.core.$strip>;
152
+ path: "/v1/auth/otp/request";
153
+ responses: {
154
+ 200: z.ZodObject<{
155
+ ok: z.ZodLiteral<true>;
156
+ data: z.ZodObject<{
157
+ sent: z.ZodLiteral<true>;
158
+ }, z.core.$strip>;
159
+ }, z.core.$strip>;
160
+ 429: z.ZodObject<{
161
+ ok: z.ZodLiteral<false>;
162
+ error: z.ZodObject<{
163
+ code: z.ZodEnum<{
164
+ VALIDATION_FAILED: "VALIDATION_FAILED";
165
+ UNAUTHENTICATED: "UNAUTHENTICATED";
166
+ FORBIDDEN: "FORBIDDEN";
167
+ NOT_FOUND: "NOT_FOUND";
168
+ CONFLICT: "CONFLICT";
169
+ RATE_LIMITED: "RATE_LIMITED";
170
+ INTERNAL: "INTERNAL";
171
+ }>;
172
+ message: z.ZodString;
173
+ details: z.ZodOptional<z.ZodUnknown>;
174
+ requestId: z.ZodOptional<z.ZodString>;
175
+ }, z.core.$strip>;
176
+ }, z.core.$strip>;
177
+ 422: z.ZodObject<{
178
+ ok: z.ZodLiteral<false>;
179
+ error: z.ZodObject<{
180
+ code: z.ZodEnum<{
181
+ VALIDATION_FAILED: "VALIDATION_FAILED";
182
+ UNAUTHENTICATED: "UNAUTHENTICATED";
183
+ FORBIDDEN: "FORBIDDEN";
184
+ NOT_FOUND: "NOT_FOUND";
185
+ CONFLICT: "CONFLICT";
186
+ RATE_LIMITED: "RATE_LIMITED";
187
+ INTERNAL: "INTERNAL";
188
+ }>;
189
+ message: z.ZodString;
190
+ details: z.ZodOptional<z.ZodUnknown>;
191
+ requestId: z.ZodOptional<z.ZodString>;
192
+ }, z.core.$strip>;
193
+ }, z.core.$strip>;
194
+ };
195
+ };
196
+ verifyOtp: {
197
+ summary: "Verify SMS OTP";
198
+ method: "POST";
199
+ body: z.ZodObject<{
200
+ phone: z.ZodString;
201
+ code: z.ZodString;
202
+ }, z.core.$strip>;
203
+ path: "/v1/auth/otp/verify";
204
+ responses: {
205
+ 200: z.ZodObject<{
206
+ ok: z.ZodLiteral<true>;
207
+ data: z.ZodObject<{
208
+ accessToken: z.ZodString;
209
+ refreshToken: z.ZodString;
210
+ expiresIn: z.ZodNumber;
211
+ user: z.ZodObject<{
212
+ id: z.ZodString;
213
+ email: z.ZodNullable<z.ZodString>;
214
+ phone: z.ZodNullable<z.ZodString>;
215
+ displayName: z.ZodString;
216
+ role: z.ZodEnum<{
217
+ USER: "USER";
218
+ ADMIN: "ADMIN";
219
+ OPS: "OPS";
220
+ }>;
221
+ status: z.ZodEnum<{
222
+ ACTIVE: "ACTIVE";
223
+ INVITED: "INVITED";
224
+ SUSPENDED: "SUSPENDED";
225
+ DELETED: "DELETED";
226
+ }>;
227
+ createdAt: z.ZodISODateTime;
228
+ }, z.core.$strip>;
229
+ }, z.core.$strip>;
230
+ }, z.core.$strip>;
231
+ 401: z.ZodObject<{
232
+ ok: z.ZodLiteral<false>;
233
+ error: z.ZodObject<{
234
+ code: z.ZodEnum<{
235
+ VALIDATION_FAILED: "VALIDATION_FAILED";
236
+ UNAUTHENTICATED: "UNAUTHENTICATED";
237
+ FORBIDDEN: "FORBIDDEN";
238
+ NOT_FOUND: "NOT_FOUND";
239
+ CONFLICT: "CONFLICT";
240
+ RATE_LIMITED: "RATE_LIMITED";
241
+ INTERNAL: "INTERNAL";
242
+ }>;
243
+ message: z.ZodString;
244
+ details: z.ZodOptional<z.ZodUnknown>;
245
+ requestId: z.ZodOptional<z.ZodString>;
246
+ }, z.core.$strip>;
247
+ }, z.core.$strip>;
248
+ 422: z.ZodObject<{
249
+ ok: z.ZodLiteral<false>;
250
+ error: z.ZodObject<{
251
+ code: z.ZodEnum<{
252
+ VALIDATION_FAILED: "VALIDATION_FAILED";
253
+ UNAUTHENTICATED: "UNAUTHENTICATED";
254
+ FORBIDDEN: "FORBIDDEN";
255
+ NOT_FOUND: "NOT_FOUND";
256
+ CONFLICT: "CONFLICT";
257
+ RATE_LIMITED: "RATE_LIMITED";
258
+ INTERNAL: "INTERNAL";
259
+ }>;
260
+ message: z.ZodString;
261
+ details: z.ZodOptional<z.ZodUnknown>;
262
+ requestId: z.ZodOptional<z.ZodString>;
263
+ }, z.core.$strip>;
264
+ }, z.core.$strip>;
265
+ };
266
+ };
267
+ refresh: {
268
+ summary: "Rotate refresh token";
269
+ method: "POST";
270
+ body: z.ZodObject<{
271
+ refreshToken: z.ZodString;
272
+ }, z.core.$strip>;
273
+ path: "/v1/auth/refresh";
274
+ responses: {
275
+ 200: z.ZodObject<{
276
+ ok: z.ZodLiteral<true>;
277
+ data: z.ZodObject<{
278
+ accessToken: z.ZodString;
279
+ refreshToken: z.ZodString;
280
+ expiresIn: z.ZodNumber;
281
+ user: z.ZodObject<{
282
+ id: z.ZodString;
283
+ email: z.ZodNullable<z.ZodString>;
284
+ phone: z.ZodNullable<z.ZodString>;
285
+ displayName: z.ZodString;
286
+ role: z.ZodEnum<{
287
+ USER: "USER";
288
+ ADMIN: "ADMIN";
289
+ OPS: "OPS";
290
+ }>;
291
+ status: z.ZodEnum<{
292
+ ACTIVE: "ACTIVE";
293
+ INVITED: "INVITED";
294
+ SUSPENDED: "SUSPENDED";
295
+ DELETED: "DELETED";
296
+ }>;
297
+ createdAt: z.ZodISODateTime;
298
+ }, z.core.$strip>;
299
+ }, z.core.$strip>;
300
+ }, z.core.$strip>;
301
+ 401: z.ZodObject<{
302
+ ok: z.ZodLiteral<false>;
303
+ error: z.ZodObject<{
304
+ code: z.ZodEnum<{
305
+ VALIDATION_FAILED: "VALIDATION_FAILED";
306
+ UNAUTHENTICATED: "UNAUTHENTICATED";
307
+ FORBIDDEN: "FORBIDDEN";
308
+ NOT_FOUND: "NOT_FOUND";
309
+ CONFLICT: "CONFLICT";
310
+ RATE_LIMITED: "RATE_LIMITED";
311
+ INTERNAL: "INTERNAL";
312
+ }>;
313
+ message: z.ZodString;
314
+ details: z.ZodOptional<z.ZodUnknown>;
315
+ requestId: z.ZodOptional<z.ZodString>;
316
+ }, z.core.$strip>;
317
+ }, z.core.$strip>;
318
+ };
319
+ };
320
+ logout: {
321
+ summary: "Revoke current session";
322
+ method: "POST";
323
+ body: z.ZodOptional<z.ZodObject<{}, z.core.$strip>>;
324
+ path: "/v1/auth/logout";
325
+ responses: {
326
+ 200: z.ZodObject<{
327
+ ok: z.ZodLiteral<true>;
328
+ data: z.ZodObject<{
329
+ revoked: z.ZodLiteral<true>;
330
+ }, z.core.$strip>;
331
+ }, z.core.$strip>;
332
+ 401: z.ZodObject<{
333
+ ok: z.ZodLiteral<false>;
334
+ error: z.ZodObject<{
335
+ code: z.ZodEnum<{
336
+ VALIDATION_FAILED: "VALIDATION_FAILED";
337
+ UNAUTHENTICATED: "UNAUTHENTICATED";
338
+ FORBIDDEN: "FORBIDDEN";
339
+ NOT_FOUND: "NOT_FOUND";
340
+ CONFLICT: "CONFLICT";
341
+ RATE_LIMITED: "RATE_LIMITED";
342
+ INTERNAL: "INTERNAL";
343
+ }>;
344
+ message: z.ZodString;
345
+ details: z.ZodOptional<z.ZodUnknown>;
346
+ requestId: z.ZodOptional<z.ZodString>;
347
+ }, z.core.$strip>;
348
+ }, z.core.$strip>;
349
+ };
350
+ };
351
+ me: {
352
+ summary: "Current user";
353
+ method: "GET";
354
+ path: "/v1/me";
355
+ responses: {
356
+ 200: z.ZodObject<{
357
+ ok: z.ZodLiteral<true>;
358
+ data: z.ZodObject<{
359
+ id: z.ZodString;
360
+ email: z.ZodNullable<z.ZodString>;
361
+ phone: z.ZodNullable<z.ZodString>;
362
+ displayName: z.ZodString;
363
+ role: z.ZodEnum<{
364
+ USER: "USER";
365
+ ADMIN: "ADMIN";
366
+ OPS: "OPS";
367
+ }>;
368
+ status: z.ZodEnum<{
369
+ ACTIVE: "ACTIVE";
370
+ INVITED: "INVITED";
371
+ SUSPENDED: "SUSPENDED";
372
+ DELETED: "DELETED";
373
+ }>;
374
+ createdAt: z.ZodISODateTime;
375
+ }, z.core.$strip>;
376
+ }, z.core.$strip>;
377
+ 401: z.ZodObject<{
378
+ ok: z.ZodLiteral<false>;
379
+ error: z.ZodObject<{
380
+ code: z.ZodEnum<{
381
+ VALIDATION_FAILED: "VALIDATION_FAILED";
382
+ UNAUTHENTICATED: "UNAUTHENTICATED";
383
+ FORBIDDEN: "FORBIDDEN";
384
+ NOT_FOUND: "NOT_FOUND";
385
+ CONFLICT: "CONFLICT";
386
+ RATE_LIMITED: "RATE_LIMITED";
387
+ INTERNAL: "INTERNAL";
388
+ }>;
389
+ message: z.ZodString;
390
+ details: z.ZodOptional<z.ZodUnknown>;
391
+ requestId: z.ZodOptional<z.ZodString>;
392
+ }, z.core.$strip>;
393
+ }, z.core.$strip>;
394
+ };
395
+ };
396
+ forgot: {
397
+ summary: "Request a password reset email";
398
+ method: "POST";
399
+ body: z.ZodObject<{
400
+ email: z.ZodString;
401
+ }, z.core.$strip>;
402
+ path: "/v1/auth/forgot";
403
+ responses: {
404
+ 200: z.ZodObject<{
405
+ ok: z.ZodLiteral<true>;
406
+ data: z.ZodObject<{
407
+ accepted: z.ZodLiteral<true>;
408
+ }, z.core.$strip>;
409
+ }, z.core.$strip>;
410
+ 422: z.ZodObject<{
411
+ ok: z.ZodLiteral<false>;
412
+ error: z.ZodObject<{
413
+ code: z.ZodEnum<{
414
+ VALIDATION_FAILED: "VALIDATION_FAILED";
415
+ UNAUTHENTICATED: "UNAUTHENTICATED";
416
+ FORBIDDEN: "FORBIDDEN";
417
+ NOT_FOUND: "NOT_FOUND";
418
+ CONFLICT: "CONFLICT";
419
+ RATE_LIMITED: "RATE_LIMITED";
420
+ INTERNAL: "INTERNAL";
421
+ }>;
422
+ message: z.ZodString;
423
+ details: z.ZodOptional<z.ZodUnknown>;
424
+ requestId: z.ZodOptional<z.ZodString>;
425
+ }, z.core.$strip>;
426
+ }, z.core.$strip>;
427
+ };
428
+ };
429
+ reset: {
430
+ summary: "Reset password with token";
431
+ method: "POST";
432
+ body: z.ZodObject<{
433
+ token: z.ZodString;
434
+ password: z.ZodString;
435
+ }, z.core.$strip>;
436
+ path: "/v1/auth/reset";
437
+ responses: {
438
+ 200: z.ZodObject<{
439
+ ok: z.ZodLiteral<true>;
440
+ data: z.ZodObject<{
441
+ accepted: z.ZodLiteral<true>;
442
+ }, z.core.$strip>;
443
+ }, z.core.$strip>;
444
+ 401: z.ZodObject<{
445
+ ok: z.ZodLiteral<false>;
446
+ error: z.ZodObject<{
447
+ code: z.ZodEnum<{
448
+ VALIDATION_FAILED: "VALIDATION_FAILED";
449
+ UNAUTHENTICATED: "UNAUTHENTICATED";
450
+ FORBIDDEN: "FORBIDDEN";
451
+ NOT_FOUND: "NOT_FOUND";
452
+ CONFLICT: "CONFLICT";
453
+ RATE_LIMITED: "RATE_LIMITED";
454
+ INTERNAL: "INTERNAL";
455
+ }>;
456
+ message: z.ZodString;
457
+ details: z.ZodOptional<z.ZodUnknown>;
458
+ requestId: z.ZodOptional<z.ZodString>;
459
+ }, z.core.$strip>;
460
+ }, z.core.$strip>;
461
+ 422: z.ZodObject<{
462
+ ok: z.ZodLiteral<false>;
463
+ error: z.ZodObject<{
464
+ code: z.ZodEnum<{
465
+ VALIDATION_FAILED: "VALIDATION_FAILED";
466
+ UNAUTHENTICATED: "UNAUTHENTICATED";
467
+ FORBIDDEN: "FORBIDDEN";
468
+ NOT_FOUND: "NOT_FOUND";
469
+ CONFLICT: "CONFLICT";
470
+ RATE_LIMITED: "RATE_LIMITED";
471
+ INTERNAL: "INTERNAL";
472
+ }>;
473
+ message: z.ZodString;
474
+ details: z.ZodOptional<z.ZodUnknown>;
475
+ requestId: z.ZodOptional<z.ZodString>;
476
+ }, z.core.$strip>;
477
+ }, z.core.$strip>;
478
+ };
479
+ };
480
+ requestAdminOtp: {
481
+ summary: "Request admin email OTP";
482
+ method: "POST";
483
+ body: z.ZodObject<{
484
+ email: z.ZodString;
485
+ }, z.core.$strip>;
486
+ path: "/v1/auth/admin/otp/request";
487
+ responses: {
488
+ 200: z.ZodObject<{
489
+ ok: z.ZodLiteral<true>;
490
+ data: z.ZodObject<{
491
+ sent: z.ZodLiteral<true>;
492
+ }, z.core.$strip>;
493
+ }, z.core.$strip>;
494
+ 429: z.ZodObject<{
495
+ ok: z.ZodLiteral<false>;
496
+ error: z.ZodObject<{
497
+ code: z.ZodEnum<{
498
+ VALIDATION_FAILED: "VALIDATION_FAILED";
499
+ UNAUTHENTICATED: "UNAUTHENTICATED";
500
+ FORBIDDEN: "FORBIDDEN";
501
+ NOT_FOUND: "NOT_FOUND";
502
+ CONFLICT: "CONFLICT";
503
+ RATE_LIMITED: "RATE_LIMITED";
504
+ INTERNAL: "INTERNAL";
505
+ }>;
506
+ message: z.ZodString;
507
+ details: z.ZodOptional<z.ZodUnknown>;
508
+ requestId: z.ZodOptional<z.ZodString>;
509
+ }, z.core.$strip>;
510
+ }, z.core.$strip>;
511
+ 422: z.ZodObject<{
512
+ ok: z.ZodLiteral<false>;
513
+ error: z.ZodObject<{
514
+ code: z.ZodEnum<{
515
+ VALIDATION_FAILED: "VALIDATION_FAILED";
516
+ UNAUTHENTICATED: "UNAUTHENTICATED";
517
+ FORBIDDEN: "FORBIDDEN";
518
+ NOT_FOUND: "NOT_FOUND";
519
+ CONFLICT: "CONFLICT";
520
+ RATE_LIMITED: "RATE_LIMITED";
521
+ INTERNAL: "INTERNAL";
522
+ }>;
523
+ message: z.ZodString;
524
+ details: z.ZodOptional<z.ZodUnknown>;
525
+ requestId: z.ZodOptional<z.ZodString>;
526
+ }, z.core.$strip>;
527
+ }, z.core.$strip>;
528
+ };
529
+ };
530
+ verifyAdminOtp: {
531
+ summary: "Verify admin email OTP";
532
+ method: "POST";
533
+ body: z.ZodObject<{
534
+ email: z.ZodString;
535
+ code: z.ZodString;
536
+ }, z.core.$strip>;
537
+ path: "/v1/auth/admin/otp/verify";
538
+ responses: {
539
+ 200: z.ZodObject<{
540
+ ok: z.ZodLiteral<true>;
541
+ data: z.ZodObject<{
542
+ accessToken: z.ZodString;
543
+ refreshToken: z.ZodString;
544
+ expiresIn: z.ZodNumber;
545
+ user: z.ZodObject<{
546
+ id: z.ZodString;
547
+ email: z.ZodNullable<z.ZodString>;
548
+ phone: z.ZodNullable<z.ZodString>;
549
+ displayName: z.ZodString;
550
+ role: z.ZodEnum<{
551
+ USER: "USER";
552
+ ADMIN: "ADMIN";
553
+ OPS: "OPS";
554
+ }>;
555
+ status: z.ZodEnum<{
556
+ ACTIVE: "ACTIVE";
557
+ INVITED: "INVITED";
558
+ SUSPENDED: "SUSPENDED";
559
+ DELETED: "DELETED";
560
+ }>;
561
+ createdAt: z.ZodISODateTime;
562
+ }, z.core.$strip>;
563
+ }, z.core.$strip>;
564
+ }, z.core.$strip>;
565
+ 401: z.ZodObject<{
566
+ ok: z.ZodLiteral<false>;
567
+ error: z.ZodObject<{
568
+ code: z.ZodEnum<{
569
+ VALIDATION_FAILED: "VALIDATION_FAILED";
570
+ UNAUTHENTICATED: "UNAUTHENTICATED";
571
+ FORBIDDEN: "FORBIDDEN";
572
+ NOT_FOUND: "NOT_FOUND";
573
+ CONFLICT: "CONFLICT";
574
+ RATE_LIMITED: "RATE_LIMITED";
575
+ INTERNAL: "INTERNAL";
576
+ }>;
577
+ message: z.ZodString;
578
+ details: z.ZodOptional<z.ZodUnknown>;
579
+ requestId: z.ZodOptional<z.ZodString>;
580
+ }, z.core.$strip>;
581
+ }, z.core.$strip>;
582
+ 422: z.ZodObject<{
583
+ ok: z.ZodLiteral<false>;
584
+ error: z.ZodObject<{
585
+ code: z.ZodEnum<{
586
+ VALIDATION_FAILED: "VALIDATION_FAILED";
587
+ UNAUTHENTICATED: "UNAUTHENTICATED";
588
+ FORBIDDEN: "FORBIDDEN";
589
+ NOT_FOUND: "NOT_FOUND";
590
+ CONFLICT: "CONFLICT";
591
+ RATE_LIMITED: "RATE_LIMITED";
592
+ INTERNAL: "INTERNAL";
593
+ }>;
594
+ message: z.ZodString;
595
+ details: z.ZodOptional<z.ZodUnknown>;
596
+ requestId: z.ZodOptional<z.ZodString>;
597
+ }, z.core.$strip>;
598
+ }, z.core.$strip>;
599
+ };
600
+ };
601
+ };
602
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/api/auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoBxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6EvB,CAAC"}
@@ -0,0 +1,85 @@
1
+ import { initContract } from '@ts-rest/core';
2
+ import { z } from 'zod';
3
+ import { AcceptedSchema, ForgotPasswordCommandSchema, LoginPasswordCommandSchema, RefreshCommandSchema, RegisterCommandSchema, RequestAdminOtpCommandSchema, RequestOtpCommandSchema, RequestOtpResultSchema, ResetPasswordCommandSchema, TokenPairDtoSchema, VerifyAdminOtpCommandSchema, VerifyOtpCommandSchema, } from '../dto/auth';
4
+ import { UserDtoSchema } from '../dto/user';
5
+ import { ErrSchema, OkSchema } from '../errors/envelope';
6
+ const c = initContract();
7
+ export const authContract = c.router({
8
+ register: {
9
+ method: 'POST',
10
+ path: '/v1/auth/register',
11
+ body: RegisterCommandSchema,
12
+ responses: { 201: OkSchema(TokenPairDtoSchema), 409: ErrSchema, 422: ErrSchema },
13
+ summary: 'Register with email',
14
+ },
15
+ login: {
16
+ method: 'POST',
17
+ path: '/v1/auth/login',
18
+ body: LoginPasswordCommandSchema,
19
+ responses: { 200: OkSchema(TokenPairDtoSchema), 401: ErrSchema, 422: ErrSchema },
20
+ summary: 'Login with email and password',
21
+ },
22
+ requestOtp: {
23
+ method: 'POST',
24
+ path: '/v1/auth/otp/request',
25
+ body: RequestOtpCommandSchema,
26
+ responses: { 200: OkSchema(RequestOtpResultSchema), 429: ErrSchema, 422: ErrSchema },
27
+ summary: 'Request SMS OTP',
28
+ },
29
+ verifyOtp: {
30
+ method: 'POST',
31
+ path: '/v1/auth/otp/verify',
32
+ body: VerifyOtpCommandSchema,
33
+ responses: { 200: OkSchema(TokenPairDtoSchema), 401: ErrSchema, 422: ErrSchema },
34
+ summary: 'Verify SMS OTP',
35
+ },
36
+ refresh: {
37
+ method: 'POST',
38
+ path: '/v1/auth/refresh',
39
+ body: RefreshCommandSchema,
40
+ responses: { 200: OkSchema(TokenPairDtoSchema), 401: ErrSchema },
41
+ summary: 'Rotate refresh token',
42
+ },
43
+ logout: {
44
+ method: 'POST',
45
+ path: '/v1/auth/logout',
46
+ body: z.object({}).optional(),
47
+ responses: { 200: OkSchema(z.object({ revoked: z.literal(true) })), 401: ErrSchema },
48
+ summary: 'Revoke current session',
49
+ },
50
+ me: {
51
+ method: 'GET',
52
+ path: '/v1/me',
53
+ responses: { 200: OkSchema(UserDtoSchema), 401: ErrSchema },
54
+ summary: 'Current user',
55
+ },
56
+ forgot: {
57
+ method: 'POST',
58
+ path: '/v1/auth/forgot',
59
+ body: ForgotPasswordCommandSchema,
60
+ responses: { 200: OkSchema(AcceptedSchema), 422: ErrSchema },
61
+ summary: 'Request a password reset email',
62
+ },
63
+ reset: {
64
+ method: 'POST',
65
+ path: '/v1/auth/reset',
66
+ body: ResetPasswordCommandSchema,
67
+ responses: { 200: OkSchema(AcceptedSchema), 401: ErrSchema, 422: ErrSchema },
68
+ summary: 'Reset password with token',
69
+ },
70
+ requestAdminOtp: {
71
+ method: 'POST',
72
+ path: '/v1/auth/admin/otp/request',
73
+ body: RequestAdminOtpCommandSchema,
74
+ responses: { 200: OkSchema(RequestOtpResultSchema), 429: ErrSchema, 422: ErrSchema },
75
+ summary: 'Request admin email OTP',
76
+ },
77
+ verifyAdminOtp: {
78
+ method: 'POST',
79
+ path: '/v1/auth/admin/otp/verify',
80
+ body: VerifyAdminOtpCommandSchema,
81
+ responses: { 200: OkSchema(TokenPairDtoSchema), 401: ErrSchema, 422: ErrSchema },
82
+ summary: 'Verify admin email OTP',
83
+ },
84
+ });
85
+ //# sourceMappingURL=auth.js.map