@intlayer/backend 5.1.3 → 5.1.5

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 (69) hide show
  1. package/dist/cjs/controllers/dictionary.controller.cjs +7 -11
  2. package/dist/cjs/controllers/dictionary.controller.cjs.map +1 -1
  3. package/dist/cjs/emails/InviteUserEmail.cjs +3 -3
  4. package/dist/cjs/emails/InviteUserEmail.cjs.map +1 -1
  5. package/dist/cjs/emails/PasswordChangeConfirmation.cjs +3 -3
  6. package/dist/cjs/emails/PasswordChangeConfirmation.cjs.map +1 -1
  7. package/dist/cjs/emails/ResetUserPassword.cjs +3 -3
  8. package/dist/cjs/emails/ResetUserPassword.cjs.map +1 -1
  9. package/dist/cjs/emails/SubscriptionPaymentCancellation.cjs +3 -3
  10. package/dist/cjs/emails/SubscriptionPaymentCancellation.cjs.map +1 -1
  11. package/dist/cjs/emails/SubscriptionPaymentError.cjs +3 -3
  12. package/dist/cjs/emails/SubscriptionPaymentError.cjs.map +1 -1
  13. package/dist/cjs/emails/SubscriptionPaymentSuccess.cjs +3 -3
  14. package/dist/cjs/emails/SubscriptionPaymentSuccess.cjs.map +1 -1
  15. package/dist/cjs/emails/ValidateUserEmail.cjs +3 -3
  16. package/dist/cjs/emails/ValidateUserEmail.cjs.map +1 -1
  17. package/dist/cjs/emails/Welcome.cjs +3 -3
  18. package/dist/cjs/emails/Welcome.cjs.map +1 -1
  19. package/dist/cjs/schemas/dictionary.schema.cjs +0 -4
  20. package/dist/cjs/schemas/dictionary.schema.cjs.map +1 -1
  21. package/dist/cjs/services/dictionary.service.cjs +6 -0
  22. package/dist/cjs/services/dictionary.service.cjs.map +1 -1
  23. package/dist/cjs/types/dictionary.types.cjs.map +1 -1
  24. package/dist/cjs/utils/auditDictionary/index.cjs +1 -1
  25. package/dist/cjs/utils/auditDictionary/index.cjs.map +1 -1
  26. package/dist/cjs/utils/auditDictionaryField/PROMPT.md +17 -7
  27. package/dist/cjs/utils/auditDictionaryField/index.cjs +1 -1
  28. package/dist/cjs/utils/auditDictionaryField/index.cjs.map +1 -1
  29. package/dist/cjs/utils/auditDictionaryMetadata/index.cjs +1 -1
  30. package/dist/cjs/utils/auditDictionaryMetadata/index.cjs.map +1 -1
  31. package/dist/cjs/utils/auditTag/index.cjs +1 -1
  32. package/dist/cjs/utils/auditTag/index.cjs.map +1 -1
  33. package/dist/esm/controllers/dictionary.controller.mjs +7 -11
  34. package/dist/esm/controllers/dictionary.controller.mjs.map +1 -1
  35. package/dist/esm/emails/InviteUserEmail.mjs +3 -3
  36. package/dist/esm/emails/InviteUserEmail.mjs.map +1 -1
  37. package/dist/esm/emails/PasswordChangeConfirmation.mjs +3 -3
  38. package/dist/esm/emails/PasswordChangeConfirmation.mjs.map +1 -1
  39. package/dist/esm/emails/ResetUserPassword.mjs +3 -3
  40. package/dist/esm/emails/ResetUserPassword.mjs.map +1 -1
  41. package/dist/esm/emails/SubscriptionPaymentCancellation.mjs +3 -3
  42. package/dist/esm/emails/SubscriptionPaymentCancellation.mjs.map +1 -1
  43. package/dist/esm/emails/SubscriptionPaymentError.mjs +3 -3
  44. package/dist/esm/emails/SubscriptionPaymentError.mjs.map +1 -1
  45. package/dist/esm/emails/SubscriptionPaymentSuccess.mjs +3 -3
  46. package/dist/esm/emails/SubscriptionPaymentSuccess.mjs.map +1 -1
  47. package/dist/esm/emails/ValidateUserEmail.mjs +3 -3
  48. package/dist/esm/emails/ValidateUserEmail.mjs.map +1 -1
  49. package/dist/esm/emails/Welcome.mjs +3 -3
  50. package/dist/esm/emails/Welcome.mjs.map +1 -1
  51. package/dist/esm/schemas/dictionary.schema.mjs +0 -4
  52. package/dist/esm/schemas/dictionary.schema.mjs.map +1 -1
  53. package/dist/esm/services/dictionary.service.mjs +6 -0
  54. package/dist/esm/services/dictionary.service.mjs.map +1 -1
  55. package/dist/esm/utils/auditDictionary/index.mjs +1 -1
  56. package/dist/esm/utils/auditDictionary/index.mjs.map +1 -1
  57. package/dist/esm/utils/auditDictionaryField/PROMPT.md +17 -7
  58. package/dist/esm/utils/auditDictionaryField/index.mjs +1 -1
  59. package/dist/esm/utils/auditDictionaryField/index.mjs.map +1 -1
  60. package/dist/esm/utils/auditDictionaryMetadata/index.mjs +1 -1
  61. package/dist/esm/utils/auditDictionaryMetadata/index.mjs.map +1 -1
  62. package/dist/esm/utils/auditTag/index.mjs +1 -1
  63. package/dist/esm/utils/auditTag/index.mjs.map +1 -1
  64. package/dist/types/controllers/dictionary.controller.d.ts.map +1 -1
  65. package/dist/types/schemas/dictionary.schema.d.ts.map +1 -1
  66. package/dist/types/services/dictionary.service.d.ts.map +1 -1
  67. package/dist/types/types/dictionary.types.d.ts +0 -1
  68. package/dist/types/types/dictionary.types.d.ts.map +1 -1
  69. package/package.json +9 -9
@@ -1,12 +1,12 @@
1
- You are an expert in internationalization, copy writing and content management. Your task is to audit the given element into the content declaration file. If the element is not declared, review it. If this element is missing, write it by considering the given context of the content declaration, and by following instructions.
1
+ You are an expert in internationalization, copy writing and content management. Your task is to audit the given dictionary. If the element is not declared, review it. If this element is missing, write it by considering the given context of the dictionary, and by following instructions.
2
2
 
3
3
  **Instructions:**
4
4
 
5
5
  1. **Terminology:**
6
6
 
7
- - **Dictionary:** A content declaration is a is a file (.ts, .js or .json) that contains the multilingual declaration related to a specific content. A content declaration file is usually related to a specific component, or page or section of a website.
8
- - **Tag:** A tag is attached to a content declaration and is used to group content declaration and harmonize them.
9
- - **KeyPath** The KeyPath correspond to to the path to retrieve the targeted element from the `content` key of the content declaration file.
7
+ - **Dictionary:** A dictionary is a is a file (.ts, .js or .json) that contains the multilingual declaration related to a specific content. A dictionary file is usually related to a specific component, or page or section of a website.
8
+ - **Tag:** A tag is attached to a dictionary and is used to group dictionary and harmonize them.
9
+ - **KeyPath** The KeyPath correspond to to the path to retrieve the targeted element from the `content` key of the dictionary file.
10
10
 
11
11
  2. **Locales:**
12
12
 
@@ -15,6 +15,7 @@ You are an expert in internationalization, copy writing and content management.
15
15
  3. **Audit Requirements:**
16
16
 
17
17
  - **Consistency:** Ensure that all keys have translations for all specified locales.
18
+ - **Incoherence:** Ensure that all content is coherent and not misspelled.
18
19
  - **Missing Content:** Identify any missing translations and specify the expected content.
19
20
  - **Misplaced Content:** Detect if any translations are placed under incorrect keys.
20
21
  - **Type Compliance:** Verify that the content types match the declarations (e.g., strings, string arrays).
@@ -23,7 +24,8 @@ You are an expert in internationalization, copy writing and content management.
23
24
 
24
25
  - **Return Only the Targeted Content:** Provide the updated targeted content as plain text without any markdown, additional comments or explanations.
25
26
  - **Consider the locale context:** If the targeted field correspond to a specific language, contains similar languages, as `zh` or `en-GB`, consider return the content in this specified language.
26
- - **Escape Special Characters:** If the translations contain special characters, escape them using the appropriate escape sequence.
27
+ - **Fix Incoherent Content:** If the content is inconsistent, misspelled, understandable, or contains errors, fix it by providing a more accurate content.
28
+ - **Escape Special Characters:** If the content contain special characters, escape them using the appropriate escape sequence.
27
29
  - **Respect the tags instructions:** If the tags instructions are provided, ensure that the audited file adheres to them.
28
30
 
29
31
  5. **Example Scenario:**
@@ -75,7 +77,7 @@ You are an expert in internationalization, copy writing and content management.
75
77
  audienceType: {
76
78
  object1: enu({
77
79
  "1": t({
78
- en: "Developers, Content Managers",
80
+ en: "Developes, _lln_ Managers",
79
81
  es: "Desarrolladores, Gestores de Contenido",
80
82
  fr: "Développeurs, Responsables de contenu",
81
83
  }),
@@ -92,7 +94,15 @@ You are an expert in internationalization, copy writing and content management.
92
94
 
93
95
  - **Input target:**
94
96
 
95
- `[{type: "object", key: "audienceType"},{type: "enumeration", key: ">2"},{type: "object", key: "audienceType"},{type: "translation", key: "es"}]`
97
+ `[{type: "object", key: "audienceType"},{type: "enumeration", key: ">2"},{type: "translation", key: "es"}]`
98
+
99
+ - **Expected Output:**
100
+
101
+ Desarrolladores, Gestores de Contenido
102
+
103
+ - **Input target:**
104
+
105
+ `[{type: "object", key: "audienceType"},{type: "enumeration", key: "1"},{type: "translation", key: "fr"}]`
96
106
 
97
107
  - **Expected Output:**
98
108
 
@@ -34,7 +34,7 @@ const auditDictionaryField = async ({
34
34
  `{${locales.map(formatLocaleWithName).join(", ")}}`
35
35
  ).replace("{{keyPath}}", JSON.stringify(keyPath)).replace("{{fileContent}}", fileContent).replace("{{tagsInstructions}}", formatTagInstructions(tags));
36
36
  const chatCompletion = await openai.chat.completions.create({
37
- model: model ?? "gpt-4o-mini",
37
+ model: model ?? "gpt-4o-2024-11-20",
38
38
  messages: [{ role: "system", content: prompt }]
39
39
  });
40
40
  const newContent = chatCompletion.choices[0].message?.content;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/utils/auditDictionaryField/index.ts"],"sourcesContent":["import { readFileSync } from 'fs';\nimport { dirname, join } from 'path';\nimport { fileURLToPath } from 'url';\nimport { getLocaleName, type KeyPath } from '@intlayer/core';\nimport { logger } from '@logger';\nimport type { Locales } from 'intlayer';\nimport { OpenAI } from 'openai';\nimport type { Tag } from '@/types/tag.types';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nexport type AuditDictionaryFieldOptions = {\n locales: Locales[];\n fileContent: string;\n model?: string;\n openAiApiKey: string;\n customPrompt?: string;\n keyPath: KeyPath[];\n tags?: Tag[];\n};\nexport type AuditDictionaryFieldResultData = {\n fileContent: string;\n tokenUsed: number;\n};\n\n/**\n * Reads the content of a file synchronously.\n *\n * @function\n * @param relativeFilePath - The relative or absolute path to the target file.\n * @returns The entire contents of the specified file as a UTF-8 encoded string.\n */\nconst getFileContent = (relativeFilePath: string): string => {\n const absolutePath = join(__dirname, relativeFilePath);\n const fileContent = readFileSync(absolutePath, 'utf-8');\n return fileContent;\n};\n\n// The prompt template to send to ChatGPT, requesting an audit of content declaration files.\nconst CHAT_GPT_PROMPT = getFileContent('./PROMPT.md');\n\n/**\n * Formats a locale with its full name and returns a string representation.\n *\n * @function\n * @param locale - A locale from the project's configuration (e.g., 'en-US', 'fr-FR').\n * @returns A formatted string combining the locale's name and code. Example: \"English (US): en-US\".\n */\nconst formatLocaleWithName = (locale: Locales): string => {\n // getLocaleName returns a human-readable name for the locale.\n const localeName = getLocaleName(locale);\n\n // Concatenate both the readable name and the locale code.\n return `${locale}: ${localeName}`;\n};\n\n/**\n * Formats an array of tags with their keys and instructions.\n *\n * @function\n * @param tags - An array of tags from the project's configuration.\n * @returns A string representation of the tags, with their keys and instructions.\n */\nconst formatTagInstructions = (tags: Tag[] = []) =>\n tags.map((tag) => `- ${tag.key}: ${tag.instructions}`).join('\\n\\n');\n\n/**\n * Audits a content declaration file by constructing a prompt for ChatGPT.\n * The prompt includes details about the project's locales, file paths of content declarations,\n * and requests for identifying issues or inconsistencies. It prints the prompt for each file,\n * and could be adapted to send requests to the ChatGPT model.\n */\nexport const auditDictionaryField = async ({\n fileContent,\n model,\n openAiApiKey,\n customPrompt,\n locales,\n keyPath,\n tags,\n}: AuditDictionaryFieldOptions): Promise<\n AuditDictionaryFieldResultData | undefined\n> => {\n try {\n // Optionally, you could initialize and configure the OpenAI client here, if you intend to make API calls.\n // Uncomment and configure the following lines if you have `openai` installed and want to call the API:\n\n const openai = new OpenAI({\n apiKey: openAiApiKey,\n });\n\n // Prepare the prompt for ChatGPT by replacing placeholders with actual values.\n const prompt =\n customPrompt ??\n CHAT_GPT_PROMPT.replace(\n '{{otherLocales}}',\n `{${locales.map(formatLocaleWithName).join(', ')}}`\n )\n .replace('{{keyPath}}', JSON.stringify(keyPath))\n .replace('{{fileContent}}', fileContent)\n .replace('{{tagsInstructions}}', formatTagInstructions(tags));\n\n // Example of how you might request a completion from ChatGPT:\n const chatCompletion = await openai.chat.completions.create({\n model: model ?? 'gpt-4o-mini',\n messages: [{ role: 'system', content: prompt }],\n });\n\n const newContent = chatCompletion.choices[0].message?.content;\n\n logger.info(\n `${chatCompletion.usage?.total_tokens} tokens used in the request`\n );\n\n return {\n fileContent: newContent ?? '',\n tokenUsed: chatCompletion.usage?.total_tokens ?? 0,\n };\n } catch (error) {\n console.error(error);\n }\n};\n"],"mappings":"AAAA,SAAS,oBAAoB;AAC7B,SAAS,SAAS,YAAY;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAmC;AAC5C,SAAS,cAAc;AAEvB,SAAS,cAAc;AAGvB,MAAM,YAAY,QAAQ,cAAc,YAAY,GAAG,CAAC;AAuBxD,MAAM,iBAAiB,CAAC,qBAAqC;AAC3D,QAAM,eAAe,KAAK,WAAW,gBAAgB;AACrD,QAAM,cAAc,aAAa,cAAc,OAAO;AACtD,SAAO;AACT;AAGA,MAAM,kBAAkB,eAAe,aAAa;AASpD,MAAM,uBAAuB,CAAC,WAA4B;AAExD,QAAM,aAAa,cAAc,MAAM;AAGvC,SAAO,GAAG,MAAM,KAAK,UAAU;AACjC;AASA,MAAM,wBAAwB,CAAC,OAAc,CAAC,MAC5C,KAAK,IAAI,CAAC,QAAQ,KAAK,IAAI,GAAG,KAAK,IAAI,YAAY,EAAE,EAAE,KAAK,MAAM;AAQ7D,MAAM,uBAAuB,OAAO;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAEK;AACH,MAAI;AAIF,UAAM,SAAS,IAAI,OAAO;AAAA,MACxB,QAAQ;AAAA,IACV,CAAC;AAGD,UAAM,SACJ,gBACA,gBAAgB;AAAA,MACd;AAAA,MACA,IAAI,QAAQ,IAAI,oBAAoB,EAAE,KAAK,IAAI,CAAC;AAAA,IAClD,EACG,QAAQ,eAAe,KAAK,UAAU,OAAO,CAAC,EAC9C,QAAQ,mBAAmB,WAAW,EACtC,QAAQ,wBAAwB,sBAAsB,IAAI,CAAC;AAGhE,UAAM,iBAAiB,MAAM,OAAO,KAAK,YAAY,OAAO;AAAA,MAC1D,OAAO,SAAS;AAAA,MAChB,UAAU,CAAC,EAAE,MAAM,UAAU,SAAS,OAAO,CAAC;AAAA,IAChD,CAAC;AAED,UAAM,aAAa,eAAe,QAAQ,CAAC,EAAE,SAAS;AAEtD,WAAO;AAAA,MACL,GAAG,eAAe,OAAO,YAAY;AAAA,IACvC;AAEA,WAAO;AAAA,MACL,aAAa,cAAc;AAAA,MAC3B,WAAW,eAAe,OAAO,gBAAgB;AAAA,IACnD;AAAA,EACF,SAAS,OAAO;AACd,YAAQ,MAAM,KAAK;AAAA,EACrB;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/utils/auditDictionaryField/index.ts"],"sourcesContent":["import { readFileSync } from 'fs';\nimport { dirname, join } from 'path';\nimport { fileURLToPath } from 'url';\nimport { getLocaleName, type KeyPath } from '@intlayer/core';\nimport { logger } from '@logger';\nimport type { Locales } from 'intlayer';\nimport { OpenAI } from 'openai';\nimport type { Tag } from '@/types/tag.types';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nexport type AuditDictionaryFieldOptions = {\n locales: Locales[];\n fileContent: string;\n model?: string;\n openAiApiKey: string;\n customPrompt?: string;\n keyPath: KeyPath[];\n tags?: Tag[];\n};\nexport type AuditDictionaryFieldResultData = {\n fileContent: string;\n tokenUsed: number;\n};\n\n/**\n * Reads the content of a file synchronously.\n *\n * @function\n * @param relativeFilePath - The relative or absolute path to the target file.\n * @returns The entire contents of the specified file as a UTF-8 encoded string.\n */\nconst getFileContent = (relativeFilePath: string): string => {\n const absolutePath = join(__dirname, relativeFilePath);\n const fileContent = readFileSync(absolutePath, 'utf-8');\n return fileContent;\n};\n\n// The prompt template to send to ChatGPT, requesting an audit of content declaration files.\nconst CHAT_GPT_PROMPT = getFileContent('./PROMPT.md');\n\n/**\n * Formats a locale with its full name and returns a string representation.\n *\n * @function\n * @param locale - A locale from the project's configuration (e.g., 'en-US', 'fr-FR').\n * @returns A formatted string combining the locale's name and code. Example: \"English (US): en-US\".\n */\nconst formatLocaleWithName = (locale: Locales): string => {\n // getLocaleName returns a human-readable name for the locale.\n const localeName = getLocaleName(locale);\n\n // Concatenate both the readable name and the locale code.\n return `${locale}: ${localeName}`;\n};\n\n/**\n * Formats an array of tags with their keys and instructions.\n *\n * @function\n * @param tags - An array of tags from the project's configuration.\n * @returns A string representation of the tags, with their keys and instructions.\n */\nconst formatTagInstructions = (tags: Tag[] = []) =>\n tags.map((tag) => `- ${tag.key}: ${tag.instructions}`).join('\\n\\n');\n\n/**\n * Audits a content declaration file by constructing a prompt for ChatGPT.\n * The prompt includes details about the project's locales, file paths of content declarations,\n * and requests for identifying issues or inconsistencies. It prints the prompt for each file,\n * and could be adapted to send requests to the ChatGPT model.\n */\nexport const auditDictionaryField = async ({\n fileContent,\n model,\n openAiApiKey,\n customPrompt,\n locales,\n keyPath,\n tags,\n}: AuditDictionaryFieldOptions): Promise<\n AuditDictionaryFieldResultData | undefined\n> => {\n try {\n // Optionally, you could initialize and configure the OpenAI client here, if you intend to make API calls.\n // Uncomment and configure the following lines if you have `openai` installed and want to call the API:\n\n const openai = new OpenAI({\n apiKey: openAiApiKey,\n });\n\n // Prepare the prompt for ChatGPT by replacing placeholders with actual values.\n const prompt =\n customPrompt ??\n CHAT_GPT_PROMPT.replace(\n '{{otherLocales}}',\n `{${locales.map(formatLocaleWithName).join(', ')}}`\n )\n .replace('{{keyPath}}', JSON.stringify(keyPath))\n .replace('{{fileContent}}', fileContent)\n .replace('{{tagsInstructions}}', formatTagInstructions(tags));\n\n // Example of how you might request a completion from ChatGPT:\n const chatCompletion = await openai.chat.completions.create({\n model: model ?? 'gpt-4o-2024-11-20',\n messages: [{ role: 'system', content: prompt }],\n });\n\n const newContent = chatCompletion.choices[0].message?.content;\n\n logger.info(\n `${chatCompletion.usage?.total_tokens} tokens used in the request`\n );\n\n return {\n fileContent: newContent ?? '',\n tokenUsed: chatCompletion.usage?.total_tokens ?? 0,\n };\n } catch (error) {\n console.error(error);\n }\n};\n"],"mappings":"AAAA,SAAS,oBAAoB;AAC7B,SAAS,SAAS,YAAY;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAmC;AAC5C,SAAS,cAAc;AAEvB,SAAS,cAAc;AAGvB,MAAM,YAAY,QAAQ,cAAc,YAAY,GAAG,CAAC;AAuBxD,MAAM,iBAAiB,CAAC,qBAAqC;AAC3D,QAAM,eAAe,KAAK,WAAW,gBAAgB;AACrD,QAAM,cAAc,aAAa,cAAc,OAAO;AACtD,SAAO;AACT;AAGA,MAAM,kBAAkB,eAAe,aAAa;AASpD,MAAM,uBAAuB,CAAC,WAA4B;AAExD,QAAM,aAAa,cAAc,MAAM;AAGvC,SAAO,GAAG,MAAM,KAAK,UAAU;AACjC;AASA,MAAM,wBAAwB,CAAC,OAAc,CAAC,MAC5C,KAAK,IAAI,CAAC,QAAQ,KAAK,IAAI,GAAG,KAAK,IAAI,YAAY,EAAE,EAAE,KAAK,MAAM;AAQ7D,MAAM,uBAAuB,OAAO;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAEK;AACH,MAAI;AAIF,UAAM,SAAS,IAAI,OAAO;AAAA,MACxB,QAAQ;AAAA,IACV,CAAC;AAGD,UAAM,SACJ,gBACA,gBAAgB;AAAA,MACd;AAAA,MACA,IAAI,QAAQ,IAAI,oBAAoB,EAAE,KAAK,IAAI,CAAC;AAAA,IAClD,EACG,QAAQ,eAAe,KAAK,UAAU,OAAO,CAAC,EAC9C,QAAQ,mBAAmB,WAAW,EACtC,QAAQ,wBAAwB,sBAAsB,IAAI,CAAC;AAGhE,UAAM,iBAAiB,MAAM,OAAO,KAAK,YAAY,OAAO;AAAA,MAC1D,OAAO,SAAS;AAAA,MAChB,UAAU,CAAC,EAAE,MAAM,UAAU,SAAS,OAAO,CAAC;AAAA,IAChD,CAAC;AAED,UAAM,aAAa,eAAe,QAAQ,CAAC,EAAE,SAAS;AAEtD,WAAO;AAAA,MACL,GAAG,eAAe,OAAO,YAAY;AAAA,IACvC;AAEA,WAAO;AAAA,MACL,aAAa,cAAc;AAAA,MAC3B,WAAW,eAAe,OAAO,gBAAgB;AAAA,IACnD;AAAA,EACF,SAAS,OAAO;AACd,YAAQ,MAAM,KAAK;AAAA,EACrB;AACF;","names":[]}
@@ -30,7 +30,7 @@ const auditDictionaryMetadata = async ({
30
30
  )}`
31
31
  ).replace("{{contentDeclaration}}", fileContent);
32
32
  const chatCompletion = await openai.chat.completions.create({
33
- model: model ?? "gpt-4o-mini",
33
+ model: model ?? "gpt-4o-2024-11-20",
34
34
  messages: [{ role: "system", content: prompt }]
35
35
  });
36
36
  const newContent = chatCompletion.choices[0].message?.content;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/utils/auditDictionaryMetadata/index.ts"],"sourcesContent":["import { readFileSync } from 'fs';\nimport { dirname, join } from 'path';\nimport { fileURLToPath } from 'url';\nimport { logger } from '@logger';\nimport { OpenAI } from 'openai';\nimport type { Tag } from '@/types/tag.types';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nexport type AuditOptions = {\n tags: Tag[];\n fileContent: string;\n model?: string;\n openAiApiKey: string;\n customPrompt?: string;\n};\nexport type AuditFileResultData = { fileContent: string; tokenUsed: number };\n\n/**\n * Reads the content of a file synchronously.\n *\n * @function\n * @param relativeFilePath - The relative or absolute path to the target file.\n * @returns The entire contents of the specified file as a UTF-8 encoded string.\n */\nconst getFileContent = (relativeFilePath: string): string => {\n const absolutePath = join(__dirname, relativeFilePath);\n const fileContent = readFileSync(absolutePath, 'utf-8');\n return fileContent;\n};\n\n// The prompt template to send to ChatGPT, requesting an audit of content declaration files.\nconst CHAT_GPT_PROMPT = getFileContent('./PROMPT.md');\n\n/**\n * Audits a content declaration file by constructing a prompt for ChatGPT.\n * The prompt includes details about the project's locales, file paths of content declarations,\n * and requests for identifying issues or inconsistencies. It prints the prompt for each file,\n * and could be adapted to send requests to the ChatGPT model.\n *\n */\nexport const auditDictionaryMetadata = async ({\n model,\n openAiApiKey,\n customPrompt,\n tags,\n fileContent,\n}: AuditOptions): Promise<AuditFileResultData | undefined> => {\n try {\n // Optionally, you could initialize and configure the OpenAI client here, if you intend to make API calls.\n // Uncomment and configure the following lines if you have `openai` installed and want to call the API:\n\n const openai = new OpenAI({\n apiKey: openAiApiKey,\n });\n\n // Prepare the prompt for ChatGPT by replacing placeholders with actual values.\n const prompt =\n customPrompt ??\n CHAT_GPT_PROMPT.replace(\n '{{tags}}',\n `${JSON.stringify(\n tags\n .map(({ key, description }) => `- ${key}: ${description}`)\n .join('\\n\\n'),\n null,\n 2\n )}`\n ).replace('{{contentDeclaration}}', fileContent);\n\n // Example of how you might request a completion from ChatGPT:\n const chatCompletion = await openai.chat.completions.create({\n model: model ?? 'gpt-4o-mini',\n messages: [{ role: 'system', content: prompt }],\n });\n\n const newContent = chatCompletion.choices[0].message?.content;\n\n logger.info(\n `${chatCompletion.usage?.total_tokens} tokens used in the request`\n );\n\n return {\n fileContent: newContent ?? '',\n tokenUsed: chatCompletion.usage?.total_tokens ?? 0,\n };\n } catch (error) {\n console.error(error);\n }\n};\n"],"mappings":"AAAA,SAAS,oBAAoB;AAC7B,SAAS,SAAS,YAAY;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,cAAc;AACvB,SAAS,cAAc;AAGvB,MAAM,YAAY,QAAQ,cAAc,YAAY,GAAG,CAAC;AAkBxD,MAAM,iBAAiB,CAAC,qBAAqC;AAC3D,QAAM,eAAe,KAAK,WAAW,gBAAgB;AACrD,QAAM,cAAc,aAAa,cAAc,OAAO;AACtD,SAAO;AACT;AAGA,MAAM,kBAAkB,eAAe,aAAa;AAS7C,MAAM,0BAA0B,OAAO;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA8D;AAC5D,MAAI;AAIF,UAAM,SAAS,IAAI,OAAO;AAAA,MACxB,QAAQ;AAAA,IACV,CAAC;AAGD,UAAM,SACJ,gBACA,gBAAgB;AAAA,MACd;AAAA,MACA,GAAG,KAAK;AAAA,QACN,KACG,IAAI,CAAC,EAAE,KAAK,YAAY,MAAM,KAAK,GAAG,KAAK,WAAW,EAAE,EACxD,KAAK,MAAM;AAAA,QACd;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH,EAAE,QAAQ,0BAA0B,WAAW;AAGjD,UAAM,iBAAiB,MAAM,OAAO,KAAK,YAAY,OAAO;AAAA,MAC1D,OAAO,SAAS;AAAA,MAChB,UAAU,CAAC,EAAE,MAAM,UAAU,SAAS,OAAO,CAAC;AAAA,IAChD,CAAC;AAED,UAAM,aAAa,eAAe,QAAQ,CAAC,EAAE,SAAS;AAEtD,WAAO;AAAA,MACL,GAAG,eAAe,OAAO,YAAY;AAAA,IACvC;AAEA,WAAO;AAAA,MACL,aAAa,cAAc;AAAA,MAC3B,WAAW,eAAe,OAAO,gBAAgB;AAAA,IACnD;AAAA,EACF,SAAS,OAAO;AACd,YAAQ,MAAM,KAAK;AAAA,EACrB;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/utils/auditDictionaryMetadata/index.ts"],"sourcesContent":["import { readFileSync } from 'fs';\nimport { dirname, join } from 'path';\nimport { fileURLToPath } from 'url';\nimport { logger } from '@logger';\nimport { OpenAI } from 'openai';\nimport type { Tag } from '@/types/tag.types';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nexport type AuditOptions = {\n tags: Tag[];\n fileContent: string;\n model?: string;\n openAiApiKey: string;\n customPrompt?: string;\n};\nexport type AuditFileResultData = { fileContent: string; tokenUsed: number };\n\n/**\n * Reads the content of a file synchronously.\n *\n * @function\n * @param relativeFilePath - The relative or absolute path to the target file.\n * @returns The entire contents of the specified file as a UTF-8 encoded string.\n */\nconst getFileContent = (relativeFilePath: string): string => {\n const absolutePath = join(__dirname, relativeFilePath);\n const fileContent = readFileSync(absolutePath, 'utf-8');\n return fileContent;\n};\n\n// The prompt template to send to ChatGPT, requesting an audit of content declaration files.\nconst CHAT_GPT_PROMPT = getFileContent('./PROMPT.md');\n\n/**\n * Audits a content declaration file by constructing a prompt for ChatGPT.\n * The prompt includes details about the project's locales, file paths of content declarations,\n * and requests for identifying issues or inconsistencies. It prints the prompt for each file,\n * and could be adapted to send requests to the ChatGPT model.\n *\n */\nexport const auditDictionaryMetadata = async ({\n model,\n openAiApiKey,\n customPrompt,\n tags,\n fileContent,\n}: AuditOptions): Promise<AuditFileResultData | undefined> => {\n try {\n // Optionally, you could initialize and configure the OpenAI client here, if you intend to make API calls.\n // Uncomment and configure the following lines if you have `openai` installed and want to call the API:\n\n const openai = new OpenAI({\n apiKey: openAiApiKey,\n });\n\n // Prepare the prompt for ChatGPT by replacing placeholders with actual values.\n const prompt =\n customPrompt ??\n CHAT_GPT_PROMPT.replace(\n '{{tags}}',\n `${JSON.stringify(\n tags\n .map(({ key, description }) => `- ${key}: ${description}`)\n .join('\\n\\n'),\n null,\n 2\n )}`\n ).replace('{{contentDeclaration}}', fileContent);\n\n // Example of how you might request a completion from ChatGPT:\n const chatCompletion = await openai.chat.completions.create({\n model: model ?? 'gpt-4o-2024-11-20',\n messages: [{ role: 'system', content: prompt }],\n });\n\n const newContent = chatCompletion.choices[0].message?.content;\n\n logger.info(\n `${chatCompletion.usage?.total_tokens} tokens used in the request`\n );\n\n return {\n fileContent: newContent ?? '',\n tokenUsed: chatCompletion.usage?.total_tokens ?? 0,\n };\n } catch (error) {\n console.error(error);\n }\n};\n"],"mappings":"AAAA,SAAS,oBAAoB;AAC7B,SAAS,SAAS,YAAY;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,cAAc;AACvB,SAAS,cAAc;AAGvB,MAAM,YAAY,QAAQ,cAAc,YAAY,GAAG,CAAC;AAkBxD,MAAM,iBAAiB,CAAC,qBAAqC;AAC3D,QAAM,eAAe,KAAK,WAAW,gBAAgB;AACrD,QAAM,cAAc,aAAa,cAAc,OAAO;AACtD,SAAO;AACT;AAGA,MAAM,kBAAkB,eAAe,aAAa;AAS7C,MAAM,0BAA0B,OAAO;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA8D;AAC5D,MAAI;AAIF,UAAM,SAAS,IAAI,OAAO;AAAA,MACxB,QAAQ;AAAA,IACV,CAAC;AAGD,UAAM,SACJ,gBACA,gBAAgB;AAAA,MACd;AAAA,MACA,GAAG,KAAK;AAAA,QACN,KACG,IAAI,CAAC,EAAE,KAAK,YAAY,MAAM,KAAK,GAAG,KAAK,WAAW,EAAE,EACxD,KAAK,MAAM;AAAA,QACd;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH,EAAE,QAAQ,0BAA0B,WAAW;AAGjD,UAAM,iBAAiB,MAAM,OAAO,KAAK,YAAY,OAAO;AAAA,MAC1D,OAAO,SAAS;AAAA,MAChB,UAAU,CAAC,EAAE,MAAM,UAAU,SAAS,OAAO,CAAC;AAAA,IAChD,CAAC;AAED,UAAM,aAAa,eAAe,QAAQ,CAAC,EAAE,SAAS;AAEtD,WAAO;AAAA,MACL,GAAG,eAAe,OAAO,YAAY;AAAA,IACvC;AAEA,WAAO;AAAA,MACL,aAAa,cAAc;AAAA,MAC3B,WAAW,eAAe,OAAO,gBAAgB;AAAA,IACnD;AAAA,EACF,SAAS,OAAO;AACd,YAAQ,MAAM,KAAK;AAAA,EACrB;AACF;","names":[]}
@@ -26,7 +26,7 @@ const auditTag = async ({
26
26
  dictionaries.map((dictionary) => `- ${JSON.stringify(dictionary)}`).join("\n\n")
27
27
  );
28
28
  const chatCompletion = await openai.chat.completions.create({
29
- model: model ?? "gpt-4o-mini",
29
+ model: model ?? "gpt-4o-2024-11-20",
30
30
  messages: [{ role: "system", content: prompt }]
31
31
  });
32
32
  const newContent = chatCompletion.choices[0].message?.content;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/utils/auditTag/index.ts"],"sourcesContent":["import { readFileSync } from 'fs';\nimport { dirname, join } from 'path';\nimport { fileURLToPath } from 'url';\nimport { logger } from '@logger';\nimport { OpenAI } from 'openai';\nimport type { Dictionary } from '@/types/dictionary.types';\nimport type { Tag } from '@/types/tag.types';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nexport type AuditOptions = {\n tag: Tag;\n dictionaries: Dictionary[];\n model?: string;\n openAiApiKey: string;\n customPrompt?: string;\n};\nexport type AuditFileResultData = { fileContent: string; tokenUsed: number };\n\n/**\n * Reads the content of a file synchronously.\n *\n * @function\n * @param relativeFilePath - The relative or absolute path to the target file.\n * @returns The entire contents of the specified file as a UTF-8 encoded string.\n */\nconst getFileContent = (relativeFilePath: string): string => {\n const absolutePath = join(__dirname, relativeFilePath);\n const fileContent = readFileSync(absolutePath, 'utf-8');\n return fileContent;\n};\n\n// The prompt template to send to ChatGPT, requesting an audit of content declaration files.\nconst CHAT_GPT_PROMPT = getFileContent('./PROMPT.md');\n\n/**\n * Audits a content declaration file by constructing a prompt for ChatGPT.\n * The prompt includes details about the project's locales, file paths of content declarations,\n * and requests for identifying issues or inconsistencies. It prints the prompt for each file,\n * and could be adapted to send requests to the ChatGPT model.\n *\n * @async\n * @function\n * @param filePath - The relative or absolute path to the target file.\n * @param options - Optional configuration for the audit process.\n * @returns This function returns a Promise that resolves once the audit is complete.\n */\nexport const auditTag = async ({\n model,\n openAiApiKey,\n customPrompt,\n tag,\n dictionaries,\n}: AuditOptions): Promise<AuditFileResultData | undefined> => {\n try {\n // Optionally, you could initialize and configure the OpenAI client here, if you intend to make API calls.\n // Uncomment and configure the following lines if you have `openai` installed and want to call the API:\n\n const openai = new OpenAI({\n apiKey: openAiApiKey,\n });\n\n // Prepare the prompt for ChatGPT by replacing placeholders with actual values.\n const prompt =\n customPrompt ??\n CHAT_GPT_PROMPT.replace('{{tag}}', `${JSON.stringify(tag)}`).replace(\n '{{contentDeclarations}}',\n dictionaries\n .map((dictionary) => `- ${JSON.stringify(dictionary)}`)\n .join('\\n\\n')\n );\n\n // Example of how you might request a completion from ChatGPT:\n const chatCompletion = await openai.chat.completions.create({\n model: model ?? 'gpt-4o-mini',\n messages: [{ role: 'system', content: prompt }],\n });\n\n const newContent = chatCompletion.choices[0].message?.content;\n\n logger.info(\n `${chatCompletion.usage?.total_tokens} tokens used in the request`\n );\n\n return {\n fileContent: newContent ?? '',\n tokenUsed: chatCompletion.usage?.total_tokens ?? 0,\n };\n } catch (error) {\n console.error(error);\n }\n};\n"],"mappings":"AAAA,SAAS,oBAAoB;AAC7B,SAAS,SAAS,YAAY;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,cAAc;AACvB,SAAS,cAAc;AAIvB,MAAM,YAAY,QAAQ,cAAc,YAAY,GAAG,CAAC;AAkBxD,MAAM,iBAAiB,CAAC,qBAAqC;AAC3D,QAAM,eAAe,KAAK,WAAW,gBAAgB;AACrD,QAAM,cAAc,aAAa,cAAc,OAAO;AACtD,SAAO;AACT;AAGA,MAAM,kBAAkB,eAAe,aAAa;AAc7C,MAAM,WAAW,OAAO;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA8D;AAC5D,MAAI;AAIF,UAAM,SAAS,IAAI,OAAO;AAAA,MACxB,QAAQ;AAAA,IACV,CAAC;AAGD,UAAM,SACJ,gBACA,gBAAgB,QAAQ,WAAW,GAAG,KAAK,UAAU,GAAG,CAAC,EAAE,EAAE;AAAA,MAC3D;AAAA,MACA,aACG,IAAI,CAAC,eAAe,KAAK,KAAK,UAAU,UAAU,CAAC,EAAE,EACrD,KAAK,MAAM;AAAA,IAChB;AAGF,UAAM,iBAAiB,MAAM,OAAO,KAAK,YAAY,OAAO;AAAA,MAC1D,OAAO,SAAS;AAAA,MAChB,UAAU,CAAC,EAAE,MAAM,UAAU,SAAS,OAAO,CAAC;AAAA,IAChD,CAAC;AAED,UAAM,aAAa,eAAe,QAAQ,CAAC,EAAE,SAAS;AAEtD,WAAO;AAAA,MACL,GAAG,eAAe,OAAO,YAAY;AAAA,IACvC;AAEA,WAAO;AAAA,MACL,aAAa,cAAc;AAAA,MAC3B,WAAW,eAAe,OAAO,gBAAgB;AAAA,IACnD;AAAA,EACF,SAAS,OAAO;AACd,YAAQ,MAAM,KAAK;AAAA,EACrB;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/utils/auditTag/index.ts"],"sourcesContent":["import { readFileSync } from 'fs';\nimport { dirname, join } from 'path';\nimport { fileURLToPath } from 'url';\nimport { logger } from '@logger';\nimport { OpenAI } from 'openai';\nimport type { Dictionary } from '@/types/dictionary.types';\nimport type { Tag } from '@/types/tag.types';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nexport type AuditOptions = {\n tag: Tag;\n dictionaries: Dictionary[];\n model?: string;\n openAiApiKey: string;\n customPrompt?: string;\n};\nexport type AuditFileResultData = { fileContent: string; tokenUsed: number };\n\n/**\n * Reads the content of a file synchronously.\n *\n * @function\n * @param relativeFilePath - The relative or absolute path to the target file.\n * @returns The entire contents of the specified file as a UTF-8 encoded string.\n */\nconst getFileContent = (relativeFilePath: string): string => {\n const absolutePath = join(__dirname, relativeFilePath);\n const fileContent = readFileSync(absolutePath, 'utf-8');\n return fileContent;\n};\n\n// The prompt template to send to ChatGPT, requesting an audit of content declaration files.\nconst CHAT_GPT_PROMPT = getFileContent('./PROMPT.md');\n\n/**\n * Audits a content declaration file by constructing a prompt for ChatGPT.\n * The prompt includes details about the project's locales, file paths of content declarations,\n * and requests for identifying issues or inconsistencies. It prints the prompt for each file,\n * and could be adapted to send requests to the ChatGPT model.\n *\n * @async\n * @function\n * @param filePath - The relative or absolute path to the target file.\n * @param options - Optional configuration for the audit process.\n * @returns This function returns a Promise that resolves once the audit is complete.\n */\nexport const auditTag = async ({\n model,\n openAiApiKey,\n customPrompt,\n tag,\n dictionaries,\n}: AuditOptions): Promise<AuditFileResultData | undefined> => {\n try {\n // Optionally, you could initialize and configure the OpenAI client here, if you intend to make API calls.\n // Uncomment and configure the following lines if you have `openai` installed and want to call the API:\n\n const openai = new OpenAI({\n apiKey: openAiApiKey,\n });\n\n // Prepare the prompt for ChatGPT by replacing placeholders with actual values.\n const prompt =\n customPrompt ??\n CHAT_GPT_PROMPT.replace('{{tag}}', `${JSON.stringify(tag)}`).replace(\n '{{contentDeclarations}}',\n dictionaries\n .map((dictionary) => `- ${JSON.stringify(dictionary)}`)\n .join('\\n\\n')\n );\n\n // Example of how you might request a completion from ChatGPT:\n const chatCompletion = await openai.chat.completions.create({\n model: model ?? 'gpt-4o-2024-11-20',\n messages: [{ role: 'system', content: prompt }],\n });\n\n const newContent = chatCompletion.choices[0].message?.content;\n\n logger.info(\n `${chatCompletion.usage?.total_tokens} tokens used in the request`\n );\n\n return {\n fileContent: newContent ?? '',\n tokenUsed: chatCompletion.usage?.total_tokens ?? 0,\n };\n } catch (error) {\n console.error(error);\n }\n};\n"],"mappings":"AAAA,SAAS,oBAAoB;AAC7B,SAAS,SAAS,YAAY;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,cAAc;AACvB,SAAS,cAAc;AAIvB,MAAM,YAAY,QAAQ,cAAc,YAAY,GAAG,CAAC;AAkBxD,MAAM,iBAAiB,CAAC,qBAAqC;AAC3D,QAAM,eAAe,KAAK,WAAW,gBAAgB;AACrD,QAAM,cAAc,aAAa,cAAc,OAAO;AACtD,SAAO;AACT;AAGA,MAAM,kBAAkB,eAAe,aAAa;AAc7C,MAAM,WAAW,OAAO;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA8D;AAC5D,MAAI;AAIF,UAAM,SAAS,IAAI,OAAO;AAAA,MACxB,QAAQ;AAAA,IACV,CAAC;AAGD,UAAM,SACJ,gBACA,gBAAgB,QAAQ,WAAW,GAAG,KAAK,UAAU,GAAG,CAAC,EAAE,EAAE;AAAA,MAC3D;AAAA,MACA,aACG,IAAI,CAAC,eAAe,KAAK,KAAK,UAAU,UAAU,CAAC,EAAE,EACrD,KAAK,MAAM;AAAA,IAChB;AAGF,UAAM,iBAAiB,MAAM,OAAO,KAAK,YAAY,OAAO;AAAA,MAC1D,OAAO,SAAS;AAAA,MAChB,UAAU,CAAC,EAAE,MAAM,UAAU,SAAS,OAAO,CAAC;AAAA,IAChD,CAAC;AAED,UAAM,aAAa,eAAe,QAAQ,CAAC,EAAE,SAAS;AAEtD,WAAO;AAAA,MACL,GAAG,eAAe,OAAO,YAAY;AAAA,IACvC;AAEA,WAAO;AAAA,MACL,aAAa,cAAc;AAAA,MAC3B,WAAW,eAAe,OAAO,gBAAgB;AAAA,IACnD;AAAA,EACF,SAAS,OAAO;AACd,YAAQ,MAAM,KAAK;AAAA,EACrB;AACF;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.controller.d.ts","sourceRoot":"","sources":["../../../src/controllers/dictionary.controller.ts"],"names":[],"mappings":"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"}
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":"dictionary.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/dictionary.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAsB,MAAM,0BAA0B,CAAC;AAoB/E,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;EA+C5B,CAAC"}
1
+ {"version":3,"file":"dictionary.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/dictionary.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAsB,MAAM,0BAA0B,CAAC;AAoB/E,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;EA2C5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.service.d.ts","sourceRoot":"","sources":["../../../src/services/dictionary.service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+DAA+D,CAAC;AAMvG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,YAClB,iBAAiB,oCAGzB,OAAO,CAAC,kBAAkB,EAAE,CA2C9B,CAAC;AAEF;;;;GAIG;AACH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,iBACd,MAAM,GAAG,QAAQ,KAC9B,OAAO,CAAC,kBAAkB,CAwB5B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,kBACd,MAAM,aACV,MAAM,GAAG,QAAQ,KAC3B,OAAO,CAAC,kBAAkB,CAI5B,CAAC;AAEF,eAAO,MAAM,qBAAqB,mBAChB,MAAM,EAAE,aACb,MAAM,GAAG,QAAQ,KAC3B,OAAO,CAAC,kBAAkB,EAAE,CA+B9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,cACnB,MAAM,GAAG,QAAQ,KAC3B,OAAO,CAAC,MAAM,EAAE,CAMlB,CAAC;AAEF,eAAO,MAAM,qBAAqB,SAC1B,MAAM,EAAE,aACH,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KACjC,OAAO,CAAC,kBAAkB,EAAE,CA6B9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,YACnB,iBAAiB,KACzB,OAAO,CAAC,MAAM,CAQhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,eACf,cAAc,KACzB,OAAO,CAAC,kBAAkB,CAU5B,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,qBACjB,MAAM,EAAE,aACf,MAAM,GAAG,QAAQ,KAC3B,OAAO,CAAC,2BAA2B,CAwBrC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,iBACjB,MAAM,GAAG,QAAQ,cACnB,OAAO,CAAC,UAAU,CAAC,KAC9B,OAAO,CAAC,kBAAkB,CA0B5B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,kBACjB,MAAM,cACT,OAAO,CAAC,UAAU,CAAC,aACpB,MAAM,GAAG,QAAQ,KAC3B,OAAO,CAAC,kBAAkB,CA4B5B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,iBACjB,MAAM,KACnB,OAAO,CAAC,kBAAkB,CAQ5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,eAAgB,UAAU,KAAG,MA8BzD,CAAC"}
1
+ {"version":3,"file":"dictionary.service.d.ts","sourceRoot":"","sources":["../../../src/services/dictionary.service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+DAA+D,CAAC;AAMvG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,YAClB,iBAAiB,oCAGzB,OAAO,CAAC,kBAAkB,EAAE,CA2C9B,CAAC;AAEF;;;;GAIG;AACH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,iBACd,MAAM,GAAG,QAAQ,KAC9B,OAAO,CAAC,kBAAkB,CAwB5B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,kBACd,MAAM,aACV,MAAM,GAAG,QAAQ,KAC3B,OAAO,CAAC,kBAAkB,CAI5B,CAAC;AAEF,eAAO,MAAM,qBAAqB,mBAChB,MAAM,EAAE,aACb,MAAM,GAAG,QAAQ,KAC3B,OAAO,CAAC,kBAAkB,EAAE,CA+B9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,cACnB,MAAM,GAAG,QAAQ,KAC3B,OAAO,CAAC,MAAM,EAAE,CAMlB,CAAC;AAEF,eAAO,MAAM,qBAAqB,SAC1B,MAAM,EAAE,aACH,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KACjC,OAAO,CAAC,kBAAkB,EAAE,CA6B9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,YACnB,iBAAiB,KACzB,OAAO,CAAC,MAAM,CAQhB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,eACf,cAAc,KACzB,OAAO,CAAC,kBAAkB,CAU5B,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,qBACjB,MAAM,EAAE,aACf,MAAM,GAAG,QAAQ,KAC3B,OAAO,CAAC,2BAA2B,CAwBrC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,iBACjB,MAAM,GAAG,QAAQ,cACnB,OAAO,CAAC,UAAU,CAAC,KAC9B,OAAO,CAAC,kBAAkB,CA0B5B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,kBACjB,MAAM,cACT,OAAO,CAAC,UAAU,CAAC,aACpB,MAAM,GAAG,QAAQ,KAC3B,OAAO,CAAC,kBAAkB,CAsC5B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,iBACjB,MAAM,KACnB,OAAO,CAAC,kBAAkB,CAQ5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,eAAgB,UAAU,KAAG,MA8BzD,CAAC"}
@@ -27,7 +27,6 @@ export type DictionaryData = {
27
27
  description?: string;
28
28
  tags?: string[];
29
29
  filePath?: Record<string, string>;
30
- publishedVersion?: string | null;
31
30
  };
32
31
  export type Dictionary = DictionaryData & {
33
32
  _id: 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,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC1D,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,KAAK,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;IACxC,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,KAAK,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;IACxC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,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;IAClC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG;IACxC,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG;IAC3C,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,GAAG,UAAU,CAAC;AAChF,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,UAAU,CAAC,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,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC1D,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,KAAK,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;IACxC,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,KAAK,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;IACxC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACvB,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,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG;IAC3C,UAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,GAAG,UAAU,CAAC;AAChF,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intlayer/backend",
3
- "version": "5.1.3",
3
+ "version": "5.1.5",
4
4
  "private": false,
5
5
  "description": "Intlayer Backend is a an application that allow you to manage your Intlayer content and interact with the intlayer editor.",
6
6
  "keywords": [
@@ -73,7 +73,7 @@
73
73
  "uuid": "^11.0.5",
74
74
  "validator": "^13.12.0",
75
75
  "winston": "^3.17.0",
76
- "express-intlayer": "5.1.3"
76
+ "express-intlayer": "5.1.5"
77
77
  },
78
78
  "devDependencies": {
79
79
  "@types/bcrypt": "^5.0.2",
@@ -98,15 +98,15 @@
98
98
  "tsup": "^8.3.5",
99
99
  "tsx": "^4.19.2",
100
100
  "typescript": "^5.7.3",
101
- "@intlayer/core": "5.1.3",
102
- "@intlayer/config": "5.1.3",
101
+ "@intlayer/config": "5.1.5",
102
+ "@intlayer/core": "5.1.5",
103
+ "@utils/ts-config": "1.0.4",
103
104
  "@utils/eslint-config": "1.0.4",
104
- "@intlayer/blog": "5.1.3",
105
- "@intlayer/docs": "5.1.3",
105
+ "@utils/ts-config-types": "1.0.4",
106
106
  "@utils/tsup-config": "1.0.4",
107
- "intlayer": "5.1.3",
108
- "@utils/ts-config": "1.0.4",
109
- "@utils/ts-config-types": "1.0.4"
107
+ "intlayer": "5.1.5",
108
+ "@intlayer/blog": "5.1.5",
109
+ "@intlayer/docs": "5.1.5"
110
110
  },
111
111
  "scripts": {
112
112
  "build": "pnpm build:package & pnpm build:types",