@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.
- package/client/{bootstrap.js → bootstrap.ts} +0 -0
- package/{server/controllers → client}/index.ts +0 -0
- package/client/pages/oauth2-client/oauth2-client-importer.ts +97 -0
- package/client/pages/oauth2-client/oauth2-client-list-page.ts +337 -0
- package/client/pages/{oauth2-client-register.js → oauth2-client-register.ts} +79 -86
- package/client/pages/{oauth2-client.js → oauth2-client.ts} +157 -161
- package/client/pages/oauth2-clients.ts +192 -0
- package/client/{route.js → route.ts} +1 -1
- package/client/tsconfig.json +11 -0
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/index.d.ts +2 -0
- package/dist-server/index.js +1 -2
- package/dist-server/index.js.map +1 -1
- package/dist-server/routes.d.ts +1 -0
- package/dist-server/routes.js +7 -9
- package/dist-server/routes.js.map +1 -1
- package/dist-server/service/index.d.ts +5 -0
- package/dist-server/service/index.js +19 -0
- package/dist-server/service/index.js.map +1 -0
- package/dist-server/service/oauth2-client/index.d.ts +5 -0
- package/dist-server/service/oauth2-client/index.js +9 -0
- package/dist-server/service/oauth2-client/index.js.map +1 -0
- package/dist-server/service/oauth2-client/oauth2-client-mutation.d.ts +11 -0
- package/dist-server/service/oauth2-client/oauth2-client-mutation.js +165 -0
- package/dist-server/service/oauth2-client/oauth2-client-mutation.js.map +1 -0
- package/dist-server/service/oauth2-client/oauth2-client-query.d.ts +11 -0
- package/dist-server/service/oauth2-client/oauth2-client-query.js +79 -0
- package/dist-server/service/oauth2-client/oauth2-client-query.js.map +1 -0
- package/dist-server/service/oauth2-client/oauth2-client-type.d.ts +45 -0
- package/dist-server/service/oauth2-client/oauth2-client-type.js +177 -0
- package/dist-server/service/oauth2-client/oauth2-client-type.js.map +1 -0
- package/dist-server/service/oauth2-client/oauth2-client.d.ts +39 -0
- package/dist-server/{entities → service/oauth2-client}/oauth2-client.js +47 -9
- package/dist-server/service/oauth2-client/oauth2-client.js.map +1 -0
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -10
- package/server/index.ts +2 -3
- package/server/routes.ts +8 -13
- package/server/service/index.ts +17 -0
- package/server/service/oauth2-client/index.ts +6 -0
- package/server/service/oauth2-client/oauth2-client-mutation.ts +188 -0
- package/server/service/oauth2-client/oauth2-client-query.ts +50 -0
- package/server/service/oauth2-client/oauth2-client-type.ts +126 -0
- package/server/service/oauth2-client/oauth2-client.ts +193 -0
- package/server/tsconfig.json +11 -0
- package/things-factory.config.js +5 -14
- package/client/index.js +0 -1
- package/client/pages/oauth2-clients.js +0 -197
- package/dist-server/controllers/index.js +0 -1
- package/dist-server/controllers/index.js.map +0 -1
- package/dist-server/entities/index.js +0 -9
- package/dist-server/entities/index.js.map +0 -1
- package/dist-server/entities/oauth2-client.js.map +0 -1
- package/dist-server/graphql/index.js +0 -12
- package/dist-server/graphql/index.js.map +0 -1
- package/dist-server/graphql/resolvers/index.js +0 -5
- package/dist-server/graphql/resolvers/index.js.map +0 -1
- package/dist-server/graphql/resolvers/oauth2-client/create-oauth2-client.js +0 -19
- package/dist-server/graphql/resolvers/oauth2-client/create-oauth2-client.js.map +0 -1
- package/dist-server/graphql/resolvers/oauth2-client/delete-oauth2-client.js +0 -12
- package/dist-server/graphql/resolvers/oauth2-client/delete-oauth2-client.js.map +0 -1
- package/dist-server/graphql/resolvers/oauth2-client/delete-oauth2-clients.js +0 -15
- package/dist-server/graphql/resolvers/oauth2-client/delete-oauth2-clients.js.map +0 -1
- package/dist-server/graphql/resolvers/oauth2-client/get-oauth2-access-token.js +0 -45
- package/dist-server/graphql/resolvers/oauth2-client/get-oauth2-access-token.js.map +0 -1
- package/dist-server/graphql/resolvers/oauth2-client/index.js +0 -15
- package/dist-server/graphql/resolvers/oauth2-client/index.js.map +0 -1
- package/dist-server/graphql/resolvers/oauth2-client/oauth2-client-query.js +0 -44
- package/dist-server/graphql/resolvers/oauth2-client/oauth2-client-query.js.map +0 -1
- package/dist-server/graphql/resolvers/oauth2-client/refresh-oauth2-access-token.js +0 -34
- package/dist-server/graphql/resolvers/oauth2-client/refresh-oauth2-access-token.js.map +0 -1
- package/dist-server/graphql/resolvers/oauth2-client/update-oauth2-client.js +0 -15
- package/dist-server/graphql/resolvers/oauth2-client/update-oauth2-client.js.map +0 -1
- package/dist-server/graphql/types/index.js +0 -5
- package/dist-server/graphql/types/index.js.map +0 -1
- package/dist-server/graphql/types/oauth2-client/index.js +0 -26
- package/dist-server/graphql/types/oauth2-client/index.js.map +0 -1
- package/dist-server/graphql/types/oauth2-client/new-oauth2-client.js +0 -28
- package/dist-server/graphql/types/oauth2-client/new-oauth2-client.js.map +0 -1
- package/dist-server/graphql/types/oauth2-client/oauth2-client-list.js +0 -12
- package/dist-server/graphql/types/oauth2-client/oauth2-client-list.js.map +0 -1
- package/dist-server/graphql/types/oauth2-client/oauth2-client-patch.js +0 -28
- package/dist-server/graphql/types/oauth2-client/oauth2-client-patch.js.map +0 -1
- package/dist-server/graphql/types/oauth2-client/oauth2-client.js +0 -36
- package/dist-server/graphql/types/oauth2-client/oauth2-client.js.map +0 -1
- package/server/entities/index.ts +0 -9
- package/server/entities/oauth2-client.ts +0 -156
- package/server/graphql/index.ts +0 -9
- package/server/graphql/resolvers/index.ts +0 -1
- package/server/graphql/resolvers/oauth2-client/create-oauth2-client.ts +0 -24
- package/server/graphql/resolvers/oauth2-client/delete-oauth2-client.ts +0 -10
- package/server/graphql/resolvers/oauth2-client/delete-oauth2-clients.ts +0 -13
- package/server/graphql/resolvers/oauth2-client/get-oauth2-access-token.ts +0 -60
- package/server/graphql/resolvers/oauth2-client/index.ts +0 -21
- package/server/graphql/resolvers/oauth2-client/oauth2-client-query.ts +0 -62
- package/server/graphql/resolvers/oauth2-client/refresh-oauth2-access-token.ts +0 -51
- package/server/graphql/resolvers/oauth2-client/update-oauth2-client.ts +0 -17
- package/server/graphql/types/index.ts +0 -1
- package/server/graphql/types/oauth2-client/index.ts +0 -23
- package/server/graphql/types/oauth2-client/new-oauth2-client.ts +0 -24
- package/server/graphql/types/oauth2-client/oauth2-client-list.ts +0 -8
- package/server/graphql/types/oauth2-client/oauth2-client-patch.ts +0 -24
- package/server/graphql/types/oauth2-client/oauth2-client.ts +0 -32
- package/tsconfig.json +0 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":";;;AAAA,0EAAwC;AACxC,4DAA2B;
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":"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","sourcesContent":["import ClientOAuth2 from 'client-oauth2'\nimport crypto from 'crypto'\n\nimport { getRedirectSubdomainPath, getRepository } from '@things-factory/shell'\n\nimport { Oauth2Client } from './service/oauth2-client/oauth2-client'\n\nprocess.on('bootstrap-module-domain-private-route' as any, (app, domainPrivateRouter) => {\n domainPrivateRouter.get('/oauth2-client/:id/auth-uri', async (context, next) => {\n const { params, origin } = context\n const { id } = params\n\n const repository = getRepository(Oauth2Client)\n const oauth2Client = await repository.findOneBy({ id })\n\n const {\n grantType,\n clientId,\n clientSecret,\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: `${origin}/oauth2-client/callback`,\n scopes: scopes?.split(' ') || [],\n state\n })\n\n context.status = 200\n context.body = await auth.code.getUri()\n })\n\n domainPrivateRouter.get('/oauth2-client/:id/refresh', async (context, next) => {\n const { params } = context\n const { id } = params\n\n const repository = getRepository(Oauth2Client)\n const oauth2Client = await repository.findOneBy({ id })\n\n const {\n grantType,\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 context.status = 404\n context.body = 'refreshToken not found'\n\n return\n }\n\n var auth = new ClientOAuth2({\n clientId,\n clientSecret,\n accessTokenUri,\n authorizationUri,\n scopes: scopes?.split(' ') || []\n })\n\n const { accessToken: newAccessToken, refreshToken: newRefreshToken } = await auth\n .createToken(accessToken, refreshToken, tokenType, {})\n .refresh()\n\n context.status = 200\n context.body = await repository.save({\n ...oauth2Client,\n accessToken: newAccessToken,\n refreshToken: newRefreshToken,\n state: ''\n })\n })\n})\n\nprocess.on('bootstrap-module-domain-public-route' as any, (app, domainPublicRouter) => {\n domainPublicRouter.get('/oauth2-client/callback', async (context, next) => {\n const { state } = context.query\n const { originalUrl } = context\n\n const repository = getRepository(Oauth2Client)\n const oauth2Client: Oauth2Client = await repository.findOne({\n where: { state },\n relations: ['domain']\n })\n\n const {\n domain,\n id,\n grantType,\n clientId,\n clientSecret,\n accessTokenUrl: accessTokenUri,\n authUrl: authorizationUri,\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 url = originalUrl\n switch (grantType) {\n case 'credentials':\n break\n case 'jwt':\n break\n case 'code':\n break\n case 'owner':\n default:\n throw new Error(`unsupported grant type: ${grantType}`)\n }\n\n const token = await auth.code.getToken(originalUrl)\n const { tokenType, accessToken, refreshToken, data } = token\n const expires = data?.expires_in ? token.expiresIn(data?.expires_in as any) : null\n\n await repository.save({\n ...oauth2Client,\n tokenType,\n accessToken,\n refreshToken,\n expires,\n scopes: data?.scope.replace(',', ' '),\n state: ''\n })\n\n context.redirect(getRedirectSubdomainPath(context, domain?.subdomain, `/oauth2-client/${id}`))\n })\n})\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './oauth2-client/oauth2-client';
|
|
2
|
+
export declare const entities: typeof import("./oauth2-client/oauth2-client").Oauth2Client[];
|
|
3
|
+
export declare const schema: {
|
|
4
|
+
resolverClasses: (typeof import("./oauth2-client/oauth2-client-query").Oauth2ClientQuery | typeof import("./oauth2-client/oauth2-client-mutation").Oauth2ClientMutation)[];
|
|
5
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.schema = exports.entities = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
/* IMPORT ENTITIES AND RESOLVERS */
|
|
6
|
+
const oauth2_client_1 = require("./oauth2-client");
|
|
7
|
+
/* EXPORT ENTITY TYPES */
|
|
8
|
+
tslib_1.__exportStar(require("./oauth2-client/oauth2-client"), exports);
|
|
9
|
+
exports.entities = [
|
|
10
|
+
/* ENTITIES */
|
|
11
|
+
...oauth2_client_1.entities
|
|
12
|
+
];
|
|
13
|
+
exports.schema = {
|
|
14
|
+
resolverClasses: [
|
|
15
|
+
/* RESOLVER CLASSES */
|
|
16
|
+
...oauth2_client_1.resolvers
|
|
17
|
+
]
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/service/index.ts"],"names":[],"mappings":";;;;AAAA,mCAAmC;AACnC,mDAAsG;AAEtG,yBAAyB;AACzB,wEAA6C;AAEhC,QAAA,QAAQ,GAAG;IACtB,cAAc;IACd,GAAG,wBAAoB;CACxB,CAAA;AAEY,QAAA,MAAM,GAAG;IACpB,eAAe,EAAE;QACf,sBAAsB;QACtB,GAAG,yBAAqB;KACzB;CACF,CAAA","sourcesContent":["/* IMPORT ENTITIES AND RESOLVERS */\nimport { entities as Oauth2ClientEntities, resolvers as Oauth2ClientResolvers } from './oauth2-client'\n\n/* EXPORT ENTITY TYPES */\nexport * from './oauth2-client/oauth2-client'\n\nexport const entities = [\n /* ENTITIES */\n ...Oauth2ClientEntities\n]\n\nexport const schema = {\n resolverClasses: [\n /* RESOLVER CLASSES */\n ...Oauth2ClientResolvers\n ]\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Oauth2Client } from './oauth2-client';
|
|
2
|
+
import { Oauth2ClientQuery } from './oauth2-client-query';
|
|
3
|
+
import { Oauth2ClientMutation } from './oauth2-client-mutation';
|
|
4
|
+
export declare const entities: (typeof Oauth2Client)[];
|
|
5
|
+
export declare const resolvers: (typeof Oauth2ClientQuery | typeof Oauth2ClientMutation)[];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolvers = exports.entities = void 0;
|
|
4
|
+
const oauth2_client_1 = require("./oauth2-client");
|
|
5
|
+
const oauth2_client_query_1 = require("./oauth2-client-query");
|
|
6
|
+
const oauth2_client_mutation_1 = require("./oauth2-client-mutation");
|
|
7
|
+
exports.entities = [oauth2_client_1.Oauth2Client];
|
|
8
|
+
exports.resolvers = [oauth2_client_query_1.Oauth2ClientQuery, oauth2_client_mutation_1.Oauth2ClientMutation];
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/service/oauth2-client/index.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAC9C,+DAAyD;AACzD,qEAA+D;AAElD,QAAA,QAAQ,GAAG,CAAC,4BAAY,CAAC,CAAA;AACzB,QAAA,SAAS,GAAG,CAAC,uCAAiB,EAAE,6CAAoB,CAAC,CAAA","sourcesContent":["import { Oauth2Client } from './oauth2-client'\nimport { Oauth2ClientQuery } from './oauth2-client-query'\nimport { Oauth2ClientMutation } from './oauth2-client-mutation'\n\nexport const entities = [Oauth2Client]\nexport const resolvers = [Oauth2ClientQuery, Oauth2ClientMutation]\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Oauth2Client } from './oauth2-client';
|
|
2
|
+
import { NewOauth2Client, Oauth2ClientPatch } from './oauth2-client-type';
|
|
3
|
+
export declare class Oauth2ClientMutation {
|
|
4
|
+
createOauth2Client(oauth2Client: NewOauth2Client, context: ResolverContext): Promise<Oauth2Client>;
|
|
5
|
+
updateOauth2Client(id: string, patch: Oauth2ClientPatch, context: ResolverContext): Promise<Oauth2Client>;
|
|
6
|
+
deleteOauth2Client(id: string, context: ResolverContext): Promise<boolean>;
|
|
7
|
+
deleteOauth2Clients(ids: string[], context: ResolverContext): Promise<boolean>;
|
|
8
|
+
importOauth2Clients(oauth2Clients: Oauth2ClientPatch[], context: ResolverContext): Promise<boolean>;
|
|
9
|
+
getOauth2AuthUrl(id: string, context: ResolverContext): Promise<string>;
|
|
10
|
+
refreshOauth2AccessToken(id: string, context: ResolverContext): Promise<Oauth2Client>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Oauth2ClientMutation = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const client_oauth2_1 = tslib_1.__importDefault(require("client-oauth2"));
|
|
6
|
+
const crypto_1 = tslib_1.__importDefault(require("crypto"));
|
|
7
|
+
const type_graphql_1 = require("type-graphql");
|
|
8
|
+
const typeorm_1 = require("typeorm");
|
|
9
|
+
const env_1 = require("@things-factory/env");
|
|
10
|
+
const oauth2_client_1 = require("./oauth2-client");
|
|
11
|
+
const oauth2_client_type_1 = require("./oauth2-client-type");
|
|
12
|
+
const protocol = env_1.config.get('protocol');
|
|
13
|
+
let Oauth2ClientMutation = class Oauth2ClientMutation {
|
|
14
|
+
async createOauth2Client(oauth2Client, context) {
|
|
15
|
+
const { origin } = context;
|
|
16
|
+
const { domain, user, tx } = context.state;
|
|
17
|
+
let url = new URL(origin);
|
|
18
|
+
url.protocol = protocol || url.protocol;
|
|
19
|
+
url.pathname = '/oauth2-client/callback';
|
|
20
|
+
return await tx.getRepository(oauth2_client_1.Oauth2Client).save(Object.assign(Object.assign({}, oauth2Client), { callbackUrl: oauth2Client.callbackUrl || url.href, domain, creator: user, updater: user }));
|
|
21
|
+
}
|
|
22
|
+
async updateOauth2Client(id, patch, context) {
|
|
23
|
+
const { domain, user, tx } = context.state;
|
|
24
|
+
const repository = tx.getRepository(oauth2_client_1.Oauth2Client);
|
|
25
|
+
const oauth2Client = await repository.findOne({
|
|
26
|
+
where: { domain: { id: domain.id }, id }
|
|
27
|
+
});
|
|
28
|
+
return await repository.save(Object.assign(Object.assign(Object.assign({}, oauth2Client), patch), { updater: user }));
|
|
29
|
+
}
|
|
30
|
+
async deleteOauth2Client(id, context) {
|
|
31
|
+
const { domain, tx } = context.state;
|
|
32
|
+
await tx.getRepository(oauth2_client_1.Oauth2Client).delete({ domain: { id: domain.id }, id });
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
async deleteOauth2Clients(ids, context) {
|
|
36
|
+
const { domain, tx } = context.state;
|
|
37
|
+
await tx.getRepository(oauth2_client_1.Oauth2Client).delete({
|
|
38
|
+
domain: { id: domain.id },
|
|
39
|
+
id: (0, typeorm_1.In)(ids)
|
|
40
|
+
});
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
async importOauth2Clients(oauth2Clients, context) {
|
|
44
|
+
const { domain, tx } = context.state;
|
|
45
|
+
await Promise.all(oauth2Clients.map(async (oauth2Client) => {
|
|
46
|
+
const createdOauth2Client = await tx.getRepository(oauth2_client_1.Oauth2Client).save(Object.assign({ domain }, oauth2Client));
|
|
47
|
+
}));
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
async getOauth2AuthUrl(id, context) {
|
|
51
|
+
const { tx } = context.state;
|
|
52
|
+
const repository = tx.getRepository(oauth2_client_1.Oauth2Client);
|
|
53
|
+
const oauth2Client = await repository.findOneBy({ id });
|
|
54
|
+
const { grantType, clientId, clientSecret, callbackUrl, accessTokenUrl: accessTokenUri, authUrl: authorizationUri, scopes } = oauth2Client;
|
|
55
|
+
if (grantType !== 'code') {
|
|
56
|
+
throw new Error(`unsupported grant type: ${grantType}`);
|
|
57
|
+
}
|
|
58
|
+
const state = crypto_1.default.randomBytes(16).toString('hex');
|
|
59
|
+
await repository.save(Object.assign(Object.assign({}, oauth2Client), { state }));
|
|
60
|
+
var auth = new client_oauth2_1.default({
|
|
61
|
+
clientId,
|
|
62
|
+
clientSecret,
|
|
63
|
+
accessTokenUri,
|
|
64
|
+
authorizationUri,
|
|
65
|
+
redirectUri: callbackUrl || `${context.origin}/oauth2-client/callback`,
|
|
66
|
+
scopes: (scopes === null || scopes === void 0 ? void 0 : scopes.split(' ')) || [],
|
|
67
|
+
state
|
|
68
|
+
});
|
|
69
|
+
return await auth[grantType].getUri();
|
|
70
|
+
}
|
|
71
|
+
async refreshOauth2AccessToken(id, context) {
|
|
72
|
+
const { tx } = context.state;
|
|
73
|
+
const repository = tx.getRepository(oauth2_client_1.Oauth2Client);
|
|
74
|
+
const oauth2Client = await repository.findOneBy({ id });
|
|
75
|
+
const { clientId, clientSecret, accessTokenUrl: accessTokenUri, authUrl: authorizationUri, scopes, tokenType, accessToken, refreshToken } = oauth2Client;
|
|
76
|
+
if (!refreshToken) {
|
|
77
|
+
throw new Error('refreshToken not found');
|
|
78
|
+
}
|
|
79
|
+
var auth = new client_oauth2_1.default({
|
|
80
|
+
clientId,
|
|
81
|
+
clientSecret,
|
|
82
|
+
accessTokenUri,
|
|
83
|
+
authorizationUri,
|
|
84
|
+
scopes: scopes === null || scopes === void 0 ? void 0 : scopes.split(' ')
|
|
85
|
+
});
|
|
86
|
+
try {
|
|
87
|
+
var token = await auth.createToken(accessToken, refreshToken, tokenType, {}).refresh();
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
throw err;
|
|
91
|
+
}
|
|
92
|
+
const { accessToken: newAccessToken, refreshToken: newRefreshToken, tokenType: newTokenType, data } = token;
|
|
93
|
+
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;
|
|
94
|
+
return await repository.save(Object.assign(Object.assign({}, oauth2Client), { accessToken: newAccessToken, refreshToken: newRefreshToken, tokenType: newTokenType, expires }));
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
tslib_1.__decorate([
|
|
98
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
|
99
|
+
(0, type_graphql_1.Mutation)(returns => oauth2_client_1.Oauth2Client, { description: 'To create new Oauth2Client' }),
|
|
100
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('oauth2Client')),
|
|
101
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
102
|
+
tslib_1.__metadata("design:type", Function),
|
|
103
|
+
tslib_1.__metadata("design:paramtypes", [oauth2_client_type_1.NewOauth2Client, Object]),
|
|
104
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
105
|
+
], Oauth2ClientMutation.prototype, "createOauth2Client", null);
|
|
106
|
+
tslib_1.__decorate([
|
|
107
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
|
108
|
+
(0, type_graphql_1.Mutation)(returns => oauth2_client_1.Oauth2Client, { description: 'To modify Oauth2Client information' }),
|
|
109
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
|
110
|
+
tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
|
|
111
|
+
tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
|
|
112
|
+
tslib_1.__metadata("design:type", Function),
|
|
113
|
+
tslib_1.__metadata("design:paramtypes", [String, oauth2_client_type_1.Oauth2ClientPatch, Object]),
|
|
114
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
115
|
+
], Oauth2ClientMutation.prototype, "updateOauth2Client", null);
|
|
116
|
+
tslib_1.__decorate([
|
|
117
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
|
118
|
+
(0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete Oauth2Client' }),
|
|
119
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
|
120
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
121
|
+
tslib_1.__metadata("design:type", Function),
|
|
122
|
+
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
|
123
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
124
|
+
], Oauth2ClientMutation.prototype, "deleteOauth2Client", null);
|
|
125
|
+
tslib_1.__decorate([
|
|
126
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
|
127
|
+
(0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To delete multiple Oauth2Clients' }),
|
|
128
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('ids', type => [String])),
|
|
129
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
130
|
+
tslib_1.__metadata("design:type", Function),
|
|
131
|
+
tslib_1.__metadata("design:paramtypes", [Array, Object]),
|
|
132
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
133
|
+
], Oauth2ClientMutation.prototype, "deleteOauth2Clients", null);
|
|
134
|
+
tslib_1.__decorate([
|
|
135
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
|
136
|
+
(0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To import multiple Oauth2Clients' }),
|
|
137
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('oauth2Clients', type => [oauth2_client_type_1.Oauth2ClientPatch])),
|
|
138
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
139
|
+
tslib_1.__metadata("design:type", Function),
|
|
140
|
+
tslib_1.__metadata("design:paramtypes", [Array, Object]),
|
|
141
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
142
|
+
], Oauth2ClientMutation.prototype, "importOauth2Clients", null);
|
|
143
|
+
tslib_1.__decorate([
|
|
144
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
|
145
|
+
(0, type_graphql_1.Mutation)(returns => String, { description: 'To get oauth2 auth URL' }),
|
|
146
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
|
147
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
148
|
+
tslib_1.__metadata("design:type", Function),
|
|
149
|
+
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
|
150
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
151
|
+
], Oauth2ClientMutation.prototype, "getOauth2AuthUrl", null);
|
|
152
|
+
tslib_1.__decorate([
|
|
153
|
+
(0, type_graphql_1.Directive)('@transaction'),
|
|
154
|
+
(0, type_graphql_1.Mutation)(returns => oauth2_client_1.Oauth2Client, { description: 'To refresh oauth2 access token' }),
|
|
155
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
|
156
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
157
|
+
tslib_1.__metadata("design:type", Function),
|
|
158
|
+
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
|
159
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
160
|
+
], Oauth2ClientMutation.prototype, "refreshOauth2AccessToken", null);
|
|
161
|
+
Oauth2ClientMutation = tslib_1.__decorate([
|
|
162
|
+
(0, type_graphql_1.Resolver)(oauth2_client_1.Oauth2Client)
|
|
163
|
+
], Oauth2ClientMutation);
|
|
164
|
+
exports.Oauth2ClientMutation = Oauth2ClientMutation;
|
|
165
|
+
//# sourceMappingURL=oauth2-client-mutation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth2-client-mutation.js","sourceRoot":"","sources":["../../../server/service/oauth2-client/oauth2-client-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import ClientOAuth2 from 'client-oauth2'\nimport crypto from 'crypto'\nimport { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { config } from '@things-factory/env'\n\nimport { Oauth2Client } from './oauth2-client'\nimport { NewOauth2Client, Oauth2ClientPatch } from './oauth2-client-type'\n\nconst protocol: string = config.get('protocol')\n\n@Resolver(Oauth2Client)\nexport class Oauth2ClientMutation {\n @Directive('@transaction')\n @Mutation(returns => Oauth2Client, { description: 'To create new Oauth2Client' })\n async createOauth2Client(\n @Arg('oauth2Client') oauth2Client: NewOauth2Client,\n @Ctx() context: ResolverContext\n ): Promise<Oauth2Client> {\n const { origin } = context\n const { domain, user, tx } = context.state\n\n let url: URL = new URL(origin)\n url.protocol = protocol || url.protocol\n url.pathname = '/oauth2-client/callback'\n\n return await tx.getRepository(Oauth2Client).save({\n ...oauth2Client,\n callbackUrl: oauth2Client.callbackUrl || url.href,\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Oauth2Client, { description: 'To modify Oauth2Client information' })\n async updateOauth2Client(\n @Arg('id') id: string,\n @Arg('patch') patch: Oauth2ClientPatch,\n @Ctx() context: ResolverContext\n ): Promise<Oauth2Client> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(Oauth2Client)\n const oauth2Client = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n return await repository.save({\n ...oauth2Client,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete Oauth2Client' })\n async deleteOauth2Client(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Oauth2Client).delete({ domain: { id: domain.id }, id })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple Oauth2Clients' })\n async deleteOauth2Clients(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Oauth2Client).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To import multiple Oauth2Clients' })\n async importOauth2Clients(\n @Arg('oauth2Clients', type => [Oauth2ClientPatch]) oauth2Clients: Oauth2ClientPatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n oauth2Clients.map(async (oauth2Client: Oauth2ClientPatch) => {\n const createdOauth2Client: Oauth2Client = await tx.getRepository(Oauth2Client).save({ domain, ...oauth2Client })\n })\n )\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => String, { description: 'To get oauth2 auth URL' })\n async getOauth2AuthUrl(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<string> {\n const { tx } = context.state\n const repository = tx.getRepository(Oauth2Client)\n const oauth2Client = await repository.findOneBy({ 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 @Directive('@transaction')\n @Mutation(returns => Oauth2Client, { description: 'To refresh oauth2 access token' })\n async refreshOauth2AccessToken(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Oauth2Client> {\n const { tx } = context.state\n const repository = tx.getRepository(Oauth2Client)\n const oauth2Client = await repository.findOneBy({ 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"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { User } from '@things-factory/auth-base';
|
|
2
|
+
import { Domain, ListParam } from '@things-factory/shell';
|
|
3
|
+
import { Oauth2Client } from './oauth2-client';
|
|
4
|
+
import { Oauth2ClientList } from './oauth2-client-type';
|
|
5
|
+
export declare class Oauth2ClientQuery {
|
|
6
|
+
oauth2Client(id: string, context: ResolverContext): Promise<Oauth2Client>;
|
|
7
|
+
oauth2Clients(params: ListParam, context: ResolverContext): Promise<Oauth2ClientList>;
|
|
8
|
+
domain(oauth2Client: Oauth2Client): Promise<Domain>;
|
|
9
|
+
updater(oauth2Client: Oauth2Client): Promise<User>;
|
|
10
|
+
creator(oauth2Client: Oauth2Client): Promise<User>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Oauth2ClientQuery = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const type_graphql_1 = require("type-graphql");
|
|
6
|
+
const auth_base_1 = require("@things-factory/auth-base");
|
|
7
|
+
const shell_1 = require("@things-factory/shell");
|
|
8
|
+
const oauth2_client_1 = require("./oauth2-client");
|
|
9
|
+
const oauth2_client_type_1 = require("./oauth2-client-type");
|
|
10
|
+
let Oauth2ClientQuery = class Oauth2ClientQuery {
|
|
11
|
+
async oauth2Client(id, context) {
|
|
12
|
+
const { domain } = context.state;
|
|
13
|
+
return await (0, shell_1.getRepository)(oauth2_client_1.Oauth2Client).findOne({
|
|
14
|
+
where: { domain: { id: domain.id }, id }
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
async oauth2Clients(params, context) {
|
|
18
|
+
const { domain } = context.state;
|
|
19
|
+
const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
|
|
20
|
+
domain,
|
|
21
|
+
params,
|
|
22
|
+
repository: await (0, shell_1.getRepository)(oauth2_client_1.Oauth2Client),
|
|
23
|
+
searchables: ['name', 'description']
|
|
24
|
+
});
|
|
25
|
+
const [items, total] = await queryBuilder.getManyAndCount();
|
|
26
|
+
return { items, total };
|
|
27
|
+
}
|
|
28
|
+
async domain(oauth2Client) {
|
|
29
|
+
return await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({ id: oauth2Client.domainId });
|
|
30
|
+
}
|
|
31
|
+
async updater(oauth2Client) {
|
|
32
|
+
return await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: oauth2Client.updaterId });
|
|
33
|
+
}
|
|
34
|
+
async creator(oauth2Client) {
|
|
35
|
+
return await (0, shell_1.getRepository)(auth_base_1.User).findOneBy({ id: oauth2Client.creatorId });
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
tslib_1.__decorate([
|
|
39
|
+
(0, type_graphql_1.Query)(returns => oauth2_client_1.Oauth2Client, { nullable: true, description: 'To fetch a Oauth2Client' }),
|
|
40
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
|
41
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
42
|
+
tslib_1.__metadata("design:type", Function),
|
|
43
|
+
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
|
44
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
45
|
+
], Oauth2ClientQuery.prototype, "oauth2Client", null);
|
|
46
|
+
tslib_1.__decorate([
|
|
47
|
+
(0, type_graphql_1.Query)(returns => oauth2_client_type_1.Oauth2ClientList, { description: 'To fetch multiple Oauth2Clients' }),
|
|
48
|
+
tslib_1.__param(0, (0, type_graphql_1.Args)()),
|
|
49
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
50
|
+
tslib_1.__metadata("design:type", Function),
|
|
51
|
+
tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
|
|
52
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
53
|
+
], Oauth2ClientQuery.prototype, "oauth2Clients", null);
|
|
54
|
+
tslib_1.__decorate([
|
|
55
|
+
(0, type_graphql_1.FieldResolver)(type => shell_1.Domain),
|
|
56
|
+
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
|
57
|
+
tslib_1.__metadata("design:type", Function),
|
|
58
|
+
tslib_1.__metadata("design:paramtypes", [oauth2_client_1.Oauth2Client]),
|
|
59
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
60
|
+
], Oauth2ClientQuery.prototype, "domain", null);
|
|
61
|
+
tslib_1.__decorate([
|
|
62
|
+
(0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
|
|
63
|
+
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
|
64
|
+
tslib_1.__metadata("design:type", Function),
|
|
65
|
+
tslib_1.__metadata("design:paramtypes", [oauth2_client_1.Oauth2Client]),
|
|
66
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
67
|
+
], Oauth2ClientQuery.prototype, "updater", null);
|
|
68
|
+
tslib_1.__decorate([
|
|
69
|
+
(0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
|
|
70
|
+
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
|
71
|
+
tslib_1.__metadata("design:type", Function),
|
|
72
|
+
tslib_1.__metadata("design:paramtypes", [oauth2_client_1.Oauth2Client]),
|
|
73
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
74
|
+
], Oauth2ClientQuery.prototype, "creator", null);
|
|
75
|
+
Oauth2ClientQuery = tslib_1.__decorate([
|
|
76
|
+
(0, type_graphql_1.Resolver)(oauth2_client_1.Oauth2Client)
|
|
77
|
+
], Oauth2ClientQuery);
|
|
78
|
+
exports.Oauth2ClientQuery = Oauth2ClientQuery;
|
|
79
|
+
//# sourceMappingURL=oauth2-client-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth2-client-query.js","sourceRoot":"","sources":["../../../server/service/oauth2-client/oauth2-client-query.ts"],"names":[],"mappings":";;;;AAAA,+CAAmF;AAEnF,yDAAgD;AAChD,iDAAuG;AAEvG,mDAA8C;AAC9C,6DAAuD;AAGvD,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAE5B,KAAK,CAAC,YAAY,CAAY,EAAU,EAAS,OAAwB;QACvE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,OAAO,MAAM,IAAA,qBAAa,EAAC,4BAAY,CAAC,CAAC,OAAO,CAAC;YAC/C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;SACzC,CAAC,CAAA;IACJ,CAAC;IAGD,KAAK,CAAC,aAAa,CAAS,MAAiB,EAAS,OAAwB;QAC5E,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,MAAM,YAAY,GAAG,IAAA,qCAA6B,EAAC;YACjD,MAAM;YACN,MAAM;YACN,UAAU,EAAE,MAAM,IAAA,qBAAa,EAAC,4BAAY,CAAC;YAC7C,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;SACrC,CAAC,CAAA;QAEF,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGD,KAAK,CAAC,MAAM,CAAS,YAA0B;QAC7C,OAAO,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC7E,CAAC;IAGD,KAAK,CAAC,OAAO,CAAS,YAA0B;QAC9C,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC,CAAA;IAC5E,CAAC;IAGD,KAAK,CAAC,OAAO,CAAS,YAA0B;QAC9C,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC,CAAA;IAC5E,CAAC;CACF,CAAA;AAtCC;IADC,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,4BAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC;IACxE,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;qDAM/C;AAGD;IADC,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,qCAAgB,EAAE,EAAE,WAAW,EAAE,iCAAiC,EAAE,CAAC;IAClE,mBAAA,IAAA,mBAAI,GAAE,CAAA;IAAqB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAAjB,iBAAS;;sDAa5C;AAGD;IADC,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAe,4BAAY;;+CAE9C;AAGD;IADC,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAe,4BAAY;;gDAE/C;AAGD;IADC,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAe,4BAAY;;gDAE/C;AAvCU,iBAAiB;IAD7B,IAAA,uBAAQ,EAAC,4BAAY,CAAC;GACV,iBAAiB,CAwC7B;AAxCY,8CAAiB","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\n\nimport { Oauth2Client } from './oauth2-client'\nimport { Oauth2ClientList } from './oauth2-client-type'\n\n@Resolver(Oauth2Client)\nexport class Oauth2ClientQuery {\n @Query(returns => Oauth2Client!, { nullable: true, description: 'To fetch a Oauth2Client' })\n async oauth2Client(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<Oauth2Client> {\n const { domain } = context.state\n\n return await getRepository(Oauth2Client).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Query(returns => Oauth2ClientList, { description: 'To fetch multiple Oauth2Clients' })\n async oauth2Clients(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<Oauth2ClientList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(Oauth2Client),\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() oauth2Client: Oauth2Client): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: oauth2Client.domainId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() oauth2Client: Oauth2Client): Promise<User> {\n return await getRepository(User).findOneBy({ id: oauth2Client.updaterId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() oauth2Client: Oauth2Client): Promise<User> {\n return await getRepository(User).findOneBy({ id: oauth2Client.creatorId })\n }\n}\n"]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Oauth2Client } from './oauth2-client';
|
|
2
|
+
export declare class NewOauth2Client {
|
|
3
|
+
name: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
icon?: string;
|
|
6
|
+
grantType?: string;
|
|
7
|
+
clientId?: string;
|
|
8
|
+
clientSecret?: string;
|
|
9
|
+
callbackUrl?: string;
|
|
10
|
+
authUrl?: string;
|
|
11
|
+
accessTokenUrl?: string;
|
|
12
|
+
webhook?: string;
|
|
13
|
+
username?: string;
|
|
14
|
+
password?: string;
|
|
15
|
+
codeChallengeMethod?: string;
|
|
16
|
+
codeVerifier?: string;
|
|
17
|
+
scopes?: string;
|
|
18
|
+
accessToken?: string;
|
|
19
|
+
refreshToken?: string;
|
|
20
|
+
jwtToken?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare class Oauth2ClientPatch {
|
|
23
|
+
name?: string;
|
|
24
|
+
description?: string;
|
|
25
|
+
icon?: string;
|
|
26
|
+
grantType?: string;
|
|
27
|
+
clientId?: string;
|
|
28
|
+
clientSecret?: string;
|
|
29
|
+
callbackUrl?: string;
|
|
30
|
+
authUrl?: string;
|
|
31
|
+
accessTokenUrl?: string;
|
|
32
|
+
webhook?: string;
|
|
33
|
+
username?: string;
|
|
34
|
+
password?: string;
|
|
35
|
+
codeChallengeMethod?: string;
|
|
36
|
+
codeVerifier?: string;
|
|
37
|
+
scopes?: string;
|
|
38
|
+
accessToken?: string;
|
|
39
|
+
refreshToken?: string;
|
|
40
|
+
jwtToken?: string;
|
|
41
|
+
}
|
|
42
|
+
export declare class Oauth2ClientList {
|
|
43
|
+
items: Oauth2Client[];
|
|
44
|
+
total: number;
|
|
45
|
+
}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Oauth2ClientList = exports.Oauth2ClientPatch = exports.NewOauth2Client = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const type_graphql_1 = require("type-graphql");
|
|
6
|
+
const oauth2_client_1 = require("./oauth2-client");
|
|
7
|
+
let NewOauth2Client = class NewOauth2Client {
|
|
8
|
+
};
|
|
9
|
+
tslib_1.__decorate([
|
|
10
|
+
(0, type_graphql_1.Field)(),
|
|
11
|
+
tslib_1.__metadata("design:type", String)
|
|
12
|
+
], NewOauth2Client.prototype, "name", void 0);
|
|
13
|
+
tslib_1.__decorate([
|
|
14
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
15
|
+
tslib_1.__metadata("design:type", String)
|
|
16
|
+
], NewOauth2Client.prototype, "description", void 0);
|
|
17
|
+
tslib_1.__decorate([
|
|
18
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
19
|
+
tslib_1.__metadata("design:type", String)
|
|
20
|
+
], NewOauth2Client.prototype, "icon", void 0);
|
|
21
|
+
tslib_1.__decorate([
|
|
22
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
23
|
+
tslib_1.__metadata("design:type", String)
|
|
24
|
+
], NewOauth2Client.prototype, "grantType", void 0);
|
|
25
|
+
tslib_1.__decorate([
|
|
26
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
27
|
+
tslib_1.__metadata("design:type", String)
|
|
28
|
+
], NewOauth2Client.prototype, "clientId", void 0);
|
|
29
|
+
tslib_1.__decorate([
|
|
30
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
31
|
+
tslib_1.__metadata("design:type", String)
|
|
32
|
+
], NewOauth2Client.prototype, "clientSecret", void 0);
|
|
33
|
+
tslib_1.__decorate([
|
|
34
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
35
|
+
tslib_1.__metadata("design:type", String)
|
|
36
|
+
], NewOauth2Client.prototype, "callbackUrl", void 0);
|
|
37
|
+
tslib_1.__decorate([
|
|
38
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
39
|
+
tslib_1.__metadata("design:type", String)
|
|
40
|
+
], NewOauth2Client.prototype, "authUrl", void 0);
|
|
41
|
+
tslib_1.__decorate([
|
|
42
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
43
|
+
tslib_1.__metadata("design:type", String)
|
|
44
|
+
], NewOauth2Client.prototype, "accessTokenUrl", void 0);
|
|
45
|
+
tslib_1.__decorate([
|
|
46
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
47
|
+
tslib_1.__metadata("design:type", String)
|
|
48
|
+
], NewOauth2Client.prototype, "webhook", void 0);
|
|
49
|
+
tslib_1.__decorate([
|
|
50
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
51
|
+
tslib_1.__metadata("design:type", String)
|
|
52
|
+
], NewOauth2Client.prototype, "username", void 0);
|
|
53
|
+
tslib_1.__decorate([
|
|
54
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
55
|
+
tslib_1.__metadata("design:type", String)
|
|
56
|
+
], NewOauth2Client.prototype, "password", void 0);
|
|
57
|
+
tslib_1.__decorate([
|
|
58
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
59
|
+
tslib_1.__metadata("design:type", String)
|
|
60
|
+
], NewOauth2Client.prototype, "codeChallengeMethod", void 0);
|
|
61
|
+
tslib_1.__decorate([
|
|
62
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
63
|
+
tslib_1.__metadata("design:type", String)
|
|
64
|
+
], NewOauth2Client.prototype, "codeVerifier", void 0);
|
|
65
|
+
tslib_1.__decorate([
|
|
66
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
67
|
+
tslib_1.__metadata("design:type", String)
|
|
68
|
+
], NewOauth2Client.prototype, "scopes", void 0);
|
|
69
|
+
tslib_1.__decorate([
|
|
70
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
71
|
+
tslib_1.__metadata("design:type", String)
|
|
72
|
+
], NewOauth2Client.prototype, "accessToken", void 0);
|
|
73
|
+
tslib_1.__decorate([
|
|
74
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
75
|
+
tslib_1.__metadata("design:type", String)
|
|
76
|
+
], NewOauth2Client.prototype, "refreshToken", void 0);
|
|
77
|
+
tslib_1.__decorate([
|
|
78
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
79
|
+
tslib_1.__metadata("design:type", String)
|
|
80
|
+
], NewOauth2Client.prototype, "jwtToken", void 0);
|
|
81
|
+
NewOauth2Client = tslib_1.__decorate([
|
|
82
|
+
(0, type_graphql_1.InputType)()
|
|
83
|
+
], NewOauth2Client);
|
|
84
|
+
exports.NewOauth2Client = NewOauth2Client;
|
|
85
|
+
let Oauth2ClientPatch = class Oauth2ClientPatch {
|
|
86
|
+
};
|
|
87
|
+
tslib_1.__decorate([
|
|
88
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
89
|
+
tslib_1.__metadata("design:type", String)
|
|
90
|
+
], Oauth2ClientPatch.prototype, "name", void 0);
|
|
91
|
+
tslib_1.__decorate([
|
|
92
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
93
|
+
tslib_1.__metadata("design:type", String)
|
|
94
|
+
], Oauth2ClientPatch.prototype, "description", void 0);
|
|
95
|
+
tslib_1.__decorate([
|
|
96
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
97
|
+
tslib_1.__metadata("design:type", String)
|
|
98
|
+
], Oauth2ClientPatch.prototype, "icon", void 0);
|
|
99
|
+
tslib_1.__decorate([
|
|
100
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
101
|
+
tslib_1.__metadata("design:type", String)
|
|
102
|
+
], Oauth2ClientPatch.prototype, "grantType", void 0);
|
|
103
|
+
tslib_1.__decorate([
|
|
104
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
105
|
+
tslib_1.__metadata("design:type", String)
|
|
106
|
+
], Oauth2ClientPatch.prototype, "clientId", void 0);
|
|
107
|
+
tslib_1.__decorate([
|
|
108
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
109
|
+
tslib_1.__metadata("design:type", String)
|
|
110
|
+
], Oauth2ClientPatch.prototype, "clientSecret", void 0);
|
|
111
|
+
tslib_1.__decorate([
|
|
112
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
113
|
+
tslib_1.__metadata("design:type", String)
|
|
114
|
+
], Oauth2ClientPatch.prototype, "callbackUrl", void 0);
|
|
115
|
+
tslib_1.__decorate([
|
|
116
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
117
|
+
tslib_1.__metadata("design:type", String)
|
|
118
|
+
], Oauth2ClientPatch.prototype, "authUrl", void 0);
|
|
119
|
+
tslib_1.__decorate([
|
|
120
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
121
|
+
tslib_1.__metadata("design:type", String)
|
|
122
|
+
], Oauth2ClientPatch.prototype, "accessTokenUrl", void 0);
|
|
123
|
+
tslib_1.__decorate([
|
|
124
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
125
|
+
tslib_1.__metadata("design:type", String)
|
|
126
|
+
], Oauth2ClientPatch.prototype, "webhook", void 0);
|
|
127
|
+
tslib_1.__decorate([
|
|
128
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
129
|
+
tslib_1.__metadata("design:type", String)
|
|
130
|
+
], Oauth2ClientPatch.prototype, "username", void 0);
|
|
131
|
+
tslib_1.__decorate([
|
|
132
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
133
|
+
tslib_1.__metadata("design:type", String)
|
|
134
|
+
], Oauth2ClientPatch.prototype, "password", void 0);
|
|
135
|
+
tslib_1.__decorate([
|
|
136
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
137
|
+
tslib_1.__metadata("design:type", String)
|
|
138
|
+
], Oauth2ClientPatch.prototype, "codeChallengeMethod", void 0);
|
|
139
|
+
tslib_1.__decorate([
|
|
140
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
141
|
+
tslib_1.__metadata("design:type", String)
|
|
142
|
+
], Oauth2ClientPatch.prototype, "codeVerifier", void 0);
|
|
143
|
+
tslib_1.__decorate([
|
|
144
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
145
|
+
tslib_1.__metadata("design:type", String)
|
|
146
|
+
], Oauth2ClientPatch.prototype, "scopes", void 0);
|
|
147
|
+
tslib_1.__decorate([
|
|
148
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
149
|
+
tslib_1.__metadata("design:type", String)
|
|
150
|
+
], Oauth2ClientPatch.prototype, "accessToken", void 0);
|
|
151
|
+
tslib_1.__decorate([
|
|
152
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
153
|
+
tslib_1.__metadata("design:type", String)
|
|
154
|
+
], Oauth2ClientPatch.prototype, "refreshToken", void 0);
|
|
155
|
+
tslib_1.__decorate([
|
|
156
|
+
(0, type_graphql_1.Field)({ nullable: true }),
|
|
157
|
+
tslib_1.__metadata("design:type", String)
|
|
158
|
+
], Oauth2ClientPatch.prototype, "jwtToken", void 0);
|
|
159
|
+
Oauth2ClientPatch = tslib_1.__decorate([
|
|
160
|
+
(0, type_graphql_1.InputType)()
|
|
161
|
+
], Oauth2ClientPatch);
|
|
162
|
+
exports.Oauth2ClientPatch = Oauth2ClientPatch;
|
|
163
|
+
let Oauth2ClientList = class Oauth2ClientList {
|
|
164
|
+
};
|
|
165
|
+
tslib_1.__decorate([
|
|
166
|
+
(0, type_graphql_1.Field)(type => [oauth2_client_1.Oauth2Client]),
|
|
167
|
+
tslib_1.__metadata("design:type", Array)
|
|
168
|
+
], Oauth2ClientList.prototype, "items", void 0);
|
|
169
|
+
tslib_1.__decorate([
|
|
170
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Int),
|
|
171
|
+
tslib_1.__metadata("design:type", Number)
|
|
172
|
+
], Oauth2ClientList.prototype, "total", void 0);
|
|
173
|
+
Oauth2ClientList = tslib_1.__decorate([
|
|
174
|
+
(0, type_graphql_1.ObjectType)()
|
|
175
|
+
], Oauth2ClientList);
|
|
176
|
+
exports.Oauth2ClientList = Oauth2ClientList;
|
|
177
|
+
//# sourceMappingURL=oauth2-client-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth2-client-type.js","sourceRoot":"","sources":["../../../server/service/oauth2-client/oauth2-client-type.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, InputType, Int, ObjectType } from 'type-graphql'\n\nimport { Oauth2Client } from './oauth2-client'\n\n@InputType()\nexport class NewOauth2Client {\n @Field()\n name: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n icon?: string\n\n @Field({ nullable: true })\n grantType?: string\n\n @Field({ nullable: true })\n clientId?: string\n\n @Field({ nullable: true })\n clientSecret?: string\n\n @Field({ nullable: true })\n callbackUrl?: string\n\n @Field({ nullable: true })\n authUrl?: string\n\n @Field({ nullable: true })\n accessTokenUrl?: string\n\n @Field({ nullable: true })\n webhook?: string\n\n @Field({ nullable: true })\n username?: string\n\n @Field({ nullable: true })\n password?: string\n\n @Field({ nullable: true })\n codeChallengeMethod?: string\n\n @Field({ nullable: true })\n codeVerifier?: string\n\n @Field({ nullable: true })\n scopes?: string\n\n @Field({ nullable: true })\n accessToken?: string\n\n @Field({ nullable: true })\n refreshToken?: string\n\n @Field({ nullable: true })\n jwtToken?: string\n}\n\n@InputType()\nexport class Oauth2ClientPatch {\n @Field({ nullable: true })\n name?: string\n\n @Field({ nullable: true })\n description?: string\n\n @Field({ nullable: true })\n icon?: string\n\n @Field({ nullable: true })\n grantType?: string\n\n @Field({ nullable: true })\n clientId?: string\n\n @Field({ nullable: true })\n clientSecret?: string\n\n @Field({ nullable: true })\n callbackUrl?: string\n\n @Field({ nullable: true })\n authUrl?: string\n\n @Field({ nullable: true })\n accessTokenUrl?: string\n\n @Field({ nullable: true })\n webhook?: string\n\n @Field({ nullable: true })\n username?: string\n\n @Field({ nullable: true })\n password?: string\n\n @Field({ nullable: true })\n codeChallengeMethod?: string\n\n @Field({ nullable: true })\n codeVerifier?: string\n\n @Field({ nullable: true })\n scopes?: string\n\n @Field({ nullable: true })\n accessToken?: string\n\n @Field({ nullable: true })\n refreshToken?: string\n\n @Field({ nullable: true })\n jwtToken?: string\n}\n\n@ObjectType()\nexport class Oauth2ClientList {\n @Field(type => [Oauth2Client])\n items: Oauth2Client[]\n\n @Field(type => Int)\n total: number\n}\n"]}
|