@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.
- package/agents/assistants/agentAssistant.js +4 -3
- package/agents/assistants/baseAssistant.js +72 -71
- package/agents/assistants/baseAssistantWithVoice.js +6 -5
- package/agents/assistants/modes/agentDirectConnection.js +8 -7
- package/agents/assistants/modes/agentSelectionMode.js +2 -1
- package/agents/assistants/modes/baseAssistantMode.js +3 -2
- package/agents/assistants/modes/tools/agentTools.js +11 -10
- package/agents/assistants/modes/tools/loginTools.js +7 -6
- package/agents/assistants/modes/tools/models/agents.js +6 -5
- package/agents/assistants/modes/tools/models/subscriptions.js +7 -6
- package/agents/assistants/modes/tools/navigationTools.js +7 -6
- package/agents/assistants/modes/tools/subscriptionTools.js +12 -11
- package/agents/assistants/modes/tools/workflowConverstationTools.js +7 -6
- package/agents/assistants/voiceAssistant.js +45 -44
- package/agents/controllers/agentProductController.js +8 -7
- package/agents/controllers/agentSubscriptionController.js +13 -12
- package/agents/controllers/assistantsController.js +45 -44
- package/agents/controllers/policySynthAgents.js +33 -32
- package/agents/managers/emailInvitesManager.js +4 -3
- package/agents/managers/newAiModelSetup.js +46 -45
- package/agents/managers/notificationAgentQueueManager.js +55 -54
- package/agents/managers/subscriptionManager.js +24 -23
- package/agents/models/agentProduct.js +2 -1
- package/agents/models/agentProductBoosterPurchase.js +2 -1
- package/agents/models/testData/createEvolyAgentProduct.js +7 -6
- package/agents/models/testData/old/updateAgentWorkflowConfiguration.js +5 -4
- package/agents/models/testData/updateAgentWorkflowConfiguration.js +5 -4
- package/agents/tools/setTemplateWorkflowCommunityId.js +6 -5
- package/app.d.ts +2 -1
- package/app.js +60 -34
- package/authorization.cjs +4 -4
- package/controllers/allOurIdeas.js +45 -44
- package/controllers/groups.cjs +4 -9
- package/controllers/images.cjs +8 -8
- package/controllers/index.cjs +1 -1
- package/controllers/points.cjs +1 -1
- package/controllers/posts.cjs +3 -3
- package/deleteUnwantedDeclerations.cjs +6 -5
- package/models/community.cjs +1 -1
- package/models/domain.cjs +7 -7
- package/models/image.cjs +2 -2
- package/models/index.cjs +8 -4
- package/models/post.cjs +10 -10
- package/models/user.cjs +1 -1
- package/models/video.cjs +4 -4
- package/package.json +5 -5
- package/scripts/addRatingUsersToGroup.js +1 -1
- package/scripts/addUserToOrganization.js +8 -8
- package/scripts/agents/changeModelForWorkflowGroupTemplate.js +13 -12
- package/scripts/agents/generateAgentWorkflowTemplateFromAgentClass.js +5 -4
- package/scripts/analyseRatingsForCommunity.js +2 -2
- package/scripts/analyzeAndFixBrokenPointUsers.js +3 -3
- package/scripts/analyzeEndorsementsByCountry.js +7 -7
- package/scripts/analyzePostsForCommunity.js +1 -1
- package/scripts/bulkStatusUpdates/listUpdates.js +2 -2
- package/scripts/bulkStatusUpdates/mergeLatestPostsToUpdate.js +5 -5
- package/scripts/bulkStatusUpdates/performUpdate.js +9 -9
- package/scripts/bulkStatusUpdates/performUpdateForGroup.cjs +12 -11
- package/scripts/bulkStatusUpdates/performUpdateForStatus.js +15 -15
- package/scripts/change/changeVideoAspectTo.js +3 -3
- package/scripts/change/setUseNewVersion.cjs +5 -4
- package/scripts/changeCommunityGroupcount.js +3 -3
- package/scripts/changeCommunityPostCount.js +3 -3
- package/scripts/changeGroupPostCount.js +3 -3
- package/scripts/changeLanguage.js +4 -4
- package/scripts/changeOfficalStatus.js +3 -3
- package/scripts/cleanups/deleteAnonNotifications.cjs +8 -7
- package/scripts/cleanups/deleteLinkGroupsWithDeletedCommunities.js +8 -8
- package/scripts/cleanups/deleteYearOldNotifications.cjs +6 -5
- package/scripts/cleanups/removeAllUsersFromHiddenPublicGroup.js +5 -5
- package/scripts/clearAllEndorsementInGroup.js +5 -5
- package/scripts/cloning/clearUsersForCommunitiesFromUrl.js +3 -3
- package/scripts/cloning/cloneFromUrlScript.js +4 -4
- package/scripts/cloning/cloneWBFromUrlScriptAndCreateLinks.js +6 -6
- package/scripts/cloning/cloneWBFromUrlScriptNoUsersOrPoints.js +6 -6
- package/scripts/cloning/cloneWBSerbianFromUrlScriptAndCreateLinks.js +6 -6
- package/scripts/cloning/copyCommunityConfigAndTranslationsFromURL.js +3 -3
- package/scripts/cloning/copyCommunityOneGroupToDomainNoUsersNoEndorsements.js +2 -2
- package/scripts/cloning/copyCommunityToDomainNoUsersNoEndorsements.js +2 -2
- package/scripts/cloning/copyCommunityToDomainWithEverything.js +2 -2
- package/scripts/cloning/copyCommunityToDomainWithOnlyGroups.js +3 -3
- package/scripts/cloning/copyGroupConfigAndTranslationsFromURL.js +3 -3
- package/scripts/cloning/copyPostToGroupOld.js +12 -12
- package/scripts/cloning/copyPostVideosFromURL.js +3 -3
- package/scripts/cloning/copyPostWithOutAnyVotingOrActivities.js +2 -2
- package/scripts/cloning/deepCloneSerbianWBFromUrlScriptAndCreateLinks.js +7 -7
- package/scripts/cloning/deepCloneWBFromUrlScriptAndCreateLinks.js +6 -6
- package/scripts/cloning/setAdminsFromURL.js +5 -5
- package/scripts/cloning/setExternalIdsFromURL.js +3 -3
- package/scripts/countCommunity.js +11 -11
- package/scripts/countCommunityUsers.js +4 -4
- package/scripts/countDelayedNotifications.js +3 -3
- package/scripts/countGroup.js +11 -11
- package/scripts/countStuff.js +3 -3
- package/scripts/countUniqueVotersInAGroup.js +3 -3
- package/scripts/createInvitesAndShow.js +2 -2
- package/scripts/database/sync_database.js +2 -2
- package/scripts/database/sync_dev_database.js +3 -3
- package/scripts/debugNotifications.js +5 -5
- package/scripts/deleteAllNewsFeeds.js +2 -2
- package/scripts/deleteCategory.js +1 -1
- package/scripts/deleteOldAppActivities.js +5 -4
- package/scripts/deletePostContactDataForCommunity.js +5 -4
- package/scripts/destroy/destroy_all_but_one_domain.js +59 -59
- package/scripts/displayAuthorForPost.js +1 -1
- package/scripts/domains/createDomain.js +5 -4
- package/scripts/domains/importDomainsFromXls.js +7 -6
- package/scripts/endorsementFraudDetection/analyseEndorsementsForCommunity.js +2 -2
- package/scripts/endorsementFraudDetection/bulkDeleteDuplicateEndorsmentsFromUrl.js +9 -9
- package/scripts/exportAllStatusChanges.js +5 -5
- package/scripts/exportEndorsementsForCommunity.js +5 -5
- package/scripts/exportPointQualitiesForCommunity.js +5 -5
- package/scripts/exportPostsAndPointsForCommunity.js +9 -9
- package/scripts/exportPostsDataSetForDomain.js +12 -12
- package/scripts/exportPostsForGroup.js +7 -7
- package/scripts/exportRatingsForPost.js +2 -2
- package/scripts/exportUserEndorsementsWithUserAnalysis.js +6 -6
- package/scripts/exportUsersForCommunity.js +3 -3
- package/scripts/exportUsersForDomain.js +3 -3
- package/scripts/exportUsersForGroup.js +3 -3
- package/scripts/exports/ratingDistribution.js +6 -6
- package/scripts/exports/whoEndorsedWhatByCommunity.js +2 -2
- package/scripts/findUnusedClientImports.js +2 -2
- package/scripts/fixAllPostPointCounts.js +1 -1
- package/scripts/fixAnonNotificationsSettings.js +5 -5
- package/scripts/fixCountKopavogur.js +1 -1
- package/scripts/fixEndorsementsAfterCopyPostToGroup.js +10 -10
- package/scripts/fixExternalUserId.js +2 -2
- package/scripts/fixGroupAccess.js +3 -3
- package/scripts/fixGroupIdeasAndPointsCount.js +2 -2
- package/scripts/fixNotificationSettings.js +4 -4
- package/scripts/fixSurveyRadioBakedInSubCodes.js +6 -6
- package/scripts/fixWrongUserIdForStatusUpdates.js +6 -5
- package/scripts/gallery/exportGalleryData.js +2 -2
- package/scripts/gallery/importGalleryForCommunity.js +14 -14
- package/scripts/gallery/readJsonAndDownloadImagesVersion2.js +6 -6
- package/scripts/gallery/refreshAcApiPostIdsForCommunity.js +5 -5
- package/scripts/genderAnalysis.js +10 -10
- package/scripts/genderAnalysisByStatus.js +4 -4
- package/scripts/importAllLocalesFromLocalFolders.js +7 -7
- package/scripts/importDomain.js +131 -131
- package/scripts/keys/addOidcToDomain.cjs +10 -9
- package/scripts/landUseGame/export3Ddata.js +15 -15
- package/scripts/listLanguagesForGroup.js +6 -6
- package/scripts/loadTestCreateDummyContentForGroup.js +2 -2
- package/scripts/makeRecursiveMapData.js +4 -4
- package/scripts/mapping/community_map_csv.js +5 -5
- package/scripts/moveCommunityToDomain.js +3 -3
- package/scripts/moveGroupToCommunity.js +3 -3
- package/scripts/movePostToGroup.js +5 -5
- package/scripts/movePostsToGroupsRecountGroupFromUrl.js +6 -6
- package/scripts/oldMovePostToGroup.js +9 -9
- package/scripts/processCsvForPdfUrls.js +2 -2
- package/scripts/processCsvForTranslationAndToxicity.js +10 -10
- package/scripts/recount/recount_recursive_communities.js +6 -6
- package/scripts/recountALLCommunityGroupCounts.js +4 -4
- package/scripts/recountAll.js +3 -3
- package/scripts/recountCommunitesFromUrl.js +3 -3
- package/scripts/recountCommunity.js +2 -2
- package/scripts/recountGroup.js +5 -5
- package/scripts/recountGroupNoUserChange.js +5 -5
- package/scripts/resetAllEndorsementsForGroup.js +3 -3
- package/scripts/resetEnTranslationForGroup.js +5 -5
- package/scripts/setAdminOnAll.cjs +15 -14
- package/scripts/setDomainAdmin.cjs +7 -6
- package/scripts/setDomainLocales.js +2 -2
- package/scripts/setEarlQuestionIdOnGroup.cjs +5 -4
- package/scripts/setLanguageOnGroupCommunitesFromUrl.js +3 -3
- package/scripts/setMemberOfAll.js +14 -14
- package/scripts/setNewUserForContentOfCommunity.js +9 -9
- package/scripts/setOfficialStatusOnAllPostsForCommunity.js +1 -1
- package/scripts/setUserOnAll.js +14 -14
- package/scripts/showCategoryForGroup.js +1 -1
- package/scripts/showOldActivityTypes.js +3 -3
- package/scripts/showPostsMissingCategoryForGroup.js +2 -2
- package/scripts/showStatuses.js +4 -4
- package/scripts/showUniqueVotersInCommunity.js +4 -4
- package/scripts/showUserAgentsAndIpsForEmails.js +4 -4
- package/scripts/simpleExportForGroupsForCommunity.js +5 -5
- package/scripts/simpleExportForPointsForCommunity.js +5 -5
- package/scripts/simpleExportForPostsForCommunity.js +5 -5
- package/scripts/testForEndorsments.js +4 -4
- package/scripts/undeleteGroupAndAllContent.js +8 -8
- package/scripts/undeletePost.js +7 -7
- package/scripts/unlinkSsn.js +4 -4
- package/scripts/updateFromAlthingi.js +8 -8
- package/scripts/users/createUserAddDomain.js +6 -5
- package/scripts/users/importUsersForDomainsFromXls.js +4 -3
- package/scripts/users/listDomainUsersWithSsn.js +6 -5
- package/scripts/users/removeUserFromDomain.js +6 -5
- package/scripts/users/updatePasswordFromSsn.js +5 -4
- package/scripts/users/updateUserSsnFromEmail.js +5 -4
- package/services/controllers/activities.cjs +1 -1
- package/services/controllers/news_feeds.cjs +1 -1
- package/services/controllers/notifications.cjs +1 -1
- package/services/controllers/recommendations.cjs +1 -1
- package/services/engine/allOurIdeas/aiHelper.js +10 -9
- package/services/engine/analytics/export_anon_community_activities.js +3 -3
- package/services/engine/analytics/importer.js +10 -10
- package/services/engine/analytics/plausible/manager.cjs +4 -4
- package/services/engine/analytics/statsCalc.cjs +1 -1
- package/services/engine/analytics/utils.cjs +11 -10
- package/services/engine/marketing/campaign.cjs +1 -0
- package/services/engine/moderation/fraud/CreateFraudAuditReport.cjs +2 -1
- package/services/engine/moderation/fraud/FraudBase.cjs +3 -2
- package/services/engine/moderation/fraud/FraudDeleteBase.cjs +5 -4
- package/services/engine/moderation/fraud/FraudGetBase.cjs +2 -1
- package/services/engine/moderation/fraud/FraudGetEndorsements.cjs +2 -1
- package/services/engine/moderation/fraud/FraudGetPointQualities.cjs +2 -1
- package/services/engine/moderation/fraud/FraudGetPoints.cjs +2 -1
- package/services/engine/moderation/fraud/FraudGetPosts.cjs +2 -1
- package/services/engine/moderation/fraud/FraudGetRatings.cjs +2 -1
- package/services/engine/moderation/fraud/FraudScannerNotifier.cjs +10 -9
- package/services/engine/moderation/get_moderation_items.cjs +1 -1
- package/services/engine/moderation/image_labeling/ImageLabelingBase.cjs +1 -1
- package/services/engine/moderation/process_moderation_items.cjs +1 -1
- package/services/engine/moderation/toxicity_analysis.cjs +1 -1
- package/services/engine/news_feeds/generate_dynamically.cjs +1 -1
- package/services/engine/news_feeds/generate_from_notifications.cjs +1 -1
- package/services/engine/notifications/emails_utils.cjs +2 -2
- package/services/engine/notifications/generate_point_notifications.cjs +1 -1
- package/services/engine/notifications/generate_post_notifications.cjs +1 -1
- package/services/engine/notifications/process_delayed_notifications.cjs +38 -38
- package/services/engine/notifications/process_general_notifications.cjs +1 -0
- package/services/engine/old/exporters/categories_dataset.js +11 -11
- package/services/engine/old/exporters/sentiment_dataset.js +12 -12
- package/services/engine/recommendations/events_importer.cjs +5 -5
- package/services/engine/recommendations/events_manager.cjs +1 -1
- package/services/engine/reports/add_points_to_sheet.cjs +3 -2
- package/services/engine/reports/commonUtils.js +3 -2
- package/services/engine/reports/common_utils.cjs +8 -8
- package/services/engine/reports/docx_group_report.cjs +1 -1
- package/services/engine/reports/xlsAllOurIdeasExport.js +16 -15
- package/services/engine/reports/xls_community_users_report.cjs +2 -2
- package/services/engine/reports/xls_group_report.cjs +1 -1
- package/services/llms/baseChatBot.js +12 -11
- package/services/llms/imageGeneration/chatGptImageGenerator.js +3 -2
- package/services/llms/imageGeneration/collectionImageGenerator.js +7 -6
- package/services/llms/imageGeneration/dalleImageGenerator.js +6 -5
- package/services/llms/imageGeneration/fluxImageGenerator.js +5 -4
- package/services/llms/imageGeneration/imageProcessorService.js +2 -1
- package/services/llms/imageGeneration/imagenImageGenerator.js +8 -7
- package/services/llms/imageGeneration/s3Service.js +12 -11
- package/services/llms/llmTranslation.js +30 -29
- package/services/models/ac_activity.cjs +1 -1
- package/services/models/ac_notification.cjs +1 -1
- package/services/models/ac_translation_cache.cjs +11 -11
- package/services/scripts/analytics/setup_all_plausible_goals.cjs +3 -2
- package/services/scripts/fix_old_delayed_notifications.js +3 -3
- package/services/scripts/kue_status.js +11 -11
- package/services/scripts/kue_watch_stuck_jobs.js +6 -6
- package/services/scripts/translation_clear_language.js +21 -21
- package/services/scripts/translation_delete.js +4 -4
- package/services/scripts/translation_replace_text_from_url.js +4 -4
- package/services/scripts/translation_update.js +4 -4
- package/services/scripts/translations_list.js +5 -5
- package/services/utils/airbrake.cjs +2 -1
- package/services/utils/redisConnection.cjs +6 -5
- package/services/utils/translation_helpers.cjs +3 -2
- package/services/utils/updateAllLocalesFromEn.js +20 -19
- package/services/utils/updateLocaleFolders.js +7 -6
- package/services/workers/activity.cjs +1 -1
- package/services/workers/anonymizations.cjs +1 -1
- package/services/workers/bulk_status_update.cjs +2 -2
- package/services/workers/delayed_jobs.cjs +1 -1
- package/services/workers/deletions.cjs +1 -1
- package/services/workers/email.cjs +1 -1
- package/services/workers/fraud_management.cjs +3 -3
- package/services/workers/generativeAi.js +6 -5
- package/services/workers/main.cjs +1 -1
- package/services/workers/marketing.cjs +1 -1
- package/services/workers/moderation.cjs +1 -1
- package/services/workers/notification_delivery.cjs +1 -1
- package/services/workers/notification_news_feed.cjs +1 -1
- package/services/workers/queue.cjs +2 -2
- package/services/workers/recount.cjs +1 -1
- package/services/workers/reports.cjs +1 -1
- package/services/workers/similarities.cjs +4 -2
- package/services/workers/speech_to_text.cjs +1 -1
- package/utils/airbrake.cjs +2 -1
- package/utils/cjsCodeReview.js +7 -6
- package/utils/community_mapping_tools.cjs +3 -2
- package/utils/copy_utils.cjs +32 -31
- package/utils/export_utils.cjs +7 -7
- package/utils/generateDocumentation.js +10 -9
- package/utils/logger.cjs +2 -23
- package/utils/logger.d.cts +1 -1
- package/utils/loggerAirbrakeTransport.cjs +52 -0
- package/utils/loggerAirbrakeTransport.d.cts +15 -0
- package/utils/loggerAirbrakeTransportTs.d.ts +15 -0
- package/utils/loggerAirbrakeTransportTs.js +45 -0
- package/utils/loggerCore.cjs +29 -0
- package/utils/loggerCore.d.cts +2 -0
- package/utils/loggerCoreTs.d.ts +2 -0
- package/utils/loggerCoreTs.js +23 -0
- package/utils/loggerTs.d.ts +1 -2
- package/utils/loggerTs.js +2 -25
- package/utils/manifest_generator.cjs +1 -0
- package/utils/recount_utils.cjs +6 -5
- package/utils/seedModels.js +50 -49
- package/utils/sitemap_generator.cjs +4 -4
- package/utils/ypLanguages.js +2 -2
- package/webSockets.js +8 -7
- package/services/utils/logger.cjs +0 -25
- package/services/utils/logger.d.cts +0 -2
- package/src/agents/assistants/assistant.d.ts +0 -156
- package/src/controllers/audios.d.ts +0 -5
- package/src/controllers/categories.d.ts +0 -5
- package/src/controllers/communities.d.ts +0 -5
- package/src/controllers/domains.d.ts +0 -5
- package/src/controllers/groups.d.ts +0 -5
- package/src/controllers/images.d.ts +0 -5
- package/src/controllers/points.d.ts +0 -5
- package/src/controllers/posts.d.ts +0 -5
- package/src/controllers/ratings.d.ts +0 -5
- package/src/controllers/users.d.ts +0 -5
- package/src/controllers/videos.d.ts +0 -5
- package/src/models/index.d.ts +0 -84
- package/src/services/controllers/activities.d.ts +0 -5
- package/src/services/controllers/notifications.d.ts +0 -5
- package/src/utils/copy_utils.d.ts +0 -4
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
270
|
+
log.info(`Documentation generated for ${file}`);
|
|
270
271
|
}
|
|
271
272
|
catch (error) {
|
|
272
|
-
|
|
273
|
+
log.error(`Error generating documentation for ${file}:`, error);
|
|
273
274
|
process.exit(1);
|
|
274
275
|
}
|
|
275
276
|
}
|
|
276
277
|
else {
|
|
277
|
-
|
|
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(() =>
|
|
288
|
+
main().then(() => log.info('Documentation generation complete.'));
|
package/utils/logger.cjs
CHANGED
|
@@ -1,25 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
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;
|
package/utils/logger.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export = logger;
|
|
2
|
-
declare
|
|
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,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
|
+
}
|
package/utils/loggerTs.d.ts
CHANGED
package/utils/loggerTs.js
CHANGED
|
@@ -1,26 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
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;
|
package/utils/recount_utils.cjs
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
401
|
+
log.error(`Community ${communityId} found`);
|
|
401
402
|
callback();
|
|
402
403
|
}
|
|
403
404
|
}).catch(error => {
|