diff --git a/hook-sdk/nodejs/.dockerignore b/hook-sdk/nodejs/.dockerignore index 2d2da7ae86..dbb6e76bfb 100644 --- a/hook-sdk/nodejs/.dockerignore +++ b/hook-sdk/nodejs/.dockerignore @@ -3,3 +3,4 @@ # SPDX-License-Identifier: Apache-2.0 node_modules/ +build/ diff --git a/hook-sdk/nodejs/.gitignore b/hook-sdk/nodejs/.gitignore index 2d2da7ae86..0ac983cff2 100644 --- a/hook-sdk/nodejs/.gitignore +++ b/hook-sdk/nodejs/.gitignore @@ -3,3 +3,4 @@ # SPDX-License-Identifier: Apache-2.0 node_modules/ +build/ \ No newline at end of file diff --git a/hook-sdk/nodejs/Dockerfile b/hook-sdk/nodejs/Dockerfile index 8ef7cfd1bd..7fe1105b61 100644 --- a/hook-sdk/nodejs/Dockerfile +++ b/hook-sdk/nodejs/Dockerfile @@ -2,17 +2,19 @@ # # SPDX-License-Identifier: Apache-2.0 -FROM node:22-alpine AS build -WORKDIR /home/app +FROM oven/bun:1.2 AS build +WORKDIR /home/app/ COPY package.json package-lock.json ./ -RUN npm ci --omit=dev --ignore-scripts +RUN bun install --ignore-scripts +COPY *.js ./ +RUN bun run build FROM node:22-alpine ARG NODE_ENV RUN addgroup --system --gid 1001 app && adduser app --system --uid 1001 --ingroup app WORKDIR /home/app/hook-wrapper/ -COPY --from=build --chown=root:root --chmod=755 /home/app/node_modules/ ./node_modules/ -COPY --chown=root:root --chmod=755 ./hook-wrapper.js ./package.json ./package-lock.json ./ +COPY --chown=root:root --chmod=755 ./package.json ./package-lock.json ./ +COPY --from=build --chown=root:root --chmod=755 /home/app/build/ ./ USER 1001 ENV NODE_ENV=${NODE_ENV:-production} -ENTRYPOINT ["node", "/home/app/hook-wrapper/hook-wrapper.js"] +ENTRYPOINT ["node", "--enable-source-maps", "/home/app/hook-wrapper/hook-wrapper.js"] diff --git a/hook-sdk/nodejs/package.json b/hook-sdk/nodejs/package.json index c25304386e..8f6d3055c5 100644 --- a/hook-sdk/nodejs/package.json +++ b/hook-sdk/nodejs/package.json @@ -4,7 +4,9 @@ "type": "module", "description": "Handles external communication required for all secureCodeBox Hooks", "main": "hook-wrapper.js", - "scripts": {}, + "scripts": { + "build": "bun build --production --target=node --outdir=build/ --external=./hook/hook.js --sourcemap=external --minify ./hook-wrapper.js" + }, "keywords": [], "author": "iteratec GmbH", "license": "Apache-2.0", diff --git a/parser-sdk/nodejs/.dockerignore b/parser-sdk/nodejs/.dockerignore index 2d2da7ae86..dbb6e76bfb 100644 --- a/parser-sdk/nodejs/.dockerignore +++ b/parser-sdk/nodejs/.dockerignore @@ -3,3 +3,4 @@ # SPDX-License-Identifier: Apache-2.0 node_modules/ +build/ diff --git a/parser-sdk/nodejs/Dockerfile b/parser-sdk/nodejs/Dockerfile index 19e5b1ec55..926973fde7 100644 --- a/parser-sdk/nodejs/Dockerfile +++ b/parser-sdk/nodejs/Dockerfile @@ -5,7 +5,7 @@ FROM oven/bun:1.2 AS build WORKDIR /home/app/ COPY package.json package-lock.json ./ -RUN bun install +RUN bun install --ignore-scripts COPY *.js ./ RUN bun run build @@ -13,8 +13,9 @@ FROM node:22-alpine ARG NODE_ENV RUN addgroup --system --gid 1001 app && adduser app --system --uid 1001 --ingroup app WORKDIR /home/app/parser-wrapper/ -COPY --from=build --chown=root:root --chmod=755 /home/app/build/ ./ +COPY --chown=root:root --chmod=755 ./package.json ./package-lock.json ./ COPY --chown=root:root --chmod=755 ./findings-schema.json ./findings-schema.json +COPY --from=build --chown=root:root --chmod=755 /home/app/build/ ./ USER 1001 ENV NODE_ENV=${NODE_ENV:-production} ENTRYPOINT ["node", "--enable-source-maps", "/home/app/parser-wrapper/parser-wrapper.js"] diff --git a/scanners/test-scan/parser/parser.js b/scanners/test-scan/parser/parser.js index 022813e19a..e7f7eee8b0 100644 --- a/scanners/test-scan/parser/parser.js +++ b/scanners/test-scan/parser/parser.js @@ -2,7 +2,7 @@ // // SPDX-License-Identifier: Apache-2.0 -async function parse() { +export async function parse() { if (process.env["PRODUCE_INVALID_FINDINGS"] === "true") return getInvalidFindings(); else return getValidFindings(); @@ -64,5 +64,3 @@ function getValidFindings() { }, ]; } - -module.exports.parse = parse;