github-issue-tower-defence-management 1.181.1 → 1.182.0

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.
Files changed (36) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/bin/adapter/entry-points/console/ui-dist/assets/index-8Ni5iu-C.css +2 -0
  3. package/bin/adapter/entry-points/console/ui-dist/assets/index-y4IbtMEJ.js +86 -0
  4. package/bin/adapter/entry-points/console/ui-dist/index.html +2 -2
  5. package/bin/adapter/entry-points/console/webServer.js +6 -0
  6. package/bin/adapter/entry-points/console/webServer.js.map +1 -1
  7. package/package.json +1 -1
  8. package/src/adapter/entry-points/console/ui/src/features/console/components/layout/ConsoleTabList.stories.tsx +23 -0
  9. package/src/adapter/entry-points/console/ui/src/features/console/components/layout/ConsoleTabList.test.tsx +25 -0
  10. package/src/adapter/entry-points/console/ui/src/features/console/components/layout/ConsoleTabList.tsx +6 -0
  11. package/src/adapter/entry-points/console/ui/src/features/console/components/layout/ConsoleTimerSettingsModalDialog.stories.tsx +49 -0
  12. package/src/adapter/entry-points/console/ui/src/features/console/components/layout/ConsoleTimerSettingsModalDialog.test.tsx +157 -0
  13. package/src/adapter/entry-points/console/ui/src/features/console/components/layout/ConsoleTimerSettingsModalDialog.tsx +118 -0
  14. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleProjectList.test.ts +74 -0
  15. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleProjectList.ts +40 -0
  16. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleProjectTimer.test.ts +59 -0
  17. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleProjectTimer.ts +26 -0
  18. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleTimerSettings.test.ts +110 -0
  19. package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleTimerSettings.ts +70 -0
  20. package/src/adapter/entry-points/console/ui/src/features/console/lib/consoleApi.ts +22 -0
  21. package/src/adapter/entry-points/console/ui/src/features/console/lib/navigation.ts +7 -0
  22. package/src/adapter/entry-points/console/ui/src/features/console/logic/timerSettings.test.ts +61 -0
  23. package/src/adapter/entry-points/console/ui/src/features/console/logic/timerSettings.ts +77 -0
  24. package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsolePage.test.tsx +116 -0
  25. package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsolePage.tsx +72 -2
  26. package/src/adapter/entry-points/console/ui/src/index.css +139 -0
  27. package/src/adapter/entry-points/console/ui-dist/assets/index-8Ni5iu-C.css +2 -0
  28. package/src/adapter/entry-points/console/ui-dist/assets/index-y4IbtMEJ.js +86 -0
  29. package/src/adapter/entry-points/console/ui-dist/index.html +2 -2
  30. package/src/adapter/entry-points/console/webServer.test.ts +93 -0
  31. package/src/adapter/entry-points/console/webServer.ts +6 -0
  32. package/types/adapter/entry-points/console/webServer.d.ts.map +1 -1
  33. package/bin/adapter/entry-points/console/ui-dist/assets/index-BUFcVUVD.js +0 -86
  34. package/bin/adapter/entry-points/console/ui-dist/assets/index-DeZcPNCr.css +0 -2
  35. package/src/adapter/entry-points/console/ui-dist/assets/index-BUFcVUVD.js +0 -86
  36. package/src/adapter/entry-points/console/ui-dist/assets/index-DeZcPNCr.css +0 -2
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>TDPM Console</title>
7
- <script type="module" crossorigin src="/assets/index-BUFcVUVD.js"></script>
8
- <link rel="stylesheet" crossorigin href="/assets/index-DeZcPNCr.css">
7
+ <script type="module" crossorigin src="/assets/index-y4IbtMEJ.js"></script>
8
+ <link rel="stylesheet" crossorigin href="/assets/index-8Ni5iu-C.css">
9
9
  </head>
10
10
  <body>
11
11
  <div id="root"></div>
@@ -2487,3 +2487,96 @@ describe('webServer owner call file route', () => {
2487
2487
  }
2488
2488
  });
2489
2489
  });
2490
+
2491
+ describe('webServer GET /api/projects', () => {
2492
+ const testToken = 'integration-test-token-value';
2493
+
2494
+ const closeServer = (server: http.Server): Promise<void> =>
2495
+ new Promise((resolve, reject) => {
2496
+ server.close((error) => {
2497
+ if (error) {
2498
+ reject(error);
2499
+ return;
2500
+ }
2501
+ resolve();
2502
+ });
2503
+ });
2504
+
2505
+ const request = (
2506
+ server: http.Server,
2507
+ method: string,
2508
+ requestPath: string,
2509
+ ): Promise<{ statusCode: number; body: string }> => {
2510
+ const address = server.address();
2511
+ if (address === null || typeof address === 'string') {
2512
+ throw new Error('server is not listening on a TCP port');
2513
+ }
2514
+ const port = address.port;
2515
+ return new Promise((resolve, reject) => {
2516
+ const httpRequest = http.request(
2517
+ { host: '127.0.0.1', port, path: requestPath, method },
2518
+ (response) => {
2519
+ const chunks: Uint8Array[] = [];
2520
+ response.on('data', (chunk: Uint8Array) => chunks.push(chunk));
2521
+ response.on('end', () => {
2522
+ resolve({
2523
+ statusCode: response.statusCode ?? 0,
2524
+ body: Buffer.concat(chunks).toString('utf-8'),
2525
+ });
2526
+ });
2527
+ },
2528
+ );
2529
+ httpRequest.on('error', reject);
2530
+ httpRequest.end();
2531
+ });
2532
+ };
2533
+
2534
+ it('returns the dashboardProjectNames with a valid token', async () => {
2535
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'console-server-'));
2536
+ const server = await startWebServer({
2537
+ accessToken: testToken,
2538
+ uiDistDir: path.join(tmpDir, 'ui-dist'),
2539
+ consoleDataOutputDir: null,
2540
+ inTmuxDataDir: null,
2541
+ dashboardDir: null,
2542
+ dashboardDataDir: null,
2543
+ dashboardProjectNames: ['alpha', 'beta', 'gamma'],
2544
+ port: 0,
2545
+ });
2546
+ try {
2547
+ const response = await request(
2548
+ server,
2549
+ 'GET',
2550
+ `/api/projects?k=${testToken}`,
2551
+ );
2552
+ expect(response.statusCode).toBe(200);
2553
+ expect(JSON.parse(response.body)).toEqual({
2554
+ pjcodes: ['alpha', 'beta', 'gamma'],
2555
+ });
2556
+ } finally {
2557
+ await closeServer(server);
2558
+ fs.rmSync(tmpDir, { recursive: true, force: true });
2559
+ }
2560
+ });
2561
+
2562
+ it('returns 401 without a valid token', async () => {
2563
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'console-server-'));
2564
+ const server = await startWebServer({
2565
+ accessToken: testToken,
2566
+ uiDistDir: path.join(tmpDir, 'ui-dist'),
2567
+ consoleDataOutputDir: null,
2568
+ inTmuxDataDir: null,
2569
+ dashboardDir: null,
2570
+ dashboardDataDir: null,
2571
+ dashboardProjectNames: ['alpha'],
2572
+ port: 0,
2573
+ });
2574
+ try {
2575
+ const response = await request(server, 'GET', '/api/projects');
2576
+ expect(response.statusCode).toBe(401);
2577
+ } finally {
2578
+ await closeServer(server);
2579
+ fs.rmSync(tmpDir, { recursive: true, force: true });
2580
+ }
2581
+ });
2582
+ });
@@ -464,6 +464,12 @@ const handleReadApi = async (
464
464
  requestPath: string,
465
465
  searchParams: URLSearchParams,
466
466
  ): Promise<{ statusCode: number; body: unknown } | null> => {
467
+ if (requestPath === '/api/projects') {
468
+ return {
469
+ statusCode: 200,
470
+ body: { pjcodes: options.dashboardProjectNames },
471
+ };
472
+ }
467
473
  const defaultIssueRepository = options.issueRepository ?? null;
468
474
  if (defaultIssueRepository === null) {
469
475
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"webServer.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/console/webServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webServer.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/console/webServer.ts"],"names":[],"mappings":"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"}