Skip to content

Commit d9a3a8e

Browse files
authored
fix: failing appsec tests after iitm bump to v2.0.0 (#6935)
* Added support for iitm v2.0.0 * Update iitm with master package.json and yarn.lock
1 parent 7c979d2 commit d9a3a8e

5 files changed

Lines changed: 52 additions & 21 deletions

File tree

integration-tests/appsec/iast.esm.spec.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ describe('ESM', () => {
1717

1818
const nodeOptionsList = [
1919
'--import dd-trace/initialize.mjs',
20-
'--require dd-trace/init.js --loader dd-trace/loader-hook.mjs'
20+
'--require dd-trace/init.js --loader dd-trace/loader-hook.mjs',
21+
'--import dd-trace/register.js --require dd-trace/init'
2122
]
2223

2324
nodeOptionsList.forEach(nodeOptions => {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@
127127
],
128128
"dependencies": {
129129
"dc-polyfill": "^0.1.10",
130-
"import-in-the-middle": "^1.14.2"
130+
"import-in-the-middle": "^2.0.0"
131131
},
132132
"optionalDependencies": {
133133
"@datadog/libdatadog": "0.7.0",

packages/datadog-esbuild/src/utils.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,20 @@ const path = require('node:path')
77
const { NODE_MAJOR, NODE_MINOR } = require('../../../version.js')
88

99
const getExportsImporting = (url) => import(url).then(Object.keys)
10+
let getExportsModulePromise
11+
12+
const loadGetExportsModule = () => {
13+
if (!getExportsModulePromise) {
14+
getExportsModulePromise = import('import-in-the-middle/lib/get-exports.mjs')
15+
}
16+
return getExportsModulePromise
17+
}
18+
1019
const getExports = NODE_MAJOR >= 20 || (NODE_MAJOR === 18 && NODE_MINOR >= 19)
11-
? require('import-in-the-middle/lib/get-exports.js')
20+
? async (srcUrl, context, getSource) => {
21+
const mod = await loadGetExportsModule()
22+
return mod.getExports(srcUrl, context, getSource)
23+
}
1224
: getExportsImporting
1325

1426
function isStarExportLine (line) {

packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -183,14 +183,10 @@ function enableRewriter (telemetryVerbosity) {
183183
}
184184

185185
function isEsmConfigured () {
186-
const hasLoaderArg = isFlagPresent('--loader') || isFlagPresent('--experimental-loader')
187-
if (hasLoaderArg) return true
188-
189-
// Fast path for common case when enabled
190-
if (require.cache[`${process.cwd()}/node_modules/import-in-the-middle/hook.js`]) {
191-
return true
192-
}
193-
return Object.keys(require.cache).some(file => file.endsWith('import-in-the-middle/hook.js'))
186+
return (isFlagPresent('--loader') ||
187+
isFlagPresent('--experimental-loader') ||
188+
isFlagPresent('dd-trace/initialize.mjs')) ||
189+
isFlagPresent('dd-trace/register.js')
194190
}
195191

196192
let enableEsmRewriter = function (telemetryVerbosity) {

yarn.lock

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2642,10 +2642,10 @@ import-fresh@^3.2.1:
26422642
parent-module "^1.0.0"
26432643
resolve-from "^4.0.0"
26442644

2645-
import-in-the-middle@^1.14.2:
2646-
version "1.15.0"
2647-
resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.15.0.tgz#9e20827a322bbadaeb5e3bac49ea8f6d4685fdd8"
2648-
integrity sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA==
2645+
import-in-the-middle@^2.0.0:
2646+
version "2.0.0"
2647+
resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-2.0.0.tgz#295948cee94d0565314824c6bd75379d13e5b1a5"
2648+
integrity sha512-yNZhyQYqXpkT0AKq3F3KLasUSK4fHvebNH5hOsKQw2dhGSALvQ4U0BqUc5suziKvydO5u5hgN2hy1RJaho8U5A==
26492649
dependencies:
26502650
acorn "^8.14.0"
26512651
acorn-import-attributes "^1.9.5"
@@ -4428,8 +4428,16 @@ streamsearch@^1.1.0:
44284428
resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764"
44294429
integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
44304430

4431-
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3:
4432-
name string-width-cjs
4431+
"string-width-cjs@npm:string-width@^4.2.0":
4432+
version "4.2.3"
4433+
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
4434+
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
4435+
dependencies:
4436+
emoji-regex "^8.0.0"
4437+
is-fullwidth-code-point "^3.0.0"
4438+
strip-ansi "^6.0.1"
4439+
4440+
string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3:
44334441
version "4.2.3"
44344442
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
44354443
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -4493,8 +4501,14 @@ string_decoder@~1.1.1:
44934501
dependencies:
44944502
safe-buffer "~5.1.0"
44954503

4496-
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
4497-
name strip-ansi-cjs
4504+
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
4505+
version "6.0.1"
4506+
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
4507+
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
4508+
dependencies:
4509+
ansi-regex "^5.0.1"
4510+
4511+
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
44984512
version "6.0.1"
44994513
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
45004514
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -4971,8 +4985,7 @@ workerpool@^9.2.0:
49714985
resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-9.3.4.tgz#f6c92395b2141afd78e2a889e80cb338fe9fca41"
49724986
integrity sha512-TmPRQYYSAnnDiEB0P/Ytip7bFGvqnSU6I2BcuSw7Hx+JSg/DsUi5ebYfc8GYaSdpuvOcEs6dXxPurOYpe9QFwg==
49734987

4974-
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
4975-
name wrap-ansi-cjs
4988+
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
49764989
version "7.0.0"
49774990
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
49784991
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -4990,6 +5003,15 @@ wrap-ansi@^6.2.0:
49905003
string-width "^4.1.0"
49915004
strip-ansi "^6.0.0"
49925005

5006+
wrap-ansi@^7.0.0:
5007+
version "7.0.0"
5008+
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
5009+
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
5010+
dependencies:
5011+
ansi-styles "^4.0.0"
5012+
string-width "^4.1.0"
5013+
strip-ansi "^6.0.0"
5014+
49935015
wrap-ansi@^8.1.0:
49945016
version "8.1.0"
49955017
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"

0 commit comments

Comments
 (0)