-
Notifications
You must be signed in to change notification settings - Fork 311
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
464 changed files
with
267,842 additions
and
273,940 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,10 @@ | ||
{ | ||
"presets": [["env", {"modules": false}], "stage-0", "react"], | ||
{ | ||
"presets": [ | ||
"@babel/preset-env", | ||
"@babel/preset-react", | ||
"@babel/preset-typescript" // For TypeScript support | ||
], | ||
"plugins": [ | ||
"transform-object-assign", | ||
["import", { "libraryName": "antd" }] | ||
"@babel/plugin-transform-modules-commonjs" | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
# Auto detect text files and perform LF normalization | ||
* text=auto |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,10 @@ | ||
*** Not included *** | ||
|
||
|
||
The UI.Visio nRPA (formerly Kantu) open-source code published in this repository includes the complete, ready-to-run core extension. | ||
The UI.Vision open-source code published in this repository includes the complete, ready-to-run core extension. | ||
|
||
The repository and the open-source license does not include: | ||
|
||
|
||
(1) Source code for the C++ Webassembly module used by the Visual UI testing commands. | ||
|
||
UI.Vision Core works just fine without this module. In addition, the compiled binary of the module is included in the repo, so the VisualAssert, VisualVerify and VisualSearch commands work out of the box. We use Webassembly for the fast, in-browser image search of these commands. Without the KantuSearch module, everything except those three commands continues to work. | ||
|
||
Please note that not having the source code of this module is _not_ a security issue, as Webassembly code runs in the browser's sandbox and can _not_ do anything buggy or malicious by design. For more information, see https://webassembly.org/docs/security/ . | ||
|
||
|
||
(2) Source code of the binary UI.Vision XModules extensions modules. | ||
Source code of the binary UI.Vision XModules extensions modules. | ||
|
||
The UI.Vision XModules are cross-platform desktop software and are installed separately. They communicate with the core browser extension via native messaging. They are not included with the UI.Vision Core extension that you find in the Chrome and Firefox stores. You can download them from this website: https://ui.vision/rpa/x | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,15 @@ | ||
# UI.Vision [RPA](https://ui.vision/rpa) | ||
# Ui.Vision [RPA](https://ui.vision/rpa) | ||
|
||
- Modern Robotic Process Automation plus Selenium IDE++ | ||
|
||
Questions? Suggestions? - Meet us in the UI.Vision [RPA user forum](https://forum.ui.vision). | ||
|
||
Every user benefits from the questions and answers provided in the forum, that is why we would ask you to post the question [in the RPA forum](https://forum.ui.vision) first if a public forum is appropriate for your question. The forum is monitored by active users, tech support and the developers, so we would like to concentrate the discussion "over there" in one place | ||
Every user benefits from the questions and answers provided in the forum, that is why we would ask you to post the question [in the RPA forum](https://forum.ui.vision) first if a public forum is appropriate for your question. The forum is monitored by active users, tech support and the developers, so we would like to concentrate the discussion "over there" in one place. | ||
|
||
|
||
# How to install UI.Vision RPA: | ||
# How to install Ui.Vision RPA: | ||
|
||
UI.Vision RPA for Chrome and Firefox is modern cross-platform RPA software for macOS, Linux and Windows. It includes a Selenium IDE and Web Macro Recorder. You find the latest version always in the Chrome and Firefox stores. You can use it _completely free for private and commercial purposes_: | ||
Ui.Vision RPA for Chrome, Edge and Firefox is modern cross-platform RPA software for macOS, Linux and Windows. It includes a Selenium IDE and Web Macro Recorder. You find the latest version always in the Chrome and Firefox stores. You can use it _completely free for private and commercial purposes_: | ||
|
||
- [UI.Vision RPA in the Google Chrome Webstore](https://chrome.google.com/webstore/detail/uivision-rpa/gcbalfbdmfieckjlnblleoemohcganoc) | ||
|
||
|
@@ -18,34 +18,46 @@ Every user benefits from the questions and answers provided in the forum, that i | |
- [UI.Vision RPA in the Microsoft Edge Webstore](https://microsoftedge.microsoft.com/addons/detail/uivision-rpa/goapmjinbaeomoemgdcnnhoedopjnddd) | ||
|
||
|
||
- [UI.Vision RPA plus Selenium IDE Homepage](https://ui.vision/rpa) | ||
- [Ui.Vision RPA Homepage](https://ui.vision/rpa) | ||
|
||
- List of supported [Selenium IDE commands](https://ui.vision/rpa/docs/selenium-ide/) | ||
|
||
|
||
# Building the Chrome, Edge and Firefox Extension | ||
|
||
We use Node V12.16.1 and NPM V6.13.4. | ||
|
||
Building the extension is _not_ required if you "only" want to use it. | ||
|
||
You can [install UI.Vision RPA directly from the Chrome, Edge or Firefox stores](https://ui.vision/rpa), which is the easiest and the recommended way of using the UI.Vision RPA software. Older versions can be found in the [RPA software](https://ui.vision/rpa/archive) archive. | ||
You can [install UI.Vision RPA directly from the Chrome, Edge or Firefox stores](https://ui.vision/rpa), which is the easiest and the recommended way of using the Ui.Vision RPA software. Older versions can be found in the [RPA software](https://ui.vision/rpa/archive) archive. | ||
|
||
The information below is only required and intended for developers: | ||
|
||
Besides, as a general piece of information: All browser extensions are written in Javascript and thus they are all open-source (in the technical sense) by nature. This [strict open-source security](https://ui.vision/rpa#security) approach makes UI.Vision RPA more secure than any other Robotic Process Automation (RPA) solution in the market. You can set break points and debug the extension right in your browser. Thus this Github repo is _not_ required for debugging and source code inspection to work: | ||
The project uses Node V20.11.1 and NPM V10.2.4 | ||
|
||
https://github.com/A9T9/RPA/blob/master/rpa-debug-chrome.png | ||
If you have any questions, please contact us at [email protected] - Thanks! | ||
|
||
The link above shows a screenshot of our UI.Vision RPA software, installed from the Chrome store and debugged and inspected directly in the web browser. | ||
# To build the extension bundle | ||
|
||
But of course developers can also build it directly from the source code with this command line: | ||
```bash | ||
npm i -f | ||
|
||
npm run build | ||
npm run build-ff | ||
``` | ||
npm i | ||
npm run build (or build-ff for Firefox) | ||
|
||
And the build files are in `dist` and `dist_ff` folders. | ||
|
||
# To develop | ||
```bash | ||
npm i -f | ||
|
||
npm run ext | ||
``` | ||
|
||
The built files during development are also in `dist` and `dist_ff` folders | ||
|
||
Once done, the ready-to-use extension code appears in the /dist directory (Chrome) or /dist_ff directory (Firefox). | ||
|
||
# Need the very latest source code version? | ||
|
||
Please note that we use an internal source code repository for our daily development work. The very latest source code snapshot can always be requested directly from the development team. Please contact us at team AT ui.vision. We are looking forward talking to you. And of course, if you want to join the development you are welcome. | ||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,36 +1,80 @@ | ||
|
||
class BrowserExtensionWebpackPlugin { | ||
options = {} | ||
|
||
constructor (options) { | ||
if (!options.createManifestJson) { | ||
throw new Error('must provide createManifestJson') | ||
} | ||
|
||
this.options = options | ||
this.createManifestJson = options.createManifestJson | ||
} | ||
|
||
apply (compiler) { | ||
compiler.hooks.emit.tap('BrowserExtensionWebpackPlugin', (compilation) => { | ||
const entryPointNames = Array.from(compilation.entrypoints.keys()) | ||
const getFilesForEntryPoint = (name) => { | ||
if (entryPointNames.indexOf(name) === -1) { | ||
throw new Error(`Entry point "${name}" doesn't exist`) | ||
} | ||
const entryPoint = compilation.entrypoints.get(name) | ||
return entryPoint.getFiles() | ||
} | ||
const manifestJson = this.createManifestJson({ entryPointNames, getFilesForEntryPoint }) | ||
const text = JSON.stringify(manifestJson, null, 2) | ||
|
||
compilation.assets['manifest.json'] = { | ||
source: function () { | ||
return text | ||
apply(compiler) { | ||
const pluginName = 'BrowserExtensionWebpackPlugin' | ||
|
||
// webpack module instance can be accessed from the compiler object, | ||
// this ensures that correct version of the module is used | ||
// (do not require/import the webpack or any symbols from it directly). | ||
const { webpack } = compiler; | ||
|
||
// Compilation object gives us reference to some useful constants. | ||
const { Compilation } = webpack; | ||
|
||
// RawSource is one of the "sources" classes that should be used | ||
// to represent asset sources in compilation. | ||
const { RawSource } = webpack.sources; | ||
|
||
// Tapping to the "thisCompilation" hook in order to further tap | ||
// to the compilation process on an earlier stage. | ||
compiler.hooks.thisCompilation.tap(pluginName, (compilation) => { | ||
// Tapping to the assets processing pipeline on a specific stage. | ||
compilation.hooks.processAssets.tap( | ||
{ | ||
name: pluginName, | ||
// Using one of the later asset processing stages to ensure | ||
// that all assets were already added to the compilation by other plugins. | ||
stage: Compilation.PROCESS_ASSETS_STAGE_SUMMARIZE, | ||
}, | ||
size: function () { | ||
return text.length | ||
(assets) => { | ||
|
||
const entryPointNames = Array.from(compilation.entrypoints.keys()) | ||
const getFilesForEntryPoint = (name) => { | ||
if (entryPointNames.indexOf(name) === -1) { | ||
throw new Error(`Entry point "${name}" doesn't exist`) | ||
} | ||
const entryPoint = compilation.entrypoints.get(name) | ||
return entryPoint.getFiles() | ||
} | ||
const manifestJson = this.createManifestJson({ entryPointNames, getFilesForEntryPoint }) | ||
const text = JSON.stringify(manifestJson, null, 2) | ||
|
||
compilation.emitAsset( | ||
'manifest.json', | ||
new RawSource(text) | ||
); | ||
|
||
const bgEntry = (this.options || {}).backgroundEntry || 'bg' | ||
const bgFileName = (this.options || {}).backgroundFileName || 'background.js' | ||
const codeForImportScript = (scriptPath) => { | ||
if (process.env.BROWSER === 'firefox') { | ||
return `try { import('./${scriptPath}'); } catch (e) { console.error('failed to import script ${scriptPath}', e); }` | ||
} else { | ||
return `try { importScripts('${scriptPath}'); } catch (e) { console.error('failed to import script ${scriptPath}', e); }` | ||
} | ||
} | ||
const bgCode = getFilesForEntryPoint(bgEntry).map(codeForImportScript).join('\n') | ||
|
||
compilation.emitAsset( | ||
bgFileName, | ||
new RawSource(bgCode) | ||
); | ||
} | ||
} | ||
}) | ||
); | ||
}); | ||
} | ||
|
||
} | ||
|
||
module.exports = BrowserExtensionWebpackPlugin |
Oops, something went wrong.