@teambit/ci 0.0.2 → 0.0.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.
@@ -6,6 +6,7 @@ import { CiMain } from '../ci.main.runtime';
6
6
  type Options = {
7
7
  message?: string;
8
8
  build?: boolean;
9
+ strict?: boolean;
9
10
  };
10
11
 
11
12
  export class CiMergeCmd implements Command {
@@ -16,6 +17,7 @@ export class CiMergeCmd implements Command {
16
17
  options: CommandOptions = [
17
18
  ['m', 'message <message>', 'If set, use it as the snap message, if not, try and grab from git-commit-message'],
18
19
  ['b', 'build', 'Set to true to build the app locally, false (default) will build on Ripple CI'],
20
+ ['s', 'strict', 'Set to true to fail on warnings as well as errors, false (default) only fails on errors'],
19
21
  ];
20
22
 
21
23
  constructor(
@@ -29,6 +31,6 @@ export class CiMergeCmd implements Command {
29
31
  this.logger.console('🚀 Initializing Merge command');
30
32
  if (!this.workspace) throw new OutsideWorkspaceError();
31
33
 
32
- return this.ci.mergePr({ message: options.message, build: options.build });
34
+ return this.ci.mergePr({ message: options.message, build: options.build, strict: options.strict });
33
35
  }
34
36
  }
@@ -7,6 +7,7 @@ type Options = {
7
7
  message?: string;
8
8
  build?: boolean;
9
9
  lane?: string;
10
+ strict?: boolean;
10
11
  };
11
12
 
12
13
  export class CiPrCmd implements Command {
@@ -18,6 +19,7 @@ export class CiPrCmd implements Command {
18
19
  ['m', 'message <message>', 'If set, set it as the snap message, if not, try and grab from git-commit-message'],
19
20
  ['l', 'lane <lane>', 'If set, use as the lane name, if not available, grab from git-branch name'],
20
21
  ['b', 'build', 'Set to true to build the app locally, false (default) will build on Ripple CI'],
22
+ ['s', 'strict', 'Set to true to fail on warnings as well as errors, false (default) only fails on errors'],
21
23
  ];
22
24
 
23
25
  constructor(
@@ -43,7 +45,9 @@ export class CiPrCmd implements Command {
43
45
  if (!currentBranch) {
44
46
  throw new Error('Failed to get branch name');
45
47
  }
46
- branch = `${this.workspace.defaultScope}/${currentBranch}`;
48
+ // Sanitize branch name to make it valid for Bit lane IDs by replacing slashes with dashes
49
+ const sanitizedBranch = currentBranch.replace(/\//g, '-');
50
+ branch = `${this.workspace.defaultScope}/${sanitizedBranch}`;
47
51
  }
48
52
 
49
53
  if (options.message) {
@@ -60,6 +64,7 @@ export class CiPrCmd implements Command {
60
64
  branch,
61
65
  message,
62
66
  build: options.build,
67
+ strict: options.strict,
63
68
  });
64
69
  }
65
70
  }
@@ -36,6 +36,7 @@ export declare class CiMain {
36
36
  CheckoutMain
37
37
  ]): Promise<CiMain>;
38
38
  getBranchName(): Promise<string>;
39
+ getDefaultBranchName(): Promise<string>;
39
40
  getGitCommitMessage(): Promise<string | null>;
40
41
  private verifyWorkspaceStatusInternal;
41
42
  private switchToLane;
@@ -43,17 +44,19 @@ export declare class CiMain {
43
44
  code: number;
44
45
  data: string;
45
46
  }>;
46
- snapPrCommit({ branch, message, build }: {
47
+ snapPrCommit({ branch, message, build, strict, }: {
47
48
  branch: string;
48
49
  message: string;
49
50
  build: boolean | undefined;
51
+ strict: boolean | undefined;
50
52
  }): Promise<string | {
51
53
  code: number;
52
54
  data: string;
53
55
  }>;
54
- mergePr({ message: argMessage, build }: {
56
+ mergePr({ message: argMessage, build, strict }: {
55
57
  message?: string;
56
58
  build?: boolean;
59
+ strict?: boolean;
57
60
  }): Promise<{
58
61
  code: number;
59
62
  data: string;
@@ -166,6 +166,25 @@ class CiMain {
166
166
  throw new Error(`Unable to read branch: ${e.toString()}`);
167
167
  }
168
168
  }
169
+ async getDefaultBranchName() {
170
+ try {
171
+ // Try to get the default branch from git symbolic-ref
172
+ const result = await _git().git.raw(['symbolic-ref', 'refs/remotes/origin/HEAD']);
173
+ const defaultBranch = result.trim().split('/').pop();
174
+ return defaultBranch || 'master';
175
+ } catch (e) {
176
+ // Fallback to common default branch names
177
+ try {
178
+ const branches = await _git().git.branch(['-r']);
179
+ if (branches.all.includes('origin/main')) return 'main';
180
+ if (branches.all.includes('origin/master')) return 'master';
181
+ return 'master'; // Final fallback
182
+ } catch {
183
+ this.logger.console(_chalk().default.yellow(`Unable to detect default branch, using 'master': ${e.toString()}`));
184
+ return 'master';
185
+ }
186
+ }
187
+ }
169
188
  async getGitCommitMessage() {
170
189
  try {
171
190
  const commit = await _git().git.log({
@@ -183,15 +202,35 @@ class CiMain {
183
202
  throw new Error(`Unable to read commit message: ${e.toString()}`);
184
203
  }
185
204
  }
186
- async verifyWorkspaceStatusInternal() {
205
+ async verifyWorkspaceStatusInternal(strict = false) {
187
206
  this.logger.console('📊 Workspace Status');
188
207
  this.logger.console(_chalk().default.blue('Verifying status of workspace'));
189
208
  const status = await this.status.status({
190
209
  lanes: true,
191
210
  ignoreCircularDependencies: false
192
211
  });
193
- if (status.componentsWithIssues.length > 0) {
194
- this.logger.console(_chalk().default.red(`Found ${status.componentsWithIssues.length} components with issues, run 'bit status' to see the issues.`));
212
+
213
+ // Check for blocking issues (errors) vs warnings
214
+ const componentsWithErrors = status.componentsWithIssues.filter(({
215
+ issues
216
+ }) => issues.hasTagBlockerIssues());
217
+ const componentsWithWarnings = status.componentsWithIssues.filter(({
218
+ issues
219
+ }) => !issues.hasTagBlockerIssues());
220
+ if (componentsWithWarnings.length > 0) {
221
+ if (strict) {
222
+ this.logger.console(_chalk().default.red(`Found ${componentsWithWarnings.length} components with warnings (strict mode), run 'bit status' to see the warnings.`));
223
+ return {
224
+ code: 1,
225
+ data: '',
226
+ status
227
+ };
228
+ } else {
229
+ this.logger.console(_chalk().default.yellow(`Found ${componentsWithWarnings.length} components with warnings, run 'bit status' to see the warnings.`));
230
+ }
231
+ }
232
+ if (componentsWithErrors.length > 0) {
233
+ this.logger.console(_chalk().default.red(`Found ${componentsWithErrors.length} components with errors, run 'bit status' to see the errors.`));
195
234
  return {
196
235
  code: 1,
197
236
  data: '',
@@ -243,7 +282,8 @@ class CiMain {
243
282
  async snapPrCommit({
244
283
  branch,
245
284
  message,
246
- build
285
+ build,
286
+ strict
247
287
  }) {
248
288
  this.logger.console(_chalk().default.blue(`Branch name: ${branch}`));
249
289
  const originalLane = await this.lanes.getCurrentLane();
@@ -258,7 +298,7 @@ class CiMain {
258
298
  const {
259
299
  code,
260
300
  data
261
- } = await this.verifyWorkspaceStatusInternal();
301
+ } = await this.verifyWorkspaceStatusInternal(strict);
262
302
  if (code !== 0) return {
263
303
  code,
264
304
  data
@@ -321,7 +361,12 @@ class CiMain {
321
361
  unmodified: false
322
362
  });
323
363
  if (!results) {
324
- throw new Error('No snap results found');
364
+ this.logger.console(_chalk().default.yellow('No changes detected, nothing to snap'));
365
+ this.logger.console(_chalk().default.green('Lane is up to date'));
366
+ return {
367
+ code: 0,
368
+ data: 'No changes detected, nothing to snap'
369
+ };
325
370
  }
326
371
  const {
327
372
  snappedComponents,
@@ -385,7 +430,8 @@ class CiMain {
385
430
  }
386
431
  async mergePr({
387
432
  message: argMessage,
388
- build
433
+ build,
434
+ strict
389
435
  }) {
390
436
  let message;
391
437
  if (argMessage) {
@@ -425,7 +471,7 @@ class CiMain {
425
471
  code,
426
472
  data,
427
473
  status
428
- } = await this.verifyWorkspaceStatusInternal();
474
+ } = await this.verifyWorkspaceStatusInternal(strict);
429
475
  if (code !== 0) return {
430
476
  code,
431
477
  data
@@ -454,7 +500,8 @@ class CiMain {
454
500
  await _git().git.commit('chore: update .bitmap and pnpm-lock.yaml');
455
501
 
456
502
  // Push the commit to the remote repository
457
- await _git().git.push('origin', 'main');
503
+ const defaultBranch = await this.getDefaultBranchName();
504
+ await _git().git.push('origin', defaultBranch);
458
505
  this.logger.console(_chalk().default.green('Merged PR'));
459
506
  if (currentLane) {
460
507
  this.logger.console('🗑️ Lane Cleanup');
@@ -1 +1 @@
1
- {"version":3,"names":["_cli","data","require","_logger","_workspace","_builder","_status","_lanes","_snapping","_export","_importer","_checkout","_legacy","_chalk","_interopRequireDefault","_ci","_ci2","_verify","_pr","_merge","_git","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CiMain","constructor","workspace","builder","status","lanes","snapping","exporter","importer","checkout","logger","provider","cli","loggerAspect","createLogger","CiAspect","id","ci","ciCmd","CiCmd","commands","CiVerifyCmd","CiPrCmd","CiMergeCmd","register","getBranchName","process","env","GITHUB_HEAD_REF","branch","git","current","Error","toString","getGitCommitMessage","commit","log","maxCount","latest","message","body","verifyWorkspaceStatusInternal","console","chalk","blue","ignoreCircularDependencies","componentsWithIssues","red","code","green","switchToLane","laneName","options","switchLanes","forceOurs","head","workspaceOnly","catch","includes","yellow","verifyWorkspaceStatus","components","list","build","throwErrorsIfExist","snapPrCommit","originalLane","getCurrentLane","laneId","parseLaneId","import","ids","installNpmPackages","writeConfigFiles","availableLanesInScope","getLanes","remote","scope","newLaneExists","find","lane","name","importLaneObject","consumer","setCurrentLane","laneIds","toComponentIds","compId","bitMap","updateComponentId","write","importCurrentObjects","createdLane","createLane","forkLaneNewScope","currentLane","results","snap","exitOnFirstFailedTask","unmodified","snappedComponents","autoSnappedResults","warnings","newComponents","removedComponents","changedComponents","component","searchWithoutVersion","addedComponents","autoTaggedCount","warningsOutput","join","compInBold","version","hasVersion","bold","toStringWithoutVersion","outputComponents","comps","map","componentOutput","autoTag","result","triggeredBy","autoTagComp","a","AUTO_SNAPPED_MSG","outputIfExists","label","explanation","underline","laneStr","export","outputIdsIfExists","mergePr","argMessage","commitMessage","skipNpmInstall","skipDependencyInstallation","main","mergeStrategy","hasSoftTaggedComponents","softTaggedComponents","tag","all","failFast","persist","addConfig","add","archiveLane","removeLanes","exports","MainRuntime","CLIAspect","WorkspaceAspect","LoggerAspect","BuilderAspect","StatusAspect","LanesAspect","SnappingAspect","ExportAspect","ImporterAspect","CheckoutAspect","addRuntime"],"sources":["ci.main.runtime.ts"],"sourcesContent":["import type { RuntimeDefinition } from '@teambit/harmony';\nimport { CLIAspect, type CLIMain, MainRuntime } from '@teambit/cli';\nimport { LoggerAspect, type LoggerMain, type Logger } from '@teambit/logger';\nimport { WorkspaceAspect, type Workspace } from '@teambit/workspace';\nimport { BuilderAspect, type BuilderMain } from '@teambit/builder';\nimport { StatusAspect, type StatusMain } from '@teambit/status';\nimport { LanesAspect, type LanesMain } from '@teambit/lanes';\nimport { SnappingAspect, SnapResults, type SnappingMain } from '@teambit/snapping';\nimport { ExportAspect, type ExportMain } from '@teambit/export';\nimport { ImporterAspect, type ImporterMain } from '@teambit/importer';\nimport { CheckoutAspect, type CheckoutMain } from '@teambit/checkout';\nimport { ComponentID } from '@teambit/component-id';\nimport { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport { AUTO_SNAPPED_MSG } from '@teambit/legacy.constants';\nimport { outputIdsIfExists } from '@teambit/snapping';\nimport { SwitchLaneOptions } from '@teambit/lanes';\nimport chalk from 'chalk';\nimport { CiAspect } from './ci.aspect';\nimport { CiCmd } from './ci.cmd';\nimport { CiVerifyCmd } from './commands/verify.cmd';\nimport { CiPrCmd } from './commands/pr.cmd';\nimport { CiMergeCmd } from './commands/merge.cmd';\nimport { git } from './git';\n\nexport class CiMain {\n static runtime = MainRuntime as RuntimeDefinition;\n\n static dependencies: any = [\n CLIAspect,\n WorkspaceAspect,\n LoggerAspect,\n BuilderAspect,\n StatusAspect,\n LanesAspect,\n SnappingAspect,\n ExportAspect,\n ImporterAspect,\n CheckoutAspect,\n ];\n\n static slots: any = [];\n\n constructor(\n private workspace: Workspace,\n\n private builder: BuilderMain,\n\n private status: StatusMain,\n\n private lanes: LanesMain,\n\n private snapping: SnappingMain,\n\n private exporter: ExportMain,\n\n private importer: ImporterMain,\n\n private checkout: CheckoutMain,\n\n private logger: Logger\n ) {}\n\n static async provider([\n cli,\n workspace,\n loggerAspect,\n builder,\n status,\n lanes,\n snapping,\n exporter,\n importer,\n checkout,\n ]: [\n CLIMain,\n Workspace,\n LoggerMain,\n BuilderMain,\n StatusMain,\n LanesMain,\n SnappingMain,\n ExportMain,\n ImporterMain,\n CheckoutMain,\n ]) {\n const logger = loggerAspect.createLogger(CiAspect.id);\n\n const ci = new CiMain(workspace, builder, status, lanes, snapping, exporter, importer, checkout, logger);\n\n const ciCmd = new CiCmd(workspace, logger);\n\n ciCmd.commands = [\n new CiVerifyCmd(workspace, logger, ci),\n new CiPrCmd(workspace, logger, ci),\n new CiMergeCmd(workspace, logger, ci),\n ];\n\n cli.register(ciCmd);\n return ci;\n }\n\n async getBranchName() {\n try {\n // if we are running on github, use the GITHUB_HEAD_REF env var\n if (process.env.GITHUB_HEAD_REF) return process.env.GITHUB_HEAD_REF;\n\n const branch = await git.branch();\n return branch.current;\n } catch (e: any) {\n throw new Error(`Unable to read branch: ${e.toString()}`);\n }\n }\n\n async getGitCommitMessage() {\n try {\n const commit = await git.log({\n maxCount: 1,\n });\n if (!commit.latest) {\n return null;\n }\n const { message, body } = commit.latest;\n return body ? `${message}\\n\\n${body}` : message;\n } catch (e: any) {\n throw new Error(`Unable to read commit message: ${e.toString()}`);\n }\n }\n\n private async verifyWorkspaceStatusInternal() {\n this.logger.console('📊 Workspace Status');\n this.logger.console(chalk.blue('Verifying status of workspace'));\n const status = await this.status.status({\n lanes: true,\n ignoreCircularDependencies: false,\n });\n\n if (status.componentsWithIssues.length > 0) {\n this.logger.console(\n chalk.red(\n `Found ${status.componentsWithIssues.length} components with issues, run 'bit status' to see the issues.`\n )\n );\n return { code: 1, data: '', status };\n }\n\n this.logger.console(chalk.green('Workspace status is correct'));\n return { code: 0, data: '', status };\n }\n\n private async switchToLane(laneName: string, options: SwitchLaneOptions = {}) {\n this.logger.console(chalk.blue(`Switching to ${laneName}`));\n await this.lanes\n .switchLanes(laneName, {\n forceOurs: true,\n head: true,\n workspaceOnly: true,\n ...options,\n })\n .catch((e) => {\n if (e.toString().includes('already checked out')) {\n this.logger.console(chalk.yellow(`Lane ${laneName} already checked out, skipping checkout`));\n return true;\n }\n this.logger.console(chalk.red(`Failed to checkout lane ${laneName}: ${e.toString()}`));\n return null;\n });\n }\n\n async verifyWorkspaceStatus() {\n const { code, data } = await this.verifyWorkspaceStatusInternal();\n if (code !== 0) return { code, data };\n\n this.logger.console('🔨 Build Process');\n const components = await this.workspace.list();\n\n this.logger.console(chalk.blue(`Building ${components.length} components`));\n\n const build = await this.builder.build(components);\n\n build.throwErrorsIfExist();\n\n this.logger.console(chalk.green('Components built'));\n\n return { code: 0, data: '' };\n }\n\n async snapPrCommit({ branch, message, build }: { branch: string; message: string; build: boolean | undefined }) {\n this.logger.console(chalk.blue(`Branch name: ${branch}`));\n\n const originalLane = await this.lanes.getCurrentLane();\n\n const laneId = await this.lanes.parseLaneId(branch);\n\n if (!laneId) {\n this.logger.console(chalk.yellow(`No lane found for branch ${branch}`));\n return { code: 1, data: '' };\n }\n\n const { code, data } = await this.verifyWorkspaceStatusInternal();\n if (code !== 0) return { code, data };\n\n await this.importer\n .import({\n ids: [],\n installNpmPackages: false,\n writeConfigFiles: false,\n })\n .catch((e) => {\n throw new Error(`Failed to import components: ${e.toString()}`);\n });\n\n try {\n this.logger.console('🔄 Lane Management');\n const availableLanesInScope = await this.lanes\n .getLanes({\n remote: laneId.scope,\n })\n .catch((e) => {\n throw new Error(`Failed to get lanes in scope ${laneId.scope}: ${e.toString()}`);\n });\n\n const newLaneExists = availableLanesInScope.find((lane) => lane.id.name === laneId.name);\n\n if (newLaneExists) {\n const lane = await this.lanes.importLaneObject(laneId, true);\n this.workspace.consumer.setCurrentLane(laneId, true);\n const laneIds = lane.toComponentIds();\n laneIds.forEach((compId) => this.workspace.consumer.bitMap.updateComponentId(compId));\n await this.workspace.bitMap.write();\n await this.importer.importCurrentObjects();\n\n this.logger.console(chalk.green(`Imported lane ${laneId.toString()}`));\n } else {\n this.logger.console(chalk.blue(`Creating lane ${laneId.toString()}`));\n\n const createdLane = await this.lanes\n .createLane(laneId.name, {\n scope: laneId.scope,\n forkLaneNewScope: true,\n })\n .catch((e) => {\n if (e.toString().includes('already exists')) {\n this.logger.console(chalk.yellow(`Lane ${laneId.toString()} already exists, skipping creation`));\n return true;\n }\n this.logger.console(chalk.red(`Failed to create lane ${laneId.toString()}: ${e.toString()}`));\n return null;\n });\n\n if (!createdLane) {\n return { code: 1, data: '' };\n }\n }\n\n const currentLane = await this.lanes.getCurrentLane();\n\n this.logger.console(chalk.blue(`Current lane: ${currentLane?.name ?? 'main'}`));\n\n if (currentLane?.name === laneId.name) {\n this.logger.console(chalk.yellow(`Current lane is already ${laneId.name}, skipping switch`));\n } else {\n await this.switchToLane(laneId.toString());\n }\n\n this.logger.console('📦 Snapping Components');\n const results = await this.snapping.snap({\n message,\n build,\n exitOnFirstFailedTask: true,\n unmodified: false,\n });\n\n if (!results) {\n throw new Error('No snap results found');\n }\n\n const {\n snappedComponents,\n autoSnappedResults,\n warnings,\n newComponents,\n laneName,\n removedComponents,\n }: SnapResults = results;\n const changedComponents = snappedComponents.filter((component) => {\n return (\n !newComponents.searchWithoutVersion(component.id) && !removedComponents?.searchWithoutVersion(component.id)\n );\n });\n const addedComponents = snappedComponents.filter((component) => newComponents.searchWithoutVersion(component.id));\n const autoTaggedCount = autoSnappedResults ? autoSnappedResults.length : 0;\n\n const warningsOutput = warnings?.length ? `${chalk.yellow(warnings.join('\\n'))}\\n\\n` : '';\n\n const compInBold = (id: ComponentID) => {\n const version = id.hasVersion() ? `@${id.version}` : '';\n return `${chalk.bold(id.toStringWithoutVersion())}${version}`;\n };\n\n const outputComponents = (comps: ConsumerComponent[]) => {\n return comps\n .map((component) => {\n let componentOutput = ` > ${compInBold(component.id)}`;\n const autoTag = autoSnappedResults.filter((result) =>\n result.triggeredBy.searchWithoutVersion(component.id)\n );\n if (autoTag.length) {\n const autoTagComp = autoTag.map((a) =>\n // @ts-ignore\n compInBold(a.component.id)\n );\n componentOutput += `\\n ${AUTO_SNAPPED_MSG} (${autoTagComp.length} total):\n ${autoTagComp.join('\\n ')}`;\n }\n return componentOutput;\n })\n .join('\\n');\n };\n\n const outputIfExists = (label, explanation, components) => {\n if (!components.length) return '';\n return `\\n${chalk.underline(label)}\\n(${explanation})\\n${outputComponents(components)}\\n`;\n };\n\n const laneStr = laneName ? ` on \"${laneName}\" lane` : '';\n\n this.logger.console(chalk.blue(`Exporting ${snappedComponents.length} components`));\n\n await this.exporter.export();\n\n this.logger.console(chalk.green(`Exported ${snappedComponents.length} components`));\n\n // Switch back to main\n await this.switchToLane('main');\n\n return (\n outputIfExists('new components', 'first version for components', addedComponents) +\n outputIfExists('changed components', 'components that got a version bump', changedComponents) +\n outputIdsIfExists('removed components', removedComponents) +\n warningsOutput +\n chalk.green(`\\n${snappedComponents.length + autoTaggedCount} component(s) snapped${laneStr}`)\n );\n } catch (e: any) {\n throw new Error(`Unhandled error: ${e.toString()}`);\n } finally {\n // Whatever happens, switch back to the original lane\n this.logger.console('🔄 Cleanup');\n this.logger.console(chalk.blue(`Switching back to ${originalLane?.name ?? 'main'}`));\n const lane = await this.lanes.getCurrentLane();\n if (!lane) {\n await this.lanes.checkout.checkout({\n head: true,\n });\n } else {\n await this.switchToLane(originalLane?.name ?? 'main');\n }\n }\n }\n\n async mergePr({ message: argMessage, build }: { message?: string; build?: boolean }) {\n let message: string;\n\n if (argMessage) {\n message = argMessage;\n } else {\n const commitMessage = await this.getGitCommitMessage();\n if (!commitMessage) {\n return { code: 1, data: 'Failed to get commit message' };\n }\n message = commitMessage;\n }\n\n const currentLane = await this.lanes.getCurrentLane();\n\n await this.lanes.checkout.checkout({\n forceOurs: true,\n head: true,\n skipNpmInstall: true,\n });\n\n if (currentLane) {\n this.logger.console(chalk.blue(`Currently on lane ${currentLane.name}, switching to main`));\n await this.switchToLane('main', { skipDependencyInstallation: true });\n this.logger.console(chalk.green('Switched to main'));\n }\n\n await this.checkout.checkout({\n forceOurs: true,\n head: true,\n main: true,\n mergeStrategy: 'ours',\n workspaceOnly: true,\n skipNpmInstall: true,\n });\n\n const { code, data, status } = await this.verifyWorkspaceStatusInternal();\n if (code !== 0) return { code, data };\n\n const hasSoftTaggedComponents = status.softTaggedComponents.length > 0;\n\n this.logger.console('📦 Component Operations');\n this.logger.console(chalk.blue('Tagging components'));\n await this.snapping.tag({\n all: true,\n message,\n build,\n failFast: true,\n persist: hasSoftTaggedComponents,\n });\n this.logger.console(chalk.green('Tagged components'));\n\n this.logger.console(chalk.blue('Exporting components'));\n await this.exporter.export();\n this.logger.console(chalk.green('Exported components'));\n\n this.logger.console('🔄 Git Operations');\n // Set user.email and user.name\n await git.addConfig('user.email', 'bit-ci[bot]@bit.cloud');\n await git.addConfig('user.name', 'Bit CI');\n\n // Commit the .bitmap and pnpm-lock.yaml files using Git\n await git.add(['.bitmap', 'pnpm-lock.yaml']);\n await git.commit('chore: update .bitmap and pnpm-lock.yaml');\n\n // Push the commit to the remote repository\n await git.push('origin', 'main');\n\n this.logger.console(chalk.green('Merged PR'));\n\n if (currentLane) {\n this.logger.console('🗑️ Lane Cleanup');\n const laneId = currentLane.id;\n this.logger.console(chalk.blue(`Archiving lane ${laneId.toString()}`));\n const archiveLane = await this.lanes.removeLanes([laneId()]);\n if (archiveLane) {\n this.logger.console(chalk.green('Lane archived'));\n } else {\n this.logger.console(chalk.yellow('Failed to archive lane'));\n }\n }\n\n return { code: 0, data: '' };\n }\n}\n\n// @ts-ignore\nCiAspect.addRuntime(CiMain);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_cli","data","require","_logger","_workspace","_builder","_status","_lanes","_snapping","_export","_importer","_checkout","_legacy","_chalk","_interopRequireDefault","_ci","_ci2","_verify","_pr","_merge","_git","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CiMain","constructor","workspace","builder","status","lanes","snapping","exporter","importer","checkout","logger","provider","cli","loggerAspect","createLogger","CiAspect","id","ci","ciCmd","CiCmd","commands","CiVerifyCmd","CiPrCmd","CiMergeCmd","register","getBranchName","process","env","GITHUB_HEAD_REF","branch","git","current","Error","toString","getDefaultBranchName","result","raw","defaultBranch","trim","split","pop","branches","all","includes","console","chalk","yellow","getGitCommitMessage","commit","log","maxCount","latest","message","body","verifyWorkspaceStatusInternal","strict","blue","ignoreCircularDependencies","componentsWithErrors","componentsWithIssues","issues","hasTagBlockerIssues","componentsWithWarnings","red","code","green","switchToLane","laneName","options","switchLanes","forceOurs","head","workspaceOnly","catch","verifyWorkspaceStatus","components","list","build","throwErrorsIfExist","snapPrCommit","originalLane","getCurrentLane","laneId","parseLaneId","import","ids","installNpmPackages","writeConfigFiles","availableLanesInScope","getLanes","remote","scope","newLaneExists","find","lane","name","importLaneObject","consumer","setCurrentLane","laneIds","toComponentIds","compId","bitMap","updateComponentId","write","importCurrentObjects","createdLane","createLane","forkLaneNewScope","currentLane","results","snap","exitOnFirstFailedTask","unmodified","snappedComponents","autoSnappedResults","warnings","newComponents","removedComponents","changedComponents","component","searchWithoutVersion","addedComponents","autoTaggedCount","warningsOutput","join","compInBold","version","hasVersion","bold","toStringWithoutVersion","outputComponents","comps","map","componentOutput","autoTag","triggeredBy","autoTagComp","a","AUTO_SNAPPED_MSG","outputIfExists","label","explanation","underline","laneStr","export","outputIdsIfExists","mergePr","argMessage","commitMessage","skipNpmInstall","skipDependencyInstallation","main","mergeStrategy","hasSoftTaggedComponents","softTaggedComponents","tag","failFast","persist","addConfig","add","archiveLane","removeLanes","exports","MainRuntime","CLIAspect","WorkspaceAspect","LoggerAspect","BuilderAspect","StatusAspect","LanesAspect","SnappingAspect","ExportAspect","ImporterAspect","CheckoutAspect","addRuntime"],"sources":["ci.main.runtime.ts"],"sourcesContent":["import type { RuntimeDefinition } from '@teambit/harmony';\nimport { CLIAspect, type CLIMain, MainRuntime } from '@teambit/cli';\nimport { LoggerAspect, type LoggerMain, type Logger } from '@teambit/logger';\nimport { WorkspaceAspect, type Workspace } from '@teambit/workspace';\nimport { BuilderAspect, type BuilderMain } from '@teambit/builder';\nimport { StatusAspect, type StatusMain } from '@teambit/status';\nimport { LanesAspect, type LanesMain } from '@teambit/lanes';\nimport { SnappingAspect, SnapResults, type SnappingMain } from '@teambit/snapping';\nimport { ExportAspect, type ExportMain } from '@teambit/export';\nimport { ImporterAspect, type ImporterMain } from '@teambit/importer';\nimport { CheckoutAspect, type CheckoutMain } from '@teambit/checkout';\nimport { ComponentID } from '@teambit/component-id';\nimport { ConsumerComponent } from '@teambit/legacy.consumer-component';\nimport { AUTO_SNAPPED_MSG } from '@teambit/legacy.constants';\nimport { outputIdsIfExists } from '@teambit/snapping';\nimport { SwitchLaneOptions } from '@teambit/lanes';\nimport chalk from 'chalk';\nimport { CiAspect } from './ci.aspect';\nimport { CiCmd } from './ci.cmd';\nimport { CiVerifyCmd } from './commands/verify.cmd';\nimport { CiPrCmd } from './commands/pr.cmd';\nimport { CiMergeCmd } from './commands/merge.cmd';\nimport { git } from './git';\n\nexport class CiMain {\n static runtime = MainRuntime as RuntimeDefinition;\n\n static dependencies: any = [\n CLIAspect,\n WorkspaceAspect,\n LoggerAspect,\n BuilderAspect,\n StatusAspect,\n LanesAspect,\n SnappingAspect,\n ExportAspect,\n ImporterAspect,\n CheckoutAspect,\n ];\n\n static slots: any = [];\n\n constructor(\n private workspace: Workspace,\n\n private builder: BuilderMain,\n\n private status: StatusMain,\n\n private lanes: LanesMain,\n\n private snapping: SnappingMain,\n\n private exporter: ExportMain,\n\n private importer: ImporterMain,\n\n private checkout: CheckoutMain,\n\n private logger: Logger\n ) {}\n\n static async provider([\n cli,\n workspace,\n loggerAspect,\n builder,\n status,\n lanes,\n snapping,\n exporter,\n importer,\n checkout,\n ]: [\n CLIMain,\n Workspace,\n LoggerMain,\n BuilderMain,\n StatusMain,\n LanesMain,\n SnappingMain,\n ExportMain,\n ImporterMain,\n CheckoutMain,\n ]) {\n const logger = loggerAspect.createLogger(CiAspect.id);\n\n const ci = new CiMain(workspace, builder, status, lanes, snapping, exporter, importer, checkout, logger);\n\n const ciCmd = new CiCmd(workspace, logger);\n\n ciCmd.commands = [\n new CiVerifyCmd(workspace, logger, ci),\n new CiPrCmd(workspace, logger, ci),\n new CiMergeCmd(workspace, logger, ci),\n ];\n\n cli.register(ciCmd);\n return ci;\n }\n\n async getBranchName() {\n try {\n // if we are running on github, use the GITHUB_HEAD_REF env var\n if (process.env.GITHUB_HEAD_REF) return process.env.GITHUB_HEAD_REF;\n\n const branch = await git.branch();\n return branch.current;\n } catch (e: any) {\n throw new Error(`Unable to read branch: ${e.toString()}`);\n }\n }\n\n async getDefaultBranchName() {\n try {\n // Try to get the default branch from git symbolic-ref\n const result = await git.raw(['symbolic-ref', 'refs/remotes/origin/HEAD']);\n const defaultBranch = result.trim().split('/').pop();\n return defaultBranch || 'master';\n } catch (e: any) {\n // Fallback to common default branch names\n try {\n const branches = await git.branch(['-r']);\n if (branches.all.includes('origin/main')) return 'main';\n if (branches.all.includes('origin/master')) return 'master';\n return 'master'; // Final fallback\n } catch {\n this.logger.console(chalk.yellow(`Unable to detect default branch, using 'master': ${e.toString()}`));\n return 'master';\n }\n }\n }\n\n async getGitCommitMessage() {\n try {\n const commit = await git.log({\n maxCount: 1,\n });\n if (!commit.latest) {\n return null;\n }\n const { message, body } = commit.latest;\n return body ? `${message}\\n\\n${body}` : message;\n } catch (e: any) {\n throw new Error(`Unable to read commit message: ${e.toString()}`);\n }\n }\n\n private async verifyWorkspaceStatusInternal(strict: boolean = false) {\n this.logger.console('📊 Workspace Status');\n this.logger.console(chalk.blue('Verifying status of workspace'));\n const status = await this.status.status({\n lanes: true,\n ignoreCircularDependencies: false,\n });\n\n // Check for blocking issues (errors) vs warnings\n const componentsWithErrors = status.componentsWithIssues.filter(({ issues }) => issues.hasTagBlockerIssues());\n\n const componentsWithWarnings = status.componentsWithIssues.filter(({ issues }) => !issues.hasTagBlockerIssues());\n\n if (componentsWithWarnings.length > 0) {\n if (strict) {\n this.logger.console(\n chalk.red(\n `Found ${componentsWithWarnings.length} components with warnings (strict mode), run 'bit status' to see the warnings.`\n )\n );\n return { code: 1, data: '', status };\n } else {\n this.logger.console(\n chalk.yellow(\n `Found ${componentsWithWarnings.length} components with warnings, run 'bit status' to see the warnings.`\n )\n );\n }\n }\n\n if (componentsWithErrors.length > 0) {\n this.logger.console(\n chalk.red(`Found ${componentsWithErrors.length} components with errors, run 'bit status' to see the errors.`)\n );\n return { code: 1, data: '', status };\n }\n\n this.logger.console(chalk.green('Workspace status is correct'));\n return { code: 0, data: '', status };\n }\n\n private async switchToLane(laneName: string, options: SwitchLaneOptions = {}) {\n this.logger.console(chalk.blue(`Switching to ${laneName}`));\n await this.lanes\n .switchLanes(laneName, {\n forceOurs: true,\n head: true,\n workspaceOnly: true,\n ...options,\n })\n .catch((e) => {\n if (e.toString().includes('already checked out')) {\n this.logger.console(chalk.yellow(`Lane ${laneName} already checked out, skipping checkout`));\n return true;\n }\n this.logger.console(chalk.red(`Failed to checkout lane ${laneName}: ${e.toString()}`));\n return null;\n });\n }\n\n async verifyWorkspaceStatus() {\n const { code, data } = await this.verifyWorkspaceStatusInternal();\n if (code !== 0) return { code, data };\n\n this.logger.console('🔨 Build Process');\n const components = await this.workspace.list();\n\n this.logger.console(chalk.blue(`Building ${components.length} components`));\n\n const build = await this.builder.build(components);\n\n build.throwErrorsIfExist();\n\n this.logger.console(chalk.green('Components built'));\n\n return { code: 0, data: '' };\n }\n\n async snapPrCommit({\n branch,\n message,\n build,\n strict,\n }: {\n branch: string;\n message: string;\n build: boolean | undefined;\n strict: boolean | undefined;\n }) {\n this.logger.console(chalk.blue(`Branch name: ${branch}`));\n\n const originalLane = await this.lanes.getCurrentLane();\n\n const laneId = await this.lanes.parseLaneId(branch);\n\n if (!laneId) {\n this.logger.console(chalk.yellow(`No lane found for branch ${branch}`));\n return { code: 1, data: '' };\n }\n\n const { code, data } = await this.verifyWorkspaceStatusInternal(strict);\n if (code !== 0) return { code, data };\n\n await this.importer\n .import({\n ids: [],\n installNpmPackages: false,\n writeConfigFiles: false,\n })\n .catch((e) => {\n throw new Error(`Failed to import components: ${e.toString()}`);\n });\n\n try {\n this.logger.console('🔄 Lane Management');\n const availableLanesInScope = await this.lanes\n .getLanes({\n remote: laneId.scope,\n })\n .catch((e) => {\n throw new Error(`Failed to get lanes in scope ${laneId.scope}: ${e.toString()}`);\n });\n\n const newLaneExists = availableLanesInScope.find((lane) => lane.id.name === laneId.name);\n\n if (newLaneExists) {\n const lane = await this.lanes.importLaneObject(laneId, true);\n this.workspace.consumer.setCurrentLane(laneId, true);\n const laneIds = lane.toComponentIds();\n laneIds.forEach((compId) => this.workspace.consumer.bitMap.updateComponentId(compId));\n await this.workspace.bitMap.write();\n await this.importer.importCurrentObjects();\n\n this.logger.console(chalk.green(`Imported lane ${laneId.toString()}`));\n } else {\n this.logger.console(chalk.blue(`Creating lane ${laneId.toString()}`));\n\n const createdLane = await this.lanes\n .createLane(laneId.name, {\n scope: laneId.scope,\n forkLaneNewScope: true,\n })\n .catch((e) => {\n if (e.toString().includes('already exists')) {\n this.logger.console(chalk.yellow(`Lane ${laneId.toString()} already exists, skipping creation`));\n return true;\n }\n this.logger.console(chalk.red(`Failed to create lane ${laneId.toString()}: ${e.toString()}`));\n return null;\n });\n\n if (!createdLane) {\n return { code: 1, data: '' };\n }\n }\n\n const currentLane = await this.lanes.getCurrentLane();\n\n this.logger.console(chalk.blue(`Current lane: ${currentLane?.name ?? 'main'}`));\n\n if (currentLane?.name === laneId.name) {\n this.logger.console(chalk.yellow(`Current lane is already ${laneId.name}, skipping switch`));\n } else {\n await this.switchToLane(laneId.toString());\n }\n\n this.logger.console('📦 Snapping Components');\n const results = await this.snapping.snap({\n message,\n build,\n exitOnFirstFailedTask: true,\n unmodified: false,\n });\n\n if (!results) {\n this.logger.console(chalk.yellow('No changes detected, nothing to snap'));\n this.logger.console(chalk.green('Lane is up to date'));\n return { code: 0, data: 'No changes detected, nothing to snap' };\n }\n\n const {\n snappedComponents,\n autoSnappedResults,\n warnings,\n newComponents,\n laneName,\n removedComponents,\n }: SnapResults = results;\n const changedComponents = snappedComponents.filter((component) => {\n return (\n !newComponents.searchWithoutVersion(component.id) && !removedComponents?.searchWithoutVersion(component.id)\n );\n });\n const addedComponents = snappedComponents.filter((component) => newComponents.searchWithoutVersion(component.id));\n const autoTaggedCount = autoSnappedResults ? autoSnappedResults.length : 0;\n\n const warningsOutput = warnings?.length ? `${chalk.yellow(warnings.join('\\n'))}\\n\\n` : '';\n\n const compInBold = (id: ComponentID) => {\n const version = id.hasVersion() ? `@${id.version}` : '';\n return `${chalk.bold(id.toStringWithoutVersion())}${version}`;\n };\n\n const outputComponents = (comps: ConsumerComponent[]) => {\n return comps\n .map((component) => {\n let componentOutput = ` > ${compInBold(component.id)}`;\n const autoTag = autoSnappedResults.filter((result) =>\n result.triggeredBy.searchWithoutVersion(component.id)\n );\n if (autoTag.length) {\n const autoTagComp = autoTag.map((a) =>\n // @ts-ignore\n compInBold(a.component.id)\n );\n componentOutput += `\\n ${AUTO_SNAPPED_MSG} (${autoTagComp.length} total):\n ${autoTagComp.join('\\n ')}`;\n }\n return componentOutput;\n })\n .join('\\n');\n };\n\n const outputIfExists = (label, explanation, components) => {\n if (!components.length) return '';\n return `\\n${chalk.underline(label)}\\n(${explanation})\\n${outputComponents(components)}\\n`;\n };\n\n const laneStr = laneName ? ` on \"${laneName}\" lane` : '';\n\n this.logger.console(chalk.blue(`Exporting ${snappedComponents.length} components`));\n\n await this.exporter.export();\n\n this.logger.console(chalk.green(`Exported ${snappedComponents.length} components`));\n\n // Switch back to main\n await this.switchToLane('main');\n\n return (\n outputIfExists('new components', 'first version for components', addedComponents) +\n outputIfExists('changed components', 'components that got a version bump', changedComponents) +\n outputIdsIfExists('removed components', removedComponents) +\n warningsOutput +\n chalk.green(`\\n${snappedComponents.length + autoTaggedCount} component(s) snapped${laneStr}`)\n );\n } catch (e: any) {\n throw new Error(`Unhandled error: ${e.toString()}`);\n } finally {\n // Whatever happens, switch back to the original lane\n this.logger.console('🔄 Cleanup');\n this.logger.console(chalk.blue(`Switching back to ${originalLane?.name ?? 'main'}`));\n const lane = await this.lanes.getCurrentLane();\n if (!lane) {\n await this.lanes.checkout.checkout({\n head: true,\n });\n } else {\n await this.switchToLane(originalLane?.name ?? 'main');\n }\n }\n }\n\n async mergePr({ message: argMessage, build, strict }: { message?: string; build?: boolean; strict?: boolean }) {\n let message: string;\n\n if (argMessage) {\n message = argMessage;\n } else {\n const commitMessage = await this.getGitCommitMessage();\n if (!commitMessage) {\n return { code: 1, data: 'Failed to get commit message' };\n }\n message = commitMessage;\n }\n\n const currentLane = await this.lanes.getCurrentLane();\n\n await this.lanes.checkout.checkout({\n forceOurs: true,\n head: true,\n skipNpmInstall: true,\n });\n\n if (currentLane) {\n this.logger.console(chalk.blue(`Currently on lane ${currentLane.name}, switching to main`));\n await this.switchToLane('main', { skipDependencyInstallation: true });\n this.logger.console(chalk.green('Switched to main'));\n }\n\n await this.checkout.checkout({\n forceOurs: true,\n head: true,\n main: true,\n mergeStrategy: 'ours',\n workspaceOnly: true,\n skipNpmInstall: true,\n });\n\n const { code, data, status } = await this.verifyWorkspaceStatusInternal(strict);\n if (code !== 0) return { code, data };\n\n const hasSoftTaggedComponents = status.softTaggedComponents.length > 0;\n\n this.logger.console('📦 Component Operations');\n this.logger.console(chalk.blue('Tagging components'));\n await this.snapping.tag({\n all: true,\n message,\n build,\n failFast: true,\n persist: hasSoftTaggedComponents,\n });\n this.logger.console(chalk.green('Tagged components'));\n\n this.logger.console(chalk.blue('Exporting components'));\n await this.exporter.export();\n this.logger.console(chalk.green('Exported components'));\n\n this.logger.console('🔄 Git Operations');\n // Set user.email and user.name\n await git.addConfig('user.email', 'bit-ci[bot]@bit.cloud');\n await git.addConfig('user.name', 'Bit CI');\n\n // Commit the .bitmap and pnpm-lock.yaml files using Git\n await git.add(['.bitmap', 'pnpm-lock.yaml']);\n await git.commit('chore: update .bitmap and pnpm-lock.yaml');\n\n // Push the commit to the remote repository\n const defaultBranch = await this.getDefaultBranchName();\n await git.push('origin', defaultBranch);\n\n this.logger.console(chalk.green('Merged PR'));\n\n if (currentLane) {\n this.logger.console('🗑️ Lane Cleanup');\n const laneId = currentLane.id;\n this.logger.console(chalk.blue(`Archiving lane ${laneId.toString()}`));\n const archiveLane = await this.lanes.removeLanes([laneId()]);\n if (archiveLane) {\n this.logger.console(chalk.green('Lane archived'));\n } else {\n this.logger.console(chalk.yellow('Failed to archive lane'));\n }\n }\n\n return { code: 0, data: '' };\n }\n}\n\n// @ts-ignore\nCiAspect.addRuntime(CiMain);\n"],"mappings":";;;;;;AACA,SAAAA,KAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,IAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,QAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,OAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,WAAA;EAAA,MAAAH,IAAA,GAAAC,OAAA;EAAAE,UAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAI,SAAA;EAAA,MAAAJ,IAAA,GAAAC,OAAA;EAAAG,QAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAK,QAAA;EAAA,MAAAL,IAAA,GAAAC,OAAA;EAAAI,OAAA,YAAAA,CAAA;IAAA,OAAAL,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAM,OAAA;EAAA,MAAAN,IAAA,GAAAC,OAAA;EAAAK,MAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,UAAA;EAAA,MAAAP,IAAA,GAAAC,OAAA;EAAAM,SAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,QAAA;EAAA,MAAAR,IAAA,GAAAC,OAAA;EAAAO,OAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAS,UAAA;EAAA,MAAAT,IAAA,GAAAC,OAAA;EAAAQ,SAAA,YAAAA,CAAA;IAAA,OAAAT,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAU,UAAA;EAAA,MAAAV,IAAA,GAAAC,OAAA;EAAAS,SAAA,YAAAA,CAAA;IAAA,OAAAV,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAW,QAAA;EAAA,MAAAX,IAAA,GAAAC,OAAA;EAAAU,OAAA,YAAAA,CAAA;IAAA,OAAAX,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAGA,SAAAY,OAAA;EAAA,MAAAZ,IAAA,GAAAa,sBAAA,CAAAZ,OAAA;EAAAW,MAAA,YAAAA,CAAA;IAAA,OAAAZ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAc,IAAA;EAAA,MAAAd,IAAA,GAAAC,OAAA;EAAAa,GAAA,YAAAA,CAAA;IAAA,OAAAd,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAe,KAAA;EAAA,MAAAf,IAAA,GAAAC,OAAA;EAAAc,IAAA,YAAAA,CAAA;IAAA,OAAAf,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAgB,QAAA;EAAA,MAAAhB,IAAA,GAAAC,OAAA;EAAAe,OAAA,YAAAA,CAAA;IAAA,OAAAhB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAiB,IAAA;EAAA,MAAAjB,IAAA,GAAAC,OAAA;EAAAgB,GAAA,YAAAA,CAAA;IAAA,OAAAjB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAkB,OAAA;EAAA,MAAAlB,IAAA,GAAAC,OAAA;EAAAiB,MAAA,YAAAA,CAAA;IAAA,OAAAlB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAmB,KAAA;EAAA,MAAAnB,IAAA,GAAAC,OAAA;EAAAkB,IAAA,YAAAA,CAAA;IAAA,OAAAnB,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA4B,SAAAa,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,QAAAH,CAAA,EAAAI,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAP,CAAA,OAAAM,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAR,CAAA,GAAAI,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAX,CAAA,EAAAI,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAf,CAAA,aAAAI,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAD,OAAA,CAAAG,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAArB,CAAA,EAAAM,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAF,OAAA,CAAAG,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAJ,CAAA;AAAA,SAAAmB,gBAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAJ,CAAA,GAAAM,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAA1B,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAuB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA9B,CAAA,QAAA2B,CAAA,GAAA3B,CAAA,CAAA+B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA;AAErB,MAAM8B,MAAM,CAAC;EAkBlBC,WAAWA,CACDC,SAAoB,EAEpBC,OAAoB,EAEpBC,MAAkB,EAElBC,KAAgB,EAEhBC,QAAsB,EAEtBC,QAAoB,EAEpBC,QAAsB,EAEtBC,QAAsB,EAEtBC,MAAc,EACtB;IAAA,KAjBQR,SAAoB,GAApBA,SAAoB;IAAA,KAEpBC,OAAoB,GAApBA,OAAoB;IAAA,KAEpBC,MAAkB,GAAlBA,MAAkB;IAAA,KAElBC,KAAgB,GAAhBA,KAAgB;IAAA,KAEhBC,QAAsB,GAAtBA,QAAsB;IAAA,KAEtBC,QAAoB,GAApBA,QAAoB;IAAA,KAEpBC,QAAsB,GAAtBA,QAAsB;IAAA,KAEtBC,QAAsB,GAAtBA,QAAsB;IAAA,KAEtBC,MAAc,GAAdA,MAAc;EACrB;EAEH,aAAaC,QAAQA,CAAC,CACpBC,GAAG,EACHV,SAAS,EACTW,YAAY,EACZV,OAAO,EACPC,MAAM,EACNC,KAAK,EACLC,QAAQ,EACRC,QAAQ,EACRC,QAAQ,EACRC,QAAQ,CAYT,EAAE;IACD,MAAMC,MAAM,GAAGG,YAAY,CAACC,YAAY,CAACC,cAAQ,CAACC,EAAE,CAAC;IAErD,MAAMC,EAAE,GAAG,IAAIjB,MAAM,CAACE,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,CAAC;IAExG,MAAMQ,KAAK,GAAG,KAAIC,YAAK,EAACjB,SAAS,EAAEQ,MAAM,CAAC;IAE1CQ,KAAK,CAACE,QAAQ,GAAG,CACf,KAAIC,qBAAW,EAACnB,SAAS,EAAEQ,MAAM,EAAEO,EAAE,CAAC,EACtC,KAAIK,aAAO,EAACpB,SAAS,EAAEQ,MAAM,EAAEO,EAAE,CAAC,EAClC,KAAIM,mBAAU,EAACrB,SAAS,EAAEQ,MAAM,EAAEO,EAAE,CAAC,CACtC;IAEDL,GAAG,CAACY,QAAQ,CAACN,KAAK,CAAC;IACnB,OAAOD,EAAE;EACX;EAEA,MAAMQ,aAAaA,CAAA,EAAG;IACpB,IAAI;MACF;MACA,IAAIC,OAAO,CAACC,GAAG,CAACC,eAAe,EAAE,OAAOF,OAAO,CAACC,GAAG,CAACC,eAAe;MAEnE,MAAMC,MAAM,GAAG,MAAMC,UAAG,CAACD,MAAM,CAAC,CAAC;MACjC,OAAOA,MAAM,CAACE,OAAO;IACvB,CAAC,CAAC,OAAOlE,CAAM,EAAE;MACf,MAAM,IAAImE,KAAK,CAAC,0BAA0BnE,CAAC,CAACoE,QAAQ,CAAC,CAAC,EAAE,CAAC;IAC3D;EACF;EAEA,MAAMC,oBAAoBA,CAAA,EAAG;IAC3B,IAAI;MACF;MACA,MAAMC,MAAM,GAAG,MAAML,UAAG,CAACM,GAAG,CAAC,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;MAC1E,MAAMC,aAAa,GAAGF,MAAM,CAACG,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC;MACpD,OAAOH,aAAa,IAAI,QAAQ;IAClC,CAAC,CAAC,OAAOxE,CAAM,EAAE;MACf;MACA,IAAI;QACF,MAAM4E,QAAQ,GAAG,MAAMX,UAAG,CAACD,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QACzC,IAAIY,QAAQ,CAACC,GAAG,CAACC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,MAAM;QACvD,IAAIF,QAAQ,CAACC,GAAG,CAACC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,QAAQ;QAC3D,OAAO,QAAQ,CAAC,CAAC;MACnB,CAAC,CAAC,MAAM;QACN,IAAI,CAACjC,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACC,MAAM,CAAC,oDAAoDjF,CAAC,CAACoE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;QACrG,OAAO,QAAQ;MACjB;IACF;EACF;EAEA,MAAMc,mBAAmBA,CAAA,EAAG;IAC1B,IAAI;MACF,MAAMC,MAAM,GAAG,MAAMlB,UAAG,CAACmB,GAAG,CAAC;QAC3BC,QAAQ,EAAE;MACZ,CAAC,CAAC;MACF,IAAI,CAACF,MAAM,CAACG,MAAM,EAAE;QAClB,OAAO,IAAI;MACb;MACA,MAAM;QAAEC,OAAO;QAAEC;MAAK,CAAC,GAAGL,MAAM,CAACG,MAAM;MACvC,OAAOE,IAAI,GAAG,GAAGD,OAAO,OAAOC,IAAI,EAAE,GAAGD,OAAO;IACjD,CAAC,CAAC,OAAOvF,CAAM,EAAE;MACf,MAAM,IAAImE,KAAK,CAAC,kCAAkCnE,CAAC,CAACoE,QAAQ,CAAC,CAAC,EAAE,CAAC;IACnE;EACF;EAEA,MAAcqB,6BAA6BA,CAACC,MAAe,GAAG,KAAK,EAAE;IACnE,IAAI,CAAC7C,MAAM,CAACkC,OAAO,CAAC,qBAAqB,CAAC;IAC1C,IAAI,CAAClC,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACW,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAChE,MAAMpD,MAAM,GAAG,MAAM,IAAI,CAACA,MAAM,CAACA,MAAM,CAAC;MACtCC,KAAK,EAAE,IAAI;MACXoD,0BAA0B,EAAE;IAC9B,CAAC,CAAC;;IAEF;IACA,MAAMC,oBAAoB,GAAGtD,MAAM,CAACuD,oBAAoB,CAACpF,MAAM,CAAC,CAAC;MAAEqF;IAAO,CAAC,KAAKA,MAAM,CAACC,mBAAmB,CAAC,CAAC,CAAC;IAE7G,MAAMC,sBAAsB,GAAG1D,MAAM,CAACuD,oBAAoB,CAACpF,MAAM,CAAC,CAAC;MAAEqF;IAAO,CAAC,KAAK,CAACA,MAAM,CAACC,mBAAmB,CAAC,CAAC,CAAC;IAEhH,IAAIC,sBAAsB,CAAChF,MAAM,GAAG,CAAC,EAAE;MACrC,IAAIyE,MAAM,EAAE;QACV,IAAI,CAAC7C,MAAM,CAACkC,OAAO,CACjBC,gBAAK,CAACkB,GAAG,CACP,SAASD,sBAAsB,CAAChF,MAAM,gFACxC,CACF,CAAC;QACD,OAAO;UAAEkF,IAAI,EAAE,CAAC;UAAEvH,IAAI,EAAE,EAAE;UAAE2D;QAAO,CAAC;MACtC,CAAC,MAAM;QACL,IAAI,CAACM,MAAM,CAACkC,OAAO,CACjBC,gBAAK,CAACC,MAAM,CACV,SAASgB,sBAAsB,CAAChF,MAAM,kEACxC,CACF,CAAC;MACH;IACF;IAEA,IAAI4E,oBAAoB,CAAC5E,MAAM,GAAG,CAAC,EAAE;MACnC,IAAI,CAAC4B,MAAM,CAACkC,OAAO,CACjBC,gBAAK,CAACkB,GAAG,CAAC,SAASL,oBAAoB,CAAC5E,MAAM,8DAA8D,CAC9G,CAAC;MACD,OAAO;QAAEkF,IAAI,EAAE,CAAC;QAAEvH,IAAI,EAAE,EAAE;QAAE2D;MAAO,CAAC;IACtC;IAEA,IAAI,CAACM,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACoB,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC/D,OAAO;MAAED,IAAI,EAAE,CAAC;MAAEvH,IAAI,EAAE,EAAE;MAAE2D;IAAO,CAAC;EACtC;EAEA,MAAc8D,YAAYA,CAACC,QAAgB,EAAEC,OAA0B,GAAG,CAAC,CAAC,EAAE;IAC5E,IAAI,CAAC1D,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACW,IAAI,CAAC,gBAAgBW,QAAQ,EAAE,CAAC,CAAC;IAC3D,MAAM,IAAI,CAAC9D,KAAK,CACbgE,WAAW,CAACF,QAAQ,EAAAvF,aAAA;MACnB0F,SAAS,EAAE,IAAI;MACfC,IAAI,EAAE,IAAI;MACVC,aAAa,EAAE;IAAI,GAChBJ,OAAO,CACX,CAAC,CACDK,KAAK,CAAE5G,CAAC,IAAK;MACZ,IAAIA,CAAC,CAACoE,QAAQ,CAAC,CAAC,CAACU,QAAQ,CAAC,qBAAqB,CAAC,EAAE;QAChD,IAAI,CAACjC,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACC,MAAM,CAAC,QAAQqB,QAAQ,yCAAyC,CAAC,CAAC;QAC5F,OAAO,IAAI;MACb;MACA,IAAI,CAACzD,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACkB,GAAG,CAAC,2BAA2BI,QAAQ,KAAKtG,CAAC,CAACoE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;MACtF,OAAO,IAAI;IACb,CAAC,CAAC;EACN;EAEA,MAAMyC,qBAAqBA,CAAA,EAAG;IAC5B,MAAM;MAAEV,IAAI;MAAEvH;IAAK,CAAC,GAAG,MAAM,IAAI,CAAC6G,6BAA6B,CAAC,CAAC;IACjE,IAAIU,IAAI,KAAK,CAAC,EAAE,OAAO;MAAEA,IAAI;MAAEvH;IAAK,CAAC;IAErC,IAAI,CAACiE,MAAM,CAACkC,OAAO,CAAC,kBAAkB,CAAC;IACvC,MAAM+B,UAAU,GAAG,MAAM,IAAI,CAACzE,SAAS,CAAC0E,IAAI,CAAC,CAAC;IAE9C,IAAI,CAAClE,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACW,IAAI,CAAC,YAAYmB,UAAU,CAAC7F,MAAM,aAAa,CAAC,CAAC;IAE3E,MAAM+F,KAAK,GAAG,MAAM,IAAI,CAAC1E,OAAO,CAAC0E,KAAK,CAACF,UAAU,CAAC;IAElDE,KAAK,CAACC,kBAAkB,CAAC,CAAC;IAE1B,IAAI,CAACpE,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACoB,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAEpD,OAAO;MAAED,IAAI,EAAE,CAAC;MAAEvH,IAAI,EAAE;IAAG,CAAC;EAC9B;EAEA,MAAMsI,YAAYA,CAAC;IACjBlD,MAAM;IACNuB,OAAO;IACPyB,KAAK;IACLtB;EAMF,CAAC,EAAE;IACD,IAAI,CAAC7C,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACW,IAAI,CAAC,gBAAgB3B,MAAM,EAAE,CAAC,CAAC;IAEzD,MAAMmD,YAAY,GAAG,MAAM,IAAI,CAAC3E,KAAK,CAAC4E,cAAc,CAAC,CAAC;IAEtD,MAAMC,MAAM,GAAG,MAAM,IAAI,CAAC7E,KAAK,CAAC8E,WAAW,CAACtD,MAAM,CAAC;IAEnD,IAAI,CAACqD,MAAM,EAAE;MACX,IAAI,CAACxE,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACC,MAAM,CAAC,4BAA4BjB,MAAM,EAAE,CAAC,CAAC;MACvE,OAAO;QAAEmC,IAAI,EAAE,CAAC;QAAEvH,IAAI,EAAE;MAAG,CAAC;IAC9B;IAEA,MAAM;MAAEuH,IAAI;MAAEvH;IAAK,CAAC,GAAG,MAAM,IAAI,CAAC6G,6BAA6B,CAACC,MAAM,CAAC;IACvE,IAAIS,IAAI,KAAK,CAAC,EAAE,OAAO;MAAEA,IAAI;MAAEvH;IAAK,CAAC;IAErC,MAAM,IAAI,CAAC+D,QAAQ,CAChB4E,MAAM,CAAC;MACNC,GAAG,EAAE,EAAE;MACPC,kBAAkB,EAAE,KAAK;MACzBC,gBAAgB,EAAE;IACpB,CAAC,CAAC,CACDd,KAAK,CAAE5G,CAAC,IAAK;MACZ,MAAM,IAAImE,KAAK,CAAC,gCAAgCnE,CAAC,CAACoE,QAAQ,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC,CAAC;IAEJ,IAAI;MACF,IAAI,CAACvB,MAAM,CAACkC,OAAO,CAAC,oBAAoB,CAAC;MACzC,MAAM4C,qBAAqB,GAAG,MAAM,IAAI,CAACnF,KAAK,CAC3CoF,QAAQ,CAAC;QACRC,MAAM,EAAER,MAAM,CAACS;MACjB,CAAC,CAAC,CACDlB,KAAK,CAAE5G,CAAC,IAAK;QACZ,MAAM,IAAImE,KAAK,CAAC,gCAAgCkD,MAAM,CAACS,KAAK,KAAK9H,CAAC,CAACoE,QAAQ,CAAC,CAAC,EAAE,CAAC;MAClF,CAAC,CAAC;MAEJ,MAAM2D,aAAa,GAAGJ,qBAAqB,CAACK,IAAI,CAAEC,IAAI,IAAKA,IAAI,CAAC9E,EAAE,CAAC+E,IAAI,KAAKb,MAAM,CAACa,IAAI,CAAC;MAExF,IAAIH,aAAa,EAAE;QACjB,MAAME,IAAI,GAAG,MAAM,IAAI,CAACzF,KAAK,CAAC2F,gBAAgB,CAACd,MAAM,EAAE,IAAI,CAAC;QAC5D,IAAI,CAAChF,SAAS,CAAC+F,QAAQ,CAACC,cAAc,CAAChB,MAAM,EAAE,IAAI,CAAC;QACpD,MAAMiB,OAAO,GAAGL,IAAI,CAACM,cAAc,CAAC,CAAC;QACrCD,OAAO,CAACpH,OAAO,CAAEsH,MAAM,IAAK,IAAI,CAACnG,SAAS,CAAC+F,QAAQ,CAACK,MAAM,CAACC,iBAAiB,CAACF,MAAM,CAAC,CAAC;QACrF,MAAM,IAAI,CAACnG,SAAS,CAACoG,MAAM,CAACE,KAAK,CAAC,CAAC;QACnC,MAAM,IAAI,CAAChG,QAAQ,CAACiG,oBAAoB,CAAC,CAAC;QAE1C,IAAI,CAAC/F,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACoB,KAAK,CAAC,iBAAiBiB,MAAM,CAACjD,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;MACxE,CAAC,MAAM;QACL,IAAI,CAACvB,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACW,IAAI,CAAC,iBAAiB0B,MAAM,CAACjD,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;QAErE,MAAMyE,WAAW,GAAG,MAAM,IAAI,CAACrG,KAAK,CACjCsG,UAAU,CAACzB,MAAM,CAACa,IAAI,EAAE;UACvBJ,KAAK,EAAET,MAAM,CAACS,KAAK;UACnBiB,gBAAgB,EAAE;QACpB,CAAC,CAAC,CACDnC,KAAK,CAAE5G,CAAC,IAAK;UACZ,IAAIA,CAAC,CAACoE,QAAQ,CAAC,CAAC,CAACU,QAAQ,CAAC,gBAAgB,CAAC,EAAE;YAC3C,IAAI,CAACjC,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACC,MAAM,CAAC,QAAQoC,MAAM,CAACjD,QAAQ,CAAC,CAAC,oCAAoC,CAAC,CAAC;YAChG,OAAO,IAAI;UACb;UACA,IAAI,CAACvB,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACkB,GAAG,CAAC,yBAAyBmB,MAAM,CAACjD,QAAQ,CAAC,CAAC,KAAKpE,CAAC,CAACoE,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;UAC7F,OAAO,IAAI;QACb,CAAC,CAAC;QAEJ,IAAI,CAACyE,WAAW,EAAE;UAChB,OAAO;YAAE1C,IAAI,EAAE,CAAC;YAAEvH,IAAI,EAAE;UAAG,CAAC;QAC9B;MACF;MAEA,MAAMoK,WAAW,GAAG,MAAM,IAAI,CAACxG,KAAK,CAAC4E,cAAc,CAAC,CAAC;MAErD,IAAI,CAACvE,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACW,IAAI,CAAC,iBAAiBqD,WAAW,EAAEd,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC;MAE/E,IAAIc,WAAW,EAAEd,IAAI,KAAKb,MAAM,CAACa,IAAI,EAAE;QACrC,IAAI,CAACrF,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACC,MAAM,CAAC,2BAA2BoC,MAAM,CAACa,IAAI,mBAAmB,CAAC,CAAC;MAC9F,CAAC,MAAM;QACL,MAAM,IAAI,CAAC7B,YAAY,CAACgB,MAAM,CAACjD,QAAQ,CAAC,CAAC,CAAC;MAC5C;MAEA,IAAI,CAACvB,MAAM,CAACkC,OAAO,CAAC,wBAAwB,CAAC;MAC7C,MAAMkE,OAAO,GAAG,MAAM,IAAI,CAACxG,QAAQ,CAACyG,IAAI,CAAC;QACvC3D,OAAO;QACPyB,KAAK;QACLmC,qBAAqB,EAAE,IAAI;QAC3BC,UAAU,EAAE;MACd,CAAC,CAAC;MAEF,IAAI,CAACH,OAAO,EAAE;QACZ,IAAI,CAACpG,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACC,MAAM,CAAC,sCAAsC,CAAC,CAAC;QACzE,IAAI,CAACpC,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACoB,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACtD,OAAO;UAAED,IAAI,EAAE,CAAC;UAAEvH,IAAI,EAAE;QAAuC,CAAC;MAClE;MAEA,MAAM;QACJyK,iBAAiB;QACjBC,kBAAkB;QAClBC,QAAQ;QACRC,aAAa;QACblD,QAAQ;QACRmD;MACW,CAAC,GAAGR,OAAO;MACxB,MAAMS,iBAAiB,GAAGL,iBAAiB,CAAC3I,MAAM,CAAEiJ,SAAS,IAAK;QAChE,OACE,CAACH,aAAa,CAACI,oBAAoB,CAACD,SAAS,CAACxG,EAAE,CAAC,IAAI,CAACsG,iBAAiB,EAAEG,oBAAoB,CAACD,SAAS,CAACxG,EAAE,CAAC;MAE/G,CAAC,CAAC;MACF,MAAM0G,eAAe,GAAGR,iBAAiB,CAAC3I,MAAM,CAAEiJ,SAAS,IAAKH,aAAa,CAACI,oBAAoB,CAACD,SAAS,CAACxG,EAAE,CAAC,CAAC;MACjH,MAAM2G,eAAe,GAAGR,kBAAkB,GAAGA,kBAAkB,CAACrI,MAAM,GAAG,CAAC;MAE1E,MAAM8I,cAAc,GAAGR,QAAQ,EAAEtI,MAAM,GAAG,GAAG+D,gBAAK,CAACC,MAAM,CAACsE,QAAQ,CAACS,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE;MAEzF,MAAMC,UAAU,GAAI9G,EAAe,IAAK;QACtC,MAAM+G,OAAO,GAAG/G,EAAE,CAACgH,UAAU,CAAC,CAAC,GAAG,IAAIhH,EAAE,CAAC+G,OAAO,EAAE,GAAG,EAAE;QACvD,OAAO,GAAGlF,gBAAK,CAACoF,IAAI,CAACjH,EAAE,CAACkH,sBAAsB,CAAC,CAAC,CAAC,GAAGH,OAAO,EAAE;MAC/D,CAAC;MAED,MAAMI,gBAAgB,GAAIC,KAA0B,IAAK;QACvD,OAAOA,KAAK,CACTC,GAAG,CAAEb,SAAS,IAAK;UAClB,IAAIc,eAAe,GAAG,UAAUR,UAAU,CAACN,SAAS,CAACxG,EAAE,CAAC,EAAE;UAC1D,MAAMuH,OAAO,GAAGpB,kBAAkB,CAAC5I,MAAM,CAAE4D,MAAM,IAC/CA,MAAM,CAACqG,WAAW,CAACf,oBAAoB,CAACD,SAAS,CAACxG,EAAE,CACtD,CAAC;UACD,IAAIuH,OAAO,CAACzJ,MAAM,EAAE;YAClB,MAAM2J,WAAW,GAAGF,OAAO,CAACF,GAAG,CAAEK,CAAC;YAChC;YACAZ,UAAU,CAACY,CAAC,CAAClB,SAAS,CAACxG,EAAE,CAC3B,CAAC;YACDsH,eAAe,IAAI,YAAYK,0BAAgB,KAAKF,WAAW,CAAC3J,MAAM;AACpF,cAAc2J,WAAW,CAACZ,IAAI,CAAC,gBAAgB,CAAC,EAAE;UACtC;UACA,OAAOS,eAAe;QACxB,CAAC,CAAC,CACDT,IAAI,CAAC,IAAI,CAAC;MACf,CAAC;MAED,MAAMe,cAAc,GAAGA,CAACC,KAAK,EAAEC,WAAW,EAAEnE,UAAU,KAAK;QACzD,IAAI,CAACA,UAAU,CAAC7F,MAAM,EAAE,OAAO,EAAE;QACjC,OAAO,KAAK+D,gBAAK,CAACkG,SAAS,CAACF,KAAK,CAAC,MAAMC,WAAW,MAAMX,gBAAgB,CAACxD,UAAU,CAAC,IAAI;MAC3F,CAAC;MAED,MAAMqE,OAAO,GAAG7E,QAAQ,GAAG,QAAQA,QAAQ,QAAQ,GAAG,EAAE;MAExD,IAAI,CAACzD,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACW,IAAI,CAAC,aAAa0D,iBAAiB,CAACpI,MAAM,aAAa,CAAC,CAAC;MAEnF,MAAM,IAAI,CAACyB,QAAQ,CAAC0I,MAAM,CAAC,CAAC;MAE5B,IAAI,CAACvI,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACoB,KAAK,CAAC,YAAYiD,iBAAiB,CAACpI,MAAM,aAAa,CAAC,CAAC;;MAEnF;MACA,MAAM,IAAI,CAACoF,YAAY,CAAC,MAAM,CAAC;MAE/B,OACE0E,cAAc,CAAC,gBAAgB,EAAE,8BAA8B,EAAElB,eAAe,CAAC,GACjFkB,cAAc,CAAC,oBAAoB,EAAE,oCAAoC,EAAErB,iBAAiB,CAAC,GAC7F,IAAA2B,6BAAiB,EAAC,oBAAoB,EAAE5B,iBAAiB,CAAC,GAC1DM,cAAc,GACd/E,gBAAK,CAACoB,KAAK,CAAC,KAAKiD,iBAAiB,CAACpI,MAAM,GAAG6I,eAAe,wBAAwBqB,OAAO,EAAE,CAAC;IAEjG,CAAC,CAAC,OAAOnL,CAAM,EAAE;MACf,MAAM,IAAImE,KAAK,CAAC,oBAAoBnE,CAAC,CAACoE,QAAQ,CAAC,CAAC,EAAE,CAAC;IACrD,CAAC,SAAS;MACR;MACA,IAAI,CAACvB,MAAM,CAACkC,OAAO,CAAC,YAAY,CAAC;MACjC,IAAI,CAAClC,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACW,IAAI,CAAC,qBAAqBwB,YAAY,EAAEe,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC;MACpF,MAAMD,IAAI,GAAG,MAAM,IAAI,CAACzF,KAAK,CAAC4E,cAAc,CAAC,CAAC;MAC9C,IAAI,CAACa,IAAI,EAAE;QACT,MAAM,IAAI,CAACzF,KAAK,CAACI,QAAQ,CAACA,QAAQ,CAAC;UACjC8D,IAAI,EAAE;QACR,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,MAAM,IAAI,CAACL,YAAY,CAACc,YAAY,EAAEe,IAAI,IAAI,MAAM,CAAC;MACvD;IACF;EACF;EAEA,MAAMoD,OAAOA,CAAC;IAAE/F,OAAO,EAAEgG,UAAU;IAAEvE,KAAK;IAAEtB;EAAgE,CAAC,EAAE;IAC7G,IAAIH,OAAe;IAEnB,IAAIgG,UAAU,EAAE;MACdhG,OAAO,GAAGgG,UAAU;IACtB,CAAC,MAAM;MACL,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACtG,mBAAmB,CAAC,CAAC;MACtD,IAAI,CAACsG,aAAa,EAAE;QAClB,OAAO;UAAErF,IAAI,EAAE,CAAC;UAAEvH,IAAI,EAAE;QAA+B,CAAC;MAC1D;MACA2G,OAAO,GAAGiG,aAAa;IACzB;IAEA,MAAMxC,WAAW,GAAG,MAAM,IAAI,CAACxG,KAAK,CAAC4E,cAAc,CAAC,CAAC;IAErD,MAAM,IAAI,CAAC5E,KAAK,CAACI,QAAQ,CAACA,QAAQ,CAAC;MACjC6D,SAAS,EAAE,IAAI;MACfC,IAAI,EAAE,IAAI;MACV+E,cAAc,EAAE;IAClB,CAAC,CAAC;IAEF,IAAIzC,WAAW,EAAE;MACf,IAAI,CAACnG,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACW,IAAI,CAAC,qBAAqBqD,WAAW,CAACd,IAAI,qBAAqB,CAAC,CAAC;MAC3F,MAAM,IAAI,CAAC7B,YAAY,CAAC,MAAM,EAAE;QAAEqF,0BAA0B,EAAE;MAAK,CAAC,CAAC;MACrE,IAAI,CAAC7I,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACoB,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtD;IAEA,MAAM,IAAI,CAACxD,QAAQ,CAACA,QAAQ,CAAC;MAC3B6D,SAAS,EAAE,IAAI;MACfC,IAAI,EAAE,IAAI;MACViF,IAAI,EAAE,IAAI;MACVC,aAAa,EAAE,MAAM;MACrBjF,aAAa,EAAE,IAAI;MACnB8E,cAAc,EAAE;IAClB,CAAC,CAAC;IAEF,MAAM;MAAEtF,IAAI;MAAEvH,IAAI;MAAE2D;IAAO,CAAC,GAAG,MAAM,IAAI,CAACkD,6BAA6B,CAACC,MAAM,CAAC;IAC/E,IAAIS,IAAI,KAAK,CAAC,EAAE,OAAO;MAAEA,IAAI;MAAEvH;IAAK,CAAC;IAErC,MAAMiN,uBAAuB,GAAGtJ,MAAM,CAACuJ,oBAAoB,CAAC7K,MAAM,GAAG,CAAC;IAEtE,IAAI,CAAC4B,MAAM,CAACkC,OAAO,CAAC,yBAAyB,CAAC;IAC9C,IAAI,CAAClC,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACW,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACrD,MAAM,IAAI,CAAClD,QAAQ,CAACsJ,GAAG,CAAC;MACtBlH,GAAG,EAAE,IAAI;MACTU,OAAO;MACPyB,KAAK;MACLgF,QAAQ,EAAE,IAAI;MACdC,OAAO,EAAEJ;IACX,CAAC,CAAC;IACF,IAAI,CAAChJ,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACoB,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAErD,IAAI,CAACvD,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACW,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACvD,MAAM,IAAI,CAACjD,QAAQ,CAAC0I,MAAM,CAAC,CAAC;IAC5B,IAAI,CAACvI,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACoB,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAEvD,IAAI,CAACvD,MAAM,CAACkC,OAAO,CAAC,mBAAmB,CAAC;IACxC;IACA,MAAMd,UAAG,CAACiI,SAAS,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAC1D,MAAMjI,UAAG,CAACiI,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC;;IAE1C;IACA,MAAMjI,UAAG,CAACkI,GAAG,CAAC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAC5C,MAAMlI,UAAG,CAACkB,MAAM,CAAC,0CAA0C,CAAC;;IAE5D;IACA,MAAMX,aAAa,GAAG,MAAM,IAAI,CAACH,oBAAoB,CAAC,CAAC;IACvD,MAAMJ,UAAG,CAACpD,IAAI,CAAC,QAAQ,EAAE2D,aAAa,CAAC;IAEvC,IAAI,CAAC3B,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACoB,KAAK,CAAC,WAAW,CAAC,CAAC;IAE7C,IAAI4C,WAAW,EAAE;MACf,IAAI,CAACnG,MAAM,CAACkC,OAAO,CAAC,kBAAkB,CAAC;MACvC,MAAMsC,MAAM,GAAG2B,WAAW,CAAC7F,EAAE;MAC7B,IAAI,CAACN,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACW,IAAI,CAAC,kBAAkB0B,MAAM,CAACjD,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;MACtE,MAAMgI,WAAW,GAAG,MAAM,IAAI,CAAC5J,KAAK,CAAC6J,WAAW,CAAC,CAAChF,MAAM,CAAC,CAAC,CAAC,CAAC;MAC5D,IAAI+E,WAAW,EAAE;QACf,IAAI,CAACvJ,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACoB,KAAK,CAAC,eAAe,CAAC,CAAC;MACnD,CAAC,MAAM;QACL,IAAI,CAACvD,MAAM,CAACkC,OAAO,CAACC,gBAAK,CAACC,MAAM,CAAC,wBAAwB,CAAC,CAAC;MAC7D;IACF;IAEA,OAAO;MAAEkB,IAAI,EAAE,CAAC;MAAEvH,IAAI,EAAE;IAAG,CAAC;EAC9B;AACF;;AAEA;AAAA0N,OAAA,CAAAnK,MAAA,GAAAA,MAAA;AAAAhB,eAAA,CA1dagB,MAAM,aACAoK,kBAAW;AAAApL,eAAA,CADjBgB,MAAM,kBAGU,CACzBqK,gBAAS,EACTC,4BAAe,EACfC,sBAAY,EACZC,wBAAa,EACbC,sBAAY,EACZC,oBAAW,EACXC,0BAAc,EACdC,sBAAY,EACZC,0BAAc,EACdC,0BAAc,CACf;AAAA9L,eAAA,CAdUgB,MAAM,WAgBG,EAAE;AA2cxBe,cAAQ,CAACgK,UAAU,CAAC/K,MAAM,CAAC","ignoreList":[]}
@@ -5,6 +5,7 @@ import { CiMain } from '../ci.main.runtime';
5
5
  type Options = {
6
6
  message?: string;
7
7
  build?: boolean;
8
+ strict?: boolean;
8
9
  };
9
10
  export declare class CiMergeCmd implements Command {
10
11
  private workspace;
@@ -22,7 +22,7 @@ class CiMergeCmd {
22
22
  _defineProperty(this, "name", 'merge');
23
23
  _defineProperty(this, "description", 'Merges a PR');
24
24
  _defineProperty(this, "group", 'collaborate');
25
- _defineProperty(this, "options", [['m', 'message <message>', 'If set, use it as the snap message, if not, try and grab from git-commit-message'], ['b', 'build', 'Set to true to build the app locally, false (default) will build on Ripple CI']]);
25
+ _defineProperty(this, "options", [['m', 'message <message>', 'If set, use it as the snap message, if not, try and grab from git-commit-message'], ['b', 'build', 'Set to true to build the app locally, false (default) will build on Ripple CI'], ['s', 'strict', 'Set to true to fail on warnings as well as errors, false (default) only fails on errors']]);
26
26
  }
27
27
  async report(args, options) {
28
28
  this.logger.console('\n\n');
@@ -30,7 +30,8 @@ class CiMergeCmd {
30
30
  if (!this.workspace) throw new (_workspace().OutsideWorkspaceError)();
31
31
  return this.ci.mergePr({
32
32
  message: options.message,
33
- build: options.build
33
+ build: options.build,
34
+ strict: options.strict
34
35
  });
35
36
  }
36
37
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_workspace","data","require","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CiMergeCmd","constructor","workspace","logger","ci","report","args","options","console","OutsideWorkspaceError","mergePr","message","build","exports"],"sources":["merge.cmd.ts"],"sourcesContent":["import type { Command, CommandOptions } from '@teambit/cli';\nimport type { Logger } from '@teambit/logger';\nimport { OutsideWorkspaceError, type Workspace } from '@teambit/workspace';\nimport { CiMain } from '../ci.main.runtime';\n\ntype Options = {\n message?: string;\n build?: boolean;\n};\n\nexport class CiMergeCmd implements Command {\n name = 'merge';\n description = 'Merges a PR';\n group = 'collaborate';\n\n options: CommandOptions = [\n ['m', 'message <message>', 'If set, use it as the snap message, if not, try and grab from git-commit-message'],\n ['b', 'build', 'Set to true to build the app locally, false (default) will build on Ripple CI'],\n ];\n\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private ci: CiMain\n ) {}\n\n async report(args: unknown, options: Options) {\n this.logger.console('\\n\\n');\n this.logger.console('🚀 Initializing Merge command');\n if (!this.workspace) throw new OutsideWorkspaceError();\n\n return this.ci.mergePr({ message: options.message, build: options.build });\n }\n}\n"],"mappings":";;;;;;AAEA,SAAAA,WAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,UAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA2E,SAAAE,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,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,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAQpE,MAAMgB,UAAU,CAAoB;EAUzCC,WAAWA,CACDC,SAAoB,EACpBC,MAAc,EACdC,EAAU,EAClB;IAAA,KAHQF,SAAoB,GAApBA,SAAoB;IAAA,KACpBC,MAAc,GAAdA,MAAc;IAAA,KACdC,EAAU,GAAVA,EAAU;IAAAvB,eAAA,eAZb,OAAO;IAAAA,eAAA,sBACA,aAAa;IAAAA,eAAA,gBACnB,aAAa;IAAAA,eAAA,kBAEK,CACxB,CAAC,GAAG,EAAE,mBAAmB,EAAE,kFAAkF,CAAC,EAC9G,CAAC,GAAG,EAAE,OAAO,EAAE,+EAA+E,CAAC,CAChG;EAME;EAEH,MAAMwB,MAAMA,CAACC,IAAa,EAAEC,OAAgB,EAAE;IAC5C,IAAI,CAACJ,MAAM,CAACK,OAAO,CAAC,MAAM,CAAC;IAC3B,IAAI,CAACL,MAAM,CAACK,OAAO,CAAC,+BAA+B,CAAC;IACpD,IAAI,CAAC,IAAI,CAACN,SAAS,EAAE,MAAM,KAAIO,kCAAqB,EAAC,CAAC;IAEtD,OAAO,IAAI,CAACL,EAAE,CAACM,OAAO,CAAC;MAAEC,OAAO,EAAEJ,OAAO,CAACI,OAAO;MAAEC,KAAK,EAAEL,OAAO,CAACK;IAAM,CAAC,CAAC;EAC5E;AACF;AAACC,OAAA,CAAAb,UAAA,GAAAA,UAAA","ignoreList":[]}
1
+ {"version":3,"names":["_workspace","data","require","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CiMergeCmd","constructor","workspace","logger","ci","report","args","options","console","OutsideWorkspaceError","mergePr","message","build","strict","exports"],"sources":["merge.cmd.ts"],"sourcesContent":["import type { Command, CommandOptions } from '@teambit/cli';\nimport type { Logger } from '@teambit/logger';\nimport { OutsideWorkspaceError, type Workspace } from '@teambit/workspace';\nimport { CiMain } from '../ci.main.runtime';\n\ntype Options = {\n message?: string;\n build?: boolean;\n strict?: boolean;\n};\n\nexport class CiMergeCmd implements Command {\n name = 'merge';\n description = 'Merges a PR';\n group = 'collaborate';\n\n options: CommandOptions = [\n ['m', 'message <message>', 'If set, use it as the snap message, if not, try and grab from git-commit-message'],\n ['b', 'build', 'Set to true to build the app locally, false (default) will build on Ripple CI'],\n ['s', 'strict', 'Set to true to fail on warnings as well as errors, false (default) only fails on errors'],\n ];\n\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private ci: CiMain\n ) {}\n\n async report(args: unknown, options: Options) {\n this.logger.console('\\n\\n');\n this.logger.console('🚀 Initializing Merge command');\n if (!this.workspace) throw new OutsideWorkspaceError();\n\n return this.ci.mergePr({ message: options.message, build: options.build, strict: options.strict });\n }\n}\n"],"mappings":";;;;;;AAEA,SAAAA,WAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,UAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA2E,SAAAE,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,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,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AASpE,MAAMgB,UAAU,CAAoB;EAWzCC,WAAWA,CACDC,SAAoB,EACpBC,MAAc,EACdC,EAAU,EAClB;IAAA,KAHQF,SAAoB,GAApBA,SAAoB;IAAA,KACpBC,MAAc,GAAdA,MAAc;IAAA,KACdC,EAAU,GAAVA,EAAU;IAAAvB,eAAA,eAbb,OAAO;IAAAA,eAAA,sBACA,aAAa;IAAAA,eAAA,gBACnB,aAAa;IAAAA,eAAA,kBAEK,CACxB,CAAC,GAAG,EAAE,mBAAmB,EAAE,kFAAkF,CAAC,EAC9G,CAAC,GAAG,EAAE,OAAO,EAAE,+EAA+E,CAAC,EAC/F,CAAC,GAAG,EAAE,QAAQ,EAAE,yFAAyF,CAAC,CAC3G;EAME;EAEH,MAAMwB,MAAMA,CAACC,IAAa,EAAEC,OAAgB,EAAE;IAC5C,IAAI,CAACJ,MAAM,CAACK,OAAO,CAAC,MAAM,CAAC;IAC3B,IAAI,CAACL,MAAM,CAACK,OAAO,CAAC,+BAA+B,CAAC;IACpD,IAAI,CAAC,IAAI,CAACN,SAAS,EAAE,MAAM,KAAIO,kCAAqB,EAAC,CAAC;IAEtD,OAAO,IAAI,CAACL,EAAE,CAACM,OAAO,CAAC;MAAEC,OAAO,EAAEJ,OAAO,CAACI,OAAO;MAAEC,KAAK,EAAEL,OAAO,CAACK,KAAK;MAAEC,MAAM,EAAEN,OAAO,CAACM;IAAO,CAAC,CAAC;EACpG;AACF;AAACC,OAAA,CAAAd,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -6,6 +6,7 @@ type Options = {
6
6
  message?: string;
7
7
  build?: boolean;
8
8
  lane?: string;
9
+ strict?: boolean;
9
10
  };
10
11
  export declare class CiPrCmd implements Command {
11
12
  private workspace;
@@ -22,7 +22,7 @@ class CiPrCmd {
22
22
  _defineProperty(this, "name", 'pr');
23
23
  _defineProperty(this, "description", 'This command is meant to run when a PR was open/updated and meant to export a lane to bit-cloud.');
24
24
  _defineProperty(this, "group", 'collaborate');
25
- _defineProperty(this, "options", [['m', 'message <message>', 'If set, set it as the snap message, if not, try and grab from git-commit-message'], ['l', 'lane <lane>', 'If set, use as the lane name, if not available, grab from git-branch name'], ['b', 'build', 'Set to true to build the app locally, false (default) will build on Ripple CI']]);
25
+ _defineProperty(this, "options", [['m', 'message <message>', 'If set, set it as the snap message, if not, try and grab from git-commit-message'], ['l', 'lane <lane>', 'If set, use as the lane name, if not available, grab from git-branch name'], ['b', 'build', 'Set to true to build the app locally, false (default) will build on Ripple CI'], ['s', 'strict', 'Set to true to fail on warnings as well as errors, false (default) only fails on errors']]);
26
26
  }
27
27
  async report(args, options) {
28
28
  this.logger.console('\n\n');
@@ -39,7 +39,9 @@ class CiPrCmd {
39
39
  if (!currentBranch) {
40
40
  throw new Error('Failed to get branch name');
41
41
  }
42
- branch = `${this.workspace.defaultScope}/${currentBranch}`;
42
+ // Sanitize branch name to make it valid for Bit lane IDs by replacing slashes with dashes
43
+ const sanitizedBranch = currentBranch.replace(/\//g, '-');
44
+ branch = `${this.workspace.defaultScope}/${sanitizedBranch}`;
43
45
  }
44
46
  if (options.message) {
45
47
  message = options.message;
@@ -53,7 +55,8 @@ class CiPrCmd {
53
55
  return this.ci.snapPrCommit({
54
56
  branch,
55
57
  message,
56
- build: options.build
58
+ build: options.build,
59
+ strict: options.strict
57
60
  });
58
61
  }
59
62
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_workspace","data","require","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CiPrCmd","constructor","workspace","logger","ci","report","args","options","console","OutsideWorkspaceError","branch","message","lane","currentBranch","getBranchName","catch","Error","toString","defaultScope","commitMessage","getGitCommitMessage","snapPrCommit","build","exports"],"sources":["pr.cmd.ts"],"sourcesContent":["import type { Command, CommandOptions } from '@teambit/cli';\nimport type { Logger } from '@teambit/logger';\nimport { OutsideWorkspaceError, type Workspace } from '@teambit/workspace';\nimport type { CiMain } from '../ci.main.runtime';\n\ntype Options = {\n message?: string;\n build?: boolean;\n lane?: string;\n};\n\nexport class CiPrCmd implements Command {\n name = 'pr';\n description = 'This command is meant to run when a PR was open/updated and meant to export a lane to bit-cloud.';\n group = 'collaborate';\n\n options: CommandOptions = [\n ['m', 'message <message>', 'If set, set it as the snap message, if not, try and grab from git-commit-message'],\n ['l', 'lane <lane>', 'If set, use as the lane name, if not available, grab from git-branch name'],\n ['b', 'build', 'Set to true to build the app locally, false (default) will build on Ripple CI'],\n ];\n\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private ci: CiMain\n ) {}\n\n async report(args: unknown, options: Options) {\n this.logger.console('\\n\\n');\n this.logger.console('🚀 Initializing PR command');\n if (!this.workspace) throw new OutsideWorkspaceError();\n\n let branch: string;\n let message: string;\n\n if (options.lane) {\n branch = options.lane;\n } else {\n const currentBranch = await this.ci.getBranchName().catch((e) => {\n throw new Error(`Failed to get branch name from Git: ${e.toString()}`);\n });\n if (!currentBranch) {\n throw new Error('Failed to get branch name');\n }\n branch = `${this.workspace.defaultScope}/${currentBranch}`;\n }\n\n if (options.message) {\n message = options.message;\n } else {\n const commitMessage = await this.ci.getGitCommitMessage();\n if (!commitMessage) {\n throw new Error('Failed to get commit message');\n }\n message = commitMessage;\n }\n\n return this.ci.snapPrCommit({\n branch,\n message,\n build: options.build,\n });\n }\n}\n"],"mappings":";;;;;;AAEA,SAAAA,WAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,UAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA2E,SAAAE,gBAAAC,CAAA,EAAAC,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAD,CAAA,GAAAI,MAAA,CAAAC,cAAA,CAAAL,CAAA,EAAAC,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAT,CAAA,CAAAC,CAAA,IAAAC,CAAA,EAAAF,CAAA;AAAA,SAAAG,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,MAAAF,CAAA,GAAAE,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAb,CAAA,QAAAU,CAAA,GAAAV,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AASpE,MAAMgB,OAAO,CAAoB;EAWtCC,WAAWA,CACDC,SAAoB,EACpBC,MAAc,EACdC,EAAU,EAClB;IAAA,KAHQF,SAAoB,GAApBA,SAAoB;IAAA,KACpBC,MAAc,GAAdA,MAAc;IAAA,KACdC,EAAU,GAAVA,EAAU;IAAAvB,eAAA,eAbb,IAAI;IAAAA,eAAA,sBACG,kGAAkG;IAAAA,eAAA,gBACxG,aAAa;IAAAA,eAAA,kBAEK,CACxB,CAAC,GAAG,EAAE,mBAAmB,EAAE,kFAAkF,CAAC,EAC9G,CAAC,GAAG,EAAE,aAAa,EAAE,2EAA2E,CAAC,EACjG,CAAC,GAAG,EAAE,OAAO,EAAE,+EAA+E,CAAC,CAChG;EAME;EAEH,MAAMwB,MAAMA,CAACC,IAAa,EAAEC,OAAgB,EAAE;IAC5C,IAAI,CAACJ,MAAM,CAACK,OAAO,CAAC,MAAM,CAAC;IAC3B,IAAI,CAACL,MAAM,CAACK,OAAO,CAAC,4BAA4B,CAAC;IACjD,IAAI,CAAC,IAAI,CAACN,SAAS,EAAE,MAAM,KAAIO,kCAAqB,EAAC,CAAC;IAEtD,IAAIC,MAAc;IAClB,IAAIC,OAAe;IAEnB,IAAIJ,OAAO,CAACK,IAAI,EAAE;MAChBF,MAAM,GAAGH,OAAO,CAACK,IAAI;IACvB,CAAC,MAAM;MACL,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACT,EAAE,CAACU,aAAa,CAAC,CAAC,CAACC,KAAK,CAAEjC,CAAC,IAAK;QAC/D,MAAM,IAAIkC,KAAK,CAAC,uCAAuClC,CAAC,CAACmC,QAAQ,CAAC,CAAC,EAAE,CAAC;MACxE,CAAC,CAAC;MACF,IAAI,CAACJ,aAAa,EAAE;QAClB,MAAM,IAAIG,KAAK,CAAC,2BAA2B,CAAC;MAC9C;MACAN,MAAM,GAAG,GAAG,IAAI,CAACR,SAAS,CAACgB,YAAY,IAAIL,aAAa,EAAE;IAC5D;IAEA,IAAIN,OAAO,CAACI,OAAO,EAAE;MACnBA,OAAO,GAAGJ,OAAO,CAACI,OAAO;IAC3B,CAAC,MAAM;MACL,MAAMQ,aAAa,GAAG,MAAM,IAAI,CAACf,EAAE,CAACgB,mBAAmB,CAAC,CAAC;MACzD,IAAI,CAACD,aAAa,EAAE;QAClB,MAAM,IAAIH,KAAK,CAAC,8BAA8B,CAAC;MACjD;MACAL,OAAO,GAAGQ,aAAa;IACzB;IAEA,OAAO,IAAI,CAACf,EAAE,CAACiB,YAAY,CAAC;MAC1BX,MAAM;MACNC,OAAO;MACPW,KAAK,EAAEf,OAAO,CAACe;IACjB,CAAC,CAAC;EACJ;AACF;AAACC,OAAA,CAAAvB,OAAA,GAAAA,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_workspace","data","require","_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","CiPrCmd","constructor","workspace","logger","ci","report","args","options","console","OutsideWorkspaceError","branch","message","lane","currentBranch","getBranchName","catch","Error","toString","sanitizedBranch","replace","defaultScope","commitMessage","getGitCommitMessage","snapPrCommit","build","strict","exports"],"sources":["pr.cmd.ts"],"sourcesContent":["import type { Command, CommandOptions } from '@teambit/cli';\nimport type { Logger } from '@teambit/logger';\nimport { OutsideWorkspaceError, type Workspace } from '@teambit/workspace';\nimport type { CiMain } from '../ci.main.runtime';\n\ntype Options = {\n message?: string;\n build?: boolean;\n lane?: string;\n strict?: boolean;\n};\n\nexport class CiPrCmd implements Command {\n name = 'pr';\n description = 'This command is meant to run when a PR was open/updated and meant to export a lane to bit-cloud.';\n group = 'collaborate';\n\n options: CommandOptions = [\n ['m', 'message <message>', 'If set, set it as the snap message, if not, try and grab from git-commit-message'],\n ['l', 'lane <lane>', 'If set, use as the lane name, if not available, grab from git-branch name'],\n ['b', 'build', 'Set to true to build the app locally, false (default) will build on Ripple CI'],\n ['s', 'strict', 'Set to true to fail on warnings as well as errors, false (default) only fails on errors'],\n ];\n\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private ci: CiMain\n ) {}\n\n async report(args: unknown, options: Options) {\n this.logger.console('\\n\\n');\n this.logger.console('🚀 Initializing PR command');\n if (!this.workspace) throw new OutsideWorkspaceError();\n\n let branch: string;\n let message: string;\n\n if (options.lane) {\n branch = options.lane;\n } else {\n const currentBranch = await this.ci.getBranchName().catch((e) => {\n throw new Error(`Failed to get branch name from Git: ${e.toString()}`);\n });\n if (!currentBranch) {\n throw new Error('Failed to get branch name');\n }\n // Sanitize branch name to make it valid for Bit lane IDs by replacing slashes with dashes\n const sanitizedBranch = currentBranch.replace(/\\//g, '-');\n branch = `${this.workspace.defaultScope}/${sanitizedBranch}`;\n }\n\n if (options.message) {\n message = options.message;\n } else {\n const commitMessage = await this.ci.getGitCommitMessage();\n if (!commitMessage) {\n throw new Error('Failed to get commit message');\n }\n message = commitMessage;\n }\n\n return this.ci.snapPrCommit({\n branch,\n message,\n build: options.build,\n strict: options.strict,\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  ;
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.git_ci@0.0.2/dist/ci.docs.mdx';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.git_ci@0.0.4/dist/ci.docs.mdx';
3
3
 
4
4
  export const compositions = [];
5
5
  export const overview = [overview_0];
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/ci",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "homepage": "https://bit.cloud/teambit/git/ci",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.git",
8
8
  "name": "ci",
9
- "version": "0.0.2"
9
+ "version": "0.0.4"
10
10
  },
11
11
  "dependencies": {
12
12
  "chalk": "4.1.2",