github-issue-tower-defence-management 1.197.0 → 1.197.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [1.197.2](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.197.1...v1.197.2) (2026-08-29)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **console/webServer:** require token authentication for /tdpm.txt ([#1846](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1846)) ([228fa82](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/228fa820675e4f7630ea8157c9681845de473d82))
7
+
8
+ ## [1.197.1](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.197.0...v1.197.1) (2026-08-29)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **console:** restrict overlay done-filtering to the tab where operation was performed ([#1822](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1822)) ([a400901](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/a400901830c2961796357be3ae0f429f86bd12c2)), closes [#1810](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1810)
14
+
1
15
  # [1.197.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.196.1...v1.197.0) (2026-08-29)
2
16
 
3
17
 
@@ -36,7 +36,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.buildConsoleDataResponse = exports.parseConsoleDataRoute = exports.CONSOLE_LIST_TAB_NAMES = void 0;
37
37
  const fs = __importStar(require("fs"));
38
38
  const path = __importStar(require("path"));
39
- const consoleDoneStore_1 = require("./consoleDoneStore");
40
39
  const consoleTabNames_1 = require("./consoleTabNames");
41
40
  Object.defineProperty(exports, "CONSOLE_LIST_TAB_NAMES", { enumerable: true, get: function () { return consoleTabNames_1.CONSOLE_LIST_TAB_NAMES; } });
42
41
  const SAFE_SEGMENT = /^[A-Za-z0-9._-]+$/;
@@ -79,7 +78,6 @@ const parseConsoleDataRoute = (requestPath) => {
79
78
  return null;
80
79
  };
81
80
  exports.parseConsoleDataRoute = parseConsoleDataRoute;
82
- const isRecord = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
83
81
  const readJsonFile = (filePath) => {
84
82
  let raw;
85
83
  try {
@@ -95,21 +93,6 @@ const readJsonFile = (filePath) => {
95
93
  const data = JSON.parse(raw);
96
94
  return { found: true, data };
97
95
  };
98
- const isExcludedItem = (item, doneSet) => {
99
- if (!isRecord(item)) {
100
- return false;
101
- }
102
- const projectItemId = item.projectItemId;
103
- return typeof projectItemId === 'string' && doneSet.has(projectItemId);
104
- };
105
- const applyDoneExclusion = (listData, doneProjectItemIds) => {
106
- if (!isRecord(listData) || !Array.isArray(listData.items)) {
107
- return listData;
108
- }
109
- const doneSet = new Set(doneProjectItemIds);
110
- const items = listData.items.filter((item) => !isExcludedItem(item, doneSet));
111
- return { ...listData, items };
112
- };
113
96
  const buildConsoleDataResponse = (consoleDataOutputDir, route) => {
114
97
  if (route.kind === 'list') {
115
98
  const filePath = path.join(consoleDataOutputDir, route.pjcode, route.tab, 'list.json');
@@ -117,9 +100,7 @@ const buildConsoleDataResponse = (consoleDataOutputDir, route) => {
117
100
  if (!listResult.found) {
118
101
  return notFoundJson();
119
102
  }
120
- const doneProjectItemIds = (0, consoleDoneStore_1.readDoneProjectItemIds)(consoleDataOutputDir, route.pjcode, route.tab);
121
- const filtered = applyDoneExclusion(listResult.data, doneProjectItemIds);
122
- return okJson(filtered);
103
+ return okJson(listResult.data);
123
104
  }
124
105
  if (route.kind === 'detail') {
125
106
  const filePath = path.join(consoleDataOutputDir, route.pjcode, route.tab, 'detail', route.key);
@@ -1 +1 @@
1
- {"version":3,"file":"consoleDataDelivery.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/console/consoleDataDelivery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consoleDataDelivery.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/console/consoleDataDelivery.ts"],"names":[],"mappings":"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"}