github-issue-tower-defence-management 1.144.3 → 1.144.5
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.
- package/CHANGELOG.md +19 -0
- package/bin/adapter/repositories/NodeTmuxSessionRepository.js +3 -25
- package/bin/adapter/repositories/NodeTmuxSessionRepository.js.map +1 -1
- package/bin/domain/usecases/console/GenerateConsoleListsUseCase.js +1 -2
- package/bin/domain/usecases/console/GenerateConsoleListsUseCase.js.map +1 -1
- package/package.json +12 -2
- package/src/adapter/repositories/NodeTmuxSessionRepository.test.ts +19 -34
- package/src/adapter/repositories/NodeTmuxSessionRepository.ts +3 -32
- package/src/domain/usecases/console/GenerateConsoleListsUseCase.test.ts +0 -30
- package/src/domain/usecases/console/GenerateConsoleListsUseCase.ts +1 -7
- package/src/releaseConfig.test.ts +40 -0
- package/types/adapter/repositories/NodeTmuxSessionRepository.d.ts +0 -1
- package/types/adapter/repositories/NodeTmuxSessionRepository.d.ts.map +1 -1
- package/types/domain/usecases/console/GenerateConsoleListsUseCase.d.ts +0 -1
- package/types/domain/usecases/console/GenerateConsoleListsUseCase.d.ts.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
## [1.144.5](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.144.4...v1.144.5) (2026-08-05)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **tmux:** stop leaving blank lines in a session composer when sending keys ([#1384](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1384)) ([0bfa16e](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/0bfa16efa2ab4c9c52c21c01dd29549a5551d802)), closes [#1383](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1383)
|
|
7
|
+
|
|
8
|
+
## [1.144.4](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.144.3...v1.144.4) (2026-08-04)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **release:** publish a patch release when a revert commit lands on main ([#1382](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1382)) ([1d588c6](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/1d588c602bb7ae5e978158cef9f309a3f6910dce)), closes [#1381](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1381)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Reverts
|
|
17
|
+
|
|
18
|
+
* **console:** keep excluding project items that have no assignee ([#1380](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1380)) ([bf6de96](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/bf6de9629b2bfe0e7ffb32a5b958824afa4683cf)), closes [#1379](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1379)
|
|
19
|
+
|
|
1
20
|
## [1.144.3](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.144.2...v1.144.3) (2026-08-04)
|
|
2
21
|
|
|
3
22
|
|
|
@@ -39,8 +39,8 @@ const path = __importStar(require("path"));
|
|
|
39
39
|
const clSessionScopeUnitName_1 = require("./clSessionScopeUnitName");
|
|
40
40
|
const clSessionScopeUnitNameFromCgroupContent_1 = require("./clSessionScopeUnitNameFromCgroupContent");
|
|
41
41
|
const DEFAULT_SEND_KEYS_SUBMIT_DELAY_MS = 1000;
|
|
42
|
-
const
|
|
43
|
-
const
|
|
42
|
+
const BRACKETED_PASTE_START = '\x1b[200~';
|
|
43
|
+
const BRACKETED_PASTE_END = '\x1b[201~';
|
|
44
44
|
const shellSingleQuote = (value) => `'${value.replace(/'/g, `'\\''`)}'`;
|
|
45
45
|
class NodeTmuxSessionRepository {
|
|
46
46
|
constructor(localCommandRunner, procDirectory = '/proc', submitDelayMilliseconds = DEFAULT_SEND_KEYS_SUBMIT_DELAY_MS) {
|
|
@@ -136,17 +136,13 @@ class NodeTmuxSessionRepository {
|
|
|
136
136
|
'-t',
|
|
137
137
|
sessionName,
|
|
138
138
|
'-l',
|
|
139
|
-
literalText
|
|
139
|
+
`${BRACKETED_PASTE_START}${literalText}${BRACKETED_PASTE_END}`,
|
|
140
140
|
]);
|
|
141
141
|
if (literalResult.exitCode !== 0) {
|
|
142
142
|
throw new Error(`Failed to send keys to tmux session "${sessionName}": exit code ${literalResult.exitCode}${literalResult.stderr ? `: ${literalResult.stderr}` : ''}`);
|
|
143
143
|
}
|
|
144
144
|
await this.delaySubmit();
|
|
145
145
|
await this.sendEnter(sessionName);
|
|
146
|
-
if (await this.messageStillInComposer(sessionName, literalText)) {
|
|
147
|
-
await this.delaySubmit();
|
|
148
|
-
await this.sendEnter(sessionName);
|
|
149
|
-
}
|
|
150
146
|
};
|
|
151
147
|
this.launchBareNameLeaderSession = async (name) => {
|
|
152
148
|
const sessionName = name.replace(/[.:]/g, '_');
|
|
@@ -167,24 +163,6 @@ class NodeTmuxSessionRepository {
|
|
|
167
163
|
throw new Error(`Failed to send Enter to tmux session "${sessionName}": exit code ${enterResult.exitCode}${enterResult.stderr ? `: ${enterResult.stderr}` : ''}`);
|
|
168
164
|
}
|
|
169
165
|
};
|
|
170
|
-
this.messageStillInComposer = async (sessionName, literalText) => {
|
|
171
|
-
const probe = literalText
|
|
172
|
-
.trim()
|
|
173
|
-
.split('\n', 1)[0]
|
|
174
|
-
.slice(0, SEND_KEYS_COMPOSER_PROBE_LENGTH);
|
|
175
|
-
if (probe.length === 0) {
|
|
176
|
-
return false;
|
|
177
|
-
}
|
|
178
|
-
const { stdout, exitCode } = await this.localCommandRunner.runCommand('tmux', ['capture-pane', '-p', '-t', sessionName]);
|
|
179
|
-
if (exitCode !== 0) {
|
|
180
|
-
return false;
|
|
181
|
-
}
|
|
182
|
-
const tail = stdout
|
|
183
|
-
.split('\n')
|
|
184
|
-
.slice(-SEND_KEYS_COMPOSER_TAIL_LINES)
|
|
185
|
-
.join('\n');
|
|
186
|
-
return tail.includes(probe);
|
|
187
|
-
};
|
|
188
166
|
this.delaySubmit = async () => {
|
|
189
167
|
if (this.submitDelayMilliseconds <= 0) {
|
|
190
168
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeTmuxSessionRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/NodeTmuxSessionRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAI7B,qEAAkE;AAClE,uGAAoG;AAEpG,MAAM,iCAAiC,GAAG,IAAI,CAAC;AAC/C,MAAM
|
|
1
|
+
{"version":3,"file":"NodeTmuxSessionRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/NodeTmuxSessionRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,11 +59,10 @@ class GenerateConsoleListsUseCase {
|
|
|
59
59
|
};
|
|
60
60
|
};
|
|
61
61
|
this.isActionable = (issue, assigneeLogin) => issue.isClosed === false &&
|
|
62
|
-
|
|
62
|
+
issue.assignees.includes(assigneeLogin) &&
|
|
63
63
|
issue.dependedIssueUrls.length === 0 &&
|
|
64
64
|
issue.nextActionDate === null &&
|
|
65
65
|
issue.nextActionHour === null;
|
|
66
|
-
this.isOwnedByNobodyElse = (issue, assigneeLogin) => issue.assignees.length === 0 || issue.assignees.includes(assigneeLogin);
|
|
67
66
|
this.workflowBlockerSelector = (workflowBlockerStoryName) => {
|
|
68
67
|
const target = workflowBlockerStoryName?.toLowerCase() ?? '';
|
|
69
68
|
if (target === '') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenerateConsoleListsUseCase.js","sourceRoot":"","sources":["../../../../src/domain/usecases/console/GenerateConsoleListsUseCase.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"GenerateConsoleListsUseCase.js","sourceRoot":"","sources":["../../../../src/domain/usecases/console/GenerateConsoleListsUseCase.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "github-issue-tower-defence-management",
|
|
3
|
-
"version": "1.144.
|
|
3
|
+
"version": "1.144.5",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "bin/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -38,7 +38,17 @@
|
|
|
38
38
|
},
|
|
39
39
|
"release": {
|
|
40
40
|
"plugins": [
|
|
41
|
-
|
|
41
|
+
[
|
|
42
|
+
"@semantic-release/commit-analyzer",
|
|
43
|
+
{
|
|
44
|
+
"releaseRules": [
|
|
45
|
+
{
|
|
46
|
+
"type": "revert",
|
|
47
|
+
"release": "patch"
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
],
|
|
42
52
|
"@semantic-release/release-notes-generator",
|
|
43
53
|
"@semantic-release/changelog",
|
|
44
54
|
[
|
|
@@ -296,16 +296,13 @@ describe('NodeTmuxSessionRepository', () => {
|
|
|
296
296
|
});
|
|
297
297
|
|
|
298
298
|
describe('sendKeys', () => {
|
|
299
|
-
it('
|
|
299
|
+
it('wraps the message in bracketed paste markers and submits it with exactly one Enter', async () => {
|
|
300
300
|
const runner = createMockRunner();
|
|
301
|
-
runner.runCommand
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
stderr: '',
|
|
307
|
-
exitCode: 0,
|
|
308
|
-
});
|
|
301
|
+
runner.runCommand.mockResolvedValue({
|
|
302
|
+
stdout: '',
|
|
303
|
+
stderr: '',
|
|
304
|
+
exitCode: 0,
|
|
305
|
+
});
|
|
309
306
|
const repository = new NodeTmuxSessionRepository(runner, '/proc', 0);
|
|
310
307
|
|
|
311
308
|
await repository.sendKeys('session-a', 'checkpoint now');
|
|
@@ -315,7 +312,7 @@ describe('NodeTmuxSessionRepository', () => {
|
|
|
315
312
|
'-t',
|
|
316
313
|
'session-a',
|
|
317
314
|
'-l',
|
|
318
|
-
'checkpoint now',
|
|
315
|
+
'\x1b[200~checkpoint now\x1b[201~',
|
|
319
316
|
]);
|
|
320
317
|
expect(runner.runCommand.mock.calls[1][1]).toEqual([
|
|
321
318
|
'send-keys',
|
|
@@ -323,37 +320,25 @@ describe('NodeTmuxSessionRepository', () => {
|
|
|
323
320
|
'session-a',
|
|
324
321
|
'Enter',
|
|
325
322
|
]);
|
|
326
|
-
expect(runner.runCommand.mock.calls
|
|
327
|
-
'capture-pane',
|
|
328
|
-
'-p',
|
|
329
|
-
'-t',
|
|
330
|
-
'session-a',
|
|
331
|
-
]);
|
|
332
|
-
expect(runner.runCommand.mock.calls).toHaveLength(3);
|
|
323
|
+
expect(runner.runCommand.mock.calls).toHaveLength(2);
|
|
333
324
|
});
|
|
334
325
|
|
|
335
|
-
it('
|
|
326
|
+
it('never inspects the composer and never sends a second Enter', async () => {
|
|
336
327
|
const runner = createMockRunner();
|
|
337
|
-
runner.runCommand
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
stderr: '',
|
|
343
|
-
exitCode: 0,
|
|
344
|
-
})
|
|
345
|
-
.mockResolvedValueOnce({ stdout: '', stderr: '', exitCode: 0 });
|
|
328
|
+
runner.runCommand.mockResolvedValue({
|
|
329
|
+
stdout: '> checkpoint now',
|
|
330
|
+
stderr: '',
|
|
331
|
+
exitCode: 0,
|
|
332
|
+
});
|
|
346
333
|
const repository = new NodeTmuxSessionRepository(runner, '/proc', 0);
|
|
347
334
|
|
|
348
335
|
await repository.sendKeys('session-a', 'checkpoint now');
|
|
349
336
|
|
|
350
|
-
|
|
351
|
-
expect(
|
|
352
|
-
'
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
'Enter',
|
|
356
|
-
]);
|
|
337
|
+
const commands = runner.runCommand.mock.calls.map((call) => call[1]);
|
|
338
|
+
expect(
|
|
339
|
+
commands.filter((args) => args.includes('capture-pane')),
|
|
340
|
+
).toHaveLength(0);
|
|
341
|
+
expect(commands.filter((args) => args.includes('Enter'))).toHaveLength(1);
|
|
357
342
|
});
|
|
358
343
|
|
|
359
344
|
it('throws when sending the literal text fails', async () => {
|
|
@@ -7,8 +7,8 @@ import { clSessionScopeUnitName } from './clSessionScopeUnitName';
|
|
|
7
7
|
import { clSessionScopeUnitNameFromCgroupContent } from './clSessionScopeUnitNameFromCgroupContent';
|
|
8
8
|
|
|
9
9
|
const DEFAULT_SEND_KEYS_SUBMIT_DELAY_MS = 1000;
|
|
10
|
-
const
|
|
11
|
-
const
|
|
10
|
+
const BRACKETED_PASTE_START = '\x1b[200~';
|
|
11
|
+
const BRACKETED_PASTE_END = '\x1b[201~';
|
|
12
12
|
|
|
13
13
|
const shellSingleQuote = (value: string): string =>
|
|
14
14
|
`'${value.replace(/'/g, `'\\''`)}'`;
|
|
@@ -152,7 +152,7 @@ export class NodeTmuxSessionRepository implements TmuxSessionRepository {
|
|
|
152
152
|
'-t',
|
|
153
153
|
sessionName,
|
|
154
154
|
'-l',
|
|
155
|
-
literalText
|
|
155
|
+
`${BRACKETED_PASTE_START}${literalText}${BRACKETED_PASTE_END}`,
|
|
156
156
|
]);
|
|
157
157
|
if (literalResult.exitCode !== 0) {
|
|
158
158
|
throw new Error(
|
|
@@ -163,10 +163,6 @@ export class NodeTmuxSessionRepository implements TmuxSessionRepository {
|
|
|
163
163
|
}
|
|
164
164
|
await this.delaySubmit();
|
|
165
165
|
await this.sendEnter(sessionName);
|
|
166
|
-
if (await this.messageStillInComposer(sessionName, literalText)) {
|
|
167
|
-
await this.delaySubmit();
|
|
168
|
-
await this.sendEnter(sessionName);
|
|
169
|
-
}
|
|
170
166
|
};
|
|
171
167
|
|
|
172
168
|
launchBareNameLeaderSession = async (name: string): Promise<void> => {
|
|
@@ -201,31 +197,6 @@ export class NodeTmuxSessionRepository implements TmuxSessionRepository {
|
|
|
201
197
|
}
|
|
202
198
|
};
|
|
203
199
|
|
|
204
|
-
private messageStillInComposer = async (
|
|
205
|
-
sessionName: string,
|
|
206
|
-
literalText: string,
|
|
207
|
-
): Promise<boolean> => {
|
|
208
|
-
const probe = literalText
|
|
209
|
-
.trim()
|
|
210
|
-
.split('\n', 1)[0]
|
|
211
|
-
.slice(0, SEND_KEYS_COMPOSER_PROBE_LENGTH);
|
|
212
|
-
if (probe.length === 0) {
|
|
213
|
-
return false;
|
|
214
|
-
}
|
|
215
|
-
const { stdout, exitCode } = await this.localCommandRunner.runCommand(
|
|
216
|
-
'tmux',
|
|
217
|
-
['capture-pane', '-p', '-t', sessionName],
|
|
218
|
-
);
|
|
219
|
-
if (exitCode !== 0) {
|
|
220
|
-
return false;
|
|
221
|
-
}
|
|
222
|
-
const tail = stdout
|
|
223
|
-
.split('\n')
|
|
224
|
-
.slice(-SEND_KEYS_COMPOSER_TAIL_LINES)
|
|
225
|
-
.join('\n');
|
|
226
|
-
return tail.includes(probe);
|
|
227
|
-
};
|
|
228
|
-
|
|
229
200
|
private delaySubmit = async (): Promise<void> => {
|
|
230
201
|
if (this.submitDelayMilliseconds <= 0) {
|
|
231
202
|
return;
|
|
@@ -152,36 +152,6 @@ describe('GenerateConsoleListsUseCase', () => {
|
|
|
152
152
|
const result = run([makeIssue({ status: 'Unread' })]);
|
|
153
153
|
expect(result.unread.items).toHaveLength(1);
|
|
154
154
|
});
|
|
155
|
-
|
|
156
|
-
it('accepts an unread issue that has no assignee', () => {
|
|
157
|
-
const result = run([makeIssue({ status: 'Unread', assignees: [] })]);
|
|
158
|
-
expect(result.unread.items).toHaveLength(1);
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
it('accepts an unread pull request that has no assignee', () => {
|
|
162
|
-
const result = run([
|
|
163
|
-
makeIssue({ status: 'Unread', assignees: [], isPr: true }),
|
|
164
|
-
]);
|
|
165
|
-
expect(result.unread.items).toHaveLength(1);
|
|
166
|
-
});
|
|
167
|
-
|
|
168
|
-
it('accepts a todo-by-human issue that has no assignee', () => {
|
|
169
|
-
const result = run([
|
|
170
|
-
makeIssue({ status: 'Todo by human', assignees: [] }),
|
|
171
|
-
]);
|
|
172
|
-
expect(result['todo-by-human'].items).toHaveLength(1);
|
|
173
|
-
});
|
|
174
|
-
|
|
175
|
-
it('keeps rejecting an unassigned issue that is blocked by a depended issue url', () => {
|
|
176
|
-
const result = run([
|
|
177
|
-
makeIssue({
|
|
178
|
-
status: 'Unread',
|
|
179
|
-
assignees: [],
|
|
180
|
-
dependedIssueUrls: ['https://github.com/demo/repo/issues/99'],
|
|
181
|
-
}),
|
|
182
|
-
]);
|
|
183
|
-
expect(result.unread.items).toHaveLength(0);
|
|
184
|
-
});
|
|
185
155
|
});
|
|
186
156
|
|
|
187
157
|
describe('per-tab selectors', () => {
|
|
@@ -208,17 +208,11 @@ export class GenerateConsoleListsUseCase {
|
|
|
208
208
|
|
|
209
209
|
private isActionable = (issue: Issue, assigneeLogin: string): boolean =>
|
|
210
210
|
issue.isClosed === false &&
|
|
211
|
-
|
|
211
|
+
issue.assignees.includes(assigneeLogin) &&
|
|
212
212
|
issue.dependedIssueUrls.length === 0 &&
|
|
213
213
|
issue.nextActionDate === null &&
|
|
214
214
|
issue.nextActionHour === null;
|
|
215
215
|
|
|
216
|
-
private isOwnedByNobodyElse = (
|
|
217
|
-
issue: Issue,
|
|
218
|
-
assigneeLogin: string,
|
|
219
|
-
): boolean =>
|
|
220
|
-
issue.assignees.length === 0 || issue.assignees.includes(assigneeLogin);
|
|
221
|
-
|
|
222
216
|
private workflowBlockerSelector = (
|
|
223
217
|
workflowBlockerStoryName: string | null,
|
|
224
218
|
): ((issue: Issue) => boolean) => {
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { readFileSync } from 'fs';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
|
|
4
|
+
const isRecord = (value: unknown): value is Record<string, unknown> =>
|
|
5
|
+
value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
6
|
+
|
|
7
|
+
const isCommitAnalyzerEntry = (
|
|
8
|
+
plugin: unknown,
|
|
9
|
+
): plugin is [string, Record<string, unknown>] =>
|
|
10
|
+
Array.isArray(plugin) &&
|
|
11
|
+
plugin[0] === '@semantic-release/commit-analyzer' &&
|
|
12
|
+
isRecord(plugin[1]);
|
|
13
|
+
|
|
14
|
+
const readCommitAnalyzerReleaseRules = (): unknown => {
|
|
15
|
+
const raw: unknown = JSON.parse(
|
|
16
|
+
readFileSync(join(__dirname, '..', 'package.json'), 'utf8'),
|
|
17
|
+
);
|
|
18
|
+
if (!isRecord(raw) || !isRecord(raw.release)) {
|
|
19
|
+
throw new Error('package.json must declare a release section');
|
|
20
|
+
}
|
|
21
|
+
const plugins = raw.release.plugins;
|
|
22
|
+
if (!Array.isArray(plugins)) {
|
|
23
|
+
throw new Error('package.json must declare release.plugins');
|
|
24
|
+
}
|
|
25
|
+
const entry = plugins.find(isCommitAnalyzerEntry);
|
|
26
|
+
if (entry === undefined) {
|
|
27
|
+
throw new Error(
|
|
28
|
+
'commit-analyzer plugin must be configured with options in package.json',
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
return entry[1].releaseRules;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
describe('release config', () => {
|
|
35
|
+
it('releases a patch version for a revert commit', () => {
|
|
36
|
+
expect(readCommitAnalyzerReleaseRules()).toEqual(
|
|
37
|
+
expect.arrayContaining([{ type: 'revert', release: 'patch' }]),
|
|
38
|
+
);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
@@ -16,7 +16,6 @@ export declare class NodeTmuxSessionRepository implements TmuxSessionRepository
|
|
|
16
16
|
sendKeys: (sessionName: string, literalText: string) => Promise<void>;
|
|
17
17
|
launchBareNameLeaderSession: (name: string) => Promise<void>;
|
|
18
18
|
private sendEnter;
|
|
19
|
-
private messageStillInComposer;
|
|
20
19
|
private delaySubmit;
|
|
21
20
|
}
|
|
22
21
|
//# sourceMappingURL=NodeTmuxSessionRepository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeTmuxSessionRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/NodeTmuxSessionRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6DAA6D,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAC;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAWxE,qBAAa,yBAA0B,YAAW,qBAAqB;IAEnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,uBAAuB;gBAFvB,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,GAAE,MAAgB,EAC/B,uBAAuB,GAAE,MAA0C;IAGtF,oBAAoB,QAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAYhD;IAEF,4BAA4B,QAAa,OAAO,CAAC,eAAe,EAAE,CAAC,CAkBjE;IAEF,kCAAkC,QAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAY9D;IAEF,qBAAqB,GACnB,aAAa,MAAM,EACnB,iBAAiB,MAAM,EACvB,UAAU,MAAM,KACf,OAAO,CAAC,IAAI,CAAC,CAcd;IAEF,WAAW,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CActD;IAEF,cAAc,QAAa,OAAO,CAAC,IAAI,CAAC,CAatC;IAEF,OAAO,CAAC,aAAa,CAsBnB;IAEF,QAAQ,GACN,aAAa,MAAM,EACnB,aAAa,MAAM,KAClB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"NodeTmuxSessionRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/NodeTmuxSessionRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6DAA6D,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAC;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAWxE,qBAAa,yBAA0B,YAAW,qBAAqB;IAEnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,uBAAuB;gBAFvB,kBAAkB,EAAE,kBAAkB,EACtC,aAAa,GAAE,MAAgB,EAC/B,uBAAuB,GAAE,MAA0C;IAGtF,oBAAoB,QAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAYhD;IAEF,4BAA4B,QAAa,OAAO,CAAC,eAAe,EAAE,CAAC,CAkBjE;IAEF,kCAAkC,QAAa,OAAO,CAAC,MAAM,EAAE,CAAC,CAY9D;IAEF,qBAAqB,GACnB,aAAa,MAAM,EACnB,iBAAiB,MAAM,EACvB,UAAU,MAAM,KACf,OAAO,CAAC,IAAI,CAAC,CAcd;IAEF,WAAW,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CActD;IAEF,cAAc,QAAa,OAAO,CAAC,IAAI,CAAC,CAatC;IAEF,OAAO,CAAC,aAAa,CAsBnB;IAEF,QAAQ,GACN,aAAa,MAAM,EACnB,aAAa,MAAM,KAClB,OAAO,CAAC,IAAI,CAAC,CAiBd;IAEF,2BAA2B,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAc/D;IAEF,OAAO,CAAC,SAAS,CAcf;IAEF,OAAO,CAAC,WAAW,CAOjB;CACH"}
|
|
@@ -63,7 +63,6 @@ export type GenerateConsoleListsInput = {
|
|
|
63
63
|
export declare class GenerateConsoleListsUseCase {
|
|
64
64
|
run: (input: GenerateConsoleListsInput) => ConsoleLists;
|
|
65
65
|
private isActionable;
|
|
66
|
-
private isOwnedByNobodyElse;
|
|
67
66
|
private workflowBlockerSelector;
|
|
68
67
|
private buildRelatedOpenPullRequestUrlsByIssueUrl;
|
|
69
68
|
private projectItem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenerateConsoleListsUseCase.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/console/GenerateConsoleListsUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAQ9D,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhD,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B,EAAE,MAAM,EAAE,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,kBAAkB,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;IACrD,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC1C,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,oBAAoB,GACpB,eAAe,GACf,eAAe,CAAC;AAEpB,MAAM,MAAM,YAAY,GAAG;IACzB,kBAAkB,EAAE,gBAAgB,CAAC;IACrC,GAAG,EAAE,gBAAgB,CAAC;IACtB,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,gBAAgB,CAAC;IACzB,oBAAoB,EAAE,gBAAgB,CAAC;IACvC,eAAe,EAAE,gBAAgB,CAAC;IAClC,eAAe,EAAE,gBAAgB,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC,CAAC;AAIF,qBAAa,2BAA2B;IACtC,GAAG,GAAI,OAAO,yBAAyB,KAAG,YAAY,CAyHpD;IAEF,OAAO,CAAC,YAAY,CAKY;IAEhC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"GenerateConsoleListsUseCase.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/console/GenerateConsoleListsUseCase.ts"],"names":[],"mappings":"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"}
|