Skip to content

Commit

Permalink
Commit to change branch
Browse files Browse the repository at this point in the history
  • Loading branch information
uurien committed Dec 16, 2024
1 parent b69b531 commit afe2591
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 36 deletions.
38 changes: 8 additions & 30 deletions packages/dd-trace/src/appsec/iast/taint-tracking/rewriter-esm.mjs
Original file line number Diff line number Diff line change
@@ -1,57 +1,38 @@
'use strict'
import fs from 'fs'
import { join } from 'path'

const ddTraceDir = join(import.meta.dirname, '..', '..', '..', '..', '..', '..')
import path from 'path'
import { URL } from 'url'

const currentUrl = new URL(import.meta.url)
const ddTraceDir = path.join(currentUrl.pathname, '..', '..', '..', '..', '..', '..')

let idCounter = 1
let initialized = false
function log (message) {
fs.writeSync(0, message + "\n");
}


Check failure on line 12 in packages/dd-trace/src/appsec/iast/taint-tracking/rewriter-esm.mjs

View workflow job for this annotation

GitHub Actions / lint

More than 1 blank line not allowed
let port, entryPoint

Check failure on line 13 in packages/dd-trace/src/appsec/iast/taint-tracking/rewriter-esm.mjs

View workflow job for this annotation

GitHub Actions / lint

'entryPoint' is assigned a value but never used

export async function initialize (data) {
if (initialized) {
return Promise.reject()
}
if (initialized) return Promise.reject(new Error('ALREADY INITIALIZED'))
initialized = true
log(initialized)

port = data.port2
entryPoint = data.entryPoint

setTimeout(() => {
const http = import('http')
console.log('http imported', !!http)
}, 2000)
}

export async function resolve(specifier, context, defaultResolve) {
const parentURL = context.parentURL ? new URL(context.parentURL).pathname : null;

const resolved = await defaultResolve(specifier, context, defaultResolve)
console.log('specifier, parentURL', specifier, parentURL)

return resolved;
}

export async function load(url, context, nextLoad) {

Check failure on line 23 in packages/dd-trace/src/appsec/iast/taint-tracking/rewriter-esm.mjs

View workflow job for this annotation

GitHub Actions / lint

Missing space before function parentheses
console.log('load?', url)

Check failure on line 24 in packages/dd-trace/src/appsec/iast/taint-tracking/rewriter-esm.mjs

View workflow job for this annotation

GitHub Actions / lint

Unexpected console statement
const result = await nextLoad(url, context)

if (!port) return result
if (!result.source) return result
if (url.includes(ddTraceDir) || url.includes('iitm=true')) return result

console.log(url)

const id = idCounter++
return new Promise((resolve) => {
let timeout = setTimeout(() => {
if (timeout) {
timeout = null
// log('timeout - ' + url)
resolve(result)
}
}, 20)
Expand All @@ -68,14 +49,11 @@ export async function load(url, context, nextLoad) {

if (data.source) {
result.source = Buffer.from(data.source)
// console.log('url', url)
// console.log('data.source', data.source)
}

resolve(result)
}

// log('postMessage')
port.on('message', waitAndResolve)
port.postMessage({ id, url, source: result.source.toString() })
})
Expand Down
17 changes: 11 additions & 6 deletions packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ function enableRewriter (telemetryVerbosity) {
}
}

function enableEsmRewriter (telemetryVerbosity) {
function enableEsmRewriter () {
if (isMainThread && Module.register) {
const { port1, port2 } = new MessageChannel();

Check failure on line 150 in packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js

View workflow job for this annotation

GitHub Actions / lint

Extra semicolon
port1.on('message', (message) => {
Expand All @@ -155,11 +155,16 @@ function enableEsmRewriter (telemetryVerbosity) {
const entryPoint = path.resolve(process.argv[1])

process.nextTick(() => {
Module.register('./rewriter-esm.mjs', {
parentURL: pathToFileURL(__filename),
data: { port2, entryPoint },
transferList: [port2]
})
try {
Module.register('./rewriter-esm.mjs', {
parentURL: pathToFileURL(__filename),
data: { port2, entryPoint },
transferList: [port2]
})
} catch (e) {
console.error('e.message', e.message)

Check failure on line 165 in packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js

View workflow job for this annotation

GitHub Actions / lint

Unexpected console statement
log.error('[ASM] Error enabling ESM Rewriter', e)
}
})
}
}
Expand Down

0 comments on commit afe2591

Please sign in to comment.