@drodil/backstage-plugin-search-backend-module-qeta 3.12.4 → 3.12.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultQetaCollatorFactory.cjs.js","sources":["../../src/collators/DefaultQetaCollatorFactory.ts"],"sourcesContent":["import { Config } from '@backstage/config';\nimport { Readable } from 'stream';\nimport { DocumentCollatorFactory } from '@backstage/plugin-search-common';\nimport {\n QetaApi,\n QetaClient,\n QetaCollectionDocument,\n QetaPostDocument,\n} from '@drodil/backstage-plugin-qeta-common';\nimport {\n AuthService,\n DiscoveryService,\n LoggerService,\n} from '@backstage/backend-plugin-api';\n\nexport type QetaCollatorFactoryOptions = {\n logger: LoggerService;\n discovery: DiscoveryService;\n auth?: AuthService;\n};\n\nexport class DefaultQetaCollatorFactory implements DocumentCollatorFactory {\n public readonly type: string = 'qeta';\n private readonly logger: LoggerService;\n private readonly auth?: AuthService;\n private readonly api: QetaApi;\n\n private constructor(_config: Config, options: QetaCollatorFactoryOptions) {\n this.logger = options.logger;\n this.auth = options.auth;\n this.api = new QetaClient({ discoveryApi: options.discovery });\n }\n\n static fromConfig(config: Config, options: QetaCollatorFactoryOptions) {\n return new DefaultQetaCollatorFactory(config, options);\n }\n\n async getCollator() {\n return Readable.from(this.execute());\n }\n\n async *execute(): AsyncGenerator<QetaPostDocument | QetaCollectionDocument> {\n this.logger.info('Executing QetaCollator');\n let totalPosts = Number.MAX_VALUE;\n let indexedPosts = 0;\n\n while (totalPosts > indexedPosts) {\n let tok = undefined;\n\n if (this.auth) {\n const { token } = await this.auth.getPluginRequestToken({\n onBehalfOf: await this.auth.getOwnServiceCredentials(),\n targetPluginId: 'qeta',\n });\n tok = token;\n }\n\n const data = await this.api.getPosts(\n {\n includeAnswers: true,\n includeComments: true,\n orderBy: 'created',\n order: 'asc',\n limit: 50,\n offset: indexedPosts,\n },\n { token: tok },\n );\n\n if (!data || 'errors' in data || !('posts' in data)) {\n this.logger.error(\n `Error while fetching posts from qeta: ${JSON.stringify(data)}`,\n );\n return;\n }\n\n const posts = data.posts;\n this.logger.info(`Indexing ${posts.length} posts`);\n totalPosts = data.total;\n indexedPosts += posts.length;\n\n for (const post of posts) {\n const postContent = `# ${\n post.type === 'question' ? 'Question' : 'Article'\n }: ${post.title}\\n\\n${post.content}`;\n const answersContent = (post.answers ?? []).map(a => {\n return `## ${a.correct ? 'Correct answer' : 'Answer'} by ${\n a.author\n }: ${a.content}`;\n });\n\n const allComments = (post.comments ?? []).concat(\n (post.answers ?? []).flatMap(a => a.comments ?? []),\n );\n const commentsContent = allComments.map(c => {\n return `* Comment by ${c.author}: ${c.content}`;\n });\n\n yield {\n title: post.title,\n text: `${postContent}\\n\\n${answersContent.join(\n '\\n\\n',\n )}\\n\\nComments:\\n\\n${commentsContent.join('\\n\\n')}`,\n location:\n post.type === 'question'\n ? `/qeta/questions/${post.id}`\n : `/qeta/articles/${post.id}`,\n docType: 'qeta_post',\n author: post.author,\n score: post.score,\n entityRefs: post.entities,\n answerCount: post.answersCount,\n views: post.views,\n tags: post.tags,\n };\n }\n }\n\n let totalCollections = Number.MAX_VALUE;\n let indexedCollections = 0;\n\n while (totalCollections > indexedCollections) {\n let tok = undefined;\n\n if (this.auth) {\n const { token } = await this.auth.getPluginRequestToken({\n onBehalfOf: await this.auth.getOwnServiceCredentials(),\n targetPluginId: 'qeta',\n });\n tok = token;\n }\n\n const data = await this.api.getCollections(\n {\n orderBy: 'created',\n order: 'asc',\n limit: 50,\n offset: indexedCollections,\n },\n { token: tok },\n );\n\n if (!data || 'errors' in data || !('collections' in data)) {\n this.logger.error(\n `Error while fetching collections from qeta: ${JSON.stringify(data)}`,\n );\n return;\n }\n\n const collections = data.collections;\n this.logger.info(`Indexing ${collections.length} collections`);\n totalCollections = data.total;\n indexedCollections += collections.length;\n\n for (const collection of collections) {\n yield {\n title: collection.title,\n text: collection.description ?? '',\n location: `/qeta/collections/${collection.id}`,\n docType: 'qeta_collection',\n owner: collection.owner,\n created: collection.created,\n headerImage: collection.headerImage,\n };\n }\n }\n }\n}\n"],"names":["QetaClient","Readable"],"mappings":"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"}
1
+ {"version":3,"file":"DefaultQetaCollatorFactory.cjs.js","sources":["../../src/collators/DefaultQetaCollatorFactory.ts"],"sourcesContent":["import { Config } from '@backstage/config';\nimport { Readable } from 'stream';\nimport { DocumentCollatorFactory } from '@backstage/plugin-search-common';\nimport {\n QetaApi,\n QetaClient,\n QetaCollectionDocument,\n QetaPostDocument,\n} from '@drodil/backstage-plugin-qeta-common';\nimport {\n AuthService,\n DiscoveryService,\n LoggerService,\n} from '@backstage/backend-plugin-api';\n\nexport type QetaCollatorFactoryOptions = {\n logger: LoggerService;\n discovery: DiscoveryService;\n auth?: AuthService;\n};\n\nexport class DefaultQetaCollatorFactory implements DocumentCollatorFactory {\n public readonly type: string = 'qeta';\n private readonly logger: LoggerService;\n private readonly auth?: AuthService;\n private readonly api: QetaApi;\n\n private constructor(_config: Config, options: QetaCollatorFactoryOptions) {\n this.logger = options.logger;\n this.auth = options.auth;\n this.api = new QetaClient({ discoveryApi: options.discovery });\n }\n\n static fromConfig(config: Config, options: QetaCollatorFactoryOptions) {\n return new DefaultQetaCollatorFactory(config, options);\n }\n\n async getCollator() {\n return Readable.from(this.execute());\n }\n\n async *execute(): AsyncGenerator<QetaPostDocument | QetaCollectionDocument> {\n this.logger.info('Executing QetaCollator');\n let totalPosts = Number.MAX_VALUE;\n let indexedPosts = 0;\n\n while (totalPosts > indexedPosts) {\n let tok = undefined;\n\n if (this.auth) {\n const { token } = await this.auth.getPluginRequestToken({\n onBehalfOf: await this.auth.getOwnServiceCredentials(),\n targetPluginId: 'qeta',\n });\n tok = token;\n }\n\n const data = await this.api.getPosts(\n {\n includeAnswers: true,\n includeComments: true,\n orderBy: 'created',\n order: 'asc',\n limit: 50,\n offset: indexedPosts,\n },\n { token: tok },\n );\n\n if (!data || 'errors' in data || !('posts' in data)) {\n this.logger.error(\n `Error while fetching posts from qeta: ${JSON.stringify(data)}`,\n );\n return;\n }\n\n const posts = data.posts;\n this.logger.info(`Indexing ${posts.length} posts`);\n totalPosts = data.total;\n indexedPosts += posts.length;\n\n for (const post of posts) {\n const postContent = `# ${\n post.type === 'question' ? 'Question' : 'Article'\n }: ${post.title}\\n\\n${post.content}`;\n const answersContent = (post.answers ?? []).map(a => {\n return `## ${a.correct ? 'Correct answer' : 'Answer'} by ${\n a.author\n }: ${a.content}`;\n });\n\n const allComments = (post.comments ?? []).concat(\n (post.answers ?? []).flatMap(a => a.comments ?? []),\n );\n const commentsContent = allComments.map(c => {\n return `* Comment by ${c.author}: ${c.content}`;\n });\n\n yield {\n title: post.title,\n text: `${postContent}\\n\\n${answersContent.join(\n '\\n\\n',\n )}\\n\\nComments:\\n\\n${commentsContent.join('\\n\\n')}`,\n location:\n post.type === 'question'\n ? `/qeta/questions/${post.id}`\n : `/qeta/articles/${post.id}`,\n docType: 'qeta_post',\n author: post.author,\n score: post.score,\n entityRefs: post.entities,\n answerCount: post.answersCount,\n views: post.views,\n tags: post.tags,\n };\n }\n }\n\n let totalCollections = Number.MAX_VALUE;\n let indexedCollections = 0;\n\n while (totalCollections > indexedCollections) {\n let tok = undefined;\n\n if (this.auth) {\n const { token } = await this.auth.getPluginRequestToken({\n onBehalfOf: await this.auth.getOwnServiceCredentials(),\n targetPluginId: 'qeta',\n });\n tok = token;\n }\n\n const data = await this.api.getCollections(\n {\n orderBy: 'created',\n order: 'asc',\n limit: 50,\n offset: indexedCollections,\n },\n { token: tok },\n );\n\n if (!data || 'errors' in data || !('collections' in data)) {\n this.logger.error(\n `Error while fetching collections from qeta: ${JSON.stringify(data)}`,\n );\n return;\n }\n\n const collections = data.collections;\n this.logger.info(`Indexing ${collections.length} collections`);\n totalCollections = data.total;\n indexedCollections += collections.length;\n\n for (const collection of collections) {\n yield {\n title: collection.title,\n text: collection.description ?? '',\n location: `/qeta/collections/${collection.id}`,\n docType: 'qeta_collection',\n owner: collection.owner,\n created: collection.created,\n headerImage: collection.headerImage,\n };\n }\n }\n }\n}\n"],"names":["QetaClient","Readable"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.cjs.js","sources":["../../src/collators/config.ts"],"sourcesContent":["import { Config } from '@backstage/config';\nimport {\n readSchedulerServiceTaskScheduleDefinitionFromConfig,\n SchedulerServiceTaskScheduleDefinition,\n} from '@backstage/backend-plugin-api';\nimport { InputError } from '@backstage/errors';\n\nconst configKey = 'search.collators.qeta';\n\nexport const defaults = {\n schedule: {\n frequency: { minutes: 10 },\n timeout: { minutes: 15 },\n initialDelay: { seconds: 3 },\n },\n};\n\nexport function readScheduleConfigOptions(\n configRoot: Config,\n): SchedulerServiceTaskScheduleDefinition {\n let schedule: SchedulerServiceTaskScheduleDefinition | undefined = undefined;\n\n const config = configRoot.getOptionalConfig(configKey);\n if (config) {\n const scheduleConfig = config.getOptionalConfig('schedule');\n if (scheduleConfig) {\n try {\n schedule =\n readSchedulerServiceTaskScheduleDefinitionFromConfig(scheduleConfig);\n } catch (error) {\n throw new InputError(`Invalid schedule at ${configKey}, ${error}`);\n }\n }\n }\n\n return schedule ?? defaults.schedule;\n}\n"],"names":["readSchedulerServiceTaskScheduleDefinitionFromConfig","InputError"],"mappings":";;;;;AAOA,MAAM,SAAY,GAAA,uBAAA,CAAA;AAEX,MAAM,QAAW,GAAA;AAAA,EACtB,QAAU,EAAA;AAAA,IACR,SAAA,EAAW,EAAE,OAAA,EAAS,EAAG,EAAA;AAAA,IACzB,OAAA,EAAS,EAAE,OAAA,EAAS,EAAG,EAAA;AAAA,IACvB,YAAA,EAAc,EAAE,OAAA,EAAS,CAAE,EAAA;AAAA,GAC7B;AACF,EAAA;AAEO,SAAS,0BACd,UACwC,EAAA;AACxC,EAAA,IAAI,QAA+D,GAAA,KAAA,CAAA,CAAA;AAEnE,EAAM,MAAA,MAAA,GAAS,UAAW,CAAA,iBAAA,CAAkB,SAAS,CAAA,CAAA;AACrD,EAAA,IAAI,MAAQ,EAAA;AACV,IAAM,MAAA,cAAA,GAAiB,MAAO,CAAA,iBAAA,CAAkB,UAAU,CAAA,CAAA;AAC1D,IAAA,IAAI,cAAgB,EAAA;AAClB,MAAI,IAAA;AACF,QAAA,QAAA,GACEA,sEAAqD,cAAc,CAAA,CAAA;AAAA,eAC9D,KAAO,EAAA;AACd,QAAA,MAAM,IAAIC,iBAAW,CAAA,CAAA,oBAAA,EAAuB,SAAS,CAAA,EAAA,EAAK,KAAK,CAAE,CAAA,CAAA,CAAA;AAAA,OACnE;AAAA,KACF;AAAA,GACF;AAEA,EAAA,OAAO,YAAY,QAAS,CAAA,QAAA,CAAA;AAC9B;;;;;"}
1
+ {"version":3,"file":"config.cjs.js","sources":["../../src/collators/config.ts"],"sourcesContent":["import { Config } from '@backstage/config';\nimport {\n readSchedulerServiceTaskScheduleDefinitionFromConfig,\n SchedulerServiceTaskScheduleDefinition,\n} from '@backstage/backend-plugin-api';\nimport { InputError } from '@backstage/errors';\n\nconst configKey = 'search.collators.qeta';\n\nexport const defaults = {\n schedule: {\n frequency: { minutes: 10 },\n timeout: { minutes: 15 },\n initialDelay: { seconds: 3 },\n },\n};\n\nexport function readScheduleConfigOptions(\n configRoot: Config,\n): SchedulerServiceTaskScheduleDefinition {\n let schedule: SchedulerServiceTaskScheduleDefinition | undefined = undefined;\n\n const config = configRoot.getOptionalConfig(configKey);\n if (config) {\n const scheduleConfig = config.getOptionalConfig('schedule');\n if (scheduleConfig) {\n try {\n schedule =\n readSchedulerServiceTaskScheduleDefinitionFromConfig(scheduleConfig);\n } catch (error) {\n throw new InputError(`Invalid schedule at ${configKey}, ${error}`);\n }\n }\n }\n\n return schedule ?? defaults.schedule;\n}\n"],"names":["readSchedulerServiceTaskScheduleDefinitionFromConfig","InputError"],"mappings":";;;;;AAOA,MAAM,SAAY,GAAA,uBAAA;AAEX,MAAM,QAAW,GAAA;AAAA,EACtB,QAAU,EAAA;AAAA,IACR,SAAA,EAAW,EAAE,OAAA,EAAS,EAAG,EAAA;AAAA,IACzB,OAAA,EAAS,EAAE,OAAA,EAAS,EAAG,EAAA;AAAA,IACvB,YAAA,EAAc,EAAE,OAAA,EAAS,CAAE;AAAA;AAE/B;AAEO,SAAS,0BACd,UACwC,EAAA;AACxC,EAAA,IAAI,QAA+D,GAAA,KAAA,CAAA;AAEnE,EAAM,MAAA,MAAA,GAAS,UAAW,CAAA,iBAAA,CAAkB,SAAS,CAAA;AACrD,EAAA,IAAI,MAAQ,EAAA;AACV,IAAM,MAAA,cAAA,GAAiB,MAAO,CAAA,iBAAA,CAAkB,UAAU,CAAA;AAC1D,IAAA,IAAI,cAAgB,EAAA;AAClB,MAAI,IAAA;AACF,QAAA,QAAA,GACEA,sEAAqD,cAAc,CAAA;AAAA,eAC9D,KAAO,EAAA;AACd,QAAA,MAAM,IAAIC,iBAAW,CAAA,CAAA,oBAAA,EAAuB,SAAS,CAAA,EAAA,EAAK,KAAK,CAAE,CAAA,CAAA;AAAA;AACnE;AACF;AAGF,EAAA,OAAO,YAAY,QAAS,CAAA,QAAA;AAC9B;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.cjs.js","sources":["../src/module.ts"],"sourcesContent":["import {\n coreServices,\n createBackendModule,\n} from '@backstage/backend-plugin-api';\nimport { searchIndexRegistryExtensionPoint } from '@backstage/plugin-search-backend-node/alpha';\nimport { readScheduleConfigOptions } from './collators/config';\nimport { DefaultQetaCollatorFactory } from './collators';\n\nexport const searchModuleQetaCollator = createBackendModule({\n pluginId: 'search',\n moduleId: 'qeta-collator',\n register(reg) {\n reg.registerInit({\n deps: {\n config: coreServices.rootConfig,\n logger: coreServices.logger,\n discovery: coreServices.discovery,\n auth: coreServices.auth,\n scheduler: coreServices.scheduler,\n indexRegistry: searchIndexRegistryExtensionPoint,\n },\n async init({\n config,\n logger,\n discovery,\n auth,\n scheduler,\n indexRegistry,\n }) {\n indexRegistry.addCollator({\n schedule: scheduler.createScheduledTaskRunner(\n readScheduleConfigOptions(config),\n ),\n factory: DefaultQetaCollatorFactory.fromConfig(config, {\n discovery,\n auth,\n logger,\n }),\n });\n },\n });\n },\n});\n"],"names":["createBackendModule","coreServices","searchIndexRegistryExtensionPoint","config","readScheduleConfigOptions","DefaultQetaCollatorFactory"],"mappings":";;;;;;;AAQO,MAAM,2BAA2BA,oCAAoB,CAAA;AAAA,EAC1D,QAAU,EAAA,QAAA;AAAA,EACV,QAAU,EAAA,eAAA;AAAA,EACV,SAAS,GAAK,EAAA;AACZ,IAAA,GAAA,CAAI,YAAa,CAAA;AAAA,MACf,IAAM,EAAA;AAAA,QACJ,QAAQC,6BAAa,CAAA,UAAA;AAAA,QACrB,QAAQA,6BAAa,CAAA,MAAA;AAAA,QACrB,WAAWA,6BAAa,CAAA,SAAA;AAAA,QACxB,MAAMA,6BAAa,CAAA,IAAA;AAAA,QACnB,WAAWA,6BAAa,CAAA,SAAA;AAAA,QACxB,aAAe,EAAAC,uCAAA;AAAA,OACjB;AAAA,MACA,MAAM,IAAK,CAAA;AAAA,gBACTC,QAAA;AAAA,QACA,MAAA;AAAA,QACA,SAAA;AAAA,QACA,IAAA;AAAA,QACA,SAAA;AAAA,QACA,aAAA;AAAA,OACC,EAAA;AACD,QAAA,aAAA,CAAc,WAAY,CAAA;AAAA,UACxB,UAAU,SAAU,CAAA,yBAAA;AAAA,YAClBC,iCAA0BD,QAAM,CAAA;AAAA,WAClC;AAAA,UACA,OAAA,EAASE,qDAA2B,CAAA,UAAA,CAAWF,QAAQ,EAAA;AAAA,YACrD,SAAA;AAAA,YACA,IAAA;AAAA,YACA,MAAA;AAAA,WACD,CAAA;AAAA,SACF,CAAA,CAAA;AAAA,OACH;AAAA,KACD,CAAA,CAAA;AAAA,GACH;AACF,CAAC;;;;"}
1
+ {"version":3,"file":"module.cjs.js","sources":["../src/module.ts"],"sourcesContent":["import {\n coreServices,\n createBackendModule,\n} from '@backstage/backend-plugin-api';\nimport { searchIndexRegistryExtensionPoint } from '@backstage/plugin-search-backend-node/alpha';\nimport { readScheduleConfigOptions } from './collators/config';\nimport { DefaultQetaCollatorFactory } from './collators';\n\nexport const searchModuleQetaCollator = createBackendModule({\n pluginId: 'search',\n moduleId: 'qeta-collator',\n register(reg) {\n reg.registerInit({\n deps: {\n config: coreServices.rootConfig,\n logger: coreServices.logger,\n discovery: coreServices.discovery,\n auth: coreServices.auth,\n scheduler: coreServices.scheduler,\n indexRegistry: searchIndexRegistryExtensionPoint,\n },\n async init({\n config,\n logger,\n discovery,\n auth,\n scheduler,\n indexRegistry,\n }) {\n indexRegistry.addCollator({\n schedule: scheduler.createScheduledTaskRunner(\n readScheduleConfigOptions(config),\n ),\n factory: DefaultQetaCollatorFactory.fromConfig(config, {\n discovery,\n auth,\n logger,\n }),\n });\n },\n });\n },\n});\n"],"names":["createBackendModule","coreServices","searchIndexRegistryExtensionPoint","config","readScheduleConfigOptions","DefaultQetaCollatorFactory"],"mappings":";;;;;;;AAQO,MAAM,2BAA2BA,oCAAoB,CAAA;AAAA,EAC1D,QAAU,EAAA,QAAA;AAAA,EACV,QAAU,EAAA,eAAA;AAAA,EACV,SAAS,GAAK,EAAA;AACZ,IAAA,GAAA,CAAI,YAAa,CAAA;AAAA,MACf,IAAM,EAAA;AAAA,QACJ,QAAQC,6BAAa,CAAA,UAAA;AAAA,QACrB,QAAQA,6BAAa,CAAA,MAAA;AAAA,QACrB,WAAWA,6BAAa,CAAA,SAAA;AAAA,QACxB,MAAMA,6BAAa,CAAA,IAAA;AAAA,QACnB,WAAWA,6BAAa,CAAA,SAAA;AAAA,QACxB,aAAe,EAAAC;AAAA,OACjB;AAAA,MACA,MAAM,IAAK,CAAA;AAAA,gBACTC,QAAA;AAAA,QACA,MAAA;AAAA,QACA,SAAA;AAAA,QACA,IAAA;AAAA,QACA,SAAA;AAAA,QACA;AAAA,OACC,EAAA;AACD,QAAA,aAAA,CAAc,WAAY,CAAA;AAAA,UACxB,UAAU,SAAU,CAAA,yBAAA;AAAA,YAClBC,iCAA0BD,QAAM;AAAA,WAClC;AAAA,UACA,OAAA,EAASE,qDAA2B,CAAA,UAAA,CAAWF,QAAQ,EAAA;AAAA,YACrD,SAAA;AAAA,YACA,IAAA;AAAA,YACA;AAAA,WACD;AAAA,SACF,CAAA;AAAA;AACH,KACD,CAAA;AAAA;AAEL,CAAC;;;;"}
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "search",
8
8
  "backstage.io"
9
9
  ],
10
- "version": "3.12.4",
10
+ "version": "3.12.5",
11
11
  "main": "dist/index.cjs.js",
12
12
  "types": "dist/index.d.ts",
13
13
  "prepublishOnly": "yarn tsc && yarn build",
@@ -46,11 +46,11 @@
46
46
  "@backstage/errors": "^1.2.5",
47
47
  "@backstage/plugin-search-backend-node": "^1.3.5",
48
48
  "@backstage/plugin-search-common": "^1.2.15",
49
- "@drodil/backstage-plugin-qeta-common": "^3.12.4"
49
+ "@drodil/backstage-plugin-qeta-common": "^3.12.5"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@backstage/backend-test-utils": "^1.1.0",
53
- "@backstage/cli": "^0.29.1",
53
+ "@backstage/cli": "^0.29.2",
54
54
  "msw": "^1.2.1"
55
55
  },
56
56
  "files": [