roadman 0.1.0 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -21,6 +21,21 @@
21
21
  An efficient, and flexible NodeJS library for building backend services.
22
22
 
23
23
 
24
+ ### Roadman Features
25
+
26
+
27
+ | Feature | Progress |
28
+ | ----------------- | -------- |
29
+ | ExpressJS (REST API) | ✅ |
30
+ | GraphQL API | ✅ |
31
+ | File transfer (upload/storage) | ✅ |
32
+ | Couchbase | ✅ |
33
+ | Redis (queue, subscriptions) | ✅ |
34
+ | Twilio | ❌ |
35
+ | Stripe | ❌ |
36
+ | MongoDB | ❌ |
37
+ | Firebase auth (phone, email...) | ❌ |
38
+
24
39
  ## 1. Install
25
40
  ```bash
26
41
  npm i roadman --save
@@ -17,9 +17,9 @@ const awaitTo_1 = __importDefault(require("../utils/awaitTo"));
17
17
  const couchbaseRoadman = async ({ httpServer, pubsub }) => {
18
18
  const [errorStarting, started] = await (0, awaitTo_1.default)((0, database_1.startCouchbase)());
19
19
  if (started) {
20
- (0, config_1.log)(chalk_1.default.green(`Couchbase started`));
21
20
  httpServer.listen(Number(config_1.PORT), () => {
22
21
  (0, config_1.log)(chalk_1.default.green(`Server started on port ${config_1.PORT}, Redis=${pubsub ? true : false}`));
22
+ (0, config_1.log)(chalk_1.default.rgb(255, 100, 200)(`GraphQL API at http://localhost:${config_1.PORT}/graphql`));
23
23
  });
24
24
  }
25
25
  if (errorStarting) {
@@ -1 +1 @@
1
- {"version":3,"file":"couchbase.js","sourceRoot":"","sources":["../../src/afters/couchbase.ts"],"names":[],"mappings":";;;;;;AAAA,4BAA0B;AAC1B,yBAAuB;AACvB,kDAA0B;AAC1B,sCAAoC;AACpC,0CAA2C;AAE3C,+DAAuC;AAEvC;;;GAGG;AACI,MAAM,gBAAgB,GAAG,KAAK,EAAE,EAAC,UAAU,EAAE,MAAM,EAAe,EAAiB,EAAE;IACxF,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,MAAM,IAAA,iBAAO,EAAC,IAAA,yBAAc,GAAE,CAAC,CAAC;IAEjE,IAAI,OAAO,EAAE;QACT,IAAA,YAAG,EAAC,eAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACtC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,aAAI,CAAC,EAAE,GAAG,EAAE;YACjC,IAAA,YAAG,EAAC,eAAK,CAAC,KAAK,CAAC,0BAA0B,aAAI,WAAW,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACvF,CAAC,CAAC,CAAC;KACN;IAED,IAAI,aAAa,EAAE;QACf,IAAA,YAAG,EAAC,eAAK,CAAC,GAAG,CAAC,oCAAoC,aAAI,WAAW,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3F,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;AACL,CAAC,CAAC;AAfW,QAAA,gBAAgB,oBAe3B"}
1
+ {"version":3,"file":"couchbase.js","sourceRoot":"","sources":["../../src/afters/couchbase.ts"],"names":[],"mappings":";;;;;;AAAA,4BAA0B;AAC1B,yBAAuB;AACvB,kDAA0B;AAC1B,sCAAoC;AACpC,0CAA2C;AAE3C,+DAAuC;AAEvC;;;GAGG;AACI,MAAM,gBAAgB,GAAG,KAAK,EAAE,EAAC,UAAU,EAAE,MAAM,EAAe,EAAiB,EAAE;IACxF,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,MAAM,IAAA,iBAAO,EAAC,IAAA,yBAAc,GAAE,CAAC,CAAC;IAEjE,IAAI,OAAO,EAAE;QACT,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,aAAI,CAAC,EAAE,GAAG,EAAE;YACjC,IAAA,YAAG,EAAC,eAAK,CAAC,KAAK,CAAC,0BAA0B,aAAI,WAAW,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACnF,IAAA,YAAG,EAAC,eAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,mCAAmC,aAAI,UAAU,CAAC,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;KACN;IAED,IAAI,aAAa,EAAE;QACf,IAAA,YAAG,EAAC,eAAK,CAAC,GAAG,CAAC,oCAAoC,aAAI,WAAW,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3F,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;AACL,CAAC,CAAC;AAfW,QAAA,gBAAgB,oBAe3B"}
@@ -7,7 +7,7 @@ exports.startCouchbase = exports.connectionOptions = exports.queryLimit = void 0
7
7
  require("dotenv/config");
8
8
  const get_1 = __importDefault(require("lodash/get"));
9
9
  const chalk_1 = __importDefault(require("chalk"));
10
- const sofa_1 = require("@stoqey/sofa");
10
+ const couchset_1 = require("couchset");
11
11
  const config_1 = require("../../config");
12
12
  exports.queryLimit = (0, get_1.default)(process.env, 'COUCHBASE_QUERY_LIMIT', 600) || 600;
13
13
  const connectionString = (0, get_1.default)(process.env, 'COUCHBASE_URL', 'couchbase://localhost');
@@ -29,7 +29,7 @@ const startCouchbase = () => {
29
29
  password,
30
30
  })));
31
31
  return new Promise((res, rej) => {
32
- (0, sofa_1.startSofa)(exports.connectionOptions)
32
+ (0, couchset_1.couchset)(exports.connectionOptions)
33
33
  .then(() => {
34
34
  (0, config_1.log)('Couchbase ', chalk_1.default.greenBright('started ✅✅✅', JSON.stringify({ host: connectionString, bucket: bucketName })));
35
35
  res(true);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/database/couchbase/index.ts"],"names":[],"mappings":";;;;;;AAAA,yBAAuB;AACvB,qDAA6B;AAC7B,kDAA0B;AAC1B,uCAAuC;AACvC,yCAAiC;AAEpB,QAAA,UAAU,GAAG,IAAA,aAAG,EAAC,OAAO,CAAC,GAAG,EAAE,uBAAuB,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC;AAChF,MAAM,gBAAgB,GAAG,IAAA,aAAG,EAAC,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,uBAAuB,CAAC,CAAC;AACpF,MAAM,UAAU,GAAG,IAAA,aAAG,EAAC,OAAO,CAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;AAC/D,MAAM,QAAQ,GAAG,IAAA,aAAG,EAAC,OAAO,CAAC,GAAG,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;AACjE,MAAM,QAAQ,GAAG,IAAA,aAAG,EAAC,OAAO,CAAC,GAAG,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AAErD,QAAA,iBAAiB,GAAG;IAC7B,gBAAgB;IAChB,UAAU;IACV,QAAQ;IACR,QAAQ;CACX,CAAC;AAEK,MAAM,cAAc,GAAG,GAAqB,EAAE;IACjD,OAAO,CAAC,GAAG,CACP,eAAK,CAAC,SAAS,CACX,kDAAkD,EAClD,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CACtC,CACJ,CAAC;IAEF,OAAO,CAAC,GAAG,CACP,WAAW,EACX,eAAK,CAAC,MAAM,CACR,aAAa,EACb,IAAI,CAAC,SAAS,CAAC;QACX,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,UAAU;QAClB,QAAQ;QACR,QAAQ;KACX,CAAC,CACL,CACJ,CAAC;IACF,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC5B,IAAA,gBAAS,EAAC,yBAAiB,CAAC;aACvB,IAAI,CAAC,GAAG,EAAE;YACP,IAAA,YAAG,EACC,YAAY,EACZ,eAAK,CAAC,WAAW,CACb,aAAa,EACb,IAAI,CAAC,SAAS,CAAC,EAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAC,CAAC,CAC/D,CACJ,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,CAAC;QACd,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAlCW,QAAA,cAAc,kBAkCzB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/database/couchbase/index.ts"],"names":[],"mappings":";;;;;;AAAA,yBAAuB;AACvB,qDAA6B;AAC7B,kDAA0B;AAC1B,uCAAkC;AAClC,yCAAiC;AAEpB,QAAA,UAAU,GAAG,IAAA,aAAG,EAAC,OAAO,CAAC,GAAG,EAAE,uBAAuB,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC;AAChF,MAAM,gBAAgB,GAAG,IAAA,aAAG,EAAC,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,uBAAuB,CAAC,CAAC;AACpF,MAAM,UAAU,GAAG,IAAA,aAAG,EAAC,OAAO,CAAC,GAAG,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;AAC/D,MAAM,QAAQ,GAAG,IAAA,aAAG,EAAC,OAAO,CAAC,GAAG,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;AACjE,MAAM,QAAQ,GAAG,IAAA,aAAG,EAAC,OAAO,CAAC,GAAG,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAC;AAErD,QAAA,iBAAiB,GAAG;IAC7B,gBAAgB;IAChB,UAAU;IACV,QAAQ;IACR,QAAQ;CACX,CAAC;AAEK,MAAM,cAAc,GAAG,GAAqB,EAAE;IACjD,OAAO,CAAC,GAAG,CACP,eAAK,CAAC,SAAS,CACX,kDAAkD,EAClD,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CACtC,CACJ,CAAC;IAEF,OAAO,CAAC,GAAG,CACP,WAAW,EACX,eAAK,CAAC,MAAM,CACR,aAAa,EACb,IAAI,CAAC,SAAS,CAAC;QACX,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,UAAU;QAClB,QAAQ;QACR,QAAQ;KACX,CAAC,CACL,CACJ,CAAC;IACF,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC5B,IAAA,mBAAQ,EAAC,yBAAiB,CAAC;aACtB,IAAI,CAAC,GAAG,EAAE;YACP,IAAA,YAAG,EACC,YAAY,EACZ,eAAK,CAAC,WAAW,CACb,aAAa,EACb,IAAI,CAAC,SAAS,CAAC,EAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAC,CAAC,CAC/D,CACJ,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,CAAC;QACd,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAlCW,QAAA,cAAc,kBAkCzB"}
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isAuth = void 0;
4
4
  const jsonwebtoken_1 = require("jsonwebtoken");
5
5
  const lodash_1 = require("lodash");
6
- const isAuth = ({ context }, next) => {
6
+ const isAuth = (args, next) => {
7
+ const context = (args && args.context) || {};
7
8
  const authorization = (0, lodash_1.get)(context, 'req.headers.authorization', '');
8
9
  if ((0, lodash_1.isEmpty)(authorization)) {
9
10
  throw new Error('Not Authenticated');
@@ -1 +1 @@
1
- {"version":3,"file":"isAuth.js","sourceRoot":"","sources":["../../src/pengs/isAuth.ts"],"names":[],"mappings":";;;AAEA,+CAAoC;AACpC,mCAA4C;AAErC,MAAM,MAAM,GAA8B,CAAC,EAAC,OAAO,EAAC,EAAE,IAAI,EAAE,EAAE;IACjE,MAAM,aAAa,GAAG,IAAA,YAAI,EAAC,OAAO,EAAE,2BAA2B,EAAE,EAAE,CAAC,CAAC;IAErE,IAAI,IAAA,gBAAO,EAAC,aAAa,CAAC,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;KACxC;IAED,IAAI;QACA,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAA,qBAAM,EAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAoB,CAAC,CAAC;QACjE,OAAO,CAAC,OAAO,GAAG,QAAe,CAAC;KACrC;IAAC,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;KACxC;IAED,OAAO,IAAI,EAAE,CAAC;AAClB,CAAC,CAAC;AAjBW,QAAA,MAAM,UAiBjB"}
1
+ {"version":3,"file":"isAuth.js","sourceRoot":"","sources":["../../src/pengs/isAuth.ts"],"names":[],"mappings":";;;AAEA,+CAAoC;AACpC,mCAA4C;AAErC,MAAM,MAAM,GAA8B,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;IAC5D,MAAM,OAAO,GAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAClD,MAAM,aAAa,GAAG,IAAA,YAAI,EAAC,OAAO,EAAE,2BAA2B,EAAE,EAAE,CAAC,CAAC;IAErE,IAAI,IAAA,gBAAO,EAAC,aAAa,CAAC,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;KACxC;IAED,IAAI;QACA,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAA,qBAAM,EAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAoB,CAAC,CAAC;QACjE,OAAO,CAAC,OAAO,GAAG,QAAe,CAAC;KACrC;IAAC,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;KACxC;IAED,OAAO,IAAI,EAAE,CAAC;AAClB,CAAC,CAAC;AAlBW,QAAA,MAAM,UAkBjB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "roadman",
3
- "version": "0.1.0",
3
+ "version": "0.1.4",
4
4
  "description": "An efficient, and flexible NodeJS library for building backend services.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -35,25 +35,25 @@
35
35
  }
36
36
  },
37
37
  "devDependencies": {
38
- "@types/chai": "^4.2.14",
39
- "@types/debug": "^4.1.5",
40
- "@types/lodash": "^4.14.168",
41
- "@types/mocha": "^8.2.0",
42
- "@types/node": "^10.0.3",
43
- "@types/source-map-support": "^0.4.0",
44
- "@types/uuid": "^8.3.0",
45
- "@typescript-eslint/eslint-plugin": "^3.4.0",
46
- "@typescript-eslint/parser": "^3.4.0",
47
38
  "@types/bcryptjs": "^2.4.2",
39
+ "@types/chai": "^4.2.14",
48
40
  "@types/chalk": "^2.2.0",
49
41
  "@types/cookie-parser": "^1.4.2",
42
+ "@types/debug": "^4.1.5",
50
43
  "@types/dotenv": "^8.2.0",
51
44
  "@types/express": "^4.17.6",
52
45
  "@types/graphql": "^14.5.0",
53
46
  "@types/graphql-upload": "^8.0.6",
54
47
  "@types/ioredis": "^4.17.10",
55
48
  "@types/jsonwebtoken": "^8.5.0",
49
+ "@types/lodash": "^4.14.168",
50
+ "@types/mocha": "^8.2.0",
51
+ "@types/node": "^10.0.3",
52
+ "@types/source-map-support": "^0.4.0",
56
53
  "@types/stripe": "^8.0.417",
54
+ "@types/uuid": "^8.3.0",
55
+ "@typescript-eslint/eslint-plugin": "^3.4.0",
56
+ "@typescript-eslint/parser": "^3.4.0",
57
57
  "chai": "^4.2.0",
58
58
  "eslint": "^6.8.0",
59
59
  "eslint-config-prettier": "^6.11.0",
@@ -79,13 +79,13 @@
79
79
  "dependencies": {
80
80
  "@amplitude/node": "^1.5.3",
81
81
  "@sentry/node": "^6.2.4",
82
- "@stoqey/sofa": "^0.2.5",
83
82
  "apollo-server-express": "^2.14.2",
84
83
  "bcryptjs": "^2.4.3",
85
84
  "chalk": "^4.1.0",
86
85
  "class-validator": "^0.13.1",
87
86
  "cookie-parser": "^1.4.5",
88
87
  "cors": "^2.8.5",
88
+ "couchset": "^0.0.6",
89
89
  "debug": "^4.3.1",
90
90
  "dotenv": "^8.2.0",
91
91
  "express": "^4.17.1",