import type { Manifest } from '@sap-ux/project-access'; import { type AbapTarget } from '@sap-ux/system-access'; import type { DescriptorVariant, IManifestService } from '@sap-ux/adp-tooling'; import { SystemLookup } from '@sap-ux/adp-tooling'; import SubGeneratorBase from './sub-gen-base.js'; import type { GeneratorOpts } from '../utils/opts.js'; import type { GeneratorTypes } from '../types.js'; /** * Base class for *sub* generators that need authentication handling. * Adds functionality on top of {@link SubGeneratorBase}. */ export default class SubGeneratorWithAuthBase extends SubGeneratorBase { /** * The ABAP target. */ protected abapTarget: AbapTarget; /** * The project data. */ protected system: string; /** * The project path. */ protected readonly projectPath: string; /** * The type of generator. */ protected readonly generatorType: GeneratorTypes; /** * The manifest service (ABAP or CF). */ manifestService: IManifestService; /** * Whether the generator requires authentication. */ protected requiresAuth: boolean; /** * The descriptor variant. */ protected variant: DescriptorVariant; /** * The system lookup instance. */ protected systemLookup: SystemLookup; /** * Whether this is a CF project. */ protected isCFProject: boolean; /** * The VSCode instance. */ private readonly vscode; /** * Creates an instance of the generator. * * @param {string | string[]} args - The arguments passed to the generator. * @param {Generator.GeneratorOptions} opts - The options for the generator. * @param {GeneratorTypes} type - The type of generator. */ constructor(args: string | string[], opts: GeneratorOpts, type: GeneratorTypes); /** * Executes logic that should happen during Yeoman's `initializing` phase. * Subclasses must call this to benefit from the built-in auth handling. */ protected onInit(): Promise; /** * Retrieves and parses the manifest (app descriptor) of the current project. * For CF projects, builds the project and reads the manifest from the dist folder. * For ABAP projects, fetches the merged manifest via the ABAP service provider. * * @returns {Promise} The manifest. */ protected getManifest(): Promise; } //# sourceMappingURL=sub-gen-auth-base.d.ts.map