evmtools-node 0.0.19 → 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 -69
- package/LICENSE +201 -201
- package/README.md +307 -306
- 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-show-pv-usecase.d.ts.map +1 -1
- package/dist/usecase/pbevm-show-pv-usecase.js +5 -0
- 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
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
|