@kidemy/lib 1.0.7 → 1.0.8

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 (96) hide show
  1. package/dist/cjs/index.js +24 -0
  2. package/dist/cjs/index.js.map +1 -0
  3. package/dist/cjs/model/account.dto.js +30 -0
  4. package/dist/cjs/model/account.dto.js.map +1 -0
  5. package/dist/cjs/model/assignment.dto.js +103 -0
  6. package/dist/cjs/model/assignment.dto.js.map +1 -0
  7. package/dist/cjs/model/assignment.model.js +30 -0
  8. package/dist/cjs/model/assignment.model.js.map +1 -0
  9. package/dist/cjs/model/auth.dto.js +71 -0
  10. package/dist/cjs/model/auth.dto.js.map +1 -0
  11. package/dist/cjs/model/model.js +13 -0
  12. package/dist/cjs/model/model.js.map +1 -0
  13. package/dist/cjs/model/user.dto.js +31 -0
  14. package/dist/cjs/model/user.dto.js.map +1 -0
  15. package/dist/cjs/model/utility.js +8 -0
  16. package/dist/cjs/model/utility.js.map +1 -0
  17. package/dist/cjs/tests/account.dto.spec.d.ts +1 -0
  18. package/dist/cjs/tests/account.dto.spec.js +189 -0
  19. package/dist/cjs/tests/account.dto.spec.js.map +1 -0
  20. package/dist/cjs/tests/assignment.dto.spec.d.ts +1 -0
  21. package/dist/cjs/tests/assignment.dto.spec.js +345 -0
  22. package/dist/cjs/tests/assignment.dto.spec.js.map +1 -0
  23. package/dist/cjs/tests/auth.dto.spec.d.ts +1 -0
  24. package/dist/cjs/tests/auth.dto.spec.js +387 -0
  25. package/dist/cjs/tests/auth.dto.spec.js.map +1 -0
  26. package/dist/cjs/tests/model.spec.d.ts +1 -0
  27. package/dist/cjs/tests/model.spec.js +188 -0
  28. package/dist/cjs/tests/model.spec.js.map +1 -0
  29. package/dist/cjs/tests/user.dto.spec.d.ts +1 -0
  30. package/dist/cjs/tests/user.dto.spec.js +280 -0
  31. package/dist/cjs/tests/user.dto.spec.js.map +1 -0
  32. package/dist/cjs/tests/utility.spec.d.ts +1 -0
  33. package/dist/cjs/tests/utility.spec.js +172 -0
  34. package/dist/cjs/tests/utility.spec.js.map +1 -0
  35. package/dist/cjs/tsconfig-cjs.tsbuildinfo +1 -0
  36. package/dist/esm/index.d.ts +7 -0
  37. package/dist/esm/index.js.map +1 -0
  38. package/dist/esm/model/account.dto.d.ts +18 -0
  39. package/dist/esm/model/account.dto.js.map +1 -0
  40. package/dist/esm/model/assignment.dto.d.ts +115 -0
  41. package/dist/esm/model/assignment.dto.js.map +1 -0
  42. package/dist/esm/model/assignment.model.d.ts +33 -0
  43. package/dist/esm/model/assignment.model.js.map +1 -0
  44. package/dist/esm/model/auth.dto.d.ts +52 -0
  45. package/dist/esm/model/auth.dto.js.map +1 -0
  46. package/dist/esm/model/model.d.ts +11 -0
  47. package/dist/esm/model/model.js.map +1 -0
  48. package/dist/esm/model/user.dto.d.ts +43 -0
  49. package/dist/esm/model/user.dto.js.map +1 -0
  50. package/dist/esm/model/utility.d.ts +4 -0
  51. package/dist/esm/model/utility.js.map +1 -0
  52. package/dist/esm/tests/account.dto.spec.d.ts +1 -0
  53. package/dist/esm/tests/account.dto.spec.js +187 -0
  54. package/dist/esm/tests/account.dto.spec.js.map +1 -0
  55. package/dist/esm/tests/assignment.dto.spec.d.ts +1 -0
  56. package/dist/esm/tests/assignment.dto.spec.js +343 -0
  57. package/dist/esm/tests/assignment.dto.spec.js.map +1 -0
  58. package/dist/esm/tests/auth.dto.spec.d.ts +1 -0
  59. package/dist/esm/tests/auth.dto.spec.js +385 -0
  60. package/dist/esm/tests/auth.dto.spec.js.map +1 -0
  61. package/dist/esm/tests/model.spec.d.ts +1 -0
  62. package/dist/esm/tests/model.spec.js +186 -0
  63. package/dist/esm/tests/model.spec.js.map +1 -0
  64. package/dist/esm/tests/user.dto.spec.d.ts +1 -0
  65. package/dist/esm/tests/user.dto.spec.js +278 -0
  66. package/dist/esm/tests/user.dto.spec.js.map +1 -0
  67. package/dist/esm/tests/utility.spec.d.ts +1 -0
  68. package/dist/esm/tests/utility.spec.js +170 -0
  69. package/dist/esm/tests/utility.spec.js.map +1 -0
  70. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  71. package/package.json +6 -12
  72. package/dist/index.js.map +0 -1
  73. package/dist/model/account.dto.js.map +0 -1
  74. package/dist/model/assignment.dto.js.map +0 -1
  75. package/dist/model/assignment.model.js.map +0 -1
  76. package/dist/model/auth.dto.js.map +0 -1
  77. package/dist/model/model.js.map +0 -1
  78. package/dist/model/user.dto.js.map +0 -1
  79. package/dist/model/utility.js.map +0 -1
  80. package/dist/tsconfig.tsbuildinfo +0 -1
  81. /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
  82. /package/dist/{model → cjs/model}/account.dto.d.ts +0 -0
  83. /package/dist/{model → cjs/model}/assignment.dto.d.ts +0 -0
  84. /package/dist/{model → cjs/model}/assignment.model.d.ts +0 -0
  85. /package/dist/{model → cjs/model}/auth.dto.d.ts +0 -0
  86. /package/dist/{model → cjs/model}/model.d.ts +0 -0
  87. /package/dist/{model → cjs/model}/user.dto.d.ts +0 -0
  88. /package/dist/{model → cjs/model}/utility.d.ts +0 -0
  89. /package/dist/{index.js → esm/index.js} +0 -0
  90. /package/dist/{model → esm/model}/account.dto.js +0 -0
  91. /package/dist/{model → esm/model}/assignment.dto.js +0 -0
  92. /package/dist/{model → esm/model}/assignment.model.js +0 -0
  93. /package/dist/{model → esm/model}/auth.dto.js +0 -0
  94. /package/dist/{model → esm/model}/model.js +0 -0
  95. /package/dist/{model → esm/model}/user.dto.js +0 -0
  96. /package/dist/{model → esm/model}/utility.js +0 -0
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./model/account.dto"), exports);
18
+ __exportStar(require("./model/assignment.dto"), exports);
19
+ __exportStar(require("./model/auth.dto"), exports);
20
+ __exportStar(require("./model/user.dto"), exports);
21
+ __exportStar(require("./model/model"), exports);
22
+ __exportStar(require("./model/assignment.model"), exports);
23
+ __exportStar(require("./model/utility"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,yDAAuC;AACvC,mDAAiC;AACjC,mDAAiC;AACjC,gDAA8B;AAC9B,2DAAyC;AACzC,kDAAgC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdateAccountDtoSchema = exports.AccountDtoSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const model_1 = require("./model");
6
+ const utility_1 = require("./utility");
7
+ exports.AccountDtoSchema = zod_1.z.object({
8
+ id: zod_1.z.uuid(),
9
+ name: zod_1.z.string(),
10
+ createdByUserId: zod_1.z.uuid(),
11
+ status: (0, utility_1.createZodEnum)(model_1.ActivationStatus),
12
+ language: zod_1.z.string(),
13
+ createdAt: zod_1.z.date(),
14
+ updatedAt: zod_1.z.date(),
15
+ });
16
+ exports.UpdateAccountDtoSchema = zod_1.z
17
+ .object({
18
+ name: zod_1.z
19
+ .string()
20
+ .min(3, 'Name is required')
21
+ .max(255, 'Name must be less than 255 characters')
22
+ .optional(),
23
+ language: zod_1.z
24
+ .string()
25
+ .min(2, 'Language must be at least 2 characters')
26
+ .max(10, 'Language must be less than 10 characters')
27
+ .optional(),
28
+ })
29
+ .refine((data) => Object.keys(data).length > 0, 'At least one field must be provided for update');
30
+ //# sourceMappingURL=account.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.dto.js","sourceRoot":"","sources":["../../../src/model/account.dto.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,mCAA2C;AAC3C,uCAA0C;AAE7B,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,OAAC,CAAC,IAAI,EAAE;IACZ,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,eAAe,EAAE,OAAC,CAAC,IAAI,EAAE;IACzB,MAAM,EAAE,IAAA,uBAAa,EAAC,wBAAgB,CAAC;IACvC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;IACpB,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE;IACnB,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE;CACpB,CAAC,CAAC;AAIU,QAAA,sBAAsB,GAAG,OAAC;KACpC,MAAM,CAAC;IACN,IAAI,EAAE,OAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC;SAC1B,GAAG,CAAC,GAAG,EAAE,uCAAuC,CAAC;SACjD,QAAQ,EAAE;IACb,QAAQ,EAAE,OAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,wCAAwC,CAAC;SAChD,GAAG,CAAC,EAAE,EAAE,0CAA0C,CAAC;SACnD,QAAQ,EAAE;CACd,CAAC;KACD,MAAM,CACL,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EACtC,gDAAgD,CACjD,CAAC"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdateAssignmentDtoSchema = exports.AssignmentAnswerDtoSchema = exports.PaginatedAssignmentsDtoSchema = exports.GetAssignmentsQueryDtoSchema = exports.AssignmentDtoSchema = exports.CreateAssignmentDtoSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const assignment_model_1 = require("./assignment.model");
6
+ exports.CreateAssignmentDtoSchema = zod_1.z.object({
7
+ assigneeId: zod_1.z.uuid('Invalid assignee ID format'),
8
+ prompt: zod_1.z
9
+ .string()
10
+ .min(1, 'Prompt is required')
11
+ .max(10000, 'Prompt must be less than 10000 characters'),
12
+ });
13
+ exports.AssignmentDtoSchema = zod_1.z.object({
14
+ id: zod_1.z.uuid(),
15
+ accountId: zod_1.z.uuid(),
16
+ createdByUserId: zod_1.z.uuid(),
17
+ assigneeId: zod_1.z.uuid(),
18
+ title: zod_1.z.string(),
19
+ prompt: zod_1.z.string(),
20
+ assignment: assignment_model_1.AssignmentSchema,
21
+ answers: zod_1.z
22
+ .object({
23
+ answers: zod_1.z.array(assignment_model_1.AssignmentAnswerSchema),
24
+ })
25
+ .nullable(),
26
+ submittedAt: zod_1.z.date().nullable(),
27
+ createdAt: zod_1.z.date(),
28
+ updatedAt: zod_1.z.date(),
29
+ });
30
+ exports.GetAssignmentsQueryDtoSchema = zod_1.z.object({
31
+ page: zod_1.z
32
+ .string()
33
+ .optional()
34
+ .transform((val) => (val ? parseInt(val, 10) : 1))
35
+ .refine((val) => val > 0, 'Page must be greater than 0'),
36
+ limit: zod_1.z
37
+ .string()
38
+ .optional()
39
+ .transform((val) => (val ? parseInt(val, 10) : 10))
40
+ .refine((val) => val > 0 && val <= 100, 'Limit must be between 1 and 100'),
41
+ sortBy: zod_1.z
42
+ .enum(['createdAt', 'updatedAt', 'submittedAt'])
43
+ .optional()
44
+ .default('createdAt'),
45
+ sortOrder: zod_1.z.enum(['asc', 'desc']).optional().default('desc'),
46
+ assigneeId: zod_1.z.uuid('Invalid assignee ID format').optional(),
47
+ createdByUserId: zod_1.z.uuid('Invalid creator ID format').optional(),
48
+ title: zod_1.z
49
+ .string()
50
+ .min(1, 'Title search term cannot be empty')
51
+ .max(255, 'Title search term too long')
52
+ .optional(),
53
+ hasAnswers: zod_1.z
54
+ .string()
55
+ .optional()
56
+ .transform((val) => {
57
+ if (val === 'true')
58
+ return true;
59
+ if (val === 'false')
60
+ return false;
61
+ return undefined;
62
+ }),
63
+ createdAtFrom: zod_1.z
64
+ .string()
65
+ .optional()
66
+ .transform((val) => (val ? new Date(val) : undefined)),
67
+ createdAtTo: zod_1.z
68
+ .string()
69
+ .optional()
70
+ .transform((val) => (val ? new Date(val) : undefined)),
71
+ submittedAtFrom: zod_1.z
72
+ .string()
73
+ .optional()
74
+ .transform((val) => (val ? new Date(val) : undefined)),
75
+ submittedAtTo: zod_1.z
76
+ .string()
77
+ .optional()
78
+ .transform((val) => (val ? new Date(val) : undefined)),
79
+ });
80
+ exports.PaginatedAssignmentsDtoSchema = zod_1.z.object({
81
+ assignments: zod_1.z.array(exports.AssignmentDtoSchema),
82
+ pagination: zod_1.z.object({
83
+ page: zod_1.z.number(),
84
+ limit: zod_1.z.number(),
85
+ }),
86
+ });
87
+ exports.AssignmentAnswerDtoSchema = zod_1.z.object({
88
+ answers: zod_1.z
89
+ .array(assignment_model_1.AssignmentAnswerSchema)
90
+ .min(1, 'At least one answer is required'),
91
+ });
92
+ exports.UpdateAssignmentDtoSchema = zod_1.z
93
+ .object({
94
+ assigneeId: zod_1.z.uuid('Invalid assignee ID format').optional(),
95
+ title: zod_1.z
96
+ .string()
97
+ .min(1, 'Title is required')
98
+ .max(255, 'Title must be less than 255 characters')
99
+ .optional(),
100
+ assignment: assignment_model_1.AssignmentSchema.optional(),
101
+ })
102
+ .refine((data) => Object.keys(data).length > 0, 'At least one field must be provided for update');
103
+ //# sourceMappingURL=assignment.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assignment.dto.js","sourceRoot":"","sources":["../../../src/model/assignment.dto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AssignmentAnswersSchema = exports.AssignmentAnswerSchema = exports.AssignmentSchema = exports.AssignmentQuestionSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.AssignmentQuestionSchema = zod_1.z.object({
6
+ id: zod_1.z.string().describe('The unique identifier of the question'),
7
+ content: zod_1.z.string().describe('The content of the question'),
8
+ answers: zod_1.z.array(zod_1.z.string()).describe('The answers of the question'),
9
+ correctAnswerIndex: zod_1.z.number().describe('The index of the correct answer'),
10
+ answerExplanation: zod_1.z.string().describe('The explanation of the answer'),
11
+ });
12
+ exports.AssignmentSchema = zod_1.z.object({
13
+ title: zod_1.z.string().describe('The title of the assignment'),
14
+ content: zod_1.z.string().describe('The content of the assignment'),
15
+ questions: zod_1.z
16
+ .array(exports.AssignmentQuestionSchema)
17
+ .describe('The questions of the assignment'),
18
+ });
19
+ exports.AssignmentAnswerSchema = zod_1.z.object({
20
+ questionId: zod_1.z
21
+ .string()
22
+ .describe('The unique identifier of the question being answered'),
23
+ answerIndex: zod_1.z.number().describe('The index of the correct answer'),
24
+ });
25
+ exports.AssignmentAnswersSchema = zod_1.z.object({
26
+ answers: zod_1.z
27
+ .array(exports.AssignmentAnswerSchema)
28
+ .min(1, 'At least one answer is required'),
29
+ });
30
+ //# sourceMappingURL=assignment.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assignment.model.js","sourceRoot":"","sources":["../../../src/model/assignment.model.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/C,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IAChE,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC3D,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACpE,kBAAkB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC1E,iBAAiB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;CACxE,CAAC,CAAC;AAEU,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IACzD,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAC7D,SAAS,EAAE,OAAC;SACT,KAAK,CAAC,gCAAwB,CAAC;SAC/B,QAAQ,CAAC,iCAAiC,CAAC;CAC/C,CAAC,CAAC;AAEU,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,UAAU,EAAE,OAAC;SACV,MAAM,EAAE;SACR,QAAQ,CAAC,sDAAsD,CAAC;IACnE,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;CACpE,CAAC,CAAC;AAEU,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,OAAC;SACP,KAAK,CAAC,8BAAsB,CAAC;SAC7B,GAAG,CAAC,CAAC,EAAE,iCAAiC,CAAC;CAC7C,CAAC,CAAC"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LoginResponseSchema = exports.LoginDtoSchema = exports.CreateAccountUserResponseSchema = exports.CreateAccountUserDtoSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const model_1 = require("./model");
6
+ const utility_1 = require("./utility");
7
+ exports.CreateAccountUserDtoSchema = zod_1.z.object({
8
+ account: zod_1.z.object({
9
+ name: zod_1.z
10
+ .string()
11
+ .min(1, 'Account name is required')
12
+ .max(255, 'Account name must be less than 255 characters'),
13
+ }),
14
+ user: zod_1.z.object({
15
+ firstName: zod_1.z
16
+ .string()
17
+ .min(1, 'First name is required')
18
+ .max(255, 'First name must be less than 255 characters'),
19
+ lastName: zod_1.z
20
+ .string()
21
+ .min(1, 'Last name is required')
22
+ .max(255, 'Last name must be less than 255 characters'),
23
+ email: zod_1.z
24
+ .email('Invalid email format')
25
+ .max(255, 'Email must be less than 255 characters'),
26
+ username: zod_1.z
27
+ .string()
28
+ .min(1, 'Username is required')
29
+ .max(255, 'Username must be less than 255 characters'),
30
+ password: zod_1.z
31
+ .string()
32
+ .min(6, 'Password must be at least 6 characters')
33
+ .max(255, 'Password must be less than 255 characters'),
34
+ birthdate: zod_1.z
35
+ .string()
36
+ .optional()
37
+ .transform((val) => (val ? new Date(val) : undefined)),
38
+ }),
39
+ });
40
+ exports.CreateAccountUserResponseSchema = zod_1.z.object({
41
+ account: zod_1.z.object({
42
+ id: zod_1.z.uuid(),
43
+ name: zod_1.z.string(),
44
+ status: (0, utility_1.createZodEnum)(model_1.ActivationStatus),
45
+ createdAt: zod_1.z.date(),
46
+ updatedAt: zod_1.z.date(),
47
+ }),
48
+ user: zod_1.z.object({
49
+ id: zod_1.z.uuid(),
50
+ accountId: zod_1.z.uuid(),
51
+ firstName: zod_1.z.string(),
52
+ lastName: zod_1.z.string(),
53
+ email: zod_1.z.string(),
54
+ username: zod_1.z.string(),
55
+ role: (0, utility_1.createZodEnum)(model_1.UserRole),
56
+ status: (0, utility_1.createZodEnum)(model_1.ActivationStatus),
57
+ createdAt: zod_1.z.date(),
58
+ updatedAt: zod_1.z.date(),
59
+ }),
60
+ });
61
+ exports.LoginDtoSchema = zod_1.z.object({
62
+ emailOrUsername: zod_1.z
63
+ .string()
64
+ .min(1, 'Email or username is required')
65
+ .max(255, 'Email or username must be less than 255 characters'),
66
+ password: zod_1.z.string('Password must be provided'),
67
+ });
68
+ exports.LoginResponseSchema = zod_1.z.object({
69
+ token: zod_1.z.string(),
70
+ });
71
+ //# sourceMappingURL=auth.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.dto.js","sourceRoot":"","sources":["../../../src/model/auth.dto.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,mCAAqD;AACrD,uCAA0C;AAE7B,QAAA,0BAA0B,GAAG,OAAC,CAAC,MAAM,CAAC;IACjD,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC;QAChB,IAAI,EAAE,OAAC;aACJ,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC;aAClC,GAAG,CAAC,GAAG,EAAE,+CAA+C,CAAC;KAC7D,CAAC;IACF,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC;QACb,SAAS,EAAE,OAAC;aACT,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;aAChC,GAAG,CAAC,GAAG,EAAE,6CAA6C,CAAC;QAC1D,QAAQ,EAAE,OAAC;aACR,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;aAC/B,GAAG,CAAC,GAAG,EAAE,4CAA4C,CAAC;QACzD,KAAK,EAAE,OAAC;aACL,KAAK,CAAC,sBAAsB,CAAC;aAC7B,GAAG,CAAC,GAAG,EAAE,wCAAwC,CAAC;QACrD,QAAQ,EAAE,OAAC;aACR,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;aAC9B,GAAG,CAAC,GAAG,EAAE,2CAA2C,CAAC;QACxD,QAAQ,EAAE,OAAC;aACR,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,EAAE,wCAAwC,CAAC;aAChD,GAAG,CAAC,GAAG,EAAE,2CAA2C,CAAC;QACxD,SAAS,EAAE,OAAC;aACT,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;KACzD,CAAC;CACH,CAAC,CAAC;AAIU,QAAA,+BAA+B,GAAG,OAAC,CAAC,MAAM,CAAC;IACtD,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC;QAChB,EAAE,EAAE,OAAC,CAAC,IAAI,EAAE;QACZ,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;QAChB,MAAM,EAAE,IAAA,uBAAa,EAAC,wBAAgB,CAAC;QACvC,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE;QACnB,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE;KACpB,CAAC;IACF,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC;QACb,EAAE,EAAE,OAAC,CAAC,IAAI,EAAE;QACZ,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE;QACnB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;QACrB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;QACpB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;QACjB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;QACpB,IAAI,EAAE,IAAA,uBAAa,EAAC,gBAAQ,CAAC;QAC7B,MAAM,EAAE,IAAA,uBAAa,EAAC,wBAAgB,CAAC;QACvC,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE;QACnB,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE;KACpB,CAAC;CACH,CAAC,CAAC;AAMU,QAAA,cAAc,GAAG,OAAC,CAAC,MAAM,CAAC;IACrC,eAAe,EAAE,OAAC;SACf,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,+BAA+B,CAAC;SACvC,GAAG,CAAC,GAAG,EAAE,oDAAoD,CAAC;IACjE,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,2BAA2B,CAAC;CAChD,CAAC,CAAC;AAIU,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ActivationStatus = exports.UserRole = void 0;
4
+ exports.UserRole = {
5
+ OWNER: 'owner',
6
+ PARENT: 'parent',
7
+ CHILD: 'child',
8
+ };
9
+ exports.ActivationStatus = {
10
+ ACTIVE: 'active',
11
+ DISABLED: 'disabled',
12
+ };
13
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/model/model.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG;IACtB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;CACN,CAAC;AAIE,QAAA,gBAAgB,GAAG;IAC9B,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;CACZ,CAAC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AccountUsersDtoSchema = exports.CreateChildUserDtoSchema = exports.UserDtoSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const model_1 = require("./model");
6
+ const utility_1 = require("./utility");
7
+ exports.UserDtoSchema = zod_1.z.object({
8
+ id: zod_1.z.uuid(),
9
+ firstName: zod_1.z.string(),
10
+ lastName: zod_1.z.string(),
11
+ email: zod_1.z.email().optional(),
12
+ username: zod_1.z.string(),
13
+ role: (0, utility_1.createZodEnum)(model_1.UserRole),
14
+ status: (0, utility_1.createZodEnum)(model_1.ActivationStatus),
15
+ createdAt: zod_1.z.date(),
16
+ updatedAt: zod_1.z.date(),
17
+ });
18
+ exports.CreateChildUserDtoSchema = zod_1.z.object({
19
+ firstName: zod_1.z.string().min(1, 'First name is required'),
20
+ lastName: zod_1.z.string().min(1, 'Last name is required'),
21
+ username: zod_1.z.string().min(3, 'Username is required'),
22
+ password: zod_1.z.string().length(4, 'Password must be exactly 4 characters'),
23
+ birthdate: zod_1.z
24
+ .string()
25
+ .optional()
26
+ .transform((val) => (val ? new Date(val) : undefined)),
27
+ });
28
+ exports.AccountUsersDtoSchema = zod_1.z.object({
29
+ users: zod_1.z.array(exports.UserDtoSchema),
30
+ });
31
+ //# sourceMappingURL=user.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.dto.js","sourceRoot":"","sources":["../../../src/model/user.dto.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,mCAAqD;AACrD,uCAA0C;AAE7B,QAAA,aAAa,GAAG,OAAC,CAAC,MAAM,CAAC;IACpC,EAAE,EAAE,OAAC,CAAC,IAAI,EAAE;IACZ,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE;IACrB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,OAAC,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IAC3B,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE;IACpB,IAAI,EAAE,IAAA,uBAAa,EAAC,gBAAQ,CAAC;IAC7B,MAAM,EAAE,IAAA,uBAAa,EAAC,wBAAgB,CAAC;IACvC,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE;IACnB,SAAS,EAAE,OAAC,CAAC,IAAI,EAAE;CACpB,CAAC,CAAC;AAIU,QAAA,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;IACtD,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;IACpD,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;IACnD,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,uCAAuC,CAAC;IACvE,SAAS,EAAE,OAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;CACzD,CAAC,CAAC;AAIU,QAAA,qBAAqB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,qBAAa,CAAC;CAC9B,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createZodEnum = createZodEnum;
4
+ const zod_1 = require("zod");
5
+ function createZodEnum(enumObject) {
6
+ return zod_1.z.enum(Object.values(enumObject));
7
+ }
8
+ //# sourceMappingURL=utility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utility.js","sourceRoot":"","sources":["../../../src/model/utility.ts"],"names":[],"mappings":";;AAEA,sCAEC;AAJD,6BAAwB;AAExB,SAAgB,aAAa,CAAmC,UAAa;IAC3E,OAAO,OAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAA0B,CAAC,CAAC;AACpE,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const account_dto_1 = require("../model/account.dto");
4
+ describe('AccountDto Schemas', () => {
5
+ describe('UpdateAccountDtoSchema', () => {
6
+ it('should validate a valid update account DTO with name', () => {
7
+ const validDto = {
8
+ name: 'Updated Account Name',
9
+ };
10
+ const result = account_dto_1.UpdateAccountDtoSchema.safeParse(validDto);
11
+ expect(result.success).toBe(true);
12
+ if (result.success) {
13
+ expect(result.data.name).toBe('Updated Account Name');
14
+ expect(result.data.language).toBeUndefined();
15
+ }
16
+ });
17
+ it('should validate a valid update account DTO with language', () => {
18
+ const validDto = {
19
+ language: 'en',
20
+ };
21
+ const result = account_dto_1.UpdateAccountDtoSchema.safeParse(validDto);
22
+ expect(result.success).toBe(true);
23
+ if (result.success) {
24
+ expect(result.data.language).toBe('en');
25
+ expect(result.data.name).toBeUndefined();
26
+ }
27
+ });
28
+ it('should validate a valid update account DTO with both name and language', () => {
29
+ const validDto = {
30
+ name: 'Updated Account Name',
31
+ language: 'fr',
32
+ };
33
+ const result = account_dto_1.UpdateAccountDtoSchema.safeParse(validDto);
34
+ expect(result.success).toBe(true);
35
+ if (result.success) {
36
+ expect(result.data.name).toBe('Updated Account Name');
37
+ expect(result.data.language).toBe('fr');
38
+ }
39
+ });
40
+ it('should reject empty DTO (at least one field required)', () => {
41
+ const emptyDto = {};
42
+ const result = account_dto_1.UpdateAccountDtoSchema.safeParse(emptyDto);
43
+ expect(result.success).toBe(false);
44
+ if (!result.success) {
45
+ expect(result.error.issues[0].message).toBe('At least one field must be provided for update');
46
+ }
47
+ });
48
+ it('should reject empty name string', () => {
49
+ const invalidDto = {
50
+ name: '',
51
+ };
52
+ const result = account_dto_1.UpdateAccountDtoSchema.safeParse(invalidDto);
53
+ expect(result.success).toBe(false);
54
+ if (!result.success) {
55
+ expect(result.error.issues[0].path).toEqual(['name']);
56
+ expect(result.error.issues[0].message).toBe('Name is required');
57
+ }
58
+ });
59
+ it('should reject name longer than 255 characters', () => {
60
+ const invalidDto = {
61
+ name: 'A'.repeat(256),
62
+ };
63
+ const result = account_dto_1.UpdateAccountDtoSchema.safeParse(invalidDto);
64
+ expect(result.success).toBe(false);
65
+ if (!result.success) {
66
+ expect(result.error.issues[0].path).toEqual(['name']);
67
+ expect(result.error.issues[0].message).toBe('Name must be less than 255 characters');
68
+ }
69
+ });
70
+ it('should accept name with exactly 255 characters', () => {
71
+ const validDto = {
72
+ name: 'A'.repeat(255),
73
+ };
74
+ const result = account_dto_1.UpdateAccountDtoSchema.safeParse(validDto);
75
+ expect(result.success).toBe(true);
76
+ if (result.success) {
77
+ expect(result.data.name).toBe('A'.repeat(255));
78
+ }
79
+ });
80
+ it('should reject language shorter than 2 characters', () => {
81
+ const invalidDto = {
82
+ language: 'e',
83
+ };
84
+ const result = account_dto_1.UpdateAccountDtoSchema.safeParse(invalidDto);
85
+ expect(result.success).toBe(false);
86
+ if (!result.success) {
87
+ expect(result.error.issues[0].path).toEqual(['language']);
88
+ expect(result.error.issues[0].message).toBe('Language must be at least 2 characters');
89
+ }
90
+ });
91
+ it('should reject language longer than 10 characters', () => {
92
+ const invalidDto = {
93
+ language: 'A'.repeat(11),
94
+ };
95
+ const result = account_dto_1.UpdateAccountDtoSchema.safeParse(invalidDto);
96
+ expect(result.success).toBe(false);
97
+ if (!result.success) {
98
+ expect(result.error.issues[0].path).toEqual(['language']);
99
+ expect(result.error.issues[0].message).toBe('Language must be less than 10 characters');
100
+ }
101
+ });
102
+ it('should accept language with exactly 2 characters', () => {
103
+ const validDto = {
104
+ language: 'en',
105
+ };
106
+ const result = account_dto_1.UpdateAccountDtoSchema.safeParse(validDto);
107
+ expect(result.success).toBe(true);
108
+ if (result.success) {
109
+ expect(result.data.language).toBe('en');
110
+ }
111
+ });
112
+ it('should accept language with exactly 10 characters', () => {
113
+ const validDto = {
114
+ language: 'A'.repeat(10),
115
+ };
116
+ const result = account_dto_1.UpdateAccountDtoSchema.safeParse(validDto);
117
+ expect(result.success).toBe(true);
118
+ if (result.success) {
119
+ expect(result.data.language).toBe('A'.repeat(10));
120
+ }
121
+ });
122
+ it('should handle special characters in name', () => {
123
+ const validDto = {
124
+ name: "O'Connor-Smith & Co.",
125
+ };
126
+ const result = account_dto_1.UpdateAccountDtoSchema.safeParse(validDto);
127
+ expect(result.success).toBe(true);
128
+ if (result.success) {
129
+ expect(result.data.name).toBe("O'Connor-Smith & Co.");
130
+ }
131
+ });
132
+ it('should handle unicode characters in name', () => {
133
+ const validDto = {
134
+ name: '账户名称',
135
+ };
136
+ const result = account_dto_1.UpdateAccountDtoSchema.safeParse(validDto);
137
+ expect(result.success).toBe(true);
138
+ if (result.success) {
139
+ expect(result.data.name).toBe('账户名称');
140
+ }
141
+ });
142
+ it('should handle various language codes', () => {
143
+ const languageCodes = ['en', 'fr', 'de', 'es', 'zh', 'ja', 'ko', 'pt-BR'];
144
+ languageCodes.forEach((lang) => {
145
+ const validDto = {
146
+ language: lang,
147
+ };
148
+ const result = account_dto_1.UpdateAccountDtoSchema.safeParse(validDto);
149
+ expect(result.success).toBe(true);
150
+ if (result.success) {
151
+ expect(result.data.language).toBe(lang);
152
+ }
153
+ });
154
+ });
155
+ it('should reject non-string name', () => {
156
+ const invalidDto = {
157
+ name: 123,
158
+ };
159
+ const result = account_dto_1.UpdateAccountDtoSchema.safeParse(invalidDto);
160
+ expect(result.success).toBe(false);
161
+ if (!result.success) {
162
+ expect(result.error.issues[0].path).toEqual(['name']);
163
+ expect(result.error.issues[0].code).toBe('invalid_type');
164
+ }
165
+ });
166
+ it('should reject non-string language', () => {
167
+ const invalidDto = {
168
+ language: 123,
169
+ };
170
+ const result = account_dto_1.UpdateAccountDtoSchema.safeParse(invalidDto);
171
+ expect(result.success).toBe(false);
172
+ if (!result.success) {
173
+ expect(result.error.issues[0].path).toEqual(['language']);
174
+ expect(result.error.issues[0].code).toBe('invalid_type');
175
+ }
176
+ });
177
+ it('should accept whitespace-only name (Zod allows it, validation happens at service level if needed)', () => {
178
+ const validDto = {
179
+ name: ' ',
180
+ };
181
+ const result = account_dto_1.UpdateAccountDtoSchema.safeParse(validDto);
182
+ expect(result.success).toBe(true);
183
+ if (result.success) {
184
+ expect(result.data.name).toBe(' ');
185
+ }
186
+ });
187
+ });
188
+ });
189
+ //# sourceMappingURL=account.dto.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.dto.spec.js","sourceRoot":"","sources":["../../../src/tests/account.dto.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};