import { ConfigModels } from 'tnp-config'; export declare namespace ModelsNpm { type SaveAction = 'save' | 'show' | 'hide'; type PackageJsonSaveOptions = { action: SaveAction; newDeps: any; toOverride: any; reasonToShowPackages: string; reasonToHidePackages: string; }; interface ActualNpmInstallOptions { generatLockFiles?: boolean; useYarn?: boolean; pkg?: ModelsNpm.Package; reason: string; remove?: boolean; } interface NpmInstallOptions { remove?: boolean; npmPackages?: ModelsNpm.Package[]; smartInstallPreparing?: boolean; } type NpmDependencyType = 'dependencies' | 'devDependencies' | 'peerDependencies' | 'optionalDependencies' | 'extensionDependencies' | '_phantomChildren'; type TnpNpmDependencyType = 'tnp_overrided_dependencies'; const ArrNpmDependencyType: NpmDependencyType[]; const ArrTnpNpmDependencyType: TnpNpmDependencyType[]; type InstalationType = '-g' | '--save' | '--save-dev'; const InstalationTypeArr: string[]; type Package = { name: string; version?: string; installType?: InstalationType; }; /** * @deprecated */ type DependenciesFromPackageJsonStyle = { [name: string]: string; }; type TargetProject = { path?: string; origin: string; branch: string; links: string[]; }; interface TnpIPackageJSONOverride { scripts?: { [script in string]: string; }; description?: string; license?: string; private?: boolean; author?: string; homepage?: string; main?: string; module?: string; exports?: object; name?: string; } type TrustedType = { [frameworkVersion in ConfigModels.FrameworkVersion]: (string | string[]); }; type LinkedRepo = { origin: string; relativeFoldersLinks?: { from: string; to: string; }[]; }; interface TnpData extends TnpIPackageJSONOverride { type: ConfigModels.LibType; version?: ConfigModels.FrameworkVersion; smartContainerBuildTarget?: string; smart?: boolean; monorepo?: boolean; /** * link your local projects *.ts files inside this project.. through tsconfig pathes * Example: * - local projct 'tnp-helper' with 'src' folder * -> will be available inside: * import { from 'tnp-helper'; */ linkedProjects?: string[]; linkedRepos?: LinkedRepo[]; /** * worker plugins for cli * * workerPlugin: { * 'tnp-db': '', * 'tnp-db-autoupdate': '/up' * } */ workerPlugins?: { [pathOrName in string]: string; }; libReleaseOptions: { obscure?: boolean; ugly?: boolean; nodts?: boolean; includeNodeModules?: boolean; }; targetProjects: TargetProject[]; /** * framework available inside project/app */ frameworks?: ConfigModels.UIFramework[]; /** * project is template for other project */ isCoreProject: boolean; additionalNpmNames: boolean; /** * only for container */ overrideCoreDeps?: boolean; /** * Easy way to skip browser compilation */ isCommandLineToolOnly?: boolean; isGlobalSystemTool?: boolean; /** * Only for isomorphic lib * - if true => generate controllers.ts, entities.ts */ useFramework: boolean; /** * Core and contant dependecies for all projects */ core: { dependencies: { /** * this dependenices are always included in some way */ always?: string[]; /** * this dependencies are only included as devDependencies */ asDevDependencies?: string[]; trusted: TrustedType; /** * list of package to dedupe */ dedupe: string[]; stubForBackend: string[]; /** * Comon dependencies for all kinds of project types */ common: DependenciesFromPackageJsonStyle | { [groupAlias: string]: DependenciesFromPackageJsonStyle; }; /** * Dependencies only for specyfic project type */ onlyFor: { [libType: string]: DependenciesFromPackageJsonStyle | { [groupAlias: string]: DependenciesFromPackageJsonStyle; }; }; }; }; /** * dependency site baselines */ dependsOn: string[]; /** * Static resurces for standalone project, that are * going to be included in release dist */ resources?: string[]; /** * Allowed environment for poroject */ allowedEnv?: ConfigModels.EnvironmentName[]; /** * Standalone project generated for release */ isGeneratedForRelease?: boolean; /** * Override automation generation */ overrided: { tsconfig?: Object; dedupe?: string[]; ignoreDepsPattern?: string[]; includeOnly?: string[]; includeAsDev?: string[] | '*'; linkedFolders?: { from: string; to: string; }[]; dependencies?: DependenciesFromPackageJsonStyle; }; } interface IPackageJSON extends TnpIPackageJSONOverride { name: string; husky?: { hooks: { 'pre-push': string; }; }; version?: string; bin?: any; preferGlobal?: boolean; lastBuildTagHash?: string; engines?: { node: string; npm: string; }; dependencies?: DependenciesFromPackageJsonStyle; peerDependencies?: DependenciesFromPackageJsonStyle; devDependencies?: DependenciesFromPackageJsonStyle; tnp: (TnpData & TnpIPackageJSONOverride); firedev: (TnpData & TnpIPackageJSONOverride); } type Tnp = TnpData & TnpIPackageJSONOverride; }