@yrpri/api 9.0.110 → 9.0.112
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/baseAssistant.d.ts +1 -1
- package/agents/assistants/baseAssistant.js +1 -1
- package/agents/assistants/modes/tools/baseTools.d.ts +1 -1
- package/agents/assistants/modes/tools/models/agents.d.ts +1 -1
- package/agents/assistants/modes/tools/models/subscriptions.d.ts +1 -1
- package/agents/assistants/modes/tools/models/users.d.ts +1 -1
- package/agents/assistants/voiceAssistant.d.ts +1 -1
- package/agents/assistants/voiceAssistant.js +1 -1
- package/agents/controllers/policySynthAgents.js +0 -4
- package/agents/managers/emailInvitesManager.js +1 -1
- package/agents/managers/newAiModelSetup.js +14 -9
- package/agents/managers/notificationAgentQueueManager.js +1 -1
- package/app.js +4 -4
- package/controllers/allOurIdeas.js +3 -3
- package/controllers/audios.cjs +1 -1
- package/controllers/bulkStatusUpdates.cjs +1 -1
- package/controllers/communities.cjs +14 -14
- package/controllers/domains.cjs +12 -12
- package/controllers/groups.cjs +17 -17
- package/controllers/images.cjs +1 -1
- package/controllers/points.cjs +1 -1
- package/controllers/posts.cjs +3 -3
- package/controllers/ratings.cjs +1 -1
- package/controllers/users.cjs +4 -4
- package/controllers/videos.cjs +1 -1
- package/deleteUnwantedDeclerations.cjs +7 -7
- package/models/audio.cjs +1 -1
- package/models/campaign.cjs +1 -1
- package/models/community.cjs +1 -1
- package/models/domain.cjs +1 -1
- package/models/group.cjs +1 -1
- package/models/image.cjs +1 -1
- package/models/index.cjs +1 -1
- package/models/index.d.cts +2 -3
- package/models/point.cjs +1 -1
- package/models/post.cjs +1 -1
- package/models/video.cjs +2 -2
- package/package.json +7 -7
- package/scripts/cloning/clearUsersForCommunitiesFromUrl.js +1 -1
- package/scripts/cloning/cloneWBFromUrlScriptAndCreateLinks.js +1 -1
- package/scripts/cloning/cloneWBFromUrlScriptNoUsersOrPoints.js +1 -1
- package/scripts/cloning/cloneWBSerbianFromUrlScriptAndCreateLinks.js +1 -1
- package/scripts/cloning/copyCommunityConfigAndTranslationsFromURL.js +1 -1
- package/scripts/cloning/copyGroupConfigAndTranslationsFromURL.js +1 -1
- package/scripts/cloning/copyPostVideosFromURL.js +1 -1
- package/scripts/cloning/deepCloneSerbianWBFromUrlScriptAndCreateLinks.js +1 -1
- package/scripts/cloning/deepCloneWBFromUrlScriptAndCreateLinks.js +1 -1
- package/scripts/cloning/setAdminsFromURL.js +1 -1
- package/scripts/cloning/setExternalIdsFromURL.js +1 -1
- package/scripts/gallery/refreshAcApiPostIdsForCommunity.js +1 -1
- package/scripts/importAllLocalesFromLocalFolders.js +1 -1
- package/scripts/landUseGame/export3Ddata.js +1 -1
- package/{active-citizen → services}/engine/analytics/importer.js +5 -5
- package/{active-citizen → services}/engine/old/exporters/categories_dataset.js +3 -3
- package/{active-citizen → services}/engine/old/exporters/sentiment_dataset.js +2 -2
- package/{active-citizen → services}/scripts/kue_watch_stuck_jobs.js +2 -2
- package/src/models/index.d.ts +66 -0
- package/src/server.d.ts +104 -0
- package/src/services/controllers/activities.d.ts +5 -0
- package/src/services/controllers/notifications.d.ts +5 -0
- package/utils/copy_utils.cjs +4 -4
- package/utils/generateDocumentation.js +287 -0
- package/utils/seedModels.d.ts +2 -0
- package/utils/seedModels.js +389 -0
- package/active-citizen/controllers/activities.d.ts +0 -5
- package/active-citizen/controllers/notifications.d.ts +0 -5
- package/migrations/agentAuditLogs.cjs +0 -46
- package/migrations/agentAuditLogs.d.cts +0 -1
- package/migrations/agentClasses.cjs +0 -60
- package/migrations/agentClasses.d.cts +0 -1
- package/migrations/agentConnectorClasses.cjs +0 -61
- package/migrations/agentConnectorClasses.d.cts +0 -1
- package/migrations/agentConnectors.cjs +0 -50
- package/migrations/agentConnectors.d.cts +0 -1
- package/migrations/agentEvals.cjs +0 -45
- package/migrations/agentEvals.d.cts +0 -1
- package/migrations/agentRegistries.cjs +0 -40
- package/migrations/agentRegistries.d.cts +0 -1
- package/migrations/agents.cjs +0 -54
- package/migrations/agents.d.cts +0 -1
- package/migrations/aiModels.cjs +0 -49
- package/migrations/aiModels.d.cts +0 -1
- package/migrations/apiUsage.cjs +0 -47
- package/migrations/apiUsage.d.cts +0 -1
- package/migrations/apis.cjs +0 -49
- package/migrations/apis.d.cts +0 -1
- package/migrations/groupPrivateData.cjs +0 -30
- package/migrations/groupPrivateData.d.cts +0 -2
- package/migrations/modelUsage.cjs +0 -60
- package/migrations/modelUsage.d.cts +0 -2
- package/migrations/privateAccessStore.cjs +0 -55
- package/migrations/privateAccessStore.d.cts +0 -1
- package/migrations/zzz_associations.cjs +0 -154
- package/migrations/zzz_associations.d.cts +0 -1
- package/migrations/zzzz_createUsersAndAdminsForClasses.cjs +0 -100
- package/migrations/zzzz_createUsersAndAdminsForClasses.d.cts +0 -1
- package/migrations/zzzzz_create_agent_runs.cjs +0 -606
- package/migrations/zzzzz_create_agent_runs.d.cts +0 -2
- package/migrations/zzzzzz_create_agent_runs_fix.cjs +0 -11
- package/migrations/zzzzzz_create_agent_runs_fix.d.cts +0 -2
- package/migrations/zzzzzzz_create_trees.cjs +0 -81
- package/migrations/zzzzzzz_create_trees.d.cts +0 -2
- package/publish.js +0 -40
- package/repack.d.ts +0 -1
- package/repack.js +0 -53
- /package/{active-citizen → services}/controllers/activities.cjs +0 -0
- /package/{active-citizen → services}/controllers/activities.d.cts +0 -0
- /package/{active-citizen → services}/controllers/news_feeds.cjs +0 -0
- /package/{active-citizen → services}/controllers/news_feeds.d.cts +0 -0
- /package/{active-citizen → services}/controllers/notifications.cjs +0 -0
- /package/{active-citizen → services}/controllers/notifications.d.cts +0 -0
- /package/{active-citizen → services}/controllers/recommendations.cjs +0 -0
- /package/{active-citizen → services}/controllers/recommendations.d.cts +0 -0
- /package/{active-citizen → services}/email_templates/_common.scss +0 -0
- /package/{active-citizen → services}/email_templates/notifications/bulk_status_update/html.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/bulk_status_update/style.css +0 -0
- /package/{active-citizen → services}/email_templates/notifications/bulk_status_update/style.css.map +0 -0
- /package/{active-citizen → services}/email_templates/notifications/bulk_status_update/style.scss +0 -0
- /package/{active-citizen → services}/email_templates/notifications/bulk_status_update/text.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/delayed_notification/html.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/delayed_notification/style.css +0 -0
- /package/{active-citizen → services}/email_templates/notifications/delayed_notification/style.css.map +0 -0
- /package/{active-citizen → services}/email_templates/notifications/delayed_notification/style.scss +0 -0
- /package/{active-citizen → services}/email_templates/notifications/delayed_notification/text.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/footer.html.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/footer.text.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/general_user_notification/html.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/general_user_notification/style.css +0 -0
- /package/{active-citizen → services}/email_templates/notifications/general_user_notification/style.css.map +0 -0
- /package/{active-citizen → services}/email_templates/notifications/general_user_notification/style.scss +0 -0
- /package/{active-citizen → services}/email_templates/notifications/general_user_notification/text.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/header.html.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/header.text.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/password_changed/html.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/password_changed/style.css +0 -0
- /package/{active-citizen → services}/email_templates/notifications/password_changed/style.css.map +0 -0
- /package/{active-citizen → services}/email_templates/notifications/password_changed/style.scss +0 -0
- /package/{active-citizen → services}/email_templates/notifications/password_changed/text.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/password_recovery/html.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/password_recovery/style.css +0 -0
- /package/{active-citizen → services}/email_templates/notifications/password_recovery/style.css.map +0 -0
- /package/{active-citizen → services}/email_templates/notifications/password_recovery/style.scss +0 -0
- /package/{active-citizen → services}/email_templates/notifications/password_recovery/text.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/point_activity/html.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/point_activity/style.css +0 -0
- /package/{active-citizen → services}/email_templates/notifications/point_activity/style.css.map +0 -0
- /package/{active-citizen → services}/email_templates/notifications/point_activity/style.scss +0 -0
- /package/{active-citizen → services}/email_templates/notifications/point_activity/text.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/point_comment/html.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/point_comment/style.css +0 -0
- /package/{active-citizen → services}/email_templates/notifications/point_comment/style.css.map +0 -0
- /package/{active-citizen → services}/email_templates/notifications/point_comment/style.scss +0 -0
- /package/{active-citizen → services}/email_templates/notifications/point_comment/text.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/point_news_story/html.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/point_news_story/style.css +0 -0
- /package/{active-citizen → services}/email_templates/notifications/point_news_story/style.css.map +0 -0
- /package/{active-citizen → services}/email_templates/notifications/point_news_story/style.scss +0 -0
- /package/{active-citizen → services}/email_templates/notifications/point_news_story/text.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/post_activity/html.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/post_activity/style.css +0 -0
- /package/{active-citizen → services}/email_templates/notifications/post_activity/style.css.map +0 -0
- /package/{active-citizen → services}/email_templates/notifications/post_activity/style.scss +0 -0
- /package/{active-citizen → services}/email_templates/notifications/post_activity/text.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/post_status_change/html.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/post_status_change/style.css +0 -0
- /package/{active-citizen → services}/email_templates/notifications/post_status_change/style.css.map +0 -0
- /package/{active-citizen → services}/email_templates/notifications/post_status_change/style.scss +0 -0
- /package/{active-citizen → services}/email_templates/notifications/post_status_change/text.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/user_invite/html.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/user_invite/style.css +0 -0
- /package/{active-citizen → services}/email_templates/notifications/user_invite/style.css.map +0 -0
- /package/{active-citizen → services}/email_templates/notifications/user_invite/style.scss +0 -0
- /package/{active-citizen → services}/email_templates/notifications/user_invite/text.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/welcome/html.ejs +0 -0
- /package/{active-citizen → services}/email_templates/notifications/welcome/style.css +0 -0
- /package/{active-citizen → services}/email_templates/notifications/welcome/style.css.map +0 -0
- /package/{active-citizen → services}/email_templates/notifications/welcome/style.scss +0 -0
- /package/{active-citizen → services}/email_templates/notifications/welcome/text.ejs +0 -0
- /package/{active-citizen → services}/engine/allOurIdeas/aiHelper.d.ts +0 -0
- /package/{active-citizen → services}/engine/allOurIdeas/aiHelper.js +0 -0
- /package/{active-citizen → services}/engine/allOurIdeas/explainAnswersAssistant.d.ts +0 -0
- /package/{active-citizen → services}/engine/allOurIdeas/explainAnswersAssistant.js +0 -0
- /package/{active-citizen → services}/engine/allOurIdeas/iconGenerator.d.ts +0 -0
- /package/{active-citizen → services}/engine/allOurIdeas/iconGenerator.js +0 -0
- /package/{active-citizen → services}/engine/analytics/export_anon_community_activities.d.ts +0 -0
- /package/{active-citizen → services}/engine/analytics/export_anon_community_activities.js +0 -0
- /package/{active-citizen → services}/engine/analytics/importer.d.ts +0 -0
- /package/{active-citizen → services}/engine/analytics/manager.cjs +0 -0
- /package/{active-citizen → services}/engine/analytics/manager.d.cts +0 -0
- /package/{active-citizen → services}/engine/analytics/plausible/manager.cjs +0 -0
- /package/{active-citizen → services}/engine/analytics/plausible/manager.d.cts +0 -0
- /package/{active-citizen → services}/engine/analytics/statsCalc.cjs +0 -0
- /package/{active-citizen → services}/engine/analytics/statsCalc.d.cts +0 -0
- /package/{active-citizen → services}/engine/analytics/utils.cjs +0 -0
- /package/{active-citizen → services}/engine/analytics/utils.d.cts +0 -0
- /package/{active-citizen → services}/engine/marketing/campaign.cjs +0 -0
- /package/{active-citizen → services}/engine/marketing/campaign.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/CreateFraudAuditReport.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/CreateFraudAuditReport.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudBase.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudBase.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudDeleteBase.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudDeleteBase.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudDeleteEndorsements.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudDeleteEndorsements.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudDeletePointQualities.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudDeletePointQualities.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudDeletePoints.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudDeletePoints.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudDeletePosts.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudDeletePosts.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudDeleteRatings.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudDeleteRatings.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudGetBase.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudGetBase.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudGetEndorsements.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudGetEndorsements.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudGetPointQualities.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudGetPointQualities.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudGetPoints.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudGetPoints.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudGetPosts.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudGetPosts.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudGetRatings.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudGetRatings.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudScannerNotifier.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/fraud/FraudScannerNotifier.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/get_moderation_items.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/get_moderation_items.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/image_labeling/CommunityLabeling.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/image_labeling/CommunityLabeling.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/image_labeling/GroupLabeling.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/image_labeling/GroupLabeling.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/image_labeling/ImageLabelingBase.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/image_labeling/ImageLabelingBase.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/image_labeling/PointLabeling.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/image_labeling/PointLabeling.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/image_labeling/PostLabeling.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/image_labeling/PostLabeling.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/perspective_api_client.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/perspective_api_client.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/process_moderation_items.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/process_moderation_items.d.cts +0 -0
- /package/{active-citizen → services}/engine/moderation/toxicity_analysis.cjs +0 -0
- /package/{active-citizen → services}/engine/moderation/toxicity_analysis.d.cts +0 -0
- /package/{active-citizen → services}/engine/news_feeds/activity_and_item_index_definitions.cjs +0 -0
- /package/{active-citizen → services}/engine/news_feeds/activity_and_item_index_definitions.d.cts +0 -0
- /package/{active-citizen → services}/engine/news_feeds/generate_dynamically.cjs +0 -0
- /package/{active-citizen → services}/engine/news_feeds/generate_dynamically.d.cts +0 -0
- /package/{active-citizen → services}/engine/news_feeds/generate_from_notifications.cjs +0 -0
- /package/{active-citizen → services}/engine/news_feeds/generate_from_notifications.d.cts +0 -0
- /package/{active-citizen → services}/engine/news_feeds/news_feeds_utils.cjs +0 -0
- /package/{active-citizen → services}/engine/news_feeds/news_feeds_utils.d.cts +0 -0
- /package/{active-citizen → services}/engine/notifications/emails_utils.cjs +0 -0
- /package/{active-citizen → services}/engine/notifications/emails_utils.d.cts +0 -0
- /package/{active-citizen → services}/engine/notifications/generate_point_notifications.cjs +0 -0
- /package/{active-citizen → services}/engine/notifications/generate_point_notifications.d.cts +0 -0
- /package/{active-citizen → services}/engine/notifications/generate_post_notifications.cjs +0 -0
- /package/{active-citizen → services}/engine/notifications/generate_post_notifications.d.cts +0 -0
- /package/{active-citizen → services}/engine/notifications/generate_post_status_change_notifications.cjs +0 -0
- /package/{active-citizen → services}/engine/notifications/generate_post_status_change_notifications.d.cts +0 -0
- /package/{active-citizen → services}/engine/notifications/notifications_utils.cjs +0 -0
- /package/{active-citizen → services}/engine/notifications/notifications_utils.d.cts +0 -0
- /package/{active-citizen → services}/engine/notifications/point_delivery.cjs +0 -0
- /package/{active-citizen → services}/engine/notifications/point_delivery.d.cts +0 -0
- /package/{active-citizen → services}/engine/notifications/post_delivery.cjs +0 -0
- /package/{active-citizen → services}/engine/notifications/post_delivery.d.cts +0 -0
- /package/{active-citizen → services}/engine/notifications/process_delayed_notifications.cjs +0 -0
- /package/{active-citizen → services}/engine/notifications/process_delayed_notifications.d.cts +0 -0
- /package/{active-citizen → services}/engine/notifications/process_general_notifications.cjs +0 -0
- /package/{active-citizen → services}/engine/notifications/process_general_notifications.d.cts +0 -0
- /package/{active-citizen → services}/engine/old/exporters/categories_dataset.d.ts +0 -0
- /package/{active-citizen → services}/engine/old/exporters/dataset_tools.d.ts +0 -0
- /package/{active-citizen → services}/engine/old/exporters/dataset_tools.js +0 -0
- /package/{active-citizen → services}/engine/old/exporters/sentiment_dataset.d.ts +0 -0
- /package/{active-citizen → services}/engine/recommendations/events_importer.cjs +0 -0
- /package/{active-citizen → services}/engine/recommendations/events_importer.d.cts +0 -0
- /package/{active-citizen → services}/engine/recommendations/events_manager.cjs +0 -0
- /package/{active-citizen → services}/engine/recommendations/events_manager.d.cts +0 -0
- /package/{active-citizen → services}/engine/reports/add_points_to_sheet.cjs +0 -0
- /package/{active-citizen → services}/engine/reports/add_points_to_sheet.d.cts +0 -0
- /package/{active-citizen → services}/engine/reports/commonUtils.d.ts +0 -0
- /package/{active-citizen → services}/engine/reports/commonUtils.js +0 -0
- /package/{active-citizen → services}/engine/reports/common_utils.cjs +0 -0
- /package/{active-citizen → services}/engine/reports/common_utils.d.cts +0 -0
- /package/{active-citizen → services}/engine/reports/docx_group_report.cjs +0 -0
- /package/{active-citizen → services}/engine/reports/docx_group_report.d.cts +0 -0
- /package/{active-citizen → services}/engine/reports/xlsAllOurIdeasExport.d.ts +0 -0
- /package/{active-citizen → services}/engine/reports/xlsAllOurIdeasExport.js +0 -0
- /package/{active-citizen → services}/engine/reports/xls_community_users_report.cjs +0 -0
- /package/{active-citizen → services}/engine/reports/xls_community_users_report.d.cts +0 -0
- /package/{active-citizen → services}/engine/reports/xls_group_report.cjs +0 -0
- /package/{active-citizen → services}/engine/reports/xls_group_report.d.cts +0 -0
- /package/{active-citizen → services}/llms/baseChatBot.d.ts +0 -0
- /package/{active-citizen → services}/llms/baseChatBot.js +0 -0
- /package/{active-citizen → services}/llms/imageGeneration/chatGptImageGenerator.d.ts +0 -0
- /package/{active-citizen → services}/llms/imageGeneration/chatGptImageGenerator.js +0 -0
- /package/{active-citizen → services}/llms/imageGeneration/collectionImageGenerator.d.ts +0 -0
- /package/{active-citizen → services}/llms/imageGeneration/collectionImageGenerator.js +0 -0
- /package/{active-citizen → services}/llms/imageGeneration/dalleImageGenerator.d.ts +0 -0
- /package/{active-citizen → services}/llms/imageGeneration/dalleImageGenerator.js +0 -0
- /package/{active-citizen → services}/llms/imageGeneration/fluxImageGenerator.d.ts +0 -0
- /package/{active-citizen → services}/llms/imageGeneration/fluxImageGenerator.js +0 -0
- /package/{active-citizen → services}/llms/imageGeneration/iImageGenerator.d.ts +0 -0
- /package/{active-citizen → services}/llms/imageGeneration/iImageGenerator.js +0 -0
- /package/{active-citizen → services}/llms/imageGeneration/imageProcessorService.d.ts +0 -0
- /package/{active-citizen → services}/llms/imageGeneration/imageProcessorService.js +0 -0
- /package/{active-citizen → services}/llms/imageGeneration/imagenImageGenerator.d.ts +0 -0
- /package/{active-citizen → services}/llms/imageGeneration/imagenImageGenerator.js +0 -0
- /package/{active-citizen → services}/llms/imageGeneration/s3Service.d.ts +0 -0
- /package/{active-citizen → services}/llms/imageGeneration/s3Service.js +0 -0
- /package/{active-citizen → services}/llms/llmTranslation.d.ts +0 -0
- /package/{active-citizen → services}/llms/llmTranslation.js +0 -0
- /package/{active-citizen → services}/locales/aa/translation.json +0 -0
- /package/{active-citizen → services}/locales/ab/translation.json +0 -0
- /package/{active-citizen → services}/locales/ae/translation.json +0 -0
- /package/{active-citizen → services}/locales/af/translation.json +0 -0
- /package/{active-citizen → services}/locales/ak/translation.json +0 -0
- /package/{active-citizen → services}/locales/am/translation.json +0 -0
- /package/{active-citizen → services}/locales/an/translation.json +0 -0
- /package/{active-citizen → services}/locales/ar/translation.json +0 -0
- /package/{active-citizen → services}/locales/ar_eg/translation.json +0 -0
- /package/{active-citizen → services}/locales/as/translation.json +0 -0
- /package/{active-citizen → services}/locales/av/translation.json +0 -0
- /package/{active-citizen → services}/locales/ay/translation.json +0 -0
- /package/{active-citizen → services}/locales/az/translation.json +0 -0
- /package/{active-citizen → services}/locales/ba/translation.json +0 -0
- /package/{active-citizen → services}/locales/be/translation.json +0 -0
- /package/{active-citizen → services}/locales/bg/translation.json +0 -0
- /package/{active-citizen → services}/locales/bho/translation.json +0 -0
- /package/{active-citizen → services}/locales/bi/translation.json +0 -0
- /package/{active-citizen → services}/locales/bm/translation.json +0 -0
- /package/{active-citizen → services}/locales/bn/translation.json +0 -0
- /package/{active-citizen → services}/locales/bo/translation.json +0 -0
- /package/{active-citizen → services}/locales/br/translation.json +0 -0
- /package/{active-citizen → services}/locales/bs/translation.json +0 -0
- /package/{active-citizen → services}/locales/ca/translation.json +0 -0
- /package/{active-citizen → services}/locales/ce/translation.json +0 -0
- /package/{active-citizen → services}/locales/ceb/translation.json +0 -0
- /package/{active-citizen → services}/locales/ch/translation.json +0 -0
- /package/{active-citizen → services}/locales/ckb/translation.json +0 -0
- /package/{active-citizen → services}/locales/cnr/translation.json +0 -0
- /package/{active-citizen → services}/locales/co/translation.json +0 -0
- /package/{active-citizen → services}/locales/cr/translation.json +0 -0
- /package/{active-citizen → services}/locales/cs/translation.json +0 -0
- /package/{active-citizen → services}/locales/cu/translation.json +0 -0
- /package/{active-citizen → services}/locales/cv/translation.json +0 -0
- /package/{active-citizen → services}/locales/cy/translation.json +0 -0
- /package/{active-citizen → services}/locales/da/translation.json +0 -0
- /package/{active-citizen → services}/locales/de/translation.json +0 -0
- /package/{active-citizen → services}/locales/doi/translation.json +0 -0
- /package/{active-citizen → services}/locales/dv/translation.json +0 -0
- /package/{active-citizen → services}/locales/dz/translation.json +0 -0
- /package/{active-citizen → services}/locales/ee/translation.json +0 -0
- /package/{active-citizen → services}/locales/el/translation.json +0 -0
- /package/{active-citizen → services}/locales/en/translation.json +0 -0
- /package/{active-citizen → services}/locales/en_ca/translation.json +0 -0
- /package/{active-citizen → services}/locales/en_gb/translation.json +0 -0
- /package/{active-citizen → services}/locales/eo/translation.json +0 -0
- /package/{active-citizen → services}/locales/es/translation.json +0 -0
- /package/{active-citizen → services}/locales/et/translation.json +0 -0
- /package/{active-citizen → services}/locales/eu/translation.json +0 -0
- /package/{active-citizen → services}/locales/fa/translation.json +0 -0
- /package/{active-citizen → services}/locales/ff/translation.json +0 -0
- /package/{active-citizen → services}/locales/fi/translation.json +0 -0
- /package/{active-citizen → services}/locales/fil/translation.json +0 -0
- /package/{active-citizen → services}/locales/fj/translation.json +0 -0
- /package/{active-citizen → services}/locales/fo/translation.json +0 -0
- /package/{active-citizen → services}/locales/fr/translation.json +0 -0
- /package/{active-citizen → services}/locales/fy/translation.json +0 -0
- /package/{active-citizen → services}/locales/ga/translation.json +0 -0
- /package/{active-citizen → services}/locales/gd/translation.json +0 -0
- /package/{active-citizen → services}/locales/gl/translation.json +0 -0
- /package/{active-citizen → services}/locales/gn/translation.json +0 -0
- /package/{active-citizen → services}/locales/gom/translation.json +0 -0
- /package/{active-citizen → services}/locales/gu/translation.json +0 -0
- /package/{active-citizen → services}/locales/gv/translation.json +0 -0
- /package/{active-citizen → services}/locales/ha/translation.json +0 -0
- /package/{active-citizen → services}/locales/haw/translation.json +0 -0
- /package/{active-citizen → services}/locales/he/translation.json +0 -0
- /package/{active-citizen → services}/locales/hi/translation.json +0 -0
- /package/{active-citizen → services}/locales/hmn/translation.json +0 -0
- /package/{active-citizen → services}/locales/ho/translation.json +0 -0
- /package/{active-citizen → services}/locales/hr/translation.json +0 -0
- /package/{active-citizen → services}/locales/ht/translation.json +0 -0
- /package/{active-citizen → services}/locales/hu/translation.json +0 -0
- /package/{active-citizen → services}/locales/hy/translation.json +0 -0
- /package/{active-citizen → services}/locales/hz/translation.json +0 -0
- /package/{active-citizen → services}/locales/ia/translation.json +0 -0
- /package/{active-citizen → services}/locales/id/translation.json +0 -0
- /package/{active-citizen → services}/locales/ie/translation.json +0 -0
- /package/{active-citizen → services}/locales/ig/translation.json +0 -0
- /package/{active-citizen → services}/locales/ii/translation.json +0 -0
- /package/{active-citizen → services}/locales/ik/translation.json +0 -0
- /package/{active-citizen → services}/locales/ilo/translation.json +0 -0
- /package/{active-citizen → services}/locales/io/translation.json +0 -0
- /package/{active-citizen → services}/locales/is/translation.json +0 -0
- /package/{active-citizen → services}/locales/it/translation.json +0 -0
- /package/{active-citizen → services}/locales/iu/translation.json +0 -0
- /package/{active-citizen → services}/locales/ja/translation.json +0 -0
- /package/{active-citizen → services}/locales/jv/translation.json +0 -0
- /package/{active-citizen → services}/locales/ka/translation.json +0 -0
- /package/{active-citizen → services}/locales/kg/translation.json +0 -0
- /package/{active-citizen → services}/locales/ki/translation.json +0 -0
- /package/{active-citizen → services}/locales/kj/translation.json +0 -0
- /package/{active-citizen → services}/locales/kk/translation.json +0 -0
- /package/{active-citizen → services}/locales/kl/translation.json +0 -0
- /package/{active-citizen → services}/locales/km/translation.json +0 -0
- /package/{active-citizen → services}/locales/kn/translation.json +0 -0
- /package/{active-citizen → services}/locales/ko/translation.json +0 -0
- /package/{active-citizen → services}/locales/kr/translation.json +0 -0
- /package/{active-citizen → services}/locales/kri/translation.json +0 -0
- /package/{active-citizen → services}/locales/ks/translation.json +0 -0
- /package/{active-citizen → services}/locales/ku/translation.json +0 -0
- /package/{active-citizen → services}/locales/kv/translation.json +0 -0
- /package/{active-citizen → services}/locales/kw/translation.json +0 -0
- /package/{active-citizen → services}/locales/ky/translation.json +0 -0
- /package/{active-citizen → services}/locales/la/translation.json +0 -0
- /package/{active-citizen → services}/locales/lb/translation.json +0 -0
- /package/{active-citizen → services}/locales/lg/translation.json +0 -0
- /package/{active-citizen → services}/locales/li/translation.json +0 -0
- /package/{active-citizen → services}/locales/ln/translation.json +0 -0
- /package/{active-citizen → services}/locales/lo/translation.json +0 -0
- /package/{active-citizen → services}/locales/lt/translation.json +0 -0
- /package/{active-citizen → services}/locales/lu/translation.json +0 -0
- /package/{active-citizen → services}/locales/lus/translation.json +0 -0
- /package/{active-citizen → services}/locales/lv/translation.json +0 -0
- /package/{active-citizen → services}/locales/mai/translation.json +0 -0
- /package/{active-citizen → services}/locales/mg/translation.json +0 -0
- /package/{active-citizen → services}/locales/mh/translation.json +0 -0
- /package/{active-citizen → services}/locales/mi/translation.json +0 -0
- /package/{active-citizen → services}/locales/mk/translation.json +0 -0
- /package/{active-citizen → services}/locales/ml/translation.json +0 -0
- /package/{active-citizen → services}/locales/mn/translation.json +0 -0
- /package/{active-citizen → services}/locales/mnd/translation.json +0 -0
- /package/{active-citizen → services}/locales/mni_mtei/translation.json +0 -0
- /package/{active-citizen → services}/locales/mr/translation.json +0 -0
- /package/{active-citizen → services}/locales/ms/translation.json +0 -0
- /package/{active-citizen → services}/locales/mt/translation.json +0 -0
- /package/{active-citizen → services}/locales/my/translation.json +0 -0
- /package/{active-citizen → services}/locales/na/translation.json +0 -0
- /package/{active-citizen → services}/locales/nb/translation.json +0 -0
- /package/{active-citizen → services}/locales/nd/translation.json +0 -0
- /package/{active-citizen → services}/locales/ne/translation.json +0 -0
- /package/{active-citizen → services}/locales/ng/translation.json +0 -0
- /package/{active-citizen → services}/locales/nl/translation.json +0 -0
- /package/{active-citizen → services}/locales/nn/translation.json +0 -0
- /package/{active-citizen → services}/locales/no/translation.json +0 -0
- /package/{active-citizen → services}/locales/nr/translation.json +0 -0
- /package/{active-citizen → services}/locales/nso/translation.json +0 -0
- /package/{active-citizen → services}/locales/nv/translation.json +0 -0
- /package/{active-citizen → services}/locales/ny/translation.json +0 -0
- /package/{active-citizen → services}/locales/oc/translation.json +0 -0
- /package/{active-citizen → services}/locales/oj/translation.json +0 -0
- /package/{active-citizen → services}/locales/om/translation.json +0 -0
- /package/{active-citizen → services}/locales/or/translation.json +0 -0
- /package/{active-citizen → services}/locales/os/translation.json +0 -0
- /package/{active-citizen → services}/locales/pa/translation.json +0 -0
- /package/{active-citizen → services}/locales/pi/translation.json +0 -0
- /package/{active-citizen → services}/locales/pl/translation.json +0 -0
- /package/{active-citizen → services}/locales/ps/translation.json +0 -0
- /package/{active-citizen → services}/locales/pt/translation.json +0 -0
- /package/{active-citizen → services}/locales/pt_br/translation.json +0 -0
- /package/{active-citizen → services}/locales/qu/translation.json +0 -0
- /package/{active-citizen → services}/locales/rm/translation.json +0 -0
- /package/{active-citizen → services}/locales/rn/translation.json +0 -0
- /package/{active-citizen → services}/locales/ro/translation.json +0 -0
- /package/{active-citizen → services}/locales/ro_md/translation.json +0 -0
- /package/{active-citizen → services}/locales/ru/translation.json +0 -0
- /package/{active-citizen → services}/locales/rw/translation.json +0 -0
- /package/{active-citizen → services}/locales/sa/translation.json +0 -0
- /package/{active-citizen → services}/locales/sc/translation.json +0 -0
- /package/{active-citizen → services}/locales/sd/translation.json +0 -0
- /package/{active-citizen → services}/locales/se/translation.json +0 -0
- /package/{active-citizen → services}/locales/sg/translation.json +0 -0
- /package/{active-citizen → services}/locales/si/translation.json +0 -0
- /package/{active-citizen → services}/locales/sk/translation.json +0 -0
- /package/{active-citizen → services}/locales/sl/translation.json +0 -0
- /package/{active-citizen → services}/locales/sm/translation.json +0 -0
- /package/{active-citizen → services}/locales/sn/translation.json +0 -0
- /package/{active-citizen → services}/locales/so/translation.json +0 -0
- /package/{active-citizen → services}/locales/sq/translation.json +0 -0
- /package/{active-citizen → services}/locales/sr/translation.json +0 -0
- /package/{active-citizen → services}/locales/sr_latin/translation.json +0 -0
- /package/{active-citizen → services}/locales/ss/translation.json +0 -0
- /package/{active-citizen → services}/locales/st/translation.json +0 -0
- /package/{active-citizen → services}/locales/su/translation.json +0 -0
- /package/{active-citizen → services}/locales/sv/translation.json +0 -0
- /package/{active-citizen → services}/locales/sw/translation.json +0 -0
- /package/{active-citizen → services}/locales/ta/translation.json +0 -0
- /package/{active-citizen → services}/locales/te/translation.json +0 -0
- /package/{active-citizen → services}/locales/tg/translation.json +0 -0
- /package/{active-citizen → services}/locales/th/translation.json +0 -0
- /package/{active-citizen → services}/locales/ti/translation.json +0 -0
- /package/{active-citizen → services}/locales/tk/translation.json +0 -0
- /package/{active-citizen → services}/locales/tl/translation.json +0 -0
- /package/{active-citizen → services}/locales/tn/translation.json +0 -0
- /package/{active-citizen → services}/locales/to/translation.json +0 -0
- /package/{active-citizen → services}/locales/tr/translation.json +0 -0
- /package/{active-citizen → services}/locales/ts/translation.json +0 -0
- /package/{active-citizen → services}/locales/tt/translation.json +0 -0
- /package/{active-citizen → services}/locales/tw/translation.json +0 -0
- /package/{active-citizen → services}/locales/ty/translation.json +0 -0
- /package/{active-citizen → services}/locales/ug/translation.json +0 -0
- /package/{active-citizen → services}/locales/uk/translation.json +0 -0
- /package/{active-citizen → services}/locales/ur/translation.json +0 -0
- /package/{active-citizen → services}/locales/uz/translation.json +0 -0
- /package/{active-citizen → services}/locales/ve/translation.json +0 -0
- /package/{active-citizen → services}/locales/vi/translation.json +0 -0
- /package/{active-citizen → services}/locales/vo/translation.json +0 -0
- /package/{active-citizen → services}/locales/wa/translation.json +0 -0
- /package/{active-citizen → services}/locales/wo/translation.json +0 -0
- /package/{active-citizen → services}/locales/xh/translation.json +0 -0
- /package/{active-citizen → services}/locales/yi/translation.json +0 -0
- /package/{active-citizen → services}/locales/yo/translation.json +0 -0
- /package/{active-citizen → services}/locales/za/translation.json +0 -0
- /package/{active-citizen → services}/locales/zh/translation.json +0 -0
- /package/{active-citizen → services}/locales/zh_cn/translation.json +0 -0
- /package/{active-citizen → services}/locales/zh_tw/translation.json +0 -0
- /package/{active-citizen → services}/locales/zu/translation.json +0 -0
- /package/{active-citizen → services}/models/ac_activity.cjs +0 -0
- /package/{active-citizen → services}/models/ac_activity.d.cts +0 -0
- /package/{active-citizen → services}/models/ac_background_job.cjs +0 -0
- /package/{active-citizen → services}/models/ac_background_job.d.cts +0 -0
- /package/{active-citizen → services}/models/ac_campaign.cjs +0 -0
- /package/{active-citizen → services}/models/ac_campaign.d.cts +0 -0
- /package/{active-citizen → services}/models/ac_client_activity.cjs +0 -0
- /package/{active-citizen → services}/models/ac_client_activity.d.cts +0 -0
- /package/{active-citizen → services}/models/ac_delayed_notification.cjs +0 -0
- /package/{active-citizen → services}/models/ac_delayed_notification.d.cts +0 -0
- /package/{active-citizen → services}/models/ac_following.cjs +0 -0
- /package/{active-citizen → services}/models/ac_following.d.cts +0 -0
- /package/{active-citizen → services}/models/ac_list.cjs +0 -0
- /package/{active-citizen → services}/models/ac_list.d.cts +0 -0
- /package/{active-citizen → services}/models/ac_list_users.cjs +0 -0
- /package/{active-citizen → services}/models/ac_list_users.d.cts +0 -0
- /package/{active-citizen → services}/models/ac_mute.cjs +0 -0
- /package/{active-citizen → services}/models/ac_mute.d.cts +0 -0
- /package/{active-citizen → services}/models/ac_news_feed_item.cjs +0 -0
- /package/{active-citizen → services}/models/ac_news_feed_item.d.cts +0 -0
- /package/{active-citizen → services}/models/ac_news_feed_processed_range.cjs +0 -0
- /package/{active-citizen → services}/models/ac_news_feed_processed_range.d.cts +0 -0
- /package/{active-citizen → services}/models/ac_notification.cjs +0 -0
- /package/{active-citizen → services}/models/ac_notification.d.cts +0 -0
- /package/{active-citizen → services}/models/ac_translation_cache.cjs +0 -0
- /package/{active-citizen → services}/models/ac_translation_cache.d.cts +0 -0
- /package/{active-citizen → services}/models/ac_watching.cjs +0 -0
- /package/{active-citizen → services}/models/ac_watching.d.cts +0 -0
- /package/{active-citizen → services}/scripts/analytics/setup_all_plausible_goals.cjs +0 -0
- /package/{active-citizen → services}/scripts/analytics/setup_all_plausible_goals.d.cts +0 -0
- /package/{active-citizen → services}/scripts/fix_old_delayed_notifications.d.ts +0 -0
- /package/{active-citizen → services}/scripts/fix_old_delayed_notifications.js +0 -0
- /package/{active-citizen → services}/scripts/kue_status.d.ts +0 -0
- /package/{active-citizen → services}/scripts/kue_status.js +0 -0
- /package/{active-citizen → services}/scripts/kue_watch_stuck_jobs.d.ts +0 -0
- /package/{active-citizen → services}/scripts/translation_clear_language.d.ts +0 -0
- /package/{active-citizen → services}/scripts/translation_clear_language.js +0 -0
- /package/{active-citizen → services}/scripts/translation_delete.d.ts +0 -0
- /package/{active-citizen → services}/scripts/translation_delete.js +0 -0
- /package/{active-citizen → services}/scripts/translation_replace_text_from_url.d.ts +0 -0
- /package/{active-citizen → services}/scripts/translation_replace_text_from_url.js +0 -0
- /package/{active-citizen → services}/scripts/translation_update.d.ts +0 -0
- /package/{active-citizen → services}/scripts/translation_update.js +0 -0
- /package/{active-citizen → services}/scripts/translations_list.d.ts +0 -0
- /package/{active-citizen → services}/scripts/translations_list.js +0 -0
- /package/{active-citizen → services}/utils/airbrake.cjs +0 -0
- /package/{active-citizen → services}/utils/airbrake.d.cts +0 -0
- /package/{active-citizen → services}/utils/get_anonymous_system_user.cjs +0 -0
- /package/{active-citizen → services}/utils/get_anonymous_system_user.d.cts +0 -0
- /package/{active-citizen → services}/utils/i18n.cjs +0 -0
- /package/{active-citizen → services}/utils/i18n.d.cts +0 -0
- /package/{active-citizen → services}/utils/logger.cjs +0 -0
- /package/{active-citizen → services}/utils/logger.d.cts +0 -0
- /package/{active-citizen → services}/utils/redisConnection.cjs +0 -0
- /package/{active-citizen → services}/utils/redisConnection.d.cts +0 -0
- /package/{active-citizen → services}/utils/to_json.cjs +0 -0
- /package/{active-citizen → services}/utils/to_json.d.cts +0 -0
- /package/{active-citizen → services}/utils/translation_cloning.cjs +0 -0
- /package/{active-citizen → services}/utils/translation_cloning.d.cts +0 -0
- /package/{active-citizen → services}/utils/translation_helpers.cjs +0 -0
- /package/{active-citizen → services}/utils/translation_helpers.d.cts +0 -0
- /package/{active-citizen → services}/utils/truncate_text.cjs +0 -0
- /package/{active-citizen → services}/utils/truncate_text.d.cts +0 -0
- /package/{active-citizen → services}/utils/updateAllLocalesFromEn.d.ts +0 -0
- /package/{active-citizen → services}/utils/updateAllLocalesFromEn.js +0 -0
- /package/{active-citizen → services}/utils/updateLocaleFolders.d.ts +0 -0
- /package/{active-citizen → services}/utils/updateLocaleFolders.js +0 -0
- /package/{active-citizen → services}/workers/activity.cjs +0 -0
- /package/{active-citizen → services}/workers/activity.d.cts +0 -0
- /package/{active-citizen → services}/workers/anonymizations.cjs +0 -0
- /package/{active-citizen → services}/workers/anonymizations.d.cts +0 -0
- /package/{active-citizen → services}/workers/bulk_status_update.cjs +0 -0
- /package/{active-citizen → services}/workers/bulk_status_update.d.cts +0 -0
- /package/{active-citizen → services}/workers/delayed_jobs.cjs +0 -0
- /package/{active-citizen → services}/workers/delayed_jobs.d.cts +0 -0
- /package/{active-citizen → services}/workers/deletions.cjs +0 -0
- /package/{active-citizen → services}/workers/deletions.d.cts +0 -0
- /package/{active-citizen → services}/workers/email.cjs +0 -0
- /package/{active-citizen → services}/workers/email.d.cts +0 -0
- /package/{active-citizen → services}/workers/fraud_management.cjs +0 -0
- /package/{active-citizen → services}/workers/fraud_management.d.cts +0 -0
- /package/{active-citizen → services}/workers/generativeAi.d.ts +0 -0
- /package/{active-citizen → services}/workers/generativeAi.js +0 -0
- /package/{active-citizen → services}/workers/main.cjs +0 -0
- /package/{active-citizen → services}/workers/main.d.cts +0 -0
- /package/{active-citizen → services}/workers/marketing.cjs +0 -0
- /package/{active-citizen → services}/workers/marketing.d.cts +0 -0
- /package/{active-citizen → services}/workers/moderation.cjs +0 -0
- /package/{active-citizen → services}/workers/moderation.d.cts +0 -0
- /package/{active-citizen → services}/workers/notification_delivery.cjs +0 -0
- /package/{active-citizen → services}/workers/notification_delivery.d.cts +0 -0
- /package/{active-citizen → services}/workers/notification_news_feed.cjs +0 -0
- /package/{active-citizen → services}/workers/notification_news_feed.d.cts +0 -0
- /package/{active-citizen → services}/workers/queue.cjs +0 -0
- /package/{active-citizen → services}/workers/queue.d.cts +0 -0
- /package/{active-citizen → services}/workers/recount.cjs +0 -0
- /package/{active-citizen → services}/workers/recount.d.cts +0 -0
- /package/{active-citizen → services}/workers/reports.cjs +0 -0
- /package/{active-citizen → services}/workers/reports.d.cts +0 -0
- /package/{active-citizen → services}/workers/similarities.cjs +0 -0
- /package/{active-citizen → services}/workers/similarities.d.cts +0 -0
- /package/{active-citizen → services}/workers/speech_to_text.cjs +0 -0
- /package/{active-citizen → services}/workers/speech_to_text.d.cts +0 -0
- /package/{agents → src/agents}/assistants/assistant.d.ts +0 -0
- /package/{controllers → src/controllers}/audios.d.ts +0 -0
- /package/{controllers → src/controllers}/categories.d.ts +0 -0
- /package/{controllers → src/controllers}/communities.d.ts +0 -0
- /package/{controllers → src/controllers}/domains.d.ts +0 -0
- /package/{controllers → src/controllers}/groups.d.ts +0 -0
- /package/{controllers → src/controllers}/images.d.ts +0 -0
- /package/{controllers → src/controllers}/points.d.ts +0 -0
- /package/{controllers → src/controllers}/posts.d.ts +0 -0
- /package/{controllers → src/controllers}/ratings.d.ts +0 -0
- /package/{controllers → src/controllers}/users.d.ts +0 -0
- /package/{controllers → src/controllers}/videos.d.ts +0 -0
- /package/{utils → src/utils}/copy_utils.d.ts +0 -0
- /package/{utils → src/utils}/manifest_generator.d.ts +0 -0
- /package/{publish.d.ts → utils/generateDocumentation.d.ts} +0 -0
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
const systemPromptServerApi = `
|
|
2
|
+
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
|
+
When documenting, please adhere to the following structure, adapting as necessary for the content of the file:
|
|
5
|
+
|
|
6
|
+
# API Endpoint: [METHOD] /path/to/endpoint
|
|
7
|
+
Brief description of what the endpoint does.
|
|
8
|
+
## Request
|
|
9
|
+
### Parameters
|
|
10
|
+
| Name | Type | In | Description | Required |
|
|
11
|
+
|----------|--------|--------|--------------------------|----------|
|
|
12
|
+
| paramName| string | path | Description of URL param | Yes/No |
|
|
13
|
+
| queryName| string | query | Description of query param| Yes/No |
|
|
14
|
+
### Headers
|
|
15
|
+
| Name | Type | Description | Required |
|
|
16
|
+
|--------------|--------|--------------------|----------|
|
|
17
|
+
| HeaderName | string | Description | Yes/No |
|
|
18
|
+
### Body
|
|
19
|
+
\`\`\`json
|
|
20
|
+
// Example JSON request body
|
|
21
|
+
{
|
|
22
|
+
"key": "value"
|
|
23
|
+
}
|
|
24
|
+
\`\`\`
|
|
25
|
+
Description of the request body schema. Specify data types and validation rules if applicable.
|
|
26
|
+
## Response
|
|
27
|
+
### Success (2xx)
|
|
28
|
+
\`\`\`json
|
|
29
|
+
// Example JSON success response
|
|
30
|
+
{
|
|
31
|
+
"data": "some data"
|
|
32
|
+
}
|
|
33
|
+
\`\`\`
|
|
34
|
+
Description of the success response. Specify data types.
|
|
35
|
+
### Error (4xx, 5xx)
|
|
36
|
+
\`\`\`json
|
|
37
|
+
// Example JSON error response
|
|
38
|
+
{
|
|
39
|
+
"error": "description of error"
|
|
40
|
+
}
|
|
41
|
+
\`\`\`
|
|
42
|
+
Description of potential error responses and their meaning.
|
|
43
|
+
|
|
44
|
+
# Middleware: middlewareName
|
|
45
|
+
Description of the middleware function, its purpose, and where it's typically used in the request lifecycle.
|
|
46
|
+
## Parameters (if applicable)
|
|
47
|
+
| Name | Type | Description |
|
|
48
|
+
|----------|--------|--------------------------|
|
|
49
|
+
| req | Request| Express request object |
|
|
50
|
+
| res | Response| Express response object |
|
|
51
|
+
| next | NextFunction | Express next function |
|
|
52
|
+
|
|
53
|
+
# Controller: ControllerName.methodName
|
|
54
|
+
Description of the controller method, its responsibilities, and the services it interacts with.
|
|
55
|
+
## Parameters
|
|
56
|
+
| Name | Type | Description |
|
|
57
|
+
|----------|--------|--------------------------|
|
|
58
|
+
| req | Request| Express request object |
|
|
59
|
+
| res | Response| Express response object |
|
|
60
|
+
|
|
61
|
+
# Service: ServiceName.methodName (or Service Module)
|
|
62
|
+
Description of the service method or module, its business logic, and any interactions with databases or other services. If it's a module with multiple exported functions, list them.
|
|
63
|
+
## Methods (if a module with multiple exports)
|
|
64
|
+
| Name | Parameters | Return Type | Description |
|
|
65
|
+
|------------|-------------------|-------------|-----------------------------|
|
|
66
|
+
| methodName | param1: type, ... | returnType | Brief description of method |
|
|
67
|
+
|
|
68
|
+
# Model: ModelName
|
|
69
|
+
Description of the data model or schema.
|
|
70
|
+
## Properties
|
|
71
|
+
| Name | Type | Description |
|
|
72
|
+
|---------------|--------|---------------------------|
|
|
73
|
+
| propertyName | type | Brief description. |
|
|
74
|
+
|
|
75
|
+
# Utility Module / Function: UtilityName
|
|
76
|
+
Description of the utility module or standalone function, its purpose, and how it's used.
|
|
77
|
+
## Functions (if a module)
|
|
78
|
+
| Name | Parameters | Return Type | Description |
|
|
79
|
+
|------------|-------------------|-------------|-----------------------------|
|
|
80
|
+
| funcName | param1: type, ... | returnType | Brief description of func |
|
|
81
|
+
## Parameters (if a single standalone function)
|
|
82
|
+
| Name | Type | Description |
|
|
83
|
+
|----------|--------|--------------------------|
|
|
84
|
+
| paramName| string | Description of param |
|
|
85
|
+
## Examples
|
|
86
|
+
\`\`\`typescript
|
|
87
|
+
// Example usage
|
|
88
|
+
\`\`\`
|
|
89
|
+
|
|
90
|
+
For "Type", use TypeScript definitions where possible (e.g., \`string\`, \`number\`, \`MyInterface\`).
|
|
91
|
+
Prioritize documenting all exported functions, classes, modules, and route handlers.
|
|
92
|
+
You MUST output the full detailed documentation for the TypeScript or JavaScript (.cjs) file the user submits. If a file contains elements not perfectly fitting the above categories (e.g., configuration objects, constants), document them clearly under a suitable general heading like "Configuration" or "Exported Constants".
|
|
93
|
+
When creating internal links to other documented source files, ensure the link uses the .md extension (e.g., [MyClass](./MyClass.md)).
|
|
94
|
+
When referencing Policy Synth entities, especially PsAgent, ensure that links point to the correct repository and path, for example, a link to PsAgent should be [PsAgent](https://github.com/CitizensFoundation/policy-synth/blob/main/agents/src/dbModels/agent.ts).
|
|
95
|
+
`;
|
|
96
|
+
const indexHeader = '# Your Priorities Server API Documentation\\n\\n';
|
|
97
|
+
import * as fs from 'fs';
|
|
98
|
+
import * as path from 'path';
|
|
99
|
+
import * as crypto from 'crypto';
|
|
100
|
+
import { OpenAI } from 'openai';
|
|
101
|
+
import { fileURLToPath } from 'url'; // Import for ES module __dirname equivalent
|
|
102
|
+
// ES module equivalent for __dirname
|
|
103
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
104
|
+
const __dirname = path.dirname(__filename);
|
|
105
|
+
const openaiClient = new OpenAI({
|
|
106
|
+
apiKey: process.env.OPENAI_API_KEY,
|
|
107
|
+
});
|
|
108
|
+
// const rootDir = path.resolve(__dirname, '..', '..', '..'); // Adjusted for ts-out/utils structure
|
|
109
|
+
const rootDir = path.resolve(__dirname, '..', '..'); // Corrected rootDir for ts-out/utils structure
|
|
110
|
+
const docsDir = path.join(rootDir, 'docs');
|
|
111
|
+
const checksumDir = path.join(docsDir, 'cks');
|
|
112
|
+
const IGNORED_PATTERNS = [
|
|
113
|
+
'node_modules',
|
|
114
|
+
'custom_modules',
|
|
115
|
+
'dist',
|
|
116
|
+
'migrations',
|
|
117
|
+
'ts-out',
|
|
118
|
+
'uploads',
|
|
119
|
+
'webAppsDist',
|
|
120
|
+
'config',
|
|
121
|
+
'cks', // existing from buildDirectoryTree
|
|
122
|
+
'.git', // common ignore
|
|
123
|
+
'.vscode', // common ignore
|
|
124
|
+
'all.ts', // existing from buildDirectoryTree
|
|
125
|
+
'test.ts', // existing from buildDirectoryTree and findTSFiles
|
|
126
|
+
'.d.ts', // existing from buildDirectoryTree and findTSFiles
|
|
127
|
+
'README.md', // existing from buildDirectoryTree
|
|
128
|
+
];
|
|
129
|
+
// Ensure the docs and checksum directories exist
|
|
130
|
+
if (!fs.existsSync(docsDir)) {
|
|
131
|
+
fs.mkdirSync(docsDir, { recursive: true });
|
|
132
|
+
}
|
|
133
|
+
if (!fs.existsSync(checksumDir)) {
|
|
134
|
+
fs.mkdirSync(checksumDir, { recursive: true });
|
|
135
|
+
}
|
|
136
|
+
function buildDirectoryTree(dir, basePath = '', isSrc = false) {
|
|
137
|
+
let structure = [];
|
|
138
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
139
|
+
entries.forEach((entry) => {
|
|
140
|
+
if (IGNORED_PATTERNS.some(pattern => entry.name.includes(pattern) || entry.name.startsWith('.'))) {
|
|
141
|
+
console.log(`Skipping ${entry.name} in buildDirectoryTree`);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
const relativePath = isSrc ? entry.name : path.join(basePath, entry.name);
|
|
145
|
+
if (entry.isDirectory()) {
|
|
146
|
+
// Flatten the 'src' directory into the top level
|
|
147
|
+
const children = buildDirectoryTree(path.join(dir, entry.name), relativePath, isSrc || entry.name === 'src');
|
|
148
|
+
if (entry.name === 'src') {
|
|
149
|
+
structure = structure.concat(children);
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
structure.push({
|
|
153
|
+
type: 'directory',
|
|
154
|
+
name: entry.name,
|
|
155
|
+
path: relativePath,
|
|
156
|
+
children: children,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
else if (entry.isFile() && entry.name.endsWith('.md')) {
|
|
161
|
+
structure.push({
|
|
162
|
+
type: 'file',
|
|
163
|
+
name: entry.name,
|
|
164
|
+
path: relativePath,
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
return structure;
|
|
169
|
+
}
|
|
170
|
+
function generateMarkdownFromTree(tree, depth = 0) {
|
|
171
|
+
let markdown = '';
|
|
172
|
+
const indent = ' '.repeat(depth);
|
|
173
|
+
tree.forEach((item) => {
|
|
174
|
+
if (item.type === 'directory') {
|
|
175
|
+
markdown += `${indent}- ${item.name}\n`;
|
|
176
|
+
markdown += generateMarkdownFromTree(item.children, depth + 1);
|
|
177
|
+
}
|
|
178
|
+
else if (item.type === 'file') {
|
|
179
|
+
markdown += `${indent}- [${item.name.replace('.md', '')}](${item.path})\n`;
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
return markdown;
|
|
183
|
+
}
|
|
184
|
+
function generateDocsReadme() {
|
|
185
|
+
const tree = buildDirectoryTree(docsDir);
|
|
186
|
+
console.log(JSON.stringify(tree, null, 2));
|
|
187
|
+
const markdown = generateMarkdownFromTree(tree);
|
|
188
|
+
const readmePath = path.join(docsDir, 'README.md');
|
|
189
|
+
const apiHeader = '## API Documentation';
|
|
190
|
+
let newReadmeContent = '';
|
|
191
|
+
if (fs.existsSync(readmePath)) {
|
|
192
|
+
const existing = fs.readFileSync(readmePath, 'utf8');
|
|
193
|
+
const headerIndex = existing.indexOf(apiHeader);
|
|
194
|
+
if (headerIndex !== -1) {
|
|
195
|
+
// Keep everything up to the API header (inclusive) and replace the rest.
|
|
196
|
+
const before = existing.substring(0, headerIndex).trimEnd();
|
|
197
|
+
newReadmeContent = `${before}\n\n${apiHeader}\n\n${markdown}`;
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
// Header not found – append it to the end.
|
|
201
|
+
newReadmeContent = `${existing.trimEnd()}\n\n${apiHeader}\n\n${markdown}`;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
// No README yet – create with index header + API docs.
|
|
206
|
+
newReadmeContent = `${indexHeader}${apiHeader}\n\n${markdown}`;
|
|
207
|
+
}
|
|
208
|
+
fs.writeFileSync(readmePath, newReadmeContent);
|
|
209
|
+
}
|
|
210
|
+
function findSourceFiles(dir, fileList = []) {
|
|
211
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
212
|
+
for (const entry of entries) {
|
|
213
|
+
if (IGNORED_PATTERNS.some(pattern => entry.name.includes(pattern) || entry.name.startsWith('.'))) {
|
|
214
|
+
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
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
const fullPath = path.join(dir, entry.name);
|
|
220
|
+
if (entry.isDirectory()) {
|
|
221
|
+
findSourceFiles(fullPath, fileList);
|
|
222
|
+
}
|
|
223
|
+
else if (entry.isFile() &&
|
|
224
|
+
(entry.name.endsWith('.ts') || entry.name.endsWith('.cjs')) &&
|
|
225
|
+
!IGNORED_PATTERNS.some(pattern => entry.name.endsWith(pattern)) && // for specific file endings like .d.ts, test.ts
|
|
226
|
+
entry.name !== 'index.ts' //
|
|
227
|
+
) {
|
|
228
|
+
fileList.push(fullPath);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return fileList;
|
|
232
|
+
}
|
|
233
|
+
function generateChecksum(content) {
|
|
234
|
+
return crypto.createHash('sha256').update(content).digest('hex');
|
|
235
|
+
}
|
|
236
|
+
async function generateDocumentation(fileList, systemPrompt) {
|
|
237
|
+
for (const file of fileList) {
|
|
238
|
+
const content = fs.readFileSync(file, 'utf8');
|
|
239
|
+
const checksum = generateChecksum(content);
|
|
240
|
+
const checksumFile = path.join(checksumDir, path.basename(file) + '.cks');
|
|
241
|
+
let existingChecksum = '';
|
|
242
|
+
if (fs.existsSync(checksumFile)) {
|
|
243
|
+
existingChecksum = fs.readFileSync(checksumFile, 'utf8');
|
|
244
|
+
}
|
|
245
|
+
if (checksum !== existingChecksum) {
|
|
246
|
+
try {
|
|
247
|
+
console.log(`${file}:`);
|
|
248
|
+
const completion = await openaiClient.chat.completions.create({
|
|
249
|
+
model: 'gpt-4.1',
|
|
250
|
+
temperature: 0.0,
|
|
251
|
+
max_tokens: 8000,
|
|
252
|
+
messages: [
|
|
253
|
+
{ role: 'system', content: systemPrompt },
|
|
254
|
+
{ role: 'user', content: content },
|
|
255
|
+
],
|
|
256
|
+
});
|
|
257
|
+
let docContent = completion.choices[0].message.content;
|
|
258
|
+
console.log(docContent);
|
|
259
|
+
docContent = docContent.replace(/```markdown\s+/g, '');
|
|
260
|
+
const sourceDir = path.join(rootDir, 'src');
|
|
261
|
+
const relativePathInSrc = path.relative(sourceDir, file);
|
|
262
|
+
const docFilePath = path.join(docsDir, relativePathInSrc).replace(/\.(ts|cjs)$/, '.md');
|
|
263
|
+
const docDirPath = path.dirname(docFilePath);
|
|
264
|
+
if (!fs.existsSync(docDirPath)) {
|
|
265
|
+
fs.mkdirSync(docDirPath, { recursive: true });
|
|
266
|
+
}
|
|
267
|
+
fs.writeFileSync(docFilePath, docContent);
|
|
268
|
+
fs.writeFileSync(checksumFile, checksum); // Save the new checksum
|
|
269
|
+
console.log(`Documentation generated for ${file}`);
|
|
270
|
+
}
|
|
271
|
+
catch (error) {
|
|
272
|
+
console.error(`Error generating documentation for ${file}:`, error);
|
|
273
|
+
process.exit(1);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
console.log(`Skipping documentation generation for ${file}, no changes detected.`);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
async function main() {
|
|
282
|
+
const sourceFiles = findSourceFiles(path.join(rootDir, 'src'));
|
|
283
|
+
generateDocsReadme();
|
|
284
|
+
await generateDocumentation(sourceFiles, systemPromptServerApi);
|
|
285
|
+
generateDocsReadme();
|
|
286
|
+
}
|
|
287
|
+
main().then(() => console.log('Documentation generation complete.'));
|
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { fileURLToPath, pathToFileURL } from 'url';
|
|
4
|
+
import crypto from 'crypto';
|
|
5
|
+
import bcrypt from 'bcrypt';
|
|
6
|
+
import { Sequelize, DataTypes, Op } from "sequelize";
|
|
7
|
+
import { sequelize as psSequelize } from "@policysynth/agents/dbModels/index.js";
|
|
8
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
9
|
+
const __dirname = path.dirname(__filename);
|
|
10
|
+
// PolicySynth Models
|
|
11
|
+
import { PsAiModel } from "@policysynth/agents/dbModels/aiModel.js";
|
|
12
|
+
import { PsAgentClass } from "@policysynth/agents/dbModels/agentClass.js";
|
|
13
|
+
import { PsExternalApiUsage } from "@policysynth/agents/dbModels/externalApiUsage.js";
|
|
14
|
+
import { PsExternalApi } from "@policysynth/agents/dbModels/externalApis.js";
|
|
15
|
+
import { PsModelUsage } from "@policysynth/agents/dbModels/modelUsage.js";
|
|
16
|
+
import { PsAgent } from "@policysynth/agents/dbModels/agent.js";
|
|
17
|
+
import { PsAgentAuditLog } from "@policysynth/agents/dbModels/agentAuditLog.js";
|
|
18
|
+
import { PsAgentConnector } from "@policysynth/agents/dbModels/agentConnector.js";
|
|
19
|
+
import { PsAgentConnectorClass } from "@policysynth/agents/dbModels/agentConnectorClass.js";
|
|
20
|
+
import { PsAgentRegistry } from "@policysynth/agents/dbModels/agentRegistry.js";
|
|
21
|
+
const psModels = {
|
|
22
|
+
PsAgentClass,
|
|
23
|
+
PsExternalApiUsage,
|
|
24
|
+
PsModelUsage,
|
|
25
|
+
PsAgentConnector,
|
|
26
|
+
PsAgent,
|
|
27
|
+
PsAgentAuditLog,
|
|
28
|
+
PsAgentConnectorClass,
|
|
29
|
+
PsAgentRegistry,
|
|
30
|
+
PsAiModel,
|
|
31
|
+
PsExternalApi,
|
|
32
|
+
};
|
|
33
|
+
const env = process.env.NODE_ENV || "development";
|
|
34
|
+
let mainSequelize;
|
|
35
|
+
// Operator aliases from server_api/models/index.cjs
|
|
36
|
+
const mainOperatorsAliases = {
|
|
37
|
+
$gt: Op.gt,
|
|
38
|
+
$gte: Op.gte,
|
|
39
|
+
$lt: Op.lt,
|
|
40
|
+
$lte: Op.lte,
|
|
41
|
+
$in: Op.in,
|
|
42
|
+
$and: Op.and,
|
|
43
|
+
$or: Op.or,
|
|
44
|
+
$eq: Op.eq,
|
|
45
|
+
$ne: Op.ne,
|
|
46
|
+
$is: Op.is,
|
|
47
|
+
$not: Op.not,
|
|
48
|
+
$between: Op.between,
|
|
49
|
+
$notBetween: Op.notBetween,
|
|
50
|
+
$like: Op.like,
|
|
51
|
+
$contains: Op.contains,
|
|
52
|
+
$any: Op.any,
|
|
53
|
+
};
|
|
54
|
+
if (env === "production") {
|
|
55
|
+
if (!process.env.DATABASE_URL) {
|
|
56
|
+
console.error("DATABASE_URL environment variable is not set for production.");
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
if (process.env.DISABLE_PG_SSL) {
|
|
60
|
+
mainSequelize = new Sequelize(process.env.DATABASE_URL, {
|
|
61
|
+
dialect: "postgres",
|
|
62
|
+
minifyAliases: true,
|
|
63
|
+
logging: false,
|
|
64
|
+
operatorsAliases: mainOperatorsAliases,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
mainSequelize = new Sequelize(process.env.DATABASE_URL, {
|
|
69
|
+
dialect: "postgres",
|
|
70
|
+
dialectOptions: {
|
|
71
|
+
ssl: {
|
|
72
|
+
rejectUnauthorized: false,
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
minifyAliases: true,
|
|
76
|
+
logging: false,
|
|
77
|
+
operatorsAliases: mainOperatorsAliases,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
if (!process.env.YP_DEV_DATABASE_NAME ||
|
|
83
|
+
!process.env.YP_DEV_DATABASE_USERNAME ||
|
|
84
|
+
!process.env.YP_DEV_DATABASE_PASSWORD ||
|
|
85
|
+
!process.env.YP_DEV_DATABASE_HOST ||
|
|
86
|
+
!process.env.YP_DEV_DATABASE_PORT) {
|
|
87
|
+
console.error("One or more YP_DEV_DATABASE environment variables are not set for development.");
|
|
88
|
+
process.exit(1);
|
|
89
|
+
}
|
|
90
|
+
try {
|
|
91
|
+
mainSequelize = new Sequelize(process.env.YP_DEV_DATABASE_NAME, process.env.YP_DEV_DATABASE_USERNAME, process.env.YP_DEV_DATABASE_PASSWORD, {
|
|
92
|
+
dialect: "postgres",
|
|
93
|
+
protocol: "postgres",
|
|
94
|
+
host: process.env.YP_DEV_DATABASE_HOST,
|
|
95
|
+
port: parseInt(process.env.YP_DEV_DATABASE_PORT, 10),
|
|
96
|
+
minifyAliases: true,
|
|
97
|
+
dialectOptions: {
|
|
98
|
+
ssl: false,
|
|
99
|
+
rejectUnauthorized: false,
|
|
100
|
+
},
|
|
101
|
+
logging: false, // Set to console.log for verbose output during seeding
|
|
102
|
+
operatorsAliases: mainOperatorsAliases,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
console.error("Error initializing Sequelize for development:", error);
|
|
107
|
+
process.exit(1);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
const mainDb = {};
|
|
111
|
+
// Compound index commands from server_api/models/index.cjs
|
|
112
|
+
const mainCompoundIndexCommands = [
|
|
113
|
+
'CREATE INDEX domainheaderimage_idx2_domain_id ON "DomainHeaderImage" (domain_id)',
|
|
114
|
+
'CREATE INDEX domainlogoimage_idx2_domain_id ON "DomainLogoImage" (domain_id)',
|
|
115
|
+
'CREATE INDEX domainlogovideo_idx2_domain_id ON "DomainLogoVideo" (domain_id)',
|
|
116
|
+
'CREATE INDEX domainheaderimage_idx2_domain_id_u ON "DomainHeaderImage" (domain_id, updated_at)',
|
|
117
|
+
'CREATE INDEX domainlogoimage_idx2_domain_id_u ON "DomainLogoImage" (domain_id, updated_at)',
|
|
118
|
+
'CREATE INDEX domainlogovideo_idx2_domain_id_u ON "DomainLogoVideo" (domain_id, updated_at)',
|
|
119
|
+
'CREATE INDEX domainheaderimage_idx2_domain_id_c ON "DomainHeaderImage" (domain_id, created_at)',
|
|
120
|
+
'CREATE INDEX domainlogoimage_idx2_domain_id_c ON "DomainLogoImage" (domain_id, created_at)',
|
|
121
|
+
'CREATE INDEX domainlogovideo_idx2_domain_id_c ON "DomainLogoVideo" (domain_id, created_at)',
|
|
122
|
+
'CREATE INDEX communityheaderimage_idx2_community_id ON "CommunityHeaderImage" (community_id)',
|
|
123
|
+
'CREATE INDEX communitylogoimage_idx2_community_id ON "CommunityLogoImage" (community_id)',
|
|
124
|
+
'CREATE INDEX communitylogovideo_idx2_community_id ON "CommunityLogoVideo" (community_id)',
|
|
125
|
+
'CREATE INDEX communityheaderimage_idx2_community_id_u ON "CommunityHeaderImage" (community_id, updated_at)',
|
|
126
|
+
'CREATE INDEX communitylogoimage_idx2_community_id_u ON "CommunityLogoImage" (community_id, updated_at)',
|
|
127
|
+
'CREATE INDEX communitylogovideo_idx2_community_id_u ON "CommunityLogoVideo" (community_id, updated_at)',
|
|
128
|
+
'CREATE INDEX communityheaderimage_idx2_community_id_c ON "CommunityHeaderImage" (community_id, created_at)',
|
|
129
|
+
'CREATE INDEX communitylogoimage_idx2_community_id_c ON "CommunityLogoImage" (community_id, created_at)',
|
|
130
|
+
'CREATE INDEX communitylogovideo_idx2_community_id_c ON "CommunityLogoVideo" (community_id, created_at)',
|
|
131
|
+
'CREATE INDEX groupheaderimage_idx2_group_id_u ON "GroupHeaderImage" (group_id, updated_at)',
|
|
132
|
+
'CREATE INDEX grouplogoimage_idx2_group_id_u ON "GroupLogoImage" (group_id, updated_at)',
|
|
133
|
+
'CREATE INDEX grouplogovideo_idx2_group_id_u ON "GroupLogoVideo" (group_id, updated_at)',
|
|
134
|
+
'CREATE INDEX groupheaderimage_idx2_group_id_c ON "GroupHeaderImage" (group_id, created_at)',
|
|
135
|
+
'CREATE INDEX grouplogoimage_idx2_group_id_c ON "GroupLogoImage" (group_id, created_at)',
|
|
136
|
+
'CREATE INDEX grouplogovideo_idx2_group_id_c ON "GroupLogoVideo" (group_id, created_at)',
|
|
137
|
+
'CREATE INDEX idx2_group_categories_name ON Categories (group_id, name)',
|
|
138
|
+
'CREATE INDEX organizationlogoimag_idx_organization_id ON "OrganizationLogoImage" (organization_id)',
|
|
139
|
+
'CREATE INDEX organizationlogoimag_idx_organization_id_u ON "OrganizationLogoImage" (organization_id, updated_at)',
|
|
140
|
+
'CREATE INDEX organizationlogoimag_idx_organization_id_c ON "OrganizationLogoImage" (organization_id, created_at)',
|
|
141
|
+
'CREATE INDEX organizationuser_idx2_user_id ON "OrganizationUser" (user_id)',
|
|
142
|
+
'CREATE INDEX pointaudio_idx2_point_id ON "PointAudio" (point_id)',
|
|
143
|
+
'CREATE INDEX pointvideo_idx2_point_id ON "PointVideo" (point_id)',
|
|
144
|
+
'CREATE INDEX pointaudio_idx2_point_id_u ON "PointAudio" (point_id, updated_at)',
|
|
145
|
+
'CREATE INDEX pointvideo_idx2_point_id_u ON "PointVideo" (point_id, updated_at)',
|
|
146
|
+
'CREATE INDEX pointaudio_idx2_point_id_c ON "PointAudio" (point_id, created_at)',
|
|
147
|
+
'CREATE INDEX pointvideo_idx2_point_id_c ON "PointVideo" (point_id, created_at)',
|
|
148
|
+
'CREATE INDEX points_idx2_counter_sum_post_id_status_value_deleted ON points ((counter_quality_up-counter_quality_down), post_id, status, value, deleted)',
|
|
149
|
+
'CREATE INDEX userprofileimage_idx2_user_id ON "UserProfileImage" (user_id)',
|
|
150
|
+
'CREATE INDEX userprofileimage_idx2_user_id_u ON "UserProfileImage" (user_id, updated_at)',
|
|
151
|
+
'CREATE INDEX userprofileimage_idx2_user_id_c ON "UserProfileImage" (user_id, created_at)',
|
|
152
|
+
'CREATE INDEX categoryiconimage_idx2_category_id ON "CategoryIconImage" (category_id)',
|
|
153
|
+
'CREATE INDEX idx2_category_icon_images ON "CategoryIconImage" (category_id, updated_at)',
|
|
154
|
+
'CREATE INDEX idx2_category_icon_images_c ON "CategoryIconImage" (category_id, created_at)',
|
|
155
|
+
'CREATE INDEX videoimage_idx2_video_id ON "VideoImage" (video_id)',
|
|
156
|
+
'CREATE INDEX videoimage_idx2_video_id_u ON "VideoImage" (video_id, updated_at)',
|
|
157
|
+
'CREATE INDEX videoimage_idx2_video_id_c ON "VideoImage" (video_id, created_at)',
|
|
158
|
+
'CREATE INDEX postaudio_idx2_post_id ON "PostAudio" (post_id)',
|
|
159
|
+
'CREATE INDEX postvideo_idx2_post_id ON "PostVideo" (post_id)',
|
|
160
|
+
'CREATE INDEX postheaderimage_idx2_post_id ON "PostHeaderImage" (post_id)',
|
|
161
|
+
'CREATE INDEX posimage_idx2_post_id ON "PostImage" (post_id)',
|
|
162
|
+
'CREATE INDEX idx2_post_header_images_u ON "PostHeaderImage" (post_id, updated_at)',
|
|
163
|
+
'CREATE INDEX idx2_post_images_u ON "PostImage" (post_id, updated_at)',
|
|
164
|
+
'CREATE INDEX idx2_post_audios_u ON "PostAudio" (post_id, updated_at)',
|
|
165
|
+
'CREATE INDEX idx2_post_videos_u ON "PostVideo" (post_id, updated_at)',
|
|
166
|
+
'CREATE INDEX idx2_post_header_images_c ON "PostHeaderImage" (post_id, created_at)',
|
|
167
|
+
'CREATE INDEX idx2_post_images_c ON "PostImage" (post_id, created_at)',
|
|
168
|
+
'CREATE INDEX idx2_post_audios_c ON "PostAudio" (post_id, created_at)',
|
|
169
|
+
'CREATE INDEX idx2_post_videos_c ON "PostVideo" (post_id, created_at)',
|
|
170
|
+
'CREATE INDEX posts_idx2_counter_sum_group_id_deleted ON posts ((counter_endorsements_up-counter_endorsements_down),group_id,deleted)',
|
|
171
|
+
'CREATE INDEX posts_idx2_counter_sum_group_id_category_id_deleted ON posts ((counter_endorsements_up-counter_endorsements_down),group_id,category_id,deleted)',
|
|
172
|
+
];
|
|
173
|
+
async function createMainCompoundIndexes(sequelizeInstance, indexCommands) {
|
|
174
|
+
for (const command of indexCommands) {
|
|
175
|
+
try {
|
|
176
|
+
await sequelizeInstance.query(command);
|
|
177
|
+
console.log(`Successfully created main index: ${command.substring(0, 100)}...`);
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
if (error.message && error.message.indexOf("already exists") > -1) {
|
|
181
|
+
// console.log(`Main index already exists: ${command.substring(0,100)}...`);
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
console.error(`Error creating main index with command: ${command}`);
|
|
185
|
+
console.error(error.message);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
async function syncMainDatabase() {
|
|
191
|
+
console.log("Starting main database synchronization...");
|
|
192
|
+
const modelsPath = path.join(__dirname, "../models");
|
|
193
|
+
const modelFiles = fs.readdirSync(modelsPath)
|
|
194
|
+
.filter((file) => file.indexOf(".") !== 0 &&
|
|
195
|
+
file.endsWith(".cjs") &&
|
|
196
|
+
!file.endsWith(".d.cjs") &&
|
|
197
|
+
!file.endsWith(".d.cts") &&
|
|
198
|
+
file !== "index.cjs");
|
|
199
|
+
for (const file of modelFiles) {
|
|
200
|
+
const filePath = path.join(modelsPath, file);
|
|
201
|
+
const fileUrl = pathToFileURL(filePath).href;
|
|
202
|
+
try {
|
|
203
|
+
const module = await import(fileUrl);
|
|
204
|
+
const modelFactory = module.default; // Assuming the .cjs files use module.exports = ...
|
|
205
|
+
const model = modelFactory(mainSequelize, DataTypes);
|
|
206
|
+
mainDb[model.name] = model;
|
|
207
|
+
}
|
|
208
|
+
catch (err) {
|
|
209
|
+
console.error(`Error importing model ${file}:`, err);
|
|
210
|
+
throw err; // Re-throw to stop the process if a model fails to load
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
const acModelsPath = path.join(__dirname, "../services/models");
|
|
214
|
+
if (fs.existsSync(acModelsPath)) {
|
|
215
|
+
const acModelFiles = fs.readdirSync(acModelsPath)
|
|
216
|
+
.filter((file) => file.indexOf(".") !== 0 &&
|
|
217
|
+
file.endsWith(".cjs") &&
|
|
218
|
+
!file.endsWith(".d.cjs") &&
|
|
219
|
+
!file.endsWith(".d.cts"));
|
|
220
|
+
for (const file of acModelFiles) {
|
|
221
|
+
const filePath = path.join(acModelsPath, file);
|
|
222
|
+
const fileUrl = pathToFileURL(filePath).href;
|
|
223
|
+
try {
|
|
224
|
+
const module = await import(fileUrl);
|
|
225
|
+
const modelFactory = module.default; // Assuming the .cjs files use module.exports = ...
|
|
226
|
+
const model = modelFactory(mainSequelize, DataTypes);
|
|
227
|
+
mainDb[model.name] = model;
|
|
228
|
+
}
|
|
229
|
+
catch (err) {
|
|
230
|
+
console.error(`Error importing services model ${file}:`, err);
|
|
231
|
+
throw err; // Re-throw to stop the process if a model fails to load
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
console.warn(`Directory not found, skipping services models: ${acModelsPath}`);
|
|
237
|
+
}
|
|
238
|
+
Object.keys(mainDb).forEach((modelName) => {
|
|
239
|
+
if (mainDb[modelName] && typeof mainDb[modelName].associate === "function") {
|
|
240
|
+
mainDb[modelName].associate(mainDb);
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
// This script is intended for creating a new database, so always force sync.
|
|
244
|
+
await mainSequelize.sync({ force: true });
|
|
245
|
+
console.log("Main database schema forcefully synchronized (tables dropped and recreated).");
|
|
246
|
+
await createMainCompoundIndexes(mainSequelize, mainCompoundIndexCommands);
|
|
247
|
+
if (mainDb.Post && typeof mainDb.Post.addFullTextIndex === "function") {
|
|
248
|
+
console.log("Adding full text index for Post model...");
|
|
249
|
+
await mainDb.Post.addFullTextIndex();
|
|
250
|
+
console.log("Full text index for Post model added.");
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
console.warn("Post model or addFullTextIndex method not found in mainDb. Skipping full text index.");
|
|
254
|
+
}
|
|
255
|
+
console.log("Main database synchronization finished.");
|
|
256
|
+
}
|
|
257
|
+
async function syncPolicySynthDatabase() {
|
|
258
|
+
console.log("Starting PolicySynth database synchronization...");
|
|
259
|
+
try {
|
|
260
|
+
// This script is intended for creating a new database, so always force sync.
|
|
261
|
+
await psSequelize.sync({ force: false });
|
|
262
|
+
console.log("PolicySynth database schema forcefully synchronized (tables dropped and recreated).");
|
|
263
|
+
console.log("Associating PolicySynth models...");
|
|
264
|
+
for (const modelName of Object.keys(psModels)) {
|
|
265
|
+
const model = psModels[modelName];
|
|
266
|
+
if (model && typeof model.associate === "function") {
|
|
267
|
+
model.associate(psSequelize.models);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
console.log("PolicySynth models associated successfully.");
|
|
271
|
+
}
|
|
272
|
+
catch (error) {
|
|
273
|
+
console.error("Error during PolicySynth database synchronization:", error);
|
|
274
|
+
process.exit(1);
|
|
275
|
+
}
|
|
276
|
+
console.log("PolicySynth database synchronization finished.");
|
|
277
|
+
}
|
|
278
|
+
async function seedAllModels() {
|
|
279
|
+
console.log("--- Starting Database Seeding and Synchronization ---");
|
|
280
|
+
console.log("NOTE: This script will forcefully synchronize the database (drop and recreate tables).");
|
|
281
|
+
console.log("NODE_ENV:", env);
|
|
282
|
+
// The following environment variables are logged for informational purposes,
|
|
283
|
+
// but this script will always force database synchronization.
|
|
284
|
+
console.log("FORCE_DB_SYNC (ignored, always true for this script):", process.env.FORCE_DB_SYNC);
|
|
285
|
+
console.log("FORCE_DB_INDEX_SYNC (ignored, indexes created after forced sync):", process.env.FORCE_DB_INDEX_SYNC);
|
|
286
|
+
const args = process.argv.slice(2);
|
|
287
|
+
if (args.length < 2) {
|
|
288
|
+
console.error("Usage: node <script_path> <username/email> <password>");
|
|
289
|
+
process.exit(1);
|
|
290
|
+
}
|
|
291
|
+
const userEmail = args[0].toLowerCase();
|
|
292
|
+
const userName = args[0]; // Using email as name for simplicity, or a fixed name
|
|
293
|
+
const userPassword = args[1];
|
|
294
|
+
// Check for main database config outside of production if not using DATABASE_URL
|
|
295
|
+
if (env !== "production") {
|
|
296
|
+
if (!process.env.YP_DEV_DATABASE_NAME ||
|
|
297
|
+
!process.env.YP_DEV_DATABASE_USERNAME ||
|
|
298
|
+
!process.env.YP_DEV_DATABASE_PASSWORD ||
|
|
299
|
+
!process.env.YP_DEV_DATABASE_HOST ||
|
|
300
|
+
!process.env.YP_DEV_DATABASE_PORT) {
|
|
301
|
+
console.error("Missing YP_DEV_DATABASE environment variables for main database in non-production.");
|
|
302
|
+
process.exit(1);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
else {
|
|
306
|
+
if (!process.env.DATABASE_URL) {
|
|
307
|
+
console.error("Missing DATABASE_URL for production environment.");
|
|
308
|
+
process.exit(1);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
try {
|
|
312
|
+
await syncMainDatabase();
|
|
313
|
+
await syncPolicySynthDatabase();
|
|
314
|
+
console.log("--- Databases Synchronized ---");
|
|
315
|
+
console.log("--- Creating User and Domain ---");
|
|
316
|
+
if (!mainDb.User) {
|
|
317
|
+
console.error("User model (mainDb.User) not found after sync.");
|
|
318
|
+
process.exit(1);
|
|
319
|
+
}
|
|
320
|
+
if (!mainDb.Domain) {
|
|
321
|
+
console.error("Domain model (mainDb.Domain) not found after sync.");
|
|
322
|
+
process.exit(1);
|
|
323
|
+
}
|
|
324
|
+
// Create User
|
|
325
|
+
console.log(`Attempting to create user: ${userEmail}`);
|
|
326
|
+
const newUser = mainDb.User.build({
|
|
327
|
+
email: userEmail,
|
|
328
|
+
name: userName, // Or a dedicated name argument if preferred
|
|
329
|
+
status: 'active',
|
|
330
|
+
// Attempt to set default notifications, fallback if AcNotification not on mainDb
|
|
331
|
+
notifications_settings: mainDb.AcNotification ? mainDb.AcNotification.defaultNotificationSettings : { email: true },
|
|
332
|
+
});
|
|
333
|
+
// createPasswordHash is an instance method on User model from user.cjs
|
|
334
|
+
const salt = bcrypt.genSaltSync(10);
|
|
335
|
+
newUser.encrypted_password = bcrypt.hashSync(userPassword, salt);
|
|
336
|
+
await newUser.save();
|
|
337
|
+
console.log(`User ${newUser.email} created with ID: ${newUser.id}`);
|
|
338
|
+
// Create Domain
|
|
339
|
+
const randomDomainName = crypto.randomBytes(8).toString('hex') + ".seed.local"; // Shorter and identifiable
|
|
340
|
+
console.log(`Attempting to create domain: ${randomDomainName} for user ${newUser.id}`);
|
|
341
|
+
const newDomain = mainDb.Domain.build({
|
|
342
|
+
name: `Default Domain for ${userName}`,
|
|
343
|
+
domain_name: randomDomainName,
|
|
344
|
+
access: mainDb.Domain.ACCESS_PUBLIC !== undefined ? mainDb.Domain.ACCESS_PUBLIC : 0, // Use constant if available
|
|
345
|
+
default_locale: "en",
|
|
346
|
+
ip_address: "::1",
|
|
347
|
+
user_agent: "seedModelsScript/1.0",
|
|
348
|
+
user_id: newUser.id, // Associate domain with the new user
|
|
349
|
+
configuration: {},
|
|
350
|
+
// Fill other required non-nullable fields based on domain.cjs definition if any
|
|
351
|
+
// deleted: false, (already defaults to false)
|
|
352
|
+
});
|
|
353
|
+
await newDomain.save();
|
|
354
|
+
console.log(`Domain ${newDomain.name} created with ID: ${newDomain.id} and domain_name: ${newDomain.domain_name}`);
|
|
355
|
+
// Associate User with Domain
|
|
356
|
+
if (typeof newDomain.addDomainUsers === 'function') {
|
|
357
|
+
await newDomain.addDomainUsers(newUser);
|
|
358
|
+
console.log(`User ${newUser.email} added to domain ${newDomain.domain_name} as a user.`);
|
|
359
|
+
}
|
|
360
|
+
else {
|
|
361
|
+
console.warn(`newDomain.addDomainUsers is not a function. Skipping adding user to domain users.`);
|
|
362
|
+
}
|
|
363
|
+
if (typeof newDomain.addDomainAdmins === 'function') {
|
|
364
|
+
await newDomain.addDomainAdmins(newUser);
|
|
365
|
+
console.log(`User ${newUser.email} added to domain ${newDomain.domain_name} as an admin.`);
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
368
|
+
console.warn(`newDomain.addDomainAdmins is not a function. Skipping adding user to domain admins.`);
|
|
369
|
+
}
|
|
370
|
+
console.log("--- User and Domain Creation Complete ---");
|
|
371
|
+
console.log("--- All model seeding and synchronization complete. ---");
|
|
372
|
+
process.exit(0);
|
|
373
|
+
}
|
|
374
|
+
catch (error) {
|
|
375
|
+
console.error("Unhandled error during seeding process:", error);
|
|
376
|
+
process.exit(1);
|
|
377
|
+
}
|
|
378
|
+
finally {
|
|
379
|
+
console.log("Closing database connections...");
|
|
380
|
+
await mainSequelize.close();
|
|
381
|
+
await psSequelize.close();
|
|
382
|
+
console.log("Database connections closed.");
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
seedAllModels().catch((error) => {
|
|
386
|
+
console.error("Fatal error running seedAllModels:", error);
|
|
387
|
+
process.exit(1);
|
|
388
|
+
});
|
|
389
|
+
export { seedAllModels }; // Export if you plan to import and run this elsewhere
|