@intlayer/backend 3.5.4 → 3.5.6
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/controllers/ai.controller.cjs +238 -0
- package/dist/cjs/controllers/ai.controller.cjs.map +1 -0
- package/dist/cjs/controllers/dictionary.controller.cjs +50 -17
- package/dist/cjs/controllers/dictionary.controller.cjs.map +1 -1
- package/dist/cjs/controllers/project.controller.cjs +2 -6
- package/dist/cjs/controllers/project.controller.cjs.map +1 -1
- package/dist/cjs/controllers/tag.controller.cjs +235 -0
- package/dist/cjs/controllers/tag.controller.cjs.map +1 -0
- package/dist/cjs/controllers/user.controller.cjs +1 -0
- package/dist/cjs/controllers/user.controller.cjs.map +1 -1
- package/dist/cjs/export.cjs.map +1 -1
- package/dist/cjs/index.cjs +4 -0
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/middlewares/request.middleware.cjs +4 -0
- package/dist/cjs/middlewares/request.middleware.cjs.map +1 -1
- package/dist/cjs/models/tag.model.cjs +31 -0
- package/dist/cjs/models/tag.model.cjs.map +1 -0
- package/dist/cjs/routes/ai.routes.cjs +69 -0
- package/dist/cjs/routes/ai.routes.cjs.map +1 -0
- package/dist/cjs/routes/dictionary.routes.cjs +4 -4
- package/dist/cjs/routes/dictionary.routes.cjs.map +1 -1
- package/dist/cjs/routes/tags.routes.cjs +60 -0
- package/dist/cjs/routes/tags.routes.cjs.map +1 -0
- package/dist/cjs/schemas/dictionary.schema.cjs +31 -6
- package/dist/cjs/schemas/dictionary.schema.cjs.map +1 -1
- package/dist/cjs/schemas/project.schema.cjs +5 -0
- package/dist/cjs/schemas/project.schema.cjs.map +1 -1
- package/dist/cjs/schemas/tag.schema.cjs +64 -0
- package/dist/cjs/schemas/tag.schema.cjs.map +1 -0
- package/dist/cjs/services/dictionary.service.cjs +139 -27
- package/dist/cjs/services/dictionary.service.cjs.map +1 -1
- package/dist/cjs/services/project.service.cjs +14 -5
- package/dist/cjs/services/project.service.cjs.map +1 -1
- package/dist/cjs/services/tag.service.cjs +91 -0
- package/dist/cjs/services/tag.service.cjs.map +1 -0
- package/dist/cjs/types/dictionary.types.cjs.map +1 -1
- package/dist/cjs/types/project.types.cjs.map +1 -1
- package/dist/cjs/types/tag.types.cjs +17 -0
- package/dist/cjs/types/tag.types.cjs.map +1 -0
- package/dist/cjs/utils/auditDictionary/CJS_FORMAT.md +23 -0
- package/dist/cjs/utils/auditDictionary/JSON_FORMAT.md +26 -0
- package/dist/cjs/utils/auditDictionary/JSX_FORMAT.md +28 -0
- package/dist/cjs/utils/auditDictionary/MJS_FORMAT.md +23 -0
- package/dist/cjs/utils/auditDictionary/PROMPT.md +151 -0
- package/dist/cjs/utils/auditDictionary/TSX_FORMAT.md +28 -0
- package/dist/cjs/utils/auditDictionary/TS_FORMAT.md +22 -0
- package/dist/cjs/utils/auditDictionary/index.cjs +98 -0
- package/dist/cjs/utils/auditDictionary/index.cjs.map +1 -0
- package/dist/cjs/utils/auditDictionaryField/PROMPT.md +115 -0
- package/dist/cjs/utils/auditDictionaryField/index.cjs +81 -0
- package/dist/cjs/utils/auditDictionaryField/index.cjs.map +1 -0
- package/dist/cjs/utils/auditDictionaryMetadata/PROMPT.md +76 -0
- package/dist/cjs/utils/auditDictionaryMetadata/index.cjs +78 -0
- package/dist/cjs/utils/auditDictionaryMetadata/index.cjs.map +1 -0
- package/dist/cjs/utils/auditTag/PROMPT.md +34 -0
- package/dist/cjs/utils/auditTag/index.cjs +74 -0
- package/dist/cjs/utils/auditTag/index.cjs.map +1 -0
- package/dist/cjs/utils/ensureArrayQueryFilter.cjs +39 -0
- package/dist/cjs/utils/ensureArrayQueryFilter.cjs.map +1 -0
- package/dist/cjs/utils/ensureMongoDocumentToObject.cjs +35 -0
- package/dist/cjs/utils/ensureMongoDocumentToObject.cjs.map +1 -0
- package/dist/cjs/utils/errors/ErrorHandler.cjs +1 -1
- package/dist/cjs/utils/errors/ErrorHandler.cjs.map +1 -1
- package/dist/cjs/utils/errors/errorCodes.cjs +104 -0
- package/dist/cjs/utils/errors/errorCodes.cjs.map +1 -1
- package/dist/cjs/utils/filtersAndPagination/getDictionaryFiltersAndPagination.cjs +10 -11
- package/dist/cjs/utils/filtersAndPagination/getDictionaryFiltersAndPagination.cjs.map +1 -1
- package/dist/cjs/utils/filtersAndPagination/getOrganizationFiltersAndPagination.cjs +6 -10
- package/dist/cjs/utils/filtersAndPagination/getOrganizationFiltersAndPagination.cjs.map +1 -1
- package/dist/cjs/utils/filtersAndPagination/getProjectFiltersAndPagination.cjs +6 -10
- package/dist/cjs/utils/filtersAndPagination/getProjectFiltersAndPagination.cjs.map +1 -1
- package/dist/cjs/utils/filtersAndPagination/getTagFiltersAndPagination.cjs +51 -0
- package/dist/cjs/utils/filtersAndPagination/getTagFiltersAndPagination.cjs.map +1 -0
- package/dist/cjs/utils/filtersAndPagination/getUserFiltersAndPagination.cjs +2 -9
- package/dist/cjs/utils/filtersAndPagination/getUserFiltersAndPagination.cjs.map +1 -1
- package/dist/cjs/utils/mapper/dictionary.cjs +8 -4
- package/dist/cjs/utils/mapper/dictionary.cjs.map +1 -1
- package/dist/cjs/utils/mapper/organization.cjs +2 -4
- package/dist/cjs/utils/mapper/organization.cjs.map +1 -1
- package/dist/cjs/utils/mapper/project.cjs +2 -4
- package/dist/cjs/utils/mapper/project.cjs.map +1 -1
- package/dist/cjs/utils/mapper/tag.cjs +37 -0
- package/dist/cjs/utils/mapper/tag.cjs.map +1 -0
- package/dist/cjs/utils/mapper/user.cjs +2 -4
- package/dist/cjs/utils/mapper/user.cjs.map +1 -1
- package/dist/cjs/utils/removeObjectKeys.cjs +35 -0
- package/dist/cjs/utils/removeObjectKeys.cjs.map +1 -0
- package/dist/cjs/utils/validation/validateProject.cjs +17 -10
- package/dist/cjs/utils/validation/validateProject.cjs.map +1 -1
- package/dist/cjs/utils/validation/validateTag.cjs +93 -0
- package/dist/cjs/utils/validation/validateTag.cjs.map +1 -0
- package/dist/esm/controllers/ai.controller.mjs +201 -0
- package/dist/esm/controllers/ai.controller.mjs.map +1 -0
- package/dist/esm/controllers/dictionary.controller.mjs +50 -17
- package/dist/esm/controllers/dictionary.controller.mjs.map +1 -1
- package/dist/esm/controllers/project.controller.mjs +2 -6
- package/dist/esm/controllers/project.controller.mjs.map +1 -1
- package/dist/esm/controllers/tag.controller.mjs +203 -0
- package/dist/esm/controllers/tag.controller.mjs.map +1 -0
- package/dist/esm/controllers/user.controller.mjs +1 -0
- package/dist/esm/controllers/user.controller.mjs.map +1 -1
- package/dist/esm/export.mjs.map +1 -1
- package/dist/esm/index.mjs +4 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/middlewares/request.middleware.mjs +4 -0
- package/dist/esm/middlewares/request.middleware.mjs.map +1 -1
- package/dist/esm/models/tag.model.mjs +7 -0
- package/dist/esm/models/tag.model.mjs.map +1 -0
- package/dist/esm/routes/ai.routes.mjs +49 -0
- package/dist/esm/routes/ai.routes.mjs.map +1 -0
- package/dist/esm/routes/dictionary.routes.mjs +4 -4
- package/dist/esm/routes/dictionary.routes.mjs.map +1 -1
- package/dist/esm/routes/tags.routes.mjs +40 -0
- package/dist/esm/routes/tags.routes.mjs.map +1 -0
- package/dist/esm/schemas/dictionary.schema.mjs +31 -6
- package/dist/esm/schemas/dictionary.schema.mjs.map +1 -1
- package/dist/esm/schemas/project.schema.mjs +5 -0
- package/dist/esm/schemas/project.schema.mjs.map +1 -1
- package/dist/esm/schemas/tag.schema.mjs +45 -0
- package/dist/esm/schemas/tag.schema.mjs.map +1 -0
- package/dist/esm/services/dictionary.service.mjs +137 -27
- package/dist/esm/services/dictionary.service.mjs.map +1 -1
- package/dist/esm/services/project.service.mjs +14 -5
- package/dist/esm/services/project.service.mjs.map +1 -1
- package/dist/esm/services/tag.service.mjs +61 -0
- package/dist/esm/services/tag.service.mjs.map +1 -0
- package/dist/esm/types/tag.types.mjs +1 -0
- package/dist/esm/types/tag.types.mjs.map +1 -0
- package/dist/esm/utils/auditDictionary/CJS_FORMAT.md +23 -0
- package/dist/esm/utils/auditDictionary/JSON_FORMAT.md +26 -0
- package/dist/esm/utils/auditDictionary/JSX_FORMAT.md +28 -0
- package/dist/esm/utils/auditDictionary/MJS_FORMAT.md +23 -0
- package/dist/esm/utils/auditDictionary/PROMPT.md +151 -0
- package/dist/esm/utils/auditDictionary/TSX_FORMAT.md +28 -0
- package/dist/esm/utils/auditDictionary/TS_FORMAT.md +22 -0
- package/dist/esm/utils/auditDictionary/index.mjs +73 -0
- package/dist/esm/utils/auditDictionary/index.mjs.map +1 -0
- package/dist/esm/utils/auditDictionaryField/PROMPT.md +115 -0
- package/dist/esm/utils/auditDictionaryField/index.mjs +56 -0
- package/dist/esm/utils/auditDictionaryField/index.mjs.map +1 -0
- package/dist/esm/utils/auditDictionaryMetadata/PROMPT.md +76 -0
- package/dist/esm/utils/auditDictionaryMetadata/index.mjs +53 -0
- package/dist/esm/utils/auditDictionaryMetadata/index.mjs.map +1 -0
- package/dist/esm/utils/auditTag/PROMPT.md +34 -0
- package/dist/esm/utils/auditTag/index.mjs +49 -0
- package/dist/esm/utils/auditTag/index.mjs.map +1 -0
- package/dist/esm/utils/ensureArrayQueryFilter.mjs +15 -0
- package/dist/esm/utils/ensureArrayQueryFilter.mjs.map +1 -0
- package/dist/esm/utils/ensureMongoDocumentToObject.mjs +11 -0
- package/dist/esm/utils/ensureMongoDocumentToObject.mjs.map +1 -0
- package/dist/esm/utils/errors/ErrorHandler.mjs +1 -1
- package/dist/esm/utils/errors/ErrorHandler.mjs.map +1 -1
- package/dist/esm/utils/errors/errorCodes.mjs +104 -0
- package/dist/esm/utils/errors/errorCodes.mjs.map +1 -1
- package/dist/esm/utils/filtersAndPagination/getDictionaryFiltersAndPagination.mjs +10 -11
- package/dist/esm/utils/filtersAndPagination/getDictionaryFiltersAndPagination.mjs.map +1 -1
- package/dist/esm/utils/filtersAndPagination/getOrganizationFiltersAndPagination.mjs +6 -10
- package/dist/esm/utils/filtersAndPagination/getOrganizationFiltersAndPagination.mjs.map +1 -1
- package/dist/esm/utils/filtersAndPagination/getProjectFiltersAndPagination.mjs +6 -10
- package/dist/esm/utils/filtersAndPagination/getProjectFiltersAndPagination.mjs.map +1 -1
- package/dist/esm/utils/filtersAndPagination/getTagFiltersAndPagination.mjs +29 -0
- package/dist/esm/utils/filtersAndPagination/getTagFiltersAndPagination.mjs.map +1 -0
- package/dist/esm/utils/filtersAndPagination/getUserFiltersAndPagination.mjs +2 -9
- package/dist/esm/utils/filtersAndPagination/getUserFiltersAndPagination.mjs.map +1 -1
- package/dist/esm/utils/mapper/dictionary.mjs +8 -4
- package/dist/esm/utils/mapper/dictionary.mjs.map +1 -1
- package/dist/esm/utils/mapper/organization.mjs +2 -4
- package/dist/esm/utils/mapper/organization.mjs.map +1 -1
- package/dist/esm/utils/mapper/project.mjs +2 -4
- package/dist/esm/utils/mapper/project.mjs.map +1 -1
- package/dist/esm/utils/mapper/tag.mjs +12 -0
- package/dist/esm/utils/mapper/tag.mjs.map +1 -0
- package/dist/esm/utils/mapper/user.mjs +2 -4
- package/dist/esm/utils/mapper/user.mjs.map +1 -1
- package/dist/esm/utils/removeObjectKeys.mjs +11 -0
- package/dist/esm/utils/removeObjectKeys.mjs.map +1 -0
- package/dist/esm/utils/validation/validateProject.mjs +17 -10
- package/dist/esm/utils/validation/validateProject.mjs.map +1 -1
- package/dist/esm/utils/validation/validateTag.mjs +65 -0
- package/dist/esm/utils/validation/validateTag.mjs.map +1 -0
- package/dist/types/controllers/ai.controller.d.ts +61 -0
- package/dist/types/controllers/ai.controller.d.ts.map +1 -0
- package/dist/types/controllers/dictionary.controller.d.ts +6 -3
- package/dist/types/controllers/dictionary.controller.d.ts.map +1 -1
- package/dist/types/controllers/project.controller.d.ts +2 -4
- package/dist/types/controllers/project.controller.d.ts.map +1 -1
- package/dist/types/controllers/tag.controller.d.ts +39 -0
- package/dist/types/controllers/tag.controller.d.ts.map +1 -0
- package/dist/types/controllers/user.controller.d.ts.map +1 -1
- package/dist/types/export.d.ts +3 -0
- package/dist/types/export.d.ts.map +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/models/dictionary.model.d.ts +1 -0
- package/dist/types/models/dictionary.model.d.ts.map +1 -1
- package/dist/types/models/tag.model.d.ts +3 -0
- package/dist/types/models/tag.model.d.ts.map +1 -0
- package/dist/types/routes/ai.routes.d.ts +25 -0
- package/dist/types/routes/ai.routes.d.ts.map +1 -0
- package/dist/types/routes/dictionary.routes.d.ts +6 -2
- package/dist/types/routes/dictionary.routes.d.ts.map +1 -1
- package/dist/types/routes/tags.routes.d.ts +29 -0
- package/dist/types/routes/tags.routes.d.ts.map +1 -0
- package/dist/types/schemas/dictionary.schema.d.ts +1 -0
- package/dist/types/schemas/dictionary.schema.d.ts.map +1 -1
- package/dist/types/schemas/project.schema.d.ts.map +1 -1
- package/dist/types/schemas/tag.schema.d.ts +16 -0
- package/dist/types/schemas/tag.schema.d.ts.map +1 -0
- package/dist/types/services/dictionary.service.d.ts +10 -2
- package/dist/types/services/dictionary.service.d.ts.map +1 -1
- package/dist/types/services/project.service.d.ts.map +1 -1
- package/dist/types/services/tag.service.d.ts +45 -0
- package/dist/types/services/tag.service.d.ts.map +1 -0
- package/dist/types/types/dictionary.types.d.ts +14 -4
- package/dist/types/types/dictionary.types.d.ts.map +1 -1
- package/dist/types/types/project.types.d.ts +3 -0
- package/dist/types/types/project.types.d.ts.map +1 -1
- package/dist/types/types/tag.types.d.ts +26 -0
- package/dist/types/types/tag.types.d.ts.map +1 -0
- package/dist/types/utils/audit/index.d.ts +28 -0
- package/dist/types/utils/audit/index.d.ts.map +1 -0
- package/dist/types/utils/auditDictionary/index.d.ts +24 -0
- package/dist/types/utils/auditDictionary/index.d.ts.map +1 -0
- package/dist/types/utils/auditDictionaryField/index.d.ts +24 -0
- package/dist/types/utils/auditDictionaryField/index.d.ts.map +1 -0
- package/dist/types/utils/auditDictionaryMetadata/index.d.ts +21 -0
- package/dist/types/utils/auditDictionaryMetadata/index.d.ts.map +1 -0
- package/dist/types/utils/auditTag/index.d.ts +27 -0
- package/dist/types/utils/auditTag/index.d.ts.map +1 -0
- package/dist/types/utils/ensureArrayQueryFilter.d.ts +2 -0
- package/dist/types/utils/ensureArrayQueryFilter.d.ts.map +1 -0
- package/dist/types/utils/ensureMongoDocumentToObject.d.ts +8 -0
- package/dist/types/utils/ensureMongoDocumentToObject.d.ts.map +1 -0
- package/dist/types/utils/errors/ErrorHandler.d.ts.map +1 -1
- package/dist/types/utils/errors/errorCodes.d.ts +104 -0
- package/dist/types/utils/errors/errorCodes.d.ts.map +1 -1
- package/dist/types/utils/filtersAndPagination/getDictionaryFiltersAndPagination.d.ts +2 -0
- package/dist/types/utils/filtersAndPagination/getDictionaryFiltersAndPagination.d.ts.map +1 -1
- package/dist/types/utils/filtersAndPagination/getOrganizationFiltersAndPagination.d.ts.map +1 -1
- package/dist/types/utils/filtersAndPagination/getProjectFiltersAndPagination.d.ts.map +1 -1
- package/dist/types/utils/filtersAndPagination/getTagFiltersAndPagination.d.ts +24 -0
- package/dist/types/utils/filtersAndPagination/getTagFiltersAndPagination.d.ts.map +1 -0
- package/dist/types/utils/filtersAndPagination/getUserFiltersAndPagination.d.ts.map +1 -1
- package/dist/types/utils/mapper/dictionary.d.ts +1 -1
- package/dist/types/utils/mapper/dictionary.d.ts.map +1 -1
- package/dist/types/utils/mapper/organization.d.ts.map +1 -1
- package/dist/types/utils/mapper/project.d.ts.map +1 -1
- package/dist/types/utils/mapper/tag.d.ts +16 -0
- package/dist/types/utils/mapper/tag.d.ts.map +1 -0
- package/dist/types/utils/mapper/user.d.ts +2 -2
- package/dist/types/utils/mapper/user.d.ts.map +1 -1
- package/dist/types/utils/removeObjectKeys.d.ts +2 -0
- package/dist/types/utils/removeObjectKeys.d.ts.map +1 -0
- package/dist/types/utils/validation/validateProject.d.ts.map +1 -1
- package/dist/types/utils/validation/validateTag.d.ts +16 -0
- package/dist/types/utils/validation/validateTag.d.ts.map +1 -0
- package/package.json +6 -5
|
@@ -21,6 +21,7 @@ __export(getOrganizationFiltersAndPagination_exports, {
|
|
|
21
21
|
getOrganizationFiltersAndPagination: () => getOrganizationFiltersAndPagination
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(getOrganizationFiltersAndPagination_exports);
|
|
24
|
+
var import_ensureArrayQueryFilter = require('./../../utils/ensureArrayQueryFilter.cjs');
|
|
24
25
|
var import_getFiltersAndPaginationFromBody = require('./getFiltersAndPaginationFromBody.cjs');
|
|
25
26
|
const getOrganizationFiltersAndPagination = (req) => {
|
|
26
27
|
const { filters: filtersRequest, ...pagination } = (0, import_getFiltersAndPaginationFromBody.getFiltersAndPaginationFromBody)(req);
|
|
@@ -29,21 +30,16 @@ const getOrganizationFiltersAndPagination = (req) => {
|
|
|
29
30
|
const { name, ids, membersIds } = filtersRequest;
|
|
30
31
|
filters = {};
|
|
31
32
|
if (ids) {
|
|
32
|
-
|
|
33
|
-
if (typeof ids === "string") {
|
|
34
|
-
idsArray = ids.split(",");
|
|
35
|
-
} else if (Array.isArray(ids)) {
|
|
36
|
-
idsArray = ids;
|
|
37
|
-
} else {
|
|
38
|
-
idsArray = [ids];
|
|
39
|
-
}
|
|
40
|
-
filters = { ...filters, _id: { $in: idsArray } };
|
|
33
|
+
filters = { ...filters, _id: { $in: (0, import_ensureArrayQueryFilter.ensureArrayQueryFilter)(ids) } };
|
|
41
34
|
}
|
|
42
35
|
if (name) {
|
|
43
36
|
filters = { ...filters, name: new RegExp(name, "i") };
|
|
44
37
|
}
|
|
45
38
|
if (membersIds) {
|
|
46
|
-
filters = {
|
|
39
|
+
filters = {
|
|
40
|
+
...filters,
|
|
41
|
+
membersIds: { $in: (0, import_ensureArrayQueryFilter.ensureArrayQueryFilter)(membersIds) }
|
|
42
|
+
};
|
|
47
43
|
}
|
|
48
44
|
}
|
|
49
45
|
return { filters, ...pagination };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/utils/filtersAndPagination/getOrganizationFiltersAndPagination.ts"],"sourcesContent":["import type { Request } from 'express';\nimport type { ObjectId, RootFilterQuery } from 'mongoose';\nimport {\n type FiltersAndPagination,\n getFiltersAndPaginationFromBody,\n} from './getFiltersAndPaginationFromBody';\nimport type { Organization } from '@/types/organization.types';\n\nexport type OrganizationFiltersParams = {\n /**\n * Comma separated list of ids\n *\n * ```\n * GET /organizations?ids=5f8d9f1d8a1e4f0e8c0c,5f8d9f1d8a1e4f0e8d1\n * -> ids: \"5f8d9f1d8a1e4f0e8c0c,5f8d9f1d8a1e4f0e8d1\"\n * ```\n */\n ids?: string | string[];\n name?: string;\n membersIds?: string[];\n};\nexport type OrganizationFilters = RootFilterQuery<Organization>;\n\n/**\n * Extracts filters and pagination information from the request body.\n * @param req - Express request object.\n * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.\n */\nexport const getOrganizationFiltersAndPagination = (\n req: Request<FiltersAndPagination<OrganizationFiltersParams>>\n) => {\n const { filters: filtersRequest, ...pagination } =\n getFiltersAndPaginationFromBody<OrganizationFiltersParams>(req);\n\n let filters: OrganizationFilters = {};\n\n if (Object.keys(filtersRequest).length > 0) {\n const { name, ids, membersIds } = filtersRequest;\n\n filters = {};\n\n if (ids) {\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/filtersAndPagination/getOrganizationFiltersAndPagination.ts"],"sourcesContent":["import { ensureArrayQueryFilter } from '@utils/ensureArrayQueryFilter';\nimport type { Request } from 'express';\nimport type { ObjectId, RootFilterQuery } from 'mongoose';\nimport {\n type FiltersAndPagination,\n getFiltersAndPaginationFromBody,\n} from './getFiltersAndPaginationFromBody';\nimport type { Organization } from '@/types/organization.types';\n\nexport type OrganizationFiltersParams = {\n /**\n * Comma separated list of ids\n *\n * ```\n * GET /organizations?ids=5f8d9f1d8a1e4f0e8c0c,5f8d9f1d8a1e4f0e8d1\n * -> ids: \"5f8d9f1d8a1e4f0e8c0c,5f8d9f1d8a1e4f0e8d1\"\n * ```\n */\n ids?: string | string[];\n name?: string;\n membersIds?: string[];\n};\nexport type OrganizationFilters = RootFilterQuery<Organization>;\n\n/**\n * Extracts filters and pagination information from the request body.\n * @param req - Express request object.\n * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.\n */\nexport const getOrganizationFiltersAndPagination = (\n req: Request<FiltersAndPagination<OrganizationFiltersParams>>\n) => {\n const { filters: filtersRequest, ...pagination } =\n getFiltersAndPaginationFromBody<OrganizationFiltersParams>(req);\n\n let filters: OrganizationFilters = {};\n\n if (Object.keys(filtersRequest).length > 0) {\n const { name, ids, membersIds } = filtersRequest;\n\n filters = {};\n\n if (ids) {\n filters = { ...filters, _id: { $in: ensureArrayQueryFilter(ids) } };\n }\n\n if (name) {\n filters = { ...filters, name: new RegExp(name, 'i') };\n }\n\n if (membersIds) {\n filters = {\n ...filters,\n membersIds: { $in: ensureArrayQueryFilter(membersIds) },\n };\n }\n }\n\n return { filters, ...pagination };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAAuC;AAGvC,6CAGO;AAuBA,MAAM,sCAAsC,CACjD,QACG;AACH,QAAM,EAAE,SAAS,gBAAgB,GAAG,WAAW,QAC7C,wEAA2D,GAAG;AAEhE,MAAI,UAA+B,CAAC;AAEpC,MAAI,OAAO,KAAK,cAAc,EAAE,SAAS,GAAG;AAC1C,UAAM,EAAE,MAAM,KAAK,WAAW,IAAI;AAElC,cAAU,CAAC;AAEX,QAAI,KAAK;AACP,gBAAU,EAAE,GAAG,SAAS,KAAK,EAAE,SAAK,sDAAuB,GAAG,EAAE,EAAE;AAAA,IACpE;AAEA,QAAI,MAAM;AACR,gBAAU,EAAE,GAAG,SAAS,MAAM,IAAI,OAAO,MAAM,GAAG,EAAE;AAAA,IACtD;AAEA,QAAI,YAAY;AACd,gBAAU;AAAA,QACR,GAAG;AAAA,QACH,YAAY,EAAE,SAAK,sDAAuB,UAAU,EAAE;AAAA,MACxD;AAAA,IACF;AAAA,EACF;AAEA,SAAO,EAAE,SAAS,GAAG,WAAW;AAClC;","names":[]}
|
|
@@ -21,6 +21,7 @@ __export(getProjectFiltersAndPagination_exports, {
|
|
|
21
21
|
getProjectFiltersAndPagination: () => getProjectFiltersAndPagination
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(getProjectFiltersAndPagination_exports);
|
|
24
|
+
var import_ensureArrayQueryFilter = require('./../../utils/ensureArrayQueryFilter.cjs');
|
|
24
25
|
var import_getFiltersAndPaginationFromBody = require('./getFiltersAndPaginationFromBody.cjs');
|
|
25
26
|
const getProjectFiltersAndPagination = (req) => {
|
|
26
27
|
const { filters: filtersRequest, ...pagination } = (0, import_getFiltersAndPaginationFromBody.getFiltersAndPaginationFromBody)(req);
|
|
@@ -29,15 +30,7 @@ const getProjectFiltersAndPagination = (req) => {
|
|
|
29
30
|
const { name, ids, organizationId, membersIds } = filtersRequest;
|
|
30
31
|
filters = {};
|
|
31
32
|
if (ids) {
|
|
32
|
-
|
|
33
|
-
if (typeof ids === "string") {
|
|
34
|
-
idsArray = ids.split(",");
|
|
35
|
-
} else if (Array.isArray(ids)) {
|
|
36
|
-
idsArray = ids;
|
|
37
|
-
} else {
|
|
38
|
-
idsArray = [ids];
|
|
39
|
-
}
|
|
40
|
-
filters = { ...filters, _id: { $in: idsArray } };
|
|
33
|
+
filters = { ...filters, _id: { $in: (0, import_ensureArrayQueryFilter.ensureArrayQueryFilter)(ids) } };
|
|
41
34
|
}
|
|
42
35
|
if (name) {
|
|
43
36
|
filters = { ...filters, name: new RegExp(name, "i") };
|
|
@@ -46,7 +39,10 @@ const getProjectFiltersAndPagination = (req) => {
|
|
|
46
39
|
filters = { ...filters, organizationId };
|
|
47
40
|
}
|
|
48
41
|
if (membersIds) {
|
|
49
|
-
filters = {
|
|
42
|
+
filters = {
|
|
43
|
+
...filters,
|
|
44
|
+
membersIds: { $in: (0, import_ensureArrayQueryFilter.ensureArrayQueryFilter)(membersIds) }
|
|
45
|
+
};
|
|
50
46
|
}
|
|
51
47
|
}
|
|
52
48
|
return { filters, ...pagination };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/utils/filtersAndPagination/getProjectFiltersAndPagination.ts"],"sourcesContent":["import type { Request } from 'express';\nimport type { RootFilterQuery } from 'mongoose';\nimport {\n type FiltersAndPagination,\n getFiltersAndPaginationFromBody,\n} from './getFiltersAndPaginationFromBody';\nimport type { Project } from '@/types/project.types';\n\nexport type ProjectFiltersParams = {\n ids?: string | string[];\n name?: string;\n organizationId?: string;\n membersIds?: string[];\n};\nexport type ProjectFilters = RootFilterQuery<Project>;\n\n/**\n * Extracts filters and pagination information from the request body.\n * @param req - Express request object.\n * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.\n */\nexport const getProjectFiltersAndPagination = (\n req: Request<FiltersAndPagination<ProjectFiltersParams>>\n) => {\n const { filters: filtersRequest, ...pagination } =\n getFiltersAndPaginationFromBody<ProjectFiltersParams>(req);\n\n let filters: ProjectFilters = {};\n\n if (Object.keys(filtersRequest).length > 0) {\n const { name, ids, organizationId, membersIds } = filtersRequest;\n\n filters = {};\n\n if (ids) {\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/filtersAndPagination/getProjectFiltersAndPagination.ts"],"sourcesContent":["import { ensureArrayQueryFilter } from '@utils/ensureArrayQueryFilter';\nimport type { Request } from 'express';\nimport type { RootFilterQuery } from 'mongoose';\nimport {\n type FiltersAndPagination,\n getFiltersAndPaginationFromBody,\n} from './getFiltersAndPaginationFromBody';\nimport type { Project } from '@/types/project.types';\n\nexport type ProjectFiltersParams = {\n ids?: string | string[];\n name?: string;\n organizationId?: string;\n membersIds?: string[];\n};\nexport type ProjectFilters = RootFilterQuery<Project>;\n\n/**\n * Extracts filters and pagination information from the request body.\n * @param req - Express request object.\n * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.\n */\nexport const getProjectFiltersAndPagination = (\n req: Request<FiltersAndPagination<ProjectFiltersParams>>\n) => {\n const { filters: filtersRequest, ...pagination } =\n getFiltersAndPaginationFromBody<ProjectFiltersParams>(req);\n\n let filters: ProjectFilters = {};\n\n if (Object.keys(filtersRequest).length > 0) {\n const { name, ids, organizationId, membersIds } = filtersRequest;\n\n filters = {};\n\n if (ids) {\n filters = { ...filters, _id: { $in: ensureArrayQueryFilter(ids) } };\n }\n\n if (name) {\n filters = { ...filters, name: new RegExp(name, 'i') };\n }\n\n if (organizationId) {\n filters = { ...filters, organizationId };\n }\n\n if (membersIds) {\n filters = {\n ...filters,\n membersIds: { $in: ensureArrayQueryFilter(membersIds) },\n };\n }\n }\n\n return { filters, ...pagination };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAAuC;AAGvC,6CAGO;AAgBA,MAAM,iCAAiC,CAC5C,QACG;AACH,QAAM,EAAE,SAAS,gBAAgB,GAAG,WAAW,QAC7C,wEAAsD,GAAG;AAE3D,MAAI,UAA0B,CAAC;AAE/B,MAAI,OAAO,KAAK,cAAc,EAAE,SAAS,GAAG;AAC1C,UAAM,EAAE,MAAM,KAAK,gBAAgB,WAAW,IAAI;AAElD,cAAU,CAAC;AAEX,QAAI,KAAK;AACP,gBAAU,EAAE,GAAG,SAAS,KAAK,EAAE,SAAK,sDAAuB,GAAG,EAAE,EAAE;AAAA,IACpE;AAEA,QAAI,MAAM;AACR,gBAAU,EAAE,GAAG,SAAS,MAAM,IAAI,OAAO,MAAM,GAAG,EAAE;AAAA,IACtD;AAEA,QAAI,gBAAgB;AAClB,gBAAU,EAAE,GAAG,SAAS,eAAe;AAAA,IACzC;AAEA,QAAI,YAAY;AACd,gBAAU;AAAA,QACR,GAAG;AAAA,QACH,YAAY,EAAE,SAAK,sDAAuB,UAAU,EAAE;AAAA,MACxD;AAAA,IACF;AAAA,EACF;AAEA,SAAO,EAAE,SAAS,GAAG,WAAW;AAClC;","names":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var getTagFiltersAndPagination_exports = {};
|
|
20
|
+
__export(getTagFiltersAndPagination_exports, {
|
|
21
|
+
getTagFiltersAndPagination: () => getTagFiltersAndPagination
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(getTagFiltersAndPagination_exports);
|
|
24
|
+
var import_ensureArrayQueryFilter = require('./../../utils/ensureArrayQueryFilter.cjs');
|
|
25
|
+
var import_getFiltersAndPaginationFromBody = require('./getFiltersAndPaginationFromBody.cjs');
|
|
26
|
+
const getTagFiltersAndPagination = (req) => {
|
|
27
|
+
const { filters: filtersRequest, ...pagination } = (0, import_getFiltersAndPaginationFromBody.getFiltersAndPaginationFromBody)(req);
|
|
28
|
+
let filters = {};
|
|
29
|
+
if (Object.keys(filtersRequest).length > 0) {
|
|
30
|
+
const { name, ids, keys, organizationId } = filtersRequest;
|
|
31
|
+
filters = {};
|
|
32
|
+
if (ids) {
|
|
33
|
+
filters = { ...filters, _id: { $in: (0, import_ensureArrayQueryFilter.ensureArrayQueryFilter)(ids) } };
|
|
34
|
+
}
|
|
35
|
+
if (keys) {
|
|
36
|
+
filters = { ...filters, key: { $in: (0, import_ensureArrayQueryFilter.ensureArrayQueryFilter)(keys) } };
|
|
37
|
+
}
|
|
38
|
+
if (name) {
|
|
39
|
+
filters = { ...filters, name: new RegExp(name, "i") };
|
|
40
|
+
}
|
|
41
|
+
if (organizationId) {
|
|
42
|
+
filters = { ...filters, organizationId };
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return { filters, ...pagination };
|
|
46
|
+
};
|
|
47
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
48
|
+
0 && (module.exports = {
|
|
49
|
+
getTagFiltersAndPagination
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=getTagFiltersAndPagination.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/filtersAndPagination/getTagFiltersAndPagination.ts"],"sourcesContent":["import { ensureArrayQueryFilter } from '@utils/ensureArrayQueryFilter';\nimport type { Request } from 'express';\nimport type { RootFilterQuery } from 'mongoose';\nimport {\n type FiltersAndPagination,\n getFiltersAndPaginationFromBody,\n} from './getFiltersAndPaginationFromBody';\nimport type { Tag } from '@/types/tag.types';\n\nexport type TagFiltersParams = {\n ids?: string | string[];\n keys?: string | string[];\n name?: string;\n organizationId?: string;\n};\nexport type TagFilters = RootFilterQuery<Tag>;\n\n/**\n * Extracts filters and pagination information from the request body.\n * @param req - Express request object.\n * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.\n */\nexport const getTagFiltersAndPagination = (\n req: Request<FiltersAndPagination<TagFiltersParams>>\n) => {\n const { filters: filtersRequest, ...pagination } =\n getFiltersAndPaginationFromBody<TagFiltersParams>(req);\n\n let filters: TagFilters = {};\n\n if (Object.keys(filtersRequest).length > 0) {\n const { name, ids, keys, organizationId } = filtersRequest;\n\n filters = {};\n\n if (ids) {\n filters = { ...filters, _id: { $in: ensureArrayQueryFilter(ids) } };\n }\n\n if (keys) {\n filters = { ...filters, key: { $in: ensureArrayQueryFilter(keys) } };\n }\n\n if (name) {\n filters = { ...filters, name: new RegExp(name, 'i') };\n }\n\n if (organizationId) {\n filters = { ...filters, organizationId };\n }\n }\n\n return { filters, ...pagination };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAAuC;AAGvC,6CAGO;AAgBA,MAAM,6BAA6B,CACxC,QACG;AACH,QAAM,EAAE,SAAS,gBAAgB,GAAG,WAAW,QAC7C,wEAAkD,GAAG;AAEvD,MAAI,UAAsB,CAAC;AAE3B,MAAI,OAAO,KAAK,cAAc,EAAE,SAAS,GAAG;AAC1C,UAAM,EAAE,MAAM,KAAK,MAAM,eAAe,IAAI;AAE5C,cAAU,CAAC;AAEX,QAAI,KAAK;AACP,gBAAU,EAAE,GAAG,SAAS,KAAK,EAAE,SAAK,sDAAuB,GAAG,EAAE,EAAE;AAAA,IACpE;AAEA,QAAI,MAAM;AACR,gBAAU,EAAE,GAAG,SAAS,KAAK,EAAE,SAAK,sDAAuB,IAAI,EAAE,EAAE;AAAA,IACrE;AAEA,QAAI,MAAM;AACR,gBAAU,EAAE,GAAG,SAAS,MAAM,IAAI,OAAO,MAAM,GAAG,EAAE;AAAA,IACtD;AAEA,QAAI,gBAAgB;AAClB,gBAAU,EAAE,GAAG,SAAS,eAAe;AAAA,IACzC;AAAA,EACF;AAEA,SAAO,EAAE,SAAS,GAAG,WAAW;AAClC;","names":[]}
|
|
@@ -21,6 +21,7 @@ __export(getUserFiltersAndPagination_exports, {
|
|
|
21
21
|
getUserFiltersAndPagination: () => getUserFiltersAndPagination
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(getUserFiltersAndPagination_exports);
|
|
24
|
+
var import_ensureArrayQueryFilter = require('./../../utils/ensureArrayQueryFilter.cjs');
|
|
24
25
|
var import_getFiltersAndPaginationFromBody = require('./getFiltersAndPaginationFromBody.cjs');
|
|
25
26
|
const getUserFiltersAndPagination = (req) => {
|
|
26
27
|
const { filters: filtersRequest, ...pagination } = (0, import_getFiltersAndPaginationFromBody.getFiltersAndPaginationFromBody)(req);
|
|
@@ -29,15 +30,7 @@ const getUserFiltersAndPagination = (req) => {
|
|
|
29
30
|
const { firstName, ids } = filtersRequest;
|
|
30
31
|
filters = {};
|
|
31
32
|
if (ids) {
|
|
32
|
-
|
|
33
|
-
if (typeof ids === "string") {
|
|
34
|
-
idsArray = ids.split(",");
|
|
35
|
-
} else if (Array.isArray(ids)) {
|
|
36
|
-
idsArray = ids;
|
|
37
|
-
} else {
|
|
38
|
-
idsArray = [ids];
|
|
39
|
-
}
|
|
40
|
-
filters = { ...filters, id: { $in: idsArray } };
|
|
33
|
+
filters = { ...filters, id: { $in: (0, import_ensureArrayQueryFilter.ensureArrayQueryFilter)(ids) } };
|
|
41
34
|
}
|
|
42
35
|
if (firstName) {
|
|
43
36
|
filters = { ...filters, firstName: new RegExp(firstName, "i") };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/utils/filtersAndPagination/getUserFiltersAndPagination.ts"],"sourcesContent":["import type { Request } from 'express';\nimport type {
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/filtersAndPagination/getUserFiltersAndPagination.ts"],"sourcesContent":["import { ensureArrayQueryFilter } from '@utils/ensureArrayQueryFilter';\nimport type { Request } from 'express';\nimport type { RootFilterQuery } from 'mongoose';\nimport {\n type FiltersAndPagination,\n getFiltersAndPaginationFromBody,\n} from './getFiltersAndPaginationFromBody';\nimport type { User } from '@/types/user.types';\n\nexport type UserFiltersParam = {\n ids?: string | string[];\n firstName?: string;\n};\nexport type UserFilters = RootFilterQuery<User>;\n\n/**\n * Extracts filters and pagination information from the request body.\n * @param req - Express request object.\n * @returns Object containing filters, page, pageSize, and getNumberOfPages functions.\n */\nexport const getUserFiltersAndPagination = (\n req: Request<FiltersAndPagination<UserFiltersParam>>\n) => {\n const { filters: filtersRequest, ...pagination } =\n getFiltersAndPaginationFromBody<UserFiltersParam>(req);\n\n let filters = {};\n\n if (Object.keys(filtersRequest).length > 0) {\n const { firstName, ids } = filtersRequest;\n\n filters = {};\n\n if (ids) {\n filters = { ...filters, id: { $in: ensureArrayQueryFilter(ids) } };\n }\n\n if (firstName) {\n filters = { ...filters, firstName: new RegExp(firstName, 'i') };\n }\n }\n\n return { filters, ...pagination };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAAuC;AAGvC,6CAGO;AAcA,MAAM,8BAA8B,CACzC,QACG;AACH,QAAM,EAAE,SAAS,gBAAgB,GAAG,WAAW,QAC7C,wEAAkD,GAAG;AAEvD,MAAI,UAAU,CAAC;AAEf,MAAI,OAAO,KAAK,cAAc,EAAE,SAAS,GAAG;AAC1C,UAAM,EAAE,WAAW,IAAI,IAAI;AAE3B,cAAU,CAAC;AAEX,QAAI,KAAK;AACP,gBAAU,EAAE,GAAG,SAAS,IAAI,EAAE,SAAK,sDAAuB,GAAG,EAAE,EAAE;AAAA,IACnE;AAEA,QAAI,WAAW;AACb,gBAAU,EAAE,GAAG,SAAS,WAAW,IAAI,OAAO,WAAW,GAAG,EAAE;AAAA,IAChE;AAAA,EACF;AAEA,SAAO,EAAE,SAAS,GAAG,WAAW;AAClC;","names":[]}
|
|
@@ -21,12 +21,16 @@ __export(dictionary_exports, {
|
|
|
21
21
|
mapDictionaryToAPI: () => mapDictionaryToAPI
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(dictionary_exports);
|
|
24
|
+
var import_ensureMongoDocumentToObject = require('./../../utils/ensureMongoDocumentToObject.cjs');
|
|
24
25
|
const mapDictionaryToAPI = (dictionary, projectId, version) => {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
const dictionaryObject = (0, import_ensureMongoDocumentToObject.ensureMongoDocumentToObject)(dictionary);
|
|
27
|
+
let returnedVersion = version;
|
|
28
|
+
if (!returnedVersion) {
|
|
29
|
+
const versionList = dictionaryObject.availableVersions ?? [];
|
|
30
|
+
const lastVersion = versionList[versionList.length - 1];
|
|
31
|
+
returnedVersion = lastVersion;
|
|
28
32
|
}
|
|
29
|
-
const content = dictionaryObject.content[
|
|
33
|
+
const content = dictionaryObject.content[returnedVersion]?.content;
|
|
30
34
|
return {
|
|
31
35
|
...dictionaryObject,
|
|
32
36
|
content,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/utils/mapper/dictionary.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/mapper/dictionary.ts"],"sourcesContent":["import { ensureMongoDocumentToObject } from '@utils/ensureMongoDocumentToObject';\nimport { Dictionary, DictionaryAPI } from '@/types/dictionary.types';\nimport { Project } from '@/types/project.types';\n\n/**\n * Maps a dictionary to an API response.\n * If the version is not provided, the latest version is used.\n *\n * @param dictionary - The dictionary to map.\n * @param projectId - The ID of the project the dictionary belongs to.\n * @returns The dictionary mapped to an API response.\n */\nexport const mapDictionaryToAPI = (\n dictionary: Dictionary,\n projectId: string | Project['_id'],\n version?: string\n): DictionaryAPI => {\n const dictionaryObject = ensureMongoDocumentToObject<Dictionary>(dictionary);\n\n let returnedVersion = version;\n\n if (!returnedVersion) {\n const versionList = dictionaryObject.availableVersions ?? [];\n const lastVersion = versionList[versionList.length - 1];\n returnedVersion = lastVersion;\n }\n\n const content = dictionaryObject.content[returnedVersion]?.content;\n\n return {\n ...dictionaryObject,\n content,\n filePath: dictionaryObject.filePath?.[String(projectId)],\n };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yCAA4C;AAYrC,MAAM,qBAAqB,CAChC,YACA,WACA,YACkB;AAClB,QAAM,uBAAmB,gEAAwC,UAAU;AAE3E,MAAI,kBAAkB;AAEtB,MAAI,CAAC,iBAAiB;AACpB,UAAM,cAAc,iBAAiB,qBAAqB,CAAC;AAC3D,UAAM,cAAc,YAAY,YAAY,SAAS,CAAC;AACtD,sBAAkB;AAAA,EACpB;AAEA,QAAM,UAAU,iBAAiB,QAAQ,eAAe,GAAG;AAE3D,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA,UAAU,iBAAiB,WAAW,OAAO,SAAS,CAAC;AAAA,EACzD;AACF;","names":[]}
|
|
@@ -21,11 +21,9 @@ __export(organization_exports, {
|
|
|
21
21
|
mapOrganizationToAPI: () => mapOrganizationToAPI
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(organization_exports);
|
|
24
|
+
var import_ensureMongoDocumentToObject = require('./../../utils/ensureMongoDocumentToObject.cjs');
|
|
24
25
|
const mapOrganizationToAPI = (organization, isOrganizationAdmin) => {
|
|
25
|
-
|
|
26
|
-
if (typeof organization.toObject === "function") {
|
|
27
|
-
organizationObject = organization.toObject();
|
|
28
|
-
}
|
|
26
|
+
const organizationObject = (0, import_ensureMongoDocumentToObject.ensureMongoDocumentToObject)(organization);
|
|
29
27
|
if (isOrganizationAdmin) {
|
|
30
28
|
return organizationObject;
|
|
31
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/utils/mapper/organization.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/mapper/organization.ts"],"sourcesContent":["import { ensureMongoDocumentToObject } from '@utils/ensureMongoDocumentToObject';\nimport { Organization, OrganizationAPI } from '@/types/organization.types';\n\n/**\n * Maps an organization to an API response.\n * @param organization - The organization to map.\n * @param isOrganizationAdmin - Whether the user is an admin of the organization.\n * @returns The organization mapped to an API response.\n */\nexport const mapOrganizationToAPI = (\n organization: Organization,\n isOrganizationAdmin: boolean | null\n): OrganizationAPI => {\n const organizationObject =\n ensureMongoDocumentToObject<Organization>(organization);\n\n if (isOrganizationAdmin) {\n return organizationObject;\n }\n\n const { adminsIds, ...organizationAPI } = organizationObject;\n return organizationAPI;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yCAA4C;AASrC,MAAM,uBAAuB,CAClC,cACA,wBACoB;AACpB,QAAM,yBACJ,gEAA0C,YAAY;AAExD,MAAI,qBAAqB;AACvB,WAAO;AAAA,EACT;AAEA,QAAM,EAAE,WAAW,GAAG,gBAAgB,IAAI;AAC1C,SAAO;AACT;","names":[]}
|
|
@@ -22,11 +22,9 @@ __export(project_exports, {
|
|
|
22
22
|
mapProjectsToAPI: () => mapProjectsToAPI
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(project_exports);
|
|
25
|
+
var import_ensureMongoDocumentToObject = require('./../../utils/ensureMongoDocumentToObject.cjs');
|
|
25
26
|
const mapProjectToAPI = (project, user, isProjectAdmin) => {
|
|
26
|
-
let projectObject = project;
|
|
27
|
-
if (typeof project.toObject === "function") {
|
|
28
|
-
projectObject = project.toObject();
|
|
29
|
-
}
|
|
27
|
+
let projectObject = (0, import_ensureMongoDocumentToObject.ensureMongoDocumentToObject)(project);
|
|
30
28
|
projectObject = {
|
|
31
29
|
...projectObject,
|
|
32
30
|
oAuth2Access: projectObject.oAuth2Access.filter((token) => token.userId !== user?._id).map((token) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/utils/mapper/project.ts"],"sourcesContent":["import { Project, ProjectAPI
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/mapper/project.ts"],"sourcesContent":["import { ensureMongoDocumentToObject } from '@utils/ensureMongoDocumentToObject';\nimport { Project, ProjectAPI } from '@/types/project.types';\nimport { User } from '@/types/user.types';\n\n/**\n * Maps a project to an API response.\n * @param project - The project to map.\n * @param isProjectAdmin - Whether the user is an admin of the project.\n * @returns The project mapped to an API response.\n */\nexport const mapProjectToAPI = (\n project: Project,\n user: User | null,\n isProjectAdmin: boolean | null\n): ProjectAPI => {\n let projectObject = ensureMongoDocumentToObject<Project>(project);\n\n projectObject = {\n ...projectObject,\n oAuth2Access: projectObject.oAuth2Access\n .filter((token) => token.userId !== user?._id)\n .map((token) => {\n const isJustUpdated =\n new Date().getTime() - new Date(token.updatedAt).getTime() <\n 1000 * 60 * 5; // 5 min\n\n if (isJustUpdated) {\n return token;\n }\n\n return {\n ...token,\n clientSecret: `${token.clientSecret.substring(0, 10)}${'*'.repeat(token.clientSecret.length - 10)}`,\n };\n }),\n };\n\n if (isProjectAdmin) {\n return projectObject;\n }\n\n const { adminsIds, ...projectAPI } = projectObject;\n return projectAPI;\n};\n\n/**\n * Formats an array of projects for API response. Removes sensitive information.\n * @param projects - The array of project objects to format.\n * @param user - The user object.\n * @param isProjectAdmin - Whether the user is an admin of the project.\n * @returns The formatted array of user objects.\n */\nexport const mapProjectsToAPI = (\n projects: Project[],\n user: User,\n isProjectAdmin: boolean | null\n): ProjectAPI[] =>\n projects.map((project) => mapProjectToAPI(project, user, isProjectAdmin));\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yCAA4C;AAUrC,MAAM,kBAAkB,CAC7B,SACA,MACA,mBACe;AACf,MAAI,oBAAgB,gEAAqC,OAAO;AAEhE,kBAAgB;AAAA,IACd,GAAG;AAAA,IACH,cAAc,cAAc,aACzB,OAAO,CAAC,UAAU,MAAM,WAAW,MAAM,GAAG,EAC5C,IAAI,CAAC,UAAU;AACd,YAAM,iBACJ,oBAAI,KAAK,GAAE,QAAQ,IAAI,IAAI,KAAK,MAAM,SAAS,EAAE,QAAQ,IACzD,MAAO,KAAK;AAEd,UAAI,eAAe;AACjB,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,QACL,GAAG;AAAA,QACH,cAAc,GAAG,MAAM,aAAa,UAAU,GAAG,EAAE,CAAC,GAAG,IAAI,OAAO,MAAM,aAAa,SAAS,EAAE,CAAC;AAAA,MACnG;AAAA,IACF,CAAC;AAAA,EACL;AAEA,MAAI,gBAAgB;AAClB,WAAO;AAAA,EACT;AAEA,QAAM,EAAE,WAAW,GAAG,WAAW,IAAI;AACrC,SAAO;AACT;AASO,MAAM,mBAAmB,CAC9B,UACA,MACA,mBAEA,SAAS,IAAI,CAAC,YAAY,gBAAgB,SAAS,MAAM,cAAc,CAAC;","names":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var tag_exports = {};
|
|
20
|
+
__export(tag_exports, {
|
|
21
|
+
mapTagToAPI: () => mapTagToAPI,
|
|
22
|
+
mapTagsToAPI: () => mapTagsToAPI
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(tag_exports);
|
|
25
|
+
var import_ensureMongoDocumentToObject = require('./../../utils/ensureMongoDocumentToObject.cjs');
|
|
26
|
+
const mapTagToAPI = (tag) => {
|
|
27
|
+
const tagObject = (0, import_ensureMongoDocumentToObject.ensureMongoDocumentToObject)(tag);
|
|
28
|
+
const { ...tagAPI } = tagObject;
|
|
29
|
+
return tagAPI;
|
|
30
|
+
};
|
|
31
|
+
const mapTagsToAPI = (tags) => tags.map((tag) => mapTagToAPI(tag));
|
|
32
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
33
|
+
0 && (module.exports = {
|
|
34
|
+
mapTagToAPI,
|
|
35
|
+
mapTagsToAPI
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=tag.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/mapper/tag.ts"],"sourcesContent":["import { ensureMongoDocumentToObject } from '@utils/ensureMongoDocumentToObject';\nimport { Tag, TagAPI } from '@/types/tag.types';\n\n/**\n * Maps a tag to an API response.\n * @param tag - The tag to map.\n * @returns The tag mapped to an API response.\n */\nexport const mapTagToAPI = (tag: Tag): TagAPI => {\n const tagObject = ensureMongoDocumentToObject(tag);\n\n const { ...tagAPI } = tagObject;\n return tagAPI;\n};\n\n/**\n * Formats an array of tags for API response. Removes sensitive information.\n * @param tags - The array of tag objects to format.\n * @param user - The user object.\n * @param isTagAdmin - Whether the user is an admin of the tag.\n * @returns The formatted array of user objects.\n */\nexport const mapTagsToAPI = (tags: Tag[]): TagAPI[] =>\n tags.map((tag) => mapTagToAPI(tag));\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yCAA4C;AAQrC,MAAM,cAAc,CAAC,QAAqB;AAC/C,QAAM,gBAAY,gEAA4B,GAAG;AAEjD,QAAM,EAAE,GAAG,OAAO,IAAI;AACtB,SAAO;AACT;AASO,MAAM,eAAe,CAAC,SAC3B,KAAK,IAAI,CAAC,QAAQ,YAAY,GAAG,CAAC;","names":[]}
|
|
@@ -22,11 +22,9 @@ __export(user_exports, {
|
|
|
22
22
|
mapUsersToAPI: () => mapUsersToAPI
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(user_exports);
|
|
25
|
+
var import_ensureMongoDocumentToObject = require('./../../utils/ensureMongoDocumentToObject.cjs');
|
|
25
26
|
const mapUserToAPI = (user) => {
|
|
26
|
-
|
|
27
|
-
if (typeof user.toObject === "function") {
|
|
28
|
-
userObject = user.toObject();
|
|
29
|
-
}
|
|
27
|
+
const userObject = (0, import_ensureMongoDocumentToObject.ensureMongoDocumentToObject)(user);
|
|
30
28
|
const { provider, session, createdAt, ...userAPI } = userObject;
|
|
31
29
|
return { ...userAPI, role: "user" };
|
|
32
30
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/utils/mapper/user.ts"],"sourcesContent":["import { User, UserAPI, UserDocument } from '@/types/user.types';\n\n/**\n * Formats a user for API response. Removes sensitive information and adds role.\n * @param user - The user object to format.\n * @returns The formatted user object.\n */\nexport const mapUserToAPI = (user: User | UserAPI
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/mapper/user.ts"],"sourcesContent":["import { ensureMongoDocumentToObject } from '@utils/ensureMongoDocumentToObject';\nimport { User, UserAPI, UserDocument } from '@/types/user.types';\n\n/**\n * Formats a user for API response. Removes sensitive information and adds role.\n * @param user - The user object to format.\n * @returns The formatted user object.\n */\nexport const mapUserToAPI = (user: User | UserAPI): UserAPI => {\n const userObject = ensureMongoDocumentToObject(user);\n\n const { provider, session, createdAt, ...userAPI } =\n userObject as UserDocument;\n\n return { ...userAPI, role: 'user' };\n};\n\n/**\n * Formats an array of users for API response. Removes sensitive information and adds role.\n * @param users - The array of user objects to format.\n * @returns The formatted array of user objects.\n */\nexport const mapUsersToAPI = (users: User[]): UserAPI[] =>\n users.map(mapUserToAPI);\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yCAA4C;AAQrC,MAAM,eAAe,CAAC,SAAkC;AAC7D,QAAM,iBAAa,gEAA4B,IAAI;AAEnD,QAAM,EAAE,UAAU,SAAS,WAAW,GAAG,QAAQ,IAC/C;AAEF,SAAO,EAAE,GAAG,SAAS,MAAM,OAAO;AACpC;AAOO,MAAM,gBAAgB,CAAC,UAC5B,MAAM,IAAI,YAAY;","names":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var removeObjectKeys_exports = {};
|
|
20
|
+
__export(removeObjectKeys_exports, {
|
|
21
|
+
removeObjectKeys: () => removeObjectKeys
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(removeObjectKeys_exports);
|
|
24
|
+
const removeObjectKeys = (obj, keys) => {
|
|
25
|
+
const result = { ...obj };
|
|
26
|
+
for (const key of keys) {
|
|
27
|
+
delete result[key];
|
|
28
|
+
}
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
32
|
+
0 && (module.exports = {
|
|
33
|
+
removeObjectKeys
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=removeObjectKeys.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/removeObjectKeys.ts"],"sourcesContent":["export const removeObjectKeys = <\n T extends Record<string, unknown>,\n K extends (keyof T)[],\n>(\n obj: T,\n keys: K\n): Omit<T, K[number]> => {\n const result = { ...obj };\n for (const key of keys) {\n delete result[key];\n }\n\n return result;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,mBAAmB,CAI9B,KACA,SACuB;AACvB,QAAM,SAAS,EAAE,GAAG,IAAI;AACxB,aAAW,OAAO,MAAM;AACtB,WAAO,OAAO,GAAG;AAAA,EACnB;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -39,7 +39,6 @@ const MEMBERS_MIN_LENGTH = 1;
|
|
|
39
39
|
const validateProject = async (project, fieldsToCheck = defaultFieldsToCheck) => {
|
|
40
40
|
const errors = {};
|
|
41
41
|
const fieldsToValidate = new Set(fieldsToCheck);
|
|
42
|
-
const organization = await (0, import_organization.getOrganizationById)(project.organizationId ?? "");
|
|
43
42
|
for (const field of fieldsToValidate) {
|
|
44
43
|
const value = project[field];
|
|
45
44
|
errors[field] = [];
|
|
@@ -55,6 +54,7 @@ const validateProject = async (project, fieldsToCheck = defaultFieldsToCheck) =>
|
|
|
55
54
|
}
|
|
56
55
|
}
|
|
57
56
|
if (field === "organizationId") {
|
|
57
|
+
const organization = await (0, import_organization.getOrganizationById)(field);
|
|
58
58
|
const organizationErrors = [];
|
|
59
59
|
if (typeof value !== "string") {
|
|
60
60
|
organizationErrors.push("Organization id must be a string");
|
|
@@ -70,15 +70,22 @@ const validateProject = async (project, fieldsToCheck = defaultFieldsToCheck) =>
|
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
if (field === "membersIds" || field === "adminsIds") {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
73
|
+
if (!project.organizationId) {
|
|
74
|
+
errors[field] = [
|
|
75
|
+
"Organization id is required to validate project members"
|
|
76
|
+
];
|
|
77
|
+
} else {
|
|
78
|
+
const organization = await (0, import_organization.getOrganizationById)(project.organizationId);
|
|
79
|
+
const membersErrors = (0, import_validateArray.validateArray)(
|
|
80
|
+
value,
|
|
81
|
+
"Members",
|
|
82
|
+
"string",
|
|
83
|
+
(item) => (organization?.membersIds).includes(item),
|
|
84
|
+
MEMBERS_MIN_LENGTH
|
|
85
|
+
);
|
|
86
|
+
if (membersErrors.length > 0) {
|
|
87
|
+
errors[field] = membersErrors;
|
|
88
|
+
}
|
|
82
89
|
}
|
|
83
90
|
}
|
|
84
91
|
if (errors[field].length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/utils/validation/validateProject.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/validation/validateProject.ts"],"sourcesContent":["import { getOrganizationById } from '@services/organization.service';\nimport { validateArray } from './validateArray';\nimport { validateString } from './validateString';\nimport type { Project } from '@/types/project.types';\n\nexport type ProjectFields = (keyof Project)[];\n\nconst defaultFieldsToCheck: ProjectFields = [\n 'name',\n 'membersIds',\n 'adminsIds',\n 'organizationId',\n];\n\ntype FieldsToCheck = (typeof defaultFieldsToCheck)[number];\ntype ValidationErrors = Partial<\n Record<(typeof defaultFieldsToCheck)[number], string[]>\n>;\n\nexport const NAME_MIN_LENGTH = 4;\nexport const NAME_MAX_LENGTH = 100;\n\nexport const MEMBERS_MIN_LENGTH = 1;\n\n/**\n * Validates an project object.\n * @param project The project object to validate.\n * @returns An object containing the validation errors for each field.\n */\nexport const validateProject = async (\n project: Partial<Project>,\n fieldsToCheck = defaultFieldsToCheck\n): Promise<ValidationErrors> => {\n const errors: ValidationErrors = {};\n\n // Define the fields to validate\n const fieldsToValidate = new Set<FieldsToCheck>(fieldsToCheck);\n\n // Validate each field\n for (const field of fieldsToValidate) {\n const value = project[field];\n\n // Initialize error array for the field\n errors[field] = [];\n\n // Check for name validity\n if (field === 'name') {\n const nameErrors = validateString(\n value,\n 'Name',\n NAME_MIN_LENGTH,\n NAME_MAX_LENGTH\n );\n\n if (nameErrors.length > 0) {\n errors[field] = nameErrors;\n }\n }\n\n if (field === 'organizationId') {\n const organization = await getOrganizationById(field);\n const organizationErrors: string[] = [];\n\n if (typeof value !== 'string') {\n organizationErrors.push('Organization id must be a string');\n }\n\n if (!value) {\n organizationErrors.push('Organization id is required');\n }\n\n if (!organization) {\n organizationErrors.push('Organization not found');\n }\n\n if (organizationErrors.length > 0) {\n errors[field] = organizationErrors;\n }\n }\n\n if (field === 'membersIds' || field === 'adminsIds') {\n if (!project.organizationId) {\n errors[field] = [\n 'Organization id is required to validate project members',\n ];\n } else {\n const organization = await getOrganizationById(project.organizationId);\n const membersErrors = validateArray<string>(\n value as unknown as string[],\n 'Members',\n 'string',\n (item) =>\n (organization?.membersIds as unknown as string[]).includes(item),\n MEMBERS_MIN_LENGTH\n );\n\n if (membersErrors.length > 0) {\n errors[field] = membersErrors;\n }\n }\n }\n\n // Remove the error field if there are no errors\n if (errors[field].length === 0) {\n delete errors[field];\n }\n }\n\n return errors;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAoC;AACpC,2BAA8B;AAC9B,4BAA+B;AAK/B,MAAM,uBAAsC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAOO,MAAM,kBAAkB;AACxB,MAAM,kBAAkB;AAExB,MAAM,qBAAqB;AAO3B,MAAM,kBAAkB,OAC7B,SACA,gBAAgB,yBACc;AAC9B,QAAM,SAA2B,CAAC;AAGlC,QAAM,mBAAmB,IAAI,IAAmB,aAAa;AAG7D,aAAW,SAAS,kBAAkB;AACpC,UAAM,QAAQ,QAAQ,KAAK;AAG3B,WAAO,KAAK,IAAI,CAAC;AAGjB,QAAI,UAAU,QAAQ;AACpB,YAAM,iBAAa;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,UAAI,WAAW,SAAS,GAAG;AACzB,eAAO,KAAK,IAAI;AAAA,MAClB;AAAA,IACF;AAEA,QAAI,UAAU,kBAAkB;AAC9B,YAAM,eAAe,UAAM,yCAAoB,KAAK;AACpD,YAAM,qBAA+B,CAAC;AAEtC,UAAI,OAAO,UAAU,UAAU;AAC7B,2BAAmB,KAAK,kCAAkC;AAAA,MAC5D;AAEA,UAAI,CAAC,OAAO;AACV,2BAAmB,KAAK,6BAA6B;AAAA,MACvD;AAEA,UAAI,CAAC,cAAc;AACjB,2BAAmB,KAAK,wBAAwB;AAAA,MAClD;AAEA,UAAI,mBAAmB,SAAS,GAAG;AACjC,eAAO,KAAK,IAAI;AAAA,MAClB;AAAA,IACF;AAEA,QAAI,UAAU,gBAAgB,UAAU,aAAa;AACnD,UAAI,CAAC,QAAQ,gBAAgB;AAC3B,eAAO,KAAK,IAAI;AAAA,UACd;AAAA,QACF;AAAA,MACF,OAAO;AACL,cAAM,eAAe,UAAM,yCAAoB,QAAQ,cAAc;AACrE,cAAM,oBAAgB;AAAA,UACpB;AAAA,UACA;AAAA,UACA;AAAA,UACA,CAAC,UACE,cAAc,YAAmC,SAAS,IAAI;AAAA,UACjE;AAAA,QACF;AAEA,YAAI,cAAc,SAAS,GAAG;AAC5B,iBAAO,KAAK,IAAI;AAAA,QAClB;AAAA,MACF;AAAA,IACF;AAGA,QAAI,OAAO,KAAK,EAAE,WAAW,GAAG;AAC9B,aAAO,OAAO,KAAK;AAAA,IACrB;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var validateTag_exports = {};
|
|
20
|
+
__export(validateTag_exports, {
|
|
21
|
+
KEY_MAX_LENGTH: () => KEY_MAX_LENGTH,
|
|
22
|
+
KEY_MIN_LENGTH: () => KEY_MIN_LENGTH,
|
|
23
|
+
NAME_MAX_LENGTH: () => NAME_MAX_LENGTH,
|
|
24
|
+
NAME_MIN_LENGTH: () => NAME_MIN_LENGTH,
|
|
25
|
+
validateTag: () => validateTag
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(validateTag_exports);
|
|
28
|
+
var import_organization = require('./../../services/organization.service.cjs');
|
|
29
|
+
var import_validateString = require('./validateString.cjs');
|
|
30
|
+
const defaultFieldsToCheck = ["name"];
|
|
31
|
+
const KEY_MIN_LENGTH = 4;
|
|
32
|
+
const KEY_MAX_LENGTH = 20;
|
|
33
|
+
const NAME_MIN_LENGTH = 4;
|
|
34
|
+
const NAME_MAX_LENGTH = 50;
|
|
35
|
+
const validateTag = async (tag, fieldsToCheck = defaultFieldsToCheck) => {
|
|
36
|
+
const errors = {};
|
|
37
|
+
const fieldsToValidate = new Set(fieldsToCheck);
|
|
38
|
+
for (const field of fieldsToValidate) {
|
|
39
|
+
const value = tag[field];
|
|
40
|
+
errors[field] = [];
|
|
41
|
+
if (field === "key") {
|
|
42
|
+
const nameErrors = (0, import_validateString.validateString)(
|
|
43
|
+
value,
|
|
44
|
+
"Key",
|
|
45
|
+
KEY_MIN_LENGTH,
|
|
46
|
+
KEY_MAX_LENGTH
|
|
47
|
+
);
|
|
48
|
+
if (nameErrors.length > 0) {
|
|
49
|
+
errors[field] = nameErrors;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (field === "name") {
|
|
53
|
+
const nameErrors = (0, import_validateString.validateString)(
|
|
54
|
+
value,
|
|
55
|
+
"Name",
|
|
56
|
+
NAME_MIN_LENGTH,
|
|
57
|
+
NAME_MAX_LENGTH
|
|
58
|
+
);
|
|
59
|
+
if (nameErrors.length > 0) {
|
|
60
|
+
errors[field] = nameErrors;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (field === "organizationId") {
|
|
64
|
+
const organizationErrors = [];
|
|
65
|
+
if (typeof value !== "string") {
|
|
66
|
+
organizationErrors.push("Organization id must be a string");
|
|
67
|
+
}
|
|
68
|
+
if (!value) {
|
|
69
|
+
organizationErrors.push("Organization id is required");
|
|
70
|
+
}
|
|
71
|
+
const organization = await (0, import_organization.getOrganizationById)(field);
|
|
72
|
+
if (!organization) {
|
|
73
|
+
organizationErrors.push("Organization not found");
|
|
74
|
+
}
|
|
75
|
+
if (organizationErrors.length > 0) {
|
|
76
|
+
errors[field] = organizationErrors;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (errors[field].length === 0) {
|
|
80
|
+
delete errors[field];
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return errors;
|
|
84
|
+
};
|
|
85
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
86
|
+
0 && (module.exports = {
|
|
87
|
+
KEY_MAX_LENGTH,
|
|
88
|
+
KEY_MIN_LENGTH,
|
|
89
|
+
NAME_MAX_LENGTH,
|
|
90
|
+
NAME_MIN_LENGTH,
|
|
91
|
+
validateTag
|
|
92
|
+
});
|
|
93
|
+
//# sourceMappingURL=validateTag.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/validation/validateTag.ts"],"sourcesContent":["import { getOrganizationById } from '@services/organization.service';\nimport { validateString } from './validateString';\nimport type { Tag } from '@/types/tag.types';\n\nexport type TagFields = (keyof Tag)[];\n\nconst defaultFieldsToCheck: TagFields = ['name'];\n\ntype FieldsToCheck = (typeof defaultFieldsToCheck)[number];\ntype ValidationErrors = Partial<\n Record<(typeof defaultFieldsToCheck)[number], string[]>\n>;\n\nexport const KEY_MIN_LENGTH = 4;\nexport const KEY_MAX_LENGTH = 20;\n\nexport const NAME_MIN_LENGTH = 4;\nexport const NAME_MAX_LENGTH = 50;\n\n/**\n * Validates an tag object.\n * @param tag The tag object to validate.\n * @returns An object containing the validation errors for each field.\n */\nexport const validateTag = async (\n tag: Partial<Tag>,\n fieldsToCheck = defaultFieldsToCheck\n): Promise<ValidationErrors> => {\n const errors: ValidationErrors = {};\n\n // Define the fields to validate\n const fieldsToValidate = new Set<FieldsToCheck>(fieldsToCheck);\n\n // Validate each field\n for (const field of fieldsToValidate) {\n const value = tag[field];\n\n // Initialize error array for the field\n errors[field] = [];\n\n // Check for name validity\n if (field === 'key') {\n const nameErrors = validateString(\n value,\n 'Key',\n KEY_MIN_LENGTH,\n KEY_MAX_LENGTH\n );\n\n if (nameErrors.length > 0) {\n errors[field] = nameErrors;\n }\n }\n\n // Check for name validity\n if (field === 'name') {\n const nameErrors = validateString(\n value,\n 'Name',\n NAME_MIN_LENGTH,\n NAME_MAX_LENGTH\n );\n\n if (nameErrors.length > 0) {\n errors[field] = nameErrors;\n }\n }\n\n if (field === 'organizationId') {\n const organizationErrors: string[] = [];\n\n if (typeof value !== 'string') {\n organizationErrors.push('Organization id must be a string');\n }\n\n if (!value) {\n organizationErrors.push('Organization id is required');\n }\n\n const organization = await getOrganizationById(field);\n if (!organization) {\n organizationErrors.push('Organization not found');\n }\n\n if (organizationErrors.length > 0) {\n errors[field] = organizationErrors;\n }\n }\n\n // Remove the error field if there are no errors\n if (errors[field].length === 0) {\n delete errors[field];\n }\n }\n\n return errors;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAoC;AACpC,4BAA+B;AAK/B,MAAM,uBAAkC,CAAC,MAAM;AAOxC,MAAM,iBAAiB;AACvB,MAAM,iBAAiB;AAEvB,MAAM,kBAAkB;AACxB,MAAM,kBAAkB;AAOxB,MAAM,cAAc,OACzB,KACA,gBAAgB,yBACc;AAC9B,QAAM,SAA2B,CAAC;AAGlC,QAAM,mBAAmB,IAAI,IAAmB,aAAa;AAG7D,aAAW,SAAS,kBAAkB;AACpC,UAAM,QAAQ,IAAI,KAAK;AAGvB,WAAO,KAAK,IAAI,CAAC;AAGjB,QAAI,UAAU,OAAO;AACnB,YAAM,iBAAa;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,UAAI,WAAW,SAAS,GAAG;AACzB,eAAO,KAAK,IAAI;AAAA,MAClB;AAAA,IACF;AAGA,QAAI,UAAU,QAAQ;AACpB,YAAM,iBAAa;AAAA,QACjB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAEA,UAAI,WAAW,SAAS,GAAG;AACzB,eAAO,KAAK,IAAI;AAAA,MAClB;AAAA,IACF;AAEA,QAAI,UAAU,kBAAkB;AAC9B,YAAM,qBAA+B,CAAC;AAEtC,UAAI,OAAO,UAAU,UAAU;AAC7B,2BAAmB,KAAK,kCAAkC;AAAA,MAC5D;AAEA,UAAI,CAAC,OAAO;AACV,2BAAmB,KAAK,6BAA6B;AAAA,MACvD;AAEA,YAAM,eAAe,UAAM,yCAAoB,KAAK;AACpD,UAAI,CAAC,cAAc;AACjB,2BAAmB,KAAK,wBAAwB;AAAA,MAClD;AAEA,UAAI,mBAAmB,SAAS,GAAG;AACjC,eAAO,KAAK,IAAI;AAAA,MAClB;AAAA,IACF;AAGA,QAAI,OAAO,KAAK,EAAE,WAAW,GAAG;AAC9B,aAAO,OAAO,KAAK;AAAA,IACrB;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
|