@contrast/core
Advanced tools
Comparing version 1.43.0 to 1.44.0
@@ -73,3 +73,7 @@ /* | ||
function checkPreLoadFlag() { | ||
const { version, execArgv } = process; | ||
const { | ||
version, | ||
execArgv, | ||
env: { NODE_OPTIONS }, | ||
} = process; | ||
[ | ||
@@ -82,3 +86,4 @@ { range: '>=18.19.0', flags: ['--import'] }, | ||
semver.satisfies(version, range) && | ||
!execArgv.some((el, idx) => el === '@contrast/agent' && flags.includes(execArgv[idx - 1])) | ||
(execArgv.some((el, idx) => el === '@contrast/agent' && !flags.includes(execArgv[idx - 1])) || | ||
NODE_OPTIONS?.includes('@contrast/agent') && !flags.some(flag => NODE_OPTIONS.includes(flag))) | ||
) { | ||
@@ -85,0 +90,0 @@ logger.warn( |
@@ -88,3 +88,4 @@ 'use strict'; | ||
].forEach(({ version, range, badFlag, goodFlag }) => { | ||
it('logs a warning if non-recommended preload flag is used ', function() { | ||
it(`does not log a warning if '@contrast/agent' is not part of exec args (${version})`, function() { | ||
appInfo = proxyquire( | ||
@@ -98,2 +99,18 @@ './app-info', | ||
version, | ||
execArgv: [badFlag, 'some/file'] | ||
} | ||
} | ||
)(core); | ||
expect(core.logger.warn).to.not.have.been.called; | ||
}); | ||
it(`logs a warning if non-recommended preload flag is used (${version})`, function() { | ||
appInfo = proxyquire( | ||
'./app-info', | ||
{ | ||
os, | ||
process: { | ||
...process, | ||
argv: ['node', __filename], | ||
version, | ||
execArgv: [badFlag, '@contrast/agent'] | ||
@@ -109,2 +126,25 @@ } | ||
}); | ||
it(`logs a warning if non-recommended preload flag is used in NODE_OPTIONS (${version})`, function() { | ||
appInfo = proxyquire( | ||
'./app-info', | ||
{ | ||
os, | ||
process: { | ||
...process, | ||
argv: ['node', __filename], | ||
version, | ||
execArgv: [], | ||
env: { | ||
NODE_OPTIONS: `${badFlag} @contrast/agent` | ||
} | ||
} | ||
} | ||
)(core); | ||
expect(core.logger.warn).to.have.been.calledWith( | ||
'For Node LTS %s, use %s command to run the agent. See: https://docs.contrastsecurity.com/en/install-node-js.html', | ||
range, | ||
goodFlag | ||
); | ||
}); | ||
}); | ||
@@ -117,3 +157,3 @@ | ||
].forEach(({ version, goodFlag }) => { | ||
it('does not log a warning if recommended preload flag is used ', function() { | ||
it('does not log a warning if recommended preload flag is used', function() { | ||
appInfo = proxyquire( | ||
@@ -133,3 +173,22 @@ './app-info', | ||
}); | ||
it('does not log a warning if recommended preload flag is used in NODE_OPTIONS', function() { | ||
appInfo = proxyquire( | ||
'./app-info', | ||
{ | ||
os, | ||
process: { | ||
...process, | ||
argv: ['node', __filename], | ||
version, | ||
execArgv: [], | ||
env: { | ||
NODE_OPTIONS: `${goodFlag} @contrast/agent` | ||
} | ||
} | ||
} | ||
)(core); | ||
expect(core.logger.warn).not.to.have.been.called; | ||
}); | ||
}); | ||
}); |
@@ -16,3 +16,3 @@ /* | ||
import { AppInfo, Messages, SystemInfo } from '@contrast/common'; | ||
import { AppInfo, Messages, SystemInfo, ThreadTransferData } from '@contrast/common'; | ||
@@ -34,3 +34,3 @@ interface Frame { | ||
export interface Core { | ||
threadTransferData: any; | ||
threadTransferData: ThreadTransferData; | ||
agentName: string; | ||
@@ -52,3 +52,4 @@ agentVersion: string; | ||
getSystemInfo(): Promise<SystemInfo>; | ||
getBuildId(): Promse<number | void>; | ||
Perf: any; | ||
} |
@@ -21,8 +21,9 @@ /* | ||
module.exports = function init(core) { | ||
const messages = new EventEmitter(); | ||
const perf = new core.Perf('messages'); | ||
const messages = perf.wrapEmitter(new EventEmitter()); | ||
// pad for number of components that listen for server-settings-update messages | ||
messages.setMaxListeners(20); | ||
messages.setMaxListeners(10 + messages.getMaxListeners()); | ||
return core.messages = messages; | ||
}; |
{ | ||
"name": "@contrast/core", | ||
"version": "1.43.0", | ||
"version": "1.44.0", | ||
"description": "Preconfigured Contrast agent core services and models", | ||
@@ -19,8 +19,9 @@ "license": "SEE LICENSE IN LICENSE", | ||
"dependencies": { | ||
"@contrast/common": "1.28.0", | ||
"@contrast/config": "1.38.0", | ||
"@contrast/common": "1.29.0", | ||
"@contrast/config": "1.39.0", | ||
"@contrast/find-package-json": "^1.1.0", | ||
"@contrast/fn-inspect": "^4.3.0", | ||
"@contrast/logger": "1.16.0", | ||
"@contrast/patcher": "1.15.0", | ||
"@contrast/logger": "1.17.0", | ||
"@contrast/patcher": "1.16.0", | ||
"@tsxper/crc32": "^2.1.3", | ||
"axios": "^1.7.4", | ||
@@ -27,0 +28,0 @@ "semver": "^7.6.0" |
84612
26
2218
9
11
+ Added@tsxper/crc32@^2.1.3
+ Added@contrast/common@1.29.0(transitive)
+ Added@contrast/config@1.39.0(transitive)
+ Added@contrast/logger@1.17.0(transitive)
+ Added@contrast/patcher@1.16.0(transitive)
+ Added@tsxper/crc32@2.1.3(transitive)
- Removed@contrast/common@1.28.0(transitive)
- Removed@contrast/config@1.38.0(transitive)
- Removed@contrast/logger@1.16.0(transitive)
- Removed@contrast/patcher@1.15.0(transitive)
Updated@contrast/common@1.29.0
Updated@contrast/config@1.39.0
Updated@contrast/logger@1.17.0
Updated@contrast/patcher@1.16.0