"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.InternalJinaSerpService = void 0; const tsyringe_1 = require("tsyringe"); const logger_1 = require("../logger"); const secrets_1 = require("../../shared/services/secrets"); const async_context_1 = require("../async-context"); const blackhole_detector_1 = require("../blackhole-detector"); const async_service_1 = require("civkit/async-service"); const internal_serp_1 = require("../../shared/3rd-party/internal-serp"); let InternalJinaSerpService = class InternalJinaSerpService extends async_service_1.AsyncService { constructor(globalLogger, secretExposer, threadLocal, blackHoleDetector) { super(...arguments); this.globalLogger = globalLogger; this.secretExposer = secretExposer; this.threadLocal = threadLocal; this.blackHoleDetector = blackHoleDetector; this.logger = this.globalLogger.child({ service: this.constructor.name }); } async init() { await this.dependencyReady(); this.emit('ready'); this.client = new internal_serp_1.JinaSerpApiHTTP(this.secretExposer.JINA_SERP_API_KEY); } async doSearch(variant, query) { this.logger.debug(`Doing external search`, query); let results; switch (variant) { // case 'images': { // const r = await this.client.imageSearch(query); // results = r.parsed.images; // break; // } // case 'news': { // const r = await this.client.newsSearch(query); // results = r.parsed.news; // break; // } case 'web': default: { const r = await this.client.webSearch(query); results = r.parsed.results?.map((x) => ({ ...x, link: x.url })); break; } } this.blackHoleDetector.itWorked(); return results; } async webSearch(query) { return this.doSearch('web', query); } async imageSearch(query) { return this.doSearch('images', query); } async newsSearch(query) { return this.doSearch('news', query); } }; exports.InternalJinaSerpService = InternalJinaSerpService; exports.InternalJinaSerpService = InternalJinaSerpService = __decorate([ (0, tsyringe_1.singleton)(), __metadata("design:paramtypes", [logger_1.GlobalLogger, secrets_1.SecretExposer, async_context_1.AsyncLocalContext, blackhole_detector_1.BlackHoleDetector]) ], InternalJinaSerpService); //# sourceMappingURL=internal.js.map