From 915482a91573c77d5a20b20eed27cec3190bd3a5 Mon Sep 17 00:00:00 2001 From: Adria Navarro Date: Fri, 19 Jan 2024 10:59:48 +0100 Subject: [PATCH] Configure cypto --- packages/server/src/jsRunner.ts | 19 +++++++++++++++++++ .../string-templates/src/index-helpers.js | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/packages/server/src/jsRunner.ts b/packages/server/src/jsRunner.ts index c0738d2b7d..7c965e5c8c 100644 --- a/packages/server/src/jsRunner.ts +++ b/packages/server/src/jsRunner.ts @@ -5,6 +5,7 @@ import { context } from "@budibase/backend-core" import tracer from "dd-trace" import fs from "fs" import url from "url" +import crypto from "crypto" export function init() { const helpersSource = fs.readFileSync( @@ -45,7 +46,25 @@ export function init() { const helpersModule = jsIsolate.compileModuleSync( `${injectedRequire};${helpersSource}` ) + + const cryptoModule = jsIsolate.compileModuleSync(`export default { + randomUUID: cryptoRandomUUIDCb, + }`) + cryptoModule.instantiateSync(jsContext, specifier => { + throw new Error(`No imports allowed. Required: ${specifier}`) + }) + + global.setSync( + "cryptoRandomUUIDCb", + new ivm.Callback((...params: Parameters) => { + return crypto.randomUUID(...params) + }) + ) + helpersModule.instantiateSync(jsContext, specifier => { + if (specifier === "crypto") { + return cryptoModule + } throw new Error(`No imports allowed. Required: ${specifier}`) }) diff --git a/packages/string-templates/src/index-helpers.js b/packages/string-templates/src/index-helpers.js index 3d4a8f1741..079e38078d 100644 --- a/packages/string-templates/src/index-helpers.js +++ b/packages/string-templates/src/index-helpers.js @@ -10,7 +10,7 @@ const externalCollections = { comparison: require("@budibase/handlebars-helpers/lib/comparison"), object: require("@budibase/handlebars-helpers/lib/object"), regex: require("@budibase/handlebars-helpers/lib/regex"), - // uuid: require("@budibase/handlebars-helpers/lib/uuid"), + uuid: require("@budibase/handlebars-helpers/lib/uuid"), } const addedHelpers = {