@yrpri/api 9.0.139 → 9.0.141

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 (322) hide show
  1. package/agents/assistants/agentAssistant.js +4 -3
  2. package/agents/assistants/baseAssistant.js +72 -71
  3. package/agents/assistants/baseAssistantWithVoice.js +6 -5
  4. package/agents/assistants/modes/agentDirectConnection.js +8 -7
  5. package/agents/assistants/modes/agentSelectionMode.js +2 -1
  6. package/agents/assistants/modes/baseAssistantMode.js +3 -2
  7. package/agents/assistants/modes/tools/agentTools.js +11 -10
  8. package/agents/assistants/modes/tools/loginTools.js +7 -6
  9. package/agents/assistants/modes/tools/models/agents.js +6 -5
  10. package/agents/assistants/modes/tools/models/subscriptions.js +7 -6
  11. package/agents/assistants/modes/tools/navigationTools.js +7 -6
  12. package/agents/assistants/modes/tools/subscriptionTools.js +12 -11
  13. package/agents/assistants/modes/tools/workflowConverstationTools.js +7 -6
  14. package/agents/assistants/voiceAssistant.js +45 -44
  15. package/agents/controllers/agentProductController.js +8 -7
  16. package/agents/controllers/agentSubscriptionController.js +13 -12
  17. package/agents/controllers/assistantsController.js +45 -44
  18. package/agents/controllers/policySynthAgents.js +33 -32
  19. package/agents/managers/emailInvitesManager.js +4 -3
  20. package/agents/managers/newAiModelSetup.js +46 -45
  21. package/agents/managers/notificationAgentQueueManager.js +55 -54
  22. package/agents/managers/subscriptionManager.js +24 -23
  23. package/agents/models/agentProduct.js +2 -1
  24. package/agents/models/agentProductBoosterPurchase.js +2 -1
  25. package/agents/models/testData/createEvolyAgentProduct.js +7 -6
  26. package/agents/models/testData/old/updateAgentWorkflowConfiguration.js +5 -4
  27. package/agents/models/testData/updateAgentWorkflowConfiguration.js +5 -4
  28. package/agents/tools/setTemplateWorkflowCommunityId.js +6 -5
  29. package/app.d.ts +2 -1
  30. package/app.js +60 -34
  31. package/authorization.cjs +4 -4
  32. package/controllers/allOurIdeas.js +45 -44
  33. package/controllers/groups.cjs +4 -9
  34. package/controllers/images.cjs +8 -8
  35. package/controllers/index.cjs +1 -1
  36. package/controllers/points.cjs +1 -1
  37. package/controllers/posts.cjs +3 -3
  38. package/deleteUnwantedDeclerations.cjs +6 -5
  39. package/models/community.cjs +1 -1
  40. package/models/domain.cjs +7 -7
  41. package/models/image.cjs +2 -2
  42. package/models/index.cjs +8 -4
  43. package/models/post.cjs +10 -10
  44. package/models/user.cjs +1 -1
  45. package/models/video.cjs +4 -4
  46. package/package.json +5 -5
  47. package/scripts/addRatingUsersToGroup.js +1 -1
  48. package/scripts/addUserToOrganization.js +8 -8
  49. package/scripts/agents/changeModelForWorkflowGroupTemplate.js +13 -12
  50. package/scripts/agents/generateAgentWorkflowTemplateFromAgentClass.js +5 -4
  51. package/scripts/analyseRatingsForCommunity.js +2 -2
  52. package/scripts/analyzeAndFixBrokenPointUsers.js +3 -3
  53. package/scripts/analyzeEndorsementsByCountry.js +7 -7
  54. package/scripts/analyzePostsForCommunity.js +1 -1
  55. package/scripts/bulkStatusUpdates/listUpdates.js +2 -2
  56. package/scripts/bulkStatusUpdates/mergeLatestPostsToUpdate.js +5 -5
  57. package/scripts/bulkStatusUpdates/performUpdate.js +9 -9
  58. package/scripts/bulkStatusUpdates/performUpdateForGroup.cjs +12 -11
  59. package/scripts/bulkStatusUpdates/performUpdateForStatus.js +15 -15
  60. package/scripts/change/changeVideoAspectTo.js +3 -3
  61. package/scripts/change/setUseNewVersion.cjs +5 -4
  62. package/scripts/changeCommunityGroupcount.js +3 -3
  63. package/scripts/changeCommunityPostCount.js +3 -3
  64. package/scripts/changeGroupPostCount.js +3 -3
  65. package/scripts/changeLanguage.js +4 -4
  66. package/scripts/changeOfficalStatus.js +3 -3
  67. package/scripts/cleanups/deleteAnonNotifications.cjs +8 -7
  68. package/scripts/cleanups/deleteLinkGroupsWithDeletedCommunities.js +8 -8
  69. package/scripts/cleanups/deleteYearOldNotifications.cjs +6 -5
  70. package/scripts/cleanups/removeAllUsersFromHiddenPublicGroup.js +5 -5
  71. package/scripts/clearAllEndorsementInGroup.js +5 -5
  72. package/scripts/cloning/clearUsersForCommunitiesFromUrl.js +3 -3
  73. package/scripts/cloning/cloneFromUrlScript.js +4 -4
  74. package/scripts/cloning/cloneWBFromUrlScriptAndCreateLinks.js +6 -6
  75. package/scripts/cloning/cloneWBFromUrlScriptNoUsersOrPoints.js +6 -6
  76. package/scripts/cloning/cloneWBSerbianFromUrlScriptAndCreateLinks.js +6 -6
  77. package/scripts/cloning/copyCommunityConfigAndTranslationsFromURL.js +3 -3
  78. package/scripts/cloning/copyCommunityOneGroupToDomainNoUsersNoEndorsements.js +2 -2
  79. package/scripts/cloning/copyCommunityToDomainNoUsersNoEndorsements.js +2 -2
  80. package/scripts/cloning/copyCommunityToDomainWithEverything.js +2 -2
  81. package/scripts/cloning/copyCommunityToDomainWithOnlyGroups.js +3 -3
  82. package/scripts/cloning/copyGroupConfigAndTranslationsFromURL.js +3 -3
  83. package/scripts/cloning/copyPostToGroupOld.js +12 -12
  84. package/scripts/cloning/copyPostVideosFromURL.js +3 -3
  85. package/scripts/cloning/copyPostWithOutAnyVotingOrActivities.js +2 -2
  86. package/scripts/cloning/deepCloneSerbianWBFromUrlScriptAndCreateLinks.js +7 -7
  87. package/scripts/cloning/deepCloneWBFromUrlScriptAndCreateLinks.js +6 -6
  88. package/scripts/cloning/setAdminsFromURL.js +5 -5
  89. package/scripts/cloning/setExternalIdsFromURL.js +3 -3
  90. package/scripts/countCommunity.js +11 -11
  91. package/scripts/countCommunityUsers.js +4 -4
  92. package/scripts/countDelayedNotifications.js +3 -3
  93. package/scripts/countGroup.js +11 -11
  94. package/scripts/countStuff.js +3 -3
  95. package/scripts/countUniqueVotersInAGroup.js +3 -3
  96. package/scripts/createInvitesAndShow.js +2 -2
  97. package/scripts/database/sync_database.js +2 -2
  98. package/scripts/database/sync_dev_database.js +3 -3
  99. package/scripts/debugNotifications.js +5 -5
  100. package/scripts/deleteAllNewsFeeds.js +2 -2
  101. package/scripts/deleteCategory.js +1 -1
  102. package/scripts/deleteOldAppActivities.js +5 -4
  103. package/scripts/deletePostContactDataForCommunity.js +5 -4
  104. package/scripts/destroy/destroy_all_but_one_domain.js +59 -59
  105. package/scripts/displayAuthorForPost.js +1 -1
  106. package/scripts/domains/createDomain.js +5 -4
  107. package/scripts/domains/importDomainsFromXls.js +7 -6
  108. package/scripts/endorsementFraudDetection/analyseEndorsementsForCommunity.js +2 -2
  109. package/scripts/endorsementFraudDetection/bulkDeleteDuplicateEndorsmentsFromUrl.js +9 -9
  110. package/scripts/exportAllStatusChanges.js +5 -5
  111. package/scripts/exportEndorsementsForCommunity.js +5 -5
  112. package/scripts/exportPointQualitiesForCommunity.js +5 -5
  113. package/scripts/exportPostsAndPointsForCommunity.js +9 -9
  114. package/scripts/exportPostsDataSetForDomain.js +12 -12
  115. package/scripts/exportPostsForGroup.js +7 -7
  116. package/scripts/exportRatingsForPost.js +2 -2
  117. package/scripts/exportUserEndorsementsWithUserAnalysis.js +6 -6
  118. package/scripts/exportUsersForCommunity.js +3 -3
  119. package/scripts/exportUsersForDomain.js +3 -3
  120. package/scripts/exportUsersForGroup.js +3 -3
  121. package/scripts/exports/ratingDistribution.js +6 -6
  122. package/scripts/exports/whoEndorsedWhatByCommunity.js +2 -2
  123. package/scripts/findUnusedClientImports.js +2 -2
  124. package/scripts/fixAllPostPointCounts.js +1 -1
  125. package/scripts/fixAnonNotificationsSettings.js +5 -5
  126. package/scripts/fixCountKopavogur.js +1 -1
  127. package/scripts/fixEndorsementsAfterCopyPostToGroup.js +10 -10
  128. package/scripts/fixExternalUserId.js +2 -2
  129. package/scripts/fixGroupAccess.js +3 -3
  130. package/scripts/fixGroupIdeasAndPointsCount.js +2 -2
  131. package/scripts/fixNotificationSettings.js +4 -4
  132. package/scripts/fixSurveyRadioBakedInSubCodes.js +6 -6
  133. package/scripts/fixWrongUserIdForStatusUpdates.js +6 -5
  134. package/scripts/gallery/exportGalleryData.js +2 -2
  135. package/scripts/gallery/importGalleryForCommunity.js +14 -14
  136. package/scripts/gallery/readJsonAndDownloadImagesVersion2.js +6 -6
  137. package/scripts/gallery/refreshAcApiPostIdsForCommunity.js +5 -5
  138. package/scripts/genderAnalysis.js +10 -10
  139. package/scripts/genderAnalysisByStatus.js +4 -4
  140. package/scripts/importAllLocalesFromLocalFolders.js +7 -7
  141. package/scripts/importDomain.js +131 -131
  142. package/scripts/keys/addOidcToDomain.cjs +10 -9
  143. package/scripts/landUseGame/export3Ddata.js +15 -15
  144. package/scripts/listLanguagesForGroup.js +6 -6
  145. package/scripts/loadTestCreateDummyContentForGroup.js +2 -2
  146. package/scripts/makeRecursiveMapData.js +4 -4
  147. package/scripts/mapping/community_map_csv.js +5 -5
  148. package/scripts/moveCommunityToDomain.js +3 -3
  149. package/scripts/moveGroupToCommunity.js +3 -3
  150. package/scripts/movePostToGroup.js +5 -5
  151. package/scripts/movePostsToGroupsRecountGroupFromUrl.js +6 -6
  152. package/scripts/oldMovePostToGroup.js +9 -9
  153. package/scripts/processCsvForPdfUrls.js +2 -2
  154. package/scripts/processCsvForTranslationAndToxicity.js +10 -10
  155. package/scripts/recount/recount_recursive_communities.js +6 -6
  156. package/scripts/recountALLCommunityGroupCounts.js +4 -4
  157. package/scripts/recountAll.js +3 -3
  158. package/scripts/recountCommunitesFromUrl.js +3 -3
  159. package/scripts/recountCommunity.js +2 -2
  160. package/scripts/recountGroup.js +5 -5
  161. package/scripts/recountGroupNoUserChange.js +5 -5
  162. package/scripts/resetAllEndorsementsForGroup.js +3 -3
  163. package/scripts/resetEnTranslationForGroup.js +5 -5
  164. package/scripts/setAdminOnAll.cjs +15 -14
  165. package/scripts/setDomainAdmin.cjs +7 -6
  166. package/scripts/setDomainLocales.js +2 -2
  167. package/scripts/setEarlQuestionIdOnGroup.cjs +5 -4
  168. package/scripts/setLanguageOnGroupCommunitesFromUrl.js +3 -3
  169. package/scripts/setMemberOfAll.js +14 -14
  170. package/scripts/setNewUserForContentOfCommunity.js +9 -9
  171. package/scripts/setOfficialStatusOnAllPostsForCommunity.js +1 -1
  172. package/scripts/setUserOnAll.js +14 -14
  173. package/scripts/showCategoryForGroup.js +1 -1
  174. package/scripts/showOldActivityTypes.js +3 -3
  175. package/scripts/showPostsMissingCategoryForGroup.js +2 -2
  176. package/scripts/showStatuses.js +4 -4
  177. package/scripts/showUniqueVotersInCommunity.js +4 -4
  178. package/scripts/showUserAgentsAndIpsForEmails.js +4 -4
  179. package/scripts/simpleExportForGroupsForCommunity.js +5 -5
  180. package/scripts/simpleExportForPointsForCommunity.js +5 -5
  181. package/scripts/simpleExportForPostsForCommunity.js +5 -5
  182. package/scripts/testForEndorsments.js +4 -4
  183. package/scripts/undeleteGroupAndAllContent.js +8 -8
  184. package/scripts/undeletePost.js +7 -7
  185. package/scripts/unlinkSsn.js +4 -4
  186. package/scripts/updateFromAlthingi.js +8 -8
  187. package/scripts/users/createUserAddDomain.js +6 -5
  188. package/scripts/users/importUsersForDomainsFromXls.js +4 -3
  189. package/scripts/users/listDomainUsersWithSsn.js +6 -5
  190. package/scripts/users/removeUserFromDomain.js +6 -5
  191. package/scripts/users/updatePasswordFromSsn.js +5 -4
  192. package/scripts/users/updateUserSsnFromEmail.js +5 -4
  193. package/services/controllers/activities.cjs +1 -1
  194. package/services/controllers/news_feeds.cjs +1 -1
  195. package/services/controllers/notifications.cjs +1 -1
  196. package/services/controllers/recommendations.cjs +1 -1
  197. package/services/engine/allOurIdeas/aiHelper.js +10 -9
  198. package/services/engine/analytics/export_anon_community_activities.js +3 -3
  199. package/services/engine/analytics/importer.js +10 -10
  200. package/services/engine/analytics/plausible/manager.cjs +4 -4
  201. package/services/engine/analytics/statsCalc.cjs +1 -1
  202. package/services/engine/analytics/utils.cjs +11 -10
  203. package/services/engine/marketing/campaign.cjs +1 -0
  204. package/services/engine/moderation/fraud/CreateFraudAuditReport.cjs +2 -1
  205. package/services/engine/moderation/fraud/FraudBase.cjs +3 -2
  206. package/services/engine/moderation/fraud/FraudDeleteBase.cjs +5 -4
  207. package/services/engine/moderation/fraud/FraudGetBase.cjs +2 -1
  208. package/services/engine/moderation/fraud/FraudGetEndorsements.cjs +2 -1
  209. package/services/engine/moderation/fraud/FraudGetPointQualities.cjs +2 -1
  210. package/services/engine/moderation/fraud/FraudGetPoints.cjs +2 -1
  211. package/services/engine/moderation/fraud/FraudGetPosts.cjs +2 -1
  212. package/services/engine/moderation/fraud/FraudGetRatings.cjs +2 -1
  213. package/services/engine/moderation/fraud/FraudScannerNotifier.cjs +10 -9
  214. package/services/engine/moderation/get_moderation_items.cjs +1 -1
  215. package/services/engine/moderation/image_labeling/ImageLabelingBase.cjs +1 -1
  216. package/services/engine/moderation/process_moderation_items.cjs +1 -1
  217. package/services/engine/moderation/toxicity_analysis.cjs +1 -1
  218. package/services/engine/news_feeds/generate_dynamically.cjs +1 -1
  219. package/services/engine/news_feeds/generate_from_notifications.cjs +1 -1
  220. package/services/engine/notifications/emails_utils.cjs +2 -2
  221. package/services/engine/notifications/generate_point_notifications.cjs +1 -1
  222. package/services/engine/notifications/generate_post_notifications.cjs +1 -1
  223. package/services/engine/notifications/process_delayed_notifications.cjs +38 -38
  224. package/services/engine/notifications/process_general_notifications.cjs +1 -0
  225. package/services/engine/old/exporters/categories_dataset.js +11 -11
  226. package/services/engine/old/exporters/sentiment_dataset.js +12 -12
  227. package/services/engine/recommendations/events_importer.cjs +5 -5
  228. package/services/engine/recommendations/events_manager.cjs +1 -1
  229. package/services/engine/reports/add_points_to_sheet.cjs +3 -2
  230. package/services/engine/reports/commonUtils.js +3 -2
  231. package/services/engine/reports/common_utils.cjs +8 -8
  232. package/services/engine/reports/docx_group_report.cjs +1 -1
  233. package/services/engine/reports/xlsAllOurIdeasExport.js +16 -15
  234. package/services/engine/reports/xls_community_users_report.cjs +2 -2
  235. package/services/engine/reports/xls_group_report.cjs +1 -1
  236. package/services/llms/baseChatBot.js +12 -11
  237. package/services/llms/imageGeneration/chatGptImageGenerator.js +3 -2
  238. package/services/llms/imageGeneration/collectionImageGenerator.js +7 -6
  239. package/services/llms/imageGeneration/dalleImageGenerator.js +6 -5
  240. package/services/llms/imageGeneration/fluxImageGenerator.js +5 -4
  241. package/services/llms/imageGeneration/imageProcessorService.js +2 -1
  242. package/services/llms/imageGeneration/imagenImageGenerator.js +8 -7
  243. package/services/llms/imageGeneration/s3Service.js +12 -11
  244. package/services/llms/llmTranslation.js +30 -29
  245. package/services/models/ac_activity.cjs +1 -1
  246. package/services/models/ac_notification.cjs +1 -1
  247. package/services/models/ac_translation_cache.cjs +11 -11
  248. package/services/scripts/analytics/setup_all_plausible_goals.cjs +3 -2
  249. package/services/scripts/fix_old_delayed_notifications.js +3 -3
  250. package/services/scripts/kue_status.js +11 -11
  251. package/services/scripts/kue_watch_stuck_jobs.js +6 -6
  252. package/services/scripts/translation_clear_language.js +21 -21
  253. package/services/scripts/translation_delete.js +4 -4
  254. package/services/scripts/translation_replace_text_from_url.js +4 -4
  255. package/services/scripts/translation_update.js +4 -4
  256. package/services/scripts/translations_list.js +5 -5
  257. package/services/utils/airbrake.cjs +2 -1
  258. package/services/utils/redisConnection.cjs +6 -5
  259. package/services/utils/translation_helpers.cjs +3 -2
  260. package/services/utils/updateAllLocalesFromEn.js +20 -19
  261. package/services/utils/updateLocaleFolders.js +7 -6
  262. package/services/workers/activity.cjs +1 -1
  263. package/services/workers/anonymizations.cjs +1 -1
  264. package/services/workers/bulk_status_update.cjs +2 -2
  265. package/services/workers/delayed_jobs.cjs +1 -1
  266. package/services/workers/deletions.cjs +1 -1
  267. package/services/workers/email.cjs +1 -1
  268. package/services/workers/fraud_management.cjs +3 -3
  269. package/services/workers/generativeAi.js +6 -5
  270. package/services/workers/main.cjs +1 -1
  271. package/services/workers/marketing.cjs +1 -1
  272. package/services/workers/moderation.cjs +1 -1
  273. package/services/workers/notification_delivery.cjs +1 -1
  274. package/services/workers/notification_news_feed.cjs +1 -1
  275. package/services/workers/queue.cjs +2 -2
  276. package/services/workers/recount.cjs +1 -1
  277. package/services/workers/reports.cjs +1 -1
  278. package/services/workers/similarities.cjs +4 -2
  279. package/services/workers/speech_to_text.cjs +1 -1
  280. package/utils/airbrake.cjs +2 -1
  281. package/utils/cjsCodeReview.js +7 -6
  282. package/utils/community_mapping_tools.cjs +3 -2
  283. package/utils/copy_utils.cjs +32 -31
  284. package/utils/export_utils.cjs +7 -7
  285. package/utils/generateDocumentation.js +10 -9
  286. package/utils/logger.cjs +2 -23
  287. package/utils/logger.d.cts +1 -1
  288. package/utils/loggerAirbrakeTransport.cjs +52 -0
  289. package/utils/loggerAirbrakeTransport.d.cts +15 -0
  290. package/utils/loggerAirbrakeTransportTs.d.ts +15 -0
  291. package/utils/loggerAirbrakeTransportTs.js +45 -0
  292. package/utils/loggerCore.cjs +29 -0
  293. package/utils/loggerCore.d.cts +2 -0
  294. package/utils/loggerCoreTs.d.ts +2 -0
  295. package/utils/loggerCoreTs.js +23 -0
  296. package/utils/loggerTs.d.ts +1 -2
  297. package/utils/loggerTs.js +2 -25
  298. package/utils/manifest_generator.cjs +1 -0
  299. package/utils/recount_utils.cjs +6 -5
  300. package/utils/seedModels.js +50 -49
  301. package/utils/sitemap_generator.cjs +4 -4
  302. package/utils/ypLanguages.js +2 -2
  303. package/webSockets.js +8 -7
  304. package/services/utils/logger.cjs +0 -25
  305. package/services/utils/logger.d.cts +0 -2
  306. package/src/agents/assistants/assistant.d.ts +0 -156
  307. package/src/controllers/audios.d.ts +0 -5
  308. package/src/controllers/categories.d.ts +0 -5
  309. package/src/controllers/communities.d.ts +0 -5
  310. package/src/controllers/domains.d.ts +0 -5
  311. package/src/controllers/groups.d.ts +0 -5
  312. package/src/controllers/images.d.ts +0 -5
  313. package/src/controllers/points.d.ts +0 -5
  314. package/src/controllers/posts.d.ts +0 -5
  315. package/src/controllers/ratings.d.ts +0 -5
  316. package/src/controllers/users.d.ts +0 -5
  317. package/src/controllers/videos.d.ts +0 -5
  318. package/src/models/index.d.ts +0 -84
  319. package/src/services/controllers/activities.d.ts +0 -5
  320. package/src/services/controllers/notifications.d.ts +0 -5
  321. package/src/utils/copy_utils.d.ts +0 -4
  322. package/src/utils/manifest_generator.d.ts +0 -18
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const { Translate } = require("@google-cloud/translate").v2;
3
3
  const farmhash = require("farmhash");
4
- const log = require("../utils/logger.cjs");
4
+ const log = require("../../utils/logger.cjs");
5
5
  const PAIRWISE_API_HOST = process.env.PAIRWISE_API_HOST;
6
6
  const PAIRWISE_USERNAME = process.env.PAIRWISE_USERNAME;
7
7
  const PAIRWISE_PASSWORD = process.env.PAIRWISE_PASSWORD;
@@ -57,7 +57,7 @@ module.exports = (sequelize, DataTypes) => {
57
57
  headers: defaultHeader,
58
58
  });
59
59
  if (!choiceResponse.ok) {
60
- console.error("Failed to fetch answers");
60
+ log.error("Failed to fetch answers");
61
61
  return null;
62
62
  }
63
63
  const choice = await choiceResponse.json();
@@ -67,7 +67,7 @@ module.exports = (sequelize, DataTypes) => {
67
67
  return data["content"];
68
68
  }
69
69
  catch (error) {
70
- console.error("Failed to parse choice data", error);
70
+ log.error("Failed to parse choice data", error);
71
71
  return null;
72
72
  }
73
73
  }
@@ -81,7 +81,7 @@ module.exports = (sequelize, DataTypes) => {
81
81
  headers: defaultHeader,
82
82
  });
83
83
  if (!questionResponse.ok) {
84
- console.error("Failed to fetch question");
84
+ log.error("Failed to fetch question");
85
85
  return null;
86
86
  }
87
87
  const question = await questionResponse.json();
@@ -180,13 +180,13 @@ module.exports = (sequelize, DataTypes) => {
180
180
  ? modelInstance.public_data.transcript.text
181
181
  : null;
182
182
  default:
183
- console.error("No valid textType for translation");
183
+ log.error("No valid textType for translation");
184
184
  return null;
185
185
  }
186
186
  }
187
187
  }
188
188
  catch (error) {
189
- console.error("Failed to get content to translate", error);
189
+ log.error("Failed to get content to translate", error);
190
190
  return null;
191
191
  }
192
192
  };
@@ -432,7 +432,7 @@ module.exports = (sequelize, DataTypes) => {
432
432
  let languageInfo = {};
433
433
  for (let i = 0; i < textsToTranslate.length; i += chunkSize) {
434
434
  const chunk = textsToTranslate.slice(i, i + chunkSize);
435
- console.log("Calling Google Translate...");
435
+ log.info("Calling Google Translate...");
436
436
  const [translatedChunk, info] = await translateAPI.translate(chunk, targetLanguage);
437
437
  translatedStrings.push(...translatedChunk);
438
438
  if (i === 0) {
@@ -469,13 +469,13 @@ module.exports = (sequelize, DataTypes) => {
469
469
  });
470
470
  }
471
471
  catch (error) {
472
- console.error("Failed to get translation from Google", error);
472
+ log.error("Failed to get translation from Google", error);
473
473
  }
474
474
  if (!translateAPI) {
475
475
  callback("No translation API");
476
476
  return;
477
477
  }
478
- console.log("Calling Google Translate...");
478
+ log.info("Calling Google Translate...");
479
479
  translateAPI
480
480
  .translate(contentToTranslate, targetLanguage)
481
481
  .then((results) => {
@@ -621,7 +621,7 @@ module.exports = (sequelize, DataTypes) => {
621
621
  }
622
622
  }
623
623
  catch (error) {
624
- console.error("Failed to translate with LLM", error);
624
+ log.error("Failed to translate with LLM", error);
625
625
  callback(error);
626
626
  }
627
627
  };
@@ -630,7 +630,7 @@ module.exports = (sequelize, DataTypes) => {
630
630
  callback("No LLM to translate with");
631
631
  return;
632
632
  }
633
- console.log(`contentToTranslate ${contentToTranslate}`);
633
+ log.info(`contentToTranslate ${contentToTranslate}`);
634
634
  if (!AcTranslationCache.llmTranslation) {
635
635
  const { YpLlmTranslation } = await import("../llms/llmTranslation.js");
636
636
  AcTranslationCache.llmTranslation = new YpLlmTranslation();
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
  const { addAllPlausibleGoals } = require("../../engine/analytics/plausible/manager");
3
+ const log = require("../../../utils/logger.cjs");
3
4
  (async function () {
4
5
  try {
5
6
  await addAllPlausibleGoals();
6
- console.log("All done");
7
+ log.info("All done");
7
8
  process.exit();
8
9
  }
9
10
  catch (error) {
10
- console.error(error);
11
+ log.error(error);
11
12
  process.exit();
12
13
  }
13
14
  })();
@@ -1,6 +1,6 @@
1
1
  var models = require('../../models/index.cjs');
2
2
  var async = require('async');
3
- var log = require('../utils/logger.cjs');
3
+ var log = require('../../utils/logger.cjs');
4
4
  var _ = require('lodash');
5
5
  var moment = require('moment');
6
6
  var i18n = require('../utils/i18n.cjs');
@@ -31,12 +31,12 @@ models.User.findAll({
31
31
  }).then(function (newDelayedNotification) {
32
32
  async.eachSeries(delayedNotifications, function (delayedNotification, delayedNotificationSeriesCallback) {
33
33
  async.eachSeries(delayedNotification.AcNotifications, function (notification, notificationSeriesCallback) {
34
- console.error("NOTID:" + notification.id);
34
+ log.error("NOTID:" + notification.id);
35
35
  latestNotification = notification;
36
36
  newDelayedNotification.addAcNotification(notification).then(function () {
37
37
  notificationSeriesCallback();
38
38
  }).catch(function (error) {
39
- console.error("COULD NOT SAVE NOTIFICATION - COULD NOT SAVE NOTIFICATION - COULD NOT SAVE NOTIFICATION - COULD NOT SAVE NOTIFICATION - COULD NOT SAVE NOTIFICATION");
39
+ log.error("COULD NOT SAVE NOTIFICATION - COULD NOT SAVE NOTIFICATION - COULD NOT SAVE NOTIFICATION - COULD NOT SAVE NOTIFICATION - COULD NOT SAVE NOTIFICATION");
40
40
  notificationSeriesCallback();
41
41
  });
42
42
  }, function (error) {
@@ -1,5 +1,5 @@
1
1
  var kue = require('kue'), url = require('url');
2
- var log = require('../utils/logger.cjs');
2
+ var log = require('../../utils/logger.cjs');
3
3
  var toJson = require('../utils/to_json.cjs');
4
4
  var airbrake = null;
5
5
  if (process.env.AIRBRAKE_PROJECT_ID) {
@@ -14,16 +14,16 @@ var queue = kue.createQueue({
14
14
  "socket_keepalive": true
15
15
  });
16
16
  queue.watchStuckJobs(1000);
17
- console.log("active");
18
- queue.activeCount(console.log);
19
- console.log("inactiveCount");
20
- queue.inactiveCount(console.log);
21
- console.log("failedCount");
22
- queue.failedCount(console.log);
23
- console.log("delayedCount");
24
- queue.delayedCount(console.log);
25
- console.log("completeCount");
26
- queue.completeCount(console.log);
17
+ log.info("active");
18
+ queue.activeCount(log.info);
19
+ log.info("inactiveCount");
20
+ queue.inactiveCount(log.info);
21
+ log.info("failedCount");
22
+ queue.failedCount(log.info);
23
+ log.info("delayedCount");
24
+ queue.delayedCount(log.info);
25
+ log.info("completeCount");
26
+ queue.completeCount(log.info);
27
27
  setTimeout(function () {
28
28
  process.exit();
29
29
  }, 5000);
@@ -1,5 +1,5 @@
1
1
  var kue = require('kue'), url = require('url');
2
- var log = require('../utils/logger.cjs');
2
+ var log = require('../../utils/logger.cjs');
3
3
  var email = require('./email.js');
4
4
  var activity = require('./activity.js');
5
5
  var toJson = require('../utils/to_json.cjs');
@@ -15,10 +15,10 @@ var queue = kue.createQueue({
15
15
  redis: redisUrl,
16
16
  "socket_keepalive": true
17
17
  });
18
- queue.activeCount(console.log);
19
- queue.inactiveCount(console.log);
20
- queue.failedCount(console.log);
21
- queue.delayedCount(console.log);
22
- queue.completeCount(console.log);
18
+ queue.activeCount(log.info);
19
+ queue.inactiveCount(log.info);
20
+ queue.failedCount(log.info);
21
+ queue.delayedCount(log.info);
22
+ queue.completeCount(log.info);
23
23
  module.exports = queue;
24
24
  export {};
@@ -10,22 +10,22 @@ if (objectType === "point") {
10
10
  attributes: ['id', 'language']
11
11
  }).then((result) => {
12
12
  if (result) {
13
- console.log(`Clearing current point language of ${result.language}`);
13
+ log.info(`Clearing current point language of ${result.language}`);
14
14
  result.set('language', null);
15
15
  result.save().then(function () {
16
- console.log(`Cleared language for point ${result.id}`);
16
+ log.info(`Cleared language for point ${result.id}`);
17
17
  process.exit();
18
18
  }).catch((error) => {
19
- console.error(error);
19
+ log.error(error);
20
20
  process.exit();
21
21
  });
22
22
  }
23
23
  else {
24
- console.warn("Not found: " + indexKey);
24
+ log.warn("Not found: " + indexKey);
25
25
  process.exit();
26
26
  }
27
27
  }).catch((error) => {
28
- console.error(error);
28
+ log.error(error);
29
29
  process.exit();
30
30
  });
31
31
  }
@@ -37,22 +37,22 @@ else if (objectType === "group") {
37
37
  attributes: ['id', 'language']
38
38
  }).then((result) => {
39
39
  if (result) {
40
- console.log(`Clearing current group language of ${result.language}`);
40
+ log.info(`Clearing current group language of ${result.language}`);
41
41
  result.set('language', null);
42
42
  result.save().then(function () {
43
- console.log(`Cleared language for group ${result.id}`);
43
+ log.info(`Cleared language for group ${result.id}`);
44
44
  process.exit();
45
45
  }).catch((error) => {
46
- console.error(error);
46
+ log.error(error);
47
47
  process.exit();
48
48
  });
49
49
  }
50
50
  else {
51
- console.warn("Not found: " + indexKey);
51
+ log.warn("Not found: " + indexKey);
52
52
  process.exit();
53
53
  }
54
54
  }).catch((error) => {
55
- console.error(error);
55
+ log.error(error);
56
56
  process.exit();
57
57
  });
58
58
  }
@@ -64,22 +64,22 @@ else if (objectType === "community") {
64
64
  attributes: ['id', 'language']
65
65
  }).then((result) => {
66
66
  if (result) {
67
- console.log(`Clearing current community language of ${result.language}`);
67
+ log.info(`Clearing current community language of ${result.language}`);
68
68
  result.set('language', null);
69
69
  result.save().then(function () {
70
- console.log(`Cleared language for community ${result.id}`);
70
+ log.info(`Cleared language for community ${result.id}`);
71
71
  process.exit();
72
72
  }).catch((error) => {
73
- console.error(error);
73
+ log.error(error);
74
74
  process.exit();
75
75
  });
76
76
  }
77
77
  else {
78
- console.warn("Not found: " + indexKey);
78
+ log.warn("Not found: " + indexKey);
79
79
  process.exit();
80
80
  }
81
81
  }).catch((error) => {
82
- console.error(error);
82
+ log.error(error);
83
83
  process.exit();
84
84
  });
85
85
  }
@@ -91,27 +91,27 @@ else if (objectType === "domain") {
91
91
  attributes: ['id', 'language']
92
92
  }).then((result) => {
93
93
  if (result) {
94
- console.log(`Clearing current domain language of ${result.language}`);
94
+ log.info(`Clearing current domain language of ${result.language}`);
95
95
  result.set('language', null);
96
96
  result.save().then(function () {
97
- console.log(`Cleared language for domain ${result.id}`);
97
+ log.info(`Cleared language for domain ${result.id}`);
98
98
  process.exit();
99
99
  }).catch((error) => {
100
- console.error(error);
100
+ log.error(error);
101
101
  process.exit();
102
102
  });
103
103
  }
104
104
  else {
105
- console.warn("Not found: " + indexKey);
105
+ log.warn("Not found: " + indexKey);
106
106
  process.exit();
107
107
  }
108
108
  }).catch((error) => {
109
- console.error(error);
109
+ log.error(error);
110
110
  process.exit();
111
111
  });
112
112
  }
113
113
  else {
114
- console.log("No object type selected");
114
+ log.info("No object type selected");
115
115
  process.exit();
116
116
  }
117
117
  export {};
@@ -9,19 +9,19 @@ models.AcTranslationCache.findOne({
9
9
  }).then((result) => {
10
10
  if (result) {
11
11
  result.destroy().then(function () {
12
- console.log(`Deleted ${result.index_key} to ${result.content}`);
12
+ log.info(`Deleted ${result.index_key} to ${result.content}`);
13
13
  process.exit();
14
14
  }).catch((error) => {
15
- console.error(error);
15
+ log.error(error);
16
16
  process.exit();
17
17
  });
18
18
  }
19
19
  else {
20
- console.warn("Not found: " + indexKey);
20
+ log.warn("Not found: " + indexKey);
21
21
  process.exit();
22
22
  }
23
23
  }).catch((error) => {
24
- console.error(error);
24
+ log.error(error);
25
25
  process.exit();
26
26
  });
27
27
  export {};
@@ -37,7 +37,7 @@ const searchAndReplaceTranslation = (textType, id, content, done) => {
37
37
  if (newContent !== result.content) {
38
38
  result.set('content', newContent);
39
39
  result.save().then(() => {
40
- console.log(`Updated ${result.index_key} to ${result.content}`);
40
+ log.info(`Updated ${result.index_key} to ${result.content}`);
41
41
  done();
42
42
  }).catch(error => {
43
43
  done(error);
@@ -48,7 +48,7 @@ const searchAndReplaceTranslation = (textType, id, content, done) => {
48
48
  }
49
49
  }
50
50
  else {
51
- console.warn("Not found: " + indexKey);
51
+ log.warn("Not found: " + indexKey);
52
52
  done();
53
53
  }
54
54
  }).catch((error) => {
@@ -173,8 +173,8 @@ async.series([
173
173
  },
174
174
  ], error => {
175
175
  if (error)
176
- console.error(error);
177
- console.log(`All done with ${changeCount} changes`);
176
+ log.error(error);
177
+ log.info(`All done with ${changeCount} changes`);
178
178
  process.exit();
179
179
  });
180
180
  export {};
@@ -10,19 +10,19 @@ models.AcTranslationCache.findOne({
10
10
  if (result) {
11
11
  result.set('content', textToReplace);
12
12
  result.save().then(function () {
13
- console.log(`Updated ${result.index_key} to ${result.content}`);
13
+ log.info(`Updated ${result.index_key} to ${result.content}`);
14
14
  process.exit();
15
15
  }).catch((error) => {
16
- console.error(error);
16
+ log.error(error);
17
17
  process.exit();
18
18
  });
19
19
  }
20
20
  else {
21
- console.warn("Not found: " + indexKey);
21
+ log.warn("Not found: " + indexKey);
22
22
  process.exit();
23
23
  }
24
24
  }).catch((error) => {
25
- console.error(error);
25
+ log.error(error);
26
26
  process.exit();
27
27
  });
28
28
  export {};
@@ -10,18 +10,18 @@ models.AcTranslationCache.findAll({
10
10
  }).then((results) => {
11
11
  if (results && results.length > 0) {
12
12
  results.forEach((item) => {
13
- console.log(`${item.index_key} - ${item.content}`);
14
- console.log(`--------------------------------------`);
15
- console.log("");
13
+ log.info(`${item.index_key} - ${item.content}`);
14
+ log.info(`--------------------------------------`);
15
+ log.info("");
16
16
  });
17
17
  }
18
18
  else {
19
- console.warn("No results found");
19
+ log.warn("No results found");
20
20
  process.exit();
21
21
  }
22
22
  process.exit();
23
23
  }).catch((error) => {
24
- console.error(error);
24
+ log.error(error);
25
25
  process.exit();
26
26
  });
27
27
  export {};
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ const log = require('../../utils/logger.cjs');
2
3
  if (process.env.AIRBRAKE_PROJECT_ID) {
3
4
  const Airbrake = require('@airbrake/node');
4
5
  let airBrake = null;
@@ -11,7 +12,7 @@ if (process.env.AIRBRAKE_PROJECT_ID) {
11
12
  }
12
13
  catch (error) {
13
14
  airBrake = null;
14
- console.error(error);
15
+ log.error(error);
15
16
  }
16
17
  module.exports = airBrake;
17
18
  }
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  const redis = require("redis");
3
+ const log = require('../../utils/logger.cjs');
3
4
  let redisClient;
4
5
  if (process.env.REDIS_URL) {
5
6
  let redisUrl = process.env.REDIS_URL;
@@ -21,9 +22,9 @@ if (process.env.REDIS_URL) {
21
22
  else {
22
23
  redisClient = redis.createClient({ legacyMode: true });
23
24
  }
24
- redisClient.on("error", (err) => console.error("Backend Redis client error", err));
25
- redisClient.on("connect", () => console.log("Backend Redis client is connect"));
26
- redisClient.on("reconnecting", () => console.log("Backend Redis client is reconnecting"));
27
- redisClient.on("ready", () => console.log("Backend Redis client is ready"));
28
- redisClient.connect().catch(console.error);
25
+ redisClient.on("error", (err) => log.error("Backend Redis client error", err));
26
+ redisClient.on("connect", () => log.info("Backend Redis client is connect"));
27
+ redisClient.on("reconnecting", () => log.info("Backend Redis client is reconnecting"));
28
+ redisClient.on("ready", () => log.info("Backend Redis client is ready"));
29
+ redisClient.connect().catch(log.error);
29
30
  module.exports = redisClient;
@@ -5,6 +5,7 @@ const _ = require("lodash");
5
5
  const fs = require("fs");
6
6
  const request = require("request");
7
7
  const farmhash = require("farmhash");
8
+ const log = require('../../utils/logger.cjs');
8
9
  const fixTargetLocale = (itemTargetLocale) => {
9
10
  let targetLocale = itemTargetLocale.replace("_", "-");
10
11
  if (targetLocale !== "sr-latin" &&
@@ -19,7 +20,7 @@ const fixTargetLocale = (itemTargetLocale) => {
19
20
  };
20
21
  const addItem = (targetLocale, items, textType, id, content, done) => {
21
22
  if (!content) {
22
- console.log(`No content for ${textType} ${id}`);
23
+ log.info(`No content for ${textType} ${id}`);
23
24
  done();
24
25
  }
25
26
  else {
@@ -42,7 +43,7 @@ const addItem = (targetLocale, items, textType, id, content, done) => {
42
43
  done();
43
44
  })
44
45
  .catch((error) => {
45
- console.error(error);
46
+ log.error(error);
46
47
  done(error);
47
48
  });
48
49
  }
@@ -4,6 +4,7 @@ import * as fs from "fs";
4
4
  import * as path from "path";
5
5
  import { promisify } from "util";
6
6
  import { YpLanguages } from "../../utils/ypLanguages.js";
7
+ import log from "../../utils/loggerTs.js";
7
8
  const readFilePromise = promisify(fs.readFile);
8
9
  const writeFilePromise = promisify(fs.writeFile);
9
10
  export class YpLocaleTranslation {
@@ -39,17 +40,17 @@ export class YpLocaleTranslation {
39
40
  for (const localeDir of localeDirs) {
40
41
  if (localeDir === "en")
41
42
  continue; // Skip English since it's the base
42
- console.log(`Processing locale: ${localeDir}`);
43
+ log.info(`Processing locale: ${localeDir}`);
43
44
  const translationFilePath = path.join(localesDir, localeDir, "translation.json");
44
45
  let translation = await this.loadJsonFile(translationFilePath);
45
46
  translation = this.updateWithMissingKeys(baseTranslation, translation);
46
- console.log(`Updated translation for ${localeDir}:`);
47
+ log.info(`Updated translation for ${localeDir}:`);
47
48
  const missingTranslations = this.extractMissingTranslations(baseTranslation, translation);
48
49
  // Chunk the missing translations
49
50
  const chunks = this.chunkArray(missingTranslations, 15);
50
- console.log(`Missing translations for ${localeDir}:`, missingTranslations, chunks);
51
+ log.info(`Missing translations for ${localeDir}:`, missingTranslations, chunks);
51
52
  for (const chunk of chunks) {
52
- //console.log(`Translating chunk: ${JSON.stringify(chunk)}`); // Log the chunk before translation
53
+ //log.info(`Translating chunk: ${JSON.stringify(chunk)}`); // Log the chunk before translation
53
54
  // Prepare the texts for translation
54
55
  const textsToTranslate = chunk.map((key) => this.getValueByPath(translation, key));
55
56
  // Call your translateUITexts method
@@ -60,14 +61,14 @@ export class YpLocaleTranslation {
60
61
  this.setValueAtPath(translation, key, translations[index]);
61
62
  }
62
63
  });
63
- //console.log(`Chunk after translation: ${JSON.stringify(chunk)}`); // Log the chunk after translation
64
- console.log(`Updated translation for ${localeDir}:`);
64
+ //log.info(`Chunk after translation: ${JSON.stringify(chunk)}`); // Log the chunk after translation
65
+ log.info(`Updated translation for ${localeDir}:`);
65
66
  await writeFilePromise(translationFilePath, JSON.stringify(translation, null, 2));
66
67
  }
67
68
  }
68
69
  }
69
70
  setValueAtPath(obj, path, value) {
70
- //console.log(`Setting value at path: ${path} to '${value}'`); // Debugging log
71
+ //log.info(`Setting value at path: ${path} to '${value}'`); // Debugging log
71
72
  const keys = path.split(".");
72
73
  let current = obj;
73
74
  for (let i = 0; i < keys.length - 1; i++) {
@@ -91,14 +92,14 @@ export class YpLocaleTranslation {
91
92
  if (typeof base[key] === "object" && base[key] !== null) {
92
93
  // If the base key is an object, ensure the target has a corresponding object
93
94
  if (!target.hasOwnProperty(key) || typeof target[key] !== "object" || target[key] === null) {
94
- console.log(`Creating missing object at path: ${newPath.join(".")}`);
95
+ log.info(`Creating missing object at path: ${newPath.join(".")}`);
95
96
  target[key] = {}; // Initialize missing object
96
97
  }
97
98
  updateRecursively(base[key], target[key], newPath); // Recurse into objects
98
99
  }
99
100
  else if (!target.hasOwnProperty(key) || target[key] === "" || target[key] === null) {
100
101
  // If the key is missing or empty in the target, update it from the base
101
- console.log(`Updating missing or empty key at path: ${newPath.join(".")}`);
102
+ log.info(`Updating missing or empty key at path: ${newPath.join(".")}`);
102
103
  target[key] = base[key];
103
104
  }
104
105
  // No action needed for non-empty, non-object fields; they're already present and not empty
@@ -174,14 +175,14 @@ Your ${language} website backend texts JSON output:`;
174
175
  }
175
176
  async translateUITexts(languageIsoCode, textsToTranslate) {
176
177
  try {
177
- console.log(`translateTexts: ${JSON.stringify(textsToTranslate)} ${languageIsoCode}`);
178
+ log.info(`translateTexts: ${JSON.stringify(textsToTranslate)} ${languageIsoCode}`);
178
179
  const languageName = YpLanguages.getEnglishName(languageIsoCode) ||
179
180
  languageIsoCode;
180
- console.log("LANGUAGE NAME:", languageName);
181
+ log.info("LANGUAGE NAME:", languageName);
181
182
  return await this.callLlm(languageName, textsToTranslate);
182
183
  }
183
184
  catch (error) {
184
- console.error("Error in getAnswerIdeas:", error);
185
+ log.error("Error in getAnswerIdeas:", error);
185
186
  return undefined;
186
187
  }
187
188
  }
@@ -201,16 +202,16 @@ Your ${language} website backend texts JSON output:`;
201
202
  let running = true;
202
203
  while (running) {
203
204
  try {
204
- console.log(`Messages ${retries}:`, messages);
205
+ log.info(`Messages ${retries}:`, messages);
205
206
  const results = await this.openaiClient.chat.completions.create({
206
207
  model: this.modelName,
207
208
  messages,
208
209
  max_tokens: this.maxTokens,
209
210
  temperature: this.temperature,
210
211
  });
211
- console.log("Results:", results);
212
+ log.info("Results:", results);
212
213
  const textJson = results.choices[0].message.content;
213
- console.log("Text JSON:", textJson);
214
+ log.info("Text JSON:", textJson);
214
215
  if (textJson) {
215
216
  let cleanText = textJson;
216
217
  // Detect and remove markdown code block syntax if present
@@ -220,10 +221,10 @@ Your ${language} website backend texts JSON output:`;
220
221
  let translationData = [];
221
222
  try {
222
223
  translationData = JSON.parse(jsonrepair(cleanText));
223
- console.log("Parsed Translation Data:", translationData);
224
+ log.info("Parsed Translation Data:", translationData);
224
225
  }
225
226
  catch (error) {
226
- console.error("Error parsing cleaned text as JSON:", error);
227
+ log.error("Error parsing cleaned text as JSON:", error);
227
228
  }
228
229
  if (translationData) {
229
230
  running = false;
@@ -235,10 +236,10 @@ Your ${language} website backend texts JSON output:`;
235
236
  }
236
237
  }
237
238
  catch (error) {
238
- console.error("Error:", error);
239
+ log.error("Error:", error);
239
240
  retries++;
240
241
  if (retries > maxRetries) {
241
- console.error("Max retries reached");
242
+ log.error("Max retries reached");
242
243
  running = false;
243
244
  return undefined;
244
245
  }
@@ -1,6 +1,7 @@
1
1
  import { YpLanguages } from "../../utils/ypLanguages.js";
2
2
  import fs from "fs/promises";
3
3
  import path from "path";
4
+ import log from "../../utils/loggerTs.js";
4
5
  const ensureAllLocaleFoldersAreCreated = async () => {
5
6
  const localesPath = path.join(process.cwd(), "locales");
6
7
  try {
@@ -12,23 +13,23 @@ const ensureAllLocaleFoldersAreCreated = async () => {
12
13
  .then(() => true)
13
14
  .catch(() => false);
14
15
  if (!pathExists) {
15
- console.log("Creating ---->:", localePath);
16
+ log.info("Creating ---->:", localePath);
16
17
  await fs.mkdir(localePath, { recursive: true });
17
18
  await fs.writeFile(path.join(localePath, "translation.json"), "{}");
18
19
  }
19
20
  else {
20
- console.log("Path exists:", localePath);
21
+ log.info("Path exists:", localePath);
21
22
  }
22
23
  }
23
- console.log("Locale folders and files have been created successfully.");
24
+ log.info("Locale folders and files have been created successfully.");
24
25
  }
25
26
  catch (error) {
26
- console.error("Error creating locale folders:", error);
27
+ log.error("Error creating locale folders:", error);
27
28
  }
28
29
  };
29
30
  async function main() {
30
31
  await ensureAllLocaleFoldersAreCreated();
31
32
  }
32
33
  main()
33
- .then(() => console.log("I have updated the locale folders."))
34
- .catch((error) => console.error("Error in main:", error));
34
+ .then(() => log.info("I have updated the locale folders."))
35
+ .catch((error) => log.error("Error in main:", error));
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  // https://gist.github.com/mojodna/1251812
3
3
  const models = require("../../models/index.cjs");
4
- const log = require('../utils/logger.cjs');
4
+ const log = require('../../utils/logger.cjs');
5
5
  const toJson = require('../utils/to_json.cjs');
6
6
  const async = require('async');
7
7
  let airbrake = null;