@teambit/install 1.0.598 → 1.0.602

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.
@@ -126,25 +126,28 @@ function getAnotherInstallRequiredOutput(recurringInstall = false, oldNonLoadedE
126
126
  return _chalk().default.yellow(msg);
127
127
  }
128
128
  function extractPackageName(packageString) {
129
- const lastAtIndex = packageString.lastIndexOf('@');
129
+ if (!packageString) return '';
130
130
 
131
- // If no '@' is present, or it's at the start (meaning it's just a scope),
132
- // we can assume there's no separate version part to remove.
133
- if (lastAtIndex <= 0) {
131
+ // Handle https and git protocols. We don't allow "file" protocol here. It won't work for the consumer.
132
+ const allowedPrefixes = ['https://', 'git:', 'git+ssh://', 'git+https://'];
133
+ if (allowedPrefixes.some(prefix => packageString.startsWith(prefix))) {
134
134
  return packageString;
135
135
  }
136
136
 
137
- // Get everything after the last '@'
138
- const afterLastAt = packageString.slice(lastAtIndex + 1);
139
-
140
- // If the substring after the last '@' contains a slash, it's part of the scoped package name,
141
- // not a version. In that case, do not remove anything.
142
- if (afterLastAt.includes('/')) {
143
- return packageString;
137
+ // If it's a scoped package
138
+ if (packageString.startsWith('@')) {
139
+ // Find the second '@' (first is for scope, second is for version/tag)
140
+ const atIndex = packageString.indexOf('@', 1);
141
+ if (atIndex === -1) return packageString;
142
+ const possibleVersion = packageString.slice(atIndex + 1);
143
+ // If the part after the second '@' contains a slash, it's not a version/tag
144
+ if (possibleVersion.includes('/')) return packageString;
145
+ return packageString.slice(0, atIndex);
144
146
  }
145
147
 
146
- // Otherwise, we assume that last '@' starts the version,
147
- // so we remove that part.
148
+ // For unscoped packages, split at the last '@'
149
+ const lastAtIndex = packageString.lastIndexOf('@');
150
+ if (lastAtIndex <= 0) return packageString;
148
151
  return packageString.slice(0, lastAtIndex);
149
152
  }
150
153
 
@@ -1 +1 @@
1
- {"version":3,"names":["_validateNpmPackageName","data","_interopRequireDefault","require","_chalk","_workspace","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","recurringInstallFlagName","InstallCmd","constructor","install","workspace","logger","name","description","report","packages","options","startTime","Date","now","OutsideWorkspaceError","updateExisting","consoleWarning","forEach","pkg","pkgName","extractPackageName","packageNameValidate","validForNewPackages","Error","console","chalk","cyan","installOpts","lifecycleType","addMissingPeers","type","dedupe","skipDedupe","import","skipImport","savePrefix","addMissingDeps","skipUnavailable","compile","skipCompile","includeOptionalDeps","noOptional","writeConfigFiles","skipWriteConfigFiles","updateAll","update","recurringInstall","lockfileOnly","components","endTime","oldNonLoadedEnvs","getOldNonLoadedEnvs","formatOutput","numOfComps","toArray","length","toString","exports","calculateTime","diff","executionTime","summary","green","anotherInstallRequiredOutput","getAnotherInstallRequiredOutput","oldNonLoadedEnvsStr","join","firstPart","flag","suggestRecurringInstall","envsStr","docsLink","msg","yellow","packageString","lastAtIndex","lastIndexOf","afterLastAt","slice","includes"],"sources":["install.cmd.tsx"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport packageNameValidate from 'validate-npm-package-name';\nimport { WorkspaceDependencyLifecycleType } from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport chalk from 'chalk';\nimport { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { InstallMain, WorkspaceInstallOptions } from './install.main.runtime';\n\ntype InstallCmdOptions = {\n type: WorkspaceDependencyLifecycleType;\n skipDedupe: boolean;\n skipImport: boolean;\n skipCompile: boolean;\n skipWriteConfigFiles: boolean;\n update: boolean;\n updateExisting: boolean;\n savePrefix: string;\n addMissingDeps: boolean;\n skipUnavailable: boolean;\n addMissingPeers: boolean;\n noOptional: boolean;\n recurringInstall: boolean;\n lockfileOnly: boolean;\n};\n\ntype FormatOutputArgs = {\n numOfComps: string;\n startTime: number;\n endTime: number;\n oldNonLoadedEnvs: string[];\n recurringInstall: boolean;\n};\n\nconst recurringInstallFlagName = 'recurring-install';\n\nexport default class InstallCmd implements Command {\n name = 'install [packages...]';\n description = 'installs workspace dependencies';\n extendedDescription =\n 'when no package is specified, all workspace dependencies are installed and all workspace components are imported.';\n helpUrl = 'reference/dependencies/dependency-installation';\n arguments = [{ name: 'packages...', description: 'a list of packages to install (separated by spaces)' }];\n alias = 'in';\n group = 'development';\n options = [\n ['t', 'type [lifecycleType]', '\"runtime\" (default) or \"peer\" (dev is not a valid option)'],\n ['u', 'update', 'update all dependencies to latest version according to their semver range'],\n [\n '',\n 'update-existing',\n 'DEPRECATED (not needed anymore, it is the default now). update existing dependencies version and types',\n ],\n ['', 'save-prefix [savePrefix]', 'set the prefix to use when adding dependency to workspace.jsonc'],\n ['', 'skip-dedupe', 'do not dedupe dependencies on installation'],\n ['', 'skip-import', 'do not import bit objects post installation'],\n ['', 'skip-compile', 'do not compile components'],\n ['', 'skip-write-config-files', 'do not write config files (such as eslint, tsconfig, prettier, etc...)'],\n ['a', 'add-missing-deps', 'install all missing dependencies'],\n ['', 'skip-unavailable', 'when adding missing dependencies, skip those that are not found in the regisry'],\n ['', 'add-missing-peers', 'install all missing peer dependencies'],\n [\n '',\n recurringInstallFlagName,\n 'automatically run install again if there are non loaded old envs in your workspace',\n ],\n ['', 'no-optional [noOptional]', 'do not install optional dependencies (works with pnpm only)'],\n ['', 'lockfile-only', 'dependencies are not written to node_modules. Only the lockfile is updated'],\n ] as CommandOptions;\n\n constructor(\n private install: InstallMain,\n /**\n * workspace extension.\n */\n private workspace: Workspace,\n\n /**\n * logger extension.\n */\n private logger: Logger\n ) {}\n\n async report([packages = []]: [string[]], options: InstallCmdOptions) {\n const startTime = Date.now();\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (options.updateExisting) {\n this.logger.consoleWarning(\n `--update-existing is deprecated, please omit it. \"bit install\" will update existing dependencies by default`\n );\n }\n\n packages.forEach((pkg) => {\n const pkgName = extractPackageName(pkg);\n if (!packageNameValidate(pkgName).validForNewPackages) {\n throw new Error(`the package name \"${pkgName}\" is invalid. please provide a valid package name.`);\n }\n });\n this.logger.console(`Resolving component dependencies for workspace: '${chalk.cyan(this.workspace.name)}'`);\n const installOpts: WorkspaceInstallOptions = {\n lifecycleType: options.addMissingPeers ? 'peer' : options.type,\n dedupe: !options.skipDedupe,\n import: !options.skipImport,\n updateExisting: true,\n savePrefix: options.savePrefix,\n addMissingDeps: options.addMissingDeps,\n skipUnavailable: options.skipUnavailable,\n addMissingPeers: options.addMissingPeers,\n compile: !options.skipCompile,\n includeOptionalDeps: !options.noOptional,\n writeConfigFiles: !options.skipWriteConfigFiles,\n updateAll: options.update,\n recurringInstall: options.recurringInstall,\n lockfileOnly: options.lockfileOnly,\n };\n const components = await this.install.install(packages, installOpts);\n const endTime = Date.now();\n const oldNonLoadedEnvs = this.install.getOldNonLoadedEnvs();\n return formatOutput({\n startTime,\n endTime,\n numOfComps: components.toArray().length.toString(),\n recurringInstall: options[recurringInstallFlagName],\n oldNonLoadedEnvs,\n });\n }\n}\n\nfunction calculateTime(startTime: number, endTime: number) {\n const diff = endTime - startTime;\n return diff / 1000;\n}\n\nfunction formatOutput({\n numOfComps,\n endTime,\n startTime,\n recurringInstall,\n oldNonLoadedEnvs,\n}: FormatOutputArgs): string {\n const executionTime = calculateTime(startTime, endTime);\n const summary = chalk.green(\n `Successfully installed dependencies and compiled ${chalk.cyan(numOfComps)} component(s) in ${chalk.cyan(\n executionTime.toString()\n )} seconds`\n );\n const anotherInstallRequiredOutput = getAnotherInstallRequiredOutput(recurringInstall, oldNonLoadedEnvs);\n return anotherInstallRequiredOutput ? `\\n${anotherInstallRequiredOutput}\\n\\n${summary}` : `\\n${summary}`;\n}\n\nexport function getAnotherInstallRequiredOutput(recurringInstall = false, oldNonLoadedEnvs: string[] = []): string {\n if (!oldNonLoadedEnvs.length) return '';\n const oldNonLoadedEnvsStr = oldNonLoadedEnvs.join(', ');\n const firstPart = `Bit was not able to install all dependencies. Please run \"${chalk.cyan('bit install')}\" again `;\n const flag = chalk.cyan(`--${recurringInstallFlagName}`);\n const suggestRecurringInstall = recurringInstall ? '' : `(or use the \"${flag}\" option next time).`;\n const envsStr = `The following environments need to add support for \"dependency policy\" to fix the warning: ${chalk.cyan(\n oldNonLoadedEnvsStr\n )}`;\n const docsLink = `Read more about how to fix this issue in: https://bit.dev/blog/using-a-static-dependency-policy-in-a-legacy-env-lihfbt9b`;\n\n const msg = `${firstPart}${suggestRecurringInstall}\\n${envsStr}\\n${docsLink}`;\n return chalk.yellow(msg);\n}\n\nfunction extractPackageName(packageString: string): string {\n const lastAtIndex = packageString.lastIndexOf('@');\n\n // If no '@' is present, or it's at the start (meaning it's just a scope),\n // we can assume there's no separate version part to remove.\n if (lastAtIndex <= 0) {\n return packageString;\n }\n\n // Get everything after the last '@'\n const afterLastAt = packageString.slice(lastAtIndex + 1);\n\n // If the substring after the last '@' contains a slash, it's part of the scoped package name,\n // not a version. In that case, do not remove anything.\n if (afterLastAt.includes('/')) {\n return packageString;\n }\n\n // Otherwise, we assume that last '@' starts the version,\n // so we remove that part.\n return packageString.slice(0, lastAtIndex);\n}\n"],"mappings":";;;;;;;AACA,SAAAA,wBAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,uBAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAG,OAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,MAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,WAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,UAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAsE,SAAAC,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,gBAAAH,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAJ,CAAA,GAAAO,MAAA,CAAAC,cAAA,CAAAR,CAAA,EAAAI,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAZ,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAM,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAhB,CAAA,QAAAa,CAAA,GAAAb,CAAA,CAAAiB,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AA4BtE,MAAMgB,wBAAwB,GAAG,mBAAmB;AAErC,MAAMC,UAAU,CAAoB;EAkCjDC,WAAWA,CACDC,OAAoB;EAC5B;AACJ;AACA;EACYC,SAAoB;EAE5B;AACJ;AACA;EACYC,MAAc,EACtB;IAAA,KAVQF,OAAoB,GAApBA,OAAoB;IAAA,KAIpBC,SAAoB,GAApBA,SAAoB;IAAA,KAKpBC,MAAc,GAAdA,MAAc;IAAAvB,eAAA,eA3CjB,uBAAuB;IAAAA,eAAA,sBAChB,iCAAiC;IAAAA,eAAA,8BAE7C,mHAAmH;IAAAA,eAAA,kBAC3G,gDAAgD;IAAAA,eAAA,oBAC9C,CAAC;MAAEwB,IAAI,EAAE,aAAa;MAAEC,WAAW,EAAE;IAAsD,CAAC,CAAC;IAAAzB,eAAA,gBACjG,IAAI;IAAAA,eAAA,gBACJ,aAAa;IAAAA,eAAA,kBACX,CACR,CAAC,GAAG,EAAE,sBAAsB,EAAE,2DAA2D,CAAC,EAC1F,CAAC,GAAG,EAAE,QAAQ,EAAE,2EAA2E,CAAC,EAC5F,CACE,EAAE,EACF,iBAAiB,EACjB,wGAAwG,CACzG,EACD,CAAC,EAAE,EAAE,0BAA0B,EAAE,iEAAiE,CAAC,EACnG,CAAC,EAAE,EAAE,aAAa,EAAE,4CAA4C,CAAC,EACjE,CAAC,EAAE,EAAE,aAAa,EAAE,6CAA6C,CAAC,EAClE,CAAC,EAAE,EAAE,cAAc,EAAE,2BAA2B,CAAC,EACjD,CAAC,EAAE,EAAE,yBAAyB,EAAE,wEAAwE,CAAC,EACzG,CAAC,GAAG,EAAE,kBAAkB,EAAE,kCAAkC,CAAC,EAC7D,CAAC,EAAE,EAAE,kBAAkB,EAAE,gFAAgF,CAAC,EAC1G,CAAC,EAAE,EAAE,mBAAmB,EAAE,uCAAuC,CAAC,EAClE,CACE,EAAE,EACFkB,wBAAwB,EACxB,oFAAoF,CACrF,EACD,CAAC,EAAE,EAAE,0BAA0B,EAAE,6DAA6D,CAAC,EAC/F,CAAC,EAAE,EAAE,eAAe,EAAE,4EAA4E,CAAC,CACpG;EAaE;EAEH,MAAMQ,MAAMA,CAAC,CAACC,QAAQ,GAAG,EAAE,CAAa,EAAEC,OAA0B,EAAE;IACpE,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,IAAI,CAACT,SAAS,EAAE,MAAM,KAAIU,kCAAqB,EAAC,CAAC;IACtD,IAAIJ,OAAO,CAACK,cAAc,EAAE;MAC1B,IAAI,CAACV,MAAM,CAACW,cAAc,CACxB,6GACF,CAAC;IACH;IAEAP,QAAQ,CAACQ,OAAO,CAAEC,GAAG,IAAK;MACxB,MAAMC,OAAO,GAAGC,kBAAkB,CAACF,GAAG,CAAC;MACvC,IAAI,CAAC,IAAAG,iCAAmB,EAACF,OAAO,CAAC,CAACG,mBAAmB,EAAE;QACrD,MAAM,IAAIC,KAAK,CAAC,qBAAqBJ,OAAO,oDAAoD,CAAC;MACnG;IACF,CAAC,CAAC;IACF,IAAI,CAACd,MAAM,CAACmB,OAAO,CAAC,oDAAoDC,gBAAK,CAACC,IAAI,CAAC,IAAI,CAACtB,SAAS,CAACE,IAAI,CAAC,GAAG,CAAC;IAC3G,MAAMqB,WAAoC,GAAG;MAC3CC,aAAa,EAAElB,OAAO,CAACmB,eAAe,GAAG,MAAM,GAAGnB,OAAO,CAACoB,IAAI;MAC9DC,MAAM,EAAE,CAACrB,OAAO,CAACsB,UAAU;MAC3BC,MAAM,EAAE,CAACvB,OAAO,CAACwB,UAAU;MAC3BnB,cAAc,EAAE,IAAI;MACpBoB,UAAU,EAAEzB,OAAO,CAACyB,UAAU;MAC9BC,cAAc,EAAE1B,OAAO,CAAC0B,cAAc;MACtCC,eAAe,EAAE3B,OAAO,CAAC2B,eAAe;MACxCR,eAAe,EAAEnB,OAAO,CAACmB,eAAe;MACxCS,OAAO,EAAE,CAAC5B,OAAO,CAAC6B,WAAW;MAC7BC,mBAAmB,EAAE,CAAC9B,OAAO,CAAC+B,UAAU;MACxCC,gBAAgB,EAAE,CAAChC,OAAO,CAACiC,oBAAoB;MAC/CC,SAAS,EAAElC,OAAO,CAACmC,MAAM;MACzBC,gBAAgB,EAAEpC,OAAO,CAACoC,gBAAgB;MAC1CC,YAAY,EAAErC,OAAO,CAACqC;IACxB,CAAC;IACD,MAAMC,UAAU,GAAG,MAAM,IAAI,CAAC7C,OAAO,CAACA,OAAO,CAACM,QAAQ,EAAEkB,WAAW,CAAC;IACpE,MAAMsB,OAAO,GAAGrC,IAAI,CAACC,GAAG,CAAC,CAAC;IAC1B,MAAMqC,gBAAgB,GAAG,IAAI,CAAC/C,OAAO,CAACgD,mBAAmB,CAAC,CAAC;IAC3D,OAAOC,YAAY,CAAC;MAClBzC,SAAS;MACTsC,OAAO;MACPI,UAAU,EAAEL,UAAU,CAACM,OAAO,CAAC,CAAC,CAACC,MAAM,CAACC,QAAQ,CAAC,CAAC;MAClDV,gBAAgB,EAAEpC,OAAO,CAACV,wBAAwB,CAAC;MACnDkD;IACF,CAAC,CAAC;EACJ;AACF;AAACO,OAAA,CAAA5E,OAAA,GAAAoB,UAAA;AAED,SAASyD,aAAaA,CAAC/C,SAAiB,EAAEsC,OAAe,EAAE;EACzD,MAAMU,IAAI,GAAGV,OAAO,GAAGtC,SAAS;EAChC,OAAOgD,IAAI,GAAG,IAAI;AACpB;AAEA,SAASP,YAAYA,CAAC;EACpBC,UAAU;EACVJ,OAAO;EACPtC,SAAS;EACTmC,gBAAgB;EAChBI;AACgB,CAAC,EAAU;EAC3B,MAAMU,aAAa,GAAGF,aAAa,CAAC/C,SAAS,EAAEsC,OAAO,CAAC;EACvD,MAAMY,OAAO,GAAGpC,gBAAK,CAACqC,KAAK,CACzB,oDAAoDrC,gBAAK,CAACC,IAAI,CAAC2B,UAAU,CAAC,oBAAoB5B,gBAAK,CAACC,IAAI,CACtGkC,aAAa,CAACJ,QAAQ,CAAC,CACzB,CAAC,UACH,CAAC;EACD,MAAMO,4BAA4B,GAAGC,+BAA+B,CAAClB,gBAAgB,EAAEI,gBAAgB,CAAC;EACxG,OAAOa,4BAA4B,GAAG,KAAKA,4BAA4B,OAAOF,OAAO,EAAE,GAAG,KAAKA,OAAO,EAAE;AAC1G;AAEO,SAASG,+BAA+BA,CAAClB,gBAAgB,GAAG,KAAK,EAAEI,gBAA0B,GAAG,EAAE,EAAU;EACjH,IAAI,CAACA,gBAAgB,CAACK,MAAM,EAAE,OAAO,EAAE;EACvC,MAAMU,mBAAmB,GAAGf,gBAAgB,CAACgB,IAAI,CAAC,IAAI,CAAC;EACvD,MAAMC,SAAS,GAAG,6DAA6D1C,gBAAK,CAACC,IAAI,CAAC,aAAa,CAAC,UAAU;EAClH,MAAM0C,IAAI,GAAG3C,gBAAK,CAACC,IAAI,CAAC,KAAK1B,wBAAwB,EAAE,CAAC;EACxD,MAAMqE,uBAAuB,GAAGvB,gBAAgB,GAAG,EAAE,GAAG,gBAAgBsB,IAAI,sBAAsB;EAClG,MAAME,OAAO,GAAG,8FAA8F7C,gBAAK,CAACC,IAAI,CACtHuC,mBACF,CAAC,EAAE;EACH,MAAMM,QAAQ,GAAG,0HAA0H;EAE3I,MAAMC,GAAG,GAAG,GAAGL,SAAS,GAAGE,uBAAuB,KAAKC,OAAO,KAAKC,QAAQ,EAAE;EAC7E,OAAO9C,gBAAK,CAACgD,MAAM,CAACD,GAAG,CAAC;AAC1B;AAEA,SAASpD,kBAAkBA,CAACsD,aAAqB,EAAU;EACzD,MAAMC,WAAW,GAAGD,aAAa,CAACE,WAAW,CAAC,GAAG,CAAC;;EAElD;EACA;EACA,IAAID,WAAW,IAAI,CAAC,EAAE;IACpB,OAAOD,aAAa;EACtB;;EAEA;EACA,MAAMG,WAAW,GAAGH,aAAa,CAACI,KAAK,CAACH,WAAW,GAAG,CAAC,CAAC;;EAExD;EACA;EACA,IAAIE,WAAW,CAACE,QAAQ,CAAC,GAAG,CAAC,EAAE;IAC7B,OAAOL,aAAa;EACtB;;EAEA;EACA;EACA,OAAOA,aAAa,CAACI,KAAK,CAAC,CAAC,EAAEH,WAAW,CAAC;AAC5C","ignoreList":[]}
1
+ {"version":3,"names":["_validateNpmPackageName","data","_interopRequireDefault","require","_chalk","_workspace","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","recurringInstallFlagName","InstallCmd","constructor","install","workspace","logger","name","description","report","packages","options","startTime","Date","now","OutsideWorkspaceError","updateExisting","consoleWarning","forEach","pkg","pkgName","extractPackageName","packageNameValidate","validForNewPackages","Error","console","chalk","cyan","installOpts","lifecycleType","addMissingPeers","type","dedupe","skipDedupe","import","skipImport","savePrefix","addMissingDeps","skipUnavailable","compile","skipCompile","includeOptionalDeps","noOptional","writeConfigFiles","skipWriteConfigFiles","updateAll","update","recurringInstall","lockfileOnly","components","endTime","oldNonLoadedEnvs","getOldNonLoadedEnvs","formatOutput","numOfComps","toArray","length","toString","exports","calculateTime","diff","executionTime","summary","green","anotherInstallRequiredOutput","getAnotherInstallRequiredOutput","oldNonLoadedEnvsStr","join","firstPart","flag","suggestRecurringInstall","envsStr","docsLink","msg","yellow","packageString","allowedPrefixes","some","prefix","startsWith","atIndex","indexOf","possibleVersion","slice","includes","lastAtIndex","lastIndexOf"],"sources":["install.cmd.tsx"],"sourcesContent":["import { Command, CommandOptions } from '@teambit/cli';\nimport packageNameValidate from 'validate-npm-package-name';\nimport { WorkspaceDependencyLifecycleType } from '@teambit/dependency-resolver';\nimport { Logger } from '@teambit/logger';\nimport chalk from 'chalk';\nimport { OutsideWorkspaceError, Workspace } from '@teambit/workspace';\nimport { InstallMain, WorkspaceInstallOptions } from './install.main.runtime';\n\ntype InstallCmdOptions = {\n type: WorkspaceDependencyLifecycleType;\n skipDedupe: boolean;\n skipImport: boolean;\n skipCompile: boolean;\n skipWriteConfigFiles: boolean;\n update: boolean;\n updateExisting: boolean;\n savePrefix: string;\n addMissingDeps: boolean;\n skipUnavailable: boolean;\n addMissingPeers: boolean;\n noOptional: boolean;\n recurringInstall: boolean;\n lockfileOnly: boolean;\n};\n\ntype FormatOutputArgs = {\n numOfComps: string;\n startTime: number;\n endTime: number;\n oldNonLoadedEnvs: string[];\n recurringInstall: boolean;\n};\n\nconst recurringInstallFlagName = 'recurring-install';\n\nexport default class InstallCmd implements Command {\n name = 'install [packages...]';\n description = 'installs workspace dependencies';\n extendedDescription =\n 'when no package is specified, all workspace dependencies are installed and all workspace components are imported.';\n helpUrl = 'reference/dependencies/dependency-installation';\n arguments = [{ name: 'packages...', description: 'a list of packages to install (separated by spaces)' }];\n alias = 'in';\n group = 'development';\n options = [\n ['t', 'type [lifecycleType]', '\"runtime\" (default) or \"peer\" (dev is not a valid option)'],\n ['u', 'update', 'update all dependencies to latest version according to their semver range'],\n [\n '',\n 'update-existing',\n 'DEPRECATED (not needed anymore, it is the default now). update existing dependencies version and types',\n ],\n ['', 'save-prefix [savePrefix]', 'set the prefix to use when adding dependency to workspace.jsonc'],\n ['', 'skip-dedupe', 'do not dedupe dependencies on installation'],\n ['', 'skip-import', 'do not import bit objects post installation'],\n ['', 'skip-compile', 'do not compile components'],\n ['', 'skip-write-config-files', 'do not write config files (such as eslint, tsconfig, prettier, etc...)'],\n ['a', 'add-missing-deps', 'install all missing dependencies'],\n ['', 'skip-unavailable', 'when adding missing dependencies, skip those that are not found in the regisry'],\n ['', 'add-missing-peers', 'install all missing peer dependencies'],\n [\n '',\n recurringInstallFlagName,\n 'automatically run install again if there are non loaded old envs in your workspace',\n ],\n ['', 'no-optional [noOptional]', 'do not install optional dependencies (works with pnpm only)'],\n ['', 'lockfile-only', 'dependencies are not written to node_modules. Only the lockfile is updated'],\n ] as CommandOptions;\n\n constructor(\n private install: InstallMain,\n /**\n * workspace extension.\n */\n private workspace: Workspace,\n\n /**\n * logger extension.\n */\n private logger: Logger\n ) {}\n\n async report([packages = []]: [string[]], options: InstallCmdOptions) {\n const startTime = Date.now();\n if (!this.workspace) throw new OutsideWorkspaceError();\n if (options.updateExisting) {\n this.logger.consoleWarning(\n `--update-existing is deprecated, please omit it. \"bit install\" will update existing dependencies by default`\n );\n }\n\n packages.forEach((pkg) => {\n const pkgName = extractPackageName(pkg);\n if (!packageNameValidate(pkgName).validForNewPackages) {\n throw new Error(`the package name \"${pkgName}\" is invalid. please provide a valid package name.`);\n }\n });\n this.logger.console(`Resolving component dependencies for workspace: '${chalk.cyan(this.workspace.name)}'`);\n const installOpts: WorkspaceInstallOptions = {\n lifecycleType: options.addMissingPeers ? 'peer' : options.type,\n dedupe: !options.skipDedupe,\n import: !options.skipImport,\n updateExisting: true,\n savePrefix: options.savePrefix,\n addMissingDeps: options.addMissingDeps,\n skipUnavailable: options.skipUnavailable,\n addMissingPeers: options.addMissingPeers,\n compile: !options.skipCompile,\n includeOptionalDeps: !options.noOptional,\n writeConfigFiles: !options.skipWriteConfigFiles,\n updateAll: options.update,\n recurringInstall: options.recurringInstall,\n lockfileOnly: options.lockfileOnly,\n };\n const components = await this.install.install(packages, installOpts);\n const endTime = Date.now();\n const oldNonLoadedEnvs = this.install.getOldNonLoadedEnvs();\n return formatOutput({\n startTime,\n endTime,\n numOfComps: components.toArray().length.toString(),\n recurringInstall: options[recurringInstallFlagName],\n oldNonLoadedEnvs,\n });\n }\n}\n\nfunction calculateTime(startTime: number, endTime: number) {\n const diff = endTime - startTime;\n return diff / 1000;\n}\n\nfunction formatOutput({\n numOfComps,\n endTime,\n startTime,\n recurringInstall,\n oldNonLoadedEnvs,\n}: FormatOutputArgs): string {\n const executionTime = calculateTime(startTime, endTime);\n const summary = chalk.green(\n `Successfully installed dependencies and compiled ${chalk.cyan(numOfComps)} component(s) in ${chalk.cyan(\n executionTime.toString()\n )} seconds`\n );\n const anotherInstallRequiredOutput = getAnotherInstallRequiredOutput(recurringInstall, oldNonLoadedEnvs);\n return anotherInstallRequiredOutput ? `\\n${anotherInstallRequiredOutput}\\n\\n${summary}` : `\\n${summary}`;\n}\n\nexport function getAnotherInstallRequiredOutput(recurringInstall = false, oldNonLoadedEnvs: string[] = []): string {\n if (!oldNonLoadedEnvs.length) return '';\n const oldNonLoadedEnvsStr = oldNonLoadedEnvs.join(', ');\n const firstPart = `Bit was not able to install all dependencies. Please run \"${chalk.cyan('bit install')}\" again `;\n const flag = chalk.cyan(`--${recurringInstallFlagName}`);\n const suggestRecurringInstall = recurringInstall ? '' : `(or use the \"${flag}\" option next time).`;\n const envsStr = `The following environments need to add support for \"dependency policy\" to fix the warning: ${chalk.cyan(\n oldNonLoadedEnvsStr\n )}`;\n const docsLink = `Read more about how to fix this issue in: https://bit.dev/blog/using-a-static-dependency-policy-in-a-legacy-env-lihfbt9b`;\n\n const msg = `${firstPart}${suggestRecurringInstall}\\n${envsStr}\\n${docsLink}`;\n return chalk.yellow(msg);\n}\n\nfunction extractPackageName(packageString: string): string {\n if (!packageString) return '';\n\n // Handle https and git protocols. We don't allow \"file\" protocol here. It won't work for the consumer.\n const allowedPrefixes = ['https://', 'git:', 'git+ssh://', 'git+https://'];\n if (allowedPrefixes.some((prefix) => packageString.startsWith(prefix))) {\n return packageString;\n }\n\n // If it's a scoped package\n if (packageString.startsWith('@')) {\n // Find the second '@' (first is for scope, second is for version/tag)\n const atIndex = packageString.indexOf('@', 1);\n if (atIndex === -1) return packageString;\n const possibleVersion = packageString.slice(atIndex + 1);\n // If the part after the second '@' contains a slash, it's not a version/tag\n if (possibleVersion.includes('/')) return packageString;\n return packageString.slice(0, atIndex);\n }\n\n // For unscoped packages, split at the last '@'\n const lastAtIndex = packageString.lastIndexOf('@');\n if (lastAtIndex <= 0) return packageString;\n return packageString.slice(0, lastAtIndex);\n}\n"],"mappings":"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","ignoreList":[]}
package/install.cmd.tsx CHANGED
@@ -163,24 +163,27 @@ export function getAnotherInstallRequiredOutput(recurringInstall = false, oldNon
163
163
  }
164
164
 
165
165
  function extractPackageName(packageString: string): string {
166
- const lastAtIndex = packageString.lastIndexOf('@');
166
+ if (!packageString) return '';
167
167
 
168
- // If no '@' is present, or it's at the start (meaning it's just a scope),
169
- // we can assume there's no separate version part to remove.
170
- if (lastAtIndex <= 0) {
168
+ // Handle https and git protocols. We don't allow "file" protocol here. It won't work for the consumer.
169
+ const allowedPrefixes = ['https://', 'git:', 'git+ssh://', 'git+https://'];
170
+ if (allowedPrefixes.some((prefix) => packageString.startsWith(prefix))) {
171
171
  return packageString;
172
172
  }
173
173
 
174
- // Get everything after the last '@'
175
- const afterLastAt = packageString.slice(lastAtIndex + 1);
176
-
177
- // If the substring after the last '@' contains a slash, it's part of the scoped package name,
178
- // not a version. In that case, do not remove anything.
179
- if (afterLastAt.includes('/')) {
180
- return packageString;
174
+ // If it's a scoped package
175
+ if (packageString.startsWith('@')) {
176
+ // Find the second '@' (first is for scope, second is for version/tag)
177
+ const atIndex = packageString.indexOf('@', 1);
178
+ if (atIndex === -1) return packageString;
179
+ const possibleVersion = packageString.slice(atIndex + 1);
180
+ // If the part after the second '@' contains a slash, it's not a version/tag
181
+ if (possibleVersion.includes('/')) return packageString;
182
+ return packageString.slice(0, atIndex);
181
183
  }
182
184
 
183
- // Otherwise, we assume that last '@' starts the version,
184
- // so we remove that part.
185
+ // For unscoped packages, split at the last '@'
186
+ const lastAtIndex = packageString.lastIndexOf('@');
187
+ if (lastAtIndex <= 0) return packageString;
185
188
  return packageString.slice(0, lastAtIndex);
186
189
  }
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/install",
3
- "version": "1.0.598",
3
+ "version": "1.0.602",
4
4
  "homepage": "https://bit.cloud/teambit/workspace/install",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.workspace",
8
8
  "name": "install",
9
- "version": "1.0.598"
9
+ "version": "1.0.602"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "4.1.2",
@@ -24,27 +24,27 @@
24
24
  "@teambit/harmony": "0.4.7",
25
25
  "@teambit/workspace.root-components": "1.0.0",
26
26
  "@teambit/bit-error": "0.0.404",
27
- "@teambit/cli": "0.0.1175",
28
- "@teambit/dependency-resolver": "1.0.598",
29
- "@teambit/logger": "0.0.1268",
30
- "@teambit/workspace": "1.0.598",
31
- "@teambit/application": "1.0.598",
32
- "@teambit/aspect-loader": "1.0.598",
33
- "@teambit/bundler": "1.0.598",
34
- "@teambit/compiler": "1.0.598",
27
+ "@teambit/cli": "0.0.1179",
28
+ "@teambit/dependency-resolver": "1.0.602",
29
+ "@teambit/logger": "0.0.1272",
30
+ "@teambit/workspace": "1.0.602",
31
+ "@teambit/application": "1.0.602",
32
+ "@teambit/aspect-loader": "1.0.602",
33
+ "@teambit/bundler": "1.0.602",
34
+ "@teambit/compiler": "1.0.602",
35
35
  "@teambit/component-issues": "0.0.159",
36
36
  "@teambit/component-package-version": "0.0.438",
37
- "@teambit/component": "1.0.598",
37
+ "@teambit/component": "1.0.602",
38
38
  "@teambit/dependencies.fs.linked-dependencies": "0.0.28",
39
- "@teambit/envs": "1.0.598",
40
- "@teambit/generator": "1.0.599",
41
- "@teambit/ipc-events": "1.0.598",
42
- "@teambit/issues": "1.0.598",
43
- "@teambit/objects": "0.0.105",
39
+ "@teambit/envs": "1.0.602",
40
+ "@teambit/generator": "1.0.603",
41
+ "@teambit/ipc-events": "1.0.602",
42
+ "@teambit/issues": "1.0.602",
43
+ "@teambit/objects": "0.0.109",
44
44
  "@teambit/pkg.modules.component-package-name": "0.0.56",
45
- "@teambit/ui": "1.0.598",
46
- "@teambit/variants": "0.0.1442",
47
- "@teambit/workspace-config-files": "1.0.598",
45
+ "@teambit/ui": "1.0.602",
46
+ "@teambit/variants": "0.0.1446",
47
+ "@teambit/workspace-config-files": "1.0.602",
48
48
  "@teambit/workspace.modules.node-modules-linker": "0.0.277",
49
49
  "@teambit/toolbox.time.time-format": "0.0.500"
50
50
  },