slnodejs 6.0.29 → 6.1.2
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/lib/cli.js +1 -1
- package/package.json +124 -123
- package/tsOutputs/api.d.ts +12 -10
- package/tsOutputs/api.js +116 -115
- package/tsOutputs/build-scanner/ast-utils.js +39 -0
- package/tsOutputs/build-scanner/ast-utils.js.map +1 -0
- package/tsOutputs/build-scanner/build-diff-process.js +352 -346
- package/tsOutputs/build-scanner/build-diff-process.js.map +1 -1
- package/tsOutputs/build-scanner/cia.js +95 -95
- package/tsOutputs/build-scanner/complexity-metrics/complexity-metrics.js +1 -0
- package/tsOutputs/build-scanner/complexity-metrics/complexity-metrics.js.map +1 -0
- package/tsOutputs/build-scanner/configuration-loader.js +17 -17
- package/tsOutputs/build-scanner/current-agent-instance.js +5 -5
- package/tsOutputs/build-scanner/default-values-resolver.js +42 -42
- package/tsOutputs/build-scanner/entities-mapper.js +35 -35
- package/tsOutputs/build-scanner/file-and-folder-utils.js +176 -176
- package/tsOutputs/build-scanner/file-system/actual-file.js +66 -46
- package/tsOutputs/build-scanner/file-system/actual-file.js.map +1 -1
- package/tsOutputs/build-scanner/git-format-builder.js +68 -68
- package/tsOutputs/build-scanner/global-error-handler.js +20 -20
- package/tsOutputs/build-scanner/instrumentation/browser-instrumenter.js +299 -299
- package/tsOutputs/build-scanner/instrumentation/browser-instrumenter.js.map +1 -1
- package/tsOutputs/build-scanner/instrumentation/file-instrumenter.js +271 -180
- package/tsOutputs/build-scanner/instrumentation/file-instrumenter.js.map +1 -1
- package/tsOutputs/build-scanner/instrumentation/instrumentation-utils.js +58 -58
- package/tsOutputs/build-scanner/instrumentation/instrumented-file-size-reducer.js +159 -159
- package/tsOutputs/build-scanner/instrumentation/markup-file-instrumenter.js +185 -137
- package/tsOutputs/build-scanner/instrumentation/markup-file-instrumenter.js.map +1 -1
- package/tsOutputs/build-scanner/instrumentation/sync-instrumenter.js +39 -39
- package/tsOutputs/build-scanner/js_diff/ast-node-types.js +44 -44
- package/tsOutputs/build-scanner/js_diff/branch-key.js +10 -10
- package/tsOutputs/build-scanner/js_diff/branch-signature.js +156 -156
- package/tsOutputs/build-scanner/js_diff/code-metrics-spec.js +1 -0
- package/tsOutputs/build-scanner/js_diff/code-metrics-spec.js.map +1 -0
- package/tsOutputs/build-scanner/js_diff/code-metrics.js +1 -0
- package/tsOutputs/build-scanner/js_diff/code-metrics.js.map +1 -0
- package/tsOutputs/build-scanner/js_diff/create-node-key.js +7 -7
- package/tsOutputs/build-scanner/js_diff/dry-run-files-mapping.js +23 -23
- package/tsOutputs/build-scanner/js_diff/dry-run-files-mapping.js.map +1 -1
- package/tsOutputs/build-scanner/js_diff/file-signature.js +234 -244
- package/tsOutputs/build-scanner/js_diff/file-signature.js.map +1 -1
- package/tsOutputs/build-scanner/js_diff/files-mapping.js +460 -473
- package/tsOutputs/build-scanner/js_diff/files-mapping.js.map +1 -1
- package/tsOutputs/build-scanner/js_diff/generated-file-signature.js +143 -143
- package/tsOutputs/build-scanner/js_diff/generated-file-signature.js.map +1 -1
- package/tsOutputs/build-scanner/js_diff/globalMethodIndexer.js +26 -26
- package/tsOutputs/build-scanner/js_diff/guess-method-location.js +100 -97
- package/tsOutputs/build-scanner/js_diff/guess-method-location.js.map +1 -1
- package/tsOutputs/build-scanner/js_diff/guess-method-name.js +54 -54
- package/tsOutputs/build-scanner/js_diff/method-signature.js +142 -140
- package/tsOutputs/build-scanner/js_diff/method-signature.js.map +1 -1
- package/tsOutputs/build-scanner/js_diff/sl-mapper.js +136 -75
- package/tsOutputs/build-scanner/js_diff/sl-mapper.js.map +1 -1
- package/tsOutputs/build-scanner/js_diff/source-data-enricher.js +89 -89
- package/tsOutputs/build-scanner/js_diff/source-data-enricher.js.map +1 -1
- package/tsOutputs/build-scanner/js_diff/source-files-notifier.js +31 -31
- package/tsOutputs/build-scanner/js_diff/source-position-mapper.js +29 -29
- package/tsOutputs/build-scanner/mappings/contracts.js +3 -0
- package/tsOutputs/build-scanner/mappings/contracts.js.map +1 -0
- package/tsOutputs/build-scanner/mappings/ensure-files-handler.service.js +214 -0
- package/tsOutputs/build-scanner/mappings/ensure-files-handler.service.js.map +1 -0
- package/tsOutputs/build-scanner/mappings/file-element-utils.js +47 -0
- package/tsOutputs/build-scanner/mappings/file-element-utils.js.map +1 -0
- package/tsOutputs/build-scanner/mappings/file-enricher.js +205 -0
- package/tsOutputs/build-scanner/mappings/file-enricher.js.map +1 -0
- package/tsOutputs/build-scanner/mappings/files-data-container.js +52 -0
- package/tsOutputs/build-scanner/mappings/files-data-container.js.map +1 -0
- package/tsOutputs/build-scanner/mappings/scm-file-fixer.js +78 -0
- package/tsOutputs/build-scanner/mappings/scm-file-fixer.js.map +1 -0
- package/tsOutputs/build-scanner/markup-files-parser.js +71 -71
- package/tsOutputs/build-scanner/nopt-types.js +19 -19
- package/tsOutputs/build-scanner/nopt-usage-2.js +56 -56
- package/tsOutputs/build-scanner/polyfills.js +6 -6
- package/tsOutputs/build-scanner/scm/parse-log.js +5 -5
- package/tsOutputs/build-scanner/scm/scm-files-container.js +49 -49
- package/tsOutputs/build-scanner/sl-config-cia-cli.js +175 -175
- package/tsOutputs/build-scanner/utils.js +91 -91
- package/tsOutputs/cli-parse/agent-instance-data.d.ts +2 -2
- package/tsOutputs/cli-parse/agent-instance-data.js +6 -6
- package/tsOutputs/cli-parse/child-process-wrapper.js +82 -82
- package/tsOutputs/cli-parse/cli.js +509 -506
- package/tsOutputs/cli-parse/cli.js.map +1 -1
- package/tsOutputs/cli-parse/constants/constants.js +55 -56
- package/tsOutputs/cli-parse/constants/constants.js.map +1 -1
- package/tsOutputs/cli-parse/constants/third-parties.js +10 -10
- package/tsOutputs/cli-parse/contracts.js +2 -2
- package/tsOutputs/cli-parse/custom-commander.js +44 -31
- package/tsOutputs/cli-parse/custom-commander.js.map +1 -1
- package/tsOutputs/cli-parse/executors/base-executor.js +263 -254
- package/tsOutputs/cli-parse/executors/base-executor.js.map +1 -1
- package/tsOutputs/cli-parse/executors/build-args-dto.js +55 -55
- package/tsOutputs/cli-parse/executors/build-end-executor.js +115 -117
- package/tsOutputs/cli-parse/executors/build-end-executor.js.map +1 -1
- package/tsOutputs/cli-parse/executors/build-executor.js +147 -149
- package/tsOutputs/cli-parse/executors/build-executor.js.map +1 -1
- package/tsOutputs/cli-parse/executors/config-executor.js +112 -111
- package/tsOutputs/cli-parse/executors/config-executor.js.map +1 -1
- package/tsOutputs/cli-parse/executors/dry-run/base-data.js +55 -55
- package/tsOutputs/cli-parse/executors/dry-run/base-data.js.map +1 -1
- package/tsOutputs/cli-parse/executors/dry-run/build-mapping-data.js +228 -230
- package/tsOutputs/cli-parse/executors/dry-run/build-mapping-data.js.map +1 -1
- package/tsOutputs/cli-parse/executors/dry-run/dry-run-executor.js +277 -277
- package/tsOutputs/cli-parse/executors/dry-run/dry-run-executor.js.map +1 -1
- package/tsOutputs/cli-parse/executors/dry-run/dry-run-validation.js +120 -122
- package/tsOutputs/cli-parse/executors/dry-run/dry-run-validation.js.map +1 -1
- package/tsOutputs/cli-parse/executors/dry-run/footprints-data.js +130 -72
- package/tsOutputs/cli-parse/executors/dry-run/footprints-data.js.map +1 -1
- package/tsOutputs/cli-parse/executors/dry-run/helper-methods.js +104 -99
- package/tsOutputs/cli-parse/executors/dry-run/helper-methods.js.map +1 -1
- package/tsOutputs/cli-parse/executors/end-execution-executor.js +88 -90
- package/tsOutputs/cli-parse/executors/end-execution-executor.js.map +1 -1
- package/tsOutputs/cli-parse/executors/integration-build-components-executor.js +132 -134
- package/tsOutputs/cli-parse/executors/integration-build-components-executor.js.map +1 -1
- package/tsOutputs/cli-parse/executors/integration-build-delete-components-executor.js +73 -75
- package/tsOutputs/cli-parse/executors/integration-build-delete-components-executor.js.map +1 -1
- package/tsOutputs/cli-parse/executors/integration-build-update-components-executor.js +71 -73
- package/tsOutputs/cli-parse/executors/integration-build-update-components-executor.js.map +1 -1
- package/tsOutputs/cli-parse/executors/mocha-executor.js +122 -124
- package/tsOutputs/cli-parse/executors/mocha-executor.js.map +1 -1
- package/tsOutputs/cli-parse/executors/nyc-report-executor.js +104 -106
- package/tsOutputs/cli-parse/executors/nyc-report-executor.js.map +1 -1
- package/tsOutputs/cli-parse/executors/pr-config-executor.js +83 -85
- package/tsOutputs/cli-parse/executors/pr-config-executor.js.map +1 -1
- package/tsOutputs/cli-parse/executors/run-executor.js +93 -95
- package/tsOutputs/cli-parse/executors/run-executor.js.map +1 -1
- package/tsOutputs/cli-parse/executors/start-execution-executor.js +91 -93
- package/tsOutputs/cli-parse/executors/start-execution-executor.js.map +1 -1
- package/tsOutputs/cli-parse/executors/test-executions-executor.js +75 -77
- package/tsOutputs/cli-parse/executors/test-executions-executor.js.map +1 -1
- package/tsOutputs/cli-parse/executors/test-listener-executor.js +149 -151
- package/tsOutputs/cli-parse/executors/test-listener-executor.js.map +1 -1
- package/tsOutputs/cli-parse/executors/test-runner-build-session-data-builder.js +75 -77
- package/tsOutputs/cli-parse/executors/test-runner-build-session-data-builder.js.map +1 -1
- package/tsOutputs/cli-parse/executors/upload-report-executor.js +116 -118
- package/tsOutputs/cli-parse/executors/upload-report-executor.js.map +1 -1
- package/tsOutputs/cli-parse/utils.js +32 -32
- package/tsOutputs/common/agent-events/agent-events-conracts.d.ts +123 -123
- package/tsOutputs/common/agent-events/agent-events-conracts.js +56 -56
- package/tsOutputs/common/agent-events/agent-events-controller.d.ts +45 -45
- package/tsOutputs/common/agent-events/agent-events-controller.js +301 -301
- package/tsOutputs/common/agent-events/agent-instance-info-builder.d.ts +22 -22
- package/tsOutputs/common/agent-events/agent-instance-info-builder.js +63 -63
- package/tsOutputs/common/agent-events/agent-start-info-builder.d.ts +14 -14
- package/tsOutputs/common/agent-events/agent-start-info-builder.js +23 -23
- package/tsOutputs/common/agent-events/ci-info-builder.d.ts +7 -7
- package/tsOutputs/common/agent-events/ci-info-builder.js +30 -30
- package/tsOutputs/common/agent-events/cockpit-notifier.d.ts +26 -26
- package/tsOutputs/common/agent-events/cockpit-notifier.js +119 -119
- package/tsOutputs/common/agent-events/dry-run-agent-events-controller.d.ts +7 -7
- package/tsOutputs/common/agent-events/dry-run-agent-events-controller.js +31 -33
- package/tsOutputs/common/agent-events/dry-run-agent-events-controller.js.map +1 -1
- package/tsOutputs/common/agent-events/machine-info-builder.d.ts +7 -7
- package/tsOutputs/common/agent-events/machine-info-builder.js +35 -35
- package/tsOutputs/common/agent-events/nodejs-env-info-builder.d.ts +8 -8
- package/tsOutputs/common/agent-events/nodejs-env-info-builder.js +19 -19
- package/tsOutputs/common/agent-events/sensitive-data-filter.d.ts +2 -2
- package/tsOutputs/common/agent-events/sensitive-data-filter.js +54 -54
- package/tsOutputs/common/agent-instance-data.d.ts +10 -10
- package/tsOutputs/common/agent-instance-data.js +39 -39
- package/tsOutputs/common/config-process/config-loader.d.ts +8 -8
- package/tsOutputs/common/config-process/config-loader.js +86 -86
- package/tsOutputs/common/config-process/config-system.d.ts +88 -88
- package/tsOutputs/common/config-process/config-system.js +293 -293
- package/tsOutputs/common/config-process/config.d.ts +60 -60
- package/tsOutputs/common/config-process/config.js +90 -92
- package/tsOutputs/common/config-process/config.js.map +1 -1
- package/tsOutputs/common/config-process/index.d.ts +21 -21
- package/tsOutputs/common/config-process/index.js +125 -127
- package/tsOutputs/common/config-process/index.js.map +1 -1
- package/tsOutputs/common/constants/constants.d.ts +18 -18
- package/tsOutputs/common/constants/constants.js +29 -29
- package/tsOutputs/common/constants/sl-env-vars.d.ts +52 -52
- package/tsOutputs/common/constants/sl-env-vars.js +122 -122
- package/tsOutputs/common/contracts.d.ts +123 -122
- package/tsOutputs/common/contracts.js +2 -2
- package/tsOutputs/common/coverage-elements/contracts.d.ts +25 -25
- package/tsOutputs/common/coverage-elements/contracts.js +8 -8
- package/tsOutputs/common/coverage-elements/file-element.d.ts +35 -35
- package/tsOutputs/common/coverage-elements/file-element.js +158 -158
- package/tsOutputs/common/coverage-elements/istanbul-unique-id-converter.d.ts +12 -12
- package/tsOutputs/common/coverage-elements/istanbul-unique-id-converter.js +95 -97
- package/tsOutputs/common/coverage-elements/istanbul-unique-id-converter.js.map +1 -1
- package/tsOutputs/common/coverage-elements/new-id-resolver.d.ts +3 -3
- package/tsOutputs/common/coverage-elements/new-id-resolver.js +45 -45
- package/tsOutputs/common/coverage-elements/original-module-loader.d.ts +41 -41
- package/tsOutputs/common/coverage-elements/original-module-loader.js +189 -189
- package/tsOutputs/common/coverage-elements/unique-id-converter.d.ts +32 -32
- package/tsOutputs/common/coverage-elements/unique-id-converter.js +234 -234
- package/tsOutputs/common/environment-data-service.d.ts +15 -15
- package/tsOutputs/common/environment-data-service.js +60 -60
- package/tsOutputs/common/events-process/events-contracts.d.ts +52 -52
- package/tsOutputs/common/events-process/events-contracts.js +19 -19
- package/tsOutputs/common/events-process/events-creator.js +42 -40
- package/tsOutputs/common/events-process/events-creator.js.map +1 -1
- package/tsOutputs/common/events-process/index.d.ts +42 -42
- package/tsOutputs/common/events-process/index.js +265 -266
- package/tsOutputs/common/events-process/index.js.map +1 -1
- package/tsOutputs/common/footprints-process/collection-interval.d.ts +10 -10
- package/tsOutputs/common/footprints-process/collection-interval.js +27 -27
- package/tsOutputs/common/footprints-process/footprints-service-proxy.d.ts +12 -12
- package/tsOutputs/common/footprints-process/footprints-service-proxy.js +51 -51
- package/tsOutputs/common/footprints-process/index.d.ts +71 -71
- package/tsOutputs/common/footprints-process/index.js +264 -264
- package/tsOutputs/common/footprints-process/istanbul-to-footprints-contract.d.ts +98 -98
- package/tsOutputs/common/footprints-process/istanbul-to-footprints-contract.js +9 -9
- package/tsOutputs/common/footprints-process/istanbul-to-footprints.d.ts +47 -47
- package/tsOutputs/common/footprints-process/istanbul-to-footprints.js +421 -421
- package/tsOutputs/common/footprints-process/production-footprints-handler.d.ts +54 -54
- package/tsOutputs/common/footprints-process/production-footprints-handler.js +308 -308
- package/tsOutputs/common/footprints-process-v6/base-browser-hits-converter.d.ts +20 -20
- package/tsOutputs/common/footprints-process-v6/base-browser-hits-converter.js +63 -65
- package/tsOutputs/common/footprints-process-v6/base-browser-hits-converter.js.map +1 -1
- package/tsOutputs/common/footprints-process-v6/buffer-size-helper.d.ts +15 -15
- package/tsOutputs/common/footprints-process-v6/buffer-size-helper.js +40 -40
- package/tsOutputs/common/footprints-process-v6/contracts.d.ts +184 -181
- package/tsOutputs/common/footprints-process-v6/contracts.js +9 -9
- package/tsOutputs/common/footprints-process-v6/footprints-buffer.d.ts +36 -34
- package/tsOutputs/common/footprints-process-v6/footprints-buffer.js +147 -135
- package/tsOutputs/common/footprints-process-v6/footprints-buffer.js.map +1 -1
- package/tsOutputs/common/footprints-process-v6/hits-collector.d.ts +24 -24
- package/tsOutputs/common/footprints-process-v6/hits-collector.js +168 -168
- package/tsOutputs/common/footprints-process-v6/hits-converter.d.ts +30 -28
- package/tsOutputs/common/footprints-process-v6/hits-converter.js +135 -105
- package/tsOutputs/common/footprints-process-v6/hits-converter.js.map +1 -1
- package/tsOutputs/common/footprints-process-v6/index.d.ts +41 -40
- package/tsOutputs/common/footprints-process-v6/index.js +304 -258
- package/tsOutputs/common/footprints-process-v6/index.js.map +1 -1
- package/tsOutputs/common/footprints-process-v6/location-formatter.d.ts +6 -6
- package/tsOutputs/common/footprints-process-v6/location-formatter.js +25 -25
- package/tsOutputs/common/footprints-process-v6/relative-path-resolver.d.ts +8 -8
- package/tsOutputs/common/footprints-process-v6/relative-path-resolver.js +28 -28
- package/tsOutputs/common/footprints-process-v6/remote-browser-hits-converter.d.ts +9 -9
- package/tsOutputs/common/footprints-process-v6/remote-browser-hits-converter.js +38 -40
- package/tsOutputs/common/footprints-process-v6/remote-browser-hits-converter.js.map +1 -1
- package/tsOutputs/common/footprints-process-v6/remote-footprints-process.d.ts +8 -8
- package/tsOutputs/common/footprints-process-v6/remote-footprints-process.js +32 -34
- package/tsOutputs/common/footprints-process-v6/remote-footprints-process.js.map +1 -1
- package/tsOutputs/common/footprints-process-v6/remote-hits-collector.d.ts +14 -14
- package/tsOutputs/common/footprints-process-v6/remote-hits-collector.js +39 -41
- package/tsOutputs/common/footprints-process-v6/remote-hits-collector.js.map +1 -1
- package/tsOutputs/common/footprints-process-v6/source-map-data.d.ts +9 -9
- package/tsOutputs/common/footprints-process-v6/source-map-data.js +32 -32
- package/tsOutputs/common/footprints-process-v6/source-map-data.js.map +1 -1
- package/tsOutputs/common/http/backend-proxy-interface.d.ts +33 -33
- package/tsOutputs/common/http/backend-proxy-interface.js +2 -2
- package/tsOutputs/common/http/backend-proxy.d.ts +54 -53
- package/tsOutputs/common/http/backend-proxy.js +408 -398
- package/tsOutputs/common/http/backend-proxy.js.map +1 -1
- package/tsOutputs/common/http/contracts.d.ts +280 -203
- package/tsOutputs/common/http/contracts.js +156 -158
- package/tsOutputs/common/http/contracts.js.map +1 -1
- package/tsOutputs/common/http/dry-run-proxy.js +106 -106
- package/tsOutputs/common/http/entities-mapper.d.ts +4 -4
- package/tsOutputs/common/http/entities-mapper.js +17 -17
- package/tsOutputs/common/http/http-client.d.ts +21 -21
- package/tsOutputs/common/http/http-client.js +195 -191
- package/tsOutputs/common/http/http-client.js.map +1 -1
- package/tsOutputs/common/http/http-verb.d.ts +6 -6
- package/tsOutputs/common/http/http-verb.js +10 -10
- package/tsOutputs/common/http/sl-routes.d.ts +70 -70
- package/tsOutputs/common/http/sl-routes.js +218 -218
- package/tsOutputs/common/ignored-files-handler.js +122 -122
- package/tsOutputs/common/logger.d.ts +40 -40
- package/tsOutputs/common/logger.js +188 -190
- package/tsOutputs/common/logger.js.map +1 -1
- package/tsOutputs/common/messages-formatter.d.ts +6 -6
- package/tsOutputs/common/messages-formatter.js +21 -21
- package/tsOutputs/common/queue.d.ts +19 -19
- package/tsOutputs/common/queue.js +55 -57
- package/tsOutputs/common/queue.js.map +1 -1
- package/tsOutputs/common/scm/contracts.js +2 -2
- package/tsOutputs/common/scm/git-cloner.js +138 -0
- package/tsOutputs/common/scm/git-cloner.js.map +1 -0
- package/tsOutputs/common/scm/git-format-builder.js +72 -72
- package/tsOutputs/common/scm/git.js +411 -411
- package/tsOutputs/common/scm/none.js +115 -115
- package/tsOutputs/common/scm/scm-factory.js +21 -21
- package/tsOutputs/common/short-name-to-file-mapper.js +79 -79
- package/tsOutputs/common/source-map-handler.d.ts +58 -58
- package/tsOutputs/common/source-map-handler.js +197 -197
- package/tsOutputs/common/source-map-reader.js +84 -84
- package/tsOutputs/common/source-maps-utils.d.ts +3 -3
- package/tsOutputs/common/source-maps-utils.js +39 -39
- package/tsOutputs/common/state-tracker-fpv6.d.ts +6 -6
- package/tsOutputs/common/state-tracker-fpv6.js +42 -44
- package/tsOutputs/common/state-tracker-fpv6.js.map +1 -1
- package/tsOutputs/common/state-tracker.d.ts +49 -49
- package/tsOutputs/common/state-tracker.js +299 -304
- package/tsOutputs/common/state-tracker.js.map +1 -1
- package/tsOutputs/common/system-date.d.ts +2 -2
- package/tsOutputs/common/system-date.js +21 -21
- package/tsOutputs/common/utils/abstract-data-builder.d.ts +10 -10
- package/tsOutputs/common/utils/abstract-data-builder.js +24 -24
- package/tsOutputs/common/utils/build-session-data-builder.d.ts +18 -18
- package/tsOutputs/common/utils/build-session-data-builder.js +135 -137
- package/tsOutputs/common/utils/build-session-data-builder.js.map +1 -1
- package/tsOutputs/common/utils/dependency-utils.js +69 -69
- package/tsOutputs/common/utils/files-utils.d.ts +6 -5
- package/tsOutputs/common/utils/files-utils.js +45 -36
- package/tsOutputs/common/utils/files-utils.js.map +1 -1
- package/tsOutputs/common/utils/parsing-utils.d.ts +4 -4
- package/tsOutputs/common/utils/parsing-utils.js +29 -29
- package/tsOutputs/common/utils/test-utils/mock-server-utils/contracts.js +10 -10
- package/tsOutputs/common/utils/test-utils/mock-server-utils/mock-server-proxy.js +248 -248
- package/tsOutputs/common/utils/timer-utils.d.ts +3 -3
- package/tsOutputs/common/utils/timer-utils.js +12 -12
- package/tsOutputs/common/utils/token-data-builder.d.ts +21 -21
- package/tsOutputs/common/utils/token-data-builder.js +95 -97
- package/tsOutputs/common/utils/token-data-builder.js.map +1 -1
- package/tsOutputs/common/utils/validation-utils.d.ts +3 -3
- package/tsOutputs/common/utils/validation-utils.js +18 -18
- package/tsOutputs/common/uuid.js +23 -23
- package/tsOutputs/common/watchdog.d.ts +96 -96
- package/tsOutputs/common/watchdog.js +149 -151
- package/tsOutputs/common/watchdog.js.map +1 -1
- package/tsOutputs/mocha-reporter/constants.js +27 -27
- package/tsOutputs/mocha-reporter/end-execution.js +22 -22
- package/tsOutputs/mocha-reporter/index.js +323 -323
- package/tsOutputs/test-listener/IConsoleLogger.js +5 -5
- package/tsOutputs/test-listener/SlNodeJsProxy.js +96 -96
- package/tsOutputs/test-listener/UserMessageHelper.js +47 -47
- package/tsOutputs/test-listener/agent-loader.js +58 -58
- package/tsOutputs/test-listener/agent.d.ts +53 -53
- package/tsOutputs/test-listener/agent.js +273 -273
- package/tsOutputs/test-listener/api.js +157 -157
- package/tsOutputs/test-listener/base-proxy.d.ts +15 -15
- package/tsOutputs/test-listener/base-proxy.js +133 -133
- package/tsOutputs/test-listener/bootstrap.js +16 -16
- package/tsOutputs/test-listener/child-process-patcher.js +136 -136
- package/tsOutputs/test-listener/cli.js +64 -64
- package/tsOutputs/test-listener/coloring/http-coloring.d.ts +15 -15
- package/tsOutputs/test-listener/coloring/http-coloring.js +188 -188
- package/tsOutputs/test-listener/coloring/icoloring-provider.d.ts +10 -10
- package/tsOutputs/test-listener/coloring/icoloring-provider.js +2 -2
- package/tsOutputs/test-listener/coloring/listening-port.d.ts +20 -20
- package/tsOutputs/test-listener/coloring/listening-port.js +48 -48
- package/tsOutputs/test-listener/command-line-arg-parser.js +91 -91
- package/tsOutputs/test-listener/config-process/config-loader.js +104 -104
- package/tsOutputs/test-listener/config-process/config-system.d.ts +88 -88
- package/tsOutputs/test-listener/config-process/config-system.js +285 -285
- package/tsOutputs/test-listener/config-process/index.js +126 -128
- package/tsOutputs/test-listener/config-process/index.js.map +1 -1
- package/tsOutputs/test-listener/config.d.ts +50 -50
- package/tsOutputs/test-listener/config.js +80 -82
- package/tsOutputs/test-listener/config.js.map +1 -1
- package/tsOutputs/test-listener/contracts.d.ts +72 -72
- package/tsOutputs/test-listener/contracts.js +2 -2
- package/tsOutputs/test-listener/entities/BasicConfigurationData.js +72 -72
- package/tsOutputs/test-listener/entities/build-scanner/ConfigModeData.js +48 -50
- package/tsOutputs/test-listener/entities/build-scanner/ConfigModeData.js.map +1 -1
- package/tsOutputs/test-listener/entities/build-scanner/ScanModeData.js +51 -53
- package/tsOutputs/test-listener/entities/build-scanner/ScanModeData.js.map +1 -1
- package/tsOutputs/test-listener/environment-data-service.d.ts +11 -11
- package/tsOutputs/test-listener/environment-data-service.js +60 -60
- package/tsOutputs/test-listener/execution-process/contracts.js +5 -5
- package/tsOutputs/test-listener/execution-process/entities-mapper.js +49 -49
- package/tsOutputs/test-listener/execution-process/execution-service-proxy.js +205 -207
- package/tsOutputs/test-listener/execution-process/execution-service-proxy.js.map +1 -1
- package/tsOutputs/test-listener/execution-process/index.js +163 -163
- package/tsOutputs/test-listener/factory.d.ts +87 -87
- package/tsOutputs/test-listener/factory.js +285 -285
- package/tsOutputs/test-listener/footprints-process/footprints-service-proxy.js +50 -52
- package/tsOutputs/test-listener/footprints-process/footprints-service-proxy.js.map +1 -1
- package/tsOutputs/test-listener/footprints-process/index.js +230 -230
- package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-base.js +130 -130
- package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-contract.js +2 -2
- package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-v3.js +288 -290
- package/tsOutputs/test-listener/footprints-process/istanbul-to-footprints-v3.js.map +1 -1
- package/tsOutputs/test-listener/integrations/SlGulp.js +104 -104
- package/tsOutputs/test-listener/logs-process/index.d.ts +48 -48
- package/tsOutputs/test-listener/logs-process/index.js +142 -142
- package/tsOutputs/test-listener/logs-process/log-service-proxy.d.ts +9 -9
- package/tsOutputs/test-listener/logs-process/log-service-proxy.js +29 -31
- package/tsOutputs/test-listener/logs-process/log-service-proxy.js.map +1 -1
- package/tsOutputs/test-listener/nyc-report-executor-fpv6.js +143 -136
- package/tsOutputs/test-listener/nyc-report-executor-fpv6.js.map +1 -1
- package/tsOutputs/test-listener/nyc-report-executor.js +144 -144
- package/tsOutputs/test-listener/queue.js +55 -57
- package/tsOutputs/test-listener/queue.js.map +1 -1
- package/tsOutputs/test-listener/remote-agent.d.ts +42 -42
- package/tsOutputs/test-listener/remote-agent.js +200 -200
- package/tsOutputs/test-listener/resolvers/AppNameResolver.js +32 -34
- package/tsOutputs/test-listener/resolvers/AppNameResolver.js.map +1 -1
- package/tsOutputs/test-listener/resolvers/ArgumentResolver.js +64 -64
- package/tsOutputs/test-listener/resolvers/BuildResolver.js +31 -33
- package/tsOutputs/test-listener/resolvers/BuildResolver.js.map +1 -1
- package/tsOutputs/test-listener/resolvers/BuildSessionIdFileResolver.js +31 -33
- package/tsOutputs/test-listener/resolvers/BuildSessionIdFileResolver.js.map +1 -1
- package/tsOutputs/test-listener/resolvers/BuildSessionIdResolver.js +34 -36
- package/tsOutputs/test-listener/resolvers/BuildSessionIdResolver.js.map +1 -1
- package/tsOutputs/test-listener/resolvers/ProxyResolver.js +31 -33
- package/tsOutputs/test-listener/resolvers/ProxyResolver.js.map +1 -1
- package/tsOutputs/test-listener/resolvers/TokenResolver.js +31 -33
- package/tsOutputs/test-listener/resolvers/TokenResolver.js.map +1 -1
- package/tsOutputs/test-listener/state-tracker-process/index.js +160 -162
- package/tsOutputs/test-listener/state-tracker-process/index.js.map +1 -1
- package/tsOutputs/test-listener/state-tracker-process/state-tracker-proxy.d.ts +8 -8
- package/tsOutputs/test-listener/state-tracker-process/state-tracker-proxy.js +69 -71
- package/tsOutputs/test-listener/state-tracker-process/state-tracker-proxy.js.map +1 -1
- package/tsOutputs/test-listener/test-recommendation-handler.d.ts +29 -29
- package/tsOutputs/test-listener/test-recommendation-handler.js +161 -161
- package/tsOutputs/test-listener/upload-report-handler.js +96 -96
- package/tsOutputs/test-listener/utils.js +68 -68
- package/tsOutputs/test-listener/uuid.d.ts +3 -3
- package/tsOutputs/test-listener/uuid.js +23 -23
- package/tsOutputs/test-listener/wait-for-multiple-callbacks.d.ts +22 -22
- package/tsOutputs/test-listener/wait-for-multiple-callbacks.js +60 -60
- package/tsOutputs/test-listener/watchdog.d.ts +89 -89
- package/tsOutputs/test-listener/watchdog.js +144 -146
- package/tsOutputs/test-listener/watchdog.js.map +1 -1
- package/browser-agent/dist/browser-agent-all.js +0 -100989
- package/browser-agent/dist/browser-agent-all.min.js +0 -57
- package/browser-agent/package.json +0 -44
|
@@ -1,265 +1,265 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FootprintsProcess = void 0;
|
|
4
|
-
var queue_1 = require("../queue");
|
|
5
|
-
var collection_interval_1 = require("./collection-interval");
|
|
6
|
-
var system_date_1 = require("../system-date");
|
|
7
|
-
var state_tracker_1 = require("../state-tracker");
|
|
8
|
-
var sl_env_vars_1 = require("../constants/sl-env-vars");
|
|
9
|
-
var cockpit_notifier_1 = require("../agent-events/cockpit-notifier");
|
|
10
|
-
var agent_events_conracts_1 = require("../agent-events/agent-events-conracts");
|
|
11
|
-
var FootprintsProcess = /** @class */ (function () {
|
|
12
|
-
function FootprintsProcess(
|
|
13
|
-
/**
|
|
14
|
-
* Initial configuration
|
|
15
|
-
*/
|
|
16
|
-
cfg,
|
|
17
|
-
/**
|
|
18
|
-
* Background thread that tells the footprints service to send footprints from the queue to the server
|
|
19
|
-
*/
|
|
20
|
-
sendToServerWatchdog,
|
|
21
|
-
/**
|
|
22
|
-
* Foreground thread that prevents the process from shutting down, and kept alive while there are items to submit to the server or items are currently being submitted
|
|
23
|
-
*/
|
|
24
|
-
keepaliveWatchdog,
|
|
25
|
-
/**
|
|
26
|
-
* Proxy to the server for footprints submission
|
|
27
|
-
*/
|
|
28
|
-
footprintsServiceProxy,
|
|
29
|
-
/**
|
|
30
|
-
* Environments service, used to get environmental data for submission (process id, machine data, etc.)
|
|
31
|
-
*/
|
|
32
|
-
environmentDataService, agentInstanceData, istanbulToFootprints, stateTracker, logger) {
|
|
33
|
-
var _this = this;
|
|
34
|
-
this.cfg = cfg;
|
|
35
|
-
this.sendToServerWatchdog = sendToServerWatchdog;
|
|
36
|
-
this.keepaliveWatchdog = keepaliveWatchdog;
|
|
37
|
-
this.footprintsServiceProxy = footprintsServiceProxy;
|
|
38
|
-
this.environmentDataService = environmentDataService;
|
|
39
|
-
this.agentInstanceData = agentInstanceData;
|
|
40
|
-
this.istanbulToFootprints = istanbulToFootprints;
|
|
41
|
-
this.stateTracker = stateTracker;
|
|
42
|
-
this.logger = logger;
|
|
43
|
-
this.isSubmittingFootprints = false;
|
|
44
|
-
this.sequence = 0;
|
|
45
|
-
this.isRunning = false;
|
|
46
|
-
this.stopCallbacks = [];
|
|
47
|
-
if (!cfg)
|
|
48
|
-
throw new Error('cfg was not specified');
|
|
49
|
-
if (!sendToServerWatchdog)
|
|
50
|
-
throw new Error('sendToServerWatchdog was not specified');
|
|
51
|
-
if (!keepaliveWatchdog)
|
|
52
|
-
throw new Error('keepaliveWatchdog was not specified');
|
|
53
|
-
if (!footprintsServiceProxy)
|
|
54
|
-
throw new Error('footprintsServiceProxy was not specified');
|
|
55
|
-
if (!environmentDataService)
|
|
56
|
-
throw new Error('environmentDataService was not specified');
|
|
57
|
-
if (!agentInstanceData)
|
|
58
|
-
throw new Error('agentInstanceData was not specified');
|
|
59
|
-
if (!istanbulToFootprints)
|
|
60
|
-
throw new Error('istanbulToFootprints was not specified');
|
|
61
|
-
if (!logger) {
|
|
62
|
-
throw new Error('logger was not specified');
|
|
63
|
-
}
|
|
64
|
-
this.collectionInterval = new collection_interval_1.CollectionInterval(cfg.interval.value);
|
|
65
|
-
this.footprintsQueue = new queue_1.Queue();
|
|
66
|
-
sendToServerWatchdog.on('alarm', function () {
|
|
67
|
-
_this.logger.debug('Start submitting footprints, triggered by send to server watchdog.');
|
|
68
|
-
_this.submitQueuedFootprints();
|
|
69
|
-
});
|
|
70
|
-
this.footprintsQueue.on('full', function () {
|
|
71
|
-
_this.logger.debug('Start submitting footprints, queue is full.');
|
|
72
|
-
_this.submitQueuedFootprints();
|
|
73
|
-
});
|
|
74
|
-
keepaliveWatchdog.on('alarm', function () {
|
|
75
|
-
//console.log('keepaliveWatchdog. isSubmittingFootprints:' + this.isSubmittingFootprints + ', queue size: ' + this.footprintsQueue.getQueueSize());
|
|
76
|
-
if (!_this.isSubmittingFootprints && _this.footprintsQueue.getQueueSize() == 0) {
|
|
77
|
-
keepaliveWatchdog.stop();
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
FootprintsProcess.prototype.enqueueCurrentFootprints = function (executionId, testName) {
|
|
82
|
-
this.collectionInterval.next();
|
|
83
|
-
var footprints = this.istanbulToFootprints.getCurrentFootprints();
|
|
84
|
-
var hitModules = Object.keys(footprints);
|
|
85
|
-
if (!hitModules || hitModules.length == 0) { //If no modules were hit at all, don't enqueue anything
|
|
86
|
-
this.logger.info('No files were hit, not enqueuing footprints.');
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
this.logger.info('Enqueuing footprints for %s files.', hitModules.length);
|
|
90
|
-
this.footprintsQueue.enqueue({
|
|
91
|
-
executionId: executionId,
|
|
92
|
-
testName: testName,
|
|
93
|
-
footprints: footprints,
|
|
94
|
-
localTime: system_date_1.getSystemDateValueOf(),
|
|
95
|
-
collectionInterval: this.collectionInterval.toJson(),
|
|
96
|
-
});
|
|
97
|
-
if (this.isRunning && this.cfg.sendFootprints.value && this.cfg.enabled.value) {
|
|
98
|
-
this.ensureKeepaliveThreadRunning();
|
|
99
|
-
this.sendToServerWatchdog.start();
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
FootprintsProcess.prototype.ensureKeepaliveThreadRunning = function () {
|
|
103
|
-
this.keepaliveWatchdog.start();
|
|
104
|
-
};
|
|
105
|
-
FootprintsProcess.prototype.updateConfig = function (updatedCfg) {
|
|
106
|
-
if (updatedCfg.sendFootprints.value === false || updatedCfg.enabled.value === false) {
|
|
107
|
-
cockpit_notifier_1.CockpitNotifier.sendEvent(agent_events_conracts_1.AgentEventCode.AGENT_MUTED);
|
|
108
|
-
this.footprintsQueue.clear();
|
|
109
|
-
this.stop(function () { });
|
|
110
|
-
}
|
|
111
|
-
this.cfg = updatedCfg;
|
|
112
|
-
this.sendToServerWatchdog.setInterval(this.cfg.interval.value);
|
|
113
|
-
};
|
|
114
|
-
FootprintsProcess.prototype.createFootprintsPacket = function (items) {
|
|
115
|
-
var packet = this.istanbulToFootprints.createFootprintsPackageFromQueue(items, {
|
|
116
|
-
customerId: this.cfg.customerId.value,
|
|
117
|
-
environment: this.environmentDataService.getEnvDataForSubmission(),
|
|
118
|
-
configurationData: this.cfg.toJsonObject(),
|
|
119
|
-
meta: {
|
|
120
|
-
sequence: ++this.sequence,
|
|
121
|
-
generated: system_date_1.getSystemDateValueOf(),
|
|
122
|
-
agentId: this.agentInstanceData.agentId,
|
|
123
|
-
},
|
|
124
|
-
tests: [],
|
|
125
|
-
apps: []
|
|
126
|
-
});
|
|
127
|
-
return packet;
|
|
128
|
-
};
|
|
129
|
-
FootprintsProcess.prototype.submitQueuedFootprints = function () {
|
|
130
|
-
var _this = this;
|
|
131
|
-
if (!this.isRunning) {
|
|
132
|
-
this.logger.info('Agent is not running, not sending footprints');
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
if (this.cfg.sendFootprints.value === false) {
|
|
136
|
-
this.logger.info('Not sending footprints since agent is configured to not send.');
|
|
137
|
-
return; //Can't start without server or token
|
|
138
|
-
}
|
|
139
|
-
if (this.isSubmittingFootprints) {
|
|
140
|
-
this.logger.info('Not sending footprints since its already submitting.');
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
if (this.footprintsQueue.getQueueSize() == 0) {
|
|
144
|
-
this.logger.info('Not sending footprints since queue size is 0');
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
this.logger.info('About to send footprints. Queue size:' + this.footprintsQueue.getQueueSize());
|
|
148
|
-
var items = this.footprintsQueue.dequeue(/*this.cfg.maxFootprintsChunkSize ||*/ 1000);
|
|
149
|
-
var packet = this.createFootprintsPacket(items);
|
|
150
|
-
this.isSubmittingFootprints = true;
|
|
151
|
-
this.footprintsServiceProxy.handleFootprints(packet, function (err) {
|
|
152
|
-
_this.isSubmittingFootprints = false;
|
|
153
|
-
_this.logger.info('Sent footprints. Queue size:' + _this.footprintsQueue.getQueueSize() + ', err:' + err);
|
|
154
|
-
if (err) {
|
|
155
|
-
_this.environmentDataService.setLastError(err.stack);
|
|
156
|
-
_this.footprintsQueue.requeue(items); //Requeue items for later submission
|
|
157
|
-
}
|
|
158
|
-
else if (_this.footprintsQueue.getQueueSize() > 0) { //If there was an error, don't send now. Otherwise, if the queue still has items, send those now
|
|
159
|
-
_this.submitQueuedFootprints();
|
|
160
|
-
}
|
|
161
|
-
else
|
|
162
|
-
_this.fireQueueEmpty();
|
|
163
|
-
});
|
|
164
|
-
};
|
|
165
|
-
FootprintsProcess.prototype.fireQueueEmpty = function () {
|
|
166
|
-
var _this = this;
|
|
167
|
-
if (this.stopCallbacks.length > 0) {
|
|
168
|
-
this.stopCallbacks.forEach(function (cb) {
|
|
169
|
-
try {
|
|
170
|
-
cb();
|
|
171
|
-
}
|
|
172
|
-
catch (err) {
|
|
173
|
-
_this.environmentDataService.setLastError(err.stack);
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
};
|
|
178
|
-
FootprintsProcess.prototype.start = function () {
|
|
179
|
-
if (this.isRunning)
|
|
180
|
-
return; //Already started
|
|
181
|
-
if (this.cfg.enabled.value == false)
|
|
182
|
-
return; //Don't do anything if agent is completely disabled
|
|
183
|
-
this.isRunning = true;
|
|
184
|
-
this.sendToServerWatchdog.start();
|
|
185
|
-
if (this.footprintsQueue.getQueueSize() > 0) {
|
|
186
|
-
this.ensureKeepaliveThreadRunning();
|
|
187
|
-
}
|
|
188
|
-
};
|
|
189
|
-
FootprintsProcess.prototype.stop = function (callback) {
|
|
190
|
-
var _this = this;
|
|
191
|
-
try {
|
|
192
|
-
this.sendToServerWatchdog.stop();
|
|
193
|
-
if (this.cfg.enabled.value === false || this.cfg.sendFootprints.value === false) { //Footprints/Agent functionality is disabled. Return immediately
|
|
194
|
-
this.isRunning = false;
|
|
195
|
-
return callback();
|
|
196
|
-
}
|
|
197
|
-
this.logger.debug('Start submitting footprints, triggered by stop event.');
|
|
198
|
-
this.submitQueuedFootprints(); //If footprints are being submitted, this has no effect. Otherwise, it will start submitting footprints if the queue is non-empty
|
|
199
|
-
if (this.isSubmittingFootprints) {
|
|
200
|
-
/*
|
|
201
|
-
Nothing to do right now, since footprints are being submitted
|
|
202
|
-
When the submission is over (successfully or not), if the queue is empty the next batch of footprints will be sent.
|
|
203
|
-
If after submission the queue is cleared, this callback will be called
|
|
204
|
-
*/
|
|
205
|
-
this.stopCallbacks.push(function () {
|
|
206
|
-
_this.isRunning = false;
|
|
207
|
-
_this.keepaliveWatchdog.stop();
|
|
208
|
-
return callback();
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
/*
|
|
213
|
-
Queue must be empty, and nothing is sent. submitQueuedFootprints() would have started sending footprints if the queue was non-empty
|
|
214
|
-
*/
|
|
215
|
-
this.isRunning = false;
|
|
216
|
-
this.keepaliveWatchdog.stop();
|
|
217
|
-
return callback();
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
catch (err) {
|
|
221
|
-
this.logger.error(err);
|
|
222
|
-
return callback();
|
|
223
|
-
}
|
|
224
|
-
};
|
|
225
|
-
FootprintsProcess.prototype.handleTestIdChanged = function (newTestIdentifier, previousTestIdentifier) {
|
|
226
|
-
if (previousTestIdentifier != null) {
|
|
227
|
-
if (!this.stateTracker.hasMappingAtServer() && this.stateTracker.isAnonymousColor(previousTestIdentifier)) {
|
|
228
|
-
this.logger.info('Test identifier changed, couldn\'t find active execution for anonymous footprints. Skip enqueuing footprints process.');
|
|
229
|
-
return;
|
|
230
|
-
}
|
|
231
|
-
this.logger.debug('Test identifier changed, start enqueuing footprints process.');
|
|
232
|
-
var prevTestIdentifierParts = state_tracker_1.StateTracker.splitTestIdToExecutionAndTestName(previousTestIdentifier);
|
|
233
|
-
this.enqueueCurrentFootprints(prevTestIdentifierParts.executionId, prevTestIdentifierParts.testName);
|
|
234
|
-
}
|
|
235
|
-
else {
|
|
236
|
-
this.logger.info('Test identifier changed, previous identifier wasn\'t set, meaning that we didn\'t have active test. Skip enqueuing footprints process.');
|
|
237
|
-
}
|
|
238
|
-
};
|
|
239
|
-
FootprintsProcess.prototype.flushCurrentFootprints = function () {
|
|
240
|
-
var currentTestIdentifier = this.stateTracker.getCurrentTestIdentifier();
|
|
241
|
-
var testIdentifierParts = state_tracker_1.StateTracker.splitTestIdToExecutionAndTestName(currentTestIdentifier);
|
|
242
|
-
if (sl_env_vars_1.SlEnvVars.inProductionListenerMode()) {
|
|
243
|
-
this.logger.debug('Enqueue footprints for production listener');
|
|
244
|
-
this.enqueueCurrentFootprints(testIdentifierParts.executionId, testIdentifierParts.testName);
|
|
245
|
-
return;
|
|
246
|
-
}
|
|
247
|
-
if (currentTestIdentifier != null) {
|
|
248
|
-
if (!this.stateTracker.hasMappingAtServer() && this.stateTracker.isAnonymousColor(currentTestIdentifier)) {
|
|
249
|
-
this.logger.info('Enqueue footprints interval - couldn\'t find active execution for anonymous footprints. skip enqueue footprints process. currentTestIdentifier: \'%s\'', currentTestIdentifier);
|
|
250
|
-
return;
|
|
251
|
-
}
|
|
252
|
-
this.logger.debug('Enqueue footprints interval - start enqueuing process. currentTestIdentifier: \'%s\'', currentTestIdentifier);
|
|
253
|
-
this.enqueueCurrentFootprints(testIdentifierParts.executionId, testIdentifierParts.testName);
|
|
254
|
-
}
|
|
255
|
-
else {
|
|
256
|
-
this.logger.info('Enqueue footprints interval - no test identifier. skip enqueuing process. ');
|
|
257
|
-
}
|
|
258
|
-
};
|
|
259
|
-
FootprintsProcess.prototype.getQueueSize = function () {
|
|
260
|
-
return this.footprintsQueue.getQueueSize();
|
|
261
|
-
};
|
|
262
|
-
return FootprintsProcess;
|
|
263
|
-
}());
|
|
264
|
-
exports.FootprintsProcess = FootprintsProcess;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FootprintsProcess = void 0;
|
|
4
|
+
var queue_1 = require("../queue");
|
|
5
|
+
var collection_interval_1 = require("./collection-interval");
|
|
6
|
+
var system_date_1 = require("../system-date");
|
|
7
|
+
var state_tracker_1 = require("../state-tracker");
|
|
8
|
+
var sl_env_vars_1 = require("../constants/sl-env-vars");
|
|
9
|
+
var cockpit_notifier_1 = require("../agent-events/cockpit-notifier");
|
|
10
|
+
var agent_events_conracts_1 = require("../agent-events/agent-events-conracts");
|
|
11
|
+
var FootprintsProcess = /** @class */ (function () {
|
|
12
|
+
function FootprintsProcess(
|
|
13
|
+
/**
|
|
14
|
+
* Initial configuration
|
|
15
|
+
*/
|
|
16
|
+
cfg,
|
|
17
|
+
/**
|
|
18
|
+
* Background thread that tells the footprints service to send footprints from the queue to the server
|
|
19
|
+
*/
|
|
20
|
+
sendToServerWatchdog,
|
|
21
|
+
/**
|
|
22
|
+
* Foreground thread that prevents the process from shutting down, and kept alive while there are items to submit to the server or items are currently being submitted
|
|
23
|
+
*/
|
|
24
|
+
keepaliveWatchdog,
|
|
25
|
+
/**
|
|
26
|
+
* Proxy to the server for footprints submission
|
|
27
|
+
*/
|
|
28
|
+
footprintsServiceProxy,
|
|
29
|
+
/**
|
|
30
|
+
* Environments service, used to get environmental data for submission (process id, machine data, etc.)
|
|
31
|
+
*/
|
|
32
|
+
environmentDataService, agentInstanceData, istanbulToFootprints, stateTracker, logger) {
|
|
33
|
+
var _this = this;
|
|
34
|
+
this.cfg = cfg;
|
|
35
|
+
this.sendToServerWatchdog = sendToServerWatchdog;
|
|
36
|
+
this.keepaliveWatchdog = keepaliveWatchdog;
|
|
37
|
+
this.footprintsServiceProxy = footprintsServiceProxy;
|
|
38
|
+
this.environmentDataService = environmentDataService;
|
|
39
|
+
this.agentInstanceData = agentInstanceData;
|
|
40
|
+
this.istanbulToFootprints = istanbulToFootprints;
|
|
41
|
+
this.stateTracker = stateTracker;
|
|
42
|
+
this.logger = logger;
|
|
43
|
+
this.isSubmittingFootprints = false;
|
|
44
|
+
this.sequence = 0;
|
|
45
|
+
this.isRunning = false;
|
|
46
|
+
this.stopCallbacks = [];
|
|
47
|
+
if (!cfg)
|
|
48
|
+
throw new Error('cfg was not specified');
|
|
49
|
+
if (!sendToServerWatchdog)
|
|
50
|
+
throw new Error('sendToServerWatchdog was not specified');
|
|
51
|
+
if (!keepaliveWatchdog)
|
|
52
|
+
throw new Error('keepaliveWatchdog was not specified');
|
|
53
|
+
if (!footprintsServiceProxy)
|
|
54
|
+
throw new Error('footprintsServiceProxy was not specified');
|
|
55
|
+
if (!environmentDataService)
|
|
56
|
+
throw new Error('environmentDataService was not specified');
|
|
57
|
+
if (!agentInstanceData)
|
|
58
|
+
throw new Error('agentInstanceData was not specified');
|
|
59
|
+
if (!istanbulToFootprints)
|
|
60
|
+
throw new Error('istanbulToFootprints was not specified');
|
|
61
|
+
if (!logger) {
|
|
62
|
+
throw new Error('logger was not specified');
|
|
63
|
+
}
|
|
64
|
+
this.collectionInterval = new collection_interval_1.CollectionInterval(cfg.interval.value);
|
|
65
|
+
this.footprintsQueue = new queue_1.Queue();
|
|
66
|
+
sendToServerWatchdog.on('alarm', function () {
|
|
67
|
+
_this.logger.debug('Start submitting footprints, triggered by send to server watchdog.');
|
|
68
|
+
_this.submitQueuedFootprints();
|
|
69
|
+
});
|
|
70
|
+
this.footprintsQueue.on('full', function () {
|
|
71
|
+
_this.logger.debug('Start submitting footprints, queue is full.');
|
|
72
|
+
_this.submitQueuedFootprints();
|
|
73
|
+
});
|
|
74
|
+
keepaliveWatchdog.on('alarm', function () {
|
|
75
|
+
//console.log('keepaliveWatchdog. isSubmittingFootprints:' + this.isSubmittingFootprints + ', queue size: ' + this.footprintsQueue.getQueueSize());
|
|
76
|
+
if (!_this.isSubmittingFootprints && _this.footprintsQueue.getQueueSize() == 0) {
|
|
77
|
+
keepaliveWatchdog.stop();
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
FootprintsProcess.prototype.enqueueCurrentFootprints = function (executionId, testName) {
|
|
82
|
+
this.collectionInterval.next();
|
|
83
|
+
var footprints = this.istanbulToFootprints.getCurrentFootprints();
|
|
84
|
+
var hitModules = Object.keys(footprints);
|
|
85
|
+
if (!hitModules || hitModules.length == 0) { //If no modules were hit at all, don't enqueue anything
|
|
86
|
+
this.logger.info('No files were hit, not enqueuing footprints.');
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
this.logger.info('Enqueuing footprints for %s files.', hitModules.length);
|
|
90
|
+
this.footprintsQueue.enqueue({
|
|
91
|
+
executionId: executionId,
|
|
92
|
+
testName: testName,
|
|
93
|
+
footprints: footprints,
|
|
94
|
+
localTime: system_date_1.getSystemDateValueOf(),
|
|
95
|
+
collectionInterval: this.collectionInterval.toJson(),
|
|
96
|
+
});
|
|
97
|
+
if (this.isRunning && this.cfg.sendFootprints.value && this.cfg.enabled.value) {
|
|
98
|
+
this.ensureKeepaliveThreadRunning();
|
|
99
|
+
this.sendToServerWatchdog.start();
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
FootprintsProcess.prototype.ensureKeepaliveThreadRunning = function () {
|
|
103
|
+
this.keepaliveWatchdog.start();
|
|
104
|
+
};
|
|
105
|
+
FootprintsProcess.prototype.updateConfig = function (updatedCfg) {
|
|
106
|
+
if (updatedCfg.sendFootprints.value === false || updatedCfg.enabled.value === false) {
|
|
107
|
+
cockpit_notifier_1.CockpitNotifier.sendEvent(agent_events_conracts_1.AgentEventCode.AGENT_MUTED);
|
|
108
|
+
this.footprintsQueue.clear();
|
|
109
|
+
this.stop(function () { });
|
|
110
|
+
}
|
|
111
|
+
this.cfg = updatedCfg;
|
|
112
|
+
this.sendToServerWatchdog.setInterval(this.cfg.interval.value);
|
|
113
|
+
};
|
|
114
|
+
FootprintsProcess.prototype.createFootprintsPacket = function (items) {
|
|
115
|
+
var packet = this.istanbulToFootprints.createFootprintsPackageFromQueue(items, {
|
|
116
|
+
customerId: this.cfg.customerId.value,
|
|
117
|
+
environment: this.environmentDataService.getEnvDataForSubmission(),
|
|
118
|
+
configurationData: this.cfg.toJsonObject(),
|
|
119
|
+
meta: {
|
|
120
|
+
sequence: ++this.sequence,
|
|
121
|
+
generated: system_date_1.getSystemDateValueOf(),
|
|
122
|
+
agentId: this.agentInstanceData.agentId,
|
|
123
|
+
},
|
|
124
|
+
tests: [],
|
|
125
|
+
apps: []
|
|
126
|
+
});
|
|
127
|
+
return packet;
|
|
128
|
+
};
|
|
129
|
+
FootprintsProcess.prototype.submitQueuedFootprints = function () {
|
|
130
|
+
var _this = this;
|
|
131
|
+
if (!this.isRunning) {
|
|
132
|
+
this.logger.info('Agent is not running, not sending footprints');
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
if (this.cfg.sendFootprints.value === false) {
|
|
136
|
+
this.logger.info('Not sending footprints since agent is configured to not send.');
|
|
137
|
+
return; //Can't start without server or token
|
|
138
|
+
}
|
|
139
|
+
if (this.isSubmittingFootprints) {
|
|
140
|
+
this.logger.info('Not sending footprints since its already submitting.');
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
if (this.footprintsQueue.getQueueSize() == 0) {
|
|
144
|
+
this.logger.info('Not sending footprints since queue size is 0');
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
this.logger.info('About to send footprints. Queue size:' + this.footprintsQueue.getQueueSize());
|
|
148
|
+
var items = this.footprintsQueue.dequeue(/*this.cfg.maxFootprintsChunkSize ||*/ 1000);
|
|
149
|
+
var packet = this.createFootprintsPacket(items);
|
|
150
|
+
this.isSubmittingFootprints = true;
|
|
151
|
+
this.footprintsServiceProxy.handleFootprints(packet, function (err) {
|
|
152
|
+
_this.isSubmittingFootprints = false;
|
|
153
|
+
_this.logger.info('Sent footprints. Queue size:' + _this.footprintsQueue.getQueueSize() + ', err:' + err);
|
|
154
|
+
if (err) {
|
|
155
|
+
_this.environmentDataService.setLastError(err.stack);
|
|
156
|
+
_this.footprintsQueue.requeue(items); //Requeue items for later submission
|
|
157
|
+
}
|
|
158
|
+
else if (_this.footprintsQueue.getQueueSize() > 0) { //If there was an error, don't send now. Otherwise, if the queue still has items, send those now
|
|
159
|
+
_this.submitQueuedFootprints();
|
|
160
|
+
}
|
|
161
|
+
else
|
|
162
|
+
_this.fireQueueEmpty();
|
|
163
|
+
});
|
|
164
|
+
};
|
|
165
|
+
FootprintsProcess.prototype.fireQueueEmpty = function () {
|
|
166
|
+
var _this = this;
|
|
167
|
+
if (this.stopCallbacks.length > 0) {
|
|
168
|
+
this.stopCallbacks.forEach(function (cb) {
|
|
169
|
+
try {
|
|
170
|
+
cb();
|
|
171
|
+
}
|
|
172
|
+
catch (err) {
|
|
173
|
+
_this.environmentDataService.setLastError(err.stack);
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
FootprintsProcess.prototype.start = function () {
|
|
179
|
+
if (this.isRunning)
|
|
180
|
+
return; //Already started
|
|
181
|
+
if (this.cfg.enabled.value == false)
|
|
182
|
+
return; //Don't do anything if agent is completely disabled
|
|
183
|
+
this.isRunning = true;
|
|
184
|
+
this.sendToServerWatchdog.start();
|
|
185
|
+
if (this.footprintsQueue.getQueueSize() > 0) {
|
|
186
|
+
this.ensureKeepaliveThreadRunning();
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
FootprintsProcess.prototype.stop = function (callback) {
|
|
190
|
+
var _this = this;
|
|
191
|
+
try {
|
|
192
|
+
this.sendToServerWatchdog.stop();
|
|
193
|
+
if (this.cfg.enabled.value === false || this.cfg.sendFootprints.value === false) { //Footprints/Agent functionality is disabled. Return immediately
|
|
194
|
+
this.isRunning = false;
|
|
195
|
+
return callback();
|
|
196
|
+
}
|
|
197
|
+
this.logger.debug('Start submitting footprints, triggered by stop event.');
|
|
198
|
+
this.submitQueuedFootprints(); //If footprints are being submitted, this has no effect. Otherwise, it will start submitting footprints if the queue is non-empty
|
|
199
|
+
if (this.isSubmittingFootprints) {
|
|
200
|
+
/*
|
|
201
|
+
Nothing to do right now, since footprints are being submitted
|
|
202
|
+
When the submission is over (successfully or not), if the queue is empty the next batch of footprints will be sent.
|
|
203
|
+
If after submission the queue is cleared, this callback will be called
|
|
204
|
+
*/
|
|
205
|
+
this.stopCallbacks.push(function () {
|
|
206
|
+
_this.isRunning = false;
|
|
207
|
+
_this.keepaliveWatchdog.stop();
|
|
208
|
+
return callback();
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
/*
|
|
213
|
+
Queue must be empty, and nothing is sent. submitQueuedFootprints() would have started sending footprints if the queue was non-empty
|
|
214
|
+
*/
|
|
215
|
+
this.isRunning = false;
|
|
216
|
+
this.keepaliveWatchdog.stop();
|
|
217
|
+
return callback();
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
catch (err) {
|
|
221
|
+
this.logger.error(err);
|
|
222
|
+
return callback();
|
|
223
|
+
}
|
|
224
|
+
};
|
|
225
|
+
FootprintsProcess.prototype.handleTestIdChanged = function (newTestIdentifier, previousTestIdentifier) {
|
|
226
|
+
if (previousTestIdentifier != null) {
|
|
227
|
+
if (!this.stateTracker.hasMappingAtServer() && this.stateTracker.isAnonymousColor(previousTestIdentifier)) {
|
|
228
|
+
this.logger.info('Test identifier changed, couldn\'t find active execution for anonymous footprints. Skip enqueuing footprints process.');
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
this.logger.debug('Test identifier changed, start enqueuing footprints process.');
|
|
232
|
+
var prevTestIdentifierParts = state_tracker_1.StateTracker.splitTestIdToExecutionAndTestName(previousTestIdentifier);
|
|
233
|
+
this.enqueueCurrentFootprints(prevTestIdentifierParts.executionId, prevTestIdentifierParts.testName);
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
this.logger.info('Test identifier changed, previous identifier wasn\'t set, meaning that we didn\'t have active test. Skip enqueuing footprints process.');
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
FootprintsProcess.prototype.flushCurrentFootprints = function () {
|
|
240
|
+
var currentTestIdentifier = this.stateTracker.getCurrentTestIdentifier();
|
|
241
|
+
var testIdentifierParts = state_tracker_1.StateTracker.splitTestIdToExecutionAndTestName(currentTestIdentifier);
|
|
242
|
+
if (sl_env_vars_1.SlEnvVars.inProductionListenerMode()) {
|
|
243
|
+
this.logger.debug('Enqueue footprints for production listener');
|
|
244
|
+
this.enqueueCurrentFootprints(testIdentifierParts.executionId, testIdentifierParts.testName);
|
|
245
|
+
return;
|
|
246
|
+
}
|
|
247
|
+
if (currentTestIdentifier != null) {
|
|
248
|
+
if (!this.stateTracker.hasMappingAtServer() && this.stateTracker.isAnonymousColor(currentTestIdentifier)) {
|
|
249
|
+
this.logger.info('Enqueue footprints interval - couldn\'t find active execution for anonymous footprints. skip enqueue footprints process. currentTestIdentifier: \'%s\'', currentTestIdentifier);
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
this.logger.debug('Enqueue footprints interval - start enqueuing process. currentTestIdentifier: \'%s\'', currentTestIdentifier);
|
|
253
|
+
this.enqueueCurrentFootprints(testIdentifierParts.executionId, testIdentifierParts.testName);
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
this.logger.info('Enqueue footprints interval - no test identifier. skip enqueuing process. ');
|
|
257
|
+
}
|
|
258
|
+
};
|
|
259
|
+
FootprintsProcess.prototype.getQueueSize = function () {
|
|
260
|
+
return this.footprintsQueue.getQueueSize();
|
|
261
|
+
};
|
|
262
|
+
return FootprintsProcess;
|
|
263
|
+
}());
|
|
264
|
+
exports.FootprintsProcess = FootprintsProcess;
|
|
265
265
|
//# sourceMappingURL=index.js.map
|