@tsed/oidc-provider 8.0.0-alpha.1 → 8.0.0-alpha.11

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 (133) hide show
  1. package/lib/esm/OidcModule.js.map +1 -1
  2. package/lib/esm/decorators/grantId.js.map +1 -1
  3. package/lib/esm/decorators/interaction.js.map +1 -1
  4. package/lib/esm/decorators/interactions.js.map +1 -1
  5. package/lib/esm/decorators/noCache.js.map +1 -1
  6. package/lib/esm/decorators/oidcCtx.js.map +1 -1
  7. package/lib/esm/decorators/params.js.map +1 -1
  8. package/lib/esm/decorators/uid.js.map +1 -1
  9. package/lib/esm/index.js +0 -1
  10. package/lib/esm/index.js.map +1 -1
  11. package/lib/esm/middlewares/OidcInteractionMiddleware.js.map +1 -1
  12. package/lib/esm/middlewares/OidcNoCacheMiddleware.js.map +1 -1
  13. package/lib/esm/middlewares/OidcSecureMiddleware.js.map +1 -1
  14. package/lib/esm/services/OidcAdapters.js.map +1 -1
  15. package/lib/esm/services/OidcInteractionContext.js +1 -1
  16. package/lib/esm/services/OidcInteractionContext.js.map +1 -1
  17. package/lib/esm/services/OidcInteractions.js.map +1 -1
  18. package/lib/esm/services/OidcJwks.js +1 -1
  19. package/lib/esm/services/OidcJwks.js.map +1 -1
  20. package/lib/esm/services/OidcPolicy.js +5 -10
  21. package/lib/esm/services/OidcPolicy.js.map +1 -1
  22. package/lib/esm/services/OidcProvider.js +4 -10
  23. package/lib/esm/services/OidcProvider.js.map +1 -1
  24. package/lib/esm/utils/debug.js.map +1 -1
  25. package/lib/types/domain/OidcSettings.d.ts +1 -1
  26. package/lib/types/domain/interfaces.d.ts +1 -1
  27. package/lib/types/index.d.ts +0 -1
  28. package/lib/types/services/OidcInteractionContext.d.ts +1 -1
  29. package/lib/types/services/OidcPolicy.d.ts +0 -3
  30. package/lib/types/services/OidcProvider.d.ts +2 -5
  31. package/package.json +28 -29
  32. package/vitest.config.mts +4 -4
  33. package/lib/cjs/OidcModule.js +0 -84
  34. package/lib/cjs/OidcModule.js.map +0 -1
  35. package/lib/cjs/constants/constants.js +0 -14
  36. package/lib/cjs/constants/constants.js.map +0 -1
  37. package/lib/cjs/decorators/grantId.js +0 -11
  38. package/lib/cjs/decorators/grantId.js.map +0 -1
  39. package/lib/cjs/decorators/interaction.js +0 -17
  40. package/lib/cjs/decorators/interaction.js.map +0 -1
  41. package/lib/cjs/decorators/interactions.js +0 -14
  42. package/lib/cjs/decorators/interactions.js.map +0 -1
  43. package/lib/cjs/decorators/noCache.js +0 -10
  44. package/lib/cjs/decorators/noCache.js.map +0 -1
  45. package/lib/cjs/decorators/oidcCtx.js +0 -11
  46. package/lib/cjs/decorators/oidcCtx.js.map +0 -1
  47. package/lib/cjs/decorators/oidcSession.js +0 -14
  48. package/lib/cjs/decorators/oidcSession.js.map +0 -1
  49. package/lib/cjs/decorators/params.js +0 -11
  50. package/lib/cjs/decorators/params.js.map +0 -1
  51. package/lib/cjs/decorators/prompt.js +0 -11
  52. package/lib/cjs/decorators/prompt.js.map +0 -1
  53. package/lib/cjs/decorators/uid.js +0 -11
  54. package/lib/cjs/decorators/uid.js.map +0 -1
  55. package/lib/cjs/domain/InteractionMethods.js +0 -3
  56. package/lib/cjs/domain/InteractionMethods.js.map +0 -1
  57. package/lib/cjs/domain/OidcAccountsMethods.js +0 -3
  58. package/lib/cjs/domain/OidcAccountsMethods.js.map +0 -1
  59. package/lib/cjs/domain/OidcBadInteractionName.js +0 -8
  60. package/lib/cjs/domain/OidcBadInteractionName.js.map +0 -1
  61. package/lib/cjs/domain/OidcInteractionMethods.js +0 -3
  62. package/lib/cjs/domain/OidcInteractionMethods.js.map +0 -1
  63. package/lib/cjs/domain/OidcInteractionOptions.js +0 -3
  64. package/lib/cjs/domain/OidcInteractionOptions.js.map +0 -1
  65. package/lib/cjs/domain/OidcInteractionPromptProps.js +0 -3
  66. package/lib/cjs/domain/OidcInteractionPromptProps.js.map +0 -1
  67. package/lib/cjs/domain/OidcSettings.js +0 -3
  68. package/lib/cjs/domain/OidcSettings.js.map +0 -1
  69. package/lib/cjs/domain/interfaces.js +0 -3
  70. package/lib/cjs/domain/interfaces.js.map +0 -1
  71. package/lib/cjs/index.js +0 -38
  72. package/lib/cjs/index.js.map +0 -1
  73. package/lib/cjs/middlewares/OidcInteractionMiddleware.js +0 -20
  74. package/lib/cjs/middlewares/OidcInteractionMiddleware.js.map +0 -1
  75. package/lib/cjs/middlewares/OidcNoCacheMiddleware.js +0 -22
  76. package/lib/cjs/middlewares/OidcNoCacheMiddleware.js.map +0 -1
  77. package/lib/cjs/middlewares/OidcSecureMiddleware.js +0 -38
  78. package/lib/cjs/middlewares/OidcSecureMiddleware.js.map +0 -1
  79. package/lib/cjs/package.json +0 -3
  80. package/lib/cjs/services/OidcAdapters.js +0 -85
  81. package/lib/cjs/services/OidcAdapters.js.map +0 -1
  82. package/lib/cjs/services/OidcInteractionContext.js +0 -165
  83. package/lib/cjs/services/OidcInteractionContext.js.map +0 -1
  84. package/lib/cjs/services/OidcInteractions.js +0 -64
  85. package/lib/cjs/services/OidcInteractions.js.map +0 -1
  86. package/lib/cjs/services/OidcJwks.js +0 -31
  87. package/lib/cjs/services/OidcJwks.js.map +0 -1
  88. package/lib/cjs/services/OidcPolicy.js +0 -78
  89. package/lib/cjs/services/OidcPolicy.js.map +0 -1
  90. package/lib/cjs/services/OidcProvider.js +0 -201
  91. package/lib/cjs/services/OidcProvider.js.map +0 -1
  92. package/lib/cjs/services/OidcProviderNodeModule.js +0 -16
  93. package/lib/cjs/services/OidcProviderNodeModule.js.map +0 -1
  94. package/lib/cjs/utils/debug.js +0 -25
  95. package/lib/cjs/utils/debug.js.map +0 -1
  96. package/lib/cjs/utils/events.js +0 -64
  97. package/lib/cjs/utils/events.js.map +0 -1
  98. package/lib/esm/package.json +0 -3
  99. package/lib/esm/services/OidcProviderNodeModule.js +0 -13
  100. package/lib/esm/services/OidcProviderNodeModule.js.map +0 -1
  101. package/lib/types/services/OidcProviderNodeModule.d.ts +0 -7
  102. package/lib/types-esm/OidcModule.d.ts +0 -14
  103. package/lib/types-esm/constants/constants.d.ts +0 -10
  104. package/lib/types-esm/decorators/grantId.d.ts +0 -2
  105. package/lib/types-esm/decorators/interaction.d.ts +0 -5
  106. package/lib/types-esm/decorators/interactions.d.ts +0 -6
  107. package/lib/types-esm/decorators/noCache.d.ts +0 -1
  108. package/lib/types-esm/decorators/oidcCtx.d.ts +0 -3
  109. package/lib/types-esm/decorators/oidcSession.d.ts +0 -6
  110. package/lib/types-esm/decorators/params.d.ts +0 -2
  111. package/lib/types-esm/decorators/prompt.d.ts +0 -3
  112. package/lib/types-esm/decorators/uid.d.ts +0 -2
  113. package/lib/types-esm/domain/InteractionMethods.d.ts +0 -10
  114. package/lib/types-esm/domain/OidcAccountsMethods.d.ts +0 -5
  115. package/lib/types-esm/domain/OidcBadInteractionName.d.ts +0 -3
  116. package/lib/types-esm/domain/OidcInteractionMethods.d.ts +0 -3
  117. package/lib/types-esm/domain/OidcInteractionOptions.d.ts +0 -8
  118. package/lib/types-esm/domain/OidcInteractionPromptProps.d.ts +0 -9
  119. package/lib/types-esm/domain/OidcSettings.d.ts +0 -67
  120. package/lib/types-esm/domain/interfaces.d.ts +0 -12
  121. package/lib/types-esm/index.d.ts +0 -34
  122. package/lib/types-esm/middlewares/OidcInteractionMiddleware.d.ts +0 -5
  123. package/lib/types-esm/middlewares/OidcNoCacheMiddleware.d.ts +0 -4
  124. package/lib/types-esm/middlewares/OidcSecureMiddleware.d.ts +0 -4
  125. package/lib/types-esm/services/OidcAdapters.d.ts +0 -9
  126. package/lib/types-esm/services/OidcInteractionContext.d.ts +0 -38
  127. package/lib/types-esm/services/OidcInteractions.d.ts +0 -14
  128. package/lib/types-esm/services/OidcJwks.d.ts +0 -8
  129. package/lib/types-esm/services/OidcPolicy.d.ts +0 -16
  130. package/lib/types-esm/services/OidcProvider.d.ts +0 -40
  131. package/lib/types-esm/services/OidcProviderNodeModule.d.ts +0 -7
  132. package/lib/types-esm/utils/debug.d.ts +0 -1
  133. package/lib/types-esm/utils/events.d.ts +0 -5
@@ -1,165 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OidcInteractionContext = void 0;
4
- const tslib_1 = require("tslib");
5
- const common_1 = require("@tsed/common");
6
- const core_1 = require("@tsed/core");
7
- const di_1 = require("@tsed/di");
8
- const exceptions_1 = require("@tsed/exceptions");
9
- const constants_js_1 = require("../constants/constants.js");
10
- const OidcBadInteractionName_js_1 = require("../domain/OidcBadInteractionName.js");
11
- const debug_js_1 = require("../utils/debug.js");
12
- const OidcInteractions_js_1 = require("./OidcInteractions.js");
13
- const OidcProvider_js_1 = require("./OidcProvider.js");
14
- const omit_1 = tslib_1.__importDefault(require("lodash/omit"));
15
- let OidcInteractionContext = class OidcInteractionContext {
16
- get raw() {
17
- return this.$ctx.get(constants_js_1.INTERACTION_DETAILS);
18
- }
19
- get session() {
20
- return this.raw.session;
21
- }
22
- get prompt() {
23
- return this.raw.prompt;
24
- }
25
- get params() {
26
- return this.raw.params;
27
- }
28
- get uid() {
29
- return this.raw.uid;
30
- }
31
- get grantId() {
32
- return this.raw.grantId;
33
- }
34
- async runInteraction(name) {
35
- name = name || this.prompt.name;
36
- const handler = this.oidcInteractions.getInteractionHandler(name);
37
- if (handler) {
38
- this.raw.prompt = {
39
- ...this.raw.prompt,
40
- name,
41
- reasons: [name]
42
- };
43
- await handler(this.$ctx);
44
- }
45
- }
46
- async interactionDetails() {
47
- const raw = await this.oidcProvider.get().interactionDetails(this.$ctx.getReq(), this.$ctx.getRes());
48
- const { uid, prompt, params, session, grantId } = raw;
49
- this.$ctx.set(constants_js_1.INTERACTION_CONTEXT, this);
50
- this.$ctx.set(constants_js_1.INTERACTION_DETAILS, raw);
51
- this.$ctx.set(constants_js_1.INTERACTION_UID, uid);
52
- this.$ctx.set(constants_js_1.INTERACTION_PROMPT, prompt);
53
- this.$ctx.set(constants_js_1.INTERACTION_PARAMS, params);
54
- this.$ctx.set(constants_js_1.INTERACTION_GRANT_ID, grantId);
55
- this.$ctx.set(constants_js_1.INTERACTION_SESSION, session);
56
- return raw;
57
- }
58
- interactionFinished(result, options = { mergeWithLastSubmission: false }) {
59
- return this.oidcProvider.get().interactionFinished(this.$ctx.getReq(), this.$ctx.getRes(), result, options);
60
- }
61
- interactionResult(result, options = { mergeWithLastSubmission: false }) {
62
- return this.oidcProvider.get().interactionResult(this.$ctx.getReq(), this.$ctx.getRes(), result, options);
63
- }
64
- async interactionPrompt({ client, ...options }) {
65
- client = client || (await this.findClient());
66
- return {
67
- client: (0, omit_1.default)(client, ["clientSecret", ...this.omitClientProps]),
68
- uid: this.uid,
69
- grantId: this.grantId,
70
- details: this.prompt.details,
71
- params: {
72
- ...this.params,
73
- ...options.params
74
- },
75
- ...options,
76
- ...this.debug()
77
- };
78
- }
79
- render(view, result) {
80
- return this.$ctx.response.render(view, result);
81
- }
82
- save(ttl) {
83
- return this.raw.save(ttl);
84
- }
85
- findClient(clientId = this.params.client_id) {
86
- const key = `$client:${clientId}`;
87
- return this.$ctx.cacheAsync(key, () => this.oidcProvider.get().Client.find(clientId));
88
- }
89
- findAccount(sub, token) {
90
- if (!sub && this.session) {
91
- sub = this.session?.accountId;
92
- }
93
- if (!sub) {
94
- return Promise.resolve(undefined);
95
- }
96
- const key = `$account:${sub}`;
97
- return this.$ctx.cacheAsync(key, (() => {
98
- return this.oidcProvider.get().Account.findAccount(undefined, sub, token);
99
- }));
100
- }
101
- getGrant() {
102
- const { Grant } = this.oidcProvider.get();
103
- if (this.grantId) {
104
- // we'll be modifying existing grant in existing session
105
- // @ts-ignore
106
- return Grant.find(this.grantId);
107
- }
108
- return Promise.resolve(new Grant({
109
- accountId: this.session?.accountId,
110
- clientId: this.params.client_id
111
- }));
112
- }
113
- checkInteractionName(name) {
114
- if (this.prompt.name !== name) {
115
- throw new OidcBadInteractionName_js_1.OidcBadInteractionName("Bad interaction name");
116
- }
117
- }
118
- async checkClientId(clientId = this.params.client_id) {
119
- const client = await this.findClient(clientId);
120
- if (!client) {
121
- throw new exceptions_1.Unauthorized(`Unknown client_id ${clientId}`);
122
- }
123
- }
124
- debug(obj) {
125
- /* istanbul ignore next */
126
- if (this.env === core_1.Env.PROD) {
127
- return { session: undefined, dbg: { params: undefined, prompt: undefined } };
128
- }
129
- if (obj) {
130
- return (0, debug_js_1.debug)(obj);
131
- }
132
- return {
133
- session: this.session ? this.debug(this.session) : undefined,
134
- dbg: {
135
- params: this.debug(this.params),
136
- prompt: this.debug(this.prompt)
137
- }
138
- };
139
- }
140
- };
141
- tslib_1.__decorate([
142
- (0, common_1.Constant)("env"),
143
- tslib_1.__metadata("design:type", String)
144
- ], OidcInteractionContext.prototype, "env", void 0);
145
- tslib_1.__decorate([
146
- (0, common_1.Constant)("oidc.render.omitClientProps", []),
147
- tslib_1.__metadata("design:type", Array)
148
- ], OidcInteractionContext.prototype, "omitClientProps", void 0);
149
- tslib_1.__decorate([
150
- (0, di_1.Inject)(),
151
- tslib_1.__metadata("design:type", OidcProvider_js_1.OidcProvider)
152
- ], OidcInteractionContext.prototype, "oidcProvider", void 0);
153
- tslib_1.__decorate([
154
- (0, di_1.Inject)(),
155
- tslib_1.__metadata("design:type", OidcInteractions_js_1.OidcInteractions)
156
- ], OidcInteractionContext.prototype, "oidcInteractions", void 0);
157
- tslib_1.__decorate([
158
- (0, common_1.InjectContext)(),
159
- tslib_1.__metadata("design:type", common_1.PlatformContext)
160
- ], OidcInteractionContext.prototype, "$ctx", void 0);
161
- OidcInteractionContext = tslib_1.__decorate([
162
- (0, di_1.Injectable)()
163
- ], OidcInteractionContext);
164
- exports.OidcInteractionContext = OidcInteractionContext;
165
- //# sourceMappingURL=OidcInteractionContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OidcInteractionContext.js","sourceRoot":"","sources":["../../../src/services/OidcInteractionContext.ts"],"names":[],"mappings":"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"}
@@ -1,64 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OidcInteractions = void 0;
4
- const tslib_1 = require("tslib");
5
- const common_1 = require("@tsed/common");
6
- const core_1 = require("@tsed/core");
7
- const di_1 = require("@tsed/di");
8
- const constants_js_1 = require("../constants/constants.js");
9
- let OidcInteractions = class OidcInteractions {
10
- constructor() {
11
- this.interactions = new Map();
12
- }
13
- $onInit() {
14
- const platformHandler = this.injector.get(common_1.PlatformHandler);
15
- this.getInteractions().forEach((provider) => {
16
- const { name } = provider.store.get(constants_js_1.INTERACTION_OPTIONS);
17
- this.interactions.set(name, provider);
18
- if (this.injector.get(provider.token)?.$prompt) {
19
- provider.store.set("$prompt", platformHandler.createCustomHandler(provider, "$prompt"));
20
- }
21
- });
22
- }
23
- getInteractions() {
24
- const interactionsProvider = this.injector.getProviders().find((provider) => provider.subType === constants_js_1.INTERACTIONS);
25
- /* istanbul ignore next */
26
- if (!interactionsProvider) {
27
- return [];
28
- }
29
- return interactionsProvider.children
30
- .map((token) => this.injector.getProvider(token))
31
- .filter((provider) => provider?.subType === constants_js_1.INTERACTION);
32
- }
33
- getInteractionProvider(name) {
34
- return this.interactions.get(name);
35
- }
36
- getInteractionHandler(name) {
37
- const interaction = this.getInteractionProvider(name);
38
- if (interaction) {
39
- const endpoint = common_1.EndpointMetadata.get(interaction.useClass, "$prompt");
40
- return (ctx) => {
41
- // Add current endpoint metadata to ctx
42
- ctx.endpoint = endpoint;
43
- return interaction.store.get("$prompt")(ctx);
44
- };
45
- }
46
- }
47
- };
48
- tslib_1.__decorate([
49
- (0, di_1.Inject)(),
50
- tslib_1.__metadata("design:type", di_1.InjectorService)
51
- ], OidcInteractions.prototype, "injector", void 0);
52
- tslib_1.__decorate([
53
- (0, common_1.Constant)("env"),
54
- tslib_1.__metadata("design:type", String)
55
- ], OidcInteractions.prototype, "env", void 0);
56
- tslib_1.__decorate([
57
- (0, common_1.Constant)("oidc"),
58
- tslib_1.__metadata("design:type", Object)
59
- ], OidcInteractions.prototype, "oidcSettings", void 0);
60
- OidcInteractions = tslib_1.__decorate([
61
- (0, di_1.Injectable)()
62
- ], OidcInteractions);
63
- exports.OidcInteractions = OidcInteractions;
64
- //# sourceMappingURL=OidcInteractions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OidcInteractions.js","sourceRoot":"","sources":["../../../src/services/OidcInteractions.ts"],"names":[],"mappings":";;;;AAAA,yCAAmH;AACnH,qCAA+B;AAC/B,iCAA6D;AAC7D,4DAAyF;AAKlF,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAAtB;QAUK,iBAAY,GAA0B,IAAI,GAAG,EAAE,CAAC;IA4C5D,CAAC;IA1CC,OAAO;QACL,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAkB,wBAAe,CAAE,CAAC;QAE7E,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC,QAAkB,EAAE,EAAE;YACpD,MAAM,EAAC,IAAI,EAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAyB,kCAAmB,CAAC,CAAC;YAC/E,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAEtC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE;gBAC9C,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;aACzF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe;QACb,MAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,KAAK,2BAAY,CAAC,CAAC;QAEhH,0BAA0B;QAC1B,IAAI,CAAC,oBAAoB,EAAE;YACzB,OAAO,EAAE,CAAC;SACX;QAED,OAAO,oBAAoB,CAAC,QAAQ;aACjC,GAAG,CAAC,CAAC,KAAoB,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAE,CAAC;aAChE,MAAM,CAAC,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,0BAAW,CAAC,CAAC;IACvE,CAAC;IAED,sBAAsB,CAAC,IAAY;QACjC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,qBAAqB,CAAC,IAAY;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAEtD,IAAI,WAAW,EAAE;YACf,MAAM,QAAQ,GAAG,yBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACvE,OAAO,CAAC,GAAoB,EAAE,EAAE;gBAC9B,uCAAuC;gBACvC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACxB,OAAO,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;YAC/C,CAAC,CAAC;SACH;IACH,CAAC;CACF,CAAA;AArDC;IAAC,IAAA,WAAM,GAAE;sCACW,oBAAe;kDAAC;AAEpC;IAAC,IAAA,iBAAQ,EAAC,KAAK,CAAC;;6CACG;AAEnB;IAAC,IAAA,iBAAQ,EAAC,MAAM,CAAC;;sDACoB;AAR1B,gBAAgB;IAD5B,IAAA,eAAU,GAAE;GACA,gBAAgB,CAsD5B;AAtDY,4CAAgB"}
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OidcJwks = void 0;
4
- const tslib_1 = require("tslib");
5
- const di_1 = require("@tsed/di");
6
- const path_1 = require("path");
7
- const jwks_1 = require("@tsed/jwks");
8
- let OidcJwks = class OidcJwks {
9
- $onInit() {
10
- return this.getJwks();
11
- }
12
- getJwks() {
13
- return (0, jwks_1.getJwks)({
14
- path: this.jwksPath,
15
- certificates: this.certificates
16
- });
17
- }
18
- };
19
- tslib_1.__decorate([
20
- (0, di_1.Constant)("oidc.jwksPath", (0, path_1.join)(process.cwd(), "keys", "jwks.json")),
21
- tslib_1.__metadata("design:type", String)
22
- ], OidcJwks.prototype, "jwksPath", void 0);
23
- tslib_1.__decorate([
24
- (0, di_1.Constant)("oidc.certificates"),
25
- tslib_1.__metadata("design:type", Array)
26
- ], OidcJwks.prototype, "certificates", void 0);
27
- OidcJwks = tslib_1.__decorate([
28
- (0, di_1.Injectable)()
29
- ], OidcJwks);
30
- exports.OidcJwks = OidcJwks;
31
- //# sourceMappingURL=OidcJwks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OidcJwks.js","sourceRoot":"","sources":["../../../src/services/OidcJwks.ts"],"names":[],"mappings":";;;;AAAA,iCAA8C;AAC9C,+BAA0B;AAC1B,qCAAsD;AAG/C,IAAM,QAAQ,GAAd,MAAM,QAAQ;IASnB,OAAO;QACL,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,OAAO;QACL,OAAO,IAAA,cAAO,EAAC;YACb,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAlBC;IAAC,IAAA,aAAQ,EAAC,eAAe,EAAE,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;;0CACnD;AAEjB;IAAC,IAAA,aAAQ,EAAC,mBAAmB,CAAC;;8CACK;AALxB,QAAQ;IADpB,IAAA,eAAU,GAAE;GACA,QAAQ,CAmBpB;AAnBY,4BAAQ"}
@@ -1,78 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OidcPolicy = void 0;
4
- const tslib_1 = require("tslib");
5
- const di_1 = require("@tsed/di");
6
- const OidcInteractions_js_1 = require("./OidcInteractions.js");
7
- const OidcProviderNodeModule_js_1 = require("./OidcProviderNodeModule.js");
8
- let OidcPolicy = class OidcPolicy {
9
- constructor(module) {
10
- this.module = module;
11
- }
12
- getPolicy() {
13
- let policy = this.module.interactionPolicy.base();
14
- const { usePriority, interactions } = this.getInteractions();
15
- if (interactions.size) {
16
- for (const { name, instance, options } of interactions.values()) {
17
- if (!policy.get(name)) {
18
- const prompt = this.createPrompt(instance, options);
19
- policy.add(prompt, options.priority);
20
- }
21
- if (instance.$onCreate) {
22
- instance.$onCreate(policy.get(name));
23
- }
24
- }
25
- // reordering interactions by interactions index
26
- if (!usePriority) {
27
- policy = policy.sort((a, b) => {
28
- const o1 = interactions.get(a.name)?.order || 0;
29
- const o2 = interactions.get(b.name)?.order || 0;
30
- return o1 < o2 ? -1 : 1;
31
- });
32
- }
33
- }
34
- return this.injector.alter("$alterOidcPolicy", policy);
35
- }
36
- createPrompt(instance, options) {
37
- const { checks: originalChecks = [], details, ...promptOptions } = options;
38
- const checks = [...(instance.checks ? instance.checks() : originalChecks)].filter(Boolean);
39
- return new this.module.interactionPolicy.Prompt(promptOptions, instance.details ? instance.details.bind(instance) : details, ...checks);
40
- }
41
- getInteractions() {
42
- let usePriority = false;
43
- const interactions = this.oidcInteractions.getInteractions();
44
- const map = interactions.reduce((map, provider, index) => {
45
- const instance = this.injector.get(provider.token);
46
- const options = provider.store.get("interactionOptions");
47
- if (options.priority !== undefined) {
48
- usePriority = true;
49
- }
50
- return map.set(options.name, {
51
- order: index,
52
- name: options.name,
53
- provider,
54
- instance,
55
- options
56
- });
57
- }, new Map());
58
- return {
59
- interactions: map,
60
- usePriority
61
- };
62
- }
63
- };
64
- tslib_1.__decorate([
65
- (0, di_1.Inject)(),
66
- tslib_1.__metadata("design:type", di_1.InjectorService)
67
- ], OidcPolicy.prototype, "injector", void 0);
68
- tslib_1.__decorate([
69
- (0, di_1.Inject)(),
70
- tslib_1.__metadata("design:type", OidcInteractions_js_1.OidcInteractions)
71
- ], OidcPolicy.prototype, "oidcInteractions", void 0);
72
- OidcPolicy = tslib_1.__decorate([
73
- (0, di_1.Injectable)(),
74
- tslib_1.__param(0, (0, di_1.Inject)(OidcProviderNodeModule_js_1.OIDC_PROVIDER_NODE_MODULE)),
75
- tslib_1.__metadata("design:paramtypes", [Object])
76
- ], OidcPolicy);
77
- exports.OidcPolicy = OidcPolicy;
78
- //# sourceMappingURL=OidcPolicy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OidcPolicy.js","sourceRoot":"","sources":["../../../src/services/OidcPolicy.ts"],"names":[],"mappings":"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"}
@@ -1,201 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OidcProvider = void 0;
4
- const tslib_1 = require("tslib");
5
- const common_1 = require("@tsed/common");
6
- const core_1 = require("@tsed/core");
7
- const di_1 = require("@tsed/di");
8
- const constants_js_1 = require("../constants/constants.js");
9
- const events_js_1 = require("../utils/events.js");
10
- const OidcAdapters_js_1 = require("./OidcAdapters.js");
11
- const OidcInteractions_js_1 = require("./OidcInteractions.js");
12
- const OidcJwks_js_1 = require("./OidcJwks.js");
13
- const OidcPolicy_js_1 = require("./OidcPolicy.js");
14
- const OidcProviderNodeModule_js_1 = require("./OidcProviderNodeModule.js");
15
- function mapError(error) {
16
- return Object.getOwnPropertyNames(error).reduce((obj, key) => {
17
- return {
18
- ...obj,
19
- [key]: error[key]
20
- };
21
- }, {});
22
- }
23
- let OidcProvider = class OidcProvider {
24
- constructor(module) {
25
- this.module = module;
26
- }
27
- get logger() {
28
- return this.$ctx?.logger || this.injector.logger;
29
- }
30
- hasConfiguration() {
31
- return !!this.oidc;
32
- }
33
- async getConfiguration() {
34
- const [jwks, adapter] = await Promise.all([this.oidcJwks.getJwks(), this.adapters.createAdapterClass()]);
35
- const { issuer, jwksPath, secureKey, proxy, Accounts, secureCookies = this.env == core_1.Env.PROD, Adapter, connectionName, render, ...options } = this.oidc;
36
- const configuration = {
37
- interactions: {
38
- /* istanbul ignore next */
39
- url: (ctx, interaction) => `interaction/${interaction.uid}`
40
- },
41
- ...options,
42
- adapter,
43
- jwks
44
- };
45
- if (Accounts) {
46
- configuration.findAccount = (ctx, id, token) => this.injector.get(Accounts).findAccount(id, token);
47
- }
48
- if (secureCookies) {
49
- (0, core_1.setValue)(configuration, "cookies.short.secure", true);
50
- (0, core_1.setValue)(configuration, "cookies.long.secure", true);
51
- }
52
- const policy = this.oidcPolicy.getPolicy();
53
- if (policy) {
54
- (0, core_1.setValue)(configuration, "interactions.policy", policy);
55
- }
56
- const url = this.getInteractionsUrl();
57
- if (url) {
58
- (0, core_1.setValue)(configuration, "interactions.url", url);
59
- }
60
- return configuration;
61
- }
62
- getIssuer() {
63
- if (this.issuer) {
64
- return this.issuer;
65
- }
66
- // istanbul ignore next
67
- if (this.httpsPort) {
68
- return `https://localhost:${this.httpsPort}`;
69
- }
70
- return `http://localhost:${this.httpPort}`;
71
- }
72
- get() {
73
- return this.raw;
74
- }
75
- /**
76
- * Create a new instance of OidcProvider
77
- */
78
- async create() {
79
- const { proxy = this.env === core_1.Env.PROD, secureKey, allowHttpLocalhost = this.env !== core_1.Env.PROD } = this.oidc;
80
- const configuration = await this.getConfiguration();
81
- await this.injector.alterAsync("$alterOidcConfiguration", configuration);
82
- const oidcProvider = new this.module.Provider(this.getIssuer(), configuration);
83
- if (proxy) {
84
- // istanbul ignore next
85
- switch (this.platformName) {
86
- default:
87
- case "express":
88
- oidcProvider.proxy = true;
89
- break;
90
- case "koa":
91
- this.app.rawApp.proxy = true;
92
- break;
93
- }
94
- }
95
- if (secureKey) {
96
- oidcProvider.app.keys = secureKey;
97
- }
98
- this.raw = oidcProvider;
99
- if (allowHttpLocalhost) {
100
- this.allowHttpLocalhost();
101
- }
102
- events_js_1.OIDC_ERROR_EVENTS.map((event) => {
103
- this.raw.on(event, this.createErrorHandler(event));
104
- });
105
- await this.injector.emit("$onCreateOIDC", this.raw);
106
- return this.raw;
107
- }
108
- createErrorHandler(event) {
109
- return (ctx, error, accountId, sid) => {
110
- this.logger.error({
111
- event: "OIDC_ERROR",
112
- type: event,
113
- error: mapError(error),
114
- account_id: accountId,
115
- params: ctx.oidc.params,
116
- headers: ctx.headers,
117
- sid
118
- });
119
- // TODO see if we need to call platformExceptions
120
- // this.platformExceptions.catch(error, ctx.request.$ctx);
121
- };
122
- }
123
- getInteractionsUrl() {
124
- const provider = this.injector.getProviders().find((provider) => provider.subType === constants_js_1.INTERACTIONS);
125
- if (provider) {
126
- return (ctx, interaction) => {
127
- // eslint-disable-line no-unused-vars
128
- return provider.path.replace(/:uid/, interaction.uid);
129
- };
130
- }
131
- }
132
- allowHttpLocalhost() {
133
- const { invalidate: orig } = this.raw.Client.Schema.prototype;
134
- this.raw.Client.Schema.prototype.invalidate = function invalidate(message, code) {
135
- if (code === "implicit-force-https" || code === "implicit-forbid-localhost") {
136
- return;
137
- }
138
- /* istanbul ignore next */
139
- return orig.call(this, message);
140
- };
141
- }
142
- };
143
- tslib_1.__decorate([
144
- (0, di_1.Constant)("env"),
145
- tslib_1.__metadata("design:type", String)
146
- ], OidcProvider.prototype, "env", void 0);
147
- tslib_1.__decorate([
148
- (0, di_1.Constant)("httpPort"),
149
- tslib_1.__metadata("design:type", Object)
150
- ], OidcProvider.prototype, "httpPort", void 0);
151
- tslib_1.__decorate([
152
- (0, di_1.Constant)("httpsPort"),
153
- tslib_1.__metadata("design:type", Object)
154
- ], OidcProvider.prototype, "httpsPort", void 0);
155
- tslib_1.__decorate([
156
- (0, di_1.Constant)("oidc.issuer", ""),
157
- tslib_1.__metadata("design:type", String)
158
- ], OidcProvider.prototype, "issuer", void 0);
159
- tslib_1.__decorate([
160
- (0, di_1.Constant)("oidc"),
161
- tslib_1.__metadata("design:type", Object)
162
- ], OidcProvider.prototype, "oidc", void 0);
163
- tslib_1.__decorate([
164
- (0, di_1.Constant)("PLATFORM_NAME"),
165
- tslib_1.__metadata("design:type", String)
166
- ], OidcProvider.prototype, "platformName", void 0);
167
- tslib_1.__decorate([
168
- (0, di_1.Inject)(),
169
- tslib_1.__metadata("design:type", OidcJwks_js_1.OidcJwks)
170
- ], OidcProvider.prototype, "oidcJwks", void 0);
171
- tslib_1.__decorate([
172
- (0, di_1.Inject)(),
173
- tslib_1.__metadata("design:type", OidcInteractions_js_1.OidcInteractions)
174
- ], OidcProvider.prototype, "oidcInteractions", void 0);
175
- tslib_1.__decorate([
176
- (0, di_1.Inject)(),
177
- tslib_1.__metadata("design:type", OidcPolicy_js_1.OidcPolicy)
178
- ], OidcProvider.prototype, "oidcPolicy", void 0);
179
- tslib_1.__decorate([
180
- (0, di_1.Inject)(),
181
- tslib_1.__metadata("design:type", OidcAdapters_js_1.OidcAdapters)
182
- ], OidcProvider.prototype, "adapters", void 0);
183
- tslib_1.__decorate([
184
- (0, di_1.Inject)(),
185
- tslib_1.__metadata("design:type", di_1.InjectorService)
186
- ], OidcProvider.prototype, "injector", void 0);
187
- tslib_1.__decorate([
188
- (0, di_1.Inject)(),
189
- tslib_1.__metadata("design:type", common_1.PlatformApplication)
190
- ], OidcProvider.prototype, "app", void 0);
191
- tslib_1.__decorate([
192
- (0, common_1.InjectContext)(),
193
- tslib_1.__metadata("design:type", common_1.PlatformContext)
194
- ], OidcProvider.prototype, "$ctx", void 0);
195
- OidcProvider = tslib_1.__decorate([
196
- (0, di_1.Injectable)(),
197
- tslib_1.__param(0, (0, di_1.Inject)(OidcProviderNodeModule_js_1.OIDC_PROVIDER_NODE_MODULE)),
198
- tslib_1.__metadata("design:paramtypes", [Object])
199
- ], OidcProvider);
200
- exports.OidcProvider = OidcProvider;
201
- //# sourceMappingURL=OidcProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OidcProvider.js","sourceRoot":"","sources":["../../../src/services/OidcProvider.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OIDC_PROVIDER_NODE_MODULE = void 0;
4
- const di_1 = require("@tsed/di");
5
- exports.OIDC_PROVIDER_NODE_MODULE = Symbol.for("oidc:provider:node:module");
6
- (0, di_1.registerProvider)({
7
- provide: exports.OIDC_PROVIDER_NODE_MODULE,
8
- async useAsyncFactory() {
9
- const mod = await import("oidc-provider");
10
- return {
11
- ...mod,
12
- Provider: mod.default || mod.Provider
13
- };
14
- }
15
- });
16
- //# sourceMappingURL=OidcProviderNodeModule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OidcProviderNodeModule.js","sourceRoot":"","sources":["../../../src/services/OidcProviderNodeModule.ts"],"names":[],"mappings":";;;AACA,iCAA0C;AAI7B,QAAA,yBAAyB,GAAG,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;AAMjF,IAAA,qBAAgB,EAAC;IACf,OAAO,EAAE,iCAAyB;IAClC,KAAK,CAAC,eAAe;QACnB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAE1C,OAAO;YACL,GAAG,GAAG;YACN,QAAQ,EAAE,GAAG,CAAC,OAAO,IAAK,GAAW,CAAC,QAAQ;SAC/C,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.debug = void 0;
4
- const tslib_1 = require("tslib");
5
- const core_1 = require("@tsed/core");
6
- const querystring_1 = tslib_1.__importDefault(require("querystring"));
7
- const util_1 = require("util");
8
- const keys = new Set();
9
- function serialize(obj) {
10
- return Object.entries(obj).reduce((acc, [key, value]) => {
11
- keys.add(key);
12
- if ((0, core_1.isEmpty)(value)) {
13
- return acc;
14
- }
15
- acc[key] = (0, util_1.inspect)(value, { depth: null });
16
- return acc;
17
- }, {});
18
- }
19
- const debug = (obj) => querystring_1.default.stringify(serialize(obj), "<br/>", ": ", {
20
- encodeURIComponent(value) {
21
- return keys.has(value) ? `<strong>${value}</strong>` : value;
22
- }
23
- });
24
- exports.debug = debug;
25
- //# sourceMappingURL=debug.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/utils/debug.ts"],"names":[],"mappings":";;;;AAAA,qCAAmC;AACnC,sEAA6B;AAC7B,+BAA6B;AAE7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;AAEvB,SAAS,SAAS,CAAC,GAAQ;IACzB,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC3D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEd,IAAI,IAAA,cAAO,EAAC,KAAK,CAAC,EAAE;YAClB,OAAO,GAAG,CAAC;SACZ;QAED,GAAG,CAAC,GAAG,CAAC,GAAG,IAAA,cAAO,EAAC,KAAK,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;QACzC,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAEM,MAAM,KAAK,GAAG,CAAC,GAAQ,EAAE,EAAE,CAChC,qBAAE,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;IAC1C,kBAAkB,CAAC,KAAK;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/D,CAAC;CACF,CAAC,CAAC;AALQ,QAAA,KAAK,SAKb"}