@drodil/backstage-plugin-qeta-backend 3.55.2 → 3.55.4
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/dist/database/stores/BaseStore.cjs.js +18 -1
- package/dist/database/stores/BaseStore.cjs.js.map +1 -1
- package/dist/service/NotificationManager.cjs.js +26 -26
- package/dist/service/NotificationManager.cjs.js.map +1 -1
- package/dist/service/routes/helpers.cjs.js +9 -5
- package/dist/service/routes/helpers.cjs.js.map +1 -1
- package/dist/service/routes/posts.cjs.js +3 -0
- package/dist/service/routes/posts.cjs.js.map +1 -1
- package/dist/service/types.cjs.js +5 -0
- package/dist/service/types.cjs.js.map +1 -1
- package/migrations/20260108_pg_trgm_extension.js +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.cjs.js","sources":["../../src/service/types.ts"],"sourcesContent":["import { JSONSchemaType } from 'ajv';\nimport { QetaStore } from '../database/QetaStore';\nimport {\n AuditorService,\n AuthService,\n CacheService,\n DiscoveryService,\n HttpAuthService,\n LoggerService,\n PermissionsRegistryService,\n PermissionsService,\n UserInfoService,\n} from '@backstage/backend-plugin-api';\nimport { Config } from '@backstage/config';\nimport { EventsService } from '@backstage/plugin-events-node';\nimport { SignalsService } from '@backstage/plugin-signals-node';\nimport { NotificationService } from '@backstage/plugin-notifications-node';\nimport { NotificationManager } from './NotificationManager';\nimport {\n AIQuery,\n AnswersQuery,\n CollectionsQuery,\n EntitiesQuery,\n PostQuery,\n PostsQuery,\n PostStatus,\n PostType,\n SuggestionsQuery,\n TagsQuery,\n URLMetadataQuery,\n UsersQuery,\n} from '@drodil/backstage-plugin-qeta-common';\nimport { CatalogApi } from '@backstage/catalog-client';\nimport { AIHandler } from '@drodil/backstage-plugin-qeta-node';\nimport { PermissionManager } from './PermissionManager.ts';\n\nexport interface RouterOptions {\n database: QetaStore;\n logger: LoggerService;\n config: Config;\n discovery: DiscoveryService;\n httpAuth: HttpAuthService;\n userInfo: UserInfoService;\n catalog: CatalogApi;\n auth: AuthService;\n cache?: CacheService;\n permissions?: PermissionsService;\n events?: EventsService;\n signals?: SignalsService;\n notifications?: NotificationService;\n aiHandler?: AIHandler;\n permissionsRegistry?: PermissionsRegistryService;\n auditor?: AuditorService;\n notificationMgr: NotificationManager;\n}\n\nexport interface RouteOptions extends RouterOptions {\n notificationMgr: NotificationManager;\n permissionMgr: PermissionManager;\n}\n\nexport interface PostContent {\n title: string;\n content: string;\n author?: string;\n tags?: string[];\n entities?: string[];\n images?: number[];\n user?: string;\n created?: string;\n headerImage?: string;\n url?: string;\n anonymous?: boolean;\n type: PostType;\n status?: PostStatus;\n}\n\nexport interface TemplateContent {\n title: string;\n description: string;\n questionTitle?: string;\n questionContent?: string;\n tags?: string[];\n entities?: string[];\n}\n\nexport interface CollectionContent {\n title: string;\n description?: string;\n headerImage?: string;\n images?: number[];\n created?: string;\n tags?: string[];\n entities?: string[];\n users?: string[];\n}\n\nexport interface CollectionPostContent {\n postId: number;\n}\n\nexport interface CollectionRankContent {\n postId: number;\n rank: 'top' | 'bottom' | 'up' | 'down';\n}\n\nexport const CollectionsQuerySchema: JSONSchemaType<CollectionsQuery> = {\n type: 'object',\n properties: {\n limit: { type: 'integer', nullable: true },\n offset: { type: 'integer', nullable: true },\n searchQuery: { type: 'string', nullable: true },\n owner: { type: 'string', nullable: true },\n orderBy: {\n type: 'string',\n enum: [\n 'created',\n 'title',\n 'postsCount',\n 'questionsCount',\n 'articlesCount',\n 'linksCount',\n 'followerCount',\n ],\n nullable: true,\n },\n order: { type: 'string', enum: ['desc', 'asc'], nullable: true },\n tags: { type: 'array', items: { type: 'string' }, nullable: true },\n entities: { type: 'array', items: { type: 'string' }, nullable: true },\n entitiesRelation: { type: 'string', enum: ['and', 'or'], nullable: true },\n includePosts: { type: 'boolean', nullable: true },\n includeExperts: { type: 'boolean', nullable: true },\n tagsRelation: { type: 'string', enum: ['and', 'or'], nullable: true },\n fromDate: { type: 'string', nullable: true, format: 'date' },\n toDate: { type: 'string', nullable: true, format: 'date' },\n ids: { type: 'array', items: { type: 'integer' }, nullable: true },\n checkAccess: { type: 'boolean', nullable: true },\n },\n required: [],\n additionalProperties: false,\n};\n\nexport const PostsQuerySchema: JSONSchemaType<PostsQuery> = {\n type: 'object',\n properties: {\n limit: { type: 'integer', nullable: true },\n offset: { type: 'integer', nullable: true },\n author: { type: 'string', nullable: true },\n excludeAuthors: {\n type: 'array',\n items: { type: 'string' },\n nullable: true,\n },\n orderBy: {\n type: 'string',\n enum: [\n 'rank',\n 'views',\n 'title',\n 'trend',\n 'score',\n 'answersCount',\n 'created',\n 'updated',\n ],\n nullable: true,\n },\n collectionId: { type: 'number', nullable: true },\n order: { type: 'string', enum: ['desc', 'asc'], nullable: true },\n noCorrectAnswer: { type: 'boolean', nullable: true },\n noAnswers: { type: 'boolean', nullable: true },\n hasAnswers: { type: 'boolean', nullable: true },\n favorite: { type: 'boolean', nullable: true },\n noVotes: { type: 'boolean', nullable: true },\n status: {\n type: 'string',\n enum: ['active', 'draft', 'deleted'],\n nullable: true,\n },\n random: { type: 'boolean', nullable: true },\n tags: { type: 'array', items: { type: 'string' }, nullable: true },\n entities: { type: 'array', items: { type: 'string' }, nullable: true },\n entitiesRelation: { type: 'string', enum: ['and', 'or'], nullable: true },\n tagsRelation: { type: 'string', enum: ['and', 'or'], nullable: true },\n includeAnswers: { type: 'boolean', nullable: true },\n includeVotes: { type: 'boolean', nullable: true },\n includeAttachments: { type: 'boolean', nullable: true },\n includeHealth: { type: 'boolean', nullable: true },\n reviewNeeded: { type: 'boolean', nullable: true },\n obsolete: { type: 'boolean', nullable: true },\n includeTags: { type: 'boolean', nullable: true },\n includeEntities: { type: 'boolean', nullable: true },\n includeTrend: { type: 'boolean', nullable: true },\n includeComments: { type: 'boolean', nullable: true },\n includeExperts: { type: 'boolean', nullable: true },\n searchQuery: { type: 'string', nullable: true },\n fromDate: { type: 'string', nullable: true, format: 'date' },\n toDate: { type: 'string', nullable: true, format: 'date' },\n type: {\n type: 'string',\n enum: ['question', 'article', 'link'],\n nullable: true,\n },\n ids: { type: 'array', items: { type: 'integer' }, nullable: true },\n checkAccess: { type: 'boolean', nullable: true },\n },\n required: [],\n additionalProperties: false,\n};\n\nexport const PostQuerySchema: JSONSchemaType<PostQuery> = {\n type: 'object',\n properties: {\n anonymous: { type: 'boolean', nullable: true },\n },\n};\n\nexport const TagsQuerySchema: JSONSchemaType<TagsQuery> = {\n type: 'object',\n properties: {\n limit: { type: 'integer', nullable: true },\n offset: { type: 'integer', nullable: true },\n orderBy: {\n type: 'string',\n enum: [\n 'tag',\n 'postsCount',\n 'questionsCount',\n 'articlesCount',\n 'linksCount',\n 'followerCount',\n ],\n nullable: true,\n },\n order: { type: 'string', enum: ['desc', 'asc'], nullable: true },\n searchQuery: { type: 'string', nullable: true },\n checkAccess: { type: 'boolean', nullable: true },\n includeExperts: { type: 'boolean', nullable: true },\n },\n required: [],\n additionalProperties: false,\n};\n\nexport const UsersQuerySchema: JSONSchemaType<UsersQuery> = {\n type: 'object',\n properties: {\n limit: { type: 'integer', nullable: true },\n offset: { type: 'integer', nullable: true },\n orderBy: {\n type: 'string',\n enum: [\n 'userRef',\n 'totalPosts',\n 'totalQuestions',\n 'totalAnswers',\n 'totalArticles',\n 'totalLinks',\n 'totalViews',\n 'totalVotes',\n 'followerCount',\n 'reputation',\n ],\n nullable: true,\n },\n order: { type: 'string', enum: ['desc', 'asc'], nullable: true },\n searchQuery: { type: 'string', nullable: true },\n },\n required: [],\n additionalProperties: false,\n};\n\nexport const EntitiesQuerySchema: JSONSchemaType<EntitiesQuery> = {\n type: 'object',\n properties: {\n limit: { type: 'integer', nullable: true },\n offset: { type: 'integer', nullable: true },\n orderBy: {\n type: 'string',\n enum: [\n 'entityRef',\n 'postsCount',\n 'questionsCount',\n 'articlesCount',\n 'linksCount',\n 'followerCount',\n ],\n nullable: true,\n },\n order: { type: 'string', enum: ['desc', 'asc'], nullable: true },\n searchQuery: { type: 'string', nullable: true },\n },\n required: [],\n additionalProperties: false,\n};\n\nexport const AnswersQuerySchema: JSONSchemaType<AnswersQuery> = {\n type: 'object',\n properties: {\n limit: { type: 'integer', nullable: true },\n offset: { type: 'integer', nullable: true },\n author: { type: 'string', nullable: true },\n orderBy: {\n type: 'string',\n enum: ['score', 'created', 'updated'],\n nullable: true,\n },\n order: { type: 'string', enum: ['desc', 'asc'], nullable: true },\n noCorrectAnswer: { type: 'boolean', nullable: true },\n noVotes: { type: 'boolean', nullable: true },\n tags: { type: 'array', items: { type: 'string' }, nullable: true },\n entities: { type: 'array', items: { type: 'string' }, nullable: true },\n entitiesRelation: { type: 'string', enum: ['and', 'or'], nullable: true },\n tagsRelation: { type: 'string', enum: ['and', 'or'], nullable: true },\n includeVotes: { type: 'boolean', nullable: true },\n includeEntities: { type: 'boolean', nullable: true },\n includeComments: { type: 'boolean', nullable: true },\n includeExperts: { type: 'boolean', nullable: true },\n searchQuery: { type: 'string', nullable: true },\n fromDate: { type: 'string', nullable: true, format: 'date' },\n toDate: { type: 'string', nullable: true, format: 'date' },\n ids: { type: 'array', items: { type: 'integer' }, nullable: true },\n questionId: { type: 'integer', nullable: true },\n checkAccess: { type: 'boolean', nullable: true },\n },\n required: [],\n additionalProperties: false,\n};\n\nexport const PostSchema: JSONSchemaType<PostContent> = {\n type: 'object',\n properties: {\n title: { type: 'string', minLength: 1 },\n content: { type: 'string', minLength: 0 },\n author: { type: 'string', nullable: true },\n tags: { type: 'array', items: { type: 'string' }, nullable: true },\n entities: { type: 'array', items: { type: 'string' }, nullable: true },\n images: { type: 'array', items: { type: 'integer' }, nullable: true },\n user: { type: 'string', minLength: 1, nullable: true },\n created: { type: 'string', minLength: 1, nullable: true },\n anonymous: { type: 'boolean', nullable: true },\n headerImage: { type: 'string', nullable: true },\n url: { type: 'string', nullable: true },\n type: { type: 'string', enum: ['question', 'article', 'link'] },\n status: {\n type: 'string',\n enum: ['active', 'draft', 'deleted'],\n nullable: true,\n },\n },\n required: ['title', 'content'],\n additionalProperties: false,\n};\n\nexport const TemplateSchema: JSONSchemaType<TemplateContent> = {\n type: 'object',\n properties: {\n title: { type: 'string', minLength: 1 },\n description: { type: 'string', minLength: 1 },\n questionTitle: { type: 'string', nullable: true },\n questionContent: { type: 'string', nullable: true },\n tags: { type: 'array', items: { type: 'string' }, nullable: true },\n entities: { type: 'array', items: { type: 'string' }, nullable: true },\n },\n required: ['title', 'description'],\n additionalProperties: false,\n};\n\nexport const CollectionSchema: JSONSchemaType<CollectionContent> = {\n type: 'object',\n properties: {\n title: { type: 'string', minLength: 1 },\n description: { type: 'string', nullable: true },\n headerImage: { type: 'string', nullable: true },\n images: { type: 'array', items: { type: 'integer' }, nullable: true },\n created: { type: 'string', minLength: 1, nullable: true },\n tags: { type: 'array', items: { type: 'string' }, nullable: true },\n entities: { type: 'array', items: { type: 'string' }, nullable: true },\n users: { type: 'array', items: { type: 'string' }, nullable: true },\n },\n required: ['title'],\n additionalProperties: false,\n};\n\nexport const CollectionPostSchema: JSONSchemaType<CollectionPostContent> = {\n type: 'object',\n properties: {\n postId: { type: 'integer' },\n },\n required: ['postId'],\n additionalProperties: false,\n};\n\nexport const CollectionRankPostSchema: JSONSchemaType<CollectionRankContent> = {\n type: 'object',\n properties: {\n postId: { type: 'integer' },\n rank: { type: 'string', enum: ['top', 'bottom', 'up', 'down'] },\n },\n required: ['postId', 'rank'],\n additionalProperties: false,\n};\n\nexport interface AnswerQuestion {\n answer: string;\n images?: number[];\n user?: string;\n author?: string;\n created?: string;\n anonymous?: boolean;\n}\n\nexport const PostAnswerSchema: JSONSchemaType<AnswerQuestion> = {\n type: 'object',\n properties: {\n answer: { type: 'string', minLength: 1 },\n images: { type: 'array', items: { type: 'integer' }, nullable: true },\n user: { type: 'string', minLength: 1, nullable: true },\n author: { type: 'string', minLength: 1, nullable: true },\n created: { type: 'string', minLength: 1, nullable: true },\n anonymous: { type: 'boolean', nullable: true },\n },\n required: ['answer'],\n additionalProperties: false,\n};\n\nexport interface DeleteMetadata {\n reason?: string;\n permanent?: boolean;\n}\n\nexport const DeleteMetadataSchema: JSONSchemaType<DeleteMetadata> = {\n type: 'object',\n properties: {\n reason: { type: 'string', minLength: 1, nullable: true },\n permanent: { type: 'boolean', nullable: true },\n },\n additionalProperties: false,\n};\n\nexport interface Comment {\n content: string;\n user?: string;\n created?: string;\n}\n\nexport const CommentSchema: JSONSchemaType<Comment> = {\n type: 'object',\n properties: {\n content: { type: 'string', minLength: 1 },\n user: { type: 'string', minLength: 1, nullable: true },\n created: { type: 'string', minLength: 1, nullable: true },\n },\n required: ['content'],\n additionalProperties: false,\n};\n\nexport interface DraftQuestion {\n title: string;\n content: string;\n tags?: string[];\n entities?: string[];\n}\n\nexport const DraftQuestionSchema: JSONSchemaType<DraftQuestion> = {\n type: 'object',\n properties: {\n title: { type: 'string', minLength: 1 },\n content: { type: 'string', minLength: 1 },\n tags: {\n type: 'array',\n items: { type: 'string' },\n nullable: true,\n },\n entities: {\n type: 'array',\n items: { type: 'string' },\n nullable: true,\n },\n },\n required: ['title', 'content'],\n additionalProperties: false,\n};\n\nexport const AIQuerySchema: JSONSchemaType<AIQuery> = {\n type: 'object',\n properties: {\n regenerate: { type: 'boolean', default: false, nullable: true },\n },\n required: [],\n additionalProperties: false,\n};\n\nexport const SuggestionsQuerySchema: JSONSchemaType<SuggestionsQuery> = {\n type: 'object',\n properties: {\n limit: { type: 'integer', minimum: 1, nullable: true },\n },\n required: [],\n additionalProperties: false,\n};\n\nexport interface File {\n name: string;\n path: string;\n buffer: Buffer;\n mimeType: string;\n ext: string;\n size: number;\n}\n\nexport const URLMetadataSchema: JSONSchemaType<URLMetadataQuery> = {\n type: 'object',\n properties: {\n url: { type: 'string', minLength: 7 }, // http://\n },\n required: ['url'],\n additionalProperties: false,\n};\n\nexport interface PostReviewBody {\n status: 'valid' | 'obsolete';\n comment?: string;\n}\n\nexport const PostReviewBodySchema: JSONSchemaType<PostReviewBody> = {\n type: 'object',\n properties: {\n status: { type: 'string', enum: ['valid', 'obsolete'] },\n comment: { type: 'string', nullable: true },\n },\n required: ['status'],\n additionalProperties: false,\n};\n"],"names":[],"mappings":";;AA0GO,MAAM,sBAA2D,GAAA;AAAA,EACtE,IAAM,EAAA,QAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,KAAO,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IACzC,MAAQ,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAC1C,WAAa,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,UAAU,IAAK,EAAA;AAAA,IAC9C,KAAO,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,UAAU,IAAK,EAAA;AAAA,IACxC,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,QAAA;AAAA,MACN,IAAM,EAAA;AAAA,QACJ,SAAA;AAAA,QACA,OAAA;AAAA,QACA,YAAA;AAAA,QACA,gBAAA;AAAA,QACA,eAAA;AAAA,QACA,YAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAU,EAAA;AAAA,KACZ;AAAA,IACA,KAAA,EAAO,EAAE,IAAA,EAAM,QAAU,EAAA,IAAA,EAAM,CAAC,MAAQ,EAAA,KAAK,CAAG,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IAC/D,IAAA,EAAM,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,EAAE,IAAM,EAAA,QAAA,EAAY,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACjE,QAAA,EAAU,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,EAAE,IAAM,EAAA,QAAA,EAAY,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACrE,gBAAA,EAAkB,EAAE,IAAA,EAAM,QAAU,EAAA,IAAA,EAAM,CAAC,KAAO,EAAA,IAAI,CAAG,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACxE,YAAc,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAChD,cAAgB,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAClD,YAAA,EAAc,EAAE,IAAA,EAAM,QAAU,EAAA,IAAA,EAAM,CAAC,KAAO,EAAA,IAAI,CAAG,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACpE,UAAU,EAAE,IAAA,EAAM,UAAU,QAAU,EAAA,IAAA,EAAM,QAAQ,MAAO,EAAA;AAAA,IAC3D,QAAQ,EAAE,IAAA,EAAM,UAAU,QAAU,EAAA,IAAA,EAAM,QAAQ,MAAO,EAAA;AAAA,IACzD,GAAA,EAAK,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,EAAE,IAAM,EAAA,SAAA,EAAa,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACjE,WAAa,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK;AAAA,GACjD;AAAA,EACA,UAAU,EAAC;AAAA,EACX,oBAAsB,EAAA;AACxB;AAEO,MAAM,gBAA+C,GAAA;AAAA,EAC1D,IAAM,EAAA,QAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,KAAO,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IACzC,MAAQ,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAC1C,MAAQ,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,UAAU,IAAK,EAAA;AAAA,IACzC,cAAgB,EAAA;AAAA,MACd,IAAM,EAAA,OAAA;AAAA,MACN,KAAA,EAAO,EAAE,IAAA,EAAM,QAAS,EAAA;AAAA,MACxB,QAAU,EAAA;AAAA,KACZ;AAAA,IACA,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,QAAA;AAAA,MACN,IAAM,EAAA;AAAA,QACJ,MAAA;AAAA,QACA,OAAA;AAAA,QACA,OAAA;AAAA,QACA,OAAA;AAAA,QACA,OAAA;AAAA,QACA,cAAA;AAAA,QACA,SAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAU,EAAA;AAAA,KACZ;AAAA,IACA,YAAc,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,UAAU,IAAK,EAAA;AAAA,IAC/C,KAAA,EAAO,EAAE,IAAA,EAAM,QAAU,EAAA,IAAA,EAAM,CAAC,MAAQ,EAAA,KAAK,CAAG,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IAC/D,eAAiB,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IACnD,SAAW,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAC7C,UAAY,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAC9C,QAAU,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAC5C,OAAS,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAC3C,MAAQ,EAAA;AAAA,MACN,IAAM,EAAA,QAAA;AAAA,MACN,IAAM,EAAA,CAAC,QAAU,EAAA,OAAA,EAAS,SAAS,CAAA;AAAA,MACnC,QAAU,EAAA;AAAA,KACZ;AAAA,IACA,MAAQ,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAC1C,IAAA,EAAM,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,EAAE,IAAM,EAAA,QAAA,EAAY,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACjE,QAAA,EAAU,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,EAAE,IAAM,EAAA,QAAA,EAAY,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACrE,gBAAA,EAAkB,EAAE,IAAA,EAAM,QAAU,EAAA,IAAA,EAAM,CAAC,KAAO,EAAA,IAAI,CAAG,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACxE,YAAA,EAAc,EAAE,IAAA,EAAM,QAAU,EAAA,IAAA,EAAM,CAAC,KAAO,EAAA,IAAI,CAAG,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACpE,cAAgB,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAClD,YAAc,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAChD,kBAAoB,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IACtD,aAAe,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IACjD,YAAc,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAChD,QAAU,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAC5C,WAAa,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAC/C,eAAiB,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IACnD,YAAc,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAChD,eAAiB,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IACnD,cAAgB,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAClD,WAAa,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,UAAU,IAAK,EAAA;AAAA,IAC9C,UAAU,EAAE,IAAA,EAAM,UAAU,QAAU,EAAA,IAAA,EAAM,QAAQ,MAAO,EAAA;AAAA,IAC3D,QAAQ,EAAE,IAAA,EAAM,UAAU,QAAU,EAAA,IAAA,EAAM,QAAQ,MAAO,EAAA;AAAA,IACzD,IAAM,EAAA;AAAA,MACJ,IAAM,EAAA,QAAA;AAAA,MACN,IAAM,EAAA,CAAC,UAAY,EAAA,SAAA,EAAW,MAAM,CAAA;AAAA,MACpC,QAAU,EAAA;AAAA,KACZ;AAAA,IACA,GAAA,EAAK,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,EAAE,IAAM,EAAA,SAAA,EAAa,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACjE,WAAa,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK;AAAA,GACjD;AAAA,EACA,UAAU,EAAC;AAAA,EACX,oBAAsB,EAAA;AACxB;AAEO,MAAM,eAA6C,GAAA;AAAA,EACxD,IAAM,EAAA,QAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,SAAW,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK;AAAA;AAEjD;AAEO,MAAM,eAA6C,GAAA;AAAA,EACxD,IAAM,EAAA,QAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,KAAO,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IACzC,MAAQ,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAC1C,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,QAAA;AAAA,MACN,IAAM,EAAA;AAAA,QACJ,KAAA;AAAA,QACA,YAAA;AAAA,QACA,gBAAA;AAAA,QACA,eAAA;AAAA,QACA,YAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAU,EAAA;AAAA,KACZ;AAAA,IACA,KAAA,EAAO,EAAE,IAAA,EAAM,QAAU,EAAA,IAAA,EAAM,CAAC,MAAQ,EAAA,KAAK,CAAG,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IAC/D,WAAa,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,UAAU,IAAK,EAAA;AAAA,IAC9C,WAAa,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAC/C,cAAgB,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK;AAAA,GACpD;AAAA,EACA,UAAU,EAAC;AAAA,EACX,oBAAsB,EAAA;AACxB;AAEO,MAAM,gBAA+C,GAAA;AAAA,EAC1D,IAAM,EAAA,QAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,KAAO,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IACzC,MAAQ,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAC1C,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,QAAA;AAAA,MACN,IAAM,EAAA;AAAA,QACJ,SAAA;AAAA,QACA,YAAA;AAAA,QACA,gBAAA;AAAA,QACA,cAAA;AAAA,QACA,eAAA;AAAA,QACA,YAAA;AAAA,QACA,YAAA;AAAA,QACA,YAAA;AAAA,QACA,eAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAU,EAAA;AAAA,KACZ;AAAA,IACA,KAAA,EAAO,EAAE,IAAA,EAAM,QAAU,EAAA,IAAA,EAAM,CAAC,MAAQ,EAAA,KAAK,CAAG,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IAC/D,WAAa,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,UAAU,IAAK;AAAA,GAChD;AAAA,EACA,UAAU,EAAC;AAAA,EACX,oBAAsB,EAAA;AACxB;AAEO,MAAM,mBAAqD,GAAA;AAAA,EAChE,IAAM,EAAA,QAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,KAAO,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IACzC,MAAQ,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAC1C,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,QAAA;AAAA,MACN,IAAM,EAAA;AAAA,QACJ,WAAA;AAAA,QACA,YAAA;AAAA,QACA,gBAAA;AAAA,QACA,eAAA;AAAA,QACA,YAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,QAAU,EAAA;AAAA,KACZ;AAAA,IACA,KAAA,EAAO,EAAE,IAAA,EAAM,QAAU,EAAA,IAAA,EAAM,CAAC,MAAQ,EAAA,KAAK,CAAG,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IAC/D,WAAa,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,UAAU,IAAK;AAAA,GAChD;AAAA,EACA,UAAU,EAAC;AAAA,EACX,oBAAsB,EAAA;AACxB;AAEO,MAAM,kBAAmD,GAAA;AAAA,EAC9D,IAAM,EAAA,QAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,KAAO,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IACzC,MAAQ,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAC1C,MAAQ,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,UAAU,IAAK,EAAA;AAAA,IACzC,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,QAAA;AAAA,MACN,IAAM,EAAA,CAAC,OAAS,EAAA,SAAA,EAAW,SAAS,CAAA;AAAA,MACpC,QAAU,EAAA;AAAA,KACZ;AAAA,IACA,KAAA,EAAO,EAAE,IAAA,EAAM,QAAU,EAAA,IAAA,EAAM,CAAC,MAAQ,EAAA,KAAK,CAAG,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IAC/D,eAAiB,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IACnD,OAAS,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAC3C,IAAA,EAAM,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,EAAE,IAAM,EAAA,QAAA,EAAY,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACjE,QAAA,EAAU,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,EAAE,IAAM,EAAA,QAAA,EAAY,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACrE,gBAAA,EAAkB,EAAE,IAAA,EAAM,QAAU,EAAA,IAAA,EAAM,CAAC,KAAO,EAAA,IAAI,CAAG,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACxE,YAAA,EAAc,EAAE,IAAA,EAAM,QAAU,EAAA,IAAA,EAAM,CAAC,KAAO,EAAA,IAAI,CAAG,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACpE,YAAc,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAChD,eAAiB,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IACnD,eAAiB,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IACnD,cAAgB,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAClD,WAAa,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,UAAU,IAAK,EAAA;AAAA,IAC9C,UAAU,EAAE,IAAA,EAAM,UAAU,QAAU,EAAA,IAAA,EAAM,QAAQ,MAAO,EAAA;AAAA,IAC3D,QAAQ,EAAE,IAAA,EAAM,UAAU,QAAU,EAAA,IAAA,EAAM,QAAQ,MAAO,EAAA;AAAA,IACzD,GAAA,EAAK,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,EAAE,IAAM,EAAA,SAAA,EAAa,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACjE,UAAY,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAC9C,WAAa,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK;AAAA,GACjD;AAAA,EACA,UAAU,EAAC;AAAA,EACX,oBAAsB,EAAA;AACxB;AAEO,MAAM,UAA0C,GAAA;AAAA,EACrD,IAAM,EAAA,QAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,KAAO,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,WAAW,CAAE,EAAA;AAAA,IACtC,OAAS,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,WAAW,CAAE,EAAA;AAAA,IACxC,MAAQ,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,UAAU,IAAK,EAAA;AAAA,IACzC,IAAA,EAAM,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,EAAE,IAAM,EAAA,QAAA,EAAY,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACjE,QAAA,EAAU,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,EAAE,IAAM,EAAA,QAAA,EAAY,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACrE,MAAA,EAAQ,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,EAAE,IAAM,EAAA,SAAA,EAAa,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACpE,MAAM,EAAE,IAAA,EAAM,UAAU,SAAW,EAAA,CAAA,EAAG,UAAU,IAAK,EAAA;AAAA,IACrD,SAAS,EAAE,IAAA,EAAM,UAAU,SAAW,EAAA,CAAA,EAAG,UAAU,IAAK,EAAA;AAAA,IACxD,SAAW,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK,EAAA;AAAA,IAC7C,WAAa,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,UAAU,IAAK,EAAA;AAAA,IAC9C,GAAK,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,UAAU,IAAK,EAAA;AAAA,IACtC,IAAA,EAAM,EAAE,IAAM,EAAA,QAAA,EAAU,MAAM,CAAC,UAAA,EAAY,SAAW,EAAA,MAAM,CAAE,EAAA;AAAA,IAC9D,MAAQ,EAAA;AAAA,MACN,IAAM,EAAA,QAAA;AAAA,MACN,IAAM,EAAA,CAAC,QAAU,EAAA,OAAA,EAAS,SAAS,CAAA;AAAA,MACnC,QAAU,EAAA;AAAA;AACZ,GACF;AAAA,EACA,QAAA,EAAU,CAAC,OAAA,EAAS,SAAS,CAAA;AAAA,EAC7B,oBAAsB,EAAA;AACxB;AAEO,MAAM,cAAkD,GAAA;AAAA,EAC7D,IAAM,EAAA,QAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,KAAO,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,WAAW,CAAE,EAAA;AAAA,IACtC,WAAa,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,WAAW,CAAE,EAAA;AAAA,IAC5C,aAAe,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,UAAU,IAAK,EAAA;AAAA,IAChD,eAAiB,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,UAAU,IAAK,EAAA;AAAA,IAClD,IAAA,EAAM,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,EAAE,IAAM,EAAA,QAAA,EAAY,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACjE,QAAA,EAAU,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,EAAE,IAAM,EAAA,QAAA,EAAY,EAAA,QAAA,EAAU,IAAK;AAAA,GACvE;AAAA,EACA,QAAA,EAAU,CAAC,OAAA,EAAS,aAAa,CAAA;AAAA,EACjC,oBAAsB,EAAA;AACxB;AAEO,MAAM,gBAAsD,GAAA;AAAA,EACjE,IAAM,EAAA,QAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,KAAO,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,WAAW,CAAE,EAAA;AAAA,IACtC,WAAa,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,UAAU,IAAK,EAAA;AAAA,IAC9C,WAAa,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,UAAU,IAAK,EAAA;AAAA,IAC9C,MAAA,EAAQ,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,EAAE,IAAM,EAAA,SAAA,EAAa,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACpE,SAAS,EAAE,IAAA,EAAM,UAAU,SAAW,EAAA,CAAA,EAAG,UAAU,IAAK,EAAA;AAAA,IACxD,IAAA,EAAM,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,EAAE,IAAM,EAAA,QAAA,EAAY,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACjE,QAAA,EAAU,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,EAAE,IAAM,EAAA,QAAA,EAAY,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACrE,KAAA,EAAO,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,EAAE,IAAM,EAAA,QAAA,EAAY,EAAA,QAAA,EAAU,IAAK;AAAA,GACpE;AAAA,EACA,QAAA,EAAU,CAAC,OAAO,CAAA;AAAA,EAClB,oBAAsB,EAAA;AACxB;AAEO,MAAM,oBAA8D,GAAA;AAAA,EACzE,IAAM,EAAA,QAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,MAAA,EAAQ,EAAE,IAAA,EAAM,SAAU;AAAA,GAC5B;AAAA,EACA,QAAA,EAAU,CAAC,QAAQ,CAAA;AAAA,EACnB,oBAAsB,EAAA;AACxB;AAEO,MAAM,wBAAkE,GAAA;AAAA,EAC7E,IAAM,EAAA,QAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,MAAA,EAAQ,EAAE,IAAA,EAAM,SAAU,EAAA;AAAA,IAC1B,IAAA,EAAM,EAAE,IAAA,EAAM,QAAU,EAAA,IAAA,EAAM,CAAC,KAAO,EAAA,QAAA,EAAU,IAAM,EAAA,MAAM,CAAE;AAAA,GAChE;AAAA,EACA,QAAA,EAAU,CAAC,QAAA,EAAU,MAAM,CAAA;AAAA,EAC3B,oBAAsB,EAAA;AACxB;AAWO,MAAM,gBAAmD,GAAA;AAAA,EAC9D,IAAM,EAAA,QAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,MAAQ,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,WAAW,CAAE,EAAA;AAAA,IACvC,MAAA,EAAQ,EAAE,IAAA,EAAM,OAAS,EAAA,KAAA,EAAO,EAAE,IAAM,EAAA,SAAA,EAAa,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IACpE,MAAM,EAAE,IAAA,EAAM,UAAU,SAAW,EAAA,CAAA,EAAG,UAAU,IAAK,EAAA;AAAA,IACrD,QAAQ,EAAE,IAAA,EAAM,UAAU,SAAW,EAAA,CAAA,EAAG,UAAU,IAAK,EAAA;AAAA,IACvD,SAAS,EAAE,IAAA,EAAM,UAAU,SAAW,EAAA,CAAA,EAAG,UAAU,IAAK,EAAA;AAAA,IACxD,SAAW,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK;AAAA,GAC/C;AAAA,EACA,QAAA,EAAU,CAAC,QAAQ,CAAA;AAAA,EACnB,oBAAsB,EAAA;AACxB;AAOO,MAAM,oBAAuD,GAAA;AAAA,EAClE,IAAM,EAAA,QAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,QAAQ,EAAE,IAAA,EAAM,UAAU,SAAW,EAAA,CAAA,EAAG,UAAU,IAAK,EAAA;AAAA,IACvD,SAAW,EAAA,EAAE,IAAM,EAAA,SAAA,EAAW,UAAU,IAAK;AAAA,GAC/C;AAAA,EACA,oBAAsB,EAAA;AACxB;AAQO,MAAM,aAAyC,GAAA;AAAA,EACpD,IAAM,EAAA,QAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,OAAS,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,WAAW,CAAE,EAAA;AAAA,IACxC,MAAM,EAAE,IAAA,EAAM,UAAU,SAAW,EAAA,CAAA,EAAG,UAAU,IAAK,EAAA;AAAA,IACrD,SAAS,EAAE,IAAA,EAAM,UAAU,SAAW,EAAA,CAAA,EAAG,UAAU,IAAK;AAAA,GAC1D;AAAA,EACA,QAAA,EAAU,CAAC,SAAS,CAAA;AAAA,EACpB,oBAAsB,EAAA;AACxB;AASO,MAAM,mBAAqD,GAAA;AAAA,EAChE,IAAM,EAAA,QAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,KAAO,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,WAAW,CAAE,EAAA;AAAA,IACtC,OAAS,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,WAAW,CAAE,EAAA;AAAA,IACxC,IAAM,EAAA;AAAA,MACJ,IAAM,EAAA,OAAA;AAAA,MACN,KAAA,EAAO,EAAE,IAAA,EAAM,QAAS,EAAA;AAAA,MACxB,QAAU,EAAA;AAAA,KACZ;AAAA,IACA,QAAU,EAAA;AAAA,MACR,IAAM,EAAA,OAAA;AAAA,MACN,KAAA,EAAO,EAAE,IAAA,EAAM,QAAS,EAAA;AAAA,MACxB,QAAU,EAAA;AAAA;AACZ,GACF;AAAA,EACA,QAAA,EAAU,CAAC,OAAA,EAAS,SAAS,CAAA;AAAA,EAC7B,oBAAsB,EAAA;AACxB;AAEO,MAAM,aAAyC,GAAA;AAAA,EACpD,IAAM,EAAA,QAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,YAAY,EAAE,IAAA,EAAM,WAAW,OAAS,EAAA,KAAA,EAAO,UAAU,IAAK;AAAA,GAChE;AAAA,EACA,UAAU,EAAC;AAAA,EACX,oBAAsB,EAAA;AACxB;AAEO,MAAM,sBAA2D,GAAA;AAAA,EACtE,IAAM,EAAA,QAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,OAAO,EAAE,IAAA,EAAM,WAAW,OAAS,EAAA,CAAA,EAAG,UAAU,IAAK;AAAA,GACvD;AAAA,EACA,UAAU,EAAC;AAAA,EACX,oBAAsB,EAAA;AACxB;AAWO,MAAM,iBAAsD,GAAA;AAAA,EACjE,IAAM,EAAA,QAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,GAAK,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,WAAW,CAAE;AAAA;AAAA,GACtC;AAAA,EACA,QAAA,EAAU,CAAC,KAAK,CAAA;AAAA,EAChB,oBAAsB,EAAA;AACxB;AAOO,MAAM,oBAAuD,GAAA;AAAA,EAClE,IAAM,EAAA,QAAA;AAAA,EACN,UAAY,EAAA;AAAA,IACV,MAAA,EAAQ,EAAE,IAAM,EAAA,QAAA,EAAU,MAAM,CAAC,OAAA,EAAS,UAAU,CAAE,EAAA;AAAA,IACtD,OAAS,EAAA,EAAE,IAAM,EAAA,QAAA,EAAU,UAAU,IAAK;AAAA,GAC5C;AAAA,EACA,QAAA,EAAU,CAAC,QAAQ,CAAA;AAAA,EACnB,oBAAsB,EAAA;AACxB;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"types.cjs.js","sources":["../../src/service/types.ts"],"sourcesContent":["import { JSONSchemaType } from 'ajv';\nimport { QetaStore } from '../database/QetaStore';\nimport {\n AuditorService,\n AuthService,\n CacheService,\n DiscoveryService,\n HttpAuthService,\n LoggerService,\n PermissionsRegistryService,\n PermissionsService,\n UserInfoService,\n} from '@backstage/backend-plugin-api';\nimport { Config } from '@backstage/config';\nimport { EventsService } from '@backstage/plugin-events-node';\nimport { SignalsService } from '@backstage/plugin-signals-node';\nimport { NotificationService } from '@backstage/plugin-notifications-node';\nimport { NotificationManager } from './NotificationManager';\nimport {\n AIQuery,\n AnswersQuery,\n CollectionsQuery,\n EntitiesQuery,\n PostQuery,\n PostsQuery,\n PostStatus,\n PostType,\n SuggestionsQuery,\n TagsQuery,\n URLMetadataQuery,\n UsersQuery,\n} from '@drodil/backstage-plugin-qeta-common';\nimport { CatalogApi } from '@backstage/catalog-client';\nimport { AIHandler } from '@drodil/backstage-plugin-qeta-node';\nimport { PermissionManager } from './PermissionManager.ts';\n\nexport interface RouterOptions {\n database: QetaStore;\n logger: LoggerService;\n config: Config;\n discovery: DiscoveryService;\n httpAuth: HttpAuthService;\n userInfo: UserInfoService;\n catalog: CatalogApi;\n auth: AuthService;\n cache?: CacheService;\n permissions?: PermissionsService;\n events?: EventsService;\n signals?: SignalsService;\n notifications?: NotificationService;\n aiHandler?: AIHandler;\n permissionsRegistry?: PermissionsRegistryService;\n auditor?: AuditorService;\n notificationMgr: NotificationManager;\n}\n\nexport interface RouteOptions extends RouterOptions {\n notificationMgr: NotificationManager;\n permissionMgr: PermissionManager;\n}\n\nexport interface PostContent {\n title: string;\n content: string;\n author?: string;\n tags?: string[];\n entities?: string[];\n images?: number[];\n user?: string;\n created?: string;\n headerImage?: string;\n url?: string;\n anonymous?: boolean;\n type: PostType;\n status?: PostStatus;\n}\n\nexport interface TemplateContent {\n title: string;\n description: string;\n questionTitle?: string;\n questionContent?: string;\n tags?: string[];\n entities?: string[];\n}\n\nexport interface CollectionContent {\n title: string;\n description?: string;\n headerImage?: string;\n images?: number[];\n created?: string;\n tags?: string[];\n entities?: string[];\n users?: string[];\n}\n\nexport interface CollectionPostContent {\n postId: number;\n}\n\nexport interface CollectionRankContent {\n postId: number;\n rank: 'top' | 'bottom' | 'up' | 'down';\n}\n\nexport const CollectionsQuerySchema: JSONSchemaType<CollectionsQuery> = {\n type: 'object',\n properties: {\n limit: { type: 'integer', nullable: true },\n offset: { type: 'integer', nullable: true },\n searchQuery: { type: 'string', nullable: true },\n owner: { type: 'string', nullable: true },\n orderBy: {\n type: 'string',\n enum: [\n 'created',\n 'title',\n 'postsCount',\n 'questionsCount',\n 'articlesCount',\n 'linksCount',\n 'followerCount',\n ],\n nullable: true,\n },\n order: { type: 'string', enum: ['desc', 'asc'], nullable: true },\n tags: { type: 'array', items: { type: 'string' }, nullable: true },\n entities: { type: 'array', items: { type: 'string' }, nullable: true },\n entitiesRelation: { type: 'string', enum: ['and', 'or'], nullable: true },\n includePosts: { type: 'boolean', nullable: true },\n includeExperts: { type: 'boolean', nullable: true },\n tagsRelation: { type: 'string', enum: ['and', 'or'], nullable: true },\n fromDate: { type: 'string', nullable: true, format: 'date' },\n toDate: { type: 'string', nullable: true, format: 'date' },\n ids: { type: 'array', items: { type: 'integer' }, nullable: true },\n checkAccess: { type: 'boolean', nullable: true },\n },\n required: [],\n additionalProperties: false,\n};\n\nexport const PostsQuerySchema: JSONSchemaType<PostsQuery> = {\n type: 'object',\n properties: {\n limit: { type: 'integer', nullable: true },\n offset: { type: 'integer', nullable: true },\n author: { type: 'string', nullable: true },\n excludeAuthors: {\n type: 'array',\n items: { type: 'string' },\n nullable: true,\n },\n orderBy: {\n type: 'string',\n enum: [\n 'rank',\n 'views',\n 'title',\n 'trend',\n 'score',\n 'answersCount',\n 'created',\n 'updated',\n ],\n nullable: true,\n },\n collectionId: { type: 'number', nullable: true },\n order: { type: 'string', enum: ['desc', 'asc'], nullable: true },\n noCorrectAnswer: { type: 'boolean', nullable: true },\n noAnswers: { type: 'boolean', nullable: true },\n hasAnswers: { type: 'boolean', nullable: true },\n favorite: { type: 'boolean', nullable: true },\n noVotes: { type: 'boolean', nullable: true },\n status: {\n type: 'string',\n enum: ['active', 'draft', 'deleted'],\n nullable: true,\n },\n random: { type: 'boolean', nullable: true },\n tags: { type: 'array', items: { type: 'string' }, nullable: true },\n entities: { type: 'array', items: { type: 'string' }, nullable: true },\n entitiesRelation: { type: 'string', enum: ['and', 'or'], nullable: true },\n tagsRelation: { type: 'string', enum: ['and', 'or'], nullable: true },\n includeAnswers: { type: 'boolean', nullable: true },\n includeVotes: { type: 'boolean', nullable: true },\n includeAttachments: { type: 'boolean', nullable: true },\n includeHealth: { type: 'boolean', nullable: true },\n reviewNeeded: { type: 'boolean', nullable: true },\n obsolete: { type: 'boolean', nullable: true },\n includeTags: { type: 'boolean', nullable: true },\n includeEntities: { type: 'boolean', nullable: true },\n includeTrend: { type: 'boolean', nullable: true },\n includeComments: { type: 'boolean', nullable: true },\n includeExperts: { type: 'boolean', nullable: true },\n searchQuery: { type: 'string', nullable: true },\n fromDate: { type: 'string', nullable: true, format: 'date' },\n toDate: { type: 'string', nullable: true, format: 'date' },\n type: {\n type: 'string',\n enum: ['question', 'article', 'link'],\n nullable: true,\n },\n ids: { type: 'array', items: { type: 'integer' }, nullable: true },\n checkAccess: { type: 'boolean', nullable: true },\n },\n required: [],\n additionalProperties: false,\n};\n\nexport const PostQuerySchema: JSONSchemaType<PostQuery> = {\n type: 'object',\n properties: {\n anonymous: { type: 'boolean', nullable: true },\n },\n};\n\nexport const TagsQuerySchema: JSONSchemaType<TagsQuery> = {\n type: 'object',\n properties: {\n limit: { type: 'integer', nullable: true },\n offset: { type: 'integer', nullable: true },\n orderBy: {\n type: 'string',\n enum: [\n 'tag',\n 'postsCount',\n 'questionsCount',\n 'articlesCount',\n 'linksCount',\n 'followerCount',\n ],\n nullable: true,\n },\n order: { type: 'string', enum: ['desc', 'asc'], nullable: true },\n searchQuery: { type: 'string', nullable: true },\n checkAccess: { type: 'boolean', nullable: true },\n includeExperts: { type: 'boolean', nullable: true },\n },\n required: [],\n additionalProperties: false,\n};\n\nexport const UsersQuerySchema: JSONSchemaType<UsersQuery> = {\n type: 'object',\n properties: {\n limit: { type: 'integer', nullable: true },\n offset: { type: 'integer', nullable: true },\n orderBy: {\n type: 'string',\n enum: [\n 'userRef',\n 'totalPosts',\n 'totalQuestions',\n 'totalAnswers',\n 'totalArticles',\n 'totalLinks',\n 'totalViews',\n 'totalVotes',\n 'followerCount',\n 'reputation',\n ],\n nullable: true,\n },\n order: { type: 'string', enum: ['desc', 'asc'], nullable: true },\n searchQuery: { type: 'string', nullable: true },\n },\n required: [],\n additionalProperties: false,\n};\n\nexport const EntitiesQuerySchema: JSONSchemaType<EntitiesQuery> = {\n type: 'object',\n properties: {\n limit: { type: 'integer', nullable: true },\n offset: { type: 'integer', nullable: true },\n orderBy: {\n type: 'string',\n enum: [\n 'entityRef',\n 'postsCount',\n 'questionsCount',\n 'articlesCount',\n 'linksCount',\n 'followerCount',\n ],\n nullable: true,\n },\n order: { type: 'string', enum: ['desc', 'asc'], nullable: true },\n searchQuery: { type: 'string', nullable: true },\n },\n required: [],\n additionalProperties: false,\n};\n\nexport const AnswersQuerySchema: JSONSchemaType<AnswersQuery> = {\n type: 'object',\n properties: {\n limit: { type: 'integer', nullable: true },\n offset: { type: 'integer', nullable: true },\n author: { type: 'string', nullable: true },\n orderBy: {\n type: 'string',\n enum: ['score', 'created', 'updated'],\n nullable: true,\n },\n order: { type: 'string', enum: ['desc', 'asc'], nullable: true },\n noCorrectAnswer: { type: 'boolean', nullable: true },\n noVotes: { type: 'boolean', nullable: true },\n tags: { type: 'array', items: { type: 'string' }, nullable: true },\n entities: { type: 'array', items: { type: 'string' }, nullable: true },\n entitiesRelation: { type: 'string', enum: ['and', 'or'], nullable: true },\n tagsRelation: { type: 'string', enum: ['and', 'or'], nullable: true },\n includeVotes: { type: 'boolean', nullable: true },\n includeEntities: { type: 'boolean', nullable: true },\n includeComments: { type: 'boolean', nullable: true },\n includeExperts: { type: 'boolean', nullable: true },\n searchQuery: { type: 'string', nullable: true },\n fromDate: { type: 'string', nullable: true, format: 'date' },\n toDate: { type: 'string', nullable: true, format: 'date' },\n ids: { type: 'array', items: { type: 'integer' }, nullable: true },\n questionId: { type: 'integer', nullable: true },\n checkAccess: { type: 'boolean', nullable: true },\n },\n required: [],\n additionalProperties: false,\n};\n\nexport const PostSchema: JSONSchemaType<PostContent> = {\n type: 'object',\n properties: {\n title: { type: 'string', minLength: 1 },\n content: { type: 'string', minLength: 0 },\n author: { type: 'string', nullable: true },\n tags: { type: 'array', items: { type: 'string' }, nullable: true },\n entities: { type: 'array', items: { type: 'string' }, nullable: true },\n images: { type: 'array', items: { type: 'integer' }, nullable: true },\n user: { type: 'string', minLength: 1, nullable: true },\n created: { type: 'string', minLength: 1, nullable: true },\n anonymous: { type: 'boolean', nullable: true },\n headerImage: { type: 'string', nullable: true },\n url: { type: 'string', nullable: true },\n type: { type: 'string', enum: ['question', 'article', 'link'] },\n status: {\n type: 'string',\n enum: ['active', 'draft', 'deleted'],\n nullable: true,\n },\n },\n required: ['title', 'content'],\n additionalProperties: false,\n};\n\nexport const TemplateSchema: JSONSchemaType<TemplateContent> = {\n type: 'object',\n properties: {\n title: { type: 'string', minLength: 1 },\n description: { type: 'string', minLength: 1 },\n questionTitle: { type: 'string', nullable: true },\n questionContent: { type: 'string', nullable: true },\n tags: { type: 'array', items: { type: 'string' }, nullable: true },\n entities: { type: 'array', items: { type: 'string' }, nullable: true },\n },\n required: ['title', 'description'],\n additionalProperties: false,\n};\n\nexport const CollectionSchema: JSONSchemaType<CollectionContent> = {\n type: 'object',\n properties: {\n title: { type: 'string', minLength: 1 },\n description: { type: 'string', nullable: true },\n headerImage: { type: 'string', nullable: true },\n images: { type: 'array', items: { type: 'integer' }, nullable: true },\n created: { type: 'string', minLength: 1, nullable: true },\n tags: { type: 'array', items: { type: 'string' }, nullable: true },\n entities: { type: 'array', items: { type: 'string' }, nullable: true },\n users: { type: 'array', items: { type: 'string' }, nullable: true },\n },\n required: ['title'],\n additionalProperties: false,\n};\n\nexport const CollectionPostSchema: JSONSchemaType<CollectionPostContent> = {\n type: 'object',\n properties: {\n postId: { type: 'integer' },\n },\n required: ['postId'],\n additionalProperties: false,\n};\n\nexport const CollectionRankPostSchema: JSONSchemaType<CollectionRankContent> = {\n type: 'object',\n properties: {\n postId: { type: 'integer' },\n rank: { type: 'string', enum: ['top', 'bottom', 'up', 'down'] },\n },\n required: ['postId', 'rank'],\n additionalProperties: false,\n};\n\nexport interface AnswerQuestion {\n answer: string;\n images?: number[];\n user?: string;\n author?: string;\n created?: string;\n anonymous?: boolean;\n}\n\nexport const PostAnswerSchema: JSONSchemaType<AnswerQuestion> = {\n type: 'object',\n properties: {\n answer: { type: 'string', minLength: 1 },\n images: { type: 'array', items: { type: 'integer' }, nullable: true },\n user: { type: 'string', minLength: 1, nullable: true },\n author: { type: 'string', minLength: 1, nullable: true },\n created: { type: 'string', minLength: 1, nullable: true },\n anonymous: { type: 'boolean', nullable: true },\n },\n required: ['answer'],\n additionalProperties: false,\n};\n\nexport interface DeleteMetadata {\n reason?: string;\n permanent?: boolean;\n}\n\nexport const DeleteMetadataSchema: JSONSchemaType<DeleteMetadata> = {\n type: 'object',\n properties: {\n reason: { type: 'string', minLength: 1, nullable: true },\n permanent: { type: 'boolean', nullable: true },\n },\n additionalProperties: false,\n};\n\nexport interface Comment {\n content: string;\n user?: string;\n created?: string;\n}\n\nexport const CommentSchema: JSONSchemaType<Comment> = {\n type: 'object',\n properties: {\n content: { type: 'string', minLength: 1 },\n user: { type: 'string', minLength: 1, nullable: true },\n created: { type: 'string', minLength: 1, nullable: true },\n },\n required: ['content'],\n additionalProperties: false,\n};\n\nexport interface DraftQuestion {\n title: string;\n content: string;\n tags?: string[];\n entities?: string[];\n limit?: number;\n}\n\nexport const DraftQuestionSchema: JSONSchemaType<DraftQuestion> = {\n type: 'object',\n properties: {\n title: { type: 'string', minLength: 1 },\n content: { type: 'string', minLength: 1 },\n tags: {\n type: 'array',\n items: { type: 'string' },\n nullable: true,\n },\n entities: {\n type: 'array',\n items: { type: 'string' },\n nullable: true,\n },\n limit: {\n type: 'number',\n minimum: 1,\n nullable: true,\n },\n },\n required: ['title', 'content'],\n additionalProperties: false,\n};\n\nexport const AIQuerySchema: JSONSchemaType<AIQuery> = {\n type: 'object',\n properties: {\n regenerate: { type: 'boolean', default: false, nullable: true },\n },\n required: [],\n additionalProperties: false,\n};\n\nexport const SuggestionsQuerySchema: JSONSchemaType<SuggestionsQuery> = {\n type: 'object',\n properties: {\n limit: { type: 'integer', minimum: 1, nullable: true },\n },\n required: [],\n additionalProperties: false,\n};\n\nexport interface File {\n name: string;\n path: string;\n buffer: Buffer;\n mimeType: string;\n ext: string;\n size: number;\n}\n\nexport const URLMetadataSchema: JSONSchemaType<URLMetadataQuery> = {\n type: 'object',\n properties: {\n url: { type: 'string', minLength: 7 }, // http://\n },\n required: ['url'],\n additionalProperties: false,\n};\n\nexport interface PostReviewBody {\n status: 'valid' | 'obsolete';\n comment?: string;\n}\n\nexport const PostReviewBodySchema: JSONSchemaType<PostReviewBody> = {\n type: 'object',\n properties: {\n status: { type: 'string', enum: ['valid', 'obsolete'] },\n comment: { type: 'string', nullable: true },\n },\n required: ['status'],\n additionalProperties: false,\n};\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@drodil/backstage-plugin-qeta-backend",
|
|
3
|
-
"version": "3.55.
|
|
3
|
+
"version": "3.55.4",
|
|
4
4
|
"description": "Backstage.io Q&A plugin backend",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"backstage",
|
|
@@ -66,8 +66,8 @@
|
|
|
66
66
|
"@backstage/plugin-permission-node": "^0.10.7",
|
|
67
67
|
"@backstage/plugin-signals-node": "^0.1.27",
|
|
68
68
|
"@backstage/types": "^1.2.2",
|
|
69
|
-
"@drodil/backstage-plugin-qeta-common": "^3.55.
|
|
70
|
-
"@drodil/backstage-plugin-qeta-node": "^3.55.
|
|
69
|
+
"@drodil/backstage-plugin-qeta-common": "^3.55.4",
|
|
70
|
+
"@drodil/backstage-plugin-qeta-node": "^3.55.4",
|
|
71
71
|
"@smithy/node-http-handler": "^4.0.2",
|
|
72
72
|
"@types/express": "*",
|
|
73
73
|
"@types/mime-types": "^2.1.4",
|
|
@@ -106,9 +106,9 @@
|
|
|
106
106
|
"@backstage/plugin-signals-backend": "^0.3.11",
|
|
107
107
|
"@backstage/plugin-techdocs-backend": "^2.1.3",
|
|
108
108
|
"@backstage/plugin-user-settings-backend": "^0.3.9",
|
|
109
|
-
"@drodil/backstage-plugin-catalog-backend-module-qeta": "^3.55.
|
|
110
|
-
"@drodil/backstage-plugin-qeta-backend-module-openai": "^3.55.
|
|
111
|
-
"@drodil/backstage-plugin-search-backend-module-qeta": "^3.55.
|
|
109
|
+
"@drodil/backstage-plugin-catalog-backend-module-qeta": "^3.55.4",
|
|
110
|
+
"@drodil/backstage-plugin-qeta-backend-module-openai": "^3.55.4",
|
|
111
|
+
"@drodil/backstage-plugin-search-backend-module-qeta": "^3.55.4",
|
|
112
112
|
"@types/sanitize-html": "^2.9.5",
|
|
113
113
|
"@types/stopword": "^2.0.3",
|
|
114
114
|
"@types/supertest": "^2.0.12",
|