@teambit/ripple 0.0.0-fe2dbd4f0d4ec21100d4de95313aa4e5215a3a08 → 0.0.2

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.
@@ -1,165 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.RippleListCmd = void 0;
7
- function _chalk() {
8
- const data = _interopRequireDefault(require("chalk"));
9
- _chalk = function () {
10
- return data;
11
- };
12
- return data;
13
- }
14
- function _cliTable() {
15
- const data = _interopRequireDefault(require("cli-table"));
16
- _cliTable = function () {
17
- return data;
18
- };
19
- return data;
20
- }
21
- function _rippleUtils() {
22
- const data = require("./ripple-utils");
23
- _rippleUtils = function () {
24
- return data;
25
- };
26
- return data;
27
- }
28
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
29
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
30
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
31
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
32
- class RippleListCmd {
33
- constructor(ripple) {
34
- this.ripple = ripple;
35
- _defineProperty(this, "name", 'list');
36
- _defineProperty(this, "description", 'list recent Ripple CI jobs (filtered by workspace owner by default)');
37
- _defineProperty(this, "skipWorkspace", true);
38
- _defineProperty(this, "remoteOp", true);
39
- _defineProperty(this, "alias", '');
40
- _defineProperty(this, "options", [['', 'all', 'show jobs from all owners, not just the workspace owner'], ['o', 'owner <owner>', 'filter by organization (default: detected from workspace defaultScope)'], ['s', 'scope <scope>', 'filter by scope (e.g. "teambit.cloud")'], ['', 'lane <lane>', 'filter by lane ID (e.g. "scope/lane-name")'], ['u', 'user <user>', 'filter by username'], ['', 'status <status>', 'filter by status (e.g. SUCCESS, FAILURE, RUNNING)'], ['l', 'limit <limit>', 'max number of jobs to show (default: 20)'], ['j', 'json', 'return the output as JSON']]);
41
- }
42
- async report(args, flags) {
43
- const {
44
- jobs,
45
- ownerUsed
46
- } = await this.getFilteredJobs(flags);
47
- if (!jobs || jobs.length === 0) {
48
- let hint = '';
49
- if (flags.lane) hint = ` for lane "${flags.lane}"`;else if (flags.scope) hint = ` for scope "${flags.scope}"`;else if (ownerUsed) hint = ` for owner "${ownerUsed}"`;
50
- const tip = ownerUsed ? ' Use --all to see jobs from all owners.' : '';
51
- return _chalk().default.yellow(`No Ripple CI jobs found${hint}.${tip}`);
52
- }
53
- const table = new (_cliTable().default)({
54
- head: [_chalk().default.cyan('Job ID'), _chalk().default.cyan('Name'), _chalk().default.cyan('Scope'), _chalk().default.cyan('Status'), _chalk().default.cyan('User'), _chalk().default.cyan('Started'), _chalk().default.cyan('Duration')],
55
- chars: {
56
- top: '',
57
- 'top-mid': '',
58
- 'top-left': '',
59
- 'top-right': '',
60
- bottom: '',
61
- 'bottom-mid': '',
62
- 'bottom-left': '',
63
- 'bottom-right': '',
64
- left: '',
65
- 'left-mid': '',
66
- mid: '',
67
- 'mid-mid': '',
68
- right: '',
69
- 'right-mid': '',
70
- middle: ' '
71
- },
72
- style: {
73
- 'padding-left': 1,
74
- 'padding-right': 1
75
- }
76
- });
77
- for (const job of jobs) {
78
- table.push([job.id, truncate(job.name || '-', 40), getScopeFromLaneId(job.laneId), (0, _rippleUtils().colorPhase)(job.status?.phase), job.user?.username || '-', formatDate(job.status?.startedAt), formatDuration(job.status?.startedAt, job.status?.finishedAt)]);
79
- }
80
- const header = ownerUsed ? _chalk().default.gray(`showing jobs for owner "${ownerUsed}" (use --all for all jobs)`) : '';
81
- return [header, table.toString()].filter(Boolean).join('\n');
82
- }
83
- async json(args, flags) {
84
- const {
85
- jobs
86
- } = await this.getFilteredJobs(flags);
87
- return {
88
- jobs: jobs || []
89
- };
90
- }
91
- async getFilteredJobs(flags) {
92
- const requestedLimit = flags.limit ? parseInt(flags.limit, 10) : 20;
93
- if (!Number.isFinite(requestedLimit) || requestedLimit < 1) {
94
- throw new Error(`Invalid --limit value "${flags.limit}". Expected a positive integer.`);
95
- }
96
-
97
- // build server-side filters
98
- const filters = {};
99
-
100
- // determine owner for default filtering (skip when --lane or --scope is given explicitly)
101
- let ownerUsed;
102
- if (!flags.all && !flags.lane && !flags.scope) {
103
- ownerUsed = flags.owner || this.ripple.getDefaultOwner();
104
- } else if (flags.owner) {
105
- ownerUsed = flags.owner;
106
- }
107
- if (ownerUsed) filters.owners = [ownerUsed];
108
- if (flags.lane) filters.lanes = [flags.lane];
109
- if (flags.scope) filters.scopes = [flags.scope];
110
- if (flags.status) filters.status = flags.status.toUpperCase();
111
-
112
- // user filter is not supported server-side, so overfetch if needed
113
- const needsClientFilter = !!flags.user;
114
- const fetchLimit = needsClientFilter ? Math.max(requestedLimit * 5, 100) : requestedLimit;
115
- let jobs = await this.ripple.listJobs({
116
- filters,
117
- limit: fetchLimit
118
- });
119
-
120
- // apply client-side filters for fields not supported by FilterOptions
121
- if (flags.user) {
122
- const userFilter = flags.user.toLowerCase();
123
- jobs = jobs.filter(j => j.user?.username?.toLowerCase().includes(userFilter));
124
- }
125
- jobs = jobs.slice(0, requestedLimit);
126
- return {
127
- jobs,
128
- ownerUsed
129
- };
130
- }
131
- }
132
- exports.RippleListCmd = RippleListCmd;
133
- function formatDate(dateStr) {
134
- if (!dateStr) return '-';
135
- try {
136
- return new Date(dateStr).toLocaleString();
137
- } catch {
138
- return dateStr;
139
- }
140
- }
141
- function formatDuration(startedAt, finishedAt) {
142
- if (!startedAt) return '-';
143
- const start = new Date(startedAt).getTime();
144
- const end = finishedAt ? new Date(finishedAt).getTime() : Date.now();
145
- const ms = end - start;
146
- if (ms < 0) return '-';
147
- const seconds = Math.floor(ms / 1000);
148
- if (seconds < 60) return `${seconds}s`;
149
- const minutes = Math.floor(seconds / 60);
150
- const remainingSeconds = seconds % 60;
151
- if (minutes < 60) return `${minutes}m ${remainingSeconds}s`;
152
- const hours = Math.floor(minutes / 60);
153
- const remainingMinutes = minutes % 60;
154
- return `${hours}h ${remainingMinutes}m`;
155
- }
156
- function getScopeFromLaneId(laneId) {
157
- if (!laneId) return '-';
158
- return laneId.split('/')[0] || '-';
159
- }
160
- function truncate(str, max) {
161
- if (str.length <= max) return str;
162
- return `${str.substring(0, max - 1)}…`;
163
- }
164
-
165
- //# sourceMappingURL=ripple-list.cmd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_cliTable","_rippleUtils","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","RippleListCmd","constructor","ripple","report","args","flags","jobs","ownerUsed","getFilteredJobs","length","hint","lane","scope","tip","chalk","yellow","table","Table","head","cyan","chars","top","bottom","left","mid","right","middle","style","job","push","id","truncate","name","getScopeFromLaneId","laneId","colorPhase","status","phase","user","username","formatDate","startedAt","formatDuration","finishedAt","header","gray","toString","filter","Boolean","join","json","requestedLimit","limit","parseInt","isFinite","Error","filters","all","owner","getDefaultOwner","owners","lanes","scopes","toUpperCase","needsClientFilter","fetchLimit","Math","max","listJobs","userFilter","toLowerCase","j","includes","slice","exports","dateStr","Date","toLocaleString","start","getTime","end","now","ms","seconds","floor","minutes","remainingSeconds","hours","remainingMinutes","split","str","substring"],"sources":["ripple-list.cmd.ts"],"sourcesContent":["import type { Command, CommandOptions } from '@teambit/cli';\nimport chalk from 'chalk';\nimport Table from 'cli-table';\nimport type { RippleMain, RippleJob } from './ripple.main.runtime';\nimport { colorPhase } from './ripple-utils';\n\nexport class RippleListCmd implements Command {\n name = 'list';\n description = 'list recent Ripple CI jobs (filtered by workspace owner by default)';\n skipWorkspace = true;\n remoteOp = true;\n alias = '';\n\n options: CommandOptions = [\n ['', 'all', 'show jobs from all owners, not just the workspace owner'],\n ['o', 'owner <owner>', 'filter by organization (default: detected from workspace defaultScope)'],\n ['s', 'scope <scope>', 'filter by scope (e.g. \"teambit.cloud\")'],\n ['', 'lane <lane>', 'filter by lane ID (e.g. \"scope/lane-name\")'],\n ['u', 'user <user>', 'filter by username'],\n ['', 'status <status>', 'filter by status (e.g. SUCCESS, FAILURE, RUNNING)'],\n ['l', 'limit <limit>', 'max number of jobs to show (default: 20)'],\n ['j', 'json', 'return the output as JSON'],\n ];\n\n constructor(private ripple: RippleMain) {}\n\n async report(\n args: [],\n flags: {\n all?: boolean;\n owner?: string;\n scope?: string;\n lane?: string;\n user?: string;\n status?: string;\n limit?: string;\n }\n ) {\n const { jobs, ownerUsed } = await this.getFilteredJobs(flags);\n\n if (!jobs || jobs.length === 0) {\n let hint = '';\n if (flags.lane) hint = ` for lane \"${flags.lane}\"`;\n else if (flags.scope) hint = ` for scope \"${flags.scope}\"`;\n else if (ownerUsed) hint = ` for owner \"${ownerUsed}\"`;\n const tip = ownerUsed ? ' Use --all to see jobs from all owners.' : '';\n return chalk.yellow(`No Ripple CI jobs found${hint}.${tip}`);\n }\n\n const table = new Table({\n head: [\n chalk.cyan('Job ID'),\n chalk.cyan('Name'),\n chalk.cyan('Scope'),\n chalk.cyan('Status'),\n chalk.cyan('User'),\n chalk.cyan('Started'),\n chalk.cyan('Duration'),\n ],\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n middle: ' ',\n },\n style: { 'padding-left': 1, 'padding-right': 1 },\n });\n\n for (const job of jobs) {\n table.push([\n job.id,\n truncate(job.name || '-', 40),\n getScopeFromLaneId(job.laneId),\n colorPhase(job.status?.phase),\n job.user?.username || '-',\n formatDate(job.status?.startedAt),\n formatDuration(job.status?.startedAt, job.status?.finishedAt),\n ]);\n }\n\n const header = ownerUsed ? chalk.gray(`showing jobs for owner \"${ownerUsed}\" (use --all for all jobs)`) : '';\n return [header, table.toString()].filter(Boolean).join('\\n');\n }\n\n async json(\n args: [],\n flags: {\n all?: boolean;\n owner?: string;\n scope?: string;\n lane?: string;\n user?: string;\n status?: string;\n limit?: string;\n }\n ) {\n const { jobs } = await this.getFilteredJobs(flags);\n return { jobs: jobs || [] };\n }\n\n private async getFilteredJobs(flags: {\n all?: boolean;\n owner?: string;\n scope?: string;\n lane?: string;\n user?: string;\n status?: string;\n limit?: string;\n }): Promise<{ jobs: RippleJob[]; ownerUsed?: string }> {\n const requestedLimit = flags.limit ? parseInt(flags.limit, 10) : 20;\n if (!Number.isFinite(requestedLimit) || requestedLimit < 1) {\n throw new Error(`Invalid --limit value \"${flags.limit}\". Expected a positive integer.`);\n }\n\n // build server-side filters\n const filters: { lanes?: string[]; owners?: string[]; scopes?: string[]; status?: string } = {};\n\n // determine owner for default filtering (skip when --lane or --scope is given explicitly)\n let ownerUsed: string | undefined;\n if (!flags.all && !flags.lane && !flags.scope) {\n ownerUsed = flags.owner || this.ripple.getDefaultOwner();\n } else if (flags.owner) {\n ownerUsed = flags.owner;\n }\n\n if (ownerUsed) filters.owners = [ownerUsed];\n if (flags.lane) filters.lanes = [flags.lane];\n if (flags.scope) filters.scopes = [flags.scope];\n if (flags.status) filters.status = flags.status.toUpperCase();\n\n // user filter is not supported server-side, so overfetch if needed\n const needsClientFilter = !!flags.user;\n const fetchLimit = needsClientFilter ? Math.max(requestedLimit * 5, 100) : requestedLimit;\n let jobs = await this.ripple.listJobs({ filters, limit: fetchLimit });\n\n // apply client-side filters for fields not supported by FilterOptions\n if (flags.user) {\n const userFilter = flags.user.toLowerCase();\n jobs = jobs.filter((j) => j.user?.username?.toLowerCase().includes(userFilter));\n }\n\n jobs = jobs.slice(0, requestedLimit);\n\n return { jobs, ownerUsed };\n }\n}\n\nfunction formatDate(dateStr?: string): string {\n if (!dateStr) return '-';\n try {\n return new Date(dateStr).toLocaleString();\n } catch {\n return dateStr;\n }\n}\n\nfunction formatDuration(startedAt?: string, finishedAt?: string): string {\n if (!startedAt) return '-';\n const start = new Date(startedAt).getTime();\n const end = finishedAt ? new Date(finishedAt).getTime() : Date.now();\n const ms = end - start;\n if (ms < 0) return '-';\n const seconds = Math.floor(ms / 1000);\n if (seconds < 60) return `${seconds}s`;\n const minutes = Math.floor(seconds / 60);\n const remainingSeconds = seconds % 60;\n if (minutes < 60) return `${minutes}m ${remainingSeconds}s`;\n const hours = Math.floor(minutes / 60);\n const remainingMinutes = minutes % 60;\n return `${hours}h ${remainingMinutes}m`;\n}\n\nfunction getScopeFromLaneId(laneId?: string): string {\n if (!laneId) return '-';\n return laneId.split('/')[0] || '-';\n}\n\nfunction truncate(str: string, max: number): string {\n if (str.length <= max) return str;\n return `${str.substring(0, max - 1)}…`;\n}\n"],"mappings":";;;;;;AACA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAG,UAAA;EAAA,MAAAH,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAC,SAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,SAAAI,aAAA;EAAA,MAAAJ,IAAA,GAAAE,OAAA;EAAAE,YAAA,YAAAA,CAAA;IAAA,OAAAJ,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA4C,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;AAErC,MAAMgB,aAAa,CAAoB;EAkB5CC,WAAWA,CAASC,MAAkB,EAAE;IAAA,KAApBA,MAAkB,GAAlBA,MAAkB;IAAApB,eAAA,eAjB/B,MAAM;IAAAA,eAAA,sBACC,qEAAqE;IAAAA,eAAA,wBACnE,IAAI;IAAAA,eAAA,mBACT,IAAI;IAAAA,eAAA,gBACP,EAAE;IAAAA,eAAA,kBAEgB,CACxB,CAAC,EAAE,EAAE,KAAK,EAAE,yDAAyD,CAAC,EACtE,CAAC,GAAG,EAAE,eAAe,EAAE,wEAAwE,CAAC,EAChG,CAAC,GAAG,EAAE,eAAe,EAAE,wCAAwC,CAAC,EAChE,CAAC,EAAE,EAAE,aAAa,EAAE,4CAA4C,CAAC,EACjE,CAAC,GAAG,EAAE,aAAa,EAAE,oBAAoB,CAAC,EAC1C,CAAC,EAAE,EAAE,iBAAiB,EAAE,mDAAmD,CAAC,EAC5E,CAAC,GAAG,EAAE,eAAe,EAAE,0CAA0C,CAAC,EAClE,CAAC,GAAG,EAAE,MAAM,EAAE,2BAA2B,CAAC,CAC3C;EAEwC;EAEzC,MAAMqB,MAAMA,CACVC,IAAQ,EACRC,KAQC,EACD;IACA,MAAM;MAAEC,IAAI;MAAEC;IAAU,CAAC,GAAG,MAAM,IAAI,CAACC,eAAe,CAACH,KAAK,CAAC;IAE7D,IAAI,CAACC,IAAI,IAAIA,IAAI,CAACG,MAAM,KAAK,CAAC,EAAE;MAC9B,IAAIC,IAAI,GAAG,EAAE;MACb,IAAIL,KAAK,CAACM,IAAI,EAAED,IAAI,GAAG,cAAcL,KAAK,CAACM,IAAI,GAAG,CAAC,KAC9C,IAAIN,KAAK,CAACO,KAAK,EAAEF,IAAI,GAAG,eAAeL,KAAK,CAACO,KAAK,GAAG,CAAC,KACtD,IAAIL,SAAS,EAAEG,IAAI,GAAG,eAAeH,SAAS,GAAG;MACtD,MAAMM,GAAG,GAAGN,SAAS,GAAG,yCAAyC,GAAG,EAAE;MACtE,OAAOO,gBAAK,CAACC,MAAM,CAAC,0BAA0BL,IAAI,IAAIG,GAAG,EAAE,CAAC;IAC9D;IAEA,MAAMG,KAAK,GAAG,KAAIC,mBAAK,EAAC;MACtBC,IAAI,EAAE,CACJJ,gBAAK,CAACK,IAAI,CAAC,QAAQ,CAAC,EACpBL,gBAAK,CAACK,IAAI,CAAC,MAAM,CAAC,EAClBL,gBAAK,CAACK,IAAI,CAAC,OAAO,CAAC,EACnBL,gBAAK,CAACK,IAAI,CAAC,QAAQ,CAAC,EACpBL,gBAAK,CAACK,IAAI,CAAC,MAAM,CAAC,EAClBL,gBAAK,CAACK,IAAI,CAAC,SAAS,CAAC,EACrBL,gBAAK,CAACK,IAAI,CAAC,UAAU,CAAC,CACvB;MACDC,KAAK,EAAE;QACLC,GAAG,EAAE,EAAE;QACP,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,EAAE;QACfC,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,EAAE;QAChB,aAAa,EAAE,EAAE;QACjB,cAAc,EAAE,EAAE;QAClBC,IAAI,EAAE,EAAE;QACR,UAAU,EAAE,EAAE;QACdC,GAAG,EAAE,EAAE;QACP,SAAS,EAAE,EAAE;QACbC,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,EAAE;QACfC,MAAM,EAAE;MACV,CAAC;MACDC,KAAK,EAAE;QAAE,cAAc,EAAE,CAAC;QAAE,eAAe,EAAE;MAAE;IACjD,CAAC,CAAC;IAEF,KAAK,MAAMC,GAAG,IAAItB,IAAI,EAAE;MACtBU,KAAK,CAACa,IAAI,CAAC,CACTD,GAAG,CAACE,EAAE,EACNC,QAAQ,CAACH,GAAG,CAACI,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,EAC7BC,kBAAkB,CAACL,GAAG,CAACM,MAAM,CAAC,EAC9B,IAAAC,yBAAU,EAACP,GAAG,CAACQ,MAAM,EAAEC,KAAK,CAAC,EAC7BT,GAAG,CAACU,IAAI,EAAEC,QAAQ,IAAI,GAAG,EACzBC,UAAU,CAACZ,GAAG,CAACQ,MAAM,EAAEK,SAAS,CAAC,EACjCC,cAAc,CAACd,GAAG,CAACQ,MAAM,EAAEK,SAAS,EAAEb,GAAG,CAACQ,MAAM,EAAEO,UAAU,CAAC,CAC9D,CAAC;IACJ;IAEA,MAAMC,MAAM,GAAGrC,SAAS,GAAGO,gBAAK,CAAC+B,IAAI,CAAC,2BAA2BtC,SAAS,4BAA4B,CAAC,GAAG,EAAE;IAC5G,OAAO,CAACqC,MAAM,EAAE5B,KAAK,CAAC8B,QAAQ,CAAC,CAAC,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;EAC9D;EAEA,MAAMC,IAAIA,CACR9C,IAAQ,EACRC,KAQC,EACD;IACA,MAAM;MAAEC;IAAK,CAAC,GAAG,MAAM,IAAI,CAACE,eAAe,CAACH,KAAK,CAAC;IAClD,OAAO;MAAEC,IAAI,EAAEA,IAAI,IAAI;IAAG,CAAC;EAC7B;EAEA,MAAcE,eAAeA,CAACH,KAQ7B,EAAsD;IACrD,MAAM8C,cAAc,GAAG9C,KAAK,CAAC+C,KAAK,GAAGC,QAAQ,CAAChD,KAAK,CAAC+C,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE;IACnE,IAAI,CAACrD,MAAM,CAACuD,QAAQ,CAACH,cAAc,CAAC,IAAIA,cAAc,GAAG,CAAC,EAAE;MAC1D,MAAM,IAAII,KAAK,CAAC,0BAA0BlD,KAAK,CAAC+C,KAAK,iCAAiC,CAAC;IACzF;;IAEA;IACA,MAAMI,OAAoF,GAAG,CAAC,CAAC;;IAE/F;IACA,IAAIjD,SAA6B;IACjC,IAAI,CAACF,KAAK,CAACoD,GAAG,IAAI,CAACpD,KAAK,CAACM,IAAI,IAAI,CAACN,KAAK,CAACO,KAAK,EAAE;MAC7CL,SAAS,GAAGF,KAAK,CAACqD,KAAK,IAAI,IAAI,CAACxD,MAAM,CAACyD,eAAe,CAAC,CAAC;IAC1D,CAAC,MAAM,IAAItD,KAAK,CAACqD,KAAK,EAAE;MACtBnD,SAAS,GAAGF,KAAK,CAACqD,KAAK;IACzB;IAEA,IAAInD,SAAS,EAAEiD,OAAO,CAACI,MAAM,GAAG,CAACrD,SAAS,CAAC;IAC3C,IAAIF,KAAK,CAACM,IAAI,EAAE6C,OAAO,CAACK,KAAK,GAAG,CAACxD,KAAK,CAACM,IAAI,CAAC;IAC5C,IAAIN,KAAK,CAACO,KAAK,EAAE4C,OAAO,CAACM,MAAM,GAAG,CAACzD,KAAK,CAACO,KAAK,CAAC;IAC/C,IAAIP,KAAK,CAAC+B,MAAM,EAAEoB,OAAO,CAACpB,MAAM,GAAG/B,KAAK,CAAC+B,MAAM,CAAC2B,WAAW,CAAC,CAAC;;IAE7D;IACA,MAAMC,iBAAiB,GAAG,CAAC,CAAC3D,KAAK,CAACiC,IAAI;IACtC,MAAM2B,UAAU,GAAGD,iBAAiB,GAAGE,IAAI,CAACC,GAAG,CAAChB,cAAc,GAAG,CAAC,EAAE,GAAG,CAAC,GAAGA,cAAc;IACzF,IAAI7C,IAAI,GAAG,MAAM,IAAI,CAACJ,MAAM,CAACkE,QAAQ,CAAC;MAAEZ,OAAO;MAAEJ,KAAK,EAAEa;IAAW,CAAC,CAAC;;IAErE;IACA,IAAI5D,KAAK,CAACiC,IAAI,EAAE;MACd,MAAM+B,UAAU,GAAGhE,KAAK,CAACiC,IAAI,CAACgC,WAAW,CAAC,CAAC;MAC3ChE,IAAI,GAAGA,IAAI,CAACyC,MAAM,CAAEwB,CAAC,IAAKA,CAAC,CAACjC,IAAI,EAAEC,QAAQ,EAAE+B,WAAW,CAAC,CAAC,CAACE,QAAQ,CAACH,UAAU,CAAC,CAAC;IACjF;IAEA/D,IAAI,GAAGA,IAAI,CAACmE,KAAK,CAAC,CAAC,EAAEtB,cAAc,CAAC;IAEpC,OAAO;MAAE7C,IAAI;MAAEC;IAAU,CAAC;EAC5B;AACF;AAACmE,OAAA,CAAA1E,aAAA,GAAAA,aAAA;AAED,SAASwC,UAAUA,CAACmC,OAAgB,EAAU;EAC5C,IAAI,CAACA,OAAO,EAAE,OAAO,GAAG;EACxB,IAAI;IACF,OAAO,IAAIC,IAAI,CAACD,OAAO,CAAC,CAACE,cAAc,CAAC,CAAC;EAC3C,CAAC,CAAC,MAAM;IACN,OAAOF,OAAO;EAChB;AACF;AAEA,SAASjC,cAAcA,CAACD,SAAkB,EAAEE,UAAmB,EAAU;EACvE,IAAI,CAACF,SAAS,EAAE,OAAO,GAAG;EAC1B,MAAMqC,KAAK,GAAG,IAAIF,IAAI,CAACnC,SAAS,CAAC,CAACsC,OAAO,CAAC,CAAC;EAC3C,MAAMC,GAAG,GAAGrC,UAAU,GAAG,IAAIiC,IAAI,CAACjC,UAAU,CAAC,CAACoC,OAAO,CAAC,CAAC,GAAGH,IAAI,CAACK,GAAG,CAAC,CAAC;EACpE,MAAMC,EAAE,GAAGF,GAAG,GAAGF,KAAK;EACtB,IAAII,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG;EACtB,MAAMC,OAAO,GAAGjB,IAAI,CAACkB,KAAK,CAACF,EAAE,GAAG,IAAI,CAAC;EACrC,IAAIC,OAAO,GAAG,EAAE,EAAE,OAAO,GAAGA,OAAO,GAAG;EACtC,MAAME,OAAO,GAAGnB,IAAI,CAACkB,KAAK,CAACD,OAAO,GAAG,EAAE,CAAC;EACxC,MAAMG,gBAAgB,GAAGH,OAAO,GAAG,EAAE;EACrC,IAAIE,OAAO,GAAG,EAAE,EAAE,OAAO,GAAGA,OAAO,KAAKC,gBAAgB,GAAG;EAC3D,MAAMC,KAAK,GAAGrB,IAAI,CAACkB,KAAK,CAACC,OAAO,GAAG,EAAE,CAAC;EACtC,MAAMG,gBAAgB,GAAGH,OAAO,GAAG,EAAE;EACrC,OAAO,GAAGE,KAAK,KAAKC,gBAAgB,GAAG;AACzC;AAEA,SAASvD,kBAAkBA,CAACC,MAAe,EAAU;EACnD,IAAI,CAACA,MAAM,EAAE,OAAO,GAAG;EACvB,OAAOA,MAAM,CAACuD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG;AACpC;AAEA,SAAS1D,QAAQA,CAAC2D,GAAW,EAAEvB,GAAW,EAAU;EAClD,IAAIuB,GAAG,CAACjF,MAAM,IAAI0D,GAAG,EAAE,OAAOuB,GAAG;EACjC,OAAO,GAAGA,GAAG,CAACC,SAAS,CAAC,CAAC,EAAExB,GAAG,GAAG,CAAC,CAAC,GAAG;AACxC","ignoreList":[]}
@@ -1,41 +0,0 @@
1
- import type { Command, CommandOptions } from '@teambit/cli';
2
- import type { RippleMain } from './ripple.main.runtime';
3
- export declare class RippleLogCmd implements Command {
4
- private ripple;
5
- name: string;
6
- description: string;
7
- skipWorkspace: boolean;
8
- remoteOp: boolean;
9
- alias: string;
10
- options: CommandOptions;
11
- arguments: {
12
- name: string;
13
- description: string;
14
- }[];
15
- constructor(ripple: RippleMain);
16
- private resolveJob;
17
- report([jobId]: [string], flags: {
18
- lane?: string;
19
- component?: string;
20
- }): Promise<string>;
21
- private appendComponentDetail;
22
- private appendComponentList;
23
- json([jobId]: [string], flags: {
24
- lane?: string;
25
- component?: string;
26
- }): Promise<{
27
- job: import("./ripple.main.runtime").RippleJob & {
28
- hash?: string;
29
- ciGraph?: string;
30
- ciComponentGraph?: string;
31
- };
32
- componentBuild: import("./ripple.main.runtime").ComponentBuildSummary | null;
33
- } | {
34
- job: (import("./ripple.main.runtime").RippleJob & {
35
- hash?: string;
36
- ciGraph?: string;
37
- ciComponentGraph?: string;
38
- }) | null;
39
- componentBuild?: undefined;
40
- }>;
41
- }
@@ -1,164 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.RippleLogCmd = void 0;
7
- function _chalk() {
8
- const data = _interopRequireDefault(require("chalk"));
9
- _chalk = function () {
10
- return data;
11
- };
12
- return data;
13
- }
14
- function _cliTable() {
15
- const data = _interopRequireDefault(require("cli-table"));
16
- _cliTable = function () {
17
- return data;
18
- };
19
- return data;
20
- }
21
- function _rippleUtils() {
22
- const data = require("./ripple-utils");
23
- _rippleUtils = function () {
24
- return data;
25
- };
26
- return data;
27
- }
28
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
29
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
30
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
31
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
32
- class RippleLogCmd {
33
- constructor(ripple) {
34
- this.ripple = ripple;
35
- _defineProperty(this, "name", 'log [job-id]');
36
- _defineProperty(this, "description", 'show job details and component build task summaries (auto-detects current lane when no job-id given)');
37
- _defineProperty(this, "skipWorkspace", true);
38
- _defineProperty(this, "remoteOp", true);
39
- _defineProperty(this, "alias", '');
40
- _defineProperty(this, "options", [['', 'lane <lane>', 'lane ID to find the latest job for (default: detected from .bitmap)'], ['c', 'component <component>', 'show build tasks for a specific component (full component ID)'], ['j', 'json', 'return the output as JSON']]);
41
- _defineProperty(this, "arguments", [{
42
- name: 'job-id',
43
- description: 'the Ripple CI job ID (optional — auto-detects from current lane)'
44
- }]);
45
- }
46
- async resolveJob(jobId, flags) {
47
- if (jobId) {
48
- return this.ripple.getJob(jobId);
49
- }
50
- const laneId = flags.lane || this.ripple.getCurrentLaneId();
51
- if (!laneId) return null;
52
- const found = await this.ripple.findLatestJobForLane(laneId);
53
- return found ? this.ripple.getJob(found.id) : null;
54
- }
55
- async report([jobId], flags) {
56
- const job = await this.resolveJob(jobId, flags);
57
- if (!job) {
58
- if (!jobId) {
59
- const laneId = flags.lane || this.ripple.getCurrentLaneId();
60
- if (laneId) {
61
- return _chalk().default.red(`No Ripple CI job found for lane "${laneId}".`);
62
- }
63
- return _chalk().default.red('Could not find a Ripple CI job. Provide a job ID, use --lane, or run from a workspace on a lane.');
64
- }
65
- return _chalk().default.red(`Job "${jobId}" not found.`);
66
- }
67
- const lines = [];
68
- lines.push(_chalk().default.bold('Job Details'));
69
- lines.push(` ${_chalk().default.cyan('ID:')} ${job.id}`);
70
- if (job.name) lines.push(` ${_chalk().default.cyan('Name:')} ${job.name}`);
71
- lines.push(` ${_chalk().default.cyan('Status:')} ${(0, _rippleUtils().colorPhase)(job.status?.phase)}`);
72
- if (job.laneId) lines.push(` ${_chalk().default.cyan('Lane:')} ${job.laneId}`);
73
- if (job.user?.displayName) lines.push(` ${_chalk().default.cyan('User:')} ${job.user.displayName} (${job.user.username})`);
74
- if (job.status?.startedAt) lines.push(` ${_chalk().default.cyan('Started:')} ${new Date(job.status.startedAt).toLocaleString()}`);
75
- if (job.status?.finishedAt) lines.push(` ${_chalk().default.cyan('Finished:')} ${new Date(job.status.finishedAt).toLocaleString()}`);
76
- const jobUrl = this.ripple.getJobUrl(job);
77
- lines.push(` ${_chalk().default.cyan('URL:')} ${jobUrl}`);
78
- if (flags.component) {
79
- await this.appendComponentDetail(lines, job.id, flags.component);
80
- } else {
81
- this.appendComponentList(lines, job);
82
- }
83
- return lines.join('\n');
84
- }
85
- async appendComponentDetail(lines, jobId, componentId) {
86
- const summary = await this.ripple.getComponentBuildSummary(jobId, componentId);
87
- if (!summary) {
88
- lines.push('');
89
- lines.push(_chalk().default.yellow(`No build summary found for component "${componentId}" in this job.`));
90
- return;
91
- }
92
- lines.push('');
93
- lines.push(_chalk().default.bold(`Build Tasks for ${summary.name || componentId}`));
94
- if (!summary.tasks || summary.tasks.length === 0) {
95
- lines.push(_chalk().default.gray(' No build tasks found.'));
96
- return;
97
- }
98
- const table = new (_cliTable().default)({
99
- head: [_chalk().default.cyan('Task'), _chalk().default.cyan('Status'), _chalk().default.cyan('Started'), _chalk().default.cyan('Warnings')],
100
- chars: {
101
- top: '',
102
- 'top-mid': '',
103
- 'top-left': '',
104
- 'top-right': '',
105
- bottom: '',
106
- 'bottom-mid': '',
107
- 'bottom-left': '',
108
- 'bottom-right': '',
109
- left: '',
110
- 'left-mid': '',
111
- mid: '',
112
- 'mid-mid': '',
113
- right: '',
114
- 'right-mid': '',
115
- middle: ' '
116
- },
117
- style: {
118
- 'padding-left': 1,
119
- 'padding-right': 1
120
- }
121
- });
122
- for (const task of summary.tasks) {
123
- table.push([task.name || '-', (0, _rippleUtils().colorPhase)(task.status?.status), task.startTime ? new Date(task.startTime).toLocaleString() : '-', task.status?.warnings ? _chalk().default.yellow(String(task.status.warnings)) : '0']);
124
- }
125
- lines.push(table.toString());
126
- }
127
- appendComponentList(lines, job) {
128
- const ciNodes = this.ripple.getCiGraphNodes(job);
129
- if (ciNodes.length === 0) return;
130
- const totalComponents = ciNodes.reduce((sum, n) => sum + n.componentIds.length, 0);
131
- lines.push('');
132
- lines.push(_chalk().default.bold(`Components (${totalComponents})`));
133
- lines.push(_chalk().default.gray(' Use --component <id> to see build tasks for a specific component'));
134
- let shown = 0;
135
- for (const node of ciNodes) {
136
- if (shown >= 30) {
137
- lines.push(_chalk().default.gray(` ... and ${totalComponents - shown} more`));
138
- break;
139
- }
140
- for (const compId of node.componentIds) {
141
- if (shown >= 30) break;
142
- const icon = (0, _rippleUtils().isFailedPhase)(node.phase) ? _chalk().default.red('✗') : node.phase === 'SUCCESS' ? _chalk().default.green('✓') : _chalk().default.yellow('○');
143
- lines.push(` ${icon} ${compId}`);
144
- shown++;
145
- }
146
- }
147
- }
148
- async json([jobId], flags) {
149
- const job = await this.resolveJob(jobId, flags);
150
- if (flags.component && job) {
151
- const summary = await this.ripple.getComponentBuildSummary(job.id, flags.component);
152
- return {
153
- job,
154
- componentBuild: summary
155
- };
156
- }
157
- return {
158
- job
159
- };
160
- }
161
- }
162
- exports.RippleLogCmd = RippleLogCmd;
163
-
164
- //# sourceMappingURL=ripple-log.cmd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_cliTable","_rippleUtils","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","RippleLogCmd","constructor","ripple","name","description","resolveJob","jobId","flags","getJob","laneId","lane","getCurrentLaneId","found","findLatestJobForLane","id","report","job","chalk","red","lines","push","bold","cyan","colorPhase","status","phase","user","displayName","username","startedAt","Date","toLocaleString","finishedAt","jobUrl","getJobUrl","component","appendComponentDetail","appendComponentList","join","componentId","summary","getComponentBuildSummary","yellow","tasks","length","gray","table","Table","head","chars","top","bottom","left","mid","right","middle","style","task","startTime","warnings","toString","ciNodes","getCiGraphNodes","totalComponents","reduce","sum","n","componentIds","shown","node","compId","icon","isFailedPhase","green","json","componentBuild","exports"],"sources":["ripple-log.cmd.ts"],"sourcesContent":["import type { Command, CommandOptions } from '@teambit/cli';\nimport chalk from 'chalk';\nimport Table from 'cli-table';\nimport type { RippleMain } from './ripple.main.runtime';\nimport { colorPhase, isFailedPhase } from './ripple-utils';\n\nexport class RippleLogCmd implements Command {\n name = 'log [job-id]';\n description = 'show job details and component build task summaries (auto-detects current lane when no job-id given)';\n skipWorkspace = true;\n remoteOp = true;\n alias = '';\n\n options: CommandOptions = [\n ['', 'lane <lane>', 'lane ID to find the latest job for (default: detected from .bitmap)'],\n ['c', 'component <component>', 'show build tasks for a specific component (full component ID)'],\n ['j', 'json', 'return the output as JSON'],\n ];\n\n arguments = [{ name: 'job-id', description: 'the Ripple CI job ID (optional — auto-detects from current lane)' }];\n\n constructor(private ripple: RippleMain) {}\n\n private async resolveJob(jobId: string | undefined, flags: { lane?: string }) {\n if (jobId) {\n return this.ripple.getJob(jobId);\n }\n const laneId = flags.lane || this.ripple.getCurrentLaneId();\n if (!laneId) return null;\n const found = await this.ripple.findLatestJobForLane(laneId);\n return found ? this.ripple.getJob(found.id) : null;\n }\n\n async report([jobId]: [string], flags: { lane?: string; component?: string }) {\n const job = await this.resolveJob(jobId, flags);\n if (!job) {\n if (!jobId) {\n const laneId = flags.lane || this.ripple.getCurrentLaneId();\n if (laneId) {\n return chalk.red(`No Ripple CI job found for lane \"${laneId}\".`);\n }\n return chalk.red(\n 'Could not find a Ripple CI job. Provide a job ID, use --lane, or run from a workspace on a lane.'\n );\n }\n return chalk.red(`Job \"${jobId}\" not found.`);\n }\n\n const lines: string[] = [];\n lines.push(chalk.bold('Job Details'));\n lines.push(` ${chalk.cyan('ID:')} ${job.id}`);\n if (job.name) lines.push(` ${chalk.cyan('Name:')} ${job.name}`);\n lines.push(` ${chalk.cyan('Status:')} ${colorPhase(job.status?.phase)}`);\n if (job.laneId) lines.push(` ${chalk.cyan('Lane:')} ${job.laneId}`);\n if (job.user?.displayName)\n lines.push(` ${chalk.cyan('User:')} ${job.user.displayName} (${job.user.username})`);\n if (job.status?.startedAt)\n lines.push(` ${chalk.cyan('Started:')} ${new Date(job.status.startedAt).toLocaleString()}`);\n if (job.status?.finishedAt)\n lines.push(` ${chalk.cyan('Finished:')} ${new Date(job.status.finishedAt).toLocaleString()}`);\n const jobUrl = this.ripple.getJobUrl(job);\n lines.push(` ${chalk.cyan('URL:')} ${jobUrl}`);\n\n if (flags.component) {\n await this.appendComponentDetail(lines, job.id, flags.component);\n } else {\n this.appendComponentList(lines, job);\n }\n\n return lines.join('\\n');\n }\n\n private async appendComponentDetail(lines: string[], jobId: string, componentId: string) {\n const summary = await this.ripple.getComponentBuildSummary(jobId, componentId);\n if (!summary) {\n lines.push('');\n lines.push(chalk.yellow(`No build summary found for component \"${componentId}\" in this job.`));\n return;\n }\n lines.push('');\n lines.push(chalk.bold(`Build Tasks for ${summary.name || componentId}`));\n if (!summary.tasks || summary.tasks.length === 0) {\n lines.push(chalk.gray(' No build tasks found.'));\n return;\n }\n const table = new Table({\n head: [chalk.cyan('Task'), chalk.cyan('Status'), chalk.cyan('Started'), chalk.cyan('Warnings')],\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n middle: ' ',\n },\n style: { 'padding-left': 1, 'padding-right': 1 },\n });\n for (const task of summary.tasks) {\n table.push([\n task.name || '-',\n colorPhase(task.status?.status),\n task.startTime ? new Date(task.startTime).toLocaleString() : '-',\n task.status?.warnings ? chalk.yellow(String(task.status.warnings)) : '0',\n ]);\n }\n lines.push(table.toString());\n }\n\n private appendComponentList(lines: string[], job: { ciGraph?: string }) {\n const ciNodes = this.ripple.getCiGraphNodes(job);\n if (ciNodes.length === 0) return;\n const totalComponents = ciNodes.reduce((sum, n) => sum + n.componentIds.length, 0);\n lines.push('');\n lines.push(chalk.bold(`Components (${totalComponents})`));\n lines.push(chalk.gray(' Use --component <id> to see build tasks for a specific component'));\n let shown = 0;\n for (const node of ciNodes) {\n if (shown >= 30) {\n lines.push(chalk.gray(` ... and ${totalComponents - shown} more`));\n break;\n }\n for (const compId of node.componentIds) {\n if (shown >= 30) break;\n const icon = isFailedPhase(node.phase)\n ? chalk.red('✗')\n : node.phase === 'SUCCESS'\n ? chalk.green('✓')\n : chalk.yellow('○');\n lines.push(` ${icon} ${compId}`);\n shown++;\n }\n }\n }\n\n async json([jobId]: [string], flags: { lane?: string; component?: string }) {\n const job = await this.resolveJob(jobId, flags);\n if (flags.component && job) {\n const summary = await this.ripple.getComponentBuildSummary(job.id, flags.component);\n return { job, componentBuild: summary };\n }\n return { job };\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,28 +0,0 @@
1
- import type { Command, CommandOptions } from '@teambit/cli';
2
- import type { RippleMain } from './ripple.main.runtime';
3
- export declare class RippleRetryCmd implements Command {
4
- private ripple;
5
- name: string;
6
- description: string;
7
- skipWorkspace: boolean;
8
- remoteOp: boolean;
9
- alias: string;
10
- options: CommandOptions;
11
- arguments: {
12
- name: string;
13
- description: string;
14
- }[];
15
- constructor(ripple: RippleMain);
16
- report([jobId]: [string], flags: {
17
- lane?: string;
18
- }): Promise<string>;
19
- json([jobId]: [string], flags: {
20
- lane?: string;
21
- }): Promise<{
22
- error: string;
23
- job?: undefined;
24
- } | {
25
- job: import("./ripple.main.runtime").RippleJob | null;
26
- error?: undefined;
27
- }>;
28
- }
@@ -1,73 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.RippleRetryCmd = void 0;
7
- function _chalk() {
8
- const data = _interopRequireDefault(require("chalk"));
9
- _chalk = function () {
10
- return data;
11
- };
12
- return data;
13
- }
14
- function _rippleUtils() {
15
- const data = require("./ripple-utils");
16
- _rippleUtils = function () {
17
- return data;
18
- };
19
- return data;
20
- }
21
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
23
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
24
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
25
- class RippleRetryCmd {
26
- constructor(ripple) {
27
- this.ripple = ripple;
28
- _defineProperty(this, "name", 'retry [job-id]');
29
- _defineProperty(this, "description", 'retry a failed Ripple CI job (auto-detects current lane when no job-id given)');
30
- _defineProperty(this, "skipWorkspace", true);
31
- _defineProperty(this, "remoteOp", true);
32
- _defineProperty(this, "alias", '');
33
- _defineProperty(this, "options", [['', 'lane <lane>', 'lane ID to find the latest job for (default: detected from .bitmap)'], ['j', 'json', 'return the output as JSON']]);
34
- _defineProperty(this, "arguments", [{
35
- name: 'job-id',
36
- description: 'the Ripple CI job ID to retry (optional — auto-detects from current lane)'
37
- }]);
38
- }
39
- async report([jobId], flags) {
40
- const resolved = await (0, _rippleUtils().resolveJobId)(this.ripple, jobId, flags, {
41
- allowedPhases: ['FAILURE', 'FAILED'],
42
- actionVerb: 'retry'
43
- });
44
- if ('error' in resolved) return _chalk().default.red(resolved.error);
45
- const result = await this.ripple.retryJob(resolved.id);
46
- if (!result) {
47
- return _chalk().default.red(`Failed to retry job "${resolved.id}". Make sure the job exists and has failed.`);
48
- }
49
- const lines = [];
50
- lines.push(_chalk().default.green(`Successfully retried job "${resolved.id}".`));
51
- if (result.id) lines.push(` ${_chalk().default.cyan('New Job ID:')} ${result.id}`);
52
- if (result.status?.phase) lines.push(` ${_chalk().default.cyan('Status:')} ${result.status.phase}`);
53
- const jobUrl = this.ripple.getJobUrl(result);
54
- lines.push(` ${_chalk().default.cyan('URL:')} ${jobUrl}`);
55
- return lines.join('\n');
56
- }
57
- async json([jobId], flags) {
58
- const resolved = await (0, _rippleUtils().resolveJobId)(this.ripple, jobId, flags, {
59
- allowedPhases: ['FAILURE', 'FAILED'],
60
- actionVerb: 'retry'
61
- });
62
- if ('error' in resolved) return {
63
- error: resolved.error
64
- };
65
- const result = await this.ripple.retryJob(resolved.id);
66
- return {
67
- job: result
68
- };
69
- }
70
- }
71
- exports.RippleRetryCmd = RippleRetryCmd;
72
-
73
- //# sourceMappingURL=ripple-retry.cmd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_chalk","data","_interopRequireDefault","require","_rippleUtils","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","RippleRetryCmd","constructor","ripple","name","description","report","jobId","flags","resolved","resolveJobId","allowedPhases","actionVerb","chalk","red","error","result","retryJob","id","lines","push","green","cyan","status","phase","jobUrl","getJobUrl","join","json","job","exports"],"sources":["ripple-retry.cmd.ts"],"sourcesContent":["import type { Command, CommandOptions } from '@teambit/cli';\nimport chalk from 'chalk';\nimport type { RippleMain } from './ripple.main.runtime';\nimport { resolveJobId } from './ripple-utils';\n\nexport class RippleRetryCmd implements Command {\n name = 'retry [job-id]';\n description = 'retry a failed Ripple CI job (auto-detects current lane when no job-id given)';\n skipWorkspace = true;\n remoteOp = true;\n alias = '';\n\n options: CommandOptions = [\n ['', 'lane <lane>', 'lane ID to find the latest job for (default: detected from .bitmap)'],\n ['j', 'json', 'return the output as JSON'],\n ];\n\n arguments = [\n { name: 'job-id', description: 'the Ripple CI job ID to retry (optional — auto-detects from current lane)' },\n ];\n\n constructor(private ripple: RippleMain) {}\n\n async report([jobId]: [string], flags: { lane?: string }) {\n const resolved = await resolveJobId(this.ripple, jobId, flags, {\n allowedPhases: ['FAILURE', 'FAILED'],\n actionVerb: 'retry',\n });\n if ('error' in resolved) return chalk.red(resolved.error);\n\n const result = await this.ripple.retryJob(resolved.id);\n if (!result) {\n return chalk.red(`Failed to retry job \"${resolved.id}\". Make sure the job exists and has failed.`);\n }\n const lines: string[] = [];\n lines.push(chalk.green(`Successfully retried job \"${resolved.id}\".`));\n if (result.id) lines.push(` ${chalk.cyan('New Job ID:')} ${result.id}`);\n if (result.status?.phase) lines.push(` ${chalk.cyan('Status:')} ${result.status.phase}`);\n const jobUrl = this.ripple.getJobUrl(result);\n lines.push(` ${chalk.cyan('URL:')} ${jobUrl}`);\n return lines.join('\\n');\n }\n\n async json([jobId]: [string], flags: { lane?: string }) {\n const resolved = await resolveJobId(this.ripple, jobId, flags, {\n allowedPhases: ['FAILURE', 'FAILED'],\n actionVerb: 'retry',\n });\n if ('error' in resolved) return { error: resolved.error };\n const result = await this.ripple.retryJob(resolved.id);\n return { job: result };\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,28 +0,0 @@
1
- import type { Command, CommandOptions } from '@teambit/cli';
2
- import type { RippleMain } from './ripple.main.runtime';
3
- export declare class RippleStopCmd implements Command {
4
- private ripple;
5
- name: string;
6
- description: string;
7
- skipWorkspace: boolean;
8
- remoteOp: boolean;
9
- alias: string;
10
- options: CommandOptions;
11
- arguments: {
12
- name: string;
13
- description: string;
14
- }[];
15
- constructor(ripple: RippleMain);
16
- report([jobId]: [string], flags: {
17
- lane?: string;
18
- }): Promise<string>;
19
- json([jobId]: [string], flags: {
20
- lane?: string;
21
- }): Promise<{
22
- error: string;
23
- job?: undefined;
24
- } | {
25
- job: import("./ripple.main.runtime").RippleJob | null;
26
- error?: undefined;
27
- }>;
28
- }
@@ -1,67 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.RippleStopCmd = void 0;
7
- function _chalk() {
8
- const data = _interopRequireDefault(require("chalk"));
9
- _chalk = function () {
10
- return data;
11
- };
12
- return data;
13
- }
14
- function _rippleUtils() {
15
- const data = require("./ripple-utils");
16
- _rippleUtils = function () {
17
- return data;
18
- };
19
- return data;
20
- }
21
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
23
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
24
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
25
- class RippleStopCmd {
26
- constructor(ripple) {
27
- this.ripple = ripple;
28
- _defineProperty(this, "name", 'stop [job-id]');
29
- _defineProperty(this, "description", 'stop a running Ripple CI job (auto-detects current lane when no job-id given)');
30
- _defineProperty(this, "skipWorkspace", true);
31
- _defineProperty(this, "remoteOp", true);
32
- _defineProperty(this, "alias", '');
33
- _defineProperty(this, "options", [['', 'lane <lane>', 'lane ID to find the latest job for (default: detected from .bitmap)'], ['j', 'json', 'return the output as JSON']]);
34
- _defineProperty(this, "arguments", [{
35
- name: 'job-id',
36
- description: 'the Ripple CI job ID to stop (optional — auto-detects from current lane)'
37
- }]);
38
- }
39
- async report([jobId], flags) {
40
- const resolved = await (0, _rippleUtils().resolveJobId)(this.ripple, jobId, flags, {
41
- allowedPhases: ['RUNNING', 'IN_PROGRESS', 'PROCESSING'],
42
- actionVerb: 'stop'
43
- });
44
- if ('error' in resolved) return _chalk().default.red(resolved.error);
45
- const result = await this.ripple.stopJob(resolved.id);
46
- if (!result) {
47
- return _chalk().default.red(`Failed to stop job "${resolved.id}". Make sure the job exists and is currently running.`);
48
- }
49
- return _chalk().default.green(`Successfully stopped job "${resolved.id}".`);
50
- }
51
- async json([jobId], flags) {
52
- const resolved = await (0, _rippleUtils().resolveJobId)(this.ripple, jobId, flags, {
53
- allowedPhases: ['RUNNING', 'IN_PROGRESS', 'PROCESSING'],
54
- actionVerb: 'stop'
55
- });
56
- if ('error' in resolved) return {
57
- error: resolved.error
58
- };
59
- const result = await this.ripple.stopJob(resolved.id);
60
- return {
61
- job: result
62
- };
63
- }
64
- }
65
- exports.RippleStopCmd = RippleStopCmd;
66
-
67
- //# sourceMappingURL=ripple-stop.cmd.js.map