repoburg 1.0.54 → 1.0.57
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/backend/.env +3 -1
- package/backend/coverage/clover.xml +2409 -2355
- package/backend/coverage/coverage-final.json +99 -96
- package/backend/coverage/lcov-report/index.html +356 -341
- package/backend/coverage/lcov-report/src/action-execution/action-execution.module.ts.html +12 -12
- package/backend/coverage/lcov-report/src/action-execution/action-execution.service.ts.html +140 -62
- package/backend/coverage/lcov-report/src/action-execution/index.html +28 -28
- package/backend/coverage/lcov-report/src/ai-actions/ai-action-batch.service.ts.html +188 -188
- package/backend/coverage/lcov-report/src/ai-actions/ai-action-creation.service.ts.html +284 -236
- package/backend/coverage/lcov-report/src/ai-actions/ai-actions.controller.ts.html +109 -109
- package/backend/coverage/lcov-report/src/ai-actions/ai-actions.module.ts.html +28 -28
- package/backend/coverage/lcov-report/src/ai-actions/ai-actions.service.ts.html +193 -193
- package/backend/coverage/lcov-report/src/ai-actions/index.html +61 -61
- package/backend/coverage/lcov-report/src/app.controller.ts.html +24 -24
- package/backend/coverage/lcov-report/src/app.module.ts.html +68 -65
- package/backend/coverage/lcov-report/src/app.service.ts.html +46 -13
- package/backend/coverage/lcov-report/src/application-state/application-state.controller.ts.html +87 -33
- package/backend/coverage/lcov-report/src/application-state/application-state.module.ts.html +18 -18
- package/backend/coverage/lcov-report/src/application-state/application-state.service.ts.html +113 -68
- package/backend/coverage/lcov-report/src/application-state/dto/index.html +42 -27
- package/backend/coverage/lcov-report/src/application-state/dto/set-auto-context-fetch-enabled.dto.ts.html +12 -12
- package/backend/coverage/lcov-report/src/application-state/dto/set-orchestration-timeout.dto.ts.html +103 -0
- package/backend/coverage/lcov-report/src/application-state/dto/set-theme.dto.ts.html +12 -12
- package/backend/coverage/lcov-report/src/application-state/dto/set-websocket-enabled.dto.ts.html +12 -12
- package/backend/coverage/lcov-report/src/application-state/index.html +37 -37
- package/backend/coverage/lcov-report/src/context-generation/context-generation.module.ts.html +16 -16
- package/backend/coverage/lcov-report/src/context-generation/context-generation.service.ts.html +222 -222
- package/backend/coverage/lcov-report/src/context-generation/index.html +28 -28
- package/backend/coverage/lcov-report/src/context-snippets/context-snippets.controller.ts.html +31 -31
- package/backend/coverage/lcov-report/src/context-snippets/context-snippets.module.ts.html +20 -20
- package/backend/coverage/lcov-report/src/context-snippets/context-snippets.service.ts.html +26 -26
- package/backend/coverage/lcov-report/src/context-snippets/dto/context-snippet.dto.ts.html +28 -28
- package/backend/coverage/lcov-report/src/context-snippets/dto/index.html +13 -13
- package/backend/coverage/lcov-report/src/context-snippets/index.html +31 -31
- package/backend/coverage/lcov-report/src/context-templates/context-templates.controller.ts.html +45 -45
- package/backend/coverage/lcov-report/src/context-templates/context-templates.module.ts.html +20 -20
- package/backend/coverage/lcov-report/src/context-templates/context-templates.service.ts.html +87 -84
- package/backend/coverage/lcov-report/src/context-templates/dto/context-template.dto.ts.html +48 -48
- package/backend/coverage/lcov-report/src/context-templates/dto/index.html +13 -13
- package/backend/coverage/lcov-report/src/context-templates/index.html +36 -36
- package/backend/coverage/lcov-report/src/core-entities/ai-action.entity.ts.html +48 -48
- package/backend/coverage/lcov-report/src/core-entities/application-state.entity.ts.html +14 -14
- package/backend/coverage/lcov-report/src/core-entities/base.entity.ts.html +22 -22
- package/backend/coverage/lcov-report/src/core-entities/context-snippet.entity.ts.html +18 -18
- package/backend/coverage/lcov-report/src/core-entities/context-template.entity.ts.html +52 -52
- package/backend/coverage/lcov-report/src/core-entities/custom-snippet.entity.ts.html +20 -20
- package/backend/coverage/lcov-report/src/core-entities/execution-log.entity.ts.html +26 -26
- package/backend/coverage/lcov-report/src/core-entities/index.html +112 -112
- package/backend/coverage/lcov-report/src/core-entities/index.ts.html +28 -28
- package/backend/coverage/lcov-report/src/core-entities/project.entity.ts.html +24 -24
- package/backend/coverage/lcov-report/src/core-entities/session-input.entity.ts.html +59 -50
- package/backend/coverage/lcov-report/src/core-entities/session.entity.ts.html +56 -56
- package/backend/coverage/lcov-report/src/core-entities/system-prompt.entity.ts.html +28 -28
- package/backend/coverage/lcov-report/src/custom-snippets/custom-snippets.controller.ts.html +30 -30
- package/backend/coverage/lcov-report/src/custom-snippets/custom-snippets.module.ts.html +18 -18
- package/backend/coverage/lcov-report/src/custom-snippets/custom-snippets.service.ts.html +20 -20
- package/backend/coverage/lcov-report/src/custom-snippets/dto/custom-snippet.dto.ts.html +28 -28
- package/backend/coverage/lcov-report/src/custom-snippets/dto/index.html +13 -13
- package/backend/coverage/lcov-report/src/custom-snippets/index.html +32 -32
- package/backend/coverage/lcov-report/src/events/events.gateway.ts.html +46 -46
- package/backend/coverage/lcov-report/src/events/events.module.ts.html +12 -12
- package/backend/coverage/lcov-report/src/events/index.html +28 -28
- package/backend/coverage/lcov-report/src/execution-logs/dto/execution-log.dto.ts.html +1 -1
- package/backend/coverage/lcov-report/src/execution-logs/dto/index.html +1 -1
- package/backend/coverage/lcov-report/src/execution-logs/execution-logs.controller.ts.html +18 -18
- package/backend/coverage/lcov-report/src/execution-logs/execution-logs.module.ts.html +18 -18
- package/backend/coverage/lcov-report/src/execution-logs/execution-logs.service.ts.html +32 -32
- package/backend/coverage/lcov-report/src/execution-logs/index.html +33 -33
- package/backend/coverage/lcov-report/src/http-exception.filter.ts.html +55 -55
- package/backend/coverage/lcov-report/src/index.html +44 -44
- package/backend/coverage/lcov-report/src/llm-response-parser/dto/ai-action.dto.ts.html +67 -67
- package/backend/coverage/lcov-report/src/llm-response-parser/dto/index.html +21 -21
- package/backend/coverage/lcov-report/src/llm-response-parser/errors/index.html +17 -17
- package/backend/coverage/lcov-report/src/llm-response-parser/errors/parsing.error.ts.html +19 -19
- package/backend/coverage/lcov-report/src/llm-response-parser/index.html +35 -35
- package/backend/coverage/lcov-report/src/llm-response-parser/llm-response-parser.module.ts.html +12 -12
- package/backend/coverage/lcov-report/src/llm-response-parser/llm-response-parser.service.ts.html +208 -208
- package/backend/coverage/lcov-report/src/llm-response-parser/parsing.constants.ts.html +38 -38
- package/backend/coverage/lcov-report/src/llm-responses/dto/index.html +21 -21
- package/backend/coverage/lcov-report/src/llm-responses/dto/submit-llm-response.dto.ts.html +28 -28
- package/backend/coverage/lcov-report/src/llm-responses/index.html +38 -38
- package/backend/coverage/lcov-report/src/llm-responses/llm-responses.controller.ts.html +24 -24
- package/backend/coverage/lcov-report/src/llm-responses/llm-responses.module.ts.html +38 -35
- package/backend/coverage/lcov-report/src/llm-responses/llm-responses.service.ts.html +107 -86
- package/backend/coverage/lcov-report/src/main.ts.html +1 -1
- package/backend/coverage/lcov-report/src/orchestration/dto/index.html +13 -13
- package/backend/coverage/lcov-report/src/orchestration/dto/orchestration.dto.ts.html +30 -45
- package/backend/coverage/lcov-report/src/orchestration/index.html +74 -74
- package/backend/coverage/lcov-report/src/orchestration/orchestration-fs.service.ts.html +245 -128
- package/backend/coverage/lcov-report/src/orchestration/orchestration-parser.service.ts.html +32 -200
- package/backend/coverage/lcov-report/src/orchestration/orchestration.controller.ts.html +72 -102
- package/backend/coverage/lcov-report/src/orchestration/orchestration.module.ts.html +35 -38
- package/backend/coverage/lcov-report/src/orchestration/orchestration.service.ts.html +317 -425
- package/backend/coverage/lcov-report/src/orchestration/orchestration.types.ts.html +41 -35
- package/backend/coverage/lcov-report/src/projects/dto/index.html +13 -13
- package/backend/coverage/lcov-report/src/projects/dto/project.dto.ts.html +20 -20
- package/backend/coverage/lcov-report/src/projects/index.html +32 -32
- package/backend/coverage/lcov-report/src/projects/projects.controller.ts.html +28 -28
- package/backend/coverage/lcov-report/src/projects/projects.module.ts.html +18 -18
- package/backend/coverage/lcov-report/src/projects/projects.service.ts.html +20 -20
- package/backend/coverage/lcov-report/src/seeding/context-template-seeding.service.ts.html +22 -22
- package/backend/coverage/lcov-report/src/seeding/custom-snippet-seeding.service.ts.html +21 -21
- package/backend/coverage/lcov-report/src/seeding/data/context-templates/default-followup_ad-hoc-focused-context.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/context-templates/default-initial_condensed-project-context.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/context-templates/default-initial_full-project-context.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/context-templates/index.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/context-templates/pm-context.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/context-templates/pr-description.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/context-templates/sample_focused-tree.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/default_rglob.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/git-diff.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/index.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/rg-exclude.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/rg-search-glob.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/rg-search.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/run-command.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/tree.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/usr-adhoc-incl.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/usr-input-incl.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/system-prompts/codebase-explorer.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/system-prompts/default_multi-file-action-generator-with-requester.ts.html +8 -2
- package/backend/coverage/lcov-report/src/seeding/data/system-prompts/index.html +3 -3
- package/backend/coverage/lcov-report/src/seeding/data/system-prompts/packup.ts.html +1 -1
- package/backend/coverage/lcov-report/src/seeding/data/system-prompts/refactor-split.ts.html +244 -0
- package/backend/coverage/lcov-report/src/seeding/index.html +47 -47
- package/backend/coverage/lcov-report/src/seeding/seeding.module.ts.html +24 -24
- package/backend/coverage/lcov-report/src/seeding/seeding.service.ts.html +27 -27
- package/backend/coverage/lcov-report/src/seeding/system-prompt-seeding.service.ts.html +21 -21
- package/backend/coverage/lcov-report/src/session-followup/index.html +28 -28
- package/backend/coverage/lcov-report/src/session-followup/session-followup.module.ts.html +22 -22
- package/backend/coverage/lcov-report/src/session-followup/session-followup.service.ts.html +44 -41
- package/backend/coverage/lcov-report/src/session-inputs/dto/index.html +13 -13
- package/backend/coverage/lcov-report/src/session-inputs/dto/session-input.dto.ts.html +40 -28
- package/backend/coverage/lcov-report/src/session-inputs/index.html +50 -50
- package/backend/coverage/lcov-report/src/session-inputs/session-input-context.service.ts.html +168 -156
- package/backend/coverage/lcov-report/src/session-inputs/session-inputs.controller.ts.html +36 -36
- package/backend/coverage/lcov-report/src/session-inputs/session-inputs.module.ts.html +40 -37
- package/backend/coverage/lcov-report/src/session-inputs/session-inputs.service.ts.html +242 -236
- package/backend/coverage/lcov-report/src/session-transfer/index.html +22 -22
- package/backend/coverage/lcov-report/src/session-transfer/session-transfer.module.ts.html +16 -16
- package/backend/coverage/lcov-report/src/session-transfer/session-transfer.service.ts.html +30 -30
- package/backend/coverage/lcov-report/src/sessions/dto/index.html +21 -21
- package/backend/coverage/lcov-report/src/sessions/dto/session.dto.ts.html +54 -54
- package/backend/coverage/lcov-report/src/sessions/index.html +39 -39
- package/backend/coverage/lcov-report/src/sessions/sessions.controller.ts.html +55 -55
- package/backend/coverage/lcov-report/src/sessions/sessions.module.ts.html +30 -30
- package/backend/coverage/lcov-report/src/sessions/sessions.service.ts.html +120 -120
- package/backend/coverage/lcov-report/src/system-prompts/dto/index.html +19 -19
- package/backend/coverage/lcov-report/src/system-prompts/dto/system-prompt.dto.ts.html +38 -29
- package/backend/coverage/lcov-report/src/system-prompts/index.html +37 -37
- package/backend/coverage/lcov-report/src/system-prompts/system-prompts.controller.ts.html +34 -34
- package/backend/coverage/lcov-report/src/system-prompts/system-prompts.module.ts.html +20 -20
- package/backend/coverage/lcov-report/src/system-prompts/system-prompts.service.ts.html +62 -62
- package/backend/coverage/lcov-report/src/timeout.interceptor.ts.html +1 -1
- package/backend/coverage/lcov-report/src/utils/fuzzy-search.ts.html +310 -0
- package/backend/coverage/lcov-report/src/utils/index.html +131 -0
- package/backend/coverage/lcov-report/src/utils/index.ts.html +88 -0
- package/backend/coverage/lcov-report/src/workspace/dto/index.html +13 -13
- package/backend/coverage/lcov-report/src/workspace/dto/search-workspace.dto.ts.html +24 -24
- package/backend/coverage/lcov-report/src/workspace/index.html +37 -37
- package/backend/coverage/lcov-report/src/workspace/workspace.controller.ts.html +26 -26
- package/backend/coverage/lcov-report/src/workspace/workspace.module.ts.html +16 -16
- package/backend/coverage/lcov-report/src/workspace/workspace.service.ts.html +259 -214
- package/backend/coverage/lcov.info +3284 -3186
- package/backend/dist/action-execution/action-execution.service.d.ts +2 -0
- package/backend/dist/action-execution/action-execution.service.js +31 -13
- package/backend/dist/action-execution/action-execution.service.js.map +1 -1
- package/backend/dist/context-generation/context-generation.service.d.ts +3 -3
- package/backend/dist/context-generation/context-generation.service.js.map +1 -1
- package/backend/dist/orchestration/orchestration.service.js +1 -0
- package/backend/dist/orchestration/orchestration.service.js.map +1 -1
- package/backend/dist/session-inputs/dto/session-input.dto.d.ts +1 -0
- package/backend/dist/session-inputs/dto/session-input.dto.js +5 -0
- package/backend/dist/session-inputs/dto/session-input.dto.js.map +1 -1
- package/backend/dist/session-inputs/session-input-context.service.js +12 -8
- package/backend/dist/session-inputs/session-input-context.service.js.map +1 -1
- package/backend/dist/session-inputs/session-inputs.service.js +2 -1
- package/backend/dist/session-inputs/session-inputs.service.js.map +1 -1
- package/backend/dist/tsconfig.build.tsbuildinfo +1 -1
- package/backend/dist/utils/fuzzy-search.d.ts +1 -0
- package/backend/dist/utils/fuzzy-search.js +54 -0
- package/backend/dist/utils/fuzzy-search.js.map +1 -0
- package/backend/dist/utils/index.d.ts +1 -0
- package/backend/dist/utils/index.js +18 -0
- package/backend/dist/utils/index.js.map +1 -0
- package/backend/dist/workspace/workspace.service.d.ts +2 -1
- package/backend/dist/workspace/workspace.service.js +53 -85
- package/backend/dist/workspace/workspace.service.js.map +1 -1
- package/backend/package.json +1 -1
- package/package.json +1 -1
- package/orchestration-test.txt +0 -3
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">52.72% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>29/55</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -37,16 +37,16 @@
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">14.28% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>2/14</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">46.93% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>23/49</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line medium'></div>
|
|
65
65
|
<div class="pad1">
|
|
66
66
|
<table class="coverage-summary">
|
|
67
67
|
<thead>
|
|
@@ -79,48 +79,48 @@
|
|
|
79
79
|
</tr>
|
|
80
80
|
</thead>
|
|
81
81
|
<tbody><tr>
|
|
82
|
-
<td class="file
|
|
83
|
-
<td data-value="
|
|
84
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
82
|
+
<td class="file medium" data-value="custom-snippets.controller.ts"><a href="custom-snippets.controller.ts.html">custom-snippets.controller.ts</a></td>
|
|
83
|
+
<td data-value="68.42" class="pic medium">
|
|
84
|
+
<div class="chart"><div class="cover-fill" style="width: 68%"></div><div class="cover-empty" style="width: 32%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="
|
|
87
|
-
<td data-value="19" class="abs
|
|
86
|
+
<td data-value="68.42" class="pct medium">68.42%</td>
|
|
87
|
+
<td data-value="19" class="abs medium">13/19</td>
|
|
88
88
|
<td data-value="100" class="pct high">100%</td>
|
|
89
89
|
<td data-value="0" class="abs high">0/0</td>
|
|
90
|
-
<td data-value="
|
|
91
|
-
<td data-value="7" class="abs low">
|
|
92
|
-
<td data-value="
|
|
93
|
-
<td data-value="17" class="abs
|
|
90
|
+
<td data-value="14.28" class="pct low">14.28%</td>
|
|
91
|
+
<td data-value="7" class="abs low">1/7</td>
|
|
92
|
+
<td data-value="64.7" class="pct medium">64.7%</td>
|
|
93
|
+
<td data-value="17" class="abs medium">11/17</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
97
|
-
<td class="file
|
|
98
|
-
<td data-value="
|
|
99
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
97
|
+
<td class="file high" data-value="custom-snippets.module.ts"><a href="custom-snippets.module.ts.html">custom-snippets.module.ts</a></td>
|
|
98
|
+
<td data-value="100" class="pic high">
|
|
99
|
+
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
100
100
|
</td>
|
|
101
|
-
<td data-value="
|
|
102
|
-
<td data-value="8" class="abs
|
|
101
|
+
<td data-value="100" class="pct high">100%</td>
|
|
102
|
+
<td data-value="8" class="abs high">8/8</td>
|
|
103
103
|
<td data-value="100" class="pct high">100%</td>
|
|
104
104
|
<td data-value="0" class="abs high">0/0</td>
|
|
105
105
|
<td data-value="100" class="pct high">100%</td>
|
|
106
106
|
<td data-value="0" class="abs high">0/0</td>
|
|
107
|
-
<td data-value="
|
|
108
|
-
<td data-value="6" class="abs
|
|
107
|
+
<td data-value="100" class="pct high">100%</td>
|
|
108
|
+
<td data-value="6" class="abs high">6/6</td>
|
|
109
109
|
</tr>
|
|
110
110
|
|
|
111
111
|
<tr>
|
|
112
112
|
<td class="file low" data-value="custom-snippets.service.ts"><a href="custom-snippets.service.ts.html">custom-snippets.service.ts</a></td>
|
|
113
|
-
<td data-value="
|
|
114
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
113
|
+
<td data-value="28.57" class="pic low">
|
|
114
|
+
<div class="chart"><div class="cover-fill" style="width: 28%"></div><div class="cover-empty" style="width: 72%"></div></div>
|
|
115
115
|
</td>
|
|
116
|
-
<td data-value="
|
|
117
|
-
<td data-value="28" class="abs low">
|
|
116
|
+
<td data-value="28.57" class="pct low">28.57%</td>
|
|
117
|
+
<td data-value="28" class="abs low">8/28</td>
|
|
118
118
|
<td data-value="0" class="pct low">0%</td>
|
|
119
119
|
<td data-value="1" class="abs low">0/1</td>
|
|
120
|
-
<td data-value="
|
|
121
|
-
<td data-value="7" class="abs low">
|
|
122
|
-
<td data-value="
|
|
123
|
-
<td data-value="26" class="abs low">
|
|
120
|
+
<td data-value="14.28" class="pct low">14.28%</td>
|
|
121
|
+
<td data-value="7" class="abs low">1/7</td>
|
|
122
|
+
<td data-value="23.07" class="pct low">23.07%</td>
|
|
123
|
+
<td data-value="26" class="abs low">6/26</td>
|
|
124
124
|
</tr>
|
|
125
125
|
|
|
126
126
|
</tbody>
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
132
132
|
Code coverage generated by
|
|
133
133
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
134
|
-
at 2025-
|
|
134
|
+
at 2025-09-12T19:21:55.945Z
|
|
135
135
|
</div>
|
|
136
136
|
<script src="../../prettify.js"></script>
|
|
137
137
|
<script>
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">67.85% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>19/28</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">50% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>4/8</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">62.5% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>5/8</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">65.38% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>17/26</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line medium'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -132,27 +132,27 @@
|
|
|
132
132
|
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
133
|
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
134
|
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
-
<a name='L70'></a><a href='#L70'>70</a></td><td class="line-coverage quiet"><span class="cline-any cline-
|
|
135
|
+
<a name='L70'></a><a href='#L70'>70</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">9x</span>
|
|
136
136
|
<span class="cline-any cline-neutral"> </span>
|
|
137
137
|
<span class="cline-any cline-neutral"> </span>
|
|
138
138
|
<span class="cline-any cline-neutral"> </span>
|
|
139
139
|
<span class="cline-any cline-neutral"> </span>
|
|
140
140
|
<span class="cline-any cline-neutral"> </span>
|
|
141
|
-
<span class="cline-any cline-
|
|
142
|
-
<span class="cline-any cline-
|
|
141
|
+
<span class="cline-any cline-yes">9x</span>
|
|
142
|
+
<span class="cline-any cline-yes">9x</span>
|
|
143
143
|
<span class="cline-any cline-neutral"> </span>
|
|
144
144
|
<span class="cline-any cline-neutral"> </span>
|
|
145
145
|
<span class="cline-any cline-neutral"> </span>
|
|
146
146
|
<span class="cline-any cline-neutral"> </span>
|
|
147
147
|
<span class="cline-any cline-neutral"> </span>
|
|
148
148
|
<span class="cline-any cline-neutral"> </span>
|
|
149
|
-
<span class="cline-any cline-
|
|
149
|
+
<span class="cline-any cline-yes">9x</span>
|
|
150
150
|
<span class="cline-any cline-neutral"> </span>
|
|
151
151
|
<span class="cline-any cline-neutral"> </span>
|
|
152
152
|
<span class="cline-any cline-neutral"> </span>
|
|
153
|
-
<span class="cline-any cline-
|
|
153
|
+
<span class="cline-any cline-yes">9x</span>
|
|
154
154
|
<span class="cline-any cline-neutral"> </span>
|
|
155
|
-
<span class="cline-any cline-
|
|
155
|
+
<span class="cline-any cline-yes">6x</span>
|
|
156
156
|
<span class="cline-any cline-neutral"> </span>
|
|
157
157
|
<span class="cline-any cline-neutral"> </span>
|
|
158
158
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -165,63 +165,63 @@
|
|
|
165
165
|
<span class="cline-any cline-neutral"> </span>
|
|
166
166
|
<span class="cline-any cline-neutral"> </span>
|
|
167
167
|
<span class="cline-any cline-neutral"> </span>
|
|
168
|
-
<span class="cline-any cline-
|
|
168
|
+
<span class="cline-any cline-yes">6x</span>
|
|
169
169
|
<span class="cline-any cline-neutral"> </span>
|
|
170
170
|
<span class="cline-any cline-neutral"> </span>
|
|
171
171
|
<span class="cline-any cline-neutral"> </span>
|
|
172
|
-
<span class="cline-any cline-
|
|
172
|
+
<span class="cline-any cline-yes">6x</span>
|
|
173
173
|
<span class="cline-any cline-no"> </span>
|
|
174
174
|
<span class="cline-any cline-neutral"> </span>
|
|
175
175
|
<span class="cline-any cline-neutral"> </span>
|
|
176
|
-
<span class="cline-any cline-
|
|
176
|
+
<span class="cline-any cline-yes">6x</span>
|
|
177
177
|
<span class="cline-any cline-no"> </span>
|
|
178
178
|
<span class="cline-any cline-no"> </span>
|
|
179
179
|
<span class="cline-any cline-neutral"> </span>
|
|
180
180
|
<span class="cline-any cline-neutral"> </span>
|
|
181
181
|
<span class="cline-any cline-neutral"> </span>
|
|
182
|
-
<span class="cline-any cline-
|
|
183
|
-
<span class="cline-any cline-
|
|
184
|
-
<span class="cline-any cline-
|
|
182
|
+
<span class="cline-any cline-yes">6x</span>
|
|
183
|
+
<span class="cline-any cline-yes">6x</span>
|
|
184
|
+
<span class="cline-any cline-yes">6x</span>
|
|
185
185
|
<span class="cline-any cline-no"> </span>
|
|
186
186
|
<span class="cline-any cline-no"> </span>
|
|
187
187
|
<span class="cline-any cline-neutral"> </span>
|
|
188
|
-
<span class="cline-any cline-
|
|
189
|
-
<span class="cline-any cline-
|
|
188
|
+
<span class="cline-any cline-yes">6x</span>
|
|
189
|
+
<span class="cline-any cline-yes">6x</span>
|
|
190
190
|
<span class="cline-any cline-neutral"> </span>
|
|
191
191
|
<span class="cline-any cline-neutral"> </span>
|
|
192
192
|
<span class="cline-any cline-neutral"> </span>
|
|
193
193
|
<span class="cline-any cline-neutral"> </span>
|
|
194
194
|
<span class="cline-any cline-neutral"> </span>
|
|
195
|
-
<span class="cline-any cline-
|
|
196
|
-
<span class="cline-any cline-
|
|
197
|
-
<span class="cline-any cline-
|
|
195
|
+
<span class="cline-any cline-yes">75x</span>
|
|
196
|
+
<span class="cline-any cline-yes">75x</span>
|
|
197
|
+
<span class="cline-any cline-yes">75x</span>
|
|
198
198
|
<span class="cline-any cline-no"> </span>
|
|
199
199
|
<span class="cline-any cline-no"> </span>
|
|
200
200
|
<span class="cline-any cline-neutral"> </span>
|
|
201
201
|
<span class="cline-any cline-neutral"> </span>
|
|
202
202
|
<span class="cline-any cline-neutral"> </span>
|
|
203
203
|
<span class="cline-any cline-neutral"> </span>
|
|
204
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js"
|
|
204
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import {
|
|
205
205
|
OnGatewayConnection,
|
|
206
206
|
OnGatewayDisconnect,
|
|
207
207
|
WebSocketGateway,
|
|
208
208
|
WebSocketServer,
|
|
209
209
|
} from '@nestjs/websockets';
|
|
210
|
-
|
|
211
|
-
|
|
210
|
+
import { Server, WebSocket } from 'ws';
|
|
211
|
+
import { Logger, OnApplicationShutdown } from '@nestjs/common';
|
|
212
212
|
|
|
213
213
|
@WebSocketGateway({
|
|
214
214
|
cors: {
|
|
215
215
|
origin: '*',
|
|
216
216
|
},
|
|
217
217
|
})
|
|
218
|
-
export
|
|
218
|
+
export class EventsGateway
|
|
219
219
|
implements OnGatewayConnection, OnGatewayDisconnect, OnApplicationShutdown
|
|
220
220
|
{
|
|
221
221
|
@WebSocketServer()
|
|
222
|
-
|
|
222
|
+
server: Server;
|
|
223
223
|
|
|
224
|
-
private readonly
|
|
224
|
+
private readonly logger = new Logger(EventsGateway.name);
|
|
225
225
|
|
|
226
226
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
227
227
|
<span class="fstat-no" title="function not covered" > handleConnection(</span>client: WebSocket) {
|
|
@@ -233,37 +233,37 @@ export <span class="fstat-no" title="function not covered" >class <span class="c
|
|
|
233
233
|
<span class="cstat-no" title="statement not covered" > this.logger.log('Client disconnected from WebSocket');</span>
|
|
234
234
|
}
|
|
235
235
|
|
|
236
|
-
|
|
237
|
-
|
|
236
|
+
async onApplicationShutdown(signal?: string) {
|
|
237
|
+
this.logger.log(
|
|
238
238
|
`Shutting down WebSocket gateway on signal: ${signal || 'N/A'}`,
|
|
239
239
|
);
|
|
240
240
|
|
|
241
|
-
|
|
241
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (!this.server) {
|
|
242
242
|
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
243
243
|
}
|
|
244
244
|
|
|
245
|
-
|
|
245
|
+
for (const client of this.server.clients) {
|
|
246
246
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (client.readyState === WebSocket.OPEN) {</span>
|
|
247
247
|
<span class="cstat-no" title="statement not covered" > client.terminate();</span>
|
|
248
248
|
}
|
|
249
249
|
}
|
|
250
250
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
251
|
+
await new Promise<void>((resolve, reject) => {
|
|
252
|
+
this.server.close((err) => {
|
|
253
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (err && err.message !== 'The server is not running') {
|
|
254
254
|
<span class="cstat-no" title="statement not covered" > this.logger.error('Error closing WebSocket server:', err);</span>
|
|
255
255
|
<span class="cstat-no" title="statement not covered" > return reject(err);</span>
|
|
256
256
|
}
|
|
257
|
-
|
|
258
|
-
|
|
257
|
+
this.logger.log('WebSocket server closed or was not running.');
|
|
258
|
+
resolve();
|
|
259
259
|
});
|
|
260
260
|
});
|
|
261
261
|
}
|
|
262
262
|
|
|
263
|
-
|
|
264
|
-
const message =
|
|
265
|
-
|
|
266
|
-
|
|
263
|
+
sendToAll(event: string, data: any) {
|
|
264
|
+
const message = JSON.stringify({ event, data });
|
|
265
|
+
this.logger.log(`Broadcasting WebSocket event '${event}'`);
|
|
266
|
+
this.server.clients.forEach(<span class="fstat-no" title="function not covered" >(c</span>lient) => {
|
|
267
267
|
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (client.readyState === WebSocket.OPEN) {</span>
|
|
268
268
|
<span class="cstat-no" title="statement not covered" > client.send(message);</span>
|
|
269
269
|
}
|
|
@@ -277,7 +277,7 @@ export <span class="fstat-no" title="function not covered" >class <span class="c
|
|
|
277
277
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
278
278
|
Code coverage generated by
|
|
279
279
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
280
|
-
at 2025-
|
|
280
|
+
at 2025-09-12T19:21:55.945Z
|
|
281
281
|
</div>
|
|
282
282
|
<script src="../../prettify.js"></script>
|
|
283
283
|
<script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>5/5</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>3/3</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line high'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -71,22 +71,22 @@
|
|
|
71
71
|
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
72
|
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
73
|
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
-
<a name='L9'></a><a href='#L9'>9</a></td><td class="line-coverage quiet"><span class="cline-any cline-
|
|
75
|
-
<span class="cline-any cline-
|
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">6x</span>
|
|
75
|
+
<span class="cline-any cline-yes">6x</span>
|
|
76
76
|
<span class="cline-any cline-neutral"> </span>
|
|
77
77
|
<span class="cline-any cline-neutral"> </span>
|
|
78
78
|
<span class="cline-any cline-neutral"> </span>
|
|
79
79
|
<span class="cline-any cline-neutral"> </span>
|
|
80
80
|
<span class="cline-any cline-neutral"> </span>
|
|
81
|
-
<span class="cline-any cline-
|
|
82
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js"
|
|
83
|
-
|
|
81
|
+
<span class="cline-any cline-yes">6x</span>
|
|
82
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { Module } from '@nestjs/common';
|
|
83
|
+
import { EventsGateway } from './events.gateway';
|
|
84
84
|
|
|
85
85
|
@Module({
|
|
86
86
|
providers: [EventsGateway],
|
|
87
87
|
exports: [EventsGateway],
|
|
88
88
|
})
|
|
89
|
-
export
|
|
89
|
+
export class EventsModule {}
|
|
90
90
|
</pre></td></tr></table></pre>
|
|
91
91
|
|
|
92
92
|
<div class='push'></div><!-- for sticky footer -->
|
|
@@ -94,7 +94,7 @@ export <span class="cstat-no" title="statement not covered" >class <span class="
|
|
|
94
94
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
95
95
|
Code coverage generated by
|
|
96
96
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
97
|
-
at 2025-
|
|
97
|
+
at 2025-09-12T19:21:55.945Z
|
|
98
98
|
</div>
|
|
99
99
|
<script src="../../prettify.js"></script>
|
|
100
100
|
<script>
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">72.72% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>24/33</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">50% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>4/8</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">62.5% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>5/8</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">68.96% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>20/29</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line medium'></div>
|
|
65
65
|
<div class="pad1">
|
|
66
66
|
<table class="coverage-summary">
|
|
67
67
|
<thead>
|
|
@@ -79,33 +79,33 @@
|
|
|
79
79
|
</tr>
|
|
80
80
|
</thead>
|
|
81
81
|
<tbody><tr>
|
|
82
|
-
<td class="file
|
|
83
|
-
<td data-value="
|
|
84
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
82
|
+
<td class="file medium" data-value="events.gateway.ts"><a href="events.gateway.ts.html">events.gateway.ts</a></td>
|
|
83
|
+
<td data-value="67.85" class="pic medium">
|
|
84
|
+
<div class="chart"><div class="cover-fill" style="width: 67%"></div><div class="cover-empty" style="width: 33%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="
|
|
87
|
-
<td data-value="28" class="abs
|
|
88
|
-
<td data-value="
|
|
89
|
-
<td data-value="8" class="abs
|
|
90
|
-
<td data-value="
|
|
91
|
-
<td data-value="8" class="abs
|
|
92
|
-
<td data-value="
|
|
93
|
-
<td data-value="26" class="abs
|
|
86
|
+
<td data-value="67.85" class="pct medium">67.85%</td>
|
|
87
|
+
<td data-value="28" class="abs medium">19/28</td>
|
|
88
|
+
<td data-value="50" class="pct medium">50%</td>
|
|
89
|
+
<td data-value="8" class="abs medium">4/8</td>
|
|
90
|
+
<td data-value="62.5" class="pct medium">62.5%</td>
|
|
91
|
+
<td data-value="8" class="abs medium">5/8</td>
|
|
92
|
+
<td data-value="65.38" class="pct medium">65.38%</td>
|
|
93
|
+
<td data-value="26" class="abs medium">17/26</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
97
|
-
<td class="file
|
|
98
|
-
<td data-value="
|
|
99
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
97
|
+
<td class="file high" data-value="events.module.ts"><a href="events.module.ts.html">events.module.ts</a></td>
|
|
98
|
+
<td data-value="100" class="pic high">
|
|
99
|
+
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
100
100
|
</td>
|
|
101
|
-
<td data-value="
|
|
102
|
-
<td data-value="5" class="abs
|
|
101
|
+
<td data-value="100" class="pct high">100%</td>
|
|
102
|
+
<td data-value="5" class="abs high">5/5</td>
|
|
103
103
|
<td data-value="100" class="pct high">100%</td>
|
|
104
104
|
<td data-value="0" class="abs high">0/0</td>
|
|
105
105
|
<td data-value="100" class="pct high">100%</td>
|
|
106
106
|
<td data-value="0" class="abs high">0/0</td>
|
|
107
|
-
<td data-value="
|
|
108
|
-
<td data-value="3" class="abs
|
|
107
|
+
<td data-value="100" class="pct high">100%</td>
|
|
108
|
+
<td data-value="3" class="abs high">3/3</td>
|
|
109
109
|
</tr>
|
|
110
110
|
|
|
111
111
|
</tbody>
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
117
117
|
Code coverage generated by
|
|
118
118
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
119
|
-
at 2025-
|
|
119
|
+
at 2025-09-12T19:21:55.945Z
|
|
120
120
|
</div>
|
|
121
121
|
<script src="../../prettify.js"></script>
|
|
122
122
|
<script>
|
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
116
116
|
Code coverage generated by
|
|
117
117
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
118
|
-
at 2025-
|
|
118
|
+
at 2025-09-12T19:21:55.945Z
|
|
119
119
|
</div>
|
|
120
120
|
<script src="../../../prettify.js"></script>
|
|
121
121
|
<script>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at 2025-
|
|
104
|
+
at 2025-09-12T19:21:55.945Z
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../../prettify.js"></script>
|
|
107
107
|
<script>
|