diff --git a/.version b/.version index d07233cc93..c0ac27fe01 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -2.35.1 +2.35.2 diff --git a/frontend/.version b/frontend/.version index d07233cc93..c0ac27fe01 100644 --- a/frontend/.version +++ b/frontend/.version @@ -1 +1 @@ -2.35.1 +2.35.2 diff --git a/frontend/src/_components/DynamicForm.jsx b/frontend/src/_components/DynamicForm.jsx index b2721a7717..0bf144ff5f 100644 --- a/frontend/src/_components/DynamicForm.jsx +++ b/frontend/src/_components/DynamicForm.jsx @@ -248,7 +248,7 @@ const DynamicForm = ({ case 'react-component-headers': { let isRenderedAsQueryEditor; - if (!isEditorActive || isGDS) { + if (isGDS) { isRenderedAsQueryEditor = false; } else { isRenderedAsQueryEditor = !isGDS && currentState != null; diff --git a/frontend/src/_helpers/appUtils.js b/frontend/src/_helpers/appUtils.js index ffa1e130ef..3fcfa11109 100644 --- a/frontend/src/_helpers/appUtils.js +++ b/frontend/src/_helpers/appUtils.js @@ -164,6 +164,7 @@ const evaluatePythonCode = async (options) => { await pyodide.globals.set('client', currentState['client']); await pyodide.globals.set('server', currentState['server']); await pyodide.globals.set('constants', currentState['constants']); + await pyodide.globals.set('page', currentState['page']); await pyodide.globals.set('parameters', currentState['parameters']); await pyodide.globals.set('variables', appStateVars); if (queryResult) await pyodide.globals.set('data', queryResult); diff --git a/marketplace/package-lock.json b/marketplace/package-lock.json index 793ead0e3f..7d1bd1e40e 100644 --- a/marketplace/package-lock.json +++ b/marketplace/package-lock.json @@ -3712,6 +3712,72 @@ "license": "MIT", "peer": true }, + "node_modules/@engagespot/node": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@engagespot/node/-/node-1.5.2.tgz", + "integrity": "sha512-dIOWn4iKZTwxV61ag0EVQzwY76nslTVoW1Bs0o1Pt3KxUsNJXzk1rAFOwhAXGOgzfB6PgHqAn9BCjbLOzVv+AA==", + "dependencies": { + "axios": "^1.1.0", + "dotenv": "^16.0.3", + "jsonwebtoken": "^9.0.2" + } + }, + "node_modules/@engagespot/node/node_modules/axios": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/@engagespot/node/node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/@engagespot/node/node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/@engagespot/node/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "dev": true, @@ -6638,6 +6704,73 @@ "node": ">=14.0.0" } }, + "node_modules/@supabase/auth-js": { + "version": "2.63.0", + "resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.63.0.tgz", + "integrity": "sha512-yIgcHnlgv24GxHtVGUhwGqAFDyJkPIC/xjx7HostN08A8yCy8HIfl4JEkTKyBqD1v1L05jNEJOUke4Lf4O1+Qg==", + "dependencies": { + "@supabase/node-fetch": "^2.6.14" + } + }, + "node_modules/@supabase/functions-js": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.2.2.tgz", + "integrity": "sha512-sJGq1nludmi7pY/fdtCpyY/pYonx7MfHdN408bqb736guWcVI1AChYVbI4kUM978EuOE4Ci6l7bUudfGg07QRw==", + "dependencies": { + "@supabase/node-fetch": "^2.6.14" + } + }, + "node_modules/@supabase/node-fetch": { + "version": "2.6.15", + "resolved": "https://registry.npmjs.org/@supabase/node-fetch/-/node-fetch-2.6.15.tgz", + "integrity": "sha512-1ibVeYUacxWYi9i0cf5efil6adJ9WRyZBLivgjs+AUpewx1F3xPi7gLgaASI2SmIQxPoCEjAsLAzKPgMJVgOUQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/@supabase/postgrest-js": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.15.2.tgz", + "integrity": "sha512-9/7pUmXExvGuEK1yZhVYXPZnLEkDTwxgMQHXLrN5BwPZZm4iUCL1YEyep/Z2lIZah8d8M433mVAUEGsihUj5KQ==", + "dependencies": { + "@supabase/node-fetch": "^2.6.14" + } + }, + "node_modules/@supabase/realtime-js": { + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.9.4.tgz", + "integrity": "sha512-wdq+2hZpgw0r2ldRs87d3U08Y8BrsO1bZxPNqbImpYshAEkusDz4vufR8KaqujKxqewmXS6YnUhuRVdvSEIKCA==", + "dependencies": { + "@supabase/node-fetch": "^2.6.14", + "@types/phoenix": "^1.5.4", + "@types/ws": "^8.5.10", + "ws": "^8.14.2" + } + }, + "node_modules/@supabase/storage-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.5.5.tgz", + "integrity": "sha512-OpLoDRjFwClwc2cjTJZG8XviTiQH4Ik8sCiMK5v7et0MDu2QlXjCAW3ljxJB5+z/KazdMOTnySi+hysxWUPu3w==", + "dependencies": { + "@supabase/node-fetch": "^2.6.14" + } + }, + "node_modules/@supabase/supabase-js": { + "version": "2.42.3", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.42.3.tgz", + "integrity": "sha512-/o52L/ngsGapcOUygWigvxzBo/bUVM4bubZMsUSZqZc+9sgjXZsgP/cwyggWUv3QOIqmbBrfSPgDLUh+Ofgi7Q==", + "dependencies": { + "@supabase/auth-js": "2.63.0", + "@supabase/functions-js": "2.2.2", + "@supabase/node-fetch": "2.6.15", + "@supabase/postgrest-js": "1.15.2", + "@supabase/realtime-js": "2.9.4", + "@supabase/storage-js": "2.5.5" + } + }, "node_modules/@tooljet-marketplace/awsredshift": { "resolved": "plugins/awsredshift", "link": true @@ -6646,6 +6779,10 @@ "resolved": "plugins/common", "link": true }, + "node_modules/@tooljet-marketplace/engagespot": { + "resolved": "plugins/engagespot", + "link": true + }, "node_modules/@tooljet-marketplace/github": { "resolved": "plugins/github", "link": true @@ -6662,10 +6799,18 @@ "resolved": "plugins/plivo", "link": true }, + "node_modules/@tooljet-marketplace/pocketbase": { + "resolved": "plugins/pocketbase", + "link": true + }, "node_modules/@tooljet-marketplace/s3": { "resolved": "plugins/s3", "link": true }, + "node_modules/@tooljet-marketplace/supabase": { + "resolved": "plugins/supabase", + "link": true + }, "node_modules/@tooljet-marketplace/textract": { "resolved": "plugins/textract", "link": true @@ -6674,10 +6819,6 @@ "resolved": "plugins/aws-lambda", "link": true }, - "node_modules/@tooljet-plugins/common": { - "resolved": "plugins/common", - "link": true - }, "node_modules/@tootallnate/once": { "version": "2.0.0", "dev": true, @@ -6847,6 +6988,11 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/phoenix": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.6.4.tgz", + "integrity": "sha512-B34A7uot1Cv0XtaHRYDATltAdKx0BvVKNgYNqE4WjtPUa4VQJM7kxeXcVKaH+KS+kCmZ+6w+QaUdcljiheiBJA==" + }, "node_modules/@types/prettier": { "version": "2.7.2", "dev": true, @@ -6863,6 +7009,14 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/yargs": { "version": "17.0.24", "dev": true, @@ -9265,14 +9419,15 @@ "license": "ISC" }, "node_modules/follow-redirects": { - "version": "1.15.2", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], - "license": "MIT", "engines": { "node": ">=4.0" }, @@ -14382,6 +14537,11 @@ "xmlbuilder": "^9.0.1" } }, + "node_modules/pocketbase": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/pocketbase/-/pocketbase-0.21.1.tgz", + "integrity": "sha512-0PvCP4pKtxsV9kwldEGyibEvhwOcx9jSCrz3WN5CgPILJfM0z76f1op9WE8/8UgikDsMdRsc5iBLfKintrJS1g==" + }, "node_modules/postcss-selector-parser": { "version": "6.0.11", "dev": true, @@ -14538,7 +14698,6 @@ }, "node_modules/proxy-from-env": { "version": "1.1.0", - "dev": true, "license": "MIT" }, "node_modules/psl": { @@ -16500,6 +16659,26 @@ "node": ">=6" } }, + "node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/xml2js": { "version": "0.4.19", "license": "MIT", @@ -16584,16 +16763,18 @@ "version": "1.0.0", "dependencies": { "@aws-sdk/client-lambda": "3.461.0", - "@tooljet-plugins/common": "file:../common", + "@tooljet-marketplace/common": "^1.0.0", "aws-sdk": "^2.1507.0", "react": "^17.0.2", "rimraf": "^3.0.2" } }, "plugins/awsredshift": { + "name": "@tooljet-marketplace/awsredshift", "version": "1.0.0", "dependencies": { - "@aws-sdk/client-redshift-data": "^3.511.0" + "@aws-sdk/client-redshift-data": "^3.511.0", + "@tooljet-marketplace/common": "^1.0.0" }, "devDependencies": { "@vercel/ncc": "^0.34.0", @@ -16607,6 +16788,18 @@ "rimraf": "^3.0.2" } }, + "plugins/engagespot": { + "name": "@tooljet-marketplace/engagespot", + "version": "1.0.0", + "dependencies": { + "@engagespot/node": "^1.5.1", + "@tooljet-marketplace/common": "^1.0.0" + }, + "devDependencies": { + "@vercel/ncc": "^0.34.0", + "typescript": "^4.7.4" + } + }, "plugins/github": { "name": "@tooljet-marketplace/github", "version": "1.0.0", @@ -16655,6 +16848,18 @@ "typescript": "^4.7.4" } }, + "plugins/pocketbase": { + "name": "@tooljet-marketplace/pocketbase", + "version": "1.0.0", + "dependencies": { + "@tooljet-marketplace/common": "^1.0.0", + "pocketbase": "^0.21.1" + }, + "devDependencies": { + "@vercel/ncc": "^0.34.0", + "typescript": "^4.7.4" + } + }, "plugins/s3": { "name": "@tooljet-marketplace/s3", "version": "1.0.0", @@ -16668,6 +16873,18 @@ "typescript": "^4.9.5" } }, + "plugins/supabase": { + "name": "@tooljet-marketplace/supabase", + "version": "1.0.0", + "dependencies": { + "@supabase/supabase-js": "^2.41.1", + "@tooljet-marketplace/common": "^1.0.0" + }, + "devDependencies": { + "@vercel/ncc": "^0.34.0", + "typescript": "^4.7.4" + } + }, "plugins/textract": { "name": "@tooljet-marketplace/textract", "version": "1.0.0", @@ -19432,6 +19649,58 @@ "dev": true, "peer": true }, + "@engagespot/node": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@engagespot/node/-/node-1.5.2.tgz", + "integrity": "sha512-dIOWn4iKZTwxV61ag0EVQzwY76nslTVoW1Bs0o1Pt3KxUsNJXzk1rAFOwhAXGOgzfB6PgHqAn9BCjbLOzVv+AA==", + "requires": { + "axios": "^1.1.0", + "dotenv": "^16.0.3", + "jsonwebtoken": "^9.0.2" + }, + "dependencies": { + "axios": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "requires": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==" + }, + "jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + } + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, "@eslint-community/eslint-utils": { "version": "4.4.0", "dev": true, @@ -21480,10 +21749,75 @@ "tslib": "^2.5.0" } }, + "@supabase/auth-js": { + "version": "2.63.0", + "resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.63.0.tgz", + "integrity": "sha512-yIgcHnlgv24GxHtVGUhwGqAFDyJkPIC/xjx7HostN08A8yCy8HIfl4JEkTKyBqD1v1L05jNEJOUke4Lf4O1+Qg==", + "requires": { + "@supabase/node-fetch": "^2.6.14" + } + }, + "@supabase/functions-js": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.2.2.tgz", + "integrity": "sha512-sJGq1nludmi7pY/fdtCpyY/pYonx7MfHdN408bqb736guWcVI1AChYVbI4kUM978EuOE4Ci6l7bUudfGg07QRw==", + "requires": { + "@supabase/node-fetch": "^2.6.14" + } + }, + "@supabase/node-fetch": { + "version": "2.6.15", + "resolved": "https://registry.npmjs.org/@supabase/node-fetch/-/node-fetch-2.6.15.tgz", + "integrity": "sha512-1ibVeYUacxWYi9i0cf5efil6adJ9WRyZBLivgjs+AUpewx1F3xPi7gLgaASI2SmIQxPoCEjAsLAzKPgMJVgOUQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "@supabase/postgrest-js": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.15.2.tgz", + "integrity": "sha512-9/7pUmXExvGuEK1yZhVYXPZnLEkDTwxgMQHXLrN5BwPZZm4iUCL1YEyep/Z2lIZah8d8M433mVAUEGsihUj5KQ==", + "requires": { + "@supabase/node-fetch": "^2.6.14" + } + }, + "@supabase/realtime-js": { + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.9.4.tgz", + "integrity": "sha512-wdq+2hZpgw0r2ldRs87d3U08Y8BrsO1bZxPNqbImpYshAEkusDz4vufR8KaqujKxqewmXS6YnUhuRVdvSEIKCA==", + "requires": { + "@supabase/node-fetch": "^2.6.14", + "@types/phoenix": "^1.5.4", + "@types/ws": "^8.5.10", + "ws": "^8.14.2" + } + }, + "@supabase/storage-js": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.5.5.tgz", + "integrity": "sha512-OpLoDRjFwClwc2cjTJZG8XviTiQH4Ik8sCiMK5v7et0MDu2QlXjCAW3ljxJB5+z/KazdMOTnySi+hysxWUPu3w==", + "requires": { + "@supabase/node-fetch": "^2.6.14" + } + }, + "@supabase/supabase-js": { + "version": "2.42.3", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.42.3.tgz", + "integrity": "sha512-/o52L/ngsGapcOUygWigvxzBo/bUVM4bubZMsUSZqZc+9sgjXZsgP/cwyggWUv3QOIqmbBrfSPgDLUh+Ofgi7Q==", + "requires": { + "@supabase/auth-js": "2.63.0", + "@supabase/functions-js": "2.2.2", + "@supabase/node-fetch": "2.6.15", + "@supabase/postgrest-js": "1.15.2", + "@supabase/realtime-js": "2.9.4", + "@supabase/storage-js": "2.5.5" + } + }, "@tooljet-marketplace/awsredshift": { "version": "file:plugins/awsredshift", "requires": { "@aws-sdk/client-redshift-data": "^3.511.0", + "@tooljet-marketplace/common": "^1.0.0", "@vercel/ncc": "^0.34.0", "typescript": "^4.7.4" } @@ -21494,6 +21828,15 @@ "rimraf": "^3.0.2" } }, + "@tooljet-marketplace/engagespot": { + "version": "file:plugins/engagespot", + "requires": { + "@engagespot/node": "^1.5.1", + "@tooljet-marketplace/common": "^1.0.0", + "@vercel/ncc": "^0.34.0", + "typescript": "^4.7.4" + } + }, "@tooljet-marketplace/github": { "version": "file:plugins/github", "requires": { @@ -21530,6 +21873,15 @@ "typescript": "^4.7.4" } }, + "@tooljet-marketplace/pocketbase": { + "version": "file:plugins/pocketbase", + "requires": { + "@tooljet-marketplace/common": "^1.0.0", + "@vercel/ncc": "^0.34.0", + "pocketbase": "^0.21.1", + "typescript": "^4.7.4" + } + }, "@tooljet-marketplace/s3": { "version": "file:plugins/s3", "requires": { @@ -21540,6 +21892,15 @@ "typescript": "^4.9.5" } }, + "@tooljet-marketplace/supabase": { + "version": "file:plugins/supabase", + "requires": { + "@supabase/supabase-js": "^2.41.1", + "@tooljet-marketplace/common": "^1.0.0", + "@vercel/ncc": "^0.34.0", + "typescript": "^4.7.4" + } + }, "@tooljet-marketplace/textract": { "version": "file:plugins/textract", "requires": { @@ -21553,18 +21914,12 @@ "version": "file:plugins/aws-lambda", "requires": { "@aws-sdk/client-lambda": "3.461.0", - "@tooljet-plugins/common": "file:../common", + "@tooljet-marketplace/common": "^1.0.0", "aws-sdk": "^2.1507.0", "react": "^17.0.2", "rimraf": "^3.0.2" } }, - "@tooljet-plugins/common": { - "version": "file:plugins/common", - "requires": { - "rimraf": "^3.0.2" - } - }, "@tootallnate/once": { "version": "2.0.0", "dev": true @@ -21701,6 +22056,11 @@ "version": "4.0.0", "dev": true }, + "@types/phoenix": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.6.4.tgz", + "integrity": "sha512-B34A7uot1Cv0XtaHRYDATltAdKx0BvVKNgYNqE4WjtPUa4VQJM7kxeXcVKaH+KS+kCmZ+6w+QaUdcljiheiBJA==" + }, "@types/prettier": { "version": "2.7.2", "dev": true, @@ -21714,6 +22074,14 @@ "version": "2.0.1", "dev": true }, + "@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "requires": { + "@types/node": "*" + } + }, "@types/yargs": { "version": "17.0.24", "dev": true, @@ -23208,7 +23576,9 @@ "dev": true }, "follow-redirects": { - "version": "1.15.2" + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==" }, "for-each": { "version": "0.3.3", @@ -26583,6 +26953,11 @@ "xmlbuilder": "^9.0.1" } }, + "pocketbase": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/pocketbase/-/pocketbase-0.21.1.tgz", + "integrity": "sha512-0PvCP4pKtxsV9kwldEGyibEvhwOcx9jSCrz3WN5CgPILJfM0z76f1op9WE8/8UgikDsMdRsc5iBLfKintrJS1g==" + }, "postcss-selector-parser": { "version": "6.0.11", "dev": true, @@ -26678,8 +27053,7 @@ "dev": true }, "proxy-from-env": { - "version": "1.1.0", - "dev": true + "version": "1.1.0" }, "psl": { "version": "1.9.0" @@ -27933,6 +28307,12 @@ } } }, + "ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "requires": {} + }, "xml2js": { "version": "0.4.19", "requires": { diff --git a/marketplace/plugins/aws-lambda/lib/index.ts b/marketplace/plugins/aws-lambda/lib/index.ts index ed56b84c9e..35445a5526 100644 --- a/marketplace/plugins/aws-lambda/lib/index.ts +++ b/marketplace/plugins/aws-lambda/lib/index.ts @@ -1,4 +1,4 @@ -import { QueryError, QueryResult, QueryService } from '@tooljet-plugins/common'; +import { QueryError, QueryResult, QueryService } from '@tooljet-marketplace/common'; import { LambdaClient, InvokeCommand } from '@aws-sdk/client-lambda'; import { SourceOptions, QueryOptions } from './types'; diff --git a/marketplace/plugins/aws-lambda/package.json b/marketplace/plugins/aws-lambda/package.json index ba96091057..14c83fdc1e 100644 --- a/marketplace/plugins/aws-lambda/package.json +++ b/marketplace/plugins/aws-lambda/package.json @@ -18,7 +18,7 @@ "homepage": "https://github.com/tooljet/tooljet#readme", "dependencies": { "@aws-sdk/client-lambda": "3.461.0", - "@tooljet-plugins/common": "file:../common", + "@tooljet-marketplace/common": "^1.0.0", "aws-sdk": "^2.1507.0", "react": "^17.0.2", "rimraf": "^3.0.2" diff --git a/marketplace/plugins/awsredshift/package.json b/marketplace/plugins/awsredshift/package.json index 12963c494c..fdbe247ed4 100644 --- a/marketplace/plugins/awsredshift/package.json +++ b/marketplace/plugins/awsredshift/package.json @@ -17,6 +17,7 @@ }, "homepage": "https://github.com/tooljet/tooljet#readme", "dependencies": { + "@tooljet-marketplace/common": "^1.0.0", "@aws-sdk/client-redshift-data": "^3.511.0" }, "devDependencies": { diff --git a/server/.version b/server/.version index d07233cc93..c0ac27fe01 100644 --- a/server/.version +++ b/server/.version @@ -1 +1 @@ -2.35.1 +2.35.2 diff --git a/server/src/services/data_queries.service.ts b/server/src/services/data_queries.service.ts index 740bc81df2..dea94f2ce1 100644 --- a/server/src/services/data_queries.service.ts +++ b/server/src/services/data_queries.service.ts @@ -406,12 +406,31 @@ export class DataQueriesService { async parseSourceOptions(options: any, organization_id: string, environmentId: string): Promise { // For adhoc queries such as REST API queries, source options will be null if (!options) return {}; + const variablesMatcher = /(%%.+?%%)/g; + const constantMatcher = /{{constants\..+?}}/g; for (const key of Object.keys(options)) { const currentOption = options[key]?.['value']; - const variablesMatcher = /(%%.+?%%)/g; + + //! request options are nested arrays with constants and variables + if (Array.isArray(currentOption)) { + for (let i = 0; i < currentOption.length; i++) { + const curr = currentOption[i]; + + if (Array.isArray(curr)) { + for (let j = 0; j < curr.length; j++) { + const inner = curr[j]; + + if (constantMatcher.test(inner)) { + const resolved = await this.resolveConstants(inner, organization_id, environmentId); + curr[j] = resolved; + } + } + } + } + } + const matched = variablesMatcher.exec(currentOption); - const constantMatcher = /{{constants\..+?}}/g; if (matched) { const resolved = await this.resolveVariable(currentOption, organization_id);