import type Generator from 'yeoman-generator'; import type { AppWizard, Prompts as YeomanUiSteps } from '@sap-devx/yeoman-ui-types'; import type { YUIQuestion } from '@sap-ux/inquirer-common'; import type { TelemetryData } from '@sap-ux/fiori-generator-shared'; import type { AdaptationDescriptor, AdaptationProjectType, KeyUserChangeContent } from '@sap-ux/axios-extension'; import type { AttributesAnswers, ConfigAnswers, FlexLayer } from '@sap-ux/adp-tooling'; export interface AdpGeneratorOptions extends Generator.GeneratorOptions { /** * VSCode instance */ vscode?: unknown; /** * Option to force the conflicter property of the yeoman environment (prevents additional prompt for overwriting files) */ force?: boolean; /** * AppWizard instance */ appWizard?: AppWizard; /** * Telemetry data to be send after deployment configuration has been added */ telemetryData?: TelemetryData; /** * A boolean flag indicating whether node_modules should be installed after project generation. */ shouldInstallDeps?: boolean; } /** * Enumeration of prompt names used in the configuration. */ export declare enum configPromptNames { system = "system", systemValidationCli = "systemValidationCli", username = "username", password = "password", storeCredentials = "storeCredentials", projectType = "projectType", projectTypeCli = "projectTypeCli", projectTypeClassicLabel = "projectTypeClassicLabel", application = "application", appValidationCli = "appValidationCli", fioriId = "fioriId", ach = "ach", shouldCreateExtProject = "shouldCreateExtProject" } /** * The question type specific to configuration prompts. */ export type ConfigQuestion = YUIQuestion; /** * Options for individual prompts. */ export interface SystemPromptOptions { default?: string; hide?: boolean; } export interface CliValidationPromptOptions { hide?: boolean; } export interface UsernamePromptOptions { hide?: boolean; } export interface PasswordPromptOptions { hide?: boolean; } export interface StoreCredentialsPromptOptions { hide?: boolean; } export interface ProjectTypePromptOptions { default?: string; hide?: boolean; } export interface ProjectTypeClassicLabelPromptOptions { hide?: boolean; } export interface ApplicationPromptOptions { default?: string; hide?: boolean; } export interface FioriIdPromptOptions { hide?: boolean; } export interface AchPromptOptions { hide?: boolean; } export interface ShouldCreateExtProjectPromptOptions { hide?: boolean; isExtensibilityExtInstalled?: boolean; } /** * Options for the configuration inquirer & the prompts. */ export type ConfigPromptOptions = Partial<{ [configPromptNames.system]: SystemPromptOptions; [configPromptNames.systemValidationCli]: CliValidationPromptOptions; [configPromptNames.username]: UsernamePromptOptions; [configPromptNames.password]: PasswordPromptOptions; [configPromptNames.storeCredentials]: StoreCredentialsPromptOptions; [configPromptNames.projectType]: ProjectTypePromptOptions; [configPromptNames.projectTypeCli]: CliValidationPromptOptions; [configPromptNames.projectTypeClassicLabel]: ProjectTypeClassicLabelPromptOptions; [configPromptNames.application]: ApplicationPromptOptions; [configPromptNames.appValidationCli]: CliValidationPromptOptions; [configPromptNames.fioriId]: FioriIdPromptOptions; [configPromptNames.ach]: AchPromptOptions; [configPromptNames.shouldCreateExtProject]: ShouldCreateExtProjectPromptOptions; }>; export declare enum attributePromptNames { projectName = "projectName", title = "title", namespace = "namespace", targetFolder = "targetFolder", ui5Version = "ui5Version", ui5ValidationCli = "ui5ValidationCli", enableTypeScript = "enableTypeScript", addDeployConfig = "addDeployConfig", addFlpConfig = "addFlpConfig", importKeyUserChanges = "importKeyUserChanges" } export type AttributesQuestion = YUIQuestion; export interface ProjectNamePromptOptions { hide?: boolean; } export interface ApplicationTitlePromptOptions { default?: string; hide?: boolean; } export interface NamespacePromptOptions { default?: string; hide?: boolean; } export interface TargetFolderPromptOptions { default?: string; hide?: boolean; } export interface UI5VersionPromptOptions { default?: string; hide?: boolean; } export interface EnableTypeScriptPromptOptions { hide?: boolean; } export interface AddDeployConfigPromptOptions { hide?: boolean; } export interface AddFlpConfigPromptOptions { hide?: boolean; hasBaseAppInbounds?: boolean; } export interface ImportKeyUserChangesPromptOptions { hide?: boolean; default?: boolean; } export type AttributePromptOptions = Partial<{ [attributePromptNames.projectName]: ProjectNamePromptOptions; [attributePromptNames.title]: ApplicationTitlePromptOptions; [attributePromptNames.namespace]: NamespacePromptOptions; [attributePromptNames.targetFolder]: TargetFolderPromptOptions; [attributePromptNames.ui5Version]: UI5VersionPromptOptions; [attributePromptNames.ui5ValidationCli]: CliValidationPromptOptions; [attributePromptNames.enableTypeScript]: EnableTypeScriptPromptOptions; [attributePromptNames.addDeployConfig]: AddDeployConfigPromptOptions; [attributePromptNames.addFlpConfig]: AddFlpConfigPromptOptions; [attributePromptNames.importKeyUserChanges]: ImportKeyUserChangesPromptOptions; }>; export type KeyUserImportQuestion = YUIQuestion; /** * Enumeration of prompt names used in the key-user import. */ export declare enum keyUserPromptNames { keyUserSystem = "keyUserSystem", keyUserUsername = "keyUserUsername", keyUserPassword = "keyUserPassword", keyUserAdaptation = "keyUserAdaptation" } export interface KeyUserSystemPromptOptions { default?: string; hide?: boolean; } export interface KeyUserUsernamePromptOptions { default?: string; hide?: boolean; } export interface KeyUserPasswordPromptOptions { default?: string; hide?: boolean; } export interface KeyUserAdaptationPromptOptions { default?: string; hide?: boolean; } /** * Options for the key-user import inquirer & the prompts. */ export type KeyUserImportPromptOptions = Partial<{ [keyUserPromptNames.keyUserSystem]: KeyUserSystemPromptOptions; [keyUserPromptNames.keyUserUsername]: KeyUserUsernamePromptOptions; [keyUserPromptNames.keyUserPassword]: KeyUserPasswordPromptOptions; [keyUserPromptNames.keyUserAdaptation]: KeyUserAdaptationPromptOptions; }>; export interface KeyUserImportAnswers { keyUserSystem: string; keyUserUsername?: string; keyUserPassword?: string; keyUserAdaptation: AdaptationDescriptor; } export declare enum targetEnvPromptNames { targetEnv = "targetEnv" } export declare const TargetEnv: { readonly ABAP: "ABAP"; readonly CF: "CF"; }; export type TargetEnv = (typeof TargetEnv)[keyof typeof TargetEnv]; export type TargetEnvAnswers = { targetEnv: TargetEnv; }; export type TargetEnvQuestion = YUIQuestion; export type ProjectLocationAnswers = { projectLocation: string; }; export declare enum cfLoginPromptNames { cfLoggedInMainMessage = "cfLoggedInMainMessage", cfLoggedApiEndpointMessage = "cfLoggedApiEndpointMessage", cfLoggedInOrganizationMessage = "cfLoggedInOrganizationMessage", cfLoggedInSpaceMessage = "cfLoggedInSpaceMessage", cfLoggedInEndingMessage = "cfLoggedInEndingMessage", cfExternalLogin = "cfExternalLogin", cfExternalLoginSuccessMessage = "cfExternalLoginSuccessMessage" } export type CFLoginAnswers = { [K in cfLoginPromptNames]?: string; }; export type CFLoginQuestion = YUIQuestion; export interface ExtensionProjectData { destination: { name: string; basUsage: string | undefined; host: string | undefined; sapClient: string | undefined; }; username: string; password: string; applicationNS: string; applicationName: string; userUI5Ver: string; BSPUrl: string; namespace: string; } /** * An interface representing the json input used to store the complete adaptation project * generator configurations. The json is passed as an CLI argument. */ export interface JsonInput { system: string; client?: string; username?: string; password?: string; application: string; applicationTitle?: string; targetFolder?: string; projectName?: string; namespace?: string; projectType?: AdaptationProjectType; keyUserChanges?: KeyUserChangeContent[]; } export declare enum SystemType { CLOUD_READY = "cloudReady", ON_PREM = "onPremise" } export interface OptionalPromptsConfig { projectType?: AdaptationProjectType; systemType?: SystemType; layer: FlexLayer; ui5Versions: string[]; isVersionDetected: boolean; prompts: YeomanUiSteps; isCfEnv?: boolean; } //# sourceMappingURL=types.d.ts.map