[git] GPGME - branch, javascript-binding, updated. gpgme-1.11.1-68-g1919fa4

[email protected] (by Maximilian Krambach)
Newsgroups gmane.comp.encryption.gpg.cvs
Message-ID <[email protected]>
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GnuPG Made Easy".

The branch, javascript-binding has been updated
       via  1919fa41b6da4dfd4f69e776caa6e6b1883eb208 (commit)
      from  1105fc87a3bd3e1152aff578b7b84871558418e6 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 1919fa41b6da4dfd4f69e776caa6e6b1883eb208
Author: Maximilian Krambach <[email protected]>
Date:   Wed Jul 4 13:38:54 2018 +0200

    js: Add jsdoc, update webpack-cli dependency
    
    --
    * package.json:
      - the old webpack-cli version depended on two packages
        with vulnerabilities, set to minimum version 3.0.8 to fix this
        (nodesecurity.io/advisories/157, nodesecurity.io/advisories/612)
      - added License identifier
    
    * README: Updated documentation
    
    * jsdoc.conf: Added a configuration file for jsdoc
    
    * some minor documentation changes, indentations

diff --git a/lang/js/README b/lang/js/README
index b597adb..86d2616 100644
--- a/lang/js/README
+++ b/lang/js/README
@@ -3,50 +3,80 @@ of gnupg in browsers, with the help of nativeMessaging.
 
 Installation
 -------------
-gpgmejs uses webpack, and thus depends on nodejs for building. Webpack can be
-installed by running
-`npm install webpack webpack-cli --save-dev`.
+gpgmejs uses webpack, and thus depends on nodejs for building. All dependencies
+will be installed (in a local subdirectory) with the command `npm install`.
 
 To create a current version of the package, the command is
 `npx webpack --config webpack.conf.js`.
 If you want a more debuggable (i.e. not minified) build, just change the mode
 in webpack.conf.js.
 
-Demo WebExtension:
-As soon as a bundled webpack is in dist/
-the gpgmejs folder can just be included in the extensions tab of the browser in
-questions (extension debug mode needs to be active). For chrome, selecting the
-folder is sufficient, for firefox, the manifest.json needs to be selected.
+Demo and Test WebExtension:
+---------------------------
+
+The Demo Extension shows simple examples of the usage of gpgmejs.
+
+The BrowsertestExtension runs more intensive tests (using the mocha and chai
+frameworks). Tests from BrowserTestExtension/tests will be run against the
+gpgmejs.bundle.js itself. They aim to test the outward facing functionality
+and API.
+
+Unittests as defined in ./unittests.js will be bundled in
+gpgmejs_unittests.bundle.js, and test the separate components of gpgmejs,
+which mostly are not exported.
+
+. The file `build_extension.sh` may serve as a pointer on how to
+build and assemble these two Extensions and their dependencies. It can directly
+be used in most linux systems.
+
+The resulting folders can just be included in the extensions tab of the browser
+in questions (extension debug mode needs to be active). For chrome, selecting
+the folder is sufficient, for firefox, the manifest.json needs to be selected.
 Please note that it is just for demonstration/debug purposes!
 
+For the Extensions to successfully communicate with gpgme-json, a manifest file
+is needed.
+
+- `~/.config/chromium/NativeMessagingHosts/gpgmejson.json`
+
 In the browsers' nativeMessaging configuration folder a file 'gpgmejs.json'
 is needed, with the following content:
 
-(The path to the native app gpgme-json may need adaption)
-
-Chromium:
-~/.config/chromium/NativeMessagingHosts/gpgmejson.json
-
-{
-  "name": "gpgmejson",
-  "description": "This is a test application for gpgmejs",
-  "path": "/usr/bin/gpgme-json",
-  "type": "stdio",
-  "allowed_origins": ["chrome-extension://ExtensionIdentifier/"]
-}
-The ExtensionIdentifier can be seen on the chrome://extensions page, and
-changes on each reinstallation. Note the slashes in allowed_origins.
-
-
-Firefox:
-~/.mozilla/native-messaging-hosts/gpgmejson.json
-{
-  "name": "gpgmejson",
-  "description": "This is a test application for gpgmejs",
-  "path": "/usr/bin/gpgme-json",
-  "type": "stdio",
-  "allowed_extensions": ["ExtensionIdentifier@temporary-addon"]
-}
-The ExtensionIdentifier can be seen as Extension ID on the about:addons page if
-addon-debugging is active. In firefox, the temporary addon is removed once
-firefox exits, and the identifier will need to be changed more often.
+- For Chrome/Chromium:
+  ```
+  {
+    "name": "gpgmejson",
+    "description": "This is a test application for gpgmejs",
+    "path": "/usr/bin/gpgme-json",
+    "type": "stdio",
+    "allowed_origins": ["chrome-extension://ExtensionIdentifier/"]
+  }
+  ```
+  The usual path for Linux is similar to:
+  `~/.config/chromium/NativeMessagingHosts/gpgmejson.json` for
+  For Windows, the path to the manifest needs to be placed in
+  `HKEY_LOCAL_MACHINE\SOFTWARE\Google\Chrome\NativeMessagingHosts\gpgmejson`
+
+  - For firefox:
+  ```
+  {
+    "name": "gpgmejson",
+    "description": "This is a test application for gpgmejs",
+    "path": "/usr/bin/gpgme-json",
+    "type": "stdio",
+    "allowed_extensions": ["ExtensionIdentifier@temporary-addon"]
+  }
+  ```
+
+  The ExtensionIdentifier can be seen as Extension ID on the about:addons page
+  if addon-debugging is active. In firefox, the temporary addon is removed once
+  firefox exits, and the identifier will need to be changed more often.
+
+  The manifest for linux is usually placed at:
+    `~/.mozilla/native-messaging-hosts/gpgmejson.json`
+
+Documentation
+-------------
+
+The documentation can be built by jsdoc. It currently uses the command
+`./node_modules/.bin/jsdoc -c jsdoc.conf`.
diff --git a/lang/js/README_testing b/lang/js/README_testing
deleted file mode 100644
index b61ca1a..0000000
--- a/lang/js/README_testing
+++ /dev/null
@@ -1,14 +0,0 @@
-Test extension:
-
-The test extension contains tests with mocha and chai. It will be packed as an
-extra extension (see build_extension.sh).
-
-Tests from BrowserTestExtension/tests will be run against the gpgmejs.bundle.js
-itself. They aim to test the outward facing functionality and API.
-
-Unittests as defined in ./unittests.js will be bundled in
-gpgmejs_unittests.bundle.js, and test the separate components of gpgmejs,
-which mostly are not exported.
-
-The BrowserExtension can be installed the same way as the DemoExtension
-(see README).
\ No newline at end of file
diff --git a/lang/js/jsdoc.conf b/lang/js/jsdoc.conf
new file mode 100644
index 0000000..12ae35e
--- /dev/null
+++ b/lang/js/jsdoc.conf
@@ -0,0 +1,24 @@
+{
+    "tags": {
+        "allowUnknownTags": false,
+        "dictionaries": ["jsdoc"]
+    },
+    "source": {
+        "include": ["./src"],
+        "includePattern": ".+\\.js(doc|x)?$",
+        "excludePattern": "(^|\\/|\\\\)_"
+    },
+    "opts":{
+        "destination": "./doc/",
+        "recurse": true
+    },
+    "sourceType": "module",
+    "plugins": [],
+    "templates": {
+        "cleverLinks": false,
+        "monospaceLinks": false,
+        "default": {
+            "outputSourceFiles": true
+        }
+    }
+}
\ No newline at end of file
diff --git a/lang/js/package.json b/lang/js/package.json
index acf8911..54af298 100644
--- a/lang/js/package.json
+++ b/lang/js/package.json
@@ -6,11 +6,12 @@
   "private": true,
   "keywords": [],
   "author": "",
-  "license": "",
+  "license": "LGPL-2.1+",
   "devDependencies": {
     "webpack": "^4.5.0",
-    "webpack-cli": "^2.0.14",
+    "webpack-cli": "^3.0.8",
     "chai": "^4.1.2",
-    "mocha": "^5.1.1"
+    "mocha": "^5.1.1",
+    "jsdoc": "^3.5.5"
   }
 }
diff --git a/lang/js/src/Connection.js b/lang/js/src/Connection.js
index f399b22..945932e 100644
--- a/lang/js/src/Connection.js
+++ b/lang/js/src/Connection.js
@@ -40,9 +40,10 @@ export class Connection{
      * Retrieves the information about the backend.
      * @param {Boolean} details (optional) If set to false, the promise will
      *  just return a connection status
-     * @returns {Promise<Object>}
-     *      {String} The property 'gpgme': Version number of gpgme
-     *      {Array<Object>} 'info' Further information about the backends.
+     * @returns {Promise<Object>} result
+     * @returns {String} result.gpgme Version number of gpgme
+     * @returns {Array<Object>} result.info Further information about the
+     * backends.
      *      Example:
      *          "protocol":     "OpenPGP",
      *          "fname":        "/usr/bin/gpg",
diff --git a/lang/js/src/Keyring.js b/lang/js/src/Keyring.js
index 0d7643f..358757b 100644
--- a/lang/js/src/Keyring.js
+++ b/lang/js/src/Keyring.js
@@ -110,10 +110,10 @@ export class GPGME_Keyring {
      * contains a secret key.
      * @returns {Promise<GPGME_Key>}
      *
-     * @async
+     *
      * TODO: getHasSecret always returns false at this moment, so this fucntion
      * still does not fully work as intended.
-     *
+     * * @async
      */
     getDefaultKey() {
         let me = this;
@@ -283,7 +283,7 @@ export class GPGME_Keyring {
      * @param {Date} expires (optional) Expiration date. If not set, expiration
      * will be set to 'never'
      *
-     * @returns{Promise<Key>}
+     * @return {Promise<Key>}
      */
     generateKey(userId, algo = 'default', expires){
         if (
diff --git a/lang/js/webpack.conf.js b/lang/js/webpack.conf.js
index b2ad909..19f3bbd 100644
--- a/lang/js/webpack.conf.js
+++ b/lang/js/webpack.conf.js
@@ -19,17 +19,18 @@
  *
  * This is the configuration file for building the gpgmejs-Library with webpack
  */
+/* global require, module, __dirname */
 const path = require('path');
 
 module.exports = {
-  entry: './src/index.js',
-  // mode: 'development',
-  mode: 'production',
-  output: {
-    path: path.resolve(__dirname, 'build'),
-    filename: 'gpgmejs.bundle.js',
-    libraryTarget: 'var',
-    libraryExport: 'default',
-    library: 'Gpgmejs'
-  }
+    entry: './src/index.js',
+    // mode: 'development',
+    mode: 'production',
+    output: {
+        path: path.resolve(__dirname, 'build'),
+        filename: 'gpgmejs.bundle.js',
+        libraryTarget: 'var',
+        libraryExport: 'default',
+        library: 'Gpgmejs'
+    }
 };
diff --git a/lang/js/webpack.conf_unittests.js b/lang/js/webpack.conf_unittests.js
index 4b903be..c3c87f3 100644
--- a/lang/js/webpack.conf_unittests.js
+++ b/lang/js/webpack.conf_unittests.js
@@ -19,16 +19,18 @@
  *
  * This is the configuration file for building the gpgmejs-Library with webpack
  */
+/* global require, module, __dirname */
+
 const path = require('path');
 
 module.exports = {
-  entry: './unittests.js',
-  mode: 'production',
-  output: {
-    path: path.resolve(__dirname, 'build'),
-    filename: 'gpgmejs_unittests.bundle.js',
-    libraryTarget: 'var',
-    libraryExport: 'default',
-    library: 'Gpgmejs_test'
-  }
+    entry: './unittests.js',
+    mode: 'production',
+    output: {
+        path: path.resolve(__dirname, 'build'),
+        filename: 'gpgmejs_unittests.bundle.js',
+        libraryTarget: 'var',
+        libraryExport: 'default',
+        library: 'Gpgmejs_test'
+    }
 };

-----------------------------------------------------------------------

Summary of changes:
 lang/js/README                    | 102 ++++++++++++++++++++++++--------------
 lang/js/README_testing            |  14 ------
 lang/js/jsdoc.conf                |  24 +++++++++
 lang/js/package.json              |   7 +--
 lang/js/src/Connection.js         |   7 +--
 lang/js/src/Keyring.js            |   6 +--
 lang/js/webpack.conf.js           |  21 ++++----
 lang/js/webpack.conf_unittests.js |  20 ++++----
 8 files changed, 123 insertions(+), 78 deletions(-)
 delete mode 100644 lang/js/README_testing
 create mode 100644 lang/js/jsdoc.conf


hooks/post-receive
-- 
GnuPG Made Easy
http://git.gnupg.org
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.