@nest-boot/auth 7.9.5 → 7.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/mikro-orm-adapter.js.map +1 -1
- package/dist/adapters/mikro-orm-adapter.spec.js +263 -11
- package/dist/adapters/mikro-orm-adapter.spec.js.map +1 -1
- package/dist/auth.guard.d.ts +6 -0
- package/dist/auth.guard.js +12 -4
- package/dist/auth.guard.js.map +1 -1
- package/dist/auth.guard.spec.js +66 -0
- package/dist/auth.guard.spec.js.map +1 -1
- package/dist/auth.middleware.spec.d.ts +1 -0
- package/dist/auth.middleware.spec.js +139 -0
- package/dist/auth.middleware.spec.js.map +1 -0
- package/dist/auth.module.d.ts +1 -1
- package/dist/auth.module.js +33 -20
- package/dist/auth.module.js.map +1 -1
- package/dist/auth.module.spec.d.ts +1 -0
- package/dist/auth.module.spec.js +611 -0
- package/dist/auth.module.spec.js.map +1 -0
- package/dist/auth.service.d.ts +1 -1
- package/dist/auth.service.spec.d.ts +1 -0
- package/dist/auth.service.spec.js +26 -0
- package/dist/auth.service.spec.js.map +1 -0
- package/dist/auth.transaction-context.spec.d.ts +1 -0
- package/dist/auth.transaction-context.spec.js +20 -0
- package/dist/auth.transaction-context.spec.js.map +1 -0
- package/dist/decorators/auth.decorators.spec.d.ts +1 -0
- package/dist/decorators/auth.decorators.spec.js +87 -0
- package/dist/decorators/auth.decorators.spec.js.map +1 -0
- package/dist/entities/entities.spec.d.ts +1 -0
- package/dist/entities/entities.spec.js +80 -0
- package/dist/entities/entities.spec.js.map +1 -0
- package/dist/index.spec.d.ts +1 -0
- package/dist/index.spec.js +73 -0
- package/dist/index.spec.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/assert-no-duplicate-generic-oauth-plugin.d.ts +2 -0
- package/dist/utils/assert-no-duplicate-generic-oauth-plugin.js +11 -0
- package/dist/utils/assert-no-duplicate-generic-oauth-plugin.js.map +1 -0
- package/dist/utils/assert-no-duplicate-generic-oauth-plugin.spec.d.ts +1 -0
- package/dist/utils/assert-no-duplicate-generic-oauth-plugin.spec.js +29 -0
- package/dist/utils/assert-no-duplicate-generic-oauth-plugin.spec.js.map +1 -0
- package/dist/utils/create-email-and-password-config.d.ts +4 -0
- package/dist/utils/create-email-and-password-config.js +21 -0
- package/dist/utils/create-email-and-password-config.js.map +1 -0
- package/dist/utils/create-email-and-password-config.spec.d.ts +1 -0
- package/dist/utils/create-email-and-password-config.spec.js +66 -0
- package/dist/utils/create-email-and-password-config.spec.js.map +1 -0
- package/dist/utils/create-oidc-config.d.ts +2 -0
- package/dist/utils/create-oidc-config.js +22 -0
- package/dist/utils/create-oidc-config.js.map +1 -0
- package/dist/utils/create-oidc-config.spec.d.ts +1 -0
- package/dist/utils/create-oidc-config.spec.js +73 -0
- package/dist/utils/create-oidc-config.spec.js.map +1 -0
- package/dist/utils/create-social-provider-config.d.ts +6 -0
- package/dist/utils/create-social-provider-config.js +40 -0
- package/dist/utils/create-social-provider-config.js.map +1 -0
- package/dist/utils/create-social-provider-config.spec.d.ts +1 -0
- package/dist/utils/create-social-provider-config.spec.js +139 -0
- package/dist/utils/create-social-provider-config.spec.js.map +1 -0
- package/dist/utils/create-social-providers-config.d.ts +4 -0
- package/dist/utils/create-social-providers-config.js +17 -0
- package/dist/utils/create-social-providers-config.js.map +1 -0
- package/dist/utils/create-social-providers-config.spec.d.ts +1 -0
- package/dist/utils/create-social-providers-config.spec.js +63 -0
- package/dist/utils/create-social-providers-config.spec.js.map +1 -0
- package/dist/utils/estimate-entropy.spec.d.ts +1 -0
- package/dist/utils/estimate-entropy.spec.js +13 -0
- package/dist/utils/estimate-entropy.spec.js.map +1 -0
- package/dist/utils/generic-oauth-provider-config.type.d.ts +3 -0
- package/dist/utils/generic-oauth-provider-config.type.js +3 -0
- package/dist/utils/generic-oauth-provider-config.type.js.map +1 -0
- package/dist/utils/has-oidc-env-config.d.ts +1 -0
- package/dist/utils/has-oidc-env-config.js +8 -0
- package/dist/utils/has-oidc-env-config.js.map +1 -0
- package/dist/utils/has-oidc-env-config.spec.d.ts +1 -0
- package/dist/utils/has-oidc-env-config.spec.js +23 -0
- package/dist/utils/has-oidc-env-config.spec.js.map +1 -0
- package/dist/utils/has-social-provider-credential-env-config.d.ts +2 -0
- package/dist/utils/has-social-provider-credential-env-config.js +10 -0
- package/dist/utils/has-social-provider-credential-env-config.js.map +1 -0
- package/dist/utils/has-social-provider-credential-env-config.spec.d.ts +1 -0
- package/dist/utils/has-social-provider-credential-env-config.spec.js +33 -0
- package/dist/utils/has-social-provider-credential-env-config.spec.js.map +1 -0
- package/dist/utils/has-social-provider-env-config.d.ts +2 -0
- package/dist/utils/has-social-provider-env-config.js +8 -0
- package/dist/utils/has-social-provider-env-config.js.map +1 -0
- package/dist/utils/has-social-provider-env-config.spec.d.ts +1 -0
- package/dist/utils/has-social-provider-env-config.spec.js +34 -0
- package/dist/utils/has-social-provider-env-config.spec.js.map +1 -0
- package/dist/utils/is-env-true.d.ts +1 -0
- package/dist/utils/is-env-true.js +7 -0
- package/dist/utils/is-env-true.js.map +1 -0
- package/dist/utils/is-env-true.spec.d.ts +1 -0
- package/dist/utils/is-env-true.spec.js +20 -0
- package/dist/utils/is-env-true.spec.js.map +1 -0
- package/dist/utils/oidc.constants.d.ts +5 -0
- package/dist/utils/oidc.constants.js +27 -0
- package/dist/utils/oidc.constants.js.map +1 -0
- package/dist/utils/resolve-oidc-prompt.d.ts +2 -0
- package/dist/utils/resolve-oidc-prompt.js +16 -0
- package/dist/utils/resolve-oidc-prompt.js.map +1 -0
- package/dist/utils/resolve-oidc-prompt.spec.d.ts +1 -0
- package/dist/utils/resolve-oidc-prompt.spec.js +28 -0
- package/dist/utils/resolve-oidc-prompt.spec.js.map +1 -0
- package/dist/utils/resolve-oidc-scopes.d.ts +1 -0
- package/dist/utils/resolve-oidc-scopes.js +10 -0
- package/dist/utils/resolve-oidc-scopes.js.map +1 -0
- package/dist/utils/resolve-oidc-scopes.spec.d.ts +1 -0
- package/dist/utils/resolve-oidc-scopes.spec.js +16 -0
- package/dist/utils/resolve-oidc-scopes.spec.js.map +1 -0
- package/dist/utils/resolve-required-oidc-env.d.ts +2 -0
- package/dist/utils/resolve-required-oidc-env.js +12 -0
- package/dist/utils/resolve-required-oidc-env.js.map +1 -0
- package/dist/utils/resolve-required-oidc-env.spec.d.ts +1 -0
- package/dist/utils/resolve-required-oidc-env.spec.js +22 -0
- package/dist/utils/resolve-required-oidc-env.spec.js.map +1 -0
- package/dist/utils/resolve-required-social-provider-env.d.ts +2 -0
- package/dist/utils/resolve-required-social-provider-env.js +15 -0
- package/dist/utils/resolve-required-social-provider-env.js.map +1 -0
- package/dist/utils/resolve-required-social-provider-env.spec.d.ts +1 -0
- package/dist/utils/resolve-required-social-provider-env.spec.js +29 -0
- package/dist/utils/resolve-required-social-provider-env.spec.js.map +1 -0
- package/dist/utils/resolve-secret.d.ts +2 -0
- package/dist/utils/resolve-secret.js +27 -0
- package/dist/utils/resolve-secret.js.map +1 -0
- package/dist/utils/resolve-secret.spec.d.ts +1 -0
- package/dist/utils/resolve-secret.spec.js +34 -0
- package/dist/utils/resolve-secret.spec.js.map +1 -0
- package/dist/utils/resolve-social-provider-enabled.d.ts +2 -0
- package/dist/utils/resolve-social-provider-enabled.js +9 -0
- package/dist/utils/resolve-social-provider-enabled.js.map +1 -0
- package/dist/utils/resolve-social-provider-enabled.spec.d.ts +1 -0
- package/dist/utils/resolve-social-provider-enabled.spec.js +20 -0
- package/dist/utils/resolve-social-provider-enabled.spec.js.map +1 -0
- package/dist/utils/social-provider.constants.d.ts +22 -0
- package/dist/utils/social-provider.constants.js +34 -0
- package/dist/utils/social-provider.constants.js.map +1 -0
- package/package.json +9 -8
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assertNoDuplicateGenericOAuthPlugin = assertNoDuplicateGenericOAuthPlugin;
|
|
4
|
+
function assertNoDuplicateGenericOAuthPlugin(plugins) {
|
|
5
|
+
if (!plugins?.some((plugin) => plugin.id === "generic-oauth")) {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
throw new Error("AUTH_OIDC_* cannot be used together with a manually configured genericOAuth plugin.\n" +
|
|
9
|
+
"Configure all generic OAuth providers in plugins, or remove the custom genericOAuth plugin and use AUTH_OIDC_* only.");
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=assert-no-duplicate-generic-oauth-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert-no-duplicate-generic-oauth-plugin.js","sourceRoot":"","sources":["../../src/utils/assert-no-duplicate-generic-oauth-plugin.ts"],"names":[],"mappings":";;AAEA,kFAWC;AAXD,SAAgB,mCAAmC,CACjD,OAA4B;IAE5B,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,eAAe,CAAC,EAAE,CAAC;QAC9D,OAAO;IACT,CAAC;IAED,MAAM,IAAI,KAAK,CACb,uFAAuF;QACrF,sHAAsH,CACzH,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const assert_no_duplicate_generic_oauth_plugin_1 = require("./assert-no-duplicate-generic-oauth-plugin");
|
|
4
|
+
describe("assertNoDuplicateGenericOAuthPlugin", () => {
|
|
5
|
+
it("should allow undefined plugins", () => {
|
|
6
|
+
expect(() => {
|
|
7
|
+
(0, assert_no_duplicate_generic_oauth_plugin_1.assertNoDuplicateGenericOAuthPlugin)();
|
|
8
|
+
}).not.toThrow();
|
|
9
|
+
});
|
|
10
|
+
it("should allow non-generic-oauth plugins", () => {
|
|
11
|
+
expect(() => {
|
|
12
|
+
(0, assert_no_duplicate_generic_oauth_plugin_1.assertNoDuplicateGenericOAuthPlugin)([
|
|
13
|
+
{
|
|
14
|
+
id: "custom-plugin",
|
|
15
|
+
},
|
|
16
|
+
]);
|
|
17
|
+
}).not.toThrow();
|
|
18
|
+
});
|
|
19
|
+
it("should reject manually configured genericOAuth plugins", () => {
|
|
20
|
+
expect(() => {
|
|
21
|
+
(0, assert_no_duplicate_generic_oauth_plugin_1.assertNoDuplicateGenericOAuthPlugin)([
|
|
22
|
+
{
|
|
23
|
+
id: "generic-oauth",
|
|
24
|
+
},
|
|
25
|
+
]);
|
|
26
|
+
}).toThrow("AUTH_OIDC_*");
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=assert-no-duplicate-generic-oauth-plugin.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert-no-duplicate-generic-oauth-plugin.spec.js","sourceRoot":"","sources":["../../src/utils/assert-no-duplicate-generic-oauth-plugin.spec.ts"],"names":[],"mappings":";;AAAA,yGAAiG;AAEjG,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,GAAG,EAAE;YACV,IAAA,8EAAmC,GAAE,CAAC;QACxC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,GAAG,EAAE;YACV,IAAA,8EAAmC,EAAC;gBAClC;oBACE,EAAE,EAAE,eAAe;iBACpB;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,CAAC,GAAG,EAAE;YACV,IAAA,8EAAmC,EAAC;gBAClC;oBACE,EAAE,EAAE,eAAe;iBACpB;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { AuthModuleOptions } from "../auth-module-options.interface";
|
|
2
|
+
type EmailAndPasswordConfig = NonNullable<AuthModuleOptions["emailAndPassword"]>;
|
|
3
|
+
export declare function createEmailAndPasswordConfig(disableSignUp: boolean, options?: EmailAndPasswordConfig): EmailAndPasswordConfig | undefined;
|
|
4
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createEmailAndPasswordConfig = createEmailAndPasswordConfig;
|
|
4
|
+
const is_env_true_1 = require("./is-env-true");
|
|
5
|
+
function createEmailAndPasswordConfig(disableSignUp, options) {
|
|
6
|
+
const hasEnabledEnv = process.env.AUTH_EMAIL_ENABLED !== undefined;
|
|
7
|
+
const shouldDisableSignUp = disableSignUp || (0, is_env_true_1.isEnvTrue)("AUTH_EMAIL_DISABLE_SIGNUP");
|
|
8
|
+
if (!options && !hasEnabledEnv) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
...(options ?? {
|
|
13
|
+
enabled: process.env.AUTH_EMAIL_ENABLED !== "false",
|
|
14
|
+
}),
|
|
15
|
+
...(hasEnabledEnv
|
|
16
|
+
? { enabled: process.env.AUTH_EMAIL_ENABLED !== "false" }
|
|
17
|
+
: {}),
|
|
18
|
+
disableSignUp: shouldDisableSignUp || options?.disableSignUp === true,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=create-email-and-password-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-email-and-password-config.js","sourceRoot":"","sources":["../../src/utils/create-email-and-password-config.ts"],"names":[],"mappings":";;AAOA,oEAqBC;AA3BD,+CAA0C;AAM1C,SAAgB,4BAA4B,CAC1C,aAAsB,EACtB,OAAgC;IAEhC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,SAAS,CAAC;IACnE,MAAM,mBAAmB,GACvB,aAAa,IAAI,IAAA,uBAAS,EAAC,2BAA2B,CAAC,CAAC;IAE1D,IAAI,CAAC,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,GAAG,CAAC,OAAO,IAAI;YACb,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,OAAO;SACpD,CAAC;QACF,GAAG,CAAC,aAAa;YACf,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,OAAO,EAAE;YACzD,CAAC,CAAC,EAAE,CAAC;QACP,aAAa,EAAE,mBAAmB,IAAI,OAAO,EAAE,aAAa,KAAK,IAAI;KACtE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const create_email_and_password_config_1 = require("./create-email-and-password-config");
|
|
4
|
+
describe("createEmailAndPasswordConfig", () => {
|
|
5
|
+
beforeEach(() => {
|
|
6
|
+
delete process.env.AUTH_EMAIL_DISABLE_SIGNUP;
|
|
7
|
+
delete process.env.AUTH_EMAIL_ENABLED;
|
|
8
|
+
});
|
|
9
|
+
it("should preserve better-auth defaults when email auth is not configured", () => {
|
|
10
|
+
expect((0, create_email_and_password_config_1.createEmailAndPasswordConfig)(false)).toBeUndefined();
|
|
11
|
+
});
|
|
12
|
+
it("should enable email auth when AUTH_EMAIL_ENABLED is true", () => {
|
|
13
|
+
process.env.AUTH_EMAIL_ENABLED = "true";
|
|
14
|
+
expect((0, create_email_and_password_config_1.createEmailAndPasswordConfig)(false)).toEqual({
|
|
15
|
+
disableSignUp: false,
|
|
16
|
+
enabled: true,
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
it("should disable email auth when AUTH_EMAIL_ENABLED is false", () => {
|
|
20
|
+
process.env.AUTH_EMAIL_ENABLED = "false";
|
|
21
|
+
expect((0, create_email_and_password_config_1.createEmailAndPasswordConfig)(false)).toEqual({
|
|
22
|
+
disableSignUp: false,
|
|
23
|
+
enabled: false,
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
it("should not create email auth config for signup disable flags alone", () => {
|
|
27
|
+
process.env.AUTH_EMAIL_DISABLE_SIGNUP = "true";
|
|
28
|
+
expect((0, create_email_and_password_config_1.createEmailAndPasswordConfig)(true)).toBeUndefined();
|
|
29
|
+
});
|
|
30
|
+
it("should disable signup when the global disable flag is true and email auth is configured", () => {
|
|
31
|
+
process.env.AUTH_EMAIL_ENABLED = "true";
|
|
32
|
+
expect((0, create_email_and_password_config_1.createEmailAndPasswordConfig)(true)).toEqual({
|
|
33
|
+
disableSignUp: true,
|
|
34
|
+
enabled: true,
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
it("should disable signup when AUTH_EMAIL_DISABLE_SIGNUP is true and email auth is configured", () => {
|
|
38
|
+
process.env.AUTH_EMAIL_ENABLED = "true";
|
|
39
|
+
process.env.AUTH_EMAIL_DISABLE_SIGNUP = "true";
|
|
40
|
+
expect((0, create_email_and_password_config_1.createEmailAndPasswordConfig)(false)).toEqual({
|
|
41
|
+
disableSignUp: true,
|
|
42
|
+
enabled: true,
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
it("should merge with explicit email auth options", () => {
|
|
46
|
+
process.env.AUTH_EMAIL_DISABLE_SIGNUP = "true";
|
|
47
|
+
expect((0, create_email_and_password_config_1.createEmailAndPasswordConfig)(false, {
|
|
48
|
+
enabled: true,
|
|
49
|
+
maxPasswordLength: 128,
|
|
50
|
+
})).toEqual({
|
|
51
|
+
disableSignUp: true,
|
|
52
|
+
enabled: true,
|
|
53
|
+
maxPasswordLength: 128,
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
it("should preserve explicit signup disable from email auth options", () => {
|
|
57
|
+
expect((0, create_email_and_password_config_1.createEmailAndPasswordConfig)(false, {
|
|
58
|
+
disableSignUp: true,
|
|
59
|
+
enabled: true,
|
|
60
|
+
})).toEqual({
|
|
61
|
+
disableSignUp: true,
|
|
62
|
+
enabled: true,
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=create-email-and-password-config.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-email-and-password-config.spec.js","sourceRoot":"","sources":["../../src/utils/create-email-and-password-config.spec.ts"],"names":[],"mappings":";;AAAA,yFAAkF;AAElF,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;QAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,CAAC,IAAA,+DAA4B,EAAC,KAAK,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,MAAM,CAAC;QAExC,MAAM,CAAC,IAAA,+DAA4B,EAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;YAClD,aAAa,EAAE,KAAK;YACpB,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,OAAO,CAAC;QAEzC,MAAM,CAAC,IAAA,+DAA4B,EAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;YAClD,aAAa,EAAE,KAAK;YACpB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,MAAM,CAAC;QAE/C,MAAM,CAAC,IAAA,+DAA4B,EAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yFAAyF,EAAE,GAAG,EAAE;QACjG,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,MAAM,CAAC;QAExC,MAAM,CAAC,IAAA,+DAA4B,EAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YACjD,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2FAA2F,EAAE,GAAG,EAAE;QACnG,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,MAAM,CAAC;QAE/C,MAAM,CAAC,IAAA,+DAA4B,EAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;YAClD,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,MAAM,CAAC;QAE/C,MAAM,CACJ,IAAA,+DAA4B,EAAC,KAAK,EAAE;YAClC,OAAO,EAAE,IAAI;YACb,iBAAiB,EAAE,GAAG;SACvB,CAAC,CACH,CAAC,OAAO,CAAC;YACR,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE,IAAI;YACb,iBAAiB,EAAE,GAAG;SACvB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,CACJ,IAAA,+DAA4B,EAAC,KAAK,EAAE;YAClC,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE,IAAI;SACd,CAAC,CACH,CAAC,OAAO,CAAC;YACR,aAAa,EAAE,IAAI;YACnB,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createOidcConfig = createOidcConfig;
|
|
4
|
+
const is_env_true_1 = require("./is-env-true");
|
|
5
|
+
const resolve_oidc_prompt_1 = require("./resolve-oidc-prompt");
|
|
6
|
+
const resolve_oidc_scopes_1 = require("./resolve-oidc-scopes");
|
|
7
|
+
const resolve_required_oidc_env_1 = require("./resolve-required-oidc-env");
|
|
8
|
+
function createOidcConfig(disableSignUp) {
|
|
9
|
+
if (!(0, is_env_true_1.isEnvTrue)("AUTH_OIDC_ENABLED")) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
return {
|
|
13
|
+
providerId: "oidc",
|
|
14
|
+
clientId: (0, resolve_required_oidc_env_1.resolveRequiredOidcEnv)("AUTH_OIDC_CLIENT_ID"),
|
|
15
|
+
clientSecret: (0, resolve_required_oidc_env_1.resolveRequiredOidcEnv)("AUTH_OIDC_CLIENT_SECRET"),
|
|
16
|
+
discoveryUrl: (0, resolve_required_oidc_env_1.resolveRequiredOidcEnv)("AUTH_OIDC_DISCOVERY_URL"),
|
|
17
|
+
prompt: (0, resolve_oidc_prompt_1.resolveOidcPrompt)(),
|
|
18
|
+
scopes: (0, resolve_oidc_scopes_1.resolveOidcScopes)(),
|
|
19
|
+
disableSignUp: disableSignUp || (0, is_env_true_1.isEnvTrue)("AUTH_OIDC_DISABLE_SIGNUP"),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=create-oidc-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-oidc-config.js","sourceRoot":"","sources":["../../src/utils/create-oidc-config.ts"],"names":[],"mappings":";;AAMA,4CAgBC;AArBD,+CAA0C;AAC1C,+DAA0D;AAC1D,+DAA0D;AAC1D,2EAAqE;AAErE,SAAgB,gBAAgB,CAC9B,aAAsB;IAEtB,IAAI,CAAC,IAAA,uBAAS,EAAC,mBAAmB,CAAC,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,UAAU,EAAE,MAAM;QAClB,QAAQ,EAAE,IAAA,kDAAsB,EAAC,qBAAqB,CAAC;QACvD,YAAY,EAAE,IAAA,kDAAsB,EAAC,yBAAyB,CAAC;QAC/D,YAAY,EAAE,IAAA,kDAAsB,EAAC,yBAAyB,CAAC;QAC/D,MAAM,EAAE,IAAA,uCAAiB,GAAE;QAC3B,MAAM,EAAE,IAAA,uCAAiB,GAAE;QAC3B,aAAa,EAAE,aAAa,IAAI,IAAA,uBAAS,EAAC,0BAA0B,CAAC;KACtE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const create_oidc_config_1 = require("./create-oidc-config");
|
|
4
|
+
describe("createOidcConfig", () => {
|
|
5
|
+
beforeEach(() => {
|
|
6
|
+
delete process.env.AUTH_OIDC_CLIENT_ID;
|
|
7
|
+
delete process.env.AUTH_OIDC_CLIENT_SECRET;
|
|
8
|
+
delete process.env.AUTH_OIDC_DISCOVERY_URL;
|
|
9
|
+
delete process.env.AUTH_OIDC_DISABLE_SIGNUP;
|
|
10
|
+
delete process.env.AUTH_OIDC_ENABLED;
|
|
11
|
+
delete process.env.AUTH_OIDC_PROMPT;
|
|
12
|
+
delete process.env.AUTH_OIDC_SCOPES;
|
|
13
|
+
});
|
|
14
|
+
it("should return undefined when OIDC env is not configured", () => {
|
|
15
|
+
expect((0, create_oidc_config_1.createOidcConfig)(false)).toBeUndefined();
|
|
16
|
+
});
|
|
17
|
+
it("should return undefined when OIDC credentials are configured but AUTH_OIDC_ENABLED is unset", () => {
|
|
18
|
+
process.env.AUTH_OIDC_CLIENT_ID = "client-id";
|
|
19
|
+
process.env.AUTH_OIDC_CLIENT_SECRET = "client-secret";
|
|
20
|
+
process.env.AUTH_OIDC_DISCOVERY_URL =
|
|
21
|
+
"https://oidc.example.com/.well-known/openid-configuration";
|
|
22
|
+
expect((0, create_oidc_config_1.createOidcConfig)(false)).toBeUndefined();
|
|
23
|
+
});
|
|
24
|
+
it("should return undefined when AUTH_OIDC_ENABLED is false", () => {
|
|
25
|
+
process.env.AUTH_OIDC_ENABLED = "false";
|
|
26
|
+
process.env.AUTH_OIDC_CLIENT_ID = "client-id";
|
|
27
|
+
process.env.AUTH_OIDC_CLIENT_SECRET = "client-secret";
|
|
28
|
+
process.env.AUTH_OIDC_DISCOVERY_URL =
|
|
29
|
+
"https://oidc.example.com/.well-known/openid-configuration";
|
|
30
|
+
expect((0, create_oidc_config_1.createOidcConfig)(false)).toBeUndefined();
|
|
31
|
+
});
|
|
32
|
+
it("should create OIDC config from env", () => {
|
|
33
|
+
process.env.AUTH_OIDC_ENABLED = "true";
|
|
34
|
+
process.env.AUTH_OIDC_CLIENT_ID = "client-id";
|
|
35
|
+
process.env.AUTH_OIDC_CLIENT_SECRET = "client-secret";
|
|
36
|
+
process.env.AUTH_OIDC_DISCOVERY_URL =
|
|
37
|
+
"https://oidc.example.com/.well-known/openid-configuration";
|
|
38
|
+
process.env.AUTH_OIDC_PROMPT = "login";
|
|
39
|
+
process.env.AUTH_OIDC_SCOPES = "openid, email,";
|
|
40
|
+
expect((0, create_oidc_config_1.createOidcConfig)(false)).toEqual({
|
|
41
|
+
clientId: "client-id",
|
|
42
|
+
clientSecret: "client-secret",
|
|
43
|
+
disableSignUp: false,
|
|
44
|
+
discoveryUrl: "https://oidc.example.com/.well-known/openid-configuration",
|
|
45
|
+
prompt: "login",
|
|
46
|
+
providerId: "oidc",
|
|
47
|
+
scopes: ["openid", "email"],
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
it("should use default scopes and global signup disable", () => {
|
|
51
|
+
process.env.AUTH_OIDC_ENABLED = "true";
|
|
52
|
+
process.env.AUTH_OIDC_CLIENT_ID = "client-id";
|
|
53
|
+
process.env.AUTH_OIDC_CLIENT_SECRET = "client-secret";
|
|
54
|
+
process.env.AUTH_OIDC_DISCOVERY_URL =
|
|
55
|
+
"https://oidc.example.com/.well-known/openid-configuration";
|
|
56
|
+
expect((0, create_oidc_config_1.createOidcConfig)(true)).toEqual(expect.objectContaining({
|
|
57
|
+
disableSignUp: true,
|
|
58
|
+
scopes: ["openid", "profile", "email"],
|
|
59
|
+
}));
|
|
60
|
+
});
|
|
61
|
+
it("should disable signup when AUTH_OIDC_DISABLE_SIGNUP is true", () => {
|
|
62
|
+
process.env.AUTH_OIDC_ENABLED = "true";
|
|
63
|
+
process.env.AUTH_OIDC_CLIENT_ID = "client-id";
|
|
64
|
+
process.env.AUTH_OIDC_CLIENT_SECRET = "client-secret";
|
|
65
|
+
process.env.AUTH_OIDC_DISCOVERY_URL =
|
|
66
|
+
"https://oidc.example.com/.well-known/openid-configuration";
|
|
67
|
+
process.env.AUTH_OIDC_DISABLE_SIGNUP = "true";
|
|
68
|
+
expect((0, create_oidc_config_1.createOidcConfig)(false)).toEqual(expect.objectContaining({
|
|
69
|
+
disableSignUp: true,
|
|
70
|
+
}));
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
//# sourceMappingURL=create-oidc-config.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-oidc-config.spec.js","sourceRoot":"","sources":["../../src/utils/create-oidc-config.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AuthModuleOptions } from "../auth-module-options.interface";
|
|
2
|
+
import { SocialProviderId } from "./social-provider.constants";
|
|
3
|
+
type SocialProvidersConfig = NonNullable<AuthModuleOptions["socialProviders"]>;
|
|
4
|
+
type SocialProviderConfig<T extends SocialProviderId> = NonNullable<SocialProvidersConfig[T]>;
|
|
5
|
+
export declare function createSocialProviderConfig<T extends SocialProviderId>(provider: T, disableSignUp: boolean, options?: SocialProviderConfig<T>): SocialProviderConfig<T> | undefined;
|
|
6
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSocialProviderConfig = createSocialProviderConfig;
|
|
4
|
+
const has_social_provider_credential_env_config_1 = require("./has-social-provider-credential-env-config");
|
|
5
|
+
const is_env_true_1 = require("./is-env-true");
|
|
6
|
+
const resolve_required_social_provider_env_1 = require("./resolve-required-social-provider-env");
|
|
7
|
+
const resolve_social_provider_enabled_1 = require("./resolve-social-provider-enabled");
|
|
8
|
+
const social_provider_constants_1 = require("./social-provider.constants");
|
|
9
|
+
function createSocialProviderConfig(provider, disableSignUp, options) {
|
|
10
|
+
const providerConfig = social_provider_constants_1.SOCIAL_PROVIDER_ENV_CONFIGS[provider];
|
|
11
|
+
const hasCredentialEnvConfig = (0, has_social_provider_credential_env_config_1.hasSocialProviderCredentialEnvConfig)(provider);
|
|
12
|
+
const shouldDisableSignUp = disableSignUp || (0, is_env_true_1.isEnvTrue)(providerConfig.disableSignUp);
|
|
13
|
+
const hasEnabledEnv = process.env[providerConfig.enabled] !== undefined;
|
|
14
|
+
const enabled = (0, resolve_social_provider_enabled_1.resolveSocialProviderEnabled)(provider);
|
|
15
|
+
const shouldUseCredentialEnv = enabled && hasCredentialEnvConfig;
|
|
16
|
+
const shouldCreateProvider = !!options || enabled;
|
|
17
|
+
if (!shouldCreateProvider) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
if (!shouldUseCredentialEnv) {
|
|
21
|
+
if (!options) {
|
|
22
|
+
(0, resolve_required_social_provider_env_1.resolveRequiredSocialProviderEnv)(provider, "clientId");
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
...options,
|
|
26
|
+
...(hasEnabledEnv ? { enabled } : {}),
|
|
27
|
+
...(shouldDisableSignUp || options?.disableSignUp === true
|
|
28
|
+
? { disableSignUp: true }
|
|
29
|
+
: {}),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
...options,
|
|
34
|
+
clientId: (0, resolve_required_social_provider_env_1.resolveRequiredSocialProviderEnv)(provider, "clientId"),
|
|
35
|
+
clientSecret: (0, resolve_required_social_provider_env_1.resolveRequiredSocialProviderEnv)(provider, "clientSecret"),
|
|
36
|
+
...(hasEnabledEnv ? { enabled } : {}),
|
|
37
|
+
disableSignUp: shouldDisableSignUp || options?.disableSignUp === true,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=create-social-provider-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-social-provider-config.js","sourceRoot":"","sources":["../../src/utils/create-social-provider-config.ts"],"names":[],"mappings":";;AAeA,gEAuCC;AArDD,2GAAmG;AACnG,+CAA0C;AAC1C,iGAA0F;AAC1F,uFAAiF;AACjF,2EAGqC;AAOrC,SAAgB,0BAA0B,CACxC,QAAW,EACX,aAAsB,EACtB,OAAiC;IAEjC,MAAM,cAAc,GAAG,uDAA2B,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,sBAAsB,GAAG,IAAA,gFAAoC,EAAC,QAAQ,CAAC,CAAC;IAC9E,MAAM,mBAAmB,GACvB,aAAa,IAAI,IAAA,uBAAS,EAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC;IACxE,MAAM,OAAO,GAAG,IAAA,8DAA4B,EAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,sBAAsB,GAAG,OAAO,IAAI,sBAAsB,CAAC;IACjE,MAAM,oBAAoB,GAAG,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC;IAElD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAA,uEAAgC,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACzD,CAAC;QAED,OAAO;YACL,GAAG,OAAO;YACV,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,GAAG,CAAC,mBAAmB,IAAI,OAAO,EAAE,aAAa,KAAK,IAAI;gBACxD,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE;gBACzB,CAAC,CAAC,EAAE,CAAC;SACmB,CAAC;IAC/B,CAAC;IAED,OAAO;QACL,GAAG,OAAO;QACV,QAAQ,EAAE,IAAA,uEAAgC,EAAC,QAAQ,EAAE,UAAU,CAAC;QAChE,YAAY,EAAE,IAAA,uEAAgC,EAAC,QAAQ,EAAE,cAAc,CAAC;QACxE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,aAAa,EAAE,mBAAmB,IAAI,OAAO,EAAE,aAAa,KAAK,IAAI;KAC3C,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const create_social_provider_config_1 = require("./create-social-provider-config");
|
|
4
|
+
describe("createSocialProviderConfig", () => {
|
|
5
|
+
beforeEach(() => {
|
|
6
|
+
delete process.env.AUTH_GITHUB_CLIENT_ID;
|
|
7
|
+
delete process.env.AUTH_GITHUB_CLIENT_SECRET;
|
|
8
|
+
delete process.env.AUTH_GITHUB_DISABLE_SIGNUP;
|
|
9
|
+
delete process.env.AUTH_GITHUB_ENABLED;
|
|
10
|
+
delete process.env.AUTH_GOOGLE_CLIENT_ID;
|
|
11
|
+
delete process.env.AUTH_GOOGLE_CLIENT_SECRET;
|
|
12
|
+
delete process.env.AUTH_GOOGLE_DISABLE_SIGNUP;
|
|
13
|
+
delete process.env.AUTH_GOOGLE_ENABLED;
|
|
14
|
+
});
|
|
15
|
+
it("should return undefined when provider env and options are not configured", () => {
|
|
16
|
+
expect((0, create_social_provider_config_1.createSocialProviderConfig)("google", false)).toBeUndefined();
|
|
17
|
+
});
|
|
18
|
+
it("should return undefined when only provider signup disable env is configured", () => {
|
|
19
|
+
process.env.AUTH_GOOGLE_DISABLE_SIGNUP = "true";
|
|
20
|
+
expect((0, create_social_provider_config_1.createSocialProviderConfig)("google", false)).toBeUndefined();
|
|
21
|
+
});
|
|
22
|
+
it("should return undefined when provider credentials are configured but enabled env is unset", () => {
|
|
23
|
+
process.env.AUTH_GOOGLE_CLIENT_ID = "google-client-id";
|
|
24
|
+
process.env.AUTH_GOOGLE_CLIENT_SECRET = "google-client-secret";
|
|
25
|
+
expect((0, create_social_provider_config_1.createSocialProviderConfig)("google", false)).toBeUndefined();
|
|
26
|
+
});
|
|
27
|
+
it("should create Google config from env", () => {
|
|
28
|
+
process.env.AUTH_GOOGLE_ENABLED = "true";
|
|
29
|
+
process.env.AUTH_GOOGLE_CLIENT_ID = "google-client-id";
|
|
30
|
+
process.env.AUTH_GOOGLE_CLIENT_SECRET = "google-client-secret";
|
|
31
|
+
expect((0, create_social_provider_config_1.createSocialProviderConfig)("google", false)).toEqual({
|
|
32
|
+
clientId: "google-client-id",
|
|
33
|
+
clientSecret: "google-client-secret",
|
|
34
|
+
disableSignUp: false,
|
|
35
|
+
enabled: true,
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
it("should enable provider when provider enabled env is true", () => {
|
|
39
|
+
process.env.AUTH_GOOGLE_CLIENT_ID = "google-client-id";
|
|
40
|
+
process.env.AUTH_GOOGLE_CLIENT_SECRET = "google-client-secret";
|
|
41
|
+
process.env.AUTH_GOOGLE_ENABLED = "true";
|
|
42
|
+
expect((0, create_social_provider_config_1.createSocialProviderConfig)("google", false)).toEqual({
|
|
43
|
+
clientId: "google-client-id",
|
|
44
|
+
clientSecret: "google-client-secret",
|
|
45
|
+
disableSignUp: false,
|
|
46
|
+
enabled: true,
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
it("should disable provider when provider enabled env is false", () => {
|
|
50
|
+
process.env.AUTH_GOOGLE_ENABLED = "false";
|
|
51
|
+
expect((0, create_social_provider_config_1.createSocialProviderConfig)("google", false, {
|
|
52
|
+
clientId: "option-client-id",
|
|
53
|
+
clientSecret: "option-client-secret",
|
|
54
|
+
enabled: true,
|
|
55
|
+
})).toEqual({
|
|
56
|
+
clientId: "option-client-id",
|
|
57
|
+
clientSecret: "option-client-secret",
|
|
58
|
+
enabled: false,
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
it("should not override option credentials when provider enabled env is unset", () => {
|
|
62
|
+
process.env.AUTH_GOOGLE_CLIENT_ID = "env-client-id";
|
|
63
|
+
process.env.AUTH_GOOGLE_CLIENT_SECRET = "env-client-secret";
|
|
64
|
+
expect((0, create_social_provider_config_1.createSocialProviderConfig)("google", false, {
|
|
65
|
+
clientId: "option-client-id",
|
|
66
|
+
clientSecret: "option-client-secret",
|
|
67
|
+
})).toEqual({
|
|
68
|
+
clientId: "option-client-id",
|
|
69
|
+
clientSecret: "option-client-secret",
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
it("should not override option credentials when provider enabled env is false", () => {
|
|
73
|
+
process.env.AUTH_GOOGLE_ENABLED = "false";
|
|
74
|
+
process.env.AUTH_GOOGLE_CLIENT_ID = "env-client-id";
|
|
75
|
+
process.env.AUTH_GOOGLE_CLIENT_SECRET = "env-client-secret";
|
|
76
|
+
expect((0, create_social_provider_config_1.createSocialProviderConfig)("google", false, {
|
|
77
|
+
clientId: "option-client-id",
|
|
78
|
+
clientSecret: "option-client-secret",
|
|
79
|
+
})).toEqual({
|
|
80
|
+
clientId: "option-client-id",
|
|
81
|
+
clientSecret: "option-client-secret",
|
|
82
|
+
enabled: false,
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
it("should reject enabled provider env without credentials or options", () => {
|
|
86
|
+
process.env.AUTH_GOOGLE_ENABLED = "true";
|
|
87
|
+
expect(() => (0, create_social_provider_config_1.createSocialProviderConfig)("google", false)).toThrow("AUTH_GOOGLE_CLIENT_ID");
|
|
88
|
+
});
|
|
89
|
+
it("should create GitHub config from env", () => {
|
|
90
|
+
process.env.AUTH_GITHUB_ENABLED = "true";
|
|
91
|
+
process.env.AUTH_GITHUB_CLIENT_ID = "github-client-id";
|
|
92
|
+
process.env.AUTH_GITHUB_CLIENT_SECRET = "github-client-secret";
|
|
93
|
+
process.env.AUTH_GITHUB_DISABLE_SIGNUP = "true";
|
|
94
|
+
expect((0, create_social_provider_config_1.createSocialProviderConfig)("github", false)).toEqual({
|
|
95
|
+
clientId: "github-client-id",
|
|
96
|
+
clientSecret: "github-client-secret",
|
|
97
|
+
disableSignUp: true,
|
|
98
|
+
enabled: true,
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
it("should merge options without dropping signup disable flags", () => {
|
|
102
|
+
expect((0, create_social_provider_config_1.createSocialProviderConfig)("google", true, {
|
|
103
|
+
clientId: "option-client-id",
|
|
104
|
+
clientSecret: "option-client-secret",
|
|
105
|
+
scope: ["email"],
|
|
106
|
+
})).toEqual({
|
|
107
|
+
clientId: "option-client-id",
|
|
108
|
+
clientSecret: "option-client-secret",
|
|
109
|
+
disableSignUp: true,
|
|
110
|
+
scope: ["email"],
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
it("should apply provider signup disable env without requiring env credentials when options are configured", () => {
|
|
114
|
+
process.env.AUTH_GOOGLE_DISABLE_SIGNUP = "true";
|
|
115
|
+
expect((0, create_social_provider_config_1.createSocialProviderConfig)("google", false, {
|
|
116
|
+
clientId: "option-client-id",
|
|
117
|
+
clientSecret: "option-client-secret",
|
|
118
|
+
})).toEqual({
|
|
119
|
+
clientId: "option-client-id",
|
|
120
|
+
clientSecret: "option-client-secret",
|
|
121
|
+
disableSignUp: true,
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
it("should prefer provider env credentials over option credentials", () => {
|
|
125
|
+
process.env.AUTH_GOOGLE_ENABLED = "true";
|
|
126
|
+
process.env.AUTH_GOOGLE_CLIENT_ID = "env-client-id";
|
|
127
|
+
process.env.AUTH_GOOGLE_CLIENT_SECRET = "env-client-secret";
|
|
128
|
+
expect((0, create_social_provider_config_1.createSocialProviderConfig)("google", false, {
|
|
129
|
+
clientId: "option-client-id",
|
|
130
|
+
clientSecret: "option-client-secret",
|
|
131
|
+
})).toEqual({
|
|
132
|
+
clientId: "env-client-id",
|
|
133
|
+
clientSecret: "env-client-secret",
|
|
134
|
+
disableSignUp: false,
|
|
135
|
+
enabled: true,
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
//# sourceMappingURL=create-social-provider-config.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-social-provider-config.spec.js","sourceRoot":"","sources":["../../src/utils/create-social-provider-config.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { AuthModuleOptions } from "../auth-module-options.interface";
|
|
2
|
+
type SocialProvidersConfig = NonNullable<AuthModuleOptions["socialProviders"]>;
|
|
3
|
+
export declare function createSocialProvidersConfig(disableSignUp: boolean, options?: SocialProvidersConfig): SocialProvidersConfig | undefined;
|
|
4
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSocialProvidersConfig = createSocialProvidersConfig;
|
|
4
|
+
const create_social_provider_config_1 = require("./create-social-provider-config");
|
|
5
|
+
function createSocialProvidersConfig(disableSignUp, options) {
|
|
6
|
+
const githubConfig = (0, create_social_provider_config_1.createSocialProviderConfig)("github", disableSignUp, options?.github);
|
|
7
|
+
const googleConfig = (0, create_social_provider_config_1.createSocialProviderConfig)("google", disableSignUp, options?.google);
|
|
8
|
+
if (!options && !githubConfig && !googleConfig) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
...options,
|
|
13
|
+
...(githubConfig ? { github: githubConfig } : {}),
|
|
14
|
+
...(googleConfig ? { google: googleConfig } : {}),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=create-social-providers-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-social-providers-config.js","sourceRoot":"","sources":["../../src/utils/create-social-providers-config.ts"],"names":[],"mappings":";;AAKA,kEAwBC;AA5BD,mFAA6E;AAI7E,SAAgB,2BAA2B,CACzC,aAAsB,EACtB,OAA+B;IAE/B,MAAM,YAAY,GAAG,IAAA,0DAA0B,EAC7C,QAAQ,EACR,aAAa,EACb,OAAO,EAAE,MAAM,CAChB,CAAC;IACF,MAAM,YAAY,GAAG,IAAA,0DAA0B,EAC7C,QAAQ,EACR,aAAa,EACb,OAAO,EAAE,MAAM,CAChB,CAAC;IAEF,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,GAAG,OAAO;QACV,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const create_social_providers_config_1 = require("./create-social-providers-config");
|
|
4
|
+
describe("createSocialProvidersConfig", () => {
|
|
5
|
+
beforeEach(() => {
|
|
6
|
+
delete process.env.AUTH_GITHUB_CLIENT_ID;
|
|
7
|
+
delete process.env.AUTH_GITHUB_CLIENT_SECRET;
|
|
8
|
+
delete process.env.AUTH_GITHUB_DISABLE_SIGNUP;
|
|
9
|
+
delete process.env.AUTH_GITHUB_ENABLED;
|
|
10
|
+
delete process.env.AUTH_GOOGLE_CLIENT_ID;
|
|
11
|
+
delete process.env.AUTH_GOOGLE_CLIENT_SECRET;
|
|
12
|
+
delete process.env.AUTH_GOOGLE_DISABLE_SIGNUP;
|
|
13
|
+
delete process.env.AUTH_GOOGLE_ENABLED;
|
|
14
|
+
});
|
|
15
|
+
it("should return undefined when provider env and options are not configured", () => {
|
|
16
|
+
expect((0, create_social_providers_config_1.createSocialProvidersConfig)(false)).toBeUndefined();
|
|
17
|
+
});
|
|
18
|
+
it("should create Google and GitHub configs from env", () => {
|
|
19
|
+
process.env.AUTH_GOOGLE_ENABLED = "true";
|
|
20
|
+
process.env.AUTH_GOOGLE_CLIENT_ID = "google-client-id";
|
|
21
|
+
process.env.AUTH_GOOGLE_CLIENT_SECRET = "google-client-secret";
|
|
22
|
+
process.env.AUTH_GITHUB_ENABLED = "true";
|
|
23
|
+
process.env.AUTH_GITHUB_CLIENT_ID = "github-client-id";
|
|
24
|
+
process.env.AUTH_GITHUB_CLIENT_SECRET = "github-client-secret";
|
|
25
|
+
expect((0, create_social_providers_config_1.createSocialProvidersConfig)(false)).toEqual({
|
|
26
|
+
github: {
|
|
27
|
+
clientId: "github-client-id",
|
|
28
|
+
clientSecret: "github-client-secret",
|
|
29
|
+
disableSignUp: false,
|
|
30
|
+
enabled: true,
|
|
31
|
+
},
|
|
32
|
+
google: {
|
|
33
|
+
clientId: "google-client-id",
|
|
34
|
+
clientSecret: "google-client-secret",
|
|
35
|
+
disableSignUp: false,
|
|
36
|
+
enabled: true,
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
it("should preserve custom providers from options", () => {
|
|
41
|
+
expect((0, create_social_providers_config_1.createSocialProvidersConfig)(true, {
|
|
42
|
+
apple: {
|
|
43
|
+
clientId: "apple-client-id",
|
|
44
|
+
clientSecret: "apple-client-secret",
|
|
45
|
+
},
|
|
46
|
+
google: {
|
|
47
|
+
clientId: "google-client-id",
|
|
48
|
+
clientSecret: "google-client-secret",
|
|
49
|
+
},
|
|
50
|
+
})).toEqual({
|
|
51
|
+
apple: {
|
|
52
|
+
clientId: "apple-client-id",
|
|
53
|
+
clientSecret: "apple-client-secret",
|
|
54
|
+
},
|
|
55
|
+
google: {
|
|
56
|
+
clientId: "google-client-id",
|
|
57
|
+
clientSecret: "google-client-secret",
|
|
58
|
+
disableSignUp: true,
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=create-social-providers-config.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-social-providers-config.spec.js","sourceRoot":"","sources":["../../src/utils/create-social-providers-config.spec.ts"],"names":[],"mappings":";;AAAA,qFAA+E;AAE/E,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;QACzC,OAAO,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;QAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;QAC9C,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QACvC,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;QACzC,OAAO,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;QAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;QAC9C,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,CAAC,IAAA,4DAA2B,EAAC,KAAK,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,MAAM,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,kBAAkB,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,sBAAsB,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,MAAM,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,kBAAkB,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,sBAAsB,CAAC;QAE/D,MAAM,CAAC,IAAA,4DAA2B,EAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;YACjD,MAAM,EAAE;gBACN,QAAQ,EAAE,kBAAkB;gBAC5B,YAAY,EAAE,sBAAsB;gBACpC,aAAa,EAAE,KAAK;gBACpB,OAAO,EAAE,IAAI;aACd;YACD,MAAM,EAAE;gBACN,QAAQ,EAAE,kBAAkB;gBAC5B,YAAY,EAAE,sBAAsB;gBACpC,aAAa,EAAE,KAAK;gBACpB,OAAO,EAAE,IAAI;aACd;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,CACJ,IAAA,4DAA2B,EAAC,IAAI,EAAE;YAChC,KAAK,EAAE;gBACL,QAAQ,EAAE,iBAAiB;gBAC3B,YAAY,EAAE,qBAAqB;aACpC;YACD,MAAM,EAAE;gBACN,QAAQ,EAAE,kBAAkB;gBAC5B,YAAY,EAAE,sBAAsB;aACrC;SACF,CAAC,CACH,CAAC,OAAO,CAAC;YACR,KAAK,EAAE;gBACL,QAAQ,EAAE,iBAAiB;gBAC3B,YAAY,EAAE,qBAAqB;aACpC;YACD,MAAM,EAAE;gBACN,QAAQ,EAAE,kBAAkB;gBAC5B,YAAY,EAAE,sBAAsB;gBACpC,aAAa,EAAE,IAAI;aACpB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const estimate_entropy_1 = require("./estimate-entropy");
|
|
4
|
+
describe("estimateEntropy", () => {
|
|
5
|
+
it("should return zero for empty strings", () => {
|
|
6
|
+
expect((0, estimate_entropy_1.estimateEntropy)("")).toBe(0);
|
|
7
|
+
});
|
|
8
|
+
it("should estimate entropy from unique characters and length", () => {
|
|
9
|
+
expect((0, estimate_entropy_1.estimateEntropy)("aaaa")).toBe(0);
|
|
10
|
+
expect((0, estimate_entropy_1.estimateEntropy)("abcd")).toBe(8);
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=estimate-entropy.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"estimate-entropy.spec.js","sourceRoot":"","sources":["../../src/utils/estimate-entropy.spec.ts"],"names":[],"mappings":";;AAAA,yDAAqD;AAErD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,IAAA,kCAAe,EAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,CAAC,IAAA,kCAAe,EAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,IAAA,kCAAe,EAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|