@sekolaos/shared-schema 1.1.2 → 1.2.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.
- package/dist/cjs/attendance/attendance-kiosk.schema.js +2 -2
- package/dist/cjs/attendance/attendance-kiosk.schema.js.map +1 -1
- package/dist/cjs/attendance/{barcode-rolling.schema.js → qr-rolling.schema.js} +7 -7
- package/dist/cjs/attendance/qr-rolling.schema.js.map +1 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/user/student.schema.js +12 -6
- package/dist/cjs/user/student.schema.js.map +1 -1
- package/dist/esm/attendance/attendance-kiosk.schema.js +2 -2
- package/dist/esm/attendance/attendance-kiosk.schema.js.map +1 -1
- package/dist/esm/attendance/{barcode-rolling.schema.js → qr-rolling.schema.js} +6 -6
- package/dist/esm/attendance/qr-rolling.schema.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/user/student.schema.js +11 -5
- package/dist/esm/user/student.schema.js.map +1 -1
- package/dist/types/attendance/attendance-kiosk.schema.d.ts +16 -16
- package/dist/types/attendance/{barcode-rolling.schema.d.ts → qr-rolling.schema.d.ts} +10 -10
- package/dist/types/index.d.ts +1 -1
- package/dist/types/user/student.schema.d.ts +31 -17
- package/package.json +1 -1
- package/dist/cjs/attendance/barcode-rolling.schema.js.map +0 -1
- package/dist/esm/attendance/barcode-rolling.schema.js.map +0 -1
|
@@ -14,7 +14,7 @@ exports.kioskScanItemSchema = zod_1.z.object({
|
|
|
14
14
|
clientUuid: common_schema_js_1.uuidSchema,
|
|
15
15
|
tenantId: common_schema_js_1.uuidSchema,
|
|
16
16
|
studentId: common_schema_js_1.uuidSchema,
|
|
17
|
-
|
|
17
|
+
qrCodeScanned: zod_1.z.string().min(1),
|
|
18
18
|
scannedAt: common_schema_js_1.timestampSchema,
|
|
19
19
|
status: exports.attendanceStatusEnum.default("HADIR"),
|
|
20
20
|
notes: zod_1.z.string().max(255).optional(),
|
|
@@ -50,7 +50,7 @@ exports.attendanceHistoryQuerySchema = zod_1.z
|
|
|
50
50
|
exports.attendanceHistoryItemSchema = zod_1.z.object({
|
|
51
51
|
id: common_schema_js_1.uuidSchema,
|
|
52
52
|
clientUuid: common_schema_js_1.uuidSchema,
|
|
53
|
-
|
|
53
|
+
qrCodeScanned: zod_1.z.string().nullable(),
|
|
54
54
|
status: exports.attendanceStatusEnum,
|
|
55
55
|
source: zod_1.z.enum(["KIOSK", "CLASS"]),
|
|
56
56
|
scannedAt: zod_1.z.string(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attendance-kiosk.schema.js","sourceRoot":"","sources":["../../../src/attendance/attendance-kiosk.schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,iEAA2F;AAE9E,QAAA,oBAAoB,GAAG,OAAC,CAAC,IAAI,CAAC;IACzC,OAAO;IACP,WAAW;IACX,MAAM;IACN,OAAO;IACP,MAAM;CACP,CAAC,CAAC;AAEU,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,UAAU,EAAE,6BAAU;IACtB,QAAQ,EAAE,6BAAU;IACpB,SAAS,EAAE,6BAAU;IACrB,
|
|
1
|
+
{"version":3,"file":"attendance-kiosk.schema.js","sourceRoot":"","sources":["../../../src/attendance/attendance-kiosk.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.dynamicQrVerifyResultSchema = exports.dynamicQrStreamResultSchema = exports.dynamicQrStreamQuerySchema = exports.teacherScanDynamicQrRequestSchema = exports.rollingQrPayloadSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const common_schema_js_1 = require("../common/common.schema.js");
|
|
6
|
-
exports.
|
|
6
|
+
exports.rollingQrPayloadSchema = zod_1.z.object({
|
|
7
7
|
tenantId: common_schema_js_1.uuidSchema,
|
|
8
8
|
kioskToken: zod_1.z.string(),
|
|
9
9
|
expiresAt: zod_1.z.number().int(),
|
|
10
10
|
hash: zod_1.z.string().min(16),
|
|
11
11
|
});
|
|
12
|
-
exports.
|
|
12
|
+
exports.teacherScanDynamicQrRequestSchema = zod_1.z.object({
|
|
13
13
|
tenantId: common_schema_js_1.uuidSchema,
|
|
14
14
|
teacherUserId: common_schema_js_1.uuidSchema,
|
|
15
15
|
scannedPayload: zod_1.z.string().min(10),
|
|
16
16
|
scannedAt: common_schema_js_1.timestampSchema,
|
|
17
17
|
});
|
|
18
|
-
exports.
|
|
18
|
+
exports.dynamicQrStreamQuerySchema = zod_1.z.object({
|
|
19
19
|
format: zod_1.z.enum(["json", "text"]).default("json"),
|
|
20
20
|
});
|
|
21
|
-
exports.
|
|
21
|
+
exports.dynamicQrStreamResultSchema = zod_1.z.object({
|
|
22
22
|
token: zod_1.z.string(),
|
|
23
23
|
tenantId: common_schema_js_1.uuidSchema,
|
|
24
24
|
windowSeconds: zod_1.z.number().int().positive(),
|
|
@@ -28,7 +28,7 @@ exports.dynamicBarcodeStreamResultSchema = zod_1.z.object({
|
|
|
28
28
|
expiresAtEpoch: zod_1.z.number().int(),
|
|
29
29
|
remainingSeconds: zod_1.z.number().int().nonnegative(),
|
|
30
30
|
});
|
|
31
|
-
exports.
|
|
31
|
+
exports.dynamicQrVerifyResultSchema = zod_1.z.object({
|
|
32
32
|
valid: zod_1.z.literal(true),
|
|
33
33
|
tenantId: common_schema_js_1.uuidSchema,
|
|
34
34
|
teacherUserId: common_schema_js_1.uuidSchema,
|
|
@@ -41,4 +41,4 @@ exports.dynamicBarcodeVerifyResultSchema = zod_1.z.object({
|
|
|
41
41
|
picketAssignmentId: common_schema_js_1.uuidSchema.optional(),
|
|
42
42
|
picketLocation: zod_1.z.string().optional(),
|
|
43
43
|
});
|
|
44
|
-
//# sourceMappingURL=
|
|
44
|
+
//# sourceMappingURL=qr-rolling.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr-rolling.schema.js","sourceRoot":"","sources":["../../../src/attendance/qr-rolling.schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,iEAAyE;AAE5D,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,QAAQ,EAAE,6BAAU;IACpB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC3B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;CACzB,CAAC,CAAC;AAEU,QAAA,iCAAiC,GAAG,OAAC,CAAC,MAAM,CAAC;IACxD,QAAQ,EAAE,6BAAU;IACpB,aAAa,EAAE,6BAAU;IACzB,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,SAAS,EAAE,kCAAe;CAC3B,CAAC,CAAC;AAKU,QAAA,0BAA0B,GAAG,OAAC,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;CACjD,CAAC,CAAC;AAEU,QAAA,2BAA2B,GAAG,OAAC,CAAC,MAAM,CAAC;IAClD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,6BAAU;IACpB,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC1C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC3C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAChC,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CACjD,CAAC,CAAC;AAEU,QAAA,2BAA2B,GAAG,OAAC,CAAC,MAAM,CAAC;IAClD,KAAK,EAAE,OAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACtB,QAAQ,EAAE,6BAAU;IACpB,aAAa,EAAE,6BAAU;IACzB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC3C,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC1C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,eAAe,EAAE,6BAAU;IAC3B,kBAAkB,EAAE,6BAAU,CAAC,QAAQ,EAAE;IACzC,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -30,5 +30,5 @@ __exportStar(require("./user/student.schema.js"), exports);
|
|
|
30
30
|
__exportStar(require("./attendance/attendance-kiosk.schema.js"), exports);
|
|
31
31
|
__exportStar(require("./attendance/attendance-class.schema.js"), exports);
|
|
32
32
|
__exportStar(require("./attendance/picket-assignment.schema.js"), exports);
|
|
33
|
-
__exportStar(require("./attendance/
|
|
33
|
+
__exportStar(require("./attendance/qr-rolling.schema.js"), exports);
|
|
34
34
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sCAAoB;AACpB,4DAA0C;AAC1C,gEAA8C;AAC9C,4DAA0C;AAC1C,sEAAoD;AACpD,wDAAsC;AACtC,wDAAsC;AACtC,qEAAmD;AACnD,kEAAgD;AAChD,+DAA6C;AAC7C,yEAAuD;AACvD,wDAAsC;AACtC,2DAAyC;AACzC,0EAAwD;AACxD,0EAAwD;AACxD,2EAAyD;AACzD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sCAAoB;AACpB,4DAA0C;AAC1C,gEAA8C;AAC9C,4DAA0C;AAC1C,sEAAoD;AACpD,wDAAsC;AACtC,wDAAsC;AACtC,qEAAmD;AACnD,kEAAgD;AAChD,+DAA6C;AAC7C,yEAAuD;AACvD,wDAAsC;AACtC,2DAAyC;AACzC,0EAAwD;AACxD,0EAAwD;AACxD,2EAAyD;AACzD,oEAAkD"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.studentListQuerySchema = exports.studentParamsSchema = exports.bulkImportStudentResponseSchema = exports.bulkImportStudentRequestSchema = exports.bulkImportStudentRowSchema = exports.studentOfflineSyncCacheSchema = exports.updateStudentSchema = exports.createStudentSchema = exports.studentSchema = exports.parentPhoneSchema = exports.
|
|
3
|
+
exports.studentListQuerySchema = exports.studentParamsSchema = exports.bulkImportStudentResponseSchema = exports.bulkImportStudentRequestSchema = exports.bulkImportStudentRowSchema = exports.studentQrPayloadSchema = exports.studentOfflineSyncCacheSchema = exports.updateStudentSchema = exports.createStudentSchema = exports.studentSchema = exports.parentPhoneSchema = exports.qrCodeValueSchema = exports.nisnSchema = exports.nisSchema = exports.genderEnum = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const common_schema_js_1 = require("../common/common.schema.js");
|
|
6
6
|
exports.genderEnum = zod_1.z.enum(["L", "P"]);
|
|
7
7
|
exports.nisSchema = zod_1.z.string().min(3).max(30);
|
|
8
8
|
exports.nisnSchema = zod_1.z.string().regex(/^\d{10}$/, "NISN harus 10 digit angka");
|
|
9
|
-
exports.
|
|
9
|
+
exports.qrCodeValueSchema = zod_1.z.string().min(3).max(255);
|
|
10
10
|
exports.parentPhoneSchema = zod_1.z.string().regex(/^\+?[0-9]{8,15}$/, "Nomor telepon orang tua tidak valid (8-15 digit)");
|
|
11
11
|
exports.studentSchema = zod_1.z.object({
|
|
12
12
|
id: common_schema_js_1.uuidSchema,
|
|
@@ -18,7 +18,7 @@ exports.studentSchema = zod_1.z.object({
|
|
|
18
18
|
classroomId: common_schema_js_1.uuidSchema,
|
|
19
19
|
classroomName: zod_1.z.string(),
|
|
20
20
|
parentPhone: exports.parentPhoneSchema.optional().nullable(),
|
|
21
|
-
|
|
21
|
+
qrCodeValue: exports.qrCodeValueSchema,
|
|
22
22
|
photoUrl: zod_1.z.string().url().optional().nullable(),
|
|
23
23
|
isActive: zod_1.z.boolean().default(true),
|
|
24
24
|
});
|
|
@@ -29,7 +29,7 @@ exports.createStudentSchema = zod_1.z.object({
|
|
|
29
29
|
gender: exports.genderEnum,
|
|
30
30
|
classroomId: common_schema_js_1.uuidSchema,
|
|
31
31
|
parentPhone: exports.parentPhoneSchema.optional().nullable(),
|
|
32
|
-
|
|
32
|
+
qrCodeValue: exports.qrCodeValueSchema.optional(),
|
|
33
33
|
photoUrl: zod_1.z.string().url().optional().nullable(),
|
|
34
34
|
isActive: zod_1.z.boolean().default(true),
|
|
35
35
|
});
|
|
@@ -40,7 +40,13 @@ exports.studentOfflineSyncCacheSchema = exports.studentSchema.pick({
|
|
|
40
40
|
fullName: true,
|
|
41
41
|
classroomId: true,
|
|
42
42
|
classroomName: true,
|
|
43
|
-
|
|
43
|
+
qrCodeValue: true,
|
|
44
|
+
});
|
|
45
|
+
// Skema parsing/validasi payload QR Code fisik kartu pelajar
|
|
46
|
+
exports.studentQrPayloadSchema = zod_1.z.object({
|
|
47
|
+
tId: common_schema_js_1.uuidSchema, // tenantId
|
|
48
|
+
nis: zod_1.z.string().min(3).max(30),
|
|
49
|
+
sig: zod_1.z.string().min(8).optional(), // Digital signature / checksum opsional
|
|
44
50
|
});
|
|
45
51
|
exports.bulkImportStudentRowSchema = zod_1.z.object({
|
|
46
52
|
nis: zod_1.z.string().min(3).max(30).trim(),
|
|
@@ -52,7 +58,7 @@ exports.bulkImportStudentRowSchema = zod_1.z.object({
|
|
|
52
58
|
});
|
|
53
59
|
exports.bulkImportStudentRequestSchema = zod_1.z.object({
|
|
54
60
|
academicYearId: common_schema_js_1.uuidSchema,
|
|
55
|
-
|
|
61
|
+
defaultClassroomId: common_schema_js_1.uuidSchema.optional(),
|
|
56
62
|
students: zod_1.z.array(exports.bulkImportStudentRowSchema).min(1, "Minimal harus ada 1 baris siswa"),
|
|
57
63
|
});
|
|
58
64
|
exports.bulkImportStudentResponseSchema = zod_1.z.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"student.schema.js","sourceRoot":"","sources":["../../../src/user/student.schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,iEAAkG;AAErF,QAAA,UAAU,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEhC,QAAA,SAAS,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACtC,QAAA,UAAU,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;AACvE,QAAA,
|
|
1
|
+
{"version":3,"file":"student.schema.js","sourceRoot":"","sources":["../../../src/user/student.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ export const kioskScanItemSchema = z.object({
|
|
|
11
11
|
clientUuid: uuidSchema,
|
|
12
12
|
tenantId: uuidSchema,
|
|
13
13
|
studentId: uuidSchema,
|
|
14
|
-
|
|
14
|
+
qrCodeScanned: z.string().min(1),
|
|
15
15
|
scannedAt: timestampSchema,
|
|
16
16
|
status: attendanceStatusEnum.default("HADIR"),
|
|
17
17
|
notes: z.string().max(255).optional(),
|
|
@@ -47,7 +47,7 @@ export const attendanceHistoryQuerySchema = z
|
|
|
47
47
|
export const attendanceHistoryItemSchema = z.object({
|
|
48
48
|
id: uuidSchema,
|
|
49
49
|
clientUuid: uuidSchema,
|
|
50
|
-
|
|
50
|
+
qrCodeScanned: z.string().nullable(),
|
|
51
51
|
status: attendanceStatusEnum,
|
|
52
52
|
source: z.enum(["KIOSK", "CLASS"]),
|
|
53
53
|
scannedAt: z.string(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attendance-kiosk.schema.js","sourceRoot":"","sources":["../../../src/attendance/attendance-kiosk.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE3F,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC;IACzC,OAAO;IACP,WAAW;IACX,MAAM;IACN,OAAO;IACP,MAAM;CACP,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,UAAU,EAAE,UAAU;IACtB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,UAAU;IACrB,
|
|
1
|
+
{"version":3,"file":"attendance-kiosk.schema.js","sourceRoot":"","sources":["../../../src/attendance/attendance-kiosk.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { uuidSchema, timestampSchema } from "../common/common.schema.js";
|
|
3
|
-
export const
|
|
3
|
+
export const rollingQrPayloadSchema = z.object({
|
|
4
4
|
tenantId: uuidSchema,
|
|
5
5
|
kioskToken: z.string(),
|
|
6
6
|
expiresAt: z.number().int(),
|
|
7
7
|
hash: z.string().min(16),
|
|
8
8
|
});
|
|
9
|
-
export const
|
|
9
|
+
export const teacherScanDynamicQrRequestSchema = z.object({
|
|
10
10
|
tenantId: uuidSchema,
|
|
11
11
|
teacherUserId: uuidSchema,
|
|
12
12
|
scannedPayload: z.string().min(10),
|
|
13
13
|
scannedAt: timestampSchema,
|
|
14
14
|
});
|
|
15
|
-
export const
|
|
15
|
+
export const dynamicQrStreamQuerySchema = z.object({
|
|
16
16
|
format: z.enum(["json", "text"]).default("json"),
|
|
17
17
|
});
|
|
18
|
-
export const
|
|
18
|
+
export const dynamicQrStreamResultSchema = z.object({
|
|
19
19
|
token: z.string(),
|
|
20
20
|
tenantId: uuidSchema,
|
|
21
21
|
windowSeconds: z.number().int().positive(),
|
|
@@ -25,7 +25,7 @@ export const dynamicBarcodeStreamResultSchema = z.object({
|
|
|
25
25
|
expiresAtEpoch: z.number().int(),
|
|
26
26
|
remainingSeconds: z.number().int().nonnegative(),
|
|
27
27
|
});
|
|
28
|
-
export const
|
|
28
|
+
export const dynamicQrVerifyResultSchema = z.object({
|
|
29
29
|
valid: z.literal(true),
|
|
30
30
|
tenantId: uuidSchema,
|
|
31
31
|
teacherUserId: uuidSchema,
|
|
@@ -38,4 +38,4 @@ export const dynamicBarcodeVerifyResultSchema = z.object({
|
|
|
38
38
|
picketAssignmentId: uuidSchema.optional(),
|
|
39
39
|
picketLocation: z.string().optional(),
|
|
40
40
|
});
|
|
41
|
-
//# sourceMappingURL=
|
|
41
|
+
//# sourceMappingURL=qr-rolling.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qr-rolling.schema.js","sourceRoot":"","sources":["../../../src/attendance/qr-rolling.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAEzE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,UAAU;IACzB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAC;AAKH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;CACjD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC1C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAChC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CACjD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACtB,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,UAAU;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,eAAe,EAAE,UAAU;IAC3B,kBAAkB,EAAE,UAAU,CAAC,QAAQ,EAAE;IACzC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -14,5 +14,5 @@ export * from "./user/student.schema.js";
|
|
|
14
14
|
export * from "./attendance/attendance-kiosk.schema.js";
|
|
15
15
|
export * from "./attendance/attendance-class.schema.js";
|
|
16
16
|
export * from "./attendance/picket-assignment.schema.js";
|
|
17
|
-
export * from "./attendance/
|
|
17
|
+
export * from "./attendance/qr-rolling.schema.js";
|
|
18
18
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,KAAK,CAAC;AACpB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC;AACpD,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AACzD,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,KAAK,CAAC;AACpB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qCAAqC,CAAC;AACpD,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wCAAwC,CAAC;AACvD,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yCAAyC,CAAC;AACxD,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC"}
|
|
@@ -3,7 +3,7 @@ import { booleanQuerySchema, paginationQueryShape, uuidSchema } from "../common/
|
|
|
3
3
|
export const genderEnum = z.enum(["L", "P"]);
|
|
4
4
|
export const nisSchema = z.string().min(3).max(30);
|
|
5
5
|
export const nisnSchema = z.string().regex(/^\d{10}$/, "NISN harus 10 digit angka");
|
|
6
|
-
export const
|
|
6
|
+
export const qrCodeValueSchema = z.string().min(3).max(255);
|
|
7
7
|
export const parentPhoneSchema = z.string().regex(/^\+?[0-9]{8,15}$/, "Nomor telepon orang tua tidak valid (8-15 digit)");
|
|
8
8
|
export const studentSchema = z.object({
|
|
9
9
|
id: uuidSchema,
|
|
@@ -15,7 +15,7 @@ export const studentSchema = z.object({
|
|
|
15
15
|
classroomId: uuidSchema,
|
|
16
16
|
classroomName: z.string(),
|
|
17
17
|
parentPhone: parentPhoneSchema.optional().nullable(),
|
|
18
|
-
|
|
18
|
+
qrCodeValue: qrCodeValueSchema,
|
|
19
19
|
photoUrl: z.string().url().optional().nullable(),
|
|
20
20
|
isActive: z.boolean().default(true),
|
|
21
21
|
});
|
|
@@ -26,7 +26,7 @@ export const createStudentSchema = z.object({
|
|
|
26
26
|
gender: genderEnum,
|
|
27
27
|
classroomId: uuidSchema,
|
|
28
28
|
parentPhone: parentPhoneSchema.optional().nullable(),
|
|
29
|
-
|
|
29
|
+
qrCodeValue: qrCodeValueSchema.optional(),
|
|
30
30
|
photoUrl: z.string().url().optional().nullable(),
|
|
31
31
|
isActive: z.boolean().default(true),
|
|
32
32
|
});
|
|
@@ -37,7 +37,13 @@ export const studentOfflineSyncCacheSchema = studentSchema.pick({
|
|
|
37
37
|
fullName: true,
|
|
38
38
|
classroomId: true,
|
|
39
39
|
classroomName: true,
|
|
40
|
-
|
|
40
|
+
qrCodeValue: true,
|
|
41
|
+
});
|
|
42
|
+
// Skema parsing/validasi payload QR Code fisik kartu pelajar
|
|
43
|
+
export const studentQrPayloadSchema = z.object({
|
|
44
|
+
tId: uuidSchema, // tenantId
|
|
45
|
+
nis: z.string().min(3).max(30),
|
|
46
|
+
sig: z.string().min(8).optional(), // Digital signature / checksum opsional
|
|
41
47
|
});
|
|
42
48
|
export const bulkImportStudentRowSchema = z.object({
|
|
43
49
|
nis: z.string().min(3).max(30).trim(),
|
|
@@ -49,7 +55,7 @@ export const bulkImportStudentRowSchema = z.object({
|
|
|
49
55
|
});
|
|
50
56
|
export const bulkImportStudentRequestSchema = z.object({
|
|
51
57
|
academicYearId: uuidSchema,
|
|
52
|
-
|
|
58
|
+
defaultClassroomId: uuidSchema.optional(),
|
|
53
59
|
students: z.array(bulkImportStudentRowSchema).min(1, "Minimal harus ada 1 baris siswa"),
|
|
54
60
|
});
|
|
55
61
|
export const bulkImportStudentResponseSchema = z.object({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"student.schema.js","sourceRoot":"","sources":["../../../src/user/student.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAElG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAE7C,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,2BAA2B,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"student.schema.js","sourceRoot":"","sources":["../../../src/user/student.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ export declare const kioskScanItemSchema: z.ZodObject<{
|
|
|
4
4
|
clientUuid: z.ZodString;
|
|
5
5
|
tenantId: z.ZodString;
|
|
6
6
|
studentId: z.ZodString;
|
|
7
|
-
|
|
7
|
+
qrCodeScanned: z.ZodString;
|
|
8
8
|
scannedAt: z.ZodString;
|
|
9
9
|
status: z.ZodDefault<z.ZodEnum<["HADIR", "TERLAMBAT", "IZIN", "SAKIT", "ALPA"]>>;
|
|
10
10
|
notes: z.ZodOptional<z.ZodString>;
|
|
@@ -13,14 +13,14 @@ export declare const kioskScanItemSchema: z.ZodObject<{
|
|
|
13
13
|
tenantId: string;
|
|
14
14
|
clientUuid: string;
|
|
15
15
|
studentId: string;
|
|
16
|
-
|
|
16
|
+
qrCodeScanned: string;
|
|
17
17
|
scannedAt: string;
|
|
18
18
|
notes?: string | undefined;
|
|
19
19
|
}, {
|
|
20
20
|
tenantId: string;
|
|
21
21
|
clientUuid: string;
|
|
22
22
|
studentId: string;
|
|
23
|
-
|
|
23
|
+
qrCodeScanned: string;
|
|
24
24
|
scannedAt: string;
|
|
25
25
|
status?: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA" | undefined;
|
|
26
26
|
notes?: string | undefined;
|
|
@@ -34,7 +34,7 @@ export declare const batchSyncAttendanceRequestSchema: z.ZodObject<{
|
|
|
34
34
|
clientUuid: z.ZodString;
|
|
35
35
|
tenantId: z.ZodString;
|
|
36
36
|
studentId: z.ZodString;
|
|
37
|
-
|
|
37
|
+
qrCodeScanned: z.ZodString;
|
|
38
38
|
scannedAt: z.ZodString;
|
|
39
39
|
status: z.ZodDefault<z.ZodEnum<["HADIR", "TERLAMBAT", "IZIN", "SAKIT", "ALPA"]>>;
|
|
40
40
|
notes: z.ZodOptional<z.ZodString>;
|
|
@@ -43,14 +43,14 @@ export declare const batchSyncAttendanceRequestSchema: z.ZodObject<{
|
|
|
43
43
|
tenantId: string;
|
|
44
44
|
clientUuid: string;
|
|
45
45
|
studentId: string;
|
|
46
|
-
|
|
46
|
+
qrCodeScanned: string;
|
|
47
47
|
scannedAt: string;
|
|
48
48
|
notes?: string | undefined;
|
|
49
49
|
}, {
|
|
50
50
|
tenantId: string;
|
|
51
51
|
clientUuid: string;
|
|
52
52
|
studentId: string;
|
|
53
|
-
|
|
53
|
+
qrCodeScanned: string;
|
|
54
54
|
scannedAt: string;
|
|
55
55
|
status?: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA" | undefined;
|
|
56
56
|
notes?: string | undefined;
|
|
@@ -65,7 +65,7 @@ export declare const batchSyncAttendanceRequestSchema: z.ZodObject<{
|
|
|
65
65
|
tenantId: string;
|
|
66
66
|
clientUuid: string;
|
|
67
67
|
studentId: string;
|
|
68
|
-
|
|
68
|
+
qrCodeScanned: string;
|
|
69
69
|
scannedAt: string;
|
|
70
70
|
notes?: string | undefined;
|
|
71
71
|
}[];
|
|
@@ -78,7 +78,7 @@ export declare const batchSyncAttendanceRequestSchema: z.ZodObject<{
|
|
|
78
78
|
tenantId: string;
|
|
79
79
|
clientUuid: string;
|
|
80
80
|
studentId: string;
|
|
81
|
-
|
|
81
|
+
qrCodeScanned: string;
|
|
82
82
|
scannedAt: string;
|
|
83
83
|
status?: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA" | undefined;
|
|
84
84
|
notes?: string | undefined;
|
|
@@ -151,7 +151,7 @@ export declare const attendanceHistoryQuerySchema: z.ZodEffects<z.ZodObject<{
|
|
|
151
151
|
export declare const attendanceHistoryItemSchema: z.ZodObject<{
|
|
152
152
|
id: z.ZodString;
|
|
153
153
|
clientUuid: z.ZodString;
|
|
154
|
-
|
|
154
|
+
qrCodeScanned: z.ZodNullable<z.ZodString>;
|
|
155
155
|
status: z.ZodEnum<["HADIR", "TERLAMBAT", "IZIN", "SAKIT", "ALPA"]>;
|
|
156
156
|
source: z.ZodEnum<["KIOSK", "CLASS"]>;
|
|
157
157
|
scannedAt: z.ZodString;
|
|
@@ -192,7 +192,7 @@ export declare const attendanceHistoryItemSchema: z.ZodObject<{
|
|
|
192
192
|
status: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA";
|
|
193
193
|
id: string;
|
|
194
194
|
clientUuid: string;
|
|
195
|
-
|
|
195
|
+
qrCodeScanned: string | null;
|
|
196
196
|
scannedAt: string;
|
|
197
197
|
notes: string | null;
|
|
198
198
|
source: "KIOSK" | "CLASS";
|
|
@@ -212,7 +212,7 @@ export declare const attendanceHistoryItemSchema: z.ZodObject<{
|
|
|
212
212
|
status: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA";
|
|
213
213
|
id: string;
|
|
214
214
|
clientUuid: string;
|
|
215
|
-
|
|
215
|
+
qrCodeScanned: string | null;
|
|
216
216
|
scannedAt: string;
|
|
217
217
|
notes: string | null;
|
|
218
218
|
source: "KIOSK" | "CLASS";
|
|
@@ -233,7 +233,7 @@ export declare const attendanceHistoryResultSchema: z.ZodObject<{
|
|
|
233
233
|
items: z.ZodArray<z.ZodObject<{
|
|
234
234
|
id: z.ZodString;
|
|
235
235
|
clientUuid: z.ZodString;
|
|
236
|
-
|
|
236
|
+
qrCodeScanned: z.ZodNullable<z.ZodString>;
|
|
237
237
|
status: z.ZodEnum<["HADIR", "TERLAMBAT", "IZIN", "SAKIT", "ALPA"]>;
|
|
238
238
|
source: z.ZodEnum<["KIOSK", "CLASS"]>;
|
|
239
239
|
scannedAt: z.ZodString;
|
|
@@ -274,7 +274,7 @@ export declare const attendanceHistoryResultSchema: z.ZodObject<{
|
|
|
274
274
|
status: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA";
|
|
275
275
|
id: string;
|
|
276
276
|
clientUuid: string;
|
|
277
|
-
|
|
277
|
+
qrCodeScanned: string | null;
|
|
278
278
|
scannedAt: string;
|
|
279
279
|
notes: string | null;
|
|
280
280
|
source: "KIOSK" | "CLASS";
|
|
@@ -294,7 +294,7 @@ export declare const attendanceHistoryResultSchema: z.ZodObject<{
|
|
|
294
294
|
status: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA";
|
|
295
295
|
id: string;
|
|
296
296
|
clientUuid: string;
|
|
297
|
-
|
|
297
|
+
qrCodeScanned: string | null;
|
|
298
298
|
scannedAt: string;
|
|
299
299
|
notes: string | null;
|
|
300
300
|
source: "KIOSK" | "CLASS";
|
|
@@ -332,7 +332,7 @@ export declare const attendanceHistoryResultSchema: z.ZodObject<{
|
|
|
332
332
|
status: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA";
|
|
333
333
|
id: string;
|
|
334
334
|
clientUuid: string;
|
|
335
|
-
|
|
335
|
+
qrCodeScanned: string | null;
|
|
336
336
|
scannedAt: string;
|
|
337
337
|
notes: string | null;
|
|
338
338
|
source: "KIOSK" | "CLASS";
|
|
@@ -360,7 +360,7 @@ export declare const attendanceHistoryResultSchema: z.ZodObject<{
|
|
|
360
360
|
status: "HADIR" | "TERLAMBAT" | "IZIN" | "SAKIT" | "ALPA";
|
|
361
361
|
id: string;
|
|
362
362
|
clientUuid: string;
|
|
363
|
-
|
|
363
|
+
qrCodeScanned: string | null;
|
|
364
364
|
scannedAt: string;
|
|
365
365
|
notes: string | null;
|
|
366
366
|
source: "KIOSK" | "CLASS";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const rollingQrPayloadSchema: z.ZodObject<{
|
|
3
3
|
tenantId: z.ZodString;
|
|
4
4
|
kioskToken: z.ZodString;
|
|
5
5
|
expiresAt: z.ZodNumber;
|
|
@@ -15,7 +15,7 @@ export declare const rollingBarcodePayloadSchema: z.ZodObject<{
|
|
|
15
15
|
expiresAt: number;
|
|
16
16
|
hash: string;
|
|
17
17
|
}>;
|
|
18
|
-
export declare const
|
|
18
|
+
export declare const teacherScanDynamicQrRequestSchema: z.ZodObject<{
|
|
19
19
|
tenantId: z.ZodString;
|
|
20
20
|
teacherUserId: z.ZodString;
|
|
21
21
|
scannedPayload: z.ZodString;
|
|
@@ -31,16 +31,16 @@ export declare const teacherScanDynamicBarcodeRequestSchema: z.ZodObject<{
|
|
|
31
31
|
scannedAt: string;
|
|
32
32
|
scannedPayload: string;
|
|
33
33
|
}>;
|
|
34
|
-
export type
|
|
35
|
-
export type
|
|
36
|
-
export declare const
|
|
34
|
+
export type RollingQrPayload = z.infer<typeof rollingQrPayloadSchema>;
|
|
35
|
+
export type TeacherScanDynamicQrRequest = z.infer<typeof teacherScanDynamicQrRequestSchema>;
|
|
36
|
+
export declare const dynamicQrStreamQuerySchema: z.ZodObject<{
|
|
37
37
|
format: z.ZodDefault<z.ZodEnum<["json", "text"]>>;
|
|
38
38
|
}, "strip", z.ZodTypeAny, {
|
|
39
39
|
format: "json" | "text";
|
|
40
40
|
}, {
|
|
41
41
|
format?: "json" | "text" | undefined;
|
|
42
42
|
}>;
|
|
43
|
-
export declare const
|
|
43
|
+
export declare const dynamicQrStreamResultSchema: z.ZodObject<{
|
|
44
44
|
token: z.ZodString;
|
|
45
45
|
tenantId: z.ZodString;
|
|
46
46
|
windowSeconds: z.ZodNumber;
|
|
@@ -68,7 +68,7 @@ export declare const dynamicBarcodeStreamResultSchema: z.ZodObject<{
|
|
|
68
68
|
expiresAtEpoch: number;
|
|
69
69
|
remainingSeconds: number;
|
|
70
70
|
}>;
|
|
71
|
-
export declare const
|
|
71
|
+
export declare const dynamicQrVerifyResultSchema: z.ZodObject<{
|
|
72
72
|
valid: z.ZodLiteral<true>;
|
|
73
73
|
tenantId: z.ZodString;
|
|
74
74
|
teacherUserId: z.ZodString;
|
|
@@ -105,6 +105,6 @@ export declare const dynamicBarcodeVerifyResultSchema: z.ZodObject<{
|
|
|
105
105
|
picketAssignmentId?: string | undefined;
|
|
106
106
|
picketLocation?: string | undefined;
|
|
107
107
|
}>;
|
|
108
|
-
export type
|
|
109
|
-
export type
|
|
110
|
-
export type
|
|
108
|
+
export type DynamicQrStreamQuery = z.infer<typeof dynamicQrStreamQuerySchema>;
|
|
109
|
+
export type DynamicQrStreamResult = z.infer<typeof dynamicQrStreamResultSchema>;
|
|
110
|
+
export type DynamicQrVerifyResult = z.infer<typeof dynamicQrVerifyResultSchema>;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -14,4 +14,4 @@ export * from "./user/student.schema.js";
|
|
|
14
14
|
export * from "./attendance/attendance-kiosk.schema.js";
|
|
15
15
|
export * from "./attendance/attendance-class.schema.js";
|
|
16
16
|
export * from "./attendance/picket-assignment.schema.js";
|
|
17
|
-
export * from "./attendance/
|
|
17
|
+
export * from "./attendance/qr-rolling.schema.js";
|
|
@@ -2,7 +2,7 @@ import { z } from "zod";
|
|
|
2
2
|
export declare const genderEnum: z.ZodEnum<["L", "P"]>;
|
|
3
3
|
export declare const nisSchema: z.ZodString;
|
|
4
4
|
export declare const nisnSchema: z.ZodString;
|
|
5
|
-
export declare const
|
|
5
|
+
export declare const qrCodeValueSchema: z.ZodString;
|
|
6
6
|
export declare const parentPhoneSchema: z.ZodString;
|
|
7
7
|
export declare const studentSchema: z.ZodObject<{
|
|
8
8
|
id: z.ZodString;
|
|
@@ -14,7 +14,7 @@ export declare const studentSchema: z.ZodObject<{
|
|
|
14
14
|
classroomId: z.ZodString;
|
|
15
15
|
classroomName: z.ZodString;
|
|
16
16
|
parentPhone: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
17
|
-
|
|
17
|
+
qrCodeValue: z.ZodString;
|
|
18
18
|
photoUrl: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
19
19
|
isActive: z.ZodDefault<z.ZodBoolean>;
|
|
20
20
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -26,7 +26,7 @@ export declare const studentSchema: z.ZodObject<{
|
|
|
26
26
|
fullName: string;
|
|
27
27
|
nis: string;
|
|
28
28
|
gender: "L" | "P";
|
|
29
|
-
|
|
29
|
+
qrCodeValue: string;
|
|
30
30
|
nisn?: string | null | undefined;
|
|
31
31
|
parentPhone?: string | null | undefined;
|
|
32
32
|
photoUrl?: string | null | undefined;
|
|
@@ -38,7 +38,7 @@ export declare const studentSchema: z.ZodObject<{
|
|
|
38
38
|
fullName: string;
|
|
39
39
|
nis: string;
|
|
40
40
|
gender: "L" | "P";
|
|
41
|
-
|
|
41
|
+
qrCodeValue: string;
|
|
42
42
|
isActive?: boolean | undefined;
|
|
43
43
|
nisn?: string | null | undefined;
|
|
44
44
|
parentPhone?: string | null | undefined;
|
|
@@ -51,7 +51,7 @@ export declare const createStudentSchema: z.ZodObject<{
|
|
|
51
51
|
gender: z.ZodEnum<["L", "P"]>;
|
|
52
52
|
classroomId: z.ZodString;
|
|
53
53
|
parentPhone: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
54
|
-
|
|
54
|
+
qrCodeValue: z.ZodOptional<z.ZodString>;
|
|
55
55
|
photoUrl: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
56
56
|
isActive: z.ZodDefault<z.ZodBoolean>;
|
|
57
57
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -62,7 +62,7 @@ export declare const createStudentSchema: z.ZodObject<{
|
|
|
62
62
|
gender: "L" | "P";
|
|
63
63
|
nisn?: string | null | undefined;
|
|
64
64
|
parentPhone?: string | null | undefined;
|
|
65
|
-
|
|
65
|
+
qrCodeValue?: string | undefined;
|
|
66
66
|
photoUrl?: string | null | undefined;
|
|
67
67
|
}, {
|
|
68
68
|
classroomId: string;
|
|
@@ -72,7 +72,7 @@ export declare const createStudentSchema: z.ZodObject<{
|
|
|
72
72
|
isActive?: boolean | undefined;
|
|
73
73
|
nisn?: string | null | undefined;
|
|
74
74
|
parentPhone?: string | null | undefined;
|
|
75
|
-
|
|
75
|
+
qrCodeValue?: string | undefined;
|
|
76
76
|
photoUrl?: string | null | undefined;
|
|
77
77
|
}>;
|
|
78
78
|
export declare const updateStudentSchema: z.ZodObject<{
|
|
@@ -82,7 +82,7 @@ export declare const updateStudentSchema: z.ZodObject<{
|
|
|
82
82
|
gender: z.ZodOptional<z.ZodEnum<["L", "P"]>>;
|
|
83
83
|
classroomId: z.ZodOptional<z.ZodString>;
|
|
84
84
|
parentPhone: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
85
|
-
|
|
85
|
+
qrCodeValue: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
86
86
|
photoUrl: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
87
87
|
isActive: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
88
88
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -93,7 +93,7 @@ export declare const updateStudentSchema: z.ZodObject<{
|
|
|
93
93
|
nisn?: string | null | undefined;
|
|
94
94
|
gender?: "L" | "P" | undefined;
|
|
95
95
|
parentPhone?: string | null | undefined;
|
|
96
|
-
|
|
96
|
+
qrCodeValue?: string | undefined;
|
|
97
97
|
photoUrl?: string | null | undefined;
|
|
98
98
|
}, {
|
|
99
99
|
isActive?: boolean | undefined;
|
|
@@ -103,7 +103,7 @@ export declare const updateStudentSchema: z.ZodObject<{
|
|
|
103
103
|
nisn?: string | null | undefined;
|
|
104
104
|
gender?: "L" | "P" | undefined;
|
|
105
105
|
parentPhone?: string | null | undefined;
|
|
106
|
-
|
|
106
|
+
qrCodeValue?: string | undefined;
|
|
107
107
|
photoUrl?: string | null | undefined;
|
|
108
108
|
}>;
|
|
109
109
|
export declare const studentOfflineSyncCacheSchema: z.ZodObject<Pick<{
|
|
@@ -116,23 +116,36 @@ export declare const studentOfflineSyncCacheSchema: z.ZodObject<Pick<{
|
|
|
116
116
|
classroomId: z.ZodString;
|
|
117
117
|
classroomName: z.ZodString;
|
|
118
118
|
parentPhone: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
119
|
-
|
|
119
|
+
qrCodeValue: z.ZodString;
|
|
120
120
|
photoUrl: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
121
121
|
isActive: z.ZodDefault<z.ZodBoolean>;
|
|
122
|
-
}, "id" | "classroomId" | "classroomName" | "fullName" | "nis" | "
|
|
122
|
+
}, "id" | "classroomId" | "classroomName" | "fullName" | "nis" | "qrCodeValue">, "strip", z.ZodTypeAny, {
|
|
123
123
|
id: string;
|
|
124
124
|
classroomId: string;
|
|
125
125
|
classroomName: string;
|
|
126
126
|
fullName: string;
|
|
127
127
|
nis: string;
|
|
128
|
-
|
|
128
|
+
qrCodeValue: string;
|
|
129
129
|
}, {
|
|
130
130
|
id: string;
|
|
131
131
|
classroomId: string;
|
|
132
132
|
classroomName: string;
|
|
133
133
|
fullName: string;
|
|
134
134
|
nis: string;
|
|
135
|
-
|
|
135
|
+
qrCodeValue: string;
|
|
136
|
+
}>;
|
|
137
|
+
export declare const studentQrPayloadSchema: z.ZodObject<{
|
|
138
|
+
tId: z.ZodString;
|
|
139
|
+
nis: z.ZodString;
|
|
140
|
+
sig: z.ZodOptional<z.ZodString>;
|
|
141
|
+
}, "strip", z.ZodTypeAny, {
|
|
142
|
+
nis: string;
|
|
143
|
+
tId: string;
|
|
144
|
+
sig?: string | undefined;
|
|
145
|
+
}, {
|
|
146
|
+
nis: string;
|
|
147
|
+
tId: string;
|
|
148
|
+
sig?: string | undefined;
|
|
136
149
|
}>;
|
|
137
150
|
export declare const bulkImportStudentRowSchema: z.ZodObject<{
|
|
138
151
|
nis: z.ZodString;
|
|
@@ -158,7 +171,7 @@ export declare const bulkImportStudentRowSchema: z.ZodObject<{
|
|
|
158
171
|
}>;
|
|
159
172
|
export declare const bulkImportStudentRequestSchema: z.ZodObject<{
|
|
160
173
|
academicYearId: z.ZodString;
|
|
161
|
-
|
|
174
|
+
defaultClassroomId: z.ZodOptional<z.ZodString>;
|
|
162
175
|
students: z.ZodArray<z.ZodObject<{
|
|
163
176
|
nis: z.ZodString;
|
|
164
177
|
nisn: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
@@ -191,7 +204,7 @@ export declare const bulkImportStudentRequestSchema: z.ZodObject<{
|
|
|
191
204
|
nisn?: string | null | undefined;
|
|
192
205
|
parentPhone?: string | null | undefined;
|
|
193
206
|
}[];
|
|
194
|
-
|
|
207
|
+
defaultClassroomId?: string | undefined;
|
|
195
208
|
}, {
|
|
196
209
|
academicYearId: string;
|
|
197
210
|
students: {
|
|
@@ -202,7 +215,7 @@ export declare const bulkImportStudentRequestSchema: z.ZodObject<{
|
|
|
202
215
|
nisn?: string | null | undefined;
|
|
203
216
|
parentPhone?: string | null | undefined;
|
|
204
217
|
}[];
|
|
205
|
-
|
|
218
|
+
defaultClassroomId?: string | undefined;
|
|
206
219
|
}>;
|
|
207
220
|
export declare const bulkImportStudentResponseSchema: z.ZodObject<{
|
|
208
221
|
totalProcessed: z.ZodNumber;
|
|
@@ -282,6 +295,7 @@ export type Student = z.infer<typeof studentSchema>;
|
|
|
282
295
|
export type CreateStudentInput = z.infer<typeof createStudentSchema>;
|
|
283
296
|
export type UpdateStudentInput = z.infer<typeof updateStudentSchema>;
|
|
284
297
|
export type StudentOfflineCache = z.infer<typeof studentOfflineSyncCacheSchema>;
|
|
298
|
+
export type StudentQrPayload = z.infer<typeof studentQrPayloadSchema>;
|
|
285
299
|
export type BulkImportStudentRow = z.infer<typeof bulkImportStudentRowSchema>;
|
|
286
300
|
export type BulkImportStudentRequest = z.infer<typeof bulkImportStudentRequestSchema>;
|
|
287
301
|
export type BulkImportStudentResponse = z.infer<typeof bulkImportStudentResponseSchema>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sekolaos/shared-schema",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Single source of truth untuk validasi skema data dan inferensi tipe TypeScript pada ekosistem Sekolaos (backend Express, kiosk presensi, dan modul lainnya).",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"author": "Sekolaos",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"barcode-rolling.schema.js","sourceRoot":"","sources":["../../../src/attendance/barcode-rolling.schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,iEAAyE;AAE5D,QAAA,2BAA2B,GAAG,OAAC,CAAC,MAAM,CAAC;IAClD,QAAQ,EAAE,6BAAU;IACpB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC3B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;CACzB,CAAC,CAAC;AAEU,QAAA,sCAAsC,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7D,QAAQ,EAAE,6BAAU;IACpB,aAAa,EAAE,6BAAU;IACzB,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,SAAS,EAAE,kCAAe;CAC3B,CAAC,CAAC;AAKU,QAAA,+BAA+B,GAAG,OAAC,CAAC,MAAM,CAAC;IACtD,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;CACjD,CAAC,CAAC;AAEU,QAAA,gCAAgC,GAAG,OAAC,CAAC,MAAM,CAAC;IACvD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,6BAAU;IACpB,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC1C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC3C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAChC,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CACjD,CAAC,CAAC;AAEU,QAAA,gCAAgC,GAAG,OAAC,CAAC,MAAM,CAAC;IACvD,KAAK,EAAE,OAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACtB,QAAQ,EAAE,6BAAU;IACpB,aAAa,EAAE,6BAAU;IACzB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC3C,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC1C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,eAAe,EAAE,6BAAU;IAC3B,kBAAkB,EAAE,6BAAU,CAAC,QAAQ,EAAE;IACzC,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"barcode-rolling.schema.js","sourceRoot":"","sources":["../../../src/attendance/barcode-rolling.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAEzE,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;CACzB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7D,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,UAAU;IACzB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAC;AAKH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;CACjD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC1C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAChC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CACjD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACtB,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,UAAU;IACzB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC1C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,eAAe,EAAE,UAAU;IAC3B,kBAAkB,EAAE,UAAU,CAAC,QAAQ,EAAE;IACzC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAC"}
|