@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,3 +1,4 @@
1
+ import log from "./loggerTs.js";
1
2
  const systemPromptServerApi = `
2
3
  You are a meticulous API documentation generator. Your output should be in standard Markdown API documentation format. Focus on documenting key components of an Express.js application, including routes, middleware, controllers, services, models, and important utility functions/modules.
3
4
 
@@ -138,7 +139,7 @@ function buildDirectoryTree(dir, basePath = '', isSrc = false) {
138
139
  const entries = fs.readdirSync(dir, { withFileTypes: true });
139
140
  entries.forEach((entry) => {
140
141
  if (IGNORED_PATTERNS.some(pattern => entry.name.includes(pattern) || entry.name.startsWith('.'))) {
141
- console.log(`Skipping ${entry.name} in buildDirectoryTree`);
142
+ log.info(`Skipping ${entry.name} in buildDirectoryTree`);
142
143
  return;
143
144
  }
144
145
  const relativePath = isSrc ? entry.name : path.join(basePath, entry.name);
@@ -183,7 +184,7 @@ function generateMarkdownFromTree(tree, depth = 0) {
183
184
  }
184
185
  function generateDocsReadme() {
185
186
  const tree = buildDirectoryTree(docsDir);
186
- console.log(JSON.stringify(tree, null, 2));
187
+ log.info(JSON.stringify(tree, null, 2));
187
188
  const markdown = generateMarkdownFromTree(tree);
188
189
  const readmePath = path.join(docsDir, 'README.md');
189
190
  const apiHeader = '## API Documentation';
@@ -212,7 +213,7 @@ function findSourceFiles(dir, fileList = []) {
212
213
  for (const entry of entries) {
213
214
  if (IGNORED_PATTERNS.some(pattern => entry.name.includes(pattern) || entry.name.startsWith('.'))) {
214
215
  if (entry.name !== ".env") { // Explicitly allow .env if it's not otherwise ignored by a broader pattern
215
- console.log(`Skipping ${path.join(dir, entry.name)} due to ignore patterns.`);
216
+ log.info(`Skipping ${path.join(dir, entry.name)} due to ignore patterns.`);
216
217
  continue;
217
218
  }
218
219
  }
@@ -244,7 +245,7 @@ async function generateDocumentation(fileList, systemPrompt) {
244
245
  }
245
246
  if (checksum !== existingChecksum) {
246
247
  try {
247
- console.log(`${file}:`);
248
+ log.info(`${file}:`);
248
249
  const completion = await openaiClient.chat.completions.create({
249
250
  model: 'gpt-4.1',
250
251
  temperature: 0.0,
@@ -255,7 +256,7 @@ async function generateDocumentation(fileList, systemPrompt) {
255
256
  ],
256
257
  });
257
258
  let docContent = completion.choices[0].message.content;
258
- console.log(docContent);
259
+ log.info(docContent);
259
260
  docContent = docContent.replace(/```markdown\s+/g, '');
260
261
  const sourceDir = path.join(rootDir, 'src');
261
262
  const relativePathInSrc = path.relative(sourceDir, file);
@@ -266,15 +267,15 @@ async function generateDocumentation(fileList, systemPrompt) {
266
267
  }
267
268
  fs.writeFileSync(docFilePath, docContent);
268
269
  fs.writeFileSync(checksumFile, checksum); // Save the new checksum
269
- console.log(`Documentation generated for ${file}`);
270
+ log.info(`Documentation generated for ${file}`);
270
271
  }
271
272
  catch (error) {
272
- console.error(`Error generating documentation for ${file}:`, error);
273
+ log.error(`Error generating documentation for ${file}:`, error);
273
274
  process.exit(1);
274
275
  }
275
276
  }
276
277
  else {
277
- console.log(`Skipping documentation generation for ${file}, no changes detected.`);
278
+ log.info(`Skipping documentation generation for ${file}, no changes detected.`);
278
279
  }
279
280
  }
280
281
  }
@@ -284,4 +285,4 @@ async function main() {
284
285
  await generateDocumentation(sourceFiles, systemPromptServerApi);
285
286
  generateDocsReadme();
286
287
  }
287
- main().then(() => console.log('Documentation generation complete.'));
288
+ main().then(() => log.info('Documentation generation complete.'));
package/utils/logger.cjs CHANGED
@@ -1,25 +1,4 @@
1
1
  "use strict";
2
- var bunyan = require('bunyan');
3
- var PrettyStream = require('bunyan-prettystream');
4
- var logger;
5
- if (process.env.USE_BUNYAN_LOGGER && process.env.NODE_ENV !== 'production') {
6
- var prettyStdOut = new PrettyStream();
7
- prettyStdOut.pipe(process.stdout);
8
- logger = bunyan.createLogger({
9
- name: 'yrpri',
10
- streams: [{
11
- level: 'debug',
12
- type: 'raw',
13
- stream: prettyStdOut
14
- }]
15
- });
16
- }
17
- else {
18
- if (process.env.USE_BUNYAN_LOGGER) {
19
- logger = bunyan.createLogger({ name: "your-priorities" });
20
- }
21
- else {
22
- logger = console;
23
- }
24
- }
2
+ const { buildLogger } = require("./loggerCore.cjs");
3
+ const logger = buildLogger();
25
4
  module.exports = logger;
@@ -1,2 +1,2 @@
1
1
  export = logger;
2
- declare var logger: any;
2
+ declare const logger: import("winston").Logger;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AirbrakeTransport = void 0;
7
+ const winston_transport_1 = __importDefault(require("winston-transport"));
8
+ const node_1 = require("@airbrake/node");
9
+ class AirbrakeTransport extends winston_transport_1.default {
10
+ constructor(opts) {
11
+ super(opts);
12
+ this.notifier = new node_1.Notifier({
13
+ projectId: opts.projectId,
14
+ projectKey: opts.projectKey,
15
+ environment: opts.environment ?? "production",
16
+ });
17
+ }
18
+ // Winston will call this for every log entry
19
+ log(info, callback) {
20
+ setImmediate(() => this.emit("logged", info)); // required boilerplate
21
+ const { level, message, ...meta } = info;
22
+ const err = info instanceof Error // user called logger.error(err)
23
+ ? info
24
+ : info.stack
25
+ ? Object.assign(new Error(message), { stack: info.stack })
26
+ : new Error(message);
27
+ if (process.env.AIRBRAKE_PROJECT_ID) {
28
+ this.notifier
29
+ .notify({
30
+ error: err,
31
+ context: { severity: this.toSeverity(level) },
32
+ params: meta,
33
+ })
34
+ .catch((err) => console.error("Airbrake notify failed:", err));
35
+ }
36
+ callback();
37
+ }
38
+ toSeverity(level) {
39
+ switch (level) {
40
+ case "error":
41
+ case "crit":
42
+ case "fatal":
43
+ return "error";
44
+ case "warn":
45
+ case "warning":
46
+ return "warning";
47
+ default:
48
+ return "info";
49
+ }
50
+ }
51
+ }
52
+ exports.AirbrakeTransport = AirbrakeTransport;
@@ -0,0 +1,15 @@
1
+ import Transport from "winston-transport";
2
+ import { LogEntry } from "winston";
3
+ export interface AirbrakeTransportOptions extends Transport.TransportStreamOptions {
4
+ projectId: number;
5
+ projectKey: string;
6
+ environment?: string;
7
+ }
8
+ export declare class AirbrakeTransport extends Transport {
9
+ private notifier;
10
+ constructor(opts: AirbrakeTransportOptions);
11
+ log(info: LogEntry & {
12
+ stack?: string;
13
+ }, callback: () => void): void;
14
+ private toSeverity;
15
+ }
@@ -0,0 +1,15 @@
1
+ import Transport from "winston-transport";
2
+ import { LogEntry } from "winston";
3
+ export interface AirbrakeTransportOptions extends Transport.TransportStreamOptions {
4
+ projectId: number;
5
+ projectKey: string;
6
+ environment?: string;
7
+ }
8
+ export declare class AirbrakeTransport extends Transport {
9
+ private notifier;
10
+ constructor(opts: AirbrakeTransportOptions);
11
+ log(info: LogEntry & {
12
+ stack?: string;
13
+ }, callback: () => void): void;
14
+ private toSeverity;
15
+ }
@@ -0,0 +1,45 @@
1
+ import Transport from "winston-transport";
2
+ import { Notifier } from "@airbrake/node";
3
+ export class AirbrakeTransport extends Transport {
4
+ constructor(opts) {
5
+ super(opts);
6
+ this.notifier = new Notifier({
7
+ projectId: opts.projectId,
8
+ projectKey: opts.projectKey,
9
+ environment: opts.environment ?? "production",
10
+ });
11
+ }
12
+ // Winston will call this for every log entry
13
+ log(info, callback) {
14
+ setImmediate(() => this.emit("logged", info)); // required boilerplate
15
+ const { level, message, ...meta } = info;
16
+ const err = info instanceof Error // user called logger.error(err)
17
+ ? info
18
+ : info.stack
19
+ ? Object.assign(new Error(message), { stack: info.stack })
20
+ : new Error(message);
21
+ if (process.env.AIRBRAKE_PROJECT_ID) {
22
+ this.notifier
23
+ .notify({
24
+ error: err,
25
+ context: { severity: this.toSeverity(level) },
26
+ params: meta,
27
+ })
28
+ .catch((err) => console.error("Airbrake notify failed:", err));
29
+ }
30
+ callback();
31
+ }
32
+ toSeverity(level) {
33
+ switch (level) {
34
+ case "error":
35
+ case "crit":
36
+ case "fatal":
37
+ return "error";
38
+ case "warn":
39
+ case "warning":
40
+ return "warning";
41
+ default:
42
+ return "info";
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.buildLogger = buildLogger;
7
+ // utils/loggerCore.ts (one single implementation)
8
+ const winston_1 = __importDefault(require("winston"));
9
+ const loggerAirbrakeTransport_cjs_1 = require("./loggerAirbrakeTransport.cjs");
10
+ function buildLogger() {
11
+ const transports = [
12
+ new winston_1.default.transports.Console({
13
+ format: winston_1.default.format.combine(winston_1.default.format.colorize(), winston_1.default.format.simple()),
14
+ }),
15
+ ];
16
+ if (process.env.AIRBRAKE_PROJECT_ID && process.env.AIRBRAKE_PROJECT_KEY) {
17
+ transports.push(new loggerAirbrakeTransport_cjs_1.AirbrakeTransport({
18
+ level: "error",
19
+ projectId: +process.env.AIRBRAKE_PROJECT_ID,
20
+ projectKey: process.env.AIRBRAKE_PROJECT_KEY,
21
+ environment: process.env.NODE_ENV,
22
+ }));
23
+ }
24
+ return winston_1.default.createLogger({
25
+ level: process.env.WINSTON_LOG_LEVEL ?? "debug",
26
+ format: winston_1.default.format.combine(winston_1.default.format.timestamp(), winston_1.default.format.errors({ stack: true }), winston_1.default.format.json()),
27
+ transports,
28
+ });
29
+ }
@@ -0,0 +1,2 @@
1
+ import winston from "winston";
2
+ export declare function buildLogger(): winston.Logger;
@@ -0,0 +1,2 @@
1
+ import winston from "winston";
2
+ export declare function buildLogger(): winston.Logger;
@@ -0,0 +1,23 @@
1
+ // utils/loggerCore.ts (one single implementation)
2
+ import winston from "winston";
3
+ import { AirbrakeTransport } from "./loggerAirbrakeTransportTs.js";
4
+ export function buildLogger() {
5
+ const transports = [
6
+ new winston.transports.Console({
7
+ format: winston.format.combine(winston.format.colorize(), winston.format.simple()),
8
+ }),
9
+ ];
10
+ if (process.env.AIRBRAKE_PROJECT_ID && process.env.AIRBRAKE_PROJECT_KEY) {
11
+ transports.push(new AirbrakeTransport({
12
+ level: "error",
13
+ projectId: +process.env.AIRBRAKE_PROJECT_ID,
14
+ projectKey: process.env.AIRBRAKE_PROJECT_KEY,
15
+ environment: process.env.NODE_ENV,
16
+ }));
17
+ }
18
+ return winston.createLogger({
19
+ level: process.env.WINSTON_LOG_LEVEL ?? "debug",
20
+ format: winston.format.combine(winston.format.timestamp(), winston.format.errors({ stack: true }), winston.format.json()),
21
+ transports,
22
+ });
23
+ }
@@ -1,3 +1,2 @@
1
- import * as bunyan from 'bunyan';
2
- declare let logger: bunyan;
1
+ export declare const logger: import("winston").Logger;
3
2
  export default logger;
package/utils/loggerTs.js CHANGED
@@ -1,26 +1,3 @@
1
- import * as bunyan from 'bunyan';
2
- import PrettyStream from 'bunyan-prettystream';
3
- let logger;
4
- if (process.env.USE_BUNYAN_LOGGER && process.env.NODE_ENV !== 'production') {
5
- const prettyStdOut = new PrettyStream();
6
- prettyStdOut.pipe(process.stdout);
7
- logger = bunyan.createLogger({
8
- name: 'yrpri',
9
- streams: [{
10
- level: 'debug',
11
- type: 'raw',
12
- stream: prettyStdOut
13
- }]
14
- });
15
- }
16
- else {
17
- if (process.env.USE_BUNYAN_LOGGER) {
18
- logger = bunyan.createLogger({ name: "your-priorities" });
19
- }
20
- else {
21
- // If you don't want to use any logger, you can assign 'console' to 'logger'.
22
- // However, you need to cast it to any as 'console' and 'bunyan' have different types.
23
- logger = console;
24
- }
25
- }
1
+ import { buildLogger } from "./loggerCoreTs.js";
2
+ export const logger = buildLogger();
26
3
  export default logger;
@@ -2,6 +2,7 @@
2
2
  var models = require("../models/index.cjs");
3
3
  var _ = require("lodash");
4
4
  var async = require('async');
5
+ const log = require('./logger.cjs');
5
6
  var setupIconsFromDefault = function (callback) {
6
7
  const icons = [
7
8
  {
@@ -4,6 +4,7 @@ const models = require('../models/index.cjs');
4
4
  const _ = require('lodash');
5
5
  const fs = require('fs');
6
6
  const request = require('request');
7
+ const log = require('./logger.cjs');
7
8
  const recountPosts = (postIds, done) => {
8
9
  async.forEachSeries(postIds, (postId, forEachPostCallback) => {
9
10
  recountPost(postId, forEachPostCallback);
@@ -80,7 +81,7 @@ const recountPost = (postId, done) => {
80
81
  post.counter_endorsements_up = endorsementsCount;
81
82
  post.counter_endorsements_down = oppositionCount;
82
83
  post.save().then((results) => {
83
- console.log(`Recount for post ${post.id} done`);
84
+ log.info(`Recount for post ${post.id} done`);
84
85
  done();
85
86
  });
86
87
  }).catch((error) => {
@@ -134,7 +135,7 @@ const recountPoint = (pointId, done) => {
134
135
  point.counter_quality_up = counter_quality_up;
135
136
  point.counter_quality_down = counter_quality_down;
136
137
  point.save().then((results) => {
137
- console.log(`Recount for point ${point.id} done`);
138
+ log.info(`Recount for point ${point.id} done`);
138
139
  done();
139
140
  });
140
141
  }).catch((error) => {
@@ -332,7 +333,7 @@ const recountGroup = (groupId, callback) => {
332
333
  group.set('counter_users', Math.max(userCount, 1));
333
334
  group.set('counter_posts', postCount);
334
335
  group.save().then(() => {
335
- console.log(`Recount Group ${group.id} users: ${Math.max(userCount, 1)} posts: ${postCount} points: ${pointCount}`);
336
+ log.info(`Recount Group ${group.id} users: ${Math.max(userCount, 1)} posts: ${postCount} points: ${pointCount}`);
336
337
  callback(null, { postCount, pointCount, userCount, allUsers });
337
338
  }).catch(error => {
338
339
  callback(error);
@@ -388,7 +389,7 @@ const recountCommunity = (communityId, callback) => {
388
389
  community.set('counter_users', Math.max(_.uniq(allUsers).length, 1));
389
390
  community.set('counter_posts', postCount);
390
391
  community.save().then(() => {
391
- console.log(`Recount Community ${community.id} users: ${Math.max(_.uniq(allUsers).length, 1)} posts: ${postCount} points: ${pointCount}`);
392
+ log.info(`Recount Community ${community.id} users: ${Math.max(_.uniq(allUsers).length, 1)} posts: ${postCount} points: ${pointCount}`);
392
393
  callback();
393
394
  }).catch(error => {
394
395
  callback(error);
@@ -397,7 +398,7 @@ const recountCommunity = (communityId, callback) => {
397
398
  });
398
399
  }
399
400
  else {
400
- console.error(`Community ${communityId} found`);
401
+ log.error(`Community ${communityId} found`);
401
402
  callback();
402
403
  }
403
404
  }).catch(error => {