@things-factory/oauth2-client 5.0.7 → 6.0.0-alpha.0

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.
Files changed (129) hide show
  1. package/client/{bootstrap.js → bootstrap.ts} +0 -0
  2. package/{server/controllers → client}/index.ts +0 -0
  3. package/client/pages/oauth2-client/oauth2-client-importer.ts +97 -0
  4. package/client/pages/oauth2-client/oauth2-client-list-page.ts +337 -0
  5. package/client/pages/{oauth2-client-register.js → oauth2-client-register.ts} +79 -86
  6. package/client/pages/{oauth2-client.js → oauth2-client.ts} +157 -161
  7. package/client/pages/oauth2-clients.ts +192 -0
  8. package/client/{route.js → route.ts} +1 -1
  9. package/client/tsconfig.json +11 -0
  10. package/dist-client/bootstrap.d.ts +1 -0
  11. package/dist-client/bootstrap.js +2 -0
  12. package/dist-client/bootstrap.js.map +1 -0
  13. package/dist-client/index.d.ts +0 -0
  14. package/dist-client/index.js +2 -0
  15. package/dist-client/index.js.map +1 -0
  16. package/dist-client/pages/oauth2-client/oauth2-client-importer.d.ts +22 -0
  17. package/dist-client/pages/oauth2-client/oauth2-client-importer.js +100 -0
  18. package/dist-client/pages/oauth2-client/oauth2-client-importer.js.map +1 -0
  19. package/dist-client/pages/oauth2-client/oauth2-client-list-page.d.ts +55 -0
  20. package/dist-client/pages/oauth2-client/oauth2-client-list-page.js +315 -0
  21. package/dist-client/pages/oauth2-client/oauth2-client-list-page.js.map +1 -0
  22. package/dist-client/pages/oauth2-client-register.d.ts +21 -0
  23. package/dist-client/pages/oauth2-client-register.js +190 -0
  24. package/dist-client/pages/oauth2-client-register.js.map +1 -0
  25. package/dist-client/pages/oauth2-client.d.ts +35 -0
  26. package/dist-client/pages/oauth2-client.js +586 -0
  27. package/dist-client/pages/oauth2-client.js.map +1 -0
  28. package/dist-client/pages/oauth2-clients.d.ts +1 -0
  29. package/dist-client/pages/oauth2-clients.js +194 -0
  30. package/dist-client/pages/oauth2-clients.js.map +1 -0
  31. package/dist-client/route.d.ts +1 -0
  32. package/dist-client/route.js +14 -0
  33. package/dist-client/route.js.map +1 -0
  34. package/dist-client/tsconfig.tsbuildinfo +1 -0
  35. package/dist-server/index.d.ts +2 -0
  36. package/dist-server/index.js +2 -16
  37. package/dist-server/index.js.map +1 -1
  38. package/dist-server/routes.d.ts +1 -0
  39. package/dist-server/routes.js +10 -18
  40. package/dist-server/routes.js.map +1 -1
  41. package/dist-server/service/index.d.ts +5 -0
  42. package/dist-server/service/index.js +19 -0
  43. package/dist-server/service/index.js.map +1 -0
  44. package/dist-server/service/oauth2-client/index.d.ts +5 -0
  45. package/dist-server/service/oauth2-client/index.js +9 -0
  46. package/dist-server/service/oauth2-client/index.js.map +1 -0
  47. package/dist-server/service/oauth2-client/oauth2-client-mutation.d.ts +11 -0
  48. package/dist-server/service/oauth2-client/oauth2-client-mutation.js +165 -0
  49. package/dist-server/service/oauth2-client/oauth2-client-mutation.js.map +1 -0
  50. package/dist-server/service/oauth2-client/oauth2-client-query.d.ts +11 -0
  51. package/dist-server/service/oauth2-client/oauth2-client-query.js +79 -0
  52. package/dist-server/service/oauth2-client/oauth2-client-query.js.map +1 -0
  53. package/dist-server/service/oauth2-client/oauth2-client-type.d.ts +45 -0
  54. package/dist-server/service/oauth2-client/oauth2-client-type.js +177 -0
  55. package/dist-server/service/oauth2-client/oauth2-client-type.js.map +1 -0
  56. package/dist-server/service/oauth2-client/oauth2-client.d.ts +39 -0
  57. package/dist-server/service/oauth2-client/oauth2-client.js +220 -0
  58. package/dist-server/service/oauth2-client/oauth2-client.js.map +1 -0
  59. package/dist-server/tsconfig.tsbuildinfo +1 -0
  60. package/package.json +12 -10
  61. package/server/index.ts +2 -3
  62. package/server/routes.ts +9 -20
  63. package/server/service/index.ts +17 -0
  64. package/server/service/oauth2-client/index.ts +6 -0
  65. package/server/service/oauth2-client/oauth2-client-mutation.ts +188 -0
  66. package/server/service/oauth2-client/oauth2-client-query.ts +50 -0
  67. package/server/service/oauth2-client/oauth2-client-type.ts +126 -0
  68. package/server/service/oauth2-client/oauth2-client.ts +193 -0
  69. package/server/tsconfig.json +11 -0
  70. package/things-factory.config.js +5 -14
  71. package/client/index.js +0 -1
  72. package/client/pages/oauth2-clients.js +0 -197
  73. package/dist-server/controllers/index.js +0 -1
  74. package/dist-server/controllers/index.js.map +0 -1
  75. package/dist-server/entities/index.js +0 -9
  76. package/dist-server/entities/index.js.map +0 -1
  77. package/dist-server/entities/oauth2-client.js +0 -190
  78. package/dist-server/entities/oauth2-client.js.map +0 -1
  79. package/dist-server/graphql/index.js +0 -34
  80. package/dist-server/graphql/index.js.map +0 -1
  81. package/dist-server/graphql/resolvers/index.js +0 -18
  82. package/dist-server/graphql/resolvers/index.js.map +0 -1
  83. package/dist-server/graphql/resolvers/oauth2-client/create-oauth2-client.js +0 -19
  84. package/dist-server/graphql/resolvers/oauth2-client/create-oauth2-client.js.map +0 -1
  85. package/dist-server/graphql/resolvers/oauth2-client/delete-oauth2-client.js +0 -12
  86. package/dist-server/graphql/resolvers/oauth2-client/delete-oauth2-client.js.map +0 -1
  87. package/dist-server/graphql/resolvers/oauth2-client/delete-oauth2-clients.js +0 -15
  88. package/dist-server/graphql/resolvers/oauth2-client/delete-oauth2-clients.js.map +0 -1
  89. package/dist-server/graphql/resolvers/oauth2-client/get-oauth2-access-token.js +0 -49
  90. package/dist-server/graphql/resolvers/oauth2-client/get-oauth2-access-token.js.map +0 -1
  91. package/dist-server/graphql/resolvers/oauth2-client/index.js +0 -15
  92. package/dist-server/graphql/resolvers/oauth2-client/index.js.map +0 -1
  93. package/dist-server/graphql/resolvers/oauth2-client/oauth2-client-query.js +0 -46
  94. package/dist-server/graphql/resolvers/oauth2-client/oauth2-client-query.js.map +0 -1
  95. package/dist-server/graphql/resolvers/oauth2-client/refresh-oauth2-access-token.js +0 -38
  96. package/dist-server/graphql/resolvers/oauth2-client/refresh-oauth2-access-token.js.map +0 -1
  97. package/dist-server/graphql/resolvers/oauth2-client/update-oauth2-client.js +0 -15
  98. package/dist-server/graphql/resolvers/oauth2-client/update-oauth2-client.js.map +0 -1
  99. package/dist-server/graphql/types/index.js +0 -18
  100. package/dist-server/graphql/types/index.js.map +0 -1
  101. package/dist-server/graphql/types/oauth2-client/index.js +0 -42
  102. package/dist-server/graphql/types/oauth2-client/index.js.map +0 -1
  103. package/dist-server/graphql/types/oauth2-client/new-oauth2-client.js +0 -30
  104. package/dist-server/graphql/types/oauth2-client/new-oauth2-client.js.map +0 -1
  105. package/dist-server/graphql/types/oauth2-client/oauth2-client-list.js +0 -14
  106. package/dist-server/graphql/types/oauth2-client/oauth2-client-list.js.map +0 -1
  107. package/dist-server/graphql/types/oauth2-client/oauth2-client-patch.js +0 -30
  108. package/dist-server/graphql/types/oauth2-client/oauth2-client-patch.js.map +0 -1
  109. package/dist-server/graphql/types/oauth2-client/oauth2-client.js +0 -38
  110. package/dist-server/graphql/types/oauth2-client/oauth2-client.js.map +0 -1
  111. package/server/entities/index.ts +0 -9
  112. package/server/entities/oauth2-client.ts +0 -156
  113. package/server/graphql/index.ts +0 -9
  114. package/server/graphql/resolvers/index.ts +0 -1
  115. package/server/graphql/resolvers/oauth2-client/create-oauth2-client.ts +0 -24
  116. package/server/graphql/resolvers/oauth2-client/delete-oauth2-client.ts +0 -10
  117. package/server/graphql/resolvers/oauth2-client/delete-oauth2-clients.ts +0 -13
  118. package/server/graphql/resolvers/oauth2-client/get-oauth2-access-token.ts +0 -64
  119. package/server/graphql/resolvers/oauth2-client/index.ts +0 -21
  120. package/server/graphql/resolvers/oauth2-client/oauth2-client-query.ts +0 -62
  121. package/server/graphql/resolvers/oauth2-client/refresh-oauth2-access-token.ts +0 -54
  122. package/server/graphql/resolvers/oauth2-client/update-oauth2-client.ts +0 -17
  123. package/server/graphql/types/index.ts +0 -1
  124. package/server/graphql/types/oauth2-client/index.ts +0 -23
  125. package/server/graphql/types/oauth2-client/new-oauth2-client.ts +0 -24
  126. package/server/graphql/types/oauth2-client/oauth2-client-list.ts +0 -8
  127. package/server/graphql/types/oauth2-client/oauth2-client-patch.ts +0 -24
  128. package/server/graphql/types/oauth2-client/oauth2-client.ts +0 -32
  129. package/tsconfig.json +0 -9
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth2-client-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/oauth2-client/oauth2-client-query.ts"],"names":[],"mappings":";;;;;;AAAA,iDAAoE;AACpE,kEAAwC;AACxC,qCAAuC;AACvC,oDAA2B;AAC3B,gDAAgD;AAEnC,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,YAAY,CAAC,CAAM,EAAE,EAAE,EAAE,EAAE,EAAE,OAAY;QAC7C,MAAM,UAAU,GAAG,IAAA,uBAAa,EAAC,uBAAY,CAAC,CAAA;QAE9C,OAAO,MAAM,UAAU,CAAC,OAAO,CAAC;YAC9B,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE;YAC3C,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5C,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAY;QACzD,MAAM,eAAe,GAAG,IAAA,yBAAiB,EAAC,MAAM,CAAC,CAAA;QACjD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,uBAAa,EAAC,uBAAY,CAAC,CAAC,YAAY,iCAChE,eAAe,KAClB,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,IAC3C,CAAA;QACF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,CAAM,EAAE,EAAE,EAAE,EAAE,EAAE,OAAY;QACjD,MAAM,UAAU,GAAG,IAAA,uBAAa,EAAC,uBAAY,CAAC,CAAA;QAC9C,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAEjD,MAAM,EACJ,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,gBAAgB,EACzB,MAAM,EACP,GAAG,YAAY,CAAA;QAEhB,IAAI,SAAS,KAAK,MAAM,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAA;SACxD;QAED,MAAM,KAAK,GAAG,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QACpD,MAAM,UAAU,CAAC,IAAI,iCAChB,YAAY,KACf,KAAK,IACL,CAAA;QAEF,IAAI,IAAI,GAAG,IAAI,uBAAY,CAAC;YAC1B,QAAQ;YACR,YAAY;YACZ,cAAc;YACd,gBAAgB;YAChB,WAAW,EAAE,WAAW,IAAI,GAAG,OAAO,CAAC,MAAM,yBAAyB;YACtE,MAAM,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,GAAG,CAAC,KAAI,EAAE;YAChC,KAAK;SACN,CAAC,CAAA;QAEF,OAAO,MAAO,IAAI,CAAC,SAAS,CAAS,CAAC,MAAM,EAAE,CAAA;IAChD,CAAC;CACF,CAAA"}
@@ -1,38 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.refreshOauth2AccessToken = void 0;
7
- const client_oauth2_1 = __importDefault(require("client-oauth2"));
8
- const typeorm_1 = require("typeorm");
9
- const entities_1 = require("../../../entities");
10
- const debug = require('debug')('things-factory:oauth2-client:refresh-oauth2-access-token');
11
- exports.refreshOauth2AccessToken = {
12
- async refreshOauth2AccessToken(_, { id }, context) {
13
- const repository = (0, typeorm_1.getRepository)(entities_1.Oauth2Client);
14
- const oauth2Client = await repository.findOne(id);
15
- const { clientId, clientSecret, accessTokenUrl: accessTokenUri, authUrl: authorizationUri, scopes, tokenType, accessToken, refreshToken } = oauth2Client;
16
- if (!refreshToken) {
17
- throw new Error('refreshToken not found');
18
- }
19
- var auth = new client_oauth2_1.default({
20
- clientId,
21
- clientSecret,
22
- accessTokenUri,
23
- authorizationUri,
24
- scopes: scopes === null || scopes === void 0 ? void 0 : scopes.split(' ')
25
- });
26
- try {
27
- var token = await auth.createToken(accessToken, refreshToken, tokenType, {}).refresh();
28
- }
29
- catch (err) {
30
- debug('getting refresh-token error', err);
31
- throw err;
32
- }
33
- const { accessToken: newAccessToken, refreshToken: newRefreshToken, tokenType: newTokenType, data } = token;
34
- const expires = (data === null || data === void 0 ? void 0 : data.expires_in) ? token.expiresIn(data === null || data === void 0 ? void 0 : data.expires_in) : null;
35
- return await repository.save(Object.assign(Object.assign({}, oauth2Client), { accessToken: newAccessToken, refreshToken: newRefreshToken, tokenType: newTokenType, expires }));
36
- }
37
- };
38
- //# sourceMappingURL=refresh-oauth2-access-token.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"refresh-oauth2-access-token.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/oauth2-client/refresh-oauth2-access-token.ts"],"names":[],"mappings":";;;;;;AAAA,kEAAwC;AAExC,qCAAuC;AACvC,gDAAgD;AAEhD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,0DAA0D,CAAC,CAAA;AAE7E,QAAA,wBAAwB,GAAG;IACtC,KAAK,CAAC,wBAAwB,CAAC,CAAM,EAAE,EAAE,EAAE,EAAE,EAAE,OAAY;QACzD,MAAM,UAAU,GAAG,IAAA,uBAAa,EAAC,uBAAY,CAAC,CAAA;QAC9C,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAEjD,MAAM,EACJ,QAAQ,EACR,YAAY,EACZ,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,gBAAgB,EACzB,MAAM,EACN,SAAS,EACT,WAAW,EACX,YAAY,EACb,GAAG,YAAY,CAAA;QAEhB,IAAI,CAAC,YAAY,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;SAC1C;QAED,IAAI,IAAI,GAAG,IAAI,uBAAY,CAAC;YAC1B,QAAQ;YACR,YAAY;YACZ,cAAc;YACd,gBAAgB;YAChB,MAAM,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,GAAG,CAAC;SAC3B,CAAC,CAAA;QAEF,IAAI;YACF,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAA;SACvF;QAAC,OAAO,GAAG,EAAE;YACZ,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAA;YACzC,MAAM,GAAG,CAAA;SACV;QAED,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;QAC3G,MAAM,OAAO,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,EAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAElF,OAAO,MAAM,UAAU,CAAC,IAAI,iCACvB,YAAY,KACf,WAAW,EAAE,cAAc,EAC3B,YAAY,EAAE,eAAe,EAC7B,SAAS,EAAE,YAAY,EACvB,OAAO,IACP,CAAA;IACJ,CAAC;CACF,CAAA"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateOauth2Client = void 0;
4
- const typeorm_1 = require("typeorm");
5
- const entities_1 = require("../../../entities");
6
- exports.updateOauth2Client = {
7
- async updateOauth2Client(_, { id, patch }, context) {
8
- const repository = (0, typeorm_1.getRepository)(entities_1.Oauth2Client);
9
- const oauth2Client = await repository.findOne({
10
- where: { domain: context.state.domain, id }
11
- });
12
- return await repository.save(Object.assign(Object.assign(Object.assign({}, oauth2Client), patch), { updater: context.state.user }));
13
- }
14
- };
15
- //# sourceMappingURL=update-oauth2-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-oauth2-client.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/oauth2-client/update-oauth2-client.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,gDAAgD;AAEnC,QAAA,kBAAkB,GAAG;IAChC,KAAK,CAAC,kBAAkB,CAAC,CAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,OAAY;QAC1D,MAAM,UAAU,GAAG,IAAA,uBAAa,EAAC,uBAAY,CAAC,CAAA;QAC9C,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YAC5C,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE;SAC5C,CAAC,CAAA;QAEF,OAAO,MAAM,UAAU,CAAC,IAAI,+CACvB,YAAY,GACZ,KAAK,KACR,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,IAC3B,CAAA;IACJ,CAAC;CACF,CAAA"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./oauth2-client"), exports);
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/graphql/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA+B"}
@@ -1,42 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- var __importDefault = (this && this.__importDefault) || function (mod) {
17
- return (mod && mod.__esModule) ? mod : { "default": mod };
18
- };
19
- Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.Oauth2ClientResolver = void 0;
21
- const graphql_tag_1 = __importDefault(require("graphql-tag"));
22
- __exportStar(require("./oauth2-client"), exports);
23
- __exportStar(require("./new-oauth2-client"), exports);
24
- __exportStar(require("./oauth2-client-patch"), exports);
25
- __exportStar(require("./oauth2-client-list"), exports);
26
- exports.Oauth2ClientResolver = (0, graphql_tag_1.default) `
27
- extend type Mutation {
28
- createOauth2Client(oauth2Client: NewOauth2Client!): Oauth2Client
29
- updateOauth2Client(id: String!, patch: Oauth2ClientPatch!): Oauth2Client
30
- deleteOauth2Client(id: String!): Boolean
31
- deleteOauth2Clients(ids: [String]!): Boolean
32
- getOauth2AccessToken(id: String!): Oauth2Client
33
- refreshOauth2AccessToken(id: String!): Oauth2Client
34
- }
35
-
36
- extend type Query {
37
- oauth2Clients(filters: [Filter], pagination: Pagination, sortings: [Sorting]): Oauth2ClientList
38
- oauth2Client(id: String!): Oauth2Client
39
- getOauth2AuthUrl(id: String!): String
40
- }
41
- `;
42
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/types/oauth2-client/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,8DAA6B;AAE7B,kDAA+B;AAC/B,sDAAmC;AACnC,wDAAqC;AACrC,uDAAoC;AAEvB,QAAA,oBAAoB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;CAetC,CAAA"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.NewOauth2Client = void 0;
7
- const graphql_tag_1 = __importDefault(require("graphql-tag"));
8
- exports.NewOauth2Client = (0, graphql_tag_1.default) `
9
- input NewOauth2Client {
10
- name: String
11
- description: String
12
- icon: String
13
- grantType: String
14
- clientId: String
15
- clientSecret: String
16
- callbackUrl: String
17
- authUrl: String
18
- accessTokenUrl: String
19
- webhook: String
20
- username: String
21
- password: String
22
- codeChallengeMethod: String
23
- codeVerifier: String
24
- scopes: String
25
- accessToken: String
26
- refreshToken: String
27
- jwtToken: String
28
- }
29
- `;
30
- //# sourceMappingURL=new-oauth2-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"new-oauth2-client.js","sourceRoot":"","sources":["../../../../server/graphql/types/oauth2-client/new-oauth2-client.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,eAAe,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;CAqBjC,CAAA"}
@@ -1,14 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Oauth2ClientList = void 0;
7
- const graphql_tag_1 = __importDefault(require("graphql-tag"));
8
- exports.Oauth2ClientList = (0, graphql_tag_1.default) `
9
- type Oauth2ClientList {
10
- items: [Oauth2Client]
11
- total: Int
12
- }
13
- `;
14
- //# sourceMappingURL=oauth2-client-list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth2-client-list.js","sourceRoot":"","sources":["../../../../server/graphql/types/oauth2-client/oauth2-client-list.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,gBAAgB,GAAG,IAAA,qBAAG,EAAA;;;;;CAKlC,CAAA"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Oauth2ClientPatch = void 0;
7
- const graphql_tag_1 = __importDefault(require("graphql-tag"));
8
- exports.Oauth2ClientPatch = (0, graphql_tag_1.default) `
9
- input Oauth2ClientPatch {
10
- name: String
11
- description: String
12
- icon: String
13
- grantType: String
14
- clientId: String
15
- clientSecret: String
16
- callbackUrl: String
17
- authUrl: String
18
- accessTokenUrl: String
19
- webhook: String
20
- username: String
21
- password: String
22
- codeChallengeMethod: String
23
- codeVerifier: String
24
- scopes: String
25
- accessToken: String
26
- refreshToken: String
27
- jwtToken: String
28
- }
29
- `;
30
- //# sourceMappingURL=oauth2-client-patch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth2-client-patch.js","sourceRoot":"","sources":["../../../../server/graphql/types/oauth2-client/oauth2-client-patch.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,iBAAiB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;CAqBnC,CAAA"}
@@ -1,38 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Oauth2Client = void 0;
7
- const graphql_tag_1 = __importDefault(require("graphql-tag"));
8
- exports.Oauth2Client = (0, graphql_tag_1.default) `
9
- type Oauth2Client {
10
- id: String
11
- domain: Domain
12
- name: String
13
- description: String
14
- icon: String
15
- grantType: String
16
- clientId: String
17
- clientSecret: String
18
- callbackUrl: String
19
- authUrl: String
20
- accessTokenUrl: String
21
- webhook: String
22
- username: String
23
- password: String
24
- codeChallengeMethod: String
25
- codeVerifier: String
26
- scopes: String
27
- accessToken: String
28
- refreshToken: String
29
- expires: String
30
- jwtToken: String
31
- tokenType: String
32
- updater: User
33
- creator: User
34
- updatedAt: String
35
- createdAt: String
36
- }
37
- `;
38
- //# sourceMappingURL=oauth2-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth2-client.js","sourceRoot":"","sources":["../../../../server/graphql/types/oauth2-client/oauth2-client.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,YAAY,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B9B,CAAA"}
@@ -1,9 +0,0 @@
1
- import { Oauth2Client } from './oauth2-client'
2
-
3
- export const entities = [
4
- Oauth2Client
5
- ]
6
-
7
- export {
8
- Oauth2Client
9
- }
@@ -1,156 +0,0 @@
1
- import {
2
- CreateDateColumn,
3
- UpdateDateColumn,
4
- Entity,
5
- Index,
6
- Column,
7
- OneToMany,
8
- ManyToOne,
9
- PrimaryGeneratedColumn
10
- } from 'typeorm'
11
- import { Domain } from '@things-factory/shell'
12
- import { User } from '@things-factory/auth-base'
13
-
14
- @Entity()
15
- @Index('ix_oauth2_client_0', (oauth2Client: Oauth2Client) => [oauth2Client.domain, oauth2Client.name], { unique: true })
16
- export class Oauth2Client {
17
- @PrimaryGeneratedColumn('uuid')
18
- id: string
19
-
20
- @ManyToOne(type => Domain)
21
- domain: Domain
22
-
23
- @Column()
24
- name: string
25
-
26
- @Column({
27
- nullable: true
28
- })
29
- description: string
30
-
31
- @Column({
32
- nullable: true
33
- })
34
- icon: string
35
-
36
- @Column({
37
- nullable: true
38
- })
39
- grantType: string
40
-
41
- @Column({
42
- nullable: true
43
- })
44
- clientId: string
45
-
46
- @Column({
47
- nullable: true
48
- })
49
- clientSecret: string
50
-
51
- @Column({
52
- nullable: true
53
- })
54
- accessTokenUrl: string
55
-
56
- @Column({
57
- nullable: true
58
- })
59
- authUrl: string
60
-
61
- @Column({
62
- nullable: true
63
- })
64
- callbackUrl: string
65
-
66
- @Column({
67
- nullable: true
68
- })
69
- webhook: string
70
-
71
- @Column({
72
- nullable: true
73
- })
74
- username: string
75
-
76
- @Column({
77
- nullable: true
78
- })
79
- password: string
80
-
81
- @Column({
82
- nullable: true
83
- })
84
- codeChallengeMethod: string
85
-
86
- @Column({
87
- nullable: true
88
- })
89
- codeVerifier: string
90
-
91
- @Column({
92
- nullable: true
93
- })
94
- scopes: string
95
-
96
- @Column({
97
- nullable: true
98
- })
99
- accessToken: string
100
-
101
- @Column({
102
- nullable: true
103
- })
104
- refreshToken: string
105
-
106
- @Column({
107
- nullable: true
108
- })
109
- expires: Date
110
-
111
- @Column({
112
- nullable: true
113
- })
114
- state: string
115
-
116
- @Column({
117
- nullable: true
118
- })
119
- jwtToken: string
120
-
121
- @Column({
122
- nullable: true
123
- })
124
- tokenType: string
125
-
126
- @CreateDateColumn()
127
- createdAt: Date
128
-
129
- @UpdateDateColumn()
130
- updatedAt: Date
131
-
132
- @ManyToOne(type => User, {
133
- nullable: true
134
- })
135
- creator: User
136
-
137
- @ManyToOne(type => User, {
138
- nullable: true
139
- })
140
- updater: User
141
-
142
- getAuthHeaders() {
143
- if (this.tokenType == 'bearer') {
144
- return {
145
- Authorization: `Bearer ${this.accessToken}`
146
- }
147
- } else if (this.tokenType == 'basic' || !this.tokenType) {
148
- const encoded = Buffer.from(`${this.username}:${this.password}`).toString('base64')
149
- return {
150
- Authorization: `Basic ${encoded}`
151
- }
152
- }
153
-
154
- return {}
155
- }
156
- }
@@ -1,9 +0,0 @@
1
- import { deepMerge } from '@things-factory/utils'
2
-
3
- import * as resolvers from './resolvers'
4
- import * as typeDefs from './types'
5
-
6
- export const schema = {
7
- typeDefs,
8
- resolvers: deepMerge.apply(null, Object.values(resolvers))
9
- }
@@ -1 +0,0 @@
1
- export * from './oauth2-client'
@@ -1,24 +0,0 @@
1
- import { config } from '@things-factory/env'
2
- import { getRepository } from 'typeorm'
3
- import { URL } from 'url'
4
- import { Oauth2Client } from '../../../entities'
5
- const protocol: string = config.get('protocol')
6
-
7
- export const createOauth2Client = {
8
- async createOauth2Client(_: any, { oauth2Client }, context: any) {
9
- const { origin } = context
10
- let url: URL = new URL(origin)
11
- url.protocol = protocol || url.protocol
12
- url.pathname = '/oauth2-client/callback'
13
-
14
- const { domain, user } = context.state
15
-
16
- return await getRepository(Oauth2Client).save({
17
- ...oauth2Client,
18
- callbackUrl: oauth2Client.callbackUrl || url.href,
19
- domain: domain,
20
- creator: user,
21
- updater: user
22
- })
23
- }
24
- }
@@ -1,10 +0,0 @@
1
- import { getRepository } from 'typeorm'
2
- import { Oauth2Client } from '../../../entities'
3
-
4
- export const deleteOauth2Client = {
5
- async deleteOauth2Client(_: any, { id }, context: any) {
6
- await getRepository(Oauth2Client).delete({ domain: context.state.domain, id })
7
- return true
8
- }
9
- }
10
-
@@ -1,13 +0,0 @@
1
- import { getRepository, In } from 'typeorm'
2
- import { Oauth2Client } from '../../../entities'
3
-
4
- export const deleteOauth2Clients = {
5
- async deleteOauth2Clients(_: any, { ids }, context: any) {
6
- await getRepository(Oauth2Client).delete({
7
- domain: context.state.domain,
8
- id: In(ids)
9
- })
10
- return true
11
- }
12
- }
13
-
@@ -1,64 +0,0 @@
1
- import ClientOAuth2 from 'client-oauth2'
2
-
3
- import { getRepository } from 'typeorm'
4
- import { Oauth2Client } from '../../../entities'
5
-
6
- const debug = require('debug')('thins-factory:oauth2-client:get-oauth2-access-token')
7
-
8
- export const getOauth2AccessToken = {
9
- async getOauth2AccessToken(_: any, { id }, context: any) {
10
- const repository = getRepository(Oauth2Client)
11
- const oauth2Client = await repository.findOne(id)
12
-
13
- const {
14
- grantType,
15
- clientId,
16
- clientSecret,
17
- accessTokenUrl: accessTokenUri,
18
- authUrl: authorizationUri,
19
- username,
20
- password,
21
- jwtToken,
22
- scopes
23
- } = oauth2Client
24
-
25
- var auth = new ClientOAuth2({
26
- clientId,
27
- clientSecret,
28
- accessTokenUri,
29
- authorizationUri,
30
- scopes: scopes.split(' ')
31
- })
32
-
33
- debug('grant-type', grantType)
34
-
35
- var getTokenParams = []
36
- switch (grantType) {
37
- case 'owner':
38
- getTokenParams = [username, password]
39
- break
40
- case 'credentials':
41
- getTokenParams = []
42
- break
43
- case 'jwt':
44
- getTokenParams = [jwtToken]
45
- break
46
- case 'code':
47
- default:
48
- throw new Error(`unsupported grant type: ${grantType}`)
49
- }
50
-
51
- const token = await auth[grantType].getToken.call(auth[grantType], getTokenParams)
52
- const { tokenType: newTokenType, accessToken, refreshToken, data } = token
53
- const expires = data?.expires_in ? token.expiresIn(data?.expires_in as any) : null
54
-
55
- return await repository.save({
56
- ...oauth2Client,
57
- tokenType: newTokenType,
58
- accessToken,
59
- refreshToken,
60
- expires
61
- // state: ''
62
- })
63
- }
64
- }
@@ -1,21 +0,0 @@
1
- import { Query } from './oauth2-client-query'
2
-
3
- import { updateOauth2Client } from './update-oauth2-client'
4
- import { createOauth2Client } from './create-oauth2-client'
5
- import { deleteOauth2Client } from './delete-oauth2-client'
6
- import { deleteOauth2Clients } from './delete-oauth2-clients'
7
-
8
- import { getOauth2AccessToken } from './get-oauth2-access-token'
9
- import { refreshOauth2AccessToken } from './refresh-oauth2-access-token'
10
-
11
- export const Oauth2ClientResolver = {
12
- Query,
13
- Mutation: {
14
- ...updateOauth2Client,
15
- ...createOauth2Client,
16
- ...deleteOauth2Client,
17
- ...deleteOauth2Clients,
18
- ...getOauth2AccessToken,
19
- ...refreshOauth2AccessToken
20
- }
21
- }
@@ -1,62 +0,0 @@
1
- import { ListParam, convertListParams } from '@things-factory/shell'
2
- import ClientOAuth2 from 'client-oauth2'
3
- import { getRepository } from 'typeorm'
4
- import crypto from 'crypto'
5
- import { Oauth2Client } from '../../../entities'
6
-
7
- export const Query = {
8
- async oauth2Client(_: any, { id }, context: any) {
9
- const repository = getRepository(Oauth2Client)
10
-
11
- return await repository.findOne({
12
- where: { domain: context.state.domain, id },
13
- relations: ['domain', 'creator', 'updater']
14
- })
15
- },
16
-
17
- async oauth2Clients(_: any, params: ListParam, context: any) {
18
- const convertedParams = convertListParams(params)
19
- const [items, total] = await getRepository(Oauth2Client).findAndCount({
20
- ...convertedParams,
21
- relations: ['domain', 'creator', 'updater']
22
- })
23
- return { items, total }
24
- },
25
-
26
- async getOauth2AuthUrl(_: any, { id }, context: any) {
27
- const repository = getRepository(Oauth2Client)
28
- const oauth2Client = await repository.findOne(id)
29
-
30
- const {
31
- grantType,
32
- clientId,
33
- clientSecret,
34
- callbackUrl,
35
- accessTokenUrl: accessTokenUri,
36
- authUrl: authorizationUri,
37
- scopes
38
- } = oauth2Client
39
-
40
- if (grantType !== 'code') {
41
- throw new Error(`unsupported grant type: ${grantType}`)
42
- }
43
-
44
- const state = crypto.randomBytes(16).toString('hex')
45
- await repository.save({
46
- ...oauth2Client,
47
- state
48
- })
49
-
50
- var auth = new ClientOAuth2({
51
- clientId,
52
- clientSecret,
53
- accessTokenUri,
54
- authorizationUri,
55
- redirectUri: callbackUrl || `${context.origin}/oauth2-client/callback`,
56
- scopes: scopes?.split(' ') || [],
57
- state
58
- })
59
-
60
- return await (auth[grantType] as any).getUri()
61
- }
62
- }