sourcefuse / loopback4-starter

Loopback 4 starter application. Multi-tenant architecture supported. Authentication, Authorization, Soft deletes, environment vars, Audit logs, included.
MIT License
158 stars 59 forks source link

bringup fails due to package dependencies #1

Closed argupta23 closed 5 years ago

argupta23 commented 5 years ago

It looks like you need to update your package.json file which is currently pointing to the following dependencies

"loopback4-authentication": "file:../lb4-authentication", "loopback4-authorization": "file:../lb4-authorization",

It looks like these files are not downloaded as part of git clone, running "npm start" results in failure.

see below log xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

loopback4-starter@1.0.0 prestart /home/vagrant/tryout/loopback4-starter npm run build loopback4-starter@1.0.0 build /home/vagrant/tryout/loopback4-starter lb-tsc es2017 --outDir dist src/application.ts:15:8 - error TS2307: Cannot find module 'loopback4-authentication'. 15 } from 'loopback4-authentication';

src/application.ts:16:38 - error TS2307: Cannot find module 'loopback4-authorization'.
16 import {AuthorizationComponent} from 'loopback4-authorization';

src/controllers/home-page.controller.ts:7:25 - error TS2307: Cannot find module 'loopback4-authorization'. 7 import {authorize} from 'loopback4-authorization';

src/controllers/ping.controller.ts:3:25 - error TS2307: Cannot find module 'loopback4-authorization'.
3 import {authorize} from 'loopback4-authorization';

src/models/auth-client.model.ts:2:27 - error TS2307: Cannot find module 'loopback4-authentication'. 2 import {IAuthClient} from 'loopback4-authentication';

src/models/user-tenant-permission.model.ts:5:30 - error TS2307: Cannot find module 'loopback4-authorization'.
5 import {UserPermission} from 'loopback4-authorization';

src/models/user.model.ts:2:25 - error TS2307: Cannot find module 'loopback4-authentication'. 2 import {IAuthUser} from 'loopback4-authentication';

src/modules/audit/audit-log.controller.ts:21:38 - error TS2307: Cannot find module 'loopback4-authentication'.
21 import {authenticate, STRATEGY} from 'loopback4-authentication';

src/modules/audit/audit-log.controller.ts:22:25 - error TS2307: Cannot find module 'loopback4-authorization'. 22 import {authorize} from 'loopback4-authorization';

src/modules/auth/login.controller.ts:13:8 - error TS2307: Cannot find module 'loopback4-authentication'.
13 } from 'loopback4-authentication';

src/modules/auth/login.controller.ts:18:8 - error TS2307: Cannot find module 'loopback4-authorization'. 18 } from 'loopback4-authorization';

src/modules/auth/logout.controller.ts:4:53 - error TS2307: Cannot find module 'loopback4-authentication'.
4 import {authenticate, AuthErrorKeys, STRATEGY} from 'loopback4-authentication';

src/modules/auth/logout.controller.ts:5:25 - error TS2307: Cannot find module 'loopback4-authorization'. 5 import {authorize} from 'loopback4-authorization';

src/modules/auth/providers/bearer-token-verify.provider.ts:5:30 - error TS2307: Cannot find module 'loopback4-authentication'.
5 import {VerifyFunction} from 'loopback4-authentication';

src/modules/auth/providers/bearer-token-verify.provider.ts:20:18 - error TS7006: Parameter 'token' implicitly has an 'any' type. 20 return async token => {

src/modules/auth/providers/client-password-verify.provider.ts:3:30 - error TS2307: Cannot find module 'loopback4-authentication'.
3 import {VerifyFunction} from 'loopback4-authentication';

src/modules/auth/providers/client-password-verify.provider.ts:15:19 - error TS7006: Parameter 'clientId' implicitly has an 'any' type. 15 return async (clientId, clientSecret) => {

src/modules/auth/providers/client-password-verify.provider.ts:15:29 - error TS7006: Parameter 'clientSecret' implicitly has an 'any' type.
15     return async (clientId, clientSecret) => {

src/modules/auth/providers/local-password-verify.provider.ts:3:30 - error TS2307: Cannot find module 'loopback4-authentication'. 3 import {VerifyFunction} from 'loopback4-authentication';

src/modules/auth/providers/local-password-verify.provider.ts:17:19 - error TS7006: Parameter 'username' implicitly has an 'any' type.
17     return async (username, password) => {

src/modules/auth/providers/local-password-verify.provider.ts:17:29 - error TS7006: Parameter 'password' implicitly has an 'any' type. 17 return async (username, password) => {

src/modules/auth/providers/resource-owner-verify.provider.ts:3:45 - error TS2307: Cannot find module 'loopback4-authentication'.
3 import {VerifyFunction, AuthErrorKeys} from 'loopback4-authentication';

src/modules/auth/providers/resource-owner-verify.provider.ts:18:19 - error TS7006: Parameter 'clientId' implicitly has an 'any' type. 18 return async (clientId, clientSecret, username, password) => {

src/modules/auth/providers/resource-owner-verify.provider.ts:18:29 - error TS7006: Parameter 'clientSecret' implicitly has an 'any' type.
18     return async (clientId, clientSecret, username, password) => {

src/modules/auth/providers/resource-owner-verify.provider.ts:18:43 - error TS7006: Parameter 'username' implicitly has an 'any' type. 18 return async (clientId, clientSecret, username, password) => {

src/modules/auth/providers/resource-owner-verify.provider.ts:18:53 - error TS7006: Parameter 'password' implicitly has an 'any' type.
18     return async (clientId, clientSecret, username, password) => {

src/modules/roles/role.controller.ts:19:38 - error TS2307: Cannot find module 'loopback4-authentication'. 19 import {authenticate, STRATEGY} from 'loopback4-authentication';

src/modules/roles/role.controller.ts:20:25 - error TS2307: Cannot find module 'loopback4-authorization'.
20 import {authorize} from 'loopback4-authorization';

src/modules/user-tenants/tenant.controller.ts:19:38 - error TS2307: Cannot find module 'loopback4-authentication'. 19 import {authenticate, STRATEGY} from 'loopback4-authentication';

src/modules/user-tenants/tenant.controller.ts:20:25 - error TS2307: Cannot find module 'loopback4-authorization'.
20 import {authorize} from 'loopback4-authorization';

src/modules/user-tenants/user.controller.ts:19:38 - error TS2307: Cannot find module 'loopback4-authentication'. 19 import {authenticate, STRATEGY} from 'loopback4-authentication';

src/modules/user-tenants/user.controller.ts:20:25 - error TS2307: Cannot find module 'loopback4-authorization'.
20 import {authorize} from 'loopback4-authorization';

src/repositories/default-user-modify-crud.repository.base.ts:9:29 - error TS2307: Cannot find module 'loopback4-authentication'. 9 import {AuthErrorKeys} from 'loopback4-authentication';

src/repositories/tenant.repository.ts:2:38 - error TS2307: Cannot find module 'loopback4-authentication'.
2 import {AuthenticationBindings} from 'loopback4-authentication';

src/repositories/user-tenant-permission.repository.ts:3:38 - error TS2307: Cannot find module 'loopback4-authentication'. 3 import {AuthenticationBindings} from 'loopback4-authentication';

src/repositories/user.repository.ts:6:53 - error TS2307: Cannot find module 'loopback4-authentication'.
6 import {AuthenticationBindings, AuthErrorKeys} from 'loopback4-authentication';

src/sequence.ts:13:54 - error TS2307: Cannot find module 'loopback4-authentication'. 13 import {AuthenticateFn, AuthenticationBindings} from 'loopback4-authentication';

src/sequence.ts:18:8 - error TS2307: Cannot find module 'loopback4-authorization'.
18 } from 'loopback4-authorization';

Found 38 errors. npm ERR! code ELIFECYCLE npm ERR! errno 2 npm ERR! loopback4-starter@1.0.0 build: lb-tsc es2017 --outDir dist npm ERR! Exit status 2 npm ERR! npm ERR! Failed at the loopback4-starter@1.0.0 build 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! /home/vagrant/.npm/_logs/2019-05-16T19_33_12_329Z-debug.log npm ERR! code ELIFECYCLE npm ERR! errno 2 npm ERR! loopback4-starter@1.0.0 prestart: npm run build npm ERR! Exit status 2 npm ERR! npm ERR! Failed at the loopback4-starter@1.0.0 prestart 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! /home/vagrant/.npm/_logs/2019-05-16T19_33_12_348Z-debug.log vagrant:~/tryout/loopback4-starter$ vi package.json vagrant:~/tryout/loopback4-starter$ npm i --save @loopback-authorization @loopback-authentication npm ERR! code EINVALIDTAGNAME npm ERR! Invalid tag name "@loopback-authorization": Tags may not have any characters that encodeURIComponent encodes.

npm ERR! A complete log of this run can be found in: npm ERR! /home/vagrant/.npm/_logs/2019-05-16T19_34_53_682Z-debug.log

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

I even tried the following

downloaded loopback4-authentication + loopback4-authorization repos from your repo, edited the package.json entries from

../lb4-xxxx to ../loopback-xxxx

ran npm -i ran npm start which results in the following errors.

vagrant:~/tryout/sourcefuse/loopback4-starter$ npm i xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

bcrypt@3.0.6 install /home/vagrant/tryout/sourcefuse/loopback4-starter/node_modules/bcrypt node-pre-gyp install --fallback-to-build

node-pre-gyp WARN Using needle for node-pre-gyp https download [bcrypt] Success: "/home/vagrant/tryout/sourcefuse/loopback4-starter/node_modules/bcrypt/lib/binding/bcrypt_lib.node" is installed via remote added 914 packages from 1542 contributors and audited 6473 packages in 29.392s found 3 vulnerabilities (1 low, 2 moderate) run npm audit fix to fix them, or npm audit for details vagrant:~/tryout/sourcefuse/loopback4-starter$ npm start xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

loopback4-starter@1.0.0 prestart /home/vagrant/tryout/sourcefuse/loopback4-starter npm run build loopback4-starter@1.0.0 build /home/vagrant/tryout/sourcefuse/loopback4-starter lb-tsc es2017 --outDir dist ../loopback4-authentication/src/strategies/client-auth-strategy.provider.ts:7:8 - error TS7016: Could not find a declaration file for module 'passport-oauth2-client-password'. '/home/vagrant/tryout/sourcefuse/loopback4-authentication/node_modules/passport-oauth2-client-password/lib/index.js' implicitly has an 'any' type. Try npm install @types/passport-oauth2-client-password if it exists or add a new declaration (.d.ts) file containing declare module 'passport-oauth2-client-password';

7 } from 'passport-oauth2-client-password';

../loopback4-authentication/src/strategies/user-auth-strategy.provider.ts:4:33 - error TS7016: Could not find a declaration file for module 'passport-http-bearer'. '/home/vagrant/tryout/sourcefuse/loopback4-authentication/node_modules/passport-http-bearer/lib/index.js' implicitly has an 'any' type.
  Try `npm install @types/passport-http-bearer` if it exists or add a new declaration (.d.ts) file containing `declare module 'passport-http-bearer';`

4 import * as PassportBearer from 'passport-http-bearer';

../loopback4-authentication/src/strategies/user-auth-strategy.provider.ts:5:32 - error TS7016: Could not find a declaration file for module 'passport-local'. '/home/vagrant/tryout/sourcefuse/loopback4-authentication/node_modules/passport-local/lib/index.js' implicitly has an 'any' type. Try npm install @types/passport-local if it exists or add a new declaration (.d.ts) file containing declare module 'passport-local';

5 import * as PassportLocal from 'passport-local';

../loopback4-authorization/src/providers/authorization-action.provider.ts:6:28 - error TS7016: Could not find a declaration file for module 'lodash'. '/home/vagrant/tryout/sourcefuse/loopback4-authorization/node_modules/lodash/lodash.js' implicitly has an 'any' type.
  If the 'lodash' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/lodash`

6 import {intersection} from 'lodash';

Found 4 errors. npm ERR! code ELIFECYCLE npm ERR! errno 2 npm ERR! loopback4-starter@1.0.0 build: lb-tsc es2017 --outDir dist npm ERR! Exit status 2 npm ERR! npm ERR! Failed at the loopback4-starter@1.0.0 build 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! /home/vagrant/.npm/_logs/2019-05-16T19_51_42_092Z-debug.log npm ERR! code ELIFECYCLE npm ERR! errno 2 npm ERR! loopback4-starter@1.0.0 prestart: npm run build npm ERR! Exit status 2 npm ERR! npm ERR! Failed at the loopback4-starter@1.0.0 prestart 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! /home/vagrant/.npm/_logs/2019-05-16T19_51_42_110Z-debug.log

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

I was able to address the above errors by doing an "npm i" within the loopback-authentication and loopback-authoriziation folders.

but when I try to run the code using "npm start" or "node ." I get the following error.

vagrant@arigapcloud:~/tryout/sourcefuse/loopback4-starter$ node . internal/modules/cjs/loader.js:584 throw err; ^

Error: Cannot find module './dist' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:582:15) at Function.Module._load (internal/modules/cjs/loader.js:508:25) at Module.require (internal/modules/cjs/loader.js:637:17) at require (internal/modules/cjs/helpers.js:22:18) at Object. (/home/vagrant/tryout/sourcefuse/loopback4-authentication/index.js:1:80) at Module._compile (internal/modules/cjs/loader.js:701:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10) at Module.load (internal/modules/cjs/loader.js:600:32) at tryModuleLoad (internal/modules/cjs/loader.js:539:12) at Function.Module._load (internal/modules/cjs/loader.js:531:3) at Module.require (internal/modules/cjs/loader.js:637:17) at require (internal/modules/cjs/helpers.js:22:18) at Object. (/home/vagrant/tryout/sourcefuse/loopback4-starter/dist/application.js:10:36) at Module._compile (internal/modules/cjs/loader.js:701:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10) at Module.load (internal/modules/cjs/loader.js:600:32) vagrant:~/tryout/sourcefuse/loopback4-starter$ npm start

loopback4-starter@1.0.0 prestart /home/vagrant/tryout/sourcefuse/loopback4-starter npm run build

loopback4-starter@1.0.0 build /home/vagrant/tryout/sourcefuse/loopback4-starter lb-tsc es2017 --outDir dist

loopback4-starter@1.0.0 start /home/vagrant/tryout/sourcefuse/loopback4-starter node .

internal/modules/cjs/loader.js:584 throw err; ^

Error: Cannot find module './dist' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:582:15) at Function.Module._load (internal/modules/cjs/loader.js:508:25) at Module.require (internal/modules/cjs/loader.js:637:17) at require (internal/modules/cjs/helpers.js:22:18) at Object. (/home/vagrant/tryout/sourcefuse/loopback4-authentication/index.js:1:80) at Module._compile (internal/modules/cjs/loader.js:701:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10) at Module.load (internal/modules/cjs/loader.js:600:32) at tryModuleLoad (internal/modules/cjs/loader.js:539:12) at Function.Module._load (internal/modules/cjs/loader.js:531:3) at Module.require (internal/modules/cjs/loader.js:637:17) at require (internal/modules/cjs/helpers.js:22:18) at Object. (/home/vagrant/tryout/sourcefuse/loopback4-starter/dist/application.js:10:36) at Module._compile (internal/modules/cjs/loader.js:701:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10) at Module.load (internal/modules/cjs/loader.js:600:32) npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! loopback4-starter@1.0.0 start: node . npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the loopback4-starter@1.0.0 start 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! /home/vagrant/.npm/_logs/2019-05-17T01_06_34_518Z-debug.log vagrant@~/tryout/sourcefuse/loopback4-starter$

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

below si the logfile

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

info it worked if it ends with ok 1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'start' ] 2 info using npm@6.4.1 3 info using node@v10.15.3 4 verbose run-script [ 'prestart', 'start', 'poststart' ] 5 info lifecycle loopback4-starter@1.0.0~prestart: loopback4-starter@1.0.0 6 verbose lifecycle loopback4-starter@1.0.0~prestart: unsafe-perm in lifecycle true 7 verbose lifecycle loopback4-starter@1.0.0~prestart: PATH: /usr/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/vagrant/tryout/sourcefuse/loopback4-starter/node_modules/.bin:/home/vagrant/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin 8 verbose lifecycle loopback4-starter@1.0.0~prestart: CWD: /home/vagrant/tryout/sourcefuse/loopback4-starter 9 silly lifecycle loopback4-starter@1.0.0~prestart: Args: [ '-c', 'npm run build' ] 10 silly lifecycle loopback4-starter@1.0.0~prestart: Returned: code: 0 signal: null 11 info lifecycle loopback4-starter@1.0.0~start: loopback4-starter@1.0.0 12 verbose lifecycle loopback4-starter@1.0.0~start: unsafe-perm in lifecycle true 13 verbose lifecycle loopback4-starter@1.0.0~start: PATH: /usr/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/vagrant/tryout/sourcefuse/loopback4-starter/node_modules/.bin:/home/vagrant/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin 14 verbose lifecycle loopback4-starter@1.0.0~start: CWD: /home/vagrant/tryout/sourcefuse/loopback4-starter 15 silly lifecycle loopback4-starter@1.0.0~start: Args: [ '-c', 'node .' ] 16 silly lifecycle loopback4-starter@1.0.0~start: Returned: code: 1 signal: null 17 info lifecycle loopback4-starter@1.0.0~start: Failed to exec start script 18 verbose stack Error: loopback4-starter@1.0.0 start: node . 18 verbose stack Exit status 1 18 verbose stack at EventEmitter. (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:301:16) 18 verbose stack at EventEmitter.emit (events.js:189:13) 18 verbose stack at ChildProcess. (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14) 18 verbose stack at ChildProcess.emit (events.js:189:13) 18 verbose stack at maybeClose (internal/child_process.js:970:16) 18 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5) 19 verbose pkgid loopback4-starter@1.0.0 20 verbose cwd /home/vagrant/tryout/sourcefuse/loopback4-starter 21 verbose Linux 4.15.0-47-generic 22 verbose argv "/usr/bin/node" "/usr/bin/npm" "start" 23 verbose node v10.15.3 24 verbose npm v6.4.1 25 error code ELIFECYCLE 26 error errno 1 27 error loopback4-starter@1.0.0 start: node . 27 error Exit status 1 28 error Failed at the loopback4-starter@1.0.0 start script. 28 error This is probably not a problem with npm. There is likely additional logging output above. 29 verbose exit [ 1, true ] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

samarpan-b commented 5 years ago

Fixed. Please check out latest version.

samarpan-b commented 5 years ago

Closing for now.

argupta23 commented 5 years ago

@samarpan-b Thanks, I will give it a try.