Skip to content

Commit

Permalink
V9.3.2 - Manifest V3 :-)
Browse files Browse the repository at this point in the history
  • Loading branch information
teamdocs committed Oct 5, 2024
1 parent 284f6a8 commit 90d4d64
Show file tree
Hide file tree
Showing 464 changed files with 267,842 additions and 273,940 deletions.
11 changes: 7 additions & 4 deletions .babelrc
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"
]
}
3 changes: 2 additions & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ module.exports = {
'semi': 'off',
'indent': 'off',
'no-unused-vars': 'off',
'camelcase': 'off'
'camelcase': 'off',
'no-debugger': 'off'
}
}
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Auto detect text files and perform LF normalization
* text=auto
13 changes: 13 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,16 @@ dist
dist_*
*_ext.zip
public/bundle.js
.req
*.diff
*.temp.*

### unzipped extension folders
chrome_ext*

### for development purpose
TODO.md

### exclude other tesseract language files except eng
extension/lib/tesseract/lang/*
!extension/lib/tesseract/lang/eng.traineddata.gz
18 changes: 9 additions & 9 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
COPYRIGHT NOTICE
================
All original code...
All original code:

...Copyright 2018-2020 a9t9 software GmbH
Copyright 2018-2024 a9t9 software GmbH


UI.Vision RPA (formerly Kantu) is dual-licensed: Open-Source AGPLv3 or Commercial Licensing.
Ui.Vision RPA is dual-licensed: Open-Source AGPLv3 or Commercial Licensing.

The source code available in this repository is licensed under:

Expand All @@ -16,25 +16,25 @@ The source code available in this repository is licensed under:

*** Dual Licensing explained ***

Unlike many Open Source software projects, UI.Vision RPA is owned and fully controlled by a9t9 Software GmbH (a9t9). The vast majority of all UI.Vision RPA development is done by a9t9, and on rare occasions, bug fixes accepted from outside contributors (under license by a9t9). If you have further questions regarding the development and control of UI.Vision RPA, please contact a9t9 software GmbH.
Unlike many Open Source software projects, UI.Vision RPA is owned and fully controlled by a9t9 Software GmbH (a9t9). The vast majority of all Ui.Vision RPA development is done by a9t9, and on rare occasions, bug fixes accepted from outside contributors (under license by a9t9). If you have further questions regarding the development and control of UI.Vision RPA, please contact a9t9 software GmbH.

UI.Vision RPA Core is provided under the *GNU Affero General Public License (AGPL)*, as well as under an a9t9 commercial license. For more detailed and complete information on the AGPL please visit the GNU web site.
Ui.Vision RPA Core is provided under the *GNU Affero General Public License (AGPL)*, as well as under an a9t9 commercial license. For more detailed and complete information on the AGPL please visit the GNU web site.

This text is intended to provide a summary of information that developers and companies may find useful in understanding licensing options available for UI.Vision RPA Core. It does not represent legal advice. We strongly encourage developers and/or companies to review the specific licensing text made available on the GNU web site.


*** Commercial Licensing ***

If you want to use or redistribute _modified_ versions of UI.Vision RPA Core or want to include its source code in your project, and do not want to publish the code under the AGPL license, then please contact us for a commercial license.
If you want to use or redistribute _modified_ versions of Ui.Vision RPA Core or want to include its source code (in part or full) in your project, **and do NOT want to publish your code/project under the AGPL license**, then you must contact us for a commercial license.


*** License FAQs ***

1. Of course, you do _not_ need a commercial license if you just want to use UI.Vision RPA in a commercial environment. Everything in this text is about the source code, not about using UI.Vision RPA itself.
1. You do _not_ need a commercial license if you just want to use Ui.Vision RPA in a commercial environment. Everything in this text is about the source code, not about using Ui.Vision RPA itself.

2. You do _not_ need a commercial license to redistribute or bundle the _unmodifed_ version of UI.Vision RPA with your project, as long as UI.Vision RPA stays separate.
2. You also do _not_ need a commercial license to redistribute or bundle the _unmodifed_ version of Ui.Vision RPA with your project, as long as Ui.Vision RPA stays separate and unmodified.

Example: Some companies use UI.Vision RPA to allow their users to record macros that are then run by their commercial SaaS or on-premise application monitoring backends. UI.Vision RPA is not modified. As such, it can be distributed commercially for free. No commercial license or fee of any kind is required.
Example: Some companies use Ui.Vision RPA to allow their users to record macros that are then run by their commercial SaaS or on-premise application monitoring backends. Ui.Vision RPA is not modified. As such, it can be distributed commercially for free. No commercial license or fee of any kind is required.

3. Open-Source Projects: If you want to include/embed UI.Vision RPA Core as part of a free, open source project but want to keep your existing license we can probably work something out. Please contact us.

Expand Down
13 changes: 2 additions & 11 deletions Not_included.txt
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

44 changes: 28 additions & 16 deletions README.md
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)

Expand All @@ -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.



84 changes: 64 additions & 20 deletions build/browser_extension_webpack_plugin.js
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
Loading

0 comments on commit 90d4d64

Please sign in to comment.