@sekolaos/shared-api 1.3.1 → 1.4.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 (103) hide show
  1. package/dist/{chunk-ZPEEFUEC.cjs → chunk-4LZJ36WZ.cjs} +4 -4
  2. package/dist/{chunk-ZPEEFUEC.cjs.map → chunk-4LZJ36WZ.cjs.map} +1 -1
  3. package/dist/{chunk-KB4TZTAC.cjs → chunk-4UJJALG5.cjs} +15 -17
  4. package/dist/chunk-4UJJALG5.cjs.map +1 -0
  5. package/dist/{chunk-U7YG2GA7.js → chunk-55WQN2DX.js} +3 -3
  6. package/dist/{chunk-U7YG2GA7.js.map → chunk-55WQN2DX.js.map} +1 -1
  7. package/dist/{chunk-XNH67ORL.js → chunk-7GCYXFMU.js} +16 -4
  8. package/dist/chunk-7GCYXFMU.js.map +1 -0
  9. package/dist/{chunk-FVPR2MOB.js → chunk-B2BMTZUU.js} +3 -3
  10. package/dist/{chunk-FVPR2MOB.js.map → chunk-B2BMTZUU.js.map} +1 -1
  11. package/dist/{chunk-NPR4GLFZ.js → chunk-BKRQIZIV.js} +3 -3
  12. package/dist/{chunk-NPR4GLFZ.js.map → chunk-BKRQIZIV.js.map} +1 -1
  13. package/dist/{chunk-PQFTPOP4.js → chunk-CARJ6QAB.js} +3 -3
  14. package/dist/{chunk-PQFTPOP4.js.map → chunk-CARJ6QAB.js.map} +1 -1
  15. package/dist/{chunk-Y4YURM53.cjs → chunk-DSGF264Y.cjs} +12 -12
  16. package/dist/{chunk-Y4YURM53.cjs.map → chunk-DSGF264Y.cjs.map} +1 -1
  17. package/dist/{chunk-LS4ZQRFS.cjs → chunk-EXEAVSTX.cjs} +11 -11
  18. package/dist/{chunk-LS4ZQRFS.cjs.map → chunk-EXEAVSTX.cjs.map} +1 -1
  19. package/dist/{chunk-BBJBCD2K.cjs → chunk-IWV6SOVN.cjs} +6 -6
  20. package/dist/{chunk-BBJBCD2K.cjs.map → chunk-IWV6SOVN.cjs.map} +1 -1
  21. package/dist/{chunk-N4OBLYCQ.cjs → chunk-IXMKB5VH.cjs} +6 -6
  22. package/dist/{chunk-N4OBLYCQ.cjs.map → chunk-IXMKB5VH.cjs.map} +1 -1
  23. package/dist/chunk-JBIEHGQ6.js +213 -0
  24. package/dist/chunk-JBIEHGQ6.js.map +1 -0
  25. package/dist/{chunk-H5WMOGLJ.js → chunk-KPGOAAOU.js} +3 -3
  26. package/dist/{chunk-H5WMOGLJ.js.map → chunk-KPGOAAOU.js.map} +1 -1
  27. package/dist/{chunk-23XAR4OH.cjs → chunk-N6Y2VQWI.cjs} +9 -9
  28. package/dist/{chunk-23XAR4OH.cjs.map → chunk-N6Y2VQWI.cjs.map} +1 -1
  29. package/dist/chunk-NGEJP5ON.cjs +39 -0
  30. package/dist/chunk-NGEJP5ON.cjs.map +1 -0
  31. package/dist/{chunk-HISL2IF2.cjs → chunk-NUKJPRPS.cjs} +17 -3
  32. package/dist/chunk-NUKJPRPS.cjs.map +1 -0
  33. package/dist/{chunk-SBBVQ3Z2.cjs → chunk-PDJ6OU3X.cjs} +5 -5
  34. package/dist/{chunk-SBBVQ3Z2.cjs.map → chunk-PDJ6OU3X.cjs.map} +1 -1
  35. package/dist/{chunk-ROK2DEVT.js → chunk-Q4UVXJMH.js} +3 -3
  36. package/dist/{chunk-ROK2DEVT.js.map → chunk-Q4UVXJMH.js.map} +1 -1
  37. package/dist/{chunk-DATSHIPR.js → chunk-R2S5EWDS.js} +3 -3
  38. package/dist/{chunk-DATSHIPR.js.map → chunk-R2S5EWDS.js.map} +1 -1
  39. package/dist/{chunk-RDW4IZWK.js → chunk-RGA4HK7T.js} +3 -3
  40. package/dist/{chunk-RDW4IZWK.js.map → chunk-RGA4HK7T.js.map} +1 -1
  41. package/dist/{chunk-CSEMYBBZ.js → chunk-TSMUTMIE.js} +9 -11
  42. package/dist/chunk-TSMUTMIE.js.map +1 -0
  43. package/dist/{chunk-AMKVNGY4.cjs → chunk-UJN47JNP.cjs} +11 -11
  44. package/dist/{chunk-AMKVNGY4.cjs.map → chunk-UJN47JNP.cjs.map} +1 -1
  45. package/dist/{chunk-NVU4IIMA.cjs → chunk-V7QGZZXE.cjs} +8 -8
  46. package/dist/{chunk-NVU4IIMA.cjs.map → chunk-V7QGZZXE.cjs.map} +1 -1
  47. package/dist/{chunk-NCENQB6W.js → chunk-WFDOYOBG.js} +3 -3
  48. package/dist/{chunk-NCENQB6W.js.map → chunk-WFDOYOBG.js.map} +1 -1
  49. package/dist/chunk-XGKBOKII.cjs +244 -0
  50. package/dist/chunk-XGKBOKII.cjs.map +1 -0
  51. package/dist/chunk-YJOKPUPT.js +34 -0
  52. package/dist/chunk-YJOKPUPT.js.map +1 -0
  53. package/dist/index.cjs +254 -165
  54. package/dist/index.d.cts +5 -4
  55. package/dist/index.d.ts +5 -4
  56. package/dist/index.js +14 -13
  57. package/dist/keys/index.cjs +21 -13
  58. package/dist/keys/index.d.cts +14 -1
  59. package/dist/keys/index.d.ts +14 -1
  60. package/dist/keys/index.js +1 -1
  61. package/dist/modules/academic/index.cjs +10 -10
  62. package/dist/modules/academic/index.js +2 -2
  63. package/dist/modules/attendance/index.cjs +80 -16
  64. package/dist/modules/attendance/index.d.cts +138 -4
  65. package/dist/modules/attendance/index.d.ts +138 -4
  66. package/dist/modules/attendance/index.js +2 -2
  67. package/dist/modules/auth/index.cjs +18 -18
  68. package/dist/modules/auth/index.d.cts +3 -21
  69. package/dist/modules/auth/index.d.ts +3 -21
  70. package/dist/modules/auth/index.js +2 -2
  71. package/dist/modules/classroom/index.cjs +14 -14
  72. package/dist/modules/classroom/index.js +2 -2
  73. package/dist/modules/lead/index.cjs +10 -10
  74. package/dist/modules/lead/index.js +2 -2
  75. package/dist/modules/roles/index.cjs +29 -0
  76. package/dist/modules/roles/index.cjs.map +1 -0
  77. package/dist/modules/roles/index.d.cts +39 -0
  78. package/dist/modules/roles/index.d.ts +39 -0
  79. package/dist/modules/roles/index.js +8 -0
  80. package/dist/modules/roles/index.js.map +1 -0
  81. package/dist/modules/student/index.cjs +18 -18
  82. package/dist/modules/student/index.js +2 -2
  83. package/dist/modules/subject/index.cjs +8 -8
  84. package/dist/modules/subject/index.js +2 -2
  85. package/dist/modules/system/index.cjs +4 -4
  86. package/dist/modules/system/index.js +2 -2
  87. package/dist/modules/teaching-schedule/index.cjs +14 -14
  88. package/dist/modules/teaching-schedule/index.js +2 -2
  89. package/dist/modules/tenant/index.cjs +16 -16
  90. package/dist/modules/tenant/index.js +2 -2
  91. package/dist/modules/user/index.cjs +14 -14
  92. package/dist/modules/user/index.d.cts +10 -20
  93. package/dist/modules/user/index.d.ts +10 -20
  94. package/dist/modules/user/index.js +2 -2
  95. package/package.json +143 -137
  96. package/dist/chunk-CSEMYBBZ.js.map +0 -1
  97. package/dist/chunk-HISL2IF2.cjs.map +0 -1
  98. package/dist/chunk-ID3UGFZZ.js +0 -102
  99. package/dist/chunk-ID3UGFZZ.js.map +0 -1
  100. package/dist/chunk-JVX37TC5.cjs +0 -117
  101. package/dist/chunk-JVX37TC5.cjs.map +0 -1
  102. package/dist/chunk-KB4TZTAC.cjs.map +0 -1
  103. package/dist/chunk-XNH67ORL.js.map +0 -1
@@ -1,61 +1,61 @@
1
1
  'use strict';
2
2
 
3
- var chunkKB4TZTAC_cjs = require('../../chunk-KB4TZTAC.cjs');
3
+ var chunk4UJJALG5_cjs = require('../../chunk-4UJJALG5.cjs');
4
4
  require('../../chunk-3TOBH3YY.cjs');
5
5
  require('../../chunk-NGFFI4XQ.cjs');
6
6
  require('../../chunk-PPK3HQOY.cjs');
7
- require('../../chunk-HISL2IF2.cjs');
7
+ require('../../chunk-NUKJPRPS.cjs');
8
8
  require('../../chunk-5KSKHZWB.cjs');
9
9
 
10
10
 
11
11
 
12
12
  Object.defineProperty(exports, "assignUserRoles", {
13
13
  enumerable: true,
14
- get: function () { return chunkKB4TZTAC_cjs.assignUserRoles; }
14
+ get: function () { return chunk4UJJALG5_cjs.assignUserRoles; }
15
15
  });
16
16
  Object.defineProperty(exports, "createTeacher", {
17
17
  enumerable: true,
18
- get: function () { return chunkKB4TZTAC_cjs.createTeacher; }
18
+ get: function () { return chunk4UJJALG5_cjs.createTeacher; }
19
19
  });
20
20
  Object.defineProperty(exports, "getTeacher", {
21
21
  enumerable: true,
22
- get: function () { return chunkKB4TZTAC_cjs.getTeacher; }
22
+ get: function () { return chunk4UJJALG5_cjs.getTeacher; }
23
23
  });
24
24
  Object.defineProperty(exports, "listRoles", {
25
25
  enumerable: true,
26
- get: function () { return chunkKB4TZTAC_cjs.listRoles; }
26
+ get: function () { return chunk4UJJALG5_cjs.listRoles; }
27
27
  });
28
28
  Object.defineProperty(exports, "listTeachers", {
29
29
  enumerable: true,
30
- get: function () { return chunkKB4TZTAC_cjs.listTeachers; }
30
+ get: function () { return chunk4UJJALG5_cjs.listTeachers; }
31
31
  });
32
32
  Object.defineProperty(exports, "updateTeacher", {
33
33
  enumerable: true,
34
- get: function () { return chunkKB4TZTAC_cjs.updateTeacher; }
34
+ get: function () { return chunk4UJJALG5_cjs.updateTeacher; }
35
35
  });
36
36
  Object.defineProperty(exports, "useAssignUserRoles", {
37
37
  enumerable: true,
38
- get: function () { return chunkKB4TZTAC_cjs.useAssignUserRoles; }
38
+ get: function () { return chunk4UJJALG5_cjs.useAssignUserRoles; }
39
39
  });
40
40
  Object.defineProperty(exports, "useCreateTeacher", {
41
41
  enumerable: true,
42
- get: function () { return chunkKB4TZTAC_cjs.useCreateTeacher; }
42
+ get: function () { return chunk4UJJALG5_cjs.useCreateTeacher; }
43
43
  });
44
44
  Object.defineProperty(exports, "useRoles", {
45
45
  enumerable: true,
46
- get: function () { return chunkKB4TZTAC_cjs.useRoles; }
46
+ get: function () { return chunk4UJJALG5_cjs.useRoles; }
47
47
  });
48
48
  Object.defineProperty(exports, "useTeacher", {
49
49
  enumerable: true,
50
- get: function () { return chunkKB4TZTAC_cjs.useTeacher; }
50
+ get: function () { return chunk4UJJALG5_cjs.useTeacher; }
51
51
  });
52
52
  Object.defineProperty(exports, "useTeachers", {
53
53
  enumerable: true,
54
- get: function () { return chunkKB4TZTAC_cjs.useTeachers; }
54
+ get: function () { return chunk4UJJALG5_cjs.useTeachers; }
55
55
  });
56
56
  Object.defineProperty(exports, "useUpdateTeacher", {
57
57
  enumerable: true,
58
- get: function () { return chunkKB4TZTAC_cjs.useUpdateTeacher; }
58
+ get: function () { return chunk4UJJALG5_cjs.useUpdateTeacher; }
59
59
  });
60
60
  //# sourceMappingURL=index.cjs.map
61
61
  //# sourceMappingURL=index.cjs.map
@@ -1,5 +1,5 @@
1
1
  import * as _tanstack_react_query from '@tanstack/react-query';
2
- import { AssignUserRolesRequest, UserProfile, CreateTeacherInput, Role, TeacherListQuery, User, UpdateTeacherInput } from '@sekolaos/shared-schema';
2
+ import { AssignUserRolesRequest, CreateTeacherInput, UserProfile, Role, TeacherListQuery, User, UpdateTeacherInput } from '@sekolaos/shared-schema';
3
3
  export { AssignUserRolesRequest, CreateTeacherInput, Role, TeacherListQuery, UpdateTeacherInput, User, UserProfile } from '@sekolaos/shared-schema';
4
4
 
5
5
  declare function listRoles(): Promise<Role[]>;
@@ -7,7 +7,11 @@ declare function listTeachers(params?: Partial<TeacherListQuery>): Promise<User[
7
7
  declare function getTeacher(id: string): Promise<UserProfile>;
8
8
  declare function createTeacher(payload: CreateTeacherInput): Promise<UserProfile>;
9
9
  declare function updateTeacher(id: string, payload: UpdateTeacherInput): Promise<UserProfile>;
10
- declare function assignUserRoles(payload: AssignUserRolesRequest): Promise<UserProfile>;
10
+ declare function assignUserRoles(userId: string, payload: AssignUserRolesRequest): Promise<{
11
+ userId: string;
12
+ roleIds: string[];
13
+ academicYearId: string;
14
+ }>;
11
15
  declare function useRoles(): _tanstack_react_query.UseQueryResult<{
12
16
  id: string;
13
17
  tenantId: string | null;
@@ -92,26 +96,12 @@ declare function useUpdateTeacher(): _tanstack_react_query.UseMutationResult<{
92
96
  payload: UpdateTeacherInput;
93
97
  }, unknown>;
94
98
  declare function useAssignUserRoles(): _tanstack_react_query.UseMutationResult<{
95
- id: string;
96
- tenantId: string;
97
- createdAt: string;
98
- updatedAt: string;
99
- isActive: boolean;
100
- username: string;
101
- email: string;
102
- fullName: string;
103
- nip?: string | null | undefined;
104
- phoneNumber?: string | null | undefined;
105
- roles?: {
106
- permissions: Record<string, string[]>;
107
- roleId: string;
108
- roleName: string;
109
- roleSlug: string;
110
- }[] | undefined;
111
- }, Error, {
112
99
  userId: string;
113
- academicYearId: string;
114
100
  roleIds: string[];
101
+ academicYearId: string;
102
+ }, Error, {
103
+ userId: string;
104
+ payload: AssignUserRolesRequest;
115
105
  }, unknown>;
116
106
 
117
107
  export { assignUserRoles, createTeacher, getTeacher, listRoles, listTeachers, updateTeacher, useAssignUserRoles, useCreateTeacher, useRoles, useTeacher, useTeachers, useUpdateTeacher };
@@ -1,5 +1,5 @@
1
1
  import * as _tanstack_react_query from '@tanstack/react-query';
2
- import { AssignUserRolesRequest, UserProfile, CreateTeacherInput, Role, TeacherListQuery, User, UpdateTeacherInput } from '@sekolaos/shared-schema';
2
+ import { AssignUserRolesRequest, CreateTeacherInput, UserProfile, Role, TeacherListQuery, User, UpdateTeacherInput } from '@sekolaos/shared-schema';
3
3
  export { AssignUserRolesRequest, CreateTeacherInput, Role, TeacherListQuery, UpdateTeacherInput, User, UserProfile } from '@sekolaos/shared-schema';
4
4
 
5
5
  declare function listRoles(): Promise<Role[]>;
@@ -7,7 +7,11 @@ declare function listTeachers(params?: Partial<TeacherListQuery>): Promise<User[
7
7
  declare function getTeacher(id: string): Promise<UserProfile>;
8
8
  declare function createTeacher(payload: CreateTeacherInput): Promise<UserProfile>;
9
9
  declare function updateTeacher(id: string, payload: UpdateTeacherInput): Promise<UserProfile>;
10
- declare function assignUserRoles(payload: AssignUserRolesRequest): Promise<UserProfile>;
10
+ declare function assignUserRoles(userId: string, payload: AssignUserRolesRequest): Promise<{
11
+ userId: string;
12
+ roleIds: string[];
13
+ academicYearId: string;
14
+ }>;
11
15
  declare function useRoles(): _tanstack_react_query.UseQueryResult<{
12
16
  id: string;
13
17
  tenantId: string | null;
@@ -92,26 +96,12 @@ declare function useUpdateTeacher(): _tanstack_react_query.UseMutationResult<{
92
96
  payload: UpdateTeacherInput;
93
97
  }, unknown>;
94
98
  declare function useAssignUserRoles(): _tanstack_react_query.UseMutationResult<{
95
- id: string;
96
- tenantId: string;
97
- createdAt: string;
98
- updatedAt: string;
99
- isActive: boolean;
100
- username: string;
101
- email: string;
102
- fullName: string;
103
- nip?: string | null | undefined;
104
- phoneNumber?: string | null | undefined;
105
- roles?: {
106
- permissions: Record<string, string[]>;
107
- roleId: string;
108
- roleName: string;
109
- roleSlug: string;
110
- }[] | undefined;
111
- }, Error, {
112
99
  userId: string;
113
- academicYearId: string;
114
100
  roleIds: string[];
101
+ academicYearId: string;
102
+ }, Error, {
103
+ userId: string;
104
+ payload: AssignUserRolesRequest;
115
105
  }, unknown>;
116
106
 
117
107
  export { assignUserRoles, createTeacher, getTeacher, listRoles, listTeachers, updateTeacher, useAssignUserRoles, useCreateTeacher, useRoles, useTeacher, useTeachers, useUpdateTeacher };
@@ -1,8 +1,8 @@
1
- export { assignUserRoles, createTeacher, getTeacher, listRoles, listTeachers, updateTeacher, useAssignUserRoles, useCreateTeacher, useRoles, useTeacher, useTeachers, useUpdateTeacher } from '../../chunk-CSEMYBBZ.js';
1
+ export { assignUserRoles, createTeacher, getTeacher, listRoles, listTeachers, updateTeacher, useAssignUserRoles, useCreateTeacher, useRoles, useTeacher, useTeachers, useUpdateTeacher } from '../../chunk-TSMUTMIE.js';
2
2
  import '../../chunk-Q5ZX6TKB.js';
3
3
  import '../../chunk-6JGO2CUT.js';
4
4
  import '../../chunk-GRXFSXG5.js';
5
- import '../../chunk-XNH67ORL.js';
5
+ import '../../chunk-7GCYXFMU.js';
6
6
  import '../../chunk-H3CE34TG.js';
7
7
  //# sourceMappingURL=index.js.map
8
8
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,137 +1,143 @@
1
- {
2
- "name": "@sekolaos/shared-api",
3
- "version": "1.3.1",
4
- "description": "Shared HTTP API client, TanStack Query hooks, and query key factory for Sekolaos ecosystem aligned with OpenAPI 3.0.3",
5
- "license": "ISC",
6
- "author": "Sekolaos",
7
- "type": "module",
8
- "main": "./dist/index.cjs",
9
- "module": "./dist/index.js",
10
- "types": "./dist/index.d.ts",
11
- "sideEffects": false,
12
- "exports": {
13
- ".": {
14
- "types": "./dist/index.d.ts",
15
- "import": "./dist/index.js",
16
- "require": "./dist/index.cjs"
17
- },
18
- "./client": {
19
- "types": "./dist/client/index.d.ts",
20
- "import": "./dist/client/index.js",
21
- "require": "./dist/client/index.cjs"
22
- },
23
- "./keys": {
24
- "types": "./dist/keys/index.d.ts",
25
- "import": "./dist/keys/index.js",
26
- "require": "./dist/keys/index.cjs"
27
- },
28
- "./provider": {
29
- "types": "./dist/provider.d.ts",
30
- "import": "./dist/provider.js",
31
- "require": "./dist/provider.cjs"
32
- },
33
- "./auth": {
34
- "types": "./dist/modules/auth/index.d.ts",
35
- "import": "./dist/modules/auth/index.js",
36
- "require": "./dist/modules/auth/index.cjs"
37
- },
38
- "./tenant": {
39
- "types": "./dist/modules/tenant/index.d.ts",
40
- "import": "./dist/modules/tenant/index.js",
41
- "require": "./dist/modules/tenant/index.cjs"
42
- },
43
- "./academic": {
44
- "types": "./dist/modules/academic/index.d.ts",
45
- "import": "./dist/modules/academic/index.js",
46
- "require": "./dist/modules/academic/index.cjs"
47
- },
48
- "./classroom": {
49
- "types": "./dist/modules/classroom/index.d.ts",
50
- "import": "./dist/modules/classroom/index.js",
51
- "require": "./dist/modules/classroom/index.cjs"
52
- },
53
- "./student": {
54
- "types": "./dist/modules/student/index.d.ts",
55
- "import": "./dist/modules/student/index.js",
56
- "require": "./dist/modules/student/index.cjs"
57
- },
58
- "./subject": {
59
- "types": "./dist/modules/subject/index.d.ts",
60
- "import": "./dist/modules/subject/index.js",
61
- "require": "./dist/modules/subject/index.cjs"
62
- },
63
- "./teaching-schedule": {
64
- "types": "./dist/modules/teaching-schedule/index.d.ts",
65
- "import": "./dist/modules/teaching-schedule/index.js",
66
- "require": "./dist/modules/teaching-schedule/index.cjs"
67
- },
68
- "./user": {
69
- "types": "./dist/modules/user/index.d.ts",
70
- "import": "./dist/modules/user/index.js",
71
- "require": "./dist/modules/user/index.cjs"
72
- },
73
- "./attendance": {
74
- "types": "./dist/modules/attendance/index.d.ts",
75
- "import": "./dist/modules/attendance/index.js",
76
- "require": "./dist/modules/attendance/index.cjs"
77
- },
78
- "./upload": {
79
- "types": "./dist/modules/upload/index.d.ts",
80
- "import": "./dist/modules/upload/index.js",
81
- "require": "./dist/modules/upload/index.cjs"
82
- },
83
- "./lead": {
84
- "types": "./dist/modules/lead/index.d.ts",
85
- "import": "./dist/modules/lead/index.js",
86
- "require": "./dist/modules/lead/index.cjs"
87
- },
88
- "./system": {
89
- "types": "./dist/modules/system/index.d.ts",
90
- "import": "./dist/modules/system/index.js",
91
- "require": "./dist/modules/system/index.cjs"
92
- },
93
- "./package.json": "./package.json"
94
- },
95
- "files": [
96
- "dist"
97
- ],
98
- "engines": {
99
- "node": ">=20.0.0"
100
- },
101
- "peerDependencies": {
102
- "react": "^19.3.1",
103
- "react-dom": "^19.3.1"
104
- },
105
- "dependencies": {
106
- "@sekolaos/shared-schema": "1.6.1",
107
- "@tanstack/react-query": "^5.59.16",
108
- "axios": "^1.7.7"
109
- },
110
- "devDependencies": {
111
- "@types/node": "^22.9.0",
112
- "@types/react": "19.0.0",
113
- "@types/react-dom": "19.0.0",
114
- "react": "19.3.1",
115
- "react-dom": "19.3.1",
116
- "rimraf": "^6.0.1",
117
- "tsup": "^8.3.5",
118
- "typescript": "^5.6.3"
119
- },
120
- "publishConfig": {
121
- "access": "public",
122
- "registry": "https://registry.npmjs.org"
123
- },
124
- "keywords": [
125
- "sekolaos",
126
- "http-client",
127
- "axios",
128
- "tanstack-query",
129
- "query-key-factory"
130
- ],
131
- "scripts": {
132
- "dev": "tsup --watch",
133
- "build": "tsup",
134
- "typecheck": "tsc --noEmit",
135
- "clean": "rimraf dist"
136
- }
137
- }
1
+ {
2
+ "name": "@sekolaos/shared-api",
3
+ "version": "1.4.0",
4
+ "description": "Shared HTTP API client, TanStack Query hooks, and query key factory for Sekolaos ecosystem aligned with OpenAPI 3.0.3",
5
+ "license": "ISC",
6
+ "author": "Sekolaos",
7
+ "type": "module",
8
+ "main": "./dist/index.cjs",
9
+ "module": "./dist/index.js",
10
+ "types": "./dist/index.d.ts",
11
+ "sideEffects": false,
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/index.d.ts",
15
+ "import": "./dist/index.js",
16
+ "require": "./dist/index.cjs"
17
+ },
18
+ "./client": {
19
+ "types": "./dist/client/index.d.ts",
20
+ "import": "./dist/client/index.js",
21
+ "require": "./dist/client/index.cjs"
22
+ },
23
+ "./keys": {
24
+ "types": "./dist/keys/index.d.ts",
25
+ "import": "./dist/keys/index.js",
26
+ "require": "./dist/keys/index.cjs"
27
+ },
28
+ "./provider": {
29
+ "types": "./dist/provider.d.ts",
30
+ "import": "./dist/provider.js",
31
+ "require": "./dist/provider.cjs"
32
+ },
33
+ "./auth": {
34
+ "types": "./dist/modules/auth/index.d.ts",
35
+ "import": "./dist/modules/auth/index.js",
36
+ "require": "./dist/modules/auth/index.cjs"
37
+ },
38
+ "./tenant": {
39
+ "types": "./dist/modules/tenant/index.d.ts",
40
+ "import": "./dist/modules/tenant/index.js",
41
+ "require": "./dist/modules/tenant/index.cjs"
42
+ },
43
+ "./academic": {
44
+ "types": "./dist/modules/academic/index.d.ts",
45
+ "import": "./dist/modules/academic/index.js",
46
+ "require": "./dist/modules/academic/index.cjs"
47
+ },
48
+ "./classroom": {
49
+ "types": "./dist/modules/classroom/index.d.ts",
50
+ "import": "./dist/modules/classroom/index.js",
51
+ "require": "./dist/modules/classroom/index.cjs"
52
+ },
53
+ "./student": {
54
+ "types": "./dist/modules/student/index.d.ts",
55
+ "import": "./dist/modules/student/index.js",
56
+ "require": "./dist/modules/student/index.cjs"
57
+ },
58
+ "./subject": {
59
+ "types": "./dist/modules/subject/index.d.ts",
60
+ "import": "./dist/modules/subject/index.js",
61
+ "require": "./dist/modules/subject/index.cjs"
62
+ },
63
+ "./teaching-schedule": {
64
+ "types": "./dist/modules/teaching-schedule/index.d.ts",
65
+ "import": "./dist/modules/teaching-schedule/index.js",
66
+ "require": "./dist/modules/teaching-schedule/index.cjs"
67
+ },
68
+ "./user": {
69
+ "types": "./dist/modules/user/index.d.ts",
70
+ "import": "./dist/modules/user/index.js",
71
+ "require": "./dist/modules/user/index.cjs"
72
+ },
73
+ "./attendance": {
74
+ "types": "./dist/modules/attendance/index.d.ts",
75
+ "import": "./dist/modules/attendance/index.js",
76
+ "require": "./dist/modules/attendance/index.cjs"
77
+ },
78
+ "./roles": {
79
+ "types": "./dist/modules/roles/index.d.ts",
80
+ "import": "./dist/modules/roles/index.js",
81
+ "require": "./dist/modules/roles/index.cjs"
82
+ },
83
+ "./upload": {
84
+ "types": "./dist/modules/upload/index.d.ts",
85
+ "import": "./dist/modules/upload/index.js",
86
+ "require": "./dist/modules/upload/index.cjs"
87
+ },
88
+ "./lead": {
89
+ "types": "./dist/modules/lead/index.d.ts",
90
+ "import": "./dist/modules/lead/index.js",
91
+ "require": "./dist/modules/lead/index.cjs"
92
+ },
93
+ "./system": {
94
+ "types": "./dist/modules/system/index.d.ts",
95
+ "import": "./dist/modules/system/index.js",
96
+ "require": "./dist/modules/system/index.cjs"
97
+ },
98
+ "./package.json": "./package.json"
99
+ },
100
+ "files": [
101
+ "dist"
102
+ ],
103
+ "engines": {
104
+ "node": ">=20.0.0"
105
+ },
106
+ "scripts": {
107
+ "dev": "tsup --watch",
108
+ "build": "tsup",
109
+ "typecheck": "tsc --noEmit",
110
+ "clean": "rimraf dist",
111
+ "prepublishOnly": "pnpm run typecheck && pnpm run build"
112
+ },
113
+ "peerDependencies": {
114
+ "react": "^19.3.1",
115
+ "react-dom": "^19.3.1"
116
+ },
117
+ "dependencies": {
118
+ "@sekolaos/shared-schema": "1.7.2",
119
+ "@tanstack/react-query": "^5.59.16",
120
+ "axios": "^1.7.7"
121
+ },
122
+ "devDependencies": {
123
+ "@types/node": "^22.9.0",
124
+ "@types/react": "19.0.0",
125
+ "@types/react-dom": "19.0.0",
126
+ "react": "19.3.1",
127
+ "react-dom": "19.3.1",
128
+ "rimraf": "^6.0.1",
129
+ "tsup": "^8.3.5",
130
+ "typescript": "^5.6.3"
131
+ },
132
+ "publishConfig": {
133
+ "access": "public",
134
+ "registry": "https://registry.npmjs.org"
135
+ },
136
+ "keywords": [
137
+ "sekolaos",
138
+ "http-client",
139
+ "axios",
140
+ "tanstack-query",
141
+ "query-key-factory"
142
+ ]
143
+ }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/modules/user/user.api.ts"],"names":[],"mappings":"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","file":"chunk-CSEMYBBZ.js","sourcesContent":["import type {\r\n AssignUserRolesRequest,\r\n CreateTeacherInput,\r\n Role,\r\n TeacherListQuery,\r\n UpdateTeacherInput,\r\n User,\r\n UserProfile,\r\n} from \"@sekolaos/shared-schema\";\r\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\r\nimport { API_ENDPOINTS } from \"../../common/endpoints\";\r\nimport { getData, getPaginated, postData, putData } from \"../../client/http\";\r\nimport { userKeys } from \"../../keys\";\r\n\r\nconst ENDPOINT = API_ENDPOINTS.users;\r\n\r\nexport async function listRoles(): Promise<Role[]> {\r\n return getData<Role[]>(`${ENDPOINT}/roles`);\r\n}\r\n\r\nexport async function listTeachers(params?: Partial<TeacherListQuery>): Promise<User[]> {\r\n const result = await getPaginated<User>(`${ENDPOINT}/teachers`, { params });\r\n return result.items;\r\n}\r\n\r\nexport async function getTeacher(id: string): Promise<UserProfile> {\r\n return getData<UserProfile>(`${ENDPOINT}/teachers/${id}`);\r\n}\r\n\r\nexport async function createTeacher(payload: CreateTeacherInput): Promise<UserProfile> {\r\n return postData<UserProfile, CreateTeacherInput>(`${ENDPOINT}/teachers`, payload);\r\n}\r\n\r\nexport async function updateTeacher(\r\n id: string,\r\n payload: UpdateTeacherInput\r\n): Promise<UserProfile> {\r\n return putData<UserProfile, UpdateTeacherInput>(`${ENDPOINT}/teachers/${id}`, payload);\r\n}\r\n\r\nexport async function assignUserRoles(payload: AssignUserRolesRequest): Promise<UserProfile> {\r\n return postData<UserProfile, AssignUserRolesRequest>(\r\n `${ENDPOINT}/teachers/assign-roles`,\r\n payload\r\n );\r\n}\r\n\r\nexport function useRoles() {\r\n return useQuery({ queryKey: userKeys.roles(), queryFn: listRoles, staleTime: 5 * 60_000 });\r\n}\r\n\r\nexport function useTeachers(params?: Partial<TeacherListQuery>) {\r\n return useQuery({\r\n queryKey: userKeys.teachers(params as Record<string, unknown> | undefined),\r\n queryFn: () => listTeachers(params),\r\n });\r\n}\r\n\r\nexport function useTeacher(id: string, options?: { enabled?: boolean }) {\r\n return useQuery({\r\n queryKey: userKeys.teacherDetail(id),\r\n queryFn: () => getTeacher(id),\r\n enabled: options?.enabled ?? Boolean(id),\r\n });\r\n}\r\n\r\nexport function useCreateTeacher() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: createTeacher,\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries({ queryKey: userKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport function useUpdateTeacher() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: ({ id, payload }: { id: string; payload: UpdateTeacherInput }) =>\r\n updateTeacher(id, payload),\r\n onSuccess: async (_data, variables) => {\r\n await queryClient.invalidateQueries({ queryKey: userKeys.teacherDetail(variables.id) });\r\n await queryClient.invalidateQueries({ queryKey: userKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport function useAssignUserRoles() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: assignUserRoles,\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries();\r\n },\r\n });\r\n}\r\n\r\nexport type {\r\n AssignUserRolesRequest,\r\n CreateTeacherInput,\r\n Role,\r\n TeacherListQuery,\r\n UpdateTeacherInput,\r\n User,\r\n UserProfile,\r\n};\r\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/keys/index.ts"],"names":[],"mappings":"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","file":"chunk-HISL2IF2.cjs","sourcesContent":["type Params = Record<string, unknown> | undefined;\r\n\r\nexport const authKeys = {\r\n all: [\"auth\"] as const,\r\n me: () => [...authKeys.all, \"me\"] as const,\r\n selectTenant: () => [...authKeys.all, \"select-tenant\"] as const,\r\n};\r\n\r\nexport const tenantKeys = {\r\n all: [\"tenants\"] as const,\r\n current: () => [...tenantKeys.all, \"current\"] as const,\r\n modules: () => [...tenantKeys.all, \"modules\"] as const,\r\n shifts: (params?: Params) => [...tenantKeys.all, \"shifts\", params ?? {}] as const,\r\n shiftDetail: (targetType: \"SISWA\" | \"GURU\") => [...tenantKeys.all, \"shifts\", targetType] as const,\r\n};\r\n\r\nexport const academicYearKeys = {\r\n all: [\"academic-years\"] as const,\r\n list: (params?: Params) => [...academicYearKeys.all, \"list\", params ?? {}] as const,\r\n detail: (id: string) => [...academicYearKeys.all, \"detail\", id] as const,\r\n};\r\n\r\nexport const subjectKeys = {\r\n all: [\"subjects\"] as const,\r\n list: (params?: Params) => [...subjectKeys.all, \"list\", params ?? {}] as const,\r\n};\r\n\r\nexport const classroomKeys = {\r\n all: [\"classrooms\"] as const,\r\n list: (params?: Params) => [...classroomKeys.all, \"list\", params ?? {}] as const,\r\n detail: (id: string) => [...classroomKeys.all, \"detail\", id] as const,\r\n students: (id: string) => [...classroomKeys.detail(id), \"students\"] as const,\r\n};\r\n\r\nexport const studentKeys = {\r\n all: [\"students\"] as const,\r\n list: (params?: Params) => [...studentKeys.all, \"list\", params ?? {}] as const,\r\n detail: (id: string) => [...studentKeys.all, \"detail\", id] as const,\r\n kioskCache: () => [...studentKeys.all, \"kiosk-cache\"] as const,\r\n qrCode: (id: string) => [...studentKeys.detail(id), \"qr-code\"] as const,\r\n};\r\n\r\nexport const scheduleKeys = {\r\n all: [\"teaching-schedules\"] as const,\r\n list: (params?: Params) => [...scheduleKeys.all, \"list\", params ?? {}] as const,\r\n conflicts: (params: Record<string, unknown>) => [...scheduleKeys.all, \"conflicts\", params] as const,\r\n};\r\n\r\nexport const attendanceKeys = {\r\n all: [\"attendance\"] as const,\r\n history: (params: Record<string, unknown>) => [...attendanceKeys.all, \"history\", params] as const,\r\n dynamicQrStream: (params?: Record<string, unknown>) =>\r\n [...attendanceKeys.all, \"dynamic-qr\", params ?? {}] as const,\r\n picketSchedules: (params?: Params) => [...attendanceKeys.all, \"picket-schedules\", params ?? {}] as const,\r\n};\r\n\r\nexport const userKeys = {\r\n all: [\"users\"] as const,\r\n roles: () => [...userKeys.all, \"roles\"] as const,\r\n teachers: (params?: Params) => [...userKeys.all, \"teachers\", \"list\", params ?? {}] as const,\r\n teacherDetail: (id: string) => [...userKeys.all, \"teachers\", \"detail\", id] as const,\r\n};\r\n\r\nexport const leadKeys = {\r\n all: [\"leads\"] as const,\r\n list: (params?: Params) => [...leadKeys.all, \"list\", params ?? {}] as const,\r\n};\r\n\r\nexport const uploadKeys = {\r\n all: [\"uploads\"] as const,\r\n};\r\n\r\nexport const systemKeys = {\r\n all: [\"system\"] as const,\r\n health: () => [...systemKeys.all, \"health\"] as const,\r\n};\r\n\r\nexport * from \"./platform-admin.keys\";\r\n"]}
@@ -1,102 +0,0 @@
1
- import { API_ENDPOINTS } from './chunk-Q5ZX6TKB.js';
2
- import { getPaginated, postData, getData } from './chunk-6JGO2CUT.js';
3
- import { apiClient } from './chunk-GRXFSXG5.js';
4
- import { attendanceKeys } from './chunk-XNH67ORL.js';
5
- import { useQuery, useQueryClient, useMutation } from '@tanstack/react-query';
6
-
7
- var ENDPOINT = API_ENDPOINTS.attendance;
8
- async function getAttendanceHistory(params) {
9
- return getPaginated(`${ENDPOINT}/history`, { params });
10
- }
11
- async function batchSyncAttendance(payload) {
12
- return postData(
13
- `${ENDPOINT}/batch-sync`,
14
- payload
15
- );
16
- }
17
- async function updateClassAttendance(payload) {
18
- return postData(
19
- `${ENDPOINT}/class-update`,
20
- payload
21
- );
22
- }
23
- async function getDynamicQrStream(params) {
24
- if (params?.format === "text") {
25
- const response = await apiClient.get(`${ENDPOINT}/dynamic-qr/stream`, { params });
26
- return response.data;
27
- }
28
- return getData(`${ENDPOINT}/dynamic-qr/stream`, { params });
29
- }
30
- async function verifyDynamicQr(payload) {
31
- return postData(
32
- `${ENDPOINT}/dynamic-qr/verify`,
33
- payload
34
- );
35
- }
36
- async function listPicketSchedules(params) {
37
- return getData(`${ENDPOINT}/picket-schedules`, { params });
38
- }
39
- async function createPicketAssignment(payload) {
40
- return postData(
41
- `${ENDPOINT}/picket-schedules`,
42
- payload
43
- );
44
- }
45
- function useAttendanceHistory(params, enabled = true) {
46
- return useQuery({
47
- queryKey: attendanceKeys.history(params),
48
- queryFn: () => getAttendanceHistory(params),
49
- enabled
50
- });
51
- }
52
- function useDynamicQrStream(params, enabled = true) {
53
- return useQuery({
54
- queryKey: attendanceKeys.dynamicQrStream(params),
55
- queryFn: () => getDynamicQrStream(params),
56
- enabled,
57
- refetchInterval: 15e3
58
- });
59
- }
60
- function usePicketSchedules(options) {
61
- return useQuery({
62
- queryKey: attendanceKeys.picketSchedules(),
63
- queryFn: () => listPicketSchedules(),
64
- ...options
65
- });
66
- }
67
- function useBatchSyncAttendance() {
68
- const queryClient = useQueryClient();
69
- return useMutation({
70
- mutationFn: batchSyncAttendance,
71
- onSuccess: async () => {
72
- await queryClient.invalidateQueries({ queryKey: attendanceKeys.all });
73
- }
74
- });
75
- }
76
- function useUpdateClassAttendance() {
77
- const queryClient = useQueryClient();
78
- return useMutation({
79
- mutationFn: updateClassAttendance,
80
- onSuccess: async () => {
81
- await queryClient.invalidateQueries({ queryKey: attendanceKeys.all });
82
- }
83
- });
84
- }
85
- function useVerifyDynamicQr() {
86
- return useMutation({ mutationFn: verifyDynamicQr });
87
- }
88
- function useCreatePicketAssignment(options) {
89
- const queryClient = useQueryClient();
90
- return useMutation({
91
- mutationFn: createPicketAssignment,
92
- onSuccess: (data, vars, ctx) => {
93
- queryClient.invalidateQueries({ queryKey: attendanceKeys.all });
94
- options?.onSuccess?.(data, vars, ctx);
95
- },
96
- ...options
97
- });
98
- }
99
-
100
- export { batchSyncAttendance, createPicketAssignment, getAttendanceHistory, getDynamicQrStream, listPicketSchedules, updateClassAttendance, useAttendanceHistory, useBatchSyncAttendance, useCreatePicketAssignment, useDynamicQrStream, usePicketSchedules, useUpdateClassAttendance, useVerifyDynamicQr, verifyDynamicQr };
101
- //# sourceMappingURL=chunk-ID3UGFZZ.js.map
102
- //# sourceMappingURL=chunk-ID3UGFZZ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/modules/attendance/attendance.api.ts"],"names":[],"mappings":"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","file":"chunk-ID3UGFZZ.js","sourcesContent":["import type {\r\n AttendanceHistoryItem,\r\n AttendanceHistoryQuery,\r\n AttendanceHistoryResult,\r\n BatchSyncAttendanceRequest,\r\n BatchSyncAttendanceResponse,\r\n ClassUpdateAttendanceResult,\r\n CreatePicketAssignmentInput,\r\n DynamicQrStreamQuery,\r\n DynamicQrStreamResult,\r\n DynamicQrVerifyResult,\r\n PicketAssignment,\r\n PicketScheduleListQuery,\r\n TeacherScanDynamicQrRequest,\r\n UpdateClassAttendanceRequest,\r\n} from \"@sekolaos/shared-schema\";\r\nimport { useMutation, useQuery, useQueryClient } from \"@tanstack/react-query\";\r\nimport { API_ENDPOINTS } from \"../../common/endpoints\";\r\nimport { apiClient } from \"../../client/axios-instance\";\r\nimport { getData, getPaginated, postData } from \"../../client/http\";\r\nimport type { MutationOptionsCustom, PaginatedResult, QueryOptionsWithoutKey } from \"../../client/types\";\r\nimport { attendanceKeys } from \"../../keys\";\r\n\r\nconst ENDPOINT = API_ENDPOINTS.attendance;\r\n\r\nexport async function getAttendanceHistory(\r\n params: AttendanceHistoryQuery\r\n): Promise<AttendanceHistoryResult> {\r\n return getPaginated<AttendanceHistoryItem>(`${ENDPOINT}/history`, { params });\r\n}\r\n\r\nexport async function batchSyncAttendance(\r\n payload: BatchSyncAttendanceRequest\r\n): Promise<BatchSyncAttendanceResponse> {\r\n return postData<BatchSyncAttendanceResponse, BatchSyncAttendanceRequest>(\r\n `${ENDPOINT}/batch-sync`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function updateClassAttendance(\r\n payload: UpdateClassAttendanceRequest\r\n): Promise<ClassUpdateAttendanceResult> {\r\n return postData<ClassUpdateAttendanceResult, UpdateClassAttendanceRequest>(\r\n `${ENDPOINT}/class-update`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function getDynamicQrStream(\r\n params?: DynamicQrStreamQuery\r\n): Promise<DynamicQrStreamResult | string> {\r\n if (params?.format === \"text\") {\r\n const response = await apiClient.get<string>(`${ENDPOINT}/dynamic-qr/stream`, { params });\r\n return response.data;\r\n }\r\n return getData<DynamicQrStreamResult>(`${ENDPOINT}/dynamic-qr/stream`, { params });\r\n}\r\n\r\nexport async function verifyDynamicQr(\r\n payload: TeacherScanDynamicQrRequest\r\n): Promise<DynamicQrVerifyResult> {\r\n return postData<DynamicQrVerifyResult, TeacherScanDynamicQrRequest>(\r\n `${ENDPOINT}/dynamic-qr/verify`,\r\n payload\r\n );\r\n}\r\n\r\nexport async function listPicketSchedules(\r\n params?: Partial<PicketScheduleListQuery>\r\n): Promise<PicketAssignment[]> {\r\n return getData<PicketAssignment[]>(`${ENDPOINT}/picket-schedules`, { params });\r\n}\r\n\r\nexport async function createPicketAssignment(\r\n payload: CreatePicketAssignmentInput\r\n): Promise<PicketAssignment> {\r\n return postData<PicketAssignment, CreatePicketAssignmentInput>(\r\n `${ENDPOINT}/picket-schedules`,\r\n payload\r\n );\r\n}\r\n\r\nexport function useAttendanceHistory(params: AttendanceHistoryQuery, enabled = true) {\r\n return useQuery({\r\n queryKey: attendanceKeys.history(params as unknown as Record<string, unknown>),\r\n queryFn: () => getAttendanceHistory(params),\r\n enabled,\r\n });\r\n}\r\n\r\nexport function useDynamicQrStream(params: DynamicQrStreamQuery, enabled = true) {\r\n return useQuery({\r\n queryKey: attendanceKeys.dynamicQrStream(params as unknown as Record<string, unknown>),\r\n queryFn: () => getDynamicQrStream(params),\r\n enabled,\r\n refetchInterval: 15_000,\r\n });\r\n}\r\n\r\nexport function usePicketSchedules(options?: QueryOptionsWithoutKey<PicketAssignment[]>) {\r\n return useQuery({\r\n queryKey: attendanceKeys.picketSchedules(),\r\n queryFn: () => listPicketSchedules(),\r\n ...options,\r\n });\r\n}\r\n\r\nexport function useBatchSyncAttendance() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: batchSyncAttendance,\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport function useUpdateClassAttendance() {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: updateClassAttendance,\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n },\r\n });\r\n}\r\n\r\nexport function useVerifyDynamicQr() {\r\n return useMutation({ mutationFn: verifyDynamicQr });\r\n}\r\n\r\nexport function useCreatePicketAssignment(options?: MutationOptionsCustom<PicketAssignment, CreatePicketAssignmentInput>) {\r\n const queryClient = useQueryClient();\r\n return useMutation({\r\n mutationFn: createPicketAssignment,\r\n onSuccess: (data, vars, ctx) => {\r\n queryClient.invalidateQueries({ queryKey: attendanceKeys.all });\r\n options?.onSuccess?.(data, vars, ctx);\r\n },\r\n ...options,\r\n });\r\n}\r\n\r\nexport type {\r\n AttendanceHistoryItem,\r\n AttendanceHistoryQuery,\r\n AttendanceHistoryResult,\r\n BatchSyncAttendanceRequest,\r\n BatchSyncAttendanceResponse,\r\n ClassUpdateAttendanceResult,\r\n CreatePicketAssignmentInput,\r\n DynamicQrStreamQuery,\r\n DynamicQrStreamResult,\r\n DynamicQrVerifyResult,\r\n PaginatedResult,\r\n PicketAssignment,\r\n PicketScheduleListQuery,\r\n TeacherScanDynamicQrRequest,\r\n UpdateClassAttendanceRequest,\r\n};\r\n"]}