evmtools-node 0.0.18 → 0.0.24
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/.prettierrc +9 -9
- package/.vscode/settings.json +20 -20
- package/CHANGELOG.md +106 -55
- package/LICENSE +201 -201
- package/README.md +307 -305
- package/dist/domain/Project.d.ts +103 -0
- package/dist/domain/Project.d.ts.map +1 -1
- package/dist/domain/Project.js +207 -0
- package/dist/domain/Project.js.map +1 -1
- package/dist/domain/TaskRow.d.ts +30 -0
- package/dist/domain/TaskRow.d.ts.map +1 -1
- package/dist/domain/TaskRow.js +66 -0
- package/dist/domain/TaskRow.js.map +1 -1
- package/dist/presentation/cli-pbevm-show-pv.js +1 -1
- package/dist/usecase/pbevm-diff-usecase.d.ts +37 -0
- package/dist/usecase/pbevm-diff-usecase.d.ts.map +1 -1
- package/dist/usecase/pbevm-diff-usecase.js +15 -2
- package/dist/usecase/pbevm-diff-usecase.js.map +1 -1
- package/dist/usecase/pbevm-show-pv-usecase.d.ts.map +1 -1
- package/dist/usecase/pbevm-show-pv-usecase.js +29 -20
- package/dist/usecase/pbevm-show-pv-usecase.js.map +1 -1
- package/eslint.config.mjs +25 -25
- package/jest.config.js +26 -26
- package/package.json +109 -109
- package/class.pu +0 -62
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PbevmDiffUsecase = void 0;
|
|
3
|
+
exports.formatTaskDiffsForDisplay = exports.PbevmDiffUsecase = void 0;
|
|
4
4
|
const excel_csv_read_write_1 = require("excel-csv-read-write");
|
|
5
5
|
const common_1 = require("../common");
|
|
6
6
|
class PbevmDiffUsecase {
|
|
@@ -45,7 +45,8 @@ class PbevmDiffUsecase {
|
|
|
45
45
|
}
|
|
46
46
|
if (taskDiffs) {
|
|
47
47
|
console.log('タスクDiff');
|
|
48
|
-
|
|
48
|
+
// currentTask, prevTask を除外して表示(TaskRowオブジェクト参照は表示不可のため)
|
|
49
|
+
console.table((0, exports.formatTaskDiffsForDisplay)(taskDiffs));
|
|
49
50
|
(0, excel_csv_read_write_1.json2workbook)({
|
|
50
51
|
instances: taskDiffs,
|
|
51
52
|
workbook,
|
|
@@ -64,4 +65,16 @@ class PbevmDiffUsecase {
|
|
|
64
65
|
}
|
|
65
66
|
}
|
|
66
67
|
exports.PbevmDiffUsecase = PbevmDiffUsecase;
|
|
68
|
+
/**
|
|
69
|
+
* TaskDiff配列から表示用オブジェクト配列を生成
|
|
70
|
+
* - hasDiff=true のもののみフィルタ
|
|
71
|
+
* - currentTask, prevTask プロパティを除外
|
|
72
|
+
*
|
|
73
|
+
* @param taskDiffs TaskDiff配列
|
|
74
|
+
* @returns 表示用オブジェクト配列(currentTask, prevTaskを除外)
|
|
75
|
+
*/
|
|
76
|
+
const formatTaskDiffsForDisplay = (taskDiffs) => {
|
|
77
|
+
return taskDiffs.filter((row) => row.hasDiff).map(({ currentTask, prevTask, ...rest }) => rest);
|
|
78
|
+
};
|
|
79
|
+
exports.formatTaskDiffsForDisplay = formatTaskDiffsForDisplay;
|
|
67
80
|
//# sourceMappingURL=pbevm-diff-usecase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pbevm-diff-usecase.js","sourceRoot":"","sources":["../../src/usecase/pbevm-diff-usecase.ts"],"names":[],"mappings":";;;AAAA,+DAAiF;AACjF,sCAAgD;AAUhD,MAAa,gBAAgB;IACzB,YACY,kBAAkC,EAClC,mBAAmC,EACnC,eAA+B;QAF/B,uBAAkB,GAAlB,kBAAkB,CAAgB;QAClC,wBAAmB,GAAnB,mBAAmB,CAAgB;QACnC,oBAAe,GAAf,eAAe,CAAgB;IACxC,CAAC;IAEJ,KAAK,CAAC,OAAO;QACT,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAA;QAC1D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAA;QAE5D,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACtE,wDAAwD;QAExD,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAA;QAC1E,2DAA2D;QAE3D,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAA;QAC5E,4DAA4D;QAE5D,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,CAAC,CAAA;IACxE,CAAC;IAED,KAAK,CAAC,IAAI,CACN,cAAuB,EACvB,WAAoB,EACpB,YAA2B,EAC3B,aAA6B,EAC7B,SAAqB;QAErB,MAAM,IAAI,GAAG,GAAG,cAAc,CAAC,IAAI,YAAY,CAAA;QAC/C,MAAM,QAAQ,GAAG,MAAM,IAAA,qCAAc,GAAE,CAAA;QAEvC,IAAI,YAAY,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;YACzB,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;YACxD,IAAA,oCAAa,EAAC;gBACV,SAAS,EAAE,YAAY;gBACvB,QAAQ;gBACR,SAAS,EAAE,YAAY;gBACvB,WAAW,EAAE,IAAA,qBAAY,GAAE;aAC9B,CAAC,CAAA;QACN,CAAC;QACD,IAAI,aAAa,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACrB,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;YACzD,IAAA,oCAAa,EAAC;gBACV,SAAS,EAAE,aAAa;gBACxB,QAAQ;gBACR,SAAS,EAAE,QAAQ;gBACnB,WAAW,EAAE,IAAA,qBAAY,GAAE;aAC9B,CAAC,CAAA;QACN,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACtB,OAAO,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"pbevm-diff-usecase.js","sourceRoot":"","sources":["../../src/usecase/pbevm-diff-usecase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pbevm-show-pv-usecase.d.ts","sourceRoot":"","sources":["../../src/usecase/pbevm-show-pv-usecase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAM5D,qBAAa,kBAAkB;IACf,OAAO,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAE5C,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM;IAOvD,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"pbevm-show-pv-usecase.d.ts","sourceRoot":"","sources":["../../src/usecase/pbevm-show-pv-usecase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAM5D,qBAAa,kBAAkB;IACf,OAAO,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAE5C,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM;IAOvD,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE;CAgD1D"}
|
|
@@ -16,26 +16,35 @@ class PbevmShowPvUsecase {
|
|
|
16
16
|
}
|
|
17
17
|
async save(currentProject, taskRows) {
|
|
18
18
|
const path = `${currentProject.name}-pv.xlsx`;
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
19
|
+
const baseDate = currentProject.baseDate;
|
|
20
|
+
// 表示用データに変換(内部プロパティを除外)
|
|
21
|
+
// Issue #72: logger, calculateSPI, calculateSV などを除去
|
|
22
|
+
// Issue #86: pvToday, pvTodayActual, remainingDays を追加
|
|
23
|
+
const results = taskRows.map((taskRow) => ({
|
|
24
|
+
sharp: taskRow.sharp,
|
|
25
|
+
id: taskRow.id,
|
|
26
|
+
level: taskRow.level,
|
|
27
|
+
name: taskRow.name,
|
|
28
|
+
assignee: taskRow.assignee,
|
|
29
|
+
workload: taskRow.workload,
|
|
30
|
+
予定開始日: (0, common_1.dateStr)(taskRow.startDate),
|
|
31
|
+
予定終了日: (0, common_1.dateStr)(taskRow.endDate),
|
|
32
|
+
実績開始日: (0, common_1.dateStr)(taskRow.actualStartDate),
|
|
33
|
+
実績終了日: (0, common_1.dateStr)(taskRow.actualEndDate),
|
|
34
|
+
progressRate: taskRow.progressRate,
|
|
35
|
+
scheduledWorkDays: taskRow.scheduledWorkDays,
|
|
36
|
+
pv: taskRow.pv,
|
|
37
|
+
ev: taskRow.ev,
|
|
38
|
+
spi: taskRow.spi,
|
|
39
|
+
進捗応当日: (0, common_1.dateStr)(taskRow.expectedProgressDate),
|
|
40
|
+
delayDays: taskRow.delayDays,
|
|
41
|
+
remainingDays: taskRow.remainingDays(baseDate),
|
|
42
|
+
pvToday: taskRow.workloadPerDay,
|
|
43
|
+
pvTodayActual: taskRow.pvTodayActual(baseDate),
|
|
44
|
+
remarks: taskRow.remarks,
|
|
45
|
+
parentId: taskRow.parentId,
|
|
46
|
+
isLeaf: taskRow.isLeaf,
|
|
47
|
+
}));
|
|
39
48
|
logger.info('pv出力');
|
|
40
49
|
console.table(results);
|
|
41
50
|
if (results.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pbevm-show-pv-usecase.js","sourceRoot":"","sources":["../../src/usecase/pbevm-show-pv-usecase.ts"],"names":[],"mappings":";;;AAAA,+DAAiF;AAEjF,sCAAmC;AACnC,sCAAqC;AAErC,MAAM,MAAM,GAAG,IAAA,kBAAS,EAAC,MAAM,CAAC,CAAA;AAEhC,MAAa,kBAAkB;IAC3B,YAAoB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAEtD,KAAK,CAAC,OAAO,CAAC,QAAc,EAAE,MAAY,EAAE,QAAiB;QACzD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAA;QAEzD,MAAM,OAAO,GAAc,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC1E,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,cAAuB,EAAE,QAAmB;QACnD,MAAM,IAAI,GAAG,GAAG,cAAc,CAAC,IAAI,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"pbevm-show-pv-usecase.js","sourceRoot":"","sources":["../../src/usecase/pbevm-show-pv-usecase.ts"],"names":[],"mappings":";;;AAAA,+DAAiF;AAEjF,sCAAmC;AACnC,sCAAqC;AAErC,MAAM,MAAM,GAAG,IAAA,kBAAS,EAAC,MAAM,CAAC,CAAA;AAEhC,MAAa,kBAAkB;IAC3B,YAAoB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAEtD,KAAK,CAAC,OAAO,CAAC,QAAc,EAAE,MAAY,EAAE,QAAiB;QACzD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAA;QAEzD,MAAM,OAAO,GAAc,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC1E,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,cAAuB,EAAE,QAAmB;QACnD,MAAM,IAAI,GAAG,GAAG,cAAc,CAAC,IAAI,UAAU,CAAA;QAC7C,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAA;QAExC,wBAAwB;QACxB,qDAAqD;QACrD,uDAAuD;QACvD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACvC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,KAAK,EAAE,IAAA,gBAAO,EAAC,OAAO,CAAC,SAAS,CAAC;YACjC,KAAK,EAAE,IAAA,gBAAO,EAAC,OAAO,CAAC,OAAO,CAAC;YAC/B,KAAK,EAAE,IAAA,gBAAO,EAAC,OAAO,CAAC,eAAe,CAAC;YACvC,KAAK,EAAE,IAAA,gBAAO,EAAC,OAAO,CAAC,aAAa,CAAC;YACrC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;YAC5C,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,IAAA,gBAAO,EAAC,OAAO,CAAC,oBAAoB,CAAC;YAC5C,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC;YAC9C,OAAO,EAAE,OAAO,CAAC,cAAc;YAC/B,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC;YAC9C,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;SACzB,CAAC,CAAC,CAAA;QAEH,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACnB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEtB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,MAAM,IAAA,qCAAc,GAAE,CAAA;YACvC,IAAA,oCAAa,EAAC;gBACV,SAAS,EAAE,OAAO;gBAClB,QAAQ;gBACR,SAAS,EAAE,IAAI;aAClB,CAAC,CAAA;YAEF,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;YAC9B,MAAM,IAAA,kCAAW,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACrC,CAAC;IACL,CAAC;CACJ;AA1DD,gDA0DC"}
|
package/eslint.config.mjs
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import eslint from '@eslint/js'
|
|
2
|
-
import tseslint from 'typescript-eslint'
|
|
3
|
-
import prettier from 'eslint-config-prettier'
|
|
4
|
-
|
|
5
|
-
export default [
|
|
6
|
-
{
|
|
7
|
-
ignores: ['dist/**', 'eslint.config.mjs'],
|
|
8
|
-
},
|
|
9
|
-
eslint.configs.recommended,
|
|
10
|
-
...tseslint.configs.recommended,
|
|
11
|
-
...tseslint.configs.recommendedTypeChecked,
|
|
12
|
-
{
|
|
13
|
-
files: ['**/*.ts'],
|
|
14
|
-
languageOptions: {
|
|
15
|
-
parserOptions: {
|
|
16
|
-
project: ['./tsconfig.json'],
|
|
17
|
-
tsconfigRootDir: new URL('.', import.meta.url).pathname,
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
rules: {
|
|
21
|
-
// 任意: プロジェクトに合わせて調整可能
|
|
22
|
-
},
|
|
23
|
-
},
|
|
24
|
-
prettier,
|
|
25
|
-
]
|
|
1
|
+
import eslint from '@eslint/js'
|
|
2
|
+
import tseslint from 'typescript-eslint'
|
|
3
|
+
import prettier from 'eslint-config-prettier'
|
|
4
|
+
|
|
5
|
+
export default [
|
|
6
|
+
{
|
|
7
|
+
ignores: ['dist/**', 'eslint.config.mjs'],
|
|
8
|
+
},
|
|
9
|
+
eslint.configs.recommended,
|
|
10
|
+
...tseslint.configs.recommended,
|
|
11
|
+
...tseslint.configs.recommendedTypeChecked,
|
|
12
|
+
{
|
|
13
|
+
files: ['**/*.ts'],
|
|
14
|
+
languageOptions: {
|
|
15
|
+
parserOptions: {
|
|
16
|
+
project: ['./tsconfig.json'],
|
|
17
|
+
tsconfigRootDir: new URL('.', import.meta.url).pathname,
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
rules: {
|
|
21
|
+
// 任意: プロジェクトに合わせて調整可能
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
prettier,
|
|
25
|
+
]
|
package/jest.config.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
/** @type {import('ts-jest').JestConfigWithTsJest} */
|
|
2
|
-
module.exports = {
|
|
3
|
-
preset: 'ts-jest',
|
|
4
|
-
testEnvironment: 'node',
|
|
5
|
-
roots: ['<rootDir>/src'],
|
|
6
|
-
testMatch: ['**/__tests__/**/*.test.ts', '**/*.test.ts'],
|
|
7
|
-
testPathIgnorePatterns: [
|
|
8
|
-
'/node_modules/',
|
|
9
|
-
'cli-shebang\\.test\\.ts$', // リリース検証用(リグレッションテスト対象外)
|
|
10
|
-
],
|
|
11
|
-
moduleFileExtensions: ['ts', 'js', 'json'],
|
|
12
|
-
collectCoverageFrom: [
|
|
13
|
-
'src/**/*.ts',
|
|
14
|
-
'!src/**/*.d.ts',
|
|
15
|
-
'!src/**/index.ts',
|
|
16
|
-
'!src/presentation/**', // CLIは除外
|
|
17
|
-
],
|
|
18
|
-
coverageDirectory: 'coverage',
|
|
19
|
-
coverageReporters: [
|
|
20
|
-
'text', // コンソール出力
|
|
21
|
-
'text-summary', // サマリー出力
|
|
22
|
-
'html', // HTMLレポート
|
|
23
|
-
'lcov', // CI/CD用(Codecovなど)
|
|
24
|
-
],
|
|
25
|
-
verbose: true,
|
|
26
|
-
}
|
|
1
|
+
/** @type {import('ts-jest').JestConfigWithTsJest} */
|
|
2
|
+
module.exports = {
|
|
3
|
+
preset: 'ts-jest',
|
|
4
|
+
testEnvironment: 'node',
|
|
5
|
+
roots: ['<rootDir>/src'],
|
|
6
|
+
testMatch: ['**/__tests__/**/*.test.ts', '**/*.test.ts'],
|
|
7
|
+
testPathIgnorePatterns: [
|
|
8
|
+
'/node_modules/',
|
|
9
|
+
'cli-shebang\\.test\\.ts$', // リリース検証用(リグレッションテスト対象外)
|
|
10
|
+
],
|
|
11
|
+
moduleFileExtensions: ['ts', 'js', 'json'],
|
|
12
|
+
collectCoverageFrom: [
|
|
13
|
+
'src/**/*.ts',
|
|
14
|
+
'!src/**/*.d.ts',
|
|
15
|
+
'!src/**/index.ts',
|
|
16
|
+
'!src/presentation/**', // CLIは除外
|
|
17
|
+
],
|
|
18
|
+
coverageDirectory: 'coverage',
|
|
19
|
+
coverageReporters: [
|
|
20
|
+
'text', // コンソール出力
|
|
21
|
+
'text-summary', // サマリー出力
|
|
22
|
+
'html', // HTMLレポート
|
|
23
|
+
'lcov', // CI/CD用(Codecovなど)
|
|
24
|
+
],
|
|
25
|
+
verbose: true,
|
|
26
|
+
}
|
package/package.json
CHANGED
|
@@ -1,109 +1,109 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "evmtools-node",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "このライブラリは、プライムブレインズ社で利用している「進捗管理ツール(Excel)」ファイルを読み込み、 プロジェクトの進捗状況や要員別の作業量を可視化するためのライブラリです。",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"exports": {
|
|
8
|
-
"./common": {
|
|
9
|
-
"types": "./dist/common/index.d.ts",
|
|
10
|
-
"import": "./dist/common/index.js"
|
|
11
|
-
},
|
|
12
|
-
"./domain": {
|
|
13
|
-
"types": "./dist/domain/index.d.ts",
|
|
14
|
-
"import": "./dist/domain/index.js"
|
|
15
|
-
},
|
|
16
|
-
"./infrastructure": {
|
|
17
|
-
"types": "./dist/infrastructure/index.d.ts",
|
|
18
|
-
"import": "./dist/infrastructure/index.js"
|
|
19
|
-
},
|
|
20
|
-
"./presentation": {
|
|
21
|
-
"types": "./dist/presentation/index.d.ts",
|
|
22
|
-
"import": "./dist/presentation/index.js"
|
|
23
|
-
},
|
|
24
|
-
"./usecase": {
|
|
25
|
-
"types": "./dist/usecase/index.d.ts",
|
|
26
|
-
"import": "./dist/usecase/index.js"
|
|
27
|
-
},
|
|
28
|
-
"./logger": {
|
|
29
|
-
"types": "./dist/logger.d.ts",
|
|
30
|
-
"import": "./dist/logger.js"
|
|
31
|
-
},
|
|
32
|
-
"./project": {
|
|
33
|
-
"types": "./dist/project/index.d.ts",
|
|
34
|
-
"import": "./dist/project/index.js"
|
|
35
|
-
},
|
|
36
|
-
"./resource": {
|
|
37
|
-
"types": "./dist/resource/index.d.ts",
|
|
38
|
-
"import": "./dist/resource/index.js"
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
"bin": {
|
|
42
|
-
"pbevm-show-project": "./dist/presentation/cli-pbevm-show-project.js",
|
|
43
|
-
"pbevm-diff": "./dist/presentation/cli-pbevm-diff.js",
|
|
44
|
-
"pbevm-show-pv": "./dist/presentation/cli-pbevm-show-pv.js",
|
|
45
|
-
"pbevm-show-resourceplan": "./dist/resource/presentation/cli-pbevm-show-resourceplan.js"
|
|
46
|
-
},
|
|
47
|
-
"scripts": {
|
|
48
|
-
"test": "jest",
|
|
49
|
-
"test:coverage": "jest --coverage",
|
|
50
|
-
"lint": "eslint . --ext .ts",
|
|
51
|
-
"lint:fix": "eslint . --ext .ts --fix",
|
|
52
|
-
"format": "prettier --check 'src/**/*.ts'",
|
|
53
|
-
"format:fix": "prettier --write 'src/**/*.ts'",
|
|
54
|
-
"clean:modules": "rimraf node_modules pnpm-lock.yaml",
|
|
55
|
-
"clean": "rimraf dist",
|
|
56
|
-
"tsc": "tsc",
|
|
57
|
-
"copy:assets": "cpx \"src/**/*.hbs\" dist",
|
|
58
|
-
"build": "npm-run-all clean tsc copy:assets",
|
|
59
|
-
"pack": "npm pack",
|
|
60
|
-
"prepublishOnly": "npm run build",
|
|
61
|
-
"pbevm-show-project": "ts-node ./src/presentation/cli-pbevm-show-project --path now.xlsm",
|
|
62
|
-
"pbevm-diff": "ts-node ./src/presentation/cli-pbevm-diff --path now.xlsm --prevPath prev.xlsm",
|
|
63
|
-
"pbevm-show-pv": "ts-node ./src/presentation/cli-pbevm-show-pv --path now.xlsm",
|
|
64
|
-
"cli-test": "ts-node ./src/presentation/cli-test --excelPath now.xlsm",
|
|
65
|
-
"pbevm-summary": "ts-node ./src/presentation/cli-pbevm-summary --path now.xlsm",
|
|
66
|
-
"pbevm-show-resourceplan": "ts-node ./src/resource/presentation/cli-pbevm-show-resourceplan"
|
|
67
|
-
},
|
|
68
|
-
"repository": {
|
|
69
|
-
"type": "git",
|
|
70
|
-
"url": "git+https://github.com/masatomix/evmtools-node.git"
|
|
71
|
-
},
|
|
72
|
-
"keywords": [
|
|
73
|
-
"typescript",
|
|
74
|
-
"javascript"
|
|
75
|
-
],
|
|
76
|
-
"author": "Masatomi KINO <masatomix@ki-no.org> (http://qiita.com/masatomix)",
|
|
77
|
-
"license": "ISC",
|
|
78
|
-
"dependencies": {
|
|
79
|
-
"@tidyjs/tidy": "^2.5.2",
|
|
80
|
-
"config": "^4.0.0",
|
|
81
|
-
"excel-csv-read-write": "^0.2.6",
|
|
82
|
-
"handlebars": "^4.7.8",
|
|
83
|
-
"iconv-lite": "^0.7.1",
|
|
84
|
-
"pino": "^9.7.0",
|
|
85
|
-
"ts-node": "^10.9.2",
|
|
86
|
-
"yargs": "^17.7.2"
|
|
87
|
-
},
|
|
88
|
-
"devDependencies": {
|
|
89
|
-
"@eslint/js": "^9.28.0",
|
|
90
|
-
"@types/config": "^3.3.5",
|
|
91
|
-
"@types/iconv-lite": "^0.0.1",
|
|
92
|
-
"@types/jest": "^30.0.0",
|
|
93
|
-
"@types/node": "^22.15.21",
|
|
94
|
-
"@types/xlsx-populate": "github:JanLoebel/types-xlsx-populate",
|
|
95
|
-
"@types/yargs": "^17.0.33",
|
|
96
|
-
"cpx": "^1.5.0",
|
|
97
|
-
"eslint": "^9.28.0",
|
|
98
|
-
"eslint-config-prettier": "^10.1.5",
|
|
99
|
-
"eslint-plugin-import": "^2.31.0",
|
|
100
|
-
"jest": "^30.2.0",
|
|
101
|
-
"npm-run-all": "^4.1.5",
|
|
102
|
-
"pino-pretty": "^13.0.0",
|
|
103
|
-
"prettier": "^3.5.3",
|
|
104
|
-
"rimraf": "^6.0.1",
|
|
105
|
-
"ts-jest": "^29.4.6",
|
|
106
|
-
"typescript": "^5.8.3",
|
|
107
|
-
"typescript-eslint": "^8.33.1"
|
|
108
|
-
}
|
|
109
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "evmtools-node",
|
|
3
|
+
"version": "0.0.24",
|
|
4
|
+
"description": "このライブラリは、プライムブレインズ社で利用している「進捗管理ツール(Excel)」ファイルを読み込み、 プロジェクトの進捗状況や要員別の作業量を可視化するためのライブラリです。",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
"./common": {
|
|
9
|
+
"types": "./dist/common/index.d.ts",
|
|
10
|
+
"import": "./dist/common/index.js"
|
|
11
|
+
},
|
|
12
|
+
"./domain": {
|
|
13
|
+
"types": "./dist/domain/index.d.ts",
|
|
14
|
+
"import": "./dist/domain/index.js"
|
|
15
|
+
},
|
|
16
|
+
"./infrastructure": {
|
|
17
|
+
"types": "./dist/infrastructure/index.d.ts",
|
|
18
|
+
"import": "./dist/infrastructure/index.js"
|
|
19
|
+
},
|
|
20
|
+
"./presentation": {
|
|
21
|
+
"types": "./dist/presentation/index.d.ts",
|
|
22
|
+
"import": "./dist/presentation/index.js"
|
|
23
|
+
},
|
|
24
|
+
"./usecase": {
|
|
25
|
+
"types": "./dist/usecase/index.d.ts",
|
|
26
|
+
"import": "./dist/usecase/index.js"
|
|
27
|
+
},
|
|
28
|
+
"./logger": {
|
|
29
|
+
"types": "./dist/logger.d.ts",
|
|
30
|
+
"import": "./dist/logger.js"
|
|
31
|
+
},
|
|
32
|
+
"./project": {
|
|
33
|
+
"types": "./dist/project/index.d.ts",
|
|
34
|
+
"import": "./dist/project/index.js"
|
|
35
|
+
},
|
|
36
|
+
"./resource": {
|
|
37
|
+
"types": "./dist/resource/index.d.ts",
|
|
38
|
+
"import": "./dist/resource/index.js"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"bin": {
|
|
42
|
+
"pbevm-show-project": "./dist/presentation/cli-pbevm-show-project.js",
|
|
43
|
+
"pbevm-diff": "./dist/presentation/cli-pbevm-diff.js",
|
|
44
|
+
"pbevm-show-pv": "./dist/presentation/cli-pbevm-show-pv.js",
|
|
45
|
+
"pbevm-show-resourceplan": "./dist/resource/presentation/cli-pbevm-show-resourceplan.js"
|
|
46
|
+
},
|
|
47
|
+
"scripts": {
|
|
48
|
+
"test": "jest",
|
|
49
|
+
"test:coverage": "jest --coverage",
|
|
50
|
+
"lint": "eslint . --ext .ts",
|
|
51
|
+
"lint:fix": "eslint . --ext .ts --fix",
|
|
52
|
+
"format": "prettier --check 'src/**/*.ts'",
|
|
53
|
+
"format:fix": "prettier --write 'src/**/*.ts'",
|
|
54
|
+
"clean:modules": "rimraf node_modules pnpm-lock.yaml",
|
|
55
|
+
"clean": "rimraf dist",
|
|
56
|
+
"tsc": "tsc",
|
|
57
|
+
"copy:assets": "cpx \"src/**/*.hbs\" dist",
|
|
58
|
+
"build": "npm-run-all clean tsc copy:assets",
|
|
59
|
+
"pack": "npm pack",
|
|
60
|
+
"prepublishOnly": "npm run build",
|
|
61
|
+
"pbevm-show-project": "ts-node ./src/presentation/cli-pbevm-show-project --path now.xlsm",
|
|
62
|
+
"pbevm-diff": "ts-node ./src/presentation/cli-pbevm-diff --path now.xlsm --prevPath prev.xlsm",
|
|
63
|
+
"pbevm-show-pv": "ts-node ./src/presentation/cli-pbevm-show-pv --path now.xlsm",
|
|
64
|
+
"cli-test": "ts-node ./src/presentation/cli-test --excelPath now.xlsm",
|
|
65
|
+
"pbevm-summary": "ts-node ./src/presentation/cli-pbevm-summary --path now.xlsm",
|
|
66
|
+
"pbevm-show-resourceplan": "ts-node ./src/resource/presentation/cli-pbevm-show-resourceplan"
|
|
67
|
+
},
|
|
68
|
+
"repository": {
|
|
69
|
+
"type": "git",
|
|
70
|
+
"url": "git+https://github.com/masatomix/evmtools-node.git"
|
|
71
|
+
},
|
|
72
|
+
"keywords": [
|
|
73
|
+
"typescript",
|
|
74
|
+
"javascript"
|
|
75
|
+
],
|
|
76
|
+
"author": "Masatomi KINO <masatomix@ki-no.org> (http://qiita.com/masatomix)",
|
|
77
|
+
"license": "ISC",
|
|
78
|
+
"dependencies": {
|
|
79
|
+
"@tidyjs/tidy": "^2.5.2",
|
|
80
|
+
"config": "^4.0.0",
|
|
81
|
+
"excel-csv-read-write": "^0.2.6",
|
|
82
|
+
"handlebars": "^4.7.8",
|
|
83
|
+
"iconv-lite": "^0.7.1",
|
|
84
|
+
"pino": "^9.7.0",
|
|
85
|
+
"ts-node": "^10.9.2",
|
|
86
|
+
"yargs": "^17.7.2"
|
|
87
|
+
},
|
|
88
|
+
"devDependencies": {
|
|
89
|
+
"@eslint/js": "^9.28.0",
|
|
90
|
+
"@types/config": "^3.3.5",
|
|
91
|
+
"@types/iconv-lite": "^0.0.1",
|
|
92
|
+
"@types/jest": "^30.0.0",
|
|
93
|
+
"@types/node": "^22.15.21",
|
|
94
|
+
"@types/xlsx-populate": "github:JanLoebel/types-xlsx-populate",
|
|
95
|
+
"@types/yargs": "^17.0.33",
|
|
96
|
+
"cpx": "^1.5.0",
|
|
97
|
+
"eslint": "^9.28.0",
|
|
98
|
+
"eslint-config-prettier": "^10.1.5",
|
|
99
|
+
"eslint-plugin-import": "^2.31.0",
|
|
100
|
+
"jest": "^30.2.0",
|
|
101
|
+
"npm-run-all": "^4.1.5",
|
|
102
|
+
"pino-pretty": "^13.0.0",
|
|
103
|
+
"prettier": "^3.5.3",
|
|
104
|
+
"rimraf": "^6.0.1",
|
|
105
|
+
"ts-jest": "^29.4.6",
|
|
106
|
+
"typescript": "^5.8.3",
|
|
107
|
+
"typescript-eslint": "^8.33.1"
|
|
108
|
+
}
|
|
109
|
+
}
|
package/class.pu
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
@startuml
|
|
2
|
-
|
|
3
|
-
class Main
|
|
4
|
-
|
|
5
|
-
package domain{
|
|
6
|
-
|
|
7
|
-
class TaskRow{
|
|
8
|
-
...TaskRowDto
|
|
9
|
-
calculatePV(baseDate: Date): number
|
|
10
|
-
calculatePVs(baseDate: Date): number
|
|
11
|
-
}
|
|
12
|
-
class TaskNode{
|
|
13
|
-
...taskRow
|
|
14
|
-
children: TaskNode[]
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
interface TaskRowCreator{
|
|
18
|
-
createRowData():TaskRow
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
class TaskService{
|
|
22
|
-
buildTaskTree(TaskRow[]): TaskNode[]
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
TaskRowCreator .> TaskRow :<<create>>
|
|
26
|
-
TaskNode <. TaskService :<<create>>
|
|
27
|
-
TaskService .> TaskRow :<<use>>
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
package infra{
|
|
31
|
-
class TaskRowDto{
|
|
32
|
-
sharp
|
|
33
|
-
id
|
|
34
|
-
name
|
|
35
|
-
parentId
|
|
36
|
-
isLeaf
|
|
37
|
-
plotMap
|
|
38
|
-
}
|
|
39
|
-
class TaskNodeDto{
|
|
40
|
-
...taskRowDto
|
|
41
|
-
children: TaskNodeDto[]
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
class ExcelTaskRowCreator{
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
class TaskRowFactory{
|
|
49
|
-
fromDto(dto[]): TaskRow[]
|
|
50
|
-
toDto(entity[]): TaskRowDto[]
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
TaskRowCreator<|.. ExcelTaskRowCreator
|
|
54
|
-
TaskRow<.. ExcelTaskRowCreator: <<create>>
|
|
55
|
-
ExcelTaskRowCreator .> TaskRowDto: <<use>>
|
|
56
|
-
TaskRowFactory <..ExcelTaskRowCreator
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
TaskRowCreator <-- Main
|
|
60
|
-
TaskService <-- Main
|
|
61
|
-
|
|
62
|
-
@enduml
|