@intlayer/cli 8.4.2 → 8.4.4

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 (76) hide show
  1. package/dist/cjs/auth/login.cjs +2 -2
  2. package/dist/cjs/auth/login.cjs.map +1 -1
  3. package/dist/cjs/cli.cjs +1 -1
  4. package/dist/cjs/cli.cjs.map +1 -1
  5. package/dist/cjs/extract.cjs +1 -1
  6. package/dist/cjs/extract.cjs.map +1 -1
  7. package/dist/cjs/fill/fill.cjs +1 -1
  8. package/dist/cjs/fill/fill.cjs.map +1 -1
  9. package/dist/cjs/fill/listTranslationsTasks.cjs +1 -1
  10. package/dist/cjs/fill/listTranslationsTasks.cjs.map +1 -1
  11. package/dist/cjs/fill/translateDictionary.cjs +1 -1
  12. package/dist/cjs/fill/translateDictionary.cjs.map +1 -1
  13. package/dist/cjs/pull.cjs +1 -1
  14. package/dist/cjs/pull.cjs.map +1 -1
  15. package/dist/cjs/push/pullLog.cjs +3 -3
  16. package/dist/cjs/push/pullLog.cjs.map +1 -1
  17. package/dist/cjs/push/push.cjs +1 -1
  18. package/dist/cjs/push/push.cjs.map +1 -1
  19. package/dist/cjs/pushLog.cjs +3 -3
  20. package/dist/cjs/pushLog.cjs.map +1 -1
  21. package/dist/cjs/reviewDoc/reviewDoc.cjs +1 -1
  22. package/dist/cjs/reviewDoc/reviewDoc.cjs.map +1 -1
  23. package/dist/cjs/reviewDoc/reviewDocBlockAware.cjs +1 -1
  24. package/dist/cjs/reviewDoc/reviewDocBlockAware.cjs.map +1 -1
  25. package/dist/cjs/test/test.cjs +1 -1
  26. package/dist/cjs/test/test.cjs.map +1 -1
  27. package/dist/cjs/translateDoc/translateDoc.cjs +1 -1
  28. package/dist/cjs/translateDoc/translateDoc.cjs.map +1 -1
  29. package/dist/cjs/translateDoc/translateFile.cjs +2 -2
  30. package/dist/cjs/translateDoc/translateFile.cjs.map +1 -1
  31. package/dist/cjs/utils/checkAccess.cjs +1 -1
  32. package/dist/cjs/utils/checkAccess.cjs.map +1 -1
  33. package/dist/cjs/utils/setupAI.cjs +1 -1
  34. package/dist/cjs/utils/setupAI.cjs.map +1 -1
  35. package/dist/esm/auth/login.mjs +1 -1
  36. package/dist/esm/auth/login.mjs.map +1 -1
  37. package/dist/esm/cli.mjs +1 -1
  38. package/dist/esm/cli.mjs.map +1 -1
  39. package/dist/esm/extract.mjs +1 -1
  40. package/dist/esm/extract.mjs.map +1 -1
  41. package/dist/esm/fill/fill.mjs +1 -1
  42. package/dist/esm/fill/fill.mjs.map +1 -1
  43. package/dist/esm/fill/listTranslationsTasks.mjs +1 -1
  44. package/dist/esm/fill/listTranslationsTasks.mjs.map +1 -1
  45. package/dist/esm/fill/translateDictionary.mjs +1 -1
  46. package/dist/esm/fill/translateDictionary.mjs.map +1 -1
  47. package/dist/esm/pull.mjs +1 -1
  48. package/dist/esm/pull.mjs.map +1 -1
  49. package/dist/esm/push/pullLog.mjs +1 -1
  50. package/dist/esm/push/pullLog.mjs.map +1 -1
  51. package/dist/esm/push/push.mjs +1 -1
  52. package/dist/esm/push/push.mjs.map +1 -1
  53. package/dist/esm/pushLog.mjs +1 -1
  54. package/dist/esm/pushLog.mjs.map +1 -1
  55. package/dist/esm/reviewDoc/reviewDoc.mjs +1 -1
  56. package/dist/esm/reviewDoc/reviewDoc.mjs.map +1 -1
  57. package/dist/esm/reviewDoc/reviewDocBlockAware.mjs +1 -1
  58. package/dist/esm/reviewDoc/reviewDocBlockAware.mjs.map +1 -1
  59. package/dist/esm/test/test.mjs +1 -1
  60. package/dist/esm/test/test.mjs.map +1 -1
  61. package/dist/esm/translateDoc/translateDoc.mjs +1 -1
  62. package/dist/esm/translateDoc/translateDoc.mjs.map +1 -1
  63. package/dist/esm/translateDoc/translateFile.mjs +1 -1
  64. package/dist/esm/translateDoc/translateFile.mjs.map +1 -1
  65. package/dist/esm/utils/checkAccess.mjs +1 -1
  66. package/dist/esm/utils/checkAccess.mjs.map +1 -1
  67. package/dist/esm/utils/setupAI.mjs +1 -1
  68. package/dist/esm/utils/setupAI.mjs.map +1 -1
  69. package/dist/types/auth/login.d.ts.map +1 -1
  70. package/dist/types/extract.d.ts.map +1 -1
  71. package/dist/types/pull.d.ts.map +1 -1
  72. package/dist/types/push/pullLog.d.ts.map +1 -1
  73. package/dist/types/push/push.d.ts.map +1 -1
  74. package/dist/types/setupAI-Bosjx7ah.d.ts.map +1 -1
  75. package/dist/types/utils/checkAccess.d.ts.map +1 -1
  76. package/package.json +12 -12
@@ -1,2 +1,2 @@
1
- import{checkConfigConsistency as e}from"./checkConfigConsistency.mjs";import{ANSIColors as t,colorize as n,getAppLogger as r}from"@intlayer/config/logger";import{getIntlayerAPIProxy as i}from"@intlayer/api";import{extractErrorMessage as a}from"@intlayer/config/utils";const o=async(o,s=!0)=>{let c=r(o);if(!(o.editor.clientId&&o.editor.clientSecret))return c([`CMS auth not provided. You can either retreive the CMS access key on`,n(`https://intlayer.org/dahboard`,t.GREY),n(`(see doc:`,t.GREY_DARK),n(`https://intlayer.org/doc/concept/cms`,t.GREY),n(`)`,t.GREY_DARK),`.`],{level:`error`}),!1;let l=i(void 0,o);try{let r=(await l.oAuth.getOAuth2AccessToken()).data?.project;if(!r)return c(`Project not found`),!0;if(r.configuration&&s)try{let t=r.configuration;if(t.ai&&`apiKeyConfigured`in t.ai){let{apiKeyConfigured:e,...n}=t.ai;t={...t,ai:n}}e(t,o)}catch{c([`Remote configuration is not up to date. The project configuration does not match the local configuration.`,`You can push the configuration by running`,n(`npx intlayer configuration push`,t.CYAN),n(`(see doc:`,t.GREY_DARK),n(`https://intlayer.org/doc/concept/cli/push`,t.GREY),n(`)`,t.GREY_DARK),`.`],{level:`warn`})}}catch(e){return c(a(e),{level:`error`}),!1}return!0},s=async(e,i,a=!0)=>{let s=r(e),c=!!(e.editor.clientId&&e.editor.clientSecret),l=e.ai?.provider===`ollama`||i?.provider===`ollama`;return e.ai?.apiKey||i?.apiKey||l?!0:c?await o(e,a):(s([`AI options or API key not provided. You can either retreive the CMS access key on`,n(`https://intlayer.org/dahboard`,t.GREY),n(`(see doc:`,t.GREY_DARK),n(`https://intlayer.org/doc/concept/cms`,t.GREY),n(`)`,t.GREY_DARK),`. Alternatively, you can add your own OpenAI API key in the settings`,n(`(see doc:`,t.GREY_DARK),n(`https://intlayer.org/doc/concept/configuration`,t.GREY),n(`)`,t.GREY_DARK),`.`],{level:`error`}),!1)};export{s as checkAIAccess,o as checkCMSAuth};
1
+ import{checkConfigConsistency as e}from"./checkConfigConsistency.mjs";import*as t from"@intlayer/config/colors";import{colorize as n,getAppLogger as r}from"@intlayer/config/logger";import{getIntlayerAPIProxy as i}from"@intlayer/api";import{extractErrorMessage as a}from"@intlayer/config/utils";const o=async(o,s=!0)=>{let c=r(o);if(!(o.editor.clientId&&o.editor.clientSecret))return c([`CMS auth not provided. You can either retreive the CMS access key on`,n(`https://intlayer.org/dahboard`,t.GREY),n(`(see doc:`,t.GREY_DARK),n(`https://intlayer.org/doc/concept/cms`,t.GREY),n(`)`,t.GREY_DARK),`.`],{level:`error`}),!1;let l=i(void 0,o);try{let r=(await l.oAuth.getOAuth2AccessToken()).data?.project;if(!r)return c(`Project not found`),!0;if(r.configuration&&s)try{let t=r.configuration;if(t.ai&&`apiKeyConfigured`in t.ai){let{apiKeyConfigured:e,...n}=t.ai;t={...t,ai:n}}e(t,o)}catch{c([`Remote configuration is not up to date. The project configuration does not match the local configuration.`,`You can push the configuration by running`,n(`npx intlayer configuration push`,t.CYAN),n(`(see doc:`,t.GREY_DARK),n(`https://intlayer.org/doc/concept/cli/push`,t.GREY),n(`)`,t.GREY_DARK),`.`],{level:`warn`})}}catch(e){return c(a(e),{level:`error`}),!1}return!0},s=async(e,i,a=!0)=>{let s=r(e),c=!!(e.editor.clientId&&e.editor.clientSecret),l=e.ai?.provider===`ollama`||i?.provider===`ollama`;return e.ai?.apiKey||i?.apiKey||l?!0:c?await o(e,a):(s([`AI options or API key not provided. You can either retreive the CMS access key on`,n(`https://intlayer.org/dahboard`,t.GREY),n(`(see doc:`,t.GREY_DARK),n(`https://intlayer.org/doc/concept/cms`,t.GREY),n(`)`,t.GREY_DARK),`. Alternatively, you can add your own OpenAI API key in the settings`,n(`(see doc:`,t.GREY_DARK),n(`https://intlayer.org/doc/concept/configuration`,t.GREY),n(`)`,t.GREY_DARK),`.`],{level:`error`}),!1)};export{s as checkAIAccess,o as checkCMSAuth};
2
2
  //# sourceMappingURL=checkAccess.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkAccess.mjs","names":[],"sources":["../../../src/utils/checkAccess.ts"],"sourcesContent":["import type { AIOptions } from '@intlayer/api';\nimport { getIntlayerAPIProxy } from '@intlayer/api';\nimport { ANSIColors, colorize, getAppLogger } from '@intlayer/config/logger';\nimport { extractErrorMessage } from '@intlayer/config/utils';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { checkConfigConsistency } from './checkConfigConsistency';\n\nexport const checkCMSAuth = async (\n configuration: IntlayerConfig,\n shouldCheckConfigConsistency: boolean = true\n): Promise<boolean> => {\n const appLogger = getAppLogger(configuration);\n\n const hasCMSAuth =\n configuration.editor.clientId && configuration.editor.clientSecret;\n if (!hasCMSAuth) {\n appLogger(\n [\n 'CMS auth not provided. You can either retreive the CMS access key on',\n colorize('https://intlayer.org/dahboard', ANSIColors.GREY),\n colorize('(see doc:', ANSIColors.GREY_DARK),\n colorize('https://intlayer.org/doc/concept/cms', ANSIColors.GREY),\n colorize(')', ANSIColors.GREY_DARK),\n '.',\n ],\n {\n level: 'error',\n }\n );\n\n return false;\n }\n const intlayerAPI = getIntlayerAPIProxy(undefined, configuration);\n\n try {\n const result = await intlayerAPI.oAuth.getOAuth2AccessToken();\n\n const project = result.data?.project;\n\n if (!project) {\n appLogger('Project not found');\n\n return true;\n }\n\n if (project.configuration && shouldCheckConfigConsistency) {\n try {\n let remoteConfigToCheck = project.configuration;\n\n // Remove server-side computed flags (apiKeyConfigured)\n // We use destructuring + spread to avoid the 'delete' operator (performance)\n if (\n remoteConfigToCheck.ai &&\n 'apiKeyConfigured' in remoteConfigToCheck.ai\n ) {\n const { apiKeyConfigured, ...restAi } = remoteConfigToCheck.ai as any;\n\n remoteConfigToCheck = {\n ...remoteConfigToCheck,\n ai: restAi,\n };\n }\n\n // Recursively check if project.configuration (subset) matches configuration (superset)\n checkConfigConsistency(remoteConfigToCheck, configuration);\n } catch {\n appLogger(\n [\n 'Remote configuration is not up to date. The project configuration does not match the local configuration.',\n 'You can push the configuration by running',\n colorize('npx intlayer configuration push', ANSIColors.CYAN),\n colorize('(see doc:', ANSIColors.GREY_DARK),\n colorize(\n 'https://intlayer.org/doc/concept/cli/push',\n ANSIColors.GREY\n ),\n colorize(')', ANSIColors.GREY_DARK),\n '.',\n ],\n {\n level: 'warn',\n }\n );\n }\n }\n } catch (error) {\n const message = extractErrorMessage(error);\n\n appLogger(message, {\n level: 'error',\n });\n return false;\n }\n\n return true;\n};\n\nexport const checkAIAccess = async (\n configuration: IntlayerConfig,\n aiOptions?: AIOptions,\n shouldCheckConfigConsistency: boolean = true\n): Promise<boolean> => {\n const appLogger = getAppLogger(configuration);\n\n const hasCMSAuth = Boolean(\n configuration.editor.clientId && configuration.editor.clientSecret\n );\n const isOllama =\n configuration.ai?.provider === 'ollama' || aiOptions?.provider === 'ollama';\n const hasHisOwnAIAPIKey = Boolean(\n configuration.ai?.apiKey || aiOptions?.apiKey\n );\n\n if (hasHisOwnAIAPIKey || isOllama) {\n return true;\n }\n\n // User need to provide either his own AI API key or the CMS auth\n if (!hasCMSAuth) {\n appLogger(\n [\n 'AI options or API key not provided. You can either retreive the CMS access key on',\n colorize('https://intlayer.org/dahboard', ANSIColors.GREY),\n colorize('(see doc:', ANSIColors.GREY_DARK),\n colorize('https://intlayer.org/doc/concept/cms', ANSIColors.GREY),\n colorize(')', ANSIColors.GREY_DARK),\n '. Alternatively, you can add your own OpenAI API key in the settings',\n colorize('(see doc:', ANSIColors.GREY_DARK),\n colorize(\n 'https://intlayer.org/doc/concept/configuration',\n ANSIColors.GREY\n ),\n colorize(')', ANSIColors.GREY_DARK),\n '.',\n ],\n {\n level: 'error',\n }\n );\n\n return false;\n }\n\n // If the user do not have his own AI API key, we need to check the CMS auth\n return await checkCMSAuth(configuration, shouldCheckConfigConsistency);\n};\n"],"mappings":"4QAOA,MAAa,EAAe,MAC1B,EACA,EAAwC,KACnB,CACrB,IAAM,EAAY,EAAa,EAAc,CAI7C,GAAI,EADF,EAAc,OAAO,UAAY,EAAc,OAAO,cAgBtD,OAdA,EACE,CACE,uEACA,EAAS,gCAAiC,EAAW,KAAK,CAC1D,EAAS,YAAa,EAAW,UAAU,CAC3C,EAAS,uCAAwC,EAAW,KAAK,CACjE,EAAS,IAAK,EAAW,UAAU,CACnC,IACD,CACD,CACE,MAAO,QACR,CACF,CAEM,GAET,IAAM,EAAc,EAAoB,IAAA,GAAW,EAAc,CAEjE,GAAI,CAGF,IAAM,GAFS,MAAM,EAAY,MAAM,sBAAsB,EAEtC,MAAM,QAE7B,GAAI,CAAC,EAGH,OAFA,EAAU,oBAAoB,CAEvB,GAGT,GAAI,EAAQ,eAAiB,EAC3B,GAAI,CACF,IAAI,EAAsB,EAAQ,cAIlC,GACE,EAAoB,IACpB,qBAAsB,EAAoB,GAC1C,CACA,GAAM,CAAE,mBAAkB,GAAG,GAAW,EAAoB,GAE5D,EAAsB,CACpB,GAAG,EACH,GAAI,EACL,CAIH,EAAuB,EAAqB,EAAc,MACpD,CACN,EACE,CACE,4GACA,4CACA,EAAS,kCAAmC,EAAW,KAAK,CAC5D,EAAS,YAAa,EAAW,UAAU,CAC3C,EACE,4CACA,EAAW,KACZ,CACD,EAAS,IAAK,EAAW,UAAU,CACnC,IACD,CACD,CACE,MAAO,OACR,CACF,QAGE,EAAO,CAMd,OAHA,EAFgB,EAAoB,EAAM,CAEvB,CACjB,MAAO,QACR,CAAC,CACK,GAGT,MAAO,IAGI,EAAgB,MAC3B,EACA,EACA,EAAwC,KACnB,CACrB,IAAM,EAAY,EAAa,EAAc,CAEvC,EAAa,GACjB,EAAc,OAAO,UAAY,EAAc,OAAO,cAElD,EACJ,EAAc,IAAI,WAAa,UAAY,GAAW,WAAa,SAoCrE,OAlCE,EAAc,IAAI,QAAU,GAAW,QAGhB,EAChB,GAIJ,EA0BE,MAAM,EAAa,EAAe,EAA6B,EAzBpE,EACE,CACE,oFACA,EAAS,gCAAiC,EAAW,KAAK,CAC1D,EAAS,YAAa,EAAW,UAAU,CAC3C,EAAS,uCAAwC,EAAW,KAAK,CACjE,EAAS,IAAK,EAAW,UAAU,CACnC,uEACA,EAAS,YAAa,EAAW,UAAU,CAC3C,EACE,iDACA,EAAW,KACZ,CACD,EAAS,IAAK,EAAW,UAAU,CACnC,IACD,CACD,CACE,MAAO,QACR,CACF,CAEM"}
1
+ {"version":3,"file":"checkAccess.mjs","names":[],"sources":["../../../src/utils/checkAccess.ts"],"sourcesContent":["import type { AIOptions } from '@intlayer/api';\nimport { getIntlayerAPIProxy } from '@intlayer/api';\nimport * as ANSIColors from '@intlayer/config/colors';\nimport { colorize, getAppLogger } from '@intlayer/config/logger';\nimport { extractErrorMessage } from '@intlayer/config/utils';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { checkConfigConsistency } from './checkConfigConsistency';\n\nexport const checkCMSAuth = async (\n configuration: IntlayerConfig,\n shouldCheckConfigConsistency: boolean = true\n): Promise<boolean> => {\n const appLogger = getAppLogger(configuration);\n\n const hasCMSAuth =\n configuration.editor.clientId && configuration.editor.clientSecret;\n if (!hasCMSAuth) {\n appLogger(\n [\n 'CMS auth not provided. You can either retreive the CMS access key on',\n colorize('https://intlayer.org/dahboard', ANSIColors.GREY),\n colorize('(see doc:', ANSIColors.GREY_DARK),\n colorize('https://intlayer.org/doc/concept/cms', ANSIColors.GREY),\n colorize(')', ANSIColors.GREY_DARK),\n '.',\n ],\n {\n level: 'error',\n }\n );\n\n return false;\n }\n const intlayerAPI = getIntlayerAPIProxy(undefined, configuration);\n\n try {\n const result = await intlayerAPI.oAuth.getOAuth2AccessToken();\n\n const project = result.data?.project;\n\n if (!project) {\n appLogger('Project not found');\n\n return true;\n }\n\n if (project.configuration && shouldCheckConfigConsistency) {\n try {\n let remoteConfigToCheck = project.configuration;\n\n // Remove server-side computed flags (apiKeyConfigured)\n // We use destructuring + spread to avoid the 'delete' operator (performance)\n if (\n remoteConfigToCheck.ai &&\n 'apiKeyConfigured' in remoteConfigToCheck.ai\n ) {\n const { apiKeyConfigured, ...restAi } = remoteConfigToCheck.ai as any;\n\n remoteConfigToCheck = {\n ...remoteConfigToCheck,\n ai: restAi,\n };\n }\n\n // Recursively check if project.configuration (subset) matches configuration (superset)\n checkConfigConsistency(remoteConfigToCheck, configuration);\n } catch {\n appLogger(\n [\n 'Remote configuration is not up to date. The project configuration does not match the local configuration.',\n 'You can push the configuration by running',\n colorize('npx intlayer configuration push', ANSIColors.CYAN),\n colorize('(see doc:', ANSIColors.GREY_DARK),\n colorize(\n 'https://intlayer.org/doc/concept/cli/push',\n ANSIColors.GREY\n ),\n colorize(')', ANSIColors.GREY_DARK),\n '.',\n ],\n {\n level: 'warn',\n }\n );\n }\n }\n } catch (error) {\n const message = extractErrorMessage(error);\n\n appLogger(message, {\n level: 'error',\n });\n return false;\n }\n\n return true;\n};\n\nexport const checkAIAccess = async (\n configuration: IntlayerConfig,\n aiOptions?: AIOptions,\n shouldCheckConfigConsistency: boolean = true\n): Promise<boolean> => {\n const appLogger = getAppLogger(configuration);\n\n const hasCMSAuth = Boolean(\n configuration.editor.clientId && configuration.editor.clientSecret\n );\n const isOllama =\n configuration.ai?.provider === 'ollama' || aiOptions?.provider === 'ollama';\n const hasHisOwnAIAPIKey = Boolean(\n configuration.ai?.apiKey || aiOptions?.apiKey\n );\n\n if (hasHisOwnAIAPIKey || isOllama) {\n return true;\n }\n\n // User need to provide either his own AI API key or the CMS auth\n if (!hasCMSAuth) {\n appLogger(\n [\n 'AI options or API key not provided. You can either retreive the CMS access key on',\n colorize('https://intlayer.org/dahboard', ANSIColors.GREY),\n colorize('(see doc:', ANSIColors.GREY_DARK),\n colorize('https://intlayer.org/doc/concept/cms', ANSIColors.GREY),\n colorize(')', ANSIColors.GREY_DARK),\n '. Alternatively, you can add your own OpenAI API key in the settings',\n colorize('(see doc:', ANSIColors.GREY_DARK),\n colorize(\n 'https://intlayer.org/doc/concept/configuration',\n ANSIColors.GREY\n ),\n colorize(')', ANSIColors.GREY_DARK),\n '.',\n ],\n {\n level: 'error',\n }\n );\n\n return false;\n }\n\n // If the user do not have his own AI API key, we need to check the CMS auth\n return await checkCMSAuth(configuration, shouldCheckConfigConsistency);\n};\n"],"mappings":"sSAQA,MAAa,EAAe,MAC1B,EACA,EAAwC,KACnB,CACrB,IAAM,EAAY,EAAa,EAAc,CAI7C,GAAI,EADF,EAAc,OAAO,UAAY,EAAc,OAAO,cAgBtD,OAdA,EACE,CACE,uEACA,EAAS,gCAAiC,EAAW,KAAK,CAC1D,EAAS,YAAa,EAAW,UAAU,CAC3C,EAAS,uCAAwC,EAAW,KAAK,CACjE,EAAS,IAAK,EAAW,UAAU,CACnC,IACD,CACD,CACE,MAAO,QACR,CACF,CAEM,GAET,IAAM,EAAc,EAAoB,IAAA,GAAW,EAAc,CAEjE,GAAI,CAGF,IAAM,GAFS,MAAM,EAAY,MAAM,sBAAsB,EAEtC,MAAM,QAE7B,GAAI,CAAC,EAGH,OAFA,EAAU,oBAAoB,CAEvB,GAGT,GAAI,EAAQ,eAAiB,EAC3B,GAAI,CACF,IAAI,EAAsB,EAAQ,cAIlC,GACE,EAAoB,IACpB,qBAAsB,EAAoB,GAC1C,CACA,GAAM,CAAE,mBAAkB,GAAG,GAAW,EAAoB,GAE5D,EAAsB,CACpB,GAAG,EACH,GAAI,EACL,CAIH,EAAuB,EAAqB,EAAc,MACpD,CACN,EACE,CACE,4GACA,4CACA,EAAS,kCAAmC,EAAW,KAAK,CAC5D,EAAS,YAAa,EAAW,UAAU,CAC3C,EACE,4CACA,EAAW,KACZ,CACD,EAAS,IAAK,EAAW,UAAU,CACnC,IACD,CACD,CACE,MAAO,OACR,CACF,QAGE,EAAO,CAMd,OAHA,EAFgB,EAAoB,EAAM,CAEvB,CACjB,MAAO,QACR,CAAC,CACK,GAGT,MAAO,IAGI,EAAgB,MAC3B,EACA,EACA,EAAwC,KACnB,CACrB,IAAM,EAAY,EAAa,EAAc,CAEvC,EAAa,GACjB,EAAc,OAAO,UAAY,EAAc,OAAO,cAElD,EACJ,EAAc,IAAI,WAAa,UAAY,GAAW,WAAa,SAoCrE,OAlCE,EAAc,IAAI,QAAU,GAAW,QAGhB,EAChB,GAIJ,EA0BE,MAAM,EAAa,EAAe,EAA6B,EAzBpE,EACE,CACE,oFACA,EAAS,gCAAiC,EAAW,KAAK,CAC1D,EAAS,YAAa,EAAW,UAAU,CAC3C,EAAS,uCAAwC,EAAW,KAAK,CACjE,EAAS,IAAK,EAAW,UAAU,CACnC,uEACA,EAAS,YAAa,EAAW,UAAU,CAC3C,EACE,iDACA,EAAW,KACZ,CACD,EAAS,IAAK,EAAW,UAAU,CACnC,IACD,CACD,CACE,MAAO,QACR,CACF,CAEM"}
@@ -1,2 +1,2 @@
1
- import{checkAIAccess as e}from"./checkAccess.mjs";import{ANSIColors as t,colorize as n,getAppLogger as r}from"@intlayer/config/logger";globalThis.AI_SDK_LOG_WARNINGS=!1;const i=(e,r)=>{r([n(`Provider:`,t.GREY_DARK),n(e?.provider??`(default)`,t.BLUE),n(`- Model:`,t.GREY_DARK),n(e?.model??`(default)`,t.BLUE),n(`- API Key:`,t.GREY_DARK),n(e?.apiKey?`✓`:`(not set)`,t.BLUE)])},a=async(a,o)=>{let s=r(a);if(o?.apiKey||o?.provider===`ollama`||a.ai?.apiKey||a.ai?.provider===`ollama`){let r;try{r=await import(`@intlayer/ai`)}catch{s([n(`Using your API key, you can install the`,t.GREY),n(`@intlayer/ai`,t.GREY_LIGHT),n(`package to run the process locally, with no dependency on the Intlayer server`,t.GREY)],{level:`warn`});let r=await e(a,o);return i(o??{},s),{isCustomAI:!1,hasAIAccess:r}}s([n(`@intlayer/ai`,t.GREY_LIGHT),n(`found - Run process locally`,t.GREY_DARK)]);let c=await r.getAIConfig({userOptions:o,accessType:[`public`]});return i(o??{},s),{aiClient:r,aiConfig:c,isCustomAI:!0,hasAIAccess:!0}}let c=await e(a,o);return i(o??{},s),{isCustomAI:!1,hasAIAccess:c}};export{a as setupAI};
1
+ import{checkAIAccess as e}from"./checkAccess.mjs";import*as t from"@intlayer/config/colors";import{colorize as n,getAppLogger as r}from"@intlayer/config/logger";globalThis.AI_SDK_LOG_WARNINGS=!1;const i=(e,r)=>{r([n(`Provider:`,t.GREY_DARK),n(e?.provider??`(default)`,t.BLUE),n(`- Model:`,t.GREY_DARK),n(e?.model??`(default)`,t.BLUE),n(`- API Key:`,t.GREY_DARK),n(e?.apiKey?`✓`:`(not set)`,t.BLUE)])},a=async(a,o)=>{let s=r(a);if(o?.apiKey||o?.provider===`ollama`||a.ai?.apiKey||a.ai?.provider===`ollama`){let r;try{r=await import(`@intlayer/ai`)}catch{s([n(`Using your API key, you can install the`,t.GREY),n(`@intlayer/ai`,t.GREY_LIGHT),n(`package to run the process locally, with no dependency on the Intlayer server`,t.GREY)],{level:`warn`});let r=await e(a,o);return i(o??{},s),{isCustomAI:!1,hasAIAccess:r}}s([n(`@intlayer/ai`,t.GREY_LIGHT),n(`found - Run process locally`,t.GREY_DARK)]);let c=await r.getAIConfig({userOptions:o,accessType:[`public`]});return i(o??{},s),{aiClient:r,aiConfig:c,isCustomAI:!0,hasAIAccess:!0}}let c=await e(a,o);return i(o??{},s),{isCustomAI:!1,hasAIAccess:c}};export{a as setupAI};
2
2
  //# sourceMappingURL=setupAI.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"setupAI.mjs","names":[],"sources":["../../../src/utils/setupAI.ts"],"sourcesContent":["import type { AIConfig, AIOptions } from '@intlayer/ai';\nimport {\n ANSIColors,\n colorize,\n getAppLogger,\n type logger,\n} from '@intlayer/config/logger';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { checkAIAccess } from './checkAccess';\n\nexport type AIClient = typeof import('@intlayer/ai');\n\ntype SetupAIResult = {\n aiClient?: AIClient;\n aiConfig?: AIConfig;\n isCustomAI: boolean;\n hasAIAccess: boolean;\n};\n\n// Disable warnings from the AI SDK\nglobalThis.AI_SDK_LOG_WARNINGS = false;\n\nconst logAIConfig = (aiOptions: AIOptions, appLogger: typeof logger) => {\n appLogger([\n colorize('Provider:', ANSIColors.GREY_DARK),\n colorize(aiOptions?.provider ?? '(default)', ANSIColors.BLUE),\n colorize('- Model:', ANSIColors.GREY_DARK),\n colorize(aiOptions?.model ?? '(default)', ANSIColors.BLUE),\n colorize('- API Key:', ANSIColors.GREY_DARK),\n colorize(aiOptions?.apiKey ? '✓' : '(not set)', ANSIColors.BLUE),\n ]);\n};\n\n/**\n * Checks if the @intlayer/ai package is available and configured when an API key is provided.\n * If API key is present but package is missing, logs a warning.\n * Also checks if the user has access to AI (either via local key or CMS auth).\n */\nexport const setupAI = async (\n configuration: IntlayerConfig,\n aiOptions?: AIOptions\n): Promise<SetupAIResult | undefined> => {\n const appLogger = getAppLogger(configuration);\n\n const isLocalAI =\n aiOptions?.apiKey ||\n aiOptions?.provider === 'ollama' ||\n configuration.ai?.apiKey ||\n configuration.ai?.provider === 'ollama';\n\n if (isLocalAI) {\n // Try to import the AI package for local AI usage\n let aiClient: AIClient | undefined;\n\n try {\n aiClient = await import('@intlayer/ai');\n } catch {\n // Package not installed - log warning and fall back to backend\n appLogger(\n [\n colorize('Using your API key, you can install the', ANSIColors.GREY),\n colorize('@intlayer/ai', ANSIColors.GREY_LIGHT),\n colorize(\n 'package to run the process locally, with no dependency on the Intlayer server',\n ANSIColors.GREY\n ),\n ],\n {\n level: 'warn',\n }\n );\n\n // Fall back to backend API check\n const hasAIAccess = await checkAIAccess(configuration, aiOptions);\n logAIConfig(aiOptions ?? {}, appLogger);\n return {\n isCustomAI: false,\n hasAIAccess,\n };\n }\n\n // Package found - now configure it (errors here should propagate, not fall back)\n appLogger([\n colorize('@intlayer/ai', ANSIColors.GREY_LIGHT),\n colorize('found - Run process locally', ANSIColors.GREY_DARK),\n ]);\n\n const aiConfig = await aiClient.getAIConfig({\n userOptions: aiOptions,\n accessType: ['public'],\n });\n\n logAIConfig(aiOptions ?? {}, appLogger);\n\n return {\n aiClient,\n aiConfig,\n isCustomAI: true,\n hasAIAccess: true, // Local AI always has access\n };\n }\n\n // No local AI configured - use backend API\n const hasAIAccess = await checkAIAccess(configuration, aiOptions);\n logAIConfig(aiOptions ?? {}, appLogger);\n\n return {\n isCustomAI: false,\n hasAIAccess,\n };\n};\n"],"mappings":"uIAoBA,WAAW,oBAAsB,GAEjC,MAAM,GAAe,EAAsB,IAA6B,CACtE,EAAU,CACR,EAAS,YAAa,EAAW,UAAU,CAC3C,EAAS,GAAW,UAAY,YAAa,EAAW,KAAK,CAC7D,EAAS,WAAY,EAAW,UAAU,CAC1C,EAAS,GAAW,OAAS,YAAa,EAAW,KAAK,CAC1D,EAAS,aAAc,EAAW,UAAU,CAC5C,EAAS,GAAW,OAAS,IAAM,YAAa,EAAW,KAAK,CACjE,CAAC,EAQS,EAAU,MACrB,EACA,IACuC,CACvC,IAAM,EAAY,EAAa,EAAc,CAQ7C,GALE,GAAW,QACX,GAAW,WAAa,UACxB,EAAc,IAAI,QAClB,EAAc,IAAI,WAAa,SAElB,CAEb,IAAI,EAEJ,GAAI,CACF,EAAW,MAAM,OAAO,qBAClB,CAEN,EACE,CACE,EAAS,0CAA2C,EAAW,KAAK,CACpE,EAAS,eAAgB,EAAW,WAAW,CAC/C,EACE,gFACA,EAAW,KACZ,CACF,CACD,CACE,MAAO,OACR,CACF,CAGD,IAAM,EAAc,MAAM,EAAc,EAAe,EAAU,CAEjE,OADA,EAAY,GAAa,EAAE,CAAE,EAAU,CAChC,CACL,WAAY,GACZ,cACD,CAIH,EAAU,CACR,EAAS,eAAgB,EAAW,WAAW,CAC/C,EAAS,8BAA+B,EAAW,UAAU,CAC9D,CAAC,CAEF,IAAM,EAAW,MAAM,EAAS,YAAY,CAC1C,YAAa,EACb,WAAY,CAAC,SAAS,CACvB,CAAC,CAIF,OAFA,EAAY,GAAa,EAAE,CAAE,EAAU,CAEhC,CACL,WACA,WACA,WAAY,GACZ,YAAa,GACd,CAIH,IAAM,EAAc,MAAM,EAAc,EAAe,EAAU,CAGjE,OAFA,EAAY,GAAa,EAAE,CAAE,EAAU,CAEhC,CACL,WAAY,GACZ,cACD"}
1
+ {"version":3,"file":"setupAI.mjs","names":[],"sources":["../../../src/utils/setupAI.ts"],"sourcesContent":["import type { AIConfig, AIOptions } from '@intlayer/ai';\nimport * as ANSIColors from '@intlayer/config/colors';\nimport { colorize, getAppLogger, type logger } from '@intlayer/config/logger';\nimport type { IntlayerConfig } from '@intlayer/types/config';\nimport { checkAIAccess } from './checkAccess';\n\nexport type AIClient = typeof import('@intlayer/ai');\n\ntype SetupAIResult = {\n aiClient?: AIClient;\n aiConfig?: AIConfig;\n isCustomAI: boolean;\n hasAIAccess: boolean;\n};\n\n// Disable warnings from the AI SDK\nglobalThis.AI_SDK_LOG_WARNINGS = false;\n\nconst logAIConfig = (aiOptions: AIOptions, appLogger: typeof logger) => {\n appLogger([\n colorize('Provider:', ANSIColors.GREY_DARK),\n colorize(aiOptions?.provider ?? '(default)', ANSIColors.BLUE),\n colorize('- Model:', ANSIColors.GREY_DARK),\n colorize(aiOptions?.model ?? '(default)', ANSIColors.BLUE),\n colorize('- API Key:', ANSIColors.GREY_DARK),\n colorize(aiOptions?.apiKey ? '✓' : '(not set)', ANSIColors.BLUE),\n ]);\n};\n\n/**\n * Checks if the @intlayer/ai package is available and configured when an API key is provided.\n * If API key is present but package is missing, logs a warning.\n * Also checks if the user has access to AI (either via local key or CMS auth).\n */\nexport const setupAI = async (\n configuration: IntlayerConfig,\n aiOptions?: AIOptions\n): Promise<SetupAIResult | undefined> => {\n const appLogger = getAppLogger(configuration);\n\n const isLocalAI =\n aiOptions?.apiKey ||\n aiOptions?.provider === 'ollama' ||\n configuration.ai?.apiKey ||\n configuration.ai?.provider === 'ollama';\n\n if (isLocalAI) {\n // Try to import the AI package for local AI usage\n let aiClient: AIClient | undefined;\n\n try {\n aiClient = await import('@intlayer/ai');\n } catch {\n // Package not installed - log warning and fall back to backend\n appLogger(\n [\n colorize('Using your API key, you can install the', ANSIColors.GREY),\n colorize('@intlayer/ai', ANSIColors.GREY_LIGHT),\n colorize(\n 'package to run the process locally, with no dependency on the Intlayer server',\n ANSIColors.GREY\n ),\n ],\n {\n level: 'warn',\n }\n );\n\n // Fall back to backend API check\n const hasAIAccess = await checkAIAccess(configuration, aiOptions);\n logAIConfig(aiOptions ?? {}, appLogger);\n return {\n isCustomAI: false,\n hasAIAccess,\n };\n }\n\n // Package found - now configure it (errors here should propagate, not fall back)\n appLogger([\n colorize('@intlayer/ai', ANSIColors.GREY_LIGHT),\n colorize('found - Run process locally', ANSIColors.GREY_DARK),\n ]);\n\n const aiConfig = await aiClient.getAIConfig({\n userOptions: aiOptions,\n accessType: ['public'],\n });\n\n logAIConfig(aiOptions ?? {}, appLogger);\n\n return {\n aiClient,\n aiConfig,\n isCustomAI: true,\n hasAIAccess: true, // Local AI always has access\n };\n }\n\n // No local AI configured - use backend API\n const hasAIAccess = await checkAIAccess(configuration, aiOptions);\n logAIConfig(aiOptions ?? {}, appLogger);\n\n return {\n isCustomAI: false,\n hasAIAccess,\n };\n};\n"],"mappings":"iKAgBA,WAAW,oBAAsB,GAEjC,MAAM,GAAe,EAAsB,IAA6B,CACtE,EAAU,CACR,EAAS,YAAa,EAAW,UAAU,CAC3C,EAAS,GAAW,UAAY,YAAa,EAAW,KAAK,CAC7D,EAAS,WAAY,EAAW,UAAU,CAC1C,EAAS,GAAW,OAAS,YAAa,EAAW,KAAK,CAC1D,EAAS,aAAc,EAAW,UAAU,CAC5C,EAAS,GAAW,OAAS,IAAM,YAAa,EAAW,KAAK,CACjE,CAAC,EAQS,EAAU,MACrB,EACA,IACuC,CACvC,IAAM,EAAY,EAAa,EAAc,CAQ7C,GALE,GAAW,QACX,GAAW,WAAa,UACxB,EAAc,IAAI,QAClB,EAAc,IAAI,WAAa,SAElB,CAEb,IAAI,EAEJ,GAAI,CACF,EAAW,MAAM,OAAO,qBAClB,CAEN,EACE,CACE,EAAS,0CAA2C,EAAW,KAAK,CACpE,EAAS,eAAgB,EAAW,WAAW,CAC/C,EACE,gFACA,EAAW,KACZ,CACF,CACD,CACE,MAAO,OACR,CACF,CAGD,IAAM,EAAc,MAAM,EAAc,EAAe,EAAU,CAEjE,OADA,EAAY,GAAa,EAAE,CAAE,EAAU,CAChC,CACL,WAAY,GACZ,cACD,CAIH,EAAU,CACR,EAAS,eAAgB,EAAW,WAAW,CAC/C,EAAS,8BAA+B,EAAW,UAAU,CAC9D,CAAC,CAEF,IAAM,EAAW,MAAM,EAAS,YAAY,CAC1C,YAAa,EACb,WAAY,CAAC,SAAS,CACvB,CAAC,CAIF,OAFA,EAAY,GAAa,EAAE,CAAE,EAAU,CAEhC,CACL,WACA,WACA,WAAY,GACZ,YAAa,GACd,CAIH,IAAM,EAAc,MAAM,EAAc,EAAe,EAAU,CAGjE,OAFA,EAAY,GAAa,EAAE,CAAE,EAAU,CAEhC,CACL,WAAY,GACZ,cACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","names":[],"sources":["../../../src/auth/login.ts"],"mappings":";;;KAeK,YAAA;EACH,MAAA;EACA,aAAA,GAAgB,uBAAA;AAAA;AAAA,cAGL,KAAA,GAAe,OAAA,EAAS,YAAA,KAAY,OAAA"}
1
+ {"version":3,"file":"login.d.ts","names":[],"sources":["../../../src/auth/login.ts"],"mappings":";;;KAWK,YAAA;EACH,MAAA;EACA,aAAA,GAAgB,uBAAA;AAAA;AAAA,cAGL,KAAA,GAAe,OAAA,EAAS,YAAA,KAAY,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"extract.d.ts","names":[],"sources":["../../src/extract.ts"],"mappings":";;;;KAmBK,cAAA;EACH,KAAA;EACA,MAAA,GAAS,eAAA;EACT,aAAA,GAAgB,uBAAA;EAChB,QAAA;EACA,eAAA;AAAA;AAAA,cAGW,OAAA,GAAiB,OAAA,EAAS,cAAA,KAAc,OAAA"}
1
+ {"version":3,"file":"extract.d.ts","names":[],"sources":["../../src/extract.ts"],"mappings":";;;;KAoBK,cAAA;EACH,KAAA;EACA,MAAA,GAAS,eAAA;EACT,aAAA,GAAgB,uBAAA;EAChB,QAAA;EACA,eAAA;AAAA;AAAA,cAGW,OAAA,GAAiB,OAAA,EAAS,cAAA,KAAc,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"pull.d.ts","names":[],"sources":["../../src/pull.ts"],"mappings":";;;KAoBK,WAAA;EACH,YAAA;EACA,mBAAA;EACA,aAAA,GAAgB,uBAAA;AAAA;;;;;cAcL,IAAA,GAAc,OAAA,GAAU,WAAA,KAAc,OAAA"}
1
+ {"version":3,"file":"pull.d.ts","names":[],"sources":["../../src/pull.ts"],"mappings":";;;KAqBK,WAAA;EACH,YAAA;EACA,mBAAA;EACA,aAAA,GAAgB,uBAAA;AAAA;;;;;cAcL,IAAA,GAAc,OAAA,GAAU,WAAA,KAAc,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"pullLog.d.ts","names":[],"sources":["../../../src/push/pullLog.ts"],"mappings":";;;KAIY,UAAA;EACV,aAAA;EACA,MAAA,EAAQ,gBAAA;EACR,YAAA;AAAA;AAAA,cAGW,UAAA;EAAA,QACH,QAAA;EAAA,QACA,YAAA;EAAA,QACA,YAAA;EAAA,QACA,aAAA;EAAA,iBACS,aAAA;EAAA,QACT,UAAA;EAAA,iBACS,MAAA;EAAA,QACT,iBAAA;;EAOR,MAAA,CAAO,WAAA,EAAa,UAAA;EAiBpB,MAAA,CAAA;EAAA,QAMQ,YAAA;EAAA,QAQA,WAAA;EAAA,QAMA,MAAA;EAAA,QA+CA,eAAA;AAAA"}
1
+ {"version":3,"file":"pullLog.d.ts","names":[],"sources":["../../../src/push/pullLog.ts"],"mappings":";;;KAKY,UAAA;EACV,aAAA;EACA,MAAA,EAAQ,gBAAA;EACR,YAAA;AAAA;AAAA,cAGW,UAAA;EAAA,QACH,QAAA;EAAA,QACA,YAAA;EAAA,QACA,YAAA;EAAA,QACA,aAAA;EAAA,iBACS,aAAA;EAAA,QACT,UAAA;EAAA,iBACS,MAAA;EAAA,QACT,iBAAA;;EAOR,MAAA,CAAO,WAAA,EAAa,UAAA;EAiBpB,MAAA,CAAA;EAAA,QAMQ,YAAA;EAAA,QAQA,WAAA;EAAA,QAMA,MAAA;EAAA,QA+CA,eAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"push.d.ts","names":[],"sources":["../../../src/push/push.ts"],"mappings":";;;;KA4BK,WAAA;EACH,sBAAA;EACA,oBAAA;EACA,YAAA;EACA,UAAA,GAAa,mBAAA;EACb,aAAA,GAAgB,uBAAA;EAChB,KAAA;AAAA;;;;cA4BW,IAAA,GAAc,OAAA,GAAU,WAAA,KAAc,OAAA"}
1
+ {"version":3,"file":"push.d.ts","names":[],"sources":["../../../src/push/push.ts"],"mappings":";;;;KAwBK,WAAA;EACH,sBAAA;EACA,oBAAA;EACA,YAAA;EACA,UAAA,GAAa,mBAAA;EACb,aAAA,GAAgB,uBAAA;EAChB,KAAA;AAAA;;;;cA4BW,IAAA,GAAc,OAAA,GAAU,WAAA,KAAc,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"setupAI-Bosjx7ah.d.ts","names":[],"sources":["../../src/utils/setupAI.ts"],"mappings":";;;;;KAUY,QAAA,UAAQ,aAAA;AAAA,KAEf,aAAA;EACH,QAAA,GAAW,QAAA;EACX,QAAA,GAAW,QAAA;EACX,UAAA;EACA,WAAA;AAAA;;AANmD;;;;cA4BxC,OAAA,GACX,aAAA,EAAe,cAAA,EACf,SAAA,GAAY,SAAA,KACX,OAAA,CAAQ,aAAA"}
1
+ {"version":3,"file":"setupAI-Bosjx7ah.d.ts","names":[],"sources":["../../src/utils/setupAI.ts"],"mappings":";;;;;KAMY,QAAA,UAAQ,aAAA;AAAA,KAEf,aAAA;EACH,QAAA,GAAW,QAAA;EACX,QAAA,GAAW,QAAA;EACX,UAAA;EACA,WAAA;AAAA;;AANmD;;;;cA4BxC,OAAA,GACX,aAAA,EAAe,cAAA,EACf,SAAA,GAAY,SAAA,KACX,OAAA,CAAQ,aAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"checkAccess.d.ts","names":[],"sources":["../../../src/utils/checkAccess.ts"],"mappings":";;;;cAOa,YAAA,GACX,aAAA,EAAe,cAAA,EACf,4BAAA,eACC,OAAA;AAAA,cAuFU,aAAA,GACX,aAAA,EAAe,cAAA,EACf,SAAA,GAAY,SAAA,EACZ,4BAAA,eACC,OAAA"}
1
+ {"version":3,"file":"checkAccess.d.ts","names":[],"sources":["../../../src/utils/checkAccess.ts"],"mappings":";;;;cAQa,YAAA,GACX,aAAA,EAAe,cAAA,EACf,4BAAA,eACC,OAAA;AAAA,cAuFU,aAAA,GACX,aAAA,EAAe,cAAA,EACf,SAAA,GAAY,SAAA,EACZ,4BAAA,eACC,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intlayer/cli",
3
- "version": "8.4.2",
3
+ "version": "8.4.4",
4
4
  "private": false,
5
5
  "description": "Provides uniform command-line interface scripts for Intlayer, used in packages like intlayer-cli and intlayer.",
6
6
  "keywords": [
@@ -67,16 +67,16 @@
67
67
  },
68
68
  "dependencies": {
69
69
  "@clack/prompts": "0.11.0",
70
- "@intlayer/ai": "8.4.2",
71
- "@intlayer/api": "8.4.2",
72
- "@intlayer/babel": "8.4.2",
73
- "@intlayer/chokidar": "8.4.2",
74
- "@intlayer/config": "8.4.2",
75
- "@intlayer/core": "8.4.2",
76
- "@intlayer/dictionaries-entry": "8.4.2",
77
- "@intlayer/remote-dictionaries-entry": "8.4.2",
78
- "@intlayer/types": "8.4.2",
79
- "@intlayer/unmerged-dictionaries-entry": "8.4.2",
70
+ "@intlayer/ai": "8.4.4",
71
+ "@intlayer/api": "8.4.4",
72
+ "@intlayer/babel": "8.4.4",
73
+ "@intlayer/chokidar": "8.4.4",
74
+ "@intlayer/config": "8.4.4",
75
+ "@intlayer/core": "8.4.4",
76
+ "@intlayer/dictionaries-entry": "8.4.4",
77
+ "@intlayer/remote-dictionaries-entry": "8.4.4",
78
+ "@intlayer/types": "8.4.4",
79
+ "@intlayer/unmerged-dictionaries-entry": "8.4.4",
80
80
  "commander": "14.0.3",
81
81
  "enquirer": "^2.4.1",
82
82
  "eventsource": "4.1.0",
@@ -93,7 +93,7 @@
93
93
  "vitest": "4.1.0"
94
94
  },
95
95
  "peerDependencies": {
96
- "@intlayer/ai": "8.4.2"
96
+ "@intlayer/ai": "8.4.4"
97
97
  },
98
98
  "peerDependenciesMeta": {
99
99
  "@intlayer/ai": {