@futdevpro/nts-dynamo 1.15.136 → 1.15.137

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 (1333) hide show
  1. package/.c8rc.json +26 -26
  2. package/.copilot/patterns.json +7 -7
  3. package/.cursor/rules/__assistant_guide.mdc +30 -30
  4. package/.cursor/rules/_ag_backend-structure.mdc +85 -85
  5. package/.cursor/rules/_ag_backend.mdc +16 -16
  6. package/.cursor/rules/_ag_frontend-structure.mdc +86 -86
  7. package/.cursor/rules/_ag_frontend.mdc +39 -39
  8. package/.cursor/rules/_ag_import-rules.mdc +44 -44
  9. package/.cursor/rules/_ag_naming.mdc +115 -115
  10. package/.cursor/rules/_ag_should-be.mdc +6 -6
  11. package/.cursor/rules/ai_development_guide.md +60 -60
  12. package/.cursor/rules/cursor-rules.md +160 -160
  13. package/.cursor/rules/default-command.mdc +464 -464
  14. package/.cursor/rules/error_code_pattern.md +39 -39
  15. package/.cursor/rules/saved rule mcp server use.md +15 -15
  16. package/.vscode/settings.json +10 -10
  17. package/HOWTO.md +15 -15
  18. package/LICENSE +21 -21
  19. package/__documentations/nts-integration-tests-2026-03-17.md +26 -26
  20. package/__documentations/plans/BEDROCK-HYPERPLAN.md +95 -95
  21. package/_specifications/BACKLOG.md +92 -92
  22. package/_specifications/TODO.md +15 -15
  23. package/_specifications/agent.md +138 -138
  24. package/build/_collections/app-version-header.util.spec.d.ts +2 -0
  25. package/build/_collections/app-version-header.util.spec.d.ts.map +1 -0
  26. package/build/_collections/app-version-header.util.spec.js +82 -0
  27. package/build/_collections/app-version-header.util.spec.js.map +1 -0
  28. package/build/_collections/archive.util.spec.d.ts +2 -0
  29. package/build/_collections/archive.util.spec.d.ts.map +1 -0
  30. package/build/_collections/archive.util.spec.js +51 -0
  31. package/build/_collections/archive.util.spec.js.map +1 -0
  32. package/build/_collections/client-safe-error.util.spec.d.ts +2 -0
  33. package/build/_collections/client-safe-error.util.spec.d.ts.map +1 -0
  34. package/build/_collections/client-safe-error.util.spec.js +124 -0
  35. package/build/_collections/client-safe-error.util.spec.js.map +1 -0
  36. package/build/_collections/default-fallback-cache-max-age.const.spec.d.ts +2 -0
  37. package/build/_collections/default-fallback-cache-max-age.const.spec.d.ts.map +1 -0
  38. package/build/_collections/default-fallback-cache-max-age.const.spec.js +12 -0
  39. package/build/_collections/default-fallback-cache-max-age.const.spec.js.map +1 -0
  40. package/build/_collections/default-not-found-page.const.spec.d.ts +2 -0
  41. package/build/_collections/default-not-found-page.const.spec.d.ts.map +1 -0
  42. package/build/_collections/default-not-found-page.const.spec.js +19 -0
  43. package/build/_collections/default-not-found-page.const.spec.js.map +1 -0
  44. package/build/_collections/default-socket-path.const.spec.d.ts +2 -0
  45. package/build/_collections/default-socket-path.const.spec.d.ts.map +1 -0
  46. package/build/_collections/default-socket-path.const.spec.js +13 -0
  47. package/build/_collections/default-socket-path.const.spec.js.map +1 -0
  48. package/build/_collections/field-encryption.util.spec.d.ts +2 -0
  49. package/build/_collections/field-encryption.util.spec.d.ts.map +1 -0
  50. package/build/_collections/field-encryption.util.spec.js +156 -0
  51. package/build/_collections/field-encryption.util.spec.js.map +1 -0
  52. package/build/_collections/get-environment-settings.util.spec.d.ts +2 -0
  53. package/build/_collections/get-environment-settings.util.spec.d.ts.map +1 -0
  54. package/build/_collections/get-environment-settings.util.spec.js +165 -0
  55. package/build/_collections/get-environment-settings.util.spec.js.map +1 -0
  56. package/build/_collections/load-shed.util.spec.d.ts +2 -0
  57. package/build/_collections/load-shed.util.spec.d.ts.map +1 -0
  58. package/build/_collections/load-shed.util.spec.js +48 -0
  59. package/build/_collections/load-shed.util.spec.js.map +1 -0
  60. package/build/_collections/mongo-reconnect-guard.util.spec.d.ts +2 -0
  61. package/build/_collections/mongo-reconnect-guard.util.spec.d.ts.map +1 -0
  62. package/build/_collections/mongo-reconnect-guard.util.spec.js +46 -0
  63. package/build/_collections/mongo-reconnect-guard.util.spec.js.map +1 -0
  64. package/build/_collections/security-headers.util.spec.d.ts +2 -0
  65. package/build/_collections/security-headers.util.spec.d.ts.map +1 -0
  66. package/build/_collections/security-headers.util.spec.js +66 -0
  67. package/build/_collections/security-headers.util.spec.js.map +1 -0
  68. package/build/_collections/signed-url.util.spec.d.ts +2 -0
  69. package/build/_collections/signed-url.util.spec.d.ts.map +1 -0
  70. package/build/_collections/signed-url.util.spec.js +161 -0
  71. package/build/_collections/signed-url.util.spec.js.map +1 -0
  72. package/build/_collections/star.controller.spec.d.ts +2 -0
  73. package/build/_collections/star.controller.spec.d.ts.map +1 -0
  74. package/build/_collections/star.controller.spec.js +194 -0
  75. package/build/_collections/star.controller.spec.js.map +1 -0
  76. package/build/_collections/static-cache-control.util.spec.d.ts +2 -0
  77. package/build/_collections/static-cache-control.util.spec.d.ts.map +1 -0
  78. package/build/_collections/static-cache-control.util.spec.js +41 -0
  79. package/build/_collections/static-cache-control.util.spec.js.map +1 -0
  80. package/build/_models/control-models/api-call-params.control-model.spec.d.ts +2 -0
  81. package/build/_models/control-models/api-call-params.control-model.spec.d.ts.map +1 -0
  82. package/build/_models/control-models/api-call-params.control-model.spec.js +128 -0
  83. package/build/_models/control-models/api-call-params.control-model.spec.js.map +1 -0
  84. package/build/_models/control-models/app-ext-system-controls.control-model.spec.d.ts +2 -0
  85. package/build/_models/control-models/app-ext-system-controls.control-model.spec.d.ts.map +1 -0
  86. package/build/_models/control-models/app-ext-system-controls.control-model.spec.js +43 -0
  87. package/build/_models/control-models/app-ext-system-controls.control-model.spec.js.map +1 -0
  88. package/build/_models/control-models/app-params.control-model.spec.d.ts +2 -0
  89. package/build/_models/control-models/app-params.control-model.spec.d.ts.map +1 -0
  90. package/build/_models/control-models/app-params.control-model.spec.js +180 -0
  91. package/build/_models/control-models/app-params.control-model.spec.js.map +1 -0
  92. package/build/_models/control-models/app-system-controls.control-model.spec.d.ts +2 -0
  93. package/build/_models/control-models/app-system-controls.control-model.spec.d.ts.map +1 -0
  94. package/build/_models/control-models/app-system-controls.control-model.spec.js +26 -0
  95. package/build/_models/control-models/app-system-controls.control-model.spec.js.map +1 -0
  96. package/build/_models/control-models/endpoint-params.control-model.spec.d.ts +2 -0
  97. package/build/_models/control-models/endpoint-params.control-model.spec.d.ts.map +1 -0
  98. package/build/_models/control-models/endpoint-params.control-model.spec.js +569 -0
  99. package/build/_models/control-models/endpoint-params.control-model.spec.js.map +1 -0
  100. package/build/_models/control-models/http-settings.control-model.spec.d.ts +2 -0
  101. package/build/_models/control-models/http-settings.control-model.spec.d.ts.map +1 -0
  102. package/build/_models/control-models/http-settings.control-model.spec.js +71 -0
  103. package/build/_models/control-models/http-settings.control-model.spec.js.map +1 -0
  104. package/build/_models/control-models/system-control.control-model.spec.d.ts +2 -0
  105. package/build/_models/control-models/system-control.control-model.spec.d.ts.map +1 -0
  106. package/build/_models/control-models/system-control.control-model.spec.js +24 -0
  107. package/build/_models/control-models/system-control.control-model.spec.js.map +1 -0
  108. package/build/_models/interfaces/cors-settings.interface.spec.d.ts +2 -0
  109. package/build/_models/interfaces/cors-settings.interface.spec.d.ts.map +1 -0
  110. package/build/_models/interfaces/cors-settings.interface.spec.js +48 -0
  111. package/build/_models/interfaces/cors-settings.interface.spec.js.map +1 -0
  112. package/build/_models/interfaces/static-client-settings.interface.spec.d.ts +2 -0
  113. package/build/_models/interfaces/static-client-settings.interface.spec.d.ts.map +1 -0
  114. package/build/_models/interfaces/static-client-settings.interface.spec.js +28 -0
  115. package/build/_models/interfaces/static-client-settings.interface.spec.js.map +1 -0
  116. package/build/_modules/admin-auth/admin-api-key.auth-service.spec.d.ts +2 -0
  117. package/build/_modules/admin-auth/admin-api-key.auth-service.spec.d.ts.map +1 -0
  118. package/build/_modules/admin-auth/admin-api-key.auth-service.spec.js +185 -0
  119. package/build/_modules/admin-auth/admin-api-key.auth-service.spec.js.map +1 -0
  120. package/build/_modules/ai/_collections/ai-model-config-validator.util.spec.d.ts +2 -0
  121. package/build/_modules/ai/_collections/ai-model-config-validator.util.spec.d.ts.map +1 -0
  122. package/build/_modules/ai/_collections/ai-model-config-validator.util.spec.js +132 -0
  123. package/build/_modules/ai/_collections/ai-model-config-validator.util.spec.js.map +1 -0
  124. package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.spec.d.ts +2 -0
  125. package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.spec.d.ts.map +1 -0
  126. package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.spec.js +56 -0
  127. package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.spec.js.map +1 -0
  128. package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.spec.d.ts +2 -0
  129. package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.spec.d.ts.map +1 -0
  130. package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.spec.js +43 -0
  131. package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.spec.js.map +1 -0
  132. package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.spec.d.ts +2 -0
  133. package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.spec.d.ts.map +1 -0
  134. package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.spec.js +47 -0
  135. package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.spec.js.map +1 -0
  136. package/build/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.d.ts +2 -0
  137. package/build/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.d.ts.map +1 -0
  138. package/build/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.js +98 -0
  139. package/build/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.js.map +1 -0
  140. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.spec.d.ts +2 -0
  141. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.spec.d.ts.map +1 -0
  142. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.spec.js +117 -0
  143. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.spec.js.map +1 -0
  144. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-pipeline.spec.d.ts +2 -0
  145. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-pipeline.spec.d.ts.map +1 -0
  146. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-pipeline.spec.js +87 -0
  147. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-pipeline.spec.js.map +1 -0
  148. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.spec.d.ts +2 -0
  149. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.spec.d.ts.map +1 -0
  150. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.spec.js +42 -0
  151. package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.spec.js.map +1 -0
  152. package/build/_modules/ai/_modules/ai-mock/_services/aim-integration-proof.spec.d.ts +2 -0
  153. package/build/_modules/ai/_modules/ai-mock/_services/aim-integration-proof.spec.d.ts.map +1 -0
  154. package/build/_modules/ai/_modules/ai-mock/_services/aim-integration-proof.spec.js +74 -0
  155. package/build/_modules/ai/_modules/ai-mock/_services/aim-integration-proof.spec.js.map +1 -0
  156. package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.spec.d.ts +2 -0
  157. package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.spec.d.ts.map +1 -0
  158. package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.spec.js +95 -0
  159. package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.spec.js.map +1 -0
  160. package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.d.ts +2 -0
  161. package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.d.ts.map +1 -0
  162. package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.js +207 -0
  163. package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.js.map +1 -0
  164. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.d.ts +2 -0
  165. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.d.ts.map +1 -0
  166. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.js +244 -0
  167. package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.js.map +1 -0
  168. package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.d.ts +2 -0
  169. package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.d.ts.map +1 -0
  170. package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.js +162 -0
  171. package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.js.map +1 -0
  172. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.d.ts +2 -0
  173. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.d.ts.map +1 -0
  174. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.js +279 -0
  175. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.js.map +1 -0
  176. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.d.ts +2 -0
  177. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.d.ts.map +1 -0
  178. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.js +452 -0
  179. package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.js.map +1 -0
  180. package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.d.ts +2 -0
  181. package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.d.ts.map +1 -0
  182. package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.js +293 -0
  183. package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.js.map +1 -0
  184. package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.d.ts +2 -0
  185. package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.d.ts.map +1 -0
  186. package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.js +395 -0
  187. package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.js.map +1 -0
  188. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.d.ts +2 -0
  189. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.d.ts.map +1 -0
  190. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.js +411 -0
  191. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.js.map +1 -0
  192. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.d.ts +2 -0
  193. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.d.ts.map +1 -0
  194. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.js +143 -0
  195. package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.js.map +1 -0
  196. package/build/_modules/ai/_services/ai-embedding-provider.registry.spec.d.ts +2 -0
  197. package/build/_modules/ai/_services/ai-embedding-provider.registry.spec.d.ts.map +1 -0
  198. package/build/_modules/ai/_services/ai-embedding-provider.registry.spec.js +98 -0
  199. package/build/_modules/ai/_services/ai-embedding-provider.registry.spec.js.map +1 -0
  200. package/build/_modules/ai/_services/ai-embedding.service-base.spec.d.ts +2 -0
  201. package/build/_modules/ai/_services/ai-embedding.service-base.spec.d.ts.map +1 -0
  202. package/build/_modules/ai/_services/ai-embedding.service-base.spec.js +80 -0
  203. package/build/_modules/ai/_services/ai-embedding.service-base.spec.js.map +1 -0
  204. package/build/_modules/ai/_services/ai-llm-chat.service-base.spec.d.ts +2 -0
  205. package/build/_modules/ai/_services/ai-llm-chat.service-base.spec.d.ts.map +1 -0
  206. package/build/_modules/ai/_services/ai-llm-chat.service-base.spec.js +186 -0
  207. package/build/_modules/ai/_services/ai-llm-chat.service-base.spec.js.map +1 -0
  208. package/build/_modules/ai/_services/ai-llm.service-base.reconciler.spec.d.ts +2 -0
  209. package/build/_modules/ai/_services/ai-llm.service-base.reconciler.spec.d.ts.map +1 -0
  210. package/build/_modules/ai/_services/ai-llm.service-base.reconciler.spec.js +108 -0
  211. package/build/_modules/ai/_services/ai-llm.service-base.reconciler.spec.js.map +1 -0
  212. package/build/_modules/ai/_services/ai-llm.service-base.spec.d.ts +2 -0
  213. package/build/_modules/ai/_services/ai-llm.service-base.spec.d.ts.map +1 -0
  214. package/build/_modules/ai/_services/ai-llm.service-base.spec.js +185 -0
  215. package/build/_modules/ai/_services/ai-llm.service-base.spec.js.map +1 -0
  216. package/build/_modules/ai/_services/ai-provider.service-base.spec.d.ts +2 -0
  217. package/build/_modules/ai/_services/ai-provider.service-base.spec.d.ts.map +1 -0
  218. package/build/_modules/ai/_services/ai-provider.service-base.spec.js +128 -0
  219. package/build/_modules/ai/_services/ai-provider.service-base.spec.js.map +1 -0
  220. package/build/_modules/ai/_services/lmstudio-embedding.control-service.spec.d.ts +2 -0
  221. package/build/_modules/ai/_services/lmstudio-embedding.control-service.spec.d.ts.map +1 -0
  222. package/build/_modules/ai/_services/lmstudio-embedding.control-service.spec.js +159 -0
  223. package/build/_modules/ai/_services/lmstudio-embedding.control-service.spec.js.map +1 -0
  224. package/build/_modules/assistant/_collections/ass.util.spec.d.ts +2 -0
  225. package/build/_modules/assistant/_collections/ass.util.spec.d.ts.map +1 -0
  226. package/build/_modules/assistant/_collections/ass.util.spec.js +153 -0
  227. package/build/_modules/assistant/_collections/ass.util.spec.js.map +1 -0
  228. package/build/_modules/assistant/_services/ass-io.control-service.spec.d.ts +2 -0
  229. package/build/_modules/assistant/_services/ass-io.control-service.spec.d.ts.map +1 -0
  230. package/build/_modules/assistant/_services/ass-io.control-service.spec.js +99 -0
  231. package/build/_modules/assistant/_services/ass-io.control-service.spec.js.map +1 -0
  232. package/build/_modules/assistant/_services/ass-main.control-service.spec.d.ts +2 -0
  233. package/build/_modules/assistant/_services/ass-main.control-service.spec.d.ts.map +1 -0
  234. package/build/_modules/assistant/_services/ass-main.control-service.spec.js +146 -0
  235. package/build/_modules/assistant/_services/ass-main.control-service.spec.js.map +1 -0
  236. package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.d.ts +2 -0
  237. package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.d.ts.map +1 -0
  238. package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.js +356 -0
  239. package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.js.map +1 -0
  240. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.d.ts +2 -0
  241. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.d.ts.map +1 -0
  242. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.js +93 -0
  243. package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.js.map +1 -0
  244. package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.d.ts +2 -0
  245. package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.d.ts.map +1 -0
  246. package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.js +304 -0
  247. package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.js.map +1 -0
  248. package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.d.ts +2 -0
  249. package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.d.ts.map +1 -0
  250. package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.js +336 -0
  251. package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.js.map +1 -0
  252. package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.d.ts +2 -0
  253. package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.d.ts.map +1 -0
  254. package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.js +337 -0
  255. package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.js.map +1 -0
  256. package/build/_modules/bot/_services/bot-commands.control-service.spec.d.ts +2 -0
  257. package/build/_modules/bot/_services/bot-commands.control-service.spec.d.ts.map +1 -0
  258. package/build/_modules/bot/_services/bot-commands.control-service.spec.js +84 -0
  259. package/build/_modules/bot/_services/bot-commands.control-service.spec.js.map +1 -0
  260. package/build/_modules/bot/_services/bot-io.control-service.spec.d.ts +2 -0
  261. package/build/_modules/bot/_services/bot-io.control-service.spec.d.ts.map +1 -0
  262. package/build/_modules/bot/_services/bot-io.control-service.spec.js +228 -0
  263. package/build/_modules/bot/_services/bot-io.control-service.spec.js.map +1 -0
  264. package/build/_modules/bot/_services/bot-main.control-service.spec.d.ts +2 -0
  265. package/build/_modules/bot/_services/bot-main.control-service.spec.d.ts.map +1 -0
  266. package/build/_modules/bot/_services/bot-main.control-service.spec.js +164 -0
  267. package/build/_modules/bot/_services/bot-main.control-service.spec.js.map +1 -0
  268. package/build/_modules/bot/_services/bot-messaging-provider.service-base.spec.d.ts +2 -0
  269. package/build/_modules/bot/_services/bot-messaging-provider.service-base.spec.d.ts.map +1 -0
  270. package/build/_modules/bot/_services/bot-messaging-provider.service-base.spec.js +267 -0
  271. package/build/_modules/bot/_services/bot-messaging-provider.service-base.spec.js.map +1 -0
  272. package/build/_modules/bot/_services/bot-routines.control-service.spec.d.ts +2 -0
  273. package/build/_modules/bot/_services/bot-routines.control-service.spec.d.ts.map +1 -0
  274. package/build/_modules/bot/_services/bot-routines.control-service.spec.js +82 -0
  275. package/build/_modules/bot/_services/bot-routines.control-service.spec.js.map +1 -0
  276. package/build/_modules/custom-data/custom-data.controller.spec.d.ts +2 -0
  277. package/build/_modules/custom-data/custom-data.controller.spec.d.ts.map +1 -0
  278. package/build/_modules/custom-data/custom-data.controller.spec.js +38 -0
  279. package/build/_modules/custom-data/custom-data.controller.spec.js.map +1 -0
  280. package/build/_modules/custom-data/custom-data.data-service.spec.d.ts +2 -0
  281. package/build/_modules/custom-data/custom-data.data-service.spec.d.ts.map +1 -0
  282. package/build/_modules/custom-data/custom-data.data-service.spec.js +45 -0
  283. package/build/_modules/custom-data/custom-data.data-service.spec.js.map +1 -0
  284. package/build/_modules/custom-data/get-custom-data-routing-module.util.spec.d.ts +2 -0
  285. package/build/_modules/custom-data/get-custom-data-routing-module.util.spec.d.ts.map +1 -0
  286. package/build/_modules/custom-data/get-custom-data-routing-module.util.spec.js +23 -0
  287. package/build/_modules/custom-data/get-custom-data-routing-module.util.spec.js.map +1 -0
  288. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.d.ts +2 -0
  289. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.d.ts.map +1 -0
  290. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.js +124 -0
  291. package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.js.map +1 -0
  292. package/build/_modules/defaults/_services/default-auth.service.spec.d.ts +2 -0
  293. package/build/_modules/defaults/_services/default-auth.service.spec.d.ts.map +1 -0
  294. package/build/_modules/defaults/_services/default-auth.service.spec.js +210 -0
  295. package/build/_modules/defaults/_services/default-auth.service.spec.js.map +1 -0
  296. package/build/_modules/defaults/_services/default-socket-events.service.spec.d.ts +2 -0
  297. package/build/_modules/defaults/_services/default-socket-events.service.spec.d.ts.map +1 -0
  298. package/build/_modules/defaults/_services/default-socket-events.service.spec.js +34 -0
  299. package/build/_modules/defaults/_services/default-socket-events.service.spec.js.map +1 -0
  300. package/build/_modules/defaults/_services/default-user.data-service.spec.d.ts +2 -0
  301. package/build/_modules/defaults/_services/default-user.data-service.spec.d.ts.map +1 -0
  302. package/build/_modules/defaults/_services/default-user.data-service.spec.js +133 -0
  303. package/build/_modules/defaults/_services/default-user.data-service.spec.js.map +1 -0
  304. package/build/_modules/discord-assistant/_collections/dias.util.spec.d.ts +2 -0
  305. package/build/_modules/discord-assistant/_collections/dias.util.spec.d.ts.map +1 -0
  306. package/build/_modules/discord-assistant/_collections/dias.util.spec.js +307 -0
  307. package/build/_modules/discord-assistant/_collections/dias.util.spec.js.map +1 -0
  308. package/build/_modules/discord-assistant/_services/dias-io.control-service.spec.d.ts +2 -0
  309. package/build/_modules/discord-assistant/_services/dias-io.control-service.spec.d.ts.map +1 -0
  310. package/build/_modules/discord-assistant/_services/dias-io.control-service.spec.js +76 -0
  311. package/build/_modules/discord-assistant/_services/dias-io.control-service.spec.js.map +1 -0
  312. package/build/_modules/discord-assistant/_services/dias-main.control-service.spec.d.ts +2 -0
  313. package/build/_modules/discord-assistant/_services/dias-main.control-service.spec.d.ts.map +1 -0
  314. package/build/_modules/discord-assistant/_services/dias-main.control-service.spec.js +17 -0
  315. package/build/_modules/discord-assistant/_services/dias-main.control-service.spec.js.map +1 -0
  316. package/build/_modules/discord-assistant/_services/dias.service-base.spec.d.ts +2 -0
  317. package/build/_modules/discord-assistant/_services/dias.service-base.spec.d.ts.map +1 -0
  318. package/build/_modules/discord-assistant/_services/dias.service-base.spec.js +151 -0
  319. package/build/_modules/discord-assistant/_services/dias.service-base.spec.js.map +1 -0
  320. package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.d.ts +2 -0
  321. package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.d.ts.map +1 -0
  322. package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.js +29 -0
  323. package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.js.map +1 -0
  324. package/build/_modules/discord-bot/_collections/dibo-operations.util.spec.d.ts +2 -0
  325. package/build/_modules/discord-bot/_collections/dibo-operations.util.spec.d.ts.map +1 -0
  326. package/build/_modules/discord-bot/_collections/dibo-operations.util.spec.js +172 -0
  327. package/build/_modules/discord-bot/_collections/dibo-operations.util.spec.js.map +1 -0
  328. package/build/_modules/discord-bot/_services/dibo-commands.control-service.spec.d.ts +2 -0
  329. package/build/_modules/discord-bot/_services/dibo-commands.control-service.spec.d.ts.map +1 -0
  330. package/build/_modules/discord-bot/_services/dibo-commands.control-service.spec.js +133 -0
  331. package/build/_modules/discord-bot/_services/dibo-commands.control-service.spec.js.map +1 -0
  332. package/build/_modules/discord-bot/_services/dibo-io.control-service.spec.d.ts +2 -0
  333. package/build/_modules/discord-bot/_services/dibo-io.control-service.spec.d.ts.map +1 -0
  334. package/build/_modules/discord-bot/_services/dibo-io.control-service.spec.js +215 -0
  335. package/build/_modules/discord-bot/_services/dibo-io.control-service.spec.js.map +1 -0
  336. package/build/_modules/discord-bot/_services/dibo-main.control-service.spec.d.ts +2 -0
  337. package/build/_modules/discord-bot/_services/dibo-main.control-service.spec.d.ts.map +1 -0
  338. package/build/_modules/discord-bot/_services/dibo-main.control-service.spec.js +342 -0
  339. package/build/_modules/discord-bot/_services/dibo-main.control-service.spec.js.map +1 -0
  340. package/build/_modules/discord-bot/_services/dibo-routines.control-service.spec.d.ts +2 -0
  341. package/build/_modules/discord-bot/_services/dibo-routines.control-service.spec.d.ts.map +1 -0
  342. package/build/_modules/discord-bot/_services/dibo-routines.control-service.spec.js +87 -0
  343. package/build/_modules/discord-bot/_services/dibo-routines.control-service.spec.js.map +1 -0
  344. package/build/_modules/local-vector-search/_services/lvs-bm25.util.spec.d.ts +2 -0
  345. package/build/_modules/local-vector-search/_services/lvs-bm25.util.spec.d.ts.map +1 -0
  346. package/build/_modules/local-vector-search/_services/lvs-bm25.util.spec.js +137 -0
  347. package/build/_modules/local-vector-search/_services/lvs-bm25.util.spec.js.map +1 -0
  348. package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.d.ts +2 -0
  349. package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.d.ts.map +1 -0
  350. package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.js +345 -0
  351. package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.js.map +1 -0
  352. package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.d.ts +2 -0
  353. package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.d.ts.map +1 -0
  354. package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.js +407 -0
  355. package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.js.map +1 -0
  356. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.d.ts +2 -0
  357. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.d.ts.map +1 -0
  358. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.js +160 -0
  359. package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.js.map +1 -0
  360. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.d.ts +2 -0
  361. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.d.ts.map +1 -0
  362. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.js +122 -0
  363. package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.js.map +1 -0
  364. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.d.ts +2 -0
  365. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.d.ts.map +1 -0
  366. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.js +388 -0
  367. package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.js.map +1 -0
  368. package/build/_modules/logs/file-log.service.spec.d.ts +2 -0
  369. package/build/_modules/logs/file-log.service.spec.d.ts.map +1 -0
  370. package/build/_modules/logs/file-log.service.spec.js +300 -0
  371. package/build/_modules/logs/file-log.service.spec.js.map +1 -0
  372. package/build/_modules/logs/file-logs.controller.spec.d.ts +2 -0
  373. package/build/_modules/logs/file-logs.controller.spec.d.ts.map +1 -0
  374. package/build/_modules/logs/file-logs.controller.spec.js +203 -0
  375. package/build/_modules/logs/file-logs.controller.spec.js.map +1 -0
  376. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.spec.d.ts +2 -0
  377. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.spec.d.ts.map +1 -0
  378. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.spec.js +125 -0
  379. package/build/_modules/mcp/_services/dynts-mcp-server.service-base.spec.js.map +1 -0
  380. package/build/_modules/messaging/_collections/msg.util.spec.d.ts +2 -0
  381. package/build/_modules/messaging/_collections/msg.util.spec.d.ts.map +1 -0
  382. package/build/_modules/messaging/_collections/msg.util.spec.js +157 -0
  383. package/build/_modules/messaging/_collections/msg.util.spec.js.map +1 -0
  384. package/build/_modules/messaging/_services/msg-events.service.spec.d.ts +2 -0
  385. package/build/_modules/messaging/_services/msg-events.service.spec.d.ts.map +1 -0
  386. package/build/_modules/messaging/_services/msg-events.service.spec.js +122 -0
  387. package/build/_modules/messaging/_services/msg-events.service.spec.js.map +1 -0
  388. package/build/_modules/messaging/_services/msg-main.control-service.spec.d.ts +2 -0
  389. package/build/_modules/messaging/_services/msg-main.control-service.spec.d.ts.map +1 -0
  390. package/build/_modules/messaging/_services/msg-main.control-service.spec.js +121 -0
  391. package/build/_modules/messaging/_services/msg-main.control-service.spec.js.map +1 -0
  392. package/build/_modules/messaging/_services/msg.controller.spec.d.ts +2 -0
  393. package/build/_modules/messaging/_services/msg.controller.spec.d.ts.map +1 -0
  394. package/build/_modules/messaging/_services/msg.controller.spec.js +165 -0
  395. package/build/_modules/messaging/_services/msg.controller.spec.js.map +1 -0
  396. package/build/_modules/mock/app-params.mock.spec.d.ts +2 -0
  397. package/build/_modules/mock/app-params.mock.spec.d.ts.map +1 -0
  398. package/build/_modules/mock/app-params.mock.spec.js +19 -0
  399. package/build/_modules/mock/app-params.mock.spec.js.map +1 -0
  400. package/build/_modules/mock/auth-service.mock.spec.d.ts +2 -0
  401. package/build/_modules/mock/auth-service.mock.spec.d.ts.map +1 -0
  402. package/build/_modules/mock/auth-service.mock.spec.js +40 -0
  403. package/build/_modules/mock/auth-service.mock.spec.js.map +1 -0
  404. package/build/_modules/mock/controller.mock.spec.d.ts +2 -0
  405. package/build/_modules/mock/controller.mock.spec.d.ts.map +1 -0
  406. package/build/_modules/mock/controller.mock.spec.js +23 -0
  407. package/build/_modules/mock/controller.mock.spec.js.map +1 -0
  408. package/build/_modules/mock/data-model.mock.spec.d.ts +2 -0
  409. package/build/_modules/mock/data-model.mock.spec.d.ts.map +1 -0
  410. package/build/_modules/mock/data-model.mock.spec.js +101 -0
  411. package/build/_modules/mock/data-model.mock.spec.js.map +1 -0
  412. package/build/_modules/mock/email-service-collection.mock.spec.d.ts +2 -0
  413. package/build/_modules/mock/email-service-collection.mock.spec.d.ts.map +1 -0
  414. package/build/_modules/mock/email-service-collection.mock.spec.js +21 -0
  415. package/build/_modules/mock/email-service-collection.mock.spec.js.map +1 -0
  416. package/build/_modules/mock/email-service.mock.spec.d.ts +2 -0
  417. package/build/_modules/mock/email-service.mock.spec.d.ts.map +1 -0
  418. package/build/_modules/mock/email-service.mock.spec.js +14 -0
  419. package/build/_modules/mock/email-service.mock.spec.js.map +1 -0
  420. package/build/_modules/mock/socket-client.mock.spec.d.ts +2 -0
  421. package/build/_modules/mock/socket-client.mock.spec.d.ts.map +1 -0
  422. package/build/_modules/mock/socket-client.mock.spec.js +32 -0
  423. package/build/_modules/mock/socket-client.mock.spec.js.map +1 -0
  424. package/build/_modules/mock/socket-server.mock.spec.d.ts +2 -0
  425. package/build/_modules/mock/socket-server.mock.spec.d.ts.map +1 -0
  426. package/build/_modules/mock/socket-server.mock.spec.js +36 -0
  427. package/build/_modules/mock/socket-server.mock.spec.js.map +1 -0
  428. package/build/_modules/oauth2/_routes/oauth2.controller.spec.d.ts +2 -0
  429. package/build/_modules/oauth2/_routes/oauth2.controller.spec.d.ts.map +1 -0
  430. package/build/_modules/oauth2/_routes/oauth2.controller.spec.js +89 -0
  431. package/build/_modules/oauth2/_routes/oauth2.controller.spec.js.map +1 -0
  432. package/build/_modules/oauth2/_services/oauth2.auth-service.spec.d.ts +2 -0
  433. package/build/_modules/oauth2/_services/oauth2.auth-service.spec.d.ts.map +1 -0
  434. package/build/_modules/oauth2/_services/oauth2.auth-service.spec.js +195 -0
  435. package/build/_modules/oauth2/_services/oauth2.auth-service.spec.js.map +1 -0
  436. package/build/_modules/oauth2/_services/oauth2.control-service.spec.d.ts +2 -0
  437. package/build/_modules/oauth2/_services/oauth2.control-service.spec.d.ts.map +1 -0
  438. package/build/_modules/oauth2/_services/oauth2.control-service.spec.js +432 -0
  439. package/build/_modules/oauth2/_services/oauth2.control-service.spec.js.map +1 -0
  440. package/build/_modules/rate-limit/rate-limit.middleware.spec.d.ts +2 -0
  441. package/build/_modules/rate-limit/rate-limit.middleware.spec.d.ts.map +1 -0
  442. package/build/_modules/rate-limit/rate-limit.middleware.spec.js +277 -0
  443. package/build/_modules/rate-limit/rate-limit.middleware.spec.js.map +1 -0
  444. package/build/_modules/scheduler/scheduler.controller.spec.d.ts +2 -0
  445. package/build/_modules/scheduler/scheduler.controller.spec.d.ts.map +1 -0
  446. package/build/_modules/scheduler/scheduler.controller.spec.js +35 -0
  447. package/build/_modules/scheduler/scheduler.controller.spec.js.map +1 -0
  448. package/build/_modules/scheduler/scheduler.service.spec.d.ts +2 -0
  449. package/build/_modules/scheduler/scheduler.service.spec.d.ts.map +1 -0
  450. package/build/_modules/scheduler/scheduler.service.spec.js +123 -0
  451. package/build/_modules/scheduler/scheduler.service.spec.js.map +1 -0
  452. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.d.ts +2 -0
  453. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.d.ts.map +1 -0
  454. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.js +229 -0
  455. package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.js.map +1 -0
  456. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.d.ts +2 -0
  457. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.d.ts.map +1 -0
  458. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.js +88 -0
  459. package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.js.map +1 -0
  460. package/build/_modules/server/errors/errors.control-service.spec.d.ts +2 -0
  461. package/build/_modules/server/errors/errors.control-service.spec.d.ts.map +1 -0
  462. package/build/_modules/server/errors/errors.control-service.spec.js +198 -0
  463. package/build/_modules/server/errors/errors.control-service.spec.js.map +1 -0
  464. package/build/_modules/server/errors/errors.controller.spec.d.ts +2 -0
  465. package/build/_modules/server/errors/errors.controller.spec.d.ts.map +1 -0
  466. package/build/_modules/server/errors/errors.controller.spec.js +287 -0
  467. package/build/_modules/server/errors/errors.controller.spec.js.map +1 -0
  468. package/build/_modules/server/errors/errors.data-service.spec.d.ts +2 -0
  469. package/build/_modules/server/errors/errors.data-service.spec.d.ts.map +1 -0
  470. package/build/_modules/server/errors/errors.data-service.spec.js +390 -0
  471. package/build/_modules/server/errors/errors.data-service.spec.js.map +1 -0
  472. package/build/_modules/server/server-status/server-status-snapshot.control-service.spec.d.ts +2 -0
  473. package/build/_modules/server/server-status/server-status-snapshot.control-service.spec.d.ts.map +1 -0
  474. package/build/_modules/server/server-status/server-status-snapshot.control-service.spec.js +59 -0
  475. package/build/_modules/server/server-status/server-status-snapshot.control-service.spec.js.map +1 -0
  476. package/build/_modules/server/server-status/server-status-snapshot.data-service.spec.d.ts +2 -0
  477. package/build/_modules/server/server-status/server-status-snapshot.data-service.spec.d.ts.map +1 -0
  478. package/build/_modules/server/server-status/server-status-snapshot.data-service.spec.js +58 -0
  479. package/build/_modules/server/server-status/server-status-snapshot.data-service.spec.js.map +1 -0
  480. package/build/_modules/server/server-status/server-status.control-service.spec.d.ts +2 -0
  481. package/build/_modules/server/server-status/server-status.control-service.spec.d.ts.map +1 -0
  482. package/build/_modules/server/server-status/server-status.control-service.spec.js +537 -0
  483. package/build/_modules/server/server-status/server-status.control-service.spec.js.map +1 -0
  484. package/build/_modules/server/server-status/server-status.controller.spec.d.ts +2 -0
  485. package/build/_modules/server/server-status/server-status.controller.spec.d.ts.map +1 -0
  486. package/build/_modules/server/server-status/server-status.controller.spec.js +223 -0
  487. package/build/_modules/server/server-status/server-status.controller.spec.js.map +1 -0
  488. package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.d.ts +2 -0
  489. package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.d.ts.map +1 -0
  490. package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.js +25 -0
  491. package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.js.map +1 -0
  492. package/build/_modules/socket/_models/socket-presence.control-model.d.ts.map +1 -1
  493. package/build/_modules/socket/_models/socket-presence.control-model.js +1 -0
  494. package/build/_modules/socket/_models/socket-presence.control-model.js.map +1 -1
  495. package/build/_modules/socket/_models/socket-presence.control-model.spec.d.ts +2 -0
  496. package/build/_modules/socket/_models/socket-presence.control-model.spec.d.ts.map +1 -0
  497. package/build/_modules/socket/_models/socket-presence.control-model.spec.js +137 -0
  498. package/build/_modules/socket/_models/socket-presence.control-model.spec.js.map +1 -0
  499. package/build/_modules/socket/_models/socket-server-service-params.control-model.spec.d.ts +2 -0
  500. package/build/_modules/socket/_models/socket-server-service-params.control-model.spec.d.ts.map +1 -0
  501. package/build/_modules/socket/_models/socket-server-service-params.control-model.spec.js +58 -0
  502. package/build/_modules/socket/_models/socket-server-service-params.control-model.spec.js.map +1 -0
  503. package/build/_modules/socket/_services/socket-client.service.spec.d.ts +2 -0
  504. package/build/_modules/socket/_services/socket-client.service.spec.d.ts.map +1 -0
  505. package/build/_modules/socket/_services/socket-client.service.spec.js +12 -0
  506. package/build/_modules/socket/_services/socket-client.service.spec.js.map +1 -0
  507. package/build/_modules/socket/_services/socket-server.service.d.ts +3 -1
  508. package/build/_modules/socket/_services/socket-server.service.d.ts.map +1 -1
  509. package/build/_modules/socket/_services/socket-server.service.js +32 -50
  510. package/build/_modules/socket/_services/socket-server.service.js.map +1 -1
  511. package/build/_modules/socket/_services/socket-server.service.spec.d.ts +2 -0
  512. package/build/_modules/socket/_services/socket-server.service.spec.d.ts.map +1 -0
  513. package/build/_modules/socket/_services/socket-server.service.spec.js +126 -0
  514. package/build/_modules/socket/_services/socket-server.service.spec.js.map +1 -0
  515. package/build/_modules/socket/app-extended.integration.spec.d.ts +2 -0
  516. package/build/_modules/socket/app-extended.integration.spec.d.ts.map +1 -0
  517. package/build/_modules/socket/app-extended.integration.spec.js +76 -0
  518. package/build/_modules/socket/app-extended.integration.spec.js.map +1 -0
  519. package/build/_modules/test/get-test-routing-module.util.spec.d.ts +2 -0
  520. package/build/_modules/test/get-test-routing-module.util.spec.d.ts.map +1 -0
  521. package/build/_modules/test/get-test-routing-module.util.spec.js +23 -0
  522. package/build/_modules/test/get-test-routing-module.util.spec.js.map +1 -0
  523. package/build/_modules/test/test.controller.spec.d.ts +2 -0
  524. package/build/_modules/test/test.controller.spec.d.ts.map +1 -0
  525. package/build/_modules/test/test.controller.spec.js +54 -0
  526. package/build/_modules/test/test.controller.spec.js.map +1 -0
  527. package/build/_modules/test-email-sink/_services/dynts-test-email-sink.service.spec.d.ts +2 -0
  528. package/build/_modules/test-email-sink/_services/dynts-test-email-sink.service.spec.d.ts.map +1 -0
  529. package/build/_modules/test-email-sink/_services/dynts-test-email-sink.service.spec.js +91 -0
  530. package/build/_modules/test-email-sink/_services/dynts-test-email-sink.service.spec.js.map +1 -0
  531. package/build/_modules/usage/usage.controller.spec.d.ts +2 -0
  532. package/build/_modules/usage/usage.controller.spec.d.ts.map +1 -0
  533. package/build/_modules/usage/usage.controller.spec.js +82 -0
  534. package/build/_modules/usage/usage.controller.spec.js.map +1 -0
  535. package/build/_modules/usage/usage.data-service.spec.d.ts +2 -0
  536. package/build/_modules/usage/usage.data-service.spec.d.ts.map +1 -0
  537. package/build/_modules/usage/usage.data-service.spec.js +284 -0
  538. package/build/_modules/usage/usage.data-service.spec.js.map +1 -0
  539. package/build/_services/base/api.service-base.spec.d.ts +2 -0
  540. package/build/_services/base/api.service-base.spec.d.ts.map +1 -0
  541. package/build/_services/base/api.service-base.spec.js +91 -0
  542. package/build/_services/base/api.service-base.spec.js.map +1 -0
  543. package/build/_services/base/archive-data.service.spec.d.ts +2 -0
  544. package/build/_services/base/archive-data.service.spec.d.ts.map +1 -0
  545. package/build/_services/base/archive-data.service.spec.js +149 -0
  546. package/build/_services/base/archive-data.service.spec.js.map +1 -0
  547. package/build/_services/base/data.service.spec.d.ts +2 -0
  548. package/build/_services/base/data.service.spec.d.ts.map +1 -0
  549. package/build/_services/base/data.service.spec.js +614 -0
  550. package/build/_services/base/data.service.spec.js.map +1 -0
  551. package/build/_services/base/db.service.encryption.spec.d.ts +2 -0
  552. package/build/_services/base/db.service.encryption.spec.d.ts.map +1 -0
  553. package/build/_services/base/db.service.encryption.spec.js +66 -0
  554. package/build/_services/base/db.service.encryption.spec.js.map +1 -0
  555. package/build/_services/base/db.service.spec.d.ts +2 -0
  556. package/build/_services/base/db.service.spec.d.ts.map +1 -0
  557. package/build/_services/base/db.service.spec.js +127 -0
  558. package/build/_services/base/db.service.spec.js.map +1 -0
  559. package/build/_services/base/singleton.service-base.spec.d.ts +2 -0
  560. package/build/_services/base/singleton.service-base.spec.d.ts.map +1 -0
  561. package/build/_services/base/singleton.service-base.spec.js +24 -0
  562. package/build/_services/base/singleton.service-base.spec.js.map +1 -0
  563. package/build/_services/base/singleton.service.spec.d.ts +2 -0
  564. package/build/_services/base/singleton.service.spec.d.ts.map +1 -0
  565. package/build/_services/base/singleton.service.spec.js +88 -0
  566. package/build/_services/base/singleton.service.spec.js.map +1 -0
  567. package/build/_services/core/api.service.spec.d.ts +2 -0
  568. package/build/_services/core/api.service.spec.d.ts.map +1 -0
  569. package/build/_services/core/api.service.spec.js +150 -0
  570. package/build/_services/core/api.service.spec.js.map +1 -0
  571. package/build/_services/core/auth.service.spec.d.ts +2 -0
  572. package/build/_services/core/auth.service.spec.d.ts.map +1 -0
  573. package/build/_services/core/auth.service.spec.js +129 -0
  574. package/build/_services/core/auth.service.spec.js.map +1 -0
  575. package/build/_services/core/collection-growth-monitor.service.spec.d.ts +2 -0
  576. package/build/_services/core/collection-growth-monitor.service.spec.d.ts.map +1 -0
  577. package/build/_services/core/collection-growth-monitor.service.spec.js +51 -0
  578. package/build/_services/core/collection-growth-monitor.service.spec.js.map +1 -0
  579. package/build/_services/core/diagnostics.service.spec.d.ts +2 -0
  580. package/build/_services/core/diagnostics.service.spec.d.ts.map +1 -0
  581. package/build/_services/core/diagnostics.service.spec.js +40 -0
  582. package/build/_services/core/diagnostics.service.spec.js.map +1 -0
  583. package/build/_services/core/email.service.spec.d.ts +2 -0
  584. package/build/_services/core/email.service.spec.d.ts.map +1 -0
  585. package/build/_services/core/email.service.spec.js +77 -0
  586. package/build/_services/core/email.service.spec.js.map +1 -0
  587. package/build/_services/core/event-loop-diag.service.spec.d.ts +2 -0
  588. package/build/_services/core/event-loop-diag.service.spec.d.ts.map +1 -0
  589. package/build/_services/core/event-loop-diag.service.spec.js +18 -0
  590. package/build/_services/core/event-loop-diag.service.spec.js.map +1 -0
  591. package/build/_services/core/global.service.spec.d.ts +2 -0
  592. package/build/_services/core/global.service.spec.d.ts.map +1 -0
  593. package/build/_services/core/global.service.spec.js +235 -0
  594. package/build/_services/core/global.service.spec.js.map +1 -0
  595. package/build/_services/core/memory-guard.service.spec.d.ts +2 -0
  596. package/build/_services/core/memory-guard.service.spec.d.ts.map +1 -0
  597. package/build/_services/core/memory-guard.service.spec.js +219 -0
  598. package/build/_services/core/memory-guard.service.spec.js.map +1 -0
  599. package/build/_services/core/migration-runner.service.spec.d.ts +2 -0
  600. package/build/_services/core/migration-runner.service.spec.d.ts.map +1 -0
  601. package/build/_services/core/migration-runner.service.spec.js +77 -0
  602. package/build/_services/core/migration-runner.service.spec.js.map +1 -0
  603. package/build/_services/core/request-hunter.service.spec.d.ts +2 -0
  604. package/build/_services/core/request-hunter.service.spec.d.ts.map +1 -0
  605. package/build/_services/core/request-hunter.service.spec.js +101 -0
  606. package/build/_services/core/request-hunter.service.spec.js.map +1 -0
  607. package/build/_services/core/service-collection.service.spec.d.ts +2 -0
  608. package/build/_services/core/service-collection.service.spec.d.ts.map +1 -0
  609. package/build/_services/core/service-collection.service.spec.js +39 -0
  610. package/build/_services/core/service-collection.service.spec.js.map +1 -0
  611. package/build/_services/route/controller.service.spec.d.ts +2 -0
  612. package/build/_services/route/controller.service.spec.d.ts.map +1 -0
  613. package/build/_services/route/controller.service.spec.js +48 -0
  614. package/build/_services/route/controller.service.spec.js.map +1 -0
  615. package/build/_services/route/routing-module.service.spec.d.ts +2 -0
  616. package/build/_services/route/routing-module.service.spec.d.ts.map +1 -0
  617. package/build/_services/route/routing-module.service.spec.js +81 -0
  618. package/build/_services/route/routing-module.service.spec.js.map +1 -0
  619. package/build/_services/server/app.server-retention.spec.d.ts +2 -0
  620. package/build/_services/server/app.server-retention.spec.d.ts.map +1 -0
  621. package/build/_services/server/app.server-retention.spec.js +93 -0
  622. package/build/_services/server/app.server-retention.spec.js.map +1 -0
  623. package/build/_services/shared.static-service.spec.d.ts +2 -0
  624. package/build/_services/shared.static-service.spec.d.ts.map +1 -0
  625. package/build/_services/shared.static-service.spec.js +82 -0
  626. package/build/_services/shared.static-service.spec.js.map +1 -0
  627. package/coverage/_collections/archive.util.ts.html +139 -0
  628. package/coverage/_collections/get-environment-settings.util.ts.html +229 -0
  629. package/coverage/_collections/index.html +146 -0
  630. package/coverage/_collections/star.controller.ts.html +472 -0
  631. package/coverage/_models/control-models/api-call-params.control-model.ts.html +511 -0
  632. package/coverage/_models/control-models/app-ext-system-controls.control-model.ts.html +112 -0
  633. package/coverage/_models/control-models/app-params.control-model.ts.html +475 -0
  634. package/coverage/_models/control-models/app-system-controls.control-model.ts.html +112 -0
  635. package/coverage/_models/control-models/endpoint-params.control-model.ts.html +1618 -0
  636. package/coverage/_models/control-models/http-settings.control-model.ts.html +172 -0
  637. package/coverage/_models/control-models/index.html +206 -0
  638. package/coverage/_models/control-models/system-control.control-model.ts.html +121 -0
  639. package/coverage/_modules/ai/_models/ai-input-interfaces.ts.html +436 -0
  640. package/coverage/_modules/ai/_models/index.html +116 -0
  641. package/coverage/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.ts.html +1993 -0
  642. package/coverage/_modules/ai/_modules/document-ai/_collections/dai-document.util.ts.html +340 -0
  643. package/coverage/_modules/ai/_modules/document-ai/_collections/index.html +131 -0
  644. package/coverage/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.ts.html +523 -0
  645. package/coverage/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.ts.html +571 -0
  646. package/coverage/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.ts.html +382 -0
  647. package/coverage/_modules/ai/_modules/document-ai/_models/data-models/index.html +146 -0
  648. package/coverage/_modules/ai/_modules/open-ai/_collections/index.html +131 -0
  649. package/coverage/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.ts.html +331 -0
  650. package/coverage/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.ts.html +310 -0
  651. package/coverage/_modules/ai/_modules/open-ai/_services/data-services/index.html +161 -0
  652. package/coverage/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.ts.html +958 -0
  653. package/coverage/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.ts.html +1801 -0
  654. package/coverage/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.ts.html +1390 -0
  655. package/coverage/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.ts.html +1915 -0
  656. package/coverage/_modules/ai/_modules/open-ai/_services/index.html +146 -0
  657. package/coverage/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.ts.html +334 -0
  658. package/coverage/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts.html +1822 -0
  659. package/coverage/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts.html +2584 -0
  660. package/coverage/_modules/ai/_services/ai-embedding.service-base.ts.html +208 -0
  661. package/coverage/_modules/ai/_services/ai-llm-chat.service-base.ts.html +289 -0
  662. package/coverage/_modules/ai/_services/ai-llm.service-base.ts.html +1060 -0
  663. package/coverage/_modules/ai/_services/ai-provider.service-base.ts.html +172 -0
  664. package/coverage/_modules/ai/_services/index.html +161 -0
  665. package/coverage/_modules/assistant/_collections/ass.util.ts.html +235 -0
  666. package/coverage/_modules/assistant/_collections/index.html +116 -0
  667. package/coverage/_modules/assistant/_services/ass-io.control-service.ts.html +307 -0
  668. package/coverage/_modules/assistant/_services/ass-main.control-service.ts.html +406 -0
  669. package/coverage/_modules/assistant/_services/index.html +131 -0
  670. package/coverage/_modules/bot/_modules/discord-bot/_models/dib-platform.types.ts.html +112 -0
  671. package/coverage/_modules/bot/_modules/discord-bot/_models/index.html +116 -0
  672. package/coverage/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.ts.html +1978 -0
  673. package/coverage/_modules/bot/_modules/discord-bot/_services/index.html +116 -0
  674. package/coverage/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts.html +250 -0
  675. package/coverage/_modules/bot/_modules/dynamo-bot/_collections/index.html +116 -0
  676. package/coverage/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.ts.html +130 -0
  677. package/coverage/_modules/bot/_modules/dynamo-bot/_models/index.html +116 -0
  678. package/coverage/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.ts.html +1414 -0
  679. package/coverage/_modules/bot/_modules/dynamo-bot/_services/index.html +116 -0
  680. package/coverage/_modules/bot/_modules/slack-bot/_models/index.html +116 -0
  681. package/coverage/_modules/bot/_modules/slack-bot/_models/slb-platform.types.ts.html +112 -0
  682. package/coverage/_modules/bot/_modules/slack-bot/_services/index.html +116 -0
  683. package/coverage/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.ts.html +664 -0
  684. package/coverage/_modules/bot/_modules/teams-bot/_models/index.html +116 -0
  685. package/coverage/_modules/bot/_modules/teams-bot/_models/teb-platform.types.ts.html +112 -0
  686. package/coverage/_modules/bot/_modules/teams-bot/_services/index.html +116 -0
  687. package/coverage/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.ts.html +664 -0
  688. package/coverage/_modules/bot/_services/bot-commands.control-service.ts.html +559 -0
  689. package/coverage/_modules/bot/_services/bot-io.control-service.ts.html +1072 -0
  690. package/coverage/_modules/bot/_services/bot-main.control-service.ts.html +1552 -0
  691. package/coverage/_modules/bot/_services/bot-messaging-provider.service-base.ts.html +556 -0
  692. package/coverage/_modules/bot/_services/bot-routines.control-service.ts.html +319 -0
  693. package/coverage/_modules/bot/_services/index.html +176 -0
  694. package/coverage/_modules/custom-data/custom-data.controller.ts.html +292 -0
  695. package/coverage/_modules/custom-data/custom-data.data-service.ts.html +148 -0
  696. package/coverage/_modules/custom-data/get-custom-data-routing-module.util.ts.html +157 -0
  697. package/coverage/_modules/custom-data/index.html +146 -0
  698. package/coverage/_modules/defaults/_models/default-user.data-model.ts.html +301 -0
  699. package/coverage/_modules/defaults/_models/index.html +116 -0
  700. package/coverage/_modules/defaults/_services/default-auth.service.ts.html +616 -0
  701. package/coverage/_modules/defaults/_services/default-socket-events.service.ts.html +268 -0
  702. package/coverage/_modules/defaults/_services/default-user.data-service.ts.html +379 -0
  703. package/coverage/_modules/defaults/_services/index.html +146 -0
  704. package/coverage/_modules/discord-assistant/_collections/dias.util.ts.html +481 -0
  705. package/coverage/_modules/discord-assistant/_collections/index.html +116 -0
  706. package/coverage/_modules/discord-assistant/_models/dias-knowledge.data-model.ts.html +241 -0
  707. package/coverage/_modules/discord-assistant/_models/index.html +116 -0
  708. package/coverage/_modules/discord-assistant/_services/dias-chunk.data-service.ts.html +616 -0
  709. package/coverage/_modules/discord-assistant/_services/dias-io.control-service.ts.html +292 -0
  710. package/coverage/_modules/discord-assistant/_services/dias-main.control-service.ts.html +166 -0
  711. package/coverage/_modules/discord-assistant/_services/dias.service-base.ts.html +313 -0
  712. package/coverage/_modules/discord-assistant/_services/index.html +161 -0
  713. package/coverage/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.ts.html +118 -0
  714. package/coverage/_modules/discord-assistant-voiced/_services/index.html +116 -0
  715. package/coverage/_modules/discord-bot/_collections/dibo-global-settings.conts.ts.html +250 -0
  716. package/coverage/_modules/discord-bot/_collections/dibo-operations.util.ts.html +1246 -0
  717. package/coverage/_modules/discord-bot/_collections/index.html +131 -0
  718. package/coverage/_modules/discord-bot/_models/dibo-last-mention-date.inteface.ts.html +106 -0
  719. package/coverage/_modules/discord-bot/_models/index.html +116 -0
  720. package/coverage/_modules/discord-bot/_services/dibo-commands.control-service.ts.html +544 -0
  721. package/coverage/_modules/discord-bot/_services/dibo-io.control-service.ts.html +1003 -0
  722. package/coverage/_modules/discord-bot/_services/dibo-main.control-service.ts.html +1546 -0
  723. package/coverage/_modules/discord-bot/_services/dibo-routines.control-service.ts.html +376 -0
  724. package/coverage/_modules/discord-bot/_services/index.html +161 -0
  725. package/coverage/_modules/messaging/_collections/get-messaging-routing-module.util.ts.html +163 -0
  726. package/coverage/_modules/messaging/_collections/index.html +131 -0
  727. package/coverage/_modules/messaging/_collections/msg.util.ts.html +334 -0
  728. package/coverage/_modules/messaging/_services/index.html +191 -0
  729. package/coverage/_modules/messaging/_services/msg-conversation.data-service.ts.html +523 -0
  730. package/coverage/_modules/messaging/_services/msg-events.service.ts.html +886 -0
  731. package/coverage/_modules/messaging/_services/msg-integration.control-service.ts.html +622 -0
  732. package/coverage/_modules/messaging/_services/msg-main.control-service.ts.html +1738 -0
  733. package/coverage/_modules/messaging/_services/msg-message.data-service.ts.html +472 -0
  734. package/coverage/_modules/messaging/_services/msg.controller.ts.html +1195 -0
  735. package/coverage/_modules/mock/app-extended-server.mock.ts.html +688 -0
  736. package/coverage/_modules/mock/app-params.mock.ts.html +112 -0
  737. package/coverage/_modules/mock/app-server.mock.ts.html +649 -0
  738. package/coverage/_modules/mock/auth-service.mock.ts.html +169 -0
  739. package/coverage/_modules/mock/controller.mock.ts.html +133 -0
  740. package/coverage/_modules/mock/data-model.mock.ts.html +331 -0
  741. package/coverage/_modules/mock/email-service-collection.mock.ts.html +130 -0
  742. package/coverage/_modules/mock/email-service.mock.ts.html +145 -0
  743. package/coverage/_modules/mock/endpoint.mock.ts.html +358 -0
  744. package/coverage/_modules/mock/index.html +266 -0
  745. package/coverage/_modules/mock/socket-client.mock.ts.html +220 -0
  746. package/coverage/_modules/mock/socket-server.mock.ts.html +247 -0
  747. package/coverage/_modules/oauth2/_routes/index.html +116 -0
  748. package/coverage/_modules/oauth2/_routes/oauth2.controller.ts.html +379 -0
  749. package/coverage/_modules/oauth2/_services/index.html +131 -0
  750. package/coverage/_modules/oauth2/_services/oauth2.auth-service.ts.html +781 -0
  751. package/coverage/_modules/oauth2/_services/oauth2.control-service.ts.html +2044 -0
  752. package/coverage/_modules/server/errors/errors.control-service.ts.html +292 -0
  753. package/coverage/_modules/server/errors/errors.controller.ts.html +895 -0
  754. package/coverage/_modules/server/errors/errors.data-service.ts.html +1666 -0
  755. package/coverage/_modules/server/errors/index.html +146 -0
  756. package/coverage/_modules/server/server-status/index.html +161 -0
  757. package/coverage/_modules/server/server-status/server-status-snapshot.control-service.ts.html +136 -0
  758. package/coverage/_modules/server/server-status/server-status-snapshot.data-service.ts.html +196 -0
  759. package/coverage/_modules/server/server-status/server-status.control-service.ts.html +1093 -0
  760. package/coverage/_modules/server/server-status/server-status.controller.ts.html +478 -0
  761. package/coverage/_modules/socket/_models/index.html +146 -0
  762. package/coverage/_modules/socket/_models/socket-client-service-params.control-model.ts.html +151 -0
  763. package/coverage/_modules/socket/_models/socket-presence.control-model.ts.html +715 -0
  764. package/coverage/_modules/socket/_models/socket-server-service-params.control-model.ts.html +145 -0
  765. package/coverage/_modules/socket/_services/index.html +131 -0
  766. package/coverage/_modules/socket/_services/socket-client.service.ts.html +862 -0
  767. package/coverage/_modules/socket/_services/socket-server.service.ts.html +3196 -0
  768. package/coverage/_modules/socket/app-extended.server.ts.html +1954 -0
  769. package/coverage/_modules/socket/index.html +116 -0
  770. package/coverage/_modules/test/get-test-routing-module.util.ts.html +154 -0
  771. package/coverage/_modules/test/index.html +131 -0
  772. package/coverage/_modules/test/test.controller.ts.html +430 -0
  773. package/coverage/_modules/usage/get-usage-routing-module.util.ts.html +151 -0
  774. package/coverage/_modules/usage/index.html +146 -0
  775. package/coverage/_modules/usage/usage.controller.ts.html +463 -0
  776. package/coverage/_modules/usage/usage.data-service.ts.html +640 -0
  777. package/coverage/_services/base/api.service-base.ts.html +307 -0
  778. package/coverage/_services/base/archive-data.service.ts.html +727 -0
  779. package/coverage/_services/base/data.service.ts.html +7033 -0
  780. package/coverage/_services/base/db.service.ts.html +4786 -0
  781. package/coverage/_services/base/index.html +191 -0
  782. package/coverage/_services/base/singleton.service-base.ts.html +157 -0
  783. package/coverage/_services/base/singleton.service.ts.html +190 -0
  784. package/coverage/_services/core/api.service.ts.html +1900 -0
  785. package/coverage/_services/core/auth.service.ts.html +607 -0
  786. package/coverage/_services/core/email.service.ts.html +2302 -0
  787. package/coverage/_services/core/global.service.ts.html +1363 -0
  788. package/coverage/_services/core/index.html +176 -0
  789. package/coverage/_services/core/service-collection.service.ts.html +103 -0
  790. package/coverage/_services/index.html +116 -0
  791. package/coverage/_services/route/controller.service.ts.html +475 -0
  792. package/coverage/_services/route/index.html +131 -0
  793. package/coverage/_services/route/routing-module.service.ts.html +1075 -0
  794. package/coverage/_services/server/app.server.ts.html +4408 -0
  795. package/coverage/_services/server/index.html +116 -0
  796. package/coverage/_services/shared.static-service.ts.html +319 -0
  797. package/coverage/base.css +224 -0
  798. package/coverage/block-navigation.js +87 -0
  799. package/coverage/favicon.png +0 -0
  800. package/coverage/index.html +821 -0
  801. package/coverage/lcov-report/_collections/archive.util.ts.html +139 -0
  802. package/coverage/lcov-report/_collections/get-environment-settings.util.ts.html +229 -0
  803. package/coverage/lcov-report/_collections/index.html +146 -0
  804. package/coverage/lcov-report/_collections/star.controller.ts.html +472 -0
  805. package/coverage/lcov-report/_models/control-models/api-call-params.control-model.ts.html +511 -0
  806. package/coverage/lcov-report/_models/control-models/app-ext-system-controls.control-model.ts.html +112 -0
  807. package/coverage/lcov-report/_models/control-models/app-params.control-model.ts.html +475 -0
  808. package/coverage/lcov-report/_models/control-models/app-system-controls.control-model.ts.html +112 -0
  809. package/coverage/lcov-report/_models/control-models/endpoint-params.control-model.ts.html +1618 -0
  810. package/coverage/lcov-report/_models/control-models/http-settings.control-model.ts.html +172 -0
  811. package/coverage/lcov-report/_models/control-models/index.html +206 -0
  812. package/coverage/lcov-report/_models/control-models/system-control.control-model.ts.html +121 -0
  813. package/coverage/lcov-report/_modules/ai/_models/ai-input-interfaces.ts.html +436 -0
  814. package/coverage/lcov-report/_modules/ai/_models/index.html +116 -0
  815. package/coverage/lcov-report/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.ts.html +1993 -0
  816. package/coverage/lcov-report/_modules/ai/_modules/document-ai/_collections/dai-document.util.ts.html +340 -0
  817. package/coverage/lcov-report/_modules/ai/_modules/document-ai/_collections/index.html +131 -0
  818. package/coverage/lcov-report/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.ts.html +523 -0
  819. package/coverage/lcov-report/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.ts.html +571 -0
  820. package/coverage/lcov-report/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.ts.html +382 -0
  821. package/coverage/lcov-report/_modules/ai/_modules/document-ai/_models/data-models/index.html +146 -0
  822. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_collections/index.html +131 -0
  823. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.ts.html +331 -0
  824. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.ts.html +310 -0
  825. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/data-services/index.html +161 -0
  826. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.ts.html +958 -0
  827. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.ts.html +1801 -0
  828. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.ts.html +1390 -0
  829. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.ts.html +1915 -0
  830. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/index.html +146 -0
  831. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.ts.html +334 -0
  832. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts.html +1822 -0
  833. package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts.html +2584 -0
  834. package/coverage/lcov-report/_modules/ai/_services/ai-embedding.service-base.ts.html +208 -0
  835. package/coverage/lcov-report/_modules/ai/_services/ai-llm-chat.service-base.ts.html +289 -0
  836. package/coverage/lcov-report/_modules/ai/_services/ai-llm.service-base.ts.html +1060 -0
  837. package/coverage/lcov-report/_modules/ai/_services/ai-provider.service-base.ts.html +172 -0
  838. package/coverage/lcov-report/_modules/ai/_services/index.html +161 -0
  839. package/coverage/lcov-report/_modules/assistant/_collections/ass.util.ts.html +235 -0
  840. package/coverage/lcov-report/_modules/assistant/_collections/index.html +116 -0
  841. package/coverage/lcov-report/_modules/assistant/_services/ass-io.control-service.ts.html +307 -0
  842. package/coverage/lcov-report/_modules/assistant/_services/ass-main.control-service.ts.html +406 -0
  843. package/coverage/lcov-report/_modules/assistant/_services/index.html +131 -0
  844. package/coverage/lcov-report/_modules/bot/_modules/discord-bot/_models/dib-platform.types.ts.html +112 -0
  845. package/coverage/lcov-report/_modules/bot/_modules/discord-bot/_models/index.html +116 -0
  846. package/coverage/lcov-report/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.ts.html +1978 -0
  847. package/coverage/lcov-report/_modules/bot/_modules/discord-bot/_services/index.html +116 -0
  848. package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts.html +250 -0
  849. package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_collections/index.html +116 -0
  850. package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.ts.html +130 -0
  851. package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_models/index.html +116 -0
  852. package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.ts.html +1414 -0
  853. package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_services/index.html +116 -0
  854. package/coverage/lcov-report/_modules/bot/_modules/slack-bot/_models/index.html +116 -0
  855. package/coverage/lcov-report/_modules/bot/_modules/slack-bot/_models/slb-platform.types.ts.html +112 -0
  856. package/coverage/lcov-report/_modules/bot/_modules/slack-bot/_services/index.html +116 -0
  857. package/coverage/lcov-report/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.ts.html +664 -0
  858. package/coverage/lcov-report/_modules/bot/_modules/teams-bot/_models/index.html +116 -0
  859. package/coverage/lcov-report/_modules/bot/_modules/teams-bot/_models/teb-platform.types.ts.html +112 -0
  860. package/coverage/lcov-report/_modules/bot/_modules/teams-bot/_services/index.html +116 -0
  861. package/coverage/lcov-report/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.ts.html +664 -0
  862. package/coverage/lcov-report/_modules/bot/_services/bot-commands.control-service.ts.html +559 -0
  863. package/coverage/lcov-report/_modules/bot/_services/bot-io.control-service.ts.html +1072 -0
  864. package/coverage/lcov-report/_modules/bot/_services/bot-main.control-service.ts.html +1552 -0
  865. package/coverage/lcov-report/_modules/bot/_services/bot-messaging-provider.service-base.ts.html +556 -0
  866. package/coverage/lcov-report/_modules/bot/_services/bot-routines.control-service.ts.html +319 -0
  867. package/coverage/lcov-report/_modules/bot/_services/index.html +176 -0
  868. package/coverage/lcov-report/_modules/custom-data/custom-data.controller.ts.html +292 -0
  869. package/coverage/lcov-report/_modules/custom-data/custom-data.data-service.ts.html +148 -0
  870. package/coverage/lcov-report/_modules/custom-data/get-custom-data-routing-module.util.ts.html +157 -0
  871. package/coverage/lcov-report/_modules/custom-data/index.html +146 -0
  872. package/coverage/lcov-report/_modules/defaults/_models/default-user.data-model.ts.html +301 -0
  873. package/coverage/lcov-report/_modules/defaults/_models/index.html +116 -0
  874. package/coverage/lcov-report/_modules/defaults/_services/default-auth.service.ts.html +616 -0
  875. package/coverage/lcov-report/_modules/defaults/_services/default-socket-events.service.ts.html +268 -0
  876. package/coverage/lcov-report/_modules/defaults/_services/default-user.data-service.ts.html +379 -0
  877. package/coverage/lcov-report/_modules/defaults/_services/index.html +146 -0
  878. package/coverage/lcov-report/_modules/discord-assistant/_collections/dias.util.ts.html +481 -0
  879. package/coverage/lcov-report/_modules/discord-assistant/_collections/index.html +116 -0
  880. package/coverage/lcov-report/_modules/discord-assistant/_models/dias-knowledge.data-model.ts.html +241 -0
  881. package/coverage/lcov-report/_modules/discord-assistant/_models/index.html +116 -0
  882. package/coverage/lcov-report/_modules/discord-assistant/_services/dias-chunk.data-service.ts.html +616 -0
  883. package/coverage/lcov-report/_modules/discord-assistant/_services/dias-io.control-service.ts.html +292 -0
  884. package/coverage/lcov-report/_modules/discord-assistant/_services/dias-main.control-service.ts.html +166 -0
  885. package/coverage/lcov-report/_modules/discord-assistant/_services/dias.service-base.ts.html +313 -0
  886. package/coverage/lcov-report/_modules/discord-assistant/_services/index.html +161 -0
  887. package/coverage/lcov-report/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.ts.html +118 -0
  888. package/coverage/lcov-report/_modules/discord-assistant-voiced/_services/index.html +116 -0
  889. package/coverage/lcov-report/_modules/discord-bot/_collections/dibo-global-settings.conts.ts.html +250 -0
  890. package/coverage/lcov-report/_modules/discord-bot/_collections/dibo-operations.util.ts.html +1246 -0
  891. package/coverage/lcov-report/_modules/discord-bot/_collections/index.html +131 -0
  892. package/coverage/lcov-report/_modules/discord-bot/_models/dibo-last-mention-date.inteface.ts.html +106 -0
  893. package/coverage/lcov-report/_modules/discord-bot/_models/index.html +116 -0
  894. package/coverage/lcov-report/_modules/discord-bot/_services/dibo-commands.control-service.ts.html +544 -0
  895. package/coverage/lcov-report/_modules/discord-bot/_services/dibo-io.control-service.ts.html +1003 -0
  896. package/coverage/lcov-report/_modules/discord-bot/_services/dibo-main.control-service.ts.html +1546 -0
  897. package/coverage/lcov-report/_modules/discord-bot/_services/dibo-routines.control-service.ts.html +376 -0
  898. package/coverage/lcov-report/_modules/discord-bot/_services/index.html +161 -0
  899. package/coverage/lcov-report/_modules/messaging/_collections/get-messaging-routing-module.util.ts.html +163 -0
  900. package/coverage/lcov-report/_modules/messaging/_collections/index.html +131 -0
  901. package/coverage/lcov-report/_modules/messaging/_collections/msg.util.ts.html +334 -0
  902. package/coverage/lcov-report/_modules/messaging/_services/index.html +191 -0
  903. package/coverage/lcov-report/_modules/messaging/_services/msg-conversation.data-service.ts.html +523 -0
  904. package/coverage/lcov-report/_modules/messaging/_services/msg-events.service.ts.html +886 -0
  905. package/coverage/lcov-report/_modules/messaging/_services/msg-integration.control-service.ts.html +622 -0
  906. package/coverage/lcov-report/_modules/messaging/_services/msg-main.control-service.ts.html +1738 -0
  907. package/coverage/lcov-report/_modules/messaging/_services/msg-message.data-service.ts.html +472 -0
  908. package/coverage/lcov-report/_modules/messaging/_services/msg.controller.ts.html +1195 -0
  909. package/coverage/lcov-report/_modules/mock/app-extended-server.mock.ts.html +688 -0
  910. package/coverage/lcov-report/_modules/mock/app-params.mock.ts.html +112 -0
  911. package/coverage/lcov-report/_modules/mock/app-server.mock.ts.html +649 -0
  912. package/coverage/lcov-report/_modules/mock/auth-service.mock.ts.html +169 -0
  913. package/coverage/lcov-report/_modules/mock/controller.mock.ts.html +133 -0
  914. package/coverage/lcov-report/_modules/mock/data-model.mock.ts.html +331 -0
  915. package/coverage/lcov-report/_modules/mock/email-service-collection.mock.ts.html +130 -0
  916. package/coverage/lcov-report/_modules/mock/email-service.mock.ts.html +145 -0
  917. package/coverage/lcov-report/_modules/mock/endpoint.mock.ts.html +358 -0
  918. package/coverage/lcov-report/_modules/mock/index.html +266 -0
  919. package/coverage/lcov-report/_modules/mock/socket-client.mock.ts.html +220 -0
  920. package/coverage/lcov-report/_modules/mock/socket-server.mock.ts.html +247 -0
  921. package/coverage/lcov-report/_modules/oauth2/_routes/index.html +116 -0
  922. package/coverage/lcov-report/_modules/oauth2/_routes/oauth2.controller.ts.html +379 -0
  923. package/coverage/lcov-report/_modules/oauth2/_services/index.html +131 -0
  924. package/coverage/lcov-report/_modules/oauth2/_services/oauth2.auth-service.ts.html +781 -0
  925. package/coverage/lcov-report/_modules/oauth2/_services/oauth2.control-service.ts.html +2044 -0
  926. package/coverage/lcov-report/_modules/server/errors/errors.control-service.ts.html +292 -0
  927. package/coverage/lcov-report/_modules/server/errors/errors.controller.ts.html +895 -0
  928. package/coverage/lcov-report/_modules/server/errors/errors.data-service.ts.html +1666 -0
  929. package/coverage/lcov-report/_modules/server/errors/index.html +146 -0
  930. package/coverage/lcov-report/_modules/server/server-status/index.html +161 -0
  931. package/coverage/lcov-report/_modules/server/server-status/server-status-snapshot.control-service.ts.html +136 -0
  932. package/coverage/lcov-report/_modules/server/server-status/server-status-snapshot.data-service.ts.html +196 -0
  933. package/coverage/lcov-report/_modules/server/server-status/server-status.control-service.ts.html +1093 -0
  934. package/coverage/lcov-report/_modules/server/server-status/server-status.controller.ts.html +478 -0
  935. package/coverage/lcov-report/_modules/socket/_models/index.html +146 -0
  936. package/coverage/lcov-report/_modules/socket/_models/socket-client-service-params.control-model.ts.html +151 -0
  937. package/coverage/lcov-report/_modules/socket/_models/socket-presence.control-model.ts.html +715 -0
  938. package/coverage/lcov-report/_modules/socket/_models/socket-server-service-params.control-model.ts.html +145 -0
  939. package/coverage/lcov-report/_modules/socket/_services/index.html +131 -0
  940. package/coverage/lcov-report/_modules/socket/_services/socket-client.service.ts.html +862 -0
  941. package/coverage/lcov-report/_modules/socket/_services/socket-server.service.ts.html +3196 -0
  942. package/coverage/lcov-report/_modules/socket/app-extended.server.ts.html +1954 -0
  943. package/coverage/lcov-report/_modules/socket/index.html +116 -0
  944. package/coverage/lcov-report/_modules/test/get-test-routing-module.util.ts.html +154 -0
  945. package/coverage/lcov-report/_modules/test/index.html +131 -0
  946. package/coverage/lcov-report/_modules/test/test.controller.ts.html +430 -0
  947. package/coverage/lcov-report/_modules/usage/get-usage-routing-module.util.ts.html +151 -0
  948. package/coverage/lcov-report/_modules/usage/index.html +146 -0
  949. package/coverage/lcov-report/_modules/usage/usage.controller.ts.html +463 -0
  950. package/coverage/lcov-report/_modules/usage/usage.data-service.ts.html +640 -0
  951. package/coverage/lcov-report/_services/base/api.service-base.ts.html +307 -0
  952. package/coverage/lcov-report/_services/base/archive-data.service.ts.html +727 -0
  953. package/coverage/lcov-report/_services/base/data.service.ts.html +7033 -0
  954. package/coverage/lcov-report/_services/base/db.service.ts.html +4786 -0
  955. package/coverage/lcov-report/_services/base/index.html +191 -0
  956. package/coverage/lcov-report/_services/base/singleton.service-base.ts.html +157 -0
  957. package/coverage/lcov-report/_services/base/singleton.service.ts.html +190 -0
  958. package/coverage/lcov-report/_services/core/api.service.ts.html +1900 -0
  959. package/coverage/lcov-report/_services/core/auth.service.ts.html +607 -0
  960. package/coverage/lcov-report/_services/core/email.service.ts.html +2302 -0
  961. package/coverage/lcov-report/_services/core/global.service.ts.html +1363 -0
  962. package/coverage/lcov-report/_services/core/index.html +176 -0
  963. package/coverage/lcov-report/_services/core/service-collection.service.ts.html +103 -0
  964. package/coverage/lcov-report/_services/index.html +116 -0
  965. package/coverage/lcov-report/_services/route/controller.service.ts.html +475 -0
  966. package/coverage/lcov-report/_services/route/index.html +131 -0
  967. package/coverage/lcov-report/_services/route/routing-module.service.ts.html +1075 -0
  968. package/coverage/lcov-report/_services/server/app.server.ts.html +4408 -0
  969. package/coverage/lcov-report/_services/server/index.html +116 -0
  970. package/coverage/lcov-report/_services/shared.static-service.ts.html +319 -0
  971. package/coverage/lcov-report/base.css +224 -0
  972. package/coverage/lcov-report/block-navigation.js +87 -0
  973. package/coverage/lcov-report/favicon.png +0 -0
  974. package/coverage/lcov-report/index.html +821 -0
  975. package/coverage/lcov-report/prettify.css +1 -0
  976. package/coverage/lcov-report/prettify.js +2 -0
  977. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  978. package/coverage/lcov-report/sorter.js +210 -0
  979. package/coverage/lcov.info +29957 -0
  980. package/coverage/prettify.css +1 -0
  981. package/coverage/prettify.js +2 -0
  982. package/coverage/sort-arrow-sprite.png +0 -0
  983. package/coverage/sorter.js +210 -0
  984. package/coverage/tmp/coverage-111712-1762988673351-0.json +1 -0
  985. package/coverage/tmp/coverage-112308-1762988673527-0.json +1 -0
  986. package/coverage/tmp/coverage-112324-1762988615026-0.json +1 -0
  987. package/coverage/tmp/coverage-112436-1762988615438-0.json +1 -0
  988. package/coverage/tmp/coverage-112512-1762988673477-0.json +1 -0
  989. package/eslint.config.js +3 -3
  990. package/logs/cicd-job.json +3 -0
  991. package/logs/cicd-output.log +31 -0
  992. package/logs/cicd-report.json +148 -0
  993. package/logs/cicd-status.json +70 -0
  994. package/nodemon.json +24 -24
  995. package/package.json +1 -1
  996. package/pnpm-workspace.yaml +5 -5
  997. package/scripts/run-coverage-tests.js +28 -28
  998. package/spec/support/helpers/spec-reporter-loader.js +359 -359
  999. package/spec/support/helpers/ts-node-helper.js +93 -93
  1000. package/spec/support/jasmine.coverage.json +24 -24
  1001. package/spec/support/jasmine.json +24 -24
  1002. package/src/_collections/archive.util.spec.ts +57 -57
  1003. package/src/_collections/archive.util.ts +18 -18
  1004. package/src/_collections/atlas-default-db-options.const.ts +9 -9
  1005. package/src/_collections/default-fallback-cache-max-age.const.spec.ts +11 -11
  1006. package/src/_collections/default-fallback-cache-max-age.const.ts +2 -2
  1007. package/src/_collections/default-not-found-page.const.spec.ts +19 -19
  1008. package/src/_collections/default-not-found-page.const.ts +22 -22
  1009. package/src/_collections/default-socket-path.const.spec.ts +12 -12
  1010. package/src/_collections/default-socket-path.const.ts +2 -2
  1011. package/src/_collections/get-environment-settings.util.spec.ts +210 -210
  1012. package/src/_collections/get-environment-settings.util.ts +48 -48
  1013. package/src/_collections/global-settings.const.ts +126 -126
  1014. package/src/_collections/sample.env +21 -21
  1015. package/src/_collections/signed-url.util.spec.ts +198 -198
  1016. package/src/_collections/signed-url.util.ts +170 -170
  1017. package/src/_collections/star.controller.spec.ts +224 -224
  1018. package/src/_collections/star.controller.ts +129 -129
  1019. package/src/_enums/data-model-type.enum.ts +14 -14
  1020. package/src/_enums/data-service-function.enum.ts +24 -24
  1021. package/src/_enums/predefined-data-types.enum.ts +16 -16
  1022. package/src/_enums/route-security.enum.ts +12 -12
  1023. package/src/_models/control-models/api-call-params.control-model.spec.ts +152 -152
  1024. package/src/_models/control-models/api-call-params.control-model.ts +142 -142
  1025. package/src/_models/control-models/app-ext-system-controls.control-model.spec.ts +52 -52
  1026. package/src/_models/control-models/app-ext-system-controls.control-model.ts +9 -9
  1027. package/src/_models/control-models/app-params.control-model.spec.ts +225 -225
  1028. package/src/_models/control-models/app-params.control-model.ts +136 -136
  1029. package/src/_models/control-models/app-system-controls.control-model.spec.ts +31 -31
  1030. package/src/_models/control-models/app-system-controls.control-model.ts +9 -9
  1031. package/src/_models/control-models/endpoint-params.control-model.spec.ts +669 -669
  1032. package/src/_models/control-models/endpoint-params.control-model.ts +664 -664
  1033. package/src/_models/control-models/http-settings.control-model.spec.ts +77 -77
  1034. package/src/_models/control-models/http-settings.control-model.ts +37 -37
  1035. package/src/_models/control-models/system-control.control-model.spec.ts +27 -27
  1036. package/src/_models/control-models/system-control.control-model.ts +12 -12
  1037. package/src/_models/interfaces/certification-settings.interface.ts +7 -7
  1038. package/src/_models/interfaces/environment-settings.interface.ts +59 -59
  1039. package/src/_models/interfaces/global-log-settings.interface.ts +171 -171
  1040. package/src/_models/interfaces/global-service-settings.interface.ts +47 -47
  1041. package/src/_models/interfaces/global-settings.interface.ts +294 -294
  1042. package/src/_models/interfaces/routing-module-settings.interface.ts +21 -21
  1043. package/src/_models/interfaces/static-client-settings.interface.spec.ts +29 -29
  1044. package/src/_models/interfaces/static-client-settings.interface.ts +36 -36
  1045. package/src/_models/types/db-update.type.ts +100 -100
  1046. package/src/_modules/ai/_models/ai-input-interfaces.ts +117 -117
  1047. package/src/_modules/ai/_models/ai-test-generation-result.interface.ts +16 -16
  1048. package/src/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.ts +115 -115
  1049. package/src/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.ts +233 -233
  1050. package/src/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.ts +138 -138
  1051. package/src/_modules/ai/_modules/anthropic/index.ts +5 -5
  1052. package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.ts +242 -242
  1053. package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.ts +639 -639
  1054. package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.ts +295 -295
  1055. package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.ts +518 -518
  1056. package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.ts +209 -209
  1057. package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.ts +85 -85
  1058. package/src/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.ts +7 -7
  1059. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.ts +146 -146
  1060. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.ts +162 -162
  1061. package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.ts +99 -99
  1062. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.ts +68 -68
  1063. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.ts +18 -18
  1064. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.ts +19 -19
  1065. package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.ts +25 -25
  1066. package/src/_modules/ai/_modules/document-ai/index.ts +30 -30
  1067. package/src/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.ts +189 -189
  1068. package/src/_modules/ai/_modules/fdp-ai/index.ts +5 -5
  1069. package/src/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.ts +9 -9
  1070. package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.ts +82 -82
  1071. package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.ts +75 -75
  1072. package/src/_modules/ai/_modules/open-ai/_enums/oai-gpt-message-role.enum.ts +45 -45
  1073. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.ts +7 -7
  1074. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-gpt-message.interface.ts +7 -7
  1075. package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.ts +57 -57
  1076. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.ts +292 -292
  1077. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.ts +342 -342
  1078. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.ts +550 -550
  1079. package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.ts +630 -630
  1080. package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.ts +332 -332
  1081. package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.ts +462 -462
  1082. package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts +634 -634
  1083. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.ts +489 -489
  1084. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.ts +173 -173
  1085. package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts +1085 -1085
  1086. package/src/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.ts +157 -157
  1087. package/src/_modules/ai/_services/ai-embedding-provider.registry.spec.ts +110 -110
  1088. package/src/_modules/ai/_services/ai-embedding-provider.registry.ts +114 -114
  1089. package/src/_modules/ai/_services/ai-embedding.service-base.spec.ts +98 -98
  1090. package/src/_modules/ai/_services/ai-embedding.service-base.ts +48 -48
  1091. package/src/_modules/ai/_services/ai-llm-chat.service-base.spec.ts +229 -229
  1092. package/src/_modules/ai/_services/ai-llm-chat.service-base.ts +68 -68
  1093. package/src/_modules/ai/_services/ai-llm.service-base.spec.ts +250 -250
  1094. package/src/_modules/ai/_services/ai-llm.service-base.ts +599 -599
  1095. package/src/_modules/ai/_services/ai-provider.service-base.spec.ts +158 -158
  1096. package/src/_modules/ai/_services/ai-user-key.service-base.ts +59 -59
  1097. package/src/_modules/ai/_services/lmstudio-embedding.control-service.spec.ts +197 -197
  1098. package/src/_modules/ai/_services/lmstudio-embedding.control-service.ts +371 -371
  1099. package/src/_modules/ai/index.ts +33 -33
  1100. package/src/_modules/assistant/_collections/ass-global-settings.const.ts +13 -13
  1101. package/src/_modules/assistant/_collections/ass.util.spec.ts +176 -176
  1102. package/src/_modules/assistant/_collections/ass.util.ts +50 -50
  1103. package/src/_modules/assistant/_models/ass-global-settings.interface.ts +15 -15
  1104. package/src/_modules/assistant/_services/ass-io.control-service.spec.ts +140 -140
  1105. package/src/_modules/assistant/_services/ass-main.control-service.spec.ts +192 -192
  1106. package/src/_modules/assistant/_services/ass-main.control-service.ts +107 -107
  1107. package/src/_modules/bot/_collections/bot-default-commands.const.ts +12 -12
  1108. package/src/_modules/bot/_collections/bot-global-settings.const.ts +39 -39
  1109. package/src/_modules/bot/_models/bot-channel-wrapper.interface.ts +62 -62
  1110. package/src/_modules/bot/_models/bot-command.interface.ts +8 -8
  1111. package/src/_modules/bot/_models/bot-global-settings.interface.ts +96 -96
  1112. package/src/_modules/bot/_models/bot-last-mention-date.interface.ts +6 -6
  1113. package/src/_modules/bot/_models/bot-last-message-date.interface.ts +5 -5
  1114. package/src/_modules/bot/_models/bot-user-wrapper.interface.ts +41 -41
  1115. package/src/_modules/bot/_modules/discord-bot/_models/dib-platform.types.ts +9 -9
  1116. package/src/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.ts +431 -431
  1117. package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.ts +160 -160
  1118. package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts +55 -55
  1119. package/src/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.ts +15 -15
  1120. package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.ts +374 -374
  1121. package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.ts +447 -447
  1122. package/src/_modules/bot/_modules/dynamo-bot/index.ts +15 -15
  1123. package/src/_modules/bot/_modules/slack-bot/_models/slb-platform.types.ts +9 -9
  1124. package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.ts +344 -344
  1125. package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.ts +197 -197
  1126. package/src/_modules/bot/_modules/teams-bot/_models/teb-platform.types.ts +9 -9
  1127. package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.ts +345 -345
  1128. package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.ts +197 -197
  1129. package/src/_modules/bot/_services/bot-commands.control-service.spec.ts +116 -116
  1130. package/src/_modules/bot/_services/bot-io.control-service.spec.ts +285 -285
  1131. package/src/_modules/bot/_services/bot-main.control-service.spec.ts +208 -208
  1132. package/src/_modules/bot/_services/bot-messaging-provider.service-base.spec.ts +349 -349
  1133. package/src/_modules/bot/_services/bot-routines.control-service.spec.ts +111 -111
  1134. package/src/_modules/custom-data/custom-data.controller.spec.ts +49 -49
  1135. package/src/_modules/custom-data/custom-data.controller.ts +67 -67
  1136. package/src/_modules/custom-data/custom-data.data-service.spec.ts +54 -54
  1137. package/src/_modules/custom-data/custom-data.data-service.ts +21 -21
  1138. package/src/_modules/custom-data/get-custom-data-routing-module.util.spec.ts +28 -28
  1139. package/src/_modules/custom-data/get-custom-data-routing-module.util.ts +24 -24
  1140. package/src/_modules/custom-data/index.ts +9 -9
  1141. package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.ts +161 -161
  1142. package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.ts +203 -203
  1143. package/src/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.ts +33 -33
  1144. package/src/_modules/data-readers/index.ts +11 -11
  1145. package/src/_modules/defaults/_collections/default-endpoints.util.ts +487 -487
  1146. package/src/_modules/defaults/_models/default-user.data-model.ts +72 -72
  1147. package/src/_modules/defaults/_services/default-auth.service.spec.ts +269 -269
  1148. package/src/_modules/defaults/_services/default-auth.service.ts +177 -177
  1149. package/src/_modules/defaults/_services/default-socket-events.service.spec.ts +42 -42
  1150. package/src/_modules/defaults/_services/default-socket-events.service.ts +61 -61
  1151. package/src/_modules/defaults/_services/default-user.data-service.spec.ts +187 -187
  1152. package/src/_modules/defaults/_services/default-user.data-service.ts +98 -98
  1153. package/src/_modules/defaults/index.ts +17 -17
  1154. package/src/_modules/discord-assistant/_collections/dias-global-settings.const.ts +19 -19
  1155. package/src/_modules/discord-assistant/_collections/dias.util.spec.ts +366 -366
  1156. package/src/_modules/discord-assistant/_collections/dias.util.ts +132 -132
  1157. package/src/_modules/discord-assistant/_models/dias-global-settings.interface.ts +19 -19
  1158. package/src/_modules/discord-assistant/_models/dias-knowledge.data-model.ts +52 -52
  1159. package/src/_modules/discord-assistant/_services/dias-chunk.data-service.ts +177 -177
  1160. package/src/_modules/discord-assistant/_services/dias-io.control-service.spec.ts +108 -108
  1161. package/src/_modules/discord-assistant/_services/dias-io.control-service.ts +69 -69
  1162. package/src/_modules/discord-assistant/_services/dias-main.control-service.spec.ts +22 -22
  1163. package/src/_modules/discord-assistant/_services/dias-main.control-service.ts +27 -27
  1164. package/src/_modules/discord-assistant/_services/dias.service-base.spec.ts +195 -195
  1165. package/src/_modules/discord-assistant/_services/dias.service-base.ts +76 -76
  1166. package/src/_modules/discord-assistant/index.ts +38 -38
  1167. package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.ts +34 -34
  1168. package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.ts +11 -11
  1169. package/src/_modules/discord-assistant-voiced/index.ts +36 -36
  1170. package/src/_modules/discord-bot/_collections/dibo-default-commands.const.ts +16 -16
  1171. package/src/_modules/discord-bot/_collections/dibo-global-settings.conts.ts +55 -55
  1172. package/src/_modules/discord-bot/_collections/dibo-operations.util.spec.ts +214 -214
  1173. package/src/_modules/discord-bot/_collections/dibo-operations.util.ts +387 -387
  1174. package/src/_modules/discord-bot/_models/dibo-command.interface.ts +12 -12
  1175. package/src/_modules/discord-bot/_models/dibo-global-settings.interface.ts +98 -98
  1176. package/src/_modules/discord-bot/_models/dibo-last-mention-date.inteface.ts +7 -7
  1177. package/src/_modules/discord-bot/_models/dibo-last-message-date.interface.ts +6 -6
  1178. package/src/_modules/discord-bot/_services/dibo-commands.control-service.spec.ts +154 -154
  1179. package/src/_modules/discord-bot/_services/dibo-commands.control-service.ts +153 -153
  1180. package/src/_modules/discord-bot/_services/dibo-io.control-service.spec.ts +264 -264
  1181. package/src/_modules/discord-bot/_services/dibo-io.control-service.ts +306 -306
  1182. package/src/_modules/discord-bot/_services/dibo-main.control-service.spec.ts +408 -408
  1183. package/src/_modules/discord-bot/_services/dibo-main.control-service.ts +487 -487
  1184. package/src/_modules/discord-bot/_services/dibo-routines.control-service.spec.ts +105 -105
  1185. package/src/_modules/discord-bot/index.ts +36 -36
  1186. package/src/_modules/local-vector-search/_enums/lvs-search-mode.enum.ts +35 -35
  1187. package/src/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.ts +59 -59
  1188. package/src/_modules/local-vector-search/_models/lvs-search-result.interface.ts +17 -17
  1189. package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.ts +418 -418
  1190. package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.ts +276 -276
  1191. package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.ts +480 -480
  1192. package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.ts +416 -416
  1193. package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.ts +214 -214
  1194. package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.ts +186 -186
  1195. package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.ts +167 -167
  1196. package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.ts +130 -130
  1197. package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.ts +509 -509
  1198. package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts +323 -323
  1199. package/src/_modules/local-vector-search/index.ts +16 -16
  1200. package/src/_modules/logs/index.ts +11 -11
  1201. package/src/_modules/mcp/_models/interfaces/dynts-mcp.interface.ts +111 -111
  1202. package/src/_modules/mcp/_services/dynts-mcp-server.service-base.spec.ts +142 -142
  1203. package/src/_modules/mcp/_services/dynts-mcp-server.service-base.ts +120 -120
  1204. package/src/_modules/mcp/_services/dynts-mcp.adapter.ts +168 -168
  1205. package/src/_modules/mcp/index.ts +13 -13
  1206. package/src/_modules/messaging/README.md +354 -354
  1207. package/src/_modules/messaging/_collections/get-messaging-routing-module.util.ts +26 -26
  1208. package/src/_modules/messaging/_collections/msg-global-settings.const.ts +22 -22
  1209. package/src/_modules/messaging/_collections/msg.util.spec.ts +226 -226
  1210. package/src/_modules/messaging/_models/msg-global-settings.interface.ts +37 -37
  1211. package/src/_modules/messaging/_services/msg-conversation.data-service.ts +146 -146
  1212. package/src/_modules/messaging/_services/msg-events.service.spec.ts +219 -219
  1213. package/src/_modules/messaging/_services/msg-events.service.ts +267 -267
  1214. package/src/_modules/messaging/_services/msg-integration.control-service.ts +179 -179
  1215. package/src/_modules/messaging/_services/msg-main.control-service.spec.ts +147 -147
  1216. package/src/_modules/messaging/_services/msg-main.control-service.ts +571 -571
  1217. package/src/_modules/messaging/_services/msg-message.data-service.ts +129 -129
  1218. package/src/_modules/messaging/_services/msg.controller.spec.ts +201 -201
  1219. package/src/_modules/messaging/index.ts +30 -30
  1220. package/src/_modules/mock/app-extended-server.mock.ts +201 -201
  1221. package/src/_modules/mock/app-integration-test.mock.ts +51 -51
  1222. package/src/_modules/mock/app-params.mock.spec.ts +21 -21
  1223. package/src/_modules/mock/app-params.mock.ts +9 -9
  1224. package/src/_modules/mock/app-server.mock.ts +188 -188
  1225. package/src/_modules/mock/auth-service.mock.spec.ts +47 -47
  1226. package/src/_modules/mock/auth-service.mock.ts +28 -28
  1227. package/src/_modules/mock/controller.mock.spec.ts +26 -26
  1228. package/src/_modules/mock/controller.mock.ts +16 -16
  1229. package/src/_modules/mock/data-model.mock.spec.ts +111 -111
  1230. package/src/_modules/mock/data-model.mock.ts +82 -82
  1231. package/src/_modules/mock/email-service-collection.mock.spec.ts +24 -24
  1232. package/src/_modules/mock/email-service-collection.mock.ts +15 -15
  1233. package/src/_modules/mock/email-service.mock.spec.ts +17 -17
  1234. package/src/_modules/mock/email-service.mock.ts +20 -20
  1235. package/src/_modules/mock/email-template.mock.html +14 -14
  1236. package/src/_modules/mock/endpoint.mock.ts +91 -91
  1237. package/src/_modules/mock/socket-client.mock.spec.ts +40 -40
  1238. package/src/_modules/mock/socket-client.mock.ts +45 -45
  1239. package/src/_modules/mock/socket-server.mock.spec.ts +44 -44
  1240. package/src/_modules/mock/socket-server.mock.ts +46 -46
  1241. package/src/_modules/oauth2/_routes/oauth2.controller.spec.ts +107 -107
  1242. package/src/_modules/oauth2/_routes/oauth2.controller.ts +98 -98
  1243. package/src/_modules/oauth2/_services/oauth2.auth-service.spec.ts +254 -254
  1244. package/src/_modules/oauth2/_services/oauth2.auth-service.ts +232 -232
  1245. package/src/_modules/oauth2/_services/oauth2.control-service.spec.ts +585 -585
  1246. package/src/_modules/oauth2/_services/oauth2.control-service.ts +653 -653
  1247. package/src/_modules/oauth2/index.ts +17 -17
  1248. package/src/_modules/scheduler/_models/scheduler-job.interface.ts +35 -35
  1249. package/src/_modules/scheduler/get-scheduler-routing-module.util.ts +33 -33
  1250. package/src/_modules/scheduler/index.ts +8 -8
  1251. package/src/_modules/scheduler/scheduler.controller.spec.ts +42 -42
  1252. package/src/_modules/scheduler/scheduler.controller.ts +69 -69
  1253. package/src/_modules/scheduler/scheduler.service.spec.ts +141 -141
  1254. package/src/_modules/scheduler/scheduler.service.ts +176 -176
  1255. package/src/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.ts +22 -22
  1256. package/src/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.ts +81 -81
  1257. package/src/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.ts +107 -107
  1258. package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.ts +306 -306
  1259. package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.ts +295 -295
  1260. package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.ts +118 -118
  1261. package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.ts +105 -105
  1262. package/src/_modules/scoped-config/index.ts +17 -17
  1263. package/src/_modules/server/errors/errors.control-service.spec.ts +238 -238
  1264. package/src/_modules/server/errors/errors.control-service.ts +100 -100
  1265. package/src/_modules/server/errors/errors.controller.ts +559 -559
  1266. package/src/_modules/server/errors/errors.data-service.spec.ts +480 -480
  1267. package/src/_modules/server/index.ts +30 -30
  1268. package/src/_modules/server/server-status/server-status-snapshot.control-service.spec.ts +70 -70
  1269. package/src/_modules/server/server-status/server-status-snapshot.control-service.ts +17 -17
  1270. package/src/_modules/server/server-status/server-status-snapshot.data-service.spec.ts +77 -77
  1271. package/src/_modules/server/server-status/server-status-snapshot.data-service.ts +37 -37
  1272. package/src/_modules/server/server-status/server-status.control-service.spec.ts +672 -672
  1273. package/src/_modules/server/server-status/server-status.control-service.ts +490 -490
  1274. package/src/_modules/server/server-status/server-status.controller.spec.ts +276 -276
  1275. package/src/_modules/server/server-status/server-status.controller.ts +336 -336
  1276. package/src/_modules/socket/_enums/socket-security.enum.ts +11 -11
  1277. package/src/_modules/socket/_models/socket-client-service-params.control-model.spec.ts +32 -32
  1278. package/src/_modules/socket/_models/socket-client-service-params.control-model.ts +22 -22
  1279. package/src/_modules/socket/_models/socket-presence.control-model.spec.ts +159 -158
  1280. package/src/_modules/socket/_models/socket-presence.control-model.ts +210 -209
  1281. package/src/_modules/socket/_models/socket-server-service-params.control-model.spec.ts +69 -69
  1282. package/src/_modules/socket/_services/socket-client.service.spec.ts +15 -15
  1283. package/src/_modules/socket/_services/socket-client.service.ts +260 -260
  1284. package/src/_modules/socket/_services/socket-server.service.spec.ts +225 -3
  1285. package/src/_modules/socket/_services/socket-server.service.ts +41 -74
  1286. package/src/_modules/socket/app-extended.integration.spec.ts +85 -85
  1287. package/src/_modules/socket/app-extended.server.ts +648 -648
  1288. package/src/_modules/socket/index.ts +42 -42
  1289. package/src/_modules/test/get-test-routing-module.util.spec.ts +28 -28
  1290. package/src/_modules/test/get-test-routing-module.util.ts +23 -23
  1291. package/src/_modules/test/index.ts +11 -11
  1292. package/src/_modules/test/test.controller.spec.ts +72 -72
  1293. package/src/_modules/test/test.controller.ts +115 -115
  1294. package/src/_modules/usage/get-usage-routing-module.util.ts +22 -22
  1295. package/src/_modules/usage/index.ts +15 -15
  1296. package/src/_modules/usage/usage.controller.spec.ts +106 -106
  1297. package/src/_modules/usage/usage.controller.ts +140 -140
  1298. package/src/_modules/usage/usage.data-service.spec.ts +332 -332
  1299. package/src/_modules/usage/usage.data-service.ts +185 -185
  1300. package/src/_services/base/api.service-base.spec.ts +125 -125
  1301. package/src/_services/base/api.service-base.ts +74 -74
  1302. package/src/_services/base/archive-data.service.spec.ts +209 -209
  1303. package/src/_services/base/archive-data.service.ts +223 -223
  1304. package/src/_services/base/data.service.spec.ts +784 -784
  1305. package/src/_services/base/data.service.ts +2792 -2792
  1306. package/src/_services/base/db.service.spec.ts +160 -160
  1307. package/src/_services/base/db.service.ts +1698 -1698
  1308. package/src/_services/base/singleton.service-base.spec.ts +28 -28
  1309. package/src/_services/base/singleton.service-base.ts +24 -24
  1310. package/src/_services/base/singleton.service.spec.ts +114 -114
  1311. package/src/_services/base/singleton.service.ts +38 -38
  1312. package/src/_services/core/api.service.spec.ts +140 -140
  1313. package/src/_services/core/auth.service.spec.ts +159 -159
  1314. package/src/_services/core/auth.service.ts +174 -174
  1315. package/src/_services/core/email.service.spec.ts +85 -85
  1316. package/src/_services/core/email.service.ts +757 -757
  1317. package/src/_services/core/global.service.spec.ts +292 -292
  1318. package/src/_services/core/global.service.ts +487 -487
  1319. package/src/_services/core/memory-guard.service.spec.ts +245 -245
  1320. package/src/_services/core/memory-guard.service.ts +481 -481
  1321. package/src/_services/core/service-collection.service.spec.ts +46 -46
  1322. package/src/_services/core/service-collection.service.ts +6 -6
  1323. package/src/_services/route/controller.service.spec.ts +53 -53
  1324. package/src/_services/route/controller.service.ts +148 -148
  1325. package/src/_services/route/routing-module.service.spec.ts +98 -98
  1326. package/src/_services/route/routing-module.service.ts +330 -330
  1327. package/src/_services/server/app.server.ts +2012 -2012
  1328. package/src/_services/shared.static-service.spec.ts +99 -99
  1329. package/src/_services/shared.static-service.ts +78 -78
  1330. package/tsconfig.app.json +12 -12
  1331. package/tsconfig.json +42 -42
  1332. package/.dynamo/logs/cicd-pipeline/output.log +0 -2862
  1333. package/.dynamo/logs/cicd-pipeline/status.json +0 -74
@@ -0,0 +1,2302 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for _services/core/email.service.ts</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../prettify.css" />
9
+ <link rel="stylesheet" href="../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">_services/core</a> email.service.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">41.81% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>309/739</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">55.55% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>20/36</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">57.89% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>11/19</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">41.81% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>309/739</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line low'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a>
303
+ <a name='L238'></a><a href='#L238'>238</a>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a>
307
+ <a name='L242'></a><a href='#L242'>242</a>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a>
320
+ <a name='L255'></a><a href='#L255'>255</a>
321
+ <a name='L256'></a><a href='#L256'>256</a>
322
+ <a name='L257'></a><a href='#L257'>257</a>
323
+ <a name='L258'></a><a href='#L258'>258</a>
324
+ <a name='L259'></a><a href='#L259'>259</a>
325
+ <a name='L260'></a><a href='#L260'>260</a>
326
+ <a name='L261'></a><a href='#L261'>261</a>
327
+ <a name='L262'></a><a href='#L262'>262</a>
328
+ <a name='L263'></a><a href='#L263'>263</a>
329
+ <a name='L264'></a><a href='#L264'>264</a>
330
+ <a name='L265'></a><a href='#L265'>265</a>
331
+ <a name='L266'></a><a href='#L266'>266</a>
332
+ <a name='L267'></a><a href='#L267'>267</a>
333
+ <a name='L268'></a><a href='#L268'>268</a>
334
+ <a name='L269'></a><a href='#L269'>269</a>
335
+ <a name='L270'></a><a href='#L270'>270</a>
336
+ <a name='L271'></a><a href='#L271'>271</a>
337
+ <a name='L272'></a><a href='#L272'>272</a>
338
+ <a name='L273'></a><a href='#L273'>273</a>
339
+ <a name='L274'></a><a href='#L274'>274</a>
340
+ <a name='L275'></a><a href='#L275'>275</a>
341
+ <a name='L276'></a><a href='#L276'>276</a>
342
+ <a name='L277'></a><a href='#L277'>277</a>
343
+ <a name='L278'></a><a href='#L278'>278</a>
344
+ <a name='L279'></a><a href='#L279'>279</a>
345
+ <a name='L280'></a><a href='#L280'>280</a>
346
+ <a name='L281'></a><a href='#L281'>281</a>
347
+ <a name='L282'></a><a href='#L282'>282</a>
348
+ <a name='L283'></a><a href='#L283'>283</a>
349
+ <a name='L284'></a><a href='#L284'>284</a>
350
+ <a name='L285'></a><a href='#L285'>285</a>
351
+ <a name='L286'></a><a href='#L286'>286</a>
352
+ <a name='L287'></a><a href='#L287'>287</a>
353
+ <a name='L288'></a><a href='#L288'>288</a>
354
+ <a name='L289'></a><a href='#L289'>289</a>
355
+ <a name='L290'></a><a href='#L290'>290</a>
356
+ <a name='L291'></a><a href='#L291'>291</a>
357
+ <a name='L292'></a><a href='#L292'>292</a>
358
+ <a name='L293'></a><a href='#L293'>293</a>
359
+ <a name='L294'></a><a href='#L294'>294</a>
360
+ <a name='L295'></a><a href='#L295'>295</a>
361
+ <a name='L296'></a><a href='#L296'>296</a>
362
+ <a name='L297'></a><a href='#L297'>297</a>
363
+ <a name='L298'></a><a href='#L298'>298</a>
364
+ <a name='L299'></a><a href='#L299'>299</a>
365
+ <a name='L300'></a><a href='#L300'>300</a>
366
+ <a name='L301'></a><a href='#L301'>301</a>
367
+ <a name='L302'></a><a href='#L302'>302</a>
368
+ <a name='L303'></a><a href='#L303'>303</a>
369
+ <a name='L304'></a><a href='#L304'>304</a>
370
+ <a name='L305'></a><a href='#L305'>305</a>
371
+ <a name='L306'></a><a href='#L306'>306</a>
372
+ <a name='L307'></a><a href='#L307'>307</a>
373
+ <a name='L308'></a><a href='#L308'>308</a>
374
+ <a name='L309'></a><a href='#L309'>309</a>
375
+ <a name='L310'></a><a href='#L310'>310</a>
376
+ <a name='L311'></a><a href='#L311'>311</a>
377
+ <a name='L312'></a><a href='#L312'>312</a>
378
+ <a name='L313'></a><a href='#L313'>313</a>
379
+ <a name='L314'></a><a href='#L314'>314</a>
380
+ <a name='L315'></a><a href='#L315'>315</a>
381
+ <a name='L316'></a><a href='#L316'>316</a>
382
+ <a name='L317'></a><a href='#L317'>317</a>
383
+ <a name='L318'></a><a href='#L318'>318</a>
384
+ <a name='L319'></a><a href='#L319'>319</a>
385
+ <a name='L320'></a><a href='#L320'>320</a>
386
+ <a name='L321'></a><a href='#L321'>321</a>
387
+ <a name='L322'></a><a href='#L322'>322</a>
388
+ <a name='L323'></a><a href='#L323'>323</a>
389
+ <a name='L324'></a><a href='#L324'>324</a>
390
+ <a name='L325'></a><a href='#L325'>325</a>
391
+ <a name='L326'></a><a href='#L326'>326</a>
392
+ <a name='L327'></a><a href='#L327'>327</a>
393
+ <a name='L328'></a><a href='#L328'>328</a>
394
+ <a name='L329'></a><a href='#L329'>329</a>
395
+ <a name='L330'></a><a href='#L330'>330</a>
396
+ <a name='L331'></a><a href='#L331'>331</a>
397
+ <a name='L332'></a><a href='#L332'>332</a>
398
+ <a name='L333'></a><a href='#L333'>333</a>
399
+ <a name='L334'></a><a href='#L334'>334</a>
400
+ <a name='L335'></a><a href='#L335'>335</a>
401
+ <a name='L336'></a><a href='#L336'>336</a>
402
+ <a name='L337'></a><a href='#L337'>337</a>
403
+ <a name='L338'></a><a href='#L338'>338</a>
404
+ <a name='L339'></a><a href='#L339'>339</a>
405
+ <a name='L340'></a><a href='#L340'>340</a>
406
+ <a name='L341'></a><a href='#L341'>341</a>
407
+ <a name='L342'></a><a href='#L342'>342</a>
408
+ <a name='L343'></a><a href='#L343'>343</a>
409
+ <a name='L344'></a><a href='#L344'>344</a>
410
+ <a name='L345'></a><a href='#L345'>345</a>
411
+ <a name='L346'></a><a href='#L346'>346</a>
412
+ <a name='L347'></a><a href='#L347'>347</a>
413
+ <a name='L348'></a><a href='#L348'>348</a>
414
+ <a name='L349'></a><a href='#L349'>349</a>
415
+ <a name='L350'></a><a href='#L350'>350</a>
416
+ <a name='L351'></a><a href='#L351'>351</a>
417
+ <a name='L352'></a><a href='#L352'>352</a>
418
+ <a name='L353'></a><a href='#L353'>353</a>
419
+ <a name='L354'></a><a href='#L354'>354</a>
420
+ <a name='L355'></a><a href='#L355'>355</a>
421
+ <a name='L356'></a><a href='#L356'>356</a>
422
+ <a name='L357'></a><a href='#L357'>357</a>
423
+ <a name='L358'></a><a href='#L358'>358</a>
424
+ <a name='L359'></a><a href='#L359'>359</a>
425
+ <a name='L360'></a><a href='#L360'>360</a>
426
+ <a name='L361'></a><a href='#L361'>361</a>
427
+ <a name='L362'></a><a href='#L362'>362</a>
428
+ <a name='L363'></a><a href='#L363'>363</a>
429
+ <a name='L364'></a><a href='#L364'>364</a>
430
+ <a name='L365'></a><a href='#L365'>365</a>
431
+ <a name='L366'></a><a href='#L366'>366</a>
432
+ <a name='L367'></a><a href='#L367'>367</a>
433
+ <a name='L368'></a><a href='#L368'>368</a>
434
+ <a name='L369'></a><a href='#L369'>369</a>
435
+ <a name='L370'></a><a href='#L370'>370</a>
436
+ <a name='L371'></a><a href='#L371'>371</a>
437
+ <a name='L372'></a><a href='#L372'>372</a>
438
+ <a name='L373'></a><a href='#L373'>373</a>
439
+ <a name='L374'></a><a href='#L374'>374</a>
440
+ <a name='L375'></a><a href='#L375'>375</a>
441
+ <a name='L376'></a><a href='#L376'>376</a>
442
+ <a name='L377'></a><a href='#L377'>377</a>
443
+ <a name='L378'></a><a href='#L378'>378</a>
444
+ <a name='L379'></a><a href='#L379'>379</a>
445
+ <a name='L380'></a><a href='#L380'>380</a>
446
+ <a name='L381'></a><a href='#L381'>381</a>
447
+ <a name='L382'></a><a href='#L382'>382</a>
448
+ <a name='L383'></a><a href='#L383'>383</a>
449
+ <a name='L384'></a><a href='#L384'>384</a>
450
+ <a name='L385'></a><a href='#L385'>385</a>
451
+ <a name='L386'></a><a href='#L386'>386</a>
452
+ <a name='L387'></a><a href='#L387'>387</a>
453
+ <a name='L388'></a><a href='#L388'>388</a>
454
+ <a name='L389'></a><a href='#L389'>389</a>
455
+ <a name='L390'></a><a href='#L390'>390</a>
456
+ <a name='L391'></a><a href='#L391'>391</a>
457
+ <a name='L392'></a><a href='#L392'>392</a>
458
+ <a name='L393'></a><a href='#L393'>393</a>
459
+ <a name='L394'></a><a href='#L394'>394</a>
460
+ <a name='L395'></a><a href='#L395'>395</a>
461
+ <a name='L396'></a><a href='#L396'>396</a>
462
+ <a name='L397'></a><a href='#L397'>397</a>
463
+ <a name='L398'></a><a href='#L398'>398</a>
464
+ <a name='L399'></a><a href='#L399'>399</a>
465
+ <a name='L400'></a><a href='#L400'>400</a>
466
+ <a name='L401'></a><a href='#L401'>401</a>
467
+ <a name='L402'></a><a href='#L402'>402</a>
468
+ <a name='L403'></a><a href='#L403'>403</a>
469
+ <a name='L404'></a><a href='#L404'>404</a>
470
+ <a name='L405'></a><a href='#L405'>405</a>
471
+ <a name='L406'></a><a href='#L406'>406</a>
472
+ <a name='L407'></a><a href='#L407'>407</a>
473
+ <a name='L408'></a><a href='#L408'>408</a>
474
+ <a name='L409'></a><a href='#L409'>409</a>
475
+ <a name='L410'></a><a href='#L410'>410</a>
476
+ <a name='L411'></a><a href='#L411'>411</a>
477
+ <a name='L412'></a><a href='#L412'>412</a>
478
+ <a name='L413'></a><a href='#L413'>413</a>
479
+ <a name='L414'></a><a href='#L414'>414</a>
480
+ <a name='L415'></a><a href='#L415'>415</a>
481
+ <a name='L416'></a><a href='#L416'>416</a>
482
+ <a name='L417'></a><a href='#L417'>417</a>
483
+ <a name='L418'></a><a href='#L418'>418</a>
484
+ <a name='L419'></a><a href='#L419'>419</a>
485
+ <a name='L420'></a><a href='#L420'>420</a>
486
+ <a name='L421'></a><a href='#L421'>421</a>
487
+ <a name='L422'></a><a href='#L422'>422</a>
488
+ <a name='L423'></a><a href='#L423'>423</a>
489
+ <a name='L424'></a><a href='#L424'>424</a>
490
+ <a name='L425'></a><a href='#L425'>425</a>
491
+ <a name='L426'></a><a href='#L426'>426</a>
492
+ <a name='L427'></a><a href='#L427'>427</a>
493
+ <a name='L428'></a><a href='#L428'>428</a>
494
+ <a name='L429'></a><a href='#L429'>429</a>
495
+ <a name='L430'></a><a href='#L430'>430</a>
496
+ <a name='L431'></a><a href='#L431'>431</a>
497
+ <a name='L432'></a><a href='#L432'>432</a>
498
+ <a name='L433'></a><a href='#L433'>433</a>
499
+ <a name='L434'></a><a href='#L434'>434</a>
500
+ <a name='L435'></a><a href='#L435'>435</a>
501
+ <a name='L436'></a><a href='#L436'>436</a>
502
+ <a name='L437'></a><a href='#L437'>437</a>
503
+ <a name='L438'></a><a href='#L438'>438</a>
504
+ <a name='L439'></a><a href='#L439'>439</a>
505
+ <a name='L440'></a><a href='#L440'>440</a>
506
+ <a name='L441'></a><a href='#L441'>441</a>
507
+ <a name='L442'></a><a href='#L442'>442</a>
508
+ <a name='L443'></a><a href='#L443'>443</a>
509
+ <a name='L444'></a><a href='#L444'>444</a>
510
+ <a name='L445'></a><a href='#L445'>445</a>
511
+ <a name='L446'></a><a href='#L446'>446</a>
512
+ <a name='L447'></a><a href='#L447'>447</a>
513
+ <a name='L448'></a><a href='#L448'>448</a>
514
+ <a name='L449'></a><a href='#L449'>449</a>
515
+ <a name='L450'></a><a href='#L450'>450</a>
516
+ <a name='L451'></a><a href='#L451'>451</a>
517
+ <a name='L452'></a><a href='#L452'>452</a>
518
+ <a name='L453'></a><a href='#L453'>453</a>
519
+ <a name='L454'></a><a href='#L454'>454</a>
520
+ <a name='L455'></a><a href='#L455'>455</a>
521
+ <a name='L456'></a><a href='#L456'>456</a>
522
+ <a name='L457'></a><a href='#L457'>457</a>
523
+ <a name='L458'></a><a href='#L458'>458</a>
524
+ <a name='L459'></a><a href='#L459'>459</a>
525
+ <a name='L460'></a><a href='#L460'>460</a>
526
+ <a name='L461'></a><a href='#L461'>461</a>
527
+ <a name='L462'></a><a href='#L462'>462</a>
528
+ <a name='L463'></a><a href='#L463'>463</a>
529
+ <a name='L464'></a><a href='#L464'>464</a>
530
+ <a name='L465'></a><a href='#L465'>465</a>
531
+ <a name='L466'></a><a href='#L466'>466</a>
532
+ <a name='L467'></a><a href='#L467'>467</a>
533
+ <a name='L468'></a><a href='#L468'>468</a>
534
+ <a name='L469'></a><a href='#L469'>469</a>
535
+ <a name='L470'></a><a href='#L470'>470</a>
536
+ <a name='L471'></a><a href='#L471'>471</a>
537
+ <a name='L472'></a><a href='#L472'>472</a>
538
+ <a name='L473'></a><a href='#L473'>473</a>
539
+ <a name='L474'></a><a href='#L474'>474</a>
540
+ <a name='L475'></a><a href='#L475'>475</a>
541
+ <a name='L476'></a><a href='#L476'>476</a>
542
+ <a name='L477'></a><a href='#L477'>477</a>
543
+ <a name='L478'></a><a href='#L478'>478</a>
544
+ <a name='L479'></a><a href='#L479'>479</a>
545
+ <a name='L480'></a><a href='#L480'>480</a>
546
+ <a name='L481'></a><a href='#L481'>481</a>
547
+ <a name='L482'></a><a href='#L482'>482</a>
548
+ <a name='L483'></a><a href='#L483'>483</a>
549
+ <a name='L484'></a><a href='#L484'>484</a>
550
+ <a name='L485'></a><a href='#L485'>485</a>
551
+ <a name='L486'></a><a href='#L486'>486</a>
552
+ <a name='L487'></a><a href='#L487'>487</a>
553
+ <a name='L488'></a><a href='#L488'>488</a>
554
+ <a name='L489'></a><a href='#L489'>489</a>
555
+ <a name='L490'></a><a href='#L490'>490</a>
556
+ <a name='L491'></a><a href='#L491'>491</a>
557
+ <a name='L492'></a><a href='#L492'>492</a>
558
+ <a name='L493'></a><a href='#L493'>493</a>
559
+ <a name='L494'></a><a href='#L494'>494</a>
560
+ <a name='L495'></a><a href='#L495'>495</a>
561
+ <a name='L496'></a><a href='#L496'>496</a>
562
+ <a name='L497'></a><a href='#L497'>497</a>
563
+ <a name='L498'></a><a href='#L498'>498</a>
564
+ <a name='L499'></a><a href='#L499'>499</a>
565
+ <a name='L500'></a><a href='#L500'>500</a>
566
+ <a name='L501'></a><a href='#L501'>501</a>
567
+ <a name='L502'></a><a href='#L502'>502</a>
568
+ <a name='L503'></a><a href='#L503'>503</a>
569
+ <a name='L504'></a><a href='#L504'>504</a>
570
+ <a name='L505'></a><a href='#L505'>505</a>
571
+ <a name='L506'></a><a href='#L506'>506</a>
572
+ <a name='L507'></a><a href='#L507'>507</a>
573
+ <a name='L508'></a><a href='#L508'>508</a>
574
+ <a name='L509'></a><a href='#L509'>509</a>
575
+ <a name='L510'></a><a href='#L510'>510</a>
576
+ <a name='L511'></a><a href='#L511'>511</a>
577
+ <a name='L512'></a><a href='#L512'>512</a>
578
+ <a name='L513'></a><a href='#L513'>513</a>
579
+ <a name='L514'></a><a href='#L514'>514</a>
580
+ <a name='L515'></a><a href='#L515'>515</a>
581
+ <a name='L516'></a><a href='#L516'>516</a>
582
+ <a name='L517'></a><a href='#L517'>517</a>
583
+ <a name='L518'></a><a href='#L518'>518</a>
584
+ <a name='L519'></a><a href='#L519'>519</a>
585
+ <a name='L520'></a><a href='#L520'>520</a>
586
+ <a name='L521'></a><a href='#L521'>521</a>
587
+ <a name='L522'></a><a href='#L522'>522</a>
588
+ <a name='L523'></a><a href='#L523'>523</a>
589
+ <a name='L524'></a><a href='#L524'>524</a>
590
+ <a name='L525'></a><a href='#L525'>525</a>
591
+ <a name='L526'></a><a href='#L526'>526</a>
592
+ <a name='L527'></a><a href='#L527'>527</a>
593
+ <a name='L528'></a><a href='#L528'>528</a>
594
+ <a name='L529'></a><a href='#L529'>529</a>
595
+ <a name='L530'></a><a href='#L530'>530</a>
596
+ <a name='L531'></a><a href='#L531'>531</a>
597
+ <a name='L532'></a><a href='#L532'>532</a>
598
+ <a name='L533'></a><a href='#L533'>533</a>
599
+ <a name='L534'></a><a href='#L534'>534</a>
600
+ <a name='L535'></a><a href='#L535'>535</a>
601
+ <a name='L536'></a><a href='#L536'>536</a>
602
+ <a name='L537'></a><a href='#L537'>537</a>
603
+ <a name='L538'></a><a href='#L538'>538</a>
604
+ <a name='L539'></a><a href='#L539'>539</a>
605
+ <a name='L540'></a><a href='#L540'>540</a>
606
+ <a name='L541'></a><a href='#L541'>541</a>
607
+ <a name='L542'></a><a href='#L542'>542</a>
608
+ <a name='L543'></a><a href='#L543'>543</a>
609
+ <a name='L544'></a><a href='#L544'>544</a>
610
+ <a name='L545'></a><a href='#L545'>545</a>
611
+ <a name='L546'></a><a href='#L546'>546</a>
612
+ <a name='L547'></a><a href='#L547'>547</a>
613
+ <a name='L548'></a><a href='#L548'>548</a>
614
+ <a name='L549'></a><a href='#L549'>549</a>
615
+ <a name='L550'></a><a href='#L550'>550</a>
616
+ <a name='L551'></a><a href='#L551'>551</a>
617
+ <a name='L552'></a><a href='#L552'>552</a>
618
+ <a name='L553'></a><a href='#L553'>553</a>
619
+ <a name='L554'></a><a href='#L554'>554</a>
620
+ <a name='L555'></a><a href='#L555'>555</a>
621
+ <a name='L556'></a><a href='#L556'>556</a>
622
+ <a name='L557'></a><a href='#L557'>557</a>
623
+ <a name='L558'></a><a href='#L558'>558</a>
624
+ <a name='L559'></a><a href='#L559'>559</a>
625
+ <a name='L560'></a><a href='#L560'>560</a>
626
+ <a name='L561'></a><a href='#L561'>561</a>
627
+ <a name='L562'></a><a href='#L562'>562</a>
628
+ <a name='L563'></a><a href='#L563'>563</a>
629
+ <a name='L564'></a><a href='#L564'>564</a>
630
+ <a name='L565'></a><a href='#L565'>565</a>
631
+ <a name='L566'></a><a href='#L566'>566</a>
632
+ <a name='L567'></a><a href='#L567'>567</a>
633
+ <a name='L568'></a><a href='#L568'>568</a>
634
+ <a name='L569'></a><a href='#L569'>569</a>
635
+ <a name='L570'></a><a href='#L570'>570</a>
636
+ <a name='L571'></a><a href='#L571'>571</a>
637
+ <a name='L572'></a><a href='#L572'>572</a>
638
+ <a name='L573'></a><a href='#L573'>573</a>
639
+ <a name='L574'></a><a href='#L574'>574</a>
640
+ <a name='L575'></a><a href='#L575'>575</a>
641
+ <a name='L576'></a><a href='#L576'>576</a>
642
+ <a name='L577'></a><a href='#L577'>577</a>
643
+ <a name='L578'></a><a href='#L578'>578</a>
644
+ <a name='L579'></a><a href='#L579'>579</a>
645
+ <a name='L580'></a><a href='#L580'>580</a>
646
+ <a name='L581'></a><a href='#L581'>581</a>
647
+ <a name='L582'></a><a href='#L582'>582</a>
648
+ <a name='L583'></a><a href='#L583'>583</a>
649
+ <a name='L584'></a><a href='#L584'>584</a>
650
+ <a name='L585'></a><a href='#L585'>585</a>
651
+ <a name='L586'></a><a href='#L586'>586</a>
652
+ <a name='L587'></a><a href='#L587'>587</a>
653
+ <a name='L588'></a><a href='#L588'>588</a>
654
+ <a name='L589'></a><a href='#L589'>589</a>
655
+ <a name='L590'></a><a href='#L590'>590</a>
656
+ <a name='L591'></a><a href='#L591'>591</a>
657
+ <a name='L592'></a><a href='#L592'>592</a>
658
+ <a name='L593'></a><a href='#L593'>593</a>
659
+ <a name='L594'></a><a href='#L594'>594</a>
660
+ <a name='L595'></a><a href='#L595'>595</a>
661
+ <a name='L596'></a><a href='#L596'>596</a>
662
+ <a name='L597'></a><a href='#L597'>597</a>
663
+ <a name='L598'></a><a href='#L598'>598</a>
664
+ <a name='L599'></a><a href='#L599'>599</a>
665
+ <a name='L600'></a><a href='#L600'>600</a>
666
+ <a name='L601'></a><a href='#L601'>601</a>
667
+ <a name='L602'></a><a href='#L602'>602</a>
668
+ <a name='L603'></a><a href='#L603'>603</a>
669
+ <a name='L604'></a><a href='#L604'>604</a>
670
+ <a name='L605'></a><a href='#L605'>605</a>
671
+ <a name='L606'></a><a href='#L606'>606</a>
672
+ <a name='L607'></a><a href='#L607'>607</a>
673
+ <a name='L608'></a><a href='#L608'>608</a>
674
+ <a name='L609'></a><a href='#L609'>609</a>
675
+ <a name='L610'></a><a href='#L610'>610</a>
676
+ <a name='L611'></a><a href='#L611'>611</a>
677
+ <a name='L612'></a><a href='#L612'>612</a>
678
+ <a name='L613'></a><a href='#L613'>613</a>
679
+ <a name='L614'></a><a href='#L614'>614</a>
680
+ <a name='L615'></a><a href='#L615'>615</a>
681
+ <a name='L616'></a><a href='#L616'>616</a>
682
+ <a name='L617'></a><a href='#L617'>617</a>
683
+ <a name='L618'></a><a href='#L618'>618</a>
684
+ <a name='L619'></a><a href='#L619'>619</a>
685
+ <a name='L620'></a><a href='#L620'>620</a>
686
+ <a name='L621'></a><a href='#L621'>621</a>
687
+ <a name='L622'></a><a href='#L622'>622</a>
688
+ <a name='L623'></a><a href='#L623'>623</a>
689
+ <a name='L624'></a><a href='#L624'>624</a>
690
+ <a name='L625'></a><a href='#L625'>625</a>
691
+ <a name='L626'></a><a href='#L626'>626</a>
692
+ <a name='L627'></a><a href='#L627'>627</a>
693
+ <a name='L628'></a><a href='#L628'>628</a>
694
+ <a name='L629'></a><a href='#L629'>629</a>
695
+ <a name='L630'></a><a href='#L630'>630</a>
696
+ <a name='L631'></a><a href='#L631'>631</a>
697
+ <a name='L632'></a><a href='#L632'>632</a>
698
+ <a name='L633'></a><a href='#L633'>633</a>
699
+ <a name='L634'></a><a href='#L634'>634</a>
700
+ <a name='L635'></a><a href='#L635'>635</a>
701
+ <a name='L636'></a><a href='#L636'>636</a>
702
+ <a name='L637'></a><a href='#L637'>637</a>
703
+ <a name='L638'></a><a href='#L638'>638</a>
704
+ <a name='L639'></a><a href='#L639'>639</a>
705
+ <a name='L640'></a><a href='#L640'>640</a>
706
+ <a name='L641'></a><a href='#L641'>641</a>
707
+ <a name='L642'></a><a href='#L642'>642</a>
708
+ <a name='L643'></a><a href='#L643'>643</a>
709
+ <a name='L644'></a><a href='#L644'>644</a>
710
+ <a name='L645'></a><a href='#L645'>645</a>
711
+ <a name='L646'></a><a href='#L646'>646</a>
712
+ <a name='L647'></a><a href='#L647'>647</a>
713
+ <a name='L648'></a><a href='#L648'>648</a>
714
+ <a name='L649'></a><a href='#L649'>649</a>
715
+ <a name='L650'></a><a href='#L650'>650</a>
716
+ <a name='L651'></a><a href='#L651'>651</a>
717
+ <a name='L652'></a><a href='#L652'>652</a>
718
+ <a name='L653'></a><a href='#L653'>653</a>
719
+ <a name='L654'></a><a href='#L654'>654</a>
720
+ <a name='L655'></a><a href='#L655'>655</a>
721
+ <a name='L656'></a><a href='#L656'>656</a>
722
+ <a name='L657'></a><a href='#L657'>657</a>
723
+ <a name='L658'></a><a href='#L658'>658</a>
724
+ <a name='L659'></a><a href='#L659'>659</a>
725
+ <a name='L660'></a><a href='#L660'>660</a>
726
+ <a name='L661'></a><a href='#L661'>661</a>
727
+ <a name='L662'></a><a href='#L662'>662</a>
728
+ <a name='L663'></a><a href='#L663'>663</a>
729
+ <a name='L664'></a><a href='#L664'>664</a>
730
+ <a name='L665'></a><a href='#L665'>665</a>
731
+ <a name='L666'></a><a href='#L666'>666</a>
732
+ <a name='L667'></a><a href='#L667'>667</a>
733
+ <a name='L668'></a><a href='#L668'>668</a>
734
+ <a name='L669'></a><a href='#L669'>669</a>
735
+ <a name='L670'></a><a href='#L670'>670</a>
736
+ <a name='L671'></a><a href='#L671'>671</a>
737
+ <a name='L672'></a><a href='#L672'>672</a>
738
+ <a name='L673'></a><a href='#L673'>673</a>
739
+ <a name='L674'></a><a href='#L674'>674</a>
740
+ <a name='L675'></a><a href='#L675'>675</a>
741
+ <a name='L676'></a><a href='#L676'>676</a>
742
+ <a name='L677'></a><a href='#L677'>677</a>
743
+ <a name='L678'></a><a href='#L678'>678</a>
744
+ <a name='L679'></a><a href='#L679'>679</a>
745
+ <a name='L680'></a><a href='#L680'>680</a>
746
+ <a name='L681'></a><a href='#L681'>681</a>
747
+ <a name='L682'></a><a href='#L682'>682</a>
748
+ <a name='L683'></a><a href='#L683'>683</a>
749
+ <a name='L684'></a><a href='#L684'>684</a>
750
+ <a name='L685'></a><a href='#L685'>685</a>
751
+ <a name='L686'></a><a href='#L686'>686</a>
752
+ <a name='L687'></a><a href='#L687'>687</a>
753
+ <a name='L688'></a><a href='#L688'>688</a>
754
+ <a name='L689'></a><a href='#L689'>689</a>
755
+ <a name='L690'></a><a href='#L690'>690</a>
756
+ <a name='L691'></a><a href='#L691'>691</a>
757
+ <a name='L692'></a><a href='#L692'>692</a>
758
+ <a name='L693'></a><a href='#L693'>693</a>
759
+ <a name='L694'></a><a href='#L694'>694</a>
760
+ <a name='L695'></a><a href='#L695'>695</a>
761
+ <a name='L696'></a><a href='#L696'>696</a>
762
+ <a name='L697'></a><a href='#L697'>697</a>
763
+ <a name='L698'></a><a href='#L698'>698</a>
764
+ <a name='L699'></a><a href='#L699'>699</a>
765
+ <a name='L700'></a><a href='#L700'>700</a>
766
+ <a name='L701'></a><a href='#L701'>701</a>
767
+ <a name='L702'></a><a href='#L702'>702</a>
768
+ <a name='L703'></a><a href='#L703'>703</a>
769
+ <a name='L704'></a><a href='#L704'>704</a>
770
+ <a name='L705'></a><a href='#L705'>705</a>
771
+ <a name='L706'></a><a href='#L706'>706</a>
772
+ <a name='L707'></a><a href='#L707'>707</a>
773
+ <a name='L708'></a><a href='#L708'>708</a>
774
+ <a name='L709'></a><a href='#L709'>709</a>
775
+ <a name='L710'></a><a href='#L710'>710</a>
776
+ <a name='L711'></a><a href='#L711'>711</a>
777
+ <a name='L712'></a><a href='#L712'>712</a>
778
+ <a name='L713'></a><a href='#L713'>713</a>
779
+ <a name='L714'></a><a href='#L714'>714</a>
780
+ <a name='L715'></a><a href='#L715'>715</a>
781
+ <a name='L716'></a><a href='#L716'>716</a>
782
+ <a name='L717'></a><a href='#L717'>717</a>
783
+ <a name='L718'></a><a href='#L718'>718</a>
784
+ <a name='L719'></a><a href='#L719'>719</a>
785
+ <a name='L720'></a><a href='#L720'>720</a>
786
+ <a name='L721'></a><a href='#L721'>721</a>
787
+ <a name='L722'></a><a href='#L722'>722</a>
788
+ <a name='L723'></a><a href='#L723'>723</a>
789
+ <a name='L724'></a><a href='#L724'>724</a>
790
+ <a name='L725'></a><a href='#L725'>725</a>
791
+ <a name='L726'></a><a href='#L726'>726</a>
792
+ <a name='L727'></a><a href='#L727'>727</a>
793
+ <a name='L728'></a><a href='#L728'>728</a>
794
+ <a name='L729'></a><a href='#L729'>729</a>
795
+ <a name='L730'></a><a href='#L730'>730</a>
796
+ <a name='L731'></a><a href='#L731'>731</a>
797
+ <a name='L732'></a><a href='#L732'>732</a>
798
+ <a name='L733'></a><a href='#L733'>733</a>
799
+ <a name='L734'></a><a href='#L734'>734</a>
800
+ <a name='L735'></a><a href='#L735'>735</a>
801
+ <a name='L736'></a><a href='#L736'>736</a>
802
+ <a name='L737'></a><a href='#L737'>737</a>
803
+ <a name='L738'></a><a href='#L738'>738</a>
804
+ <a name='L739'></a><a href='#L739'>739</a>
805
+ <a name='L740'></a><a href='#L740'>740</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
806
+ <span class="cline-any cline-yes">1x</span>
807
+ <span class="cline-any cline-yes">1x</span>
808
+ <span class="cline-any cline-yes">1x</span>
809
+ <span class="cline-any cline-yes">1x</span>
810
+ <span class="cline-any cline-yes">1x</span>
811
+ <span class="cline-any cline-yes">1x</span>
812
+ <span class="cline-any cline-yes">1x</span>
813
+ <span class="cline-any cline-yes">1x</span>
814
+ <span class="cline-any cline-yes">1x</span>
815
+ <span class="cline-any cline-yes">1x</span>
816
+ <span class="cline-any cline-yes">1x</span>
817
+ <span class="cline-any cline-yes">1x</span>
818
+ <span class="cline-any cline-yes">1x</span>
819
+ <span class="cline-any cline-yes">1x</span>
820
+ <span class="cline-any cline-yes">1x</span>
821
+ <span class="cline-any cline-yes">1x</span>
822
+ <span class="cline-any cline-yes">1x</span>
823
+ <span class="cline-any cline-yes">1x</span>
824
+ <span class="cline-any cline-yes">1x</span>
825
+ <span class="cline-any cline-yes">1x</span>
826
+ <span class="cline-any cline-yes">1x</span>
827
+ <span class="cline-any cline-yes">2x</span>
828
+ <span class="cline-any cline-yes">2x</span>
829
+ <span class="cline-any cline-yes">2x</span>
830
+ <span class="cline-any cline-yes">2x</span>
831
+ <span class="cline-any cline-yes">2x</span>
832
+ <span class="cline-any cline-yes">2x</span>
833
+ <span class="cline-any cline-yes">2x</span>
834
+ <span class="cline-any cline-yes">2x</span>
835
+ <span class="cline-any cline-yes">2x</span>
836
+ <span class="cline-any cline-yes">2x</span>
837
+ <span class="cline-any cline-yes">2x</span>
838
+ <span class="cline-any cline-yes">2x</span>
839
+ <span class="cline-any cline-yes">2x</span>
840
+ <span class="cline-any cline-yes">2x</span>
841
+ <span class="cline-any cline-yes">2x</span>
842
+ <span class="cline-any cline-yes">2x</span>
843
+ <span class="cline-any cline-yes">2x</span>
844
+ <span class="cline-any cline-yes">2x</span>
845
+ <span class="cline-any cline-yes">2x</span>
846
+ <span class="cline-any cline-yes">2x</span>
847
+ <span class="cline-any cline-yes">2x</span>
848
+ <span class="cline-any cline-yes">2x</span>
849
+ <span class="cline-any cline-yes">1x</span>
850
+ <span class="cline-any cline-yes">1x</span>
851
+ <span class="cline-any cline-yes">1x</span>
852
+ <span class="cline-any cline-yes">1x</span>
853
+ <span class="cline-any cline-yes">1x</span>
854
+ <span class="cline-any cline-yes">1x</span>
855
+ <span class="cline-any cline-yes">1x</span>
856
+ <span class="cline-any cline-yes">1x</span>
857
+ <span class="cline-any cline-yes">1x</span>
858
+ <span class="cline-any cline-yes">1x</span>
859
+ <span class="cline-any cline-yes">1x</span>
860
+ <span class="cline-any cline-yes">1x</span>
861
+ <span class="cline-any cline-yes">1x</span>
862
+ <span class="cline-any cline-yes">1x</span>
863
+ <span class="cline-any cline-yes">1x</span>
864
+ <span class="cline-any cline-yes">1x</span>
865
+ <span class="cline-any cline-yes">1x</span>
866
+ <span class="cline-any cline-yes">7x</span>
867
+ <span class="cline-any cline-yes">7x</span>
868
+ <span class="cline-any cline-yes">7x</span>
869
+ <span class="cline-any cline-yes">7x</span>
870
+ <span class="cline-any cline-yes">7x</span>
871
+ <span class="cline-any cline-yes">7x</span>
872
+ <span class="cline-any cline-yes">7x</span>
873
+ <span class="cline-any cline-yes">7x</span>
874
+ <span class="cline-any cline-yes">7x</span>
875
+ <span class="cline-any cline-yes">7x</span>
876
+ <span class="cline-any cline-yes">7x</span>
877
+ <span class="cline-any cline-yes">7x</span>
878
+ <span class="cline-any cline-yes">7x</span>
879
+ <span class="cline-any cline-yes">7x</span>
880
+ <span class="cline-any cline-yes">7x</span>
881
+ <span class="cline-any cline-yes">7x</span>
882
+ <span class="cline-any cline-yes">7x</span>
883
+ <span class="cline-any cline-yes">7x</span>
884
+ <span class="cline-any cline-yes">7x</span>
885
+ <span class="cline-any cline-yes">7x</span>
886
+ <span class="cline-any cline-yes">7x</span>
887
+ <span class="cline-any cline-yes">7x</span>
888
+ <span class="cline-any cline-yes">7x</span>
889
+ <span class="cline-any cline-yes">7x</span>
890
+ <span class="cline-any cline-yes">7x</span>
891
+ <span class="cline-any cline-yes">7x</span>
892
+ <span class="cline-any cline-yes">7x</span>
893
+ <span class="cline-any cline-yes">7x</span>
894
+ <span class="cline-any cline-yes">7x</span>
895
+ <span class="cline-any cline-yes">7x</span>
896
+ <span class="cline-any cline-yes">7x</span>
897
+ <span class="cline-any cline-yes">7x</span>
898
+ <span class="cline-any cline-yes">7x</span>
899
+ <span class="cline-any cline-yes">7x</span>
900
+ <span class="cline-any cline-yes">7x</span>
901
+ <span class="cline-any cline-yes">7x</span>
902
+ <span class="cline-any cline-yes">7x</span>
903
+ <span class="cline-any cline-yes">7x</span>
904
+ <span class="cline-any cline-yes">7x</span>
905
+ <span class="cline-any cline-yes">3x</span>
906
+ <span class="cline-any cline-yes">3x</span>
907
+ <span class="cline-any cline-yes">3x</span>
908
+ <span class="cline-any cline-yes">3x</span>
909
+ <span class="cline-any cline-yes">3x</span>
910
+ <span class="cline-any cline-yes">1x</span>
911
+ <span class="cline-any cline-yes">1x</span>
912
+ <span class="cline-any cline-yes">3x</span>
913
+ <span class="cline-any cline-yes">3x</span>
914
+ <span class="cline-any cline-yes">3x</span>
915
+ <span class="cline-any cline-yes">3x</span>
916
+ <span class="cline-any cline-yes">3x</span>
917
+ <span class="cline-any cline-yes">3x</span>
918
+ <span class="cline-any cline-yes">3x</span>
919
+ <span class="cline-any cline-no">&nbsp;</span>
920
+ <span class="cline-any cline-no">&nbsp;</span>
921
+ <span class="cline-any cline-no">&nbsp;</span>
922
+ <span class="cline-any cline-no">&nbsp;</span>
923
+ <span class="cline-any cline-no">&nbsp;</span>
924
+ <span class="cline-any cline-no">&nbsp;</span>
925
+ <span class="cline-any cline-yes">3x</span>
926
+ <span class="cline-any cline-yes">7x</span>
927
+ <span class="cline-any cline-yes">7x</span>
928
+ <span class="cline-any cline-yes">7x</span>
929
+ <span class="cline-any cline-yes">7x</span>
930
+ <span class="cline-any cline-yes">7x</span>
931
+ <span class="cline-any cline-yes">7x</span>
932
+ <span class="cline-any cline-yes">2x</span>
933
+ <span class="cline-any cline-yes">2x</span>
934
+ <span class="cline-any cline-yes">2x</span>
935
+ <span class="cline-any cline-yes">2x</span>
936
+ <span class="cline-any cline-yes">2x</span>
937
+ <span class="cline-any cline-yes">2x</span>
938
+ <span class="cline-any cline-yes">2x</span>
939
+ <span class="cline-any cline-no">&nbsp;</span>
940
+ <span class="cline-any cline-no">&nbsp;</span>
941
+ <span class="cline-any cline-yes">2x</span>
942
+ <span class="cline-any cline-yes">2x</span>
943
+ <span class="cline-any cline-yes">1x</span>
944
+ <span class="cline-any cline-yes">1x</span>
945
+ <span class="cline-any cline-yes">1x</span>
946
+ <span class="cline-any cline-yes">1x</span>
947
+ <span class="cline-any cline-yes">1x</span>
948
+ <span class="cline-any cline-yes">1x</span>
949
+ <span class="cline-any cline-yes">1x</span>
950
+ <span class="cline-any cline-yes">1x</span>
951
+ <span class="cline-any cline-yes">1x</span>
952
+ <span class="cline-any cline-yes">1x</span>
953
+ <span class="cline-any cline-yes">1x</span>
954
+ <span class="cline-any cline-yes">1x</span>
955
+ <span class="cline-any cline-yes">1x</span>
956
+ <span class="cline-any cline-yes">1x</span>
957
+ <span class="cline-any cline-yes">1x</span>
958
+ <span class="cline-any cline-yes">1x</span>
959
+ <span class="cline-any cline-yes">1x</span>
960
+ <span class="cline-any cline-yes">1x</span>
961
+ <span class="cline-any cline-yes">1x</span>
962
+ <span class="cline-any cline-yes">1x</span>
963
+ <span class="cline-any cline-yes">1x</span>
964
+ <span class="cline-any cline-yes">1x</span>
965
+ <span class="cline-any cline-yes">1x</span>
966
+ <span class="cline-any cline-yes">1x</span>
967
+ <span class="cline-any cline-yes">1x</span>
968
+ <span class="cline-any cline-yes">1x</span>
969
+ <span class="cline-any cline-yes">1x</span>
970
+ <span class="cline-any cline-no">&nbsp;</span>
971
+ <span class="cline-any cline-no">&nbsp;</span>
972
+ <span class="cline-any cline-no">&nbsp;</span>
973
+ <span class="cline-any cline-no">&nbsp;</span>
974
+ <span class="cline-any cline-no">&nbsp;</span>
975
+ <span class="cline-any cline-no">&nbsp;</span>
976
+ <span class="cline-any cline-no">&nbsp;</span>
977
+ <span class="cline-any cline-no">&nbsp;</span>
978
+ <span class="cline-any cline-no">&nbsp;</span>
979
+ <span class="cline-any cline-no">&nbsp;</span>
980
+ <span class="cline-any cline-no">&nbsp;</span>
981
+ <span class="cline-any cline-no">&nbsp;</span>
982
+ <span class="cline-any cline-no">&nbsp;</span>
983
+ <span class="cline-any cline-no">&nbsp;</span>
984
+ <span class="cline-any cline-no">&nbsp;</span>
985
+ <span class="cline-any cline-no">&nbsp;</span>
986
+ <span class="cline-any cline-no">&nbsp;</span>
987
+ <span class="cline-any cline-no">&nbsp;</span>
988
+ <span class="cline-any cline-no">&nbsp;</span>
989
+ <span class="cline-any cline-no">&nbsp;</span>
990
+ <span class="cline-any cline-no">&nbsp;</span>
991
+ <span class="cline-any cline-no">&nbsp;</span>
992
+ <span class="cline-any cline-no">&nbsp;</span>
993
+ <span class="cline-any cline-no">&nbsp;</span>
994
+ <span class="cline-any cline-no">&nbsp;</span>
995
+ <span class="cline-any cline-yes">2x</span>
996
+ <span class="cline-any cline-yes">2x</span>
997
+ <span class="cline-any cline-no">&nbsp;</span>
998
+ <span class="cline-any cline-no">&nbsp;</span>
999
+ <span class="cline-any cline-no">&nbsp;</span>
1000
+ <span class="cline-any cline-no">&nbsp;</span>
1001
+ <span class="cline-any cline-no">&nbsp;</span>
1002
+ <span class="cline-any cline-no">&nbsp;</span>
1003
+ <span class="cline-any cline-no">&nbsp;</span>
1004
+ <span class="cline-any cline-no">&nbsp;</span>
1005
+ <span class="cline-any cline-no">&nbsp;</span>
1006
+ <span class="cline-any cline-yes">2x</span>
1007
+ <span class="cline-any cline-yes">2x</span>
1008
+ <span class="cline-any cline-yes">2x</span>
1009
+ <span class="cline-any cline-yes">2x</span>
1010
+ <span class="cline-any cline-yes">2x</span>
1011
+ <span class="cline-any cline-yes">2x</span>
1012
+ <span class="cline-any cline-yes">2x</span>
1013
+ <span class="cline-any cline-yes">2x</span>
1014
+ <span class="cline-any cline-yes">2x</span>
1015
+ <span class="cline-any cline-yes">2x</span>
1016
+ <span class="cline-any cline-yes">7x</span>
1017
+ <span class="cline-any cline-yes">7x</span>
1018
+ <span class="cline-any cline-no">&nbsp;</span>
1019
+ <span class="cline-any cline-no">&nbsp;</span>
1020
+ <span class="cline-any cline-no">&nbsp;</span>
1021
+ <span class="cline-any cline-no">&nbsp;</span>
1022
+ <span class="cline-any cline-no">&nbsp;</span>
1023
+ <span class="cline-any cline-no">&nbsp;</span>
1024
+ <span class="cline-any cline-no">&nbsp;</span>
1025
+ <span class="cline-any cline-no">&nbsp;</span>
1026
+ <span class="cline-any cline-no">&nbsp;</span>
1027
+ <span class="cline-any cline-no">&nbsp;</span>
1028
+ <span class="cline-any cline-no">&nbsp;</span>
1029
+ <span class="cline-any cline-no">&nbsp;</span>
1030
+ <span class="cline-any cline-no">&nbsp;</span>
1031
+ <span class="cline-any cline-no">&nbsp;</span>
1032
+ <span class="cline-any cline-no">&nbsp;</span>
1033
+ <span class="cline-any cline-no">&nbsp;</span>
1034
+ <span class="cline-any cline-no">&nbsp;</span>
1035
+ <span class="cline-any cline-no">&nbsp;</span>
1036
+ <span class="cline-any cline-no">&nbsp;</span>
1037
+ <span class="cline-any cline-no">&nbsp;</span>
1038
+ <span class="cline-any cline-no">&nbsp;</span>
1039
+ <span class="cline-any cline-no">&nbsp;</span>
1040
+ <span class="cline-any cline-no">&nbsp;</span>
1041
+ <span class="cline-any cline-no">&nbsp;</span>
1042
+ <span class="cline-any cline-no">&nbsp;</span>
1043
+ <span class="cline-any cline-no">&nbsp;</span>
1044
+ <span class="cline-any cline-no">&nbsp;</span>
1045
+ <span class="cline-any cline-no">&nbsp;</span>
1046
+ <span class="cline-any cline-no">&nbsp;</span>
1047
+ <span class="cline-any cline-no">&nbsp;</span>
1048
+ <span class="cline-any cline-no">&nbsp;</span>
1049
+ <span class="cline-any cline-no">&nbsp;</span>
1050
+ <span class="cline-any cline-no">&nbsp;</span>
1051
+ <span class="cline-any cline-no">&nbsp;</span>
1052
+ <span class="cline-any cline-no">&nbsp;</span>
1053
+ <span class="cline-any cline-no">&nbsp;</span>
1054
+ <span class="cline-any cline-no">&nbsp;</span>
1055
+ <span class="cline-any cline-no">&nbsp;</span>
1056
+ <span class="cline-any cline-no">&nbsp;</span>
1057
+ <span class="cline-any cline-no">&nbsp;</span>
1058
+ <span class="cline-any cline-no">&nbsp;</span>
1059
+ <span class="cline-any cline-no">&nbsp;</span>
1060
+ <span class="cline-any cline-no">&nbsp;</span>
1061
+ <span class="cline-any cline-no">&nbsp;</span>
1062
+ <span class="cline-any cline-no">&nbsp;</span>
1063
+ <span class="cline-any cline-no">&nbsp;</span>
1064
+ <span class="cline-any cline-no">&nbsp;</span>
1065
+ <span class="cline-any cline-no">&nbsp;</span>
1066
+ <span class="cline-any cline-no">&nbsp;</span>
1067
+ <span class="cline-any cline-no">&nbsp;</span>
1068
+ <span class="cline-any cline-no">&nbsp;</span>
1069
+ <span class="cline-any cline-no">&nbsp;</span>
1070
+ <span class="cline-any cline-no">&nbsp;</span>
1071
+ <span class="cline-any cline-no">&nbsp;</span>
1072
+ <span class="cline-any cline-yes">7x</span>
1073
+ <span class="cline-any cline-yes">7x</span>
1074
+ <span class="cline-any cline-no">&nbsp;</span>
1075
+ <span class="cline-any cline-no">&nbsp;</span>
1076
+ <span class="cline-any cline-no">&nbsp;</span>
1077
+ <span class="cline-any cline-no">&nbsp;</span>
1078
+ <span class="cline-any cline-no">&nbsp;</span>
1079
+ <span class="cline-any cline-no">&nbsp;</span>
1080
+ <span class="cline-any cline-no">&nbsp;</span>
1081
+ <span class="cline-any cline-no">&nbsp;</span>
1082
+ <span class="cline-any cline-no">&nbsp;</span>
1083
+ <span class="cline-any cline-no">&nbsp;</span>
1084
+ <span class="cline-any cline-no">&nbsp;</span>
1085
+ <span class="cline-any cline-no">&nbsp;</span>
1086
+ <span class="cline-any cline-no">&nbsp;</span>
1087
+ <span class="cline-any cline-no">&nbsp;</span>
1088
+ <span class="cline-any cline-no">&nbsp;</span>
1089
+ <span class="cline-any cline-no">&nbsp;</span>
1090
+ <span class="cline-any cline-no">&nbsp;</span>
1091
+ <span class="cline-any cline-no">&nbsp;</span>
1092
+ <span class="cline-any cline-no">&nbsp;</span>
1093
+ <span class="cline-any cline-no">&nbsp;</span>
1094
+ <span class="cline-any cline-no">&nbsp;</span>
1095
+ <span class="cline-any cline-no">&nbsp;</span>
1096
+ <span class="cline-any cline-no">&nbsp;</span>
1097
+ <span class="cline-any cline-no">&nbsp;</span>
1098
+ <span class="cline-any cline-no">&nbsp;</span>
1099
+ <span class="cline-any cline-no">&nbsp;</span>
1100
+ <span class="cline-any cline-no">&nbsp;</span>
1101
+ <span class="cline-any cline-no">&nbsp;</span>
1102
+ <span class="cline-any cline-no">&nbsp;</span>
1103
+ <span class="cline-any cline-no">&nbsp;</span>
1104
+ <span class="cline-any cline-no">&nbsp;</span>
1105
+ <span class="cline-any cline-no">&nbsp;</span>
1106
+ <span class="cline-any cline-no">&nbsp;</span>
1107
+ <span class="cline-any cline-no">&nbsp;</span>
1108
+ <span class="cline-any cline-no">&nbsp;</span>
1109
+ <span class="cline-any cline-no">&nbsp;</span>
1110
+ <span class="cline-any cline-no">&nbsp;</span>
1111
+ <span class="cline-any cline-no">&nbsp;</span>
1112
+ <span class="cline-any cline-no">&nbsp;</span>
1113
+ <span class="cline-any cline-no">&nbsp;</span>
1114
+ <span class="cline-any cline-no">&nbsp;</span>
1115
+ <span class="cline-any cline-no">&nbsp;</span>
1116
+ <span class="cline-any cline-no">&nbsp;</span>
1117
+ <span class="cline-any cline-no">&nbsp;</span>
1118
+ <span class="cline-any cline-no">&nbsp;</span>
1119
+ <span class="cline-any cline-no">&nbsp;</span>
1120
+ <span class="cline-any cline-no">&nbsp;</span>
1121
+ <span class="cline-any cline-no">&nbsp;</span>
1122
+ <span class="cline-any cline-no">&nbsp;</span>
1123
+ <span class="cline-any cline-no">&nbsp;</span>
1124
+ <span class="cline-any cline-no">&nbsp;</span>
1125
+ <span class="cline-any cline-yes">7x</span>
1126
+ <span class="cline-any cline-yes">7x</span>
1127
+ <span class="cline-any cline-yes">7x</span>
1128
+ <span class="cline-any cline-no">&nbsp;</span>
1129
+ <span class="cline-any cline-no">&nbsp;</span>
1130
+ <span class="cline-any cline-no">&nbsp;</span>
1131
+ <span class="cline-any cline-no">&nbsp;</span>
1132
+ <span class="cline-any cline-no">&nbsp;</span>
1133
+ <span class="cline-any cline-no">&nbsp;</span>
1134
+ <span class="cline-any cline-no">&nbsp;</span>
1135
+ <span class="cline-any cline-no">&nbsp;</span>
1136
+ <span class="cline-any cline-no">&nbsp;</span>
1137
+ <span class="cline-any cline-no">&nbsp;</span>
1138
+ <span class="cline-any cline-no">&nbsp;</span>
1139
+ <span class="cline-any cline-yes">7x</span>
1140
+ <span class="cline-any cline-yes">7x</span>
1141
+ <span class="cline-any cline-yes">7x</span>
1142
+ <span class="cline-any cline-no">&nbsp;</span>
1143
+ <span class="cline-any cline-no">&nbsp;</span>
1144
+ <span class="cline-any cline-no">&nbsp;</span>
1145
+ <span class="cline-any cline-no">&nbsp;</span>
1146
+ <span class="cline-any cline-no">&nbsp;</span>
1147
+ <span class="cline-any cline-no">&nbsp;</span>
1148
+ <span class="cline-any cline-no">&nbsp;</span>
1149
+ <span class="cline-any cline-no">&nbsp;</span>
1150
+ <span class="cline-any cline-no">&nbsp;</span>
1151
+ <span class="cline-any cline-no">&nbsp;</span>
1152
+ <span class="cline-any cline-no">&nbsp;</span>
1153
+ <span class="cline-any cline-yes">7x</span>
1154
+ <span class="cline-any cline-yes">7x</span>
1155
+ <span class="cline-any cline-yes">7x</span>
1156
+ <span class="cline-any cline-no">&nbsp;</span>
1157
+ <span class="cline-any cline-no">&nbsp;</span>
1158
+ <span class="cline-any cline-no">&nbsp;</span>
1159
+ <span class="cline-any cline-no">&nbsp;</span>
1160
+ <span class="cline-any cline-yes">7x</span>
1161
+ <span class="cline-any cline-yes">7x</span>
1162
+ <span class="cline-any cline-yes">1x</span>
1163
+ <span class="cline-any cline-yes">1x</span>
1164
+ <span class="cline-any cline-yes">1x</span>
1165
+ <span class="cline-any cline-yes">1x</span>
1166
+ <span class="cline-any cline-yes">1x</span>
1167
+ <span class="cline-any cline-yes">1x</span>
1168
+ <span class="cline-any cline-yes">1x</span>
1169
+ <span class="cline-any cline-yes">1x</span>
1170
+ <span class="cline-any cline-yes">1x</span>
1171
+ <span class="cline-any cline-yes">1x</span>
1172
+ <span class="cline-any cline-yes">1x</span>
1173
+ <span class="cline-any cline-yes">1x</span>
1174
+ <span class="cline-any cline-yes">1x</span>
1175
+ <span class="cline-any cline-yes">1x</span>
1176
+ <span class="cline-any cline-yes">1x</span>
1177
+ <span class="cline-any cline-yes">1x</span>
1178
+ <span class="cline-any cline-yes">1x</span>
1179
+ <span class="cline-any cline-yes">1x</span>
1180
+ <span class="cline-any cline-yes">1x</span>
1181
+ <span class="cline-any cline-yes">1x</span>
1182
+ <span class="cline-any cline-yes">1x</span>
1183
+ <span class="cline-any cline-yes">1x</span>
1184
+ <span class="cline-any cline-yes">1x</span>
1185
+ <span class="cline-any cline-no">&nbsp;</span>
1186
+ <span class="cline-any cline-no">&nbsp;</span>
1187
+ <span class="cline-any cline-no">&nbsp;</span>
1188
+ <span class="cline-any cline-no">&nbsp;</span>
1189
+ <span class="cline-any cline-yes">1x</span>
1190
+ <span class="cline-any cline-yes">1x</span>
1191
+ <span class="cline-any cline-yes">1x</span>
1192
+ <span class="cline-any cline-yes">1x</span>
1193
+ <span class="cline-any cline-yes">1x</span>
1194
+ <span class="cline-any cline-yes">1x</span>
1195
+ <span class="cline-any cline-yes">1x</span>
1196
+ <span class="cline-any cline-yes">1x</span>
1197
+ <span class="cline-any cline-yes">1x</span>
1198
+ <span class="cline-any cline-yes">1x</span>
1199
+ <span class="cline-any cline-yes">1x</span>
1200
+ <span class="cline-any cline-yes">7x</span>
1201
+ <span class="cline-any cline-yes">7x</span>
1202
+ <span class="cline-any cline-no">&nbsp;</span>
1203
+ <span class="cline-any cline-no">&nbsp;</span>
1204
+ <span class="cline-any cline-no">&nbsp;</span>
1205
+ <span class="cline-any cline-no">&nbsp;</span>
1206
+ <span class="cline-any cline-no">&nbsp;</span>
1207
+ <span class="cline-any cline-no">&nbsp;</span>
1208
+ <span class="cline-any cline-no">&nbsp;</span>
1209
+ <span class="cline-any cline-no">&nbsp;</span>
1210
+ <span class="cline-any cline-no">&nbsp;</span>
1211
+ <span class="cline-any cline-no">&nbsp;</span>
1212
+ <span class="cline-any cline-no">&nbsp;</span>
1213
+ <span class="cline-any cline-no">&nbsp;</span>
1214
+ <span class="cline-any cline-no">&nbsp;</span>
1215
+ <span class="cline-any cline-no">&nbsp;</span>
1216
+ <span class="cline-any cline-no">&nbsp;</span>
1217
+ <span class="cline-any cline-no">&nbsp;</span>
1218
+ <span class="cline-any cline-no">&nbsp;</span>
1219
+ <span class="cline-any cline-no">&nbsp;</span>
1220
+ <span class="cline-any cline-no">&nbsp;</span>
1221
+ <span class="cline-any cline-no">&nbsp;</span>
1222
+ <span class="cline-any cline-no">&nbsp;</span>
1223
+ <span class="cline-any cline-no">&nbsp;</span>
1224
+ <span class="cline-any cline-no">&nbsp;</span>
1225
+ <span class="cline-any cline-no">&nbsp;</span>
1226
+ <span class="cline-any cline-no">&nbsp;</span>
1227
+ <span class="cline-any cline-no">&nbsp;</span>
1228
+ <span class="cline-any cline-no">&nbsp;</span>
1229
+ <span class="cline-any cline-no">&nbsp;</span>
1230
+ <span class="cline-any cline-no">&nbsp;</span>
1231
+ <span class="cline-any cline-no">&nbsp;</span>
1232
+ <span class="cline-any cline-no">&nbsp;</span>
1233
+ <span class="cline-any cline-no">&nbsp;</span>
1234
+ <span class="cline-any cline-no">&nbsp;</span>
1235
+ <span class="cline-any cline-no">&nbsp;</span>
1236
+ <span class="cline-any cline-no">&nbsp;</span>
1237
+ <span class="cline-any cline-no">&nbsp;</span>
1238
+ <span class="cline-any cline-no">&nbsp;</span>
1239
+ <span class="cline-any cline-no">&nbsp;</span>
1240
+ <span class="cline-any cline-no">&nbsp;</span>
1241
+ <span class="cline-any cline-no">&nbsp;</span>
1242
+ <span class="cline-any cline-no">&nbsp;</span>
1243
+ <span class="cline-any cline-no">&nbsp;</span>
1244
+ <span class="cline-any cline-no">&nbsp;</span>
1245
+ <span class="cline-any cline-no">&nbsp;</span>
1246
+ <span class="cline-any cline-no">&nbsp;</span>
1247
+ <span class="cline-any cline-no">&nbsp;</span>
1248
+ <span class="cline-any cline-no">&nbsp;</span>
1249
+ <span class="cline-any cline-no">&nbsp;</span>
1250
+ <span class="cline-any cline-no">&nbsp;</span>
1251
+ <span class="cline-any cline-no">&nbsp;</span>
1252
+ <span class="cline-any cline-no">&nbsp;</span>
1253
+ <span class="cline-any cline-no">&nbsp;</span>
1254
+ <span class="cline-any cline-no">&nbsp;</span>
1255
+ <span class="cline-any cline-no">&nbsp;</span>
1256
+ <span class="cline-any cline-no">&nbsp;</span>
1257
+ <span class="cline-any cline-no">&nbsp;</span>
1258
+ <span class="cline-any cline-no">&nbsp;</span>
1259
+ <span class="cline-any cline-no">&nbsp;</span>
1260
+ <span class="cline-any cline-no">&nbsp;</span>
1261
+ <span class="cline-any cline-no">&nbsp;</span>
1262
+ <span class="cline-any cline-no">&nbsp;</span>
1263
+ <span class="cline-any cline-no">&nbsp;</span>
1264
+ <span class="cline-any cline-no">&nbsp;</span>
1265
+ <span class="cline-any cline-no">&nbsp;</span>
1266
+ <span class="cline-any cline-yes">7x</span>
1267
+ <span class="cline-any cline-yes">7x</span>
1268
+ <span class="cline-any cline-yes">1x</span>
1269
+ <span class="cline-any cline-yes">1x</span>
1270
+ <span class="cline-any cline-no">&nbsp;</span>
1271
+ <span class="cline-any cline-no">&nbsp;</span>
1272
+ <span class="cline-any cline-no">&nbsp;</span>
1273
+ <span class="cline-any cline-no">&nbsp;</span>
1274
+ <span class="cline-any cline-no">&nbsp;</span>
1275
+ <span class="cline-any cline-no">&nbsp;</span>
1276
+ <span class="cline-any cline-yes">1x</span>
1277
+ <span class="cline-any cline-yes">1x</span>
1278
+ <span class="cline-any cline-no">&nbsp;</span>
1279
+ <span class="cline-any cline-no">&nbsp;</span>
1280
+ <span class="cline-any cline-no">&nbsp;</span>
1281
+ <span class="cline-any cline-no">&nbsp;</span>
1282
+ <span class="cline-any cline-no">&nbsp;</span>
1283
+ <span class="cline-any cline-no">&nbsp;</span>
1284
+ <span class="cline-any cline-no">&nbsp;</span>
1285
+ <span class="cline-any cline-no">&nbsp;</span>
1286
+ <span class="cline-any cline-no">&nbsp;</span>
1287
+ <span class="cline-any cline-no">&nbsp;</span>
1288
+ <span class="cline-any cline-no">&nbsp;</span>
1289
+ <span class="cline-any cline-no">&nbsp;</span>
1290
+ <span class="cline-any cline-no">&nbsp;</span>
1291
+ <span class="cline-any cline-yes">1x</span>
1292
+ <span class="cline-any cline-yes">1x</span>
1293
+ <span class="cline-any cline-no">&nbsp;</span>
1294
+ <span class="cline-any cline-no">&nbsp;</span>
1295
+ <span class="cline-any cline-no">&nbsp;</span>
1296
+ <span class="cline-any cline-no">&nbsp;</span>
1297
+ <span class="cline-any cline-no">&nbsp;</span>
1298
+ <span class="cline-any cline-no">&nbsp;</span>
1299
+ <span class="cline-any cline-no">&nbsp;</span>
1300
+ <span class="cline-any cline-no">&nbsp;</span>
1301
+ <span class="cline-any cline-no">&nbsp;</span>
1302
+ <span class="cline-any cline-no">&nbsp;</span>
1303
+ <span class="cline-any cline-no">&nbsp;</span>
1304
+ <span class="cline-any cline-no">&nbsp;</span>
1305
+ <span class="cline-any cline-no">&nbsp;</span>
1306
+ <span class="cline-any cline-no">&nbsp;</span>
1307
+ <span class="cline-any cline-no">&nbsp;</span>
1308
+ <span class="cline-any cline-no">&nbsp;</span>
1309
+ <span class="cline-any cline-no">&nbsp;</span>
1310
+ <span class="cline-any cline-no">&nbsp;</span>
1311
+ <span class="cline-any cline-no">&nbsp;</span>
1312
+ <span class="cline-any cline-no">&nbsp;</span>
1313
+ <span class="cline-any cline-no">&nbsp;</span>
1314
+ <span class="cline-any cline-no">&nbsp;</span>
1315
+ <span class="cline-any cline-no">&nbsp;</span>
1316
+ <span class="cline-any cline-no">&nbsp;</span>
1317
+ <span class="cline-any cline-no">&nbsp;</span>
1318
+ <span class="cline-any cline-no">&nbsp;</span>
1319
+ <span class="cline-any cline-no">&nbsp;</span>
1320
+ <span class="cline-any cline-no">&nbsp;</span>
1321
+ <span class="cline-any cline-no">&nbsp;</span>
1322
+ <span class="cline-any cline-yes">1x</span>
1323
+ <span class="cline-any cline-yes">1x</span>
1324
+ <span class="cline-any cline-no">&nbsp;</span>
1325
+ <span class="cline-any cline-no">&nbsp;</span>
1326
+ <span class="cline-any cline-no">&nbsp;</span>
1327
+ <span class="cline-any cline-no">&nbsp;</span>
1328
+ <span class="cline-any cline-no">&nbsp;</span>
1329
+ <span class="cline-any cline-no">&nbsp;</span>
1330
+ <span class="cline-any cline-no">&nbsp;</span>
1331
+ <span class="cline-any cline-no">&nbsp;</span>
1332
+ <span class="cline-any cline-no">&nbsp;</span>
1333
+ <span class="cline-any cline-no">&nbsp;</span>
1334
+ <span class="cline-any cline-no">&nbsp;</span>
1335
+ <span class="cline-any cline-no">&nbsp;</span>
1336
+ <span class="cline-any cline-no">&nbsp;</span>
1337
+ <span class="cline-any cline-no">&nbsp;</span>
1338
+ <span class="cline-any cline-no">&nbsp;</span>
1339
+ <span class="cline-any cline-no">&nbsp;</span>
1340
+ <span class="cline-any cline-no">&nbsp;</span>
1341
+ <span class="cline-any cline-no">&nbsp;</span>
1342
+ <span class="cline-any cline-no">&nbsp;</span>
1343
+ <span class="cline-any cline-no">&nbsp;</span>
1344
+ <span class="cline-any cline-no">&nbsp;</span>
1345
+ <span class="cline-any cline-no">&nbsp;</span>
1346
+ <span class="cline-any cline-no">&nbsp;</span>
1347
+ <span class="cline-any cline-no">&nbsp;</span>
1348
+ <span class="cline-any cline-no">&nbsp;</span>
1349
+ <span class="cline-any cline-no">&nbsp;</span>
1350
+ <span class="cline-any cline-no">&nbsp;</span>
1351
+ <span class="cline-any cline-yes">1x</span>
1352
+ <span class="cline-any cline-yes">1x</span>
1353
+ <span class="cline-any cline-yes">1x</span>
1354
+ <span class="cline-any cline-yes">1x</span>
1355
+ <span class="cline-any cline-yes">1x</span>
1356
+ <span class="cline-any cline-yes">1x</span>
1357
+ <span class="cline-any cline-yes">1x</span>
1358
+ <span class="cline-any cline-no">&nbsp;</span>
1359
+ <span class="cline-any cline-no">&nbsp;</span>
1360
+ <span class="cline-any cline-no">&nbsp;</span>
1361
+ <span class="cline-any cline-no">&nbsp;</span>
1362
+ <span class="cline-any cline-no">&nbsp;</span>
1363
+ <span class="cline-any cline-no">&nbsp;</span>
1364
+ <span class="cline-any cline-no">&nbsp;</span>
1365
+ <span class="cline-any cline-no">&nbsp;</span>
1366
+ <span class="cline-any cline-no">&nbsp;</span>
1367
+ <span class="cline-any cline-no">&nbsp;</span>
1368
+ <span class="cline-any cline-no">&nbsp;</span>
1369
+ <span class="cline-any cline-no">&nbsp;</span>
1370
+ <span class="cline-any cline-no">&nbsp;</span>
1371
+ <span class="cline-any cline-yes">1x</span>
1372
+ <span class="cline-any cline-yes">1x</span>
1373
+ <span class="cline-any cline-no">&nbsp;</span>
1374
+ <span class="cline-any cline-no">&nbsp;</span>
1375
+ <span class="cline-any cline-no">&nbsp;</span>
1376
+ <span class="cline-any cline-no">&nbsp;</span>
1377
+ <span class="cline-any cline-no">&nbsp;</span>
1378
+ <span class="cline-any cline-no">&nbsp;</span>
1379
+ <span class="cline-any cline-no">&nbsp;</span>
1380
+ <span class="cline-any cline-yes">1x</span>
1381
+ <span class="cline-any cline-yes">7x</span>
1382
+ <span class="cline-any cline-yes">7x</span>
1383
+ <span class="cline-any cline-no">&nbsp;</span>
1384
+ <span class="cline-any cline-no">&nbsp;</span>
1385
+ <span class="cline-any cline-no">&nbsp;</span>
1386
+ <span class="cline-any cline-no">&nbsp;</span>
1387
+ <span class="cline-any cline-no">&nbsp;</span>
1388
+ <span class="cline-any cline-no">&nbsp;</span>
1389
+ <span class="cline-any cline-no">&nbsp;</span>
1390
+ <span class="cline-any cline-no">&nbsp;</span>
1391
+ <span class="cline-any cline-no">&nbsp;</span>
1392
+ <span class="cline-any cline-no">&nbsp;</span>
1393
+ <span class="cline-any cline-no">&nbsp;</span>
1394
+ <span class="cline-any cline-no">&nbsp;</span>
1395
+ <span class="cline-any cline-no">&nbsp;</span>
1396
+ <span class="cline-any cline-no">&nbsp;</span>
1397
+ <span class="cline-any cline-no">&nbsp;</span>
1398
+ <span class="cline-any cline-no">&nbsp;</span>
1399
+ <span class="cline-any cline-no">&nbsp;</span>
1400
+ <span class="cline-any cline-no">&nbsp;</span>
1401
+ <span class="cline-any cline-no">&nbsp;</span>
1402
+ <span class="cline-any cline-no">&nbsp;</span>
1403
+ <span class="cline-any cline-no">&nbsp;</span>
1404
+ <span class="cline-any cline-no">&nbsp;</span>
1405
+ <span class="cline-any cline-no">&nbsp;</span>
1406
+ <span class="cline-any cline-yes">7x</span>
1407
+ <span class="cline-any cline-yes">7x</span>
1408
+ <span class="cline-any cline-yes">3x</span>
1409
+ <span class="cline-any cline-yes">3x</span>
1410
+ <span class="cline-any cline-yes">1x</span>
1411
+ <span class="cline-any cline-yes">1x</span>
1412
+ <span class="cline-any cline-yes">1x</span>
1413
+ <span class="cline-any cline-yes">1x</span>
1414
+ <span class="cline-any cline-yes">1x</span>
1415
+ <span class="cline-any cline-yes">1x</span>
1416
+ <span class="cline-any cline-yes">1x</span>
1417
+ <span class="cline-any cline-yes">1x</span>
1418
+ <span class="cline-any cline-no">&nbsp;</span>
1419
+ <span class="cline-any cline-no">&nbsp;</span>
1420
+ <span class="cline-any cline-no">&nbsp;</span>
1421
+ <span class="cline-any cline-no">&nbsp;</span>
1422
+ <span class="cline-any cline-no">&nbsp;</span>
1423
+ <span class="cline-any cline-no">&nbsp;</span>
1424
+ <span class="cline-any cline-no">&nbsp;</span>
1425
+ <span class="cline-any cline-no">&nbsp;</span>
1426
+ <span class="cline-any cline-no">&nbsp;</span>
1427
+ <span class="cline-any cline-no">&nbsp;</span>
1428
+ <span class="cline-any cline-no">&nbsp;</span>
1429
+ <span class="cline-any cline-no">&nbsp;</span>
1430
+ <span class="cline-any cline-no">&nbsp;</span>
1431
+ <span class="cline-any cline-no">&nbsp;</span>
1432
+ <span class="cline-any cline-no">&nbsp;</span>
1433
+ <span class="cline-any cline-no">&nbsp;</span>
1434
+ <span class="cline-any cline-no">&nbsp;</span>
1435
+ <span class="cline-any cline-no">&nbsp;</span>
1436
+ <span class="cline-any cline-no">&nbsp;</span>
1437
+ <span class="cline-any cline-no">&nbsp;</span>
1438
+ <span class="cline-any cline-no">&nbsp;</span>
1439
+ <span class="cline-any cline-no">&nbsp;</span>
1440
+ <span class="cline-any cline-no">&nbsp;</span>
1441
+ <span class="cline-any cline-no">&nbsp;</span>
1442
+ <span class="cline-any cline-no">&nbsp;</span>
1443
+ <span class="cline-any cline-no">&nbsp;</span>
1444
+ <span class="cline-any cline-no">&nbsp;</span>
1445
+ <span class="cline-any cline-yes">1x</span>
1446
+ <span class="cline-any cline-yes">1x</span>
1447
+ <span class="cline-any cline-yes">3x</span>
1448
+ <span class="cline-any cline-no">&nbsp;</span>
1449
+ <span class="cline-any cline-no">&nbsp;</span>
1450
+ <span class="cline-any cline-no">&nbsp;</span>
1451
+ <span class="cline-any cline-no">&nbsp;</span>
1452
+ <span class="cline-any cline-no">&nbsp;</span>
1453
+ <span class="cline-any cline-no">&nbsp;</span>
1454
+ <span class="cline-any cline-no">&nbsp;</span>
1455
+ <span class="cline-any cline-yes">3x</span>
1456
+ <span class="cline-any cline-yes">7x</span>
1457
+ <span class="cline-any cline-yes">7x</span>
1458
+ <span class="cline-any cline-yes">7x</span>
1459
+ <span class="cline-any cline-yes">7x</span>
1460
+ <span class="cline-any cline-yes">7x</span>
1461
+ <span class="cline-any cline-yes">7x</span>
1462
+ <span class="cline-any cline-yes">7x</span>
1463
+ <span class="cline-any cline-yes">1x</span>
1464
+ <span class="cline-any cline-yes">1x</span>
1465
+ <span class="cline-any cline-yes">1x</span>
1466
+ <span class="cline-any cline-yes">1x</span>
1467
+ <span class="cline-any cline-yes">1x</span>
1468
+ <span class="cline-any cline-yes">1x</span>
1469
+ <span class="cline-any cline-yes">1x</span>
1470
+ <span class="cline-any cline-no">&nbsp;</span>
1471
+ <span class="cline-any cline-no">&nbsp;</span>
1472
+ <span class="cline-any cline-no">&nbsp;</span>
1473
+ <span class="cline-any cline-no">&nbsp;</span>
1474
+ <span class="cline-any cline-no">&nbsp;</span>
1475
+ <span class="cline-any cline-no">&nbsp;</span>
1476
+ <span class="cline-any cline-no">&nbsp;</span>
1477
+ <span class="cline-any cline-no">&nbsp;</span>
1478
+ <span class="cline-any cline-no">&nbsp;</span>
1479
+ <span class="cline-any cline-no">&nbsp;</span>
1480
+ <span class="cline-any cline-no">&nbsp;</span>
1481
+ <span class="cline-any cline-no">&nbsp;</span>
1482
+ <span class="cline-any cline-no">&nbsp;</span>
1483
+ <span class="cline-any cline-yes">1x</span>
1484
+ <span class="cline-any cline-yes">1x</span>
1485
+ <span class="cline-any cline-yes">1x</span>
1486
+ <span class="cline-any cline-yes">1x</span>
1487
+ <span class="cline-any cline-yes">1x</span>
1488
+ <span class="cline-any cline-yes">1x</span>
1489
+ <span class="cline-any cline-yes">1x</span>
1490
+ <span class="cline-any cline-yes">1x</span>
1491
+ <span class="cline-any cline-yes">1x</span>
1492
+ <span class="cline-any cline-yes">1x</span>
1493
+ <span class="cline-any cline-yes">1x</span>
1494
+ <span class="cline-any cline-yes">1x</span>
1495
+ <span class="cline-any cline-yes">1x</span>
1496
+ <span class="cline-any cline-yes">1x</span>
1497
+ <span class="cline-any cline-yes">1x</span>
1498
+ <span class="cline-any cline-no">&nbsp;</span>
1499
+ <span class="cline-any cline-no">&nbsp;</span>
1500
+ <span class="cline-any cline-no">&nbsp;</span>
1501
+ <span class="cline-any cline-no">&nbsp;</span>
1502
+ <span class="cline-any cline-no">&nbsp;</span>
1503
+ <span class="cline-any cline-no">&nbsp;</span>
1504
+ <span class="cline-any cline-no">&nbsp;</span>
1505
+ <span class="cline-any cline-no">&nbsp;</span>
1506
+ <span class="cline-any cline-yes">1x</span>
1507
+ <span class="cline-any cline-yes">7x</span>
1508
+ <span class="cline-any cline-yes">7x</span>
1509
+ <span class="cline-any cline-yes">6x</span>
1510
+ <span class="cline-any cline-yes">6x</span>
1511
+ <span class="cline-any cline-yes">6x</span>
1512
+ <span class="cline-any cline-yes">6x</span>
1513
+ <span class="cline-any cline-yes">6x</span>
1514
+ <span class="cline-any cline-yes">6x</span>
1515
+ <span class="cline-any cline-yes">6x</span>
1516
+ <span class="cline-any cline-yes">6x</span>
1517
+ <span class="cline-any cline-yes">6x</span>
1518
+ <span class="cline-any cline-yes">6x</span>
1519
+ <span class="cline-any cline-yes">6x</span>
1520
+ <span class="cline-any cline-yes">6x</span>
1521
+ <span class="cline-any cline-yes">6x</span>
1522
+ <span class="cline-any cline-yes">6x</span>
1523
+ <span class="cline-any cline-yes">6x</span>
1524
+ <span class="cline-any cline-yes">6x</span>
1525
+ <span class="cline-any cline-yes">7x</span>
1526
+ <span class="cline-any cline-yes">7x</span>
1527
+ <span class="cline-any cline-no">&nbsp;</span>
1528
+ <span class="cline-any cline-no">&nbsp;</span>
1529
+ <span class="cline-any cline-no">&nbsp;</span>
1530
+ <span class="cline-any cline-no">&nbsp;</span>
1531
+ <span class="cline-any cline-no">&nbsp;</span>
1532
+ <span class="cline-any cline-no">&nbsp;</span>
1533
+ <span class="cline-any cline-no">&nbsp;</span>
1534
+ <span class="cline-any cline-no">&nbsp;</span>
1535
+ <span class="cline-any cline-no">&nbsp;</span>
1536
+ <span class="cline-any cline-no">&nbsp;</span>
1537
+ <span class="cline-any cline-no">&nbsp;</span>
1538
+ <span class="cline-any cline-no">&nbsp;</span>
1539
+ <span class="cline-any cline-no">&nbsp;</span>
1540
+ <span class="cline-any cline-no">&nbsp;</span>
1541
+ <span class="cline-any cline-no">&nbsp;</span>
1542
+ <span class="cline-any cline-no">&nbsp;</span>
1543
+ <span class="cline-any cline-yes">7x</span>
1544
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">&nbsp;
1545
+ import * as FileSystem from 'fs';
1546
+ import * as NodeMailer from 'nodemailer';
1547
+ &nbsp;
1548
+ import { Attachment, Options as MailOptions } from 'nodemailer/lib/mailer';
1549
+ &nbsp;
1550
+ import {
1551
+ DyFM_AnyError, DyFM_Array, DyFM_Error, DyFM_Error_Settings, DyFM_Log
1552
+ } from '@futdevpro/fsm-dynamo';
1553
+ import { DyNTS_global_settings } from '../../_collections/global-settings.const';
1554
+ &nbsp;
1555
+ export interface DyNTS_EmailService_Settings {
1556
+ host: string,
1557
+ port: number,
1558
+ email: string,
1559
+ pass: string,
1560
+ senderName: string,
1561
+ rootPath: string,
1562
+ templateComponents?: DyNTS_EmailTemplateComponent[],
1563
+ }
1564
+ &nbsp;
1565
+ export class DyNTS_EmailTemplateComponent {
1566
+ name: string;
1567
+ selector: string;
1568
+ &nbsp;
1569
+ templatePath?: string;
1570
+ template?: string;
1571
+ &nbsp;
1572
+ stylePath?: string;
1573
+ styles?: string;
1574
+ &nbsp;
1575
+ headerLinks?: string = '';
1576
+ &nbsp;
1577
+ properties?: string[] = [];
1578
+ subComponentSelectors?: string[] = [];
1579
+ &nbsp;
1580
+ constructor(
1581
+ set?: DyNTS_EmailTemplateComponent
1582
+ ) {
1583
+ if (set) {
1584
+ Object.assign(this, set);
1585
+ }
1586
+ }
1587
+ }
1588
+ &nbsp;
1589
+ export interface DyNTS_SendEmail_Settings&lt;T = { [propertyKey: string]: string; }&gt; {
1590
+ to: string;
1591
+ subject: string;
1592
+ /** direct email content, if provided, this will be used */
1593
+ content?: string;
1594
+ &nbsp;
1595
+ templateComponentName?: string;
1596
+ templateProperties?: T;
1597
+ &nbsp;
1598
+ attachments?: Attachment[];
1599
+ }
1600
+ &nbsp;
1601
+ /**
1602
+ *
1603
+ */
1604
+ export class DyNTS_EmailService /* extends DyNTS_SingletonService */ {
1605
+ serviceName: string;
1606
+ &nbsp;
1607
+ private readonly nmTransporter: NodeMailer.Transporter;
1608
+ private readonly senderName: string;
1609
+ private readonly senderNEmail: string;
1610
+
1611
+ private readonly components: DyNTS_EmailTemplateComponent[] = [];
1612
+ private readonly componentsBySelector: {
1613
+ [selector: string]: DyNTS_EmailTemplateComponent
1614
+ } = {};
1615
+ private readonly componentsByName: {
1616
+ [componentName: string]: DyNTS_EmailTemplateComponent
1617
+ } = {};
1618
+ &nbsp;
1619
+ private readonly styleLimitWarning: number = 16;
1620
+ &nbsp;
1621
+ readonly defaultErrorUserMsg =
1622
+ `We encountered an uncaught Email Service Error, ` +
1623
+ `\nplease contact the responsible development team.`;
1624
+
1625
+ constructor (
1626
+ set: DyNTS_EmailService_Settings
1627
+ ) {
1628
+ this.serviceName = this.constructor?.name;
1629
+ this.senderName = set.senderName;
1630
+ this.senderNEmail = `${set.senderName} &lt;${set.email}&gt;`;
1631
+ this.nmTransporter = NodeMailer.createTransport({
1632
+ host: set.host,
1633
+ port: set.port,
1634
+ auth: {
1635
+ user: set.email,
1636
+ pass: set.pass,
1637
+ },
1638
+ });
1639
+ &nbsp;
1640
+ this.components = set.templateComponents ?? [];
1641
+ }
1642
+ &nbsp;
1643
+ async asyncPostConstruct(): Promise&lt;void&gt; {
1644
+ try {
1645
+ if (this.components) {
1646
+ await DyFM_Array.asyncForEach(
1647
+ this.components,
1648
+ async (component: DyNTS_EmailTemplateComponent): Promise&lt;void&gt; =&gt; {
1649
+ await this.loadEmailTemplateComponent(component);
1650
+ }
1651
+ );
1652
+ &nbsp;
1653
+ this.connectComponents();
1654
+ }
1655
+ &nbsp;
1656
+ DyFM_Log.success(`\nEmailService construction (${this.senderName}) Finished!`);
1657
+ } <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
1658
+ <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
1659
+ <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('asyncPostConstruct', error, 'SYSTEM'),</span>
1660
+ <span class="cstat-no" title="statement not covered" ></span>
1661
+ <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-ES0-APC0`,</span>
1662
+ <span class="cstat-no" title="statement not covered" > });</span>
1663
+ <span class="cstat-no" title="statement not covered" > }</span>
1664
+ }
1665
+ &nbsp;
1666
+ /**
1667
+ *
1668
+ * @param set
1669
+ */
1670
+ public async sendEmail&lt;T&gt;(
1671
+ set: DyNTS_SendEmail_Settings&lt;T&gt;,
1672
+ issuer: string
1673
+ ): Promise&lt;void&gt; {
1674
+ try {
1675
+ let content: string;
1676
+ &nbsp;
1677
+ if (set.content) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
1678
+ <span class="cstat-no" title="statement not covered" > content = set.content; </span>
1679
+ <span class="cstat-no" title="statement not covered" ></span>
1680
+ } else {
1681
+ if (!set.templateComponentName) {
1682
+ throw new DyFM_Error({
1683
+ ...this._getDefaultErrorSettings(
1684
+ 'sendEmail',
1685
+ new Error(`No email template component is given!`),
1686
+ issuer
1687
+ ),
1688
+ &nbsp;
1689
+ errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-ES0-SE1`,
1690
+ });
1691
+ }
1692
+ &nbsp;
1693
+ if (!this.componentsByName[set.templateComponentName]) {
1694
+ throw new DyFM_Error({
1695
+ ...this._getDefaultErrorSettings(
1696
+ 'sendEmail',
1697
+ new Error(
1698
+ `No email template component found with this name! (${set.templateComponentName})`
1699
+ ),
1700
+ issuer
1701
+ ),
1702
+ &nbsp;
1703
+ errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-ES0-SE2`,
1704
+ additionalContent: {
1705
+ availableComponenets: Object.keys(this.componentsByName),
1706
+ },
1707
+ });
1708
+ }
1709
+ <span class="cstat-no" title="statement not covered" ><span class="branch-0 cbranch-no" title="branch not covered" ></span></span>
1710
+ <span class="cstat-no" title="statement not covered" > content = await this.compileTemplateComponent(</span>
1711
+ <span class="cstat-no" title="statement not covered" > set.templateComponentName, </span>
1712
+ <span class="cstat-no" title="statement not covered" > set.templateProperties, </span>
1713
+ <span class="cstat-no" title="statement not covered" > issuer</span>
1714
+ <span class="cstat-no" title="statement not covered" > );</span>
1715
+ <span class="cstat-no" title="statement not covered" > }</span>
1716
+ <span class="cstat-no" title="statement not covered" ></span>
1717
+ <span class="cstat-no" title="statement not covered" > const mailOptions: MailOptions = {</span>
1718
+ <span class="cstat-no" title="statement not covered" > from: this.senderNEmail,</span>
1719
+ <span class="cstat-no" title="statement not covered" > to: set.to,</span>
1720
+ <span class="cstat-no" title="statement not covered" > subject: set.subject,</span>
1721
+ <span class="cstat-no" title="statement not covered" > html: content,</span>
1722
+ <span class="cstat-no" title="statement not covered" > attachments: set.attachments,</span>
1723
+ <span class="cstat-no" title="statement not covered" > };</span>
1724
+ <span class="cstat-no" title="statement not covered" ></span>
1725
+ <span class="cstat-no" title="statement not covered" > await new Promise&lt;void&gt;((resolve, reject): void =&gt; { </span>
1726
+ <span class="cstat-no" title="statement not covered" > this.nmTransporter.sendMail(mailOptions, (error): void =&gt; { </span>
1727
+ <span class="cstat-no" title="statement not covered" > if (error) {</span>
1728
+ <span class="cstat-no" title="statement not covered" > reject(error);</span>
1729
+ <span class="cstat-no" title="statement not covered" > } else {</span>
1730
+ <span class="cstat-no" title="statement not covered" > resolve();</span>
1731
+ <span class="cstat-no" title="statement not covered" > }</span>
1732
+ <span class="cstat-no" title="statement not covered" > });</span>
1733
+ <span class="cstat-no" title="statement not covered" > });</span>
1734
+ } catch (error) {
1735
+ if ((error as Error).message<span class="branch-0 cbranch-no" title="branch not covered" >?.includes?.('all recipients were rejected'))</span> <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
1736
+ <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
1737
+ <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('sendEmail', error, issuer),</span>
1738
+ <span class="cstat-no" title="statement not covered" ></span>
1739
+ <span class="cstat-no" title="statement not covered" > addECToUserMsg: false,</span>
1740
+ <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-ES0-SE4`,</span>
1741
+ <span class="cstat-no" title="statement not covered" > userMessage: `Can't send mail to ${set.to}!`,</span>
1742
+ <span class="cstat-no" title="statement not covered" > message: `sendEmail failed to ${set.to}`,</span>
1743
+ <span class="cstat-no" title="statement not covered" > });</span>
1744
+ <span class="cstat-no" title="statement not covered" ></span>
1745
+ } else {
1746
+ throw new DyFM_Error({
1747
+ ...this._getDefaultErrorSettings('sendEmail', error, issuer),
1748
+ &nbsp;
1749
+ errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-ES0-SE0`,
1750
+ message: `sendEmail failed to ${set.to}`,
1751
+ });
1752
+ }
1753
+ }
1754
+ }
1755
+ &nbsp;
1756
+ private <span class="fstat-no" title="function not covered" >async compileTemplateComponent&lt;T&gt;(</span>
1757
+ <span class="cstat-no" title="statement not covered" > componentName: string, </span>
1758
+ <span class="cstat-no" title="statement not covered" > componentProperties:T, </span>
1759
+ <span class="cstat-no" title="statement not covered" > issuer: string</span>
1760
+ <span class="cstat-no" title="statement not covered" > ): Promise&lt;string&gt; {</span>
1761
+ <span class="cstat-no" title="statement not covered" > try {</span>
1762
+ <span class="cstat-no" title="statement not covered" > if (!this.componentsByName[componentName]) {</span>
1763
+ <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
1764
+ <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings(</span>
1765
+ <span class="cstat-no" title="statement not covered" > 'setupComponent',</span>
1766
+ <span class="cstat-no" title="statement not covered" > new Error(`No email component found with this name! (${componentName})`),</span>
1767
+ <span class="cstat-no" title="statement not covered" > issuer</span>
1768
+ <span class="cstat-no" title="statement not covered" > ),</span>
1769
+ <span class="cstat-no" title="statement not covered" ></span>
1770
+ <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-ES0-SC1`,</span>
1771
+ <span class="cstat-no" title="statement not covered" > additionalContent: {</span>
1772
+ <span class="cstat-no" title="statement not covered" > availableComponents: Object.keys(this.componentsByName),</span>
1773
+ <span class="cstat-no" title="statement not covered" > },</span>
1774
+ <span class="cstat-no" title="statement not covered" > });</span>
1775
+ <span class="cstat-no" title="statement not covered" > }</span>
1776
+ <span class="cstat-no" title="statement not covered" ></span>
1777
+ <span class="cstat-no" title="statement not covered" > const component: DyNTS_EmailTemplateComponent = this.componentsByName[componentName];</span>
1778
+ <span class="cstat-no" title="statement not covered" > let template: string = this.compileHTMLMainFrame(component);</span>
1779
+ <span class="cstat-no" title="statement not covered" ></span>
1780
+ <span class="cstat-no" title="statement not covered" > template = template.replace('&lt;nts-content&gt;', '');</span>
1781
+ <span class="cstat-no" title="statement not covered" > template = await this.compileComponentProperties&lt;T&gt;(</span>
1782
+ <span class="cstat-no" title="statement not covered" > component, </span>
1783
+ <span class="cstat-no" title="statement not covered" > componentProperties, </span>
1784
+ <span class="cstat-no" title="statement not covered" > template, </span>
1785
+ <span class="cstat-no" title="statement not covered" > issuer</span>
1786
+ <span class="cstat-no" title="statement not covered" > );</span>
1787
+ <span class="cstat-no" title="statement not covered" ></span>
1788
+ <span class="cstat-no" title="statement not covered" > await DyFM_Array.asyncForEach(</span>
1789
+ <span class="cstat-no" title="statement not covered" > component.subComponentSelectors,</span>
1790
+ <span class="cstat-no" title="statement not covered" > async (subComponentSelector: string): Promise&lt;void&gt; =&gt; {</span>
1791
+ <span class="cstat-no" title="statement not covered" > while (template.includes(`&lt;nts-${subComponentSelector}`)) {</span>
1792
+ <span class="cstat-no" title="statement not covered" > template = await this.compileSubComponent&lt;T&gt;(</span>
1793
+ <span class="cstat-no" title="statement not covered" > subComponentSelector, componentProperties, template, issuer</span>
1794
+ <span class="cstat-no" title="statement not covered" > );</span>
1795
+ <span class="cstat-no" title="statement not covered" > }</span>
1796
+ <span class="cstat-no" title="statement not covered" > }</span>
1797
+ <span class="cstat-no" title="statement not covered" > );</span>
1798
+ <span class="cstat-no" title="statement not covered" ></span>
1799
+ <span class="cstat-no" title="statement not covered" > template = this.templateTrim(template);</span>
1800
+ <span class="cstat-no" title="statement not covered" > </span>
1801
+ <span class="cstat-no" title="statement not covered" > return template;</span>
1802
+ <span class="cstat-no" title="statement not covered" > } catch (error) {</span>
1803
+ <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
1804
+ <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('setupComponent', error, issuer),</span>
1805
+ <span class="cstat-no" title="statement not covered" ></span>
1806
+ <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-ES0-SC0`,</span>
1807
+ <span class="cstat-no" title="statement not covered" > message: `setupComponent failed! (${componentName})`,</span>
1808
+ <span class="cstat-no" title="statement not covered" > });</span>
1809
+ <span class="cstat-no" title="statement not covered" > }</span>
1810
+ <span class="cstat-no" title="statement not covered" > }</span>
1811
+ &nbsp;
1812
+ private <span class="fstat-no" title="function not covered" >compileHTMLMainFrame(component: DyNTS_EmailTemplateComponent): string {</span>
1813
+ <span class="cstat-no" title="statement not covered" > const allLinks: string[] = [];</span>
1814
+ <span class="cstat-no" title="statement not covered" > const allStyles: string[] = [];</span>
1815
+ <span class="cstat-no" title="statement not covered" ></span>
1816
+ <span class="cstat-no" title="statement not covered" > if (component.headerLinks) {</span>
1817
+ <span class="cstat-no" title="statement not covered" > allLinks.push(component.headerLinks);</span>
1818
+ <span class="cstat-no" title="statement not covered" > }</span>
1819
+ <span class="cstat-no" title="statement not covered" ></span>
1820
+ <span class="cstat-no" title="statement not covered" > if (component.styles) {</span>
1821
+ <span class="cstat-no" title="statement not covered" > allStyles.push(component.styles);</span>
1822
+ <span class="cstat-no" title="statement not covered" > }</span>
1823
+ <span class="cstat-no" title="statement not covered" ></span>
1824
+ <span class="cstat-no" title="statement not covered" > component.subComponentSelectors.forEach((subComponentSelector: string): void =&gt; {</span>
1825
+ <span class="cstat-no" title="statement not covered" > const subComponent: DyNTS_EmailTemplateComponent = </span>
1826
+ <span class="cstat-no" title="statement not covered" > this.componentsBySelector[subComponentSelector];</span>
1827
+ <span class="cstat-no" title="statement not covered" ></span>
1828
+ <span class="cstat-no" title="statement not covered" > if (subComponent.headerLinks) {</span>
1829
+ <span class="cstat-no" title="statement not covered" > allLinks.push(subComponent.headerLinks.trim());</span>
1830
+ <span class="cstat-no" title="statement not covered" > }</span>
1831
+ <span class="cstat-no" title="statement not covered" ></span>
1832
+ <span class="cstat-no" title="statement not covered" > if (subComponent.styles) {</span>
1833
+ <span class="cstat-no" title="statement not covered" > allStyles.push(subComponent.styles.trim());</span>
1834
+ <span class="cstat-no" title="statement not covered" > }</span>
1835
+ <span class="cstat-no" title="statement not covered" > });</span>
1836
+ <span class="cstat-no" title="statement not covered" ></span>
1837
+ <span class="cstat-no" title="statement not covered" > const styles = this.styleTrim(allStyles.join(''));</span>
1838
+ <span class="cstat-no" title="statement not covered" > const styleSize = this.getStringKBSize(styles);</span>
1839
+ <span class="cstat-no" title="statement not covered" ></span>
1840
+ <span class="cstat-no" title="statement not covered" > if (this.styleLimitWarning &lt; styleSize) {</span>
1841
+ <span class="cstat-no" title="statement not covered" > DyFM_Log.warn(</span>
1842
+ <span class="cstat-no" title="statement not covered" > `\nDynamoNTS EmailService WARNING (${this.serviceName}), ` +</span>
1843
+ <span class="cstat-no" title="statement not covered" > `\nEmail template styles are too big! (${styleSize}KB)` + </span>
1844
+ <span class="cstat-no" title="statement not covered" > `\ncomponent: ${component.name} (${component.selector})` +</span>
1845
+ <span class="cstat-no" title="statement not covered" > `\nSome email clients may not support this!` +</span>
1846
+ <span class="cstat-no" title="statement not covered" > `\nThe limit is ${this.styleLimitWarning}KB!`</span>
1847
+ <span class="cstat-no" title="statement not covered" > );</span>
1848
+ <span class="cstat-no" title="statement not covered" > }</span>
1849
+ <span class="cstat-no" title="statement not covered" ></span>
1850
+ <span class="cstat-no" title="statement not covered" > return `\n&lt;!DOCTYPE html&gt;` +</span>
1851
+ <span class="cstat-no" title="statement not covered" > `\n&lt;html&gt;` +</span>
1852
+ <span class="cstat-no" title="statement not covered" > `\n &lt;head&gt;` +</span>
1853
+ <span class="cstat-no" title="statement not covered" > `\n ${allLinks.join('')}` +</span>
1854
+ <span class="cstat-no" title="statement not covered" > `\n` +</span>
1855
+ <span class="cstat-no" title="statement not covered" > `\n &lt;style&gt;` +</span>
1856
+ <span class="cstat-no" title="statement not covered" > `\n ${styles}` +</span>
1857
+ <span class="cstat-no" title="statement not covered" > `\n &lt;/style&gt;` +</span>
1858
+ <span class="cstat-no" title="statement not covered" > `\n &lt;/head&gt;` +</span>
1859
+ <span class="cstat-no" title="statement not covered" > `\n &lt;body&gt;` +</span>
1860
+ <span class="cstat-no" title="statement not covered" > `\n ${component.template}` +</span>
1861
+ <span class="cstat-no" title="statement not covered" > `\n &lt;/body&gt;` +</span>
1862
+ <span class="cstat-no" title="statement not covered" > `\n&lt;/html&gt; `;</span>
1863
+ <span class="cstat-no" title="statement not covered" > }</span>
1864
+ &nbsp;
1865
+ /** trims all rows and remove everything between /*...*\/ */
1866
+ private <span class="fstat-no" title="function not covered" >styleTrim(style: string): string {</span>
1867
+ <span class="cstat-no" title="statement not covered" > let result: string = style?.split('\n').map((row: string): string =&gt; row.trim()).join('');</span>
1868
+ <span class="cstat-no" title="statement not covered" ></span>
1869
+ <span class="cstat-no" title="statement not covered" > while (result?.includes('/*')) {</span>
1870
+ <span class="cstat-no" title="statement not covered" > const start = result.indexOf('/*');</span>
1871
+ <span class="cstat-no" title="statement not covered" > const end = result.indexOf('*/', start) + 2;</span>
1872
+ <span class="cstat-no" title="statement not covered" ></span>
1873
+ <span class="cstat-no" title="statement not covered" > result = result.substring(0, start) + result.substring(end);</span>
1874
+ <span class="cstat-no" title="statement not covered" > }</span>
1875
+ <span class="cstat-no" title="statement not covered" ></span>
1876
+ <span class="cstat-no" title="statement not covered" > return result;</span>
1877
+ <span class="cstat-no" title="statement not covered" > }</span>
1878
+ &nbsp;
1879
+ /** removes HTML comments */
1880
+ private <span class="fstat-no" title="function not covered" >templateTrim(template: string): string {</span>
1881
+ <span class="cstat-no" title="statement not covered" > let result: string = template;</span>
1882
+ <span class="cstat-no" title="statement not covered" ></span>
1883
+ <span class="cstat-no" title="statement not covered" > while (result.includes('&lt;!--')) {</span>
1884
+ <span class="cstat-no" title="statement not covered" > const start = result.indexOf('&lt;!--');</span>
1885
+ <span class="cstat-no" title="statement not covered" > const end = result.indexOf('--&gt;', start) + 3;</span>
1886
+ <span class="cstat-no" title="statement not covered" ></span>
1887
+ <span class="cstat-no" title="statement not covered" > result = result.substring(0, start) + result.substring(end);</span>
1888
+ <span class="cstat-no" title="statement not covered" > }</span>
1889
+ <span class="cstat-no" title="statement not covered" ></span>
1890
+ <span class="cstat-no" title="statement not covered" > return result;</span>
1891
+ <span class="cstat-no" title="statement not covered" > }</span>
1892
+ &nbsp;
1893
+ &nbsp;
1894
+ private <span class="fstat-no" title="function not covered" >getStringKBSize(str: string): number {</span>
1895
+ <span class="cstat-no" title="statement not covered" > const b: number = str.length * 2;</span>
1896
+ <span class="cstat-no" title="statement not covered" ></span>
1897
+ <span class="cstat-no" title="statement not covered" > return b / 1024;</span>
1898
+ <span class="cstat-no" title="statement not covered" > }</span>
1899
+ &nbsp;
1900
+ private async compileComponentProperties&lt;T&gt;(
1901
+ component: DyNTS_EmailTemplateComponent,
1902
+ componentProperties: T,
1903
+ template: string,
1904
+ issuer: string
1905
+ ): Promise&lt;string&gt; {
1906
+ try {
1907
+ component.properties.forEach((propertyKey: string): void =&gt; {
1908
+ if (!componentProperties[propertyKey]) {
1909
+ throw new DyFM_Error({
1910
+ ...this._getDefaultErrorSettings(
1911
+ 'setupComponent',
1912
+ new Error(
1913
+ `ComponentProperty missing from input! "${propertyKey}" for "${component.name}"`
1914
+ ),
1915
+ issuer
1916
+ ),
1917
+ &nbsp;
1918
+ errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-ES0-SC4`,
1919
+ additionalContent: {
1920
+ componentProperties: Object.keys(componentProperties),
1921
+ },
1922
+ });
1923
+ }
1924
+ <span class="cstat-no" title="statement not covered" ><span class="branch-0 cbranch-no" title="branch not covered" ></span></span>
1925
+ <span class="cstat-no" title="statement not covered" > const propReg = new RegExp(`{{${propertyKey}}}`, 'g');</span>
1926
+ <span class="cstat-no" title="statement not covered" ></span>
1927
+ <span class="cstat-no" title="statement not covered" > template = template.replace(propReg, componentProperties[propertyKey]);</span>
1928
+ });
1929
+ &nbsp;
1930
+ return template;
1931
+ } catch (error) {
1932
+ throw new DyFM_Error({
1933
+ ...this._getDefaultErrorSettings('setupComponent', error, issuer),
1934
+ &nbsp;
1935
+ errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-ES0-SC3`,
1936
+ });
1937
+ }
1938
+ }
1939
+ &nbsp;
1940
+ private <span class="fstat-no" title="function not covered" >async compileSubComponent&lt;T&gt;(</span>
1941
+ <span class="cstat-no" title="statement not covered" > subComponentSelector: string, </span>
1942
+ <span class="cstat-no" title="statement not covered" > componentProperties: T,</span>
1943
+ <span class="cstat-no" title="statement not covered" > template: string,</span>
1944
+ <span class="cstat-no" title="statement not covered" > issuer: string</span>
1945
+ <span class="cstat-no" title="statement not covered" > ): Promise&lt;string&gt; {</span>
1946
+ <span class="cstat-no" title="statement not covered" ></span>
1947
+ <span class="cstat-no" title="statement not covered" > const subComponent: DyNTS_EmailTemplateComponent = </span>
1948
+ <span class="cstat-no" title="statement not covered" > this.componentsBySelector[subComponentSelector];</span>
1949
+ <span class="cstat-no" title="statement not covered" ></span>
1950
+ <span class="cstat-no" title="statement not covered" > if (!subComponent) {</span>
1951
+ <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
1952
+ <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings(</span>
1953
+ <span class="cstat-no" title="statement not covered" > 'setupComponent',</span>
1954
+ <span class="cstat-no" title="statement not covered" > new Error(`SubComponent missing from components! "${subComponentSelector}"`),</span>
1955
+ <span class="cstat-no" title="statement not covered" > issuer</span>
1956
+ <span class="cstat-no" title="statement not covered" > ),</span>
1957
+ <span class="cstat-no" title="statement not covered" ></span>
1958
+ <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-ES0-SC2`,</span>
1959
+ <span class="cstat-no" title="statement not covered" > additionalContent: this.componentsBySelector,</span>
1960
+ <span class="cstat-no" title="statement not covered" > });</span>
1961
+ <span class="cstat-no" title="statement not covered" > }</span>
1962
+ <span class="cstat-no" title="statement not covered" ></span>
1963
+ <span class="cstat-no" title="statement not covered" > let subComponentTemplate: string = subComponent.template;</span>
1964
+ <span class="cstat-no" title="statement not covered" > const startTag = `&lt;nts-${subComponent.selector}`;</span>
1965
+ <span class="cstat-no" title="statement not covered" > const endTag = `&lt;/nts-${subComponent.selector}&gt;`;</span>
1966
+ <span class="cstat-no" title="statement not covered" > const tagHTMLProperties: string = </span>
1967
+ <span class="cstat-no" title="statement not covered" > template.split(startTag)[1].split('&gt;')[0];</span>
1968
+ <span class="cstat-no" title="statement not covered" > let componentContent: string;</span>
1969
+ <span class="cstat-no" title="statement not covered" ></span>
1970
+ <span class="cstat-no" title="statement not covered" > if (!tagHTMLProperties) {</span>
1971
+ <span class="cstat-no" title="statement not covered" > componentContent = template.split(`${startTag}&gt;`)[1].split(endTag)[0];</span>
1972
+ <span class="cstat-no" title="statement not covered" > } else {</span>
1973
+ <span class="cstat-no" title="statement not covered" > componentContent = template.split(startTag)[1].split('&gt;')[1].split(endTag)[0];</span>
1974
+ <span class="cstat-no" title="statement not covered" > }</span>
1975
+ <span class="cstat-no" title="statement not covered" ></span>
1976
+ <span class="cstat-no" title="statement not covered" > const contentReg = new RegExp(`&lt;nts-content&gt;`, 'g');</span>
1977
+ <span class="cstat-no" title="statement not covered" ></span>
1978
+ <span class="cstat-no" title="statement not covered" > subComponentTemplate = subComponentTemplate.replace(contentReg, componentContent);</span>
1979
+ <span class="cstat-no" title="statement not covered" > subComponentTemplate = await this.compileComponentProperties&lt;T&gt;(</span>
1980
+ <span class="cstat-no" title="statement not covered" > subComponent, </span>
1981
+ <span class="cstat-no" title="statement not covered" > componentProperties, </span>
1982
+ <span class="cstat-no" title="statement not covered" > subComponentTemplate, </span>
1983
+ <span class="cstat-no" title="statement not covered" > issuer</span>
1984
+ <span class="cstat-no" title="statement not covered" > );</span>
1985
+ <span class="cstat-no" title="statement not covered" ></span>
1986
+ <span class="cstat-no" title="statement not covered" > const startTagReg = new RegExp(startTag, 'g');</span>
1987
+ <span class="cstat-no" title="statement not covered" > const endTagReg = new RegExp(endTag, 'g');</span>
1988
+ <span class="cstat-no" title="statement not covered" ></span>
1989
+ <span class="cstat-no" title="statement not covered" > template = template.replace(startTagReg, '&lt;div');</span>
1990
+ <span class="cstat-no" title="statement not covered" > template = template.replace(componentContent, subComponentTemplate);</span>
1991
+ <span class="cstat-no" title="statement not covered" > template = template.replace(endTagReg, '&lt;/div&gt;');</span>
1992
+ <span class="cstat-no" title="statement not covered" ></span>
1993
+ <span class="cstat-no" title="statement not covered" > /* while (template.includes(`&lt;nts-${subComponent.selector}`)) {</span>
1994
+ <span class="cstat-no" title="statement not covered" > const replaceStartIndex = template.indexOf(`&lt;nts-${subComponent.selector}`);</span>
1995
+ <span class="cstat-no" title="statement not covered" > const replaceEndIndex = template.indexOf(endTag, replaceStartIndex) + endTag.length;</span>
1996
+ <span class="cstat-no" title="statement not covered" ></span>
1997
+ <span class="cstat-no" title="statement not covered" > template =</span>
1998
+ <span class="cstat-no" title="statement not covered" > template.substring(0, replaceStartIndex) +</span>
1999
+ <span class="cstat-no" title="statement not covered" > subComponentCompiled +</span>
2000
+ <span class="cstat-no" title="statement not covered" > template.substring(replaceEndIndex);</span>
2001
+ <span class="cstat-no" title="statement not covered" > } */</span>
2002
+ <span class="cstat-no" title="statement not covered" ></span>
2003
+ <span class="cstat-no" title="statement not covered" > return template;</span>
2004
+ <span class="cstat-no" title="statement not covered" > }</span>
2005
+ &nbsp;
2006
+ private async loadEmailTemplateComponent(component: DyNTS_EmailTemplateComponent): Promise&lt;void&gt; {
2007
+ try {
2008
+ if (this.componentsBySelector[component.selector]) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2009
+ <span class="cstat-no" title="statement not covered" > DyFM_Log.warn(</span>
2010
+ <span class="cstat-no" title="statement not covered" > `Email component already loaded! (it will be skipped) "${component.selector}"`</span>
2011
+ <span class="cstat-no" title="statement not covered" > );</span>
2012
+ <span class="cstat-no" title="statement not covered" > </span>
2013
+ <span class="cstat-no" title="statement not covered" > return;</span>
2014
+ <span class="cstat-no" title="statement not covered" > }</span>
2015
+ &nbsp;
2016
+ if (!component.templatePath &amp;&amp; !component.template) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2017
+ <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
2018
+ <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings(</span>
2019
+ <span class="cstat-no" title="statement not covered" > 'loadComponent', </span>
2020
+ <span class="cstat-no" title="statement not covered" > new Error(`Component missing template and templatePath! "${component.name}"`), </span>
2021
+ <span class="cstat-no" title="statement not covered" > 'SYSTEM'</span>
2022
+ <span class="cstat-no" title="statement not covered" > ),</span>
2023
+ <span class="cstat-no" title="statement not covered" ></span>
2024
+ <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-ES0-LC2`,</span>
2025
+ <span class="cstat-no" title="statement not covered" > additionalContent: {</span>
2026
+ <span class="cstat-no" title="statement not covered" > component: component,</span>
2027
+ <span class="cstat-no" title="statement not covered" > },</span>
2028
+ <span class="cstat-no" title="statement not covered" > });</span>
2029
+ <span class="cstat-no" title="statement not covered" > }</span>
2030
+ &nbsp;
2031
+ if (!component.template) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2032
+ <span class="cstat-no" title="statement not covered" > component.template = await this.readFile(component.templatePath, component.name).catch(</span>
2033
+ <span class="cstat-no" title="statement not covered" > async (error: DyFM_Error): Promise&lt;string&gt; =&gt; {</span>
2034
+ <span class="cstat-no" title="statement not covered" ></span>
2035
+ <span class="cstat-no" title="statement not covered" > if (DyNTS_global_settings.autoResearchIssues) {</span>
2036
+ <span class="cstat-no" title="statement not covered" > // read folder contents, read parent folder contents</span>
2037
+ <span class="cstat-no" title="statement not covered" > const folderContents = FileSystem.readdirSync(</span>
2038
+ <span class="cstat-no" title="statement not covered" > component.templatePath.split('/').slice(0, -1).join('/')</span>
2039
+ <span class="cstat-no" title="statement not covered" > );</span>
2040
+ <span class="cstat-no" title="statement not covered" > const parentFolderContents = FileSystem.readdirSync(</span>
2041
+ <span class="cstat-no" title="statement not covered" > component.templatePath.split('/').slice(0, -2).join('/')</span>
2042
+ <span class="cstat-no" title="statement not covered" > );</span>
2043
+ <span class="cstat-no" title="statement not covered" ></span>
2044
+ <span class="cstat-no" title="statement not covered" > DyFM_Log.testWarn(</span>
2045
+ <span class="cstat-no" title="statement not covered" > `DynamoNTS EmailService WARNING, couldn't load email component's template; ` +</span>
2046
+ <span class="cstat-no" title="statement not covered" > `\n(${component.name} from ${component.templatePath})` +</span>
2047
+ <span class="cstat-no" title="statement not covered" > `\n folder contents: \n ${folderContents.join(', \n ')}` +</span>
2048
+ <span class="cstat-no" title="statement not covered" > `\n parent folder contents: \n ${parentFolderContents.join(', \n ')}`</span>
2049
+ <span class="cstat-no" title="statement not covered" > );</span>
2050
+ <span class="cstat-no" title="statement not covered" > } else {</span>
2051
+ <span class="cstat-no" title="statement not covered" > DyFM_Log.error(</span>
2052
+ <span class="cstat-no" title="statement not covered" > `\nDynamoNTS EmailService ERROR, couldn't load email component's template; ` +</span>
2053
+ <span class="cstat-no" title="statement not covered" > `\n(${component.name} from ${component.templatePath})`</span>
2054
+ <span class="cstat-no" title="statement not covered" > );</span>
2055
+ <span class="cstat-no" title="statement not covered" > }</span>
2056
+ <span class="cstat-no" title="statement not covered" ></span>
2057
+ <span class="cstat-no" title="statement not covered" > throw error;</span>
2058
+ <span class="cstat-no" title="statement not covered" > }</span>
2059
+ <span class="cstat-no" title="statement not covered" > );</span>
2060
+ <span class="cstat-no" title="statement not covered" > }</span>
2061
+ &nbsp;
2062
+ if (component.stylePath) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2063
+ <span class="cstat-no" title="statement not covered" > await new Promise&lt;void&gt;((resolve, reject): void =&gt; {</span>
2064
+ <span class="cstat-no" title="statement not covered" > FileSystem.readFile(component.stylePath, 'utf8' , (err, styles): void =&gt; {</span>
2065
+ <span class="cstat-no" title="statement not covered" > if (err || !styles) {</span>
2066
+ <span class="cstat-no" title="statement not covered" > if (!err) {</span>
2067
+ <span class="cstat-no" title="statement not covered" > err = new Error(</span>
2068
+ <span class="cstat-no" title="statement not covered" > `Couldn't load email component's styles; ${component.name} ` + </span>
2069
+ <span class="cstat-no" title="statement not covered" > `from ${component.stylePath}`</span>
2070
+ <span class="cstat-no" title="statement not covered" > );</span>
2071
+ <span class="cstat-no" title="statement not covered" > }</span>
2072
+ <span class="cstat-no" title="statement not covered" ></span>
2073
+ <span class="cstat-no" title="statement not covered" > reject(</span>
2074
+ <span class="cstat-no" title="statement not covered" > new DyFM_Error({</span>
2075
+ <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('loadTemplate', err, 'SYSTEM'),</span>
2076
+ <span class="cstat-no" title="statement not covered" ></span>
2077
+ <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-ES0-LC4`,</span>
2078
+ <span class="cstat-no" title="statement not covered" > })</span>
2079
+ <span class="cstat-no" title="statement not covered" > );</span>
2080
+ <span class="cstat-no" title="statement not covered" ></span>
2081
+ <span class="cstat-no" title="statement not covered" > return;</span>
2082
+ <span class="cstat-no" title="statement not covered" > }</span>
2083
+ <span class="cstat-no" title="statement not covered" ></span>
2084
+ <span class="cstat-no" title="statement not covered" > component.styles = styles;</span>
2085
+ <span class="cstat-no" title="statement not covered" > </span>
2086
+ <span class="cstat-no" title="statement not covered" > resolve();</span>
2087
+ <span class="cstat-no" title="statement not covered" > });</span>
2088
+ <span class="cstat-no" title="statement not covered" > });</span>
2089
+ <span class="cstat-no" title="statement not covered" > }</span>
2090
+ &nbsp;
2091
+ component.properties = this.getTemplatePropertyKeys(component.template);
2092
+ this.componentsBySelector[component.selector] = component;
2093
+ this.componentsByName[component.name] = component;
2094
+ &nbsp;
2095
+ component.properties.forEach((propertyKey: string): void =&gt; {
2096
+ if (!component.template.includes(`{{${propertyKey}}}`)) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2097
+ <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
2098
+ <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings(</span>
2099
+ <span class="cstat-no" title="statement not covered" > 'loadComponent',</span>
2100
+ <span class="cstat-no" title="statement not covered" > new Error(</span>
2101
+ <span class="cstat-no" title="statement not covered" > `TemplateProperty missing from template! (${propertyKey} for ${component.name})`</span>
2102
+ <span class="cstat-no" title="statement not covered" > ),</span>
2103
+ <span class="cstat-no" title="statement not covered" > 'SYSTEM'</span>
2104
+ <span class="cstat-no" title="statement not covered" > ),</span>
2105
+ <span class="cstat-no" title="statement not covered" > </span>
2106
+ <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-ES0-LC5`,</span>
2107
+ <span class="cstat-no" title="statement not covered" > additionalContent: component.template,</span>
2108
+ <span class="cstat-no" title="statement not covered" > });</span>
2109
+ <span class="cstat-no" title="statement not covered" > }</span>
2110
+ });
2111
+ } <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
2112
+ <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
2113
+ <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('loadComponent', error, 'SYSTEM'),</span>
2114
+ <span class="cstat-no" title="statement not covered" ></span>
2115
+ <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-ES0-LC0`,</span>
2116
+ <span class="cstat-no" title="statement not covered" > message: `loadComponent failed! (${component.name})`,</span>
2117
+ <span class="cstat-no" title="statement not covered" > });</span>
2118
+ <span class="cstat-no" title="statement not covered" > }</span>
2119
+ }
2120
+ &nbsp;
2121
+ private <span class="fstat-no" title="function not covered" >async readFile(path: string, nameOfTarget: string): Promise&lt;string&gt; {</span>
2122
+ <span class="cstat-no" title="statement not covered" > return await new Promise&lt;string&gt;((resolve, reject): void =&gt; {</span>
2123
+ <span class="cstat-no" title="statement not covered" > FileSystem.readFile(path, 'utf8' , (err, template): void =&gt; {</span>
2124
+ <span class="cstat-no" title="statement not covered" > if (err || !template) {</span>
2125
+ <span class="cstat-no" title="statement not covered" > err ??= new Error(</span>
2126
+ <span class="cstat-no" title="statement not covered" > `Couldn't load email component's template; \n ${nameOfTarget} ` + </span>
2127
+ <span class="cstat-no" title="statement not covered" > `\n from ${path}`</span>
2128
+ <span class="cstat-no" title="statement not covered" > );</span>
2129
+ <span class="cstat-no" title="statement not covered" ></span>
2130
+ <span class="cstat-no" title="statement not covered" > reject(</span>
2131
+ <span class="cstat-no" title="statement not covered" > new DyFM_Error({</span>
2132
+ <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('loadTemplate', err, 'SYSTEM'),</span>
2133
+ <span class="cstat-no" title="statement not covered" ></span>
2134
+ <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-ES0-LC3`,</span>
2135
+ <span class="cstat-no" title="statement not covered" > })</span>
2136
+ <span class="cstat-no" title="statement not covered" > );</span>
2137
+ <span class="cstat-no" title="statement not covered" ></span>
2138
+ <span class="cstat-no" title="statement not covered" > return;</span>
2139
+ <span class="cstat-no" title="statement not covered" > }</span>
2140
+ <span class="cstat-no" title="statement not covered" > </span>
2141
+ <span class="cstat-no" title="statement not covered" > resolve(template);</span>
2142
+ <span class="cstat-no" title="statement not covered" > });</span>
2143
+ <span class="cstat-no" title="statement not covered" > });</span>
2144
+ <span class="cstat-no" title="statement not covered" > }</span>
2145
+ &nbsp;
2146
+ private connectComponents(): void {
2147
+ try {
2148
+ for (const componentSelector in this.componentsBySelector) {
2149
+ this.componentsBySelector[componentSelector].subComponentSelectors = [];
2150
+ &nbsp;
2151
+ const innerTags: string[] =
2152
+ this.componentsBySelector[componentSelector].template.split('&lt;nts-');
2153
+ &nbsp;
2154
+ innerTags.shift();
2155
+ innerTags.forEach(
2156
+ (subComponents: string): void =&gt; {
2157
+ <span class="cstat-no" title="statement not covered" > const subComponentSelector = subComponents.split('&gt;')[0].split(' ')[0];</span>
2158
+ <span class="cstat-no" title="statement not covered" ></span>
2159
+ <span class="cstat-no" title="statement not covered" > if (subComponentSelector !== 'content') {</span>
2160
+ <span class="cstat-no" title="statement not covered" > const fullSelector = 'nts-' + subComponentSelector;</span>
2161
+ <span class="cstat-no" title="statement not covered" > </span>
2162
+ <span class="cstat-no" title="statement not covered" > if (fullSelector) {</span>
2163
+ <span class="cstat-no" title="statement not covered" > if (!this.componentsBySelector[subComponentSelector]) {</span>
2164
+ <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
2165
+ <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings(</span>
2166
+ <span class="cstat-no" title="statement not covered" > 'connectComponents',</span>
2167
+ <span class="cstat-no" title="statement not covered" > new Error(`SubComponent missing from components! (${fullSelector})`),</span>
2168
+ <span class="cstat-no" title="statement not covered" > 'SYSTEM'</span>
2169
+ <span class="cstat-no" title="statement not covered" > ),</span>
2170
+ <span class="cstat-no" title="statement not covered" ></span>
2171
+ <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-ES0-CC1`,</span>
2172
+ <span class="cstat-no" title="statement not covered" > additionalContent: {</span>
2173
+ <span class="cstat-no" title="statement not covered" > availableComponenets: Object.keys(this.componentsBySelector),</span>
2174
+ <span class="cstat-no" title="statement not covered" > },</span>
2175
+ <span class="cstat-no" title="statement not covered" > });</span>
2176
+ <span class="cstat-no" title="statement not covered" > }</span>
2177
+ <span class="cstat-no" title="statement not covered" > </span>
2178
+ <span class="cstat-no" title="statement not covered" > this.componentsBySelector[componentSelector].subComponentSelectors.push(</span>
2179
+ <span class="cstat-no" title="statement not covered" > subComponentSelector</span>
2180
+ <span class="cstat-no" title="statement not covered" > );</span>
2181
+ <span class="cstat-no" title="statement not covered" > }</span>
2182
+ <span class="cstat-no" title="statement not covered" > }</span>
2183
+ <span class="cstat-no" title="statement not covered" > }</span>
2184
+ );
2185
+ }
2186
+ } <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
2187
+ <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
2188
+ <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('connectComponents', error, 'SYSTEM'),</span>
2189
+ <span class="cstat-no" title="statement not covered" ></span>
2190
+ <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-ES0-CC0`,</span>
2191
+ <span class="cstat-no" title="statement not covered" > message: `connectComponents failed!`,</span>
2192
+ <span class="cstat-no" title="statement not covered" > });</span>
2193
+ <span class="cstat-no" title="statement not covered" > }</span>
2194
+ }
2195
+ &nbsp;
2196
+ /**
2197
+ *
2198
+ * @param template
2199
+ * @returns
2200
+ */
2201
+ private getTemplatePropertyKeys(template: string): string[] {
2202
+ try {
2203
+ const propertyKeys: string[] = [];
2204
+ let propertyOpenTagIndex = template.indexOf('{{');
2205
+ let propertyCloseTagIndex = template.indexOf('}}', propertyOpenTagIndex + 2);
2206
+ &nbsp;
2207
+ while (propertyOpenTagIndex &gt;= 0) {
2208
+ if (propertyCloseTagIndex === -1) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
2209
+ <span class="cstat-no" title="statement not covered" > DyFM_Log.error(</span>
2210
+ <span class="cstat-no" title="statement not covered" > `\nDynamoBEEmailService ERROR, missing closing tag from email template! ` +</span>
2211
+ <span class="cstat-no" title="statement not covered" > `(${propertyOpenTagIndex} -)`, </span>
2212
+ <span class="cstat-no" title="statement not covered" > propertyKeys</span>
2213
+ <span class="cstat-no" title="statement not covered" > );</span>
2214
+ <span class="cstat-no" title="statement not covered" ></span>
2215
+ <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({ </span>
2216
+ <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-ES0-200`,</span>
2217
+ <span class="cstat-no" title="statement not covered" > addECToUserMsg: true,</span>
2218
+ <span class="cstat-no" title="statement not covered" > message: `ERROR, missing closing tag from email template! (${propertyOpenTagIndex} -)`,</span>
2219
+ <span class="cstat-no" title="statement not covered" > userMessage: this.defaultErrorUserMsg,</span>
2220
+ <span class="cstat-no" title="statement not covered" > });</span>
2221
+ <span class="cstat-no" title="statement not covered" > }</span>
2222
+ &nbsp;
2223
+ const newKey: string = template.substring(propertyOpenTagIndex + 2, propertyCloseTagIndex);
2224
+ &nbsp;
2225
+ if (!propertyKeys.includes(newKey)) {
2226
+ propertyKeys.push(newKey);
2227
+ }
2228
+ &nbsp;
2229
+ // KELLEZIDE?
2230
+ propertyOpenTagIndex = template.indexOf('{{', propertyOpenTagIndex + 2);
2231
+ propertyCloseTagIndex = template.indexOf('}}', propertyOpenTagIndex + 2);
2232
+ }
2233
+ // console.log('\n\n\nTEST propertyKeys: ', propertyKeys);
2234
+ &nbsp;
2235
+ return propertyKeys;
2236
+ } <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
2237
+ <span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
2238
+ <span class="cstat-no" title="statement not covered" > ...this._getDefaultErrorSettings('getTemplatePropertyKeys', error, 'SYSTEM'),</span>
2239
+ <span class="cstat-no" title="statement not covered" ></span>
2240
+ <span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-ES0-GTPK0`,</span>
2241
+ <span class="cstat-no" title="statement not covered" > message: `getTemplatePropertyKeys failed!`,</span>
2242
+ <span class="cstat-no" title="statement not covered" > additionalContent: template,</span>
2243
+ <span class="cstat-no" title="statement not covered" > });</span>
2244
+ <span class="cstat-no" title="statement not covered" > }</span>
2245
+ }
2246
+
2247
+ private _getDefaultErrorSettings(
2248
+ fnName: string,
2249
+ error: DyFM_AnyError,
2250
+ issuer: string
2251
+ ): DyFM_Error_Settings {
2252
+ return {
2253
+ status: (error as DyFM_Error)?.___status ?? 500,
2254
+ message: (error as Error)?.message ??
2255
+ (error as DyFM_Error)?._message<span class="branch-0 cbranch-no" title="branch not covered" > ??</span>
2256
+ `${fnName} was UNSUCCESSFUL (NTS; ${this.serviceName})`,
2257
+ addECToUserMsg: !(error as DyFM_Error)?.__userMessage,
2258
+ userMessage: (error as DyFM_Error)?.__userMessage ?? this.defaultErrorUserMsg,
2259
+ issuer: issuer,
2260
+ issuerService: this.serviceName,
2261
+ error: error,
2262
+ };
2263
+ }
2264
+
2265
+ protected <span class="fstat-no" title="function not covered" >getDefaultErrorSettings(</span>
2266
+ <span class="cstat-no" title="statement not covered" > fnName: string, </span>
2267
+ <span class="cstat-no" title="statement not covered" > error: DyFM_AnyError,</span>
2268
+ <span class="cstat-no" title="statement not covered" > issuer: string</span>
2269
+ <span class="cstat-no" title="statement not covered" > ): DyFM_Error_Settings {</span>
2270
+ <span class="cstat-no" title="statement not covered" > return {</span>
2271
+ <span class="cstat-no" title="statement not covered" > status: (error as DyFM_Error)?.___status ?? 500,</span>
2272
+ <span class="cstat-no" title="statement not covered" > message: (error as Error)?.message ?? </span>
2273
+ <span class="cstat-no" title="statement not covered" > (error as DyFM_Error)?._message ??</span>
2274
+ <span class="cstat-no" title="statement not covered" > `${fnName} was UNSUCCESSFUL (${DyNTS_global_settings.systemShortCodeName})`,</span>
2275
+ <span class="cstat-no" title="statement not covered" > addECToUserMsg: !(error as DyFM_Error)?.__userMessage,</span>
2276
+ <span class="cstat-no" title="statement not covered" > userMessage: (error as DyFM_Error)?.__userMessage ?? this.defaultErrorUserMsg,</span>
2277
+ <span class="cstat-no" title="statement not covered" > issuer: issuer,</span>
2278
+ <span class="cstat-no" title="statement not covered" > issuerService: this.constructor?.name,</span>
2279
+ <span class="cstat-no" title="statement not covered" > error: error,</span>
2280
+ <span class="cstat-no" title="statement not covered" > };</span>
2281
+ <span class="cstat-no" title="statement not covered" > }</span>
2282
+ }
2283
+ &nbsp;</pre></td></tr></table></pre>
2284
+
2285
+ <div class='push'></div><!-- for sticky footer -->
2286
+ </div><!-- /wrapper -->
2287
+ <div class='footer quiet pad2 space-top1 center small'>
2288
+ Code coverage generated by
2289
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
2290
+ at 2025-11-12T23:04:34.838Z
2291
+ </div>
2292
+ <script src="../../prettify.js"></script>
2293
+ <script>
2294
+ window.onload = function () {
2295
+ prettyPrint();
2296
+ };
2297
+ </script>
2298
+ <script src="../../sorter.js"></script>
2299
+ <script src="../../block-navigation.js"></script>
2300
+ </body>
2301
+ </html>
2302
+