@intlayer/backend 5.8.1-canary.0 → 6.0.0-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/dist/cjs/controllers/dictionary.controller.cjs +47 -23
  2. package/dist/cjs/controllers/dictionary.controller.cjs.map +1 -1
  3. package/dist/cjs/controllers/eventListener.controller.cjs +2 -6
  4. package/dist/cjs/controllers/eventListener.controller.cjs.map +1 -1
  5. package/dist/cjs/controllers/project.controller.cjs.map +1 -1
  6. package/dist/cjs/controllers/user.controller.cjs +21 -4
  7. package/dist/cjs/controllers/user.controller.cjs.map +1 -1
  8. package/dist/cjs/index.cjs.map +1 -1
  9. package/dist/cjs/middlewares/oAuth2.middleware.cjs +1 -1
  10. package/dist/cjs/middlewares/oAuth2.middleware.cjs.map +1 -1
  11. package/dist/cjs/routes/dictionary.routes.cjs +9 -0
  12. package/dist/cjs/routes/dictionary.routes.cjs.map +1 -1
  13. package/dist/cjs/routes/eventListener.routes.cjs +2 -2
  14. package/dist/cjs/routes/eventListener.routes.cjs.map +1 -1
  15. package/dist/cjs/schemas/dictionary.schema.cjs +0 -5
  16. package/dist/cjs/schemas/dictionary.schema.cjs.map +1 -1
  17. package/dist/cjs/services/dictionary.service.cjs +9 -9
  18. package/dist/cjs/services/dictionary.service.cjs.map +1 -1
  19. package/dist/cjs/services/project.service.cjs.map +1 -1
  20. package/dist/cjs/services/user.service.cjs.map +1 -1
  21. package/dist/cjs/types/dictionary.types.cjs.map +1 -1
  22. package/dist/cjs/types/plan.types.cjs.map +1 -1
  23. package/dist/cjs/types/project.types.cjs.map +1 -1
  24. package/dist/cjs/utils/AI/aiSdk.cjs.map +1 -1
  25. package/dist/cjs/utils/AI/askDocQuestion/askDocQuestion.cjs +2 -1
  26. package/dist/cjs/utils/AI/askDocQuestion/askDocQuestion.cjs.map +1 -1
  27. package/dist/cjs/utils/AI/askDocQuestion/embeddings.json +91239 -47121
  28. package/dist/cjs/utils/AI/translateJSON/index.cjs +1 -1
  29. package/dist/cjs/utils/AI/translateJSON/index.cjs.map +1 -1
  30. package/dist/cjs/utils/mapper/dictionary.cjs +4 -3
  31. package/dist/cjs/utils/mapper/dictionary.cjs.map +1 -1
  32. package/dist/cjs/utils/rateLimiter.cjs +2 -2
  33. package/dist/cjs/utils/rateLimiter.cjs.map +1 -1
  34. package/dist/cjs/utils/validation/validateDictionary.cjs +2 -1
  35. package/dist/cjs/utils/validation/validateDictionary.cjs.map +1 -1
  36. package/dist/cjs/utils/validation/validateProject.cjs +2 -1
  37. package/dist/cjs/utils/validation/validateProject.cjs.map +1 -1
  38. package/dist/cjs/utils/validation/validateUser.cjs +3 -2
  39. package/dist/cjs/utils/validation/validateUser.cjs.map +1 -1
  40. package/dist/esm/controllers/dictionary.controller.mjs +46 -23
  41. package/dist/esm/controllers/dictionary.controller.mjs.map +1 -1
  42. package/dist/esm/controllers/eventListener.controller.mjs +2 -6
  43. package/dist/esm/controllers/eventListener.controller.mjs.map +1 -1
  44. package/dist/esm/controllers/project.controller.mjs.map +1 -1
  45. package/dist/esm/controllers/user.controller.mjs +21 -4
  46. package/dist/esm/controllers/user.controller.mjs.map +1 -1
  47. package/dist/esm/index.mjs.map +1 -1
  48. package/dist/esm/middlewares/oAuth2.middleware.mjs +1 -1
  49. package/dist/esm/middlewares/oAuth2.middleware.mjs.map +1 -1
  50. package/dist/esm/routes/dictionary.routes.mjs +10 -0
  51. package/dist/esm/routes/dictionary.routes.mjs.map +1 -1
  52. package/dist/esm/routes/eventListener.routes.mjs +2 -2
  53. package/dist/esm/routes/eventListener.routes.mjs.map +1 -1
  54. package/dist/esm/schemas/dictionary.schema.mjs +0 -5
  55. package/dist/esm/schemas/dictionary.schema.mjs.map +1 -1
  56. package/dist/esm/services/dictionary.service.mjs +9 -9
  57. package/dist/esm/services/dictionary.service.mjs.map +1 -1
  58. package/dist/esm/services/project.service.mjs.map +1 -1
  59. package/dist/esm/services/user.service.mjs.map +1 -1
  60. package/dist/esm/utils/AI/aiSdk.mjs.map +1 -1
  61. package/dist/esm/utils/AI/askDocQuestion/askDocQuestion.mjs +2 -1
  62. package/dist/esm/utils/AI/askDocQuestion/askDocQuestion.mjs.map +1 -1
  63. package/dist/esm/utils/AI/askDocQuestion/embeddings.json +91239 -47121
  64. package/dist/esm/utils/AI/translateJSON/index.mjs +1 -1
  65. package/dist/esm/utils/AI/translateJSON/index.mjs.map +1 -1
  66. package/dist/esm/utils/mapper/dictionary.mjs +4 -3
  67. package/dist/esm/utils/mapper/dictionary.mjs.map +1 -1
  68. package/dist/esm/utils/rateLimiter.mjs +3 -3
  69. package/dist/esm/utils/rateLimiter.mjs.map +1 -1
  70. package/dist/esm/utils/validation/validateDictionary.mjs +2 -1
  71. package/dist/esm/utils/validation/validateDictionary.mjs.map +1 -1
  72. package/dist/esm/utils/validation/validateProject.mjs +2 -1
  73. package/dist/esm/utils/validation/validateProject.mjs.map +1 -1
  74. package/dist/esm/utils/validation/validateUser.mjs +3 -2
  75. package/dist/esm/utils/validation/validateUser.mjs.map +1 -1
  76. package/dist/types/controllers/dictionary.controller.d.ts +5 -0
  77. package/dist/types/controllers/dictionary.controller.d.ts.map +1 -1
  78. package/dist/types/controllers/eventListener.controller.d.ts.map +1 -1
  79. package/dist/types/controllers/project.controller.d.ts +2 -2
  80. package/dist/types/controllers/project.controller.d.ts.map +1 -1
  81. package/dist/types/controllers/user.controller.d.ts +2 -2
  82. package/dist/types/controllers/user.controller.d.ts.map +1 -1
  83. package/dist/types/routes/dictionary.routes.d.ts +5 -0
  84. package/dist/types/routes/dictionary.routes.d.ts.map +1 -1
  85. package/dist/types/routes/eventListener.routes.d.ts +1 -3
  86. package/dist/types/routes/eventListener.routes.d.ts.map +1 -1
  87. package/dist/types/schemas/dictionary.schema.d.ts.map +1 -1
  88. package/dist/types/services/dictionary.service.d.ts +1 -1
  89. package/dist/types/services/project.service.d.ts +2 -2
  90. package/dist/types/services/project.service.d.ts.map +1 -1
  91. package/dist/types/services/user.service.d.ts +2 -2
  92. package/dist/types/services/user.service.d.ts.map +1 -1
  93. package/dist/types/types/dictionary.types.d.ts +4 -2
  94. package/dist/types/types/dictionary.types.d.ts.map +1 -1
  95. package/dist/types/types/plan.types.d.ts +2 -1
  96. package/dist/types/types/plan.types.d.ts.map +1 -1
  97. package/dist/types/types/project.types.d.ts +1 -0
  98. package/dist/types/types/project.types.d.ts.map +1 -1
  99. package/dist/types/utils/AI/aiSdk.d.ts +1 -1
  100. package/dist/types/utils/AI/aiSdk.d.ts.map +1 -1
  101. package/dist/types/utils/AI/askDocQuestion/askDocQuestion.d.ts.map +1 -1
  102. package/dist/types/utils/mapper/dictionary.d.ts +1 -2
  103. package/dist/types/utils/mapper/dictionary.d.ts.map +1 -1
  104. package/dist/types/utils/validation/validateDictionary.d.ts.map +1 -1
  105. package/dist/types/utils/validation/validateProject.d.ts +2 -2
  106. package/dist/types/utils/validation/validateProject.d.ts.map +1 -1
  107. package/dist/types/utils/validation/validateUser.d.ts +2 -2
  108. package/dist/types/utils/validation/validateUser.d.ts.map +1 -1
  109. package/package.json +30 -33
@@ -12,7 +12,7 @@ const getFileContent = (filePath) => readFileSync(join(__dirname, filePath), { e
12
12
  const CHAT_GPT_PROMPT = getFileContent("./PROMPT.md");
13
13
  const aiDefaultOptions = {
14
14
  provider: AIProvider.OPENAI,
15
- model: "gpt-5-mini"
15
+ model: "gpt-5-nano"
16
16
  };
17
17
  const formatLocaleWithName = (locale) => `${locale}: ${getLocaleName(locale, Locales.ENGLISH)}`;
18
18
  const formatTagInstructions = (tags) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/utils/AI/translateJSON/index.ts"],"sourcesContent":["import type { Tag } from '@/types/tag.types';\nimport { getLocaleName } from '@intlayer/core';\nimport { logger } from '@logger';\nimport { extractJson } from '@utils/extractJSON';\nimport { generateText } from 'ai';\nimport { readFileSync } from 'fs';\nimport { Locales } from 'intlayer';\nimport { dirname, join } from 'path';\nimport { fileURLToPath } from 'url';\nimport { AIConfig, AIOptions, AIProvider } from '../aiSdk';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\n// Get the content of a file at the specified path\nconst getFileContent = (filePath: string) =>\n readFileSync(join(__dirname, filePath), { encoding: 'utf-8' });\n\nexport type TranslateJSONOptions = {\n entryFileContent: JSON;\n presetOutputContent: JSON;\n dictionaryDescription: string;\n entryLocale: Locales;\n outputLocale: Locales;\n tags: Tag[];\n aiConfig: AIConfig;\n mode: 'complete' | 'review';\n applicationContext?: string;\n};\n\nexport type TranslateJSONResultData = {\n fileContent: string;\n tokenUsed: number;\n};\n\n// The prompt template to send to the AI model\nconst CHAT_GPT_PROMPT = getFileContent('./PROMPT.md');\n\nexport const aiDefaultOptions: AIOptions = {\n provider: AIProvider.OPENAI,\n model: 'gpt-5-mini',\n};\n\n/**\n * Format a locale with its name.\n *\n * @param locale - The locale to format.\n * @returns A string in the format \"locale: name\", e.g. \"en: English\".\n */\nconst formatLocaleWithName = (locale: Locales): string =>\n `${locale}: ${getLocaleName(locale, Locales.ENGLISH)}`;\n\n/**\n * Formats tag instructions for the AI prompt.\n * Creates a string with all available tags and their descriptions.\n *\n * @param tags - The list of tags to format.\n * @returns A formatted string with tag instructions.\n */\nconst formatTagInstructions = (tags: Tag[]): string => {\n if (!tags || tags.length === 0) {\n return '';\n }\n\n // Prepare the tag instructions.\n return `Based on the dictionary content, identify specific tags from the list below that would be relevant:\n \n${tags.map(({ key, description }) => `- ${key}: ${description}`).join('\\n\\n')}`;\n};\n\nconst getModeInstructions = (mode: 'complete' | 'review'): string => {\n if (mode === 'complete') {\n return 'Mode: \"Complete\" - Enrich the preset content with the missing keys and values in the output locale. Do not update existing keys. Everything should be returned in the output.';\n }\n\n return 'Mode: \"Review\" - Fill missing content and review existing keys from the preset content. If a key from the entry is missing in the output, it must be translated to the target language and added. If you detect misspelled content, or content that should be reformulated, correct it. If a translation is not coherent with the desired language, translate it.';\n};\n\n/**\n * TranslateJSONs a content declaration file by constructing a prompt for AI models.\n * The prompt includes details about the project's locales, file paths of content declarations,\n * and requests for identifying issues or inconsistencies.\n */\nexport const translateJSON = async ({\n entryFileContent,\n presetOutputContent,\n dictionaryDescription,\n aiConfig,\n entryLocale,\n outputLocale,\n tags,\n mode,\n applicationContext,\n}: TranslateJSONOptions): Promise<TranslateJSONResultData | undefined> => {\n // Prepare the prompt for AI by replacing placeholders with actual values.\n const prompt = CHAT_GPT_PROMPT.replace(\n '{{entryLocale}}',\n formatLocaleWithName(entryLocale)\n )\n .replace('{{outputLocale}}', formatLocaleWithName(outputLocale))\n .replace('{{entryFileContent}}', JSON.stringify(entryFileContent))\n .replace('{{presetOutputContent}}', JSON.stringify(presetOutputContent))\n .replace('{{dictionaryDescription}}', dictionaryDescription)\n .replace('{{applicationContext}}', applicationContext ?? '')\n .replace('{{tagsInstructions}}', formatTagInstructions(tags))\n .replace('{{modeInstructions}}', getModeInstructions(mode));\n\n // Use the AI SDK to generate the completion\n const { text: newContent, usage } = await generateText({\n ...aiConfig,\n messages: [{ role: 'system', content: prompt }],\n });\n\n logger.info(`${usage?.totalTokens ?? 0} tokens used in the request`);\n\n return {\n fileContent: extractJson(newContent),\n tokenUsed: usage?.totalTokens ?? 0,\n };\n};\n"],"mappings":"AACA,SAAS,qBAAqB;AAC9B,SAAS,cAAc;AACvB,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB;AAC7B,SAAS,eAAe;AACxB,SAAS,SAAS,YAAY;AAC9B,SAAS,qBAAqB;AAC9B,SAA8B,kBAAkB;AAEhD,MAAM,YAAY,QAAQ,cAAc,YAAY,GAAG,CAAC;AAGxD,MAAM,iBAAiB,CAAC,aACtB,aAAa,KAAK,WAAW,QAAQ,GAAG,EAAE,UAAU,QAAQ,CAAC;AAoB/D,MAAM,kBAAkB,eAAe,aAAa;AAE7C,MAAM,mBAA8B;AAAA,EACzC,UAAU,WAAW;AAAA,EACrB,OAAO;AACT;AAQA,MAAM,uBAAuB,CAAC,WAC5B,GAAG,MAAM,KAAK,cAAc,QAAQ,QAAQ,OAAO,CAAC;AAStD,MAAM,wBAAwB,CAAC,SAAwB;AACrD,MAAI,CAAC,QAAQ,KAAK,WAAW,GAAG;AAC9B,WAAO;AAAA,EACT;AAGA,SAAO;AAAA;AAAA,EAEP,KAAK,IAAI,CAAC,EAAE,KAAK,YAAY,MAAM,KAAK,GAAG,KAAK,WAAW,EAAE,EAAE,KAAK,MAAM,CAAC;AAC7E;AAEA,MAAM,sBAAsB,CAAC,SAAwC;AACnE,MAAI,SAAS,YAAY;AACvB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAOO,MAAM,gBAAgB,OAAO;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA0E;AAExE,QAAM,SAAS,gBAAgB;AAAA,IAC7B;AAAA,IACA,qBAAqB,WAAW;AAAA,EAClC,EACG,QAAQ,oBAAoB,qBAAqB,YAAY,CAAC,EAC9D,QAAQ,wBAAwB,KAAK,UAAU,gBAAgB,CAAC,EAChE,QAAQ,2BAA2B,KAAK,UAAU,mBAAmB,CAAC,EACtE,QAAQ,6BAA6B,qBAAqB,EAC1D,QAAQ,0BAA0B,sBAAsB,EAAE,EAC1D,QAAQ,wBAAwB,sBAAsB,IAAI,CAAC,EAC3D,QAAQ,wBAAwB,oBAAoB,IAAI,CAAC;AAG5D,QAAM,EAAE,MAAM,YAAY,MAAM,IAAI,MAAM,aAAa;AAAA,IACrD,GAAG;AAAA,IACH,UAAU,CAAC,EAAE,MAAM,UAAU,SAAS,OAAO,CAAC;AAAA,EAChD,CAAC;AAED,SAAO,KAAK,GAAG,OAAO,eAAe,CAAC,6BAA6B;AAEnE,SAAO;AAAA,IACL,aAAa,YAAY,UAAU;AAAA,IACnC,WAAW,OAAO,eAAe;AAAA,EACnC;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/utils/AI/translateJSON/index.ts"],"sourcesContent":["import type { Tag } from '@/types/tag.types';\nimport { getLocaleName } from '@intlayer/core';\nimport { logger } from '@logger';\nimport { extractJson } from '@utils/extractJSON';\nimport { generateText } from 'ai';\nimport { readFileSync } from 'fs';\nimport { Locales } from 'intlayer';\nimport { dirname, join } from 'path';\nimport { fileURLToPath } from 'url';\nimport { AIConfig, AIOptions, AIProvider } from '../aiSdk';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\n// Get the content of a file at the specified path\nconst getFileContent = (filePath: string) =>\n readFileSync(join(__dirname, filePath), { encoding: 'utf-8' });\n\nexport type TranslateJSONOptions = {\n entryFileContent: JSON;\n presetOutputContent: JSON;\n dictionaryDescription: string;\n entryLocale: Locales;\n outputLocale: Locales;\n tags: Tag[];\n aiConfig: AIConfig;\n mode: 'complete' | 'review';\n applicationContext?: string;\n};\n\nexport type TranslateJSONResultData = {\n fileContent: string;\n tokenUsed: number;\n};\n\n// The prompt template to send to the AI model\nconst CHAT_GPT_PROMPT = getFileContent('./PROMPT.md');\n\nexport const aiDefaultOptions: AIOptions = {\n provider: AIProvider.OPENAI,\n model: 'gpt-5-nano',\n};\n\n/**\n * Format a locale with its name.\n *\n * @param locale - The locale to format.\n * @returns A string in the format \"locale: name\", e.g. \"en: English\".\n */\nconst formatLocaleWithName = (locale: Locales): string =>\n `${locale}: ${getLocaleName(locale, Locales.ENGLISH)}`;\n\n/**\n * Formats tag instructions for the AI prompt.\n * Creates a string with all available tags and their descriptions.\n *\n * @param tags - The list of tags to format.\n * @returns A formatted string with tag instructions.\n */\nconst formatTagInstructions = (tags: Tag[]): string => {\n if (!tags || tags.length === 0) {\n return '';\n }\n\n // Prepare the tag instructions.\n return `Based on the dictionary content, identify specific tags from the list below that would be relevant:\n \n${tags.map(({ key, description }) => `- ${key}: ${description}`).join('\\n\\n')}`;\n};\n\nconst getModeInstructions = (mode: 'complete' | 'review'): string => {\n if (mode === 'complete') {\n return 'Mode: \"Complete\" - Enrich the preset content with the missing keys and values in the output locale. Do not update existing keys. Everything should be returned in the output.';\n }\n\n return 'Mode: \"Review\" - Fill missing content and review existing keys from the preset content. If a key from the entry is missing in the output, it must be translated to the target language and added. If you detect misspelled content, or content that should be reformulated, correct it. If a translation is not coherent with the desired language, translate it.';\n};\n\n/**\n * TranslateJSONs a content declaration file by constructing a prompt for AI models.\n * The prompt includes details about the project's locales, file paths of content declarations,\n * and requests for identifying issues or inconsistencies.\n */\nexport const translateJSON = async ({\n entryFileContent,\n presetOutputContent,\n dictionaryDescription,\n aiConfig,\n entryLocale,\n outputLocale,\n tags,\n mode,\n applicationContext,\n}: TranslateJSONOptions): Promise<TranslateJSONResultData | undefined> => {\n // Prepare the prompt for AI by replacing placeholders with actual values.\n const prompt = CHAT_GPT_PROMPT.replace(\n '{{entryLocale}}',\n formatLocaleWithName(entryLocale)\n )\n .replace('{{outputLocale}}', formatLocaleWithName(outputLocale))\n .replace('{{entryFileContent}}', JSON.stringify(entryFileContent))\n .replace('{{presetOutputContent}}', JSON.stringify(presetOutputContent))\n .replace('{{dictionaryDescription}}', dictionaryDescription)\n .replace('{{applicationContext}}', applicationContext ?? '')\n .replace('{{tagsInstructions}}', formatTagInstructions(tags))\n .replace('{{modeInstructions}}', getModeInstructions(mode));\n\n // Use the AI SDK to generate the completion\n const { text: newContent, usage } = await generateText({\n ...aiConfig,\n messages: [{ role: 'system', content: prompt }],\n });\n\n logger.info(`${usage?.totalTokens ?? 0} tokens used in the request`);\n\n return {\n fileContent: extractJson(newContent),\n tokenUsed: usage?.totalTokens ?? 0,\n };\n};\n"],"mappings":"AACA,SAAS,qBAAqB;AAC9B,SAAS,cAAc;AACvB,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB;AAC7B,SAAS,eAAe;AACxB,SAAS,SAAS,YAAY;AAC9B,SAAS,qBAAqB;AAC9B,SAA8B,kBAAkB;AAEhD,MAAM,YAAY,QAAQ,cAAc,YAAY,GAAG,CAAC;AAGxD,MAAM,iBAAiB,CAAC,aACtB,aAAa,KAAK,WAAW,QAAQ,GAAG,EAAE,UAAU,QAAQ,CAAC;AAoB/D,MAAM,kBAAkB,eAAe,aAAa;AAE7C,MAAM,mBAA8B;AAAA,EACzC,UAAU,WAAW;AAAA,EACrB,OAAO;AACT;AAQA,MAAM,uBAAuB,CAAC,WAC5B,GAAG,MAAM,KAAK,cAAc,QAAQ,QAAQ,OAAO,CAAC;AAStD,MAAM,wBAAwB,CAAC,SAAwB;AACrD,MAAI,CAAC,QAAQ,KAAK,WAAW,GAAG;AAC9B,WAAO;AAAA,EACT;AAGA,SAAO;AAAA;AAAA,EAEP,KAAK,IAAI,CAAC,EAAE,KAAK,YAAY,MAAM,KAAK,GAAG,KAAK,WAAW,EAAE,EAAE,KAAK,MAAM,CAAC;AAC7E;AAEA,MAAM,sBAAsB,CAAC,SAAwC;AACnE,MAAI,SAAS,YAAY;AACvB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAOO,MAAM,gBAAgB,OAAO;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA0E;AAExE,QAAM,SAAS,gBAAgB;AAAA,IAC7B;AAAA,IACA,qBAAqB,WAAW;AAAA,EAClC,EACG,QAAQ,oBAAoB,qBAAqB,YAAY,CAAC,EAC9D,QAAQ,wBAAwB,KAAK,UAAU,gBAAgB,CAAC,EAChE,QAAQ,2BAA2B,KAAK,UAAU,mBAAmB,CAAC,EACtE,QAAQ,6BAA6B,qBAAqB,EAC1D,QAAQ,0BAA0B,sBAAsB,EAAE,EAC1D,QAAQ,wBAAwB,sBAAsB,IAAI,CAAC,EAC3D,QAAQ,wBAAwB,oBAAoB,IAAI,CAAC;AAG5D,QAAM,EAAE,MAAM,YAAY,MAAM,IAAI,MAAM,aAAa;AAAA,IACrD,GAAG;AAAA,IACH,UAAU,CAAC,EAAE,MAAM,UAAU,SAAS,OAAO,CAAC;AAAA,EAChD,CAAC;AAED,SAAO,KAAK,GAAG,OAAO,eAAe,CAAC,6BAA6B;AAEnE,SAAO;AAAA,IACL,aAAa,YAAY,UAAU;AAAA,IACnC,WAAW,OAAO,eAAe;AAAA,EACnC;AACF;","names":[]}
@@ -1,9 +1,9 @@
1
1
  import { ensureMongoDocumentToObject } from "./../../utils/ensureMongoDocumentToObject.mjs";
2
- const mapDictionaryToAPI = (dictionary, projectId, version) => {
2
+ const mapDictionaryToAPI = (dictionary, version) => {
3
3
  const dictionaryObject = ensureMongoDocumentToObject(dictionary);
4
+ let versionList = [...dictionaryObject.content.keys() ?? []];
4
5
  let returnedVersion = version;
5
6
  if (!returnedVersion) {
6
- const versionList = [...dictionaryObject.content.keys() ?? []];
7
7
  const lastVersion = versionList[versionList.length - 1];
8
8
  returnedVersion = lastVersion;
9
9
  }
@@ -11,7 +11,8 @@ const mapDictionaryToAPI = (dictionary, projectId, version) => {
11
11
  return {
12
12
  ...dictionaryObject,
13
13
  content,
14
- filePath: dictionaryObject.filePath?.[String(projectId)]
14
+ version: returnedVersion,
15
+ versionList
15
16
  };
16
17
  };
17
18
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/utils/mapper/dictionary.ts"],"sourcesContent":["import type { Dictionary, DictionaryAPI } from '@/types/dictionary.types';\nimport type { Project } from '@/types/project.types';\nimport { ensureMongoDocumentToObject } from '@utils/ensureMongoDocumentToObject';\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.content.keys() ?? [])];\n const lastVersion = versionList[versionList.length - 1];\n returnedVersion = lastVersion;\n }\n\n const content =\n (dictionaryObject.content.get(returnedVersion)\n ?.content as DictionaryAPI['content']) ?? null;\n\n return {\n ...dictionaryObject,\n content,\n filePath: dictionaryObject.filePath?.[String(projectId)],\n } as unknown as DictionaryAPI;\n};\n"],"mappings":"AAEA,SAAS,mCAAmC;AAUrC,MAAM,qBAAqB,CAChC,YACA,WACA,YACkB;AAClB,QAAM,mBAAmB,4BAAwC,UAAU;AAE3E,MAAI,kBAAkB;AAEtB,MAAI,CAAC,iBAAiB;AACpB,UAAM,cAAc,CAAC,GAAI,iBAAiB,QAAQ,KAAK,KAAK,CAAC,CAAE;AAC/D,UAAM,cAAc,YAAY,YAAY,SAAS,CAAC;AACtD,sBAAkB;AAAA,EACpB;AAEA,QAAM,UACH,iBAAiB,QAAQ,IAAI,eAAe,GACzC,WAAwC;AAE9C,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA,UAAU,iBAAiB,WAAW,OAAO,SAAS,CAAC;AAAA,EACzD;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/utils/mapper/dictionary.ts"],"sourcesContent":["import type { Dictionary, DictionaryAPI } from '@/types/dictionary.types';\nimport { ensureMongoDocumentToObject } from '@utils/ensureMongoDocumentToObject';\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 version?: string\n): DictionaryAPI => {\n const dictionaryObject = ensureMongoDocumentToObject<Dictionary>(dictionary);\n\n let versionList = [...(dictionaryObject.content.keys() ?? [])];\n let returnedVersion = version;\n\n if (!returnedVersion) {\n const lastVersion = versionList[versionList.length - 1];\n returnedVersion = lastVersion;\n }\n\n const content =\n (dictionaryObject.content.get(returnedVersion)\n ?.content as DictionaryAPI['content']) ?? null;\n\n return {\n ...dictionaryObject,\n content,\n version: returnedVersion,\n versionList,\n } as unknown as DictionaryAPI;\n};\n"],"mappings":"AACA,SAAS,mCAAmC;AAUrC,MAAM,qBAAqB,CAChC,YACA,YACkB;AAClB,QAAM,mBAAmB,4BAAwC,UAAU;AAE3E,MAAI,cAAc,CAAC,GAAI,iBAAiB,QAAQ,KAAK,KAAK,CAAC,CAAE;AAC7D,MAAI,kBAAkB;AAEtB,MAAI,CAAC,iBAAiB;AACpB,UAAM,cAAc,YAAY,YAAY,SAAS,CAAC;AACtD,sBAAkB;AAAA,EACpB;AAEA,QAAM,UACH,iBAAiB,QAAQ,IAAI,eAAe,GACzC,WAAwC;AAE9C,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA,SAAS;AAAA,IACT;AAAA,EACF;AACF;","names":[]}
@@ -1,4 +1,4 @@
1
- import rateLimit from "express-rate-limit";
1
+ import rateLimit, { ipKeyGenerator } from "express-rate-limit";
2
2
  import { ErrorHandler } from "./errors/index.mjs";
3
3
  const ipLimiter = rateLimit({
4
4
  windowMs: 60 * 1e3,
@@ -9,7 +9,7 @@ const ipLimiter = rateLimit({
9
9
  legacyHeaders: false,
10
10
  // Use a custom key generator that handles proxy headers securely
11
11
  keyGenerator: (req) => {
12
- return req.ip ?? req.socket?.remoteAddress ?? "unknown";
12
+ return ipKeyGenerator(req.ip ?? req.socket?.remoteAddress ?? "unknown");
13
13
  },
14
14
  handler: (req, res, _next) => {
15
15
  const { limit, remaining, resetTime } = req.rateLimit;
@@ -31,7 +31,7 @@ const unauthenticatedChatBotLimiter = rateLimit({
31
31
  legacyHeaders: false,
32
32
  // Use a custom key generator that handles proxy headers securely
33
33
  keyGenerator: (req) => {
34
- return req.ip ?? req.socket?.remoteAddress ?? "unknown";
34
+ return ipKeyGenerator(req.ip ?? req.socket?.remoteAddress ?? "unknown");
35
35
  },
36
36
  handler: (req, res) => {
37
37
  const { limit, remaining, resetTime } = req.rateLimit;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/rateLimiter.ts"],"sourcesContent":["import type { NextFunction, Request, Response } from 'express';\nimport rateLimit from 'express-rate-limit';\nimport { ErrorHandler } from './errors';\n\n// -------------------------------------------------------------\n// Create the rate-limiter instances once at module load-time so\n// that the hit counters are shared across every incoming request.\n// -------------------------------------------------------------\n\nexport const ipLimiter: (\n req: Request,\n res: Response,\n next: NextFunction\n) => unknown = rateLimit({\n windowMs: 60 * 1000, // 1-minute window\n limit: 500, // 500 requests / IP / window\n standardHeaders: 'draft-8',\n legacyHeaders: false,\n // Use a custom key generator that handles proxy headers securely\n keyGenerator: (req) => {\n // Use the real IP address, falling back to socket remote address\n return req.ip ?? req.socket?.remoteAddress ?? 'unknown';\n },\n handler: (req, res, _next) => {\n const { limit, remaining, resetTime } = (req as any).rateLimit;\n\n ErrorHandler.handleGenericErrorResponse(res, 'RATE_LIMIT_EXCEEDED', {\n limit: `${limit} per minute`,\n retryAfter: Math.ceil((resetTime!.getTime() - Date.now()) / 1000),\n remaining,\n });\n },\n});\n\nexport const unauthenticatedChatBotLimiter: (\n req: Request,\n res: Response,\n next: NextFunction\n) => any = rateLimit({\n windowMs: 60 * 60 * 1000, // 1-hour window\n limit: 3, // 3 requests / IP / window\n standardHeaders: 'draft-8',\n skip: (_req, res) => Boolean(res.locals.user), // authenticated? then skip\n legacyHeaders: false,\n // Use a custom key generator that handles proxy headers securely\n keyGenerator: (req) => {\n // Use the real IP address, falling back to socket remote address\n return req.ip ?? req.socket?.remoteAddress ?? 'unknown';\n },\n handler: (req, res) => {\n const { limit, remaining, resetTime } = (req as any).rateLimit;\n\n ErrorHandler.handleGenericErrorResponse(\n res,\n 'RATE_LIMIT_EXCEEDED_UNAUTHENTICATED',\n {\n limit: `${limit} per hour`,\n retryAfter: Math.ceil((resetTime!.getTime() - Date.now()) / 1000),\n remaining,\n }\n );\n },\n});\n"],"mappings":"AACA,OAAO,eAAe;AACtB,SAAS,oBAAoB;AAOtB,MAAM,YAIE,UAAU;AAAA,EACvB,UAAU,KAAK;AAAA;AAAA,EACf,OAAO;AAAA;AAAA,EACP,iBAAiB;AAAA,EACjB,eAAe;AAAA;AAAA,EAEf,cAAc,CAAC,QAAQ;AAErB,WAAO,IAAI,MAAM,IAAI,QAAQ,iBAAiB;AAAA,EAChD;AAAA,EACA,SAAS,CAAC,KAAK,KAAK,UAAU;AAC5B,UAAM,EAAE,OAAO,WAAW,UAAU,IAAK,IAAY;AAErD,iBAAa,2BAA2B,KAAK,uBAAuB;AAAA,MAClE,OAAO,GAAG,KAAK;AAAA,MACf,YAAY,KAAK,MAAM,UAAW,QAAQ,IAAI,KAAK,IAAI,KAAK,GAAI;AAAA,MAChE;AAAA,IACF,CAAC;AAAA,EACH;AACF,CAAC;AAEM,MAAM,gCAIF,UAAU;AAAA,EACnB,UAAU,KAAK,KAAK;AAAA;AAAA,EACpB,OAAO;AAAA;AAAA,EACP,iBAAiB;AAAA,EACjB,MAAM,CAAC,MAAM,QAAQ,QAAQ,IAAI,OAAO,IAAI;AAAA;AAAA,EAC5C,eAAe;AAAA;AAAA,EAEf,cAAc,CAAC,QAAQ;AAErB,WAAO,IAAI,MAAM,IAAI,QAAQ,iBAAiB;AAAA,EAChD;AAAA,EACA,SAAS,CAAC,KAAK,QAAQ;AACrB,UAAM,EAAE,OAAO,WAAW,UAAU,IAAK,IAAY;AAErD,iBAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,QACE,OAAO,GAAG,KAAK;AAAA,QACf,YAAY,KAAK,MAAM,UAAW,QAAQ,IAAI,KAAK,IAAI,KAAK,GAAI;AAAA,QAChE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../src/utils/rateLimiter.ts"],"sourcesContent":["import type { NextFunction, Request, Response } from 'express';\nimport rateLimit, { ipKeyGenerator } from 'express-rate-limit';\nimport { ErrorHandler } from './errors';\n\n// -------------------------------------------------------------\n// Create the rate-limiter instances once at module load-time so\n// that the hit counters are shared across every incoming request.\n// -------------------------------------------------------------\n\nexport const ipLimiter: (\n req: Request,\n res: Response,\n next: NextFunction\n) => unknown = rateLimit({\n windowMs: 60 * 1000, // 1-minute window\n limit: 500, // 500 requests / IP / window\n standardHeaders: 'draft-8',\n legacyHeaders: false,\n // Use a custom key generator that handles proxy headers securely\n keyGenerator: (req) => {\n // Normalize IPv6 to subnet using helper to avoid bypasses\n return ipKeyGenerator(req.ip ?? req.socket?.remoteAddress ?? 'unknown');\n },\n handler: (req, res, _next) => {\n const { limit, remaining, resetTime } = (req as any).rateLimit;\n\n ErrorHandler.handleGenericErrorResponse(res, 'RATE_LIMIT_EXCEEDED', {\n limit: `${limit} per minute`,\n retryAfter: Math.ceil((resetTime!.getTime() - Date.now()) / 1000),\n remaining,\n });\n },\n});\n\nexport const unauthenticatedChatBotLimiter: (\n req: Request,\n res: Response,\n next: NextFunction\n) => any = rateLimit({\n windowMs: 60 * 60 * 1000, // 1-hour window\n limit: 3, // 3 requests / IP / window\n standardHeaders: 'draft-8',\n skip: (_req, res) => Boolean(res.locals.user), // authenticated? then skip\n legacyHeaders: false,\n // Use a custom key generator that handles proxy headers securely\n keyGenerator: (req) => {\n // Normalize IPv6 to subnet using helper to avoid bypasses\n return ipKeyGenerator(req.ip ?? req.socket?.remoteAddress ?? 'unknown');\n },\n handler: (req, res) => {\n const { limit, remaining, resetTime } = (req as any).rateLimit;\n\n ErrorHandler.handleGenericErrorResponse(\n res,\n 'RATE_LIMIT_EXCEEDED_UNAUTHENTICATED',\n {\n limit: `${limit} per hour`,\n retryAfter: Math.ceil((resetTime!.getTime() - Date.now()) / 1000),\n remaining,\n }\n );\n },\n});\n"],"mappings":"AACA,OAAO,aAAa,sBAAsB;AAC1C,SAAS,oBAAoB;AAOtB,MAAM,YAIE,UAAU;AAAA,EACvB,UAAU,KAAK;AAAA;AAAA,EACf,OAAO;AAAA;AAAA,EACP,iBAAiB;AAAA,EACjB,eAAe;AAAA;AAAA,EAEf,cAAc,CAAC,QAAQ;AAErB,WAAO,eAAe,IAAI,MAAM,IAAI,QAAQ,iBAAiB,SAAS;AAAA,EACxE;AAAA,EACA,SAAS,CAAC,KAAK,KAAK,UAAU;AAC5B,UAAM,EAAE,OAAO,WAAW,UAAU,IAAK,IAAY;AAErD,iBAAa,2BAA2B,KAAK,uBAAuB;AAAA,MAClE,OAAO,GAAG,KAAK;AAAA,MACf,YAAY,KAAK,MAAM,UAAW,QAAQ,IAAI,KAAK,IAAI,KAAK,GAAI;AAAA,MAChE;AAAA,IACF,CAAC;AAAA,EACH;AACF,CAAC;AAEM,MAAM,gCAIF,UAAU;AAAA,EACnB,UAAU,KAAK,KAAK;AAAA;AAAA,EACpB,OAAO;AAAA;AAAA,EACP,iBAAiB;AAAA,EACjB,MAAM,CAAC,MAAM,QAAQ,QAAQ,IAAI,OAAO,IAAI;AAAA;AAAA,EAC5C,eAAe;AAAA;AAAA,EAEf,cAAc,CAAC,QAAQ;AAErB,WAAO,eAAe,IAAI,MAAM,IAAI,QAAQ,iBAAiB,SAAS;AAAA,EACxE;AAAA,EACA,SAAS,CAAC,KAAK,QAAQ;AACrB,UAAM,EAAE,OAAO,WAAW,UAAU,IAAK,IAAY;AAErD,iBAAa;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,QACE,OAAO,GAAG,KAAK;AAAA,QACf,YAAY,KAAK,MAAM,UAAW,QAAQ,IAAI,KAAK,IAAI,KAAK,GAAI;AAAA,QAChE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;","names":[]}
@@ -4,11 +4,12 @@ const defaultFieldsToCheck = ["projectIds"];
4
4
  const validateDictionary = async (dictionary, fieldsToCheck = defaultFieldsToCheck) => {
5
5
  const errors = {};
6
6
  const fieldsToValidate = new Set(fieldsToCheck);
7
+ const dictionaryJSON = JSON.parse(JSON.stringify(dictionary));
7
8
  const projects = await findProjects({
8
9
  _id: dictionary.projectIds
9
10
  });
10
11
  for (const field of fieldsToValidate) {
11
- const value = dictionary[field];
12
+ const value = dictionaryJSON[field];
12
13
  errors[field] = [];
13
14
  if (field === "projectIds") {
14
15
  const projectsErrors = validateArray(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/utils/validation/validateDictionary.ts"],"sourcesContent":["import { findProjects } from '@services/project.service';\nimport { validateArray } from './validateArray';\nimport type { Dictionary } from '@/types/dictionary.types';\n\nexport type DictionaryFields = (keyof Dictionary)[];\n\nconst defaultFieldsToCheck: DictionaryFields = ['projectIds'];\n\ntype FieldsToCheck = (typeof defaultFieldsToCheck)[number];\ntype ValidationErrors = Partial<\n Record<(typeof defaultFieldsToCheck)[number], string[]>\n>;\n\n/**\n * Validates an dictionary object.\n * @param dictionary The dictionary object to validate.\n * @returns An object containing the validation errors for each field.\n */\nexport const validateDictionary = async (\n dictionary: Partial<Dictionary>,\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 const projects = await findProjects({\n _id: dictionary.projectIds as unknown as string[],\n });\n\n // Validate each field\n for (const field of fieldsToValidate) {\n const value = dictionary[field];\n\n // Initialize error array for the field\n errors[field] = [];\n\n if (field === 'projectIds') {\n const projectsErrors = validateArray<string>(\n value as unknown as string[],\n 'Project',\n 'string',\n (value) => {\n const projectErrors: string[] = [];\n\n if (typeof value !== 'string') {\n projectErrors.push('Project id must be a string');\n }\n\n if (!value) {\n projectErrors.push('Project id is required');\n }\n\n if (!projects) {\n projectErrors.push('Project not found');\n }\n\n return projectsErrors;\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,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAK9B,MAAM,uBAAyC,CAAC,YAAY;AAYrD,MAAM,qBAAqB,OAChC,YACA,gBAAgB,yBACc;AAC9B,QAAM,SAA2B,CAAC;AAGlC,QAAM,mBAAmB,IAAI,IAAmB,aAAa;AAE7D,QAAM,WAAW,MAAM,aAAa;AAAA,IAClC,KAAK,WAAW;AAAA,EAClB,CAAC;AAGD,aAAW,SAAS,kBAAkB;AACpC,UAAM,QAAQ,WAAW,KAAK;AAG9B,WAAO,KAAK,IAAI,CAAC;AAEjB,QAAI,UAAU,cAAc;AAC1B,YAAM,iBAAiB;AAAA,QACrB;AAAA,QACA;AAAA,QACA;AAAA,QACA,CAACA,WAAU;AACT,gBAAM,gBAA0B,CAAC;AAEjC,cAAI,OAAOA,WAAU,UAAU;AAC7B,0BAAc,KAAK,6BAA6B;AAAA,UAClD;AAEA,cAAI,CAACA,QAAO;AACV,0BAAc,KAAK,wBAAwB;AAAA,UAC7C;AAEA,cAAI,CAAC,UAAU;AACb,0BAAc,KAAK,mBAAmB;AAAA,UACxC;AAEA,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAGA,QAAI,OAAO,KAAK,EAAE,WAAW,GAAG;AAC9B,aAAO,OAAO,KAAK;AAAA,IACrB;AAAA,EACF;AAEA,SAAO;AACT;","names":["value"]}
1
+ {"version":3,"sources":["../../../../src/utils/validation/validateDictionary.ts"],"sourcesContent":["import type { Dictionary } from '@/types/dictionary.types';\nimport { findProjects } from '@services/project.service';\nimport { validateArray } from './validateArray';\n\nexport type DictionaryFields = (keyof Dictionary)[];\n\nconst defaultFieldsToCheck: DictionaryFields = ['projectIds'];\n\ntype FieldsToCheck = (typeof defaultFieldsToCheck)[number];\ntype ValidationErrors = Partial<\n Record<(typeof defaultFieldsToCheck)[number], string[]>\n>;\n\n/**\n * Validates an dictionary object.\n * @param dictionary The dictionary object to validate.\n * @returns An object containing the validation errors for each field.\n */\nexport const validateDictionary = async (\n dictionary: Partial<Dictionary>,\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 const dictionaryJSON = JSON.parse(JSON.stringify(dictionary));\n\n const projects = await findProjects({\n _id: dictionary.projectIds as unknown as string[],\n });\n\n // Validate each field\n for (const field of fieldsToValidate) {\n const value = dictionaryJSON[field];\n\n // Initialize error array for the field\n errors[field] = [];\n\n if (field === 'projectIds') {\n const projectsErrors: string[] = validateArray<string>(\n value as unknown as string[],\n 'Project',\n 'string',\n (value) => {\n const projectErrors: string[] = [];\n\n if (typeof value !== 'string') {\n projectErrors.push('Project id must be a string');\n }\n\n if (!value) {\n projectErrors.push('Project id is required');\n }\n\n if (!projects) {\n projectErrors.push('Project not found');\n }\n\n return projectsErrors;\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":"AACA,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAI9B,MAAM,uBAAyC,CAAC,YAAY;AAYrD,MAAM,qBAAqB,OAChC,YACA,gBAAgB,yBACc;AAC9B,QAAM,SAA2B,CAAC;AAGlC,QAAM,mBAAmB,IAAI,IAAmB,aAAa;AAE7D,QAAM,iBAAiB,KAAK,MAAM,KAAK,UAAU,UAAU,CAAC;AAE5D,QAAM,WAAW,MAAM,aAAa;AAAA,IAClC,KAAK,WAAW;AAAA,EAClB,CAAC;AAGD,aAAW,SAAS,kBAAkB;AACpC,UAAM,QAAQ,eAAe,KAAK;AAGlC,WAAO,KAAK,IAAI,CAAC;AAEjB,QAAI,UAAU,cAAc;AAC1B,YAAM,iBAA2B;AAAA,QAC/B;AAAA,QACA;AAAA,QACA;AAAA,QACA,CAACA,WAAU;AACT,gBAAM,gBAA0B,CAAC;AAEjC,cAAI,OAAOA,WAAU,UAAU;AAC7B,0BAAc,KAAK,6BAA6B;AAAA,UAClD;AAEA,cAAI,CAACA,QAAO;AACV,0BAAc,KAAK,wBAAwB;AAAA,UAC7C;AAEA,cAAI,CAAC,UAAU;AACb,0BAAc,KAAK,mBAAmB;AAAA,UACxC;AAEA,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAGA,QAAI,OAAO,KAAK,EAAE,WAAW,GAAG;AAC9B,aAAO,OAAO,KAAK;AAAA,IACrB;AAAA,EACF;AAEA,SAAO;AACT;","names":["value"]}
@@ -13,8 +13,9 @@ const MEMBERS_MIN_LENGTH = 1;
13
13
  const validateProject = async (project, fieldsToCheck = defaultFieldsToCheck) => {
14
14
  const errors = {};
15
15
  const fieldsToValidate = new Set(fieldsToCheck);
16
+ const projectJson = JSON.parse(JSON.stringify(project));
16
17
  for (const field of fieldsToValidate) {
17
- const value = project[field];
18
+ const value = projectJson[field];
18
19
  errors[field] = [];
19
20
  if (field === "name") {
20
21
  const nameErrors = validateString(
@@ -1 +1 @@
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,SAAS,2BAA2B;AACpC,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;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,aAAa;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,MAAM,oBAAoB,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,MAAM,oBAAoB,QAAQ,cAAc;AACrE,cAAM,gBAAgB;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":[]}
1
+ {"version":3,"sources":["../../../../src/utils/validation/validateProject.ts"],"sourcesContent":["import type { Project, ProjectAPI } from '@/types/project.types';\nimport { getOrganizationById } from '@services/organization.service';\nimport { validateArray } from './validateArray';\nimport { validateString } from './validateString';\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 | ProjectAPI>,\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 const projectJson = JSON.parse(JSON.stringify(project));\n\n // Validate each field\n for (const field of fieldsToValidate) {\n const value = projectJson[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":"AACA,SAAS,2BAA2B;AACpC,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAI/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;AAE7D,QAAM,cAAc,KAAK,MAAM,KAAK,UAAU,OAAO,CAAC;AAGtD,aAAW,SAAS,kBAAkB;AACpC,UAAM,QAAQ,YAAY,KAAK;AAG/B,WAAO,KAAK,IAAI,CAAC;AAGjB,QAAI,UAAU,QAAQ;AACpB,YAAM,aAAa;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,MAAM,oBAAoB,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,MAAM,oBAAoB,QAAQ,cAAc;AACrE,cAAM,gBAAgB;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":[]}
@@ -4,11 +4,12 @@ import { validateString } from "./validateString.mjs";
4
4
  const defaultFieldsToCheck = ["name", "phone", "email", "phone"];
5
5
  const NAMES_MIN_LENGTH = 4;
6
6
  const NAMES_MAX_LENGTH = 100;
7
- const validateUser = (project, fieldsToCheck = defaultFieldsToCheck) => {
7
+ const validateUser = (user, fieldsToCheck = defaultFieldsToCheck) => {
8
8
  const errors = {};
9
9
  const fieldsToValidate = new Set(fieldsToCheck);
10
+ const userJson = JSON.parse(JSON.stringify(user));
10
11
  for (const field of fieldsToValidate) {
11
- const value = project[field];
12
+ const value = userJson[field];
12
13
  errors[field] = [];
13
14
  if (field === "name") {
14
15
  const nameErrors = validateString(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/utils/validation/validateUser.ts"],"sourcesContent":["/* eslint-disable sonarjs/cognitive-complexity */\nimport { validateEmail } from './validateEmail';\nimport { validatePhone } from './validatePhone';\nimport { validateString } from './validateString';\nimport type { User } from '@/types/user.types';\n\nexport type UserFields = (keyof User)[];\n\nconst defaultFieldsToCheck: UserFields = ['name', 'phone', 'email', 'phone'];\n\nexport type FieldsToCheck = (typeof defaultFieldsToCheck)[number];\ntype ValidationErrors = Partial<\n Record<(typeof defaultFieldsToCheck)[number], string[]>\n>;\nexport const NAMES_MIN_LENGTH = 4;\nexport const NAMES_MAX_LENGTH = 100;\n\n/**\n * Validates an user object.\n * @param user The user object to validate.\n * @returns An object containing the validation errors for each field.\n */\nexport const validateUser = (\n project: Partial<User>,\n fieldsToCheck = defaultFieldsToCheck\n): 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 `User ${field}`,\n NAMES_MIN_LENGTH,\n NAMES_MAX_LENGTH\n );\n\n if (nameErrors.length > 0) {\n errors[field] = nameErrors;\n }\n }\n\n // Check for email validity\n if (field === 'email') {\n const emailErrors = validateEmail(value, 'User Email');\n\n if (emailErrors.length > 0) {\n errors[field] = emailErrors;\n }\n }\n\n if (field === 'phone') {\n const phoneErrors = validatePhone(value, 'User Phone', 8, 20);\n\n if (phoneErrors.length > 0) {\n errors[field] = phoneErrors;\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":"AACA,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAK/B,MAAM,uBAAmC,CAAC,QAAQ,SAAS,SAAS,OAAO;AAMpE,MAAM,mBAAmB;AACzB,MAAM,mBAAmB;AAOzB,MAAM,eAAe,CAC1B,SACA,gBAAgB,yBACK;AACrB,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,aAAa;AAAA,QACjB;AAAA,QACA,QAAQ,KAAK;AAAA,QACb;AAAA,QACA;AAAA,MACF;AAEA,UAAI,WAAW,SAAS,GAAG;AACzB,eAAO,KAAK,IAAI;AAAA,MAClB;AAAA,IACF;AAGA,QAAI,UAAU,SAAS;AACrB,YAAM,cAAc,cAAc,OAAO,YAAY;AAErD,UAAI,YAAY,SAAS,GAAG;AAC1B,eAAO,KAAK,IAAI;AAAA,MAClB;AAAA,IACF;AAEA,QAAI,UAAU,SAAS;AACrB,YAAM,cAAc,cAAc,OAAO,cAAc,GAAG,EAAE;AAE5D,UAAI,YAAY,SAAS,GAAG;AAC1B,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":[]}
1
+ {"version":3,"sources":["../../../../src/utils/validation/validateUser.ts"],"sourcesContent":["import type { User, UserAPI } from '@/types/user.types';\nimport { validateEmail } from './validateEmail';\nimport { validatePhone } from './validatePhone';\nimport { validateString } from './validateString';\n\nexport type UserFields = (keyof User)[];\n\nconst defaultFieldsToCheck: UserFields = ['name', 'phone', 'email', 'phone'];\n\nexport type FieldsToCheck = (typeof defaultFieldsToCheck)[number];\ntype ValidationErrors = Partial<\n Record<(typeof defaultFieldsToCheck)[number], string[]>\n>;\nexport const NAMES_MIN_LENGTH = 4;\nexport const NAMES_MAX_LENGTH = 100;\n\n/**\n * Validates an user object.\n * @param user The user object to validate.\n * @returns An object containing the validation errors for each field.\n */\nexport const validateUser = (\n user: Partial<User | UserAPI>,\n fieldsToCheck = defaultFieldsToCheck\n): ValidationErrors => {\n const errors: ValidationErrors = {};\n\n // Define the fields to validate\n const fieldsToValidate = new Set<FieldsToCheck>(fieldsToCheck);\n\n const userJson = JSON.parse(JSON.stringify(user));\n\n // Validate each field\n for (const field of fieldsToValidate) {\n const value = userJson[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 `User ${field}`,\n NAMES_MIN_LENGTH,\n NAMES_MAX_LENGTH\n );\n\n if (nameErrors.length > 0) {\n errors[field] = nameErrors;\n }\n }\n\n // Check for email validity\n if (field === 'email') {\n const emailErrors = validateEmail(value, 'User Email');\n\n if (emailErrors.length > 0) {\n errors[field] = emailErrors;\n }\n }\n\n if (field === 'phone') {\n const phoneErrors = validatePhone(value, 'User Phone', 8, 20);\n\n if (phoneErrors.length > 0) {\n errors[field] = phoneErrors;\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":"AACA,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAI/B,MAAM,uBAAmC,CAAC,QAAQ,SAAS,SAAS,OAAO;AAMpE,MAAM,mBAAmB;AACzB,MAAM,mBAAmB;AAOzB,MAAM,eAAe,CAC1B,MACA,gBAAgB,yBACK;AACrB,QAAM,SAA2B,CAAC;AAGlC,QAAM,mBAAmB,IAAI,IAAmB,aAAa;AAE7D,QAAM,WAAW,KAAK,MAAM,KAAK,UAAU,IAAI,CAAC;AAGhD,aAAW,SAAS,kBAAkB;AACpC,UAAM,QAAQ,SAAS,KAAK;AAG5B,WAAO,KAAK,IAAI,CAAC;AAGjB,QAAI,UAAU,QAAQ;AACpB,YAAM,aAAa;AAAA,QACjB;AAAA,QACA,QAAQ,KAAK;AAAA,QACb;AAAA,QACA;AAAA,MACF;AAEA,UAAI,WAAW,SAAS,GAAG;AACzB,eAAO,KAAK,IAAI;AAAA,MAClB;AAAA,IACF;AAGA,QAAI,UAAU,SAAS;AACrB,YAAM,cAAc,cAAc,OAAO,YAAY;AAErD,UAAI,YAAY,SAAS,GAAG;AAC1B,eAAO,KAAK,IAAI;AAAA,MAClB;AAAA,IACF;AAEA,QAAI,UAAU,SAAS;AACrB,YAAM,cAAc,cAAc,OAAO,cAAc,GAAG,EAAE;AAE5D,UAAI,YAAY,SAAS,GAAG;AAC1B,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":[]}
@@ -16,6 +16,11 @@ export type GetDictionariesKeysResult = ResponseData<string[]>;
16
16
  * Retrieves a list of dictionaries keys based on filters and pagination.
17
17
  */
18
18
  export declare const getDictionariesKeys: (_req: Request, res: ResponseWithSession<GetDictionariesKeysResult>, _next: NextFunction) => Promise<void>;
19
+ export type GetDictionariesUpdateTimestampResult = ResponseData<Record<string, number>>;
20
+ /**
21
+ * Retrieves a list of dictionaries keys based on filters and pagination.
22
+ */
23
+ export declare const getDictionariesUpdateTimestamp: (_req: Request, res: ResponseWithSession<GetDictionariesUpdateTimestampResult>, _next: NextFunction) => Promise<void>;
19
24
  export type GetDictionaryParams = {
20
25
  dictionaryKey: string;
21
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/dictionary.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,aAAa,EACb,sBAAsB,EAGvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAEV,UAAU,IAAI,eAAe,EAC9B,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAI/E,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,+DAA+D,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6DAA6D,CAAC;AAGxG,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGrD,MAAM,MAAM,qBAAqB,GAC/B,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;AAChD,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,KAAK,OAAO,CAAC,qBAAqB,CAAC,EACnC,KAAK,mBAAmB,CAAC,qBAAqB,CAAC,EAC/C,OAAO,YAAY,KAClB,OAAO,CAAC,IAAI,CA0Dd,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,OAAO,EACb,KAAK,mBAAmB,CAAC,yBAAyB,CAAC,EACnD,OAAO,YAAY,kBAuCpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC;AAC5D,MAAM,MAAM,kBAAkB,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACtD,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,KAAK,OAAO,CAAC,mBAAmB,EAAE,GAAG,EAAE,GAAG,EAAE,kBAAkB,CAAC,EAC/D,KAAK,mBAAmB,CAAC,mBAAmB,CAAC,EAC7C,OAAO,YAAY,KAClB,OAAO,CAAC,IAAI,CAqDd,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAAE,UAAU,EAAE,sBAAsB,CAAA;CAAE,CAAC;AACvE,MAAM,MAAM,mBAAmB,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,aAAa,GACxB,KAAK,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,EACzC,KAAK,mBAAmB,CAAC,mBAAmB,CAAC,EAC7C,OAAO,YAAY,KAClB,OAAO,CAAC,IAAI,CA2Ed,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,EAAE,eAAe,EAAE,CAAC;CACjC,CAAC;AACF,KAAK,0BAA0B,GAAG;IAChC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACpD,CAAC;AACF,MAAM,MAAM,sBAAsB,GAAG,YAAY,CAAC,0BAA0B,CAAC,CAAC;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,KAAK,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,oBAAoB,CAAC,EAC5C,KAAK,mBAAmB,CAAC,sBAAsB,CAAC,EAChD,OAAO,YAAY,KAClB,OAAO,CAAC,IAAI,CA6Ld,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7D,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACvD,MAAM,MAAM,sBAAsB,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,KAAK,OAAO,CAAC,qBAAqB,EAAE,GAAG,EAAE,oBAAoB,CAAC,EAC9D,KAAK,mBAAmB,CAAC,sBAAsB,CAAC,EAChD,OAAO,YAAY,KAClB,OAAO,CAAC,IAAI,CAiEd,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7D,MAAM,MAAM,sBAAsB,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC3B,KAAK,OAAO,CAAC,qBAAqB,CAAC,EACnC,KAAK,mBAAmB,CAAC,sBAAsB,CAAC,EAChD,OAAO,YAAY,KAClB,OAAO,CAAC,IAAI,CAyEd,CAAC"}
1
+ {"version":3,"file":"dictionary.controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/dictionary.controller.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"eventListener.controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/eventListener.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,MAAM,MAAM,MAAM,GAAG,YAAY,CAAC;AAClC,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAKF,MAAM,MAAM,uBAAuB,GAAG;IACpC,UAAU,EAAE,aAAa,CAAC;IAC1B,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CACrD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,MAAM,uBAAuB,EAAE,SAmBnE,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,KAAK,OAAO,CAAC,8BAA8B,EAAE,GAAG,EAAE,GAAG,CAAC,EACtD,KAAK,QAAQ,kBA0Cd,CAAC"}
1
+ {"version":3,"file":"eventListener.controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/eventListener.controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,MAAM,MAAM,MAAM,GAAG,YAAY,CAAC;AAClC,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAKF,MAAM,MAAM,uBAAuB,GAAG;IACpC,UAAU,EAAE,aAAa,CAAC;IAC1B,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CACrD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,MAAM,uBAAuB,EAAE,SAmBnE,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,eAAe,GAC1B,KAAK,OAAO,CAAC,8BAA8B,EAAE,GAAG,EAAE,GAAG,CAAC,EACtD,KAAK,QAAQ,kBAqCd,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Project, ProjectAPI, ProjectConfiguration, ProjectCreationData } from '../types/project.types';
1
+ import type { ProjectAPI, ProjectConfiguration, ProjectCreationData } from '../types/project.types';
2
2
  import type { ResponseWithSession } from '../middlewares/sessionAuth.middleware';
3
3
  import type { FiltersAndPagination } from '../utils/filtersAndPagination/getFiltersAndPaginationFromBody';
4
4
  import { type ProjectFiltersParams } from '../utils/filtersAndPagination/getProjectFiltersAndPagination';
@@ -17,7 +17,7 @@ export type AddProjectResult = ResponseData<ProjectAPI>;
17
17
  * Adds a new project to the database.
18
18
  */
19
19
  export declare const addProject: (req: Request<any, any, AddProjectBody>, res: ResponseWithSession<AddProjectResult>, _next: NextFunction) => Promise<void>;
20
- export type UpdateProjectBody = Partial<Project>;
20
+ export type UpdateProjectBody = Partial<ProjectAPI>;
21
21
  export type UpdateProjectResult = ResponseData<ProjectAPI>;
22
22
  /**
23
23
  * Updates an existing project in the database.
@@ -1 +1 @@
1
- {"version":3,"file":"project.controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/project.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/project.controller.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ export type GetUsersResult = PaginatedResponse<UserAPI>;
20
20
  */
21
21
  export declare const getUsers: (req: Request<GetUsersParams>, res: ResponseWithSession<GetUsersResult>, _next: NextFunction) => Promise<void>;
22
22
  export type GetUserByIdParams = {
23
- userId: string;
23
+ userId: UserAPI['id'];
24
24
  };
25
25
  export type GetUserByIdResult = ResponseData<UserAPI>;
26
26
  export declare const getUserById: (req: Request<GetUserByIdParams>, res: ResponseWithSession<GetUserByIdResult>, _next: NextFunction) => Promise<void>;
@@ -29,7 +29,7 @@ export type GetUserByEmailParams = {
29
29
  };
30
30
  export type GetUserByEmailResult = ResponseData<UserAPI>;
31
31
  export declare const getUserByEmail: (req: Request<GetUserByEmailParams>, res: ResponseWithSession<GetUserByEmailResult>, _next: NextFunction) => Promise<void>;
32
- export type UpdateUserBody = Partial<User>;
32
+ export type UpdateUserBody = Partial<UserAPI>;
33
33
  export type UpdateUserResult = ResponseData<UserAPI>;
34
34
  /**
35
35
  * Updates user information (phone number, date of birth).
@@ -1 +1 @@
1
- {"version":3,"file":"user.controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/user.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/user.controller.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,11 @@ export declare const getDictionaryRoutes: () => {
12
12
  url: string;
13
13
  method: "GET";
14
14
  };
15
+ getDictionariesUpdateTimestamp: {
16
+ urlModel: string;
17
+ url: string;
18
+ method: "GET";
19
+ };
15
20
  getDictionary: {
16
21
  urlModel: string;
17
22
  url: ({ dictionaryKey }: {
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.routes.d.ts","sourceRoot":"","sources":["../../../src/routes/dictionary.routes.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,eAAO,MAAM,gBAAgB,EAAE,MAAiB,CAAC;AAEjD,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAIjD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;iCAcD;YAAE,aAAa,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;gCAgB1B;YAAE,YAAY,EAAE,MAAM,CAAA;SAAE;;;;;gCAMxB;YAAE,YAAY,EAAE,MAAM,CAAA;SAAE;;;CAIjC,CAAC"}
1
+ {"version":3,"file":"dictionary.routes.d.ts","sourceRoot":"","sources":["../../../src/routes/dictionary.routes.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,eAAO,MAAM,gBAAgB,EAAE,MAAiB,CAAC;AAEjD,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAIjD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;iCAmBD;YAAE,aAAa,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;gCAgB1B;YAAE,YAAY,EAAE,MAAM,CAAA;SAAE;;;;;gCAMxB;YAAE,YAAY,EAAE,MAAM,CAAA;SAAE;;;CAIjC,CAAC"}
@@ -4,9 +4,7 @@ export declare const eventListenerRoute = "/api/event-listener";
4
4
  export declare const eventListenerRoutes: () => {
5
5
  checkDictionaryChangeSSE: {
6
6
  urlModel: string;
7
- url: ({ accessToken }: {
8
- accessToken: string;
9
- }) => string;
7
+ url: string;
10
8
  method: "GET";
11
9
  };
12
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"eventListener.routes.d.ts","sourceRoot":"","sources":["../../../src/routes/eventListener.routes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,eAAO,MAAM,mBAAmB,EAAE,MAAiB,CAAC;AAEpD,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AAIxD,eAAO,MAAM,mBAAmB;;;+BAIH;YAAE,WAAW,EAAE,MAAM,CAAA;SAAE;;;CAI/B,CAAC"}
1
+ {"version":3,"file":"eventListener.routes.d.ts","sourceRoot":"","sources":["../../../src/routes/eventListener.routes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,eAAO,MAAM,mBAAmB,EAAE,MAAiB,CAAC;AAEpD,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AAIxD,eAAO,MAAM,mBAAmB;;;;;;CAOX,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/dictionary.schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAEjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAoBlC,eAAO,MAAM,gBAAgB;;;;;;;;;;EA2D5B,CAAC"}
1
+ {"version":3,"file":"dictionary.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/dictionary.schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAEjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAoBlC,eAAO,MAAM,gBAAgB;;;;;;;;;;EAsD5B,CAAC"}
@@ -16,7 +16,7 @@ export declare const findDictionaries: (filters: DictionaryFilters, skip?: numbe
16
16
  * @returns The dictionary matching the ID.
17
17
  */
18
18
  /**
19
- * Finds a dictionary by its ID and includes the 'availableVersions' field.
19
+ * Finds a dictionary by its ID and includes the 'versions' field.
20
20
  * @param dictionaryId - The ID of the dictionary to find.
21
21
  * @returns The dictionary matching the ID with available versions.
22
22
  */
@@ -1,4 +1,4 @@
1
- import type { Project, ProjectData, ProjectDocument } from '../types/project.types';
1
+ import type { Project, ProjectAPI, ProjectData, ProjectDocument } from '../types/project.types';
2
2
  import type { ProjectFilters } from '../utils/filtersAndPagination/getProjectFiltersAndPagination';
3
3
  import type { Types } from 'mongoose';
4
4
  /**
@@ -33,7 +33,7 @@ export declare const createProject: (project: ProjectData) => Promise<ProjectDoc
33
33
  * @param project - The updated project data.
34
34
  * @returns The updated project.
35
35
  */
36
- export declare const updateProjectById: (projectId: string | Types.ObjectId, project: Partial<Project>) => Promise<ProjectDocument>;
36
+ export declare const updateProjectById: (projectId: string | Types.ObjectId, project: Partial<Project | ProjectAPI>) => Promise<ProjectDocument>;
37
37
  /**
38
38
  * Deletes a project from the database by its ID.
39
39
  * @param projectId - The ID of the project to delete.
@@ -1 +1 @@
1
- {"version":3,"file":"project.service.d.ts","sourceRoot":"","sources":["../../../src/services/project.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,WAAW,EACX,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4DAA4D,CAAC;AAMjG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GACvB,SAAS,cAAc,EACvB,aAAQ,EACR,cAAW,KACV,OAAO,CAAC,eAAe,EAAE,CAC8B,CAAC;AAE3D;;;;GAIG;AACH,eAAO,MAAM,cAAc,GACzB,WAAW,MAAM,GAAG,KAAK,CAAC,QAAQ,KACjC,OAAO,CAAC,eAAe,CAQzB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GACxB,SAAS,cAAc,KACtB,OAAO,CAAC,MAAM,CAQhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GACxB,SAAS,WAAW,KACnB,OAAO,CAAC,eAAe,CAYzB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,WAAW,MAAM,GAAG,KAAK,CAAC,QAAQ,EAClC,SAAS,OAAO,CAAC,OAAO,CAAC,KACxB,OAAO,CAAC,eAAe,CA6BzB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,WAAW,MAAM,GAAG,KAAK,CAAC,QAAQ,KACjC,OAAO,CAAC,eAAe,CAQzB,CAAC"}
1
+ {"version":3,"file":"project.service.d.ts","sourceRoot":"","sources":["../../../src/services/project.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,UAAU,EACV,WAAW,EACX,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4DAA4D,CAAC;AAMjG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GACvB,SAAS,cAAc,EACvB,aAAQ,EACR,cAAW,KACV,OAAO,CAAC,eAAe,EAAE,CAC8B,CAAC;AAE3D;;;;GAIG;AACH,eAAO,MAAM,cAAc,GACzB,WAAW,MAAM,GAAG,KAAK,CAAC,QAAQ,KACjC,OAAO,CAAC,eAAe,CAQzB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GACxB,SAAS,cAAc,KACtB,OAAO,CAAC,MAAM,CAQhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GACxB,SAAS,WAAW,KACnB,OAAO,CAAC,eAAe,CAYzB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,WAAW,MAAM,GAAG,KAAK,CAAC,QAAQ,EAClC,SAAS,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC,KACrC,OAAO,CAAC,eAAe,CA6BzB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,WAAW,MAAM,GAAG,KAAK,CAAC,QAAQ,KACjC,OAAO,CAAC,eAAe,CAQzB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { User, UserDocument } from '../types/user.types';
1
+ import type { User, UserAPI, UserDocument } from '../types/user.types';
2
2
  import type { UserFilters } from '../utils/filtersAndPagination/getUserFiltersAndPagination';
3
3
  import type { Types } from 'mongoose';
4
4
  /**
@@ -57,7 +57,7 @@ export declare const countUsers: (filters: UserFilters) => Promise<number>;
57
57
  * @param updates - The updates to apply to the user.
58
58
  * @returns The updated user.
59
59
  */
60
- export declare const updateUserById: (userId: string | Types.ObjectId, updates: Partial<User>) => Promise<UserDocument>;
60
+ export declare const updateUserById: (userId: string | Types.ObjectId, updates: Partial<UserAPI>) => Promise<UserDocument>;
61
61
  /**
62
62
  * Deletes a user from the database.
63
63
  * @param userId - The user object.
@@ -1 +1 @@
1
- {"version":3,"file":"user.service.d.ts","sourceRoot":"","sources":["../../../src/services/user.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yDAAyD,CAAC;AAM3F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC;;;;GAIG;AACH,eAAO,MAAM,UAAU,GACrB,MAAM,OAAO,CAAC,IAAI,CAAC,KAClB,OAAO,CAAC,YAAY,CAmBtB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,KACZ,OAAO,CAAC,YAAY,GAAG,IAAI,CAE7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,MAAM,EAAE,KACf,OAAO,CAAC,YAAY,EAAE,GAAG,IAAI,CAE/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAU,OAAO,MAAM,KAAG,OAAO,CAAC,OAAO,CAGpE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,GACtB,QAAQ,MAAM,GAAG,KAAK,CAAC,QAAQ,KAC9B,OAAO,CAAC,YAAY,GAAG,IAAI,CAAqC,CAAC;AAEpE;;;;GAIG;AACH,eAAO,MAAM,aAAa,GACxB,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,KACnC,OAAO,CAAC,YAAY,EAAE,GAAG,IAAI,CACiB,CAAC;AAElD;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GACpB,SAAS,WAAW,EACpB,MAAM,MAAM,EACZ,OAAO,MAAM,KACZ,OAAO,CAAC,YAAY,EAAE,CAExB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAU,SAAS,WAAW,KAAG,OAAO,CAAC,MAAM,CAQrE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GACzB,QAAQ,MAAM,GAAG,KAAK,CAAC,QAAQ,EAC/B,SAAS,OAAO,CAAC,IAAI,CAAC,KACrB,OAAO,CAAC,YAAY,CAwBtB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GACrB,QAAQ,MAAM,GAAG,KAAK,CAAC,QAAQ,KAC9B,OAAO,CAAC,YAAY,CAUtB,CAAC"}
1
+ {"version":3,"file":"user.service.d.ts","sourceRoot":"","sources":["../../../src/services/user.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yDAAyD,CAAC;AAM3F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC;;;;GAIG;AACH,eAAO,MAAM,UAAU,GACrB,MAAM,OAAO,CAAC,IAAI,CAAC,KAClB,OAAO,CAAC,YAAY,CAmBtB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,KACZ,OAAO,CAAC,YAAY,GAAG,IAAI,CAE7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,MAAM,EAAE,KACf,OAAO,CAAC,YAAY,EAAE,GAAG,IAAI,CAE/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAU,OAAO,MAAM,KAAG,OAAO,CAAC,OAAO,CAGpE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,GACtB,QAAQ,MAAM,GAAG,KAAK,CAAC,QAAQ,KAC9B,OAAO,CAAC,YAAY,GAAG,IAAI,CAAqC,CAAC;AAEpE;;;;GAIG;AACH,eAAO,MAAM,aAAa,GACxB,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,KACnC,OAAO,CAAC,YAAY,EAAE,GAAG,IAAI,CACiB,CAAC;AAElD;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GACpB,SAAS,WAAW,EACpB,MAAM,MAAM,EACZ,OAAO,MAAM,KACZ,OAAO,CAAC,YAAY,EAAE,CAExB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAU,SAAS,WAAW,KAAG,OAAO,CAAC,MAAM,CAQrE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GACzB,QAAQ,MAAM,GAAG,KAAK,CAAC,QAAQ,EAC/B,SAAS,OAAO,CAAC,OAAO,CAAC,KACxB,OAAO,CAAC,YAAY,CAwBtB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GACrB,QAAQ,MAAM,GAAG,KAAK,CAAC,QAAQ,KAC9B,OAAO,CAAC,YAAY,CAUtB,CAAC"}
@@ -9,8 +9,9 @@ export type DictionaryCreationData = {
9
9
  content?: ContentNode;
10
10
  title?: string;
11
11
  description?: string;
12
+ priority?: number;
13
+ live?: boolean;
12
14
  tags?: string[];
13
- filePath?: string;
14
15
  };
15
16
  export type VersionedContentEl = {
16
17
  name?: string;
@@ -26,8 +27,9 @@ export type DictionaryData = {
26
27
  creatorId: User['id'];
27
28
  title?: string;
28
29
  description?: string;
30
+ priority?: number;
31
+ live?: boolean;
29
32
  tags?: string[];
30
- filePath?: Record<string, string>;
31
33
  };
32
34
  export type Dictionary = DictionaryData & {
33
35
  id: Types.ObjectId;
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.types.d.ts","sourceRoot":"","sources":["../../../src/types/dictionary.types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,UAAU,IAAI,cAAc,EAClC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AACpC,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAE/D,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,gBAAgB,CAAC;IAC1B,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;IACvC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG;IACxC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,gBAAgB,CAC1C,cAAc,GAAG;IACf,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;CACxC,CACF,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;AACpD,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;AACpD,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,GAAG,UAAU,CAAC"}
1
+ {"version":3,"file":"dictionary.types.d.ts","sourceRoot":"","sources":["../../../src/types/dictionary.types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,UAAU,IAAI,cAAc,EAClC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AACpC,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAE/D,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,gBAAgB,CAAC;IAC1B,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;IACvC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG;IACxC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,gBAAgB,CAC1C,cAAc,GAAG;IACf,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;CACxC,CACF,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;AACpD,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;AACpD,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,GAAG,UAAU,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { RenameId } from '../utils/mongoDB/types';
2
- import type { Document, Model, Types } from 'mongoose';
2
+ import type { Document, Model, ObjectIdToString, Types } from 'mongoose';
3
3
  import type { User } from './user.types';
4
4
  export type PlanType = 'FREE' | 'PREMIUM' | 'ENTERPRISE';
5
5
  export type PlanData = {
@@ -16,6 +16,7 @@ export type Plan = PlanData & {
16
16
  createdAt: number;
17
17
  updatedAt: number;
18
18
  };
19
+ export type PlanAPI = ObjectIdToString<Plan>;
19
20
  export type PlanSchema = RenameId<Plan>;
20
21
  export type PlanModelType = Model<Plan>;
21
22
  export type PlanDocument = Document<unknown, {}, Plan> & Plan;
@@ -1 +1 @@
1
- {"version":3,"file":"plan.types.d.ts","sourceRoot":"","sources":["../../../src/types/plan.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;AAEzD,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EACH,QAAQ,GACR,UAAU,GACV,UAAU,GACV,QAAQ,GACR,YAAY,GACZ,oBAAoB,GACpB,QAAQ,GACR,UAAU,CAAC;IACf,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG,QAAQ,GAAG;IAC5B,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxC,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AACxC,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"plan.types.d.ts","sourceRoot":"","sources":["../../../src/types/plan.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;AAEzD,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EACH,QAAQ,GACR,UAAU,GACV,UAAU,GACV,QAAQ,GACR,YAAY,GACZ,oBAAoB,GACpB,QAAQ,GACR,UAAU,CAAC;IACf,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG,QAAQ,GAAG;IAC5B,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAE7C,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxC,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AACxC,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC"}
@@ -44,6 +44,7 @@ export type OAuth2Access = OAuth2AccessData & {
44
44
  createdAt: number;
45
45
  updatedAt: number;
46
46
  };
47
+ export type OAuth2AccessAPI = ObjectIdToString<OAuth2Access>;
47
48
  export type Project = ProjectData & {
48
49
  id: Types.ObjectId;
49
50
  createdAt: number;
@@ -1 +1 @@
1
- {"version":3,"file":"project.types.d.ts","sourceRoot":"","sources":["../../../src/types/project.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CACvB,CAAC;AAEF,KAAK,iCAAiC,GAAG,IAAI,CAC3C,cAAc,CAAC,sBAAsB,CAAC,EACtC,SAAS,GAAG,eAAe,CAC5B,CAAC;AAEF,KAAK,mBAAmB,GAAG,IAAI,CAC7B,cAAc,CAAC,QAAQ,CAAC,EACxB,gBAAgB,GAAG,QAAQ,CAC5B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,oBAAoB,EAAE,iCAAiC,CAAC;IACxD,MAAM,EAAE,mBAAmB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,cAAc,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACzB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,KAAK,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG;IAC5C,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG;IAClC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,YAAY,EAAE,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAEnD,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC9C,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAC9C,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"project.types.d.ts","sourceRoot":"","sources":["../../../src/types/project.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CACvB,CAAC;AAEF,KAAK,iCAAiC,GAAG,IAAI,CAC3C,cAAc,CAAC,sBAAsB,CAAC,EACtC,SAAS,GAAG,eAAe,CAC5B,CAAC;AAEF,KAAK,mBAAmB,GAAG,IAAI,CAC7B,cAAc,CAAC,QAAQ,CAAC,EACxB,gBAAgB,GAAG,QAAQ,CAC5B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,oBAAoB,EAAE,iCAAiC,CAAC;IACxD,MAAM,EAAE,mBAAmB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,cAAc,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACzB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACxB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,KAAK,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG;IAC5C,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;AAE7D,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG;IAClC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,YAAY,EAAE,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAEnD,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC9C,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAC9C,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC"}
@@ -41,7 +41,7 @@ export type ChatCompletionRequestMessage = {
41
41
  timestamp?: Date;
42
42
  };
43
43
  type AccessType = 'apiKey' | 'registered_user' | 'premium_user' | 'public';
44
- export type AIConfig = Parameters<typeof generateText>[0];
44
+ export type AIConfig = Omit<Parameters<typeof generateText>[0], 'prompt'>;
45
45
  export type AIConfigOptions = {
46
46
  userOptions?: AIOptions;
47
47
  defaultOptions?: AIOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"aiSdk.d.ts","sourceRoot":"","sources":["../../../../src/utils/AI/aiSdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAkB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAA4B,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAiB,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAgB,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAAG,CACnB,kBAAkB,GAClB,gBAAgB,GAChB,qBAAqB,GACrB,gBAAgB,CACnB,EAAE,CAAC;AAEJ;;GAEG;AACH,MAAM,MAAM,KAAK,GACb,cAAc,GACd,aAAa,GACb,YAAY,GACZ,WAAW,GACX,WAAW,GACX,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB;;GAEG;AACH,oBAAY,UAAU;IACpB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAGF,MAAM,MAAM,4BAA4B,GAAG;IACzC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF,KAAK,UAAU,GAAG,QAAQ,GAAG,iBAAiB,GAAG,cAAc,GAAG,QAAQ,CAAC;AAsE3E,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAK1D,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;CAC3B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GACtB,KAAK,QAAQ,EACb,SAAS,eAAe,KACvB,OAAO,CAAC,QAAQ,CAiFlB,CAAC"}
1
+ {"version":3,"file":"aiSdk.d.ts","sourceRoot":"","sources":["../../../../src/utils/AI/aiSdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAkB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAA4B,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAiB,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAgB,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhD,MAAM,MAAM,QAAQ,GAAG,CACnB,kBAAkB,GAClB,gBAAgB,GAChB,qBAAqB,GACrB,gBAAgB,CACnB,EAAE,CAAC;AAEJ;;GAEG;AACH,MAAM,MAAM,KAAK,GACb,cAAc,GACd,aAAa,GACb,YAAY,GACZ,WAAW,GACX,WAAW,GACX,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB;;GAEG;AACH,oBAAY,UAAU;IACpB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAGF,MAAM,MAAM,4BAA4B,GAAG;IACzC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF,KAAK,UAAU,GAAG,QAAQ,GAAG,iBAAiB,GAAG,cAAc,GAAG,QAAQ,CAAC;AAsE3E,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAK1E,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;CAC3B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GACtB,KAAK,QAAQ,EACb,SAAS,eAAe,KACvB,OAAO,CAAC,QAAQ,CAiFlB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"askDocQuestion.d.ts","sourceRoot":"","sources":["../../../../../src/utils/AI/askDocQuestion/askDocQuestion.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,QAAQ,EACR,SAAS,EAET,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAGlB,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAoBF,eAAO,MAAM,gBAAgB,EAAE,SAI9B,CAAC;AA2FF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,IAAI,CAoHvD,CAAC;AAKF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,OAAO,MAAM,EACb,aAAY,MAA+B,EAC3C,gBAAe,MAAuC,KACrD,OAAO,CAAC,aAAa,EAAE,CA4BzB,CAAC;AAmBF,eAAO,MAAM,UAAU,EAAE,4BAGxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GACzB,UAAU,4BAA4B,EAAE,EACxC,UAAU,QAAQ,EAClB,UAAU,qBAAqB,KAC9B,OAAO,CAAC,oBAAoB,CAoE9B,CAAC"}
1
+ {"version":3,"file":"askDocQuestion.d.ts","sourceRoot":"","sources":["../../../../../src/utils/AI/askDocQuestion/askDocQuestion.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,QAAQ,EACR,SAAS,EAET,4BAA4B,EAC7B,MAAM,UAAU,CAAC;AAGlB,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAoBF,eAAO,MAAM,gBAAgB,EAAE,SAI9B,CAAC;AA6FF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAAa,OAAO,CAAC,IAAI,CAmHvD,CAAC;AAKF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAC/B,OAAO,MAAM,EACb,aAAY,MAA+B,EAC3C,gBAAe,MAAuC,KACrD,OAAO,CAAC,aAAa,EAAE,CA4BzB,CAAC;AAmBF,eAAO,MAAM,UAAU,EAAE,4BAGxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GACzB,UAAU,4BAA4B,EAAE,EACxC,UAAU,QAAQ,EAClB,UAAU,qBAAqB,KAC9B,OAAO,CAAC,oBAAoB,CAoE9B,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import type { Dictionary, DictionaryAPI } from '../../types/dictionary.types';
2
- import type { Project } from '../../types/project.types';
3
2
  /**
4
3
  * Maps a dictionary to an API response.
5
4
  * If the version is not provided, the latest version is used.
@@ -8,5 +7,5 @@ import type { Project } from '../../types/project.types';
8
7
  * @param projectId - The ID of the project the dictionary belongs to.
9
8
  * @returns The dictionary mapped to an API response.
10
9
  */
11
- export declare const mapDictionaryToAPI: (dictionary: Dictionary, projectId: string | Project["id"], version?: string) => DictionaryAPI;
10
+ export declare const mapDictionaryToAPI: (dictionary: Dictionary, version?: string) => DictionaryAPI;
12
11
  //# sourceMappingURL=dictionary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../../../src/utils/mapper/dictionary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAGrD;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,UAAU,EACtB,WAAW,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EACjC,UAAU,MAAM,KACf,aAoBF,CAAC"}
1
+ {"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../../../src/utils/mapper/dictionary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG1E;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,UAAU,EACtB,UAAU,MAAM,KACf,aAqBF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validateDictionary.d.ts","sourceRoot":"","sources":["../../../../src/utils/validation/validateDictionary.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,UAAU,CAAC,EAAE,CAAC;AAEpD,QAAA,MAAM,oBAAoB,EAAE,gBAAiC,CAAC;AAG9D,KAAK,gBAAgB,GAAG,OAAO,CAC7B,MAAM,CAAC,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CACxD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,OAAO,CAAC,UAAU,CAAC,EAC/B,gCAAoC,KACnC,OAAO,CAAC,gBAAgB,CAiD1B,CAAC"}
1
+ {"version":3,"file":"validateDictionary.d.ts","sourceRoot":"","sources":["../../../../src/utils/validation/validateDictionary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAI3D,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,UAAU,CAAC,EAAE,CAAC;AAEpD,QAAA,MAAM,oBAAoB,EAAE,gBAAiC,CAAC;AAG9D,KAAK,gBAAgB,GAAG,OAAO,CAC7B,MAAM,CAAC,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CACxD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,OAAO,CAAC,UAAU,CAAC,EAC/B,gCAAoC,KACnC,OAAO,CAAC,gBAAgB,CAmD1B,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Project } from '../../types/project.types';
1
+ import type { Project, ProjectAPI } from '../../types/project.types';
2
2
  export type ProjectFields = (keyof Project)[];
3
3
  declare const defaultFieldsToCheck: ProjectFields;
4
4
  type ValidationErrors = Partial<Record<(typeof defaultFieldsToCheck)[number], string[]>>;
@@ -10,6 +10,6 @@ export declare const MEMBERS_MIN_LENGTH = 1;
10
10
  * @param project The project object to validate.
11
11
  * @returns An object containing the validation errors for each field.
12
12
  */
13
- export declare const validateProject: (project: Partial<Project>, fieldsToCheck?: ProjectFields) => Promise<ValidationErrors>;
13
+ export declare const validateProject: (project: Partial<Project | ProjectAPI>, fieldsToCheck?: ProjectFields) => Promise<ValidationErrors>;
14
14
  export {};
15
15
  //# sourceMappingURL=validateProject.d.ts.map