@into-cps-association/libms 0.4.5 → 0.4.7

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 (121) hide show
  1. package/DEVELOPER.md +62 -0
  2. package/DOCKER.md +295 -0
  3. package/compose.lib.dev.yml +9 -0
  4. package/compose.lib.yml +8 -0
  5. package/dist/src/app.module.d.ts +2 -1
  6. package/dist/src/app.module.js +14 -16
  7. package/dist/src/app.module.js.map +1 -1
  8. package/dist/src/bootstrap.d.ts +3 -3
  9. package/dist/src/bootstrap.js +10 -13
  10. package/dist/src/bootstrap.js.map +1 -1
  11. package/dist/src/cloudcmd/cloudcmd.d.ts +1 -5
  12. package/dist/src/cloudcmd/cloudcmd.js +15 -9
  13. package/dist/src/cloudcmd/cloudcmd.js.map +1 -1
  14. package/dist/src/enums/config-mode.enum.d.ts +4 -0
  15. package/dist/src/enums/config-mode.enum.js +6 -0
  16. package/dist/src/enums/config-mode.enum.js.map +1 -0
  17. package/dist/src/files/files-service.factory.d.ts +5 -0
  18. package/dist/src/files/files-service.factory.js +22 -0
  19. package/dist/src/files/files-service.factory.js.map +1 -0
  20. package/dist/src/files/files.module.d.ts +2 -1
  21. package/dist/src/files/files.module.js +23 -9
  22. package/dist/src/files/files.module.js.map +1 -1
  23. package/dist/src/files/files.resolver.d.ts +8 -0
  24. package/dist/src/files/{resolvers/files.resolver.js → files.resolver.js} +14 -14
  25. package/dist/src/files/files.resolver.js.map +1 -0
  26. package/dist/src/files/git/git-files.module.d.ts +2 -0
  27. package/dist/src/files/git/git-files.module.js +18 -0
  28. package/dist/src/files/git/git-files.module.js.map +1 -0
  29. package/dist/src/files/git/git-files.service.d.ts +9 -0
  30. package/dist/src/files/git/git-files.service.js +29 -0
  31. package/dist/src/files/git/git-files.service.js.map +1 -0
  32. package/dist/src/files/interfaces/files.service.interface.d.ts +6 -3
  33. package/dist/src/files/interfaces/files.service.interface.js +1 -2
  34. package/dist/src/files/interfaces/files.service.interface.js.map +1 -1
  35. package/dist/src/files/local/local-files.module.d.ts +2 -0
  36. package/dist/src/files/local/local-files.module.js +18 -0
  37. package/dist/src/files/local/local-files.module.js.map +1 -0
  38. package/dist/src/files/local/local-files.service.d.ts +14 -0
  39. package/dist/src/files/{services → local}/local-files.service.js +17 -15
  40. package/dist/src/files/local/local-files.service.js.map +1 -0
  41. package/dist/src/main.js +4 -6
  42. package/dist/src/main.js.map +1 -1
  43. package/dist/src/types.d.ts +19 -19
  44. package/dist/src/types.js +56 -59
  45. package/dist/src/types.js.map +1 -1
  46. package/dist/test/cloudcmd/cloudcmd.spec.js +14 -16
  47. package/dist/test/cloudcmd/cloudcmd.spec.js.map +1 -1
  48. package/dist/test/e2e/app.e2e.spec.js +18 -18
  49. package/dist/test/e2e/app.e2e.spec.js.map +1 -1
  50. package/dist/test/integration/files.service.integration.spec.js +28 -19
  51. package/dist/test/integration/files.service.integration.spec.js.map +1 -1
  52. package/dist/test/testUtil.d.ts +66 -68
  53. package/dist/test/testUtil.js +18 -23
  54. package/dist/test/testUtil.js.map +1 -1
  55. package/dist/test/unit/files-service.factory.unit.spec.js +17 -16
  56. package/dist/test/unit/files-service.factory.unit.spec.js.map +1 -1
  57. package/dist/test/unit/files.resolver.unit.spec.js +26 -24
  58. package/dist/test/unit/files.resolver.unit.spec.js.map +1 -1
  59. package/dist/test/unit/local-files.service.unit.spec.js +23 -24
  60. package/dist/test/unit/local-files.service.unit.spec.js.map +1 -1
  61. package/dist/tsconfig.tsbuildinfo +1 -1
  62. package/eslint.config.js +60 -0
  63. package/jest.config.ts +47 -0
  64. package/package.json +54 -48
  65. package/src/app.module.ts +1 -1
  66. package/src/bootstrap.ts +3 -3
  67. package/src/cloudcmd/cloudcmd.ts +11 -3
  68. package/src/enums/config-mode.enum.ts +4 -0
  69. package/src/files/files-service.factory.ts +19 -0
  70. package/src/files/files.module.ts +24 -4
  71. package/src/files/{resolvers/files.resolver.ts → files.resolver.ts} +9 -8
  72. package/src/files/git/git-files.module.ts +8 -0
  73. package/src/files/git/git-files.service.ts +20 -0
  74. package/src/files/interfaces/files.service.interface.ts +4 -1
  75. package/src/files/local/local-files.module.ts +8 -0
  76. package/src/files/{services → local}/local-files.service.ts +15 -10
  77. package/src/main.ts +1 -1
  78. package/test/cloudcmd/cloudcmd.spec.ts +4 -6
  79. package/test/e2e/app.e2e.spec.ts +4 -3
  80. package/test/integration/files.service.integration.spec.ts +19 -4
  81. package/test/unit/files-service.factory.unit.spec.ts +18 -11
  82. package/test/unit/files.resolver.unit.spec.ts +19 -12
  83. package/test/unit/local-files.service.unit.spec.ts +4 -2
  84. package/tsconfig.json +10 -7
  85. package/.env +0 -6
  86. package/.eslintignore +0 -6
  87. package/.eslintrc +0 -53
  88. package/coverage/clover.xml +0 -162
  89. package/coverage/cobertura-coverage.xml +0 -306
  90. package/coverage/coverage-final.json +0 -8
  91. package/coverage/lcov-report/base.css +0 -224
  92. package/coverage/lcov-report/block-navigation.js +0 -87
  93. package/coverage/lcov-report/favicon.png +0 -0
  94. package/coverage/lcov-report/index.html +0 -176
  95. package/coverage/lcov-report/prettify.css +0 -1
  96. package/coverage/lcov-report/prettify.js +0 -2
  97. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  98. package/coverage/lcov-report/sorter.js +0 -196
  99. package/coverage/lcov-report/src/bootstrap.ts.html +0 -196
  100. package/coverage/lcov-report/src/cloudcmd/cloudcmd.ts.html +0 -181
  101. package/coverage/lcov-report/src/cloudcmd/index.html +0 -116
  102. package/coverage/lcov-report/src/files/files.module.ts.html +0 -112
  103. package/coverage/lcov-report/src/files/index.html +0 -116
  104. package/coverage/lcov-report/src/files/resolvers/files.resolver.ts.html +0 -154
  105. package/coverage/lcov-report/src/files/resolvers/index.html +0 -116
  106. package/coverage/lcov-report/src/files/services/files-service.factory.ts.html +0 -151
  107. package/coverage/lcov-report/src/files/services/index.html +0 -131
  108. package/coverage/lcov-report/src/files/services/local-files.service.ts.html +0 -313
  109. package/coverage/lcov-report/src/index.html +0 -131
  110. package/coverage/lcov-report/src/types.ts.html +0 -361
  111. package/coverage/lcov.info +0 -237
  112. package/dist/src/files/resolvers/files.resolver.d.ts +0 -8
  113. package/dist/src/files/resolvers/files.resolver.js.map +0 -1
  114. package/dist/src/files/services/files-service.factory.d.ts +0 -12
  115. package/dist/src/files/services/files-service.factory.js +0 -40
  116. package/dist/src/files/services/files-service.factory.js.map +0 -1
  117. package/dist/src/files/services/local-files.service.d.ts +0 -11
  118. package/dist/src/files/services/local-files.service.js.map +0 -1
  119. package/jest.config.json +0 -30
  120. package/src/files/services/files-service.factory.ts +0 -22
  121. /package/{pm2.config.js → pm2.config.cjs} +0 -0
@@ -1,13 +1,18 @@
1
+ import { describe, it, expect, jest } from '@jest/globals';
1
2
  import { Test, TestingModule } from '@nestjs/testing';
2
- import FilesResolver from '../../src/files/resolvers/files.resolver';
3
+ import FilesResolver from '../../src/files/files.resolver';
3
4
  import {
4
5
  testDirectory,
5
6
  pathToTestDirectory,
6
7
  pathToTestFileContent,
7
8
  testFileContent,
8
9
  } from '../testUtil';
9
- import { IFilesService } from '../../src/files/interfaces/files.service.interface';
10
- import FilesServiceFactory from '../../src/files/services/files-service.factory';
10
+ import {
11
+ FILE_SERVICE,
12
+ IFilesService,
13
+ } from '../../src/files/interfaces/files.service.interface';
14
+ import { Project } from 'src/types';
15
+ import { CONFIG_MODE } from '../../src/enums/config-mode.enum';
11
16
 
12
17
  describe('Unit tests for FilesResolver', () => {
13
18
  let filesResolver: FilesResolver;
@@ -15,27 +20,29 @@ describe('Unit tests for FilesResolver', () => {
15
20
 
16
21
  beforeEach(async () => {
17
22
  const mockFilesService: IFilesService = {
18
- listDirectory: jest.fn().mockImplementation(() => testDirectory),
19
- readFile: jest.fn().mockImplementation(() => testFileContent),
23
+ listDirectory: jest
24
+ .fn<() => Promise<Project>>()
25
+ .mockResolvedValue(testDirectory),
26
+ readFile: jest
27
+ .fn<() => Promise<Project>>()
28
+ .mockImplementation(() => Promise.resolve(testFileContent)),
29
+ getMode: jest.fn<() => CONFIG_MODE>().mockReturnValue(CONFIG_MODE.LOCAL),
20
30
  };
21
31
 
22
32
  const module: TestingModule = await Test.createTestingModule({
23
33
  providers: [
24
34
  FilesResolver,
25
- FilesServiceFactory,
26
35
  {
27
- provide: FilesServiceFactory,
28
- useValue: {
29
- create: () => mockFilesService,
36
+ provide: FILE_SERVICE,
37
+ useFactory: () => {
38
+ return mockFilesService;
30
39
  },
31
40
  },
32
41
  ],
33
42
  }).compile();
34
43
 
35
44
  filesResolver = module.get<FilesResolver>(FilesResolver);
36
- filesService = module
37
- .get<FilesServiceFactory>(FilesServiceFactory)
38
- .create();
45
+ filesService = module.get<IFilesService>(FILE_SERVICE);
39
46
  });
40
47
 
41
48
  it('should be defined', () => {
@@ -1,8 +1,9 @@
1
+ import { describe, it, expect, jest } from '@jest/globals';
1
2
  import { Test, TestingModule } from '@nestjs/testing';
2
3
  import { ConfigService } from '@nestjs/config';
3
4
  import * as fs from 'fs';
4
5
  import { join } from 'path';
5
- import LocalFilesService from '../../src/files/services/local-files.service';
6
+ import LocalFilesService from '../../src/files/local/local-files.service';
6
7
  import {
7
8
  fstestFileContent,
8
9
  pathToTestDirectory,
@@ -11,6 +12,7 @@ import {
11
12
  MockConfigService,
12
13
  testFileName,
13
14
  } from '../testUtil';
15
+ import { Dirent } from 'fs';
14
16
 
15
17
  jest.mock('fs', () => ({
16
18
  promises: {
@@ -56,7 +58,7 @@ describe('LocalFilesService', () => {
56
58
 
57
59
  jest
58
60
  .spyOn(fs.promises, 'readdir')
59
- .mockResolvedValue(testFileArray as unknown as Promise<[]>);
61
+ .mockResolvedValue(testFileArray as unknown as Dirent[]);
60
62
 
61
63
  jest.spyOn(fs.promises, 'lstat').mockImplementation((pathToDirectory) => {
62
64
  if (typeof pathToDirectory === 'string') {
package/tsconfig.json CHANGED
@@ -4,28 +4,31 @@
4
4
  "baseUrl": "./",
5
5
  "declaration": true, //generate declaration '.d.ts' files
6
6
  "emitDecoratorMetadata": true,
7
+ "esModuleInterop": true,
7
8
  "experimentalDecorators": true, //allow experimental decorators for es7
8
9
  "forceConsistentCasingInFileNames": false,
9
10
  "incremental": true,
10
- "module": "commonjs", //use node module system
11
+ "lib": [
12
+ "ES2022"
13
+ ],
14
+ "module": "ES2022", //use node module system
11
15
  "moduleResolution": "node", //use node module resolution strategy node
12
- //"noImplicitAny": true, //raise error on any type
13
16
  "noImplicitReturns": true, //raise error on implicit returns
14
17
  "noUnusedLocals": true, //raise error on unused locals
15
18
  "noUnusedParameters": true, //raise no error on unused parameters
16
19
  "noFallthroughCasesInSwitch": false,
17
- "outDir": "./dist",
20
+ "outDir": "dist",
18
21
  "removeComments": true, //remove comments from build
19
22
  "skipLibCheck": true,
20
23
  "sourceMap": true, //generate .map files
24
+ // "strict": true, //enable all strict type-checking options
21
25
  "strictBindCallApply": false,
22
- //"strictNullChecks": true,
23
- //"strict": true, //enable all strict type-checking options
24
- "target": "es2022",
26
+ "target": "ES2022",
25
27
  "types": ["node", "jest"], //use node and jest types
26
28
  "typeRoots": [
27
29
  "node_modules/@types" //use node_modules/@types for type definitions
28
- ]
30
+ ],
29
31
  },
32
+ "include": ["src/**/*.ts", "test/**/*.ts"],
30
33
  "exclude": ["**/node_modules/*", "./dist"]
31
34
  }
package/.env DELETED
@@ -1,6 +0,0 @@
1
- PORT='4001'
2
- MODE='local'
3
- LOCAL_PATH ='/home/dtaas/Documents/git/into-cps/DTaaS/files'
4
- LOG_LEVEL='debug'
5
- APOLLO_PATH='/lib'
6
- GRAPHQL_PLAYGROUND='true'
package/.eslintignore DELETED
@@ -1,6 +0,0 @@
1
- api/
2
- build/
3
- dist/
4
- node_modules/
5
- script/
6
- src/types.ts
package/.eslintrc DELETED
@@ -1,53 +0,0 @@
1
- {
2
- "env": {
3
- "jest": true,
4
- "jest/globals": true,
5
- "node": true
6
- },
7
- "extends": [
8
- "eslint:recommended",
9
- "airbnb-base",
10
- "plugin:@typescript-eslint/recommended",
11
- "prettier"
12
- ],
13
- "globals": {
14
- "Atomics": "readonly",
15
- "SharedArrayBuffer": "readonly"
16
- },
17
- "settings": {
18
- "import/resolver": {
19
- "node": {
20
- "extensions": [".js"]
21
- }
22
- }
23
- },
24
- "parser": "@typescript-eslint/parser",
25
- "parserOptions": {
26
- "requireConfigFile": false,
27
- "ecmaVersion": 2022,
28
- "sourceType": "module" // Allows for the use of imports
29
- },
30
- "plugins": ["jest", "@typescript-eslint", "import"],
31
- "rules": {
32
- "import/no-extraneous-dependencies": ["error", { "devDependencies": true }],
33
- "no-console": "error",
34
- "import/first": "error",
35
- "linebreak-style": 0, // disable linter linebreak rule, to allow for both unix and windows developement
36
- "import/no-unresolved": "off", // Whatever IDE will pass an error if if the module is not found, so no reason for this..
37
- "import/extensions": "off", // That includes the production build.. We use linter for code checking / clean code optimization..
38
- "no-use-before-define": "off"
39
- },
40
- "root": true,
41
-
42
- "overrides": [
43
- {
44
- "files": ["*.ts"],
45
- "parser": "@typescript-eslint/parser",
46
- "parserOptions": {
47
- "requireConfigFile": false,
48
- "project": ["./tsconfig.json"]
49
- },
50
- "plugins": ["@typescript-eslint"]
51
- }
52
- ]
53
- }
@@ -1,162 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1717597601385" clover="3.2.0">
3
- <project timestamp="1717597601385" name="All files">
4
- <metrics statements="120" coveredstatements="89" conditionals="8" coveredconditionals="2" methods="23" coveredmethods="21" elements="151" coveredelements="112" complexity="0" loc="120" ncloc="120" packages="5" files="7" classes="7"/>
5
- <package name="src">
6
- <metrics statements="56" coveredstatements="38" conditionals="6" coveredconditionals="0" methods="7" coveredmethods="6"/>
7
- <file name="bootstrap.ts" path="/home/dtaas/Documents/git/into-cps/DTaaS/servers/lib/src/bootstrap.ts">
8
- <metrics statements="18" coveredstatements="0" conditionals="6" coveredconditionals="0" methods="1" coveredmethods="0"/>
9
- <line num="1" count="0" type="stmt"/>
10
- <line num="2" count="0" type="stmt"/>
11
- <line num="3" count="0" type="stmt"/>
12
- <line num="4" count="0" type="stmt"/>
13
- <line num="5" count="0" type="stmt"/>
14
- <line num="13" count="0" type="stmt"/>
15
- <line num="14" count="0" type="stmt"/>
16
- <line num="18" count="0" type="cond" truecount="0" falsecount="1"/>
17
- <line num="20" count="0" type="stmt"/>
18
- <line num="21" count="0" type="cond" truecount="0" falsecount="2"/>
19
- <line num="22" count="0" type="stmt"/>
20
- <line num="24" count="0" type="stmt"/>
21
- <line num="28" count="0" type="stmt"/>
22
- <line num="29" count="0" type="stmt"/>
23
- <line num="30" count="0" type="stmt"/>
24
- <line num="32" count="0" type="cond" truecount="0" falsecount="1"/>
25
- <line num="33" count="0" type="stmt"/>
26
- <line num="36" count="0" type="stmt"/>
27
- </file>
28
- <file name="types.ts" path="/home/dtaas/Documents/git/into-cps/DTaaS/servers/lib/src/types.ts">
29
- <metrics statements="38" coveredstatements="38" conditionals="0" coveredconditionals="0" methods="6" coveredmethods="6"/>
30
- <line num="1" count="3" type="stmt"/>
31
- <line num="4" count="3" type="stmt"/>
32
- <line num="6" count="3" type="stmt"/>
33
- <line num="9" count="3" type="stmt"/>
34
- <line num="13" count="3" type="stmt"/>
35
- <line num="14" count="3" type="stmt"/>
36
- <line num="15" count="3" type="stmt"/>
37
- <line num="19" count="3" type="stmt"/>
38
- <line num="20" count="3" type="stmt"/>
39
- <line num="21" count="3" type="stmt"/>
40
- <line num="25" count="3" type="stmt"/>
41
- <line num="27" count="3" type="stmt"/>
42
- <line num="30" count="3" type="stmt"/>
43
- <line num="34" count="3" type="stmt"/>
44
- <line num="35" count="3" type="stmt"/>
45
- <line num="36" count="3" type="stmt"/>
46
- <line num="40" count="3" type="stmt"/>
47
- <line num="41" count="3" type="stmt"/>
48
- <line num="42" count="3" type="stmt"/>
49
- <line num="46" count="3" type="stmt"/>
50
- <line num="48" count="3" type="stmt"/>
51
- <line num="51" count="3" type="stmt"/>
52
- <line num="55" count="3" type="stmt"/>
53
- <line num="57" count="3" type="stmt"/>
54
- <line num="60" count="3" type="stmt"/>
55
- <line num="63" count="3" type="stmt"/>
56
- <line num="66" count="3" type="stmt"/>
57
- <line num="67" count="3" type="stmt"/>
58
- <line num="68" count="3" type="stmt"/>
59
- <line num="72" count="3" type="stmt"/>
60
- <line num="74" count="3" type="stmt"/>
61
- <line num="77" count="3" type="stmt"/>
62
- <line num="80" count="3" type="stmt"/>
63
- <line num="81" count="3" type="stmt"/>
64
- <line num="82" count="3" type="stmt"/>
65
- <line num="86" count="3" type="stmt"/>
66
- <line num="88" count="3" type="stmt"/>
67
- <line num="91" count="3" type="stmt"/>
68
- </file>
69
- </package>
70
- <package name="src.cloudcmd">
71
- <metrics statements="11" coveredstatements="0" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="0"/>
72
- <file name="cloudcmd.ts" path="/home/dtaas/Documents/git/into-cps/DTaaS/servers/lib/src/cloudcmd/cloudcmd.ts">
73
- <metrics statements="11" coveredstatements="0" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="0"/>
74
- <line num="2" count="0" type="stmt"/>
75
- <line num="3" count="0" type="stmt"/>
76
- <line num="4" count="0" type="stmt"/>
77
- <line num="6" count="0" type="stmt"/>
78
- <line num="11" count="0" type="stmt"/>
79
- <line num="12" count="0" type="stmt"/>
80
- <line num="16" count="0" type="stmt"/>
81
- <line num="18" count="0" type="stmt"/>
82
- <line num="20" count="0" type="stmt"/>
83
- <line num="23" count="0" type="stmt"/>
84
- <line num="32" count="0" type="stmt"/>
85
- </file>
86
- </package>
87
- <package name="src.files">
88
- <metrics statements="5" coveredstatements="5" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
89
- <file name="files.module.ts" path="/home/dtaas/Documents/git/into-cps/DTaaS/servers/lib/src/files/files.module.ts">
90
- <metrics statements="5" coveredstatements="5" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
91
- <line num="1" count="1" type="stmt"/>
92
- <line num="2" count="1" type="stmt"/>
93
- <line num="3" count="1" type="stmt"/>
94
- <line num="4" count="1" type="stmt"/>
95
- <line num="9" count="1" type="stmt"/>
96
- </file>
97
- </package>
98
- <package name="src.files.resolvers">
99
- <metrics statements="11" coveredstatements="11" conditionals="0" coveredconditionals="0" methods="5" coveredmethods="5"/>
100
- <file name="files.resolver.ts" path="/home/dtaas/Documents/git/into-cps/DTaaS/servers/lib/src/files/resolvers/files.resolver.ts">
101
- <metrics statements="11" coveredstatements="11" conditionals="0" coveredconditionals="0" methods="5" coveredmethods="5"/>
102
- <line num="1" count="3" type="stmt"/>
103
- <line num="3" count="3" type="stmt"/>
104
- <line num="4" count="3" type="stmt"/>
105
- <line num="7" count="3" type="stmt"/>
106
- <line num="11" count="9" type="stmt"/>
107
- <line num="14" count="2" type="stmt"/>
108
- <line num="15" count="3" type="stmt"/>
109
- <line num="16" count="4" type="stmt"/>
110
- <line num="19" count="2" type="stmt"/>
111
- <line num="20" count="3" type="stmt"/>
112
- <line num="21" count="4" type="stmt"/>
113
- </file>
114
- </package>
115
- <package name="src.files.services">
116
- <metrics statements="37" coveredstatements="35" conditionals="2" coveredconditionals="2" methods="10" coveredmethods="10"/>
117
- <file name="files-service.factory.ts" path="/home/dtaas/Documents/git/into-cps/DTaaS/servers/lib/src/files/services/files-service.factory.ts">
118
- <metrics statements="10" coveredstatements="10" conditionals="1" coveredconditionals="1" methods="2" coveredmethods="2"/>
119
- <line num="1" count="4" type="stmt"/>
120
- <line num="2" count="4" type="stmt"/>
121
- <line num="4" count="4" type="stmt"/>
122
- <line num="7" count="4" type="stmt"/>
123
- <line num="10" count="6" type="stmt"/>
124
- <line num="11" count="6" type="stmt"/>
125
- <line num="16" count="6" type="stmt"/>
126
- <line num="17" count="6" type="cond" truecount="1" falsecount="0"/>
127
- <line num="18" count="5" type="stmt"/>
128
- <line num="20" count="1" type="stmt"/>
129
- </file>
130
- <file name="local-files.service.ts" path="/home/dtaas/Documents/git/into-cps/DTaaS/servers/lib/src/files/services/local-files.service.ts">
131
- <metrics statements="27" coveredstatements="25" conditionals="1" coveredconditionals="1" methods="8" coveredmethods="8"/>
132
- <line num="1" count="5" type="stmt"/>
133
- <line num="2" count="5" type="stmt"/>
134
- <line num="3" count="5" type="stmt"/>
135
- <line num="4" count="5" type="stmt"/>
136
- <line num="9" count="5" type="stmt"/>
137
- <line num="11" count="9" type="stmt"/>
138
- <line num="14" count="4" type="stmt"/>
139
- <line num="15" count="4" type="stmt"/>
140
- <line num="17" count="4" type="stmt"/>
141
- <line num="19" count="4" type="stmt"/>
142
- <line num="20" count="20" type="stmt"/>
143
- <line num="23" count="4" type="stmt"/>
144
- <line num="25" count="20" type="stmt"/>
145
- <line num="28" count="20" type="stmt"/>
146
- <line num="32" count="4" type="stmt"/>
147
- <line num="36" count="4" type="stmt"/>
148
- <line num="37" count="4" type="stmt"/>
149
- <line num="39" count="4" type="stmt"/>
150
- <line num="40" count="4" type="stmt"/>
151
- <line num="44" count="4" type="stmt"/>
152
- <line num="46" count="4" type="stmt"/>
153
- <line num="48" count="0" type="stmt"/>
154
- <line num="53" count="20" type="stmt"/>
155
- <line num="54" count="20" type="cond" truecount="1" falsecount="0"/>
156
- <line num="55" count="20" type="stmt"/>
157
- <line num="57" count="0" type="stmt"/>
158
- <line num="62" count="4" type="stmt"/>
159
- </file>
160
- </package>
161
- </project>
162
- </coverage>