@futdevpro/nts-dynamo 1.15.73 → 1.15.75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.c8rc.json +26 -26
- package/.copilot/patterns.json +7 -7
- package/.cursor/rules/__assistant_guide.mdc +30 -30
- package/.cursor/rules/_ag_backend-structure.mdc +85 -85
- package/.cursor/rules/_ag_backend.mdc +16 -16
- package/.cursor/rules/_ag_frontend-structure.mdc +86 -86
- package/.cursor/rules/_ag_frontend.mdc +39 -39
- package/.cursor/rules/_ag_import-rules.mdc +44 -44
- package/.cursor/rules/_ag_naming.mdc +115 -115
- package/.cursor/rules/_ag_should-be.mdc +6 -6
- package/.cursor/rules/ai_development_guide.md +60 -60
- package/.cursor/rules/cursor-rules.md +160 -160
- package/.cursor/rules/default-command.mdc +464 -464
- package/.cursor/rules/error_code_pattern.md +39 -39
- package/.cursor/rules/saved rule mcp server use.md +15 -15
- package/.dynamo/logs/cicd-pipeline/output.log +2798 -0
- package/.dynamo/logs/cicd-pipeline/status.json +94 -0
- package/.vscode/settings.json +10 -10
- package/HOWTO.md +15 -15
- package/LICENSE +21 -21
- package/__documentations/nts-integration-tests-2026-03-17.md +26 -26
- package/_specifications/BACKLOG.md +92 -92
- package/_specifications/TODO.md +15 -15
- package/_specifications/agent.md +138 -138
- package/build/_collections/global-settings.const.d.ts.map +1 -1
- package/build/_collections/global-settings.const.js +1 -0
- package/build/_collections/global-settings.const.js.map +1 -1
- package/build/_models/interfaces/global-settings.interface.d.ts +7 -0
- package/build/_models/interfaces/global-settings.interface.d.ts.map +1 -1
- package/build/_services/core/memory-guard.service.d.ts +5 -0
- package/build/_services/core/memory-guard.service.d.ts.map +1 -1
- package/build/_services/core/memory-guard.service.js +12 -3
- package/build/_services/core/memory-guard.service.js.map +1 -1
- package/eslint.config.js +3 -3
- package/nodemon.json +24 -24
- package/package.json +2 -2
- package/pnpm-workspace.yaml +5 -5
- package/scripts/run-coverage-tests.js +28 -28
- package/spec/support/helpers/spec-reporter-loader.js +359 -359
- package/spec/support/helpers/ts-node-helper.js +93 -93
- package/spec/support/jasmine.coverage.json +24 -24
- package/spec/support/jasmine.json +24 -24
- package/src/_collections/archive.util.spec.ts +57 -57
- package/src/_collections/archive.util.ts +18 -18
- package/src/_collections/atlas-default-db-options.const.ts +9 -9
- package/src/_collections/default-fallback-cache-max-age.const.spec.ts +11 -11
- package/src/_collections/default-fallback-cache-max-age.const.ts +2 -2
- package/src/_collections/default-not-found-page.const.spec.ts +19 -19
- package/src/_collections/default-not-found-page.const.ts +22 -22
- package/src/_collections/default-socket-path.const.spec.ts +12 -12
- package/src/_collections/default-socket-path.const.ts +2 -2
- package/src/_collections/get-environment-settings.util.spec.ts +210 -210
- package/src/_collections/get-environment-settings.util.ts +48 -48
- package/src/_collections/global-settings.const.ts +97 -96
- package/src/_collections/sample.env +21 -21
- package/src/_collections/star.controller.spec.ts +224 -224
- package/src/_collections/star.controller.ts +129 -129
- package/src/_enums/data-model-type.enum.ts +14 -14
- package/src/_enums/data-service-function.enum.ts +24 -24
- package/src/_enums/predefined-data-types.enum.ts +16 -16
- package/src/_enums/route-security.enum.ts +12 -12
- package/src/_models/control-models/api-call-params.control-model.spec.ts +152 -152
- package/src/_models/control-models/api-call-params.control-model.ts +142 -142
- package/src/_models/control-models/app-ext-system-controls.control-model.spec.ts +52 -52
- package/src/_models/control-models/app-ext-system-controls.control-model.ts +9 -9
- package/src/_models/control-models/app-params.control-model.spec.ts +225 -225
- package/src/_models/control-models/app-params.control-model.ts +136 -136
- package/src/_models/control-models/app-system-controls.control-model.spec.ts +31 -31
- package/src/_models/control-models/app-system-controls.control-model.ts +9 -9
- package/src/_models/control-models/endpoint-params.control-model.spec.ts +627 -627
- package/src/_models/control-models/endpoint-params.control-model.ts +627 -627
- package/src/_models/control-models/http-settings.control-model.spec.ts +77 -77
- package/src/_models/control-models/http-settings.control-model.ts +37 -37
- package/src/_models/control-models/system-control.control-model.spec.ts +27 -27
- package/src/_models/control-models/system-control.control-model.ts +12 -12
- package/src/_models/interfaces/certification-settings.interface.ts +7 -7
- package/src/_models/interfaces/environment-settings.interface.ts +59 -59
- package/src/_models/interfaces/global-log-settings.interface.ts +171 -171
- package/src/_models/interfaces/global-service-settings.interface.ts +47 -47
- package/src/_models/interfaces/global-settings.interface.ts +7 -0
- package/src/_models/interfaces/routing-module-settings.interface.ts +21 -21
- package/src/_models/interfaces/static-client-settings.interface.spec.ts +29 -29
- package/src/_models/interfaces/static-client-settings.interface.ts +28 -28
- package/src/_models/types/db-update.type.ts +100 -100
- package/src/_modules/ai/_models/ai-input-interfaces.ts +117 -117
- package/src/_modules/ai/_models/ai-test-generation-result.interface.ts +16 -16
- package/src/_modules/ai/_modules/anthropic/_services/aai-user-key.control-service.ts +138 -138
- package/src/_modules/ai/_modules/anthropic/index.ts +5 -5
- package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.ts +242 -242
- package/src/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.ts +639 -639
- package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.ts +295 -295
- package/src/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.ts +518 -518
- package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.ts +209 -209
- package/src/_modules/ai/_modules/document-ai/_collections/dai-document.util.ts +85 -85
- package/src/_modules/ai/_modules/document-ai/_enums/dai-compare-result-type.enum.ts +7 -7
- package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.ts +146 -146
- package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.ts +162 -162
- package/src/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.ts +99 -99
- package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-code-chunk.interface.ts +68 -68
- package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-chunk-compare-result.interface.ts +18 -18
- package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-doc-page-compare-result.interface.ts +19 -19
- package/src/_modules/ai/_modules/document-ai/_models/interfaces/dai-document-compare-result.interface.ts +25 -25
- package/src/_modules/ai/_modules/document-ai/index.ts +30 -30
- package/src/_modules/ai/_modules/fdp-ai/_services/fdpai-user-key.control-service.ts +189 -189
- package/src/_modules/ai/_modules/fdp-ai/index.ts +5 -5
- package/src/_modules/ai/_modules/open-ai/_collections/oai-global-settings.const.ts +9 -9
- package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.ts +82 -82
- package/src/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.ts +75 -75
- package/src/_modules/ai/_modules/open-ai/_enums/oai-gpt-message-role.enum.ts +45 -45
- package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-global-settings.interface.ts +7 -7
- package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-gpt-message.interface.ts +7 -7
- package/src/_modules/ai/_modules/open-ai/_models/interfaces/oai-llm-predefined-requests.interface.ts +57 -57
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.ts +292 -292
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.ts +342 -342
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.ts +550 -550
- package/src/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.ts +630 -630
- package/src/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.ts +332 -332
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.ts +462 -462
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts +634 -634
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.ts +489 -489
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.ts +173 -173
- package/src/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts +1033 -1033
- package/src/_modules/ai/_modules/open-ai/_services/oai-user-key.control-service.ts +157 -157
- package/src/_modules/ai/_services/ai-embedding-mock.service.spec.ts +115 -115
- package/src/_modules/ai/_services/ai-embedding-mock.service.ts +212 -212
- package/src/_modules/ai/_services/ai-embedding-provider.registry.spec.ts +110 -110
- package/src/_modules/ai/_services/ai-embedding-provider.registry.ts +110 -110
- package/src/_modules/ai/_services/ai-embedding.service-base.spec.ts +98 -98
- package/src/_modules/ai/_services/ai-embedding.service-base.ts +48 -48
- package/src/_modules/ai/_services/ai-llm-chat.service-base.spec.ts +229 -229
- package/src/_modules/ai/_services/ai-llm-chat.service-base.ts +68 -68
- package/src/_modules/ai/_services/ai-llm.service-base.spec.ts +250 -250
- package/src/_modules/ai/_services/ai-llm.service-base.ts +519 -519
- package/src/_modules/ai/_services/ai-provider.service-base.spec.ts +158 -158
- package/src/_modules/ai/_services/ai-user-key.service-base.ts +59 -59
- package/src/_modules/ai/_services/lmstudio-embedding.control-service.spec.ts +197 -197
- package/src/_modules/ai/_services/lmstudio-embedding.control-service.ts +371 -371
- package/src/_modules/ai/index.ts +23 -23
- package/src/_modules/assistant/_collections/ass-global-settings.const.ts +13 -13
- package/src/_modules/assistant/_collections/ass.util.spec.ts +176 -176
- package/src/_modules/assistant/_collections/ass.util.ts +50 -50
- package/src/_modules/assistant/_models/ass-global-settings.interface.ts +15 -15
- package/src/_modules/assistant/_services/ass-io.control-service.spec.ts +140 -140
- package/src/_modules/assistant/_services/ass-main.control-service.spec.ts +192 -192
- package/src/_modules/assistant/_services/ass-main.control-service.ts +107 -107
- package/src/_modules/bot/_collections/bot-default-commands.const.ts +12 -12
- package/src/_modules/bot/_collections/bot-global-settings.const.ts +39 -39
- package/src/_modules/bot/_models/bot-channel-wrapper.interface.ts +62 -62
- package/src/_modules/bot/_models/bot-command.interface.ts +8 -8
- package/src/_modules/bot/_models/bot-global-settings.interface.ts +96 -96
- package/src/_modules/bot/_models/bot-last-mention-date.interface.ts +6 -6
- package/src/_modules/bot/_models/bot-last-message-date.interface.ts +5 -5
- package/src/_modules/bot/_models/bot-user-wrapper.interface.ts +41 -41
- package/src/_modules/bot/_modules/discord-bot/_models/dib-platform.types.ts +9 -9
- package/src/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.ts +431 -431
- package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.ts +160 -160
- package/src/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts +55 -55
- package/src/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.ts +15 -15
- package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.ts +374 -374
- package/src/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.ts +447 -447
- package/src/_modules/bot/_modules/dynamo-bot/index.ts +15 -15
- package/src/_modules/bot/_modules/slack-bot/_models/slb-platform.types.ts +9 -9
- package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.ts +344 -344
- package/src/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.ts +197 -197
- package/src/_modules/bot/_modules/teams-bot/_models/teb-platform.types.ts +9 -9
- package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.ts +345 -345
- package/src/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.ts +197 -197
- package/src/_modules/bot/_services/bot-commands.control-service.spec.ts +116 -116
- package/src/_modules/bot/_services/bot-io.control-service.spec.ts +285 -285
- package/src/_modules/bot/_services/bot-main.control-service.spec.ts +208 -208
- package/src/_modules/bot/_services/bot-messaging-provider.service-base.spec.ts +349 -349
- package/src/_modules/bot/_services/bot-routines.control-service.spec.ts +111 -111
- package/src/_modules/custom-data/custom-data.controller.spec.ts +49 -49
- package/src/_modules/custom-data/custom-data.controller.ts +67 -67
- package/src/_modules/custom-data/custom-data.data-service.spec.ts +54 -54
- package/src/_modules/custom-data/custom-data.data-service.ts +21 -21
- package/src/_modules/custom-data/get-custom-data-routing-module.util.spec.ts +28 -28
- package/src/_modules/custom-data/get-custom-data-routing-module.util.ts +24 -24
- package/src/_modules/custom-data/index.ts +9 -9
- package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.ts +161 -161
- package/src/_modules/data-readers/_collections/dynts-sqlite-reader.util.ts +203 -203
- package/src/_modules/data-readers/_models/interfaces/dynts-sqlite-reader.interface.ts +33 -33
- package/src/_modules/data-readers/index.ts +11 -11
- package/src/_modules/defaults/_collections/default-endpoints.util.ts +487 -487
- package/src/_modules/defaults/_models/default-user.data-model.ts +72 -72
- package/src/_modules/defaults/_services/default-auth.service.spec.ts +269 -269
- package/src/_modules/defaults/_services/default-auth.service.ts +177 -177
- package/src/_modules/defaults/_services/default-socket-events.service.spec.ts +42 -42
- package/src/_modules/defaults/_services/default-socket-events.service.ts +61 -61
- package/src/_modules/defaults/_services/default-user.data-service.spec.ts +187 -187
- package/src/_modules/defaults/_services/default-user.data-service.ts +98 -98
- package/src/_modules/defaults/index.ts +17 -17
- package/src/_modules/discord-assistant/_collections/dias-global-settings.const.ts +19 -19
- package/src/_modules/discord-assistant/_collections/dias.util.spec.ts +366 -366
- package/src/_modules/discord-assistant/_collections/dias.util.ts +132 -132
- package/src/_modules/discord-assistant/_models/dias-global-settings.interface.ts +19 -19
- package/src/_modules/discord-assistant/_models/dias-knowledge.data-model.ts +52 -52
- package/src/_modules/discord-assistant/_services/dias-chunk.data-service.ts +177 -177
- package/src/_modules/discord-assistant/_services/dias-io.control-service.spec.ts +108 -108
- package/src/_modules/discord-assistant/_services/dias-io.control-service.ts +69 -69
- package/src/_modules/discord-assistant/_services/dias-main.control-service.spec.ts +22 -22
- package/src/_modules/discord-assistant/_services/dias-main.control-service.ts +27 -27
- package/src/_modules/discord-assistant/_services/dias.service-base.spec.ts +195 -195
- package/src/_modules/discord-assistant/_services/dias.service-base.ts +76 -76
- package/src/_modules/discord-assistant/index.ts +38 -38
- package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.ts +34 -34
- package/src/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.ts +11 -11
- package/src/_modules/discord-assistant-voiced/index.ts +36 -36
- package/src/_modules/discord-bot/_collections/dibo-default-commands.const.ts +16 -16
- package/src/_modules/discord-bot/_collections/dibo-global-settings.conts.ts +55 -55
- package/src/_modules/discord-bot/_collections/dibo-operations.util.spec.ts +214 -214
- package/src/_modules/discord-bot/_collections/dibo-operations.util.ts +387 -387
- package/src/_modules/discord-bot/_models/dibo-command.interface.ts +12 -12
- package/src/_modules/discord-bot/_models/dibo-global-settings.interface.ts +98 -98
- package/src/_modules/discord-bot/_models/dibo-last-mention-date.inteface.ts +7 -7
- package/src/_modules/discord-bot/_models/dibo-last-message-date.interface.ts +6 -6
- package/src/_modules/discord-bot/_services/dibo-commands.control-service.spec.ts +154 -154
- package/src/_modules/discord-bot/_services/dibo-commands.control-service.ts +153 -153
- package/src/_modules/discord-bot/_services/dibo-io.control-service.spec.ts +264 -264
- package/src/_modules/discord-bot/_services/dibo-io.control-service.ts +306 -306
- package/src/_modules/discord-bot/_services/dibo-main.control-service.spec.ts +408 -408
- package/src/_modules/discord-bot/_services/dibo-main.control-service.ts +487 -487
- package/src/_modules/discord-bot/_services/dibo-routines.control-service.spec.ts +105 -105
- package/src/_modules/discord-bot/index.ts +36 -36
- package/src/_modules/local-vector-search/_enums/lvs-search-mode.enum.ts +35 -35
- package/src/_modules/local-vector-search/_models/data-models/lvs-vector-persist.data-model.ts +59 -59
- package/src/_modules/local-vector-search/_models/lvs-search-result.interface.ts +17 -17
- package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.ts +418 -418
- package/src/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.ts +276 -276
- package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.ts +480 -480
- package/src/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.ts +416 -416
- package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.ts +198 -198
- package/src/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.ts +146 -146
- package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.ts +167 -167
- package/src/_modules/local-vector-search/_services/lvs-vector-persist.data-service.ts +106 -106
- package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.ts +507 -507
- package/src/_modules/local-vector-search/_services/lvs-vector-pool.control-service.ts +272 -272
- package/src/_modules/local-vector-search/index.ts +16 -16
- package/src/_modules/logs/index.ts +11 -11
- package/src/_modules/mcp/_models/interfaces/dynts-mcp.interface.ts +111 -111
- package/src/_modules/mcp/_services/dynts-mcp-server.service-base.spec.ts +142 -142
- package/src/_modules/mcp/_services/dynts-mcp-server.service-base.ts +120 -120
- package/src/_modules/mcp/_services/dynts-mcp.adapter.ts +168 -168
- package/src/_modules/mcp/index.ts +13 -13
- package/src/_modules/messaging/README.md +354 -354
- package/src/_modules/messaging/_collections/get-messaging-routing-module.util.ts +26 -26
- package/src/_modules/messaging/_collections/msg-global-settings.const.ts +22 -22
- package/src/_modules/messaging/_collections/msg.util.spec.ts +226 -226
- package/src/_modules/messaging/_models/msg-global-settings.interface.ts +37 -37
- package/src/_modules/messaging/_services/msg-conversation.data-service.ts +146 -146
- package/src/_modules/messaging/_services/msg-events.service.spec.ts +219 -219
- package/src/_modules/messaging/_services/msg-events.service.ts +267 -267
- package/src/_modules/messaging/_services/msg-integration.control-service.ts +179 -179
- package/src/_modules/messaging/_services/msg-main.control-service.spec.ts +147 -147
- package/src/_modules/messaging/_services/msg-main.control-service.ts +571 -571
- package/src/_modules/messaging/_services/msg-message.data-service.ts +129 -129
- package/src/_modules/messaging/_services/msg.controller.spec.ts +201 -201
- package/src/_modules/messaging/index.ts +30 -30
- package/src/_modules/mock/app-extended-server.mock.ts +201 -201
- package/src/_modules/mock/app-integration-test.mock.ts +51 -51
- package/src/_modules/mock/app-params.mock.spec.ts +21 -21
- package/src/_modules/mock/app-params.mock.ts +9 -9
- package/src/_modules/mock/app-server.mock.ts +188 -188
- package/src/_modules/mock/auth-service.mock.spec.ts +47 -47
- package/src/_modules/mock/auth-service.mock.ts +28 -28
- package/src/_modules/mock/controller.mock.spec.ts +26 -26
- package/src/_modules/mock/controller.mock.ts +16 -16
- package/src/_modules/mock/data-model.mock.spec.ts +111 -111
- package/src/_modules/mock/data-model.mock.ts +82 -82
- package/src/_modules/mock/email-service-collection.mock.spec.ts +24 -24
- package/src/_modules/mock/email-service-collection.mock.ts +15 -15
- package/src/_modules/mock/email-service.mock.spec.ts +17 -17
- package/src/_modules/mock/email-service.mock.ts +20 -20
- package/src/_modules/mock/email-template.mock.html +14 -14
- package/src/_modules/mock/endpoint.mock.ts +91 -91
- package/src/_modules/mock/socket-client.mock.spec.ts +40 -40
- package/src/_modules/mock/socket-client.mock.ts +45 -45
- package/src/_modules/mock/socket-server.mock.spec.ts +44 -44
- package/src/_modules/mock/socket-server.mock.ts +46 -46
- package/src/_modules/oauth2/_routes/oauth2.controller.spec.ts +107 -107
- package/src/_modules/oauth2/_routes/oauth2.controller.ts +98 -98
- package/src/_modules/oauth2/_services/oauth2.auth-service.spec.ts +254 -254
- package/src/_modules/oauth2/_services/oauth2.auth-service.ts +232 -232
- package/src/_modules/oauth2/_services/oauth2.control-service.spec.ts +585 -585
- package/src/_modules/oauth2/_services/oauth2.control-service.ts +653 -653
- package/src/_modules/oauth2/index.ts +17 -17
- package/src/_modules/scoped-config/_enums/dynts-scoped-config-level.enum.ts +22 -22
- package/src/_modules/scoped-config/_models/data-models/dynts-scoped-config.data-model.ts +81 -81
- package/src/_modules/scoped-config/_models/interfaces/dynts-scoped-config.interface.ts +107 -107
- package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.ts +306 -306
- package/src/_modules/scoped-config/_services/dynts-scoped-config.control-service.ts +295 -295
- package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.ts +118 -118
- package/src/_modules/scoped-config/_services/dynts-scoped-config.data-service.ts +105 -105
- package/src/_modules/scoped-config/index.ts +17 -17
- package/src/_modules/server/errors/errors.control-service.spec.ts +238 -238
- package/src/_modules/server/errors/errors.control-service.ts +100 -100
- package/src/_modules/server/errors/errors.controller.spec.ts +241 -241
- package/src/_modules/server/errors/errors.controller.ts +489 -489
- package/src/_modules/server/errors/errors.data-service.spec.ts +480 -480
- package/src/_modules/server/index.ts +30 -30
- package/src/_modules/server/server-status/server-status-snapshot.control-service.spec.ts +70 -70
- package/src/_modules/server/server-status/server-status-snapshot.control-service.ts +17 -17
- package/src/_modules/server/server-status/server-status-snapshot.data-service.spec.ts +77 -77
- package/src/_modules/server/server-status/server-status-snapshot.data-service.ts +37 -37
- package/src/_modules/server/server-status/server-status.control-service.spec.ts +576 -576
- package/src/_modules/server/server-status/server-status.control-service.ts +396 -396
- package/src/_modules/server/server-status/server-status.controller.spec.ts +240 -240
- package/src/_modules/server/server-status/server-status.controller.ts +253 -253
- package/src/_modules/socket/_enums/socket-security.enum.ts +11 -11
- package/src/_modules/socket/_models/socket-client-service-params.control-model.spec.ts +32 -32
- package/src/_modules/socket/_models/socket-client-service-params.control-model.ts +22 -22
- package/src/_modules/socket/_models/socket-presence.control-model.spec.ts +164 -164
- package/src/_modules/socket/_models/socket-presence.control-model.ts +210 -210
- package/src/_modules/socket/_models/socket-server-service-params.control-model.spec.ts +46 -46
- package/src/_modules/socket/_models/socket-server-service-params.control-model.ts +22 -22
- package/src/_modules/socket/_services/socket-client.service.spec.ts +15 -15
- package/src/_modules/socket/_services/socket-client.service.ts +260 -260
- package/src/_modules/socket/_services/socket-server.service.spec.ts +11 -11
- package/src/_modules/socket/app-extended.integration.spec.ts +85 -85
- package/src/_modules/socket/app-extended.server.ts +630 -630
- package/src/_modules/socket/index.ts +42 -42
- package/src/_modules/test/get-test-routing-module.util.spec.ts +28 -28
- package/src/_modules/test/get-test-routing-module.util.ts +23 -23
- package/src/_modules/test/index.ts +11 -11
- package/src/_modules/test/test.controller.spec.ts +72 -72
- package/src/_modules/test/test.controller.ts +115 -115
- package/src/_modules/usage/get-usage-routing-module.util.ts +22 -22
- package/src/_modules/usage/index.ts +15 -15
- package/src/_modules/usage/usage.controller.spec.ts +81 -81
- package/src/_modules/usage/usage.controller.ts +126 -126
- package/src/_modules/usage/usage.data-service.spec.ts +332 -332
- package/src/_modules/usage/usage.data-service.ts +185 -185
- package/src/_services/base/api.service-base.spec.ts +125 -125
- package/src/_services/base/api.service-base.ts +74 -74
- package/src/_services/base/archive-data.service.spec.ts +196 -196
- package/src/_services/base/archive-data.service.ts +216 -216
- package/src/_services/base/data.service.spec.ts +674 -674
- package/src/_services/base/data.service.ts +2719 -2719
- package/src/_services/base/db.service.spec.ts +73 -73
- package/src/_services/base/db.service.ts +1575 -1575
- package/src/_services/base/singleton.service-base.spec.ts +28 -28
- package/src/_services/base/singleton.service-base.ts +24 -24
- package/src/_services/base/singleton.service.spec.ts +114 -114
- package/src/_services/base/singleton.service.ts +38 -38
- package/src/_services/core/api.service.spec.ts +140 -140
- package/src/_services/core/auth.service.spec.ts +159 -159
- package/src/_services/core/auth.service.ts +174 -174
- package/src/_services/core/email.service.spec.ts +85 -85
- package/src/_services/core/email.service.ts +742 -742
- package/src/_services/core/global.service.spec.ts +292 -292
- package/src/_services/core/global.service.ts +475 -475
- package/src/_services/core/memory-guard.service.spec.ts +18 -0
- package/src/_services/core/memory-guard.service.ts +14 -3
- package/src/_services/core/service-collection.service.spec.ts +46 -46
- package/src/_services/core/service-collection.service.ts +6 -6
- package/src/_services/route/controller.service.spec.ts +53 -53
- package/src/_services/route/controller.service.ts +148 -148
- package/src/_services/route/routing-module.service.spec.ts +98 -98
- package/src/_services/route/routing-module.service.ts +330 -330
- package/src/_services/server/app.server.ts +1747 -1747
- package/src/_services/shared.static-service.spec.ts +99 -99
- package/src/_services/shared.static-service.ts +78 -78
- package/src/index.ts +96 -96
- package/tsconfig.app.json +12 -12
- package/tsconfig.json +42 -42
|
@@ -215,6 +215,7 @@ describe('| DyNTS_MemoryGuard (FR-193)', (): void => {
|
|
|
215
215
|
it('| exitOnSustainedCritical: N egymás utáni critical poll → gracefulExit (process.exit)', (): void => {
|
|
216
216
|
DyNTS_global_settings.memoryGuard!.exitOnSustainedCritical = true;
|
|
217
217
|
DyNTS_global_settings.memoryGuard!.sustainedCriticalPolls = 3;
|
|
218
|
+
DyNTS_global_settings.memoryGuard!.bootGraceMs = 0; // nincs grace → azonnal élesedik
|
|
218
219
|
const exitSpy: jasmine.Spy = spyOn(guard as any, 'gracefulExit').and.stub();
|
|
219
220
|
guard.install();
|
|
220
221
|
mockHeap(guard, 1000, 970); // 97% critical
|
|
@@ -224,4 +225,21 @@ describe('| DyNTS_MemoryGuard (FR-193)', (): void => {
|
|
|
224
225
|
poll(guard);
|
|
225
226
|
expect(exitSpy).toHaveBeenCalledTimes(1); // a 3. critical → exit
|
|
226
227
|
});
|
|
228
|
+
|
|
229
|
+
it('| BOOT-GRACE: a grace alatt a sustained-critical NEM lép ki; a grace után IGEN', (): void => {
|
|
230
|
+
DyNTS_global_settings.memoryGuard!.exitOnSustainedCritical = true;
|
|
231
|
+
DyNTS_global_settings.memoryGuard!.sustainedCriticalPolls = 3;
|
|
232
|
+
DyNTS_global_settings.memoryGuard!.bootGraceMs = 60000; // 60s grace
|
|
233
|
+
const exitSpy: jasmine.Spy = spyOn(guard as any, 'gracefulExit').and.stub();
|
|
234
|
+
guard.install();
|
|
235
|
+
mockHeap(guard, 1000, 970); // 97% critical
|
|
236
|
+
spyOn(guard as any, 'recentGcFraction').and.returnValue(0.0);
|
|
237
|
+
// A grace ALATT (installedAt épp most): hiába N+ critical poll, NINCS exit.
|
|
238
|
+
poll(guard); poll(guard); poll(guard); poll(guard);
|
|
239
|
+
expect(exitSpy).not.toHaveBeenCalled();
|
|
240
|
+
// A grace UTÁN (installedAt 61s-cel ezelőttre állítva): a következő critical poll már kilép.
|
|
241
|
+
(guard as any).installedAt = Date.now() - 61000;
|
|
242
|
+
poll(guard);
|
|
243
|
+
expect(exitSpy).toHaveBeenCalledTimes(1);
|
|
244
|
+
});
|
|
227
245
|
});
|
|
@@ -80,6 +80,8 @@ export interface DyNTS_MemoryGuard_Config {
|
|
|
80
80
|
sustainedCriticalPolls?: number;
|
|
81
81
|
/** A graceful-exit kódja. Default: 137. */
|
|
82
82
|
exitCode?: number;
|
|
83
|
+
/** Boot-grace ms az `exitOnSustainedCritical`-hez (a guard-install utáni ennyi ms-ben NEM lép ki). Default: 60000. */
|
|
84
|
+
bootGraceMs?: number;
|
|
83
85
|
/** Hook, amit a `critical` küszöb átlépésekor hívunk (pl. terhelés-dobás). */
|
|
84
86
|
onCritical?: (event: DyNTS_MemoryGuard_Event) => void;
|
|
85
87
|
}
|
|
@@ -109,6 +111,9 @@ export class DyNTS_MemoryGuard extends DyNTS_SingletonServiceBase {
|
|
|
109
111
|
private exitOnSustainedCritical: boolean = false;
|
|
110
112
|
private sustainedCriticalPolls: number = 3;
|
|
111
113
|
private exitCode: number = 137;
|
|
114
|
+
private bootGraceMs: number = 60000;
|
|
115
|
+
/** A guard-install időbélyege (a boot-grace számításához; 0 = még nem telepített). */
|
|
116
|
+
private installedAt: number = 0;
|
|
112
117
|
private onCritical?: (event: DyNTS_MemoryGuard_Event) => void;
|
|
113
118
|
|
|
114
119
|
private readonly history: DyNTS_MemoryGuard_Event[] = [];
|
|
@@ -149,6 +154,8 @@ export class DyNTS_MemoryGuard extends DyNTS_SingletonServiceBase {
|
|
|
149
154
|
this.exitOnSustainedCritical = config?.exitOnSustainedCritical ?? g.exitOnSustainedCritical ?? false;
|
|
150
155
|
this.sustainedCriticalPolls = config?.sustainedCriticalPolls ?? g.sustainedCriticalPolls ?? 3;
|
|
151
156
|
this.exitCode = config?.exitCode ?? g.exitCode ?? 137;
|
|
157
|
+
this.bootGraceMs = config?.bootGraceMs ?? g.bootGraceMs ?? 60000;
|
|
158
|
+
this.installedAt = Date.now();
|
|
152
159
|
this.onCritical = config?.onCritical;
|
|
153
160
|
|
|
154
161
|
this.installed = true;
|
|
@@ -167,7 +174,7 @@ export class DyNTS_MemoryGuard extends DyNTS_SingletonServiceBase {
|
|
|
167
174
|
`warn ${this.warnPct}%/${Math.round(this.gcWarnFraction * 100)}%GC, ` +
|
|
168
175
|
`crit ${this.critPct}%/${Math.round(this.gcCritFraction * 100)}%GC (heap limit ` +
|
|
169
176
|
`${Math.round(this.getHeapLimitBytes() / BYTES_PER_MB)}MB)` +
|
|
170
|
-
(this.exitOnSustainedCritical ? `, graceful-exit@${this.sustainedCriticalPolls} critical polls` : ''),
|
|
177
|
+
(this.exitOnSustainedCritical ? `, graceful-exit@${this.sustainedCriticalPolls} critical polls (boot-grace ${this.bootGraceMs}ms)` : ''),
|
|
171
178
|
);
|
|
172
179
|
} catch (err: unknown) {
|
|
173
180
|
// Telepítési hiba SEM lehet fatal — a guard hiánya nem ér annyit, hogy a
|
|
@@ -217,10 +224,13 @@ export class DyNTS_MemoryGuard extends DyNTS_SingletonServiceBase {
|
|
|
217
224
|
}
|
|
218
225
|
// Egyébként marad a jelenlegi állapot (hiszterézis-sáv) — nincs re-emit.
|
|
219
226
|
|
|
220
|
-
// Sustained-critical streak + opcionális graceful-exit (állapot-váltástól FÜGGETLENÜL számolva).
|
|
227
|
+
// Sustained-critical streak + opcionális graceful-exit (állapot-váltástól FÜGGETLENÜL számolva). A boot-grace
|
|
228
|
+
// alatt (install + bootGraceMs) NEM lép ki — a nehéz-boot (pool-hidratáló) appok eleve GC-thrash-elnek a boot
|
|
229
|
+
// alatt, így a sustained-exit boot-loop-ot okozna; a grace UTÁN a tartós critical a VALÓDI runtime-OOM-ot kezeli.
|
|
221
230
|
if (next === 'critical') {
|
|
222
231
|
this.criticalStreak += 1;
|
|
223
|
-
|
|
232
|
+
const pastBootGrace: boolean = (Date.now() - this.installedAt) >= this.bootGraceMs;
|
|
233
|
+
if (this.exitOnSustainedCritical && pastBootGrace && this.criticalStreak >= this.sustainedCriticalPolls) {
|
|
224
234
|
this.gracefulExit({ pct: pct, gcFraction: gcFraction, limitBytes: limitBytes, mu: mu });
|
|
225
235
|
return;
|
|
226
236
|
}
|
|
@@ -465,6 +475,7 @@ export class DyNTS_MemoryGuard extends DyNTS_SingletonServiceBase {
|
|
|
465
475
|
this.peakRssMb = 0;
|
|
466
476
|
this.gcEvents = [];
|
|
467
477
|
this.criticalStreak = 0;
|
|
478
|
+
this.installedAt = 0;
|
|
468
479
|
this.onCritical = undefined;
|
|
469
480
|
}
|
|
470
481
|
}
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
import { DyNTS_Service_Collection } from './service-collection.service';
|
|
3
|
-
|
|
4
|
-
class TestService {
|
|
5
|
-
name: string;
|
|
6
|
-
constructor(name: string) {
|
|
7
|
-
this.name = name;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
describe('| DyNTS_Service_Collection', () => {
|
|
12
|
-
it('| should be a singleton instance', () => {
|
|
13
|
-
class TestCollection extends DyNTS_Service_Collection<TestService> {
|
|
14
|
-
static getInstance(): TestCollection {
|
|
15
|
-
return TestCollection.getSingletonInstance();
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
const instance1 = TestCollection.getInstance();
|
|
20
|
-
const instance2 = TestCollection.getInstance();
|
|
21
|
-
|
|
22
|
-
expect(instance1).toBe(instance2);
|
|
23
|
-
expect(instance1).toBeInstanceOf(TestCollection);
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
it('| should allow dynamic property assignment', () => {
|
|
27
|
-
class TestCollection extends DyNTS_Service_Collection<TestService> {
|
|
28
|
-
static getInstance(): TestCollection {
|
|
29
|
-
return TestCollection.getSingletonInstance();
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const collection = TestCollection.getInstance();
|
|
34
|
-
const service1 = new TestService('service1');
|
|
35
|
-
const service2 = new TestService('service2');
|
|
36
|
-
|
|
37
|
-
collection['service1'] = service1;
|
|
38
|
-
collection['service2'] = service2;
|
|
39
|
-
|
|
40
|
-
expect(collection['service1']).toBe(service1);
|
|
41
|
-
expect(collection['service2']).toBe(service2);
|
|
42
|
-
expect(collection['service1'].name).toBe('service1');
|
|
43
|
-
expect(collection['service2'].name).toBe('service2');
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
|
|
1
|
+
|
|
2
|
+
import { DyNTS_Service_Collection } from './service-collection.service';
|
|
3
|
+
|
|
4
|
+
class TestService {
|
|
5
|
+
name: string;
|
|
6
|
+
constructor(name: string) {
|
|
7
|
+
this.name = name;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
describe('| DyNTS_Service_Collection', () => {
|
|
12
|
+
it('| should be a singleton instance', () => {
|
|
13
|
+
class TestCollection extends DyNTS_Service_Collection<TestService> {
|
|
14
|
+
static getInstance(): TestCollection {
|
|
15
|
+
return TestCollection.getSingletonInstance();
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const instance1 = TestCollection.getInstance();
|
|
20
|
+
const instance2 = TestCollection.getInstance();
|
|
21
|
+
|
|
22
|
+
expect(instance1).toBe(instance2);
|
|
23
|
+
expect(instance1).toBeInstanceOf(TestCollection);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it('| should allow dynamic property assignment', () => {
|
|
27
|
+
class TestCollection extends DyNTS_Service_Collection<TestService> {
|
|
28
|
+
static getInstance(): TestCollection {
|
|
29
|
+
return TestCollection.getSingletonInstance();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const collection = TestCollection.getInstance();
|
|
34
|
+
const service1 = new TestService('service1');
|
|
35
|
+
const service2 = new TestService('service2');
|
|
36
|
+
|
|
37
|
+
collection['service1'] = service1;
|
|
38
|
+
collection['service2'] = service2;
|
|
39
|
+
|
|
40
|
+
expect(collection['service1']).toBe(service1);
|
|
41
|
+
expect(collection['service2']).toBe(service2);
|
|
42
|
+
expect(collection['service1'].name).toBe('service1');
|
|
43
|
+
expect(collection['service2'].name).toBe('service2');
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
import { DyNTS_SingletonServiceBase } from '../base/singleton.service-base';
|
|
3
|
-
|
|
4
|
-
export class DyNTS_Service_Collection<T> extends DyNTS_SingletonServiceBase {
|
|
5
|
-
[service: string]: T;
|
|
6
|
-
}
|
|
1
|
+
|
|
2
|
+
import { DyNTS_SingletonServiceBase } from '../base/singleton.service-base';
|
|
3
|
+
|
|
4
|
+
export class DyNTS_Service_Collection<T> extends DyNTS_SingletonServiceBase {
|
|
5
|
+
[service: string]: T;
|
|
6
|
+
}
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
|
|
2
|
-
import { DyFM_HttpCallType } from '@futdevpro/fsm-dynamo';
|
|
3
|
-
|
|
4
|
-
import { DyNTS_Endpoint_Params } from '../../_models/control-models/endpoint-params.control-model';
|
|
5
|
-
import { DyNTS_Controller } from './controller.service';
|
|
6
|
-
|
|
7
|
-
class TestController extends DyNTS_Controller {
|
|
8
|
-
setupEndpoints(): void {
|
|
9
|
-
this.endpoints = [
|
|
10
|
-
new DyNTS_Endpoint_Params({
|
|
11
|
-
name: 'testEndpoint',
|
|
12
|
-
type: DyFM_HttpCallType.get,
|
|
13
|
-
endpoint: '/test-endpoint',
|
|
14
|
-
preProcesses: [],
|
|
15
|
-
tasks: [
|
|
16
|
-
async (req: any, res: any) => {
|
|
17
|
-
res.send({ message: 'Test successful' });
|
|
18
|
-
},
|
|
19
|
-
],
|
|
20
|
-
}),
|
|
21
|
-
];
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
static getInstance(): TestController {
|
|
25
|
-
return new TestController();
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
describe('| DyNTS_Controller', () => {
|
|
30
|
-
let controller: TestController;
|
|
31
|
-
|
|
32
|
-
beforeEach(() => {
|
|
33
|
-
controller = TestController.getInstance();
|
|
34
|
-
controller.setupEndpoints();
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
it('| should initialize endpoints correctly', () => {
|
|
38
|
-
expect(controller.endpoints.length).toBe(1);
|
|
39
|
-
expect(controller.endpoints[0].name).toBe('testEndpoint');
|
|
40
|
-
expect(controller.endpoints[0].endpoint).toBe('/test-endpoint');
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
/* it('| should execute task and send response', async () => {
|
|
44
|
-
const req = {};
|
|
45
|
-
const res = {
|
|
46
|
-
send: jasmine.createSpy('send'),
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
await controller.endpoints[0].tasks[0](req, res);
|
|
50
|
-
|
|
51
|
-
expect(res.send).toHaveBeenCalledWith({ message: 'Test successful' });
|
|
52
|
-
}); */
|
|
53
|
-
});
|
|
1
|
+
|
|
2
|
+
import { DyFM_HttpCallType } from '@futdevpro/fsm-dynamo';
|
|
3
|
+
|
|
4
|
+
import { DyNTS_Endpoint_Params } from '../../_models/control-models/endpoint-params.control-model';
|
|
5
|
+
import { DyNTS_Controller } from './controller.service';
|
|
6
|
+
|
|
7
|
+
class TestController extends DyNTS_Controller {
|
|
8
|
+
setupEndpoints(): void {
|
|
9
|
+
this.endpoints = [
|
|
10
|
+
new DyNTS_Endpoint_Params({
|
|
11
|
+
name: 'testEndpoint',
|
|
12
|
+
type: DyFM_HttpCallType.get,
|
|
13
|
+
endpoint: '/test-endpoint',
|
|
14
|
+
preProcesses: [],
|
|
15
|
+
tasks: [
|
|
16
|
+
async (req: any, res: any) => {
|
|
17
|
+
res.send({ message: 'Test successful' });
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
}),
|
|
21
|
+
];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
static getInstance(): TestController {
|
|
25
|
+
return new TestController();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
describe('| DyNTS_Controller', () => {
|
|
30
|
+
let controller: TestController;
|
|
31
|
+
|
|
32
|
+
beforeEach(() => {
|
|
33
|
+
controller = TestController.getInstance();
|
|
34
|
+
controller.setupEndpoints();
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it('| should initialize endpoints correctly', () => {
|
|
38
|
+
expect(controller.endpoints.length).toBe(1);
|
|
39
|
+
expect(controller.endpoints[0].name).toBe('testEndpoint');
|
|
40
|
+
expect(controller.endpoints[0].endpoint).toBe('/test-endpoint');
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
/* it('| should execute task and send response', async () => {
|
|
44
|
+
const req = {};
|
|
45
|
+
const res = {
|
|
46
|
+
send: jasmine.createSpy('send'),
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
await controller.endpoints[0].tasks[0](req, res);
|
|
50
|
+
|
|
51
|
+
expect(res.send).toHaveBeenCalledWith({ message: 'Test successful' });
|
|
52
|
+
}); */
|
|
53
|
+
});
|
|
@@ -1,148 +1,148 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
DyNTS_Endpoint_Params
|
|
5
|
-
} from '../../_models/control-models/endpoint-params.control-model';
|
|
6
|
-
|
|
7
|
-
import { DyNTS_SingletonService } from '../base/singleton.service';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Basic controller for endpoint handlings
|
|
11
|
-
*
|
|
12
|
-
* (You'll need to add them to a {@link DyNTS_RoutingModule} through it's constructor)
|
|
13
|
-
*
|
|
14
|
-
* You can add default endpoints to the controller by using the {@link DyNTS_DefaultEndpoints_Util} utility class
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* this.endpoints = [
|
|
18
|
-
* ...DyNTS_DefaultEndpoints_Util.getAllDefaultEndpoints({
|
|
19
|
-
* entityName: 'UserMatchStatistics',
|
|
20
|
-
* dataServiceClass: UserMatchStatistics_DataService,
|
|
21
|
-
* endpoints: {
|
|
22
|
-
* get: '/get/user-match-statistics/:userId',
|
|
23
|
-
* search: '/search/user-match-statistics',
|
|
24
|
-
* modify: '/modify/user-match-statistics',
|
|
25
|
-
* patch: '/patch/user-match-statistics/:userId',
|
|
26
|
-
* delete: '/delete/user-match-statistics/:userId',
|
|
27
|
-
* },
|
|
28
|
-
* authService: this.authService,
|
|
29
|
-
* }),
|
|
30
|
-
* ];
|
|
31
|
-
*
|
|
32
|
-
* @example
|
|
33
|
-
* export class UserMatchStatisticsController extends DyNTS_Controller {
|
|
34
|
-
*
|
|
35
|
-
* static getInstance(): UserMatchStatisticsController {
|
|
36
|
-
* return UserMatchStatisticsController.getSingletonInstance();
|
|
37
|
-
* }
|
|
38
|
-
*
|
|
39
|
-
* // SERVICES
|
|
40
|
-
* private authService: AuthService;
|
|
41
|
-
*
|
|
42
|
-
* setupEndpoints(): void {
|
|
43
|
-
* this.authService = AuthService.getInstance();
|
|
44
|
-
*
|
|
45
|
-
* this.endpoints = [
|
|
46
|
-
* new DyNTS_Endpoint_Params({
|
|
47
|
-
* name: 'getUserMatchStatistics',
|
|
48
|
-
* type: DyFM_HttpCallType.get,
|
|
49
|
-
* endpoint: '/get/user-match-statistics/:userId',
|
|
50
|
-
* preProcesses: [ this.authService.authenticate_tokenSelf ],
|
|
51
|
-
* tasks: [
|
|
52
|
-
* async (req: Request, res: Response) => {
|
|
53
|
-
* const userMatchStatistics = new UserMatchStatisticsService({
|
|
54
|
-
* data: { userId: req.params.userId }
|
|
55
|
-
* });
|
|
56
|
-
*
|
|
57
|
-
* await userMatchStatistics.getDataByDependencyId();
|
|
58
|
-
*
|
|
59
|
-
* res.send(
|
|
60
|
-
* userMatchStatistics.data
|
|
61
|
-
* );
|
|
62
|
-
* }
|
|
63
|
-
* ]
|
|
64
|
-
* }),
|
|
65
|
-
* ];
|
|
66
|
-
* }
|
|
67
|
-
* }
|
|
68
|
-
*/
|
|
69
|
-
export abstract class DyNTS_Controller extends DyNTS_SingletonService {
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* setup this in the setupEndpoints(), which will be called on the construcion
|
|
73
|
-
*
|
|
74
|
-
* @example
|
|
75
|
-
*
|
|
76
|
-
* this.endpoints = [
|
|
77
|
-
* new DyNTS_Endpoint_Params({
|
|
78
|
-
* name: 'getUserMatchStatistics',
|
|
79
|
-
* type: DyFM_HttpCallType.get,
|
|
80
|
-
* endpoint: '/get/user-match-statistics/:userId',
|
|
81
|
-
* preProcesses: [ this.authService.authenticate_tokenSelf ],
|
|
82
|
-
* tasks: [
|
|
83
|
-
* async (req: Request, res: Response) => {
|
|
84
|
-
* const userMatchStatistics = new UserMatchStatisticsService({
|
|
85
|
-
* data: { userId: req.params.userId }
|
|
86
|
-
* });
|
|
87
|
-
*
|
|
88
|
-
* await userMatchStatistics.getDataByDependencyId();
|
|
89
|
-
*
|
|
90
|
-
* res.send(
|
|
91
|
-
* userMatchStatistics.data
|
|
92
|
-
* );
|
|
93
|
-
* }
|
|
94
|
-
* ]
|
|
95
|
-
* }),
|
|
96
|
-
* ];
|
|
97
|
-
*/
|
|
98
|
-
endpoints: DyNTS_Endpoint_Params[];
|
|
99
|
-
|
|
100
|
-
/* protected constructor(){
|
|
101
|
-
super();
|
|
102
|
-
|
|
103
|
-
try {
|
|
104
|
-
this.setupEndpoints();
|
|
105
|
-
} catch (error) {
|
|
106
|
-
throw new DyFM_Error({
|
|
107
|
-
message: 'DynamoNTSController setup failed. Please check the setupEndpoints() method.',
|
|
108
|
-
errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-COS-000',
|
|
109
|
-
issuerService: this?.constructor?.name,
|
|
110
|
-
error: error,
|
|
111
|
-
level: DyFM_ErrorLevel.critical,
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
} */
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* You must setup endpoints and required services in this function
|
|
118
|
-
*
|
|
119
|
-
* @example
|
|
120
|
-
*
|
|
121
|
-
* setupEndpoints(): void {
|
|
122
|
-
* this.authService = AuthService.getInstance();
|
|
123
|
-
*
|
|
124
|
-
* this.endpoints = [
|
|
125
|
-
* new DyNTS_Endpoint_Params({
|
|
126
|
-
* name: 'getUserMatchStatistics',
|
|
127
|
-
* type: DyFM_HttpCallType.get,
|
|
128
|
-
* endpoint: '/get/user-match-statistics/:userId',
|
|
129
|
-
* preProcesses: [ this.authService.authenticate_tokenSelf ],
|
|
130
|
-
* tasks: [
|
|
131
|
-
* async (req: Request, res: Response) => {
|
|
132
|
-
* const userMatchStatistics = new UserMatchStatisticsService({
|
|
133
|
-
* data: { userId: req.params.userId }
|
|
134
|
-
* });
|
|
135
|
-
*
|
|
136
|
-
* await userMatchStatistics.getDataByDependencyId();
|
|
137
|
-
*
|
|
138
|
-
* res.send(
|
|
139
|
-
* userMatchStatistics.data
|
|
140
|
-
* );
|
|
141
|
-
* }
|
|
142
|
-
* ]
|
|
143
|
-
* }),
|
|
144
|
-
* ];
|
|
145
|
-
* }
|
|
146
|
-
*/
|
|
147
|
-
abstract setupEndpoints(): void
|
|
148
|
-
}
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
DyNTS_Endpoint_Params
|
|
5
|
+
} from '../../_models/control-models/endpoint-params.control-model';
|
|
6
|
+
|
|
7
|
+
import { DyNTS_SingletonService } from '../base/singleton.service';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Basic controller for endpoint handlings
|
|
11
|
+
*
|
|
12
|
+
* (You'll need to add them to a {@link DyNTS_RoutingModule} through it's constructor)
|
|
13
|
+
*
|
|
14
|
+
* You can add default endpoints to the controller by using the {@link DyNTS_DefaultEndpoints_Util} utility class
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* this.endpoints = [
|
|
18
|
+
* ...DyNTS_DefaultEndpoints_Util.getAllDefaultEndpoints({
|
|
19
|
+
* entityName: 'UserMatchStatistics',
|
|
20
|
+
* dataServiceClass: UserMatchStatistics_DataService,
|
|
21
|
+
* endpoints: {
|
|
22
|
+
* get: '/get/user-match-statistics/:userId',
|
|
23
|
+
* search: '/search/user-match-statistics',
|
|
24
|
+
* modify: '/modify/user-match-statistics',
|
|
25
|
+
* patch: '/patch/user-match-statistics/:userId',
|
|
26
|
+
* delete: '/delete/user-match-statistics/:userId',
|
|
27
|
+
* },
|
|
28
|
+
* authService: this.authService,
|
|
29
|
+
* }),
|
|
30
|
+
* ];
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* export class UserMatchStatisticsController extends DyNTS_Controller {
|
|
34
|
+
*
|
|
35
|
+
* static getInstance(): UserMatchStatisticsController {
|
|
36
|
+
* return UserMatchStatisticsController.getSingletonInstance();
|
|
37
|
+
* }
|
|
38
|
+
*
|
|
39
|
+
* // SERVICES
|
|
40
|
+
* private authService: AuthService;
|
|
41
|
+
*
|
|
42
|
+
* setupEndpoints(): void {
|
|
43
|
+
* this.authService = AuthService.getInstance();
|
|
44
|
+
*
|
|
45
|
+
* this.endpoints = [
|
|
46
|
+
* new DyNTS_Endpoint_Params({
|
|
47
|
+
* name: 'getUserMatchStatistics',
|
|
48
|
+
* type: DyFM_HttpCallType.get,
|
|
49
|
+
* endpoint: '/get/user-match-statistics/:userId',
|
|
50
|
+
* preProcesses: [ this.authService.authenticate_tokenSelf ],
|
|
51
|
+
* tasks: [
|
|
52
|
+
* async (req: Request, res: Response) => {
|
|
53
|
+
* const userMatchStatistics = new UserMatchStatisticsService({
|
|
54
|
+
* data: { userId: req.params.userId }
|
|
55
|
+
* });
|
|
56
|
+
*
|
|
57
|
+
* await userMatchStatistics.getDataByDependencyId();
|
|
58
|
+
*
|
|
59
|
+
* res.send(
|
|
60
|
+
* userMatchStatistics.data
|
|
61
|
+
* );
|
|
62
|
+
* }
|
|
63
|
+
* ]
|
|
64
|
+
* }),
|
|
65
|
+
* ];
|
|
66
|
+
* }
|
|
67
|
+
* }
|
|
68
|
+
*/
|
|
69
|
+
export abstract class DyNTS_Controller extends DyNTS_SingletonService {
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* setup this in the setupEndpoints(), which will be called on the construcion
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
*
|
|
76
|
+
* this.endpoints = [
|
|
77
|
+
* new DyNTS_Endpoint_Params({
|
|
78
|
+
* name: 'getUserMatchStatistics',
|
|
79
|
+
* type: DyFM_HttpCallType.get,
|
|
80
|
+
* endpoint: '/get/user-match-statistics/:userId',
|
|
81
|
+
* preProcesses: [ this.authService.authenticate_tokenSelf ],
|
|
82
|
+
* tasks: [
|
|
83
|
+
* async (req: Request, res: Response) => {
|
|
84
|
+
* const userMatchStatistics = new UserMatchStatisticsService({
|
|
85
|
+
* data: { userId: req.params.userId }
|
|
86
|
+
* });
|
|
87
|
+
*
|
|
88
|
+
* await userMatchStatistics.getDataByDependencyId();
|
|
89
|
+
*
|
|
90
|
+
* res.send(
|
|
91
|
+
* userMatchStatistics.data
|
|
92
|
+
* );
|
|
93
|
+
* }
|
|
94
|
+
* ]
|
|
95
|
+
* }),
|
|
96
|
+
* ];
|
|
97
|
+
*/
|
|
98
|
+
endpoints: DyNTS_Endpoint_Params[];
|
|
99
|
+
|
|
100
|
+
/* protected constructor(){
|
|
101
|
+
super();
|
|
102
|
+
|
|
103
|
+
try {
|
|
104
|
+
this.setupEndpoints();
|
|
105
|
+
} catch (error) {
|
|
106
|
+
throw new DyFM_Error({
|
|
107
|
+
message: 'DynamoNTSController setup failed. Please check the setupEndpoints() method.',
|
|
108
|
+
errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-COS-000',
|
|
109
|
+
issuerService: this?.constructor?.name,
|
|
110
|
+
error: error,
|
|
111
|
+
level: DyFM_ErrorLevel.critical,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
} */
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* You must setup endpoints and required services in this function
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
*
|
|
121
|
+
* setupEndpoints(): void {
|
|
122
|
+
* this.authService = AuthService.getInstance();
|
|
123
|
+
*
|
|
124
|
+
* this.endpoints = [
|
|
125
|
+
* new DyNTS_Endpoint_Params({
|
|
126
|
+
* name: 'getUserMatchStatistics',
|
|
127
|
+
* type: DyFM_HttpCallType.get,
|
|
128
|
+
* endpoint: '/get/user-match-statistics/:userId',
|
|
129
|
+
* preProcesses: [ this.authService.authenticate_tokenSelf ],
|
|
130
|
+
* tasks: [
|
|
131
|
+
* async (req: Request, res: Response) => {
|
|
132
|
+
* const userMatchStatistics = new UserMatchStatisticsService({
|
|
133
|
+
* data: { userId: req.params.userId }
|
|
134
|
+
* });
|
|
135
|
+
*
|
|
136
|
+
* await userMatchStatistics.getDataByDependencyId();
|
|
137
|
+
*
|
|
138
|
+
* res.send(
|
|
139
|
+
* userMatchStatistics.data
|
|
140
|
+
* );
|
|
141
|
+
* }
|
|
142
|
+
* ]
|
|
143
|
+
* }),
|
|
144
|
+
* ];
|
|
145
|
+
* }
|
|
146
|
+
*/
|
|
147
|
+
abstract setupEndpoints(): void
|
|
148
|
+
}
|