@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.
- package/dist/question/index.d.mts +3 -3
- package/dist/question/index.mjs +1 -2
- package/dist/question-theme/index.mjs +1 -2
- package/dist/shared/locale/index.mjs +1 -2
- package/dist/src/contexts/question/application/dto/admin-question/admin-question-content/admin-question-content.dto.shape.mjs +1 -2
- package/dist/src/contexts/question/application/dto/admin-question/admin-question-content/admin-question-content.dto.shape.mjs.map +1 -1
- package/dist/src/contexts/question/application/dto/admin-question/admin-question-theme-assignment/admin-question-theme-assignment.dto.shape.mjs +1 -2
- package/dist/src/contexts/question/application/dto/admin-question/admin-question-theme-assignment/admin-question-theme-assignment.dto.shape.mjs.map +1 -1
- package/dist/src/contexts/question/application/dto/admin-question/admin-question.dto.shape.d.mts +52 -11
- package/dist/src/contexts/question/application/dto/admin-question/admin-question.dto.shape.mjs +2 -4
- package/dist/src/contexts/question/application/dto/admin-question/admin-question.dto.shape.mjs.map +1 -1
- package/dist/src/contexts/question/application/dto/question/question-content/question-content.dto.shape.mjs +1 -2
- package/dist/src/contexts/question/application/dto/question/question-content/question-content.dto.shape.mjs.map +1 -1
- package/dist/src/contexts/question/application/dto/question/question-theme-assignment/question-theme-assignment.dto.shape.mjs +1 -2
- package/dist/src/contexts/question/application/dto/question/question-theme-assignment/question-theme-assignment.dto.shape.mjs.map +1 -1
- package/dist/src/contexts/question/application/dto/question/question.dto.shape.d.mts +52 -11
- package/dist/src/contexts/question/application/dto/question/question.dto.shape.mjs +2 -4
- package/dist/src/contexts/question/application/dto/question/question.dto.shape.mjs.map +1 -1
- package/dist/src/contexts/question/application/dto/question-creation/question-author-creation/question-author-creation.dto.shape.mjs +3 -4
- package/dist/src/contexts/question/application/dto/question-creation/question-author-creation/question-author-creation.dto.shape.mjs.map +1 -1
- package/dist/src/contexts/question/application/dto/question-creation/question-content-creation/question-content-creation.dto.shape.mjs +1 -2
- package/dist/src/contexts/question/application/dto/question-creation/question-content-creation/question-content-creation.dto.shape.mjs.map +1 -1
- package/dist/src/contexts/question/application/dto/question-creation/question-creation.dto.shape.d.mts +23 -6
- package/dist/src/contexts/question/application/dto/question-creation/question-creation.dto.shape.mjs +2 -4
- package/dist/src/contexts/question/application/dto/question-creation/question-creation.dto.shape.mjs.map +1 -1
- package/dist/src/contexts/question/application/dto/question-creation/question-theme-assignment-creation/question-theme-assignment-creation.dto.shape.d.mts +1 -1
- package/dist/src/contexts/question/application/dto/question-creation/question-theme-assignment-creation/question-theme-assignment-creation.dto.shape.mjs +1 -2
- package/dist/src/contexts/question/application/dto/question-creation/question-theme-assignment-creation/question-theme-assignment-creation.dto.shape.mjs.map +1 -1
- package/dist/src/contexts/question/application/dto/shared/question-author/question-author.dto.shape.mjs +1 -2
- package/dist/src/contexts/question/application/dto/shared/question-author/question-author.dto.shape.mjs.map +1 -1
- package/dist/src/contexts/question/application/dto/shared/question-rejection/question-rejection.dto.shape.mjs +1 -2
- package/dist/src/contexts/question/application/dto/shared/question-rejection/question-rejection.dto.shape.mjs.map +1 -1
- package/dist/src/contexts/question/application/dto/shared/zod/refinements/question-author/question-author.dto.zod.refinement.mjs +1 -1
- package/dist/src/contexts/question/application/dto/shared/zod/refinements/question-author/question-author.dto.zod.refinement.mjs.map +1 -1
- package/dist/src/contexts/question/application/dto/shared/zod/validators/question.dto.zod.validators.mjs +2 -4
- package/dist/src/contexts/question/application/dto/shared/zod/validators/question.dto.zod.validators.mjs.map +1 -1
- package/dist/src/contexts/question/domain/value-objects/question-author/question-author.constants.mjs +5 -9
- package/dist/src/contexts/question/domain/value-objects/question-author/question-author.constants.mjs.map +1 -1
- package/dist/src/contexts/question/domain/value-objects/question-category/question-category.constants.mjs +1 -1
- package/dist/src/contexts/question/domain/value-objects/question-category/question-category.types.d.mts +3 -1
- package/dist/src/contexts/question/domain/value-objects/question-cognitive-difficulty/question-cognitive-difficulty.constants.mjs +1 -1
- package/dist/src/contexts/question/domain/value-objects/question-cognitive-difficulty/question-cognitive-difficulty.types.d.mts +3 -1
- package/dist/src/contexts/question/domain/value-objects/question-rejection/question-rejection.constants.mjs +1 -1
- package/dist/src/contexts/question/domain/value-objects/question-status/question-status.constants.mjs +5 -10
- package/dist/src/contexts/question/domain/value-objects/question-status/question-status.constants.mjs.map +1 -1
- package/dist/src/contexts/question/domain/value-objects/question-status/question-status.types.d.mts +3 -1
- package/dist/src/contexts/question/modules/question-theme/application/dto/admin-question-theme/admin-question-theme.dto.shape.d.mts +9 -8
- package/dist/src/contexts/question/modules/question-theme/application/dto/admin-question-theme/admin-question-theme.dto.shape.mjs +1 -2
- package/dist/src/contexts/question/modules/question-theme/application/dto/admin-question-theme/admin-question-theme.dto.shape.mjs.map +1 -1
- package/dist/src/contexts/question/modules/question-theme/application/dto/question-theme/question-theme.dto.shape.d.mts +6 -5
- package/dist/src/contexts/question/modules/question-theme/application/dto/question-theme/question-theme.dto.shape.mjs +1 -2
- package/dist/src/contexts/question/modules/question-theme/application/dto/question-theme/question-theme.dto.shape.mjs.map +1 -1
- package/dist/src/contexts/question/modules/question-theme/application/dto/question-theme-creation/question-theme-creation.dto.shape.d.mts +4 -4
- package/dist/src/contexts/question/modules/question-theme/application/dto/question-theme-creation/question-theme-creation.dto.shape.mjs +1 -2
- package/dist/src/contexts/question/modules/question-theme/application/dto/question-theme-creation/question-theme-creation.dto.shape.mjs.map +1 -1
- package/dist/src/contexts/question/modules/question-theme/application/dto/question-theme-modification/question-theme-modification.dto.shape.d.mts +4 -4
- package/dist/src/contexts/question/modules/question-theme/application/dto/question-theme-modification/question-theme-modification.dto.shape.mjs +1 -2
- package/dist/src/contexts/question/modules/question-theme/application/dto/question-theme-modification/question-theme-modification.dto.shape.mjs.map +1 -1
- package/dist/src/contexts/question/modules/question-theme/application/dto/zod/validators/constants/question-theme.zod.validators.constants.mjs +1 -1
- package/dist/src/contexts/question/modules/question-theme/domain/value-objects/question-theme-status/question-theme-status.constants.mjs +2 -5
- package/dist/src/contexts/question/modules/question-theme/domain/value-objects/question-theme-status/question-theme-status.constants.mjs.map +1 -1
- package/dist/src/shared/application/dto/zod/refinements/array/array.zod.refinements.mjs +1 -1
- package/dist/src/shared/domain/value-objects/locale/locale.constants.mjs +1 -1
- package/dist/src/shared/infrastructure/http/zod/validators/localization/constants/localization.zod.validators.constants.mjs +2 -6
- package/dist/src/shared/infrastructure/http/zod/validators/localization/constants/localization.zod.validators.constants.mjs.map +1 -1
- package/dist/src/shared/infrastructure/http/zod/validators/localization/localization.zod.validators.mjs +5 -6
- package/dist/src/shared/infrastructure/http/zod/validators/localization/localization.zod.validators.mjs.map +1 -1
- package/dist/src/shared/infrastructure/http/zod/validators/string/constants/string.zod.validators.constants.mjs +3 -4
- package/dist/src/shared/infrastructure/http/zod/validators/string/constants/string.zod.validators.constants.mjs.map +1 -1
- package/dist/src/shared/infrastructure/http/zod/validators/string/string.zod.validators.mjs +5 -7
- package/dist/src/shared/infrastructure/http/zod/validators/string/string.zod.validators.mjs.map +1 -1
- package/dist/src/shared/types/enum.types.d.mts +22 -0
- package/package.json +11 -5
- package/dist/src/contexts/question/domain/value-objects/question-source-urls/question-source-urls.constants.mjs +0 -7
- package/dist/src/contexts/question/domain/value-objects/question-source-urls/question-source-urls.constants.mjs.map +0 -1
- package/dist/src/contexts/question/domain/value-objects/question-theme-assignment/question-theme-assignment.constants.mjs +0 -7
- 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,
|
|
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(
|
|
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().
|
|
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
|
package/dist/src/shared/infrastructure/http/zod/validators/string/string.zod.validators.mjs.map
CHANGED
|
@@ -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 {
|
|
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.
|
|
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
|
-
"
|
|
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"}
|