@things-factory/oauth2-client 5.0.15 → 6.0.0-alpha.10

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 (104) 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/tsconfig.tsbuildinfo +1 -1
  11. package/dist-server/index.d.ts +2 -0
  12. package/dist-server/index.js +1 -2
  13. package/dist-server/index.js.map +1 -1
  14. package/dist-server/routes.d.ts +1 -0
  15. package/dist-server/routes.js +7 -9
  16. package/dist-server/routes.js.map +1 -1
  17. package/dist-server/service/index.d.ts +5 -0
  18. package/dist-server/service/index.js +19 -0
  19. package/dist-server/service/index.js.map +1 -0
  20. package/dist-server/service/oauth2-client/index.d.ts +5 -0
  21. package/dist-server/service/oauth2-client/index.js +9 -0
  22. package/dist-server/service/oauth2-client/index.js.map +1 -0
  23. package/dist-server/service/oauth2-client/oauth2-client-mutation.d.ts +11 -0
  24. package/dist-server/service/oauth2-client/oauth2-client-mutation.js +165 -0
  25. package/dist-server/service/oauth2-client/oauth2-client-mutation.js.map +1 -0
  26. package/dist-server/service/oauth2-client/oauth2-client-query.d.ts +11 -0
  27. package/dist-server/service/oauth2-client/oauth2-client-query.js +79 -0
  28. package/dist-server/service/oauth2-client/oauth2-client-query.js.map +1 -0
  29. package/dist-server/service/oauth2-client/oauth2-client-type.d.ts +45 -0
  30. package/dist-server/service/oauth2-client/oauth2-client-type.js +177 -0
  31. package/dist-server/service/oauth2-client/oauth2-client-type.js.map +1 -0
  32. package/dist-server/service/oauth2-client/oauth2-client.d.ts +39 -0
  33. package/dist-server/{entities → service/oauth2-client}/oauth2-client.js +47 -9
  34. package/dist-server/service/oauth2-client/oauth2-client.js.map +1 -0
  35. package/dist-server/tsconfig.tsbuildinfo +1 -1
  36. package/package.json +12 -10
  37. package/server/index.ts +2 -3
  38. package/server/routes.ts +8 -13
  39. package/server/service/index.ts +17 -0
  40. package/server/service/oauth2-client/index.ts +6 -0
  41. package/server/service/oauth2-client/oauth2-client-mutation.ts +188 -0
  42. package/server/service/oauth2-client/oauth2-client-query.ts +50 -0
  43. package/server/service/oauth2-client/oauth2-client-type.ts +126 -0
  44. package/server/service/oauth2-client/oauth2-client.ts +193 -0
  45. package/server/tsconfig.json +11 -0
  46. package/things-factory.config.js +5 -14
  47. package/client/index.js +0 -1
  48. package/client/pages/oauth2-clients.js +0 -197
  49. package/dist-server/controllers/index.js +0 -1
  50. package/dist-server/controllers/index.js.map +0 -1
  51. package/dist-server/entities/index.js +0 -9
  52. package/dist-server/entities/index.js.map +0 -1
  53. package/dist-server/entities/oauth2-client.js.map +0 -1
  54. package/dist-server/graphql/index.js +0 -12
  55. package/dist-server/graphql/index.js.map +0 -1
  56. package/dist-server/graphql/resolvers/index.js +0 -5
  57. package/dist-server/graphql/resolvers/index.js.map +0 -1
  58. package/dist-server/graphql/resolvers/oauth2-client/create-oauth2-client.js +0 -19
  59. package/dist-server/graphql/resolvers/oauth2-client/create-oauth2-client.js.map +0 -1
  60. package/dist-server/graphql/resolvers/oauth2-client/delete-oauth2-client.js +0 -12
  61. package/dist-server/graphql/resolvers/oauth2-client/delete-oauth2-client.js.map +0 -1
  62. package/dist-server/graphql/resolvers/oauth2-client/delete-oauth2-clients.js +0 -15
  63. package/dist-server/graphql/resolvers/oauth2-client/delete-oauth2-clients.js.map +0 -1
  64. package/dist-server/graphql/resolvers/oauth2-client/get-oauth2-access-token.js +0 -45
  65. package/dist-server/graphql/resolvers/oauth2-client/get-oauth2-access-token.js.map +0 -1
  66. package/dist-server/graphql/resolvers/oauth2-client/index.js +0 -15
  67. package/dist-server/graphql/resolvers/oauth2-client/index.js.map +0 -1
  68. package/dist-server/graphql/resolvers/oauth2-client/oauth2-client-query.js +0 -44
  69. package/dist-server/graphql/resolvers/oauth2-client/oauth2-client-query.js.map +0 -1
  70. package/dist-server/graphql/resolvers/oauth2-client/refresh-oauth2-access-token.js +0 -34
  71. package/dist-server/graphql/resolvers/oauth2-client/refresh-oauth2-access-token.js.map +0 -1
  72. package/dist-server/graphql/resolvers/oauth2-client/update-oauth2-client.js +0 -15
  73. package/dist-server/graphql/resolvers/oauth2-client/update-oauth2-client.js.map +0 -1
  74. package/dist-server/graphql/types/index.js +0 -5
  75. package/dist-server/graphql/types/index.js.map +0 -1
  76. package/dist-server/graphql/types/oauth2-client/index.js +0 -26
  77. package/dist-server/graphql/types/oauth2-client/index.js.map +0 -1
  78. package/dist-server/graphql/types/oauth2-client/new-oauth2-client.js +0 -28
  79. package/dist-server/graphql/types/oauth2-client/new-oauth2-client.js.map +0 -1
  80. package/dist-server/graphql/types/oauth2-client/oauth2-client-list.js +0 -12
  81. package/dist-server/graphql/types/oauth2-client/oauth2-client-list.js.map +0 -1
  82. package/dist-server/graphql/types/oauth2-client/oauth2-client-patch.js +0 -28
  83. package/dist-server/graphql/types/oauth2-client/oauth2-client-patch.js.map +0 -1
  84. package/dist-server/graphql/types/oauth2-client/oauth2-client.js +0 -36
  85. package/dist-server/graphql/types/oauth2-client/oauth2-client.js.map +0 -1
  86. package/server/entities/index.ts +0 -9
  87. package/server/entities/oauth2-client.ts +0 -156
  88. package/server/graphql/index.ts +0 -9
  89. package/server/graphql/resolvers/index.ts +0 -1
  90. package/server/graphql/resolvers/oauth2-client/create-oauth2-client.ts +0 -24
  91. package/server/graphql/resolvers/oauth2-client/delete-oauth2-client.ts +0 -10
  92. package/server/graphql/resolvers/oauth2-client/delete-oauth2-clients.ts +0 -13
  93. package/server/graphql/resolvers/oauth2-client/get-oauth2-access-token.ts +0 -60
  94. package/server/graphql/resolvers/oauth2-client/index.ts +0 -21
  95. package/server/graphql/resolvers/oauth2-client/oauth2-client-query.ts +0 -62
  96. package/server/graphql/resolvers/oauth2-client/refresh-oauth2-access-token.ts +0 -51
  97. package/server/graphql/resolvers/oauth2-client/update-oauth2-client.ts +0 -17
  98. package/server/graphql/types/index.ts +0 -1
  99. package/server/graphql/types/oauth2-client/index.ts +0 -23
  100. package/server/graphql/types/oauth2-client/new-oauth2-client.ts +0 -24
  101. package/server/graphql/types/oauth2-client/oauth2-client-list.ts +0 -8
  102. package/server/graphql/types/oauth2-client/oauth2-client-patch.ts +0 -24
  103. package/server/graphql/types/oauth2-client/oauth2-client.ts +0 -32
  104. package/tsconfig.json +0 -9
@@ -1,21 +1,12 @@
1
- import route from './client/route'
2
- import bootstrap from './client/bootstrap'
1
+ import bootstrap from './dist-client/bootstrap'
2
+ import route from './dist-client/route'
3
3
 
4
4
  export default {
5
5
  route,
6
6
  routes: [
7
- {
8
- tagname: 'oauth2-client-register',
9
- page: 'oauth2-client-register'
10
- },
11
- {
12
- tagname: 'oauth2-clients',
13
- page: 'oauth2-clients'
14
- },
15
- {
16
- tagname: 'oauth2-client',
17
- page: 'oauth2-client'
18
- }
7
+ { tagname: 'oauth2-client-register', page: 'oauth2-client-register' },
8
+ { tagname: 'oauth2-clients', page: 'oauth2-clients' },
9
+ { tagname: 'oauth2-client', page: 'oauth2-client' }
19
10
  ],
20
11
  bootstrap
21
12
  }
package/client/index.js DELETED
@@ -1 +0,0 @@
1
- export * from './actions/oauth2-client'
@@ -1,197 +0,0 @@
1
- import gql from 'graphql-tag'
2
- import { css, html } from 'lit'
3
- import { connect } from 'pwa-helpers/connect-mixin.js'
4
-
5
- import { notify } from '@operato/layout'
6
- import { client, PageView, store } from '@things-factory/shell'
7
-
8
- class Oauth2Clients extends connect(store)(PageView) {
9
- static get styles() {
10
- return [
11
- css`
12
- :host {
13
- display: flex;
14
- flex-direction: column;
15
- background-color: var(--main-section-background-color);
16
- padding: var(--padding-wide);
17
-
18
- overflow: auto;
19
- }
20
-
21
- [button-primary] {
22
- background-color: var(--button-primary-background-color);
23
- border: var(--button-border);
24
- border-radius: var(--button-border-radius);
25
- margin: var(--button-margin);
26
- padding: var(--button-primary-padding);
27
- color: var(--button-primary-color);
28
- font: var(--button-primary-font);
29
- text-transform: var(--button-text-transform);
30
-
31
- text-decoration: none;
32
- }
33
- [button-primary]:hover {
34
- background-color: var(--button-primary-active-background-color);
35
- box-shadow: var(--button-active-box-shadow);
36
- }
37
- [button] {
38
- background-color: var(--button-background-color);
39
- border: var(--button-border);
40
- border-radius: var(--button-border-radius);
41
- margin: var(--button-margin);
42
- padding: var(--button-padding);
43
- color: var(--button-color);
44
- font: var(--button-font);
45
- text-transform: var(--button-text-transform);
46
-
47
- margin-right: 0;
48
- float: right;
49
- text-decoration: none;
50
- }
51
- [button]:hover {
52
- border: var(--button-activ-border);
53
- box-shadow: var(--button-active-box-shadow);
54
- }
55
- h2 {
56
- margin: var(--title-margin);
57
- font: var(--title-font);
58
- color: var(--title-text-color);
59
- }
60
- [page-description] {
61
- margin: var(--page-description-margin);
62
- font: var(--page-description-font);
63
- color: var(--page-description-color);
64
- }
65
- div {
66
- margin: var(--margin-wide) 0;
67
- }
68
- table {
69
- background-color: var(--theme-white-color);
70
- width: 100%;
71
- border-collapse: collapse;
72
- }
73
- th {
74
- background-color: rgba(var(--primary-color-rgb), 0.1);
75
- border-top: var(--th-border-top);
76
- border-bottom: var(--border-dark-color);
77
- padding: var(--th-padding);
78
-
79
- font: var(--th-font);
80
- color: var(--secondary-color);
81
- text-transform: var(--th-text-transform);
82
- }
83
- td {
84
- padding: var(--td-padding);
85
- border-bottom: var(--border-dark-color);
86
- line-height: 1.1;
87
- }
88
- td a {
89
- font: var(--td-font);
90
- text-decoration: none;
91
- color: var(--theme-black-color);
92
- }
93
- td a strong {
94
- color: var(--secondary-text-color);
95
- font: bold 16px var(--theme-font);
96
-
97
- display: block;
98
- text-decoration: none;
99
- }
100
-
101
- .text-align-center {
102
- text-align: center;
103
- }
104
- .text-align-right {
105
- text-align: right;
106
- }
107
- `
108
- ]
109
- }
110
-
111
- static get properties() {
112
- return {
113
- clients: Array
114
- }
115
- }
116
-
117
- get context() {
118
- return {
119
- title: `clients`
120
- }
121
- }
122
-
123
- render() {
124
- var clients = this.clients || []
125
-
126
- return html`
127
- <div>
128
- <h2>Registered Oauth2 Clients</h2>
129
- <p page-description>
130
- What type of oauth2 client are you building?<br />Choose the platform type that best suits the audience you’re
131
- building for.
132
- </p>
133
- <a href="oauth2-client-register" button-primary>register new oauth2 client</a>
134
- </div>
135
-
136
- <div>
137
- <table>
138
- <tr>
139
- <th>app name</th>
140
- <th>API health</th>
141
- <th>Installs</th>
142
- <th>status</th>
143
- </tr>
144
- ${clients.map(
145
- client => html`
146
- <tr>
147
- <td>
148
- <a href=${`oauth2-client/${client.id}`}>
149
- <strong>${client.name}</strong>
150
- ${client.description}
151
- </a>
152
- </td>
153
- <td class="text-align-center">OK</td>
154
- <td class="text-align-right">1</td>
155
- <td class="text-align-center">draft</td>
156
- </tr>
157
- `
158
- )}
159
- </table>
160
- </div>
161
- `
162
- }
163
-
164
- async pageUpdated(changes, lifecycle, before) {
165
- if (this.active) {
166
- this.clients = (await this.fetchOauth2Clients())?.items || []
167
- }
168
- }
169
-
170
- async fetchOauth2Clients() {
171
- const response = await client.query({
172
- query: gql`
173
- query {
174
- oauth2Clients {
175
- items {
176
- id
177
- name
178
- description
179
- }
180
- total
181
- }
182
- }
183
- `
184
- })
185
-
186
- if (response.errors) {
187
- notify({
188
- level: 'error',
189
- message: 'fetch oauth2 clients fail'
190
- })
191
- } else {
192
- return response.data.oauth2Clients
193
- }
194
- }
195
- }
196
-
197
- customElements.define('oauth2-clients', Oauth2Clients)
@@ -1 +0,0 @@
1
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/controllers/index.ts"],"names":[],"mappings":"","sourcesContent":[""]}
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Oauth2Client = exports.entities = void 0;
4
- const oauth2_client_1 = require("./oauth2-client");
5
- Object.defineProperty(exports, "Oauth2Client", { enumerable: true, get: function () { return oauth2_client_1.Oauth2Client; } });
6
- exports.entities = [
7
- oauth2_client_1.Oauth2Client
8
- ];
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/entities/index.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAO7C,6FAPQ,4BAAY,OAOR;AALA,QAAA,QAAQ,GAAG;IACvB,4BAAY;CACZ,CAAA","sourcesContent":["import { Oauth2Client } from './oauth2-client'\n\nexport const entities = [\n\tOauth2Client\n]\n\nexport {\n\tOauth2Client\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth2-client.js","sourceRoot":"","sources":["../../server/entities/oauth2-client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CreateDateColumn,\n UpdateDateColumn,\n Entity,\n Index,\n Column,\n OneToMany,\n ManyToOne,\n PrimaryGeneratedColumn\n} from 'typeorm'\nimport { Domain } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\n\n@Entity()\n@Index('ix_oauth2_client_0', (oauth2Client: Oauth2Client) => [oauth2Client.domain, oauth2Client.name], { unique: true })\nexport class Oauth2Client {\n @PrimaryGeneratedColumn('uuid')\n id: string\n\n @ManyToOne(type => Domain)\n domain: Domain\n\n @Column()\n name: string\n\n @Column({\n nullable: true\n })\n description: string\n\n @Column({\n nullable: true\n })\n icon: string\n\n @Column({\n nullable: true\n })\n grantType: string\n\n @Column({\n nullable: true\n })\n clientId: string\n\n @Column({\n nullable: true\n })\n clientSecret: string\n\n @Column({\n nullable: true\n })\n accessTokenUrl: string\n\n @Column({\n nullable: true\n })\n authUrl: string\n\n @Column({\n nullable: true\n })\n callbackUrl: string\n\n @Column({\n nullable: true\n })\n webhook: string\n\n @Column({\n nullable: true\n })\n username: string\n\n @Column({\n nullable: true\n })\n password: string\n\n @Column({\n nullable: true\n })\n codeChallengeMethod: string\n\n @Column({\n nullable: true\n })\n codeVerifier: string\n\n @Column({\n nullable: true\n })\n scopes: string\n\n @Column({\n nullable: true\n })\n accessToken: string\n\n @Column({\n nullable: true\n })\n refreshToken: string\n\n @Column({\n nullable: true\n })\n expires: Date\n\n @Column({\n nullable: true\n })\n state: string\n\n @Column({\n nullable: true\n })\n jwtToken: string\n\n @Column({\n nullable: true\n })\n tokenType: string\n\n @CreateDateColumn()\n createdAt: Date\n\n @UpdateDateColumn()\n updatedAt: Date\n\n @ManyToOne(type => User, {\n nullable: true\n })\n creator: User\n\n @ManyToOne(type => User, {\n nullable: true\n })\n updater: User\n\n getAuthHeaders() {\n if (this.tokenType == 'bearer') {\n return {\n Authorization: `Bearer ${this.accessToken}`\n }\n } else if (this.tokenType == 'basic' || !this.tokenType) {\n const encoded = Buffer.from(`${this.username}:${this.password}`).toString('base64')\n return {\n Authorization: `Basic ${encoded}`\n }\n }\n\n return {}\n }\n}\n"]}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.schema = void 0;
4
- const tslib_1 = require("tslib");
5
- const utils_1 = require("@things-factory/utils");
6
- const resolvers = tslib_1.__importStar(require("./resolvers"));
7
- const typeDefs = tslib_1.__importStar(require("./types"));
8
- exports.schema = {
9
- typeDefs,
10
- resolvers: utils_1.deepMerge.apply(null, Object.values(resolvers))
11
- };
12
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/graphql/index.ts"],"names":[],"mappings":";;;;AAAA,iDAAiD;AAEjD,+DAAwC;AACxC,0DAAmC;AAEtB,QAAA,MAAM,GAAG;IACpB,QAAQ;IACR,SAAS,EAAE,iBAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;CAC3D,CAAA","sourcesContent":["import { deepMerge } from '@things-factory/utils'\n\nimport * as resolvers from './resolvers'\nimport * as typeDefs from './types'\n\nexport const schema = {\n typeDefs,\n resolvers: deepMerge.apply(null, Object.values(resolvers))\n}\n"]}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./oauth2-client"), exports);
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/graphql/resolvers/index.ts"],"names":[],"mappings":";;;AAAA,0DAA+B","sourcesContent":["export * from './oauth2-client'\n"]}
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createOauth2Client = void 0;
4
- const env_1 = require("@things-factory/env");
5
- const typeorm_1 = require("typeorm");
6
- const url_1 = require("url");
7
- const entities_1 = require("../../../entities");
8
- const protocol = env_1.config.get('protocol');
9
- exports.createOauth2Client = {
10
- async createOauth2Client(_, { oauth2Client }, context) {
11
- const { origin } = context;
12
- let url = new url_1.URL(origin);
13
- url.protocol = protocol || url.protocol;
14
- url.pathname = '/oauth2-client/callback';
15
- const { domain, user } = context.state;
16
- return await (0, typeorm_1.getRepository)(entities_1.Oauth2Client).save(Object.assign(Object.assign({}, oauth2Client), { callbackUrl: oauth2Client.callbackUrl || url.href, domain: domain, creator: user, updater: user }));
17
- }
18
- };
19
- //# sourceMappingURL=create-oauth2-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-oauth2-client.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/oauth2-client/create-oauth2-client.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAC5C,qCAAuC;AACvC,6BAAyB;AACzB,gDAAgD;AAChD,MAAM,QAAQ,GAAW,YAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;AAElC,QAAA,kBAAkB,GAAG;IAChC,KAAK,CAAC,kBAAkB,CAAC,CAAM,EAAE,EAAE,YAAY,EAAE,EAAE,OAAY;QAC7D,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;QAC1B,IAAI,GAAG,GAAQ,IAAI,SAAG,CAAC,MAAM,CAAC,CAAA;QAC9B,GAAG,CAAC,QAAQ,GAAG,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAA;QACvC,GAAG,CAAC,QAAQ,GAAG,yBAAyB,CAAA;QAExC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEtC,OAAO,MAAM,IAAA,uBAAa,EAAC,uBAAY,CAAC,CAAC,IAAI,iCACxC,YAAY,KACf,WAAW,EAAE,YAAY,CAAC,WAAW,IAAI,GAAG,CAAC,IAAI,EACjD,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;IACJ,CAAC;CACF,CAAA","sourcesContent":["import { config } from '@things-factory/env'\nimport { getRepository } from 'typeorm'\nimport { URL } from 'url'\nimport { Oauth2Client } from '../../../entities'\nconst protocol: string = config.get('protocol')\n\nexport const createOauth2Client = {\n async createOauth2Client(_: any, { oauth2Client }, context: any) {\n const { origin } = context\n let url: URL = new URL(origin)\n url.protocol = protocol || url.protocol\n url.pathname = '/oauth2-client/callback'\n\n const { domain, user } = context.state\n\n return await getRepository(Oauth2Client).save({\n ...oauth2Client,\n callbackUrl: oauth2Client.callbackUrl || url.href,\n domain: domain,\n creator: user,\n updater: user\n })\n }\n}\n"]}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deleteOauth2Client = void 0;
4
- const typeorm_1 = require("typeorm");
5
- const entities_1 = require("../../../entities");
6
- exports.deleteOauth2Client = {
7
- async deleteOauth2Client(_, { id }, context) {
8
- await (0, typeorm_1.getRepository)(entities_1.Oauth2Client).delete({ domain: context.state.domain, id });
9
- return true;
10
- }
11
- };
12
- //# sourceMappingURL=delete-oauth2-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete-oauth2-client.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/oauth2-client/delete-oauth2-client.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,gDAAgD;AAEnC,QAAA,kBAAkB,GAAG;IAChC,KAAK,CAAC,kBAAkB,CAAC,CAAM,EAAE,EAAE,EAAE,EAAE,EAAE,OAAY;QACnD,MAAM,IAAA,uBAAa,EAAC,uBAAY,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAA;QAC9E,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA","sourcesContent":["import { getRepository } from 'typeorm'\nimport { Oauth2Client } from '../../../entities'\n\nexport const deleteOauth2Client = {\n async deleteOauth2Client(_: any, { id }, context: any) {\n await getRepository(Oauth2Client).delete({ domain: context.state.domain, id })\n return true\n }\n}\n\n"]}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deleteOauth2Clients = void 0;
4
- const typeorm_1 = require("typeorm");
5
- const entities_1 = require("../../../entities");
6
- exports.deleteOauth2Clients = {
7
- async deleteOauth2Clients(_, { ids }, context) {
8
- await (0, typeorm_1.getRepository)(entities_1.Oauth2Client).delete({
9
- domain: context.state.domain,
10
- id: (0, typeorm_1.In)(ids)
11
- });
12
- return true;
13
- }
14
- };
15
- //# sourceMappingURL=delete-oauth2-clients.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete-oauth2-clients.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/oauth2-client/delete-oauth2-clients.ts"],"names":[],"mappings":";;;AAAA,qCAA2C;AAC3C,gDAAgD;AAEnC,QAAA,mBAAmB,GAAG;IACjC,KAAK,CAAC,mBAAmB,CAAC,CAAM,EAAE,EAAE,GAAG,EAAE,EAAE,OAAY;QACrD,MAAM,IAAA,uBAAa,EAAC,uBAAY,CAAC,CAAC,MAAM,CAAC;YACrC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;YAC5B,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC;SACd,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA","sourcesContent":["import { getRepository, In } from 'typeorm'\nimport { Oauth2Client } from '../../../entities'\n\nexport const deleteOauth2Clients = {\n async deleteOauth2Clients(_: any, { ids }, context: any) {\n await getRepository(Oauth2Client).delete({ \n domain: context.state.domain,\n id: In(ids)\n })\n return true\n }\n}\n\n"]}
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getOauth2AccessToken = void 0;
4
- const tslib_1 = require("tslib");
5
- const client_oauth2_1 = tslib_1.__importDefault(require("client-oauth2"));
6
- const typeorm_1 = require("typeorm");
7
- const entities_1 = require("../../../entities");
8
- exports.getOauth2AccessToken = {
9
- async getOauth2AccessToken(_, { id }, context) {
10
- const repository = (0, typeorm_1.getRepository)(entities_1.Oauth2Client);
11
- const oauth2Client = await repository.findOne(id);
12
- const { grantType, clientId, clientSecret, accessTokenUrl: accessTokenUri, authUrl: authorizationUri, username, password, jwtToken, scopes } = oauth2Client;
13
- var auth = new client_oauth2_1.default({
14
- clientId,
15
- clientSecret,
16
- accessTokenUri,
17
- authorizationUri,
18
- scopes: scopes.split(' ')
19
- });
20
- var getTokenParams = [];
21
- switch (grantType) {
22
- case 'owner':
23
- getTokenParams = [username, password];
24
- break;
25
- case 'credentials':
26
- getTokenParams = [];
27
- break;
28
- case 'jwt':
29
- getTokenParams = [jwtToken];
30
- break;
31
- case 'code':
32
- default:
33
- throw new Error(`unsupported grant type: ${grantType}`);
34
- }
35
- const token = await auth[grantType].getToken.call(auth[grantType], getTokenParams);
36
- const { tokenType: newTokenType, accessToken, refreshToken, data } = token;
37
- 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;
38
- return await repository.save(Object.assign(Object.assign({}, oauth2Client), { tokenType: newTokenType, accessToken,
39
- refreshToken,
40
- expires
41
- // state: ''
42
- }));
43
- }
44
- };
45
- //# sourceMappingURL=get-oauth2-access-token.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-oauth2-access-token.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/oauth2-client/get-oauth2-access-token.ts"],"names":[],"mappings":";;;;AAAA,0EAAwC;AACxC,qCAAuC;AAEvC,gDAAgD;AAEnC,QAAA,oBAAoB,GAAG;IAClC,KAAK,CAAC,oBAAoB,CAAC,CAAM,EAAE,EAAE,EAAE,EAAE,EAAE,OAAY;QACrD,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,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,MAAM,EACP,GAAG,YAAY,CAAA;QAEhB,IAAI,IAAI,GAAG,IAAI,uBAAY,CAAC;YAC1B,QAAQ;YACR,YAAY;YACZ,cAAc;YACd,gBAAgB;YAChB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;SAC1B,CAAC,CAAA;QAEF,IAAI,cAAc,GAAG,EAAE,CAAA;QACvB,QAAQ,SAAS,EAAE;YACjB,KAAK,OAAO;gBACV,cAAc,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;gBACrC,MAAK;YACP,KAAK,aAAa;gBAChB,cAAc,GAAG,EAAE,CAAA;gBACnB,MAAK;YACP,KAAK,KAAK;gBACR,cAAc,GAAG,CAAC,QAAQ,CAAC,CAAA;gBAC3B,MAAK;YACP,KAAK,MAAM,CAAC;YACZ;gBACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAA;SAC1D;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,cAAc,CAAC,CAAA;QAClF,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;QAC1E,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,SAAS,EAAE,YAAY,EACvB,WAAW;YACX,YAAY;YACZ,OAAO;YACP,YAAY;YACZ,CAAA;IACJ,CAAC;CACF,CAAA","sourcesContent":["import ClientOAuth2 from 'client-oauth2'\nimport { getRepository } from 'typeorm'\n\nimport { Oauth2Client } from '../../../entities'\n\nexport const getOauth2AccessToken = {\n async getOauth2AccessToken(_: any, { id }, context: any) {\n const repository = getRepository(Oauth2Client)\n const oauth2Client = await repository.findOne(id)\n\n const {\n grantType,\n clientId,\n clientSecret,\n accessTokenUrl: accessTokenUri,\n authUrl: authorizationUri,\n username,\n password,\n jwtToken,\n scopes\n } = oauth2Client\n\n var auth = new ClientOAuth2({\n clientId,\n clientSecret,\n accessTokenUri,\n authorizationUri,\n scopes: scopes.split(' ')\n })\n\n var getTokenParams = []\n switch (grantType) {\n case 'owner':\n getTokenParams = [username, password]\n break\n case 'credentials':\n getTokenParams = []\n break\n case 'jwt':\n getTokenParams = [jwtToken]\n break\n case 'code':\n default:\n throw new Error(`unsupported grant type: ${grantType}`)\n }\n\n const token = await auth[grantType].getToken.call(auth[grantType], getTokenParams)\n const { tokenType: newTokenType, accessToken, refreshToken, data } = token\n const expires = data?.expires_in ? token.expiresIn(data?.expires_in as any) : null\n\n return await repository.save({\n ...oauth2Client,\n tokenType: newTokenType,\n accessToken,\n refreshToken,\n expires\n // state: ''\n })\n }\n}\n"]}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Oauth2ClientResolver = void 0;
4
- const oauth2_client_query_1 = require("./oauth2-client-query");
5
- const update_oauth2_client_1 = require("./update-oauth2-client");
6
- const create_oauth2_client_1 = require("./create-oauth2-client");
7
- const delete_oauth2_client_1 = require("./delete-oauth2-client");
8
- const delete_oauth2_clients_1 = require("./delete-oauth2-clients");
9
- const get_oauth2_access_token_1 = require("./get-oauth2-access-token");
10
- const refresh_oauth2_access_token_1 = require("./refresh-oauth2-access-token");
11
- exports.Oauth2ClientResolver = {
12
- Query: oauth2_client_query_1.Query,
13
- Mutation: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, update_oauth2_client_1.updateOauth2Client), create_oauth2_client_1.createOauth2Client), delete_oauth2_client_1.deleteOauth2Client), delete_oauth2_clients_1.deleteOauth2Clients), get_oauth2_access_token_1.getOauth2AccessToken), refresh_oauth2_access_token_1.refreshOauth2AccessToken)
14
- };
15
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/oauth2-client/index.ts"],"names":[],"mappings":";;;AAAA,+DAA6C;AAE7C,iEAA2D;AAC3D,iEAA2D;AAC3D,iEAA2D;AAC3D,mEAA6D;AAE7D,uEAAgE;AAChE,+EAAwE;AAE3D,QAAA,oBAAoB,GAAG;IAClC,KAAK,EAAL,2BAAK;IACL,QAAQ,0FACH,yCAAkB,GAClB,yCAAkB,GAClB,yCAAkB,GAClB,2CAAmB,GACnB,8CAAoB,GACpB,sDAAwB,CAC5B;CACF,CAAA","sourcesContent":["import { Query } from './oauth2-client-query'\n\nimport { updateOauth2Client } from './update-oauth2-client'\nimport { createOauth2Client } from './create-oauth2-client'\nimport { deleteOauth2Client } from './delete-oauth2-client'\nimport { deleteOauth2Clients } from './delete-oauth2-clients'\n\nimport { getOauth2AccessToken } from './get-oauth2-access-token'\nimport { refreshOauth2AccessToken } from './refresh-oauth2-access-token'\n\nexport const Oauth2ClientResolver = {\n Query,\n Mutation: {\n ...updateOauth2Client,\n ...createOauth2Client,\n ...deleteOauth2Client,\n ...deleteOauth2Clients,\n ...getOauth2AccessToken,\n ...refreshOauth2AccessToken\n }\n}\n"]}
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Query = void 0;
4
- const tslib_1 = require("tslib");
5
- const shell_1 = require("@things-factory/shell");
6
- const client_oauth2_1 = tslib_1.__importDefault(require("client-oauth2"));
7
- const typeorm_1 = require("typeorm");
8
- const crypto_1 = tslib_1.__importDefault(require("crypto"));
9
- const entities_1 = require("../../../entities");
10
- exports.Query = {
11
- async oauth2Client(_, { id }, context) {
12
- const repository = (0, typeorm_1.getRepository)(entities_1.Oauth2Client);
13
- return await repository.findOne({
14
- where: { domain: context.state.domain, id },
15
- relations: ['domain', 'creator', 'updater']
16
- });
17
- },
18
- async oauth2Clients(_, params, context) {
19
- const convertedParams = (0, shell_1.convertListParams)(params);
20
- const [items, total] = await (0, typeorm_1.getRepository)(entities_1.Oauth2Client).findAndCount(Object.assign(Object.assign({}, convertedParams), { relations: ['domain', 'creator', 'updater'] }));
21
- return { items, total };
22
- },
23
- async getOauth2AuthUrl(_, { id }, context) {
24
- const repository = (0, typeorm_1.getRepository)(entities_1.Oauth2Client);
25
- const oauth2Client = await repository.findOne(id);
26
- const { grantType, clientId, clientSecret, callbackUrl, accessTokenUrl: accessTokenUri, authUrl: authorizationUri, scopes } = oauth2Client;
27
- if (grantType !== 'code') {
28
- throw new Error(`unsupported grant type: ${grantType}`);
29
- }
30
- const state = crypto_1.default.randomBytes(16).toString('hex');
31
- await repository.save(Object.assign(Object.assign({}, oauth2Client), { state }));
32
- var auth = new client_oauth2_1.default({
33
- clientId,
34
- clientSecret,
35
- accessTokenUri,
36
- authorizationUri,
37
- redirectUri: callbackUrl || `${context.origin}/oauth2-client/callback`,
38
- scopes: (scopes === null || scopes === void 0 ? void 0 : scopes.split(' ')) || [],
39
- state
40
- });
41
- return await auth[grantType].getUri();
42
- }
43
- };
44
- //# sourceMappingURL=oauth2-client-query.js.map
@@ -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,0EAAwC;AACxC,qCAAuC;AACvC,4DAA2B;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","sourcesContent":["import { ListParam, convertListParams } from '@things-factory/shell'\nimport ClientOAuth2 from 'client-oauth2'\nimport { getRepository } from 'typeorm'\nimport crypto from 'crypto'\nimport { Oauth2Client } from '../../../entities'\n\nexport const Query = {\n async oauth2Client(_: any, { id }, context: any) {\n const repository = getRepository(Oauth2Client)\n\n return await repository.findOne({\n where: { domain: context.state.domain, id },\n relations: ['domain', 'creator', 'updater']\n })\n },\n\n async oauth2Clients(_: any, params: ListParam, context: any) {\n const convertedParams = convertListParams(params)\n const [items, total] = await getRepository(Oauth2Client).findAndCount({\n ...convertedParams,\n relations: ['domain', 'creator', 'updater']\n })\n return { items, total }\n },\n\n async getOauth2AuthUrl(_: any, { id }, context: any) {\n const repository = getRepository(Oauth2Client)\n const oauth2Client = await repository.findOne(id)\n\n const {\n grantType,\n clientId,\n clientSecret,\n callbackUrl,\n accessTokenUrl: accessTokenUri,\n authUrl: authorizationUri,\n scopes\n } = oauth2Client\n\n if (grantType !== 'code') {\n throw new Error(`unsupported grant type: ${grantType}`)\n }\n\n const state = crypto.randomBytes(16).toString('hex')\n await repository.save({\n ...oauth2Client,\n state\n })\n\n var auth = new ClientOAuth2({\n clientId,\n clientSecret,\n accessTokenUri,\n authorizationUri,\n redirectUri: callbackUrl || `${context.origin}/oauth2-client/callback`,\n scopes: scopes?.split(' ') || [],\n state\n })\n\n return await (auth[grantType] as any).getUri()\n }\n}\n"]}
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.refreshOauth2AccessToken = void 0;
4
- const tslib_1 = require("tslib");
5
- const client_oauth2_1 = tslib_1.__importDefault(require("client-oauth2"));
6
- const typeorm_1 = require("typeorm");
7
- const entities_1 = require("../../../entities");
8
- exports.refreshOauth2AccessToken = {
9
- async refreshOauth2AccessToken(_, { id }, context) {
10
- const repository = (0, typeorm_1.getRepository)(entities_1.Oauth2Client);
11
- const oauth2Client = await repository.findOne(id);
12
- const { clientId, clientSecret, accessTokenUrl: accessTokenUri, authUrl: authorizationUri, scopes, tokenType, accessToken, refreshToken } = oauth2Client;
13
- if (!refreshToken) {
14
- throw new Error('refreshToken not found');
15
- }
16
- var auth = new client_oauth2_1.default({
17
- clientId,
18
- clientSecret,
19
- accessTokenUri,
20
- authorizationUri,
21
- scopes: scopes === null || scopes === void 0 ? void 0 : scopes.split(' ')
22
- });
23
- try {
24
- var token = await auth.createToken(accessToken, refreshToken, tokenType, {}).refresh();
25
- }
26
- catch (err) {
27
- throw err;
28
- }
29
- const { accessToken: newAccessToken, refreshToken: newRefreshToken, tokenType: newTokenType, data } = token;
30
- 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;
31
- return await repository.save(Object.assign(Object.assign({}, oauth2Client), { accessToken: newAccessToken, refreshToken: newRefreshToken, tokenType: newTokenType, expires }));
32
- }
33
- };
34
- //# 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,0EAAwC;AACxC,qCAAuC;AAEvC,gDAAgD;AAEnC,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,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","sourcesContent":["import ClientOAuth2 from 'client-oauth2'\nimport { getRepository } from 'typeorm'\n\nimport { Oauth2Client } from '../../../entities'\n\nexport const refreshOauth2AccessToken = {\n async refreshOauth2AccessToken(_: any, { id }, context: any) {\n const repository = getRepository(Oauth2Client)\n const oauth2Client = await repository.findOne(id)\n\n const {\n clientId,\n clientSecret,\n accessTokenUrl: accessTokenUri,\n authUrl: authorizationUri,\n scopes,\n tokenType,\n accessToken,\n refreshToken\n } = oauth2Client\n\n if (!refreshToken) {\n throw new Error('refreshToken not found')\n }\n\n var auth = new ClientOAuth2({\n clientId,\n clientSecret,\n accessTokenUri,\n authorizationUri,\n scopes: scopes?.split(' ')\n })\n\n try {\n var token = await auth.createToken(accessToken, refreshToken, tokenType, {}).refresh()\n } catch (err) {\n throw err\n }\n\n const { accessToken: newAccessToken, refreshToken: newRefreshToken, tokenType: newTokenType, data } = token\n const expires = data?.expires_in ? token.expiresIn(data?.expires_in as any) : null\n\n return await repository.save({\n ...oauth2Client,\n accessToken: newAccessToken,\n refreshToken: newRefreshToken,\n tokenType: newTokenType,\n expires\n })\n }\n}\n"]}
@@ -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","sourcesContent":["import { getRepository } from 'typeorm'\nimport { Oauth2Client } from '../../../entities'\n\nexport const updateOauth2Client = {\n async updateOauth2Client(_: any, { id, patch }, context: any) {\n const repository = getRepository(Oauth2Client)\n const oauth2Client = await repository.findOne({\n where: { domain: context.state.domain, id }\n })\n\n return await repository.save({\n ...oauth2Client,\n ...patch,\n updater: context.state.user\n })\n }\n}\n"]}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./oauth2-client"), exports);
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/graphql/types/index.ts"],"names":[],"mappings":";;;AAAA,0DAA+B","sourcesContent":["export * from './oauth2-client'\n"]}
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Oauth2ClientResolver = void 0;
4
- const tslib_1 = require("tslib");
5
- const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
6
- tslib_1.__exportStar(require("./oauth2-client"), exports);
7
- tslib_1.__exportStar(require("./new-oauth2-client"), exports);
8
- tslib_1.__exportStar(require("./oauth2-client-patch"), exports);
9
- tslib_1.__exportStar(require("./oauth2-client-list"), exports);
10
- exports.Oauth2ClientResolver = (0, graphql_tag_1.default) `
11
- extend type Mutation {
12
- createOauth2Client(oauth2Client: NewOauth2Client!): Oauth2Client
13
- updateOauth2Client(id: String!, patch: Oauth2ClientPatch!): Oauth2Client
14
- deleteOauth2Client(id: String!): Boolean
15
- deleteOauth2Clients(ids: [String]!): Boolean
16
- getOauth2AccessToken(id: String!): Oauth2Client
17
- refreshOauth2AccessToken(id: String!): Oauth2Client
18
- }
19
-
20
- extend type Query {
21
- oauth2Clients(filters: [Filter], pagination: Pagination, sortings: [Sorting]): Oauth2ClientList
22
- oauth2Client(id: String!): Oauth2Client
23
- getOauth2AuthUrl(id: String!): String
24
- }
25
- `;
26
- //# 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,sEAA6B;AAE7B,0DAA+B;AAC/B,8DAAmC;AACnC,gEAAqC;AACrC,+DAAoC;AAEvB,QAAA,oBAAoB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;CAetC,CAAA","sourcesContent":["import gql from 'graphql-tag'\n\nexport * from './oauth2-client'\nexport * from './new-oauth2-client'\nexport * from './oauth2-client-patch'\nexport * from './oauth2-client-list'\n\nexport const Oauth2ClientResolver = gql`\n extend type Mutation {\n createOauth2Client(oauth2Client: NewOauth2Client!): Oauth2Client\n updateOauth2Client(id: String!, patch: Oauth2ClientPatch!): Oauth2Client\n deleteOauth2Client(id: String!): Boolean\n deleteOauth2Clients(ids: [String]!): Boolean\n getOauth2AccessToken(id: String!): Oauth2Client\n refreshOauth2AccessToken(id: String!): Oauth2Client\n }\n\n extend type Query {\n oauth2Clients(filters: [Filter], pagination: Pagination, sortings: [Sorting]): Oauth2ClientList\n oauth2Client(id: String!): Oauth2Client\n getOauth2AuthUrl(id: String!): String\n }\n`\n"]}
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NewOauth2Client = void 0;
4
- const tslib_1 = require("tslib");
5
- const graphql_tag_1 = tslib_1.__importDefault(require("graphql-tag"));
6
- exports.NewOauth2Client = (0, graphql_tag_1.default) `
7
- input NewOauth2Client {
8
- name: String
9
- description: String
10
- icon: String
11
- grantType: String
12
- clientId: String
13
- clientSecret: String
14
- callbackUrl: String
15
- authUrl: String
16
- accessTokenUrl: String
17
- webhook: String
18
- username: String
19
- password: String
20
- codeChallengeMethod: String
21
- codeVerifier: String
22
- scopes: String
23
- accessToken: String
24
- refreshToken: String
25
- jwtToken: String
26
- }
27
- `;
28
- //# 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,sEAA6B;AAEhB,QAAA,eAAe,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;CAqBjC,CAAA","sourcesContent":["import gql from 'graphql-tag'\n\nexport const NewOauth2Client = gql`\n input NewOauth2Client {\n name: String\n description: String\n icon: String\n grantType: String\n clientId: String\n clientSecret: String\n callbackUrl: String\n authUrl: String\n accessTokenUrl: String\n webhook: String\n username: String\n password: String\n codeChallengeMethod: String\n codeVerifier: String\n scopes: String\n accessToken: String\n refreshToken: String\n jwtToken: String\n }\n`\n"]}