diff --git a/package-lock.json b/package-lock.json index 5cb18d3bc..751b048ef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "packages/bruno-electron", "packages/bruno-cli", "packages/bruno-common", + "packages/bruno-converters", "packages/bruno-schema", "packages/bruno-query", "packages/bruno-js", @@ -6343,6 +6344,24 @@ } } }, + "node_modules/@rollup/plugin-alias": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-5.1.1.tgz", + "integrity": "sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@rollup/plugin-commonjs": { "version": "23.0.7", "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-23.0.7.tgz", @@ -7937,6 +7956,10 @@ "resolved": "packages/bruno-common", "link": true }, + "node_modules/@usebruno/converters": { + "resolved": "packages/bruno-converters", + "link": true + }, "node_modules/@usebruno/crypto-js": { "version": "3.1.9", "resolved": "https://registry.npmjs.org/@usebruno/crypto-js/-/crypto-js-3.1.9.tgz", @@ -26274,6 +26297,130 @@ "typescript": "^4.8.4" } }, + "packages/bruno-converters": { + "name": "@usebruno/converters", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "@usebruno/schema": "^0.7.0", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "nanoid": "3.3.8" + }, + "devDependencies": { + "@babel/core": "^7.25.2", + "@babel/preset-env": "^7.25.4", + "@rollup/plugin-alias": "^5.1.0", + "@rollup/plugin-commonjs": "^23.0.2", + "@rollup/plugin-node-resolve": "^15.0.1", + "@rollup/plugin-typescript": "^9.0.2", + "babel-jest": "^29.7.0", + "rimraf": "^5.0.7", + "rollup": "3.2.5", + "rollup-plugin-dts": "^5.0.0", + "rollup-plugin-peer-deps-external": "^2.2.4", + "rollup-plugin-terser": "^7.0.2", + "typescript": "^4.8.4" + } + }, + "packages/bruno-converters/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "packages/bruno-converters/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "packages/bruno-converters/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "packages/bruno-converters/node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "packages/bruno-converters/node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "packages/bruno-converters/node_modules/rollup": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.2.5.tgz", + "integrity": "sha512-/Ha7HhVVofduy+RKWOQJrxe4Qb3xyZo+chcpYiD8SoQa4AG7llhupUtyfKSSrdBM2mWJjhM8wZwmbY23NmlIYw==", + "dev": true, + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "packages/bruno-electron": { "name": "bruno", "version": "2.0.0", diff --git a/package.json b/package.json index 6177f9867..f7d4996dd 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "packages/bruno-electron", "packages/bruno-cli", "packages/bruno-common", + "packages/bruno-converters", "packages/bruno-schema", "packages/bruno-query", "packages/bruno-js", @@ -38,6 +39,7 @@ "dev:electron": "npm run dev --workspace=packages/bruno-electron", "dev:electron:debug": "npm run debug --workspace=packages/bruno-electron", "build:bruno-common": "npm run build --workspace=packages/bruno-common", + "build:bruno-converters": "npm run build --workspace=packages/bruno-converters", "build:bruno-query": "npm run build --workspace=packages/bruno-query", "build:graphql-docs": "npm run build --workspace=packages/bruno-graphql-docs", "build:electron": "node ./scripts/build-electron.js", diff --git a/packages/bruno-app/src/components/Sidebar/Collections/Collection/ExportCollection/index.js b/packages/bruno-app/src/components/Sidebar/Collections/Collection/ExportCollection/index.js index 92e252410..cdc400b65 100644 --- a/packages/bruno-app/src/components/Sidebar/Collections/Collection/ExportCollection/index.js +++ b/packages/bruno-app/src/components/Sidebar/Collections/Collection/ExportCollection/index.js @@ -1,7 +1,6 @@ import React from 'react'; import exportBrunoCollection from 'utils/collections/export'; import exportPostmanCollection from 'utils/exporters/postman-collection'; -import { toastError } from 'utils/common/error'; import cloneDeep from 'lodash/cloneDeep'; import Modal from 'components/Modal'; import { transformCollectionToSaveToExportAsFile } from 'utils/collections/index'; diff --git a/packages/bruno-app/src/components/Sidebar/ImportCollection/index.js b/packages/bruno-app/src/components/Sidebar/ImportCollection/index.js index 47f0f553e..3b3c6aeaa 100644 --- a/packages/bruno-app/src/components/Sidebar/ImportCollection/index.js +++ b/packages/bruno-app/src/components/Sidebar/ImportCollection/index.js @@ -1,4 +1,4 @@ -import React, { useState } from 'react'; +import React from 'react'; import importBrunoCollection from 'utils/importers/bruno-collection'; import importPostmanCollection from 'utils/importers/postman-collection'; import importInsomniaCollection from 'utils/importers/insomnia-collection'; @@ -7,14 +7,6 @@ import { toastError } from 'utils/common/error'; import Modal from 'components/Modal'; const ImportCollection = ({ onClose, handleSubmit }) => { - const [options, setOptions] = useState({ - enablePostmanTranslations: { - enabled: true, - label: 'Auto translate postman scripts', - subLabel: - "When enabled, Bruno will try as best to translate the scripts from the imported collection to Bruno's format." - } - }); const handleImportBrunoCollection = () => { importBrunoCollection() .then(({ collection }) => { @@ -24,9 +16,9 @@ const ImportCollection = ({ onClose, handleSubmit }) => { }; const handleImportPostmanCollection = () => { - importPostmanCollection(options) - .then(({ collection, translationLog }) => { - handleSubmit({ collection, translationLog }); + importPostmanCollection() + .then(({ collection }) => { + handleSubmit({ collection }); }) .catch((err) => toastError(err, 'Postman Import collection failed')); }; @@ -46,15 +38,6 @@ const ImportCollection = ({ onClose, handleSubmit }) => { }) .catch((err) => toastError(err, 'OpenAPI v3 Import collection failed')); }; - const toggleOptions = (event, optionKey) => { - setOptions({ - ...options, - [optionKey]: { - ...options[optionKey], - enabled: !options[optionKey].enabled - } - }); - }; const CollectionButton = ({ children, className, onClick }) => { return ( - {showDetails && ( -
- - Impacted Collections: {Object.keys(translationLog || {}).length} - - - Impacted Lines:{' '} - {Object.values(translationLog || {}).reduce( - (acc, curr) => acc + (curr.script?.length || 0) + (curr.test?.length || 0), - 0 - )} - - - The numbers after 'script' and 'test' indicate the line numbers of incomplete translations. - - - -
- )} - - ); -}; - -const ImportCollectionLocation = ({ onClose, handleSubmit, collectionName, translationLog }) => { +const ImportCollectionLocation = ({ onClose, handleSubmit, collectionName }) => { const inputRef = useRef(); const dispatch = useDispatch(); @@ -150,9 +53,6 @@ const ImportCollectionLocation = ({ onClose, handleSubmit, collectionName, trans Name
{collectionName}
- {translationLog && Object.keys(translationLog).length > 0 && ( - - )} <>