@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 @@
1
+ {"version":3,"file":"permission.js","sourceRoot":"","sources":["../../src/enums/permission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAC5B,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,SAAS;IAClB,gBAAgB,EAAE,kBAAkB;CAC5B,CAAC;AAGX,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAkC,CAAC;AAC5F,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,gBAAgB,GAA4C;IACvE,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,gBAAgB,CAAC;IAC/E,GAAG,EAAE;QACH,UAAU,CAAC,WAAW;QACtB,UAAU,CAAC,WAAW;QACtB,UAAU,CAAC,UAAU;QACrB,UAAU,CAAC,OAAO;QAClB,UAAU,CAAC,gBAAgB;KAC5B;IACD,KAAK,EAAE;QACL,UAAU,CAAC,WAAW;QACtB,UAAU,CAAC,WAAW;QACtB,UAAU,CAAC,YAAY;QACvB,UAAU,CAAC,UAAU;QACrB,UAAU,CAAC,OAAO;QAClB,UAAU,CAAC,gBAAgB;KAC5B;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAc,EAAE,UAAsB,EAAW,EAAE,CACnF,gBAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAE9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAA+D,EAC/D,UAAsB,EACb,EAAE;IACX,IAAI,MAAM,CAAC,WAAW;QAAE,OAAO,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACvE,OAAO,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AACpD,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ export declare const Platform: {
3
+ readonly WEB: "web";
4
+ readonly IOS: "ios";
5
+ readonly ANDROID: "android";
6
+ readonly ADMIN: "admin";
7
+ readonly DESKTOP: "desktop";
8
+ readonly API: "api";
9
+ };
10
+ export type Platform = (typeof Platform)[keyof typeof Platform];
11
+ export declare const PLATFORM_VALUES: [Platform, ...Platform[]];
12
+ export declare const PlatformSchema: z.ZodEnum<{
13
+ ios: "ios";
14
+ android: "android";
15
+ web: "web";
16
+ admin: "admin";
17
+ desktop: "desktop";
18
+ api: "api";
19
+ }>;
20
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/enums/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,QAAQ;;;;;;;CAOX,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAChE,eAAO,MAAM,eAAe,EAA8B,CAAC,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;AACpF,eAAO,MAAM,cAAc;;;;;;;EAA0B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+ export const Platform = {
3
+ WEB: 'web',
4
+ IOS: 'ios',
5
+ ANDROID: 'android',
6
+ ADMIN: 'admin',
7
+ DESKTOP: 'desktop',
8
+ API: 'api',
9
+ };
10
+ export const PLATFORM_VALUES = Object.values(Platform);
11
+ export const PlatformSchema = z.enum(PLATFORM_VALUES);
12
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/enums/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,KAAK;CACF,CAAC;AAGX,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAA8B,CAAC;AACpF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ export declare const RealtimeEvent: {
3
+ readonly NOTIFICATION_CREATED: "notification.created";
4
+ };
5
+ export type RealtimeEvent = (typeof RealtimeEvent)[keyof typeof RealtimeEvent];
6
+ export declare const REALTIME_EVENT_VALUES: [RealtimeEvent, ...RealtimeEvent[]];
7
+ export declare const RealtimeEventSchema: z.ZodEnum<{
8
+ "notification.created": "notification.created";
9
+ }>;
10
+ //# sourceMappingURL=realtime-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-event.d.ts","sourceRoot":"","sources":["../../src/enums/realtime-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,aAAa;;CAEhB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAC/E,eAAO,MAAM,qBAAqB,EAAmC,CACnE,aAAa,EACb,GAAG,aAAa,EAAE,CACnB,CAAC;AACF,eAAO,MAAM,mBAAmB;;EAAgC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod';
2
+ export const RealtimeEvent = {
3
+ NOTIFICATION_CREATED: 'notification.created',
4
+ };
5
+ export const REALTIME_EVENT_VALUES = Object.values(RealtimeEvent);
6
+ export const RealtimeEventSchema = z.enum(REALTIME_EVENT_VALUES);
7
+ //# sourceMappingURL=realtime-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-event.js","sourceRoot":"","sources":["../../src/enums/realtime-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,oBAAoB,EAAE,sBAAsB;CACpC,CAAC;AAGX,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAG/D,CAAC;AACF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ export declare const UserRole: {
3
+ readonly USER: "USER";
4
+ readonly ADMIN: "ADMIN";
5
+ readonly OPS: "OPS";
6
+ };
7
+ export type UserRole = (typeof UserRole)[keyof typeof UserRole];
8
+ export declare const USER_ROLE_VALUES: [UserRole, ...UserRole[]];
9
+ export declare const UserRoleSchema: z.ZodEnum<{
10
+ USER: "USER";
11
+ ADMIN: "ADMIN";
12
+ OPS: "OPS";
13
+ }>;
14
+ export declare const USER_ROLE_LABELS: Record<UserRole, {
15
+ 'zh-HK': string;
16
+ en: string;
17
+ }>;
18
+ //# sourceMappingURL=user-role.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-role.d.ts","sourceRoot":"","sources":["../../src/enums/user-role.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,QAAQ;;;;CAIX,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAChE,eAAO,MAAM,gBAAgB,EAA8B,CAAC,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;AACrF,eAAO,MAAM,cAAc;;;;EAA2B,CAAC;AAEvD,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAI9E,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ export const UserRole = {
3
+ USER: 'USER',
4
+ ADMIN: 'ADMIN',
5
+ OPS: 'OPS',
6
+ };
7
+ export const USER_ROLE_VALUES = Object.values(UserRole);
8
+ export const UserRoleSchema = z.enum(USER_ROLE_VALUES);
9
+ export const USER_ROLE_LABELS = {
10
+ USER: { 'zh-HK': '用戶', en: 'User' },
11
+ ADMIN: { 'zh-HK': '管理員', en: 'Admin' },
12
+ OPS: { 'zh-HK': '營運', en: 'Ops' },
13
+ };
14
+ //# sourceMappingURL=user-role.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-role.js","sourceRoot":"","sources":["../../src/enums/user-role.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,GAAG,EAAE,KAAK;CACF,CAAC;AAGX,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAA8B,CAAC;AACrF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,gBAAgB,GAAsD;IACjF,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE;IACnC,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE;IACtC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE;CAClC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ export declare const UserStatus: {
3
+ readonly ACTIVE: "ACTIVE";
4
+ readonly INVITED: "INVITED";
5
+ readonly SUSPENDED: "SUSPENDED";
6
+ readonly DELETED: "DELETED";
7
+ };
8
+ export type UserStatus = (typeof UserStatus)[keyof typeof UserStatus];
9
+ export declare const USER_STATUS_VALUES: [UserStatus, ...UserStatus[]];
10
+ export declare const UserStatusSchema: z.ZodEnum<{
11
+ ACTIVE: "ACTIVE";
12
+ INVITED: "INVITED";
13
+ SUSPENDED: "SUSPENDED";
14
+ DELETED: "DELETED";
15
+ }>;
16
+ export declare const USER_STATUS_LABELS: Record<UserStatus, {
17
+ 'zh-HK': string;
18
+ en: string;
19
+ }>;
20
+ //# sourceMappingURL=user-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-status.d.ts","sourceRoot":"","sources":["../../src/enums/user-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AACtE,eAAO,MAAM,kBAAkB,EAAgC,CAAC,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;AAC7F,eAAO,MAAM,gBAAgB;;;;;EAA6B,CAAC;AAE3D,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,UAAU,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAKlF,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ export const UserStatus = {
3
+ ACTIVE: 'ACTIVE',
4
+ INVITED: 'INVITED',
5
+ SUSPENDED: 'SUSPENDED',
6
+ DELETED: 'DELETED',
7
+ };
8
+ export const USER_STATUS_VALUES = Object.values(UserStatus);
9
+ export const UserStatusSchema = z.enum(USER_STATUS_VALUES);
10
+ export const USER_STATUS_LABELS = {
11
+ ACTIVE: { 'zh-HK': '啟用', en: 'Active' },
12
+ INVITED: { 'zh-HK': '已邀請', en: 'Invited' },
13
+ SUSPENDED: { 'zh-HK': '停用', en: 'Suspended' },
14
+ DELETED: { 'zh-HK': '已刪除', en: 'Deleted' },
15
+ };
16
+ //# sourceMappingURL=user-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-status.js","sourceRoot":"","sources":["../../src/enums/user-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;CACV,CAAC;AAGX,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAkC,CAAC;AAC7F,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,kBAAkB,GAAwD;IACrF,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE;IACvC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE;IAC1C,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE;IAC7C,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE;CAC3C,CAAC"}
@@ -0,0 +1,12 @@
1
+ export declare const ErrorCode: {
2
+ readonly VALIDATION_FAILED: "VALIDATION_FAILED";
3
+ readonly UNAUTHENTICATED: "UNAUTHENTICATED";
4
+ readonly FORBIDDEN: "FORBIDDEN";
5
+ readonly NOT_FOUND: "NOT_FOUND";
6
+ readonly CONFLICT: "CONFLICT";
7
+ readonly RATE_LIMITED: "RATE_LIMITED";
8
+ readonly INTERNAL: "INTERNAL";
9
+ };
10
+ export type ErrorCode = (typeof ErrorCode)[keyof typeof ErrorCode];
11
+ export declare const ERROR_CODE_VALUES: [ErrorCode, ...ErrorCode[]];
12
+ //# sourceMappingURL=codes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codes.d.ts","sourceRoot":"","sources":["../../src/errors/codes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;;;;;CAQZ,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AACnE,eAAO,MAAM,iBAAiB,EAA+B,CAAC,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export const ErrorCode = {
2
+ VALIDATION_FAILED: 'VALIDATION_FAILED',
3
+ UNAUTHENTICATED: 'UNAUTHENTICATED',
4
+ FORBIDDEN: 'FORBIDDEN',
5
+ NOT_FOUND: 'NOT_FOUND',
6
+ CONFLICT: 'CONFLICT',
7
+ RATE_LIMITED: 'RATE_LIMITED',
8
+ INTERNAL: 'INTERNAL',
9
+ };
10
+ export const ERROR_CODE_VALUES = Object.values(ErrorCode);
11
+ //# sourceMappingURL=codes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codes.js","sourceRoot":"","sources":["../../src/errors/codes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,iBAAiB,EAAE,mBAAmB;IACtC,eAAe,EAAE,iBAAiB;IAClC,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,YAAY,EAAE,cAAc;IAC5B,QAAQ,EAAE,UAAU;CACZ,CAAC;AAGX,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAgC,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { z } from 'zod';
2
+ export declare const ApiErrorBodySchema: z.ZodObject<{
3
+ code: z.ZodEnum<{
4
+ VALIDATION_FAILED: "VALIDATION_FAILED";
5
+ UNAUTHENTICATED: "UNAUTHENTICATED";
6
+ FORBIDDEN: "FORBIDDEN";
7
+ NOT_FOUND: "NOT_FOUND";
8
+ CONFLICT: "CONFLICT";
9
+ RATE_LIMITED: "RATE_LIMITED";
10
+ INTERNAL: "INTERNAL";
11
+ }>;
12
+ message: z.ZodString;
13
+ details: z.ZodOptional<z.ZodUnknown>;
14
+ requestId: z.ZodOptional<z.ZodString>;
15
+ }, z.core.$strip>;
16
+ export type ApiErrorBody = z.infer<typeof ApiErrorBodySchema>;
17
+ export declare const OkSchema: <T extends z.ZodType>(data: T) => z.ZodObject<{
18
+ ok: z.ZodLiteral<true>;
19
+ data: T;
20
+ }, z.core.$strip>;
21
+ export declare const ErrSchema: z.ZodObject<{
22
+ ok: z.ZodLiteral<false>;
23
+ error: z.ZodObject<{
24
+ code: z.ZodEnum<{
25
+ VALIDATION_FAILED: "VALIDATION_FAILED";
26
+ UNAUTHENTICATED: "UNAUTHENTICATED";
27
+ FORBIDDEN: "FORBIDDEN";
28
+ NOT_FOUND: "NOT_FOUND";
29
+ CONFLICT: "CONFLICT";
30
+ RATE_LIMITED: "RATE_LIMITED";
31
+ INTERNAL: "INTERNAL";
32
+ }>;
33
+ message: z.ZodString;
34
+ details: z.ZodOptional<z.ZodUnknown>;
35
+ requestId: z.ZodOptional<z.ZodString>;
36
+ }, z.core.$strip>;
37
+ }, z.core.$strip>;
38
+ export type ErrEnvelope = z.infer<typeof ErrSchema>;
39
+ export type OkEnvelope<T> = {
40
+ ok: true;
41
+ data: T;
42
+ };
43
+ //# sourceMappingURL=envelope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/errors/envelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;iBAK7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC;;;iBAA4C,CAAC;AAElG,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;iBAGpB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AACpD,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ import { ERROR_CODE_VALUES } from './codes';
3
+ export const ApiErrorBodySchema = z.object({
4
+ code: z.enum(ERROR_CODE_VALUES),
5
+ message: z.string(),
6
+ details: z.unknown().optional(),
7
+ requestId: z.string().optional(),
8
+ });
9
+ export const OkSchema = (data) => z.object({ ok: z.literal(true), data });
10
+ export const ErrSchema = z.object({
11
+ ok: z.literal(false),
12
+ error: ApiErrorBodySchema,
13
+ });
14
+ //# sourceMappingURL=envelope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/errors/envelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;IAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAsB,IAAO,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAElG,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACpB,KAAK,EAAE,kBAAkB;CAC1B,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './codes';
2
+ export * from './envelope';
3
+ export * from './messages';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './codes';
2
+ export * from './envelope';
3
+ export * from './messages';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ErrorCode } from './codes';
2
+ export declare const ERROR_MESSAGE: Record<ErrorCode, {
3
+ 'zh-HK': string;
4
+ en: string;
5
+ }>;
6
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/errors/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAQ5E,CAAC"}
@@ -0,0 +1,10 @@
1
+ export const ERROR_MESSAGE = {
2
+ VALIDATION_FAILED: { 'zh-HK': '資料格式不正確', en: 'Validation failed' },
3
+ UNAUTHENTICATED: { 'zh-HK': '尚未登入', en: 'Unauthenticated' },
4
+ FORBIDDEN: { 'zh-HK': '沒有權限', en: 'Forbidden' },
5
+ NOT_FOUND: { 'zh-HK': '找不到資料', en: 'Not found' },
6
+ CONFLICT: { 'zh-HK': '狀態衝突', en: 'Conflict' },
7
+ RATE_LIMITED: { 'zh-HK': '請求過於頻密', en: 'Rate limited' },
8
+ INTERNAL: { 'zh-HK': '系統錯誤', en: 'Internal error' },
9
+ };
10
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/errors/messages.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAuD;IAC/E,iBAAiB,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,mBAAmB,EAAE;IAClE,eAAe,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,iBAAiB,EAAE;IAC3D,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE;IAC/C,SAAS,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE;IAChD,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE;IAC7C,YAAY,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE;IACvD,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,gBAAgB,EAAE;CACpD,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './api';
2
+ export * from './constants/hk';
3
+ export * from './dto';
4
+ export * from './enums';
5
+ export * from './errors';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ export * from './api';
2
+ export * from './constants/hk';
3
+ export * from './dto';
4
+ export * from './enums';
5
+ export * from './errors';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
package/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "@ysk-kit/contracts",
3
+ "version": "1.0.0",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "import": "./dist/index.js"
11
+ }
12
+ },
13
+ "dependencies": {
14
+ "@ts-rest/core": "3.53.0-rc.1",
15
+ "zod": "^4.6.5"
16
+ },
17
+ "devDependencies": {
18
+ "@types/node": "^24.5.2",
19
+ "typescript": "^6.0.3",
20
+ "vitest": "^5.0.2"
21
+ },
22
+ "files": [
23
+ "dist"
24
+ ],
25
+ "publishConfig": {
26
+ "registry": "https://registry.npmjs.org",
27
+ "access": "public"
28
+ },
29
+ "scripts": {
30
+ "typecheck": "tsc --noEmit -p tsconfig.json",
31
+ "test": "vitest run --passWithNoTests",
32
+ "build": "tsc -p tsconfig.build.json"
33
+ }
34
+ }