Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[mdmbl-dev] OpenMDM web broken as of 10-16-2017 because of version ranges/tracking versions

Then there's also this issue as of now:

Since the package.json in the web client also uses 'tracking' versions or 'the caret notation', it seems that the client is as of now broken because of some new versions of dependencies (it's quite hard to find what broke it):

"dependencies": {
    "@angular/common": "^2.4.8",
    "@angular/compiler": "^2.4.8",
    "@angular/core": "^2.4.8",
    "@angular/forms": "^2.4.8"
(...)
    "reflect-metadata": "^0.1.3",
    "rxjs": "^5.1.0",
    "ts-helpers": "^1.1.1",
    "zone.js": "^0.7.6"
  }

This is basically as good as telling npm: Take anything you can find on the internet and try to run the build with it.

If I now (October 16. 2017, 16:45) run the npm build from a clean state and then create a list of all dependencies I end up with the following output (please see the attached text files).
Interestingly enough, there is also errors printed to stderr, but the build still succeeds.

As a matter of fact, if one then navigates to the webapp deployed in glassfish, after login you simply see this:

    Loading....

Anyone have any hints on how to fix it or what broke it?
It's going to be hard to track down because of the unspecified versions... 

Cheers,
Silvio

npm ERR! extraneous: npm@3.10.10 /Users/kungfoo/Repositories/openmdm-web-docker/org.eclipse.mdm.nucleus/org.eclipse.mdm.application/build/node/node_modules/npm
npm ERR! missing: @angular/common@2.4.3, required by ng2-dropdown-multiselect@1.1.1
npm ERR! missing: @angular/compiler@2.4.3, required by ng2-dropdown-multiselect@1.1.1
npm ERR! missing: @angular/core@2.4.3, required by ng2-dropdown-multiselect@1.1.1
npm ERR! missing: @angular/forms@2.4.3, required by ng2-dropdown-multiselect@1.1.1
npm ERR! missing: rxjs@5.0.1, required by ng2-dropdown-multiselect@1.1.1
:org.eclipse.mdm.application:nodeSetup
:org.eclipse.mdm.application:npmDeps
openMDM-Web@1.0.0 /Users/kungfoo/Repositories/openmdm-web-docker/org.eclipse.mdm.nucleus/org.eclipse.mdm.application/build/node
├─┬ @angular/cli@1.4.7
│ ├─┬ @angular-devkit/build-optimizer@0.0.27
│ │ ├─┬ loader-utils@1.1.0
│ │ │ ├── big.js@3.2.0
│ │ │ └── emojis-list@2.1.0
│ │ ├── typescript@2.5.3
│ │ └── webpack-sources@1.0.1
│ ├─┬ @angular-devkit/schematics@0.0.33
│ │ └── @angular-devkit/core@0.0.20
│ ├── @ngtools/json-schema@1.1.0
│ ├─┬ @ngtools/webpack@1.7.4
│ │ ├── enhanced-resolve@3.4.1
│ │ └─┬ magic-string@0.22.4
│ │   └── vlq@0.2.3
│ ├── @schematics/angular@0.0.45
│ ├─┬ autoprefixer@6.7.7
│ │ ├─┬ browserslist@1.7.7
│ │ │ └── electron-to-chromium@1.3.26
│ │ ├── caniuse-db@1.0.30000746
│ │ ├── normalize-range@0.1.2
│ │ ├── num2fraction@1.2.2
│ │ ├─┬ postcss@5.2.18
│ │ │ └─┬ chalk@1.1.3
│ │ │   └── supports-color@2.0.0
│ │ └── postcss-value-parser@3.3.0
│ ├─┬ chalk@2.1.0
│ │ ├─┬ ansi-styles@3.2.0
│ │ │ └─┬ color-convert@1.9.0
│ │ │   └── color-name@1.1.3
│ │ ├── escape-string-regexp@1.0.5
│ │ └─┬ supports-color@4.4.0
│ │   └── has-flag@2.0.0
│ ├── circular-dependency-plugin@3.0.0
│ ├─┬ common-tags@1.4.0
│ │ └─┬ babel-runtime@6.26.0
│ │   └── regenerator-runtime@0.11.0
│ ├─┬ copy-webpack-plugin@4.1.1
│ │ ├─┬ is-glob@4.0.0
│ │ │ └── is-extglob@2.1.1
│ │ ├── loader-utils@0.2.17
│ │ └── node-dir@0.1.17
│ ├── core-object@3.1.5
│ ├─┬ css-loader@0.28.7
│ │ ├─┬ icss-utils@2.1.0
│ │ │ └─┬ postcss@6.0.13
│ │ │   ├── source-map@0.6.1
│ │ │   └─┬ supports-color@4.4.0
│ │ │     └── has-flag@2.0.0
│ │ ├── lodash.camelcase@4.3.0
│ │ ├── object-assign@4.1.1
│ │ ├─┬ postcss-modules-extract-imports@1.1.0
│ │ │ └─┬ postcss@6.0.13
│ │ │   ├── source-map@0.6.1
│ │ │   └─┬ supports-color@4.4.0
│ │ │     └── has-flag@2.0.0
│ │ ├─┬ postcss-modules-local-by-default@1.2.0
│ │ │ └─┬ postcss@6.0.13
│ │ │   ├── source-map@0.6.1
│ │ │   └─┬ supports-color@4.4.0
│ │ │     └── has-flag@2.0.0
│ │ ├─┬ postcss-modules-scope@1.1.0
│ │ │ └─┬ postcss@6.0.13
│ │ │   ├── source-map@0.6.1
│ │ │   └─┬ supports-color@4.4.0
│ │ │     └── has-flag@2.0.0
│ │ ├─┬ postcss-modules-values@1.3.0
│ │ │ ├── icss-replace-symbols@1.1.0
│ │ │ └─┬ postcss@6.0.13
│ │ │   ├── source-map@0.6.1
│ │ │   └─┬ supports-color@4.4.0
│ │ │     └── has-flag@2.0.0
│ │ └── source-list-map@2.0.0
│ ├─┬ cssnano@3.10.0
│ │ ├── decamelize@1.2.0
│ │ ├── defined@1.0.0
│ │ ├─┬ has@1.0.1
│ │ │ └── function-bind@1.1.1
│ │ ├─┬ postcss-calc@5.3.1
│ │ │ ├── postcss-message-helpers@2.0.0
│ │ │ └─┬ reduce-css-calc@1.3.0
│ │ │   ├── balanced-match@0.4.2
│ │ │   ├── math-expression-evaluator@1.2.17
│ │ │   └─┬ reduce-function-call@1.0.2
│ │ │     └── balanced-match@0.4.2
│ │ ├─┬ postcss-colormin@2.2.2
│ │ │ └─┬ colormin@1.1.2
│ │ │   ├─┬ color@0.11.4
│ │ │   │ ├── clone@1.0.2
│ │ │   │ └── color-string@0.3.0
│ │ │   └── css-color-names@0.0.4
│ │ ├── postcss-convert-values@2.6.1
│ │ ├── postcss-discard-comments@2.0.4
│ │ ├── postcss-discard-duplicates@2.1.0
│ │ ├── postcss-discard-empty@2.1.0
│ │ ├── postcss-discard-overridden@0.1.1
│ │ ├─┬ postcss-discard-unused@2.2.3
│ │ │ └── uniqs@2.0.0
│ │ ├─┬ postcss-filter-plugins@2.0.2
│ │ │ └─┬ uniqid@4.1.1
│ │ │   └── macaddress@0.2.8
│ │ ├── postcss-merge-idents@2.1.7
│ │ ├── postcss-merge-longhand@2.0.2
│ │ ├─┬ postcss-merge-rules@2.1.2
│ │ │ ├─┬ caniuse-api@1.6.1
│ │ │ │ ├── lodash.memoize@4.1.2
│ │ │ │ └── lodash.uniq@4.5.0
│ │ │ ├─┬ postcss-selector-parser@2.2.3
│ │ │ │ ├── flatten@1.0.2
│ │ │ │ ├── indexes-of@1.0.1
│ │ │ │ └── uniq@1.0.1
│ │ │ └── vendors@1.0.1
│ │ ├── postcss-minify-font-values@1.0.5
│ │ ├── postcss-minify-gradients@1.0.5
│ │ ├─┬ postcss-minify-params@1.2.2
│ │ │ └── alphanum-sort@1.0.2
│ │ ├── postcss-minify-selectors@2.1.1
│ │ ├── postcss-normalize-charset@1.1.1
│ │ ├─┬ postcss-normalize-url@3.0.8
│ │ │ ├── is-absolute-url@2.1.0
│ │ │ └─┬ normalize-url@1.9.1
│ │ │   ├── prepend-http@1.0.4
│ │ │   ├─┬ query-string@4.3.4
│ │ │   │ └── strict-uri-encode@1.1.0
│ │ │   └─┬ sort-keys@1.1.2
│ │ │     └── is-plain-obj@1.1.0
│ │ ├── postcss-ordered-values@2.2.3
│ │ ├── postcss-reduce-idents@2.4.0
│ │ ├── postcss-reduce-initial@1.0.1
│ │ ├── postcss-reduce-transforms@1.0.4
│ │ ├─┬ postcss-svgo@2.1.6
│ │ │ ├─┬ is-svg@2.1.0
│ │ │ │ └── html-comment-regex@1.1.1
│ │ │ └─┬ svgo@0.7.2
│ │ │   ├─┬ coa@1.0.4
│ │ │   │ └── q@1.5.0
│ │ │   ├─┬ csso@2.3.2
│ │ │   │ └─┬ clap@1.2.3
│ │ │   │   └─┬ chalk@1.1.3
│ │ │   │     └── supports-color@2.0.0
│ │ │   └── whet.extend@0.9.9
│ │ ├── postcss-unique-selectors@2.0.2
│ │ └── postcss-zindex@2.2.0
│ ├── denodeify@1.2.1
│ ├── ember-cli-string-utils@1.1.0
│ ├── exports-loader@0.6.4
│ ├─┬ extract-text-webpack-plugin@3.0.0
│ │ ├── async@2.5.0
│ │ └── schema-utils@0.3.0
│ ├── file-loader@0.10.1
│ ├─┬ fs-extra@4.0.2
│ │ ├── jsonfile@4.0.0
│ │ └── universalify@0.1.1
│ ├─┬ glob@7.1.2
│ │ ├── fs.realpath@1.0.0
│ │ ├─┬ inflight@1.0.6
│ │ │ └── wrappy@1.0.2
│ │ ├── inherits@2.0.3
│ │ ├── once@1.4.0
│ │ └── path-is-absolute@1.0.1
│ ├─┬ html-webpack-plugin@2.30.1
│ │ ├─┬ html-minifier@3.5.5
│ │ │ ├─┬ camel-case@3.0.0
│ │ │ │ ├─┬ no-case@2.3.2
│ │ │ │ │ └── lower-case@1.1.4
│ │ │ │ └── upper-case@1.1.3
│ │ │ ├── clean-css@4.1.9
│ │ │ ├── commander@2.11.0
│ │ │ ├── he@1.1.1
│ │ │ ├─┬ ncname@1.0.0
│ │ │ │ └── xml-char-classes@1.0.0
│ │ │ ├── param-case@2.1.1
│ │ │ ├── relateurl@0.2.7
│ │ │ └─┬ uglify-js@3.1.4
│ │ │   └── source-map@0.6.1
│ │ ├── loader-utils@0.2.17
│ │ ├─┬ pretty-error@2.1.1
│ │ │ ├─┬ renderkid@2.0.1
│ │ │ │ ├─┬ css-select@1.2.0
│ │ │ │ │ ├── boolbase@1.0.0
│ │ │ │ │ ├── css-what@2.1.0
│ │ │ │ │ ├─┬ domutils@1.5.1
│ │ │ │ │ │ └─┬ dom-serializer@0.1.0
│ │ │ │ │ │   ├── domelementtype@1.1.3
│ │ │ │ │ │   └── entities@1.1.1
│ │ │ │ │ └── nth-check@1.0.1
│ │ │ │ ├─┬ dom-converter@0.1.4
│ │ │ │ │ └── utila@0.3.3
│ │ │ │ ├─┬ htmlparser2@3.3.0
│ │ │ │ │ ├── domelementtype@1.3.0
│ │ │ │ │ ├── domhandler@2.1.0
│ │ │ │ │ ├── domutils@1.1.6
│ │ │ │ │ └─┬ readable-stream@1.0.34
│ │ │ │ │   ├── isarray@0.0.1
│ │ │ │ │   └── string_decoder@0.10.31
│ │ │ │ └── utila@0.3.3
│ │ │ └── utila@0.4.0
│ │ └── toposort@1.0.6
│ ├─┬ istanbul-instrumenter-loader@2.0.0
│ │ ├── convert-source-map@1.5.0
│ │ ├─┬ istanbul-lib-instrument@1.8.0
│ │ │ ├─┬ babel-generator@6.26.0
│ │ │ │ ├── babel-messages@6.23.0
│ │ │ │ ├── detect-indent@4.0.0
│ │ │ │ ├── jsesc@1.3.0
│ │ │ │ └── trim-right@1.0.1
│ │ │ ├── babel-template@6.26.0
│ │ │ ├─┬ babel-traverse@6.26.0
│ │ │ │ ├── globals@9.18.0
│ │ │ │ └─┬ invariant@2.2.2
│ │ │ │   └── loose-envify@1.3.1
│ │ │ ├─┬ babel-types@6.26.0
│ │ │ │ └── to-fast-properties@1.0.3
│ │ │ └── babylon@6.18.0
│ │ └── loader-utils@0.2.17
│ ├── karma-source-map-support@1.2.0
│ ├─┬ less@2.7.2
│ │ ├─┬ errno@0.1.4
│ │ │ └── prr@0.0.0
│ │ ├── image-size@0.5.5
│ │ ├─┬ promise@7.3.1
│ │ │ └── asap@2.0.6
│ │ └─┬ request@2.83.0
│ │   ├── aws-sign2@0.7.0
│ │   ├── aws4@1.6.0
│ │   ├── caseless@0.12.0
│ │   ├─┬ combined-stream@1.0.5
│ │   │ └── delayed-stream@1.0.0
│ │   ├── forever-agent@0.6.1
│ │   ├─┬ form-data@2.3.1
│ │   │ └── asynckit@0.4.0
│ │   ├─┬ har-validator@5.0.3
│ │   │ └── har-schema@2.0.0
│ │   ├─┬ hawk@6.0.2
│ │   │ ├── boom@4.3.1
│ │   │ ├─┬ cryptiles@3.1.2
│ │   │ │ └── boom@5.2.0
│ │   │ ├── hoek@4.2.0
│ │   │ └── sntp@2.0.2
│ │   ├─┬ http-signature@1.2.0
│ │   │ ├── assert-plus@1.0.0
│ │   │ ├─┬ jsprim@1.4.1
│ │   │ │ ├── extsprintf@1.3.0
│ │   │ │ ├── json-schema@0.2.3
│ │   │ │ └── verror@1.10.0
│ │   │ └─┬ sshpk@1.13.1
│ │   │   ├── asn1@0.2.3
│ │   │   ├── bcrypt-pbkdf@1.0.1
│ │   │   ├── dashdash@1.14.1
│ │   │   ├── ecc-jsbn@0.1.1
│ │   │   ├── getpass@0.1.7
│ │   │   ├── jsbn@0.1.1
│ │   │   └── tweetnacl@0.14.5
│ │   ├── is-typedarray@1.0.0
│ │   ├── isstream@0.1.2
│ │   ├── json-stringify-safe@5.0.1
│ │   ├─┬ mime-types@2.1.17
│ │   │ └── mime-db@1.30.0
│ │   ├── oauth-sign@0.8.2
│ │   ├── performance-now@2.1.0
│ │   ├── stringstream@0.0.5
│ │   ├── tough-cookie@2.3.3
│ │   ├── tunnel-agent@0.6.0
│ │   └── uuid@3.1.0
│ ├─┬ less-loader@4.0.5
│ │ ├── clone@2.1.1
│ │ └── pify@2.3.0
│ ├─┬ license-webpack-plugin@1.1.0
│ │ └── ejs@2.5.7
│ ├── lodash@4.17.4
│ ├─┬ memory-fs@0.4.1
│ │ └─┬ readable-stream@2.3.3
│ │   ├── core-util-is@1.0.2
│ │   ├── isarray@1.0.0
│ │   ├── process-nextick-args@1.0.7
│ │   ├── string_decoder@1.0.3
│ │   └── util-deprecate@1.0.2
│ ├── node-modules-path@1.0.1
│ ├─┬ node-sass@4.5.3
│ │ ├── async-foreach@0.1.3
│ │ ├─┬ chalk@1.1.3
│ │ │ └── supports-color@2.0.0
│ │ ├─┬ cross-spawn@3.0.1
│ │ │ └─┬ lru-cache@4.1.1
│ │ │   ├── pseudomap@1.0.2
│ │ │   └── yallist@2.1.2
│ │ ├─┬ gaze@1.1.2
│ │ │ └── globule@1.2.0
│ │ ├── get-stdin@4.0.1
│ │ ├── in-publish@2.0.0
│ │ ├── lodash.assign@4.2.0
│ │ ├── lodash.clonedeep@4.5.0
│ │ ├── lodash.mergewith@4.6.0
│ │ ├─┬ meow@3.7.0
│ │ │ ├── camelcase-keys@2.1.0
│ │ │ ├─┬ loud-rejection@1.6.0
│ │ │ │ ├─┬ currently-unhandled@0.4.1
│ │ │ │ │ └── array-find-index@1.0.2
│ │ │ │ └── signal-exit@3.0.2
│ │ │ ├── map-obj@1.0.1
│ │ │ ├─┬ normalize-package-data@2.4.0
│ │ │ │ ├── hosted-git-info@2.5.0
│ │ │ │ ├─┬ is-builtin-module@1.0.0
│ │ │ │ │ └── builtin-modules@1.1.1
│ │ │ │ └─┬ validate-npm-package-license@3.0.1
│ │ │ │   ├─┬ spdx-correct@1.0.2
│ │ │ │   │ └── spdx-license-ids@1.2.2
│ │ │ │   └── spdx-expression-parse@1.0.4
│ │ │ ├─┬ read-pkg-up@1.0.1
│ │ │ │ ├─┬ find-up@1.1.2
│ │ │ │ │ └── path-exists@2.1.0
│ │ │ │ └─┬ read-pkg@1.1.0
│ │ │ │   ├── load-json-file@1.1.0
│ │ │ │   └── path-type@1.1.0
│ │ │ ├─┬ redent@1.0.0
│ │ │ │ ├── indent-string@2.1.0
│ │ │ │ └── strip-indent@1.0.1
│ │ │ └── trim-newlines@1.0.0
│ │ ├── nan@2.7.0
│ │ ├─┬ node-gyp@3.6.2
│ │ │ ├── fstream@1.0.11
│ │ │ ├── nopt@3.0.6
│ │ │ ├── semver@5.3.0
│ │ │ └─┬ tar@2.2.1
│ │ │   └── block-stream@0.0.9
│ │ ├─┬ npmlog@4.1.2
│ │ │ ├─┬ are-we-there-yet@1.1.4
│ │ │ │ └── delegates@1.0.0
│ │ │ ├── console-control-strings@1.1.0
│ │ │ ├─┬ gauge@2.7.4
│ │ │ │ ├── aproba@1.2.0
│ │ │ │ ├── has-unicode@2.0.1
│ │ │ │ └── wide-align@1.1.2
│ │ │ └── set-blocking@2.0.0
│ │ ├─┬ sass-graph@2.2.4
│ │ │ ├─┬ scss-tokenizer@0.2.3
│ │ │ │ └── source-map@0.4.4
│ │ │ └─┬ yargs@7.1.0
│ │ │   ├── camelcase@3.0.0
│ │ │   └─┬ yargs-parser@5.0.0
│ │ │     └── camelcase@3.0.0
│ │ └── stdout-stream@1.4.0
│ ├─┬ nopt@4.0.1
│ │ ├── abbrev@1.1.1
│ │ └─┬ osenv@0.1.4
│ │   └── os-homedir@1.0.2
│ ├─┬ opn@5.1.0
│ │ └── is-wsl@1.1.0
│ ├─┬ portfinder@1.0.13
│ │ ├── async@1.5.2
│ │ └─┬ debug@2.6.9
│ │   └── ms@2.0.0
│ ├─┬ postcss-loader@1.3.3
│ │ └─┬ postcss-load-config@1.2.0
│ │   ├─┬ cosmiconfig@2.2.2
│ │   │ ├── is-directory@0.3.1
│ │   │ └── require-from-string@1.2.1
│ │   ├── postcss-load-options@1.2.0
│ │   └── postcss-load-plugins@2.3.0
│ ├─┬ postcss-url@5.1.2
│ │ ├─┬ directory-encoder@0.7.2
│ │ │ ├─┬ fs-extra@0.23.1
│ │ │ │ └── jsonfile@2.4.0
│ │ │ ├─┬ handlebars@1.3.0
│ │ │ │ ├── optimist@0.3.7
│ │ │ │ └─┬ uglify-js@2.3.6
│ │ │ │   ├── async@0.2.10
│ │ │ │   └── source-map@0.1.43
│ │ │ └─┬ img-stats@0.5.2
│ │ │   └── xmldom@0.1.27
│ │ └── js-base64@2.3.2
│ ├── raw-loader@0.5.1
│ ├─┬ resolve@1.4.0
│ │ └── path-parse@1.0.5
│ ├─┬ sass-loader@6.0.6
│ │ ├─┬ clone-deep@0.3.0
│ │ │ ├─┬ for-own@1.0.0
│ │ │ │ └── for-in@1.0.2
│ │ │ ├─┬ is-plain-object@2.0.4
│ │ │ │ └── isobject@3.0.1
│ │ │ ├── kind-of@3.2.2
│ │ │ └─┬ shallow-clone@0.1.2
│ │ │   ├── is-extendable@0.1.1
│ │ │   ├── kind-of@2.0.1
│ │ │   ├── lazy-cache@0.2.7
│ │ │   └─┬ mixin-object@2.0.1
│ │ │     └── for-in@0.1.8
│ │ ├── lodash.tail@4.1.1
│ │ └── pify@3.0.0
│ ├── semver@5.4.1
│ ├── silent-error@1.1.0
│ ├─┬ source-map-loader@0.2.2
│ │ ├── async@0.9.2
│ │ ├── loader-utils@0.2.17
│ │ └─┬ source-map@0.1.43
│ │   └── amdefine@1.0.1
│ ├── source-map-support@0.4.18
│ ├── style-loader@0.13.2
│ ├─┬ stylus@0.54.5
│ │ ├── css-parse@1.7.0
│ │ ├── glob@7.0.6
│ │ ├── sax@0.5.8
│ │ └── source-map@0.1.43
│ ├─┬ stylus-loader@3.0.1
│ │ └── when@3.6.4
│ ├── url-loader@0.6.2
│ ├─┬ webpack@3.6.0
│ │ ├── acorn@5.1.2
│ │ ├─┬ acorn-dynamic-import@2.0.2
│ │ │ └── acorn@4.0.13
│ │ ├─┬ ajv@5.2.3
│ │ │ ├── co@4.6.0
│ │ │ ├── fast-deep-equal@1.0.0
│ │ │ ├── json-schema-traverse@0.3.1
│ │ │ └─┬ json-stable-stringify@1.0.1
│ │ │   └── jsonify@0.0.0
│ │ ├── ajv-keywords@2.1.0
│ │ ├─┬ escope@3.6.0
│ │ │ ├─┬ es6-map@0.1.5
│ │ │ │ ├── d@1.0.0
│ │ │ │ ├── es5-ext@0.10.35
│ │ │ │ ├── es6-iterator@2.0.1
│ │ │ │ ├── es6-set@0.1.5
│ │ │ │ ├── es6-symbol@3.1.1
│ │ │ │ └── event-emitter@0.3.5
│ │ │ ├── es6-weak-map@2.0.2
│ │ │ ├── esrecurse@4.2.0
│ │ │ └── estraverse@4.2.0
│ │ ├── interpret@1.0.4
│ │ ├── json-loader@0.5.7
│ │ ├── json5@0.5.1
│ │ ├── loader-runner@2.3.0
│ │ ├─┬ node-libs-browser@2.0.0
│ │ │ ├── assert@1.4.1
│ │ │ ├─┬ browserify-zlib@0.1.4
│ │ │ │ └── pako@0.2.9
│ │ │ ├─┬ buffer@4.9.1
│ │ │ │ ├── base64-js@1.2.1
│ │ │ │ └── ieee754@1.1.8
│ │ │ ├─┬ console-browserify@1.1.0
│ │ │ │ └── date-now@0.1.4
│ │ │ ├── constants-browserify@1.0.0
│ │ │ ├─┬ crypto-browserify@3.11.1
│ │ │ │ ├─┬ browserify-cipher@1.0.0
│ │ │ │ │ ├─┬ browserify-aes@1.1.0
│ │ │ │ │ │ └── buffer-xor@1.0.3
│ │ │ │ │ ├─┬ browserify-des@1.0.0
│ │ │ │ │ │ └── des.js@1.0.0
│ │ │ │ │ └─┬ evp_bytestokey@1.0.3
│ │ │ │ │   └─┬ md5.js@1.3.4
│ │ │ │ │     └── hash-base@3.0.4
│ │ │ │ ├─┬ browserify-sign@4.0.4
│ │ │ │ │ ├── bn.js@4.11.8
│ │ │ │ │ ├── browserify-rsa@4.0.1
│ │ │ │ │ ├─┬ elliptic@6.4.0
│ │ │ │ │ │ ├── brorand@1.1.0
│ │ │ │ │ │ ├── hash.js@1.1.3
│ │ │ │ │ │ ├── hmac-drbg@1.0.1
│ │ │ │ │ │ └── minimalistic-crypto-utils@1.0.1
│ │ │ │ │ └─┬ parse-asn1@5.1.0
│ │ │ │ │   └── asn1.js@4.9.1
│ │ │ │ ├── create-ecdh@4.0.0
│ │ │ │ ├─┬ create-hash@1.1.3
│ │ │ │ │ ├── cipher-base@1.0.4
│ │ │ │ │ ├─┬ ripemd160@2.0.1
│ │ │ │ │ │ └── hash-base@2.0.2
│ │ │ │ │ └── sha.js@2.4.9
│ │ │ │ ├── create-hmac@1.1.6
│ │ │ │ ├─┬ diffie-hellman@5.0.2
│ │ │ │ │ └── miller-rabin@4.0.1
│ │ │ │ ├── pbkdf2@3.0.14
│ │ │ │ ├── public-encrypt@4.0.0
│ │ │ │ └── randombytes@2.0.5
│ │ │ ├── domain-browser@1.1.7
│ │ │ ├── events@1.1.1
│ │ │ ├── https-browserify@0.0.1
│ │ │ ├── os-browserify@0.2.1
│ │ │ ├── path-browserify@0.0.0
│ │ │ ├── process@0.11.10
│ │ │ ├── punycode@1.4.1
│ │ │ ├── querystring-es3@0.2.1
│ │ │ ├── stream-browserify@2.0.1
│ │ │ ├─┬ stream-http@2.7.2
│ │ │ │ ├── builtin-status-codes@3.0.0
│ │ │ │ └── to-arraybuffer@1.0.1
│ │ │ ├── string_decoder@0.10.31
│ │ │ ├─┬ timers-browserify@2.0.4
│ │ │ │ └── setimmediate@1.0.5
│ │ │ ├── tty-browserify@0.0.0
│ │ │ ├─┬ url@0.11.0
│ │ │ │ ├── punycode@1.3.2
│ │ │ │ └── querystring@0.2.0
│ │ │ ├─┬ util@0.10.3
│ │ │ │ └── inherits@2.0.1
│ │ │ └── vm-browserify@0.0.4
│ │ ├─┬ supports-color@4.4.0
│ │ │ └── has-flag@2.0.0
│ │ ├── tapable@0.2.8
│ │ ├─┬ uglifyjs-webpack-plugin@0.4.6
│ │ │ └─┬ uglify-js@2.8.29
│ │ │   └─┬ yargs@3.10.0
│ │ │     ├── camelcase@1.2.1
│ │ │     └─┬ cliui@2.1.0
│ │ │       └── wordwrap@0.0.2
│ │ ├── watchpack@1.4.0
│ │ └─┬ yargs@8.0.2
│ │   ├── camelcase@4.1.0
│ │   ├─┬ cliui@3.2.0
│ │   │ └── wrap-ansi@2.1.0
│ │   ├── get-caller-file@1.0.2
│ │   ├─┬ os-locale@2.1.0
│ │   │ ├─┬ execa@0.7.0
│ │   │ │ ├─┬ cross-spawn@5.1.0
│ │   │ │ │ └─┬ shebang-command@1.2.0
│ │   │ │ │   └── shebang-regex@1.0.0
│ │   │ │ ├── get-stream@3.0.0
│ │   │ │ ├─┬ npm-run-path@2.0.2
│ │   │ │ │ └── path-key@2.0.1
│ │   │ │ ├── p-finally@1.0.0
│ │   │ │ └── strip-eof@1.0.0
│ │   │ ├─┬ lcid@1.0.0
│ │   │ │ └── invert-kv@1.0.0
│ │   │ └─┬ mem@1.1.0
│ │   │   └── mimic-fn@1.1.0
│ │   ├─┬ read-pkg-up@2.0.0
│ │   │ ├─┬ find-up@2.1.0
│ │   │ │ └─┬ locate-path@2.0.0
│ │   │ │   ├─┬ p-locate@2.0.0
│ │   │ │   │ └── p-limit@1.1.0
│ │   │ │   └── path-exists@3.0.0
│ │   │ └─┬ read-pkg@2.0.0
│ │   │   ├─┬ load-json-file@2.0.0
│ │   │   │ └── strip-bom@3.0.0
│ │   │   └── path-type@2.0.0
│ │   ├── require-directory@2.1.1
│ │   ├── require-main-filename@1.0.1
│ │   ├─┬ string-width@2.1.1
│ │   │ ├── is-fullwidth-code-point@2.0.0
│ │   │ └─┬ strip-ansi@4.0.0
│ │   │   └── ansi-regex@3.0.0
│ │   ├── which-module@2.0.0
│ │   ├── y18n@3.2.1
│ │   └── yargs-parser@7.0.0
│ ├─┬ webpack-concat-plugin@1.4.0
│ │ ├─┬ md5@2.2.1
│ │ │ ├── charenc@0.0.2
│ │ │ ├── crypt@0.0.2
│ │ │ └── is-buffer@1.1.5
│ │ └─┬ uglify-js@2.8.29
│ │   ├── uglify-to-browserify@1.0.2
│ │   └─┬ yargs@3.10.0
│ │     ├── camelcase@1.2.1
│ │     ├─┬ cliui@2.1.0
│ │     │ ├─┬ center-align@0.1.3
│ │     │ │ ├─┬ align-text@0.1.4
│ │     │ │ │ ├── longest@1.0.1
│ │     │ │ │ └── repeat-string@1.6.1
│ │     │ │ └── lazy-cache@1.0.4
│ │     │ ├── right-align@0.1.3
│ │     │ └── wordwrap@0.0.2
│ │     └── window-size@0.1.0
│ ├─┬ webpack-dev-middleware@1.12.0
│ │ └── time-stamp@2.0.0
│ ├─┬ webpack-dev-server@2.7.1
│ │ ├── ansi-html@0.0.7
│ │ ├─┬ bonjour@3.5.0
│ │ │ ├── array-flatten@2.1.1
│ │ │ ├── deep-equal@1.0.1
│ │ │ ├── dns-equal@1.0.0
│ │ │ ├─┬ dns-txt@2.0.2
│ │ │ │ └── buffer-indexof@1.1.1
│ │ │ ├─┬ multicast-dns@6.1.1
│ │ │ │ ├── dns-packet@1.2.2
│ │ │ │ └── thunky@0.1.0
│ │ │ └── multicast-dns-service-types@1.1.0
│ │ ├─┬ compression@1.7.1
│ │ │ ├─┬ accepts@1.3.4
│ │ │ │ └── negotiator@0.6.1
│ │ │ ├── compressible@2.0.11
│ │ │ ├── on-headers@1.0.1
│ │ │ └── vary@1.1.2
│ │ ├── connect-history-api-fallback@1.4.0
│ │ ├─┬ del@3.0.0
│ │ │ ├─┬ globby@6.1.0
│ │ │ │ └─┬ array-union@1.0.2
│ │ │ │   └── array-uniq@1.0.3
│ │ │ ├── is-path-cwd@1.0.0
│ │ │ ├─┬ is-path-in-cwd@1.0.0
│ │ │ │ └─┬ is-path-inside@1.0.0
│ │ │ │   └── path-is-inside@1.0.2
│ │ │ ├── p-map@1.2.0
│ │ │ └── pify@3.0.0
│ │ ├─┬ express@4.16.2
│ │ │ ├── array-flatten@1.1.1
│ │ │ ├── content-disposition@0.5.2
│ │ │ ├── cookie@0.3.1
│ │ │ ├── cookie-signature@1.0.6
│ │ │ ├── encodeurl@1.0.1
│ │ │ ├── escape-html@1.0.3
│ │ │ ├── etag@1.8.1
│ │ │ ├── finalhandler@1.1.0
│ │ │ ├── fresh@0.5.2
│ │ │ ├── merge-descriptors@1.0.1
│ │ │ ├── methods@1.1.2
│ │ │ ├── path-to-regexp@0.1.7
│ │ │ ├─┬ proxy-addr@2.0.2
│ │ │ │ ├── forwarded@0.1.2
│ │ │ │ └── ipaddr.js@1.5.2
│ │ │ ├─┬ send@0.16.1
│ │ │ │ └── destroy@1.0.4
│ │ │ ├── serve-static@1.13.1
│ │ │ ├── setprototypeof@1.1.0
│ │ │ └── statuses@1.3.1
│ │ ├── html-entities@1.2.1
│ │ ├─┬ http-proxy-middleware@0.17.4
│ │ │ ├── is-glob@3.1.0
│ │ │ └─┬ micromatch@2.3.11
│ │ │   ├─┬ arr-diff@2.0.0
│ │ │   │ └── arr-flatten@1.1.0
│ │ │   ├─┬ braces@1.8.5
│ │ │   │ ├─┬ expand-range@1.8.2
│ │ │   │ │ └─┬ fill-range@2.2.3
│ │ │   │ │   ├── is-number@2.1.0
│ │ │   │ │   ├── isobject@2.1.0
│ │ │   │ │   └─┬ randomatic@1.1.7
│ │ │   │ │     ├─┬ is-number@3.0.0
│ │ │   │ │     │ └── kind-of@3.2.2
│ │ │   │ │     └── kind-of@4.0.0
│ │ │   │ ├── preserve@0.2.0
│ │ │   │ └── repeat-element@1.1.2
│ │ │   ├─┬ expand-brackets@0.1.5
│ │ │   │ └── is-posix-bracket@0.1.1
│ │ │   ├─┬ extglob@0.3.2
│ │ │   │ └── is-extglob@1.0.0
│ │ │   ├── filename-regex@2.0.1
│ │ │   ├── is-extglob@1.0.0
│ │ │   ├── is-glob@2.0.1
│ │ │   ├─┬ object.omit@2.0.1
│ │ │   │ └── for-own@0.1.5
│ │ │   ├─┬ parse-glob@3.0.4
│ │ │   │ ├─┬ glob-base@0.3.0
│ │ │   │ │ └─┬ is-glob@2.0.1
│ │ │   │ │   └── is-extglob@1.0.0
│ │ │   │ ├── is-dotfile@1.0.3
│ │ │   │ ├── is-extglob@1.0.0
│ │ │   │ └── is-glob@2.0.1
│ │ │   └─┬ regex-cache@0.4.4
│ │ │     └─┬ is-equal-shallow@0.1.3
│ │ │       └── is-primitive@2.0.0
│ │ ├── internal-ip@1.2.0
│ │ ├── ip@1.1.5
│ │ ├── loglevel@1.5.1
│ │ ├─┬ opn@4.0.2
│ │ │ └── pinkie-promise@2.0.1
│ │ ├─┬ selfsigned@1.10.1
│ │ │ └── node-forge@0.6.33
│ │ ├─┬ serve-index@1.9.1
│ │ │ └── batch@0.6.1
│ │ ├─┬ sockjs@0.3.18
│ │ │ ├─┬ faye-websocket@0.10.0
│ │ │ │ └─┬ websocket-driver@0.7.0
│ │ │ │   ├── http-parser-js@0.4.9
│ │ │ │   └── websocket-extensions@0.1.2
│ │ │ └── uuid@2.0.3
│ │ ├─┬ sockjs-client@1.1.4
│ │ │ ├─┬ eventsource@0.1.6
│ │ │ │ └─┬ original@1.0.0
│ │ │ │   └─┬ url-parse@1.0.5
│ │ │ │     └── querystringify@0.0.4
│ │ │ ├── faye-websocket@0.11.1
│ │ │ ├── json3@3.3.2
│ │ │ └─┬ url-parse@1.1.9
│ │ │   └── querystringify@1.0.0
│ │ ├─┬ spdy@3.4.7
│ │ │ ├── handle-thing@1.2.5
│ │ │ ├── http-deceiver@1.2.7
│ │ │ ├── select-hose@2.0.0
│ │ │ └─┬ spdy-transport@2.0.20
│ │ │   ├── detect-node@2.0.3
│ │ │   ├── hpack.js@2.1.6
│ │ │   ├── obuf@1.1.1
│ │ │   └─┬ wbuf@1.7.2
│ │ │     └── minimalistic-assert@1.0.0
│ │ ├─┬ strip-ansi@3.0.1
│ │ │ └── ansi-regex@2.1.1
│ │ ├─┬ supports-color@3.2.3
│ │ │ └── has-flag@1.0.0
│ │ └─┬ yargs@6.6.0
│ │   ├── camelcase@3.0.0
│ │   ├── os-locale@1.4.0
│ │   ├─┬ string-width@1.0.2
│ │   │ ├── code-point-at@1.1.0
│ │   │ └─┬ is-fullwidth-code-point@1.0.0
│ │   │   └── number-is-nan@1.0.1
│ │   ├── which-module@1.0.0
│ │   └── yargs-parser@4.2.1
│ ├── webpack-merge@4.1.0
│ └── zone.js@0.8.18
├── @angular/common@2.4.10
├── @angular/compiler@2.4.10
├─┬ @angular/compiler-cli@2.4.10
│ ├─┬ @angular/tsc-wrapped@0.5.2
│ │ └── tsickle@0.2.6
│ └── minimist@1.2.0
├── @angular/core@2.4.10
├── @angular/forms@2.4.10
├── @angular/http@2.4.10
├── @angular/platform-browser@2.4.10
├── @angular/platform-browser-dynamic@2.4.10
├── @angular/router@3.4.10
├── @types/file-saver@0.0.0
├── @types/jasmine@2.5.38
├── @types/node@6.0.89
├── bootstrap@3.3.7
├── class-transformer@0.1.6
├─┬ codelyzer@2.0.1
│ ├── app-root-path@2.0.1
│ ├─┬ css-selector-tokenizer@0.7.0
│ │ ├── cssesc@0.1.0
│ │ ├── fastparse@1.1.1
│ │ └─┬ regexpu-core@1.0.0
│ │   ├── regenerate@1.3.3
│ │   ├── regjsgen@0.2.0
│ │   └─┬ regjsparser@0.1.5
│ │     └── jsesc@0.5.0
│ ├─┬ cssauron@1.4.0
│ │ └── through@2.3.8
│ ├── semver-dsl@1.0.1
│ ├── source-map@0.5.7
│ └── sprintf-js@1.0.3
├── core-js@2.5.1
├── file-saver@1.3.3
├── font-awesome@4.7.0
├── jasmine-core@2.5.2
├─┬ jasmine-spec-reporter@3.2.0
│ └── colors@1.1.2
├─┬ karma@1.4.1
│ ├── bluebird@3.5.1
│ ├─┬ body-parser@1.18.2
│ │ ├── bytes@3.0.0
│ │ ├── content-type@1.0.4
│ │ ├── depd@1.1.1
│ │ ├─┬ http-errors@1.6.2
│ │ │ └── setprototypeof@1.0.3
│ │ ├── iconv-lite@0.4.19
│ │ ├─┬ on-finished@2.3.0
│ │ │ └── ee-first@1.1.1
│ │ ├── qs@6.5.1
│ │ ├─┬ raw-body@2.3.2
│ │ │ └── unpipe@1.0.0
│ │ └─┬ type-is@1.6.15
│ │   └── media-typer@0.3.0
│ ├─┬ chokidar@1.7.0
│ │ ├─┬ anymatch@1.3.2
│ │ │ └─┬ normalize-path@2.1.1
│ │ │   └── remove-trailing-separator@1.1.0
│ │ ├── async-each@1.0.1
│ │ ├─┬ fsevents@1.1.2
│ │ │ └─┬ node-pre-gyp@0.6.36
│ │ │   ├─┬ mkdirp@0.5.1
│ │ │   │ └── minimist@0.0.8
│ │ │   ├─┬ nopt@4.0.1
│ │ │   │ ├── abbrev@1.1.0
│ │ │   │ └─┬ osenv@0.1.4
│ │ │   │   ├── os-homedir@1.0.2
│ │ │   │   └── os-tmpdir@1.0.2
│ │ │   ├─┬ npmlog@4.1.0
│ │ │   │ ├─┬ are-we-there-yet@1.1.4
│ │ │   │ │ └── delegates@1.0.0
│ │ │   │ ├── console-control-strings@1.1.0
│ │ │   │ ├─┬ gauge@2.7.4
│ │ │   │ │ ├── aproba@1.1.1
│ │ │   │ │ ├── has-unicode@2.0.1
│ │ │   │ │ ├── object-assign@4.1.1
│ │ │   │ │ ├── signal-exit@3.0.2
│ │ │   │ │ ├─┬ string-width@1.0.2
│ │ │   │ │ │ ├── code-point-at@1.1.0
│ │ │   │ │ │ └─┬ is-fullwidth-code-point@1.0.0
│ │ │   │ │ │   └── number-is-nan@1.0.1
│ │ │   │ │ ├─┬ strip-ansi@3.0.1
│ │ │   │ │ │ └── ansi-regex@2.1.1
│ │ │   │ │ └── wide-align@1.1.2
│ │ │   │ └── set-blocking@2.0.0
│ │ │   ├─┬ rc@1.2.1
│ │ │   │ ├── deep-extend@0.4.2
│ │ │   │ ├── ini@1.3.4
│ │ │   │ ├── minimist@1.2.0
│ │ │   │ └── strip-json-comments@2.0.1
│ │ │   ├─┬ request@2.81.0
│ │ │   │ ├── aws-sign2@0.6.0
│ │ │   │ ├── aws4@1.6.0
│ │ │   │ ├── caseless@0.12.0
│ │ │   │ ├─┬ combined-stream@1.0.5
│ │ │   │ │ └── delayed-stream@1.0.0
│ │ │   │ ├── extend@3.0.1
│ │ │   │ ├── forever-agent@0.6.1
│ │ │   │ ├─┬ form-data@2.1.4
│ │ │   │ │ └── asynckit@0.4.0
│ │ │   │ ├─┬ har-validator@4.2.1
│ │ │   │ │ ├─┬ ajv@4.11.8
│ │ │   │ │ │ ├── co@4.6.0
│ │ │   │ │ │ └─┬ json-stable-stringify@1.0.1
│ │ │   │ │ │   └── jsonify@0.0.0
│ │ │   │ │ └── har-schema@1.0.5
│ │ │   │ ├─┬ hawk@3.1.3
│ │ │   │ │ ├── boom@2.10.1
│ │ │   │ │ ├── cryptiles@2.0.5
│ │ │   │ │ ├── hoek@2.16.3
│ │ │   │ │ └── sntp@1.0.9
│ │ │   │ ├─┬ http-signature@1.1.1
│ │ │   │ │ ├── assert-plus@0.2.0
│ │ │   │ │ ├─┬ jsprim@1.4.0
│ │ │   │ │ │ ├── assert-plus@1.0.0
│ │ │   │ │ │ ├── extsprintf@1.0.2
│ │ │   │ │ │ ├── json-schema@0.2.3
│ │ │   │ │ │ └── verror@1.3.6
│ │ │   │ │ └─┬ sshpk@1.13.0
│ │ │   │ │   ├── asn1@0.2.3
│ │ │   │ │   ├── assert-plus@1.0.0
│ │ │   │ │   ├── bcrypt-pbkdf@1.0.1
│ │ │   │ │   ├─┬ dashdash@1.14.1
│ │ │   │ │   │ └── assert-plus@1.0.0
│ │ │   │ │   ├── ecc-jsbn@0.1.1
│ │ │   │ │   ├─┬ getpass@0.1.7
│ │ │   │ │   │ └── assert-plus@1.0.0
│ │ │   │ │   ├── jodid25519@1.0.2
│ │ │   │ │   ├── jsbn@0.1.1
│ │ │   │ │   └── tweetnacl@0.14.5
│ │ │   │ ├── is-typedarray@1.0.0
│ │ │   │ ├── isstream@0.1.2
│ │ │   │ ├── json-stringify-safe@5.0.1
│ │ │   │ ├─┬ mime-types@2.1.15
│ │ │   │ │ └── mime-db@1.27.0
│ │ │   │ ├── oauth-sign@0.8.2
│ │ │   │ ├── performance-now@0.2.0
│ │ │   │ ├── qs@6.4.0
│ │ │   │ ├── safe-buffer@5.0.1
│ │ │   │ ├── stringstream@0.0.5
│ │ │   │ ├─┬ tough-cookie@2.3.2
│ │ │   │ │ └── punycode@1.4.1
│ │ │   │ ├── tunnel-agent@0.6.0
│ │ │   │ └── uuid@3.0.1
│ │ │   ├─┬ rimraf@2.6.1
│ │ │   │ └─┬ glob@7.1.2
│ │ │   │   ├── fs.realpath@1.0.0
│ │ │   │   ├── inflight@1.0.6
│ │ │   │   ├─┬ minimatch@3.0.4
│ │ │   │   │ └─┬ brace-expansion@1.1.7
│ │ │   │   │   ├── balanced-match@0.4.2
│ │ │   │   │   └── concat-map@0.0.1
│ │ │   │   └── path-is-absolute@1.0.1
│ │ │   ├── semver@5.3.0
│ │ │   ├─┬ tar@2.2.1
│ │ │   │ ├── block-stream@0.0.9
│ │ │   │ ├─┬ fstream@1.0.11
│ │ │   │ │ └── graceful-fs@4.1.11
│ │ │   │ └── inherits@2.0.3
│ │ │   └─┬ tar-pack@3.4.0
│ │ │     ├─┬ debug@2.6.8
│ │ │     │ └── ms@2.0.0
│ │ │     ├── fstream-ignore@1.0.5
│ │ │     ├─┬ once@1.4.0
│ │ │     │ └── wrappy@1.0.2
│ │ │     ├─┬ readable-stream@2.2.9
│ │ │     │ ├── buffer-shims@1.0.0
│ │ │     │ ├── core-util-is@1.0.2
│ │ │     │ ├── isarray@1.0.0
│ │ │     │ ├── process-nextick-args@1.0.7
│ │ │     │ ├── string_decoder@1.0.1
│ │ │     │ └── util-deprecate@1.0.2
│ │ │     └── uid-number@0.0.6
│ │ ├─┬ glob-parent@2.0.0
│ │ │ └─┬ is-glob@2.0.1
│ │ │   └── is-extglob@1.0.0
│ │ ├─┬ is-binary-path@1.0.1
│ │ │ └── binary-extensions@1.10.0
│ │ ├─┬ is-glob@2.0.1
│ │ │ └── is-extglob@1.0.0
│ │ └─┬ readdirp@2.1.0
│ │   └── set-immediate-shim@1.0.1
│ ├── combine-lists@1.0.1
│ ├─┬ connect@3.6.5
│ │ ├── finalhandler@1.0.6
│ │ ├── parseurl@1.3.2
│ │ └── utils-merge@1.0.1
│ ├── di@0.0.1
│ ├─┬ dom-serialize@2.2.1
│ │ ├── custom-event@1.0.1
│ │ ├── ent@2.2.0
│ │ ├── extend@3.0.1
│ │ └── void-elements@2.0.1
│ ├─┬ expand-braces@0.1.2
│ │ ├── array-slice@0.2.3
│ │ ├── array-unique@0.2.1
│ │ └─┬ braces@0.1.5
│ │   └─┬ expand-range@0.1.1
│ │     ├── is-number@0.1.1
│ │     └── repeat-string@0.2.2
│ ├── graceful-fs@4.1.11
│ ├─┬ http-proxy@1.16.2
│ │ ├── eventemitter3@1.2.0
│ │ └── requires-port@1.0.0
│ ├── isbinaryfile@3.0.2
│ ├── lodash@3.10.1
│ ├─┬ log4js@0.6.38
│ │ ├─┬ readable-stream@1.0.34
│ │ │ ├── isarray@0.0.1
│ │ │ └── string_decoder@0.10.31
│ │ └── semver@4.3.6
│ ├── mime@1.4.1
│ ├─┬ minimatch@3.0.4
│ │ └─┬ brace-expansion@1.1.8
│ │   ├── balanced-match@1.0.0
│ │   └── concat-map@0.0.1
│ ├─┬ optimist@0.6.1
│ │ ├── minimist@0.0.10
│ │ └── wordwrap@0.0.3
│ ├── qjobs@1.1.5
│ ├── range-parser@1.2.0
│ ├── rimraf@2.6.2
│ ├── safe-buffer@5.1.1
│ ├─┬ socket.io@1.7.2
│ │ ├─┬ debug@2.3.3
│ │ │ └── ms@0.7.2
│ │ ├─┬ engine.io@1.8.2
│ │ │ ├── accepts@1.3.3
│ │ │ ├── base64id@1.0.0
│ │ │ ├─┬ debug@2.3.3
│ │ │ │ └── ms@0.7.2
│ │ │ ├─┬ engine.io-parser@1.3.2
│ │ │ │ ├── after@0.8.2
│ │ │ │ ├── arraybuffer.slice@0.0.6
│ │ │ │ ├── base64-arraybuffer@0.1.5
│ │ │ │ ├── blob@0.0.4
│ │ │ │ └── wtf-8@1.0.0
│ │ │ └─┬ ws@1.1.1
│ │ │   ├── options@0.0.6
│ │ │   └── ultron@1.0.2
│ │ ├─┬ has-binary@0.1.7
│ │ │ └── isarray@0.0.1
│ │ ├── object-assign@4.1.0
│ │ ├─┬ socket.io-adapter@0.5.0
│ │ │ └─┬ debug@2.3.3
│ │ │   └── ms@0.7.2
│ │ ├─┬ socket.io-client@1.7.2
│ │ │ ├── backo2@1.0.2
│ │ │ ├── component-bind@1.0.0
│ │ │ ├── component-emitter@1.2.1
│ │ │ ├─┬ debug@2.3.3
│ │ │ │ └── ms@0.7.2
│ │ │ ├─┬ engine.io-client@1.8.2
│ │ │ │ ├── component-emitter@1.2.1
│ │ │ │ ├── component-inherit@0.0.3
│ │ │ │ ├─┬ debug@2.3.3
│ │ │ │ │ └── ms@0.7.2
│ │ │ │ ├── has-cors@1.1.0
│ │ │ │ ├── parsejson@0.0.3
│ │ │ │ ├── parseqs@0.0.5
│ │ │ │ ├── xmlhttprequest-ssl@1.5.3
│ │ │ │ └── yeast@0.1.2
│ │ │ ├── indexof@0.0.1
│ │ │ ├── object-component@0.0.3
│ │ │ ├─┬ parseuri@0.0.5
│ │ │ │ └─┬ better-assert@1.0.2
│ │ │ │   └── callsite@1.0.0
│ │ │ └── to-array@0.1.4
│ │ └─┬ socket.io-parser@2.3.1
│ │   ├── component-emitter@1.1.2
│ │   ├─┬ debug@2.2.0
│ │   │ └── ms@0.7.1
│ │   └── isarray@0.0.1
│ ├─┬ tmp@0.0.28
│ │ └── os-tmpdir@1.0.2
│ └─┬ useragent@2.2.1
│   └── lru-cache@2.2.4
├─┬ karma-chrome-launcher@2.0.0
│ ├─┬ fs-access@1.0.1
│ │ └── null-check@1.0.0
│ └─┬ which@1.3.0
│   └── isexe@2.0.0
├── karma-cli@1.0.1
├─┬ karma-coverage-istanbul-reporter@0.2.3
│ └─┬ istanbul-api@1.1.14
│   ├── fileset@2.0.3
│   ├── istanbul-lib-coverage@1.1.1
│   ├─┬ istanbul-lib-hook@1.0.7
│   │ └─┬ append-transform@0.4.0
│   │   └── default-require-extensions@1.0.0
│   ├── istanbul-lib-report@1.1.1
│   ├── istanbul-lib-source-maps@1.2.1
│   ├─┬ istanbul-reports@1.1.2
│   │ └─┬ handlebars@4.0.10
│   │   ├── async@1.5.2
│   │   ├─┬ optimist@0.6.1
│   │   │ └── minimist@0.0.10
│   │   ├── source-map@0.4.4
│   │   └─┬ uglify-js@2.8.29
│   │     ├── source-map@0.5.7
│   │     └─┬ yargs@3.10.0
│   │       ├── camelcase@1.2.1
│   │       └─┬ cliui@2.1.0
│   │         └── wordwrap@0.0.2
│   └─┬ js-yaml@3.7.0
│     ├── argparse@1.0.9
│     └── esprima@2.7.3
├── karma-jasmine@1.1.0
├── karma-jasmine-html-reporter@0.2.2
├─┬ karma-mocha-reporter@2.0.5
│ └─┬ chalk@1.1.3
│   ├── ansi-styles@2.2.1
│   ├── has-ansi@2.0.0
│   └── supports-color@2.0.0
├─┬ karma-phantomjs-launcher@1.0.4
│ └─┬ phantomjs-prebuilt@2.1.15
│   ├── es6-promise@4.0.5
│   ├─┬ extract-zip@1.6.5
│   │ ├─┬ concat-stream@1.6.0
│   │ │ └── typedarray@0.0.6
│   │ ├─┬ debug@2.2.0
│   │ │ └── ms@0.7.1
│   │ ├─┬ mkdirp@0.5.0
│   │ │ └── minimist@0.0.8
│   │ └─┬ yauzl@2.4.1
│   │   └─┬ fd-slicer@1.0.1
│   │     └── pend@1.2.0
│   ├─┬ fs-extra@1.0.0
│   │ ├── jsonfile@2.4.0
│   │ └── klaw@1.3.1
│   ├─┬ hasha@2.2.0
│   │ └── is-stream@1.1.0
│   ├── kew@0.7.0
│   ├── progress@1.1.8
│   ├─┬ request@2.81.0
│   │ ├── aws-sign2@0.6.0
│   │ ├── form-data@2.1.4
│   │ ├─┬ har-validator@4.2.1
│   │ │ ├── ajv@4.11.8
│   │ │ └── har-schema@1.0.5
│   │ ├─┬ hawk@3.1.3
│   │ │ ├── boom@2.10.1
│   │ │ ├── cryptiles@2.0.5
│   │ │ ├── hoek@2.16.3
│   │ │ └── sntp@1.0.9
│   │ ├─┬ http-signature@1.1.1
│   │ │ └── assert-plus@0.2.0
│   │ ├── performance-now@0.2.0
│   │ └── qs@6.4.0
│   ├─┬ request-progress@2.0.1
│   │ └── throttleit@1.0.0
│   └── which@1.2.14
├─┬ ng2-bootstrap@1.3.1
│ └── moment@2.17.1
├─┬ ng2-dropdown-multiselect@1.1.1
│ ├── UNMET DEPENDENCY @angular/common@2.4.3
│ ├── UNMET DEPENDENCY @angular/compiler@2.4.3
│ ├── UNMET DEPENDENCY @angular/core@2.4.3
│ ├── UNMET DEPENDENCY @angular/forms@2.4.3
│ ├── UNMET DEPENDENCY rxjs@5.0.1
│ └─┬ systemjs@0.19.40
│   └── when@3.7.8
├── ng2-split-pane@1.3.1
├── npm@3.10.10 extraneous
├── primeng@2.0.6
├─┬ protractor@5.1.2
│ ├── @types/q@0.0.32
│ ├── @types/selenium-webdriver@2.53.42
│ ├── blocking-proxy@0.0.5
│ ├─┬ chalk@1.1.3
│ │ └── supports-color@2.0.0
│ ├─┬ jasmine@2.8.0
│ │ ├── exit@0.1.2
│ │ └── jasmine-core@2.8.0
│ ├── jasminewd2@2.2.0
│ ├─┬ optimist@0.6.1
│ │ └── minimist@0.0.10
│ ├── q@1.4.1
│ ├─┬ saucelabs@1.3.0
│ │ └─┬ https-proxy-agent@1.0.0
│ │   └─┬ agent-base@2.1.1
│ │     └── semver@5.0.3
│ ├─┬ selenium-webdriver@3.0.1
│ │ └── tmp@0.0.30
│ ├─┬ webdriver-js-extender@1.0.0
│ │ └─┬ selenium-webdriver@2.53.3
│ │   ├── adm-zip@0.4.4
│ │   ├── tmp@0.0.24
│ │   └─┬ xml2js@0.4.4
│ │     └── sax@0.6.1
│ └─┬ webdriver-manager@12.0.6
│   ├── adm-zip@0.4.7
│   ├─┬ del@2.2.2
│   │ └── globby@5.0.0
│   ├── ini@1.3.4
│   ├── minimist@1.2.0
│   └─┬ xml2js@0.4.19
│     ├── sax@1.2.4
│     └── xmlbuilder@9.0.4
├── reflect-metadata@0.1.10
├─┬ rxjs@5.4.3
│ └── symbol-observable@1.0.4
├── ts-helpers@1.1.2
├─┬ ts-node@2.0.0
│ ├── arrify@1.0.1
│ ├─┬ chalk@1.1.3
│ │ └── supports-color@2.0.0
│ ├── diff@3.4.0
│ ├── make-error@1.3.0
│ ├─┬ mkdirp@0.5.1
│ │ └── minimist@0.0.8
│ ├── pinkie@2.0.4
│ ├─┬ tsconfig@5.0.3
│ │ ├── any-promise@1.3.0
│ │ ├─┬ parse-json@2.2.0
│ │ │ └─┬ error-ex@1.3.1
│ │ │   └── is-arrayish@0.2.1
│ │ ├─┬ strip-bom@2.0.0
│ │ │ └── is-utf8@0.2.1
│ │ └── strip-json-comments@2.0.1
│ ├─┬ v8flags@2.1.1
│ │ └── user-home@1.1.1
│ ├── xtend@4.0.1
│ └── yn@1.3.0
├─┬ tslint@4.4.2
│ ├─┬ babel-code-frame@6.26.0
│ │ ├─┬ chalk@1.1.3
│ │ │ └── supports-color@2.0.0
│ │ ├── esutils@2.0.2
│ │ └── js-tokens@3.0.2
│ ├─┬ findup-sync@0.3.0
│ │ └── glob@5.0.15
│ ├─┬ optimist@0.6.1
│ │ └── minimist@0.0.10
│ └─┬ update-notifier@1.0.3
│   ├─┬ boxen@0.6.0
│   │ ├── ansi-align@1.1.0
│   │ ├── camelcase@2.1.1
│   │ ├─┬ chalk@1.1.3
│   │ │ └── supports-color@2.0.0
│   │ ├── cli-boxes@1.0.0
│   │ ├── filled-array@1.1.0
│   │ ├─┬ repeating@2.0.1
│   │ │ └── is-finite@1.0.2
│   │ └── widest-line@1.0.0
│   ├─┬ chalk@1.1.3
│   │ └── supports-color@2.0.0
│   ├─┬ configstore@2.1.0
│   │ ├─┬ dot-prop@3.0.0
│   │ │ └── is-obj@1.0.1
│   │ ├── uuid@2.0.3
│   │ └─┬ write-file-atomic@1.3.4
│   │   ├── imurmurhash@0.1.4
│   │   └── slide@1.1.6
│   ├── is-npm@1.0.0
│   ├─┬ latest-version@2.0.0
│   │ └─┬ package-json@2.4.0
│   │   ├─┬ got@5.7.1
│   │   │ ├─┬ create-error-class@3.0.2
│   │   │ │ └── capture-stack-trace@1.0.0
│   │   │ ├── duplexer2@0.1.4
│   │   │ ├── is-redirect@1.0.0
│   │   │ ├── is-retry-allowed@1.1.0
│   │   │ ├── lowercase-keys@1.0.0
│   │   │ ├── node-status-codes@1.0.0
│   │   │ ├── read-all-stream@3.1.0
│   │   │ ├── timed-out@3.1.3
│   │   │ ├── unzip-response@1.0.2
│   │   │ └── url-parse-lax@1.0.0
│   │   ├─┬ registry-auth-token@3.3.1
│   │   │ └─┬ rc@1.2.2
│   │   │   └── deep-extend@0.4.2
│   │   └── registry-url@3.1.0
│   ├── lazy-req@1.1.0
│   ├── semver-diff@2.1.0
│   └── xdg-basedir@2.0.0
├── typescript@2.0.10
└── zone.js@0.7.8

:org.eclipse.mdm.application:npmDeps FAILED
2 actionable tasks: 2 executed



> On 11 Oct 2017, at 14:37, Andres Almiray <andres.almiray@xxxxxxxxx> wrote:
> 
> It may be so with the particulars although I’d expect both AC and QC to chime in regarding processes and checks that should be in place in order to ensure everyone working with the codebase follows the same approach, for the benefit of all members of this working group. 
> 
> If documents exist regarding these points then I’d expect them to be clearly accessible directly from the mdmbl website, most likely at the Developer Resources section :-)
> 
> The original message has been sent to the mdmbl-dev list. 
> 
> Cheers
> Andres
> 
> Sent from my primitive Tricorder
> 
> On 9 Oct 2017, at 18:08, Ralph Mueller <ralph.mueller@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> 
>> Hi -
>> 
>> I believe this is an email that is better suited for the dev.list of the Eclipse mdmbl project. 
>> 
>> https://dev.eclipse.org/mailman/listinfo/mdmbl-dev
>> 
>> Thanks!
>> 
>> Regards / Liebe Grüße,
>> 
>> Ralph Mueller
>> 
>> Managing Director, Eclipse Foundation Europe GmbH
>> Mobile: +49 177 449 0460
>> Office: +49 6251 8606413
>> email: ralph.mueller@xxxxxxxxxxxxxxxxxxxxxx
>> 
>> 
>> 
>> 
>>> Am 09.10.2017 um 15:24 schrieb Andres Almiray <andres.almiray@xxxxxxxxx>:
>>> 
>>> Hello everyone,
>>> 
>>> We’re trying to build a version of the web client by grabbing the latest sources. There’s a break in binary compatibility brought by http://git.eclipse.org/c/gerrit/mdmbl/org.eclipse.mdm.api.base.git/commit/?id=14f7a9c9ee7c3e06963e5a8b581e5651c127bff8
>>> The getID/setID methods were migrated from Long to String.
>>> 
>>> Why is this a problem? Because the project version did not change. Have a look at the project repository at http://git.eclipse.org/c/gerrit/mdmbl/org.eclipse.mdm.api.base.git/log/
>>> The change was introduced by
>>> 
>>> 2017-07-19	518738: Type of Entity-IDs (changed in api.base, api.default, api.ods)
>>> 
>>> It’s quite recent. Three commits later the repository was tagged with 0.7. 14 commits later it was tagged with 0.8 (on September 7th). Yet the project’s version is still set to 1.0.0.
>>> So which is it? Is it 0.8? is it 1.0.0? Aren’t we supposed to be using semantic versioning for labeling project versions? If we are then the current state of the project is horribly broken. This “small change” should have prompted the project version to jump to 2.0.0-SNAPSHOT at the very least if semver is to be followed to the letter. If we’re not following semver, then what is it?
>>> 
>>> I ask then, what versioning scheme is in place and where do we get hold of the document that states it?
>>> 
>>> This commit appears to make a reference to bug ID 518738. Which issue tracker are we supposed to use? Eclipse’s bugzilla points to an Eclipse Neon & JavaScript problem https://bugs.eclipse.org/bugs/show_bug.cgi?id=518738 
>>> The mdmbl website points to Eclipse’s bugzilla if you want to report a bug or review bug reports. https://projects.eclipse.org/projects/technology.mdmbl/developer
>>> The OpenMDM Jira instance doesn’t even reach that number https://openmdm.atlassian.net/projects/OMDM/issues/
>>> 
>>> Also, this commit http://git.eclipse.org/c/gerrit/mdmbl/org.eclipse.mdm.api.base.git/commit/?id=dc2fa148c68d95ccd73f177f19b854d45c66df74 added a version range to a test dependency: mockito-core.
>>> You never ever, let me repeat that, NEVER EVER use version ranges at any time, for whatever reason!
>>> 
>>> Their usage lead to unreproducible builds and other potential incompatibility issues. Granted, Mockito is a project that evolves very, very fast, they push releases at least once a month, and as great as they try to keep things tidy they broke binary compatibility by moving around private APIs between 2.6.x and 2.7.0. This could happen again. Matthias, you’re exposing the project and every developer that wants to build the project to potential problems just because you couldn’t be bothered to pick a fix version for a dependency. If you didn’t pick the version range at least you signed of the commit. Please do not do this. This problem should have been spotted in a code review.
>>> 
>>> 
>>> 
>>>  	
>>> Andres Almiray
>>> Canoo Engineering AG
>>> Kirschgartenstrasse 5
>>> CH-4051 Basel
>>> 
>>> Tel: +41 61 228 94 44
>>> Fax: +41 61 228 94 49
>>> 
>>> andres.almiray@xxxxxxxxx
>>> http://www.canoo.com
>>> 
>>> _______________________________________________
>>> open-measured-data-wg mailing list
>>> open-measured-data-wg@xxxxxxxxxxx
>>> To change your delivery options, retrieve your password, or unsubscribe from this list, visit
>>> https://dev.eclipse.org/mailman/listinfo/open-measured-data-wg
>> 
>> _______________________________________________
>> open-measured-data-wg mailing list
>> open-measured-data-wg@xxxxxxxxxxx
>> To change your delivery options, retrieve your password, or unsubscribe from this list, visit
>> https://dev.eclipse.org/mailman/listinfo/open-measured-data-wg


Back to the top