@futdevpro/nts-dynamo 1.15.139 → 1.15.140
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/README.md +33 -0
- package/SKILLS.md +75 -0
- package/__documentations/2026-04-28-logs-module.md +49 -0
- package/__documentations/2026-05-17-oai-compatible-providers.md +229 -0
- package/__documentations/2026-05-17-static-client-serving-howto.md +144 -0
- package/__documentations/2026-06-01-fr041-cors-middleware.md +96 -0
- package/__documentations/2026-06-01-fr047-p2p3-function-calling.md +81 -0
- package/__documentations/2026-06-15-fr193-memory-guard.md +73 -0
- package/__documentations/2026-08-08-fr292-app-version-header.md +38 -0
- package/__documentations/2026-08-14-field-encryption-mongoose-document-spread.md +124 -0
- package/__documentations/2026-08-18-mongo-transaction-control-service.md +82 -0
- package/__documentations/nts-integration-tests-2026-03-17.md +26 -0
- package/__documentations/plans/BEDROCK-HYPERPLAN.md +95 -0
- package/build/_models/interfaces/mongo-transaction-settings.interface.d.ts +9 -0
- package/build/_models/interfaces/mongo-transaction-settings.interface.d.ts.map +1 -0
- package/build/_models/interfaces/mongo-transaction-settings.interface.js +3 -0
- package/build/_models/interfaces/mongo-transaction-settings.interface.js.map +1 -0
- package/build/_services/core/mongo-transaction.control-service.d.ts +19 -0
- package/build/_services/core/mongo-transaction.control-service.d.ts.map +1 -0
- package/build/_services/core/mongo-transaction.control-service.js +95 -0
- package/build/_services/core/mongo-transaction.control-service.js.map +1 -0
- package/build/index.d.ts +2 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +2 -0
- package/build/index.js.map +1 -1
- package/package.json +2 -2
- package/src/_models/interfaces/mongo-transaction-settings.interface.ts +9 -0
- package/src/_services/core/mongo-transaction.control-service.spec.ts +165 -0
- package/src/_services/core/mongo-transaction.control-service.ts +148 -0
- package/src/index.ts +2 -1
- package/build/_collections/app-version-header.util.spec.d.ts +0 -2
- package/build/_collections/app-version-header.util.spec.d.ts.map +0 -1
- package/build/_collections/app-version-header.util.spec.js +0 -82
- package/build/_collections/app-version-header.util.spec.js.map +0 -1
- package/build/_collections/archive.util.spec.d.ts +0 -2
- package/build/_collections/archive.util.spec.d.ts.map +0 -1
- package/build/_collections/archive.util.spec.js +0 -51
- package/build/_collections/archive.util.spec.js.map +0 -1
- package/build/_collections/client-safe-error.util.spec.d.ts +0 -2
- package/build/_collections/client-safe-error.util.spec.d.ts.map +0 -1
- package/build/_collections/client-safe-error.util.spec.js +0 -124
- package/build/_collections/client-safe-error.util.spec.js.map +0 -1
- package/build/_collections/default-fallback-cache-max-age.const.spec.d.ts +0 -2
- package/build/_collections/default-fallback-cache-max-age.const.spec.d.ts.map +0 -1
- package/build/_collections/default-fallback-cache-max-age.const.spec.js +0 -12
- package/build/_collections/default-fallback-cache-max-age.const.spec.js.map +0 -1
- package/build/_collections/default-not-found-page.const.spec.d.ts +0 -2
- package/build/_collections/default-not-found-page.const.spec.d.ts.map +0 -1
- package/build/_collections/default-not-found-page.const.spec.js +0 -19
- package/build/_collections/default-not-found-page.const.spec.js.map +0 -1
- package/build/_collections/default-socket-path.const.spec.d.ts +0 -2
- package/build/_collections/default-socket-path.const.spec.d.ts.map +0 -1
- package/build/_collections/default-socket-path.const.spec.js +0 -13
- package/build/_collections/default-socket-path.const.spec.js.map +0 -1
- package/build/_collections/field-encryption.util.spec.d.ts +0 -2
- package/build/_collections/field-encryption.util.spec.d.ts.map +0 -1
- package/build/_collections/field-encryption.util.spec.js +0 -156
- package/build/_collections/field-encryption.util.spec.js.map +0 -1
- package/build/_collections/get-environment-settings.util.spec.d.ts +0 -2
- package/build/_collections/get-environment-settings.util.spec.d.ts.map +0 -1
- package/build/_collections/get-environment-settings.util.spec.js +0 -165
- package/build/_collections/get-environment-settings.util.spec.js.map +0 -1
- package/build/_collections/load-shed.util.spec.d.ts +0 -2
- package/build/_collections/load-shed.util.spec.d.ts.map +0 -1
- package/build/_collections/load-shed.util.spec.js +0 -48
- package/build/_collections/load-shed.util.spec.js.map +0 -1
- package/build/_collections/mongo-reconnect-guard.util.spec.d.ts +0 -2
- package/build/_collections/mongo-reconnect-guard.util.spec.d.ts.map +0 -1
- package/build/_collections/mongo-reconnect-guard.util.spec.js +0 -46
- package/build/_collections/mongo-reconnect-guard.util.spec.js.map +0 -1
- package/build/_collections/security-headers.util.spec.d.ts +0 -2
- package/build/_collections/security-headers.util.spec.d.ts.map +0 -1
- package/build/_collections/security-headers.util.spec.js +0 -66
- package/build/_collections/security-headers.util.spec.js.map +0 -1
- package/build/_collections/signed-url.util.spec.d.ts +0 -2
- package/build/_collections/signed-url.util.spec.d.ts.map +0 -1
- package/build/_collections/signed-url.util.spec.js +0 -161
- package/build/_collections/signed-url.util.spec.js.map +0 -1
- package/build/_collections/star.controller.spec.d.ts +0 -2
- package/build/_collections/star.controller.spec.d.ts.map +0 -1
- package/build/_collections/star.controller.spec.js +0 -194
- package/build/_collections/star.controller.spec.js.map +0 -1
- package/build/_collections/static-cache-control.util.spec.d.ts +0 -2
- package/build/_collections/static-cache-control.util.spec.d.ts.map +0 -1
- package/build/_collections/static-cache-control.util.spec.js +0 -41
- package/build/_collections/static-cache-control.util.spec.js.map +0 -1
- package/build/_models/control-models/api-call-params.control-model.spec.d.ts +0 -2
- package/build/_models/control-models/api-call-params.control-model.spec.d.ts.map +0 -1
- package/build/_models/control-models/api-call-params.control-model.spec.js +0 -128
- package/build/_models/control-models/api-call-params.control-model.spec.js.map +0 -1
- package/build/_models/control-models/app-ext-system-controls.control-model.spec.d.ts +0 -2
- package/build/_models/control-models/app-ext-system-controls.control-model.spec.d.ts.map +0 -1
- package/build/_models/control-models/app-ext-system-controls.control-model.spec.js +0 -43
- package/build/_models/control-models/app-ext-system-controls.control-model.spec.js.map +0 -1
- package/build/_models/control-models/app-params.control-model.spec.d.ts +0 -2
- package/build/_models/control-models/app-params.control-model.spec.d.ts.map +0 -1
- package/build/_models/control-models/app-params.control-model.spec.js +0 -180
- package/build/_models/control-models/app-params.control-model.spec.js.map +0 -1
- package/build/_models/control-models/app-system-controls.control-model.spec.d.ts +0 -2
- package/build/_models/control-models/app-system-controls.control-model.spec.d.ts.map +0 -1
- package/build/_models/control-models/app-system-controls.control-model.spec.js +0 -26
- package/build/_models/control-models/app-system-controls.control-model.spec.js.map +0 -1
- package/build/_models/control-models/endpoint-params.control-model.spec.d.ts +0 -2
- package/build/_models/control-models/endpoint-params.control-model.spec.d.ts.map +0 -1
- package/build/_models/control-models/endpoint-params.control-model.spec.js +0 -569
- package/build/_models/control-models/endpoint-params.control-model.spec.js.map +0 -1
- package/build/_models/control-models/http-settings.control-model.spec.d.ts +0 -2
- package/build/_models/control-models/http-settings.control-model.spec.d.ts.map +0 -1
- package/build/_models/control-models/http-settings.control-model.spec.js +0 -71
- package/build/_models/control-models/http-settings.control-model.spec.js.map +0 -1
- package/build/_models/control-models/system-control.control-model.spec.d.ts +0 -2
- package/build/_models/control-models/system-control.control-model.spec.d.ts.map +0 -1
- package/build/_models/control-models/system-control.control-model.spec.js +0 -24
- package/build/_models/control-models/system-control.control-model.spec.js.map +0 -1
- package/build/_models/interfaces/cors-settings.interface.spec.d.ts +0 -2
- package/build/_models/interfaces/cors-settings.interface.spec.d.ts.map +0 -1
- package/build/_models/interfaces/cors-settings.interface.spec.js +0 -48
- package/build/_models/interfaces/cors-settings.interface.spec.js.map +0 -1
- package/build/_models/interfaces/static-client-settings.interface.spec.d.ts +0 -2
- package/build/_models/interfaces/static-client-settings.interface.spec.d.ts.map +0 -1
- package/build/_models/interfaces/static-client-settings.interface.spec.js +0 -28
- package/build/_models/interfaces/static-client-settings.interface.spec.js.map +0 -1
- package/build/_modules/admin-auth/admin-api-key.auth-service.spec.d.ts +0 -2
- package/build/_modules/admin-auth/admin-api-key.auth-service.spec.d.ts.map +0 -1
- package/build/_modules/admin-auth/admin-api-key.auth-service.spec.js +0 -185
- package/build/_modules/admin-auth/admin-api-key.auth-service.spec.js.map +0 -1
- package/build/_modules/ai/_collections/ai-model-config-validator.util.spec.d.ts +0 -2
- package/build/_modules/ai/_collections/ai-model-config-validator.util.spec.d.ts.map +0 -1
- package/build/_modules/ai/_collections/ai-model-config-validator.util.spec.js +0 -132
- package/build/_modules/ai/_collections/ai-model-config-validator.util.spec.js.map +0 -1
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.spec.d.ts +0 -2
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.spec.d.ts.map +0 -1
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.spec.js +0 -56
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-default-collection.util.spec.js.map +0 -1
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.spec.d.ts +0 -2
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.spec.d.ts.map +0 -1
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.spec.js +0 -43
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-match.util.spec.js.map +0 -1
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.spec.d.ts +0 -2
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.spec.d.ts.map +0 -1
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.spec.js +0 -47
- package/build/_modules/ai/_modules/ai-mock/_collections/aim-fixture-serializer.util.spec.js.map +0 -1
- package/build/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.d.ts +0 -2
- package/build/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.d.ts.map +0 -1
- package/build/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.js +0 -98
- package/build/_modules/ai/_modules/ai-mock/_services/ai-embedding-mock.service.spec.js.map +0 -1
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.spec.d.ts +0 -2
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.spec.d.ts.map +0 -1
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.spec.js +0 -117
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-harness.service.spec.js.map +0 -1
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-pipeline.spec.d.ts +0 -2
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-pipeline.spec.d.ts.map +0 -1
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-pipeline.spec.js +0 -87
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-pipeline.spec.js.map +0 -1
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.spec.d.ts +0 -2
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.spec.d.ts.map +0 -1
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.spec.js +0 -42
- package/build/_modules/ai/_modules/ai-mock/_services/aim-fixture-store.service.spec.js.map +0 -1
- package/build/_modules/ai/_modules/ai-mock/_services/aim-integration-proof.spec.d.ts +0 -2
- package/build/_modules/ai/_modules/ai-mock/_services/aim-integration-proof.spec.d.ts.map +0 -1
- package/build/_modules/ai/_modules/ai-mock/_services/aim-integration-proof.spec.js +0 -74
- package/build/_modules/ai/_modules/ai-mock/_services/aim-integration-proof.spec.js.map +0 -1
- package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.spec.d.ts +0 -2
- package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.spec.d.ts.map +0 -1
- package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.spec.js +0 -95
- package/build/_modules/ai/_modules/ai-mock/_services/aim-mock.service.spec.js.map +0 -1
- package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.d.ts +0 -2
- package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.d.ts.map +0 -1
- package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.js +0 -207
- package/build/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.spec.js.map +0 -1
- package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.d.ts +0 -2
- package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.d.ts.map +0 -1
- package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.js +0 -244
- package/build/_modules/ai/_modules/document-ai/_collections/dai-code-chunking.util.spec.js.map +0 -1
- package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.d.ts +0 -2
- package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.d.ts.map +0 -1
- package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.js +0 -162
- package/build/_modules/ai/_modules/document-ai/_collections/dai-document.util.spec.js.map +0 -1
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.d.ts +0 -2
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.d.ts.map +0 -1
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.js +0 -279
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.spec.js.map +0 -1
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.d.ts +0 -2
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.d.ts.map +0 -1
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.js +0 -452
- package/build/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.spec.js.map +0 -1
- package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.d.ts +0 -2
- package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.d.ts.map +0 -1
- package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.js +0 -293
- package/build/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.spec.js.map +0 -1
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.d.ts +0 -2
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.d.ts.map +0 -1
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.js +0 -395
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.spec.js.map +0 -1
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.d.ts +0 -2
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.d.ts.map +0 -1
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.js +0 -411
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.spec.js.map +0 -1
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.d.ts +0 -2
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.d.ts.map +0 -1
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.js +0 -143
- package/build/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.tools.spec.js.map +0 -1
- package/build/_modules/ai/_services/ai-embedding-provider.registry.spec.d.ts +0 -2
- package/build/_modules/ai/_services/ai-embedding-provider.registry.spec.d.ts.map +0 -1
- package/build/_modules/ai/_services/ai-embedding-provider.registry.spec.js +0 -98
- package/build/_modules/ai/_services/ai-embedding-provider.registry.spec.js.map +0 -1
- package/build/_modules/ai/_services/ai-embedding.service-base.spec.d.ts +0 -2
- package/build/_modules/ai/_services/ai-embedding.service-base.spec.d.ts.map +0 -1
- package/build/_modules/ai/_services/ai-embedding.service-base.spec.js +0 -80
- package/build/_modules/ai/_services/ai-embedding.service-base.spec.js.map +0 -1
- package/build/_modules/ai/_services/ai-llm-chat.service-base.spec.d.ts +0 -2
- package/build/_modules/ai/_services/ai-llm-chat.service-base.spec.d.ts.map +0 -1
- package/build/_modules/ai/_services/ai-llm-chat.service-base.spec.js +0 -186
- package/build/_modules/ai/_services/ai-llm-chat.service-base.spec.js.map +0 -1
- package/build/_modules/ai/_services/ai-llm.service-base.reconciler.spec.d.ts +0 -2
- package/build/_modules/ai/_services/ai-llm.service-base.reconciler.spec.d.ts.map +0 -1
- package/build/_modules/ai/_services/ai-llm.service-base.reconciler.spec.js +0 -108
- package/build/_modules/ai/_services/ai-llm.service-base.reconciler.spec.js.map +0 -1
- package/build/_modules/ai/_services/ai-llm.service-base.spec.d.ts +0 -2
- package/build/_modules/ai/_services/ai-llm.service-base.spec.d.ts.map +0 -1
- package/build/_modules/ai/_services/ai-llm.service-base.spec.js +0 -185
- package/build/_modules/ai/_services/ai-llm.service-base.spec.js.map +0 -1
- package/build/_modules/ai/_services/ai-provider.service-base.spec.d.ts +0 -2
- package/build/_modules/ai/_services/ai-provider.service-base.spec.d.ts.map +0 -1
- package/build/_modules/ai/_services/ai-provider.service-base.spec.js +0 -128
- package/build/_modules/ai/_services/ai-provider.service-base.spec.js.map +0 -1
- package/build/_modules/ai/_services/lmstudio-embedding.control-service.spec.d.ts +0 -2
- package/build/_modules/ai/_services/lmstudio-embedding.control-service.spec.d.ts.map +0 -1
- package/build/_modules/ai/_services/lmstudio-embedding.control-service.spec.js +0 -159
- package/build/_modules/ai/_services/lmstudio-embedding.control-service.spec.js.map +0 -1
- package/build/_modules/assistant/_collections/ass.util.spec.d.ts +0 -2
- package/build/_modules/assistant/_collections/ass.util.spec.d.ts.map +0 -1
- package/build/_modules/assistant/_collections/ass.util.spec.js +0 -153
- package/build/_modules/assistant/_collections/ass.util.spec.js.map +0 -1
- package/build/_modules/assistant/_services/ass-io.control-service.spec.d.ts +0 -2
- package/build/_modules/assistant/_services/ass-io.control-service.spec.d.ts.map +0 -1
- package/build/_modules/assistant/_services/ass-io.control-service.spec.js +0 -99
- package/build/_modules/assistant/_services/ass-io.control-service.spec.js.map +0 -1
- package/build/_modules/assistant/_services/ass-main.control-service.spec.d.ts +0 -2
- package/build/_modules/assistant/_services/ass-main.control-service.spec.d.ts.map +0 -1
- package/build/_modules/assistant/_services/ass-main.control-service.spec.js +0 -146
- package/build/_modules/assistant/_services/ass-main.control-service.spec.js.map +0 -1
- package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.d.ts +0 -2
- package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.d.ts.map +0 -1
- package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.js +0 -356
- package/build/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.spec.js.map +0 -1
- package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.d.ts +0 -2
- package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.d.ts.map +0 -1
- package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.js +0 -93
- package/build/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.spec.js.map +0 -1
- package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.d.ts +0 -2
- package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.d.ts.map +0 -1
- package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.js +0 -304
- package/build/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.spec.js.map +0 -1
- package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.d.ts +0 -2
- package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.d.ts.map +0 -1
- package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.js +0 -336
- package/build/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.spec.js.map +0 -1
- package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.d.ts +0 -2
- package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.d.ts.map +0 -1
- package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.js +0 -337
- package/build/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.spec.js.map +0 -1
- package/build/_modules/bot/_services/bot-commands.control-service.spec.d.ts +0 -2
- package/build/_modules/bot/_services/bot-commands.control-service.spec.d.ts.map +0 -1
- package/build/_modules/bot/_services/bot-commands.control-service.spec.js +0 -84
- package/build/_modules/bot/_services/bot-commands.control-service.spec.js.map +0 -1
- package/build/_modules/bot/_services/bot-io.control-service.spec.d.ts +0 -2
- package/build/_modules/bot/_services/bot-io.control-service.spec.d.ts.map +0 -1
- package/build/_modules/bot/_services/bot-io.control-service.spec.js +0 -228
- package/build/_modules/bot/_services/bot-io.control-service.spec.js.map +0 -1
- package/build/_modules/bot/_services/bot-main.control-service.spec.d.ts +0 -2
- package/build/_modules/bot/_services/bot-main.control-service.spec.d.ts.map +0 -1
- package/build/_modules/bot/_services/bot-main.control-service.spec.js +0 -164
- package/build/_modules/bot/_services/bot-main.control-service.spec.js.map +0 -1
- package/build/_modules/bot/_services/bot-messaging-provider.service-base.spec.d.ts +0 -2
- package/build/_modules/bot/_services/bot-messaging-provider.service-base.spec.d.ts.map +0 -1
- package/build/_modules/bot/_services/bot-messaging-provider.service-base.spec.js +0 -267
- package/build/_modules/bot/_services/bot-messaging-provider.service-base.spec.js.map +0 -1
- package/build/_modules/bot/_services/bot-routines.control-service.spec.d.ts +0 -2
- package/build/_modules/bot/_services/bot-routines.control-service.spec.d.ts.map +0 -1
- package/build/_modules/bot/_services/bot-routines.control-service.spec.js +0 -82
- package/build/_modules/bot/_services/bot-routines.control-service.spec.js.map +0 -1
- package/build/_modules/custom-data/custom-data.controller.spec.d.ts +0 -2
- package/build/_modules/custom-data/custom-data.controller.spec.d.ts.map +0 -1
- package/build/_modules/custom-data/custom-data.controller.spec.js +0 -38
- package/build/_modules/custom-data/custom-data.controller.spec.js.map +0 -1
- package/build/_modules/custom-data/custom-data.data-service.spec.d.ts +0 -2
- package/build/_modules/custom-data/custom-data.data-service.spec.d.ts.map +0 -1
- package/build/_modules/custom-data/custom-data.data-service.spec.js +0 -45
- package/build/_modules/custom-data/custom-data.data-service.spec.js.map +0 -1
- package/build/_modules/custom-data/get-custom-data-routing-module.util.spec.d.ts +0 -2
- package/build/_modules/custom-data/get-custom-data-routing-module.util.spec.d.ts.map +0 -1
- package/build/_modules/custom-data/get-custom-data-routing-module.util.spec.js +0 -23
- package/build/_modules/custom-data/get-custom-data-routing-module.util.spec.js.map +0 -1
- package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.d.ts +0 -2
- package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.d.ts.map +0 -1
- package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.js +0 -124
- package/build/_modules/data-readers/_collections/dynts-sqlite-reader.util.spec.js.map +0 -1
- package/build/_modules/defaults/_services/default-auth.service.spec.d.ts +0 -2
- package/build/_modules/defaults/_services/default-auth.service.spec.d.ts.map +0 -1
- package/build/_modules/defaults/_services/default-auth.service.spec.js +0 -210
- package/build/_modules/defaults/_services/default-auth.service.spec.js.map +0 -1
- package/build/_modules/defaults/_services/default-socket-events.service.spec.d.ts +0 -2
- package/build/_modules/defaults/_services/default-socket-events.service.spec.d.ts.map +0 -1
- package/build/_modules/defaults/_services/default-socket-events.service.spec.js +0 -34
- package/build/_modules/defaults/_services/default-socket-events.service.spec.js.map +0 -1
- package/build/_modules/defaults/_services/default-user.data-service.spec.d.ts +0 -2
- package/build/_modules/defaults/_services/default-user.data-service.spec.d.ts.map +0 -1
- package/build/_modules/defaults/_services/default-user.data-service.spec.js +0 -133
- package/build/_modules/defaults/_services/default-user.data-service.spec.js.map +0 -1
- package/build/_modules/discord-assistant/_collections/dias.util.spec.d.ts +0 -2
- package/build/_modules/discord-assistant/_collections/dias.util.spec.d.ts.map +0 -1
- package/build/_modules/discord-assistant/_collections/dias.util.spec.js +0 -307
- package/build/_modules/discord-assistant/_collections/dias.util.spec.js.map +0 -1
- package/build/_modules/discord-assistant/_services/dias-io.control-service.spec.d.ts +0 -2
- package/build/_modules/discord-assistant/_services/dias-io.control-service.spec.d.ts.map +0 -1
- package/build/_modules/discord-assistant/_services/dias-io.control-service.spec.js +0 -76
- package/build/_modules/discord-assistant/_services/dias-io.control-service.spec.js.map +0 -1
- package/build/_modules/discord-assistant/_services/dias-main.control-service.spec.d.ts +0 -2
- package/build/_modules/discord-assistant/_services/dias-main.control-service.spec.d.ts.map +0 -1
- package/build/_modules/discord-assistant/_services/dias-main.control-service.spec.js +0 -17
- package/build/_modules/discord-assistant/_services/dias-main.control-service.spec.js.map +0 -1
- package/build/_modules/discord-assistant/_services/dias.service-base.spec.d.ts +0 -2
- package/build/_modules/discord-assistant/_services/dias.service-base.spec.d.ts.map +0 -1
- package/build/_modules/discord-assistant/_services/dias.service-base.spec.js +0 -151
- package/build/_modules/discord-assistant/_services/dias.service-base.spec.js.map +0 -1
- package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.d.ts +0 -2
- package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.d.ts.map +0 -1
- package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.js +0 -29
- package/build/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.spec.js.map +0 -1
- package/build/_modules/discord-bot/_collections/dibo-operations.util.spec.d.ts +0 -2
- package/build/_modules/discord-bot/_collections/dibo-operations.util.spec.d.ts.map +0 -1
- package/build/_modules/discord-bot/_collections/dibo-operations.util.spec.js +0 -172
- package/build/_modules/discord-bot/_collections/dibo-operations.util.spec.js.map +0 -1
- package/build/_modules/discord-bot/_services/dibo-commands.control-service.spec.d.ts +0 -2
- package/build/_modules/discord-bot/_services/dibo-commands.control-service.spec.d.ts.map +0 -1
- package/build/_modules/discord-bot/_services/dibo-commands.control-service.spec.js +0 -133
- package/build/_modules/discord-bot/_services/dibo-commands.control-service.spec.js.map +0 -1
- package/build/_modules/discord-bot/_services/dibo-io.control-service.spec.d.ts +0 -2
- package/build/_modules/discord-bot/_services/dibo-io.control-service.spec.d.ts.map +0 -1
- package/build/_modules/discord-bot/_services/dibo-io.control-service.spec.js +0 -215
- package/build/_modules/discord-bot/_services/dibo-io.control-service.spec.js.map +0 -1
- package/build/_modules/discord-bot/_services/dibo-main.control-service.spec.d.ts +0 -2
- package/build/_modules/discord-bot/_services/dibo-main.control-service.spec.d.ts.map +0 -1
- package/build/_modules/discord-bot/_services/dibo-main.control-service.spec.js +0 -342
- package/build/_modules/discord-bot/_services/dibo-main.control-service.spec.js.map +0 -1
- package/build/_modules/discord-bot/_services/dibo-routines.control-service.spec.d.ts +0 -2
- package/build/_modules/discord-bot/_services/dibo-routines.control-service.spec.d.ts.map +0 -1
- package/build/_modules/discord-bot/_services/dibo-routines.control-service.spec.js +0 -87
- package/build/_modules/discord-bot/_services/dibo-routines.control-service.spec.js.map +0 -1
- package/build/_modules/local-vector-search/_services/lvs-bm25.util.spec.d.ts +0 -2
- package/build/_modules/local-vector-search/_services/lvs-bm25.util.spec.d.ts.map +0 -1
- package/build/_modules/local-vector-search/_services/lvs-bm25.util.spec.js +0 -137
- package/build/_modules/local-vector-search/_services/lvs-bm25.util.spec.js.map +0 -1
- package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.d.ts +0 -2
- package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.d.ts.map +0 -1
- package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.js +0 -345
- package/build/_modules/local-vector-search/_services/lvs-doc-chunk-data.service.spec.js.map +0 -1
- package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.d.ts +0 -2
- package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.d.ts.map +0 -1
- package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.js +0 -407
- package/build/_modules/local-vector-search/_services/lvs-local-vector-search.data-service.spec.js.map +0 -1
- package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.d.ts +0 -2
- package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.d.ts.map +0 -1
- package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.js +0 -160
- package/build/_modules/local-vector-search/_services/lvs-persistent-vector-pool.control-service.spec.js.map +0 -1
- package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.d.ts +0 -2
- package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.d.ts.map +0 -1
- package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.js +0 -122
- package/build/_modules/local-vector-search/_services/lvs-vector-persist.data-service.spec.js.map +0 -1
- package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.d.ts +0 -2
- package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.d.ts.map +0 -1
- package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.js +0 -388
- package/build/_modules/local-vector-search/_services/lvs-vector-pool.control-service.spec.js.map +0 -1
- package/build/_modules/logs/file-log.service.spec.d.ts +0 -2
- package/build/_modules/logs/file-log.service.spec.d.ts.map +0 -1
- package/build/_modules/logs/file-log.service.spec.js +0 -300
- package/build/_modules/logs/file-log.service.spec.js.map +0 -1
- package/build/_modules/logs/file-logs.controller.spec.d.ts +0 -2
- package/build/_modules/logs/file-logs.controller.spec.d.ts.map +0 -1
- package/build/_modules/logs/file-logs.controller.spec.js +0 -203
- package/build/_modules/logs/file-logs.controller.spec.js.map +0 -1
- package/build/_modules/mcp/_services/dynts-mcp-server.service-base.spec.d.ts +0 -2
- package/build/_modules/mcp/_services/dynts-mcp-server.service-base.spec.d.ts.map +0 -1
- package/build/_modules/mcp/_services/dynts-mcp-server.service-base.spec.js +0 -125
- package/build/_modules/mcp/_services/dynts-mcp-server.service-base.spec.js.map +0 -1
- package/build/_modules/messaging/_collections/msg.util.spec.d.ts +0 -2
- package/build/_modules/messaging/_collections/msg.util.spec.d.ts.map +0 -1
- package/build/_modules/messaging/_collections/msg.util.spec.js +0 -157
- package/build/_modules/messaging/_collections/msg.util.spec.js.map +0 -1
- package/build/_modules/messaging/_services/msg-events.service.spec.d.ts +0 -2
- package/build/_modules/messaging/_services/msg-events.service.spec.d.ts.map +0 -1
- package/build/_modules/messaging/_services/msg-events.service.spec.js +0 -122
- package/build/_modules/messaging/_services/msg-events.service.spec.js.map +0 -1
- package/build/_modules/messaging/_services/msg-main.control-service.spec.d.ts +0 -2
- package/build/_modules/messaging/_services/msg-main.control-service.spec.d.ts.map +0 -1
- package/build/_modules/messaging/_services/msg-main.control-service.spec.js +0 -121
- package/build/_modules/messaging/_services/msg-main.control-service.spec.js.map +0 -1
- package/build/_modules/messaging/_services/msg.controller.spec.d.ts +0 -2
- package/build/_modules/messaging/_services/msg.controller.spec.d.ts.map +0 -1
- package/build/_modules/messaging/_services/msg.controller.spec.js +0 -165
- package/build/_modules/messaging/_services/msg.controller.spec.js.map +0 -1
- package/build/_modules/mock/app-params.mock.spec.d.ts +0 -2
- package/build/_modules/mock/app-params.mock.spec.d.ts.map +0 -1
- package/build/_modules/mock/app-params.mock.spec.js +0 -19
- package/build/_modules/mock/app-params.mock.spec.js.map +0 -1
- package/build/_modules/mock/auth-service.mock.spec.d.ts +0 -2
- package/build/_modules/mock/auth-service.mock.spec.d.ts.map +0 -1
- package/build/_modules/mock/auth-service.mock.spec.js +0 -40
- package/build/_modules/mock/auth-service.mock.spec.js.map +0 -1
- package/build/_modules/mock/controller.mock.spec.d.ts +0 -2
- package/build/_modules/mock/controller.mock.spec.d.ts.map +0 -1
- package/build/_modules/mock/controller.mock.spec.js +0 -23
- package/build/_modules/mock/controller.mock.spec.js.map +0 -1
- package/build/_modules/mock/data-model.mock.spec.d.ts +0 -2
- package/build/_modules/mock/data-model.mock.spec.d.ts.map +0 -1
- package/build/_modules/mock/data-model.mock.spec.js +0 -101
- package/build/_modules/mock/data-model.mock.spec.js.map +0 -1
- package/build/_modules/mock/email-service-collection.mock.spec.d.ts +0 -2
- package/build/_modules/mock/email-service-collection.mock.spec.d.ts.map +0 -1
- package/build/_modules/mock/email-service-collection.mock.spec.js +0 -21
- package/build/_modules/mock/email-service-collection.mock.spec.js.map +0 -1
- package/build/_modules/mock/email-service.mock.spec.d.ts +0 -2
- package/build/_modules/mock/email-service.mock.spec.d.ts.map +0 -1
- package/build/_modules/mock/email-service.mock.spec.js +0 -14
- package/build/_modules/mock/email-service.mock.spec.js.map +0 -1
- package/build/_modules/mock/socket-client.mock.spec.d.ts +0 -2
- package/build/_modules/mock/socket-client.mock.spec.d.ts.map +0 -1
- package/build/_modules/mock/socket-client.mock.spec.js +0 -32
- package/build/_modules/mock/socket-client.mock.spec.js.map +0 -1
- package/build/_modules/mock/socket-server.mock.spec.d.ts +0 -2
- package/build/_modules/mock/socket-server.mock.spec.d.ts.map +0 -1
- package/build/_modules/mock/socket-server.mock.spec.js +0 -36
- package/build/_modules/mock/socket-server.mock.spec.js.map +0 -1
- package/build/_modules/oauth2/_routes/oauth2.controller.spec.d.ts +0 -2
- package/build/_modules/oauth2/_routes/oauth2.controller.spec.d.ts.map +0 -1
- package/build/_modules/oauth2/_routes/oauth2.controller.spec.js +0 -89
- package/build/_modules/oauth2/_routes/oauth2.controller.spec.js.map +0 -1
- package/build/_modules/oauth2/_services/oauth2.auth-service.spec.d.ts +0 -2
- package/build/_modules/oauth2/_services/oauth2.auth-service.spec.d.ts.map +0 -1
- package/build/_modules/oauth2/_services/oauth2.auth-service.spec.js +0 -195
- package/build/_modules/oauth2/_services/oauth2.auth-service.spec.js.map +0 -1
- package/build/_modules/oauth2/_services/oauth2.control-service.spec.d.ts +0 -2
- package/build/_modules/oauth2/_services/oauth2.control-service.spec.d.ts.map +0 -1
- package/build/_modules/oauth2/_services/oauth2.control-service.spec.js +0 -432
- package/build/_modules/oauth2/_services/oauth2.control-service.spec.js.map +0 -1
- package/build/_modules/rate-limit/rate-limit.middleware.spec.d.ts +0 -2
- package/build/_modules/rate-limit/rate-limit.middleware.spec.d.ts.map +0 -1
- package/build/_modules/rate-limit/rate-limit.middleware.spec.js +0 -277
- package/build/_modules/rate-limit/rate-limit.middleware.spec.js.map +0 -1
- package/build/_modules/scheduler/scheduler.controller.spec.d.ts +0 -2
- package/build/_modules/scheduler/scheduler.controller.spec.d.ts.map +0 -1
- package/build/_modules/scheduler/scheduler.controller.spec.js +0 -35
- package/build/_modules/scheduler/scheduler.controller.spec.js.map +0 -1
- package/build/_modules/scheduler/scheduler.service.spec.d.ts +0 -2
- package/build/_modules/scheduler/scheduler.service.spec.d.ts.map +0 -1
- package/build/_modules/scheduler/scheduler.service.spec.js +0 -123
- package/build/_modules/scheduler/scheduler.service.spec.js.map +0 -1
- package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.d.ts +0 -2
- package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.d.ts.map +0 -1
- package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.js +0 -229
- package/build/_modules/scoped-config/_services/dynts-scoped-config.control-service.spec.js.map +0 -1
- package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.d.ts +0 -2
- package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.d.ts.map +0 -1
- package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.js +0 -88
- package/build/_modules/scoped-config/_services/dynts-scoped-config.data-service.spec.js.map +0 -1
- package/build/_modules/server/errors/errors.control-service.spec.d.ts +0 -2
- package/build/_modules/server/errors/errors.control-service.spec.d.ts.map +0 -1
- package/build/_modules/server/errors/errors.control-service.spec.js +0 -198
- package/build/_modules/server/errors/errors.control-service.spec.js.map +0 -1
- package/build/_modules/server/errors/errors.controller.spec.d.ts +0 -2
- package/build/_modules/server/errors/errors.controller.spec.d.ts.map +0 -1
- package/build/_modules/server/errors/errors.controller.spec.js +0 -287
- package/build/_modules/server/errors/errors.controller.spec.js.map +0 -1
- package/build/_modules/server/errors/errors.data-service.spec.d.ts +0 -2
- package/build/_modules/server/errors/errors.data-service.spec.d.ts.map +0 -1
- package/build/_modules/server/errors/errors.data-service.spec.js +0 -390
- package/build/_modules/server/errors/errors.data-service.spec.js.map +0 -1
- package/build/_modules/server/server-status/server-status-snapshot.control-service.spec.d.ts +0 -2
- package/build/_modules/server/server-status/server-status-snapshot.control-service.spec.d.ts.map +0 -1
- package/build/_modules/server/server-status/server-status-snapshot.control-service.spec.js +0 -59
- package/build/_modules/server/server-status/server-status-snapshot.control-service.spec.js.map +0 -1
- package/build/_modules/server/server-status/server-status-snapshot.data-service.spec.d.ts +0 -2
- package/build/_modules/server/server-status/server-status-snapshot.data-service.spec.d.ts.map +0 -1
- package/build/_modules/server/server-status/server-status-snapshot.data-service.spec.js +0 -58
- package/build/_modules/server/server-status/server-status-snapshot.data-service.spec.js.map +0 -1
- package/build/_modules/server/server-status/server-status.control-service.spec.d.ts +0 -2
- package/build/_modules/server/server-status/server-status.control-service.spec.d.ts.map +0 -1
- package/build/_modules/server/server-status/server-status.control-service.spec.js +0 -537
- package/build/_modules/server/server-status/server-status.control-service.spec.js.map +0 -1
- package/build/_modules/server/server-status/server-status.controller.spec.d.ts +0 -2
- package/build/_modules/server/server-status/server-status.controller.spec.d.ts.map +0 -1
- package/build/_modules/server/server-status/server-status.controller.spec.js +0 -223
- package/build/_modules/server/server-status/server-status.controller.spec.js.map +0 -1
- package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.d.ts +0 -2
- package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.d.ts.map +0 -1
- package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.js +0 -25
- package/build/_modules/socket/_models/socket-client-service-params.control-model.spec.js.map +0 -1
- package/build/_modules/socket/_models/socket-presence.control-model.spec.d.ts +0 -2
- package/build/_modules/socket/_models/socket-presence.control-model.spec.d.ts.map +0 -1
- package/build/_modules/socket/_models/socket-presence.control-model.spec.js +0 -137
- package/build/_modules/socket/_models/socket-presence.control-model.spec.js.map +0 -1
- package/build/_modules/socket/_models/socket-server-service-params.control-model.spec.d.ts +0 -2
- package/build/_modules/socket/_models/socket-server-service-params.control-model.spec.d.ts.map +0 -1
- package/build/_modules/socket/_models/socket-server-service-params.control-model.spec.js +0 -58
- package/build/_modules/socket/_models/socket-server-service-params.control-model.spec.js.map +0 -1
- package/build/_modules/socket/_services/socket-client.service.spec.d.ts +0 -2
- package/build/_modules/socket/_services/socket-client.service.spec.d.ts.map +0 -1
- package/build/_modules/socket/_services/socket-client.service.spec.js +0 -12
- package/build/_modules/socket/_services/socket-client.service.spec.js.map +0 -1
- package/build/_modules/socket/_services/socket-server.service.spec.d.ts +0 -2
- package/build/_modules/socket/_services/socket-server.service.spec.d.ts.map +0 -1
- package/build/_modules/socket/_services/socket-server.service.spec.js +0 -149
- package/build/_modules/socket/_services/socket-server.service.spec.js.map +0 -1
- package/build/_modules/socket/app-extended.integration.spec.d.ts +0 -2
- package/build/_modules/socket/app-extended.integration.spec.d.ts.map +0 -1
- package/build/_modules/socket/app-extended.integration.spec.js +0 -76
- package/build/_modules/socket/app-extended.integration.spec.js.map +0 -1
- package/build/_modules/test/get-test-routing-module.util.spec.d.ts +0 -2
- package/build/_modules/test/get-test-routing-module.util.spec.d.ts.map +0 -1
- package/build/_modules/test/get-test-routing-module.util.spec.js +0 -23
- package/build/_modules/test/get-test-routing-module.util.spec.js.map +0 -1
- package/build/_modules/test/test.controller.spec.d.ts +0 -2
- package/build/_modules/test/test.controller.spec.d.ts.map +0 -1
- package/build/_modules/test/test.controller.spec.js +0 -54
- package/build/_modules/test/test.controller.spec.js.map +0 -1
- package/build/_modules/test-email-sink/_services/dynts-test-email-sink.service.spec.d.ts +0 -2
- package/build/_modules/test-email-sink/_services/dynts-test-email-sink.service.spec.d.ts.map +0 -1
- package/build/_modules/test-email-sink/_services/dynts-test-email-sink.service.spec.js +0 -91
- package/build/_modules/test-email-sink/_services/dynts-test-email-sink.service.spec.js.map +0 -1
- package/build/_modules/usage/usage.controller.spec.d.ts +0 -2
- package/build/_modules/usage/usage.controller.spec.d.ts.map +0 -1
- package/build/_modules/usage/usage.controller.spec.js +0 -82
- package/build/_modules/usage/usage.controller.spec.js.map +0 -1
- package/build/_modules/usage/usage.data-service.spec.d.ts +0 -2
- package/build/_modules/usage/usage.data-service.spec.d.ts.map +0 -1
- package/build/_modules/usage/usage.data-service.spec.js +0 -284
- package/build/_modules/usage/usage.data-service.spec.js.map +0 -1
- package/build/_services/base/api.service-base.spec.d.ts +0 -2
- package/build/_services/base/api.service-base.spec.d.ts.map +0 -1
- package/build/_services/base/api.service-base.spec.js +0 -91
- package/build/_services/base/api.service-base.spec.js.map +0 -1
- package/build/_services/base/archive-data.service.spec.d.ts +0 -2
- package/build/_services/base/archive-data.service.spec.d.ts.map +0 -1
- package/build/_services/base/archive-data.service.spec.js +0 -149
- package/build/_services/base/archive-data.service.spec.js.map +0 -1
- package/build/_services/base/data.service.spec.d.ts +0 -2
- package/build/_services/base/data.service.spec.d.ts.map +0 -1
- package/build/_services/base/data.service.spec.js +0 -614
- package/build/_services/base/data.service.spec.js.map +0 -1
- package/build/_services/base/db.service.encryption.spec.d.ts +0 -2
- package/build/_services/base/db.service.encryption.spec.d.ts.map +0 -1
- package/build/_services/base/db.service.encryption.spec.js +0 -66
- package/build/_services/base/db.service.encryption.spec.js.map +0 -1
- package/build/_services/base/db.service.spec.d.ts +0 -2
- package/build/_services/base/db.service.spec.d.ts.map +0 -1
- package/build/_services/base/db.service.spec.js +0 -127
- package/build/_services/base/db.service.spec.js.map +0 -1
- package/build/_services/base/singleton.service-base.spec.d.ts +0 -2
- package/build/_services/base/singleton.service-base.spec.d.ts.map +0 -1
- package/build/_services/base/singleton.service-base.spec.js +0 -24
- package/build/_services/base/singleton.service-base.spec.js.map +0 -1
- package/build/_services/base/singleton.service.spec.d.ts +0 -2
- package/build/_services/base/singleton.service.spec.d.ts.map +0 -1
- package/build/_services/base/singleton.service.spec.js +0 -88
- package/build/_services/base/singleton.service.spec.js.map +0 -1
- package/build/_services/core/api.service.spec.d.ts +0 -2
- package/build/_services/core/api.service.spec.d.ts.map +0 -1
- package/build/_services/core/api.service.spec.js +0 -150
- package/build/_services/core/api.service.spec.js.map +0 -1
- package/build/_services/core/auth.service.spec.d.ts +0 -2
- package/build/_services/core/auth.service.spec.d.ts.map +0 -1
- package/build/_services/core/auth.service.spec.js +0 -129
- package/build/_services/core/auth.service.spec.js.map +0 -1
- package/build/_services/core/collection-growth-monitor.service.spec.d.ts +0 -2
- package/build/_services/core/collection-growth-monitor.service.spec.d.ts.map +0 -1
- package/build/_services/core/collection-growth-monitor.service.spec.js +0 -51
- package/build/_services/core/collection-growth-monitor.service.spec.js.map +0 -1
- package/build/_services/core/diagnostics.service.spec.d.ts +0 -2
- package/build/_services/core/diagnostics.service.spec.d.ts.map +0 -1
- package/build/_services/core/diagnostics.service.spec.js +0 -40
- package/build/_services/core/diagnostics.service.spec.js.map +0 -1
- package/build/_services/core/email.service.spec.d.ts +0 -2
- package/build/_services/core/email.service.spec.d.ts.map +0 -1
- package/build/_services/core/email.service.spec.js +0 -77
- package/build/_services/core/email.service.spec.js.map +0 -1
- package/build/_services/core/event-loop-diag.service.spec.d.ts +0 -2
- package/build/_services/core/event-loop-diag.service.spec.d.ts.map +0 -1
- package/build/_services/core/event-loop-diag.service.spec.js +0 -18
- package/build/_services/core/event-loop-diag.service.spec.js.map +0 -1
- package/build/_services/core/global.service.spec.d.ts +0 -2
- package/build/_services/core/global.service.spec.d.ts.map +0 -1
- package/build/_services/core/global.service.spec.js +0 -235
- package/build/_services/core/global.service.spec.js.map +0 -1
- package/build/_services/core/memory-guard.service.spec.d.ts +0 -2
- package/build/_services/core/memory-guard.service.spec.d.ts.map +0 -1
- package/build/_services/core/memory-guard.service.spec.js +0 -219
- package/build/_services/core/memory-guard.service.spec.js.map +0 -1
- package/build/_services/core/migration-runner.service.spec.d.ts +0 -2
- package/build/_services/core/migration-runner.service.spec.d.ts.map +0 -1
- package/build/_services/core/migration-runner.service.spec.js +0 -77
- package/build/_services/core/migration-runner.service.spec.js.map +0 -1
- package/build/_services/core/request-hunter.service.spec.d.ts +0 -2
- package/build/_services/core/request-hunter.service.spec.d.ts.map +0 -1
- package/build/_services/core/request-hunter.service.spec.js +0 -101
- package/build/_services/core/request-hunter.service.spec.js.map +0 -1
- package/build/_services/core/service-collection.service.spec.d.ts +0 -2
- package/build/_services/core/service-collection.service.spec.d.ts.map +0 -1
- package/build/_services/core/service-collection.service.spec.js +0 -39
- package/build/_services/core/service-collection.service.spec.js.map +0 -1
- package/build/_services/route/controller.service.spec.d.ts +0 -2
- package/build/_services/route/controller.service.spec.d.ts.map +0 -1
- package/build/_services/route/controller.service.spec.js +0 -48
- package/build/_services/route/controller.service.spec.js.map +0 -1
- package/build/_services/route/routing-module.service.spec.d.ts +0 -2
- package/build/_services/route/routing-module.service.spec.d.ts.map +0 -1
- package/build/_services/route/routing-module.service.spec.js +0 -81
- package/build/_services/route/routing-module.service.spec.js.map +0 -1
- package/build/_services/server/app.server-retention.spec.d.ts +0 -2
- package/build/_services/server/app.server-retention.spec.d.ts.map +0 -1
- package/build/_services/server/app.server-retention.spec.js +0 -93
- package/build/_services/server/app.server-retention.spec.js.map +0 -1
- package/build/_services/shared.static-service.spec.d.ts +0 -2
- package/build/_services/shared.static-service.spec.d.ts.map +0 -1
- package/build/_services/shared.static-service.spec.js +0 -82
- package/build/_services/shared.static-service.spec.js.map +0 -1
- package/coverage/_collections/archive.util.ts.html +0 -139
- package/coverage/_collections/get-environment-settings.util.ts.html +0 -229
- package/coverage/_collections/index.html +0 -146
- package/coverage/_collections/star.controller.ts.html +0 -472
- package/coverage/_models/control-models/api-call-params.control-model.ts.html +0 -511
- package/coverage/_models/control-models/app-ext-system-controls.control-model.ts.html +0 -112
- package/coverage/_models/control-models/app-params.control-model.ts.html +0 -475
- package/coverage/_models/control-models/app-system-controls.control-model.ts.html +0 -112
- package/coverage/_models/control-models/endpoint-params.control-model.ts.html +0 -1618
- package/coverage/_models/control-models/http-settings.control-model.ts.html +0 -172
- package/coverage/_models/control-models/index.html +0 -206
- package/coverage/_models/control-models/system-control.control-model.ts.html +0 -121
- package/coverage/_modules/ai/_models/ai-input-interfaces.ts.html +0 -436
- package/coverage/_modules/ai/_models/index.html +0 -116
- package/coverage/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.ts.html +0 -1993
- package/coverage/_modules/ai/_modules/document-ai/_collections/dai-document.util.ts.html +0 -340
- package/coverage/_modules/ai/_modules/document-ai/_collections/index.html +0 -131
- package/coverage/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.ts.html +0 -523
- package/coverage/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.ts.html +0 -571
- package/coverage/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.ts.html +0 -382
- package/coverage/_modules/ai/_modules/document-ai/_models/data-models/index.html +0 -146
- package/coverage/_modules/ai/_modules/open-ai/_collections/index.html +0 -131
- package/coverage/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.ts.html +0 -331
- package/coverage/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.ts.html +0 -310
- package/coverage/_modules/ai/_modules/open-ai/_services/data-services/index.html +0 -161
- package/coverage/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.ts.html +0 -958
- package/coverage/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.ts.html +0 -1801
- package/coverage/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.ts.html +0 -1390
- package/coverage/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.ts.html +0 -1915
- package/coverage/_modules/ai/_modules/open-ai/_services/index.html +0 -146
- package/coverage/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.ts.html +0 -334
- package/coverage/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts.html +0 -1822
- package/coverage/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts.html +0 -2584
- package/coverage/_modules/ai/_services/ai-embedding.service-base.ts.html +0 -208
- package/coverage/_modules/ai/_services/ai-llm-chat.service-base.ts.html +0 -289
- package/coverage/_modules/ai/_services/ai-llm.service-base.ts.html +0 -1060
- package/coverage/_modules/ai/_services/ai-provider.service-base.ts.html +0 -172
- package/coverage/_modules/ai/_services/index.html +0 -161
- package/coverage/_modules/assistant/_collections/ass.util.ts.html +0 -235
- package/coverage/_modules/assistant/_collections/index.html +0 -116
- package/coverage/_modules/assistant/_services/ass-io.control-service.ts.html +0 -307
- package/coverage/_modules/assistant/_services/ass-main.control-service.ts.html +0 -406
- package/coverage/_modules/assistant/_services/index.html +0 -131
- package/coverage/_modules/bot/_modules/discord-bot/_models/dib-platform.types.ts.html +0 -112
- package/coverage/_modules/bot/_modules/discord-bot/_models/index.html +0 -116
- package/coverage/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.ts.html +0 -1978
- package/coverage/_modules/bot/_modules/discord-bot/_services/index.html +0 -116
- package/coverage/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts.html +0 -250
- package/coverage/_modules/bot/_modules/dynamo-bot/_collections/index.html +0 -116
- package/coverage/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.ts.html +0 -130
- package/coverage/_modules/bot/_modules/dynamo-bot/_models/index.html +0 -116
- package/coverage/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.ts.html +0 -1414
- package/coverage/_modules/bot/_modules/dynamo-bot/_services/index.html +0 -116
- package/coverage/_modules/bot/_modules/slack-bot/_models/index.html +0 -116
- package/coverage/_modules/bot/_modules/slack-bot/_models/slb-platform.types.ts.html +0 -112
- package/coverage/_modules/bot/_modules/slack-bot/_services/index.html +0 -116
- package/coverage/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.ts.html +0 -664
- package/coverage/_modules/bot/_modules/teams-bot/_models/index.html +0 -116
- package/coverage/_modules/bot/_modules/teams-bot/_models/teb-platform.types.ts.html +0 -112
- package/coverage/_modules/bot/_modules/teams-bot/_services/index.html +0 -116
- package/coverage/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.ts.html +0 -664
- package/coverage/_modules/bot/_services/bot-commands.control-service.ts.html +0 -559
- package/coverage/_modules/bot/_services/bot-io.control-service.ts.html +0 -1072
- package/coverage/_modules/bot/_services/bot-main.control-service.ts.html +0 -1552
- package/coverage/_modules/bot/_services/bot-messaging-provider.service-base.ts.html +0 -556
- package/coverage/_modules/bot/_services/bot-routines.control-service.ts.html +0 -319
- package/coverage/_modules/bot/_services/index.html +0 -176
- package/coverage/_modules/custom-data/custom-data.controller.ts.html +0 -292
- package/coverage/_modules/custom-data/custom-data.data-service.ts.html +0 -148
- package/coverage/_modules/custom-data/get-custom-data-routing-module.util.ts.html +0 -157
- package/coverage/_modules/custom-data/index.html +0 -146
- package/coverage/_modules/defaults/_models/default-user.data-model.ts.html +0 -301
- package/coverage/_modules/defaults/_models/index.html +0 -116
- package/coverage/_modules/defaults/_services/default-auth.service.ts.html +0 -616
- package/coverage/_modules/defaults/_services/default-socket-events.service.ts.html +0 -268
- package/coverage/_modules/defaults/_services/default-user.data-service.ts.html +0 -379
- package/coverage/_modules/defaults/_services/index.html +0 -146
- package/coverage/_modules/discord-assistant/_collections/dias.util.ts.html +0 -481
- package/coverage/_modules/discord-assistant/_collections/index.html +0 -116
- package/coverage/_modules/discord-assistant/_models/dias-knowledge.data-model.ts.html +0 -241
- package/coverage/_modules/discord-assistant/_models/index.html +0 -116
- package/coverage/_modules/discord-assistant/_services/dias-chunk.data-service.ts.html +0 -616
- package/coverage/_modules/discord-assistant/_services/dias-io.control-service.ts.html +0 -292
- package/coverage/_modules/discord-assistant/_services/dias-main.control-service.ts.html +0 -166
- package/coverage/_modules/discord-assistant/_services/dias.service-base.ts.html +0 -313
- package/coverage/_modules/discord-assistant/_services/index.html +0 -161
- package/coverage/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.ts.html +0 -118
- package/coverage/_modules/discord-assistant-voiced/_services/index.html +0 -116
- package/coverage/_modules/discord-bot/_collections/dibo-global-settings.conts.ts.html +0 -250
- package/coverage/_modules/discord-bot/_collections/dibo-operations.util.ts.html +0 -1246
- package/coverage/_modules/discord-bot/_collections/index.html +0 -131
- package/coverage/_modules/discord-bot/_models/dibo-last-mention-date.inteface.ts.html +0 -106
- package/coverage/_modules/discord-bot/_models/index.html +0 -116
- package/coverage/_modules/discord-bot/_services/dibo-commands.control-service.ts.html +0 -544
- package/coverage/_modules/discord-bot/_services/dibo-io.control-service.ts.html +0 -1003
- package/coverage/_modules/discord-bot/_services/dibo-main.control-service.ts.html +0 -1546
- package/coverage/_modules/discord-bot/_services/dibo-routines.control-service.ts.html +0 -376
- package/coverage/_modules/discord-bot/_services/index.html +0 -161
- package/coverage/_modules/messaging/_collections/get-messaging-routing-module.util.ts.html +0 -163
- package/coverage/_modules/messaging/_collections/index.html +0 -131
- package/coverage/_modules/messaging/_collections/msg.util.ts.html +0 -334
- package/coverage/_modules/messaging/_services/index.html +0 -191
- package/coverage/_modules/messaging/_services/msg-conversation.data-service.ts.html +0 -523
- package/coverage/_modules/messaging/_services/msg-events.service.ts.html +0 -886
- package/coverage/_modules/messaging/_services/msg-integration.control-service.ts.html +0 -622
- package/coverage/_modules/messaging/_services/msg-main.control-service.ts.html +0 -1738
- package/coverage/_modules/messaging/_services/msg-message.data-service.ts.html +0 -472
- package/coverage/_modules/messaging/_services/msg.controller.ts.html +0 -1195
- package/coverage/_modules/mock/app-extended-server.mock.ts.html +0 -688
- package/coverage/_modules/mock/app-params.mock.ts.html +0 -112
- package/coverage/_modules/mock/app-server.mock.ts.html +0 -649
- package/coverage/_modules/mock/auth-service.mock.ts.html +0 -169
- package/coverage/_modules/mock/controller.mock.ts.html +0 -133
- package/coverage/_modules/mock/data-model.mock.ts.html +0 -331
- package/coverage/_modules/mock/email-service-collection.mock.ts.html +0 -130
- package/coverage/_modules/mock/email-service.mock.ts.html +0 -145
- package/coverage/_modules/mock/endpoint.mock.ts.html +0 -358
- package/coverage/_modules/mock/index.html +0 -266
- package/coverage/_modules/mock/socket-client.mock.ts.html +0 -220
- package/coverage/_modules/mock/socket-server.mock.ts.html +0 -247
- package/coverage/_modules/oauth2/_routes/index.html +0 -116
- package/coverage/_modules/oauth2/_routes/oauth2.controller.ts.html +0 -379
- package/coverage/_modules/oauth2/_services/index.html +0 -131
- package/coverage/_modules/oauth2/_services/oauth2.auth-service.ts.html +0 -781
- package/coverage/_modules/oauth2/_services/oauth2.control-service.ts.html +0 -2044
- package/coverage/_modules/server/errors/errors.control-service.ts.html +0 -292
- package/coverage/_modules/server/errors/errors.controller.ts.html +0 -895
- package/coverage/_modules/server/errors/errors.data-service.ts.html +0 -1666
- package/coverage/_modules/server/errors/index.html +0 -146
- package/coverage/_modules/server/server-status/index.html +0 -161
- package/coverage/_modules/server/server-status/server-status-snapshot.control-service.ts.html +0 -136
- package/coverage/_modules/server/server-status/server-status-snapshot.data-service.ts.html +0 -196
- package/coverage/_modules/server/server-status/server-status.control-service.ts.html +0 -1093
- package/coverage/_modules/server/server-status/server-status.controller.ts.html +0 -478
- package/coverage/_modules/socket/_models/index.html +0 -146
- package/coverage/_modules/socket/_models/socket-client-service-params.control-model.ts.html +0 -151
- package/coverage/_modules/socket/_models/socket-presence.control-model.ts.html +0 -715
- package/coverage/_modules/socket/_models/socket-server-service-params.control-model.ts.html +0 -145
- package/coverage/_modules/socket/_services/index.html +0 -131
- package/coverage/_modules/socket/_services/socket-client.service.ts.html +0 -862
- package/coverage/_modules/socket/_services/socket-server.service.ts.html +0 -3196
- package/coverage/_modules/socket/app-extended.server.ts.html +0 -1954
- package/coverage/_modules/socket/index.html +0 -116
- package/coverage/_modules/test/get-test-routing-module.util.ts.html +0 -154
- package/coverage/_modules/test/index.html +0 -131
- package/coverage/_modules/test/test.controller.ts.html +0 -430
- package/coverage/_modules/usage/get-usage-routing-module.util.ts.html +0 -151
- package/coverage/_modules/usage/index.html +0 -146
- package/coverage/_modules/usage/usage.controller.ts.html +0 -463
- package/coverage/_modules/usage/usage.data-service.ts.html +0 -640
- package/coverage/_services/base/api.service-base.ts.html +0 -307
- package/coverage/_services/base/archive-data.service.ts.html +0 -727
- package/coverage/_services/base/data.service.ts.html +0 -7033
- package/coverage/_services/base/db.service.ts.html +0 -4786
- package/coverage/_services/base/index.html +0 -191
- package/coverage/_services/base/singleton.service-base.ts.html +0 -157
- package/coverage/_services/base/singleton.service.ts.html +0 -190
- package/coverage/_services/core/api.service.ts.html +0 -1900
- package/coverage/_services/core/auth.service.ts.html +0 -607
- package/coverage/_services/core/email.service.ts.html +0 -2302
- package/coverage/_services/core/global.service.ts.html +0 -1363
- package/coverage/_services/core/index.html +0 -176
- package/coverage/_services/core/service-collection.service.ts.html +0 -103
- package/coverage/_services/index.html +0 -116
- package/coverage/_services/route/controller.service.ts.html +0 -475
- package/coverage/_services/route/index.html +0 -131
- package/coverage/_services/route/routing-module.service.ts.html +0 -1075
- package/coverage/_services/server/app.server.ts.html +0 -4408
- package/coverage/_services/server/index.html +0 -116
- package/coverage/_services/shared.static-service.ts.html +0 -319
- package/coverage/base.css +0 -224
- package/coverage/block-navigation.js +0 -87
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +0 -821
- package/coverage/lcov-report/_collections/archive.util.ts.html +0 -139
- package/coverage/lcov-report/_collections/get-environment-settings.util.ts.html +0 -229
- package/coverage/lcov-report/_collections/index.html +0 -146
- package/coverage/lcov-report/_collections/star.controller.ts.html +0 -472
- package/coverage/lcov-report/_models/control-models/api-call-params.control-model.ts.html +0 -511
- package/coverage/lcov-report/_models/control-models/app-ext-system-controls.control-model.ts.html +0 -112
- package/coverage/lcov-report/_models/control-models/app-params.control-model.ts.html +0 -475
- package/coverage/lcov-report/_models/control-models/app-system-controls.control-model.ts.html +0 -112
- package/coverage/lcov-report/_models/control-models/endpoint-params.control-model.ts.html +0 -1618
- package/coverage/lcov-report/_models/control-models/http-settings.control-model.ts.html +0 -172
- package/coverage/lcov-report/_models/control-models/index.html +0 -206
- package/coverage/lcov-report/_models/control-models/system-control.control-model.ts.html +0 -121
- package/coverage/lcov-report/_modules/ai/_models/ai-input-interfaces.ts.html +0 -436
- package/coverage/lcov-report/_modules/ai/_models/index.html +0 -116
- package/coverage/lcov-report/_modules/ai/_modules/document-ai/_collections/dai-chunking.util.ts.html +0 -1993
- package/coverage/lcov-report/_modules/ai/_modules/document-ai/_collections/dai-document.util.ts.html +0 -340
- package/coverage/lcov-report/_modules/ai/_modules/document-ai/_collections/index.html +0 -131
- package/coverage/lcov-report/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-chunk.data-model.ts.html +0 -523
- package/coverage/lcov-report/_modules/ai/_modules/document-ai/_models/data-models/dai-doc-page.data-model.ts.html +0 -571
- package/coverage/lcov-report/_modules/ai/_modules/document-ai/_models/data-models/dai-document.data-model.ts.html +0 -382
- package/coverage/lcov-report/_modules/ai/_modules/document-ai/_models/data-models/index.html +0 -146
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_collections/index.html +0 -131
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests-hu.conts.ts.html +0 -331
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_collections/oai-llm-predefined-requests.conts.ts.html +0 -310
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/data-services/index.html +0 -161
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-chunk-data.service.ts.html +0 -958
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/data-services/oai-doc-page.data-service.ts.html +0 -1801
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/data-services/oai-document.data-service.ts.html +0 -1390
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/data-services/oai-vector-data.service.ts.html +0 -1915
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/index.html +0 -146
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/oai-embedding.control-service.ts.html +0 -334
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/oai-llm-chat.service-base.ts.html +0 -1822
- package/coverage/lcov-report/_modules/ai/_modules/open-ai/_services/oai-llm.service-base.ts.html +0 -2584
- package/coverage/lcov-report/_modules/ai/_services/ai-embedding.service-base.ts.html +0 -208
- package/coverage/lcov-report/_modules/ai/_services/ai-llm-chat.service-base.ts.html +0 -289
- package/coverage/lcov-report/_modules/ai/_services/ai-llm.service-base.ts.html +0 -1060
- package/coverage/lcov-report/_modules/ai/_services/ai-provider.service-base.ts.html +0 -172
- package/coverage/lcov-report/_modules/ai/_services/index.html +0 -161
- package/coverage/lcov-report/_modules/assistant/_collections/ass.util.ts.html +0 -235
- package/coverage/lcov-report/_modules/assistant/_collections/index.html +0 -116
- package/coverage/lcov-report/_modules/assistant/_services/ass-io.control-service.ts.html +0 -307
- package/coverage/lcov-report/_modules/assistant/_services/ass-main.control-service.ts.html +0 -406
- package/coverage/lcov-report/_modules/assistant/_services/index.html +0 -131
- package/coverage/lcov-report/_modules/bot/_modules/discord-bot/_models/dib-platform.types.ts.html +0 -112
- package/coverage/lcov-report/_modules/bot/_modules/discord-bot/_models/index.html +0 -116
- package/coverage/lcov-report/_modules/bot/_modules/discord-bot/_services/dib-messaging-provider.control-service.ts.html +0 -1978
- package/coverage/lcov-report/_modules/bot/_modules/discord-bot/_services/index.html +0 -116
- package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_collections/dyb-operations.util.ts.html +0 -250
- package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_collections/index.html +0 -116
- package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_models/dyb-platform.types.ts.html +0 -130
- package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_models/index.html +0 -116
- package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_services/dyb-messaging-provider.control-service.ts.html +0 -1414
- package/coverage/lcov-report/_modules/bot/_modules/dynamo-bot/_services/index.html +0 -116
- package/coverage/lcov-report/_modules/bot/_modules/slack-bot/_models/index.html +0 -116
- package/coverage/lcov-report/_modules/bot/_modules/slack-bot/_models/slb-platform.types.ts.html +0 -112
- package/coverage/lcov-report/_modules/bot/_modules/slack-bot/_services/index.html +0 -116
- package/coverage/lcov-report/_modules/bot/_modules/slack-bot/_services/slb-messaging-provider.control-service.ts.html +0 -664
- package/coverage/lcov-report/_modules/bot/_modules/teams-bot/_models/index.html +0 -116
- package/coverage/lcov-report/_modules/bot/_modules/teams-bot/_models/teb-platform.types.ts.html +0 -112
- package/coverage/lcov-report/_modules/bot/_modules/teams-bot/_services/index.html +0 -116
- package/coverage/lcov-report/_modules/bot/_modules/teams-bot/_services/teb-messaging-provider.control-service.ts.html +0 -664
- package/coverage/lcov-report/_modules/bot/_services/bot-commands.control-service.ts.html +0 -559
- package/coverage/lcov-report/_modules/bot/_services/bot-io.control-service.ts.html +0 -1072
- package/coverage/lcov-report/_modules/bot/_services/bot-main.control-service.ts.html +0 -1552
- package/coverage/lcov-report/_modules/bot/_services/bot-messaging-provider.service-base.ts.html +0 -556
- package/coverage/lcov-report/_modules/bot/_services/bot-routines.control-service.ts.html +0 -319
- package/coverage/lcov-report/_modules/bot/_services/index.html +0 -176
- package/coverage/lcov-report/_modules/custom-data/custom-data.controller.ts.html +0 -292
- package/coverage/lcov-report/_modules/custom-data/custom-data.data-service.ts.html +0 -148
- package/coverage/lcov-report/_modules/custom-data/get-custom-data-routing-module.util.ts.html +0 -157
- package/coverage/lcov-report/_modules/custom-data/index.html +0 -146
- package/coverage/lcov-report/_modules/defaults/_models/default-user.data-model.ts.html +0 -301
- package/coverage/lcov-report/_modules/defaults/_models/index.html +0 -116
- package/coverage/lcov-report/_modules/defaults/_services/default-auth.service.ts.html +0 -616
- package/coverage/lcov-report/_modules/defaults/_services/default-socket-events.service.ts.html +0 -268
- package/coverage/lcov-report/_modules/defaults/_services/default-user.data-service.ts.html +0 -379
- package/coverage/lcov-report/_modules/defaults/_services/index.html +0 -146
- package/coverage/lcov-report/_modules/discord-assistant/_collections/dias.util.ts.html +0 -481
- package/coverage/lcov-report/_modules/discord-assistant/_collections/index.html +0 -116
- package/coverage/lcov-report/_modules/discord-assistant/_models/dias-knowledge.data-model.ts.html +0 -241
- package/coverage/lcov-report/_modules/discord-assistant/_models/index.html +0 -116
- package/coverage/lcov-report/_modules/discord-assistant/_services/dias-chunk.data-service.ts.html +0 -616
- package/coverage/lcov-report/_modules/discord-assistant/_services/dias-io.control-service.ts.html +0 -292
- package/coverage/lcov-report/_modules/discord-assistant/_services/dias-main.control-service.ts.html +0 -166
- package/coverage/lcov-report/_modules/discord-assistant/_services/dias.service-base.ts.html +0 -313
- package/coverage/lcov-report/_modules/discord-assistant/_services/index.html +0 -161
- package/coverage/lcov-report/_modules/discord-assistant-voiced/_services/dias-discord-bot.control-service.ts.html +0 -118
- package/coverage/lcov-report/_modules/discord-assistant-voiced/_services/index.html +0 -116
- package/coverage/lcov-report/_modules/discord-bot/_collections/dibo-global-settings.conts.ts.html +0 -250
- package/coverage/lcov-report/_modules/discord-bot/_collections/dibo-operations.util.ts.html +0 -1246
- package/coverage/lcov-report/_modules/discord-bot/_collections/index.html +0 -131
- package/coverage/lcov-report/_modules/discord-bot/_models/dibo-last-mention-date.inteface.ts.html +0 -106
- package/coverage/lcov-report/_modules/discord-bot/_models/index.html +0 -116
- package/coverage/lcov-report/_modules/discord-bot/_services/dibo-commands.control-service.ts.html +0 -544
- package/coverage/lcov-report/_modules/discord-bot/_services/dibo-io.control-service.ts.html +0 -1003
- package/coverage/lcov-report/_modules/discord-bot/_services/dibo-main.control-service.ts.html +0 -1546
- package/coverage/lcov-report/_modules/discord-bot/_services/dibo-routines.control-service.ts.html +0 -376
- package/coverage/lcov-report/_modules/discord-bot/_services/index.html +0 -161
- package/coverage/lcov-report/_modules/messaging/_collections/get-messaging-routing-module.util.ts.html +0 -163
- package/coverage/lcov-report/_modules/messaging/_collections/index.html +0 -131
- package/coverage/lcov-report/_modules/messaging/_collections/msg.util.ts.html +0 -334
- package/coverage/lcov-report/_modules/messaging/_services/index.html +0 -191
- package/coverage/lcov-report/_modules/messaging/_services/msg-conversation.data-service.ts.html +0 -523
- package/coverage/lcov-report/_modules/messaging/_services/msg-events.service.ts.html +0 -886
- package/coverage/lcov-report/_modules/messaging/_services/msg-integration.control-service.ts.html +0 -622
- package/coverage/lcov-report/_modules/messaging/_services/msg-main.control-service.ts.html +0 -1738
- package/coverage/lcov-report/_modules/messaging/_services/msg-message.data-service.ts.html +0 -472
- package/coverage/lcov-report/_modules/messaging/_services/msg.controller.ts.html +0 -1195
- package/coverage/lcov-report/_modules/mock/app-extended-server.mock.ts.html +0 -688
- package/coverage/lcov-report/_modules/mock/app-params.mock.ts.html +0 -112
- package/coverage/lcov-report/_modules/mock/app-server.mock.ts.html +0 -649
- package/coverage/lcov-report/_modules/mock/auth-service.mock.ts.html +0 -169
- package/coverage/lcov-report/_modules/mock/controller.mock.ts.html +0 -133
- package/coverage/lcov-report/_modules/mock/data-model.mock.ts.html +0 -331
- package/coverage/lcov-report/_modules/mock/email-service-collection.mock.ts.html +0 -130
- package/coverage/lcov-report/_modules/mock/email-service.mock.ts.html +0 -145
- package/coverage/lcov-report/_modules/mock/endpoint.mock.ts.html +0 -358
- package/coverage/lcov-report/_modules/mock/index.html +0 -266
- package/coverage/lcov-report/_modules/mock/socket-client.mock.ts.html +0 -220
- package/coverage/lcov-report/_modules/mock/socket-server.mock.ts.html +0 -247
- package/coverage/lcov-report/_modules/oauth2/_routes/index.html +0 -116
- package/coverage/lcov-report/_modules/oauth2/_routes/oauth2.controller.ts.html +0 -379
- package/coverage/lcov-report/_modules/oauth2/_services/index.html +0 -131
- package/coverage/lcov-report/_modules/oauth2/_services/oauth2.auth-service.ts.html +0 -781
- package/coverage/lcov-report/_modules/oauth2/_services/oauth2.control-service.ts.html +0 -2044
- package/coverage/lcov-report/_modules/server/errors/errors.control-service.ts.html +0 -292
- package/coverage/lcov-report/_modules/server/errors/errors.controller.ts.html +0 -895
- package/coverage/lcov-report/_modules/server/errors/errors.data-service.ts.html +0 -1666
- package/coverage/lcov-report/_modules/server/errors/index.html +0 -146
- package/coverage/lcov-report/_modules/server/server-status/index.html +0 -161
- package/coverage/lcov-report/_modules/server/server-status/server-status-snapshot.control-service.ts.html +0 -136
- package/coverage/lcov-report/_modules/server/server-status/server-status-snapshot.data-service.ts.html +0 -196
- package/coverage/lcov-report/_modules/server/server-status/server-status.control-service.ts.html +0 -1093
- package/coverage/lcov-report/_modules/server/server-status/server-status.controller.ts.html +0 -478
- package/coverage/lcov-report/_modules/socket/_models/index.html +0 -146
- package/coverage/lcov-report/_modules/socket/_models/socket-client-service-params.control-model.ts.html +0 -151
- package/coverage/lcov-report/_modules/socket/_models/socket-presence.control-model.ts.html +0 -715
- package/coverage/lcov-report/_modules/socket/_models/socket-server-service-params.control-model.ts.html +0 -145
- package/coverage/lcov-report/_modules/socket/_services/index.html +0 -131
- package/coverage/lcov-report/_modules/socket/_services/socket-client.service.ts.html +0 -862
- package/coverage/lcov-report/_modules/socket/_services/socket-server.service.ts.html +0 -3196
- package/coverage/lcov-report/_modules/socket/app-extended.server.ts.html +0 -1954
- package/coverage/lcov-report/_modules/socket/index.html +0 -116
- package/coverage/lcov-report/_modules/test/get-test-routing-module.util.ts.html +0 -154
- package/coverage/lcov-report/_modules/test/index.html +0 -131
- package/coverage/lcov-report/_modules/test/test.controller.ts.html +0 -430
- package/coverage/lcov-report/_modules/usage/get-usage-routing-module.util.ts.html +0 -151
- package/coverage/lcov-report/_modules/usage/index.html +0 -146
- package/coverage/lcov-report/_modules/usage/usage.controller.ts.html +0 -463
- package/coverage/lcov-report/_modules/usage/usage.data-service.ts.html +0 -640
- package/coverage/lcov-report/_services/base/api.service-base.ts.html +0 -307
- package/coverage/lcov-report/_services/base/archive-data.service.ts.html +0 -727
- package/coverage/lcov-report/_services/base/data.service.ts.html +0 -7033
- package/coverage/lcov-report/_services/base/db.service.ts.html +0 -4786
- package/coverage/lcov-report/_services/base/index.html +0 -191
- package/coverage/lcov-report/_services/base/singleton.service-base.ts.html +0 -157
- package/coverage/lcov-report/_services/base/singleton.service.ts.html +0 -190
- package/coverage/lcov-report/_services/core/api.service.ts.html +0 -1900
- package/coverage/lcov-report/_services/core/auth.service.ts.html +0 -607
- package/coverage/lcov-report/_services/core/email.service.ts.html +0 -2302
- package/coverage/lcov-report/_services/core/global.service.ts.html +0 -1363
- package/coverage/lcov-report/_services/core/index.html +0 -176
- package/coverage/lcov-report/_services/core/service-collection.service.ts.html +0 -103
- package/coverage/lcov-report/_services/index.html +0 -116
- package/coverage/lcov-report/_services/route/controller.service.ts.html +0 -475
- package/coverage/lcov-report/_services/route/index.html +0 -131
- package/coverage/lcov-report/_services/route/routing-module.service.ts.html +0 -1075
- package/coverage/lcov-report/_services/server/app.server.ts.html +0 -4408
- package/coverage/lcov-report/_services/server/index.html +0 -116
- package/coverage/lcov-report/_services/shared.static-service.ts.html +0 -319
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -821
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -210
- package/coverage/lcov.info +0 -29957
- package/coverage/prettify.css +0 -1
- package/coverage/prettify.js +0 -2
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +0 -210
- package/coverage/tmp/coverage-111712-1762988673351-0.json +0 -1
- package/coverage/tmp/coverage-112308-1762988673527-0.json +0 -1
- package/coverage/tmp/coverage-112324-1762988615026-0.json +0 -1
- package/coverage/tmp/coverage-112436-1762988615438-0.json +0 -1
- package/coverage/tmp/coverage-112512-1762988673477-0.json +0 -1
- package/logs/cicd-job.json +0 -3
- package/logs/cicd-output.log +0 -31
- package/logs/cicd-report.json +0 -148
- package/logs/cicd-status.json +0 -70
|
@@ -1,2044 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<!doctype html>
|
|
3
|
-
<html lang="en">
|
|
4
|
-
|
|
5
|
-
<head>
|
|
6
|
-
<title>Code coverage report for _modules/oauth2/_services/oauth2.control-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">_modules/oauth2/_services</a> oauth2.control-service.ts</h1>
|
|
23
|
-
<div class='clearfix'>
|
|
24
|
-
|
|
25
|
-
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">0% </span>
|
|
27
|
-
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>0/654</span>
|
|
29
|
-
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">0% </span>
|
|
34
|
-
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/1</span>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">0% </span>
|
|
41
|
-
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>0/1</span>
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">0% </span>
|
|
48
|
-
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>0/654</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></td><td class="line-coverage quiet"><span class="cline-any cline-no"> </span>
|
|
720
|
-
<span class="cline-any cline-no"> </span>
|
|
721
|
-
<span class="cline-any cline-no"> </span>
|
|
722
|
-
<span class="cline-any cline-no"> </span>
|
|
723
|
-
<span class="cline-any cline-no"> </span>
|
|
724
|
-
<span class="cline-any cline-no"> </span>
|
|
725
|
-
<span class="cline-any cline-no"> </span>
|
|
726
|
-
<span class="cline-any cline-no"> </span>
|
|
727
|
-
<span class="cline-any cline-no"> </span>
|
|
728
|
-
<span class="cline-any cline-no"> </span>
|
|
729
|
-
<span class="cline-any cline-no"> </span>
|
|
730
|
-
<span class="cline-any cline-no"> </span>
|
|
731
|
-
<span class="cline-any cline-no"> </span>
|
|
732
|
-
<span class="cline-any cline-no"> </span>
|
|
733
|
-
<span class="cline-any cline-no"> </span>
|
|
734
|
-
<span class="cline-any cline-no"> </span>
|
|
735
|
-
<span class="cline-any cline-no"> </span>
|
|
736
|
-
<span class="cline-any cline-no"> </span>
|
|
737
|
-
<span class="cline-any cline-no"> </span>
|
|
738
|
-
<span class="cline-any cline-no"> </span>
|
|
739
|
-
<span class="cline-any cline-no"> </span>
|
|
740
|
-
<span class="cline-any cline-no"> </span>
|
|
741
|
-
<span class="cline-any cline-no"> </span>
|
|
742
|
-
<span class="cline-any cline-no"> </span>
|
|
743
|
-
<span class="cline-any cline-no"> </span>
|
|
744
|
-
<span class="cline-any cline-no"> </span>
|
|
745
|
-
<span class="cline-any cline-no"> </span>
|
|
746
|
-
<span class="cline-any cline-no"> </span>
|
|
747
|
-
<span class="cline-any cline-no"> </span>
|
|
748
|
-
<span class="cline-any cline-no"> </span>
|
|
749
|
-
<span class="cline-any cline-no"> </span>
|
|
750
|
-
<span class="cline-any cline-no"> </span>
|
|
751
|
-
<span class="cline-any cline-no"> </span>
|
|
752
|
-
<span class="cline-any cline-no"> </span>
|
|
753
|
-
<span class="cline-any cline-no"> </span>
|
|
754
|
-
<span class="cline-any cline-no"> </span>
|
|
755
|
-
<span class="cline-any cline-no"> </span>
|
|
756
|
-
<span class="cline-any cline-no"> </span>
|
|
757
|
-
<span class="cline-any cline-no"> </span>
|
|
758
|
-
<span class="cline-any cline-no"> </span>
|
|
759
|
-
<span class="cline-any cline-no"> </span>
|
|
760
|
-
<span class="cline-any cline-no"> </span>
|
|
761
|
-
<span class="cline-any cline-no"> </span>
|
|
762
|
-
<span class="cline-any cline-no"> </span>
|
|
763
|
-
<span class="cline-any cline-no"> </span>
|
|
764
|
-
<span class="cline-any cline-no"> </span>
|
|
765
|
-
<span class="cline-any cline-no"> </span>
|
|
766
|
-
<span class="cline-any cline-no"> </span>
|
|
767
|
-
<span class="cline-any cline-no"> </span>
|
|
768
|
-
<span class="cline-any cline-no"> </span>
|
|
769
|
-
<span class="cline-any cline-no"> </span>
|
|
770
|
-
<span class="cline-any cline-no"> </span>
|
|
771
|
-
<span class="cline-any cline-no"> </span>
|
|
772
|
-
<span class="cline-any cline-no"> </span>
|
|
773
|
-
<span class="cline-any cline-no"> </span>
|
|
774
|
-
<span class="cline-any cline-no"> </span>
|
|
775
|
-
<span class="cline-any cline-no"> </span>
|
|
776
|
-
<span class="cline-any cline-no"> </span>
|
|
777
|
-
<span class="cline-any cline-no"> </span>
|
|
778
|
-
<span class="cline-any cline-no"> </span>
|
|
779
|
-
<span class="cline-any cline-no"> </span>
|
|
780
|
-
<span class="cline-any cline-no"> </span>
|
|
781
|
-
<span class="cline-any cline-no"> </span>
|
|
782
|
-
<span class="cline-any cline-no"> </span>
|
|
783
|
-
<span class="cline-any cline-no"> </span>
|
|
784
|
-
<span class="cline-any cline-no"> </span>
|
|
785
|
-
<span class="cline-any cline-no"> </span>
|
|
786
|
-
<span class="cline-any cline-no"> </span>
|
|
787
|
-
<span class="cline-any cline-no"> </span>
|
|
788
|
-
<span class="cline-any cline-no"> </span>
|
|
789
|
-
<span class="cline-any cline-no"> </span>
|
|
790
|
-
<span class="cline-any cline-no"> </span>
|
|
791
|
-
<span class="cline-any cline-no"> </span>
|
|
792
|
-
<span class="cline-any cline-no"> </span>
|
|
793
|
-
<span class="cline-any cline-no"> </span>
|
|
794
|
-
<span class="cline-any cline-no"> </span>
|
|
795
|
-
<span class="cline-any cline-no"> </span>
|
|
796
|
-
<span class="cline-any cline-no"> </span>
|
|
797
|
-
<span class="cline-any cline-no"> </span>
|
|
798
|
-
<span class="cline-any cline-no"> </span>
|
|
799
|
-
<span class="cline-any cline-no"> </span>
|
|
800
|
-
<span class="cline-any cline-no"> </span>
|
|
801
|
-
<span class="cline-any cline-no"> </span>
|
|
802
|
-
<span class="cline-any cline-no"> </span>
|
|
803
|
-
<span class="cline-any cline-no"> </span>
|
|
804
|
-
<span class="cline-any cline-no"> </span>
|
|
805
|
-
<span class="cline-any cline-no"> </span>
|
|
806
|
-
<span class="cline-any cline-no"> </span>
|
|
807
|
-
<span class="cline-any cline-no"> </span>
|
|
808
|
-
<span class="cline-any cline-no"> </span>
|
|
809
|
-
<span class="cline-any cline-no"> </span>
|
|
810
|
-
<span class="cline-any cline-no"> </span>
|
|
811
|
-
<span class="cline-any cline-no"> </span>
|
|
812
|
-
<span class="cline-any cline-no"> </span>
|
|
813
|
-
<span class="cline-any cline-no"> </span>
|
|
814
|
-
<span class="cline-any cline-no"> </span>
|
|
815
|
-
<span class="cline-any cline-no"> </span>
|
|
816
|
-
<span class="cline-any cline-no"> </span>
|
|
817
|
-
<span class="cline-any cline-no"> </span>
|
|
818
|
-
<span class="cline-any cline-no"> </span>
|
|
819
|
-
<span class="cline-any cline-no"> </span>
|
|
820
|
-
<span class="cline-any cline-no"> </span>
|
|
821
|
-
<span class="cline-any cline-no"> </span>
|
|
822
|
-
<span class="cline-any cline-no"> </span>
|
|
823
|
-
<span class="cline-any cline-no"> </span>
|
|
824
|
-
<span class="cline-any cline-no"> </span>
|
|
825
|
-
<span class="cline-any cline-no"> </span>
|
|
826
|
-
<span class="cline-any cline-no"> </span>
|
|
827
|
-
<span class="cline-any cline-no"> </span>
|
|
828
|
-
<span class="cline-any cline-no"> </span>
|
|
829
|
-
<span class="cline-any cline-no"> </span>
|
|
830
|
-
<span class="cline-any cline-no"> </span>
|
|
831
|
-
<span class="cline-any cline-no"> </span>
|
|
832
|
-
<span class="cline-any cline-no"> </span>
|
|
833
|
-
<span class="cline-any cline-no"> </span>
|
|
834
|
-
<span class="cline-any cline-no"> </span>
|
|
835
|
-
<span class="cline-any cline-no"> </span>
|
|
836
|
-
<span class="cline-any cline-no"> </span>
|
|
837
|
-
<span class="cline-any cline-no"> </span>
|
|
838
|
-
<span class="cline-any cline-no"> </span>
|
|
839
|
-
<span class="cline-any cline-no"> </span>
|
|
840
|
-
<span class="cline-any cline-no"> </span>
|
|
841
|
-
<span class="cline-any cline-no"> </span>
|
|
842
|
-
<span class="cline-any cline-no"> </span>
|
|
843
|
-
<span class="cline-any cline-no"> </span>
|
|
844
|
-
<span class="cline-any cline-no"> </span>
|
|
845
|
-
<span class="cline-any cline-no"> </span>
|
|
846
|
-
<span class="cline-any cline-no"> </span>
|
|
847
|
-
<span class="cline-any cline-no"> </span>
|
|
848
|
-
<span class="cline-any cline-no"> </span>
|
|
849
|
-
<span class="cline-any cline-no"> </span>
|
|
850
|
-
<span class="cline-any cline-no"> </span>
|
|
851
|
-
<span class="cline-any cline-no"> </span>
|
|
852
|
-
<span class="cline-any cline-no"> </span>
|
|
853
|
-
<span class="cline-any cline-no"> </span>
|
|
854
|
-
<span class="cline-any cline-no"> </span>
|
|
855
|
-
<span class="cline-any cline-no"> </span>
|
|
856
|
-
<span class="cline-any cline-no"> </span>
|
|
857
|
-
<span class="cline-any cline-no"> </span>
|
|
858
|
-
<span class="cline-any cline-no"> </span>
|
|
859
|
-
<span class="cline-any cline-no"> </span>
|
|
860
|
-
<span class="cline-any cline-no"> </span>
|
|
861
|
-
<span class="cline-any cline-no"> </span>
|
|
862
|
-
<span class="cline-any cline-no"> </span>
|
|
863
|
-
<span class="cline-any cline-no"> </span>
|
|
864
|
-
<span class="cline-any cline-no"> </span>
|
|
865
|
-
<span class="cline-any cline-no"> </span>
|
|
866
|
-
<span class="cline-any cline-no"> </span>
|
|
867
|
-
<span class="cline-any cline-no"> </span>
|
|
868
|
-
<span class="cline-any cline-no"> </span>
|
|
869
|
-
<span class="cline-any cline-no"> </span>
|
|
870
|
-
<span class="cline-any cline-no"> </span>
|
|
871
|
-
<span class="cline-any cline-no"> </span>
|
|
872
|
-
<span class="cline-any cline-no"> </span>
|
|
873
|
-
<span class="cline-any cline-no"> </span>
|
|
874
|
-
<span class="cline-any cline-no"> </span>
|
|
875
|
-
<span class="cline-any cline-no"> </span>
|
|
876
|
-
<span class="cline-any cline-no"> </span>
|
|
877
|
-
<span class="cline-any cline-no"> </span>
|
|
878
|
-
<span class="cline-any cline-no"> </span>
|
|
879
|
-
<span class="cline-any cline-no"> </span>
|
|
880
|
-
<span class="cline-any cline-no"> </span>
|
|
881
|
-
<span class="cline-any cline-no"> </span>
|
|
882
|
-
<span class="cline-any cline-no"> </span>
|
|
883
|
-
<span class="cline-any cline-no"> </span>
|
|
884
|
-
<span class="cline-any cline-no"> </span>
|
|
885
|
-
<span class="cline-any cline-no"> </span>
|
|
886
|
-
<span class="cline-any cline-no"> </span>
|
|
887
|
-
<span class="cline-any cline-no"> </span>
|
|
888
|
-
<span class="cline-any cline-no"> </span>
|
|
889
|
-
<span class="cline-any cline-no"> </span>
|
|
890
|
-
<span class="cline-any cline-no"> </span>
|
|
891
|
-
<span class="cline-any cline-no"> </span>
|
|
892
|
-
<span class="cline-any cline-no"> </span>
|
|
893
|
-
<span class="cline-any cline-no"> </span>
|
|
894
|
-
<span class="cline-any cline-no"> </span>
|
|
895
|
-
<span class="cline-any cline-no"> </span>
|
|
896
|
-
<span class="cline-any cline-no"> </span>
|
|
897
|
-
<span class="cline-any cline-no"> </span>
|
|
898
|
-
<span class="cline-any cline-no"> </span>
|
|
899
|
-
<span class="cline-any cline-no"> </span>
|
|
900
|
-
<span class="cline-any cline-no"> </span>
|
|
901
|
-
<span class="cline-any cline-no"> </span>
|
|
902
|
-
<span class="cline-any cline-no"> </span>
|
|
903
|
-
<span class="cline-any cline-no"> </span>
|
|
904
|
-
<span class="cline-any cline-no"> </span>
|
|
905
|
-
<span class="cline-any cline-no"> </span>
|
|
906
|
-
<span class="cline-any cline-no"> </span>
|
|
907
|
-
<span class="cline-any cline-no"> </span>
|
|
908
|
-
<span class="cline-any cline-no"> </span>
|
|
909
|
-
<span class="cline-any cline-no"> </span>
|
|
910
|
-
<span class="cline-any cline-no"> </span>
|
|
911
|
-
<span class="cline-any cline-no"> </span>
|
|
912
|
-
<span class="cline-any cline-no"> </span>
|
|
913
|
-
<span class="cline-any cline-no"> </span>
|
|
914
|
-
<span class="cline-any cline-no"> </span>
|
|
915
|
-
<span class="cline-any cline-no"> </span>
|
|
916
|
-
<span class="cline-any cline-no"> </span>
|
|
917
|
-
<span class="cline-any cline-no"> </span>
|
|
918
|
-
<span class="cline-any cline-no"> </span>
|
|
919
|
-
<span class="cline-any cline-no"> </span>
|
|
920
|
-
<span class="cline-any cline-no"> </span>
|
|
921
|
-
<span class="cline-any cline-no"> </span>
|
|
922
|
-
<span class="cline-any cline-no"> </span>
|
|
923
|
-
<span class="cline-any cline-no"> </span>
|
|
924
|
-
<span class="cline-any cline-no"> </span>
|
|
925
|
-
<span class="cline-any cline-no"> </span>
|
|
926
|
-
<span class="cline-any cline-no"> </span>
|
|
927
|
-
<span class="cline-any cline-no"> </span>
|
|
928
|
-
<span class="cline-any cline-no"> </span>
|
|
929
|
-
<span class="cline-any cline-no"> </span>
|
|
930
|
-
<span class="cline-any cline-no"> </span>
|
|
931
|
-
<span class="cline-any cline-no"> </span>
|
|
932
|
-
<span class="cline-any cline-no"> </span>
|
|
933
|
-
<span class="cline-any cline-no"> </span>
|
|
934
|
-
<span class="cline-any cline-no"> </span>
|
|
935
|
-
<span class="cline-any cline-no"> </span>
|
|
936
|
-
<span class="cline-any cline-no"> </span>
|
|
937
|
-
<span class="cline-any cline-no"> </span>
|
|
938
|
-
<span class="cline-any cline-no"> </span>
|
|
939
|
-
<span class="cline-any cline-no"> </span>
|
|
940
|
-
<span class="cline-any cline-no"> </span>
|
|
941
|
-
<span class="cline-any cline-no"> </span>
|
|
942
|
-
<span class="cline-any cline-no"> </span>
|
|
943
|
-
<span class="cline-any cline-no"> </span>
|
|
944
|
-
<span class="cline-any cline-no"> </span>
|
|
945
|
-
<span class="cline-any cline-no"> </span>
|
|
946
|
-
<span class="cline-any cline-no"> </span>
|
|
947
|
-
<span class="cline-any cline-no"> </span>
|
|
948
|
-
<span class="cline-any cline-no"> </span>
|
|
949
|
-
<span class="cline-any cline-no"> </span>
|
|
950
|
-
<span class="cline-any cline-no"> </span>
|
|
951
|
-
<span class="cline-any cline-no"> </span>
|
|
952
|
-
<span class="cline-any cline-no"> </span>
|
|
953
|
-
<span class="cline-any cline-no"> </span>
|
|
954
|
-
<span class="cline-any cline-no"> </span>
|
|
955
|
-
<span class="cline-any cline-no"> </span>
|
|
956
|
-
<span class="cline-any cline-no"> </span>
|
|
957
|
-
<span class="cline-any cline-no"> </span>
|
|
958
|
-
<span class="cline-any cline-no"> </span>
|
|
959
|
-
<span class="cline-any cline-no"> </span>
|
|
960
|
-
<span class="cline-any cline-no"> </span>
|
|
961
|
-
<span class="cline-any cline-no"> </span>
|
|
962
|
-
<span class="cline-any cline-no"> </span>
|
|
963
|
-
<span class="cline-any cline-no"> </span>
|
|
964
|
-
<span class="cline-any cline-no"> </span>
|
|
965
|
-
<span class="cline-any cline-no"> </span>
|
|
966
|
-
<span class="cline-any cline-no"> </span>
|
|
967
|
-
<span class="cline-any cline-no"> </span>
|
|
968
|
-
<span class="cline-any cline-no"> </span>
|
|
969
|
-
<span class="cline-any cline-no"> </span>
|
|
970
|
-
<span class="cline-any cline-no"> </span>
|
|
971
|
-
<span class="cline-any cline-no"> </span>
|
|
972
|
-
<span class="cline-any cline-no"> </span>
|
|
973
|
-
<span class="cline-any cline-no"> </span>
|
|
974
|
-
<span class="cline-any cline-no"> </span>
|
|
975
|
-
<span class="cline-any cline-no"> </span>
|
|
976
|
-
<span class="cline-any cline-no"> </span>
|
|
977
|
-
<span class="cline-any cline-no"> </span>
|
|
978
|
-
<span class="cline-any cline-no"> </span>
|
|
979
|
-
<span class="cline-any cline-no"> </span>
|
|
980
|
-
<span class="cline-any cline-no"> </span>
|
|
981
|
-
<span class="cline-any cline-no"> </span>
|
|
982
|
-
<span class="cline-any cline-no"> </span>
|
|
983
|
-
<span class="cline-any cline-no"> </span>
|
|
984
|
-
<span class="cline-any cline-no"> </span>
|
|
985
|
-
<span class="cline-any cline-no"> </span>
|
|
986
|
-
<span class="cline-any cline-no"> </span>
|
|
987
|
-
<span class="cline-any cline-no"> </span>
|
|
988
|
-
<span class="cline-any cline-no"> </span>
|
|
989
|
-
<span class="cline-any cline-no"> </span>
|
|
990
|
-
<span class="cline-any cline-no"> </span>
|
|
991
|
-
<span class="cline-any cline-no"> </span>
|
|
992
|
-
<span class="cline-any cline-no"> </span>
|
|
993
|
-
<span class="cline-any cline-no"> </span>
|
|
994
|
-
<span class="cline-any cline-no"> </span>
|
|
995
|
-
<span class="cline-any cline-no"> </span>
|
|
996
|
-
<span class="cline-any cline-no"> </span>
|
|
997
|
-
<span class="cline-any cline-no"> </span>
|
|
998
|
-
<span class="cline-any cline-no"> </span>
|
|
999
|
-
<span class="cline-any cline-no"> </span>
|
|
1000
|
-
<span class="cline-any cline-no"> </span>
|
|
1001
|
-
<span class="cline-any cline-no"> </span>
|
|
1002
|
-
<span class="cline-any cline-no"> </span>
|
|
1003
|
-
<span class="cline-any cline-no"> </span>
|
|
1004
|
-
<span class="cline-any cline-no"> </span>
|
|
1005
|
-
<span class="cline-any cline-no"> </span>
|
|
1006
|
-
<span class="cline-any cline-no"> </span>
|
|
1007
|
-
<span class="cline-any cline-no"> </span>
|
|
1008
|
-
<span class="cline-any cline-no"> </span>
|
|
1009
|
-
<span class="cline-any cline-no"> </span>
|
|
1010
|
-
<span class="cline-any cline-no"> </span>
|
|
1011
|
-
<span class="cline-any cline-no"> </span>
|
|
1012
|
-
<span class="cline-any cline-no"> </span>
|
|
1013
|
-
<span class="cline-any cline-no"> </span>
|
|
1014
|
-
<span class="cline-any cline-no"> </span>
|
|
1015
|
-
<span class="cline-any cline-no"> </span>
|
|
1016
|
-
<span class="cline-any cline-no"> </span>
|
|
1017
|
-
<span class="cline-any cline-no"> </span>
|
|
1018
|
-
<span class="cline-any cline-no"> </span>
|
|
1019
|
-
<span class="cline-any cline-no"> </span>
|
|
1020
|
-
<span class="cline-any cline-no"> </span>
|
|
1021
|
-
<span class="cline-any cline-no"> </span>
|
|
1022
|
-
<span class="cline-any cline-no"> </span>
|
|
1023
|
-
<span class="cline-any cline-no"> </span>
|
|
1024
|
-
<span class="cline-any cline-no"> </span>
|
|
1025
|
-
<span class="cline-any cline-no"> </span>
|
|
1026
|
-
<span class="cline-any cline-no"> </span>
|
|
1027
|
-
<span class="cline-any cline-no"> </span>
|
|
1028
|
-
<span class="cline-any cline-no"> </span>
|
|
1029
|
-
<span class="cline-any cline-no"> </span>
|
|
1030
|
-
<span class="cline-any cline-no"> </span>
|
|
1031
|
-
<span class="cline-any cline-no"> </span>
|
|
1032
|
-
<span class="cline-any cline-no"> </span>
|
|
1033
|
-
<span class="cline-any cline-no"> </span>
|
|
1034
|
-
<span class="cline-any cline-no"> </span>
|
|
1035
|
-
<span class="cline-any cline-no"> </span>
|
|
1036
|
-
<span class="cline-any cline-no"> </span>
|
|
1037
|
-
<span class="cline-any cline-no"> </span>
|
|
1038
|
-
<span class="cline-any cline-no"> </span>
|
|
1039
|
-
<span class="cline-any cline-no"> </span>
|
|
1040
|
-
<span class="cline-any cline-no"> </span>
|
|
1041
|
-
<span class="cline-any cline-no"> </span>
|
|
1042
|
-
<span class="cline-any cline-no"> </span>
|
|
1043
|
-
<span class="cline-any cline-no"> </span>
|
|
1044
|
-
<span class="cline-any cline-no"> </span>
|
|
1045
|
-
<span class="cline-any cline-no"> </span>
|
|
1046
|
-
<span class="cline-any cline-no"> </span>
|
|
1047
|
-
<span class="cline-any cline-no"> </span>
|
|
1048
|
-
<span class="cline-any cline-no"> </span>
|
|
1049
|
-
<span class="cline-any cline-no"> </span>
|
|
1050
|
-
<span class="cline-any cline-no"> </span>
|
|
1051
|
-
<span class="cline-any cline-no"> </span>
|
|
1052
|
-
<span class="cline-any cline-no"> </span>
|
|
1053
|
-
<span class="cline-any cline-no"> </span>
|
|
1054
|
-
<span class="cline-any cline-no"> </span>
|
|
1055
|
-
<span class="cline-any cline-no"> </span>
|
|
1056
|
-
<span class="cline-any cline-no"> </span>
|
|
1057
|
-
<span class="cline-any cline-no"> </span>
|
|
1058
|
-
<span class="cline-any cline-no"> </span>
|
|
1059
|
-
<span class="cline-any cline-no"> </span>
|
|
1060
|
-
<span class="cline-any cline-no"> </span>
|
|
1061
|
-
<span class="cline-any cline-no"> </span>
|
|
1062
|
-
<span class="cline-any cline-no"> </span>
|
|
1063
|
-
<span class="cline-any cline-no"> </span>
|
|
1064
|
-
<span class="cline-any cline-no"> </span>
|
|
1065
|
-
<span class="cline-any cline-no"> </span>
|
|
1066
|
-
<span class="cline-any cline-no"> </span>
|
|
1067
|
-
<span class="cline-any cline-no"> </span>
|
|
1068
|
-
<span class="cline-any cline-no"> </span>
|
|
1069
|
-
<span class="cline-any cline-no"> </span>
|
|
1070
|
-
<span class="cline-any cline-no"> </span>
|
|
1071
|
-
<span class="cline-any cline-no"> </span>
|
|
1072
|
-
<span class="cline-any cline-no"> </span>
|
|
1073
|
-
<span class="cline-any cline-no"> </span>
|
|
1074
|
-
<span class="cline-any cline-no"> </span>
|
|
1075
|
-
<span class="cline-any cline-no"> </span>
|
|
1076
|
-
<span class="cline-any cline-no"> </span>
|
|
1077
|
-
<span class="cline-any cline-no"> </span>
|
|
1078
|
-
<span class="cline-any cline-no"> </span>
|
|
1079
|
-
<span class="cline-any cline-no"> </span>
|
|
1080
|
-
<span class="cline-any cline-no"> </span>
|
|
1081
|
-
<span class="cline-any cline-no"> </span>
|
|
1082
|
-
<span class="cline-any cline-no"> </span>
|
|
1083
|
-
<span class="cline-any cline-no"> </span>
|
|
1084
|
-
<span class="cline-any cline-no"> </span>
|
|
1085
|
-
<span class="cline-any cline-no"> </span>
|
|
1086
|
-
<span class="cline-any cline-no"> </span>
|
|
1087
|
-
<span class="cline-any cline-no"> </span>
|
|
1088
|
-
<span class="cline-any cline-no"> </span>
|
|
1089
|
-
<span class="cline-any cline-no"> </span>
|
|
1090
|
-
<span class="cline-any cline-no"> </span>
|
|
1091
|
-
<span class="cline-any cline-no"> </span>
|
|
1092
|
-
<span class="cline-any cline-no"> </span>
|
|
1093
|
-
<span class="cline-any cline-no"> </span>
|
|
1094
|
-
<span class="cline-any cline-no"> </span>
|
|
1095
|
-
<span class="cline-any cline-no"> </span>
|
|
1096
|
-
<span class="cline-any cline-no"> </span>
|
|
1097
|
-
<span class="cline-any cline-no"> </span>
|
|
1098
|
-
<span class="cline-any cline-no"> </span>
|
|
1099
|
-
<span class="cline-any cline-no"> </span>
|
|
1100
|
-
<span class="cline-any cline-no"> </span>
|
|
1101
|
-
<span class="cline-any cline-no"> </span>
|
|
1102
|
-
<span class="cline-any cline-no"> </span>
|
|
1103
|
-
<span class="cline-any cline-no"> </span>
|
|
1104
|
-
<span class="cline-any cline-no"> </span>
|
|
1105
|
-
<span class="cline-any cline-no"> </span>
|
|
1106
|
-
<span class="cline-any cline-no"> </span>
|
|
1107
|
-
<span class="cline-any cline-no"> </span>
|
|
1108
|
-
<span class="cline-any cline-no"> </span>
|
|
1109
|
-
<span class="cline-any cline-no"> </span>
|
|
1110
|
-
<span class="cline-any cline-no"> </span>
|
|
1111
|
-
<span class="cline-any cline-no"> </span>
|
|
1112
|
-
<span class="cline-any cline-no"> </span>
|
|
1113
|
-
<span class="cline-any cline-no"> </span>
|
|
1114
|
-
<span class="cline-any cline-no"> </span>
|
|
1115
|
-
<span class="cline-any cline-no"> </span>
|
|
1116
|
-
<span class="cline-any cline-no"> </span>
|
|
1117
|
-
<span class="cline-any cline-no"> </span>
|
|
1118
|
-
<span class="cline-any cline-no"> </span>
|
|
1119
|
-
<span class="cline-any cline-no"> </span>
|
|
1120
|
-
<span class="cline-any cline-no"> </span>
|
|
1121
|
-
<span class="cline-any cline-no"> </span>
|
|
1122
|
-
<span class="cline-any cline-no"> </span>
|
|
1123
|
-
<span class="cline-any cline-no"> </span>
|
|
1124
|
-
<span class="cline-any cline-no"> </span>
|
|
1125
|
-
<span class="cline-any cline-no"> </span>
|
|
1126
|
-
<span class="cline-any cline-no"> </span>
|
|
1127
|
-
<span class="cline-any cline-no"> </span>
|
|
1128
|
-
<span class="cline-any cline-no"> </span>
|
|
1129
|
-
<span class="cline-any cline-no"> </span>
|
|
1130
|
-
<span class="cline-any cline-no"> </span>
|
|
1131
|
-
<span class="cline-any cline-no"> </span>
|
|
1132
|
-
<span class="cline-any cline-no"> </span>
|
|
1133
|
-
<span class="cline-any cline-no"> </span>
|
|
1134
|
-
<span class="cline-any cline-no"> </span>
|
|
1135
|
-
<span class="cline-any cline-no"> </span>
|
|
1136
|
-
<span class="cline-any cline-no"> </span>
|
|
1137
|
-
<span class="cline-any cline-no"> </span>
|
|
1138
|
-
<span class="cline-any cline-no"> </span>
|
|
1139
|
-
<span class="cline-any cline-no"> </span>
|
|
1140
|
-
<span class="cline-any cline-no"> </span>
|
|
1141
|
-
<span class="cline-any cline-no"> </span>
|
|
1142
|
-
<span class="cline-any cline-no"> </span>
|
|
1143
|
-
<span class="cline-any cline-no"> </span>
|
|
1144
|
-
<span class="cline-any cline-no"> </span>
|
|
1145
|
-
<span class="cline-any cline-no"> </span>
|
|
1146
|
-
<span class="cline-any cline-no"> </span>
|
|
1147
|
-
<span class="cline-any cline-no"> </span>
|
|
1148
|
-
<span class="cline-any cline-no"> </span>
|
|
1149
|
-
<span class="cline-any cline-no"> </span>
|
|
1150
|
-
<span class="cline-any cline-no"> </span>
|
|
1151
|
-
<span class="cline-any cline-no"> </span>
|
|
1152
|
-
<span class="cline-any cline-no"> </span>
|
|
1153
|
-
<span class="cline-any cline-no"> </span>
|
|
1154
|
-
<span class="cline-any cline-no"> </span>
|
|
1155
|
-
<span class="cline-any cline-no"> </span>
|
|
1156
|
-
<span class="cline-any cline-no"> </span>
|
|
1157
|
-
<span class="cline-any cline-no"> </span>
|
|
1158
|
-
<span class="cline-any cline-no"> </span>
|
|
1159
|
-
<span class="cline-any cline-no"> </span>
|
|
1160
|
-
<span class="cline-any cline-no"> </span>
|
|
1161
|
-
<span class="cline-any cline-no"> </span>
|
|
1162
|
-
<span class="cline-any cline-no"> </span>
|
|
1163
|
-
<span class="cline-any cline-no"> </span>
|
|
1164
|
-
<span class="cline-any cline-no"> </span>
|
|
1165
|
-
<span class="cline-any cline-no"> </span>
|
|
1166
|
-
<span class="cline-any cline-no"> </span>
|
|
1167
|
-
<span class="cline-any cline-no"> </span>
|
|
1168
|
-
<span class="cline-any cline-no"> </span>
|
|
1169
|
-
<span class="cline-any cline-no"> </span>
|
|
1170
|
-
<span class="cline-any cline-no"> </span>
|
|
1171
|
-
<span class="cline-any cline-no"> </span>
|
|
1172
|
-
<span class="cline-any cline-no"> </span>
|
|
1173
|
-
<span class="cline-any cline-no"> </span>
|
|
1174
|
-
<span class="cline-any cline-no"> </span>
|
|
1175
|
-
<span class="cline-any cline-no"> </span>
|
|
1176
|
-
<span class="cline-any cline-no"> </span>
|
|
1177
|
-
<span class="cline-any cline-no"> </span>
|
|
1178
|
-
<span class="cline-any cline-no"> </span>
|
|
1179
|
-
<span class="cline-any cline-no"> </span>
|
|
1180
|
-
<span class="cline-any cline-no"> </span>
|
|
1181
|
-
<span class="cline-any cline-no"> </span>
|
|
1182
|
-
<span class="cline-any cline-no"> </span>
|
|
1183
|
-
<span class="cline-any cline-no"> </span>
|
|
1184
|
-
<span class="cline-any cline-no"> </span>
|
|
1185
|
-
<span class="cline-any cline-no"> </span>
|
|
1186
|
-
<span class="cline-any cline-no"> </span>
|
|
1187
|
-
<span class="cline-any cline-no"> </span>
|
|
1188
|
-
<span class="cline-any cline-no"> </span>
|
|
1189
|
-
<span class="cline-any cline-no"> </span>
|
|
1190
|
-
<span class="cline-any cline-no"> </span>
|
|
1191
|
-
<span class="cline-any cline-no"> </span>
|
|
1192
|
-
<span class="cline-any cline-no"> </span>
|
|
1193
|
-
<span class="cline-any cline-no"> </span>
|
|
1194
|
-
<span class="cline-any cline-no"> </span>
|
|
1195
|
-
<span class="cline-any cline-no"> </span>
|
|
1196
|
-
<span class="cline-any cline-no"> </span>
|
|
1197
|
-
<span class="cline-any cline-no"> </span>
|
|
1198
|
-
<span class="cline-any cline-no"> </span>
|
|
1199
|
-
<span class="cline-any cline-no"> </span>
|
|
1200
|
-
<span class="cline-any cline-no"> </span>
|
|
1201
|
-
<span class="cline-any cline-no"> </span>
|
|
1202
|
-
<span class="cline-any cline-no"> </span>
|
|
1203
|
-
<span class="cline-any cline-no"> </span>
|
|
1204
|
-
<span class="cline-any cline-no"> </span>
|
|
1205
|
-
<span class="cline-any cline-no"> </span>
|
|
1206
|
-
<span class="cline-any cline-no"> </span>
|
|
1207
|
-
<span class="cline-any cline-no"> </span>
|
|
1208
|
-
<span class="cline-any cline-no"> </span>
|
|
1209
|
-
<span class="cline-any cline-no"> </span>
|
|
1210
|
-
<span class="cline-any cline-no"> </span>
|
|
1211
|
-
<span class="cline-any cline-no"> </span>
|
|
1212
|
-
<span class="cline-any cline-no"> </span>
|
|
1213
|
-
<span class="cline-any cline-no"> </span>
|
|
1214
|
-
<span class="cline-any cline-no"> </span>
|
|
1215
|
-
<span class="cline-any cline-no"> </span>
|
|
1216
|
-
<span class="cline-any cline-no"> </span>
|
|
1217
|
-
<span class="cline-any cline-no"> </span>
|
|
1218
|
-
<span class="cline-any cline-no"> </span>
|
|
1219
|
-
<span class="cline-any cline-no"> </span>
|
|
1220
|
-
<span class="cline-any cline-no"> </span>
|
|
1221
|
-
<span class="cline-any cline-no"> </span>
|
|
1222
|
-
<span class="cline-any cline-no"> </span>
|
|
1223
|
-
<span class="cline-any cline-no"> </span>
|
|
1224
|
-
<span class="cline-any cline-no"> </span>
|
|
1225
|
-
<span class="cline-any cline-no"> </span>
|
|
1226
|
-
<span class="cline-any cline-no"> </span>
|
|
1227
|
-
<span class="cline-any cline-no"> </span>
|
|
1228
|
-
<span class="cline-any cline-no"> </span>
|
|
1229
|
-
<span class="cline-any cline-no"> </span>
|
|
1230
|
-
<span class="cline-any cline-no"> </span>
|
|
1231
|
-
<span class="cline-any cline-no"> </span>
|
|
1232
|
-
<span class="cline-any cline-no"> </span>
|
|
1233
|
-
<span class="cline-any cline-no"> </span>
|
|
1234
|
-
<span class="cline-any cline-no"> </span>
|
|
1235
|
-
<span class="cline-any cline-no"> </span>
|
|
1236
|
-
<span class="cline-any cline-no"> </span>
|
|
1237
|
-
<span class="cline-any cline-no"> </span>
|
|
1238
|
-
<span class="cline-any cline-no"> </span>
|
|
1239
|
-
<span class="cline-any cline-no"> </span>
|
|
1240
|
-
<span class="cline-any cline-no"> </span>
|
|
1241
|
-
<span class="cline-any cline-no"> </span>
|
|
1242
|
-
<span class="cline-any cline-no"> </span>
|
|
1243
|
-
<span class="cline-any cline-no"> </span>
|
|
1244
|
-
<span class="cline-any cline-no"> </span>
|
|
1245
|
-
<span class="cline-any cline-no"> </span>
|
|
1246
|
-
<span class="cline-any cline-no"> </span>
|
|
1247
|
-
<span class="cline-any cline-no"> </span>
|
|
1248
|
-
<span class="cline-any cline-no"> </span>
|
|
1249
|
-
<span class="cline-any cline-no"> </span>
|
|
1250
|
-
<span class="cline-any cline-no"> </span>
|
|
1251
|
-
<span class="cline-any cline-no"> </span>
|
|
1252
|
-
<span class="cline-any cline-no"> </span>
|
|
1253
|
-
<span class="cline-any cline-no"> </span>
|
|
1254
|
-
<span class="cline-any cline-no"> </span>
|
|
1255
|
-
<span class="cline-any cline-no"> </span>
|
|
1256
|
-
<span class="cline-any cline-no"> </span>
|
|
1257
|
-
<span class="cline-any cline-no"> </span>
|
|
1258
|
-
<span class="cline-any cline-no"> </span>
|
|
1259
|
-
<span class="cline-any cline-no"> </span>
|
|
1260
|
-
<span class="cline-any cline-no"> </span>
|
|
1261
|
-
<span class="cline-any cline-no"> </span>
|
|
1262
|
-
<span class="cline-any cline-no"> </span>
|
|
1263
|
-
<span class="cline-any cline-no"> </span>
|
|
1264
|
-
<span class="cline-any cline-no"> </span>
|
|
1265
|
-
<span class="cline-any cline-no"> </span>
|
|
1266
|
-
<span class="cline-any cline-no"> </span>
|
|
1267
|
-
<span class="cline-any cline-no"> </span>
|
|
1268
|
-
<span class="cline-any cline-no"> </span>
|
|
1269
|
-
<span class="cline-any cline-no"> </span>
|
|
1270
|
-
<span class="cline-any cline-no"> </span>
|
|
1271
|
-
<span class="cline-any cline-no"> </span>
|
|
1272
|
-
<span class="cline-any cline-no"> </span>
|
|
1273
|
-
<span class="cline-any cline-no"> </span>
|
|
1274
|
-
<span class="cline-any cline-no"> </span>
|
|
1275
|
-
<span class="cline-any cline-no"> </span>
|
|
1276
|
-
<span class="cline-any cline-no"> </span>
|
|
1277
|
-
<span class="cline-any cline-no"> </span>
|
|
1278
|
-
<span class="cline-any cline-no"> </span>
|
|
1279
|
-
<span class="cline-any cline-no"> </span>
|
|
1280
|
-
<span class="cline-any cline-no"> </span>
|
|
1281
|
-
<span class="cline-any cline-no"> </span>
|
|
1282
|
-
<span class="cline-any cline-no"> </span>
|
|
1283
|
-
<span class="cline-any cline-no"> </span>
|
|
1284
|
-
<span class="cline-any cline-no"> </span>
|
|
1285
|
-
<span class="cline-any cline-no"> </span>
|
|
1286
|
-
<span class="cline-any cline-no"> </span>
|
|
1287
|
-
<span class="cline-any cline-no"> </span>
|
|
1288
|
-
<span class="cline-any cline-no"> </span>
|
|
1289
|
-
<span class="cline-any cline-no"> </span>
|
|
1290
|
-
<span class="cline-any cline-no"> </span>
|
|
1291
|
-
<span class="cline-any cline-no"> </span>
|
|
1292
|
-
<span class="cline-any cline-no"> </span>
|
|
1293
|
-
<span class="cline-any cline-no"> </span>
|
|
1294
|
-
<span class="cline-any cline-no"> </span>
|
|
1295
|
-
<span class="cline-any cline-no"> </span>
|
|
1296
|
-
<span class="cline-any cline-no"> </span>
|
|
1297
|
-
<span class="cline-any cline-no"> </span>
|
|
1298
|
-
<span class="cline-any cline-no"> </span>
|
|
1299
|
-
<span class="cline-any cline-no"> </span>
|
|
1300
|
-
<span class="cline-any cline-no"> </span>
|
|
1301
|
-
<span class="cline-any cline-no"> </span>
|
|
1302
|
-
<span class="cline-any cline-no"> </span>
|
|
1303
|
-
<span class="cline-any cline-no"> </span>
|
|
1304
|
-
<span class="cline-any cline-no"> </span>
|
|
1305
|
-
<span class="cline-any cline-no"> </span>
|
|
1306
|
-
<span class="cline-any cline-no"> </span>
|
|
1307
|
-
<span class="cline-any cline-no"> </span>
|
|
1308
|
-
<span class="cline-any cline-no"> </span>
|
|
1309
|
-
<span class="cline-any cline-no"> </span>
|
|
1310
|
-
<span class="cline-any cline-no"> </span>
|
|
1311
|
-
<span class="cline-any cline-no"> </span>
|
|
1312
|
-
<span class="cline-any cline-no"> </span>
|
|
1313
|
-
<span class="cline-any cline-no"> </span>
|
|
1314
|
-
<span class="cline-any cline-no"> </span>
|
|
1315
|
-
<span class="cline-any cline-no"> </span>
|
|
1316
|
-
<span class="cline-any cline-no"> </span>
|
|
1317
|
-
<span class="cline-any cline-no"> </span>
|
|
1318
|
-
<span class="cline-any cline-no"> </span>
|
|
1319
|
-
<span class="cline-any cline-no"> </span>
|
|
1320
|
-
<span class="cline-any cline-no"> </span>
|
|
1321
|
-
<span class="cline-any cline-no"> </span>
|
|
1322
|
-
<span class="cline-any cline-no"> </span>
|
|
1323
|
-
<span class="cline-any cline-no"> </span>
|
|
1324
|
-
<span class="cline-any cline-no"> </span>
|
|
1325
|
-
<span class="cline-any cline-no"> </span>
|
|
1326
|
-
<span class="cline-any cline-no"> </span>
|
|
1327
|
-
<span class="cline-any cline-no"> </span>
|
|
1328
|
-
<span class="cline-any cline-no"> </span>
|
|
1329
|
-
<span class="cline-any cline-no"> </span>
|
|
1330
|
-
<span class="cline-any cline-no"> </span>
|
|
1331
|
-
<span class="cline-any cline-no"> </span>
|
|
1332
|
-
<span class="cline-any cline-no"> </span>
|
|
1333
|
-
<span class="cline-any cline-no"> </span>
|
|
1334
|
-
<span class="cline-any cline-no"> </span>
|
|
1335
|
-
<span class="cline-any cline-no"> </span>
|
|
1336
|
-
<span class="cline-any cline-no"> </span>
|
|
1337
|
-
<span class="cline-any cline-no"> </span>
|
|
1338
|
-
<span class="cline-any cline-no"> </span>
|
|
1339
|
-
<span class="cline-any cline-no"> </span>
|
|
1340
|
-
<span class="cline-any cline-no"> </span>
|
|
1341
|
-
<span class="cline-any cline-no"> </span>
|
|
1342
|
-
<span class="cline-any cline-no"> </span>
|
|
1343
|
-
<span class="cline-any cline-no"> </span>
|
|
1344
|
-
<span class="cline-any cline-no"> </span>
|
|
1345
|
-
<span class="cline-any cline-no"> </span>
|
|
1346
|
-
<span class="cline-any cline-no"> </span>
|
|
1347
|
-
<span class="cline-any cline-no"> </span>
|
|
1348
|
-
<span class="cline-any cline-no"> </span>
|
|
1349
|
-
<span class="cline-any cline-no"> </span>
|
|
1350
|
-
<span class="cline-any cline-no"> </span>
|
|
1351
|
-
<span class="cline-any cline-no"> </span>
|
|
1352
|
-
<span class="cline-any cline-no"> </span>
|
|
1353
|
-
<span class="cline-any cline-no"> </span>
|
|
1354
|
-
<span class="cline-any cline-no"> </span>
|
|
1355
|
-
<span class="cline-any cline-no"> </span>
|
|
1356
|
-
<span class="cline-any cline-no"> </span>
|
|
1357
|
-
<span class="cline-any cline-no"> </span>
|
|
1358
|
-
<span class="cline-any cline-no"> </span>
|
|
1359
|
-
<span class="cline-any cline-no"> </span>
|
|
1360
|
-
<span class="cline-any cline-no"> </span>
|
|
1361
|
-
<span class="cline-any cline-no"> </span>
|
|
1362
|
-
<span class="cline-any cline-no"> </span>
|
|
1363
|
-
<span class="cline-any cline-no"> </span>
|
|
1364
|
-
<span class="cline-any cline-no"> </span>
|
|
1365
|
-
<span class="cline-any cline-no"> </span>
|
|
1366
|
-
<span class="cline-any cline-no"> </span>
|
|
1367
|
-
<span class="cline-any cline-no"> </span>
|
|
1368
|
-
<span class="cline-any cline-no"> </span>
|
|
1369
|
-
<span class="cline-any cline-no"> </span>
|
|
1370
|
-
<span class="cline-any cline-no"> </span>
|
|
1371
|
-
<span class="cline-any cline-no"> </span>
|
|
1372
|
-
<span class="cline-any cline-no"> </span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" >import { Request, Response } from 'express';</span></span></span>
|
|
1373
|
-
<span class="cstat-no" title="statement not covered" >import { cryptoJs } from 'crypto-js';</span>
|
|
1374
|
-
<span class="cstat-no" title="statement not covered" >import { DyFM_Error, DyFM_Log } from '@futdevpro/fsm-dynamo';</span>
|
|
1375
|
-
<span class="cstat-no" title="statement not covered" >import { DyNTS_SingletonService } from '../../../_services/base/singleton.service';</span>
|
|
1376
|
-
<span class="cstat-no" title="statement not covered" >import { DyNTS_global_settings } from '../../../_collections/global-settings.const';</span>
|
|
1377
|
-
<span class="cstat-no" title="statement not covered" >import { DyNTS_OAuth2_AuthService } from './oauth2.auth-service';</span>
|
|
1378
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1379
|
-
<span class="cstat-no" title="statement not covered" >/**</span>
|
|
1380
|
-
<span class="cstat-no" title="statement not covered" > * OAuth2 Control Service implementation</span>
|
|
1381
|
-
<span class="cstat-no" title="statement not covered" > * </span>
|
|
1382
|
-
<span class="cstat-no" title="statement not covered" > * This service handles OAuth2 specific business logic and token management</span>
|
|
1383
|
-
<span class="cstat-no" title="statement not covered" > * </span>
|
|
1384
|
-
<span class="cstat-no" title="statement not covered" > * @example</span>
|
|
1385
|
-
<span class="cstat-no" title="statement not covered" > * const oauth2Service = DyNTS_OAuth2_ControlService.getInstance();</span>
|
|
1386
|
-
<span class="cstat-no" title="statement not covered" > * await oauth2Service.handleAuthorizationRequest(req, res);</span>
|
|
1387
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1388
|
-
<span class="cstat-no" title="statement not covered" >export class DyNTS_OAuth2_ControlService extends DyNTS_SingletonService {</span>
|
|
1389
|
-
<span class="cstat-no" title="statement not covered" > static getInstance(): DyNTS_OAuth2_ControlService {</span>
|
|
1390
|
-
<span class="cstat-no" title="statement not covered" > return DyNTS_OAuth2_ControlService.getSingletonInstance();</span>
|
|
1391
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1392
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1393
|
-
<span class="cstat-no" title="statement not covered" > readonly serviceName: string = 'OAuth2ControlService';</span>
|
|
1394
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1395
|
-
<span class="cstat-no" title="statement not covered" > private readonly authService: DyNTS_OAuth2_AuthService = DyNTS_OAuth2_AuthService.getInstance();</span>
|
|
1396
|
-
<span class="cstat-no" title="statement not covered" > private readonly authorizationCodes: Map<string, { clientId: string; scope: string; expiresAt: number }> = new Map();</span>
|
|
1397
|
-
<span class="cstat-no" title="statement not covered" > private readonly accessTokens: Map<string, { clientId: string; scope: string; expiresAt: number }> = new Map();</span>
|
|
1398
|
-
<span class="cstat-no" title="statement not covered" > private readonly refreshTokens: Map<string, { clientId: string; scope: string; accessToken: string }> = new Map();</span>
|
|
1399
|
-
<span class="cstat-no" title="statement not covered" > private readonly clients: Map<string, { </span>
|
|
1400
|
-
<span class="cstat-no" title="statement not covered" > clientId: string; </span>
|
|
1401
|
-
<span class="cstat-no" title="statement not covered" > clientSecret: string; </span>
|
|
1402
|
-
<span class="cstat-no" title="statement not covered" > redirectUris: string[]; </span>
|
|
1403
|
-
<span class="cstat-no" title="statement not covered" > allowedScopes: string[]; </span>
|
|
1404
|
-
<span class="cstat-no" title="statement not covered" > isActive: boolean; </span>
|
|
1405
|
-
<span class="cstat-no" title="statement not covered" > }> = new Map();</span>
|
|
1406
|
-
<span class="cstat-no" title="statement not covered" > private readonly users: Map<string, {</span>
|
|
1407
|
-
<span class="cstat-no" title="statement not covered" > username: string;</span>
|
|
1408
|
-
<span class="cstat-no" title="statement not covered" > password: string; // In a real implementation, this would be a hashed password</span>
|
|
1409
|
-
<span class="cstat-no" title="statement not covered" > scopes: string[];</span>
|
|
1410
|
-
<span class="cstat-no" title="statement not covered" > }> = new Map();</span>
|
|
1411
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1412
|
-
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
1413
|
-
<span class="cstat-no" title="statement not covered" > * Handles the OAuth2 authorization request</span>
|
|
1414
|
-
<span class="cstat-no" title="statement not covered" > * @param req Express Request object</span>
|
|
1415
|
-
<span class="cstat-no" title="statement not covered" > * @param res Express Response object</span>
|
|
1416
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1417
|
-
<span class="cstat-no" title="statement not covered" > async handleAuthorizationRequest(req: Request, res: Response): Promise<void> {</span>
|
|
1418
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
1419
|
-
<span class="cstat-no" title="statement not covered" > const { response_type, client_id, redirect_uri, scope, state } = req.query;</span>
|
|
1420
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1421
|
-
<span class="cstat-no" title="statement not covered" > // Validate required parameters</span>
|
|
1422
|
-
<span class="cstat-no" title="statement not covered" > if (!response_type || !client_id || !redirect_uri) {</span>
|
|
1423
|
-
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
1424
|
-
<span class="cstat-no" title="statement not covered" > status: 400,</span>
|
|
1425
|
-
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HA0`,</span>
|
|
1426
|
-
<span class="cstat-no" title="statement not covered" > addECToUserMsg: true,</span>
|
|
1427
|
-
<span class="cstat-no" title="statement not covered" > message: 'Missing required OAuth2 parameters',</span>
|
|
1428
|
-
<span class="cstat-no" title="statement not covered" > userMessage: 'Invalid authorization request',</span>
|
|
1429
|
-
<span class="cstat-no" title="statement not covered" > issuerService: this.serviceName,</span>
|
|
1430
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1431
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1432
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1433
|
-
<span class="cstat-no" title="statement not covered" > // Validate client_id against registered clients</span>
|
|
1434
|
-
<span class="cstat-no" title="statement not covered" > if (!this.isValidClient(client_id as string)) {</span>
|
|
1435
|
-
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
1436
|
-
<span class="cstat-no" title="statement not covered" > status: 400,</span>
|
|
1437
|
-
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HA2`,</span>
|
|
1438
|
-
<span class="cstat-no" title="statement not covered" > addECToUserMsg: true,</span>
|
|
1439
|
-
<span class="cstat-no" title="statement not covered" > message: 'Invalid client_id',</span>
|
|
1440
|
-
<span class="cstat-no" title="statement not covered" > userMessage: 'Invalid authorization request',</span>
|
|
1441
|
-
<span class="cstat-no" title="statement not covered" > issuerService: this.serviceName,</span>
|
|
1442
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1443
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1444
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1445
|
-
<span class="cstat-no" title="statement not covered" > // Validate redirect_uri against registered redirect URIs</span>
|
|
1446
|
-
<span class="cstat-no" title="statement not covered" > if (!this.isValidRedirectUri(client_id as string, redirect_uri as string)) {</span>
|
|
1447
|
-
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
1448
|
-
<span class="cstat-no" title="statement not covered" > status: 400,</span>
|
|
1449
|
-
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HA3`,</span>
|
|
1450
|
-
<span class="cstat-no" title="statement not covered" > addECToUserMsg: true,</span>
|
|
1451
|
-
<span class="cstat-no" title="statement not covered" > message: 'Invalid redirect_uri',</span>
|
|
1452
|
-
<span class="cstat-no" title="statement not covered" > userMessage: 'Invalid authorization request',</span>
|
|
1453
|
-
<span class="cstat-no" title="statement not covered" > issuerService: this.serviceName,</span>
|
|
1454
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1455
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1456
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1457
|
-
<span class="cstat-no" title="statement not covered" > // Validate scope against allowed scopes</span>
|
|
1458
|
-
<span class="cstat-no" title="statement not covered" > if (!this.isValidScope(client_id as string, scope as string)) {</span>
|
|
1459
|
-
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
1460
|
-
<span class="cstat-no" title="statement not covered" > status: 400,</span>
|
|
1461
|
-
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HA4`,</span>
|
|
1462
|
-
<span class="cstat-no" title="statement not covered" > addECToUserMsg: true,</span>
|
|
1463
|
-
<span class="cstat-no" title="statement not covered" > message: 'Invalid scope',</span>
|
|
1464
|
-
<span class="cstat-no" title="statement not covered" > userMessage: 'Invalid authorization request',</span>
|
|
1465
|
-
<span class="cstat-no" title="statement not covered" > issuerService: this.serviceName,</span>
|
|
1466
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1467
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1468
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1469
|
-
<span class="cstat-no" title="statement not covered" > // For authorization code flow</span>
|
|
1470
|
-
<span class="cstat-no" title="statement not covered" > if (response_type === 'code') {</span>
|
|
1471
|
-
<span class="cstat-no" title="statement not covered" > const authorizationCode = await this.generateAuthorizationCode(client_id as string, scope as string);</span>
|
|
1472
|
-
<span class="cstat-no" title="statement not covered" > </span>
|
|
1473
|
-
<span class="cstat-no" title="statement not covered" > // Redirect with authorization code</span>
|
|
1474
|
-
<span class="cstat-no" title="statement not covered" > const redirectUrl = new URL(redirect_uri as string);</span>
|
|
1475
|
-
<span class="cstat-no" title="statement not covered" > redirectUrl.searchParams.append('code', authorizationCode);</span>
|
|
1476
|
-
<span class="cstat-no" title="statement not covered" > if (state) redirectUrl.searchParams.append('state', state as string);</span>
|
|
1477
|
-
<span class="cstat-no" title="statement not covered" > </span>
|
|
1478
|
-
<span class="cstat-no" title="statement not covered" > res.redirect(redirectUrl.toString());</span>
|
|
1479
|
-
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
1480
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1481
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1482
|
-
<span class="cstat-no" title="statement not covered" > // For implicit flow</span>
|
|
1483
|
-
<span class="cstat-no" title="statement not covered" > if (response_type === 'token') {</span>
|
|
1484
|
-
<span class="cstat-no" title="statement not covered" > const accessToken = await this.generateAccessToken(client_id as string, scope as string);</span>
|
|
1485
|
-
<span class="cstat-no" title="statement not covered" > </span>
|
|
1486
|
-
<span class="cstat-no" title="statement not covered" > // Redirect with access token</span>
|
|
1487
|
-
<span class="cstat-no" title="statement not covered" > const redirectUrl = new URL(redirect_uri as string);</span>
|
|
1488
|
-
<span class="cstat-no" title="statement not covered" > redirectUrl.hash = `access_token=${accessToken}`;</span>
|
|
1489
|
-
<span class="cstat-no" title="statement not covered" > if (state) redirectUrl.hash += `&state=${state}`;</span>
|
|
1490
|
-
<span class="cstat-no" title="statement not covered" > </span>
|
|
1491
|
-
<span class="cstat-no" title="statement not covered" > res.redirect(redirectUrl.toString());</span>
|
|
1492
|
-
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
1493
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1494
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1495
|
-
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
1496
|
-
<span class="cstat-no" title="statement not covered" > status: 400,</span>
|
|
1497
|
-
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HA1`,</span>
|
|
1498
|
-
<span class="cstat-no" title="statement not covered" > addECToUserMsg: true,</span>
|
|
1499
|
-
<span class="cstat-no" title="statement not covered" > message: 'Unsupported response_type',</span>
|
|
1500
|
-
<span class="cstat-no" title="statement not covered" > userMessage: 'Invalid authorization request',</span>
|
|
1501
|
-
<span class="cstat-no" title="statement not covered" > issuerService: this.serviceName,</span>
|
|
1502
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1503
|
-
<span class="cstat-no" title="statement not covered" > } catch (error) {</span>
|
|
1504
|
-
<span class="cstat-no" title="statement not covered" > DyFM_Log.error('Authorization request failed', error);</span>
|
|
1505
|
-
<span class="cstat-no" title="statement not covered" > throw error;</span>
|
|
1506
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1507
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1508
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1509
|
-
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
1510
|
-
<span class="cstat-no" title="statement not covered" > * Validates if the client is registered and active</span>
|
|
1511
|
-
<span class="cstat-no" title="statement not covered" > * @param clientId The client ID to validate</span>
|
|
1512
|
-
<span class="cstat-no" title="statement not covered" > * @returns true if the client is valid</span>
|
|
1513
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1514
|
-
<span class="cstat-no" title="statement not covered" > private isValidClient(clientId: string): boolean {</span>
|
|
1515
|
-
<span class="cstat-no" title="statement not covered" > const client = this.clients.get(clientId);</span>
|
|
1516
|
-
<span class="cstat-no" title="statement not covered" > return client?.isActive ?? false;</span>
|
|
1517
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1518
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1519
|
-
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
1520
|
-
<span class="cstat-no" title="statement not covered" > * Validates if the redirect URI is registered for the client</span>
|
|
1521
|
-
<span class="cstat-no" title="statement not covered" > * @param clientId The client ID</span>
|
|
1522
|
-
<span class="cstat-no" title="statement not covered" > * @param redirectUri The redirect URI to validate</span>
|
|
1523
|
-
<span class="cstat-no" title="statement not covered" > * @returns true if the redirect URI is valid</span>
|
|
1524
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1525
|
-
<span class="cstat-no" title="statement not covered" > private isValidRedirectUri(clientId: string, redirectUri: string): boolean {</span>
|
|
1526
|
-
<span class="cstat-no" title="statement not covered" > const client = this.clients.get(clientId);</span>
|
|
1527
|
-
<span class="cstat-no" title="statement not covered" > if (!client) return false;</span>
|
|
1528
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1529
|
-
<span class="cstat-no" title="statement not covered" > // Check if the redirect URI matches any of the registered URIs</span>
|
|
1530
|
-
<span class="cstat-no" title="statement not covered" > return client.redirectUris.some(uri => {</span>
|
|
1531
|
-
<span class="cstat-no" title="statement not covered" > // Simple exact match for now</span>
|
|
1532
|
-
<span class="cstat-no" title="statement not covered" > // TODO: Implement more sophisticated URI matching (e.g., wildcards, regex)</span>
|
|
1533
|
-
<span class="cstat-no" title="statement not covered" > return uri === redirectUri;</span>
|
|
1534
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1535
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1536
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1537
|
-
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
1538
|
-
<span class="cstat-no" title="statement not covered" > * Validates if the scope is allowed for the client</span>
|
|
1539
|
-
<span class="cstat-no" title="statement not covered" > * @param clientId The client ID</span>
|
|
1540
|
-
<span class="cstat-no" title="statement not covered" > * @param scope The scope to validate</span>
|
|
1541
|
-
<span class="cstat-no" title="statement not covered" > * @returns true if the scope is valid</span>
|
|
1542
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1543
|
-
<span class="cstat-no" title="statement not covered" > private isValidScope(clientId: string, scope: string): boolean {</span>
|
|
1544
|
-
<span class="cstat-no" title="statement not covered" > const client = this.clients.get(clientId);</span>
|
|
1545
|
-
<span class="cstat-no" title="statement not covered" > if (!client) return false;</span>
|
|
1546
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1547
|
-
<span class="cstat-no" title="statement not covered" > // If no scope is requested, it's valid</span>
|
|
1548
|
-
<span class="cstat-no" title="statement not covered" > if (!scope) return true;</span>
|
|
1549
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1550
|
-
<span class="cstat-no" title="statement not covered" > // Split scope string into individual scopes</span>
|
|
1551
|
-
<span class="cstat-no" title="statement not covered" > const requestedScopes = scope.split(' ');</span>
|
|
1552
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1553
|
-
<span class="cstat-no" title="statement not covered" > // Check if all requested scopes are allowed</span>
|
|
1554
|
-
<span class="cstat-no" title="statement not covered" > return requestedScopes.every(s => client.allowedScopes.includes(s));</span>
|
|
1555
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1556
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1557
|
-
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
1558
|
-
<span class="cstat-no" title="statement not covered" > * Handles the OAuth2 token request</span>
|
|
1559
|
-
<span class="cstat-no" title="statement not covered" > * @param req Express Request object</span>
|
|
1560
|
-
<span class="cstat-no" title="statement not covered" > * @param res Express Response object</span>
|
|
1561
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1562
|
-
<span class="cstat-no" title="statement not covered" > async handleTokenRequest(req: Request, res: Response): Promise<void> {</span>
|
|
1563
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
1564
|
-
<span class="cstat-no" title="statement not covered" > const { grant_type, code, refresh_token, client_id, client_secret, username, password } = req.body;</span>
|
|
1565
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1566
|
-
<span class="cstat-no" title="statement not covered" > // Validate required parameters</span>
|
|
1567
|
-
<span class="cstat-no" title="statement not covered" > if (!grant_type || !client_id || !client_secret) {</span>
|
|
1568
|
-
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
1569
|
-
<span class="cstat-no" title="statement not covered" > status: 400,</span>
|
|
1570
|
-
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HT0`,</span>
|
|
1571
|
-
<span class="cstat-no" title="statement not covered" > addECToUserMsg: true,</span>
|
|
1572
|
-
<span class="cstat-no" title="statement not covered" > message: 'Missing required OAuth2 parameters',</span>
|
|
1573
|
-
<span class="cstat-no" title="statement not covered" > userMessage: 'Invalid token request',</span>
|
|
1574
|
-
<span class="cstat-no" title="statement not covered" > issuerService: this.serviceName,</span>
|
|
1575
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1576
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1577
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1578
|
-
<span class="cstat-no" title="statement not covered" > // Validate client credentials</span>
|
|
1579
|
-
<span class="cstat-no" title="statement not covered" > if (!this.validateClientCredentials(client_id, client_secret)) {</span>
|
|
1580
|
-
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
1581
|
-
<span class="cstat-no" title="statement not covered" > status: 401,</span>
|
|
1582
|
-
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HT4`,</span>
|
|
1583
|
-
<span class="cstat-no" title="statement not covered" > addECToUserMsg: true,</span>
|
|
1584
|
-
<span class="cstat-no" title="statement not covered" > message: 'Invalid client credentials',</span>
|
|
1585
|
-
<span class="cstat-no" title="statement not covered" > userMessage: 'Invalid token request',</span>
|
|
1586
|
-
<span class="cstat-no" title="statement not covered" > issuerService: this.serviceName,</span>
|
|
1587
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1588
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1589
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1590
|
-
<span class="cstat-no" title="statement not covered" > switch (grant_type) {</span>
|
|
1591
|
-
<span class="cstat-no" title="statement not covered" > case 'authorization_code':</span>
|
|
1592
|
-
<span class="cstat-no" title="statement not covered" > if (!code) {</span>
|
|
1593
|
-
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
1594
|
-
<span class="cstat-no" title="statement not covered" > status: 400,</span>
|
|
1595
|
-
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HT1`,</span>
|
|
1596
|
-
<span class="cstat-no" title="statement not covered" > addECToUserMsg: true,</span>
|
|
1597
|
-
<span class="cstat-no" title="statement not covered" > message: 'Missing authorization code',</span>
|
|
1598
|
-
<span class="cstat-no" title="statement not covered" > userMessage: 'Invalid token request',</span>
|
|
1599
|
-
<span class="cstat-no" title="statement not covered" > issuerService: this.serviceName,</span>
|
|
1600
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1601
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1602
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1603
|
-
<span class="cstat-no" title="statement not covered" > // Validate authorization code</span>
|
|
1604
|
-
<span class="cstat-no" title="statement not covered" > const authCodeData = this.authorizationCodes.get(code);</span>
|
|
1605
|
-
<span class="cstat-no" title="statement not covered" > if (!authCodeData || authCodeData.expiresAt < Date.now()) {</span>
|
|
1606
|
-
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
1607
|
-
<span class="cstat-no" title="statement not covered" > status: 400,</span>
|
|
1608
|
-
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HT5`,</span>
|
|
1609
|
-
<span class="cstat-no" title="statement not covered" > addECToUserMsg: true,</span>
|
|
1610
|
-
<span class="cstat-no" title="statement not covered" > message: 'Invalid or expired authorization code',</span>
|
|
1611
|
-
<span class="cstat-no" title="statement not covered" > userMessage: 'Invalid token request',</span>
|
|
1612
|
-
<span class="cstat-no" title="statement not covered" > issuerService: this.serviceName,</span>
|
|
1613
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1614
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1615
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1616
|
-
<span class="cstat-no" title="statement not covered" > // Remove used authorization code</span>
|
|
1617
|
-
<span class="cstat-no" title="statement not covered" > this.authorizationCodes.delete(code);</span>
|
|
1618
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1619
|
-
<span class="cstat-no" title="statement not covered" > const accessToken = await this.generateAccessToken(client_id, authCodeData.scope);</span>
|
|
1620
|
-
<span class="cstat-no" title="statement not covered" > const refreshToken = await this.generateRefreshToken(client_id);</span>
|
|
1621
|
-
<span class="cstat-no" title="statement not covered" > </span>
|
|
1622
|
-
<span class="cstat-no" title="statement not covered" > // Store refresh token with access token reference</span>
|
|
1623
|
-
<span class="cstat-no" title="statement not covered" > this.refreshTokens.set(refreshToken, {</span>
|
|
1624
|
-
<span class="cstat-no" title="statement not covered" > clientId: client_id,</span>
|
|
1625
|
-
<span class="cstat-no" title="statement not covered" > scope: authCodeData.scope,</span>
|
|
1626
|
-
<span class="cstat-no" title="statement not covered" > accessToken</span>
|
|
1627
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1628
|
-
<span class="cstat-no" title="statement not covered" > </span>
|
|
1629
|
-
<span class="cstat-no" title="statement not covered" > res.json({</span>
|
|
1630
|
-
<span class="cstat-no" title="statement not covered" > access_token: accessToken,</span>
|
|
1631
|
-
<span class="cstat-no" title="statement not covered" > token_type: 'Bearer',</span>
|
|
1632
|
-
<span class="cstat-no" title="statement not covered" > expires_in: 3600,</span>
|
|
1633
|
-
<span class="cstat-no" title="statement not covered" > refresh_token: refreshToken,</span>
|
|
1634
|
-
<span class="cstat-no" title="statement not covered" > scope: authCodeData.scope</span>
|
|
1635
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1636
|
-
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1637
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1638
|
-
<span class="cstat-no" title="statement not covered" > case 'refresh_token':</span>
|
|
1639
|
-
<span class="cstat-no" title="statement not covered" > if (!refresh_token) {</span>
|
|
1640
|
-
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
1641
|
-
<span class="cstat-no" title="statement not covered" > status: 400,</span>
|
|
1642
|
-
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HT2`,</span>
|
|
1643
|
-
<span class="cstat-no" title="statement not covered" > addECToUserMsg: true,</span>
|
|
1644
|
-
<span class="cstat-no" title="statement not covered" > message: 'Missing refresh token',</span>
|
|
1645
|
-
<span class="cstat-no" title="statement not covered" > userMessage: 'Invalid token request',</span>
|
|
1646
|
-
<span class="cstat-no" title="statement not covered" > issuerService: this.serviceName,</span>
|
|
1647
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1648
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1649
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1650
|
-
<span class="cstat-no" title="statement not covered" > // Validate refresh token</span>
|
|
1651
|
-
<span class="cstat-no" title="statement not covered" > const refreshTokenData = this.refreshTokens.get(refresh_token);</span>
|
|
1652
|
-
<span class="cstat-no" title="statement not covered" > if (!refreshTokenData) {</span>
|
|
1653
|
-
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
1654
|
-
<span class="cstat-no" title="statement not covered" > status: 400,</span>
|
|
1655
|
-
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HT6`,</span>
|
|
1656
|
-
<span class="cstat-no" title="statement not covered" > addECToUserMsg: true,</span>
|
|
1657
|
-
<span class="cstat-no" title="statement not covered" > message: 'Invalid refresh token',</span>
|
|
1658
|
-
<span class="cstat-no" title="statement not covered" > userMessage: 'Invalid token request',</span>
|
|
1659
|
-
<span class="cstat-no" title="statement not covered" > issuerService: this.serviceName,</span>
|
|
1660
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1661
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1662
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1663
|
-
<span class="cstat-no" title="statement not covered" > // Revoke old access token</span>
|
|
1664
|
-
<span class="cstat-no" title="statement not covered" > this.accessTokens.delete(refreshTokenData.accessToken);</span>
|
|
1665
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1666
|
-
<span class="cstat-no" title="statement not covered" > // Generate new access token</span>
|
|
1667
|
-
<span class="cstat-no" title="statement not covered" > const newAccessToken = await this.generateAccessToken(client_id, refreshTokenData.scope);</span>
|
|
1668
|
-
<span class="cstat-no" title="statement not covered" > const newRefreshToken = await this.generateRefreshToken(client_id);</span>
|
|
1669
|
-
<span class="cstat-no" title="statement not covered" > </span>
|
|
1670
|
-
<span class="cstat-no" title="statement not covered" > // Store new refresh token</span>
|
|
1671
|
-
<span class="cstat-no" title="statement not covered" > this.refreshTokens.set(newRefreshToken, {</span>
|
|
1672
|
-
<span class="cstat-no" title="statement not covered" > clientId: client_id,</span>
|
|
1673
|
-
<span class="cstat-no" title="statement not covered" > scope: refreshTokenData.scope,</span>
|
|
1674
|
-
<span class="cstat-no" title="statement not covered" > accessToken: newAccessToken</span>
|
|
1675
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1676
|
-
<span class="cstat-no" title="statement not covered" > </span>
|
|
1677
|
-
<span class="cstat-no" title="statement not covered" > res.json({</span>
|
|
1678
|
-
<span class="cstat-no" title="statement not covered" > access_token: newAccessToken,</span>
|
|
1679
|
-
<span class="cstat-no" title="statement not covered" > token_type: 'Bearer',</span>
|
|
1680
|
-
<span class="cstat-no" title="statement not covered" > expires_in: 3600,</span>
|
|
1681
|
-
<span class="cstat-no" title="statement not covered" > refresh_token: newRefreshToken,</span>
|
|
1682
|
-
<span class="cstat-no" title="statement not covered" > scope: refreshTokenData.scope</span>
|
|
1683
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1684
|
-
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1685
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1686
|
-
<span class="cstat-no" title="statement not covered" > case 'client_credentials':</span>
|
|
1687
|
-
<span class="cstat-no" title="statement not covered" > const clientAccessToken = await this.generateAccessToken(client_id, '');</span>
|
|
1688
|
-
<span class="cstat-no" title="statement not covered" > res.json({</span>
|
|
1689
|
-
<span class="cstat-no" title="statement not covered" > access_token: clientAccessToken,</span>
|
|
1690
|
-
<span class="cstat-no" title="statement not covered" > token_type: 'Bearer',</span>
|
|
1691
|
-
<span class="cstat-no" title="statement not covered" > expires_in: 3600</span>
|
|
1692
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1693
|
-
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1694
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1695
|
-
<span class="cstat-no" title="statement not covered" > case 'password':</span>
|
|
1696
|
-
<span class="cstat-no" title="statement not covered" > if (!username || !password) {</span>
|
|
1697
|
-
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
1698
|
-
<span class="cstat-no" title="statement not covered" > status: 400,</span>
|
|
1699
|
-
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HT7`,</span>
|
|
1700
|
-
<span class="cstat-no" title="statement not covered" > addECToUserMsg: true,</span>
|
|
1701
|
-
<span class="cstat-no" title="statement not covered" > message: 'Missing username or password',</span>
|
|
1702
|
-
<span class="cstat-no" title="statement not covered" > userMessage: 'Invalid token request',</span>
|
|
1703
|
-
<span class="cstat-no" title="statement not covered" > issuerService: this.serviceName,</span>
|
|
1704
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1705
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1706
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1707
|
-
<span class="cstat-no" title="statement not covered" > // Authenticate user</span>
|
|
1708
|
-
<span class="cstat-no" title="statement not covered" > const userScopes = this.authenticateUser(username, password);</span>
|
|
1709
|
-
<span class="cstat-no" title="statement not covered" > if (!userScopes) {</span>
|
|
1710
|
-
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
1711
|
-
<span class="cstat-no" title="statement not covered" > status: 401,</span>
|
|
1712
|
-
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HT8`,</span>
|
|
1713
|
-
<span class="cstat-no" title="statement not covered" > addECToUserMsg: true,</span>
|
|
1714
|
-
<span class="cstat-no" title="statement not covered" > message: 'Invalid username or password',</span>
|
|
1715
|
-
<span class="cstat-no" title="statement not covered" > userMessage: 'Invalid token request',</span>
|
|
1716
|
-
<span class="cstat-no" title="statement not covered" > issuerService: this.serviceName,</span>
|
|
1717
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1718
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1719
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1720
|
-
<span class="cstat-no" title="statement not covered" > // Generate access token</span>
|
|
1721
|
-
<span class="cstat-no" title="statement not covered" > const userAccessToken = await this.generateAccessToken(client_id, userScopes.join(' '));</span>
|
|
1722
|
-
<span class="cstat-no" title="statement not covered" > const userRefreshToken = await this.generateRefreshToken(client_id);</span>
|
|
1723
|
-
<span class="cstat-no" title="statement not covered" > </span>
|
|
1724
|
-
<span class="cstat-no" title="statement not covered" > // Store refresh token with access token reference</span>
|
|
1725
|
-
<span class="cstat-no" title="statement not covered" > this.refreshTokens.set(userRefreshToken, {</span>
|
|
1726
|
-
<span class="cstat-no" title="statement not covered" > clientId: client_id,</span>
|
|
1727
|
-
<span class="cstat-no" title="statement not covered" > scope: userScopes.join(' '),</span>
|
|
1728
|
-
<span class="cstat-no" title="statement not covered" > accessToken: userAccessToken</span>
|
|
1729
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1730
|
-
<span class="cstat-no" title="statement not covered" > </span>
|
|
1731
|
-
<span class="cstat-no" title="statement not covered" > res.json({</span>
|
|
1732
|
-
<span class="cstat-no" title="statement not covered" > access_token: userAccessToken,</span>
|
|
1733
|
-
<span class="cstat-no" title="statement not covered" > token_type: 'Bearer',</span>
|
|
1734
|
-
<span class="cstat-no" title="statement not covered" > expires_in: 3600,</span>
|
|
1735
|
-
<span class="cstat-no" title="statement not covered" > refresh_token: userRefreshToken,</span>
|
|
1736
|
-
<span class="cstat-no" title="statement not covered" > scope: userScopes.join(' ')</span>
|
|
1737
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1738
|
-
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1739
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1740
|
-
<span class="cstat-no" title="statement not covered" > default:</span>
|
|
1741
|
-
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
1742
|
-
<span class="cstat-no" title="statement not covered" > status: 400,</span>
|
|
1743
|
-
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HT3`,</span>
|
|
1744
|
-
<span class="cstat-no" title="statement not covered" > addECToUserMsg: true,</span>
|
|
1745
|
-
<span class="cstat-no" title="statement not covered" > message: 'Unsupported grant_type',</span>
|
|
1746
|
-
<span class="cstat-no" title="statement not covered" > userMessage: 'Invalid token request',</span>
|
|
1747
|
-
<span class="cstat-no" title="statement not covered" > issuerService: this.serviceName,</span>
|
|
1748
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1749
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1750
|
-
<span class="cstat-no" title="statement not covered" > } catch (error) {</span>
|
|
1751
|
-
<span class="cstat-no" title="statement not covered" > DyFM_Log.error('Token request failed', error);</span>
|
|
1752
|
-
<span class="cstat-no" title="statement not covered" > throw error;</span>
|
|
1753
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1754
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1755
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1756
|
-
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
1757
|
-
<span class="cstat-no" title="statement not covered" > * Validates client credentials</span>
|
|
1758
|
-
<span class="cstat-no" title="statement not covered" > * @param clientId The client ID</span>
|
|
1759
|
-
<span class="cstat-no" title="statement not covered" > * @param clientSecret The client secret</span>
|
|
1760
|
-
<span class="cstat-no" title="statement not covered" > * @returns true if the credentials are valid</span>
|
|
1761
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1762
|
-
<span class="cstat-no" title="statement not covered" > private validateClientCredentials(clientId: string, clientSecret: string): boolean {</span>
|
|
1763
|
-
<span class="cstat-no" title="statement not covered" > const client = this.clients.get(clientId);</span>
|
|
1764
|
-
<span class="cstat-no" title="statement not covered" > return (client?.clientSecret === clientSecret) && (client?.isActive ?? false);</span>
|
|
1765
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1766
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1767
|
-
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
1768
|
-
<span class="cstat-no" title="statement not covered" > * Handles the OAuth2 userinfo request</span>
|
|
1769
|
-
<span class="cstat-no" title="statement not covered" > * @param req Express Request object</span>
|
|
1770
|
-
<span class="cstat-no" title="statement not covered" > * @param res Express Response object</span>
|
|
1771
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1772
|
-
<span class="cstat-no" title="statement not covered" > async handleUserInfoRequest(req: Request, res: Response): Promise<void> {</span>
|
|
1773
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
1774
|
-
<span class="cstat-no" title="statement not covered" > const token = this.authService.getTokenFromRequest(req);</span>
|
|
1775
|
-
<span class="cstat-no" title="statement not covered" > </span>
|
|
1776
|
-
<span class="cstat-no" title="statement not covered" > // Validate token</span>
|
|
1777
|
-
<span class="cstat-no" title="statement not covered" > const tokenData = this.accessTokens.get(token);</span>
|
|
1778
|
-
<span class="cstat-no" title="statement not covered" > if (!tokenData || tokenData.expiresAt < Date.now()) {</span>
|
|
1779
|
-
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
1780
|
-
<span class="cstat-no" title="statement not covered" > status: 401,</span>
|
|
1781
|
-
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HU0`,</span>
|
|
1782
|
-
<span class="cstat-no" title="statement not covered" > addECToUserMsg: true,</span>
|
|
1783
|
-
<span class="cstat-no" title="statement not covered" > message: 'Invalid or expired access token',</span>
|
|
1784
|
-
<span class="cstat-no" title="statement not covered" > userMessage: 'Invalid token',</span>
|
|
1785
|
-
<span class="cstat-no" title="statement not covered" > issuerService: this.serviceName,</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" ></span>
|
|
1789
|
-
<span class="cstat-no" title="statement not covered" > // Extract user information based on token scope</span>
|
|
1790
|
-
<span class="cstat-no" title="statement not covered" > const userInfo = await this.getUserInfoFromToken(token);</span>
|
|
1791
|
-
<span class="cstat-no" title="statement not covered" > </span>
|
|
1792
|
-
<span class="cstat-no" title="statement not covered" > res.json(userInfo);</span>
|
|
1793
|
-
<span class="cstat-no" title="statement not covered" > } catch (error) {</span>
|
|
1794
|
-
<span class="cstat-no" title="statement not covered" > DyFM_Log.error('Userinfo request failed', error);</span>
|
|
1795
|
-
<span class="cstat-no" title="statement not covered" > throw error;</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" > /**</span>
|
|
1800
|
-
<span class="cstat-no" title="statement not covered" > * Gets user information from the token</span>
|
|
1801
|
-
<span class="cstat-no" title="statement not covered" > * @param token The access token</span>
|
|
1802
|
-
<span class="cstat-no" title="statement not covered" > * @returns The user information object</span>
|
|
1803
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1804
|
-
<span class="cstat-no" title="statement not covered" > private async getUserInfoFromToken(token: string): Promise<any> {</span>
|
|
1805
|
-
<span class="cstat-no" title="statement not covered" > const tokenData = this.accessTokens.get(token);</span>
|
|
1806
|
-
<span class="cstat-no" title="statement not covered" > if (!tokenData) {</span>
|
|
1807
|
-
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
1808
|
-
<span class="cstat-no" title="statement not covered" > status: 401,</span>
|
|
1809
|
-
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HU1`,</span>
|
|
1810
|
-
<span class="cstat-no" title="statement not covered" > addECToUserMsg: true,</span>
|
|
1811
|
-
<span class="cstat-no" title="statement not covered" > message: 'Invalid access token',</span>
|
|
1812
|
-
<span class="cstat-no" title="statement not covered" > userMessage: 'Invalid token',</span>
|
|
1813
|
-
<span class="cstat-no" title="statement not covered" > issuerService: this.serviceName,</span>
|
|
1814
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1815
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1816
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1817
|
-
<span class="cstat-no" title="statement not covered" > // TODO: Implement user information retrieval from database/storage</span>
|
|
1818
|
-
<span class="cstat-no" title="statement not covered" > // For now, return mock user information</span>
|
|
1819
|
-
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
1820
|
-
<span class="cstat-no" title="statement not covered" > sub: 'user123',</span>
|
|
1821
|
-
<span class="cstat-no" title="statement not covered" > name: 'John Doe',</span>
|
|
1822
|
-
<span class="cstat-no" title="statement not covered" > email: 'john.doe@example.com',</span>
|
|
1823
|
-
<span class="cstat-no" title="statement not covered" > // Add other user information based on scope</span>
|
|
1824
|
-
<span class="cstat-no" title="statement not covered" > ...(tokenData.scope.includes('profile') && {</span>
|
|
1825
|
-
<span class="cstat-no" title="statement not covered" > given_name: 'John',</span>
|
|
1826
|
-
<span class="cstat-no" title="statement not covered" > family_name: 'Doe',</span>
|
|
1827
|
-
<span class="cstat-no" title="statement not covered" > picture: 'https://example.com/john.jpg'</span>
|
|
1828
|
-
<span class="cstat-no" title="statement not covered" > }),</span>
|
|
1829
|
-
<span class="cstat-no" title="statement not covered" > ...(tokenData.scope.includes('email') && {</span>
|
|
1830
|
-
<span class="cstat-no" title="statement not covered" > email_verified: true</span>
|
|
1831
|
-
<span class="cstat-no" title="statement not covered" > })</span>
|
|
1832
|
-
<span class="cstat-no" title="statement not covered" > };</span>
|
|
1833
|
-
<span class="cstat-no" title="statement not covered" > }</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" > * Handles the OAuth2 token revocation request</span>
|
|
1837
|
-
<span class="cstat-no" title="statement not covered" > * @param req Express Request object</span>
|
|
1838
|
-
<span class="cstat-no" title="statement not covered" > * @param res Express Response object</span>
|
|
1839
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1840
|
-
<span class="cstat-no" title="statement not covered" > async handleTokenRevocation(req: Request, res: Response): Promise<void> {</span>
|
|
1841
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
1842
|
-
<span class="cstat-no" title="statement not covered" > const { token, token_type_hint } = req.body;</span>
|
|
1843
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1844
|
-
<span class="cstat-no" title="statement not covered" > if (!token) {</span>
|
|
1845
|
-
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
1846
|
-
<span class="cstat-no" title="statement not covered" > status: 400,</span>
|
|
1847
|
-
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HR0`,</span>
|
|
1848
|
-
<span class="cstat-no" title="statement not covered" > addECToUserMsg: true,</span>
|
|
1849
|
-
<span class="cstat-no" title="statement not covered" > message: 'Missing token',</span>
|
|
1850
|
-
<span class="cstat-no" title="statement not covered" > userMessage: 'Invalid revocation request',</span>
|
|
1851
|
-
<span class="cstat-no" title="statement not covered" > issuerService: this.serviceName,</span>
|
|
1852
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1853
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1854
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1855
|
-
<span class="cstat-no" title="statement not covered" > // Try to revoke the token based on token_type_hint</span>
|
|
1856
|
-
<span class="cstat-no" title="statement not covered" > let revoked = false;</span>
|
|
1857
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1858
|
-
<span class="cstat-no" title="statement not covered" > if (!token_type_hint || token_type_hint === 'access_token') {</span>
|
|
1859
|
-
<span class="cstat-no" title="statement not covered" > // Try to revoke as access token</span>
|
|
1860
|
-
<span class="cstat-no" title="statement not covered" > if (this.accessTokens.delete(token)) {</span>
|
|
1861
|
-
<span class="cstat-no" title="statement not covered" > revoked = true;</span>
|
|
1862
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1863
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1864
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1865
|
-
<span class="cstat-no" title="statement not covered" > if (!revoked && (!token_type_hint || token_type_hint === 'refresh_token')) {</span>
|
|
1866
|
-
<span class="cstat-no" title="statement not covered" > // Try to revoke as refresh token</span>
|
|
1867
|
-
<span class="cstat-no" title="statement not covered" > const refreshTokenData = this.refreshTokens.get(token);</span>
|
|
1868
|
-
<span class="cstat-no" title="statement not covered" > if (refreshTokenData) {</span>
|
|
1869
|
-
<span class="cstat-no" title="statement not covered" > // Also revoke the associated access token</span>
|
|
1870
|
-
<span class="cstat-no" title="statement not covered" > this.accessTokens.delete(refreshTokenData.accessToken);</span>
|
|
1871
|
-
<span class="cstat-no" title="statement not covered" > this.refreshTokens.delete(token);</span>
|
|
1872
|
-
<span class="cstat-no" title="statement not covered" > revoked = true;</span>
|
|
1873
|
-
<span class="cstat-no" title="statement not covered" > }</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" > if (!revoked) {</span>
|
|
1877
|
-
<span class="cstat-no" title="statement not covered" > // Token not found or already revoked</span>
|
|
1878
|
-
<span class="cstat-no" title="statement not covered" > throw new DyFM_Error({</span>
|
|
1879
|
-
<span class="cstat-no" title="statement not covered" > status: 400,</span>
|
|
1880
|
-
<span class="cstat-no" title="statement not covered" > errorCode: `${DyNTS_global_settings.systemShortCodeName}|DyNTS-OA2-HR1`,</span>
|
|
1881
|
-
<span class="cstat-no" title="statement not covered" > addECToUserMsg: true,</span>
|
|
1882
|
-
<span class="cstat-no" title="statement not covered" > message: 'Token not found or already revoked',</span>
|
|
1883
|
-
<span class="cstat-no" title="statement not covered" > userMessage: 'Invalid revocation request',</span>
|
|
1884
|
-
<span class="cstat-no" title="statement not covered" > issuerService: this.serviceName,</span>
|
|
1885
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1886
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1887
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1888
|
-
<span class="cstat-no" title="statement not covered" > res.status(200).send();</span>
|
|
1889
|
-
<span class="cstat-no" title="statement not covered" > } catch (error) {</span>
|
|
1890
|
-
<span class="cstat-no" title="statement not covered" > DyFM_Log.error('Token revocation failed', error);</span>
|
|
1891
|
-
<span class="cstat-no" title="statement not covered" > throw error;</span>
|
|
1892
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1893
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1894
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1895
|
-
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
1896
|
-
<span class="cstat-no" title="statement not covered" > * Generates an authorization code</span>
|
|
1897
|
-
<span class="cstat-no" title="statement not covered" > * @param clientId The client ID</span>
|
|
1898
|
-
<span class="cstat-no" title="statement not covered" > * @param scope The requested scope</span>
|
|
1899
|
-
<span class="cstat-no" title="statement not covered" > * @returns The generated authorization code</span>
|
|
1900
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1901
|
-
<span class="cstat-no" title="statement not covered" > private async generateAuthorizationCode(clientId: string, scope: string): Promise<string> {</span>
|
|
1902
|
-
<span class="cstat-no" title="statement not covered" > //const code = randomBytes(32).toString('hex');</span>
|
|
1903
|
-
<span class="cstat-no" title="statement not covered" > const code = cryptoJs.lib.WordArray.random(32).toString();</span>
|
|
1904
|
-
<span class="cstat-no" title="statement not covered" > const expiresAt = Date.now() + 600000; // 10 minutes expiration</span>
|
|
1905
|
-
<span class="cstat-no" title="statement not covered" > </span>
|
|
1906
|
-
<span class="cstat-no" title="statement not covered" > this.authorizationCodes.set(code, {</span>
|
|
1907
|
-
<span class="cstat-no" title="statement not covered" > clientId,</span>
|
|
1908
|
-
<span class="cstat-no" title="statement not covered" > scope,</span>
|
|
1909
|
-
<span class="cstat-no" title="statement not covered" > expiresAt</span>
|
|
1910
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1911
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1912
|
-
<span class="cstat-no" title="statement not covered" > return code;</span>
|
|
1913
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1914
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1915
|
-
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
1916
|
-
<span class="cstat-no" title="statement not covered" > * Generates an access token</span>
|
|
1917
|
-
<span class="cstat-no" title="statement not covered" > * @param clientId The client ID</span>
|
|
1918
|
-
<span class="cstat-no" title="statement not covered" > * @param scope The requested scope</span>
|
|
1919
|
-
<span class="cstat-no" title="statement not covered" > * @returns The generated access token</span>
|
|
1920
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1921
|
-
<span class="cstat-no" title="statement not covered" > private async generateAccessToken(clientId: string, scope: string): Promise<string> {</span>
|
|
1922
|
-
<span class="cstat-no" title="statement not covered" > //const token = randomBytes(32).toString('hex');</span>
|
|
1923
|
-
<span class="cstat-no" title="statement not covered" > const token = cryptoJs.lib.WordArray.random(32).toString();</span>
|
|
1924
|
-
<span class="cstat-no" title="statement not covered" > const expiresAt = Date.now() + 3600000; // 1 hour expiration</span>
|
|
1925
|
-
<span class="cstat-no" title="statement not covered" > </span>
|
|
1926
|
-
<span class="cstat-no" title="statement not covered" > this.accessTokens.set(token, {</span>
|
|
1927
|
-
<span class="cstat-no" title="statement not covered" > clientId,</span>
|
|
1928
|
-
<span class="cstat-no" title="statement not covered" > scope,</span>
|
|
1929
|
-
<span class="cstat-no" title="statement not covered" > expiresAt</span>
|
|
1930
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1931
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1932
|
-
<span class="cstat-no" title="statement not covered" > return token;</span>
|
|
1933
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1934
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1935
|
-
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
1936
|
-
<span class="cstat-no" title="statement not covered" > * Generates a refresh token</span>
|
|
1937
|
-
<span class="cstat-no" title="statement not covered" > * @param clientId The client ID</span>
|
|
1938
|
-
<span class="cstat-no" title="statement not covered" > * @returns The generated refresh token</span>
|
|
1939
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1940
|
-
<span class="cstat-no" title="statement not covered" > private async generateRefreshToken(clientId: string): Promise<string> {</span>
|
|
1941
|
-
<span class="cstat-no" title="statement not covered" > //const token = randomBytes(32).toString('hex');</span>
|
|
1942
|
-
<span class="cstat-no" title="statement not covered" > const token = cryptoJs.lib.WordArray.random(32).toString();</span>
|
|
1943
|
-
<span class="cstat-no" title="statement not covered" > </span>
|
|
1944
|
-
<span class="cstat-no" title="statement not covered" > this.refreshTokens.set(token, {</span>
|
|
1945
|
-
<span class="cstat-no" title="statement not covered" > clientId,</span>
|
|
1946
|
-
<span class="cstat-no" title="statement not covered" > scope: '',</span>
|
|
1947
|
-
<span class="cstat-no" title="statement not covered" > accessToken: ''</span>
|
|
1948
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1949
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1950
|
-
<span class="cstat-no" title="statement not covered" > return token;</span>
|
|
1951
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1952
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1953
|
-
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
1954
|
-
<span class="cstat-no" title="statement not covered" > * Gets the access token data</span>
|
|
1955
|
-
<span class="cstat-no" title="statement not covered" > * @param token The access token</span>
|
|
1956
|
-
<span class="cstat-no" title="statement not covered" > * @returns The access token data or undefined if not found</span>
|
|
1957
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1958
|
-
<span class="cstat-no" title="statement not covered" > getAccessTokenData(token: string): { clientId: string; scope: string; expiresAt: number } | undefined {</span>
|
|
1959
|
-
<span class="cstat-no" title="statement not covered" > return this.accessTokens.get(token);</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" > * Registers a new OAuth2 client</span>
|
|
1964
|
-
<span class="cstat-no" title="statement not covered" > * @param clientId The client ID</span>
|
|
1965
|
-
<span class="cstat-no" title="statement not covered" > * @param clientSecret The client secret</span>
|
|
1966
|
-
<span class="cstat-no" title="statement not covered" > * @param redirectUris The allowed redirect URIs</span>
|
|
1967
|
-
<span class="cstat-no" title="statement not covered" > * @param allowedScopes The allowed scopes</span>
|
|
1968
|
-
<span class="cstat-no" title="statement not covered" > * @returns true if the client was registered successfully</span>
|
|
1969
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1970
|
-
<span class="cstat-no" title="statement not covered" > registerClient(</span>
|
|
1971
|
-
<span class="cstat-no" title="statement not covered" > clientId: string,</span>
|
|
1972
|
-
<span class="cstat-no" title="statement not covered" > clientSecret: string,</span>
|
|
1973
|
-
<span class="cstat-no" title="statement not covered" > redirectUris: string[],</span>
|
|
1974
|
-
<span class="cstat-no" title="statement not covered" > allowedScopes: string[]</span>
|
|
1975
|
-
<span class="cstat-no" title="statement not covered" > ): boolean {</span>
|
|
1976
|
-
<span class="cstat-no" title="statement not covered" > if (this.clients.has(clientId)) {</span>
|
|
1977
|
-
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
1978
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1979
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1980
|
-
<span class="cstat-no" title="statement not covered" > this.clients.set(clientId, {</span>
|
|
1981
|
-
<span class="cstat-no" title="statement not covered" > clientId,</span>
|
|
1982
|
-
<span class="cstat-no" title="statement not covered" > clientSecret,</span>
|
|
1983
|
-
<span class="cstat-no" title="statement not covered" > redirectUris,</span>
|
|
1984
|
-
<span class="cstat-no" title="statement not covered" > allowedScopes,</span>
|
|
1985
|
-
<span class="cstat-no" title="statement not covered" > isActive: true</span>
|
|
1986
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
1987
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1988
|
-
<span class="cstat-no" title="statement not covered" > return true;</span>
|
|
1989
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1990
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
1991
|
-
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
1992
|
-
<span class="cstat-no" title="statement not covered" > * Authenticates a user with username and password</span>
|
|
1993
|
-
<span class="cstat-no" title="statement not covered" > * @param username The username</span>
|
|
1994
|
-
<span class="cstat-no" title="statement not covered" > * @param password The password</span>
|
|
1995
|
-
<span class="cstat-no" title="statement not covered" > * @returns The user's scopes if authentication is successful, undefined otherwise</span>
|
|
1996
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
1997
|
-
<span class="cstat-no" title="statement not covered" > private authenticateUser(username: string, password: string): string[] | undefined {</span>
|
|
1998
|
-
<span class="cstat-no" title="statement not covered" > const user = this.users.get(username);</span>
|
|
1999
|
-
<span class="cstat-no" title="statement not covered" > if (!user || user.password !== password) { // In a real implementation, compare hashed passwords</span>
|
|
2000
|
-
<span class="cstat-no" title="statement not covered" > return undefined;</span>
|
|
2001
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2002
|
-
<span class="cstat-no" title="statement not covered" > return user.scopes;</span>
|
|
2003
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2004
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
2005
|
-
<span class="cstat-no" title="statement not covered" > /**</span>
|
|
2006
|
-
<span class="cstat-no" title="statement not covered" > * Registers a new user</span>
|
|
2007
|
-
<span class="cstat-no" title="statement not covered" > * @param username The username</span>
|
|
2008
|
-
<span class="cstat-no" title="statement not covered" > * @param password The password</span>
|
|
2009
|
-
<span class="cstat-no" title="statement not covered" > * @param scopes The user's scopes</span>
|
|
2010
|
-
<span class="cstat-no" title="statement not covered" > * @returns true if the user was registered successfully</span>
|
|
2011
|
-
<span class="cstat-no" title="statement not covered" > */</span>
|
|
2012
|
-
<span class="cstat-no" title="statement not covered" > registerUser(username: string, password: string, scopes: string[]): boolean {</span>
|
|
2013
|
-
<span class="cstat-no" title="statement not covered" > if (this.users.has(username)) {</span>
|
|
2014
|
-
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
2015
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2016
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
2017
|
-
<span class="cstat-no" title="statement not covered" > this.users.set(username, {</span>
|
|
2018
|
-
<span class="cstat-no" title="statement not covered" > username,</span>
|
|
2019
|
-
<span class="cstat-no" title="statement not covered" > password, // In a real implementation, hash the password</span>
|
|
2020
|
-
<span class="cstat-no" title="statement not covered" > scopes</span>
|
|
2021
|
-
<span class="cstat-no" title="statement not covered" > });</span>
|
|
2022
|
-
<span class="cstat-no" title="statement not covered" ></span>
|
|
2023
|
-
<span class="cstat-no" title="statement not covered" > return true;</span>
|
|
2024
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
2025
|
-
<span class="cstat-no" title="statement not covered" >} </span></pre></td></tr></table></pre>
|
|
2026
|
-
|
|
2027
|
-
<div class='push'></div><!-- for sticky footer -->
|
|
2028
|
-
</div><!-- /wrapper -->
|
|
2029
|
-
<div class='footer quiet pad2 space-top1 center small'>
|
|
2030
|
-
Code coverage generated by
|
|
2031
|
-
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
2032
|
-
at 2025-11-12T23:04:35.006Z
|
|
2033
|
-
</div>
|
|
2034
|
-
<script src="../../../prettify.js"></script>
|
|
2035
|
-
<script>
|
|
2036
|
-
window.onload = function () {
|
|
2037
|
-
prettyPrint();
|
|
2038
|
-
};
|
|
2039
|
-
</script>
|
|
2040
|
-
<script src="../../../sorter.js"></script>
|
|
2041
|
-
<script src="../../../block-navigation.js"></script>
|
|
2042
|
-
</body>
|
|
2043
|
-
</html>
|
|
2044
|
-
|