/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/hydra-crawler@3.3.6/dist/cli.mjs
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
import{CommonsFixedDate,commonsTypeIsObjectArray,commonsTypeIsTArray}from"tscommons-esm-core";import{isTCommonsScheduleTime}from"tscommons-esm-async";import{EStatus}from"hydra-crawler-esm-assets";import{CommonsArgs}from"nodecommons-esm-cli";import{commonsLogInfo,commonsLogSetLevel,ECommonsLogLevel}from"nodecommons-esm-log";import{isICommonsCredentials}from"nodecommons-esm-database";import{isIInternalHydraCommonDbApp,isIInternalHydraCommonListApp,isIInternalHydraCommonExpiryApp,isIInternalHydraCommonMaintenanceApp}from"./apps/internal-hydra-common.app.mjs";import{HydraApp}from"./apps/hydra.app.mjs";import{DenylistApp}from"./apps/denylist.app.mjs";import{CleanupApp}from"./apps/cleanup.app.mjs";import{ExpireApp}from"./apps/expire.app.mjs";import{ImportApp}from"./apps/import.app.mjs";import{ReattemptApp}from"./apps/reattempt.app.mjs";import{SeedApp}from"./apps/seed.app.mjs";import{StartupApp}from"./apps/startup.app.mjs";import{RequeueDomainApp}from"./apps/requeue-domain.app.mjs";import{UnarchiveUrlsApp}from"./apps/unarchive-urls.app.mjs";import{MoveToArchiveApp}from"./apps/move-to-archive.app.mjs";import{PruneArchiveApp}from"./apps/prune-archive.app.mjs";import{QueryApp}from"./apps/query.app.mjs";import{CrossPopulateExportApp}from"./apps/cross-populate-export.app.mjs";import{CrossPopulateImportApp}from"./apps/cross-populate-import.app.mjs";import{ExtractTextApp}from"./apps/extract-text.app.mjs";import{ExportDomainUrlsApp}from"./apps/export-domain-urls.mjs";import{InvalidApp}from"./apps/invalid.app.mjs";import{DatabaseService}from"./services/database.service.mjs";import{isIMatch}from"./interfaces/imatch.mjs";import{isIExpiry,toIExpiry}from"./interfaces/iexpiry.mjs";import{filenameFromEList,ELISTS}from"./enums/elist.mjs";const args=new CommonsArgs;let app;if(args.hasAttribute("debug")&&commonsLogSetLevel(ECommonsLogLevel.DEBUG),args.hasAttribute("denylist"))app=new DenylistApp;else if(args.hasAttribute("cleanup")){const e=args.hasAttribute("reset"),p=args.hasAttribute("links"),a=args.getFirstValueOrUndefined("domain");let r;e&&(r=args.hasAttribute("include-archiveds")),app=new CleanupApp(e,p,r,a)}else if(args.hasAttribute("invalid"))app=new InvalidApp;else if(args.hasAttribute("expire")){let e;args.hasAttribute("days")&&(e=new CommonsFixedDate,e.day-=args.getFirstNumber("days")),args.hasAttribute("date")&&(e=args.getFirstFixedDate("date")),app=new ExpireApp(e)}else if(args.hasAttribute("import"))app=new ImportApp;else if(args.hasAttribute("reattempt")){const e=[];args.hasAttribute("failed")&&e.push(EStatus.FAILED),args.hasAttribute("dead")&&e.push(EStatus.DEAD),args.hasAttribute("archived")&&e.push(EStatus.ARCHIVED),app=new ReattemptApp(e)}else if(args.hasAttribute("seed"))app=new SeedApp;else if(args.hasAttribute("startup"))app=new StartupApp;else if(args.hasAttribute("requeue-domain")){const e=args.getFirstValue("domain");app=new RequeueDomainApp(e,args.hasAttribute("done-200-only"))}else if(args.hasAttribute("unarchive"))app=new UnarchiveUrlsApp;else if(args.hasAttribute("move-to-archive"))app=new MoveToArchiveApp;else if(args.hasAttribute("prune-archive"))app=new PruneArchiveApp;else if(args.hasAttribute("cross-populate-export")){const e=args.getFirstValue("filename");app=new CrossPopulateExportApp(e)}else if(args.hasAttribute("cross-populate-import")){const e=args.getFirstValue("filename");app=new CrossPopulateImportApp(e)}else if(args.hasAttribute("query")){const e=args.getFirstValue("query-name");app=new QueryApp(e)}else if(args.hasAttribute("extract-text")){const e=args.getFirstValue("url");app=new ExtractTextApp(e)}else if(args.hasAttribute("export-domain-urls")){const e=args.getFirstValue("domain");app=new ExportDomainUrlsApp(e)}else app=new HydraApp;if(!app)throw new Error("No app created. This should not be possible");const configAuth=app.loadConfigFile("hydra-auth.json"),credentials=configAuth.getObject("database");if(!isICommonsCredentials(credentials))throw new Error("Database credentials are not valid");if(isIInternalHydraCommonDbApp(app)){const e=new DatabaseService(credentials);app.setDatabaseService(e)}if(isIInternalHydraCommonListApp(app))for(const e of ELISTS){const p=filenameFromEList(e),a=app.loadRawJsonConfigFile(p);if(!commonsTypeIsTArray(a,isIMatch))throw new Error(`Invalid JSON list for ${e}`);app.addToList(e,a)}if(isIInternalHydraCommonExpiryApp(app)){const e=app.loadRawJsonConfigFile("list-expiry.json");if(!commonsTypeIsObjectArray(e))throw new Error("Invalid expiry list");const p=e.map((e=>toIExpiry(e)));if(!commonsTypeIsTArray(p,isIExpiry))throw new Error("Invalid JSON list for expiry");app.addToExpiry(p)}if(isIInternalHydraCommonMaintenanceApp(app)){const e=app.loadRawJsonConfigFile("schedule.json");if(!commonsTypeIsTArray(e,isTCommonsScheduleTime))throw new Error("Invalid schedule list");app.setMaintenanceSchedule(e)}(async()=>{commonsLogInfo(`Starting application: ${app.getAppName()}`),await app.start(),commonsLogInfo("Application completed"),setTimeout((()=>{process.exit(0)}),100)})();
//# sourceMappingURL=/sm/7e7537dbe74790fc1668f75e3a212fcfae399958754def7a3434541171954699.map