@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 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../server/routes.ts"],"names":[],"mappings":";;;AAAA,0EAAwC;AACxC,4DAA2B;AAC3B,qCAAuC;AAEvC,iDAAgE;AAEhE,yCAAyC;AAEzC,OAAO,CAAC,EAAE,CAAC,uCAA8C,EAAE,CAAC,GAAG,EAAE,mBAAmB,EAAE,EAAE;IACtF,mBAAmB,CAAC,GAAG,CAAC,6BAA6B,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC7E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;QAClC,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,CAAA;QAErB,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,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,GAAG,MAAM,yBAAyB;YAC/C,MAAM,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,GAAG,CAAC,KAAI,EAAE;YAChC,KAAK;SACN,CAAC,CAAA;QAEF,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;QACpB,OAAO,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA;IACzC,CAAC,CAAC,CAAA;IAEF,mBAAmB,CAAC,GAAG,CAAC,4BAA4B,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC5E,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;QAC1B,MAAM,EAAE,EAAE,EAAE,GAAG,MAAM,CAAA;QAErB,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,MAAM,EACN,SAAS,EACT,WAAW,EACX,YAAY,EACb,GAAG,YAAY,CAAA;QAEhB,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;YACpB,OAAO,CAAC,IAAI,GAAG,wBAAwB,CAAA;YAEvC,OAAM;SACP;QAED,IAAI,IAAI,GAAG,IAAI,uBAAY,CAAC;YAC1B,QAAQ;YACR,YAAY;YACZ,cAAc;YACd,gBAAgB;YAChB,MAAM,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,GAAG,CAAC,KAAI,EAAE;SACjC,CAAC,CAAA;QAEF,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,MAAM,IAAI;aAC9E,WAAW,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,CAAC;aACrD,OAAO,EAAE,CAAA;QAEZ,OAAO,CAAC,MAAM,GAAG,GAAG,CAAA;QACpB,OAAO,CAAC,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,iCAC/B,YAAY,KACf,WAAW,EAAE,cAAc,EAC3B,YAAY,EAAE,eAAe,EAC7B,KAAK,EAAE,EAAE,IACT,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,OAAO,CAAC,EAAE,CAAC,sCAA6C,EAAE,CAAC,GAAG,EAAE,kBAAkB,EAAE,EAAE;IACpF,kBAAkB,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACxE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAC/B,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;QAE/B,MAAM,UAAU,GAAG,IAAA,uBAAa,EAAC,uBAAY,CAAC,CAAA;QAC9C,MAAM,YAAY,GAAiB,MAAM,UAAU,CAAC,OAAO,CACzD;YACE,KAAK;SACN,EACD;YACE,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CACF,CAAA;QAED,MAAM,EACJ,MAAM,EACN,EAAE,EACF,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,gBAAgB,EACzB,MAAM,EACP,GAAG,YAAY,CAAA;QAEhB,IAAI,IAAI,GAAG,IAAI,uBAAY,CAAC;YAC1B,QAAQ;YACR,YAAY;YACZ,cAAc;YACd,gBAAgB;YAChB,MAAM,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,GAAG,CAAC,KAAI,EAAE;SACjC,CAAC,CAAA;QAEF,IAAI,GAAG,GAAG,WAAW,CAAA;QACrB,QAAQ,SAAS,EAAE;YACjB,KAAK,aAAa;gBAChB,MAAK;YACP,KAAK,KAAK;gBACR,MAAK;YACP,KAAK,MAAM;gBACT,MAAK;YACP,KAAK,OAAO,CAAC;YACb;gBACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAA;SAC1D;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACnD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;QAC5D,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,MAAM,UAAU,CAAC,IAAI,iCAChB,YAAY,KACf,SAAS;YACT,WAAW;YACX,YAAY;YACZ,OAAO,EACP,MAAM,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EACrC,KAAK,EAAE,EAAE,IACT,CAAA;QAEF,OAAO,CAAC,QAAQ,CAAC,IAAA,gCAAwB,EAAC,OAAO,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAA;IAChG,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA","sourcesContent":["import ClientOAuth2 from 'client-oauth2'\nimport crypto from 'crypto'\nimport { getRepository } from 'typeorm'\n\nimport { getRedirectSubdomainPath } from '@things-factory/shell'\n\nimport { Oauth2Client } from './entities'\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.findOne(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.findOne(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 {\n state\n },\n {\n relations: ['domain']\n }\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"]}
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"]}