@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.
Files changed (137) hide show
  1. package/dist/adapters/mikro-orm-adapter.js.map +1 -1
  2. package/dist/adapters/mikro-orm-adapter.spec.js +263 -11
  3. package/dist/adapters/mikro-orm-adapter.spec.js.map +1 -1
  4. package/dist/auth.guard.d.ts +6 -0
  5. package/dist/auth.guard.js +12 -4
  6. package/dist/auth.guard.js.map +1 -1
  7. package/dist/auth.guard.spec.js +66 -0
  8. package/dist/auth.guard.spec.js.map +1 -1
  9. package/dist/auth.middleware.spec.d.ts +1 -0
  10. package/dist/auth.middleware.spec.js +139 -0
  11. package/dist/auth.middleware.spec.js.map +1 -0
  12. package/dist/auth.module.d.ts +1 -1
  13. package/dist/auth.module.js +33 -20
  14. package/dist/auth.module.js.map +1 -1
  15. package/dist/auth.module.spec.d.ts +1 -0
  16. package/dist/auth.module.spec.js +611 -0
  17. package/dist/auth.module.spec.js.map +1 -0
  18. package/dist/auth.service.d.ts +1 -1
  19. package/dist/auth.service.spec.d.ts +1 -0
  20. package/dist/auth.service.spec.js +26 -0
  21. package/dist/auth.service.spec.js.map +1 -0
  22. package/dist/auth.transaction-context.spec.d.ts +1 -0
  23. package/dist/auth.transaction-context.spec.js +20 -0
  24. package/dist/auth.transaction-context.spec.js.map +1 -0
  25. package/dist/decorators/auth.decorators.spec.d.ts +1 -0
  26. package/dist/decorators/auth.decorators.spec.js +87 -0
  27. package/dist/decorators/auth.decorators.spec.js.map +1 -0
  28. package/dist/entities/entities.spec.d.ts +1 -0
  29. package/dist/entities/entities.spec.js +80 -0
  30. package/dist/entities/entities.spec.js.map +1 -0
  31. package/dist/index.spec.d.ts +1 -0
  32. package/dist/index.spec.js +73 -0
  33. package/dist/index.spec.js.map +1 -0
  34. package/dist/tsconfig.build.tsbuildinfo +1 -1
  35. package/dist/utils/assert-no-duplicate-generic-oauth-plugin.d.ts +2 -0
  36. package/dist/utils/assert-no-duplicate-generic-oauth-plugin.js +11 -0
  37. package/dist/utils/assert-no-duplicate-generic-oauth-plugin.js.map +1 -0
  38. package/dist/utils/assert-no-duplicate-generic-oauth-plugin.spec.d.ts +1 -0
  39. package/dist/utils/assert-no-duplicate-generic-oauth-plugin.spec.js +29 -0
  40. package/dist/utils/assert-no-duplicate-generic-oauth-plugin.spec.js.map +1 -0
  41. package/dist/utils/create-email-and-password-config.d.ts +4 -0
  42. package/dist/utils/create-email-and-password-config.js +21 -0
  43. package/dist/utils/create-email-and-password-config.js.map +1 -0
  44. package/dist/utils/create-email-and-password-config.spec.d.ts +1 -0
  45. package/dist/utils/create-email-and-password-config.spec.js +66 -0
  46. package/dist/utils/create-email-and-password-config.spec.js.map +1 -0
  47. package/dist/utils/create-oidc-config.d.ts +2 -0
  48. package/dist/utils/create-oidc-config.js +22 -0
  49. package/dist/utils/create-oidc-config.js.map +1 -0
  50. package/dist/utils/create-oidc-config.spec.d.ts +1 -0
  51. package/dist/utils/create-oidc-config.spec.js +73 -0
  52. package/dist/utils/create-oidc-config.spec.js.map +1 -0
  53. package/dist/utils/create-social-provider-config.d.ts +6 -0
  54. package/dist/utils/create-social-provider-config.js +40 -0
  55. package/dist/utils/create-social-provider-config.js.map +1 -0
  56. package/dist/utils/create-social-provider-config.spec.d.ts +1 -0
  57. package/dist/utils/create-social-provider-config.spec.js +139 -0
  58. package/dist/utils/create-social-provider-config.spec.js.map +1 -0
  59. package/dist/utils/create-social-providers-config.d.ts +4 -0
  60. package/dist/utils/create-social-providers-config.js +17 -0
  61. package/dist/utils/create-social-providers-config.js.map +1 -0
  62. package/dist/utils/create-social-providers-config.spec.d.ts +1 -0
  63. package/dist/utils/create-social-providers-config.spec.js +63 -0
  64. package/dist/utils/create-social-providers-config.spec.js.map +1 -0
  65. package/dist/utils/estimate-entropy.spec.d.ts +1 -0
  66. package/dist/utils/estimate-entropy.spec.js +13 -0
  67. package/dist/utils/estimate-entropy.spec.js.map +1 -0
  68. package/dist/utils/generic-oauth-provider-config.type.d.ts +3 -0
  69. package/dist/utils/generic-oauth-provider-config.type.js +3 -0
  70. package/dist/utils/generic-oauth-provider-config.type.js.map +1 -0
  71. package/dist/utils/has-oidc-env-config.d.ts +1 -0
  72. package/dist/utils/has-oidc-env-config.js +8 -0
  73. package/dist/utils/has-oidc-env-config.js.map +1 -0
  74. package/dist/utils/has-oidc-env-config.spec.d.ts +1 -0
  75. package/dist/utils/has-oidc-env-config.spec.js +23 -0
  76. package/dist/utils/has-oidc-env-config.spec.js.map +1 -0
  77. package/dist/utils/has-social-provider-credential-env-config.d.ts +2 -0
  78. package/dist/utils/has-social-provider-credential-env-config.js +10 -0
  79. package/dist/utils/has-social-provider-credential-env-config.js.map +1 -0
  80. package/dist/utils/has-social-provider-credential-env-config.spec.d.ts +1 -0
  81. package/dist/utils/has-social-provider-credential-env-config.spec.js +33 -0
  82. package/dist/utils/has-social-provider-credential-env-config.spec.js.map +1 -0
  83. package/dist/utils/has-social-provider-env-config.d.ts +2 -0
  84. package/dist/utils/has-social-provider-env-config.js +8 -0
  85. package/dist/utils/has-social-provider-env-config.js.map +1 -0
  86. package/dist/utils/has-social-provider-env-config.spec.d.ts +1 -0
  87. package/dist/utils/has-social-provider-env-config.spec.js +34 -0
  88. package/dist/utils/has-social-provider-env-config.spec.js.map +1 -0
  89. package/dist/utils/is-env-true.d.ts +1 -0
  90. package/dist/utils/is-env-true.js +7 -0
  91. package/dist/utils/is-env-true.js.map +1 -0
  92. package/dist/utils/is-env-true.spec.d.ts +1 -0
  93. package/dist/utils/is-env-true.spec.js +20 -0
  94. package/dist/utils/is-env-true.spec.js.map +1 -0
  95. package/dist/utils/oidc.constants.d.ts +5 -0
  96. package/dist/utils/oidc.constants.js +27 -0
  97. package/dist/utils/oidc.constants.js.map +1 -0
  98. package/dist/utils/resolve-oidc-prompt.d.ts +2 -0
  99. package/dist/utils/resolve-oidc-prompt.js +16 -0
  100. package/dist/utils/resolve-oidc-prompt.js.map +1 -0
  101. package/dist/utils/resolve-oidc-prompt.spec.d.ts +1 -0
  102. package/dist/utils/resolve-oidc-prompt.spec.js +28 -0
  103. package/dist/utils/resolve-oidc-prompt.spec.js.map +1 -0
  104. package/dist/utils/resolve-oidc-scopes.d.ts +1 -0
  105. package/dist/utils/resolve-oidc-scopes.js +10 -0
  106. package/dist/utils/resolve-oidc-scopes.js.map +1 -0
  107. package/dist/utils/resolve-oidc-scopes.spec.d.ts +1 -0
  108. package/dist/utils/resolve-oidc-scopes.spec.js +16 -0
  109. package/dist/utils/resolve-oidc-scopes.spec.js.map +1 -0
  110. package/dist/utils/resolve-required-oidc-env.d.ts +2 -0
  111. package/dist/utils/resolve-required-oidc-env.js +12 -0
  112. package/dist/utils/resolve-required-oidc-env.js.map +1 -0
  113. package/dist/utils/resolve-required-oidc-env.spec.d.ts +1 -0
  114. package/dist/utils/resolve-required-oidc-env.spec.js +22 -0
  115. package/dist/utils/resolve-required-oidc-env.spec.js.map +1 -0
  116. package/dist/utils/resolve-required-social-provider-env.d.ts +2 -0
  117. package/dist/utils/resolve-required-social-provider-env.js +15 -0
  118. package/dist/utils/resolve-required-social-provider-env.js.map +1 -0
  119. package/dist/utils/resolve-required-social-provider-env.spec.d.ts +1 -0
  120. package/dist/utils/resolve-required-social-provider-env.spec.js +29 -0
  121. package/dist/utils/resolve-required-social-provider-env.spec.js.map +1 -0
  122. package/dist/utils/resolve-secret.d.ts +2 -0
  123. package/dist/utils/resolve-secret.js +27 -0
  124. package/dist/utils/resolve-secret.js.map +1 -0
  125. package/dist/utils/resolve-secret.spec.d.ts +1 -0
  126. package/dist/utils/resolve-secret.spec.js +34 -0
  127. package/dist/utils/resolve-secret.spec.js.map +1 -0
  128. package/dist/utils/resolve-social-provider-enabled.d.ts +2 -0
  129. package/dist/utils/resolve-social-provider-enabled.js +9 -0
  130. package/dist/utils/resolve-social-provider-enabled.js.map +1 -0
  131. package/dist/utils/resolve-social-provider-enabled.spec.d.ts +1 -0
  132. package/dist/utils/resolve-social-provider-enabled.spec.js +20 -0
  133. package/dist/utils/resolve-social-provider-enabled.spec.js.map +1 -0
  134. package/dist/utils/social-provider.constants.d.ts +22 -0
  135. package/dist/utils/social-provider.constants.js +34 -0
  136. package/dist/utils/social-provider.constants.js.map +1 -0
  137. package/package.json +9 -8
@@ -0,0 +1,2 @@
1
+ import { BetterAuthPlugin } from "better-auth";
2
+ export declare function assertNoDuplicateGenericOAuthPlugin(plugins?: BetterAuthPlugin[]): void;
@@ -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,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,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,2 @@
1
+ import { GenericOAuthProviderConfig } from "./generic-oauth-provider-config.type";
2
+ export declare function createOidcConfig(disableSignUp: boolean): GenericOAuthProviderConfig | undefined;
@@ -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,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"}
@@ -0,0 +1,3 @@
1
+ import { type genericOAuth } from "better-auth/plugins";
2
+ export type GenericOAuthProviderConfig = Parameters<typeof genericOAuth>[0]["config"][number];
3
+ export type OidcPrompt = NonNullable<GenericOAuthProviderConfig["prompt"]>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=generic-oauth-provider-config.type.js.map