@goat-it/schemas 0.0.1 → 0.0.4-beta

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 (77) hide show
  1. package/dist/question/index.d.mts +3 -3
  2. package/dist/question/index.mjs +1 -2
  3. package/dist/question-theme/index.mjs +1 -2
  4. package/dist/shared/locale/index.mjs +1 -2
  5. package/dist/src/contexts/question/application/dto/admin-question/admin-question-content/admin-question-content.dto.shape.mjs +1 -2
  6. package/dist/src/contexts/question/application/dto/admin-question/admin-question-content/admin-question-content.dto.shape.mjs.map +1 -1
  7. package/dist/src/contexts/question/application/dto/admin-question/admin-question-theme-assignment/admin-question-theme-assignment.dto.shape.mjs +1 -2
  8. package/dist/src/contexts/question/application/dto/admin-question/admin-question-theme-assignment/admin-question-theme-assignment.dto.shape.mjs.map +1 -1
  9. package/dist/src/contexts/question/application/dto/admin-question/admin-question.dto.shape.d.mts +52 -11
  10. package/dist/src/contexts/question/application/dto/admin-question/admin-question.dto.shape.mjs +2 -4
  11. package/dist/src/contexts/question/application/dto/admin-question/admin-question.dto.shape.mjs.map +1 -1
  12. package/dist/src/contexts/question/application/dto/question/question-content/question-content.dto.shape.mjs +1 -2
  13. package/dist/src/contexts/question/application/dto/question/question-content/question-content.dto.shape.mjs.map +1 -1
  14. package/dist/src/contexts/question/application/dto/question/question-theme-assignment/question-theme-assignment.dto.shape.mjs +1 -2
  15. package/dist/src/contexts/question/application/dto/question/question-theme-assignment/question-theme-assignment.dto.shape.mjs.map +1 -1
  16. package/dist/src/contexts/question/application/dto/question/question.dto.shape.d.mts +52 -11
  17. package/dist/src/contexts/question/application/dto/question/question.dto.shape.mjs +2 -4
  18. package/dist/src/contexts/question/application/dto/question/question.dto.shape.mjs.map +1 -1
  19. package/dist/src/contexts/question/application/dto/question-creation/question-author-creation/question-author-creation.dto.shape.mjs +3 -4
  20. package/dist/src/contexts/question/application/dto/question-creation/question-author-creation/question-author-creation.dto.shape.mjs.map +1 -1
  21. package/dist/src/contexts/question/application/dto/question-creation/question-content-creation/question-content-creation.dto.shape.mjs +1 -2
  22. package/dist/src/contexts/question/application/dto/question-creation/question-content-creation/question-content-creation.dto.shape.mjs.map +1 -1
  23. package/dist/src/contexts/question/application/dto/question-creation/question-creation.dto.shape.d.mts +23 -6
  24. package/dist/src/contexts/question/application/dto/question-creation/question-creation.dto.shape.mjs +2 -4
  25. package/dist/src/contexts/question/application/dto/question-creation/question-creation.dto.shape.mjs.map +1 -1
  26. package/dist/src/contexts/question/application/dto/question-creation/question-theme-assignment-creation/question-theme-assignment-creation.dto.shape.d.mts +1 -1
  27. package/dist/src/contexts/question/application/dto/question-creation/question-theme-assignment-creation/question-theme-assignment-creation.dto.shape.mjs +1 -2
  28. package/dist/src/contexts/question/application/dto/question-creation/question-theme-assignment-creation/question-theme-assignment-creation.dto.shape.mjs.map +1 -1
  29. package/dist/src/contexts/question/application/dto/shared/question-author/question-author.dto.shape.mjs +1 -2
  30. package/dist/src/contexts/question/application/dto/shared/question-author/question-author.dto.shape.mjs.map +1 -1
  31. package/dist/src/contexts/question/application/dto/shared/question-rejection/question-rejection.dto.shape.mjs +1 -2
  32. package/dist/src/contexts/question/application/dto/shared/question-rejection/question-rejection.dto.shape.mjs.map +1 -1
  33. package/dist/src/contexts/question/application/dto/shared/zod/refinements/question-author/question-author.dto.zod.refinement.mjs +1 -1
  34. package/dist/src/contexts/question/application/dto/shared/zod/refinements/question-author/question-author.dto.zod.refinement.mjs.map +1 -1
  35. package/dist/src/contexts/question/application/dto/shared/zod/validators/question.dto.zod.validators.mjs +2 -4
  36. package/dist/src/contexts/question/application/dto/shared/zod/validators/question.dto.zod.validators.mjs.map +1 -1
  37. package/dist/src/contexts/question/domain/value-objects/question-author/question-author.constants.mjs +5 -9
  38. package/dist/src/contexts/question/domain/value-objects/question-author/question-author.constants.mjs.map +1 -1
  39. package/dist/src/contexts/question/domain/value-objects/question-category/question-category.constants.mjs +1 -1
  40. package/dist/src/contexts/question/domain/value-objects/question-category/question-category.types.d.mts +3 -1
  41. package/dist/src/contexts/question/domain/value-objects/question-cognitive-difficulty/question-cognitive-difficulty.constants.mjs +1 -1
  42. package/dist/src/contexts/question/domain/value-objects/question-cognitive-difficulty/question-cognitive-difficulty.types.d.mts +3 -1
  43. package/dist/src/contexts/question/domain/value-objects/question-rejection/question-rejection.constants.mjs +1 -1
  44. package/dist/src/contexts/question/domain/value-objects/question-status/question-status.constants.mjs +5 -10
  45. package/dist/src/contexts/question/domain/value-objects/question-status/question-status.constants.mjs.map +1 -1
  46. package/dist/src/contexts/question/domain/value-objects/question-status/question-status.types.d.mts +3 -1
  47. package/dist/src/contexts/question/modules/question-theme/application/dto/admin-question-theme/admin-question-theme.dto.shape.d.mts +9 -8
  48. package/dist/src/contexts/question/modules/question-theme/application/dto/admin-question-theme/admin-question-theme.dto.shape.mjs +1 -2
  49. package/dist/src/contexts/question/modules/question-theme/application/dto/admin-question-theme/admin-question-theme.dto.shape.mjs.map +1 -1
  50. package/dist/src/contexts/question/modules/question-theme/application/dto/question-theme/question-theme.dto.shape.d.mts +6 -5
  51. package/dist/src/contexts/question/modules/question-theme/application/dto/question-theme/question-theme.dto.shape.mjs +1 -2
  52. package/dist/src/contexts/question/modules/question-theme/application/dto/question-theme/question-theme.dto.shape.mjs.map +1 -1
  53. package/dist/src/contexts/question/modules/question-theme/application/dto/question-theme-creation/question-theme-creation.dto.shape.d.mts +4 -4
  54. package/dist/src/contexts/question/modules/question-theme/application/dto/question-theme-creation/question-theme-creation.dto.shape.mjs +1 -2
  55. package/dist/src/contexts/question/modules/question-theme/application/dto/question-theme-creation/question-theme-creation.dto.shape.mjs.map +1 -1
  56. package/dist/src/contexts/question/modules/question-theme/application/dto/question-theme-modification/question-theme-modification.dto.shape.d.mts +4 -4
  57. package/dist/src/contexts/question/modules/question-theme/application/dto/question-theme-modification/question-theme-modification.dto.shape.mjs +1 -2
  58. package/dist/src/contexts/question/modules/question-theme/application/dto/question-theme-modification/question-theme-modification.dto.shape.mjs.map +1 -1
  59. package/dist/src/contexts/question/modules/question-theme/application/dto/zod/validators/constants/question-theme.zod.validators.constants.mjs +1 -1
  60. package/dist/src/contexts/question/modules/question-theme/domain/value-objects/question-theme-status/question-theme-status.constants.mjs +2 -5
  61. package/dist/src/contexts/question/modules/question-theme/domain/value-objects/question-theme-status/question-theme-status.constants.mjs.map +1 -1
  62. package/dist/src/shared/application/dto/zod/refinements/array/array.zod.refinements.mjs +1 -1
  63. package/dist/src/shared/domain/value-objects/locale/locale.constants.mjs +1 -1
  64. package/dist/src/shared/infrastructure/http/zod/validators/localization/constants/localization.zod.validators.constants.mjs +2 -6
  65. package/dist/src/shared/infrastructure/http/zod/validators/localization/constants/localization.zod.validators.constants.mjs.map +1 -1
  66. package/dist/src/shared/infrastructure/http/zod/validators/localization/localization.zod.validators.mjs +5 -6
  67. package/dist/src/shared/infrastructure/http/zod/validators/localization/localization.zod.validators.mjs.map +1 -1
  68. package/dist/src/shared/infrastructure/http/zod/validators/string/constants/string.zod.validators.constants.mjs +3 -4
  69. package/dist/src/shared/infrastructure/http/zod/validators/string/constants/string.zod.validators.constants.mjs.map +1 -1
  70. package/dist/src/shared/infrastructure/http/zod/validators/string/string.zod.validators.mjs +5 -7
  71. package/dist/src/shared/infrastructure/http/zod/validators/string/string.zod.validators.mjs.map +1 -1
  72. package/dist/src/shared/types/enum.types.d.mts +22 -0
  73. package/package.json +11 -5
  74. package/dist/src/contexts/question/domain/value-objects/question-source-urls/question-source-urls.constants.mjs +0 -7
  75. package/dist/src/contexts/question/domain/value-objects/question-source-urls/question-source-urls.constants.mjs.map +0 -1
  76. package/dist/src/contexts/question/domain/value-objects/question-theme-assignment/question-theme-assignment.constants.mjs +0 -7
  77. package/dist/src/contexts/question/domain/value-objects/question-theme-assignment/question-theme-assignment.constants.mjs.map +0 -1
@@ -1,19 +1,17 @@
1
- import { ISO_DATE_TIME_EXAMPLE, SLUG_MAX_LENGTH, SLUG_MIN_LENGTH, SLUG_REGEX } from "./constants/string.zod.validators.constants.mjs";
1
+ import { ISO_DATE_TIME_EXAMPLE, MONGO_ID_REGEX, SLUG_REGEX } from "./constants/string.zod.validators.constants.mjs";
2
2
  import { z } from "zod";
3
- import { isMongoId } from "validator";
4
-
5
3
  //#region ../../src/shared/infrastructure/http/zod/validators/string/string.zod.validators.ts
6
4
  function zSlug(options = {}) {
7
- return z.string().trim().min(SLUG_MIN_LENGTH).max(SLUG_MAX_LENGTH).regex(SLUG_REGEX, {
5
+ return z.string().trim().min(3).max(50).regex(SLUG_REGEX, {
8
6
  error: "Invalid kebab-case value",
9
7
  ...options
10
8
  }).meta({ example: "example-slug-value" });
11
9
  }
12
10
  function zMongoId(options = {}) {
13
- return z.string().trim().refine(isMongoId, {
11
+ return z.string().trim().regex(MONGO_ID_REGEX, {
14
12
  error: "Invalid ObjectId value",
15
13
  ...options
16
- }).meta({ example: "60af924f4f1a2563f8e8b456" });
14
+ }).toLowerCase().meta({ example: "60af924f4f1a2563f8e8b456" });
17
15
  }
18
16
  function zIsoDateTime(options = {}) {
19
17
  return z.iso.datetime({
@@ -21,7 +19,7 @@ function zIsoDateTime(options = {}) {
21
19
  ...options
22
20
  }).meta({ example: ISO_DATE_TIME_EXAMPLE });
23
21
  }
24
-
25
22
  //#endregion
26
23
  export { zIsoDateTime, zMongoId, zSlug };
24
+
27
25
  //# sourceMappingURL=string.zod.validators.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"string.zod.validators.mjs","names":[],"sources":["../../../../../../../../../../src/shared/infrastructure/http/zod/validators/string/string.zod.validators.ts"],"sourcesContent":["import { isMongoId } from \"validator\";\nimport { z } from \"zod\";\n\nimport { ISO_DATE_TIME_EXAMPLE, SLUG_MAX_LENGTH, SLUG_MIN_LENGTH, SLUG_REGEX } from \"@shared/infrastructure/http/zod/validators/string/constants/string.zod.validators.constants\";\n\nimport type { $ZodCustomParams } from \"zod/v4/core\";\nimport type { ZodString, ZodISODateTime } from \"zod\";\n\nfunction zSlug(options: Partial<$ZodCustomParams> = {}): ZodString {\n return z.string()\n .trim()\n .min(SLUG_MIN_LENGTH)\n .max(SLUG_MAX_LENGTH)\n .regex(SLUG_REGEX, {\n error: \"Invalid kebab-case value\",\n ...options,\n })\n .meta({ example: \"example-slug-value\" });\n}\n\nfunction zMongoId(options: Partial<$ZodCustomParams> = {}): ZodString {\n return z.string()\n .trim()\n .refine(isMongoId, {\n error: \"Invalid ObjectId value\",\n ...options,\n })\n .meta({ example: \"60af924f4f1a2563f8e8b456\" });\n}\n\nfunction zIsoDateTime(options: Partial<$ZodCustomParams> = {}): ZodISODateTime {\n return z.iso.datetime({\n error: \"Invalid ISO 8601 datetime value\",\n ...options,\n })\n .meta({ example: ISO_DATE_TIME_EXAMPLE });\n}\n\nexport {\n zSlug,\n zMongoId,\n zIsoDateTime,\n};"],"mappings":";;;;;AAQA,SAAS,MAAM,UAAqC,EAAE,EAAa;AACjE,QAAO,EAAE,QAAQ,CACd,MAAM,CACN,IAAI,gBAAgB,CACpB,IAAI,gBAAgB,CACpB,MAAM,YAAY;EACjB,OAAO;EACP,GAAG;EACJ,CAAC,CACD,KAAK,EAAE,SAAS,sBAAsB,CAAC;;AAG5C,SAAS,SAAS,UAAqC,EAAE,EAAa;AACpE,QAAO,EAAE,QAAQ,CACd,MAAM,CACN,OAAO,WAAW;EACjB,OAAO;EACP,GAAG;EACJ,CAAC,CACD,KAAK,EAAE,SAAS,4BAA4B,CAAC;;AAGlD,SAAS,aAAa,UAAqC,EAAE,EAAkB;AAC7E,QAAO,EAAE,IAAI,SAAS;EACpB,OAAO;EACP,GAAG;EACJ,CAAC,CACC,KAAK,EAAE,SAAS,uBAAuB,CAAC"}
1
+ {"version":3,"file":"string.zod.validators.mjs","names":[],"sources":["../../../../../../../../../../src/shared/infrastructure/http/zod/validators/string/string.zod.validators.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { ISO_DATE_TIME_EXAMPLE, MONGO_ID_REGEX, SLUG_MAX_LENGTH, SLUG_MIN_LENGTH, SLUG_REGEX } from \"@shared/infrastructure/http/zod/validators/string/constants/string.zod.validators.constants\";\n\nimport type { $ZodCustomParams } from \"zod/v4/core\";\nimport type { ZodString, ZodISODateTime } from \"zod\";\n\nfunction zSlug(options: Partial<$ZodCustomParams> = {}): ZodString {\n return z.string()\n .trim()\n .min(SLUG_MIN_LENGTH)\n .max(SLUG_MAX_LENGTH)\n .regex(SLUG_REGEX, {\n error: \"Invalid kebab-case value\",\n ...options,\n })\n .meta({ example: \"example-slug-value\" });\n}\n\nfunction zMongoId(options: Partial<$ZodCustomParams> = {}): ZodString {\n return z.string()\n .trim()\n .regex(MONGO_ID_REGEX, {\n error: \"Invalid ObjectId value\",\n ...options,\n })\n .toLowerCase()\n .meta({ example: \"60af924f4f1a2563f8e8b456\" });\n}\n\nfunction zIsoDateTime(options: Partial<$ZodCustomParams> = {}): ZodISODateTime {\n return z.iso.datetime({\n error: \"Invalid ISO 8601 datetime value\",\n ...options,\n })\n .meta({ example: ISO_DATE_TIME_EXAMPLE });\n}\n\nexport {\n zSlug,\n zMongoId,\n zIsoDateTime,\n};"],"mappings":";;;AAOA,SAAS,MAAM,UAAqC,EAAE,EAAa;AACjE,QAAO,EAAE,QAAQ,CACd,MAAM,CACN,IAAA,EAAoB,CACpB,IAAA,GAAoB,CACpB,MAAM,YAAY;EACjB,OAAO;EACP,GAAG;EACJ,CAAC,CACD,KAAK,EAAE,SAAS,sBAAsB,CAAC;;AAG5C,SAAS,SAAS,UAAqC,EAAE,EAAa;AACpE,QAAO,EAAE,QAAQ,CACd,MAAM,CACN,MAAM,gBAAgB;EACrB,OAAO;EACP,GAAG;EACJ,CAAC,CACD,aAAa,CACb,KAAK,EAAE,SAAS,4BAA4B,CAAC;;AAGlD,SAAS,aAAa,UAAqC,EAAE,EAAkB;AAC7E,QAAO,EAAE,IAAI,SAAS;EACpB,OAAO;EACP,GAAG;EACJ,CAAC,CACC,KAAK,EAAE,SAAS,uBAAuB,CAAC"}
@@ -0,0 +1,22 @@
1
+ //#region ../../src/shared/types/enum.types.d.ts
2
+ /**
3
+ * Converts a tuple of strings into an enum-like object type.
4
+ *
5
+ * @template T - A readonly tuple of strings.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const COLORS = ['RED', 'GREEN', 'BLUE'] as const;
10
+ * type ColorEnum = TupleToEnum<typeof COLORS>;
11
+ * // Resulting type:
12
+ * // {
13
+ * // RED: 'RED';
14
+ * // GREEN: 'GREEN';
15
+ * // BLUE: 'BLUE';
16
+ * // }
17
+ * ```
18
+ */
19
+ type TupleToEnum<T extends readonly string[]> = { [K in T[number]]: K };
20
+ //#endregion
21
+ export { type TupleToEnum };
22
+ //# sourceMappingURL=enum.types.d.mts.map
package/package.json CHANGED
@@ -1,12 +1,18 @@
1
1
  {
2
2
  "name": "@goat-it/schemas",
3
3
  "type": "module",
4
- "version": "0.0.1",
4
+ "version": "0.0.4-beta",
5
5
  "description": "Shared types, constants and Zod schemas for the Goat It projects.",
6
6
  "author": "Antoine ZANARDI",
7
7
  "license": "MIT",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/antoinezanardi/goat-it-api",
11
+ "directory": "packages/schemas"
12
+ },
8
13
  "devDependencies": {
9
- "tsdown": "^0.20.3",
14
+ "@arethetypeswrong/core": "^0.18.2",
15
+ "tsdown": "^0.21.1",
10
16
  "typescript": "^5.9.3",
11
17
  "zod": "^4.3.6"
12
18
  },
@@ -37,12 +43,12 @@
37
43
  }
38
44
  },
39
45
  "dependencies": {
40
- "type-fest": "^5.4.4",
41
- "validator": "^13.15.26"
46
+ "type-fest": "^5.4.4"
42
47
  },
43
48
  "sideEffects": false,
44
49
  "scripts": {
45
50
  "dev": "tsdown --watch",
46
- "build": "tsdown"
51
+ "build": "tsdown && pnpm run check:dts",
52
+ "check:dts": "! grep -rn ': any' dist/ --include='*.d.mts'"
47
53
  }
48
54
  }
@@ -1,7 +0,0 @@
1
- //#region ../../src/contexts/question/domain/value-objects/question-source-urls/question-source-urls.constants.ts
2
- const QUESTION_SOURCE_URLS_MIN_ITEMS = 1;
3
- const QUESTION_SOURCE_URLS_MAX_ITEMS = 5;
4
-
5
- //#endregion
6
- export { QUESTION_SOURCE_URLS_MAX_ITEMS, QUESTION_SOURCE_URLS_MIN_ITEMS };
7
- //# sourceMappingURL=question-source-urls.constants.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"question-source-urls.constants.mjs","names":[],"sources":["../../../../../../../../../src/contexts/question/domain/value-objects/question-source-urls/question-source-urls.constants.ts"],"sourcesContent":["const QUESTION_SOURCE_URLS_MIN_ITEMS = 1;\n\nconst QUESTION_SOURCE_URLS_MAX_ITEMS = 5;\n\nexport {\n QUESTION_SOURCE_URLS_MIN_ITEMS,\n QUESTION_SOURCE_URLS_MAX_ITEMS,\n};"],"mappings":";AAAA,MAAM,iCAAiC;AAEvC,MAAM,iCAAiC"}
@@ -1,7 +0,0 @@
1
- //#region ../../src/contexts/question/domain/value-objects/question-theme-assignment/question-theme-assignment.constants.ts
2
- const QUESTION_THEME_ASSIGNMENTS_MIN_ITEMS = 1;
3
- const QUESTION_THEME_ASSIGNMENTS_MAX_ITEMS = 3;
4
-
5
- //#endregion
6
- export { QUESTION_THEME_ASSIGNMENTS_MAX_ITEMS, QUESTION_THEME_ASSIGNMENTS_MIN_ITEMS };
7
- //# sourceMappingURL=question-theme-assignment.constants.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"question-theme-assignment.constants.mjs","names":[],"sources":["../../../../../../../../../src/contexts/question/domain/value-objects/question-theme-assignment/question-theme-assignment.constants.ts"],"sourcesContent":["const QUESTION_THEME_ASSIGNMENTS_MIN_ITEMS = 1;\n\nconst QUESTION_THEME_ASSIGNMENTS_MAX_ITEMS = 3;\n\nexport {\n QUESTION_THEME_ASSIGNMENTS_MIN_ITEMS,\n QUESTION_THEME_ASSIGNMENTS_MAX_ITEMS,\n};"],"mappings":";AAAA,MAAM,uCAAuC;AAE7C,MAAM,uCAAuC"}