github-issue-tower-defence-management 1.142.0 → 1.142.1

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 CHANGED
@@ -1,3 +1,10 @@
1
+ ## [1.142.1](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.142.0...v1.142.1) (2026-07-29)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **dashboard:** drop the aggregate line label, align its column, and show used percentage ([#1307](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1307)) ([4f188f5](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/4f188f506ee020addfc91e60a9df22fb77c2225f))
7
+
1
8
  # [1.142.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.141.0...v1.142.0) (2026-07-29)
2
9
 
3
10
 
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ComposeDashboardUseCase = exports.formatTokenRowLine = exports.formatSevenDayWindowAggregateLine = exports.formatProjectRowLine = exports.formatProjectHeaderLine = exports.formatMachineStatusLines = exports.formatResetCountdown = exports.roundHalfToEven = exports.PROJECT_ROW_WIDTH_BUDGET = void 0;
3
+ exports.ComposeDashboardUseCase = exports.formatTokenRowLine = exports.formatSevenDayWindowAggregateLine = exports.SEVEN_DAY_UTILIZATION_COLUMN_START = exports.formatProjectRowLine = exports.formatProjectHeaderLine = exports.formatMachineStatusLines = exports.formatResetCountdown = exports.roundHalfToEven = exports.TOKEN_UTILIZATION_WIDTH = exports.STATUS_DOT_DISPLAY_WIDTH = exports.PROJECT_ROW_WIDTH_BUDGET = void 0;
4
4
  exports.PROJECT_ROW_WIDTH_BUDGET = 32;
5
5
  const PROJECT_COLUMNS = [
6
6
  { header: 'unr', key: 'unread' },
@@ -12,11 +12,12 @@ const PROJECT_COLUMNS = [
12
12
  { header: 'dep', key: 'dep' },
13
13
  ];
14
14
  const PROJECT_COLUMN_WIDTH = 3;
15
- const SEVERITY_BLANK = ' ';
16
- const TOKEN_COLOR_DOT_WIDTH = 1;
15
+ exports.STATUS_DOT_DISPLAY_WIDTH = 2;
16
+ const SEVERITY_BLANK = ' '.repeat(exports.STATUS_DOT_DISPLAY_WIDTH);
17
17
  const TOKEN_NAME_WIDTH = 4;
18
- const TOKEN_UTILIZATION_WIDTH = 4;
18
+ exports.TOKEN_UTILIZATION_WIDTH = 4;
19
19
  const TOKEN_RESET_WIDTH = 7;
20
+ const TOKEN_SEGMENT_SEPARATOR = ' ';
20
21
  const TOKEN_COLOR_DOT = {
21
22
  G: '🟢',
22
23
  Y: '🟡',
@@ -143,7 +144,7 @@ const formatProjectRowLine = (project) => {
143
144
  return mark + padEnd(project.code, 2, ' ') + cells;
144
145
  };
145
146
  exports.formatProjectRowLine = formatProjectRowLine;
146
- const formatUtilization = (percent) => padStart(percent === null ? '?' : `${percent}%`, TOKEN_UTILIZATION_WIDTH);
147
+ const formatUtilization = (percent) => padStart(percent === null ? '?' : `${percent}%`, exports.TOKEN_UTILIZATION_WIDTH);
147
148
  const formatReset = (resetSeconds) => resetSeconds === null ? '?' : (0, exports.formatResetCountdown)(resetSeconds);
148
149
  const tokenSortKey = (token) => token.sevenDayResetSeconds === null
149
150
  ? [1, 0]
@@ -162,22 +163,25 @@ const sortTokens = (tokens) => tokens
162
163
  return left.index - right.index;
163
164
  })
164
165
  .map((entry) => entry.token);
165
- const joinTokenRowSegments = (segments) => segments.join(' ');
166
- const SEVEN_DAY_WINDOW_AGGREGATE_LABEL = '7d';
166
+ const joinTokenRowSegments = (segments) => segments.join(TOKEN_SEGMENT_SEPARATOR);
167
+ exports.SEVEN_DAY_UTILIZATION_COLUMN_START = exports.STATUS_DOT_DISPLAY_WIDTH +
168
+ TOKEN_NAME_WIDTH +
169
+ TOKEN_SEGMENT_SEPARATOR.length +
170
+ exports.TOKEN_UTILIZATION_WIDTH +
171
+ TOKEN_SEGMENT_SEPARATOR.length +
172
+ TOKEN_RESET_WIDTH +
173
+ TOKEN_SEGMENT_SEPARATOR.length;
167
174
  const formatSevenDayWindowAggregateLine = (aggregate) => {
168
175
  if (aggregate === null) {
169
176
  return null;
170
177
  }
171
- const leftPercent = (0, exports.roundHalfToEven)(100 - aggregate.usedPercent);
178
+ const usedPercent = (0, exports.roundHalfToEven)(aggregate.usedPercent);
172
179
  const includedCountSuffix = aggregate.includedTokenCount === aggregate.totalTokenCount
173
180
  ? ''
174
181
  : ` (${aggregate.includedTokenCount})`;
175
- return (joinTokenRowSegments([
176
- padEnd(SEVEN_DAY_WINDOW_AGGREGATE_LABEL, TOKEN_COLOR_DOT_WIDTH + TOKEN_NAME_WIDTH, ' '),
177
- padEnd('', TOKEN_UTILIZATION_WIDTH, ' '),
178
- padEnd('', TOKEN_RESET_WIDTH, ' '),
179
- formatUtilization(leftPercent),
180
- ]) + includedCountSuffix);
182
+ return (padEnd('', exports.SEVEN_DAY_UTILIZATION_COLUMN_START, ' ') +
183
+ formatUtilization(usedPercent) +
184
+ includedCountSuffix);
181
185
  };
182
186
  exports.formatSevenDayWindowAggregateLine = formatSevenDayWindowAggregateLine;
183
187
  const formatTokenRowLine = (token) => {
@@ -1 +1 @@
1
- {"version":3,"file":"ComposeDashboardUseCase.js","sourceRoot":"","sources":["../../../../src/domain/usecases/dashboard/ComposeDashboardUseCase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ComposeDashboardUseCase.js","sourceRoot":"","sources":["../../../../src/domain/usecases/dashboard/ComposeDashboardUseCase.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.142.0",
3
+ "version": "1.142.1",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "scripts": {
@@ -78,7 +78,7 @@
78
78
  "class-variance-authority": "^0.7.1",
79
79
  "clsx": "^2.1.1",
80
80
  "commitlint": "^21.0.0",
81
- "conventional-changelog-conventionalcommits": "^9.0.0",
81
+ "conventional-changelog-conventionalcommits": "^10.2.1",
82
82
  "eslint": "^10.5.0",
83
83
  "eslint-plugin-import-x": "^4.0.0",
84
84
  "eslint-plugin-unused-imports": "^4.4.1",
@@ -2,6 +2,9 @@ import {
2
2
  ComposeDashboardInput,
3
3
  ComposeDashboardUseCase,
4
4
  PROJECT_ROW_WIDTH_BUDGET,
5
+ SEVEN_DAY_UTILIZATION_COLUMN_START,
6
+ STATUS_DOT_DISPLAY_WIDTH,
7
+ TOKEN_UTILIZATION_WIDTH,
5
8
  formatMachineStatusLines,
6
9
  formatProjectHeaderLine,
7
10
  formatProjectRowLine,
@@ -11,7 +14,7 @@ import {
11
14
  roundHalfToEven,
12
15
  } from './ComposeDashboardUseCase';
13
16
  import { DashboardRow } from './GenerateDashboardRowUseCase';
14
- import { TokenStatus } from './GenerateTokenStatusUseCase';
17
+ import { TokenStatus, TokenStatusColor } from './GenerateTokenStatusUseCase';
15
18
 
16
19
  const codePointLength = (value: string): number => [...value].length;
17
20
 
@@ -487,56 +490,63 @@ describe('ComposeDashboardUseCase', () => {
487
490
  });
488
491
  });
489
492
 
490
- describe('formatSevenDayWindowAggregateLine', () => {
491
- const columnEnd = (line: string, field: string): number =>
492
- codePointLength(line.slice(0, line.indexOf(field) + field.length));
493
+ const inDisplayColumns = (tokenRowLine: string): string =>
494
+ ' '.repeat(STATUS_DOT_DISPLAY_WIDTH) + [...tokenRowLine].slice(1).join('');
495
+
496
+ const sevenDayUtilizationColumn = (line: string): number =>
497
+ [...line].lastIndexOf('%') + 1 - TOKEN_UTILIZATION_WIDTH;
493
498
 
494
- it('renders only the remaining percentage, without a count when every token is included', () => {
499
+ describe('formatSevenDayWindowAggregateLine', () => {
500
+ it('renders only the used percentage, with no label and no count when every token is included', () => {
495
501
  expect(
496
502
  formatSevenDayWindowAggregateLine({
497
503
  usedPercent: 63,
498
504
  includedTokenCount: 10,
499
505
  totalTokenCount: 10,
500
506
  }),
501
- ).toBe('7d 37%');
507
+ ).toBe(' '.repeat(21) + '63%');
502
508
  });
503
509
 
504
- it('aligns the remaining percentage under the seven day column of the token rows', () => {
505
- const tokenRow = formatTokenRowLine(
506
- tokenStatus({
507
- name: 'dev4',
508
- color: 'K',
509
- fiveHourUtilizationPercent: 0,
510
- fiveHourResetSeconds: 60,
511
- sevenDayUtilizationPercent: 100,
512
- sevenDayResetSeconds: 96060,
513
- }),
514
- );
510
+ it('places the used percentage in the same display column as the seven day utilization of every token row', () => {
515
511
  const aggregateLine = formatSevenDayWindowAggregateLine({
516
512
  usedPercent: 63.36,
517
513
  includedTokenCount: 11,
518
514
  totalTokenCount: 11,
519
515
  });
520
- expect(tokenRow).toBe('⚪dev4 0% 0d00h01 100% 1d02h41 0 0');
521
- expect(aggregateLine).toBe('7d 37%');
522
- expect(columnEnd(aggregateLine ?? '', '37%')).toBe(
523
- columnEnd(tokenRow, '100%'),
516
+ expect(sevenDayUtilizationColumn(aggregateLine ?? '')).toBe(
517
+ SEVEN_DAY_UTILIZATION_COLUMN_START,
524
518
  );
519
+ const colors: TokenStatusColor[] = ['G', 'Y', 'K'];
520
+ for (const color of colors) {
521
+ const tokenRow = formatTokenRowLine(
522
+ tokenStatus({
523
+ name: 'dev4',
524
+ color,
525
+ fiveHourUtilizationPercent: 0,
526
+ fiveHourResetSeconds: 60,
527
+ sevenDayUtilizationPercent: 100,
528
+ sevenDayResetSeconds: 96060,
529
+ }),
530
+ );
531
+ expect(sevenDayUtilizationColumn(inDisplayColumns(tokenRow))).toBe(
532
+ SEVEN_DAY_UTILIZATION_COLUMN_START,
533
+ );
534
+ }
525
535
  });
526
536
 
527
- it('keeps the alignment when the remaining percentage needs fewer digits', () => {
537
+ it('keeps the alignment when the used percentage needs fewer digits', () => {
528
538
  const wide = formatSevenDayWindowAggregateLine({
529
- usedPercent: 0,
539
+ usedPercent: 100,
530
540
  includedTokenCount: 1,
531
541
  totalTokenCount: 1,
532
542
  });
533
543
  const narrow = formatSevenDayWindowAggregateLine({
534
- usedPercent: 95,
544
+ usedPercent: 5,
535
545
  includedTokenCount: 1,
536
546
  totalTokenCount: 1,
537
547
  });
538
- expect(wide).toBe('7d 100%');
539
- expect(narrow).toBe('7d 5%');
548
+ expect(wide).toBe(' '.repeat(20) + '100%');
549
+ expect(narrow).toBe(' '.repeat(22) + '5%');
540
550
  expect(codePointLength(wide ?? '')).toBe(codePointLength(narrow ?? ''));
541
551
  });
542
552
 
@@ -547,24 +557,24 @@ describe('formatSevenDayWindowAggregateLine', () => {
547
557
  includedTokenCount: 9,
548
558
  totalTokenCount: 10,
549
559
  }),
550
- ).toBe('7d 37% (9)');
560
+ ).toBe(' '.repeat(21) + '63% (9)');
551
561
  });
552
562
 
553
- it('rounds the remaining percentage with half-to-even before rendering', () => {
563
+ it('rounds the used percentage with half-to-even before rendering', () => {
554
564
  expect(
555
565
  formatSevenDayWindowAggregateLine({
556
566
  usedPercent: 62.5,
557
567
  includedTokenCount: 2,
558
568
  totalTokenCount: 2,
559
569
  }),
560
- ).toBe('7d 38%');
570
+ ).toBe(' '.repeat(21) + '62%');
561
571
  expect(
562
572
  formatSevenDayWindowAggregateLine({
563
573
  usedPercent: 63.5,
564
574
  includedTokenCount: 2,
565
575
  totalTokenCount: 2,
566
576
  }),
567
- ).toBe('7d 36%');
577
+ ).toBe(' '.repeat(21) + '64%');
568
578
  });
569
579
 
570
580
  it('renders nothing when the aggregate is absent', () => {
@@ -573,11 +583,11 @@ describe('formatSevenDayWindowAggregateLine', () => {
573
583
 
574
584
  it('fits the width budget at the widest rendering', () => {
575
585
  const line = formatSevenDayWindowAggregateLine({
576
- usedPercent: 0,
586
+ usedPercent: 100,
577
587
  includedTokenCount: 999,
578
588
  totalTokenCount: 1000,
579
589
  });
580
- expect(line).toBe('7d 100% (999)');
590
+ expect(line).toBe(' '.repeat(20) + '100% (999)');
581
591
  expect(codePointLength(line ?? '')).toBeLessThanOrEqual(
582
592
  PROJECT_ROW_WIDTH_BUDGET,
583
593
  );
@@ -618,7 +628,7 @@ describe('ComposeDashboardUseCase seven day window aggregate line', () => {
618
628
  }),
619
629
  ),
620
630
  );
621
- const aggregateIndex = lines.indexOf('7d 37%');
631
+ const aggregateIndex = lines.indexOf(' '.repeat(21) + '63%');
622
632
  expect(aggregateIndex).toBeGreaterThan(-1);
623
633
  expect(lines[aggregateIndex - 1]).toBe(
624
634
  formatProjectRowLine({
@@ -629,11 +639,13 @@ describe('ComposeDashboardUseCase seven day window aggregate line', () => {
629
639
  expect(lines[aggregateIndex + 1]).toContain('alice');
630
640
  });
631
641
 
642
+ const AGGREGATE_LINE_SHAPE = /^ +\d+%( \(\d+\))?$/;
643
+
632
644
  it('keeps the blank separator line when the aggregate is absent', () => {
633
645
  const lines = unwrappedLines(
634
646
  new ComposeDashboardUseCase().run(aggregateInput(null)),
635
647
  );
636
- expect(lines.some((line) => line.startsWith('7d '))).toBe(false);
648
+ expect(lines.some((line) => AGGREGATE_LINE_SHAPE.test(line))).toBe(false);
637
649
  expect(lines).toContain('');
638
650
  });
639
651
 
@@ -645,7 +657,7 @@ describe('ComposeDashboardUseCase seven day window aggregate line', () => {
645
657
  tokens: [tokenStatus({ name: 'alice' })],
646
658
  }),
647
659
  );
648
- expect(lines.some((line) => line.startsWith('7d '))).toBe(false);
660
+ expect(lines.some((line) => AGGREGATE_LINE_SHAPE.test(line))).toBe(false);
649
661
  expect(lines).toContain('');
650
662
  });
651
663
  });
@@ -50,16 +50,18 @@ const PROJECT_COLUMNS: ProjectColumn[] = [
50
50
 
51
51
  const PROJECT_COLUMN_WIDTH = 3;
52
52
 
53
- const SEVERITY_BLANK = ' ';
53
+ export const STATUS_DOT_DISPLAY_WIDTH = 2;
54
54
 
55
- const TOKEN_COLOR_DOT_WIDTH = 1;
55
+ const SEVERITY_BLANK = ' '.repeat(STATUS_DOT_DISPLAY_WIDTH);
56
56
 
57
57
  const TOKEN_NAME_WIDTH = 4;
58
58
 
59
- const TOKEN_UTILIZATION_WIDTH = 4;
59
+ export const TOKEN_UTILIZATION_WIDTH = 4;
60
60
 
61
61
  const TOKEN_RESET_WIDTH = 7;
62
62
 
63
+ const TOKEN_SEGMENT_SEPARATOR = ' ';
64
+
63
65
  const TOKEN_COLOR_DOT: Record<TokenStatusColor, string> = {
64
66
  G: '🟢',
65
67
  Y: '🟡',
@@ -235,9 +237,17 @@ const sortTokens = (tokens: TokenStatus[]): TokenStatus[] =>
235
237
  })
236
238
  .map((entry) => entry.token);
237
239
 
238
- const joinTokenRowSegments = (segments: string[]): string => segments.join(' ');
240
+ const joinTokenRowSegments = (segments: string[]): string =>
241
+ segments.join(TOKEN_SEGMENT_SEPARATOR);
239
242
 
240
- const SEVEN_DAY_WINDOW_AGGREGATE_LABEL = '7d';
243
+ export const SEVEN_DAY_UTILIZATION_COLUMN_START =
244
+ STATUS_DOT_DISPLAY_WIDTH +
245
+ TOKEN_NAME_WIDTH +
246
+ TOKEN_SEGMENT_SEPARATOR.length +
247
+ TOKEN_UTILIZATION_WIDTH +
248
+ TOKEN_SEGMENT_SEPARATOR.length +
249
+ TOKEN_RESET_WIDTH +
250
+ TOKEN_SEGMENT_SEPARATOR.length;
241
251
 
242
252
  export const formatSevenDayWindowAggregateLine = (
243
253
  aggregate: SevenDayWindowAggregate | null,
@@ -245,22 +255,15 @@ export const formatSevenDayWindowAggregateLine = (
245
255
  if (aggregate === null) {
246
256
  return null;
247
257
  }
248
- const leftPercent = roundHalfToEven(100 - aggregate.usedPercent);
258
+ const usedPercent = roundHalfToEven(aggregate.usedPercent);
249
259
  const includedCountSuffix =
250
260
  aggregate.includedTokenCount === aggregate.totalTokenCount
251
261
  ? ''
252
262
  : ` (${aggregate.includedTokenCount})`;
253
263
  return (
254
- joinTokenRowSegments([
255
- padEnd(
256
- SEVEN_DAY_WINDOW_AGGREGATE_LABEL,
257
- TOKEN_COLOR_DOT_WIDTH + TOKEN_NAME_WIDTH,
258
- ' ',
259
- ),
260
- padEnd('', TOKEN_UTILIZATION_WIDTH, ' '),
261
- padEnd('', TOKEN_RESET_WIDTH, ' '),
262
- formatUtilization(leftPercent),
263
- ]) + includedCountSuffix
264
+ padEnd('', SEVEN_DAY_UTILIZATION_COLUMN_START, ' ') +
265
+ formatUtilization(usedPercent) +
266
+ includedCountSuffix
264
267
  );
265
268
  };
266
269
 
@@ -23,11 +23,14 @@ export type ComposeDashboardInput = {
23
23
  tokens: TokenStatus[];
24
24
  sevenDayWindowAggregate?: SevenDayWindowAggregate | null;
25
25
  };
26
+ export declare const STATUS_DOT_DISPLAY_WIDTH = 2;
27
+ export declare const TOKEN_UTILIZATION_WIDTH = 4;
26
28
  export declare const roundHalfToEven: (value: number) => number;
27
29
  export declare const formatResetCountdown: (totalSeconds: number) => string;
28
30
  export declare const formatMachineStatusLines: (machineStatus: ComposeDashboardMachineStatus | null) => string[];
29
31
  export declare const formatProjectHeaderLine: () => string;
30
32
  export declare const formatProjectRowLine: (project: ComposeDashboardProject) => string;
33
+ export declare const SEVEN_DAY_UTILIZATION_COLUMN_START: number;
31
34
  export declare const formatSevenDayWindowAggregateLine: (aggregate: SevenDayWindowAggregate | null) => string | null;
32
35
  export declare const formatTokenRowLine: (token: TokenStatus) => string;
33
36
  export declare class ComposeDashboardUseCase {
@@ -1 +1 @@
1
- {"version":3,"file":"ComposeDashboardUseCase.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/dashboard/ComposeDashboardUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EACL,uBAAuB,EACvB,WAAW,EAEZ,MAAM,8BAA8B,CAAC;AAEtC,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,YAAY,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC;IACtC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACtC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,uBAAuB,EAAE,CAAC;IACpC,aAAa,EAAE,6BAA6B,GAAG,IAAI,CAAC;IACpD,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,uBAAuB,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;CAC1D,CAAC;AA2DF,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,MAU/C,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,cAAc,MAAM,KAAG,MAa3D,CAAC;AAoBF,eAAO,MAAM,wBAAwB,GACnC,eAAe,6BAA6B,GAAG,IAAI,KAClD,MAAM,EA8BR,CAAC;AAKF,eAAO,MAAM,uBAAuB,QAAO,MAM1C,CAAC;AAkBF,eAAO,MAAM,oBAAoB,GAC/B,SAAS,uBAAuB,KAC/B,MAQF,CAAC;AAiCF,eAAO,MAAM,iCAAiC,GAC5C,WAAW,uBAAuB,GAAG,IAAI,KACxC,MAAM,GAAG,IAqBX,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,OAAO,WAAW,KAAG,MAsBvD,CAAC;AAKF,qBAAa,uBAAuB;IAClC,GAAG,GAAI,OAAO,qBAAqB,KAAG,MAAM,CAmB1C;CACH"}
1
+ {"version":3,"file":"ComposeDashboardUseCase.d.ts","sourceRoot":"","sources":["../../../../src/domain/usecases/dashboard/ComposeDashboardUseCase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EACL,uBAAuB,EACvB,WAAW,EAEZ,MAAM,8BAA8B,CAAC;AAEtC,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,YAAY,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC;IACtC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACtC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,uBAAuB,EAAE,CAAC;IACpC,aAAa,EAAE,6BAA6B,GAAG,IAAI,CAAC;IACpD,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,uBAAuB,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;CAC1D,CAAC;AAmBF,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAM1C,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAoCzC,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,MAU/C,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,cAAc,MAAM,KAAG,MAa3D,CAAC;AAoBF,eAAO,MAAM,wBAAwB,GACnC,eAAe,6BAA6B,GAAG,IAAI,KAClD,MAAM,EA8BR,CAAC;AAKF,eAAO,MAAM,uBAAuB,QAAO,MAM1C,CAAC;AAkBF,eAAO,MAAM,oBAAoB,GAC/B,SAAS,uBAAuB,KAC/B,MAQF,CAAC;AAgCF,eAAO,MAAM,kCAAkC,QAOf,CAAC;AAEjC,eAAO,MAAM,iCAAiC,GAC5C,WAAW,uBAAuB,GAAG,IAAI,KACxC,MAAM,GAAG,IAcX,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,OAAO,WAAW,KAAG,MAsBvD,CAAC;AAKF,qBAAa,uBAAuB;IAClC,GAAG,GAAI,OAAO,qBAAqB,KAAG,MAAM,CAmB1C;CACH"}