Urigo / Ionic2CLI-Meteor-WhatsApp

WhatsApp Clone tutorial with Ionic 2.0 CLI and Meteor Server
https://www.angular-meteor.com/tutorials/whatsapp2/ionic/setup
162 stars 185 forks source link

Uncaught TypeError: Cannot convert undefined or null to object with Android API 21 (5.0.x) #124

Open pkitatta opened 6 years ago

pkitatta commented 6 years ago

image

The app used to load on android until I got this error which started about 2 weeks ago. I have done everything (including reinstalling my entire environment) but nothing seems to work.

Before testing on android the app works well on firefox, chrome but not explorer. After testing on android, firefox is affected and then chrome is on and off; sometimes giving the error and sometimes not depending on whether you have first run it on android.

I suspect it could be a meteor issue because android tests start failing around step 4 when I install meteor in the project.

Anyone have an idea?

lingboz commented 6 years ago

121

https://github.com/Urigo/meteor-client-bundler/issues/41 Hi I think these issues should be referenced

lingboz commented 6 years ago

121 Uncaught TypeError: Cannot convert undefined or null to object

Hi I think this issue should be referenced

pkitatta commented 6 years ago

Yes. Sorry I could not find a proper title before I opened this.

pkitatta commented 6 years ago

@Urigo @darkbasic Any help from the grand masters of meteor.

pkitatta commented 6 years ago

null:1 GET http://localhost:8100/null 404 (Not Found) Image (async) DefaultDomRenderer2.insertBefore @ platform-browser.es5.js:2798 DebugRenderer2.insertBefore @ core.es5.js:13336 execRenderNodeAction @ core.es5.js:9079 visitRenderNode @ core.es5.js:9050 visitSiblingRenderNodes @ core.es5.js:8981 visitRootRenderNodes @ core.es5.js:8965 renderAttachEmbeddedView @ core.es5.js:9779 attachEmbeddedView @ core.es5.js:9659 ViewContainerRef.insert @ core.es5.js:10126 ViewContainerRef.createEmbeddedView @ core.es5.js:10097 NgIf.updateView @ common.es5.js:1947 set @ common.es5.js:1906 updateProp @ core.es5.js:11081 checkAndUpdateDirectiveInline @ core.es5.js:10773 checkAndUpdateNodeInline @ core.es5.js:12238 checkAndUpdateNode @ core.es5.js:12177 debugCheckAndUpdateNode @ core.es5.js:12880 debugCheckDirectivesFn @ core.es5.js:12821 (anonymous) @ Item.html:1 debugUpdateDirectives @ core.es5.js:12806 checkAndUpdateView @ core.es5.js:12144 callViewAction @ core.es5.js:12507 execComponentViewsAction @ core.es5.js:12439 checkAndUpdateView @ core.es5.js:12150 callViewAction @ core.es5.js:12507 execEmbeddedViewsAction @ core.es5.js:12465 checkAndUpdateView @ core.es5.js:12145 callViewAction @ core.es5.js:12507 execComponentViewsAction @ core.es5.js:12439 checkAndUpdateView @ core.es5.js:12150 callViewAction @ core.es5.js:12507 execEmbeddedViewsAction @ core.es5.js:12465 checkAndUpdateView @ core.es5.js:12145 callViewAction @ core.es5.js:12507 execComponentViewsAction @ core.es5.js:12439 checkAndUpdateView @ core.es5.js:12150 callViewAction @ core.es5.js:12507 execComponentViewsAction @ core.es5.js:12439 checkAndUpdateView @ core.es5.js:12150 callViewAction @ core.es5.js:12507 execEmbeddedViewsAction @ core.es5.js:12465 checkAndUpdateView @ core.es5.js:12145 callViewAction @ core.es5.js:12507 execComponentViewsAction @ core.es5.js:12439 checkAndUpdateView @ core.es5.js:12150 callWithDebugContext @ core.es5.js:13206 debugCheckAndUpdateView @ core.es5.js:12746 ViewRef.detectChanges @ core.es5.js:10218 (anonymous) @ core.es5.js:5075 ApplicationRef_.tick @ core.es5.js:5075 (anonymous) @ core.es5.js:4955 t.invoke @ polyfills.js:3 onInvoke @ core.es5.js:4149 t.invoke @ polyfills.js:3 r.run @ polyfills.js:3 NgZone.run @ core.es5.js:4017 next @ core.es5.js:4955 schedulerFn @ core.es5.js:3851 SafeSubscriber.__tryOrUnsub @ Subscriber.js:238 SafeSubscriber.next @ Subscriber.js:185 Subscriber.next @ Subscriber.js:125 Subscriber.next @ Subscriber.js:89 Subject.next @ Subject.js:55 EventEmitter.emit @ core.es5.js:3837 NgZone.checkStable @ core.es5.js:4114 NgZone.onLeave @ core.es5.js:4190 onInvoke @ core.es5.js:4152 t.invoke @ polyfills.js:3 r.run @ polyfills.js:3 onReady @ MeteorObservable.js:147 (anonymous) @ meteor-client.js:35488 (anonymous) @ meteor-client.js:35331 .each._.forEach @ meteor-client.js:1519 _runAfterUpdateCallbacks @ meteor-client.js:35329 _performWrites @ meteor-client.js:35318 _flushBufferedWrites @ meteor-client.js:35273 _livedatadata @ meteor-client.js:35234 onMessage @ meteor-client.js:34153 (anonymous) @ meteor-client.js:33471 .each._.forEach @ meteor-client.js:1519 self.socket.onmessage @ meteor-client.js:33469 REventTarget.dispatchEvent @ meteor-client.js:30271 SockJS._dispatchMessage @ meteor-client.js:31636 SockJS._didMessage @ meteor-client.js:31713 that.ws.onmessage @ meteor-client.js:31892 o @ polyfills.js:2 t.invokeTask @ polyfills.js:3 r.runTask @ polyfills.js:3 invoke @ polyfills.js:3

Something else I realised is that even if the app works well on the browser, there is this little error it gives. Could this be another clue of is really happening?

pkitatta commented 6 years ago

Hi guys, I have an update on the issue. @fernandoarevalo was right to suspect the bundler.

I have realised it's not a meteor version issue for three reasons:

  1. When I was going through my backedup projects I realised that 2 of the working projects I backed up early this month had meteor 1.5.1.

  2. Looking at the meteor-client.js file from early this month and the one generated of late there is a difference in the code.

  3. When I import the old generated file from early this month into the new project, the app runs fine.

I suspect it is a bug in the new generated file. We might need to find the author @DAB0mB for this.

carlos-olivera commented 6 years ago

I have the same problem

lingboz commented 6 years ago

Hi guys, there is a new release from Meteor. Meteor has 1.5.2 ready. They claimed they fixed some issues about Node.js V8, and supported Cordova 7.0. What version of Cordova are you using?

https://blog.meteor.com/announcing-meteor-1-5-2-105b53e0debc Have you guys tried anything about the new release?

darkbasic commented 6 years ago

See https://github.com/Urigo/Ionic2CLI-Meteor-WhatsApp/issues/121#issuecomment-328520916

pkitatta commented 6 years ago

@lingboz Good to hear, definitely going to try it out. Also good to see @darkbasic on these streets, meteor experts are much needed since our current problem. Just wondering if you have witnessed our current problem as you rebased the tutorial -- @darkbasic.

darkbasic commented 6 years ago

I'm sorry but I cannot reproduce your issue. Can you please checkout this repository and then run the following:

Shell 1: $ git clone https://github.com/darkbasic/Ionic2CLI-Meteor-WhatsApp.git $ cd Ionic2CLI-Meteor-WhatsApp/ $ npm install $ npm uninstall sharp $ cd api; meteor npm install sharp; cd .. $ npm run api

Shell 2: $ npm run meteor-client:bundle $ npm run ionic:serve

Shell 3 (Android testing): $ cordova platform add android $ cordova run android

Please be sure to update all your global packages before doing so, especially meteor-client-bundler which needs to be at least at version 0.3.0.

$ npm -g list --depth=0
/home/niko/.npm-packages/lib
├── @angular/cli@1.4.1
├── bower@1.8.0
├── cordova@7.0.1
├── express-generator@4.15.0
├── gulp@3.9.1
├── ionic@3.9.2
├── meteor-client-bundler@0.3.0
├── node-sass@4.5.3
├── tortilla@0.0.1-alpha.23
├── tslint@5.7.0
├── typescript@2.5.2
├── typings@2.1.1
└── yarn@1.0.1
pkitatta commented 6 years ago

Hi @darkbasic, I have delayed to respond because I wanted to carry out some tests. So here is some feedback:

Upgrading to meteor 1.5.2 and meteor-client-bundler 0.3.0 doesn't eliminate the primary error on this thread. The application still works O.K. on browser!

In your solution above you mention something I want to bring to your attention - and that is sharp. The meteor npm install sharp as opposed to npm install sharp has completely failed to install on windows. I have tested it on ubuntu and it installs fine without crashing the server. This brings me to ubuntu.

I recently installed ubuntu hoping that I would get less errors. Whereas I realise that most of the instructions in this tutorial are linux based and that it was smooth running commands on my ubuntu system, the application gives me the cannot find module meteor/meteor error, which I don't get on windows. To be fair I only got this error once on windows but it magically disappeared as it came. Removing all lines with meteor/meteor as someone suggested here only brings another error cannot find module meteor/jalik:ufs. Because of this I decided to revert back to windows - the devil I was familiar with (I apologize, am not the most advanced developer ).

Disabling sharp in windows did the trick (until we find another solution).

Again, I would like to stress that the application runs well on the browser on windows for me. I haven't tested it on ubuntu due to the above error.

darkbasic commented 6 years ago

Hi, unfortunately Windows can be a terrible environment for doing web development. I did develop on Windows for a while and it was a nightmare.

pkitatta commented 6 years ago

I realised that. Anyway which OS do you use, this could also be a factor? Have you encountered the cannot find module meteor/meteor error? I can only know if the new meteor-client-bundler works (on ubuntu) if I can get passed it.

darkbasic commented 6 years ago

I use Arch Linux. Everything could be a factor, but nonetheless it should work on any OS with the right workarounds. Never got such error, but it means there is an issue with the Meteor bundler.

pkitatta commented 6 years ago

Wow. So is there a way we can use ionic and meteor without going through the meteor-client-bundler? Looks like the piece holding the two worlds together and yet we are having trouble with it. I am really interested in implementing meteor's accounts-base for my ionic app.

darkbasic commented 6 years ago

If you don't want to use meteor-client-bundler you should follow the MeteorCLI tutorial, unfortunately it is quite outdated and it will probably not work.

darkbasic commented 6 years ago

Anyway since you fixed your original issue uninstalling sharp, I'm going to close. Feel free to reopen if the issue persists.

pkitatta commented 6 years ago

Actually the original issue was about the app failing to work on mobile due to the current meteor-client issue. Sharp and others were just additionals. From my response above I indicated that the problem is not yet solved. I am also keen to see what others who had the same problem have to say.

darkbasic commented 6 years ago

Can you please post the output of all the commands mentioned before, including npm -g list --depth=0?

pkitatta commented 6 years ago

$ meteor npm install sharp

> sharp@0.18.2 install C:\Users\Paul\frontend\front1clone2\api\node_modules\sharp
> node-gyp rebuild

C:\Users\Paul\frontend\front1clone2\api\node_modules\sharp>if not defined npm_config_node_gyp (node "C:\Users\Paul\AppData\Local\.meteor\packages\meteor-tool\1.5.2\mt-os.windows.x86_32\dev_bundle\lib\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "" rebuild )
gyp: C:\Users\Paul\AppData\Local\.meteor\packages\meteor-tool\1.5.2\mt-os.windows.x86_32\dev_bundle\common.gypi not found (cwd: C:\Users\Paul\frontend\front1clone2\api\node_modules\sharp) while reading includes of binding.gyp while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (C:\Users\Paul\AppData\Local\.meteor\packages\meteor-tool\1.5.2\mt-os.windows.x86_32\dev_bundle\lib\node_modules\npm\node_modules\node-gyp\lib\configure.js:336:16)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:12)
gyp ERR! System Windows_NT 10.0.10586
gyp ERR! command "C:\\Users\\Paul\\AppData\\Local\\.meteor\\packages\\meteor-tool\\1.5.2\\mt-os.windows.x86_32\\dev_bundle\\bin\\node.exe" "C:\\Users\\Paul\\AppData\\Local\\.meteor\\packages\\meteor-tool\\1.5.2\\mt-os.windows.x86_32\\dev_bundle\\lib\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Users\Paul\frontend\front1clone2\api\node_modules\sharp
gyp ERR! node -v v4.8.4
gyp ERR! node-gyp -v v3.6.0
gyp ERR! not ok
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})
npm WARN enoent ENOENT: no such file or directory, open 'C:\Users\Paul\frontend\front1clone2\api\package.json'
npm WARN ajv-keywords@2.1.0 requires a peer of ajv@>=5.0.0 but none was installed.
npm WARN api No description
npm WARN api No repository field.
npm WARN api No README data
npm WARN api No license field.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! sharp@0.18.2 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the sharp@0.18.2 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Paul\AppData\Local\.meteor\packages\meteor-tool\1.5.2\mt-os.windows.x86_32\dev_bundle\.npm\_logs\2017-09-12T18_50_51_212Z-debug.log

$ npm run api

> front1clone2@0.0.1 api C:\Users\Paul\frontend\front1clone2
> cd api && meteor run --settings private/settings.json

[[[[[ C:\Users\Paul\frontend\front1clone2\api ]]]]]

=> Started proxy.
=> Started MongoDB.
W20170912-21:46:26.379(3)? (STDERR) Note: you are using a pure-JavaScript implementation of bcrypt.
W20170912-21:46:27.138(3)? (STDERR) While this implementation will work correctly, it is known to be
W20170912-21:46:27.140(3)? (STDERR) approximately three times slower than the native implementation.
W20170912-21:46:27.141(3)? (STDERR) In order to use the native implementation instead, run
W20170912-21:46:27.142(3)? (STDERR)
W20170912-21:46:27.143(3)? (STDERR)   meteor npm install --save bcrypt
W20170912-21:46:27.144(3)? (STDERR)
W20170912-21:46:27.145(3)? (STDERR) in the root directory of your application.
=> Started your app.

=> App running at: http://localhost:3000
   Type Control-C twice to stop.

$ npm run meteor-client:bundle

> front1clone2@0.0.1 meteor-client:bundle C:\Users\Paul\frontend\front1clone2
> meteor-client bundle -s api -c meteor-client.config.json

Created a new Meteor app in
'C:\Users\Paul\AppData\Local\Temp\tmp-3324jtevEGFbTcEM'.

To run your new app:
  cd C:\Users\Paul\AppData\Local\Temp\tmp-3324jtevEGFbTcEM
  meteor

If you are new to Meteor, try some of the learning resources here:
  https://www.meteor.com/tutorials

meteor create --bare to create an empty app.
meteor create --full to create a scaffolded app.

Changes to your project's package version selections:

accounts-base                 added, version 1.3.2
autopublish                   removed from your project
barbatus:typescript           added, version 0.6.11
barbatus:typescript-compiler  added, version 0.9.11
barbatus:typescript-runtime   added, version 1.0.2
ddp-rate-limiter              added, version 1.0.7
email                         added, version 1.2.3
insecure                      removed from your project
jalik:ufs                     added, version 0.7.4_1
jalik:ufs-gridfs              added, version 0.2.1
localstorage                  added, version 1.1.1
matb33:collection-hooks       added, version 0.8.4
mys:accounts-phone            added, version 0.0.21
npm-bcrypt                    added, version 0.9.3
rate-limit                    added, version 1.0.8
reywood:publish-composite     added, version 1.5.2
service-configuration         added, version 1.0.11
sha                           added, version 1.0.9
srp                           added, version 1.0.10

WARNING: The output directory is under your source tree.
         Your generated files may get interpreted as source code!
         Consider building into a different directory instead
         meteor build ../output

npm run ionic:serve

> front1clone2@0.0.1 ionic:serve C:\Users\Paul\frontend\front1clone2
> ionic-app-scripts serve

[22:06:59]  ionic-app-scripts 2.1.3 
[22:06:59]  watch started ...
[22:06:59]  build dev started ...
[22:06:59]  clean started ...
[22:06:59]  clean finished in 30 ms
[22:06:59]  copy started ...
[22:06:59]  transpile started ...
[22:07:06]  transpile finished in 6.35 s
[22:07:06]  preprocess started ...
[22:07:06]  deeplinks started ...
[22:07:06]  deeplinks finished in 214 ms
[22:07:06]  preprocess finished in 217 ms
[22:07:06]  webpack started ...
[22:07:07]  copy finished in 7.91 s
[22:07:28]  webpack finished in 22.38 s
[22:07:28]  sass started ...
[22:07:33]  sass finished in 5.08 s
[22:07:33]  postprocess started ...
[22:07:33]  postprocess finished in 51 ms
[22:07:33]  lint started ...
[22:07:33]  build dev finished in 34.32 s
[22:07:34]  watch ready in 34.81 s
[22:07:34]  dev server running: http://localhost:8100/ 

[22:07:47]  tslint: C:/Users/Paul/frontend/front1clone2/api/server/collections/messages.ts, line: 2 
            All imports are unused.

       L1:  import { MongoObservable } from 'meteor-rxjs';
       L2:  import { Message } from '../models';

[22:07:47]  tslint: C:/Users/Paul/frontend/front1clone2/api/server/collections/chats.ts, line: 2 
            All imports are unused.

       L1:  import { MongoObservable } from 'meteor-rxjs';
       L2:  import { Chat } from '../models';
       L3:  import { Messages } from './messages';

[22:07:47]  tslint: C:/Users/Paul/frontend/front1clone2/api/server/collections/pictures.ts, line: 7 
            'T' is declared but never used.

       L7:  export interface PicturesCollection<T> extends MongoObservable.Collection<T> {
       L8:      getPictureUrl(selector?: Object | string, platform?: string): string;

[22:07:47]  tslint: C:/Users/Paul/frontend/front1clone2/api/server/collections/users.ts, line: 3 
            All imports are unused.

       L2:  import { Meteor } from 'meteor/meteor';
       L3:  import { User } from '../models';
       L4:  import { Pictures } from './pictures';

[22:07:47]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/messages/location-message.ts, line: 1 
            'OnInit' is declared but never used.

       L1:  import { Component, OnInit, OnDestroy } from '@angular/core';
       L2:  import { Platform, ViewController } from 'ionic-angular';

[22:07:47]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/messages/location-message.ts, line: 1 
            'OnDestroy' is declared but never used.

       L1:  import { Component, OnInit, OnDestroy } from '@angular/core';
       L2:  import { Platform, ViewController } from 'ionic-angular';

[22:07:47]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/messages/location-message.ts, line: 5 
            'Subscription' is declared but never used.

       L4:  import { Location } from 'api/models';
       L5:  import { Observable, Subscription } from 'rxjs';

[22:07:48]  tslint: C:/Users/Paul/frontend/front1clone2/src/services/picture.ts, line: 3 
            All imports are unused.

       L2:  import { Platform } from 'ionic-angular';
       L3:  import { ImagePicker } from '@ionic-native/image-picker';
       L4:  import { UploadFS } from 'meteor/jalik:ufs';

[22:07:48]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/messages/show-picture.ts, line: 11 
            Property 'navParams' is declared but never used.

      L11:    constructor(private navParams: NavParams, private viewCtrl: ViewController) {
      L12:      this.pictureSrc = navParams.get('pictureSrc');

[22:07:48]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/messages/show-picture.ts, line: 11 
            Property 'viewCtrl' is declared but never used.

      L11:    constructor(private navParams: NavParams, private viewCtrl: ViewController) {
      L12:      this.pictureSrc = navParams.get('pictureSrc');

[22:07:48]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/messages/messages.ts, line: 119 
            'T' is declared but never used.

     L118:  // Removes the scroll listener once all messages from the past were fetched
     L119:  autoRemoveScrollListener<T>(messagesCount: number): Observable<T> {
     L120:    return Observable.create((observer: Subscriber<T>) => {

[22:07:48]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/messages/messages.ts, line: 152 
            'isEven' is declared but never used.

     L151:    findMessagesDayGroups() {
     L152:      let isEven = false;

[22:07:48]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/messages/messages.ts, line: 1 
            'OnInit' is declared but never used.

       L1:  import { Component, OnInit, OnDestroy, ElementRef } from '@angular/core';
       L2:  import { IonicPage, NavController, NavParams, PopoverController, ModalController } from 'ionic-angular';

[22:07:48]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/messages/messages.ts, line: 1 
            'OnDestroy' is declared but never used.

       L1:  import { Component, OnInit, OnDestroy, ElementRef } from '@angular/core';
       L2:  import { IonicPage, NavController, NavParams, PopoverController, ModalController } from 'ionic-angular';

[22:07:48]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/messages/messages.ts, line: 1 
            'ElementRef' is declared but never used.

       L1:  import { Component, OnInit, OnDestroy, ElementRef } from '@angular/core';
       L2:  import { IonicPage, NavController, NavParams, PopoverController, ModalController } from 'ionic-angular';

[22:07:48]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/messages/messages.ts, line: 4 
            'Subscription' is declared but never used.

       L3:  import { Chat, Message, MessageType, Location } from 'api/models';
       L4:  import { Subscription, Observable, Subscriber } from 'rxjs';
       L5:  import { MessagesAttachmentsComponent } from './messages-attachments';

[22:07:48]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/messages/messages.ts, line: 4 
            'Subscriber' is declared but never used.

       L3:  import { Chat, Message, MessageType, Location } from 'api/models';
       L4:  import { Subscription, Observable, Subscriber } from 'rxjs';
       L5:  import { MessagesAttachmentsComponent } from './messages-attachments';

[22:07:48]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/profile/profile.ts, line: 1 
            'OnInit' is declared but never used.

       L1:  import { Component, OnInit } from '@angular/core';
       L2:  import { Profile } from 'api/models';

[22:07:48]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/verification/verification.ts, line: 1 
            'AfterContentInit' is declared but never used.

       L1:  import { AfterContentInit, Component, OnInit } from '@angular/core';
       L2:  import { IonicPage, AlertController, NavController, NavParams } from 'ionic-angular';

[22:07:48]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/verification/verification.ts, line: 1 
            'OnInit' is declared but never used.

       L1:  import { AfterContentInit, Component, OnInit } from '@angular/core';
       L2:  import { IonicPage, AlertController, NavController, NavParams } from 'ionic-angular';

[22:07:48]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/login/login.ts, line: 1 
            'AfterContentInit' is declared but never used.

       L1:  import { Component, AfterContentInit } from '@angular/core';
       L2:  import { IonicPage, Alert, AlertController, NavController, NavParams } from 'ionic-angular';

[22:07:48]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/chats/new-chat.ts, line: 1 
            'OnInit' is declared but never used.

       L1:  import { Component, OnInit } from '@angular/core';
       L2:  import { Chats, Users, Pictures } from 'api/collections';

[22:07:48]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/chats/new-chat.ts, line: 3 
            All imports are unused.

       L2:  import { Chats, Users, Pictures } from 'api/collections';
       L3:  import { User } from 'api/models';
       L4:  import { AlertController, ViewController, Platform } from 'ionic-angular';

[22:07:48]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/chats/new-chat.ts, line: 7 
            'Subscription' is declared but never used.

       L6:  import { _ } from 'meteor/underscore';
       L7:  import { Observable, Subscription, BehaviorSubject } from 'rxjs';
       L8:  import { PhoneService } from "../../services/phone";

[22:07:48]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/chats/chats.ts, line: 1 
            'OnInit' is declared but never used.

       L1:  import { Component, OnInit } from '@angular/core';
       L2:  import { IonicPage, NavController, NavParams, PopoverController, ModalController, AlertController, Platform } from 'ionic-a
ngular';

[22:07:48]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/chats/chats.ts, line: 5 
            'Subscriber' is declared but never used.

       L4:  import { MeteorObservable } from 'meteor-rxjs';
       L5:  import { Observable, Subscriber } from 'rxjs';
       L6:  import { MessagesPage } from '../messages/messages';

[22:07:48]  tslint: C:/Users/Paul/frontend/front1clone2/src/pages/chats/chats.ts, line: 7 
            'Message' is declared but never used.

       L6:  import { MessagesPage } from '../messages/messages';
       L7:  import { Chat, Message } from 'api/models';
       L8:  import { ChatsOptionsComponent } from './chats-options';

[22:07:48]  lint finished in 14.20 s

image image Everything O.K. in all browsers

$ cordova platform add android

Using cordova-fetch for cordova-android@^6.2.3
Error: Platform android already added.

$ cordova run android

ANDROID_HOME=C:\Users\Paul\AppData\Local\Android\Sdk
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_131
Subproject Path: CordovaLib
Starting a Gradle Daemon (subsequent builds will be faster)
google-services plugin could not detect any version for com.google.android.gms or com.google.firebase, default version: 9.0.0 will be used.
please apply google-services plugin at the bottom of the build file.
The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.
        at build_5qgygc8z6l4pumirj1yby1itu.run(C:\Users\Paul\frontend\front1clone2\platforms\android\build.gradle:140)
The JavaCompile.setDependencyCacheDir() method has been deprecated and is scheduled to be removed in Gradle 4.0.
Incremental java compilation is an incubating feature.
The TaskInputs.source(Object) method has been deprecated and is scheduled to be removed in Gradle 4.0. Please use TaskInputs.file(Object).skipWhenEmpty() instead.
:preBuild UP-TO-DATE
:preDebugBuild UP-TO-DATE
:checkDebugManifest
:preReleaseBuild UP-TO-DATE
:CordovaLib:preBuild UP-TO-DATE
:CordovaLib:preDebugBuild UP-TO-DATE
:CordovaLib:checkDebugManifest
:CordovaLib:prepareDebugDependencies
:CordovaLib:compileDebugAidl UP-TO-DATE
:CordovaLib:compileDebugNdk UP-TO-DATE
:CordovaLib:compileLint UP-TO-DATE
:CordovaLib:copyDebugLint UP-TO-DATE
:CordovaLib:mergeDebugShaders UP-TO-DATE
:CordovaLib:compileDebugShaders UP-TO-DATE
:CordovaLib:generateDebugAssets UP-TO-DATE
:CordovaLib:mergeDebugAssets UP-TO-DATE
:CordovaLib:mergeDebugProguardFiles UP-TO-DATE
:CordovaLib:packageDebugRenderscript UP-TO-DATE
:CordovaLib:compileDebugRenderscript UP-TO-DATE
:CordovaLib:generateDebugResValues UP-TO-DATE
:CordovaLib:generateDebugResources UP-TO-DATE
:CordovaLib:packageDebugResources UP-TO-DATE
:CordovaLib:processDebugManifest UP-TO-DATE
:CordovaLib:generateDebugBuildConfig UP-TO-DATE
:CordovaLib:processDebugResources UP-TO-DATE
:CordovaLib:generateDebugSources UP-TO-DATE
:CordovaLib:incrementalDebugJavaCompilationSafeguard UP-TO-DATE
:CordovaLib:compileDebugJavaWithJavac UP-TO-DATE
:CordovaLib:processDebugJavaRes UP-TO-DATE
:CordovaLib:transformResourcesWithMergeJavaResForDebug UP-TO-DATE
:CordovaLib:transformClassesAndResourcesWithSyncLibJarsForDebug UP-TO-DATE
:CordovaLib:mergeDebugJniLibFolders UP-TO-DATE
:CordovaLib:transformNative_libsWithMergeJniLibsForDebug UP-TO-DATE
:CordovaLib:transformNative_libsWithSyncJniLibsForDebug UP-TO-DATE
:CordovaLib:bundleDebug UP-TO-DATE
:CordovaLib:preReleaseBuild UP-TO-DATE
:CordovaLib:checkReleaseManifest
:CordovaLib:prepareReleaseDependencies
:CordovaLib:compileReleaseAidl UP-TO-DATE
:CordovaLib:compileReleaseNdk UP-TO-DATE
:CordovaLib:copyReleaseLint UP-TO-DATE
:CordovaLib:mergeReleaseShaders UP-TO-DATE
:CordovaLib:compileReleaseShaders UP-TO-DATE
:CordovaLib:generateReleaseAssets UP-TO-DATE
:CordovaLib:mergeReleaseAssets UP-TO-DATE
:CordovaLib:mergeReleaseProguardFiles UP-TO-DATE
:CordovaLib:packageReleaseRenderscript UP-TO-DATE
:CordovaLib:compileReleaseRenderscript UP-TO-DATE
:CordovaLib:generateReleaseResValues UP-TO-DATE
:CordovaLib:generateReleaseResources UP-TO-DATE
:CordovaLib:packageReleaseResources UP-TO-DATE
:CordovaLib:processReleaseManifest UP-TO-DATE
:CordovaLib:generateReleaseBuildConfig UP-TO-DATE
:CordovaLib:processReleaseResources UP-TO-DATE
:CordovaLib:generateReleaseSources UP-TO-DATE
:CordovaLib:incrementalReleaseJavaCompilationSafeguard UP-TO-DATE
:CordovaLib:compileReleaseJavaWithJavac UP-TO-DATE
:CordovaLib:processReleaseJavaRes UP-TO-DATE
:CordovaLib:transformResourcesWithMergeJavaResForRelease UP-TO-DATE
:CordovaLib:transformClassesAndResourcesWithSyncLibJarsForRelease UP-TO-DATE
:CordovaLib:mergeReleaseJniLibFolders UP-TO-DATE
:CordovaLib:transformNative_libsWithMergeJniLibsForRelease UP-TO-DATE
:CordovaLib:transformNative_libsWithSyncJniLibsForRelease UP-TO-DATE
:CordovaLib:bundleRelease UP-TO-DATE
:prepareComAndroidSupportAnimatedVectorDrawable2340Library UP-TO-DATE
:prepareComAndroidSupportAppcompatV72340Library UP-TO-DATE
:prepareComAndroidSupportSupportCompat2520Library UP-TO-DATE
:prepareComAndroidSupportSupportCoreUi2520Library UP-TO-DATE
:prepareComAndroidSupportSupportCoreUtils2520Library UP-TO-DATE
:prepareComAndroidSupportSupportFragment2520Library UP-TO-DATE
:prepareComAndroidSupportSupportMediaCompat2520Library UP-TO-DATE
:prepareComAndroidSupportSupportV42520Library UP-TO-DATE
:prepareComAndroidSupportSupportVectorDrawable2340Library UP-TO-DATE
:prepareComGoogleAndroidGmsPlayServicesBasement1104Library UP-TO-DATE
:prepareComGoogleAndroidGmsPlayServicesTasks1104Library UP-TO-DATE
:prepareComGoogleFirebaseFirebaseAnalytics1104Library UP-TO-DATE
:prepareComGoogleFirebaseFirebaseAnalyticsImpl1104Library UP-TO-DATE
:prepareComGoogleFirebaseFirebaseCommon1104Library UP-TO-DATE
:prepareComGoogleFirebaseFirebaseCore1104Library UP-TO-DATE
:prepareComGoogleFirebaseFirebaseIid1104Library UP-TO-DATE
:prepareComGoogleFirebaseFirebaseMessaging1104Library UP-TO-DATE
:prepareComSoundcloudAndroidAndroidCrop100Library UP-TO-DATE
:prepareOrgApacheCordovaCordovaLib623DebugLibrary UP-TO-DATE
:prepareDebugDependencies
:compileDebugAidl UP-TO-DATE
:compileDebugRenderscript UP-TO-DATE
:generateDebugBuildConfig UP-TO-DATE
:generateDebugResValues UP-TO-DATE
:processDebugGoogleServices
Parsing json file: C:\Users\Paul\frontend\front1clone2\platforms\android\google-services.json
:generateDebugResources
:mergeDebugResources UP-TO-DATE
:processDebugManifest UP-TO-DATE
:processDebugResources UP-TO-DATE
:generateDebugSources UP-TO-DATE
:incrementalDebugJavaCompilationSafeguard UP-TO-DATE
:compileDebugJavaWithJavac UP-TO-DATE
:compileDebugNdk UP-TO-DATE
:compileDebugSources UP-TO-DATE
:mergeDebugShaders UP-TO-DATE
:compileDebugShaders UP-TO-DATE
:generateDebugAssets UP-TO-DATE
:mergeDebugAssets UP-TO-DATE
:transformClassesWithDexForDebug UP-TO-DATE
:mergeDebugJniLibFolders UP-TO-DATE
:transformNative_libsWithMergeJniLibsForDebug UP-TO-DATE
:processDebugJavaRes UP-TO-DATE
:transformResourcesWithMergeJavaResForDebug UP-TO-DATE
:validateSigningDebug
:packageDebug UP-TO-DATE
:assembleDebug UP-TO-DATE
:cdvBuildDebug UP-TO-DATE

BUILD SUCCESSFUL

Total time: 2 mins 2.903 secs
Built the following apk(s):
        C:/Users/Paul/frontend/front1clone2/platforms/android/build/outputs/apk/android-debug.apk
ANDROID_HOME=C:\Users\Paul\AppData\Local\Android\Sdk
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_131
No target specified, deploying to device 'Y6'.
Skipping build...
Built the following apk(s):
        C:/Users/Paul/frontend/front1clone2/platforms/android/build/outputs/apk/android-debug.apk
Using apk: C:/Users/Paul/frontend/front1clone2/platforms/android/build/outputs/apk/android-debug.apk
Package name: io.ionic.starter
LAUNCH SUCCESS

I get a blank screen. On inspection I get this:

image

image

I didn't clone from github but rather followed step by step up to step 16. As I mentioned in the initial post; this was O.K. on mobile tests till about a month ago. We suspected it was the meteor-client.js file causing this - please see my 5th comment on the thread.

I can also email you the two meteor-client.js files from before and after this period of time we think something changed. someone has talked about these two lines;

_require('core-js/modules/es6.typed.uint8-array'); 
_require('core-js/modules/es6.typed.uint32-array');

but removing them has not solved the issue for me. And inspecting the old working meteor-client.js these lines are present so I suspect it could be something else. Again, because I am not that technical on the subject I can't tell which changes affected the android tests, Looking at both files (and I have compared at least 1000 lines of code) its easy to see the differences even if I don't understand much of whats going on.

$ npm -g list --depth=0

C:\Users\Paul\AppData\Roaming\npm
+-- cordova@7.0.1
+-- ionic@3.9.2
+-- meteor-client-bundler@0.3.0
+-- node-gyp@3.6.2
+-- typescript@2.5.2
`-- windows-build-tools@1.3.2

Hope this can throw more light.

darkbasic commented 6 years ago

I didn't clone from github but rather followed step by step up to step 16.

No please repeat the steps cloning the repo with git clone https://github.com/darkbasic/Ionic2CLI-Meteor-WhatsApp.git.

Shell 1:

$ git clone https://github.com/darkbasic/Ionic2CLI-Meteor-WhatsApp.git
$ cd Ionic2CLI-Meteor-WhatsApp/
$ npm install
$ npm uninstall sharp
$ cd api; meteor npm install sharp; cd ..
$ npm run api

Shell 2:

$ npm run meteor-client:bundle
$ npm run ionic:serve

Shell 3 (Android testing):

$ cordova platform add android
$ cordova run android

Which version of node and npm are you on? If sharp still creates problems you can simply skip npm uninstall sharp and cd api; meteor npm install sharp; cd .. becuase with node.js 8 and Meteor 1.6 it will work anyway.

pkitatta commented 6 years ago

O.K. so following your instructions to the dot:

I cloned the repo

$ npm install

npm WARN deprecated babili@0.1.2: babili has been renamed to babel-minify. Please update to babel-minify
npm WARN deprecated babel-preset-babili@0.1.4: babili has been renamed to babel-minify. Please update to babel-preset-minify
npm WARN deprecated object-keys@0.2.0: Please update to the latest object-keys
npm WARN prefer global node-gyp@3.6.2 should be installed with -g

> node-sass@4.5.3 install C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp\node_modules\node-sass
> node scripts/install.js

Cached binary found at C:\Users\Paul\AppData\Roaming\npm-cache\node-sass\4.5.3\win32-x64-51_binding.node

> sharp@0.18.2 install C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp\node_modules\sharp
> node-gyp rebuild

C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp\node_modules\sharp>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "" rebuild )
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
  VError.cpp
  VInterpolate.cpp
  VImage.cpp
  win_delay_load_hook.cc
     Creating library C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp\node_modules\sharp\build\Release\libvips-cpp.lib and object C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp\node_modules\sharp\build\Release\libvips-cpp.exp
  Generating code
  Finished generating code
  libvips-cpp.vcxproj -> C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp\node_modules\sharp\build\Release\\libvips-cpp.dll
  libvips-cpp.vcxproj -> C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp\node_modules\sharp\build\Release\libvips-cpp.pdb (Full PDB)
  common.cc
  metadata.cc
  operations.cc
  pipeline.cc
  sharp.cc
  utilities.cc
  win_delay_load_hook.cc
     Creating library C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp\node_modules\sharp\build\Release\sharp.lib and object C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp\node_modules\sharp\build\Release\sharp.exp
  Generating code
  Finished generating code
  sharp.vcxproj -> C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp\node_modules\sharp\build\Release\\sharp.node
  sharp.vcxproj -> C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp\node_modules\sharp\build\Release\sharp.pdb (Full PDB)
  Copying vendor/lib/libcroco-0.6-3.dll to build/Release\libcroco-0.6-3.dll
          1 file(s) copied.
  Copying vendor/lib/libfreetype-6.dll to build/Release\libfreetype-6.dll
          1 file(s) copied.
  Copying vendor/lib/libcairo-2.dll to build/Release\libcairo-2.dll
          1 file(s) copied.
  Copying vendor/lib/libexif-12.dll to build/Release\libexif-12.dll
          1 file(s) copied.
  Copying vendor/lib/libgdk_pixbuf-2.0-0.dll to build/Release\libgdk_pixbuf-2.0-0.dll
          1 file(s) copied.
  Copying vendor/lib/libtiff-5.dll to build/Release\libtiff-5.dll
          1 file(s) copied.
  Copying vendor/lib/liblcms2-2.dll to build/Release\liblcms2-2.dll
          1 file(s) copied.
  Copying vendor/lib/libcairo-gobject-2.dll to build/Release\libcairo-gobject-2.dll
          1 file(s) copied.
  Copying vendor/lib/libgif-7.dll to build/Release\libgif-7.dll
          1 file(s) copied.
  Copying vendor/lib/libxml2-2.dll to build/Release\libxml2-2.dll
          1 file(s) copied.
  Copying vendor/lib/libiconv-2.dll to build/Release\libiconv-2.dll
          1 file(s) copied.
  Copying vendor/lib/libjpeg-62.dll to build/Release\libjpeg-62.dll
          1 file(s) copied.
  Copying vendor/lib/libglib-2.0-0.dll to build/Release\libglib-2.0-0.dll
          1 file(s) copied.
  Copying vendor/lib/libfftw3-3.dll to build/Release\libfftw3-3.dll
          1 file(s) copied.
  Copying vendor/lib/libcairo-script-interpreter-2.dll to build/Release\libcairo-script-interpreter-2.dll
          1 file(s) copied.
  Copying vendor/lib/libgmodule-2.0-0.dll to build/Release\libgmodule-2.0-0.dll
          1 file(s) copied.
  Copying vendor/lib/libgthread-2.0-0.dll to build/Release\libgthread-2.0-0.dll
          1 file(s) copied.
  Copying vendor/lib/libfontconfig-1.dll to build/Release\libfontconfig-1.dll
          1 file(s) copied.
  Copying vendor/lib/librsvg-2-2.dll to build/Release\librsvg-2-2.dll
          1 file(s) copied.
  Copying vendor/lib/GNU.Gettext.dll to build/Release\GNU.Gettext.dll
          1 file(s) copied.
  Copying vendor/lib/zlib1.dll to build/Release\zlib1.dll
          1 file(s) copied.
  Copying vendor/lib/libstdc++-6.dll to build/Release\libstdc++-6.dll
          1 file(s) copied.
  Copying vendor/lib/libasprintf-0.dll to build/Release\libasprintf-0.dll
          1 file(s) copied.
  Copying vendor/lib/libgobject-2.0-0.dll to build/Release\libgobject-2.0-0.dll
          1 file(s) copied.
  Copying vendor/lib/libwebp-7.dll to build/Release\libwebp-7.dll
          1 file(s) copied.
  Copying vendor/lib/libgio-2.0-0.dll to build/Release\libgio-2.0-0.dll
          1 file(s) copied.
  Copying vendor/lib/libgcc_s_seh-1.dll to build/Release\libgcc_s_seh-1.dll
          1 file(s) copied.
  Copying vendor/lib/libquadmath-0.dll to build/Release\libquadmath-0.dll
          1 file(s) copied.
  Copying vendor/lib/libintl-8.dll to build/Release\libintl-8.dll
          1 file(s) copied.
  Copying vendor/lib/libpng16-16.dll to build/Release\libpng16-16.dll
          1 file(s) copied.
  Copying vendor/lib/libpango-1.0-0.dll to build/Release\libpango-1.0-0.dll
          1 file(s) copied.
  Copying vendor/lib/libpixman-1-0.dll to build/Release\libpixman-1-0.dll
          1 file(s) copied.
  Copying vendor/lib/libcharset-1.dll to build/Release\libcharset-1.dll
          1 file(s) copied.
  Copying vendor/lib/libpangocairo-1.0-0.dll to build/Release\libpangocairo-1.0-0.dll
          1 file(s) copied.
  Copying vendor/lib/libvips-42.dll to build/Release\libvips-42.dll
          1 file(s) copied.
  Copying vendor/lib/libgsf-1-114.dll to build/Release\libgsf-1-114.dll
          1 file(s) copied.
  Copying vendor/lib/libpangowin32-1.0-0.dll to build/Release\libpangowin32-1.0-0.dll
          1 file(s) copied.
  Copying vendor/lib/libffi-6.dll to build/Release\libffi-6.dll
          1 file(s) copied.
  Copying vendor/lib/libexpat-1.dll to build/Release\libexpat-1.dll
          1 file(s) copied.
  Copying vendor/lib/libssp-0.dll to build/Release\libssp-0.dll
          1 file(s) copied.

> uglifyjs-webpack-plugin@0.4.6 postinstall C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp\node_modules\uglifyjs-webpack-plugin
> node lib/post_install.js

> node-sass@4.5.3 postinstall C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp\node_modules\node-sass
> node scripts/build.js

Binary found at C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp\node_modules\node-sass\vendor\win32-x64-51\binding.node
Testing binary
Binary is fine
whatsapp@0.0.1 C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp
+-- @agm/core@1.0.0-beta.1
+-- @angular/common@4.1.3
+-- @angular/compiler@4.1.3
+-- @angular/compiler-cli@4.1.3
| +-- @angular/tsc-wrapped@4.1.3
| | `-- tsickle@0.21.6
| +-- minimist@1.2.0
| `-- reflect-metadata@0.1.10
+-- @angular/core@4.1.3
+-- @angular/forms@4.1.3
+-- @angular/http@4.1.3
+-- @angular/platform-browser@4.1.3
+-- @angular/platform-browser-dynamic@4.1.3
+-- @ionic-native/camera@4.2.1
+-- @ionic-native/contacts@4.2.1
+-- @ionic-native/core@3.12.1
+-- @ionic-native/crop@4.2.1
+-- @ionic-native/fcm@4.2.1
+-- @ionic-native/geolocation@4.2.1
+-- @ionic-native/image-picker@4.2.1
+-- @ionic-native/sim@4.2.1
+-- @ionic-native/splash-screen@3.12.1
+-- @ionic-native/status-bar@3.12.1
+-- @ionic/app-scripts@2.1.4
| +-- autoprefixer@7.1.1
| | +-- browserslist@2.4.0
| | | `-- electron-to-chromium@1.3.21
| | +-- caniuse-lite@1.0.30000727
| | +-- normalize-range@0.1.2
| | +-- num2fraction@1.2.2
| | +-- postcss@6.0.11
| | | `-- chalk@2.1.0
| | |   `-- ansi-styles@3.2.0
| | `-- postcss-value-parser@3.3.0
| +-- babili@0.1.2
| | +-- babel-cli@6.26.0
| | | +-- babel-core@6.26.0
| | | | +-- babel-generator@6.26.0
| | | | | +-- detect-indent@4.0.0
| | | | | +-- jsesc@1.3.0
| | | | | `-- trim-right@1.0.1
| | | | +-- babel-helpers@6.24.1
| | | | +-- babel-messages@6.23.0
| | | | +-- 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
| | | | `-- private@0.1.7
| | | +-- babel-polyfill@6.26.0
| | | | `-- regenerator-runtime@0.10.5
| | | +-- babel-register@6.26.0
| | | | `-- home-or-tmp@2.0.0
| | | +-- convert-source-map@1.5.0
| | | +-- fs-readdir-recursive@1.0.0
| | | +-- glob@7.1.2
| | | +-- lodash@4.17.4
| | | +-- output-file-sync@1.1.2
| | | +-- slash@1.0.0
| | | `-- v8flags@2.1.1
| | |   `-- user-home@1.1.1
| | `-- babel-preset-babili@0.1.4
| |   +-- babel-plugin-minify-builtins@0.1.3
| |   | `-- babel-helper-evaluate-path@0.1.0
| |   +-- babel-plugin-minify-constant-folding@0.1.3
| |   +-- babel-plugin-minify-dead-code-elimination@0.1.7
| |   | +-- babel-helper-mark-eval-scopes@0.1.1
| |   | +-- babel-helper-remove-or-void@0.1.1
| |   | `-- lodash.some@4.6.0
| |   +-- babel-plugin-minify-flip-comparisons@0.1.2
| |   | `-- babel-helper-is-void-0@0.1.1
| |   +-- babel-plugin-minify-guarded-expressions@0.1.2
| |   | `-- babel-helper-flip-expressions@0.1.2
| |   +-- babel-plugin-minify-infinity@0.1.2
| |   +-- babel-plugin-minify-mangle-names@0.1.3
| |   +-- babel-plugin-minify-numeric-literals@0.1.1
| |   +-- babel-plugin-minify-replace@0.1.2
| |   +-- babel-plugin-minify-simplify@0.1.2
| |   | +-- babel-helper-is-nodes-equiv@0.0.1
| |   | `-- babel-helper-to-multiple-sequence-expressions@0.1.1
| |   +-- babel-plugin-minify-type-constructors@0.1.2
| |   +-- babel-plugin-transform-inline-consecutive-adds@0.1.2
| |   +-- babel-plugin-transform-member-expression-literals@6.8.5
| |   +-- babel-plugin-transform-merge-sibling-variables@6.8.6
| |   +-- babel-plugin-transform-minify-booleans@6.8.3
| |   +-- babel-plugin-transform-property-literals@6.8.5
| |   +-- babel-plugin-transform-regexp-constructors@0.1.1
| |   +-- babel-plugin-transform-remove-console@6.8.5
| |   +-- babel-plugin-transform-remove-debugger@6.8.5
| |   +-- babel-plugin-transform-remove-undefined@0.1.2
| |   +-- babel-plugin-transform-simplify-comparison-operators@6.8.5
| |   +-- babel-plugin-transform-undefined-to-void@6.8.3
| |   `-- lodash.isplainobject@4.0.6
| +-- chalk@1.1.3
| | +-- ansi-styles@2.2.1
| | +-- escape-string-regexp@1.0.5
| | +-- has-ansi@2.0.0
| | | `-- ansi-regex@2.1.1
| | +-- strip-ansi@3.0.1
| | `-- supports-color@2.0.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
| | +-- glob-parent@2.0.0
| | +-- inherits@2.0.3
| | +-- is-binary-path@1.0.1
| | | `-- binary-extensions@1.10.0
| | +-- is-glob@2.0.1
| | | `-- is-extglob@1.0.0
| | +-- path-is-absolute@1.0.1
| | `-- readdirp@2.1.0
| |   +-- 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
| |   `-- set-immediate-shim@1.0.1
| +-- clean-css@3.4.27
| | +-- commander@2.8.1
| | | `-- graceful-readlink@1.0.1
| | `-- source-map@0.4.4
| |   `-- amdefine@1.0.1
| +-- cross-spawn@5.1.0
| | +-- lru-cache@4.1.1
| | | +-- pseudomap@1.0.2
| | | `-- yallist@2.1.2
| | +-- shebang-command@1.2.0
| | | `-- shebang-regex@1.0.0
| | `-- which@1.3.0
| |   `-- isexe@2.0.0
| +-- express@4.15.3
| | +-- accepts@1.3.4
| | | `-- negotiator@0.6.1
| | +-- array-flatten@1.1.1
| | +-- content-disposition@0.5.2
| | +-- content-type@1.0.4
| | +-- cookie@0.3.1
| | +-- cookie-signature@1.0.6
| | +-- debug@2.6.7
| | +-- depd@1.1.1
| | +-- encodeurl@1.0.1
| | +-- escape-html@1.0.3
| | +-- etag@1.8.0
| | +-- finalhandler@1.0.4
| | | `-- unpipe@1.0.0
| | +-- fresh@0.5.0
| | +-- merge-descriptors@1.0.1
| | +-- methods@1.1.2
| | +-- on-finished@2.3.0
| | | `-- ee-first@1.1.1
| | +-- parseurl@1.3.2
| | +-- path-to-regexp@0.1.7
| | +-- proxy-addr@1.1.5
| | | +-- forwarded@0.1.1
| | | `-- ipaddr.js@1.4.0
| | +-- qs@6.4.0
| | +-- range-parser@1.2.0
| | +-- send@0.15.3
| | | +-- debug@2.6.7
| | | +-- destroy@1.0.4
| | | +-- http-errors@1.6.2
| | | `-- mime@1.3.4
| | +-- serve-static@1.12.3
| | +-- setprototypeof@1.0.3
| | +-- statuses@1.3.1
| | +-- type-is@1.6.15
| | | `-- media-typer@0.3.0
| | +-- utils-merge@1.0.0
| | `-- vary@1.1.1
| +-- fs-extra@3.0.1
| | +-- graceful-fs@4.1.11
| | +-- jsonfile@3.0.1
| | `-- universalify@0.1.1
| +-- glob@7.1.1
| | +-- fs.realpath@1.0.0
| | +-- inflight@1.0.6
| | | `-- wrappy@1.0.2
| | +-- minimatch@3.0.4
| | | `-- brace-expansion@1.1.8
| | |   +-- balanced-match@1.0.0
| | |   `-- concat-map@0.0.1
| | `-- once@1.4.0
| +-- json-loader@0.5.4
| +-- magic-string@0.19.1
| | `-- vlq@0.2.2
| +-- node-sass@4.5.3
| | +-- async-foreach@0.1.3
| | +-- cross-spawn@3.0.1
| | +-- 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
| | | | `-- camelcase@2.1.1
| | | +-- decamelize@1.2.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
| | | | `-- 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
| | | | | `-- pinkie-promise@2.0.1
| | | | |   `-- pinkie@2.0.4
| | | | `-- read-pkg@1.1.0
| | | |   +-- load-json-file@1.1.0
| | | |   | +-- parse-json@2.2.0
| | | |   | | `-- error-ex@1.3.1
| | | |   | |   `-- is-arrayish@0.2.1
| | | |   | +-- pify@2.3.0
| | | |   | `-- strip-bom@2.0.0
| | | |   |   `-- is-utf8@0.2.1
| | | |   `-- path-type@1.1.0
| | | |     `-- pify@2.3.0
| | | +-- redent@1.0.0
| | | | +-- indent-string@2.1.0
| | | | | `-- repeating@2.0.1
| | | | |   `-- is-finite@1.0.2
| | | | `-- strip-indent@1.0.1
| | | `-- trim-newlines@1.0.0
| | +-- mkdirp@0.5.1
| | | `-- minimist@0.0.8
| | +-- node-gyp@3.6.2
| | | +-- fstream@1.0.11
| | | +-- nopt@3.0.6
| | | | `-- abbrev@1.1.0
| | | +-- osenv@0.1.4
| | | | `-- os-homedir@1.0.2
| | | +-- rimraf@2.6.2
| | | +-- 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
| | | | `-- readable-stream@2.3.3
| | | |   +-- isarray@1.0.0
| | | |   `-- string_decoder@1.0.3
| | | +-- console-control-strings@1.1.0
| | | +-- gauge@2.7.4
| | | | +-- aproba@1.1.2
| | | | +-- has-unicode@2.0.1
| | | | +-- string-width@1.0.2
| | | | | +-- code-point-at@1.1.0
| | | | | `-- is-fullwidth-code-point@1.0.0
| | | | |   `-- number-is-nan@1.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
| | |   +-- os-locale@1.4.0
| | |   +-- which-module@1.0.0
| | |   `-- yargs-parser@5.0.0
| | |     `-- camelcase@3.0.0
| | `-- stdout-stream@1.4.0
| |   `-- readable-stream@2.3.3
| |     +-- isarray@1.0.0
| |     `-- string_decoder@1.0.3
| +-- os-name@2.0.1
| | +-- macos-release@1.1.0
| | `-- win-release@1.1.1
| +-- postcss@5.2.17
| | +-- js-base64@2.3.1
| | +-- source-map@0.5.7
| | `-- supports-color@3.2.3
| |   `-- has-flag@1.0.0
| +-- proxy-middleware@0.15.0
| +-- rollup@0.42.0
| | `-- source-map-support@0.4.18
| +-- rollup-plugin-commonjs@8.0.2
| | +-- acorn@4.0.13
| | +-- estree-walker@0.3.1
| | `-- resolve@1.4.0
| |   `-- path-parse@1.0.5
| +-- rollup-plugin-json@2.3.0
| +-- rollup-plugin-node-builtins@2.1.2
| | +-- browserify-fs@1.0.0
| | | +-- level-filesystem@1.2.0
| | | | +-- concat-stream@1.6.0
| | | | | +-- readable-stream@2.3.3
| | | | | | +-- isarray@1.0.0
| | | | | | `-- string_decoder@1.0.3
| | | | | `-- typedarray@0.0.6
| | | | +-- fwd-stream@1.0.4
| | | | +-- level-blobs@0.1.7
| | | | +-- level-peek@1.0.6
| | | | | `-- level-fix-range@1.0.2
| | | | +-- level-sublevel@5.2.3
| | | | | +-- level-fix-range@2.0.0
| | | | | | `-- clone@0.1.19
| | | | | +-- level-hooks@4.5.0
| | | | | +-- string-range@1.2.2
| | | | | `-- xtend@2.0.6
| | | | |   +-- is-object@0.1.2
| | | | |   `-- object-keys@0.2.0
| | | | |     `-- is@0.2.7
| | | | +-- octal@1.0.0
| | | | `-- xtend@2.2.0
| | | +-- level-js@2.2.4
| | | | +-- abstract-leveldown@0.12.4
| | | | | `-- xtend@3.0.0
| | | | +-- idb-wrapper@1.7.1
| | | | +-- isbuffer@0.0.0
| | | | +-- ltgt@2.2.0
| | | | +-- typedarray-to-buffer@1.0.4
| | | | `-- xtend@2.1.2
| | | |   `-- object-keys@0.4.0
| | | `-- levelup@0.18.6
| | |   +-- bl@0.8.2
| | |   +-- deferred-leveldown@0.2.0
| | |   +-- prr@0.0.0
| | |   +-- readable-stream@1.0.34
| | |   +-- semver@2.3.2
| | |   `-- xtend@3.0.0
| | +-- buffer-es6@4.9.3
| | +-- crypto-browserify@3.11.1
| | | +-- browserify-cipher@1.0.0
| | | | +-- browserify-aes@1.0.8
| | | | | `-- 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-assert@1.0.0
| | | | | `-- 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.8
| | | +-- create-hmac@1.1.6
| | | +-- diffie-hellman@5.0.2
| | | | `-- miller-rabin@4.0.0
| | | +-- pbkdf2@3.0.14
| | | +-- public-encrypt@4.0.0
| | | `-- randombytes@2.0.5
| | `-- process-es6@0.11.6
| +-- rollup-plugin-node-globals@1.1.0
| | +-- acorn@4.0.13
| | +-- estree-walker@0.2.1
| | +-- magic-string@0.16.0
| | `-- rollup-pluginutils@1.5.2
| +-- rollup-plugin-node-resolve@3.0.0
| | +-- browser-resolve@1.11.2
| | | `-- resolve@1.1.7
| | +-- builtin-modules@1.1.1
| | `-- is-module@1.0.0
| +-- rollup-pluginutils@2.0.1
| | `-- micromatch@2.3.11
| |   +-- arr-diff@2.0.0
| |   | `-- arr-flatten@1.1.0
| |   +-- array-unique@0.2.1
| |   +-- braces@1.8.5
| |   | +-- expand-range@1.8.2
| |   | | `-- fill-range@2.2.3
| |   | |   +-- is-number@2.1.0
| |   | |   +-- isobject@2.1.0
| |   | |   | `-- isarray@1.0.0
| |   | |   +-- randomatic@1.1.7
| |   | |   | +-- is-number@3.0.0
| |   | |   | | `-- kind-of@3.2.2
| |   | |   | `-- kind-of@4.0.0
| |   | |   `-- repeat-string@1.6.1
| |   | +-- preserve@0.2.0
| |   | `-- repeat-element@1.1.2
| |   +-- expand-brackets@0.1.5
| |   | `-- is-posix-bracket@0.1.1
| |   +-- extglob@0.3.2
| |   +-- filename-regex@2.0.1
| |   +-- kind-of@3.2.2
| |   | `-- is-buffer@1.1.5
| |   +-- object.omit@2.0.1
| |   | +-- for-own@0.1.5
| |   | | `-- for-in@1.0.2
| |   | `-- is-extendable@0.1.1
| |   +-- parse-glob@3.0.4
| |   | +-- glob-base@0.3.0
| |   | `-- is-dotfile@1.0.3
| |   `-- regex-cache@0.4.4
| |     `-- is-equal-shallow@0.1.3
| |       `-- is-primitive@2.0.0
| +-- tiny-lr@1.0.4
| | +-- body@5.1.0
| | | +-- continuable-cache@0.3.1
| | | +-- error@7.0.2
| | | | +-- string-template@0.2.1
| | | | `-- xtend@4.0.1
| | | +-- raw-body@1.1.7
| | | | `-- bytes@1.0.0
| | | `-- safe-json-parse@1.0.1
| | +-- debug@2.2.0
| | | `-- ms@0.7.1
| | +-- faye-websocket@0.10.0
| | | `-- websocket-driver@0.7.0
| | |   +-- http-parser-js@0.4.5
| | |   `-- websocket-extensions@0.1.2
| | +-- livereload-js@2.2.2
| | `-- object-assign@4.1.1
| +-- tslint@5.7.0
| | +-- babel-code-frame@6.26.0
| | | +-- esutils@2.0.2
| | | `-- js-tokens@3.0.2
| | +-- colors@1.1.2
| | +-- commander@2.11.0
| | +-- diff@3.3.1
| | +-- tslib@1.7.1
| | `-- tsutils@2.8.2
| +-- tslint-eslint-rules@4.1.1
| | +-- doctrine@0.7.2
| | | `-- esutils@1.1.6
| | `-- tsutils@1.9.1
| +-- uglify-js@3.1.0
| +-- webpack@3.5.6
| | +-- acorn@5.1.2
| | +-- acorn-dynamic-import@2.0.2
| | | `-- acorn@4.0.13
| | +-- UNMET PEER DEPENDENCY ajv@5.2.2
| | | +-- 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
| | +-- async@2.5.0
| | +-- enhanced-resolve@3.4.1
| | +-- escope@3.6.0
| | | +-- es6-map@0.1.5
| | | | +-- d@1.0.0
| | | | +-- es5-ext@0.10.30
| | | | +-- 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.3
| | +-- json5@0.5.1
| | +-- loader-runner@2.3.0
| | +-- loader-utils@1.1.0
| | | +-- big.js@3.1.3
| | | `-- emojis-list@2.1.0
| | +-- memory-fs@0.4.1
| | | +-- errno@0.1.4
| | | `-- readable-stream@2.3.3
| | |   +-- isarray@1.0.0
| | |   `-- string_decoder@1.0.3
| | +-- 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
| | | | `-- isarray@1.0.0
| | | +-- console-browserify@1.1.0
| | | | `-- date-now@0.1.4
| | | +-- constants-browserify@1.0.0
| | | +-- 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
| | | +-- readable-stream@2.3.3
| | | | +-- isarray@1.0.0
| | | | `-- string_decoder@1.0.3
| | | +-- stream-browserify@2.0.1
| | | | `-- readable-stream@2.3.3
| | | |   +-- isarray@1.0.0
| | | |   `-- string_decoder@1.0.3
| | | +-- stream-http@2.7.2
| | | | +-- builtin-status-codes@3.0.0
| | | | +-- readable-stream@2.3.3
| | | | | +-- isarray@1.0.0
| | | | | `-- string_decoder@1.0.3
| | | | `-- 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
| | |   `-- indexof@0.0.1
| | +-- 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
| | |   +-- 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
| | |     | | `-- lazy-cache@1.0.4
| | |     | +-- right-align@0.1.3
| | |     | `-- wordwrap@0.0.2
| | |     `-- window-size@0.1.0
| | +-- watchpack@1.4.0
| | +-- webpack-sources@1.0.1
| | | `-- source-list-map@2.0.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
| |   | | +-- npm-run-path@2.0.2
| |   | | | `-- path-key@2.0.1
| |   | | `-- 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
| |   |   | +-- pify@2.3.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
| +-- ws@1.1.1
| | +-- options@0.0.6
| | `-- ultron@1.0.2
| `-- xml2js@0.4.17
|   +-- sax@1.2.4
|   `-- xmlbuilder@4.2.1
+-- @ionic/storage@2.0.1
| +-- @types/localforage@0.0.30
| +-- localforage@1.4.3
| | `-- lie@3.0.2
| |   +-- es3ify@0.1.4
| |   | +-- esprima-fb@3001.1.0-dev-harmony-fb
| |   | +-- jstransform@3.0.0
| |   | | +-- base62@0.1.1
| |   | | `-- source-map@0.1.31
| |   | `-- through@2.3.8
| |   +-- immediate@3.0.6
| |   +-- inline-process-browser@1.0.0
| |   | +-- falafel@1.2.0
| |   | | +-- acorn@1.2.2
| |   | | +-- foreach@2.0.5
| |   | | `-- object-keys@1.0.11
| |   | `-- through2@0.6.5
| |   `-- unreachable-branch-transform@0.3.0
| |     +-- esmangle-evaluator@1.0.1
| |     `-- recast@0.10.43
| |       +-- ast-types@0.8.15
| |       `-- esprima-fb@15001.1001.0-dev-harmony-fb
| `-- localforage-cordovasqlitedriver@1.5.0
+-- @types/bluebird@3.5.10
+-- @types/meteor@1.4.6
| `-- @types/connect@3.4.31
+-- @types/meteor-accounts-phone@0.0.5
+-- @types/meteor-collection-hooks@0.8.2
+-- @types/meteor-publish-composite@0.0.32
+-- @types/node-fetch@1.6.7
| `-- @types/node@8.0.28
+-- @types/underscore@1.8.3
+-- angular2-moment@1.7.0
+-- babel-runtime@6.26.0
| +-- core-js@2.5.1
| `-- regenerator-runtime@0.11.0
+-- bluebird@3.5.0
+-- com.synconset.imagepicker@1.0.0  (git+https://github.com/darkbasic/ImagePicker.git#64c68b4633451640bccc57d144df75383ec7c8e3)
+-- cordova-android@6.2.3
| +-- cordova-common@2.0.2
| | +-- ansi@0.3.1
| | +-- bplist-parser@0.1.1
| | | `-- big-integer@1.6.22
| | +-- cordova-registry-mapper@1.1.15
| | +-- glob@5.0.15
| | | +-- inflight@1.0.6
| | | | `-- wrappy@1.0.2
| | | +-- inherits@2.0.3
| | | +-- once@1.4.0
| | | `-- path-is-absolute@1.0.1
| | +-- minimatch@3.0.3
| | | `-- brace-expansion@1.1.7
| | |   +-- balanced-match@0.4.2
| | |   `-- concat-map@0.0.1
| | +-- osenv@0.1.4
| | | +-- os-homedir@1.0.2
| | | `-- os-tmpdir@1.0.2
| | +-- plist@1.2.0
| | | +-- base64-js@0.0.8
| | | +-- util-deprecate@1.0.2
| | | +-- xmlbuilder@4.0.0
| | | | `-- lodash@3.10.1
| | | `-- xmldom@0.1.27
| | +-- semver@5.3.0
| | +-- underscore@1.8.3
| | `-- unorm@1.4.1
| +-- elementtree@0.1.6
| | `-- sax@0.3.5
| +-- nopt@3.0.6
| | `-- abbrev@1.1.0
| +-- properties-parser@0.2.3
| +-- q@1.5.0
| `-- shelljs@0.5.3
+-- cordova-plugin-camera@2.4.1
+-- cordova-plugin-compat@1.1.0
+-- cordova-plugin-console@1.0.7
+-- cordova-plugin-contacts@2.3.1
+-- cordova-plugin-crop@0.4.0
+-- cordova-plugin-device@1.1.6
+-- cordova-plugin-facebook4@1.7.4  (git+https://github.com/darkbasic/cordova-plugin-facebook4.git#4edf08a927d29a47dcb738a9ed30dd783ac62a30)
+-- cordova-plugin-fcm@2.1.2  (git+https://github.com/darkbasic/cordova-plugin-fcm.git#1c28c84d7c1ac93431f89a3ae011c89fa989ed73)
+-- cordova-plugin-geolocation@2.4.3
+-- cordova-plugin-sim@1.3.3
+-- cordova-plugin-sms-receiver@0.1.6
+-- cordova-plugin-splashscreen@4.0.3
+-- cordova-plugin-statusbar@2.2.3
+-- cordova-plugin-whitelist@1.3.2
+-- fb@2.0.0
| +-- any-promise@1.3.0
| +-- core-decorators@0.17.0
| +-- debug@2.6.8
| | `-- ms@2.0.0
| `-- 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
|   | `-- 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.1
|   | | +-- assert-plus@1.0.0
|   | | +-- extsprintf@1.3.0
|   | | +-- json-schema@0.2.3
|   | | `-- verror@1.10.0
|   | |   `-- assert-plus@1.0.0
|   | `-- sshpk@1.13.1
|   |   +-- 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
|   |   +-- 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@0.2.0
|   +-- safe-buffer@5.1.1
|   +-- stringstream@0.0.5
|   +-- tough-cookie@2.3.2
|   +-- tunnel-agent@0.6.0
|   `-- uuid@3.1.0
+-- ionic-angular@3.6.0
+-- ionic-plugin-keyboard@2.2.1
+-- ionicons@3.0.0
+-- meteor-node-stubs@0.2.11
| +-- asn1.js@4.9.0
| +-- assert@1.4.1
| +-- balanced-match@0.4.2
| +-- Base64@0.2.1
| +-- base64-js@1.2.0
| +-- bn.js@4.11.6
| +-- brace-expansion@1.1.7
| +-- brorand@1.0.6
| +-- browserify-aes@1.0.6
| +-- browserify-cipher@1.0.0
| +-- browserify-des@1.0.0
| +-- browserify-rsa@4.0.1
| +-- browserify-sign@4.0.0
| +-- browserify-zlib@0.1.4
| +-- buffer@4.9.1
| +-- buffer-xor@1.0.3
| +-- cipher-base@1.0.3
| +-- concat-map@0.0.1
| +-- console-browserify@1.1.0
| +-- constants-browserify@1.0.0
| +-- create-ecdh@4.0.0
| +-- create-hash@1.1.2
| +-- create-hmac@1.1.4
| +-- crypto-browserify@3.11.0
| +-- date-now@0.1.4
| +-- des.js@1.0.0
| +-- diffie-hellman@5.0.2
| +-- domain-browser@1.1.7
| +-- elliptic@6.3.2
| +-- events@1.1.1
| +-- evp_bytestokey@1.0.0
| +-- fs.realpath@1.0.0
| +-- glob@7.1.2
| +-- hash.js@1.0.3
| +-- http-browserify@1.7.0
| +-- https-browserify@0.0.1
| +-- ieee754@1.1.8
| +-- indexof@0.0.1
| +-- inflight@1.0.6
| +-- inherits@2.0.1
| +-- isarray@1.0.0
| +-- miller-rabin@4.0.0
| +-- minimalistic-assert@1.0.0
| +-- minimatch@3.0.4
| +-- once@1.4.0
| +-- os-browserify@0.2.1
| +-- pako@0.2.9
| +-- parse-asn1@5.0.0
| +-- path-browserify@0.0.0
| +-- path-is-absolute@1.0.1
| +-- pbkdf2@3.0.9
| +-- process@0.11.9
| +-- process-nextick-args@1.0.7
| +-- public-encrypt@4.0.0
| +-- punycode@1.4.1
| +-- querystring@0.2.0
| +-- querystring-es3@0.2.1
| +-- randombytes@2.0.3
| +-- readable-stream@2.2.10  (git+https://github.com/meteor/readable-stream.git#2e9112d7d31a2af6e0682db0e18679b1e5fd4694)
| +-- rimraf@2.6.1  extraneous
| +-- ripemd160@1.0.1
| +-- safe-buffer@5.0.1
| +-- sha.js@2.4.8
| +-- stream-browserify@2.0.1
| +-- string_decoder@1.0.1
| +-- timers-browserify@1.4.2
| +-- tty-browserify@0.0.0
| +-- url@0.11.0
| | `-- punycode@1.3.2
| +-- util@0.10.3
| +-- util-deprecate@1.0.2
| +-- vm-browserify@0.0.4
| `-- wrappy@1.0.2
+-- meteor-rxjs@0.4.7
+-- meteor-typings@1.4.1
+-- moment@2.18.1
+-- node-fetch@1.7.3
| +-- encoding@0.1.12
| | `-- iconv-lite@0.4.19
| `-- is-stream@1.1.0
+-- rxjs@5.4.0
| `-- symbol-observable@1.0.4
+-- sharp@0.18.2
| +-- caw@2.0.1
| | +-- get-proxy@2.1.0
| | | `-- npm-conf@1.1.2
| | |   +-- config-chain@1.1.11
| | |   | +-- ini@1.3.4
| | |   | `-- proto-list@1.2.4
| | |   `-- pify@3.0.0
| | +-- isurl@1.0.0
| | | +-- has-to-string-tag-x@1.4.1
| | | | `-- has-symbol-support-x@1.4.1
| | | `-- is-object@1.0.1
| | `-- url-to-options@1.0.1
| +-- color@2.0.0
| | +-- color-convert@1.9.0
| | | `-- color-name@1.1.3
| | `-- color-string@1.5.2
| |   `-- simple-swizzle@0.2.2
| |     `-- is-arrayish@0.3.1
| +-- got@7.1.0
| | +-- decompress-response@3.3.0
| | | `-- mimic-response@1.0.0
| | +-- duplexer3@0.1.4
| | +-- get-stream@3.0.0
| | +-- is-plain-obj@1.1.0
| | +-- is-retry-allowed@1.1.0
| | +-- lowercase-keys@1.0.0
| | +-- p-cancelable@0.3.0
| | +-- p-timeout@1.2.0
| | | `-- p-finally@1.0.0
| | +-- timed-out@4.0.1
| | `-- url-parse-lax@1.0.0
| |   `-- prepend-http@1.0.4
| +-- nan@2.7.0
| +-- semver@5.4.1
| `-- tar@3.2.1
|   +-- chownr@1.0.1
|   +-- minipass@2.2.1
|   +-- minizlib@1.0.3
|   `-- yallist@3.0.2
+-- sw-toolbox@3.6.0
| +-- path-to-regexp@1.7.0
| | `-- isarray@0.0.1
| `-- serviceworker-cache-polyfill@4.0.0
+-- tmp@0.0.33
| `-- os-tmpdir@1.0.2
+-- typescript@2.3.4
+-- typescript-extends@1.0.1
`-- zone.js@0.8.12

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN ajv-keywords@2.1.0 requires a peer of ajv@>=5.0.0 but none was installed.

$ npm uninstall sharp

- chownr@1.0.1 node_modules\chownr
- duplexer3@0.1.4 node_modules\duplexer3
- has-symbol-support-x@1.4.1 node_modules\has-symbol-support-x
- has-to-string-tag-x@1.4.1 node_modules\has-to-string-tag-x
- ini@1.3.4 node_modules\ini
- is-arrayish@0.3.1 node_modules\is-arrayish
- is-object@1.0.1 node_modules\is-object
- is-plain-obj@1.1.0 node_modules\is-plain-obj
- is-retry-allowed@1.1.0 node_modules\is-retry-allowed
- isurl@1.0.0 node_modules\isurl
- lowercase-keys@1.0.0 node_modules\lowercase-keys
- mimic-response@1.0.0 node_modules\mimic-response
- decompress-response@3.3.0 node_modules\decompress-response
- p-cancelable@0.3.0 node_modules\p-cancelable
- p-timeout@1.2.0 node_modules\p-timeout
- pify@3.0.0 node_modules\pify
- prepend-http@1.0.4 node_modules\prepend-http
- proto-list@1.2.4 node_modules\proto-list
- config-chain@1.1.11 node_modules\config-chain
- npm-conf@1.1.2 node_modules\npm-conf
- get-proxy@2.1.0 node_modules\get-proxy
- simple-swizzle@0.2.2 node_modules\simple-swizzle
- color-string@1.5.2 node_modules\color-string
- color@2.0.0 node_modules\color
- timed-out@4.0.1 node_modules\timed-out
- url-parse-lax@1.0.0 node_modules\url-parse-lax
- url-to-options@1.0.1 node_modules\url-to-options
- caw@2.0.1 node_modules\caw
- got@7.1.0 node_modules\got
- yallist@3.0.2 node_modules\yallist
- minipass@2.2.1 node_modules\minipass
- minizlib@1.0.3 node_modules\minizlib
- tar@3.2.1 node_modules\tar
- sharp@0.18.2 node_modules\sharp
npm WARN ajv-keywords@2.1.0 requires a peer of ajv@>=5.0.0 but none was installed.

I disabled sharp at this moment

$ npm run api

> whatsapp@0.0.1 api C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp
> cd api && export ROOT_URL=http://meteor.linuxsystems.it && meteor run --settings private/settings.json

'export' is not recognized as an internal or external command,
operable program or batch file.

npm ERR! Windows_NT 10.0.10586
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "api"
npm ERR! node v7.10.1
npm ERR! npm  v4.2.0
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! whatsapp@0.0.1 api: `cd api && export ROOT_URL=http://meteor.linuxsystems.it && meteor run --settings private/settings.json`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the whatsapp@0.0.1 api script 'cd api && export ROOT_URL=http://meteor.linuxsystems.it && meteor run --settings private/settings.json'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the whatsapp package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     cd api && export ROOT_URL=http://meteor.linuxsystems.it && meteor run --settings private/settings.json
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs whatsapp
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls whatsapp
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     C:\Users\Paul\AppData\Roaming\npm-cache\_logs\2017-09-13T01_41_01_119Z-debug.log

I removed all the export ROOT_URL=http://meteor.linuxsystems.it from the package.json file and manually added the variable to the environment variables (hope this is the legit workaround) - for windows.

re-run

$ npm run api

> whatsapp@0.0.1 api C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp
> cd api && meteor run --settings private/settings.json

[[[[[ C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp\api ]]]]]

=> Started proxy.
=> Started MongoDB.
C:\Users\Paul\AppData\Local\.meteor\packages\meteor-tool\1.6.0-beta.26\mt-os.windows.x86_32\dev_bundle\lib\node_modules\meteor-promise\promise_server.js:218
      throw error;
      ^

Error: ENOTEMPTY: directory not empty, rmdir 'C:\Users\Paul\AppData\Local\Temp\.tmp1y16yq5.d49z\mobile-experience-1.0.5-beta.26'
    at Object.fs.rmdirSync (fs.js:852:18)
    at rmkidsSync (C:\Users\Paul\AppData\Local\.meteor\packages\meteor-tool\1.6.0-beta.26\mt-os.windows.x86_32\dev_bundle\lib\node_modules\rimraf\rimraf.js:355:25)
    at rmdirSync (C:\Users\Paul\AppData\Local\.meteor\packages\meteor-tool\1.6.0-beta.26\mt-os.windows.x86_32\dev_bundle\lib\node_modules\rimraf\rimraf.js:333:7)
    at Function.rimrafSync [as sync] (C:\Users\Paul\AppData\Local\.meteor\packages\meteor-tool\1.6.0-beta.26\mt-os.windows.x86_32\dev_bundle\lib\node_modules\rimraf\rimraf.js:303:9)
    at Object.files.rm_recursive.path [as rm_recursive] (C:\tools\fs\files.js:303:12)
    at Object.files.rename (C:\tools\fs\files.js:1776:13)
    at Object.files.extractTarGz (C:\tools\fs\files.js:767:9)
    at Object.exports._extractAndConvert (C:\tools\packaging\tropohouse.js:50:9)
    at buildmessage.enterJob (C:\tools\packaging\tropohouse.js:505:42)
    at C:\tools\utils\buildmessage.js:359:18
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at C:\tools\utils\buildmessage.js:352:34
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at C:\tools\utils\buildmessage.js:350:23
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at Object.enterJob (C:\tools\utils\buildmessage.js:324:26)
    at _.each (C:\tools\packaging\tropohouse.js:502:24)
    at Array.forEach (<anonymous>)
    at Function._.each._.forEach (C:\Users\Paul\AppData\Local\.meteor\packages\meteor-tool\1.6.0-beta.26\mt-os.windows.x86_32\dev_bundle\lib\node_modules\underscore\underscore.js:79:11)
    at C:\tools\packaging\tropohouse.js:469:11
    at C:\tools\utils\buildmessage.js:359:18
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at C:\tools\utils\buildmessage.js:352:34
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at C:\tools\utils\buildmessage.js:350:23
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at Object.enterJob (C:\tools\utils\buildmessage.js:324:26)
    at Object.download (C:\tools\packaging\tropohouse.js:427:20)
    at C:\tools\packaging\tropohouse.js:613:18
    at enterJobAsync.then (C:\tools\utils\buildmessage.js:572:21)
    at C:\Users\Paul\AppData\Local\.meteor\packages\meteor-tool\1.6.0-beta.26\mt-os.windows.x86_32\dev_bundle\lib\node_modules\meteor-promise\fiber_pool.js:43:40
 => awaited here:
    at Promise.await (C:\Users\Paul\AppData\Local\.meteor\packages\meteor-tool\1.6.0-beta.26\mt-os.windows.x86_32\dev_bundle\lib\node_modules\meteor-promise\promise_server.js:60:12)
    at Object.forkJoin (C:\tools\utils\buildmessage.js:567:10)
    at exports.Tropohouse.downloadPackagesMissingFromMap (C:\tools\packaging\tropohouse.js:609:18)
    at C:\tools\project-context.js:819:25
    at C:\tools\utils\buildmessage.js:359:18
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at C:\tools\utils\buildmessage.js:352:34
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at C:\tools\utils\buildmessage.js:350:23
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at Object.enterJob (C:\tools\utils\buildmessage.js:324:26)
    at C:\tools\project-context.js:818:20
    at C:\tools\packaging\catalog\catalog.js:100:5
    at C:\tools\utils\buildmessage.js:271:13
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at C:\tools\utils\buildmessage.js:264:29
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at C:\tools\utils\buildmessage.js:262:18
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at C:\tools\utils\buildmessage.js:253:23
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at Object.capture (C:\tools\utils\buildmessage.js:252:19)
    at Object.catalog.runAndRetryWithRefreshIfHelpful (C:\tools\packaging\catalog\catalog.js:99:31)
    at ProjectContext._downloadMissingPackages (C:\tools\project-context.js:817:13)
    at C:\tools\project-context.js:285:9
    at C:\tools\utils\buildmessage.js:359:18
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at C:\tools\utils\buildmessage.js:352:34
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at C:\tools\utils\buildmessage.js:350:23
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at Object.enterJob (C:\tools\utils\buildmessage.js:324:26)
    at ProjectContext._completeStagesThrough (C:\tools\project-context.js:275:18)
    at Profile.run (C:\tools\project-context.js:267:12)
    at Function.run (C:\tools\tool-env\profile.js:490:12)
    at ProjectContext.prepareProjectForBuild (C:\tools\project-context.js:266:13)
    at C:\tools\runners\run-app.js:553:29
    at C:\tools\utils\buildmessage.js:271:13
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at C:\tools\utils\buildmessage.js:264:29
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at C:\tools\utils\buildmessage.js:262:18
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at C:\tools\utils\buildmessage.js:253:23
    at exports.EnvironmentVariable.withValue (C:\tools\utils\fiber-helpers.js:89:14)
    at Object.capture (C:\tools\utils\buildmessage.js:252:19)
    at bundleApp (C:\tools\runners\run-app.js:552:31)
    at AppRunner._runOnce (C:\tools\runners\run-app.js:621:35)
    at AppRunner._fiber (C:\tools\runners\run-app.js:879:28)
    at C:\tools\runners\run-app.js:407:12

npm ERR! Windows_NT 10.0.10586
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "api"
npm ERR! node v7.10.1
npm ERR! npm  v4.2.0
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! whatsapp@0.0.1 api: `cd api && meteor run --settings private/settings.json`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the whatsapp@0.0.1 api script 'cd api && meteor run --settings private/settings.json'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the whatsapp package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     cd api && meteor run --settings private/settings.json
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs whatsapp
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls whatsapp
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     C:\Users\Paul\AppData\Roaming\npm-cache\_logs\2017-09-13T02_04_28_551Z-debug.log

So I deleted the api folder and installed a new server using meteor create --release 1.6-beta.26 api and then I copied the original content of the deleted api minus the .meteor folder. And then linked the node_modules again. I also added all these meteor packages from the deleted folder

barbatus:typescript
check
accounts-base
npm-bcrypt
mys:accounts-phone
reywood:publish-composite
jalik:ufs
jalik:ufs-gridfs
btafel:accounts-facebook-cordova
service-configuration
darkbasic:link-accounts
promise

So again...

$ npm run api

> whatsapp@0.0.1 api C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp
> cd api && meteor run --settings private/settings.json

[[[[[ C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp\api ]]]]]

=> Started proxy.
=> Started MongoDB.
server/collections/pictures.ts (2, 26): Cannot find module 'meteor/jalik:ufs'.
W20170913-06:04:14.839(3)? (STDERR) Note: you are using a pure-JavaScript implementation of bcrypt.
W20170913-06:04:15.340(3)? (STDERR) While this implementation will work correctly, it is known to be
W20170913-06:04:15.341(3)? (STDERR) approximately three times slower than the native implementation.
W20170913-06:04:15.341(3)? (STDERR) In order to use the native implementation instead, run
W20170913-06:04:15.341(3)? (STDERR)
W20170913-06:04:15.341(3)? (STDERR)   meteor npm install --save bcrypt
W20170913-06:04:15.342(3)? (STDERR)
W20170913-06:04:15.342(3)? (STDERR) in the root directory of your application.
I20170913-06:04:15.343(3)? Meteor settings for accounts-facebook-cordova not configured correctly.
=> Started your app.

=> App running at: http://meteor.linuxsystems.it
   Type Control-C twice to stop.

Then

$ npm run meteor-client:bundle

> whatsapp@0.0.1 meteor-client:bundle C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp
> meteor-client bundle -s api -c meteor-client.config.json

Created a new Meteor app in
'C:\Users\Paul\AppData\Local\Temp\tmp-4444fErbjLHRZL0i'.

To run your new app:
  cd C:\Users\Paul\AppData\Local\Temp\tmp-4444fErbjLHRZL0i
  meteor

If you are new to Meteor, try some of the learning resources here:
  https://www.meteor.com/tutorials

meteor create --bare to create an empty app.
meteor create --full to create a scaffolded app.

up to date in 1.386s

Changes to your project's package version selections:

accounts-base                     added, version 1.4.0-beta.26
accounts-oauth                    added, version 1.1.15
autopublish                       removed from your project
barbatus:typescript               added, version 0.6.11
barbatus:typescript-compiler      added, version 0.9.11
barbatus:typescript-runtime       added, version 1.0.2
btafel:accounts-facebook-cordova  added, version 0.0.7
darkbasic:link-accounts           added, version 1.3.2
ddp-rate-limiter                  added, version 1.0.7
email                             added, version 1.2.3
facebook-oauth                    added, version 1.4.0-beta.26
insecure                          removed from your project
jalik:ufs                         added, version 0.7.4_1
jalik:ufs-gridfs                  added, version 0.2.1
localstorage                      added, version 1.2.0-beta.26
matb33:collection-hooks           added, version 0.8.4
mys:accounts-phone                added, version 0.0.21
npm-bcrypt                        added, version 0.9.3
oauth                             added, version 1.2.0-beta.26
oauth2                            added, version 1.2.0-beta.26
rate-limit                        added, version 1.0.8
reywood:publish-composite         added, version 1.5.2
service-configuration             added, version 1.0.11
sha                               added, version 1.0.9
srp                               added, version 1.0.10

WARNING: The output directory is under your source tree.
         Your generated files may get interpreted as source code!
         Consider building into a different directory instead
         meteor build ../output

$ npm run ionic:serve

> whatsapp@0.0.1 ionic:serve C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp
> ionic-app-scripts serve

[08:14:14]  ionic-app-scripts 2.1.4
[08:14:14]  watch started ...
[08:14:14]  build dev started ...
[08:14:14]  clean started ...
[08:14:14]  clean finished in 4 ms
[08:14:14]  copy started ...
[08:14:14]  transpile started ...
[08:14:33]  typescript: C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/api/server/collections/chats.ts, line: 8
            Property 'after' does not exist on type 'Collection<Chat>'.

       L7:  // Dispose unused messages
       L8:  Chats.collection.after.remove(function (userId, doc) {
       L9:    Messages.collection.remove({ chatId: doc._id });

[08:14:33]  typescript: C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/api/server/collections/users.ts, line: 9
            Property 'after' does not exist on type 'Collection<User>'.

       L8:  // Dispose unused profile pictures
       L9:  Meteor.users.after.update(function (userId, doc, fieldNames, modifier, options) {
      L10:    if (!doc.profile) return;

[08:14:33]  typescript: C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/services/phone.ts, line: 127
            Property 'requestPhoneVerification' does not exist on type 'typeof Accounts'.

     L126:  return new Promise<void>((resolve, reject) => {
     L127:    Accounts.requestPhoneVerification(phoneNumber, (e: Error) => {
     L128:      if (e) {

[08:14:33]  typescript: C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/services/phone.ts, line: 139
            Property 'verifyPhone' does not exist on type 'typeof Accounts'.

     L138:  return new Promise<void>((resolve, reject) => {
     L139:    Accounts.verifyPhone(phoneNumber, code, (e: Error) => {
     L140:      if (e) {

[08:14:33]  typescript error
            Cannot find type definition file for '@types/meteor-accounts-phone'.

[08:14:33]  typescript error
            Cannot find type definition file for '@types/meteor-collection-hooks'.

[08:14:33]  typescript error
            Cannot find type definition file for '@types/underscore'.

[08:14:33]  dev server running: http://localhost:8100/

[08:14:34]  copy finished in 20.44 s
[08:14:35]  watch ready in 20.78 s

I add

"rxjs":["node_modules/rxjs"]

to the path and

"typeRoots": [
      "node_modules/@types"
    ]

as opposed to

 "types": [
      "@types/underscore",
      "@types/meteor-accounts-phone",
      "@types/meteor-collection-hooks"
    ]

in the tsconfig.json root file which takes care of the transpile errors

$ npm run ionic:serve

> whatsapp@0.0.1 ionic:serve C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp
> ionic-app-scripts serve

[08:32:29]  ionic-app-scripts 2.1.4
[08:32:29]  watch started ...
[08:32:29]  build dev started ...
[08:32:29]  clean started ...
[08:32:29]  clean finished in 4 ms
[08:32:29]  copy started ...
[08:32:29]  transpile started ...
[08:32:37]  transpile finished in 7.97 s
[08:32:37]  preprocess started ...
[08:32:37]  deeplinks started ...
[08:32:38]  deeplinks finished in 287 ms
[08:32:38]  preprocess finished in 311 ms
[08:32:38]  webpack started ...
[08:32:39]  copy finished in 9.40 s
[08:33:12]  webpack finished in 34.14 s
[08:33:12]  sass started ...
[08:33:18]  sass finished in 5.94 s
[08:33:18]  postprocess started ...
[08:33:18]  postprocess finished in 18 ms
[08:33:18]  lint started ...
[08:33:18]  build dev finished in 48.46 s
[08:33:18]  watch ready in 48.75 s
[08:33:18]  dev server running: http://localhost:8100/

[08:33:33]  tslint: C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/api/server/collections/chats.ts, line: 2
            All imports are unused.

       L1:  import { MongoObservable } from 'meteor-rxjs';
       L2:  import { Chat } from '../models';
       L3:  import { Messages } from './messages';

[08:33:33]  tslint: ...Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/api/server/collections/messages.ts, line: 2
            All imports are unused.

       L1:  import { MongoObservable } from 'meteor-rxjs';
       L2:  import { Message } from '../models';

[08:33:33]  tslint: ...Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/api/server/collections/pictures.ts, line: 7
            'T' is declared but never used.

       L7:  export interface PicturesCollection<T> extends MongoObservable.Collection<T> {
       L8:    getPictureUrl(selector?: Object | string, platform?: string): string;

[08:33:33]  tslint: C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/api/server/collections/users.ts, line: 3
            All imports are unused.

       L2:  import { Meteor } from 'meteor/meteor';
       L3:  import { User } from '../models';
       L4:  import { Pictures } from './pictures';

[08:33:33]  tslint: ...s/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/pages/messages/location-message.ts, line: 1
            'OnInit' is declared but never used.

       L1:  import { Component, OnInit, OnDestroy } from '@angular/core';
       L2:  import { Platform, ViewController } from 'ionic-angular';

[08:33:33]  tslint: ...s/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/pages/messages/location-message.ts, line: 1
            'OnDestroy' is declared but never used.

       L1:  import { Component, OnInit, OnDestroy } from '@angular/core';
       L2:  import { Platform, ViewController } from 'ionic-angular';

[08:33:33]  tslint: ...s/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/pages/messages/location-message.ts, line: 5
            'Subscription' is declared but never used.

       L4:  import { Location } from 'api/models';
       L5:  import { Observable, Subscription } from 'rxjs';

[08:33:33]  tslint: C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/pages/messages/messages.ts, line: 111
            'T' is declared but never used.

     L110:  // Removes the scroll listener once all messages from the past were fetched
     L111:  autoRemoveScrollListener<T>(messagesCount: number): Observable<T> {
     L112:    return Observable.create((observer: Subscriber<T>) => {

[08:33:33]  tslint: C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/pages/messages/messages.ts, line: 1
            'OnInit' is declared but never used.

       L1:  import { Component, OnInit, OnDestroy, ElementRef } from '@angular/core';
       L2:  import { NavParams, PopoverController, ModalController } from 'ionic-angular';

[08:33:33]  tslint: C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/pages/messages/messages.ts, line: 1
            'OnDestroy' is declared but never used.

       L1:  import { Component, OnInit, OnDestroy, ElementRef } from '@angular/core';
       L2:  import { NavParams, PopoverController, ModalController } from 'ionic-angular';

[08:33:33]  tslint: C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/pages/messages/messages.ts, line: 1
            'ElementRef' is declared but never used.

       L1:  import { Component, OnInit, OnDestroy, ElementRef } from '@angular/core';
       L2:  import { NavParams, PopoverController, ModalController } from 'ionic-angular';

[08:33:33]  tslint: C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/pages/messages/messages.ts, line: 9
            'Subscription' is declared but never used.

       L8:  import { MessagesOptionsComponent } from './messages-options';
       L9:  import { Subscription, Observable, Subscriber } from 'rxjs';
      L10:  import { MessagesAttachmentsComponent } from './messages-attachments';

[08:33:33]  tslint: C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/pages/messages/messages.ts, line: 9
            'Subscriber' is declared but never used.

       L8:  import { MessagesOptionsComponent } from './messages-options';
       L9:  import { Subscription, Observable, Subscriber } from 'rxjs';
      L10:  import { MessagesAttachmentsComponent } from './messages-attachments';

[08:33:33]  tslint: ...Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/pages/messages/show-picture.ts, line: 11
            Property 'navParams' is declared but never used.

      L11:    constructor(private navParams: NavParams, private viewCtrl: ViewController) {
      L12:      this.pictureSrc = navParams.get('pictureSrc');

[08:33:33]  tslint: ...Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/pages/messages/show-picture.ts, line: 11
            Property 'viewCtrl' is declared but never used.

      L11:    constructor(private navParams: NavParams, private viewCtrl: ViewController) {
      L12:      this.pictureSrc = navParams.get('pictureSrc');

[08:33:33]  tslint: C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/pages/profile/profile.ts, line: 1
            'OnInit' is declared but never used.

       L1:  import { Component, OnInit } from '@angular/core';
       L2:  import { Profile } from 'api/models';

[08:33:33]  tslint: C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/pages/login/login.ts, line: 1
            'AfterContentInit' is declared but never used.

       L1:  import { Component, AfterContentInit } from '@angular/core';
       L2:  import { Alert, AlertController, NavController } from 'ionic-angular';

[08:33:33]  tslint: ...s/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/pages/verification/verification.ts, line: 1
            'AfterContentInit' is declared but never used.

       L1:  import { AfterContentInit, Component, OnInit } from '@angular/core';
       L2:  import { AlertController, NavController, NavParams } from 'ionic-angular';

[08:33:33]  tslint: ...s/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/pages/verification/verification.ts, line: 1
            'OnInit' is declared but never used.

       L1:  import { AfterContentInit, Component, OnInit } from '@angular/core';
       L2:  import { AlertController, NavController, NavParams } from 'ionic-angular';

[08:33:33]  tslint: C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/pages/chats/new-chat.ts, line: 1
            'OnInit' is declared but never used.

       L1:  import { Component, OnInit } from '@angular/core';
       L2:  import { Chats, Users, Pictures } from 'api/collections';

[08:33:33]  tslint: C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/pages/chats/new-chat.ts, line: 3
            All imports are unused.

       L2:  import { Chats, Users, Pictures } from 'api/collections';
       L3:  import { User } from 'api/models';
       L4:  import { AlertController, Platform, ViewController } from 'ionic-angular';

[08:33:33]  tslint: C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/pages/chats/new-chat.ts, line: 7
            'Subscription' is declared but never used.

       L6:  import { _ } from 'meteor/underscore';
       L7:  import { Observable, Subscription, BehaviorSubject } from 'rxjs';
       L8:  import { PhoneService } from "../../services/phone";

[08:33:33]  tslint: C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/pages/chats/chats.ts, line: 1
            'OnInit' is declared but never used.

       L1:  import { Component, OnInit } from '@angular/core';
       L2:  import { Chats, Messages, Users, Pictures } from 'api/collections';

[08:33:33]  tslint: C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/pages/chats/chats.ts, line: 3
            'Message' is declared but never used.

       L2:  import { Chats, Messages, Users, Pictures } from 'api/collections';
       L3:  import { Chat, Message } from 'api/models';
       L4:  import { NavController, PopoverController, ModalController, AlertController, Platform } from 'ionic-angular';

[08:33:33]  tslint: C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/src/pages/chats/chats.ts, line: 6
            'Subscriber' is declared but never used.

       L5:  import { MeteorObservable } from 'meteor-rxjs';
       L6:  import { Observable, Subscriber } from 'rxjs';
       L7:  import { MessagesPage } from '../messages/messages';

[08:33:33]  lint finished in 15.66 s

The app launches but I can't login. At inspection on the console I have this error: GET http://meteor.linuxsystems.it/sockjs/info?cb=x4ea2cxvp4 net::ERR_CONNECTION_TIMED_OUT

So at this point I have three errors: Cannot find module 'meteor/jalik:ufs'. Meteor settings for accounts-facebook-cordova not configured correctly and GET http://meteor.linuxsystems.it/sockjs/info?cb=x4ea2cxvp4 net::ERR_CONNECTION_TIMED_OUT

cordova platform add android

Using cordova-fetch for cordova-android@^6.2.3
Adding android project...
Creating Cordova project for the Android platform:
        Path: platforms\android
        Package: io.ionic.starter
        Name: MyApp
        Activity: MainActivity
        Android target: android-25
Subproject Path: CordovaLib
Android project created with cordova-android@6.2.3
Discovered plugin "com.synconset.imagepicker" in config.xml. Adding it to the project
Installing "com.synconset.imagepicker" for android
Subproject Path: CordovaLib
Adding com.synconset.imagepicker to package.json
Saved plugin info for "com.synconset.imagepicker" to config.xml
Discovered plugin "cordova-plugin-camera" in config.xml. Adding it to the project
Installing "cordova-plugin-camera" for android
Installing "cordova-plugin-compat" for android
Subproject Path: CordovaLib
Adding cordova-plugin-camera to package.json
Saved plugin info for "cordova-plugin-camera" to config.xml
Discovered plugin "cordova-plugin-console" in config.xml. Adding it to the project
Installing "cordova-plugin-console" for android
Adding cordova-plugin-console to package.json
Saved plugin info for "cordova-plugin-console" to config.xml
Discovered plugin "cordova-plugin-contacts" in config.xml. Adding it to the project
Installing "cordova-plugin-contacts" for android
Plugin dependency "cordova-plugin-compat@1.1.0" already fetched, using that version.
Dependent plugin "cordova-plugin-compat" already installed on android.
Adding cordova-plugin-contacts to package.json
Saved plugin info for "cordova-plugin-contacts" to config.xml
Discovered plugin "cordova-plugin-crop" in config.xml. Adding it to the project
Installing "cordova-plugin-crop" for android
Subproject Path: CordovaLib
Adding cordova-plugin-crop to package.json
Saved plugin info for "cordova-plugin-crop" to config.xml
Discovered plugin "cordova-plugin-device" in config.xml. Adding it to the project
Installing "cordova-plugin-device" for android
Adding cordova-plugin-device to package.json
Saved plugin info for "cordova-plugin-device" to config.xml
Discovered plugin "cordova-plugin-facebook4" in config.xml. Adding it to the project
Installing "cordova-plugin-facebook4" for android
Subproject Path: CordovaLib
Adding cordova-plugin-facebook4 to package.json
Saved plugin info for "cordova-plugin-facebook4" to config.xml
Discovered plugin "cordova-plugin-fcm" in config.xml. Adding it to the project
Installing "cordova-plugin-fcm" for android
Subproject Path: CordovaLib

                Cordova FCM plugin v2.1.2 installed
                For more details visit https://github.com/fechanique/cordova-plugin-fcm

Adding cordova-plugin-fcm to package.json
Saved plugin info for "cordova-plugin-fcm" to config.xml
Discovered plugin "cordova-plugin-geolocation" in config.xml. Adding it to the project
Installing "cordova-plugin-geolocation" for android
Plugin dependency "cordova-plugin-compat@1.1.0" already fetched, using that version.
Dependent plugin "cordova-plugin-compat" already installed on android.
Adding cordova-plugin-geolocation to package.json
Saved plugin info for "cordova-plugin-geolocation" to config.xml
Discovered plugin "cordova-plugin-sim" in config.xml. Adding it to the project
Installing "cordova-plugin-sim" for android
Adding cordova-plugin-sim to package.json
Saved plugin info for "cordova-plugin-sim" to config.xml
Discovered plugin "cordova-plugin-sms-receiver" in config.xml. Adding it to the project
Installing "cordova-plugin-sms-receiver" for android
Adding cordova-plugin-sms-receiver to package.json
Saved plugin info for "cordova-plugin-sms-receiver" to config.xml
Discovered plugin "cordova-plugin-splashscreen" in config.xml. Adding it to the project
Installing "cordova-plugin-splashscreen" for android
Adding cordova-plugin-splashscreen to package.json
Saved plugin info for "cordova-plugin-splashscreen" to config.xml
Discovered plugin "cordova-plugin-statusbar" in config.xml. Adding it to the project
Installing "cordova-plugin-statusbar" for android
Adding cordova-plugin-statusbar to package.json
Saved plugin info for "cordova-plugin-statusbar" to config.xml
Discovered plugin "cordova-plugin-whitelist" in config.xml. Adding it to the project
Installing "cordova-plugin-whitelist" for android

               This plugin is only applicable for versions of cordova-android greater than 4.0. If you have a previous platform version
, you do *not* need this plugin since the whitelist will be built in.

Adding cordova-plugin-whitelist to package.json
Saved plugin info for "cordova-plugin-whitelist" to config.xml
Discovered plugin "ionic-plugin-keyboard" in config.xml. Adding it to the project
Installing "ionic-plugin-keyboard" for android
Adding ionic-plugin-keyboard to package.json
Saved plugin info for "ionic-plugin-keyboard" to config.xml
--save flag or autosave detected
Saving android@~6.2.3 into config.xml file ...

cordova run android

ANDROID_HOME=C:\Users\Paul\AppData\Local\Android\Sdk
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_131
Subproject Path: CordovaLib
google-services plugin could not detect any version for com.google.android.gms or com.google.firebase, default version: 9.0.0 will be u
sed.
please apply google-services plugin at the bottom of the build file.
The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) ins
tead.
        at build_csi29bzwa332rf6muptqc0ccp.run(C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp\platforms\android\build.gradle:140)
The JavaCompile.setDependencyCacheDir() method has been deprecated and is scheduled to be removed in Gradle 4.0.
Incremental java compilation is an incubating feature.
The TaskInputs.source(Object) method has been deprecated and is scheduled to be removed in Gradle 4.0. Please use TaskInputs.file(Objec
t).skipWhenEmpty() instead.
:preBuild UP-TO-DATE
:preDebugBuild UP-TO-DATE
:checkDebugManifest
:preReleaseBuild UP-TO-DATE
:CordovaLib:preBuild UP-TO-DATE
:CordovaLib:preDebugBuild UP-TO-DATE
:CordovaLib:checkDebugManifest
:CordovaLib:prepareDebugDependencies
:CordovaLib:compileDebugAidl UP-TO-DATE
:CordovaLib:compileDebugNdk UP-TO-DATE
:CordovaLib:compileLint UP-TO-DATE
:CordovaLib:copyDebugLint UP-TO-DATE
:CordovaLib:mergeDebugShaders UP-TO-DATE
:CordovaLib:compileDebugShaders UP-TO-DATE
:CordovaLib:generateDebugAssets UP-TO-DATE
:CordovaLib:mergeDebugAssets UP-TO-DATE
:CordovaLib:mergeDebugProguardFiles UP-TO-DATE
:CordovaLib:packageDebugRenderscript UP-TO-DATE
:CordovaLib:compileDebugRenderscript UP-TO-DATE
:CordovaLib:generateDebugResValues UP-TO-DATE
:CordovaLib:generateDebugResources UP-TO-DATE
:CordovaLib:packageDebugResources UP-TO-DATE
:CordovaLib:processDebugManifest UP-TO-DATE
:CordovaLib:generateDebugBuildConfig UP-TO-DATE
:CordovaLib:processDebugResources UP-TO-DATE
:CordovaLib:generateDebugSources UP-TO-DATE
:CordovaLib:incrementalDebugJavaCompilationSafeguard UP-TO-DATE
:CordovaLib:compileDebugJavaWithJavac UP-TO-DATE
:CordovaLib:processDebugJavaRes UP-TO-DATE
:CordovaLib:transformResourcesWithMergeJavaResForDebug UP-TO-DATE
:CordovaLib:transformClassesAndResourcesWithSyncLibJarsForDebug UP-TO-DATE
:CordovaLib:mergeDebugJniLibFolders UP-TO-DATE
:CordovaLib:transformNative_libsWithMergeJniLibsForDebug UP-TO-DATE
:CordovaLib:transformNative_libsWithSyncJniLibsForDebug UP-TO-DATE
:CordovaLib:bundleDebug UP-TO-DATE
:CordovaLib:preReleaseBuild UP-TO-DATE
:CordovaLib:checkReleaseManifest
:CordovaLib:prepareReleaseDependencies
:CordovaLib:compileReleaseAidl UP-TO-DATE
:CordovaLib:compileReleaseNdk UP-TO-DATE
:CordovaLib:copyReleaseLint UP-TO-DATE
:CordovaLib:mergeReleaseShaders UP-TO-DATE
:CordovaLib:compileReleaseShaders UP-TO-DATE
:CordovaLib:generateReleaseAssets UP-TO-DATE
:CordovaLib:mergeReleaseAssets UP-TO-DATE
:CordovaLib:mergeReleaseProguardFiles UP-TO-DATE
:CordovaLib:packageReleaseRenderscript UP-TO-DATE
:CordovaLib:compileReleaseRenderscript UP-TO-DATE
:CordovaLib:generateReleaseResValues UP-TO-DATE
:CordovaLib:generateReleaseResources UP-TO-DATE
:CordovaLib:packageReleaseResources UP-TO-DATE
:CordovaLib:processReleaseManifest UP-TO-DATE
:CordovaLib:generateReleaseBuildConfig UP-TO-DATE
:CordovaLib:processReleaseResources UP-TO-DATE
:CordovaLib:generateReleaseSources UP-TO-DATE
:CordovaLib:incrementalReleaseJavaCompilationSafeguard UP-TO-DATE
:CordovaLib:compileReleaseJavaWithJavac UP-TO-DATE
:CordovaLib:processReleaseJavaRes UP-TO-DATE
:CordovaLib:transformResourcesWithMergeJavaResForRelease UP-TO-DATE
:CordovaLib:transformClassesAndResourcesWithSyncLibJarsForRelease UP-TO-DATE
:CordovaLib:mergeReleaseJniLibFolders UP-TO-DATE
:CordovaLib:transformNative_libsWithMergeJniLibsForRelease UP-TO-DATE
:CordovaLib:transformNative_libsWithSyncJniLibsForRelease UP-TO-DATE
:CordovaLib:bundleRelease UP-TO-DATE
:prepareComAndroidSupportAnimatedVectorDrawable2340Library UP-TO-DATE
:prepareComAndroidSupportAppcompatV72340Library UP-TO-DATE
:prepareComAndroidSupportCardviewV72340Library UP-TO-DATE
:prepareComAndroidSupportCustomtabs2340Library UP-TO-DATE
:prepareComAndroidSupportSupportCompat2520Library UP-TO-DATE
:prepareComAndroidSupportSupportCoreUi2520Library UP-TO-DATE
:prepareComAndroidSupportSupportCoreUtils2520Library UP-TO-DATE
:prepareComAndroidSupportSupportFragment2520Library UP-TO-DATE
:prepareComAndroidSupportSupportMediaCompat2520Library UP-TO-DATE
:prepareComAndroidSupportSupportV42520Library UP-TO-DATE
:prepareComAndroidSupportSupportVectorDrawable2340Library UP-TO-DATE
:prepareComFacebookAndroidFacebookAndroidSdk4141Library UP-TO-DATE
:prepareComGoogleAndroidGmsPlayServicesBasement1104Library UP-TO-DATE
:prepareComGoogleAndroidGmsPlayServicesTasks1104Library UP-TO-DATE
:prepareComGoogleFirebaseFirebaseAnalytics1104Library UP-TO-DATE
:prepareComGoogleFirebaseFirebaseAnalyticsImpl1104Library UP-TO-DATE
:prepareComGoogleFirebaseFirebaseCommon1104Library UP-TO-DATE
:prepareComGoogleFirebaseFirebaseCore1104Library UP-TO-DATE
:prepareComGoogleFirebaseFirebaseIid1104Library UP-TO-DATE
:prepareComGoogleFirebaseFirebaseMessaging1104Library UP-TO-DATE
:prepareComSoundcloudAndroidAndroidCrop100Library UP-TO-DATE
:prepareOrgApacheCordovaCordovaLib623DebugLibrary UP-TO-DATE
:prepareDebugDependencies
:compileDebugAidl UP-TO-DATE
:compileDebugRenderscript UP-TO-DATE
:generateDebugBuildConfig UP-TO-DATE
:generateDebugResValues UP-TO-DATE
:processDebugGoogleServices
Parsing json file: C:\Users\Paul\frontend\Ionic2CLI-Meteor-WhatsApp\platforms\android\google-services.json
:generateDebugResources
:mergeDebugResources UP-TO-DATE
:processDebugManifest UP-TO-DATE
:processDebugResources UP-TO-DATE
:generateDebugSources UP-TO-DATE
:incrementalDebugJavaCompilationSafeguard UP-TO-DATE
:compileDebugJavaWithJavac UP-TO-DATE
:compileDebugNdk UP-TO-DATE
:compileDebugSources UP-TO-DATE
:mergeDebugShaders UP-TO-DATE
:compileDebugShaders UP-TO-DATE
:generateDebugAssets UP-TO-DATE
:mergeDebugAssets UP-TO-DATE
:transformClassesWithDexForDebug UP-TO-DATE
:mergeDebugJniLibFolders UP-TO-DATE
:transformNative_libsWithMergeJniLibsForDebug UP-TO-DATE
:processDebugJavaRes UP-TO-DATE
:transformResourcesWithMergeJavaResForDebug UP-TO-DATE
:validateSigningDebug
:packageDebug UP-TO-DATE
:assembleDebug UP-TO-DATE
:cdvBuildDebug UP-TO-DATE

BUILD SUCCESSFUL

Total time: 12.64 secs
Built the following apk(s):
        C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/platforms/android/build/outputs/apk/android-debug.apk
ANDROID_HOME=C:\Users\Paul\AppData\Local\Android\Sdk
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_131
No target specified, deploying to device 'Y6'.
Skipping build...
Built the following apk(s):
        C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/platforms/android/build/outputs/apk/android-debug.apk
Using apk: C:/Users/Paul/frontend/Ionic2CLI-Meteor-WhatsApp/platforms/android/build/outputs/apk/android-debug.apk
Package name: io.ionic.starter
LAUNCH SUCCESS

It brings me to image

darkbasic commented 6 years ago

Thanks, it seems the tutorial deserves some testing on Windows because I don't get any of your errors. The GET http://meteor.linuxsystems.it/sockjs/info?cb=x4ea2cxvp4 net::ERR_CONNECTION_TIMED_OUT is easy to solve, you just have to either point meteor.linuxsystems.it to you local ip into your hosts file or into meteor-client.config.json and package.json (change the ports accordingly). Unfortunately I cannot help you with the rest because I cannot reproduce it and my laptop doesn't have enough ram to create a Windows virtual machine. Do the others affected by this issue all use Windows?

pkitatta commented 6 years ago

Well I know @lingboz on this thread uses Windows and had the same issue. Am not sure about the others but I inquired the same on #121.

You are right about the connection issue.

This is such a good tutorial damn the bug.

Alternative could you share with me a meteor-client.js file that you generated before july. I can patch it in my project for now as a solution comes along. Using my old file seems to work, the only problem is that it was updated upto stage 11 and before things went bad.

darkbasic commented 6 years ago

meteor-client.zip

This is from the Meteor 1.6 tutorial. Please tell me if it works for you (obviously you will have to use the new Meteor 1.6 tutorial).

lingboz commented 6 years ago

Hi @darkbasic

I really appreciate the endeavored help from you. We have discussed this issue previously and due to I was very new to both Meteor and Ionic we only reached a temporary solution (I attached the discussion links later ).

I had the same issue with @pkitatta on windows dev environment.

I removed these two lines: _require('core-js/modules/es6.typed.uint8-array'); _require('core-js/modules/es6.typed.uint32-array');

and it fixed my issue temporarily.

But I would say that this is a hacky solution (we changed Meteor library code), and the problem might be possible to come back in later releases. So we were discussing a lot to investigate in these following threads:

https://github.com/Urigo/Ionic2CLI-Meteor-WhatsApp/issues/121 https://github.com/Urigo/meteor-client-bundler/issues/41 https://github.com/Urigo/Ionic2CLI-Meteor-WhatsApp/issues/124#issuecomment-322518611

I would like to clone your repo and test it on my linux VM as soon as possible.

I am sorry that I did not test things as you discussed because I was too busy during these few days. But I like to help your tests soon and I can also follow this thread if you have new updates.

pkitatta commented 6 years ago

@darkbasic thanks I will try installing it in my meteor 1.6 project - but did you generate it before july?

@lingboz, what version of node and npm are you using?

darkbasic commented 6 years ago

@pkitatta no but let's see if generating it from another machine helps.

lingboz commented 6 years ago

@pkitatta

I am using node 6.11.2, and npm 5.3.0 I am using cordova 7.0.1 and Ionic 3.9.2 I am using Meteor 1.5.2

BTW @pkitatta if you are using cordova-ios 4.4.0 in your package.json, the recent update to 4.5.0 might break your project, so just remove "^" for this package to ensure it is not updated to 4.5.0 until they publish a stable version

pkitatta commented 6 years ago

Thanks for the heads up @lingboz .

I just don't know why when I remove those two lines it doesn't work for me! And the problem is that every time I tamper with the meteor-client file I get errors on my next meteor bundle. I wonder if you have successfully npm run meteor-client:bundle after removing the lines.

lingboz commented 6 years ago

Hi @pkitatta

I am testing the project @darkbasic provided.

I removed all stuff related to "sharp" and removed some code in the server/collections folder to avoid compile time errors.

I then ran the project on Ubuntu 16.04 and ran it on a device using "cordova run android --device".

The project worked with no errors.

@darkbasic uses Meteor 1.6 but I wonder if Meteor 1.5.2 would also work on Linux.

If Meteor 1.5.2 works well on Linux I would suspect this is related to Windows platform.

But if Meteor 1.5.2 does not work on Linux then I want to test if Meteor 1.6 also works on Windows.

Since Meteor 1.6 is not published yet and more changes may be added to Meteor 1.6 so I am not sure if I should update my work to 1.6.

I will do more test and update my results tomorrow.

@pkitatta Can you do a Meteor 1.5.2 test on Windows from scratch (following the tutorial and remove anything that may cause a compile error)

lingboz commented 6 years ago

I will do a clean project from scratch for Meteor 1.5.2 on Ubuntu and see what happens

pkitatta commented 6 years ago

I will also do that.

lingboz commented 6 years ago

Hi guys,

I conducted my tests on Ubuntu 16.04.

My dev environment is:

running npm -g list --depth=0 image

running meteor --version image


The package I used is Meteor 1.6-beta 26, and is cloned from https://github.com/darkbasic/Ionic2CLI-Meteor-WhatsApp.git from @darkbasic

I removed and commented code and steps about "sharp" package.

I did the tests on 3 different android devices and 2 ios devices They are:

Android 5.1 Moto G Android 5.1.1 Nexus 4 Android 7.1.1 OnePlus 3

ios 10.3.3 ipad ios 10.3.3 iphone 5s ios 10.3 xcode simulator iphone 7


The Android results are as follows:

Android 5.1 failed to run with the error below: image The error above is the same with what we discussed previously.

However after I removed these two line from meteor-client.js:

_require('core-js/modules/es6.typed.uint8-array'); // 56
_require('core-js/modules/es6.typed.uint32-array'); // 57

The app loaded successfully with the output below: image

The interesting thing is, the other two Android devices have no errors Android 5.1.1 worked successfully on device Android 7.1.1 worked successfully on device

So I suspect this is related to different Android images.

And my linux machine does not support emulator, so I would appreciate anyone who can run more tests on Android Emulators under Ubuntu. For example, download an image with Android 5.1 and see what happens.


The test result on ios are:

Initially there was an error like this: screen shot 2017-09-19 at 12 09 39 pm

And I downloaded a sample GoogleService-Info.plist on the Internet and the build succeeded.

When I ran the app, there was an error and the app did not load: screen shot 2017-09-19 at 12 19 39 pm

I know there is a GoogleService-Info.plist in resources folder but for some reason it is not working. I think this error is really related to Google login service and we should disable this feature for testing So I did not finish the ios test.

However, since my main development target is ios, I know that the same thing is happening for ios. The screenshot from my own app is as below (it is actually the same problem with Android 5.1):

screen shot 2017-09-15 at 3 18 29 pm


I will conduct another test tomorrow. I would create a project from scratch following the tutorial on Meteor 1.5.2, but I will just do a very basic Ionic blank app. And I will put it in my git repo so that anyone can clone it. (no extra libraries should be added to this test and the app should be a blank app)

I will update my results.

@darkbasic I really appreciate your help and the help from the angular-meteor communities, currently I guess this issue may be or may not be closely relate to "angular-meteor" or "meteor-client-bundler" and it might be an error hidden inside Cordova and Meteor's libraries, or Webpack typescript stuffs. We are not sure. But since we encounter the error when using this github code, I should probably do some more investigation here and share my results.

pkitatta commented 6 years ago

Thanks @lingboz for the update. Question: does npm run meteor-client:bundle work after you tamper with the meteor-client.js file? Whereas mine can still work after removing the lines, it gives me missing scripts: "meteor-client" . It almost needs me to reinstall meteor- on windows - on ubuntu I npm run api:reset which does the trick. "The interesting thing is, the other two Android devices have no errors Android 5.1.1 worked successfully on device Android 7.1.1 worked successfully on device". So do they run after removing the lines or were they present? I too tested on ubuntu but using the 4.4.2 andriod. I got the usual error. Will be testing on ubuntu emulators. I also agree with you that it might not be a bundlee issue but rather an issue with the meteor packages themselves since they are the ones being bundled and since they are the ones changing. I am surprised the wider meteor community hasn't yet picked up on this! I too also think it could be a compatibility issue. My other ionic apps are testing OK, it's only this one with meteor that giving a hard time.

lingboz commented 6 years ago

Hi Android 5.1.1 and Android 7.1.1 works when the two lines present

darkbasic commented 6 years ago

I managed to assembly a faster pc with some spare parts, finally I have enough ram to run an emulator while developing. I comfirm the issue with Android 5.0.x.

lingboz commented 6 years ago

Hi guys,

I found that the two lines of code come from the Meteor package called "ecmascript-runtime-client", And I don't know how to disable it from "meteor-client-bundle".

I tried to only "import" the basic package "meteor-base" in my meteor-client.config.json but it did not work.


BTW, I double checked the source code of "meteor-client-bundler", and I guess the "import" function in "meteor-client-bundle" package is not working properly. The "meteor-client-bundler" looks for a file called "packages" under "api/.meteor" and just join the user "import" settings and a file called "packages" from the "api/.meteor" folder together and use all the packages.

So, there is no way to disable the default packages from "api/.meteor" folder unless we change that "packages" file manually (which means we will always use some unnecessary packages regardless how we set the user "imports").

pkitatta commented 6 years ago

Hi @lingboz, this is true. I found the culprit package sometime back. The interesting thing is that deleting the lines in the local server I.e. ecmascript-runtime-client they are regenerated at runtime. Even when I deleted them from the global meteor packages they somehow reappeared locally at runtime - I don't know where they were coming from.

pkitatta commented 6 years ago

But isn't it odd that these two lines are present in the old working meteor-client file?! Seriously, testing with Android 4.2.2 was possible with the old file while these two lines were present.

lingboz commented 6 years ago

Hi,

I did a minimum viable version for Ionic2CLI-Meteor-WhatsApp. I get rid of all new pages, database stuff and packages that are not related to the problem. So it is very easy to test without any compile errors.

https://github.com/lingboz/Ionic2CLI-Meteor-WhatsApp-Minimum-Viable

You can downlowd it and run:

$ git clone https://github.com/lingboz/Ionic2CLI-Meteor-WhatsApp-Minimum-Viable.git $ cd Ionic2CLI-Meteor-WhatsApp-Minimum-Viable $ npm install $ ionic cordova run/emulate android

Running this project on Android 5.1 or ios 10.3.3 will produce the error below: image

darkbasic commented 6 years ago

Maybe it depends on the WebView version? We should try to install a very old WebView package from the 5.1 era on a newer Android device to see what happens.

airstep commented 6 years ago

Sorry, but I don't think this is of WebView version. Bcz I've try to install it on iOS iPhone 6 Emulator and it's still not work.

@lingboz "I know there is a GoogleService-Info.plist in resources folder but for some reason it is not working. "

It is bcz of incorrect path. If you go to platforms/ios/resource folder from xcode and select GoogleService-Info.plist you will see one line. I just remove GoogleService-Info.plist and add it again to this resource folder.

pkitatta commented 6 years ago

Hi guys, how about if we use crosswalk, do you think it can work? I can't imagine that the app wouldn't work in android<7. I was planning on plugging it into my app and taking it to production. I expect a good number of users to be using android below 7.

airstep commented 6 years ago

@pkitatta I think crosswalk will multiplies weight of resulted package - it's not good....

airstep commented 6 years ago

Hmmm..... about webview in iOS:

In iOS, there have been two webviews for a few years now, UIWebView and WKWebView. Historically, Ionic apps have used UIWebView, but no longer. Ionic now uses WKWebview by default when building for iOS.

airstep commented 6 years ago

I don't know maybe it will help. I found old folder with project from august, so for compartion - created a patch with diff of meteor-client.js bundles from august to october. meteor-client.zip

Also tomorrow will check on iOS with comment of this lines:

//require('core-js/modules/es6.typed.uint8-array');
//require('core-js/modules/es6.typed.uint32-array');
airstep commented 6 years ago

So, it works now!

Just when I comment this lines inside generated meteor-client.js:

//require('core-js/modules/es6.typed.uint8-array'); //require('core-js/modules/es6.typed.uint32-array');

Tested on iOS emulator 10.3 and real device (iPhone 7).

So, description about typed arrays

Typed Arrays work only in environments with support descriptors (IE9+)

Source code of uint8-array and uint32-array

wilkovanhoek commented 6 years ago

Hey everyone,

I tried to dig a little deeper, starting from the solution of commenting the two lines in meteor-client regarding typed arrays. As far as I understand the error, it comes from the core-js module, more specifically, it came up on version 2.5, which was released on 6 August. This is very close to the time, when I first encountered the problem.

Based on that, I was able to narrow it down a bit more. To my understanding, the problem mainly comes from the _typed-array.js, this has undergone changed from version 2.4.1 to version 2.5.0.

I was able to obtain a running version of my app, when I replaced the _typed-array.js within the meteor-client.js (took me some time until I got it running) with the version 2.4.1 (without commenting the two lines above). So, the only thing we would need to do is to downgrade core-js to version 2.4.1 until a solution is found. So I thought...

I tried to force meteor (and meteor-client-bundler) to install core-js 2.4.1 by adding it to the dependencies but it never worked. I figured, their might be another package requiring the core-js and inverstigated the depency path. Long story short, babel requires core-js two, but does not require 2.5.0 or above (at lest in version 6.24.1). I explicitly set babel and it subpackages to versions running with core-js. Still, the client bundler would include the core-js 2.5.1.

Okay, what next. I found one last trace of core-js in the whole (hay)stack. Meteor itself includes core-js starting with meteor 1.5. But it does so not through package management it seems (see package.js), but through Npm.depends.

Anyhow, core-js version 2.4.1 is included. So this should not be the problem... I am not completely sure what happens here, but I have nothing left to blame :-/

Okay, to sum this up:

Problem origin:

comes from core-js version change 2.4.1 -> 2.5.0 from _typed-array.js. Babel and meteor are using this. Meteor includes it directly vie Npm.depends, making it hard to tinker with it.

My current solution:

instead of commenting the two line in meteor-client, I did the following:

Step 1: exchange the _typed-array.js in the npm cache, by opening the package.tgz in ~/.npm/core-js/2.5.[0|1] , open the file package/modules/_typed-array.js and replace the code with the version 2.4.1 code and update the package.

As this solution will introduce a potentially errornous core-js, we will make sure, that outside of the meteor-client an intact version is used.

Step 2 force babel to use core-js 2.4.1 by explicitely downgrading babel-dependencies and core-js. Insert the following into package.json: "core-js": "2.4.1", "babel-cli": "6.24.1", "babel-core": "6.24.1", "babel-runtime": "6.23.0", "babel-polyfill": "6.23.0", "babel-register": "6.24.1",

caution: This solution is far from perfect and I would not recommend to do this if you use meteor or core-js in any other project. Editing core-js in npm cache changes it for all your projects! Also, at some point another version of babel will be needed for sure and then the core-js ^2.5.0 will be back.

For me this works for now. The advantage, I obtain a runnable meteor-client.js after bundling and don't have to tinker with it anymore.